4b583bc0d60cd0a46e1ce4b7e5c87e39b490acd0.svn-base 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
  1. <template>
  2. <div>
  3. <el-page-header @back="goBack" content="编辑类别">
  4. </el-page-header>
  5. <p style="margin-top: 20px;margin-bottom:10px;">
  6. &#x3000;专 业:
  7. <el-select v-model="form.spfsnlType" placeholder="请选择专业" @change="professionChange">
  8. <el-option
  9. v-for="item in professionList"
  10. :key="item.value"
  11. :label="item.label"
  12. :value="item.value">
  13. </el-option>
  14. </el-select>
  15. </p>
  16. <el-row :gutter="20">
  17. <el-col :span="12">
  18. <el-card class="box-card">
  19. <div slot="header" class="clearfix">
  20. <span>问题大类</span>
  21. <el-button @click="toAddMajorclass" style="float: right; padding: 3px 0" type="text">添加</el-button>
  22. </div>
  23. <el-table
  24. :data="majorclassData"
  25. :height="tebleHeight"
  26. style="width: 100%"
  27. @row-click="chooseMajorClass"
  28. max-height="500">
  29. <el-table-column
  30. type="index"
  31. label="序号"
  32. width="60">
  33. </el-table-column>
  34. <el-table-column
  35. prop="className"
  36. label="大类"
  37. min-width="280">
  38. </el-table-column>
  39. <el-table-column
  40. label="操作"
  41. min-width="120">
  42. <template slot-scope="scope">
  43. <el-button
  44. @click.native.prevent="editMajorRow(scope.row)"
  45. type="text"
  46. size="small">
  47. 编辑
  48. </el-button>
  49. <el-button
  50. @click.native.prevent="deleteMajorRow(scope.row)"
  51. type="text"
  52. size="small">
  53. 删除
  54. </el-button>
  55. </template>
  56. </el-table-column>
  57. </el-table>
  58. <el-pagination style="margin-top: 10px;" :pager-count="5" :current-page="pageIndexMajor" :page-size="pageSize"
  59. background layout="total, prev, pager, next" :total="totalMajor" @current-change="pageIndexMajorChange"
  60. ></el-pagination>
  61. </el-card>
  62. </el-col>
  63. <el-col :span="12">
  64. <el-card class="box-card">
  65. <div slot="header" class="clearfix">
  66. <span>问题小类</span>
  67. <el-button @click="toAddSubclass" style="float: right; padding: 3px 0" type="text">添加</el-button>
  68. </div>
  69. <el-table
  70. :data="subclassData"
  71. :height="tebleHeight"
  72. style="width: 100%"
  73. max-height="500">
  74. <el-table-column
  75. type="index"
  76. label="序号"
  77. width="60">
  78. </el-table-column>
  79. <el-table-column
  80. prop="className"
  81. label="小类"
  82. min-width="280">
  83. </el-table-column>
  84. <el-table-column
  85. label="操作"
  86. min-width="120">
  87. <template slot-scope="scope">
  88. <el-button
  89. @click.native.prevent="editSubRow(scope.row)"
  90. type="text"
  91. size="small">
  92. 编辑
  93. </el-button>
  94. <el-button
  95. @click.native.prevent="deleteSubRow(scope.row)"
  96. type="text"
  97. size="small">
  98. 删除
  99. </el-button>
  100. </template>
  101. </el-table-column>
  102. </el-table>
  103. <el-pagination style="margin-top: 10px;" :pager-count="5" :current-page="pageIndexSub" :page-size="pageSize"
  104. background layout="total, prev, pager, next" :total="totalSub"
  105. @current-change="pageIndexSubChange"
  106. ></el-pagination>
  107. </el-card>
  108. </el-col>
  109. </el-row>
  110. <el-dialog title="添加问题大类" :visible.sync="dialogMajorClass">
  111. <el-form :model="majorForm">
  112. <el-form-item label="请输入问题大类名称:">
  113. <el-input v-model="majorForm.className" autocomplete="off"></el-input>
  114. </el-form-item>
  115. <el-form-item label="请输入问题大类编码:">
  116. <el-input v-model="majorForm.classCode" autocomplete="off"></el-input>
  117. </el-form-item>
  118. </el-form>
  119. <div slot="footer" class="dialog-footer">
  120. <el-button @click="dialogMajorClass = false">取 消</el-button>
  121. <el-button type="primary" @click="addMajorclass">确 定</el-button>
  122. </div>
  123. </el-dialog>
  124. <el-dialog title="添加问题小类" :visible.sync="dialogSubClass">
  125. <el-form :model="subForm">
  126. <el-form-item label="请输入问题小类名称:">
  127. <el-input v-model="subForm.className" autocomplete="off"></el-input>
  128. </el-form-item>
  129. <el-form-item label="请输入问题小类编码:">
  130. <el-input v-model="subForm.classCode" autocomplete="off"></el-input>
  131. </el-form-item>
  132. </el-form>
  133. <div slot="footer" class="dialog-footer">
  134. <el-button @click="dialogSubClass = false">取 消</el-button>
  135. <el-button type="primary" @click="addSubclass">确 定</el-button>
  136. </div>
  137. </el-dialog>
  138. </div>
  139. </template>
  140. <script>
  141. import request from '@util/gw_ajax_request.js'
  142. export default {
  143. props:[],
  144. data(){
  145. return{
  146. tebleHeight: window.innerHeight - 320,
  147. professionList:[
  148. {label: '前期与设计',value: '1'},
  149. {label: '建设管理',value: '2'},
  150. {label: '计划下达与执行',value: '3'},
  151. {label: '资金使用与管理',value: '4'},
  152. {label: '质量行为',value: '5'},
  153. {label: '质量实体',value: '6'},
  154. {label: '工程安全',value: '7'}
  155. ],
  156. majorclassData:[
  157. ],
  158. subclassData:[
  159. ],
  160. form:{
  161. spfsnlType: '1',
  162. pcode: ''
  163. },
  164. majorForm:{
  165. className: '',
  166. classCode: '',
  167. pcode: '0'
  168. },
  169. subForm:{
  170. className: '',
  171. classCode: ''
  172. },
  173. pageSize: 20,
  174. pageIndexMajor: 1,
  175. pageIndexSub: 1,
  176. totalMajor: 0,
  177. totalSub: 0,
  178. dialogMajorClass: false,
  179. dialogSubClass: false,
  180. }
  181. },
  182. mounted(){
  183. this.getMajorClassList()
  184. this.getSubClassList()
  185. },
  186. methods:{
  187. goBack(){
  188. this.$emit('goBack')
  189. },
  190. getMajorClassList(){
  191. let majorParams = {
  192. spfsnlType: this.form.spfsnlType,
  193. type: '1',
  194. pageSize: this.pageSize,
  195. pageNum: this.pageIndexMajor
  196. }
  197. request.post(`/tac/pblm/class/dic/page`,majorParams).then(res=>{
  198. if(res.success){
  199. this.majorclassData = res.data.list
  200. this.totalMajor = res.data.total
  201. }else{
  202. this.$message.error(res.message)
  203. }
  204. })
  205. },
  206. getSubClassList(){
  207. let subParams = {
  208. spfsnlType: this.form.spfsnlType,
  209. type: '2',
  210. pageSize: this.pageSize,
  211. pageNum: this.pageIndexSub,
  212. pcode: this.form.pcode
  213. }
  214. request.post(`/tac/pblm/class/dic/page`,subParams).then(res=>{
  215. if(res.success){
  216. this.subclassData = res.data.list
  217. this.totalSub = res.data.total
  218. }else{
  219. this.$message.error(res.message)
  220. }
  221. })
  222. },
  223. toAddMajorclass(){
  224. this.dialogMajorClass = true
  225. if(this.majorForm.id){
  226. delete this.majorForm.id
  227. }
  228. },
  229. addMajorclass(){
  230. this.majorForm['spfsnlType'] = this.form.spfsnlType
  231. this.majorForm['type'] = '1'
  232. request.post(`/tac/pblm/class/dic`,this.majorForm).then(res=>{
  233. if(res.success){
  234. this.$message.success('操作成功')
  235. this.majorForm = {
  236. className: '',
  237. classCode: '',
  238. pcode: '0'
  239. }
  240. this.getMajorClassList()
  241. this.dialogMajorClass = false
  242. }else{
  243. this.$message.error(res.message)
  244. }
  245. })
  246. },
  247. toAddSubclass(){
  248. if(!this.form.pcode){
  249. this.$message.warning('请先选择左侧问题大类')
  250. return
  251. }
  252. if(this.subForm.id){
  253. delete this.subForm.id
  254. }
  255. this.dialogSubClass = true
  256. },
  257. addSubclass(){
  258. this.subForm['spfsnlType'] = this.form.spfsnlType
  259. this.subForm['type'] = '2'
  260. this.subForm['pcode'] = this.form.pcode
  261. request.post(`/tac/pblm/class/dic`,this.subForm).then(res=>{
  262. if(res.success){
  263. this.$message.success('操作成功')
  264. this.getSubClassList()
  265. this.majorForm = {
  266. className: '',
  267. classCode: ''
  268. }
  269. this.dialogSubClass = false
  270. }else{
  271. this.$message.error(res.message)
  272. }
  273. })
  274. },
  275. editMajorRow(row){
  276. Object.assign(this.majorForm,row)
  277. this.dialogMajorClass = true
  278. },
  279. editSubRow(row){
  280. Object.assign(this.subForm,row)
  281. this.dialogSubClass = true
  282. },
  283. deleteMajorRow(row){
  284. this.$confirm(' 删除问题大类,将删除该问题大类下所有问题小类和问题,请问是否确定删除?', '提示', {
  285. confirmButtonText: '确定',
  286. cancelButtonText: '取消',
  287. type: 'warning'
  288. }).then(() => {
  289. request.get(`/tac/pblm/class/dic/del/${row.id}`).then(res=>{
  290. if(res.success){
  291. this.$message.success('删除成功')
  292. this.getMajorClassList()
  293. }else{
  294. this.$message.error(res.message)
  295. }
  296. })
  297. })
  298. },
  299. deleteSubRow(row){
  300. this.$confirm(' 删除问题小类,将删除该问题小类下所有问题,请问是否确定删除?', '提示', {
  301. confirmButtonText: '确定',
  302. cancelButtonText: '取消',
  303. type: 'warning'
  304. }).then(() => {
  305. request.get(`/tac/pblm/class/dic/del/${row.id}`).then(res=>{
  306. if(res.success){
  307. this.$message.success('删除成功')
  308. this.getSubClassList()
  309. }else{
  310. this.$message.error(res.message)
  311. }
  312. })
  313. })
  314. },
  315. professionChange(){
  316. this.getMajorClassList()
  317. this.getSubClassList()
  318. },
  319. pageIndexMajorChange(val){
  320. this.pageIndexMajor = val
  321. this.getMajorClassList()
  322. },
  323. pageIndexSubChange(val){
  324. this.pageIndexSub = val
  325. this.getSubClassList()
  326. },
  327. chooseMajorClass(row){
  328. this.form.pcode = row.id
  329. this.getSubClassList()
  330. }
  331. }
  332. }
  333. </script>
  334. <style lang="scss">
  335. </style>