lizhenhao 2 éve
szülő
commit
617be4f124
86 módosított fájl, 3485 hozzáadás és 2117 törlés
  1. 16 0
      src/api/flowable/processService.js
  2. 7 0
      src/api/flowable/taskService.js
  3. 6 5
      src/api/program/ProgramFileDictService.js
  4. 28 27
      src/api/program/ProgramProjectListInfoService.js
  5. 6 5
      src/api/program/ProgramServiceTypeService.js
  6. 6 5
      src/api/program/ProgramTypeDictService.js
  7. 6 5
      src/api/program/ProgramTypeFileDictService.js
  8. 36 0
      src/api/sys/SerialnumTplService.js
  9. 14 13
      src/api/sys/WorkClientService.js
  10. 9 8
      src/api/sys/WorkContractBorrowService.js
  11. 5 4
      src/api/sys/WorkContractFileService.js
  12. 6 5
      src/api/sys/WorkContractService.js
  13. 33 0
      src/api/sys/officeService.js
  14. 43 0
      src/api/sys/userService.js
  15. 71 68
      src/components/editor/WangEditor.vue
  16. 51 48
      src/components/editor/WangEditorNoMenu.vue
  17. 4 4
      src/components/treeSelect/treeSelect.vue
  18. 451 433
      src/components/userSelect/UserSelectDialog.vue
  19. 4 4
      src/components/userSelect/index.vue
  20. 100 240
      src/components/workClientInfoSelect/WorkClientInfoSelectDialog.vue
  21. 18 19
      src/components/workClientInfoSelect/index.vue
  22. 1 1
      src/router/systemRouter.js
  23. 7 7
      src/style/fix.scss
  24. 7 7
      src/utils/useTabs.js
  25. 33 21
      src/views/common/RosterSelectDialog.vue
  26. 3 3
      src/views/common/UpLoadComponentCcpm.vue
  27. 1 1
      src/views/common/UpLoadComponentDialog.vue
  28. 3 3
      src/views/common/UpLoadComponentV2.1.vue
  29. 3 3
      src/views/common/UpLoadComponentV2.vue
  30. 3 3
      src/views/common/UpLoadComponentV3.1.vue
  31. 3 3
      src/views/common/UpLoadComponentV3.vue
  32. 13 13
      src/views/finance/invoice/InvoiceForm.vue
  33. 12 12
      src/views/finance/invoice/InvoiceFormTask.vue
  34. 8 8
      src/views/finance/invoice/InvoiceFormTaskInvalid.vue
  35. 18 18
      src/views/finance/invoice/InvoiceList.vue
  36. 1 1
      src/views/finance/invoice/KnowledgeShareTypePageForm.vue
  37. 1 1
      src/views/finance/invoice/ProgramForm.vue
  38. 1 1
      src/views/finance/invoice/ProgramPageForm.vue
  39. 1 1
      src/views/finance/invoice/ReimbursementTypePullForm.vue
  40. 1 1
      src/views/finance/invoice/UserPullForm.vue
  41. 706 48
      src/views/flowable/task/TaskForm.vue
  42. 1 1
      src/views/program/configuration/fileDict/FileDictForm.vue
  43. 1 1
      src/views/program/configuration/proofreadType/BrowseTypeForm.vue
  44. 1 1
      src/views/program/configuration/proofreadType/TypeForm.vue
  45. 1 1
      src/views/program/configuration/typeDict/TypeDictForm.vue
  46. 1 1
      src/views/program/configuration/typeFileDict/TypeFileDictForm.vue
  47. 1 1
      src/views/program/registered/ContactForm.vue
  48. 1 1
      src/views/program/registered/ContractForm.vue
  49. 3 3
      src/views/program/registered/ProjectArchiveForm.vue
  50. 4 4
      src/views/program/registered/ProjectArchiveFormDialog.vue
  51. 8 8
      src/views/program/registered/ProjectForm.vue
  52. 107 100
      src/views/program/registered/ProjectForm2022.vue
  53. 8 8
      src/views/program/registered/ProjectForm2022Tab.vue
  54. 7 7
      src/views/program/registered/ProjectFormUpdate.vue
  55. 14 14
      src/views/program/registered/ProjectList.vue
  56. 106 105
      src/views/program/registered/ProjectList2022.vue
  57. 1 1
      src/views/program/registered/ProjectThreeAuditFormDialog.vue
  58. 5 5
      src/views/program/registered/ProofreadBrowseForm.vue
  59. 4 4
      src/views/program/registered/ProofreadBrowseFormComponent.vue
  60. 5 5
      src/views/program/registered/ProofreadForm.vue
  61. 6 6
      src/views/program/registered/RegisItemForm.vue
  62. 1 1
      src/views/program/registered/WorkClientForm.vue
  63. 1 1
      src/views/program/serviceType/ProgramServiceTypeForm.vue
  64. 31 24
      src/views/project/AssessForm.vue
  65. 206 177
      src/views/project/AssessList.vue
  66. 32 25
      src/views/project/ConsultationForm.vue
  67. 64 42
      src/views/project/ConsultationList.vue
  68. 149 149
      src/views/reimbursement/ReimbursementFormCcpm.vue
  69. 1 1
      src/views/reimbursement/info/InfoForm.vue
  70. 3 3
      src/views/reimbursement/info/InfoList.vue
  71. 1 1
      src/views/reimbursement/info/ProgramForm.vue
  72. 41 41
      src/views/reimbursement/info/ReimbursementForm.vue
  73. 1 1
      src/views/reimbursement/type/TypeForm.vue
  74. 418 0
      src/views/sys/mould/SerialnumTplForm.vue
  75. 177 0
      src/views/sys/mould/SerialnumTplList.vue
  76. 3 3
      src/views/utils/treeUserSelect.vue
  77. 60 54
      src/views/workClient/WorkClientForm.vue
  78. 43 49
      src/views/workClient/WorkClientList.vue
  79. 1 1
      src/views/workContract/InputNumber.vue
  80. 8 9
      src/views/workContract/WorkContractBorrowForm.vue
  81. 5 5
      src/views/workContract/WorkContractBorrowMessageForm.vue
  82. 3 3
      src/views/workContract/WorkContractChooseCom.vue
  83. 34 34
      src/views/workContract/WorkContractFileForm.vue
  84. 30 26
      src/views/workContract/WorkContractForm.vue
  85. 27 24
      src/views/workContract/WorkContractForm2.vue
  86. 114 117
      src/views/workContract/WorkContractList.vue

+ 16 - 0
src/api/flowable/processService.js

@@ -100,4 +100,20 @@ export default {
 			params: { key: key },
 		});
 	},
+
+	getByName: function (name) {
+		return request({
+			url: prefix + `/flowable/process/getByName`,
+			method: "get",
+			params: { name: name },
+		});
+	},
+
+	getById: function (id) {
+		return request({
+			url: prefix + `/flowable/process/getById`,
+			method: "get",
+			params: { id: id },
+		});
+	},
 };

+ 7 - 0
src/api/flowable/taskService.js

@@ -132,4 +132,11 @@ export default {
 			data: data,
 		});
 	},
+	getTaskDefInfo(params) {
+		return request({
+			url: prefix + "/flowable/task/getTaskDefInfo",
+			method: "get",
+			params: params,
+		});
+	},
 };

+ 6 - 5
src/api/program/ProgramFileDictService.js

@@ -1,37 +1,38 @@
 import request from '@/utils/httpRequest'
+import { ASSESS_PATH as prefix } from "../AppPath";
 
 export default class ProgramFileDictService {
   list (params) {
     return request({
-      url: '/program/configuration/file/list',
+      url: prefix + '/program/configuration/file/list',
       method: 'get',
       params: params
     })
   }
   queryById (id) {
     return request({
-      url: '/program/configuration/file/queryById',
+      url: prefix + '/program/configuration/file/queryById',
       method: 'get',
       params: {id: id}
     })
   }
   getAllFileType () {
     return request({
-      url: '/program/configuration/file/getAllFileType',
+      url: prefix + '/program/configuration/file/getAllFileType',
       method: 'get',
       params: {}
     })
   }
   save (inputForm) {
     return request({
-      url: `/program/configuration/file/save`,
+      url: prefix + `/program/configuration/file/save`,
       method: 'post',
       data: inputForm
     })
   }
   delete (ids) {
     return request({
-      url: '/program/configuration/file/delete',
+      url: prefix + '/program/configuration/file/delete',
       method: 'delete',
       params: {ids: ids}
     })

+ 28 - 27
src/api/program/ProgramProjectListInfoService.js

@@ -1,30 +1,31 @@
 import request from '@/utils/httpRequest'
+import { ASSESS_PATH as prefix } from "../AppPath";
 
 export default class ProgramProjectListInfoService {
   list (params) {
     return request({
-      url: '/program/projectList/list',
+      url: prefix + '/program/projectList/list',
       method: 'get',
       params: params
     })
   }
   list2 (params) {
     return request({
-      url: '/program/projectList/list2',
+      url: prefix + '/program/projectList/list2',
       method: 'get',
       params: params
     })
   }
   list2022 (params) {
     return request({
-      url: '/program/projectList/list2022',
+      url: prefix + '/program/projectList/list2022',
       method: 'get',
       params: params
     })
   }
   exportFile (params) {
     return request({
-      url: '/program/projectList/exportFile',
+      url: prefix + '/program/projectList/exportFile',
       method: 'get',
       params: params,
       responseType: 'blob'
@@ -32,105 +33,105 @@ export default class ProgramProjectListInfoService {
   }
   queryById (id) {
     return request({
-      url: '/program/projectList/findById',
+      url: prefix + '/program/projectList/findById',
       method: 'get',
       params: {id: id}
     })
   }
   findByIdAudit (id) {
     return request({
-      url: '/program/projectList/findByIdAudit',
+      url: prefix + '/program/projectList/findByIdAudit',
       method: 'get',
       params: {id: id}
     })
   }
   findByIdArchive (id) {
     return request({
-      url: '/program/projectList/findByIdArchive',
+      url: prefix + '/program/projectList/findByIdArchive',
       method: 'get',
       params: {id: id}
     })
   }
   save (inputForm) {
     return request({
-      url: `/program/projectList/save`,
+      url: prefix + `/program/projectList/save`,
       method: 'post',
       data: inputForm
     })
   }
   save2022 (inputForm) {
     return request({
-      url: `/program/projectList/save2022`,
+      url: prefix + `/program/projectList/save2022`,
       method: 'post',
       data: inputForm
     })
   }
   saveForm (inputForm) {
     return request({
-      url: `/program/projectList/saveForm`,
+      url: prefix + `/program/projectList/saveForm`,
       method: 'post',
       data: inputForm
     })
   }
   saveFormThree (inputForm) {
     return request({
-      url: `/program/projectList/saveFormThree`,
+      url: prefix + `/program/projectList/saveFormThree`,
       method: 'post',
       data: inputForm
     })
   }
   saveFormArchive (inputForm) {
     return request({
-      url: `/program/projectList/saveFormArchive`,
+      url: prefix + `/program/projectList/saveFormArchive`,
       method: 'post',
       data: inputForm
     })
   }
   delete (ids) {
     return request({
-      url: '/program/projectList/deleteById',
+      url: prefix + '/program/projectList/deleteById',
       method: 'get',
       params: {id: ids}
     })
   }
   deleteAll (ids) {
     return request({
-      url: '/program/projectList/delete',
+      url: prefix + '/program/projectList/delete',
       method: 'delete',
       params: {ids: ids}
     })
   }
   findContractPageList (params) {
     return request({
-      url: '/program/projectList/findContractPageList',
+      url: prefix + '/program/projectList/findContractPageList',
       method: 'get',
       params: params
     })
   }
   updateStatusById (data) {
     return request({
-      url: '/program/projectList/updateStatusById',
+      url: prefix + '/program/projectList/updateStatusById',
       method: 'post',
       data: data
     })
   }
   updateStatusByAuditId (data) {
     return request({
-      url: '/program/projectList/updateStatusByAuditId',
+      url: prefix + '/program/projectList/updateStatusByAuditId',
       method: 'post',
       data: data
     })
   }
   updateStatusByArchiveId (data) {
     return request({
-      url: '/program/projectList/updateStatusByArchiveId',
+      url: prefix + '/program/projectList/updateStatusByArchiveId',
       method: 'post',
       data: data
     })
   }
   saveReportNo (id) {
     return request({
-      url: '/program/projectList/saveReportNo',
+      url: prefix + '/program/projectList/saveReportNo',
       method: 'get',
       params: {id: id}
     })
@@ -138,7 +139,7 @@ export default class ProgramProjectListInfoService {
   /* 一级校审文档下载 */
   downloadFirstAuditTpl (id, auditId1) {
     return request({
-      url: '/program/projectList/downloadFirstAuditTpl',
+      url: prefix + '/program/projectList/downloadFirstAuditTpl',
       method: 'get',
       params: {id: id, auditId1: auditId1},
       responseType: 'blob'
@@ -147,7 +148,7 @@ export default class ProgramProjectListInfoService {
   /* 二级校审文档下载 */
   downloadSecondAuditTpl (id, auditId2) {
     return request({
-      url: '/program/projectList/downloadSecondAuditTpl',
+      url: prefix + '/program/projectList/downloadSecondAuditTpl',
       method: 'get',
       params: {id: id, auditId2: auditId2},
       responseType: 'blob'
@@ -156,7 +157,7 @@ export default class ProgramProjectListInfoService {
   /* 三级校审文档下载 */
   downloadThirdlyAuditTpl (id, auditId3) {
     return request({
-      url: '/program/projectList/downloadThirdlyAuditTpl',
+      url: prefix + '/program/projectList/downloadThirdlyAuditTpl',
       method: 'get',
       params: {id: id, auditId3: auditId3},
       responseType: 'blob'
@@ -165,7 +166,7 @@ export default class ProgramProjectListInfoService {
   /* 三级校审文档下载 */
   downloadProofreadAuditTpl (id) {
     return request({
-      url: '/program/projectList/downloadProofreadAuditTpl',
+      url: prefix + '/program/projectList/downloadProofreadAuditTpl',
       method: 'get',
       params: {id: id},
       responseType: 'blob'
@@ -174,7 +175,7 @@ export default class ProgramProjectListInfoService {
   /* 三级校审文档下载 */
   downloadAuditRecordFormAfterBindingTpl (id) {
     return request({
-      url: '/program/projectList/downloadAuditRecordFormAfterBindingTpl',
+      url: prefix + '/program/projectList/downloadAuditRecordFormAfterBindingTpl',
       method: 'get',
       params: {id: id},
       responseType: 'blob'
@@ -183,7 +184,7 @@ export default class ProgramProjectListInfoService {
   /* 三级校审文档下载 */
   downloadReportAusstellungTpl (id) {
     return request({
-      url: '/program/projectList/downloadReportAusstellungTpl',
+      url: prefix + '/program/projectList/downloadReportAusstellungTpl',
       method: 'get',
       params: {id: id},
       responseType: 'blob'
@@ -191,13 +192,13 @@ export default class ProgramProjectListInfoService {
   }
   getHaveProjectIds () {
     return request({
-      url: '/program/projectList/getHaveProjectIds',
+      url: prefix + '/program/projectList/getHaveProjectIds',
       method: 'get'
     })
   }
   findByProIdAndLevel (programId, auditLevel) {
     return request({
-      url: '/program/projectList/findByProIdAndLevel',
+      url: prefix + '/program/projectList/findByProIdAndLevel',
       method: 'get',
       params: {programId: programId, auditLevel: auditLevel}
     })

+ 6 - 5
src/api/program/ProgramServiceTypeService.js

@@ -1,37 +1,38 @@
 import request from '@/utils/httpRequest'
+import { ASSESS_PATH as prefix } from "../AppPath";
 
 export default class ProgramServiceTypeService {
   list (params) {
     return request({
-      url: '/program/service_type/list',
+      url: prefix + '/program/service_type/list',
       method: 'get',
       params: params
     })
   }
   queryById (id) {
     return request({
-      url: '/program/service_type/queryById',
+      url: prefix + '/program/service_type/queryById',
       method: 'get',
       params: {id: id}
     })
   }
   save (inputForm) {
     return request({
-      url: `/program/service_type/save`,
+      url: prefix + `/program/service_type/save`,
       method: 'post',
       data: inputForm
     })
   }
   delete (ids) {
     return request({
-      url: '/program/service_type/delete',
+      url: prefix + '/program/service_type/delete',
       method: 'delete',
       params: {ids: ids}
     })
   }
   getList () {
     return request({
-      url: '/program/service_type/getList',
+      url: prefix + '/program/service_type/getList',
       method: 'get',
       params: {}
     })

+ 6 - 5
src/api/program/ProgramTypeDictService.js

@@ -1,37 +1,38 @@
 import request from '@/utils/httpRequest'
+import { ASSESS_PATH as prefix } from "../AppPath";
 
 export default class ProgramTypeDictService {
   list (params) {
     return request({
-      url: '/program/configuration/type/list',
+      url: prefix + '/program/configuration/type/list',
       method: 'get',
       params: params
     })
   }
   queryById (id) {
     return request({
-      url: '/program/configuration/type/queryById',
+      url: prefix + '/program/configuration/type/queryById',
       method: 'get',
       params: {id: id}
     })
   }
   getList () {
     return request({
-      url: '/program/configuration/type/getList',
+      url: prefix + '/program/configuration/type/getList',
       method: 'get',
       params: {}
     })
   }
   save (inputForm) {
     return request({
-      url: `/program/configuration/type/save`,
+      url: prefix + `/program/configuration/type/save`,
       method: 'post',
       data: inputForm
     })
   }
   delete (ids) {
     return request({
-      url: '/program/configuration/type/delete',
+      url: prefix + '/program/configuration/type/delete',
       method: 'delete',
       params: {ids: ids}
     })

+ 6 - 5
src/api/program/ProgramTypeFileDictService.js

@@ -1,37 +1,38 @@
 import request from '@/utils/httpRequest'
+import { ASSESS_PATH as prefix } from "../AppPath";
 
 export default class ProgramTypeDictService {
   list (params) {
     return request({
-      url: '/program/project/list',
+      url: prefix + '/program/project/list',
       method: 'post',
       data: params
     })
   }
   queryById (id) {
     return request({
-      url: '/program/project/findByFileId',
+      url: prefix + '/program/project/findByFileId',
       method: 'get',
       params: {id: id}
     })
   }
   getFileList (inputForm) {
     return request({
-      url: '/program/project/getFileList',
+      url: prefix + '/program/project/getFileList',
       method: 'post',
       data: inputForm
     })
   }
   save (inputForm) {
     return request({
-      url: `/program/project/save`,
+      url: prefix + `/program/project/save`,
       method: 'post',
       data: inputForm
     })
   }
   delete (ids) {
     return request({
-      url: '/program/project/deleteById',
+      url: prefix + '/program/project/deleteById',
       method: 'delete',
       params: {id: ids}
     })

+ 36 - 0
src/api/sys/SerialnumTplService.js

@@ -0,0 +1,36 @@
+import request from '@/utils/httpRequest'
+import { PUBLIC_MODULES_PATH as prefix } from "../AppPath";
+
+export default class SerialnumTplService {
+  list (param) {
+    return request({
+      url: prefix + `/sys/template/list`,
+      method: 'get',
+      params: param
+    })
+  }
+
+  remove (url) {
+    return request({
+      url: prefix + '/sys/template/remove',
+      method: 'get',
+      params: {id: url}
+    })
+  }
+
+  findById (id) {
+    return request({
+      url: prefix + '/sys/template/findById',
+      method: 'get',
+      params: {id: id}
+    })
+  }
+
+  save (param) {
+    return request({
+      url: prefix + '/sys/template/save',
+      method: 'post',
+      data: param
+    })
+  }
+}

+ 14 - 13
src/api/sys/WorkClientService.js

@@ -1,93 +1,94 @@
 import request from '@/utils/httpRequest'
+import { ASSESS_PATH as prefix } from "../AppPath";
 
 export default class WorkClientService {
   list (param) {
     return request({
-      url: '/workClientInfo/workClientInfo/list',
+      url: prefix + '/workClientInfo/workClientInfo/list',
       method: 'get',
       params: param
     })
   }
   componentList (param) {
     return request({
-      url: '/workClientInfo/workClientInfo/componentList',
+      url: prefix + '/workClientInfo/workClientInfo/componentList',
       method: 'get',
       params: param
     })
   }
   componentById (id) {
     return request({
-      url: '/workClientInfo/workClientInfo/componentById',
+      url: prefix + '/workClientInfo/workClientInfo/componentById',
       method: 'get',
       params: {id: id}
     })
   }
   save (param) {
     return request({
-      url: '/workClientInfo/workClientInfo/save',
+      url: prefix + '/workClientInfo/workClientInfo/save',
       method: 'post',
       data: param
     })
   }
   remove (url) {
     return request({
-      url: '/workClientInfo/workClientInfo/remove',
+      url: prefix + '/workClientInfo/workClientInfo/remove',
       method: 'get',
       params: {id: url}
     })
   }
   findById (id) {
     return request({
-      url: '/workClientInfo/workClientInfo/findById',
+      url: prefix + '/workClientInfo/workClientInfo/findById',
       method: 'get',
       params: {id: id}
     })
   }
   update (param) {
     return request({
-      url: '/workClientInfo/workClientInfo/update',
+      url: prefix + '/workClientInfo/workClientInfo/update',
       method: 'post',
       data: param
     })
   }
   findListByName (name) {
     return request({
-      url: '/workClientInfo/workClientInfo/findListByName',
+      url: prefix + '/workClientInfo/workClientInfo/findListByName',
       method: 'get',
       params: {name: name}
     })
   }
   enterpriseSearchByName (name) {
     return request({
-      url: '/workClientInfo/workClientInfo/enterpriseSearchByName',
+      url: prefix + '/workClientInfo/workClientInfo/enterpriseSearchByName',
       method: 'post',
       params: {keyword: name}
     })
   }
   enterpriseTicketInfo (name) {
     return request({
-      url: '/workClientInfo/workClientInfo/enterpriseTicketInfo',
+      url: prefix + '/workClientInfo/workClientInfo/enterpriseTicketInfo',
       method: 'post',
       params: {id: name}
     })
   }
   isExist (param) {
     return request({
-      url: '/workClientInfo/workClientInfo/isExist',
+      url: prefix + '/workClientInfo/workClientInfo/isExist',
       method: 'get',
       params: {param: param}
     })
   }
   haveUscCode (id, uscCode) {
     return request({
-      url: '/workClientInfo/workClientInfo/haveUscCode',
+      url: prefix + '/workClientInfo/workClientInfo/haveUscCode',
       method: 'get',
       params: {id: id, uscCode: uscCode}
     })
   }
   haveWorkClient (id, name) {
     return request({
-      url: '/workClientInfo/workClientInfo/haveWorkClient',
+      url: prefix + '/workClientInfo/workClientInfo/haveWorkClient',
       method: 'get',
       params: {id: id, name: name}
     })

+ 9 - 8
src/api/sys/WorkContractBorrowService.js

@@ -1,58 +1,59 @@
 import request from '@/utils/httpRequest'
+import { ASSESS_PATH as prefix } from "../AppPath";
 
 export default class WorkContractService {
   save (param) {
     return request({
-      url: '/workContract/workContractBorrow/save',
+      url: prefix + '/workContract/workContractBorrow/save',
       method: 'post',
       data: param
     })
   }
   updateStatusById (param) {
     return request({
-      url: '/workContract/workContractBorrow/updateStatusById',
+      url: prefix + '/workContract/workContractBorrow/updateStatusById',
       method: 'post',
       data: param
     })
   }
   updateStatusByContractInfoId (param) {
     return request({
-      url: '/workContract/workContractBorrow/updateStatusByContractInfoId',
+      url: prefix + '/workContract/workContractBorrow/updateStatusByContractInfoId',
       method: 'post',
       data: param
     })
   }
   findById (id) {
     return request({
-      url: '/workContract/workContractBorrow/findById',
+      url: prefix + '/workContract/workContractBorrow/findById',
       method: 'get',
       params: {id: id}
     })
   }
   findByContractInfoId (id) {
     return request({
-      url: '/workContract/workContractBorrow/findByContractInfoId',
+      url: prefix + '/workContract/workContractBorrow/findByContractInfoId',
       method: 'get',
       params: {id: id}
     })
   }
   updateMessageStatusById (param) {
     return request({
-      url: '/workContract/workContractBorrow/updateMessageStatusById',
+      url: prefix + '/workContract/workContractBorrow/updateMessageStatusById',
       method: 'post',
       data: param
     })
   }
   deleteById (id) {
     return request({
-      url: '/workContract/workContractBorrow/deleteById',
+      url: prefix + '/workContract/workContractBorrow/deleteById',
       method: 'get',
       params: {id: id}
     })
   }
   findMessageList (id) {
     return request({
-      url: '/workContract/workContractBorrow/findMessageList',
+      url: prefix + '/workContract/workContractBorrow/findMessageList',
       method: 'get',
       params: {id: id}
     })

+ 5 - 4
src/api/sys/WorkContractFileService.js

@@ -1,30 +1,31 @@
 import request from '@/utils/httpRequest'
+import { ASSESS_PATH as prefix } from "../AppPath";
 
 export default class WorkContractService {
   save (param) {
     return request({
-      url: '/workContract/workContractFile/save',
+      url: prefix + '/workContract/workContractFile/save',
       method: 'post',
       data: param
     })
   }
   updateStatusById (param) {
     return request({
-      url: '/workContract/workContractFile/updateStatusById',
+      url: prefix + '/workContract/workContractFile/updateStatusById',
       method: 'post',
       data: param
     })
   }
   findById (id) {
     return request({
-      url: '/workContract/workContractFile/findById',
+      url: prefix + '/workContract/workContractFile/findById',
       method: 'get',
       params: {id: id}
     })
   }
   findByContractInfoId (id) {
     return request({
-      url: '/workContract/workContractFile/findByContractInfoId',
+      url: prefix + '/workContract/workContractFile/findByContractInfoId',
       method: 'get',
       params: {id: id}
     })

+ 6 - 5
src/api/sys/WorkContractService.js

@@ -1,37 +1,38 @@
 import request from '@/utils/httpRequest'
+import { ASSESS_PATH as prefix } from "../AppPath";
 
 export default class WorkContractService {
   list (param) {
     return request({
-      url: '/workContract/workContractInfo/list',
+      url: prefix + '/workContract/workContractInfo/list',
       method: 'get',
       params: param
     })
   }
   save (param) {
     return request({
-      url: '/workContract/workContractInfo/save',
+      url: prefix + '/workContract/workContractInfo/save',
       method: 'post',
       data: param
     })
   }
   remove (url) {
     return request({
-      url: '/workContract/workContractInfo/remove',
+      url: prefix + '/workContract/workContractInfo/remove',
       method: 'get',
       params: {id: url}
     })
   }
   findById (id) {
     return request({
-      url: '/workContract/workContractInfo/findById',
+      url: prefix + '/workContract/workContractInfo/findById',
       method: 'get',
       params: {id: id}
     })
   }
   updateStatusById (param) {
     return request({
-      url: '/workContract/workContractInfo/updateStatusById',
+      url: prefix + '/workContract/workContractInfo/updateStatusById',
       method: 'post',
       data: param
     })

+ 33 - 0
src/api/sys/officeService.js

@@ -41,4 +41,37 @@ export default {
 			params: params,
 		});
 	},
+
+	treeData2(params) {
+		return request({
+			url: prefix + "/sys/office/treeData2",
+			method: "get",
+			params: params,
+		});
+	},
+	listTree(params) {
+		return request({
+			url: prefix + "/sys/office/list_tree",
+			method: "get",
+			params: params,
+		});
+	},
+	getSecondLevelData() {
+		return request({
+			url: prefix + "/sys/office/getSecondLevelData",
+			method: "get",
+		});
+	},
+	getAllCompany() {
+		return request({
+			url: prefix + "/sys/office/get_all_company",
+			method: "get",
+		});
+	},
+	checkLoginIsPgOrKj() {
+		return request({
+			url: prefix + "/sys/office/checkLoginIsPgOrKj",
+			method: "get",
+		});
+	},
 };

+ 43 - 0
src/api/sys/userService.js

@@ -89,4 +89,47 @@ export default {
 			data: data,
 		});
 	},
+
+	is() {
+		return request({
+			url: prefix + `/sys/user/isAdmin`,
+			method: "get",
+		});
+	},
+
+	queryDetailList(ids) {
+		return request({
+			url: prefix + `/sys/user/queryDetailList`,
+			method: "get",
+			params: { ids: ids },
+		});
+	},
+	queryDetailById(id) {
+		return request({
+			url: prefix + `/sys/user/queryDetailById`,
+			method: "get",
+			params: { id: id },
+		});
+	},
+	isUpdatePassword() {
+		return request({
+			url: prefix + `/sys/user/isUpdatePassword`,
+			method: "get",
+			params: {},
+		});
+	},
+
+	getOffice() {
+		return request({
+			url: prefix + `/sys/office/treeData?type=2`,
+			method: "get",
+		});
+	},
+
+	updateAllUser() {
+		return request({
+			url: prefix + `/cwProjectReport/signatureCallBack/updateAllUser`,
+			method: "post",
+		});
+	},
 };

+ 71 - 68
src/components/editor/WangEditor.vue

@@ -1,4 +1,4 @@
-<template lang="html">
+<template>
   <div class="editor" style="min-width:700px; padding-right:10px">
     <div ref="toolbar" class="toolbar">
     </div>
@@ -8,7 +8,7 @@
 </template>
 
 <script>
-import E from 'wangeditor'
+// import E from '@wangeditor/editor-for-vue'
 export default {
   name: 'WangEditor',
   data () {
@@ -31,92 +31,95 @@ export default {
       default: 0
     }
   },
+	component: {
+  	// E
+	},
   watch: {
     isClear (val) {
       // 触发清除文本域内容
-      if (val) {
-        this.editor.txt.clear()
-        this.info_ = null
-      }
+      // if (val) {
+      //   this.editor.txt.clear()
+      //   this.info_ = null
+      // }
     }
   },
   mounted () {
-    this.seteditor()
+    // this.seteditor()
   },
   methods: {
     clear () {
-      this.editor.txt.clear()
+      // this.editor.txt.clear()
     },
     init (val) {
       // 使用 v-model 时,设置初始值
-      this.editor.txt.html(val)
+      // this.editor.txt.html(val)
     },
     seteditor () {
-      this.editor = new E(this.$refs.toolbar, this.$refs.editor)
-      this.editor.customConfig.uploadImgShowBase64 = true // base 64 存储图片
-      // eslint-disable-next-line no-template-curly-in-string
-      this.editor.customConfig.uploadImgServer = `${this.$http.BASE_URL}/oss/file/webUpload/upload`// 配置服务器端地址
-      this.editor.customConfig.uploadImgHeaders = { }// 自定义 header
-      this.editor.customConfig.uploadFileName = 'file' // 后端接受上传文件的参数名
-      this.editor.customConfig.uploadImgMaxSize = 2 * 1024 * 1024 // 将图片大小限制为 2M
-      this.editor.customConfig.uploadImgMaxLength = 1 // 限制一次最多上传 3 张图片
-      this.editor.customConfig.uploadImgTimeout = 3 * 60 * 1000 // 设置超时时间
-      this.editor.customConfig.menus = [
-        'head', // 标题
-        'bold', // 粗体
-        'fontSize', // 字号
-        'fontName', // 字体
-        'italic', // 斜体
-        'underline', // 下划线
-        'strikeThrough', // 删除线
-        'foreColor', // 文字颜色
-        'backColor', // 背景颜色
-        'link', // 插入链接
-        'list', // 列表
-        'justify', // 对齐方式
-        'quote', // 引用
-        'emoticon', // 表情
-        'image', // 插入图片
-        'table', // 表格
-        'video', // 插入视频
-        'code', // 插入代码
-        'undo', // 撤销
-        'redo' // 重复
-      ]
-      this.editor.customConfig.uploadImgHooks = {
-        fail: (xhr, editor, result) => {
-          // 插入图片失败回调
-        },
-        success: (xhr, editor, result) => {
-          // 图片上传成功回调
-          // editor.txt.append('<img style="max-width: 650px" src=' + result.lsUrl + '></img>')
-          editor.uploadImg.insertLinkImg(result.lsUrl)
-          this.$emit('getUrl', result.url, result.lsUrl, this.index)
-        },
-        timeout: (xhr, editor) => {
-          // 网络超时的回调
-        },
-        error: (xhr, editor) => {
-          // 图片上传错误的回调
-        },
-        customInsert: (insertImg, result, editor) => {
-          // 图片上传成功,插入图片的回调
-        }
-      }
-      this.editor.customConfig.onchange = (html) => {
-        this.info_ = html // 绑定当前逐渐地值
-        this.$emit('change', this.info_) // 将内容同步到父组件中
-      }
-      // 创建富文本编辑器
-      this.editor.create()
+      // this.editor = new E(this.$refs.toolbar, this.$refs.editor)
+      // this.editor.customConfig.uploadImgShowBase64 = true // base 64 存储图片
+      // // eslint-disable-next-line no-template-curly-in-string
+      // this.editor.customConfig.uploadImgServer = `${this.$http.BASE_URL}/oss/file/webUpload/upload`// 配置服务器端地址
+      // this.editor.customConfig.uploadImgHeaders = { }// 自定义 header
+      // this.editor.customConfig.uploadFileName = 'file' // 后端接受上传文件的参数名
+      // this.editor.customConfig.uploadImgMaxSize = 2 * 1024 * 1024 // 将图片大小限制为 2M
+      // this.editor.customConfig.uploadImgMaxLength = 1 // 限制一次最多上传 3 张图片
+      // this.editor.customConfig.uploadImgTimeout = 3 * 60 * 1000 // 设置超时时间
+      // this.editor.customConfig.menus = [
+      //   'head', // 标题
+      //   'bold', // 粗体
+      //   'fontSize', // 字号
+      //   'fontName', // 字体
+      //   'italic', // 斜体
+      //   'underline', // 下划线
+      //   'strikeThrough', // 删除线
+      //   'foreColor', // 文字颜色
+      //   'backColor', // 背景颜色
+      //   'link', // 插入链接
+      //   'list', // 列表
+      //   'justify', // 对齐方式
+      //   'quote', // 引用
+      //   'emoticon', // 表情
+      //   'image', // 插入图片
+      //   'table', // 表格
+      //   'video', // 插入视频
+      //   'code', // 插入代码
+      //   'undo', // 撤销
+      //   'redo' // 重复
+      // ]
+      // this.editor.customConfig.uploadImgHooks = {
+      //   fail: (xhr, editor, result) => {
+      //     // 插入图片失败回调
+      //   },
+      //   success: (xhr, editor, result) => {
+      //     // 图片上传成功回调
+      //     // editor.txt.append('<img style="max-width: 650px" src=' + result.lsUrl + '></img>')
+      //     editor.uploadImg.insertLinkImg(result.lsUrl)
+      //     this.$emit('getUrl', result.url, result.lsUrl, this.index)
+      //   },
+      //   timeout: (xhr, editor) => {
+      //     // 网络超时的回调
+      //   },
+      //   error: (xhr, editor) => {
+      //     // 图片上传错误的回调
+      //   },
+      //   customInsert: (insertImg, result, editor) => {
+      //     // 图片上传成功,插入图片的回调
+      //   }
+      // }
+      // this.editor.customConfig.onchange = (html) => {
+      //   this.info_ = html // 绑定当前逐渐地值
+      //   this.$emit('change', this.info_) // 将内容同步到父组件中
+      // }
+      // // 创建富文本编辑器
+      // this.editor.create()
     },
     disable () {
       // 禁用编辑功能
-      this.editor.$textElem.attr('contenteditable', false)
+      // this.editor.$textElem.attr('contenteditable', false)
     },
     enable () {
       // 开启编辑功能
-      this.editor.$textElem.attr('contenteditable', true)
+      // this.editor.$textElem.attr('contenteditable', true)
     }
   }
 }

+ 51 - 48
src/components/editor/WangEditorNoMenu.vue

@@ -1,4 +1,4 @@
-<template lang="html">
+<template>
   <div class="editor" style="min-width:700px; padding-right:10px">
     <div ref="toolbar" class="toolbar">
     </div>
@@ -8,15 +8,18 @@
 </template>
 
 <script>
-import E from 'wangeditor'
+// import E from '@wangeditor/editor'
 export default {
-  name: 'WangEditor',
+  name: 'WangEditorNoMenu',
   data () {
     return {
       editor: null,
       info_: null
     }
   },
+  component: {
+  	// E
+  },
   model: {
     prop: 'value',
     event: 'change'
@@ -28,35 +31,35 @@ export default {
     }
   },
   watch: {
-    isClear (val) {
-      // 触发清除文本域内容
-      if (val) {
-        this.editor.txt.clear()
-        this.info_ = null
-      }
-    }
+    // isClear (val) {
+    //   // 触发清除文本域内容
+    //   if (val) {
+    //     this.editor.txt.clear()
+    //     this.info_ = null
+    //   }
+    // }
   },
   mounted () {
-    this.seteditor()
+    // this.seteditor()
   },
   methods: {
     clear () {
-      this.editor.txt.clear()
+      // this.editor.txt.clear()
     },
     init (val) {
       // 使用 v-model 时,设置初始值
-      this.editor.txt.html(val)
+      // this.editor.txt.html(val)
     },
     seteditor () {
-      this.editor = new E(this.$refs.toolbar, this.$refs.editor)
-      this.editor.customConfig.uploadImgShowBase64 = true // base 64 存储图片
-      this.editor.customConfig.uploadImgServer = ''// 配置服务器端地址
-      this.editor.customConfig.uploadImgHeaders = { }// 自定义 header
-      this.editor.customConfig.uploadFileName = '' // 后端接受上传文件的参数名
-      this.editor.customConfig.uploadImgMaxSize = 2 * 1024 * 1024 // 将图片大小限制为 2M
-      this.editor.customConfig.uploadImgMaxLength = 6 // 限制一次最多上传 3 张图片
-      this.editor.customConfig.uploadImgTimeout = 3 * 60 * 1000 // 设置超时时间
-      this.editor.customConfig.menus = [
+      // this.editor = new E(this.$refs.toolbar, this.$refs.editor)
+      // this.editor.customConfig.uploadImgShowBase64 = true // base 64 存储图片
+      // this.editor.customConfig.uploadImgServer = ''// 配置服务器端地址
+      // this.editor.customConfig.uploadImgHeaders = { }// 自定义 header
+      // this.editor.customConfig.uploadFileName = '' // 后端接受上传文件的参数名
+      // this.editor.customConfig.uploadImgMaxSize = 2 * 1024 * 1024 // 将图片大小限制为 2M
+      // this.editor.customConfig.uploadImgMaxLength = 6 // 限制一次最多上传 3 张图片
+      // this.editor.customConfig.uploadImgTimeout = 3 * 60 * 1000 // 设置超时时间
+      // this.editor.customConfig.menus = [
         // 'head', // 标题
         // 'bold', // 粗体
         // 'fontSize', // 字号
@@ -77,38 +80,38 @@ export default {
         // 'code', // 插入代码
         // 'undo', // 撤销
         // 'redo' // 重复
-      ]
-      this.editor.customConfig.uploadImgHooks = {
-        fail: (xhr, editor, result) => {
-          // 插入图片失败回调
-        },
-        success: (xhr, editor, result) => {
-          // 图片上传成功回调
-        },
-        timeout: (xhr, editor) => {
-          // 网络超时的回调
-        },
-        error: (xhr, editor) => {
-          // 图片上传错误的回调
-        },
-        customInsert: (insertImg, result, editor) => {
-          // 图片上传成功,插入图片的回调
-        }
-      }
-      this.editor.customConfig.onchange = (html) => {
-        this.info_ = html // 绑定当前逐渐地值
-        this.$emit('change', this.info_) // 将内容同步到父组件中
-      }
-      // 创建富文本编辑器
-      this.editor.create()
+      // ]
+      // this.editor.customConfig.uploadImgHooks = {
+      //   fail: (xhr, editor, result) => {
+      //     // 插入图片失败回调
+      //   },
+      //   success: (xhr, editor, result) => {
+      //     // 图片上传成功回调
+      //   },
+      //   timeout: (xhr, editor) => {
+      //     // 网络超时的回调
+      //   },
+      //   error: (xhr, editor) => {
+      //     // 图片上传错误的回调
+      //   },
+      //   customInsert: (insertImg, result, editor) => {
+      //     // 图片上传成功,插入图片的回调
+      //   }
+      // }
+      // this.editor.customConfig.onchange = (html) => {
+      //   this.info_ = html // 绑定当前逐渐地值
+      //   this.$emit('change', this.info_) // 将内容同步到父组件中
+      // }
+      // // 创建富文本编辑器
+      // this.editor.create()
     },
     disable () {
       // 禁用编辑功能
-      this.editor.$textElem.attr('contenteditable', false)
+      // this.editor.$textElem.attr('contenteditable', false)
     },
     enable () {
       // 开启编辑功能
-      this.editor.$textElem.attr('contenteditable', true)
+      // this.editor.$textElem.attr('contenteditable', true)
     }
   }
 }

+ 4 - 4
src/components/treeSelect/treeSelect.vue

@@ -1,5 +1,5 @@
 <template>
-  <el-select :value="valueTitle" :size="size"  :disabled="disabled" :clearable="clearable" :placeholder="placeholderText" @clear="clearHandle">
+  <el-select v-model="valueTitle" :size="size"  :disabled="disabled" :clearable="clearable" :placeholder="placeholderText" @clear="clearHandle">
     <el-option :value="valueTitle"  :label="valueTitle" class="options">
       <el-tree  id="tree-option"
         ref="selectTree"
@@ -47,7 +47,7 @@ export default {
     /* 初始值 */
     value: {
       type: String,
-      default: () => { return null }
+      default: () => { return '' }
     },
         /* 初始值 */
     url: {
@@ -65,7 +65,7 @@ export default {
     /* 初始值 */
     label: {
       type: String,
-      default: () => { return null }
+      default: () => { return '' }
     },
     /* 可清空选项 */
     clearable: {
@@ -125,7 +125,7 @@ export default {
       this.$http({
         url: this.url,
         method: 'get'
-      }).then(({data}) => {
+      }).then((data) => {
         this.valueData = data
         this.setTreeList(this.valueData)
         this.$nextTick(() => {

+ 451 - 433
src/components/userSelect/UserSelectDialog.vue

@@ -1,442 +1,460 @@
 <template>
-  <div>
-    <el-dialog
-    title="用户选择"
-    width="1000px"
-    :close-on-click-modal="false"
-    :append-to-body="true"
-     v-dialogDrag
-     class="userDialog"
-    :visible.sync="visible">
-    <el-container style="height: 500px">
-      <el-aside width="200px">
+	<el-dialog
+		v-model="dialogVisible"
+		title="人员选择"
+		:width="type == 1 ? 680 : 460"
+		destroy-on-close
+		append-to-body
+		@closed="$emit('closed')"
+		draggable
+	>
+		<template v-if="type == 1">
+			<div class="user-select">
+				<div class="user-select__left">
+					<div class="user-select__search">
+						<el-input
+							v-model="searchForm.name"
+							prefix-icon="search"
+							placeholder="搜索成员"
+						>
+							<template #append>
+								<el-button
+									icon="search"
+									@click="search"
+								></el-button>
+							</template>
+						</el-input>
+					</div>
+					<div class="user-select__select">
+						<div
+							class="user-select__tree"
+							v-loading="showGrouploading"
+						>
+							<el-scrollbar>
+								<el-tree
+									class="menu"
+									ref="groupTree"
+									:data="group"
+									node-key="id"
+									:props="{
+										label: 'name',
+										children: 'children',
+									}"
+									highlight-current
+									:expand-on-click-node="false"
+									:current-node-key="groupId"
+									@node-click="groupClick"
+								>
+									<template #default="{ node, data }">
+										<span
+											class="custom-tree-node el-tree-node__label"
+										>
+											<span class="label">
+												<el-icon
+													:size="16"
+													class="m-r-5"
+												>
+													<qiye
+														v-if="data.type === '1'"
+														:style="{
+															color:
+																$TOOL.data.get(
+																	'IS_PRIMARY_TENANT'
+																) &&
+																data.tenantDTO &&
+																$utils.getTenantColorById(
+																	data
+																		.tenantDTO
+																		.id
+																),
+														}"
+													></qiye>
+													<bumen
+														v-else
+														:style="{
+															color:
+																$TOOL.data.get(
+																	'IS_PRIMARY_TENANT'
+																) &&
+																data.tenantDTO &&
+																$utils.getTenantColorById(
+																	data
+																		.tenantDTO
+																		.id
+																),
+														}"
+													></bumen>
+												</el-icon>
+												{{ node.label }}
+											</span>
+										</span>
+									</template>
+								</el-tree>
+							</el-scrollbar>
+						</div>
+						<div
+							class="user-select__user"
+							v-loading="showUserloading"
+						>
+							<div class="user-select__user__list">
+								<el-scrollbar ref="userScrollbar">
+									<el-tree
+										class="menu"
+										ref="userTree"
+										:data="user"
+										node-key="id"
+										highlight-current
+										:props="{
+											key: 'id',
+											label: 'name',
+											children: 'children',
+										}"
+										:default-checked-keys="selectedIds"
+										:show-checkbox="limit > 1"
+										check-on-click-node
+										@check-change="userClick"
+									></el-tree>
+								</el-scrollbar>
+							</div>
+							<footer>
+								<el-pagination
+									background
+									layout="prev,next"
+									small
+									:total="total"
+									:page-size="pageSize"
+									v-model:currentPage="currentPage"
+									@current-change="paginationChange"
+								></el-pagination>
+							</footer>
+						</div>
+					</div>
+				</div>
+				<div class="user-select__toicon">
+					<el-icon><arrow-right /></el-icon>
+				</div>
+				<div class="user-select__selected">
+					<header>已选 ({{ selected.length }})</header>
+					<ul>
+						<el-scrollbar>
+							<li
+								v-for="(item, index) in selected"
+								:key="item.id"
+							>
+								<span class="name">
+									<el-avatar
+										v-if="
+											$TOOL.data.get('IS_PRIMARY_TENANT')
+										"
+										:size="30"
+										:style="{
+											background:
+												$utils.getTenantColorById(
+													item.tenantId
+												) + '!important',
+										}"
+									>{{
+											item.name.substring(0, 1)
+										}}</el-avatar
+									>
+									<el-avatar v-else>{{
+										item.name.substring(0, 1)
+									}}</el-avatar>
+									<label>{{ item.name }}</label>
+								</span>
+								<span class="delete">
+									<el-button
+										text
+										type="primary"
+										icon="del-filled"
+										circle
+										size="small"
+										@click="deleteSelected(index)"
+									></el-button>
+								</span>
+							</li>
+						</el-scrollbar>
+					</ul>
+				</div>
+			</div>
+		</template>
 
-        <el-card class="org">
-          <div slot="header" class="clearfix">
-            <el-input
-              placeholder="请输入组织机构过滤"
-              size="small"
-              v-model="filterText">
-            </el-input>
-          </div>
-           <el-tree
-            :data="officeTreeData"
-            :props="{
-                  value: 'id',             // ID字段名
-                  label: 'name',         // 显示名称
-                  children: 'children'    // 子级字段名
-                }"
-            default-expand-all
-            highlight-current
-            node-key="id"
-            :render-content="renderContent"
-            :filter-node-method="filterNode"
-            :expand-on-click-node="false"
-            @node-click="handleNodeClick"
-            ref="officeTree">
-          </el-tree>
-        </el-card>
-      </el-aside>
+		<template #footer>
+			<el-button @click="dialogVisible = false">取 消</el-button>
+			<el-button type="primary" @click="save">确 认</el-button>
+		</template>
+	</el-dialog>
+</template>
 
-    <el-container>
-      <el-header style="text-align: left; font-size: 12px;height:30px">
-        <el-form size="small" :inline="true" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
-            <el-form-item prop="loginName">
-              <el-input size="small" v-model="searchForm.loginName" placeholder="登录名" clearable></el-input>
-            </el-form-item>
+<script>
+	import userService from "@/api/sys/userService";
+	import officeService from "@/api/sys/officeService";
+	export default {
+		props: {
+			tenantId: { type: String, default: null },
+			limit: {
+				type: Number,
+				default: 999999,
+			},
+		},
+		data() {
+			return {
+				searchForm: {
+					loginName: "",
+					companyDTO: {
+						id: "",
+					},
+					officeDTO: {
+						id: "",
+					},
+					name: "",
+				},
 
-            <el-form-item>
-              <el-button  type="primary" @click="refreshList()" size="small" icon="el-icon-search">查询</el-button>
-              <el-button @click="resetSearch()" size="small" icon="el-icon-refresh-right">重置</el-button>
-            </el-form-item>
-          </el-form>
-      </el-header>
+				dialogVisible: false,
+				showGrouploading: false,
+				showUserloading: false,
+				groupId: "",
+				pageSize: 10,
+				total: 0,
+				currentPage: 1,
+				group: [],
+				user: [],
+				role: [],
+				type: 1,
+				selected: [],
+				value: [],
+			};
+		},
+		computed: {
+			selectedIds() {
+				return this.selected.map((t) => t.id);
+			},
+		},
+		methods: {
+			//打开赋值
+			open(data) {
+				this.value = data || [];
+				this.selected = JSON.parse(JSON.stringify(data || []));
+				this.dialogVisible = true;
+				this.getGroup();
+				this.getUser();
+			},
+			//获取组织
+			async getGroup() {
+				this.showGrouploading = true;
+				// officeService.treeData().then((data) => {
+				// 	this.officeTreeData = data
+				// 	this.showGrouploading = false;
+				// })
+				var res = await officeService.treeData({ tenantId: this.tenantId });
+				this.showGrouploading = false;
+				var allNode = { id: "", type: "1", name: "所有" };
+				res.unshift(allNode);
+				this.group = res;
+			},
+			//获取用户
+			async getUser() {
+				this.showUserloading = true;
+				userService
+					.list({
+						current: this.currentPage,
+						size: this.pageSize,
+						...this.searchForm,
+						"tenantDTO.id": this.tenantId,
+					})
+					.then((data) => {
+						this.user = data.records;
+						this.total = data.total;
+						// this.pageNo = data.current
+						this.showUserloading = false;
+						this.$refs.userScrollbar.setScrollTop(0);
+					});
+			},
+			//组织点击
+			groupClick(data) {
+				if (data.type === "1") {
+					this.searchForm.companyDTO.id = data.id;
+					this.searchForm.officeDTO.id = "";
+				} else {
+					this.searchForm.companyDTO.id = "";
+					this.searchForm.officeDTO.id = data.id;
+				}
+				this.currentPage = 1;
+				this.groupId = data.id;
+				this.getUser();
+			},
+			//用户点击
+			userClick(data, checked) {
+				if (checked) {
+					if (this.limit === 1) {
+						this.selected = [
+							{
+								id: data.id,
+								name: data.name,
+								tenantId: data.tenantDTO?.id,
+							},
+						];
+					} else {
+						this.selected.push({
+							id: data.id,
+							name: data.name,
+							tenantId: data.tenantDTO?.id,
+						});
+					}
+				} else {
+					this.selected = this.selected.filter(
+						(item) => item.id != data.id
+					);
+				}
+			},
+			//用户分页点击
+			paginationChange() {
+				this.getUser();
+			},
+			//用户搜索
+			search() {
+				// this.groupId = ''
+				// this.$refs.groupTree.setCurrentKey(this.groupId)
+				this.currentPage = 1;
+				this.getUser();
+			},
+			//删除已选
+			deleteSelected(index) {
+				this.selected.splice(index, 1);
+				console.log(this.selected);
+				if (this.type == 1) {
+					this.$refs.userTree.setCheckedKeys(this.selectedIds);
+				} else if (this.type == 2) {
+					this.$refs.groupTree.setCheckedKeys(this.selectedIds);
+				}
+			},
+			//提交保存
+			save() {
+				this.value.splice(0, this.value.length);
+				this.selected.map((item) => {
+					this.value.push(item);
+				});
+				if (this.limit < this.value.length) {
+					this.$message.error(`你最多只能选择${this.limit}个用户`);
+					return;
+				}
+				this.$emit("doSubmit", this.value);
+				this.dialogVisible = false;
+			},
+		},
+	};
+</script>
 
-      <el-main>
-        <el-table
-          :data="dataList"
-          v-loading="loading"
-          size="small"
-          border
-          ref="userTable"
-          @selection-change="selectionChangeHandle"
-          @sort-change="sortChangeHandle"
-          height="calc(100% - 40px)"
-          style="width: 100%;">
-          <el-table-column
-            header-align="center"
-            align="center"
-            v-if="limit <= 1"
-            width="50">
-              <template slot-scope="scope">
-                  <el-radio :label="scope.row.id" :value="dataListAllSelections[0]&&dataListAllSelections[0].id" @change.native="getTemplateRow(scope.$index,scope.row)"><span></span></el-radio>
-              </template>
-          </el-table-column>
-          <el-table-column
-            type="selection"
-            header-align="center"
-            v-if="limit > 1"
-            align="center"
-            width="50">
-          </el-table-column>
-          <el-table-column
-            prop="photo"
-            header-align="center"
-            align="center"
-            label="头像">
-            <template slot-scope="scope">
-              <img :src="scope.row.photo === ''?'/static/img/avatar.png':scope.row.photo" style="height:35px"/>
-            </template>
-          </el-table-column>
-          <el-table-column
-            prop="loginName"
-            header-align="center"
-            align="center"
-            sortable="custom"
-            min-width="90"
-            label="登录名">
-          </el-table-column>
-          <el-table-column
-            prop="name"
-            header-align="center"
-            align="真实姓名"
-            sortable="custom"
-            min-width="90"
-            label="用户名">
-          </el-table-column>
-          <el-table-column
-            prop="companyDTO.name"
-            header-align="center"
-            align="center"
-            sortable="custom"
-            min-width="110"
-            label="所属机构">
-          </el-table-column>
-          <el-table-column
-            prop="officeDTO.name"
-            header-align="center"
-            align="center"
-            sortable="custom"
-            min-width="110"
-            label="所属部门">
-          </el-table-column>
-          <el-table-column
-            prop="loginFlag"
-            header-align="center"
-            align="center"
-            min-width="100"
-            label="状态">
-            <template slot-scope="scope">
-              <el-tag v-if="scope.row.loginFlag === '1'" size="small" type="success">正常</el-tag>
-              <el-tag v-else-if="scope.row.loginFlag === '0'" size="small" type="danger">禁用</el-tag>
-            </template>
-          </el-table-column>
-        </el-table>
-        <el-pagination
-          @size-change="sizeChangeHandle"
-          @current-change="currentChangeHandle"
-          :current-page="pageNo"
-          :page-sizes="[5, 10, 50, 100]"
-          :page-size="pageSize"
-          :total="total"
-          layout="total, sizes, prev, pager, next, jumper">
-        </el-pagination>
-      </el-main>
-    </el-container>
+<style scoped>
+	.user-select {
+		display: flex;
+	}
+	.user-select__left {
+		width: 400px;
+	}
+	.user-select__right {
+		flex: 1;
+	}
+	.user-select__selected li .name .el-avatar {
+		margin-right: 2px;
+		height: 10;
+		width: 25px;
+		height: 25px;
+	}
+	.user-select__search {
+		padding-bottom: 10px;
+	}
 
-    <el-aside width="200px">
-      <el-tag
-        :key="tag.id"
-        v-for="tag in dataListAllSelections"
-        closable
-        :disable-transitions="false"
-        @close="del(tag)">
-        {{tag.name}}
-      </el-tag>
-  </el-aside>
-</el-container>
-     <span slot="footer" class="dialog-footer">
-      <el-button size="small" @click="visible = false" icon="el-icon-circle-close">关闭</el-button>
-      <el-button size="small" type="primary" icon="el-icon-circle-check" @click="doSubmit()">确定</el-button>
-    </span>
-    </el-dialog>
+	.user-select__select {
+		display: flex;
+		border: 1px solid var(--el-border-color-light);
+		background: var(--el-color-white);
+	}
+	.user-select__tree {
+		width: 200px;
+		height: 300px;
+		border-right: 1px solid var(--el-border-color-light);
+	}
+	.user-select__user {
+		width: 200px;
+		height: 300px;
+		display: flex;
+		flex-direction: column;
+	}
+	.user-select__user__list {
+		flex: 1;
+		overflow: auto;
+	}
+	.user-select__user footer {
+		height: 36px;
+		padding-top: 5px;
+		border-top: 1px solid var(--el-border-color-light);
+	}
 
-  </div>
-</template>
+	.user-select__toicon {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		margin: 0 10px;
+	}
+	.user-select__toicon i {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		background: #ccc;
+		width: 20px;
+		height: 20px;
+		text-align: center;
+		line-height: 20px;
+		border-radius: 50%;
+		color: #fff;
+	}
 
-<script>
-  export default {
-    data () {
-      return {
-        searchForm: {
-          loginName: '',
-          companyDTO: {
-            id: ''
-          },
-          officeDTO: {
-            id: ''
-          },
-          name: ''
-        },
-        filterText: '',
-        dataListAllSelections: [],   // 所有选中的数据包含跨页数据
-        dataListSelections: [],
-        idKey: 'id', // 标识列表数据中每一行的唯一键的名称(需要按自己的数据改一下)
-        dataList: [],
-        dynamicTags: [],
-        officeTreeData: [],
-        pageNo: 1,
-        pageSize: 10,
-        total: 0,
-        orders: [],
-        loading: false,
-        visible: false
-      }
-    },
-    props: {
-      selectData: {
-        type: Array,
-        default: () => { return [] }
-      },
-      limit: {
-        type: Number,
-        default: 999999
-      }
-    },
-    watch: {
-      filterText (val) {
-        this.$refs.officeTree.filter(val)
-      }
-    },
-    methods: {
-      init () {
-        this.visible = true
-        this.$nextTick(() => {
-          this.dataListAllSelections = JSON.parse(JSON.stringify(this.selectData))
-          this.refreshTree()
-          this.resetSearch()
-        })
-      },
-      renderContent (h, { node, data, store }) {
-        return (
-              <span class="custom-tree-node">
-                {
-                  data.type === '1' ? <i class="fa fa-sitemap"></i> : <i class="fa fa-users"></i>
-                }
-                <span class="text">{node.label}</span>
-              </span>
-        )
-      },
-      getTemplateRow (index, row) {                                 // 获取选中数据
-        this.dataListSelections = [row]
-        this.$nextTick(() => {
-          this.changePageCoreRecordData()
-        })
-      },
-           // 设置选中的方法
-      setSelectRow () {
-        if (!this.dataListAllSelections || this.dataListAllSelections.length <= 0) {
-          this.$refs.userTable.clearSelection()
-          return
-        }
-                // 标识当前行的唯一键的名称
-        let idKey = this.idKey
-        let selectAllIds = []
-        this.dataListAllSelections.forEach(row => {
-          selectAllIds.push(row[idKey])
-        })
-        this.$refs.userTable.clearSelection()
-        for (var i = 0; i < this.dataList.length; i++) {
-          if (selectAllIds.indexOf(this.dataList[i][idKey]) >= 0) {
-                        // 设置选中,记住table组件需要使用ref="table"
-            this.$refs.userTable.toggleRowSelection(this.dataList[i], true)
-          }
-        }
-      },
-            // 记忆选择核心方法
-      changePageCoreRecordData () {
-                // 标识当前行的唯一键的名称
-        let idKey = this.idKey
-        let that = this
-              // 如果总记忆中还没有选择的数据,那么就直接取当前页选中的数据,不需要后面一系列计算
-        if (this.dataListAllSelections.length <= 0) {
-          this.dataListSelections.forEach(row => {
-            that.dataListAllSelections.push(row)
-          })
-          return
-        }
-                // 总选择里面的key集合
-        let selectAllIds = []
-        this.dataListAllSelections.forEach(row => {
-          selectAllIds.push(row[idKey])
-        })
-        let selectIds = []
-                // 获取当前页选中的id
-        this.dataListSelections.forEach(row => {
-          selectIds.push(row[idKey])
-                  // 如果总选择里面不包含当前页选中的数据,那么就加入到总选择集合里
-          if (selectAllIds.indexOf(row[idKey]) < 0) {
-            that.dataListAllSelections.push(row)
-          }
-        })
-        let noSelectIds = []
-              // 得到当前页没有选中的id
-        this.dataList.forEach(row => {
-          if (selectIds.indexOf(row[idKey]) < 0) {
-            noSelectIds.push(row[idKey])
-          }
-        })
-        noSelectIds.forEach(id => {
-          if (selectAllIds.indexOf(id) >= 0) {
-            for (let i = 0; i < that.dataListAllSelections.length; i++) {
-              if (that.dataListAllSelections[i][idKey] === id) {
-                                // 如果总选择中有未被选中的,那么就删除这条
-                that.dataListAllSelections.splice(i, 1)
-                break
-              }
-            }
-          }
-        })
-      },
-     // 得到选中的所有数据
-      getAllSelectionData () {
-         // 再执行一次记忆勾选数据匹配,目的是为了在当前页操作勾选后直接获取选中数据
-        this.changePageCoreRecordData()
-      },
-      filterNode (value, data) {
-        if (!value) return true
-        return data.name.indexOf(value) !== -1
-      },
-      del (tag) {
-        this.dataListAllSelections.splice(this.dataListAllSelections.indexOf(tag), 1)
-        this.$nextTick(() => {
-          this.setSelectRow()
-        })
-      },
-      // 获取数据列表
-      refreshList () {
-        if (this.commonJS.isEmpty(this.searchForm.officeDTO.id) && this.commonJS.isEmpty(this.searchForm.companyDTO.id)) {
-          this.searchForm.selectAll = 'true'
-        }
-        this.loading = true
-        this.$http({
-          url: '/sys/user/list',
-          method: 'get',
-          params: {
-            'current': this.pageNo,
-            'size': this.pageSize,
-            'orders': this.orders,
-            ...this.searchForm
-          }
-        }).then(({data}) => {
-          this.searchForm.selectAll = ''
-          this.dataList = data.records
-          this.total = data.total
-          this.pageNo = data.current
-          this.loading = false
-          this.$nextTick(() => {
-            this.setSelectRow()
-          })
-        })
-      },
-      refreshTree () {
-        this.$http({
-          url: `/sys/office/treeData`,
-          method: 'get'
-        }).then(({data}) => {
-          this.officeTreeData = data
-        })
-      },
-      // 每页数
-      sizeChangeHandle (val) {
-        this.pageSize = val
-        this.pageNo = 1
-        this.refreshList()
-        this.$nextTick(() => {
-          this.changePageCoreRecordData()
-        })
-      },
-      // 当前页
-      currentChangeHandle (val) {
-        this.pageNo = val
-        this.refreshList()
-        this.$nextTick(() => {
-          this.changePageCoreRecordData()
-        })
-      },
-      // 多选
-      selectionChangeHandle (val) {
-        this.dataListSelections = val
-        this.$nextTick(() => {
-          this.changePageCoreRecordData()
-        })
-      },
-       // 排序
-      sortChangeHandle (column) {
-        if (column.prop === 'officeDTO.name') {
-          column.prop = 'o.name'
-        }
-        if (column.prop === 'companyDTO.name') {
-          column.prop = 'c.name'
-        }
-        this.orders = []
-        if (column.order != null) {
-          this.orders.push({column: this.$utils.toLine(column.prop), asc: column.order === 'ascending'})
-        }
-        this.refreshList()
-      },
-      handleNodeClick (data) {
-        if (data.type === '1') {
-          this.searchForm.companyDTO.id = data.id
-          this.searchForm.officeDTO.id = ''
-        } else {
-          this.searchForm.companyDTO.id = ''
-          this.searchForm.officeDTO.id = data.id
-        }
-        this.refreshList()
-      },
-      resetSearch () {
-        this.searchForm.companyDTO.id = ''
-        this.searchForm.officeDTO.id = ''
-        this.$refs.officeTree.setCurrentKey(null)
-        this.$refs.searchForm.resetFields()
-        this.refreshList()
-      },
-      doSubmit () {
-        if (this.limit < this.dataListAllSelections.length) {
-          this.$message.error(`你最多只能选择${this.limit}个用户`)
-          return
-        }
-        this.visible = false
-        this.$emit('doSubmit', this.dataListAllSelections)
-      }
-    }
-  }
-</script>
-<style lang="scss">
-.org {
-  height: 100%;
-  .el-card__header {
-    padding: 10px;
-  }
-  .el-card__body {
-    padding: 10px;
-    max-height: 520px;
-    overflow: auto;
-  }
-}
-.userDialog{
-  .el-dialog__body {
-    padding: 10px 0px 0px 10px;
-    color: #606266;
-    font-size: 14px;
-    word-break: break-all;
-  }
-  .el-main {
-    padding: 20px 20px 5px 20px;
-    .el-pagination{
-      margin-top: 5px;
-    }
-  }
-}
+	.user-select__selected {
+		height: 345px;
+		width: 200px;
+		border: 1px solid var(--el-border-color-light);
+		background: var(--el-color-white);
+	}
+	.user-select__selected header {
+		height: 43px;
+		line-height: 43px;
+		border-bottom: 1px solid var(--el-border-color-light);
+		padding: 0 15px;
+		font-size: 16px;
+	}
+	.user-select__selected ul {
+		height: 300px;
+		overflow: auto;
+	}
+	.user-select__selected li {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		padding: 5px 5px 5px 15px;
+		height: 38px;
+	}
+	.user-select__selected li .name {
+		display: flex;
+		align-items: center;
+	}
+	.user-select__selected li .name .el-avatar {
+		margin-right: 10px;
+	}
+	.user-select__selected li .delete {
+		display: none;
+	}
+	.user-select__selected li:hover {
+		background: var(--el-color-primary-light-9);
+	}
+	.user-select__selected li:hover .delete {
+		display: inline-block;
+	}
+	.user-select-role .user-select__left {
+		width: 200px;
+	}
+	.user-select-role .user-select__tree {
+		border: none;
+		height: 343px;
+	}
 </style>

+ 4 - 4
src/components/userSelect/index.vue

@@ -8,7 +8,7 @@
 </template>
 <script>
 import userSelect from './UserSelectDialog'
-import UserService from '@/api/sys/UserService'
+import userService from '@/api/sys/userService'
 export default {
   data () {
     return {
@@ -37,9 +37,9 @@ export default {
   components: {
     userSelect
   },
-  userService: null,
+  // userService: null,
   beforeCreate () {
-    this.userService = new UserService()
+    // this.userService = new UserService()
   },
   watch: {
     value: {
@@ -47,7 +47,7 @@ export default {
         this.selectData = []
         if (newVal) {
           newVal.split(',').forEach((id) => {
-            this.userService.queryById(id).then(({data}) => {
+            userService.queryById(id).then(({data}) => {
               if (data && data.id !== '') {
                 this.selectData.push(data)
               }

+ 100 - 240
src/components/workClientInfoSelect/WorkClientInfoSelectDialog.vue

@@ -3,21 +3,20 @@
     <el-dialog
     title="客户选择"
     width="1000px"
+	height="1000px"
     :close-on-click-modal="false"
     :append-to-body="true"
-     v-dialogDrag
+	draggable
      class="clientDialog"
-    :visible.sync="visible">
-    <el-container style="height: 500px">
-      <el-header style="text-align: left; font-size: 12px; height: auto; line-height: 30px">
-        <el-form size="small" height="30px" :inline="true" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
-            <el-form-item prop="name">
-              <el-input size="small" v-model="searchForm.name" placeholder="客户姓名" clearable></el-input>
+    v-model="visible">
+        <el-form size="default" :inline="true" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
+            <el-form-item prop="name" >
+              <el-input size="default" v-model="searchForm.name" placeholder="客户姓名" clearable></el-input>
             </el-form-item>
-            <el-form-item prop="uscCode">
-              <el-input size="small" v-model="searchForm.uscCode" placeholder="统一社会信用代码" clearable></el-input>
+            <el-form-item prop="uscCode" >
+              <el-input size="default" v-model="searchForm.uscCode" placeholder="统一社会信用代码" clearable></el-input>
             </el-form-item>
-            <el-form-item prop="areaId">
+            <el-form-item prop="areaId" >
               <SelectTree
                 ref="area"
                 :props="{
@@ -26,15 +25,15 @@
                         children: 'children'    // 子级字段名
                       }"
                 placeholder="请选择所在区域"
-                size="small"
-                url="/sys/area/treeData"
+                size="default"
+                url="/system-server/sys/area/treeData"
                 :value="searchForm.areaId"
                 :clearable="true"
                 :accordion="true"
                 @getValue="(value) => {searchForm.areaId=value}"/>
             </el-form-item>
-            <el-form-item prop="companyType">
-              <el-select size="small" v-model="searchForm.companyType" placeholder="请选择客户性质"  style="width: 100%;">
+            <el-form-item prop="companyType" >
+              <el-select size="default" v-model="searchForm.companyType" placeholder="请选择客户性质"  style="width: 100%;">
                 <el-option
                   v-for="item in $dictUtils.getDictList('customer_nature')"
                   :key="item.value"
@@ -43,8 +42,8 @@
                 </el-option>
               </el-select>
             </el-form-item>
-            <el-form-item prop="companyIndustry">
-              <el-select size="small" v-model="searchForm.companyIndustry" placeholder="请选择所在行业"  style="width: 100%;">
+            <el-form-item prop="companyIndustry" >
+              <el-select size="default" v-model="searchForm.companyIndustry" placeholder="请选择所在行业"  style="width: 100%;">
                 <el-option
                   v-for="item in $dictUtils.getDictList('industry')"
                   :key="item.value"
@@ -55,84 +54,57 @@
             </el-form-item>
 
             <el-form-item>
-              <el-button  type="primary" @click="refreshList()" size="small" icon="el-icon-search">查询</el-button>
-              <el-button @click="resetSearch()" size="small" icon="el-icon-refresh-right">重置</el-button>
+              <el-button size="default" type="primary" @click="refreshList()" icon="el-icon-search">查询</el-button>
+              <el-button size="default" @click="resetSearch()" icon="el-icon-refresh-right">重置</el-button>
             </el-form-item>
           </el-form>
-      </el-header>
 
-      <el-main style="padding-top: 0px">
-        <el-table
-          :stripe="true"
-          :data="dataList"
-          v-loading="loading"
-          size="small"
-          border
-          ref="clientTable"
-          @selection-change="selectionChangeHandle"
-          @sort-change="sortChangeHandle"
-          height="calc(100% - 75px)"
-          max-height="calc(100%)">
-          <el-table-column
-            header-align="center"
-            align="center"
-            width="50">
-              <template slot-scope="scope">
-                  <el-radio :label="scope.row.id" :value="dataListAllSelections[0]&&dataListAllSelections[0].id" @change.native="getTemplateRow(scope.$index,scope.row)"><span></span></el-radio>
-              </template>
-          </el-table-column>
-          <el-table-column
-            prop="name"
-            header-align="center"
-            align="center"
-            label="客户姓名">
-          </el-table-column>
-          <el-table-column
-            prop="uscCode"
-            header-align="center"
-            align="center"
-            label="统一社会信用代码">
-          </el-table-column>
-          <el-table-column
-            prop="areaName"
-            header-align="center"
-            align="center"
-            label="归属区域">
-          </el-table-column>
-          <el-table-column
-            prop="companyType"
-            header-align="center"
-            align="center"
-            label="客户性质">
-            <template scope="scope">
+        <vxe-table
+			border="inner"
+			auto-resize
+			resizable
+			height="auto"
+			:loading="loading"
+			size="small"
+			ref="clientTable"
+			show-header-overflow
+			show-overflow
+			:menu-config="{}"
+			:row-config="{isCurrent: true}"
+			:radio-config="{trigger: 'row'}"
+			:data="dataList">
+		  <vxe-column type="radio" width="50px"></vxe-column>
+          <vxe-column min-width="200px" title="客户姓名" field="name" align="center"></vxe-column>
+          <vxe-column min-width="200px" title="统一社会信用代码" field="uscCode" align="center"></vxe-column>
+          <vxe-column min-width="120px" title="客户性质" field="companyType" align="center">
+            <template #default="scope">
               {{ $dictUtils.getDictLabel("customer_nature", scope.row.companyType, '-') }}
             </template>
-          </el-table-column>
-          <el-table-column
-            prop="companyIndustry"
-            header-align="center"
-            align="center"
-            label="所在行业">
-            <template scope="scope">
+          </vxe-column>
+          <vxe-column min-width="120px" title="所在行业" field="companyIndustry" align="center">
+            <template #default="scope">
               {{ $dictUtils.getDictLabel("industry", scope.row.companyIndustry, '-') }}
             </template>
-          </el-table-column>
-        </el-table>
-        <el-pagination
-          @size-change="sizeChangeHandle"
-          @current-change="currentChangeHandle"
-          :current-page="pageNo"
-          :page-sizes="[5, 10, 50, 100]"
-          :page-size="pageSize"
-          :total="total"
-          layout="total, sizes, prev, pager, next, jumper">
-        </el-pagination>
-      </el-main>
-</el-container>
-     <span slot="footer" class="dialog-footer">
-      <el-button size="small" @click="visible = false" icon="el-icon-circle-close">关闭</el-button>
-      <el-button size="small" type="primary" icon="el-icon-circle-check" @click="doSubmit()">确定</el-button>
-    </span>
+          </vxe-column>
+			<vxe-column min-width="120px" title="归属区域" field="areaName" align="center"></vxe-column>
+        </vxe-table>
+		<vxe-pager
+			background
+			size="small"
+			:current-page="tablePage.currentPage"
+			:page-size="tablePage.pageSize"
+			:total="tablePage.total"
+			:page-sizes="[10, 20, 100, 1000, {label: '全量数据', value: 1000000}]"
+			:layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
+			@page-change="currentChangeHandle">
+		</vxe-pager>
+		<template #footer>
+			<span class="dialog-footer">
+			  <el-button size="default" @click="visible = false" icon="el-icon-circle-close">关闭</el-button>
+			  <el-button size="default" type="primary" icon="el-icon-circle-check" @click="doSubmit()">确定</el-button>
+			</span>
+		</template>
+
     </el-dialog>
 
   </div>
@@ -150,180 +122,67 @@
           companyType: '',
           companyIndustry: ''
         },
-        filterText: '',
-        dataListAllSelections: [],   // 所有选中的数据包含跨页数据
-        dataListSelections: [],
-        idKey: 'id', // 标识列表数据中每一行的唯一键的名称(需要按自己的数据改一下)
+		  tablePage: {
+			  total: 0,
+			  currentPage: 1,
+			  pageSize: 10,
+			  orders: []
+		  },
         dataList: [],
-        dynamicTags: [],
-        pageNo: 1,
-        pageSize: 10,
-        total: 0,
-        orders: [],
         loading: false,
         visible: false
       }
     },
-    props: {
-      selectData: {
-        type: Array,
-        default: () => { return [] }
-      }
-    },
     components: {
       SelectTree
     },
-    watch: {
-    },
     methods: {
       init () {
-        this.visible = true
-        this.$nextTick(() => {
-          this.dataListAllSelections = JSON.parse(JSON.stringify(this.selectData))
-          this.resetSearch()
-        })
-      },
-      getTemplateRow (index, row) { // 获取选中数据
-        this.dataListSelections = [row]
-        this.$nextTick(() => {
-          this.changePageCoreRecordData()
-        })
-      },
-           // 设置选中的方法
-      setSelectRow () {
-        if (!this.dataListAllSelections || this.dataListAllSelections.length <= 0) {
-          this.$refs.clientTable.clearSelection()
-          return
-        }
-                // 标识当前行的唯一键的名称
-        let idKey = this.idKey
-        let selectAllIds = []
-        this.dataListAllSelections.forEach(row => {
-          selectAllIds.push(row[idKey])
-        })
-        this.$refs.clientTable.clearSelection()
-        for (var i = 0; i < this.dataList.length; i++) {
-          if (selectAllIds.indexOf(this.dataList[i][idKey]) >= 0) {
-                        // 设置选中,记住table组件需要使用ref="table"
-            this.$refs.clientTable.toggleRowSelection(this.dataList[i], true)
-          }
-        }
-      },
-            // 记忆选择核心方法
-      changePageCoreRecordData () {
-                // 标识当前行的唯一键的名称
-        let idKey = this.idKey
-        let that = this
-              // 如果总记忆中还没有选择的数据,那么就直接取当前页选中的数据,不需要后面一系列计算
-        if (this.dataListAllSelections.length <= 0) {
-          this.dataListSelections.forEach(row => {
-            that.dataListAllSelections.push(row)
-          })
-          return
-        }
-                // 总选择里面的key集合
-        let selectAllIds = []
-        this.dataListAllSelections.forEach(row => {
-          selectAllIds.push(row[idKey])
-        })
-        let selectIds = []
-                // 获取当前页选中的id
-        this.dataListSelections.forEach(row => {
-          selectIds.push(row[idKey])
-                  // 如果总选择里面不包含当前页选中的数据,那么就加入到总选择集合里
-          if (selectAllIds.indexOf(row[idKey]) < 0) {
-            that.dataListAllSelections.push(row)
-          }
-        })
-        let noSelectIds = []
-              // 得到当前页没有选中的id
-        this.dataList.forEach(row => {
-          if (selectIds.indexOf(row[idKey]) < 0) {
-            noSelectIds.push(row[idKey])
-          }
-        })
-        noSelectIds.forEach(id => {
-          if (selectAllIds.indexOf(id) >= 0) {
-            for (let i = 0; i < that.dataListAllSelections.length; i++) {
-              if (that.dataListAllSelections[i][idKey] === id) {
-                                // 如果总选择中有未被选中的,那么就删除这条
-                that.dataListAllSelections.splice(i, 1)
-                break
-              }
-            }
-          }
-        })
-      },
-     // 得到选中的所有数据
-      getAllSelectionData () {
-         // 再执行一次记忆勾选数据匹配,目的是为了在当前页操作勾选后直接获取选中数据
-        this.changePageCoreRecordData()
+		this.visible = true
+		this.refreshList()
       },
       // 获取数据列表
       refreshList () {
         this.loading = true
         this.$http({
-          url: '/workClientInfo/workClientInfo/componentList',
+          url: '/assess-server/workClientInfo/workClientInfo/componentList',
           method: 'get',
           params: {
-            'current': this.pageNo,
-            'size': this.pageSize,
-            'orders': this.orders,
-            ...this.searchForm
-          }
-        }).then(({data}) => {
+			  'current': this.tablePage.currentPage,
+			  'size': this.tablePage.pageSize,
+			  'orders': this.tablePage.orders,
+			  ...this.searchForm
+		  }
+        }).then((data) => {
           this.dataList = data.records
-          this.total = data.total
-          this.pageNo = data.current
+          this.tablePage.total = data.total
+          this.tablePage.currentPage = data.current
           this.loading = false
-          this.$nextTick(() => {
-            this.setSelectRow()
-          })
-        })
-      },
-      // 每页数
-      sizeChangeHandle (val) {
-        this.pageSize = val
-        this.pageNo = 1
-        this.refreshList()
-        this.$nextTick(() => {
-          this.changePageCoreRecordData()
         })
       },
-      // 当前页
-      currentChangeHandle (val) {
-        this.pageNo = val
-        this.refreshList()
-        this.$nextTick(() => {
-          this.changePageCoreRecordData()
-        })
-      },
-      // 多选
-      selectionChangeHandle (val) {
-        this.dataListSelections = val
-        this.$nextTick(() => {
-          this.changePageCoreRecordData()
-        })
-      },
-       // 排序
-      sortChangeHandle (column) {
-        this.orders = []
-        if (column.order != null) {
-          this.orders.push({column: this.$utils.toLine(column.prop), asc: column.order === 'ascending'})
-        }
-        this.refreshList()
-      },
-      handleNodeClick (data) {
-        this.refreshList()
-      },
-      resetSearch () {
-        this.$refs.searchForm.resetFields()
-        this.refreshList()
-      },
       doSubmit () {
-        this.visible = false
-        this.$emit('doSubmit', this.dataListAllSelections)
-      }
+		  let row = this.$refs.clientTable.getRadioRecord()
+		  if (this.commonJS.isEmpty(row)) {
+			  this.$message.error('请选择一条数据')
+			  return
+		  }
+		  this.close()
+		  this.$emit('doSubmit', [row])
+      },
+		// 当前页
+		currentChangeHandle ({currentPage, pageSize}) {
+			this.tablePage.currentPage = currentPage
+			this.tablePage.pageSize = pageSize
+			this.refreshList()
+		},
+		resetSearch () {
+			this.$refs.searchForm.resetFields()
+			this.refreshList()
+		},
+		close () {
+			this.$refs.searchForm.resetFields()
+			this.visible = false
+		}
     }
   }
 </script>
@@ -341,10 +200,11 @@
 }
 .clientDialog{
   .el-dialog__body {
-    padding: 10px 0px 0px 10px;
+    padding: 0px 0px 0px 10px;
     color: #606266;
     font-size: 14px;
     word-break: break-all;
+    height: 1300px;
   }
   .el-main {
     padding: 20px 20px 5px 20px;

+ 18 - 19
src/components/workClientInfoSelect/index.vue

@@ -1,9 +1,11 @@
 <template>
-  <div>
+  <div style="width: 100%">
     <el-input  placeholder="请选择" :size="size" :disabled="disabled"  :readonly="true" style="line-hight:40px;width: 100%" v-model="name" class="input-with-select">
-      <el-button slot="append" :disabled="disabled"  :readonly="readonly" @click="openClient">查询</el-button>
+      <template #append>
+		  <el-button :disabled="disabled"  :readonly="readonly" @click="openClient">查询</el-button>
+	  </template>
     </el-input>
-    <work-client-info-select-dialog ref="workClientInfoSelect" @doSubmit="selectClientToInput" :selectData="selectData"></work-client-info-select-dialog>
+    <work-client-info-select-dialog ref="workClientInfoSelect" @doSubmit="selectClientToInput"></work-client-info-select-dialog>
   </div>
 </template>
 <script>
@@ -13,7 +15,7 @@
     data () {
       return {
         name: '',
-        labelValue: this.value,
+        labelValue: '',
         selectData: [],
         rosterData: []
       }
@@ -44,27 +46,24 @@
     watch: {
       value: {
         handler (newVal) {
-          this.selectData = []
           if (newVal) {
-            newVal.split(',').forEach((id) => {
-              this.workClientService.componentById(id).then(({data}) => {
-                if (data && data.id !== '') {
-                  this.selectData.push(data)
-                }
-              })
-            })
+			  this.workClientService.componentById(newVal).then((data) => {
+				  if (data && data.id !== '') {
+					  this.name = data.name
+				  }
+			  })
           }
         },
         immediate: true,
         deep: false
-      },
-      selectData: {
-        handler (newVal) {
-          this.name = newVal.map(client => { return client.name }).join(',')
-        },
-        immediate: false,
-        deep: false
       }
+      // selectData: {
+      //   handler (newVal) {
+      //     this.name = newVal.map(client => { return client.name }).join(',')
+      //   },
+      //   immediate: false,
+      //   deep: false
+      // }
     },
     methods: {
       selectClientToInput (clientList) {

+ 1 - 1
src/router/systemRouter.js

@@ -88,7 +88,7 @@ const routes = [
 		meta: {
 			title: "登录",
 		},
-	},
+	}
 ];
 
 export default routes;

+ 7 - 7
src/style/fix.scss

@@ -18,7 +18,7 @@
         .left-panel {display: flex;align-items: center;}
         .right-panel {display: flex;align-items: center;}
         .right-panel > * + * {margin-left:10px;}
-    
+
 
     }
     // .el-header {background: #fff;border-bottom: 1px solid var(--el-border-color-light);padding:13px 15px;display: flex;justify-content: space-between;align-items: center;}
@@ -100,9 +100,9 @@
         }
     }
   }
-    
+
 .vue-grid-item>.vue-resizable-handle {
- z-index: 300; 
+ z-index: 300;
 }
 
 
@@ -314,9 +314,9 @@
 }
 
 .el-dialog {
-  --el-dialog-margin-top: 15vh;
-  max-height: calc(100% - 30vh);
-  max-width: calc(100% - 30px);
+  --el-dialog-margin-top: 10vh;
+  max-height: calc(100% - 20vh);
+  max-width: calc(100% - 20px);
   display: flex;
   flex-direction: column;
     > .el-dialog__body {
@@ -332,4 +332,4 @@
   max-height: 100%;
   max-width: 100%;
   overflow: auto;
-}
+}

+ 7 - 7
src/utils/useTabs.js

@@ -23,13 +23,13 @@ export default {
 		store.commit("removeViewTags", route);
 		store.commit("removeIframeList", route);
 		store.commit("removeKeepLive", route.name);
-		const tagList = store.state.viewTags.viewTags;
-		const latestView = tagList.slice(-1)[0];
-		if (latestView) {
-			router.push(latestView);
-		} else {
-			router.push("/");
-		}
+		// const tagList = store.state.viewTags.viewTags;
+		// const latestView = tagList.slice(-1)[0];
+		// if (latestView) {
+		// 	router.push({path: latestView.path});
+		// } else {
+		// 	router.push({path: "/"});
+		// }
 	},
 	//关闭标签后处理
 	closeNext(next) {

+ 33 - 21
src/views/common/RosterSelectDialog.vue

@@ -6,7 +6,7 @@
     width="1000px"
     :close-on-click-modal="false"
     :append-to-body="true"
-     v-dialogDrag
+	draggable
      class="rosterDialog"
     :visible.sync="visible">
     <el-container style="height: 500px">
@@ -39,7 +39,7 @@
         </el-card>
       </el-aside>
 
-    <el-container>
+      <el-container>
       <el-header style="text-align: left; font-size: 12px;height:30px">
         <el-form size="small" :inline="true" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
             <el-form-item prop="name">
@@ -119,17 +119,17 @@
       </el-main>
     </el-container>
 
-    <el-aside width="200px">
-      <el-tag
-        :key="tag.id"
-        v-for="tag in dataListAllSelections"
-        closable
-        :disable-transitions="false"
-        @close="del(tag)">
-        {{tag.name}}
-      </el-tag>
-  </el-aside>
-</el-container>
+      <el-aside width="200px">
+		  <el-tag
+			:key="tag.id"
+			v-for="tag in dataListAllSelections"
+			closable
+			:disable-transitions="false"
+			@close="del(tag)">
+			{{tag.name}}
+		  </el-tag>
+	  </el-aside>
+	</el-container>
      <span slot="footer" class="dialog-footer">
       <el-button size="small" @click="visible = false" icon="el-icon-circle-close">关闭</el-button>
       <el-button size="small" type="primary" icon="el-icon-circle-check" @click="doSubmit()">确定</el-button>
@@ -188,14 +188,26 @@
         })
       },
       renderContent (h, { node, data, store }) {
-        return (
-              <span class="custom-tree-node">
-                {
-                  data.type === '1' ? <i class="fa fa-sitemap"></i> : <i class="fa fa-users"></i>
-                }
-                <span class="text">{node.label}</span>
-              </span>
-        )
+		  return h(
+			  'span',
+			  {
+				  class: 'custom-tree-node',
+			  },
+			  h(
+				  'i',
+				  {
+					  class: data.type === '1' ? 'fa fa-sitemap' : 'fa fa-users',
+				  },
+				  node.label
+			  ),
+			  h(
+				  'span',
+				  {
+					  class: 'text',
+				  },
+				  node.label
+			  )
+		  )
       },
       getTemplateRow (index, row) {                                 // 获取选中数据
         this.dataListSelections = [row]

+ 3 - 3
src/views/common/UpLoadComponentCcpm.vue

@@ -53,7 +53,7 @@
         </el-table-column>
       </el-table>
     </div>
-    <el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="[url]" :zIndex=9999></el-image-viewer>
+<!--    <el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="[url]" :zIndex=9999></el-image-viewer>-->
   </div>
 </template>
 
@@ -71,7 +71,7 @@
     // eslint-disable-next-line no-unused-vars
     toHref
   } from '@/api/sys/OSSService'
-  import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
+  // import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
   import moment from 'moment'
   export default {
     data () {
@@ -104,7 +104,7 @@
       this.ossService = new OSSSerivce()
     },
     components: {
-      ElImageViewer
+      // ElImageViewer
     },
     mounted () {
       window.onPreview = this.onPreview

+ 1 - 1
src/views/common/UpLoadComponentDialog.vue

@@ -4,7 +4,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1400px"
       height="500px"
       @close="close"

+ 3 - 3
src/views/common/UpLoadComponentV2.1.vue

@@ -94,7 +94,7 @@
         </el-table-column>
       </el-table>
     </div>
-    <el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="[url]" :zIndex=9999></el-image-viewer>
+<!--    <el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="[url]" :zIndex=9999></el-image-viewer>-->
 
   </div>
 </template>
@@ -113,7 +113,7 @@
     // eslint-disable-next-line no-unused-vars
     toHref
   } from '@/api/sys/OSSService'
-  import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
+  // import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
   import moment from 'moment'
   export default {
     data () {
@@ -150,7 +150,7 @@
       this.ossService = new OSSSerivce()
     },
     components: {
-      ElImageViewer,
+      // ElImageViewer,
       fileTypeComponentA: {
         render: function (h) {
           return h('span', {

+ 3 - 3
src/views/common/UpLoadComponentV2.vue

@@ -87,7 +87,7 @@
         </el-table-column>
       </el-table>
     </div>
-    <el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="[url]" :zIndex=9999></el-image-viewer>
+<!--    <el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="[url]" :zIndex=9999></el-image-viewer>-->
 
   </div>
 </template>
@@ -106,7 +106,7 @@
     // eslint-disable-next-line no-unused-vars
     toHref
   } from '@/api/sys/OSSService'
-  import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
+  // import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
   import moment from 'moment'
   export default {
     data () {
@@ -141,7 +141,7 @@
       this.ossService = new OSSSerivce()
     },
     components: {
-      ElImageViewer,
+      // ElImageViewer,
       fileTypeComponentA: {
         render: function (h) {
           return h('span', {

+ 3 - 3
src/views/common/UpLoadComponentV3.1.vue

@@ -77,7 +77,7 @@
         </el-table-column>
       </el-table>
     </div>
-    <el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="[url]" :zIndex=9999></el-image-viewer>
+<!--    <el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="[url]" :zIndex=9999></el-image-viewer>-->
 
   </div>
 </template>
@@ -96,7 +96,7 @@
     // eslint-disable-next-line no-unused-vars
     toHref
   } from '@/api/sys/OSSService'
-  import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
+  // import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
   import moment from 'moment'
   export default {
     data () {
@@ -130,7 +130,7 @@
       this.ossService = new OSSSerivce()
     },
     components: {
-      ElImageViewer,
+      // ElImageViewer,
       fileTypeComponentA: {
         render: function (h) {
           return h('span', {

+ 3 - 3
src/views/common/UpLoadComponentV3.vue

@@ -76,7 +76,7 @@
         </el-table-column>
       </el-table>
     </div>
-    <el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="[url]" :zIndex=9999></el-image-viewer>
+<!--    <el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="[url]" :zIndex=9999></el-image-viewer>-->
 
   </div>
 </template>
@@ -95,7 +95,7 @@
     // eslint-disable-next-line no-unused-vars
     toHref
   } from '@/api/sys/OSSService'
-  import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
+  // import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
   import moment from 'moment'
   export default {
     data () {
@@ -129,7 +129,7 @@
       this.ossService = new OSSSerivce()
     },
     components: {
-      ElImageViewer,
+      // ElImageViewer,
       fileTypeComponentA: {
         render: function (h) {
           return h('span', {

+ 13 - 13
src/views/finance/invoice/InvoiceForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1300px"
       @close="close"
       @keyup.enter.native="doSubmit"
@@ -77,7 +77,7 @@
             <el-form-item label="发票申请编号" prop="no"
                           :rules="[
                  ]">
-              <el-input :disabled="true" placeholder="请填写发票申请编号" v-model="inputForm.no"clearable></el-input>
+              <el-input :disabled="true" placeholder="请填写发票申请编号" v-model="inputForm.no" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="24">
@@ -135,7 +135,7 @@
                             :rules="[
                         {required: true, message:'地址不能为空', trigger:'blur'},{required: true, message:'地址不能为空', trigger:'change'}
                ]">
-                <el-input v-model="inputForm.address" placeholder="请填写地址"clearable></el-input>
+                <el-input v-model="inputForm.address" placeholder="请填写地址" clearable></el-input>
               </el-form-item>
             </el-col>
             <el-col v-if="inputForm.billingType === '1'" :span="12">
@@ -143,7 +143,7 @@
                             :rules="[
                         {required: true, message:'电话不能为空', trigger:'blur'},{required: true, message:'电话不能为空', trigger:'change'}
                ]">
-                <el-input v-model="inputForm.telPhone" placeholder="请填写电话"clearable></el-input>
+                <el-input v-model="inputForm.telPhone" placeholder="请填写电话" clearable></el-input>
               </el-form-item>
             </el-col>
             <el-col v-if="inputForm.billingType === '1'" :span="12">
@@ -151,7 +151,7 @@
                             :rules="[
                         {required: true, message:'开户银行不能为空', trigger:'blur'},{required: true, message:'开户银行不能为空', trigger:'change'}
                ]">
-                <el-select v-model="inputForm.openBank" @change="changeBank" placeholder="请选择开户银行" clearable style="width: 100%;"clearable>
+                <el-select v-model="inputForm.openBank" @change="changeBank" placeholder="请选择开户银行" style="width: 100%;" clearable>
                   <el-option
                     v-for="item in bankList"
                     :key="item.id"
@@ -166,7 +166,7 @@
                             :rules="[
                         {required: true, message:'银行账号不能为空', trigger:'blur'},{required: true, message:'银行账号不能为空', trigger:'change'}
                ]">
-                <el-input :disabled="true" placeholder="请填写银行账号" v-model="inputForm.bankAccount"clearable></el-input>
+                <el-input :disabled="true" placeholder="请填写银行账号" v-model="inputForm.bankAccount" clearable></el-input>
               </el-form-item>
             </el-col>
           </div>
@@ -175,7 +175,7 @@
               <el-form-item label="纳税人识别号" prop="taxpayerIdentificationNo"
                             :rules="[
                ]">
-                <el-input v-model="inputForm.taxpayerIdentificationNo" placeholder="请填写纳税人识别号"clearable></el-input>
+                <el-input v-model="inputForm.taxpayerIdentificationNo" placeholder="请填写纳税人识别号" clearable></el-input>
               </el-form-item>
             </el-col>
             <el-col v-if="inputForm.billingType === '1'" :span="12">
@@ -189,14 +189,14 @@
               <el-form-item label="电话" prop="telPhone"
                             :rules="[
                ]">
-                <el-input v-model="inputForm.telPhone"placeholder="请填写电话"clearable></el-input>
+                <el-input v-model="inputForm.telPhone" placeholder="请填写电话" clearable></el-input>
               </el-form-item>
             </el-col>
             <el-col v-if="inputForm.billingType === '1'" :span="12">
               <el-form-item label="开户银行" prop="openBank"
                             :rules="[
                ]">
-                <el-select v-model="inputForm.openBank" @change="changeBank" placeholder="请选择开户银行" clearable style="width: 100%;"clearable>
+                <el-select v-model="inputForm.openBank" @change="changeBank" placeholder="请选择开户银行" style="width: 100%;" clearable>
                   <el-option
                     v-for="item in bankList"
                     :key="item.id"
@@ -210,7 +210,7 @@
               <el-form-item label="银行账号" prop="bankAccount"
                             :rules="[
                ]">
-                <el-input :disabled="true" placeholder="请填写银行账号" v-model="inputForm.bankAccount"clearable></el-input>
+                <el-input :disabled="true" placeholder="请填写银行账号" v-model="inputForm.bankAccount" clearable></el-input>
               </el-form-item>
             </el-col>
           </div>
@@ -220,7 +220,7 @@
                           :rules="[
                           {required: true, message:'收款类型不能为空', trigger:'blur'}
                  ]">
-              <el-select v-model="inputForm.receivablesType" placeholder="请选择收款类型" clearable style="width: 100%;"clearable>
+              <el-select v-model="inputForm.receivablesType" placeholder="请选择收款类型" style="width: 100%;" clearable>
                 <el-option
                   v-for="item in $dictUtils.getDictList('invoice_receivables_type')"
                   :key="item.value"
@@ -235,7 +235,7 @@
                           :rules="[
                           {required: true, message:'开票内容不能为空', trigger:'blur'}
                  ]">
-              <el-select v-model="inputForm.billingContent" placeholder="请选择开票内容" clearable style="width: 100%;"clearable>
+              <el-select v-model="inputForm.billingContent" placeholder="请选择开票内容" style="width: 100%;" clearable>
                 <el-option
                   v-for="item in $dictUtils.getDictList('invoice_billing_content')"
                   :key="item.value"
@@ -379,7 +379,7 @@
             <el-form-item label="备注" prop="remarks"
                           :rules="[
                  ]">
-              <el-input maxlength="500" type="textarea" placeholder="请填写备注" v-model="inputForm.remarks"show-word-limit></el-input>
+              <el-input maxlength="500" type="textarea" placeholder="请填写备注" v-model="inputForm.remarks" show-word-limit></el-input>
             </el-form-item>
           </el-col>
         </el-row>

+ 12 - 12
src/views/finance/invoice/InvoiceFormTask.vue

@@ -70,7 +70,7 @@
           <el-form-item label="发票申请编号" prop="no"
                         :rules="[
                ]">
-            <el-input :disabled="true" placeholder="请填写发票申请编号" v-model="inputForm.no"clearable></el-input>
+            <el-input :disabled="true" placeholder="请填写发票申请编号" v-model="inputForm.no" clearable></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="24">
@@ -128,7 +128,7 @@
                           :rules="[
                       {required: true, message:'地址不能为空', trigger:'blur'},{required: true, message:'地址不能为空', trigger:'change'}
              ]">
-              <el-input v-model="inputForm.address" placeholder="请填写地址"clearable></el-input>
+              <el-input v-model="inputForm.address" placeholder="请填写地址" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col v-if="inputForm.billingType === '1'" :span="12">
@@ -136,7 +136,7 @@
                           :rules="[
                       {required: true, message:'电话不能为空', trigger:'blur'},{required: true, message:'电话不能为空', trigger:'change'}
              ]">
-              <el-input v-model="inputForm.telPhone" placeholder="请填写电话"clearable></el-input>
+              <el-input v-model="inputForm.telPhone" placeholder="请填写电话" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col v-if="inputForm.billingType === '1'" :span="12">
@@ -144,7 +144,7 @@
                           :rules="[
                       {required: true, message:'开户银行不能为空', trigger:'blur'},{required: true, message:'开户银行不能为空', trigger:'change'}
              ]">
-              <el-select v-model="inputForm.openBank" @change="changeBank" placeholder="请选择开户银行" clearable style="width: 100%;"clearable>
+              <el-select v-model="inputForm.openBank" @change="changeBank" placeholder="请选择开户银行" style="width: 100%" clearable>
                 <el-option
                   v-for="item in bankList"
                   :key="item.id"
@@ -159,7 +159,7 @@
                           :rules="[
                       {required: true, message:'银行账号不能为空', trigger:'blur'},{required: true, message:'银行账号不能为空', trigger:'change'}
              ]">
-              <el-input :disabled="true" placeholder="请填写银行账号" v-model="inputForm.bankAccount"clearable></el-input>
+              <el-input :disabled="true" placeholder="请填写银行账号" v-model="inputForm.bankAccount" clearable></el-input>
             </el-form-item>
           </el-col>
         </div>
@@ -168,7 +168,7 @@
             <el-form-item label="纳税人识别号" prop="taxpayerIdentificationNo"
                           :rules="[
              ]">
-              <el-input v-model="inputForm.taxpayerIdentificationNo" placeholder="请填写纳税人识别号"clearable></el-input>
+              <el-input v-model="inputForm.taxpayerIdentificationNo" placeholder="请填写纳税人识别号" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col v-if="inputForm.billingType === '1'" :span="12">
@@ -182,14 +182,14 @@
             <el-form-item label="电话" prop="telPhone"
                           :rules="[
              ]">
-              <el-input v-model="inputForm.telPhone"placeholder="请填写电话"clearable></el-input>
+              <el-input v-model="inputForm.telPhone" placeholder="请填写电话" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col v-if="inputForm.billingType === '1'" :span="12">
             <el-form-item label="开户银行" prop="openBank"
                           :rules="[
              ]">
-              <el-select v-model="inputForm.openBank" @change="changeBank" placeholder="请选择开户银行" clearable style="width: 100%;"clearable>
+              <el-select v-model="inputForm.openBank" @change="changeBank" placeholder="请选择开户银行" style="width: 100%" clearable>
                 <el-option
                   v-for="item in bankList"
                   :key="item.id"
@@ -203,7 +203,7 @@
             <el-form-item label="银行账号" prop="bankAccount"
                           :rules="[
              ]">
-              <el-input :disabled="true" placeholder="请填写银行账号" v-model="inputForm.bankAccount"clearable></el-input>
+              <el-input :disabled="true" placeholder="请填写银行账号" v-model="inputForm.bankAccount" clearable></el-input>
             </el-form-item>
           </el-col>
         </div>
@@ -213,7 +213,7 @@
                         :rules="[
                         {required: true, message:'收款类型不能为空', trigger:'blur'}
                ]">
-            <el-select v-model="inputForm.receivablesType" placeholder="请选择收款类型" clearable style="width: 100%;"clearable>
+            <el-select v-model="inputForm.receivablesType" placeholder="请选择收款类型" style="width: 100%;" clearable>
               <el-option
                 v-for="item in $dictUtils.getDictList('invoice_receivables_type')"
                 :key="item.value"
@@ -228,7 +228,7 @@
                         :rules="[
                         {required: true, message:'开票内容不能为空', trigger:'blur'}
                ]">
-            <el-select v-model="inputForm.billingContent" placeholder="请选择开票内容" clearable style="width: 100%;"clearable>
+            <el-select v-model="inputForm.billingContent" placeholder="请选择开票内容" style="width: 100%;" clearable>
               <el-option
                 v-for="item in $dictUtils.getDictList('invoice_billing_content')"
                 :key="item.value"
@@ -387,7 +387,7 @@
           <el-form-item label="备注" prop="remarks"
                         :rules="[
                ]">
-            <el-input maxlength="500" type="textarea" placeholder="请填写备注" v-model="inputForm.remarks"show-word-limit></el-input>
+            <el-input maxlength="500" type="textarea" placeholder="请填写备注" v-model="inputForm.remarks" show-word-limit></el-input>
           </el-form-item>
         </el-col>
       </el-row>

+ 8 - 8
src/views/finance/invoice/InvoiceFormTaskInvalid.vue

@@ -69,7 +69,7 @@
           <el-form-item label="发票申请编号" prop="no"
                         :rules="[
                ]">
-            <el-input :disabled="true" placeholder="请填写发票申请编号" v-model="inputForm.no"clearable></el-input>
+            <el-input :disabled="true" placeholder="请填写发票申请编号" v-model="inputForm.no" clearable></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="24">
@@ -127,7 +127,7 @@
                           :rules="[
                       {required: true, message:'地址不能为空', trigger:'blur'},{required: true, message:'地址不能为空', trigger:'change'}
              ]">
-              <el-input v-model="inputForm.address" placeholder="请填写地址"clearable></el-input>
+              <el-input v-model="inputForm.address" placeholder="请填写地址" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col v-if="inputForm.billingType === '1'" :span="12">
@@ -135,7 +135,7 @@
                           :rules="[
                       {required: true, message:'电话不能为空', trigger:'blur'},{required: true, message:'电话不能为空', trigger:'change'}
              ]">
-              <el-input v-model="inputForm.telPhone" placeholder="请填写电话"clearable></el-input>
+              <el-input v-model="inputForm.telPhone" placeholder="请填写电话" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col v-if="inputForm.billingType === '1'" :span="12">
@@ -158,7 +158,7 @@
                           :rules="[
                       {required: true, message:'银行账号不能为空', trigger:'blur'},{required: true, message:'银行账号不能为空', trigger:'change'}
              ]">
-              <el-input :disabled="true" placeholder="请填写银行账号" v-model="inputForm.bankAccount"clearable></el-input>
+              <el-input :disabled="true" placeholder="请填写银行账号" v-model="inputForm.bankAccount" clearable></el-input>
             </el-form-item>
           </el-col>
         </div>
@@ -167,7 +167,7 @@
             <el-form-item label="纳税人识别号" prop="taxpayerIdentificationNo"
                           :rules="[
              ]">
-              <el-input v-model="inputForm.taxpayerIdentificationNo" placeholder="请填写纳税人识别号"clearable></el-input>
+              <el-input v-model="inputForm.taxpayerIdentificationNo" placeholder="请填写纳税人识别号" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col v-if="inputForm.billingType === '1'" :span="12">
@@ -181,7 +181,7 @@
             <el-form-item label="电话" prop="telPhone"
                           :rules="[
              ]">
-              <el-input v-model="inputForm.telPhone"placeholder="请填写电话"clearable></el-input>
+              <el-input v-model="inputForm.telPhone" placeholder="请填写电话" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col v-if="inputForm.billingType === '1'" :span="12">
@@ -202,7 +202,7 @@
             <el-form-item label="银行账号" prop="bankAccount"
                           :rules="[
              ]">
-              <el-input :disabled="true" placeholder="请填写银行账号" v-model="inputForm.bankAccount"clearable></el-input>
+              <el-input :disabled="true" placeholder="请填写银行账号" v-model="inputForm.bankAccount" clearable></el-input>
             </el-form-item>
           </el-col>
         </div>
@@ -373,7 +373,7 @@
           <el-form-item label="备注" prop="remarks"
                         :rules="[
                ]">
-            <el-input maxlength="500" type="textarea" placeholder="请填写备注" v-model="inputForm.remarks"show-word-limit></el-input>
+            <el-input maxlength="500" type="textarea" placeholder="请填写备注" v-model="inputForm.remarks" show-word-limit></el-input>
           </el-form-item>
         </el-col>
       </el-row>

+ 18 - 18
src/views/finance/invoice/InvoiceList.vue

@@ -87,7 +87,7 @@
           </el-select>
         </el-form-item>
         <el-form-item v-if="showHideItem" prop="receivablesType" label="收款类型">
-          <el-select v-model="searchForm.receivablesType" placeholder="请选择收款类型"clearable>
+          <el-select v-model="searchForm.receivablesType" placeholder="请选择收款类型" clearable>
             <el-option
               v-for="item in $dictUtils.getDictList('invoice_receivables_type')"
               :key="item.value"
@@ -97,7 +97,7 @@
           </el-select>
         </el-form-item>
         <el-form-item v-if="showHideItem" prop="billingContent" label="开票内容">
-          <el-select v-model="searchForm.billingContent" placeholder="请选择开票内容"clearable>
+          <el-select v-model="searchForm.billingContent" placeholder="请选择开票内容" clearable>
             <el-option
               v-for="item in $dictUtils.getDictList('invoice_billing_content')"
               :key="item.value"
@@ -192,50 +192,50 @@
           :checkbox-config="{}">
           <vxe-column type="seq" width="60" title="序号"></vxe-column>
           <vxe-column type="checkbox" width="40" ></vxe-column>
-          <vxe-column min-width="150" title="项目名称"align="center" field="programName">
+          <vxe-column min-width="150" title="项目名称" align="center" field="programName">
             <template slot-scope="scope">
               <el-link  type="primary" :underline="false" @click="viewProject(scope.row.id)">{{scope.row.programName}}</el-link>
             </template>
           </vxe-column>
-          <vxe-column min-width="150" title="发票申请编号"align="center" field="no">
+          <vxe-column min-width="150" title="发票申请编号" align="center" field="no">
             <template slot-scope="scope">
               <el-link  type="primary" :underline="false" @click="view(false, scope.row.id)">{{scope.row.no}}</el-link>
             </template>
           </vxe-column>
-          <vxe-column min-width="150" title="发票号"align="center" field="number"></vxe-column>
-          <vxe-column min-width="150" title="实际开票单位"align="center" field="billingWorkplaceReal"></vxe-column>
-          <vxe-column min-width="150" title="经办人"align="center" field="operator"></vxe-column>
-          <vxe-column min-width="150" title="经办人部门"align="center" field="operatorOffice"></vxe-column>
-          <vxe-column min-width="150" title="开票总金额(元)"align="center" field="account"></vxe-column>
-          <vxe-column min-width="150" title="开票金额(元)"align="center" field="accountDetail"></vxe-column>
-          <vxe-column min-width="120" title="开票内容"align="center" field="billingContent">
+          <vxe-column min-width="150" title="发票号" align="center" field="number"></vxe-column>
+          <vxe-column min-width="150" title="实际开票单位" align="center" field="billingWorkplaceReal"></vxe-column>
+          <vxe-column min-width="150" title="经办人" align="center" field="operator"></vxe-column>
+          <vxe-column min-width="150" title="经办人部门" align="center" field="operatorOffice"></vxe-column>
+          <vxe-column min-width="150" title="开票总金额(元)" align="center" field="account"></vxe-column>
+          <vxe-column min-width="150" title="开票金额(元)" align="center" field="accountDetail"></vxe-column>
+          <vxe-column min-width="120" title="开票内容" align="center" field="billingContent">
             <template slot-scope="scope">
               {{$dictUtils.getDictLabel('invoice_billing_content', scope.row.billingContent, '-')}}
             </template>
           </vxe-column>
-          <vxe-column min-width="100" title="收款类型"align="center" field="receivablesType">
+          <vxe-column min-width="100" title="收款类型" align="center" field="receivablesType">
             <template slot-scope="scope">
               {{$dictUtils.getDictLabel('invoice_receivables_type', scope.row.receivablesType, '-')}}
             </template>
           </vxe-column>
-          <vxe-column min-width="100" title="发票类型"align="center" field="type">
+          <vxe-column min-width="100" title="发票类型" align="center" field="type">
             <template slot-scope="scope">
               {{$dictUtils.getDictLabel('invoice_type', scope.row.type, '-')}}
             </template>
           </vxe-column>
-          <vxe-column min-width="120" title="开票日期"align="center" field="billingDate"></vxe-column>
-          <vxe-column min-width="120" title="收款日期"align="center" field="receivablesDate"></vxe-column>
-          <vxe-column min-width="110" fixed="right"align="center" title="是否收款" field="receivablesStatus">
+          <vxe-column min-width="120" title="开票日期" align="center" field="billingDate"></vxe-column>
+          <vxe-column min-width="120" title="收款日期" align="center" field="receivablesDate"></vxe-column>
+          <vxe-column min-width="110" fixed="right" align="center" title="是否收款" field="receivablesStatus">
             <template slot-scope="scope">
               {{$dictUtils.getDictLabel('collect_not', scope.row.receivablesStatus, '-')}}
             </template>
           </vxe-column>
-          <vxe-column min-width="110" fixed="right"align="center" title="是否作废" field="invalidStatus">
+          <vxe-column min-width="110" fixed="right" align="center" title="是否作废" field="invalidStatus">
             <template slot-scope="scope">
               {{scope.row.invalidStatus === '1'?'已作废':'未作废'}}
             </template>
           </vxe-column>
-          <vxe-column  min-width="110px" fixed="right"align="center" title="状态" field="status" >
+          <vxe-column  min-width="110px" fixed="right" align="center" title="状态" field="status" >
             <template slot-scope="scope">
               <el-button  type="text" @click="invoiceDetail(scope.row)" :type="$dictUtils.getDictLabel('invoice_status_info', scope.row.status, '-')" effect="dark" size="mini">{{$dictUtils.getDictLabel("invoice_status", scope.row.status, '-')}} </el-button>
             </template>

+ 1 - 1
src/views/finance/invoice/KnowledgeShareTypePageForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       title="知识分享类型"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1100px"
       height="500px"
       @close="close"

+ 1 - 1
src/views/finance/invoice/ProgramForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1300px"
       @close="close"
       @keyup.enter.native="doSubmit"

+ 1 - 1
src/views/finance/invoice/ProgramPageForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1200px"
       height="500px"
       @close="close"

+ 1 - 1
src/views/finance/invoice/ReimbursementTypePullForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       title="报销类型选择"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1100px"
       height="500px"
       @close="close"

+ 1 - 1
src/views/finance/invoice/UserPullForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="500px"
       height="500px"
       @close="close"

+ 706 - 48
src/views/flowable/task/TaskForm.vue

@@ -11,6 +11,9 @@
 					ref="form"
 					:businessId="businessId"
 					:is="form"
+					:status="status"
+					@callBackFunc="callBackFunc"
+					@changeLoading="changeLoading"
 				></component>
 
 				<PreviewForm
@@ -46,26 +49,87 @@
 			<el-tab-pane label="流转记录" v-if="procInsId" name="form-forth">
 				<flow-step :historicTaskList="historicTaskList" />
 			</el-tab-pane>
+			<el-tab-pane label="入库修改历史" v-if="commonJS.isNotEmpty(wareHouseId)" name="form-sixth">
+				<vxe-table
+					ref="wareHouseTable"
+					border="inner"
+					size="small"
+					:key="222"
+					max-height="1000px"
+					class="vxe-table-element"
+					:data="dataListHi">
+					<vxe-column type="seq" width="60" title="序号"></vxe-column>
+					<vxe-column min-width="120" align="center" title="修改类型" field="updateTradeType">
+						<template #default="scope">
+							<span v-if="commonJS.isNotEmpty(scope.row.updateTradeType)"> {{scope.row.updateTradeType}} </span>
+							<span v-else> -- </span>
+						</template>
+					</vxe-column>
+					<vxe-column min-width="160" align="center" title="修改商品" field="updateTradeName">
+						<template #default="scope">
+							<span v-if="commonJS.isNotEmpty(scope.row.updateTradeName)"> {{scope.row.updateTradeName}} </span>
+							<span v-else> -- </span>
+						</template>
+					</vxe-column>
+					<vxe-column min-width="160" align="center" title="修改人" field="updateUser">
+						<template #default="scope">
+							<span v-if="scope.row.endflag === '2'">(创建人) {{scope.row.updateUser}} </span>
+							<span v-else>{{scope.row.updateUser}} </span>
+						</template>
+					</vxe-column>
+					<vxe-column min-width="160" align="center" title="修改时间" field="createDate"></vxe-column>
+					<vxe-column title="操作" width="150px" fixed="right" align="center">
+						<template  #default="scope">
+							<el-button type="text" size="small" @click="hiDetail(scope.row)">修改详情</el-button>
+						</template>
+					</vxe-column>
+				</vxe-table>
+			</el-tab-pane>
+			<el-tab-pane label="领用退回历史" v-if="returnId" name="form-seventh">
+				<vxe-table
+					ref="returnTable"
+					border="inner"
+					:key="111"
+					size="small"
+					class="vxe-table-element"
+					max-height="1000px"
+					:data="dataListHiCollect">
+					<vxe-column type="seq" width="60" title="序号"></vxe-column>
+					<vxe-column min-width="160" align="center" title="退回物品" field="returnGoods">
+						<template #default="scope">
+							<span v-if="commonJS.isNotEmpty(scope.row.returnGoods)"> {{scope.row.returnGoods}} </span>
+							<span v-else> -- </span>
+						</template>
+					</vxe-column>
+					<vxe-column min-width="160" align="center" title="退回申请人" field="returnUserName"></vxe-column>
+					<vxe-column min-width="160" align="center" title="退回时间" field="createDate"></vxe-column>
+					<vxe-column title="操作" width="150px" fixed="right" align="center">
+						<template  #default="scope">
+							<el-button type="text" size="small" @click="hiDetailCollect(scope.row)">退回详情</el-button>
+						</template>
+					</vxe-column>
+				</vxe-table>
+			</el-tab-pane>
 		</el-tabs>
 
 		<el-card
 			style="margin-top: 10px; padding-bottom: 66px"
 			v-if="!procInsId || taskId"
 		>
-			<el-form :model="auditForm" ref="auditForm" label-width="120px">
+			<el-form :model="auditForm" ref="auditForm" v-loading="loading" label-width="120px">
 				<el-row>
 					<el-col :span="16">
-						<el-form-item
-							v-if="!procInsId"
-							label="流程标题"
-							prop="title"
-						>
-							<el-input
-								placeholder="请输入流程标题"
-								v-model="title"
-							>
-							</el-input>
-						</el-form-item>
+<!--						<el-form-item-->
+<!--							v-if="!procInsId"-->
+<!--							label="流程标题"-->
+<!--							prop="title"-->
+<!--						>-->
+<!--							<el-input-->
+<!--								placeholder="请输入流程标题"-->
+<!--								v-model="title"-->
+<!--							>-->
+<!--							</el-input>-->
+<!--						</el-form-item>-->
 						<el-form-item
 							v-if="taskId"
 							label="审批信息"
@@ -137,19 +201,25 @@
 			<template v-for="(button, index) in buttons">
 				<template v-if="button.isHide === '0'">
 					<el-button
+						size="large"
 						type="primary"
 						v-if="button.code !== '_flow_print'"
 						:key="index"
 						@click="submit(button, buttons)"
 						v-noMoreClick
+						v-loading="loading"
+						plain
 						>{{ button.name }}</el-button
 					>
 					<el-button
+						size="large"
 						type="primary"
 						v-if="button.code === '_flow_print'"
 						@click="print"
 						:key="index"
 						v-noMoreClick
+						v-loading="loading"
+						plain
 						>{{ button.name }}</el-button
 					>
 				</template>
@@ -191,6 +261,7 @@ import formService from "@/api/flowable/formService.js";
 import flowCopyService from "@/api/flowable/flowCopyService.js";
 import processService from "@/api/flowable/processService.js";
 import print2 from "@/utils/print.js";
+import { shallowRef } from 'vue'
 export default {
 	activated() {
 		this.init();
@@ -204,7 +275,7 @@ export default {
 				Object.keys(modules).forEach((path) => {
 					const dir = path.split("views")[1].split(".vue")[0];
 					if (dir === this.formUrl) {
-						this.form = modules[path].default;
+						this.form = shallowRef(modules[path].default);
 					}
 				});
 			}
@@ -234,8 +305,27 @@ export default {
 			}
 		}
 		// 读取按钮配置
+		// 先清除缓存按钮
+		this.buttons = null
 		if (this.status === "start") {
 			this.buttons = [{ code: "_flow_start", name: "启动", isHide: "0" }];
+		}else if (this.status === 'startAndClose') { // 送审、关闭
+			this.buttons = [{code: '_flow_start', name: '送审', isHide: '0'}, {code: '_flow_close', name: '关闭', isHide: '0'}]
+		} else if (this.status === 'reapplyFlag') { // 重新申请、流程终止、关闭
+			this.buttons = [{code: '_flow_reapply', name: '重新申请', isHide: '0'}, {code: '_flow_stop', name: '流程终止', isHide: '0'}, {code: '_flow_close', name: '关闭', isHide: '0'}]
+		} else if (this.status === 'startAndHold') {  // 送审、暂存、关闭
+			this.buttons = [{code: '_flow_start', name: '送审', isHide: '0'}, {code: '_flow_save', name: '暂存', isHide: '0'}, {code: '_flow_close', name: '关闭', isHide: '0'}]
+		} else if (this.status === 'startAndCloseFiled') { // 送审、关闭
+			this.buttons = [{code: '_flow_start', name: '送审', isHide: '0'}, {code: '_flow_close', name: '关闭', isHide: '0'}]
+		} else if (this.status === 'startAndHoldFiled') {  // 送审、暂存、关闭
+			this.buttons = [{code: '_flow_start', name: '送审', isHide: '0'}, {code: '_flow_save', name: '暂存', isHide: '0'}, {code: '_flow_close', name: '关闭', isHide: '0'}]
+		} else if (this.status === 'startAndCloseBorrow') {
+			this.buttons = [{code: '_flow_start', name: '送审', isHide: '0'}, {code: '_flow_close', name: '关闭', isHide: '0'}]
+		} else if (this.status === 'reback') {
+			this.buttons = [{code: '_flow_reback', name: '撤回', isHide: '0'}]
+		} else if (this.status === 'agreeAndReject') {
+			this.buttons = [{code: '_flow_agree', name: '同意', isHide: '0'}, {code: '_flow_reject', name: '驳回', isHide: '0'}]
+			this.status = 'audit'
 		} else if (this.procDefKey && this.taskDefKey) {
 			// 读取按钮
 			taskDefExtensionService
@@ -244,6 +334,11 @@ export default {
 					taskDefId: this.taskDefKey,
 				})
 				.then((data) => {
+					data.flowButtonList.forEach(item => {
+						if (item.code === '_flow_agree') {
+							this.status = 'audit'
+						}
+					})
 					this.buttons = data.flowButtonList;
 				});
 		}
@@ -279,6 +374,10 @@ export default {
 		},
 	},
 	methods: {
+		changeBusiness () {
+			this.$refs.form.close()
+			this.businessId = 'false'
+		},
 		init() {
 			this.taskSelectedTab = "form-first";
 			this.procDefId = this.$route.query.procDefId;
@@ -301,6 +400,31 @@ export default {
 			this.auditForm.assignee = null;
 			this.auditForm.userIds = null;
 			this.auditForm.message = "";
+			this.cUser = this.commonJS.isEmpty(this.$route.query.cUser) ? false : this.$route.query.cUser
+			this.contractTitle = this.$route.query.contractTitle
+			this.statusFlag = this.$route.query.statusFlag
+			this.wareHouseId = this.$route.query.wareHouseId
+			this.returnId = this.$route.query.returnId
+			if (this.commonJS.isEmpty(this.$route.query.isShow)) {
+				this.isShow = 'true'
+			} else {
+				this.isShow = this.$route.query.isShow
+			}
+			let _this = this
+			// this.$nextTick(() => {
+			//   try {
+			//     _this.$refs.form.getKeyWatch(Math.random().toString())
+			//   } catch (e) {
+			//     console.log(e)
+			//   }
+			// })
+			setTimeout(function () {
+				try {
+					_this.$refs.form.getKeyWatch(Math.random().toString())
+				} catch (e) {
+					console.log(e)
+				}
+			}, 500)
 		},
 		cc(procInsId) {
 			if (this.isCC && this.auditForm.userIds) {
@@ -319,7 +443,21 @@ export default {
 			}
 		},
 		// 暂存草稿
-		save() {},
+		save() {
+			if (this.formType === '2') { // 外置表单
+				this.$refs.form.saveForm(() => {
+					this.$message.success('操作成功')
+					this.changeBusiness()
+					useTabs.close()
+					if (!this.commonJS.isEmpty(this.$route.query.routePath)) {
+						this.$router.push({path: this.$route.query.routePath})
+					} else {
+						this.$router.push({path: '/flowable/task/TodoList'})
+					}
+					// this.$router.push({path: this.$route.query.routePath})
+				})
+			}
+		},
 		print() {
 			//直接传入REF或者querySelector
 			print2(this.$refs.form);
@@ -328,22 +466,44 @@ export default {
 		start(vars) {
 			if (this.formType === "2") {
 				// 外置表单
-				this.$refs.form.saveForm(
+				this.$refs.form.startForm(
 					(businessTable, businessId, inputForm) => {
-						vars = { ...vars, ...inputForm };
+						vars = { ...vars, ...inputForm }
+						if (inputForm.procDefId) {
+							this.procDefId = inputForm.procDefId
+						}
+						if (inputForm.procDefKey) {
+							this.procDefId = inputForm.procDefKey
+						}
+						if (inputForm.title) {
+							this.title = inputForm.title
+						}
+						if (inputForm.formTitle) {
+							this.formTitle = inputForm.formTitle
+						}
+						let assignee = this.auditForm.assignee
+						if (!this.commonJS.isEmpty(inputForm.assignee)) {
+							assignee = inputForm.assignee
+						}
 						taskService
 							.start({
+								procDefId: this.procDefId,
 								procDefKey: this.procDefKey,
 								businessTable: businessTable,
 								businessId: businessId,
 								...vars,
 								title: this.title,
-								assignee: this.auditForm.assignee,
+								assignee: assignee,
 							})
 							.then((data) => {
 								this.$message.success("启动成功");
+								this.changeBusiness()
 								useTabs.close();
-								this.$router.push("/flowable/task/TodoList");
+								if (!this.commonJS.isEmpty(this.$route.query.routePath)) {
+									this.$router.push({path: this.$route.query.routePath})
+								} else {
+									this.$router.push({path: '/flowable/task/TodoList'})
+								}
 								this.cc(data);
 							});
 					}
@@ -358,33 +518,315 @@ export default {
 						assignee: this.auditForm.assignee,
 					},
 					(data) => {
+						this.changeBusiness()
 						useTabs.close();
-						this.$router.push("/flowable/task/TodoList");
+						if (!this.commonJS.isEmpty(this.$route.query.routePath)) {
+							this.$router.push({path: this.$route.query.routePath})
+						} else {
+							this.$router.push({path: '/flowable/task/TodoList'})
+						}
 						this.cc(data);
 					}
 				);
 			}
 		},
 		// 同意
-		agree() {
-			this.commit(); // 同意
+		agree(vars) {
+			vars = {...vars, agree: true}
+			if (this.formType === '2') {
+				this.commit(vars)
+			}
 		},
+		// 重新申请
+		reapply (vars) {
+			vars = {...vars, agree: true}
+			if (this.formType === '2') { // 外置表单
+				let param = {
+					num: this.$route.query.num,
+					taskId: this.taskId,
+					taskDefKey: this.taskDefKey,
+					procInsId: this.procInsId,
+					procDefId: this.procDefId,
+					vars: vars,
+					comment: this.auditForm,
+					assignee: this.auditForm.assignee,
+					cope: {
+						userIds: this.auditForm.userIds,
+						procDefId: this.procDefId,
+						procInsId: '',
+						procDefName: '',
+						procInsName: this.title,
+						taskName: ''
+					}
+				}
+				this.$refs.form.reapplyForm((businessTable, businessId, inputForm) => {
+					vars = {...vars, ...inputForm}
+					if (inputForm.procDefId) {
+						param.procDefId = inputForm.procDefId
+					}
+					let assignee = this.auditForm.assignee
+					if (!this.commonJS.isEmpty(inputForm.assignee)) {
+						assignee = inputForm.assignee
+					}
+					taskService.audit({
+						taskId: this.taskId,
+						taskDefKey: this.taskDefKey,
+						procInsId: this.procInsId,
+						procDefId: this.procDefId,
+						vars: vars,
+						comment: this.auditForm,
+						assignee: assignee
+					}).then((data) => {
+						this.$message.success('提交成功')
+						this.changeBusiness()
+						this.$refs.form.close()
+						// 我的通知
+						let createDate = ''
+						this.myNotice(data, this.procDefId, this.title, vars.userName, createDate)
+						useTabs.close()
+						// this.$router.push({path: '/flowable/task/TodoList'})
+						// this.cc(data)
+						if (this.$route.query.routePath) {
+							this.$router.push({path: this.$route.query.routePath})
+						} else {
+							var num = this.$route.query.num
+							if (num === '2') {
+								this.$router.push({path: '/sys/dashboard/workBench/Pending'})
+								this.cc(data)
+							} else if (num === '3') {
+								this.$router.push({path: '/sys/dashboard/workBench/PendingList'})
+								this.cc(data)
+							} else {
+								this.$router.push({path: '/flowable/task/TodoList'})
+								this.cc(data)
+							}
+						}
+					})
+				}, param)
+			} else { // 动态表单
+				this.$refs.form.submitTaskFormData(vars, this.procInsId, this.taskId, this.auditForm.assignee, this.auditForm, (data) => {
+					this.changeBusiness()
+					this.$refs.form.close()
+					useTabs.close()
+					// this.$router.push({path: '/flowable/task/TodoList'})
+					// this.cc(data)
+					if (this.$route.query.routePath) {
+						this.$router.push({path: this.$route.query.routePath})
+					} else {
+						var num = this.$route.query.num
+						if (num === '2') {
+							this.$router.push({path: '/sys/dashboard/workBench/Pending'})
+							this.cc(data)
+						} else if (num === '3') {
+							this.$router.push({path: '/sys/dashboard/workBench/PendingList'})
+							this.cc(data)
+						} else {
+							this.$router.push({path: '/flowable/task/TodoList'})
+							this.cc(data)
+						}
+					}
+				})
+			}
+		},
+		// Process_1667978088459 客户修改
+		// Process_1668394732246 项目登记
+		// Process_1668503117077 报告质控管理员审核
+		// Process_1669014216650 报告签章-公章
+		// Process_1669087010742 报告签章-公章+执业章
+		// Process_1668677901585 项目报告归档
+		// Process_1670486210438 报告复核
+		// Process_1668759076824 报告作废申请
+		// Process_1670548572652 报告作废归档
+		// Process_1669700915383 合同登记纸质归档
+		// Process_1669271524486 报销审批
+		// Process_1669275081328 发票申请
+		// Process_1669275380218 发票作废
+		// Process_1672738002595 发起通知
+		// Process_1662628133027 评估-合同登记新建
+		// Process_1663743217785 评估-合同登记归档
+		// Process_1664370362499 评估-项目登记流程
+		// Process_1666169509264 评估-项目一级校审
+		// Process_1666266316011 评估-项目二级校审
+		// Process_1666266494837 评估-项目三级校审
+		// Process_1666331430821 评估-报告签发审批
+		// Process_1666332258192 评估-项目登记归档
+		// Process_1665383385070 评估-报销申请
+		// Process_1665628043339 评估-发票作废
+		// Process_1665458731435 评估-发票申请
+		// Process_1669961023358 物资管理-采购申请
+		// Process_1672729521837 物资管理-领用申请  Process_1673513775015
+		// Process_1673332958749 财务-报告签章-实体章  Process_1673513595904
+		// Process_1673514092406 物资管理-入库修改
+		// Process_1673600899831 物资管理-合同
+		// Process_1673924346231 中审-报销审批
+		// Process_1667894339167 会计-合同登记
+		// Process_1678692643340 会计-项目报告归档-苏州分部
+		// Process_1683767097901 物资管理-领用退回申请
 		// 驳回
-		reject() {
-			this.$confirm(`确定驳回流程吗?`, "提示", {
-				confirmButtonText: "确定",
-				cancelButtonText: "取消",
-				type: "warning",
+		reject(vars) {
+			if (this.procDefId.includes('Process_1667978088459') ||
+				this.procDefId.includes('Process_1668394732246') ||
+				this.procDefId.includes('Process_1668503117077') ||
+				this.procDefId.includes('Process_1669014216650') ||
+				this.procDefId.includes('Process_1669087010742') ||
+				this.procDefId.includes('Process_1668677901585') ||
+				this.procDefId.includes('Process_1670486210438') ||
+				this.procDefId.includes('Process_1668759076824') ||
+				this.procDefId.includes('Process_1670548572652') ||
+				this.procDefId.includes('Process_1669700915383') ||
+				this.procDefId.includes('Process_1669271524486') ||
+				this.procDefId.includes('Process_1669275081328') ||
+				this.procDefId.includes('Process_1669275380218') ||
+				this.procDefId.includes('Process_1672738002595') ||
+				this.procDefId.includes('Process_1662628133027') ||
+				this.procDefId.includes('Process_1663743217785') ||
+				this.procDefId.includes('Process_1664370362499') ||
+				this.procDefId.includes('Process_1666169509264') ||
+				this.procDefId.includes('Process_1666266316011') ||
+				this.procDefId.includes('Process_1666266494837') ||
+				this.procDefId.includes('Process_1666331430821') ||
+				this.procDefId.includes('Process_1666332258192') ||
+				this.procDefId.includes('Process_1665383385070') ||
+				this.procDefId.includes('Process_1665628043339') ||
+				this.procDefId.includes('Process_1665458731435') ||
+				this.procDefId.includes('Process_1669961023358') ||
+				this.procDefId.includes('Process_1673513775015') ||
+				this.procDefId.includes('Process_1673513595904') ||
+				this.procDefId.includes('Process_1673514092406') ||
+				this.procDefId.includes('Process_1673600899831') ||
+				this.procDefId.includes('Process_1673924346231') ||
+				this.procDefId.includes('Process_1667894339167') ||
+				this.procDefId.includes('Process_1678692643340') ||
+				this.procDefId.includes('Process_1683767097901')
+			) {
+				console.log('进入新版驳回')
+				this.$confirm(`确定驳回流程吗?`, '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(async () => {
+					if (this.formType === '2') {
+						vars = {...vars, agree: false}
+						// await this.commit(vars) // 驳回
+						this.$refs.form.updateStatusById('reject', () => {
+							console.log('333')
+							taskService.audit({
+								taskId: this.taskId,
+								taskDefKey: this.taskDefKey,
+								procInsId: this.procInsId,
+								procDefId: this.procDefId,
+								vars: vars,
+								comment: this.auditForm,
+								assignee: this.auditForm.assignee
+							}).then((data) => {
+								this.$message.success('提交成功')
+								this.changeBusiness()
+								this.$refs.form.close()
+								// 我的通知
+								let createDate = ''
+								this.myNotice(data, this.procDefId, this.title, vars.userName, createDate)
+								useTabs.close()
+								// this.$router.push({path: '/flowable/task/TodoList'})
+								// this.cc(data)
+								if (this.$route.query.routePath) {
+									this.$router.push({path: this.$route.query.routePath})
+								} else {
+									var num = this.$route.query.num
+									if (num === '2') {
+										this.$router.push({path: '/sys/dashboard/workBench/Pending'})
+										this.cc(data)
+									} else if (num === '3') {
+										this.$router.push({path: '/sys/dashboard/workBench/PendingList'})
+										this.cc(data)
+									} else {
+										this.$router.push({path: '/flowable/task/TodoList'})
+										this.cc(data)
+									}
+								}
+							})
+						})
+					}
+				})
+			} else {
+				console.log('进入旧版驳回')
+				this.$confirm(`确定驳回流程吗?`, '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(async () => {
+					if (this.formType === '2') {
+						if (this.cUser === true || this.cUser === 'true') { // cUser为true则页面审核人为自定义多选,驳回时要将审核人重新定义一次
+							await this.$refs.form.updateStatusById('reject', (businessTable, businessId, inputForm) => {
+								this.auditForm.candidateUserList = inputForm.assignee
+							})
+							setTimeout(() => {
+								taskService.backNodes(this.taskId).then((data) => {
+									let backNodes = data
+									if (backNodes.length > 0) {
+										let backTaskDefKey = backNodes[backNodes.length - 1].taskDefKey
+										this.back(backTaskDefKey)
+									}
+								})
+							}, 100)
+						} else {
+							await this.$refs.form.updateStatusById('reject')
+							taskService.backNodes(this.taskId).then((data) => {
+								let backNodes = data
+								if (backNodes.length > 0) {
+									let backTaskDefKey = backNodes[backNodes.length - 1].taskDefKey
+									this.back(backTaskDefKey)
+								}
+							})
+						}
+					}
+				})
+			}
+		},
+		// 驳回至指定节点(节点是从0开始)
+		rejectToPointNum (num) {
+			this.$confirm(`确定驳回流程吗?`, '提示', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning'
 			}).then(() => {
 				taskService.backNodes(this.taskId).then((data) => {
-					let backNodes = data;
+					let backNodes = data
+					if (backNodes.length > 0 && backNodes.length > num) {
+						let backTaskDefKey = backNodes[num].taskDefKey
+						this.back(backTaskDefKey)
+					}
+				})
+			})
+			if (this.formType === '2') {
+				this.$refs.form.updateStatusById('reject')
+			}
+		},
+		// 撤回
+		reback () {
+			this.$confirm(`确定撤回流程吗?`, '提示', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning'
+			}).then(async () => {
+				await this.$refs.form.updateStatusById('reback')
+				taskService.backNodes(this.taskId).then((data) => {
+					let backNodes = data
+					this.changeBusiness()
+					// this.$router.push({path: this.$route.query.routePath})
 					if (backNodes.length > 0) {
-						let backTaskDefKey =
-							backNodes[backNodes.length - 1].taskDefKey;
-						this.back(backTaskDefKey);
+						let backTaskDefKey = backNodes[0].taskDefKey
+						this.back(backTaskDefKey)
+					} else {
+						useTabs.close()
+						if (!this.commonJS.isEmpty(this.$route.query.routePath)) {
+							this.$router.push({path: this.$route.query.routePath})
+						} else {
+							this.$router.push({path: '/flowable/task/TodoList'})
+						}
 					}
-				});
-			});
+					// this.$refs.form.close()
+				})
+			})
 		},
 		// 驳回到任意节点
 		turnBack() {
@@ -400,8 +842,16 @@ export default {
 				})
 				.then((data) => {
 					this.$message.success("回退成功");
+					this.changeBusiness()
 					useTabs.close();
-					this.$router.push("/flowable/task/TodoList");
+					var num = this.$route.query.num
+					if (num === '2') {
+						this.$router.push({path: '/sys/dashboard/workBench/Pending'})
+					} else if (num === '3') {
+						this.$router.push({path: '/sys/dashboard/workBench/PendingList'})
+					} else {
+						this.$router.push({path: '/flowable/task/TodoList'})
+					}
 					this.cc(data);
 				});
 		},
@@ -435,7 +885,7 @@ export default {
 		selectUsersToTransferTask(user) {
 			taskService.transfer(this.taskId, user[0].id).then((data) => {
 				this.$message.success(data);
-				this.$router.push("/flowable/task/TodoList");
+				this.$router.push({path: '/flowable/task/TodoList'});
 			});
 		},
 		// 委托
@@ -445,7 +895,7 @@ export default {
 		selectUsersToDelateTask(user) {
 			taskService.delegate(this.taskId, user[0].id).then((data) => {
 				this.$message.success(data);
-				this.$router.push("/flowable/task/TodoList");
+				this.$router.push({path: '/flowable/task/TodoList'});
 			});
 		},
 		// 终止
@@ -455,22 +905,74 @@ export default {
 				cancelButtonText: "取消",
 				type: "warning",
 			}).then(() => {
-				processService
-					.stop(this.procInsId, this.auditForm.message)
-					.then((data) => {
-						this.$message.success(data);
-						this.$router.push("/flowable/task/TodoList");
-					});
+				// 将数据状态更改为暂存状态
+				this.$refs.form.updateStatusById('hold', () => {
+					// this.auditForm.candidateUserList = inputForm.assignee
+					processService.stop(this.procInsId, this.auditForm.message).then((data) => {
+						this.$message.success(data)
+						useTabs.close()
+						// this.cc(data)
+						if (this.$route.query.routePath) {
+							this.$router.push({path: this.$route.query.routePath})
+						} else {
+							var num = this.$route.query.num
+							if (num === '2') {
+								this.$router.push({path: '/sys/dashboard/workBench/Pending'})
+								this.cc(data)
+							} else if (num === '3') {
+								this.$router.push({path: '/sys/dashboard/workBench/PendingList'})
+								this.cc(data)
+							} else {
+								this.$router.push({path: '/flowable/task/TodoList'})
+								this.cc(data)
+							}
+						}
+					})
+				})
 			});
 		},
+		// 关闭
+		close () {
+			this.changeBusiness()
+			useTabs.close()
+			console.log(this.$route.query)
+			if (!this.commonJS.isEmpty(this.$route.query.routePath)) {
+				this.$router.push({path: this.$route.query.routePath})
+			} else {
+				this.$router.push({path: '/flowable/task/TodoList'})
+			}
+		},
 		// 自定义按钮提交
 		commit(vars) {
 			if (this.formType === "2") {
 				// 外置表单
+				let param = {
+					num: this.$route.query.num,
+					taskId: this.taskId,
+					taskDefKey: this.taskDefKey,
+					procInsId: this.procInsId,
+					procDefId: this.procDefId,
+					vars: vars,
+					comment: this.auditForm,
+					assignee: this.auditForm.assignee,
+					cope: {
+						userIds: this.auditForm.userIds,
+						procDefId: this.procDefId,
+						procInsId: '',
+						procDefName: '',
+						procInsName: this.title,
+						taskName: ''
+					}
+				}
 				// eslint-disable-next-line no-unused-vars
-				this.$refs.form.saveForm(
+				this.$refs.form.agreeForm(
 					(businessTable, businessId, inputForm) => {
-						vars = { ...vars, ...inputForm };
+						if (this.commonJS.isNotEmpty(inputForm)) {
+							if (this.commonJS.isNotEmpty(inputForm.assignee)) {
+								this.auditForm.assignee = inputForm.assignee
+							}
+						}
+						vars = { ...vars, ...inputForm }
 						taskService
 							.audit({
 								taskId: this.taskId,
@@ -484,10 +986,28 @@ export default {
 							.then((data) => {
 								this.$message.success("提交成功");
 								useTabs.close();
-								this.$router.push("/flowable/task/TodoList");
-								this.cc(data);
+								// 我的通知
+								let createDate = ''
+								this.myNotice(data, this.procDefId, this.title, vars.userName, createDate)
+								// this.$router.push({path: "/flowable/task/TodoList"});
+								// this.cc(data);
+								if (this.$route.query.routePath) {
+									this.$router.push({path: this.$route.query.routePath})
+								} else {
+									var num = this.$route.query.num
+									if (num === '2') {
+										this.$router.push({path: '/sys/dashboard/workBench/Pending'})
+										this.cc(data)
+									} else if (num === '3') {
+										this.$router.push({path: '/sys/dashboard/workBench/PendingList'})
+										this.cc(data)
+									} else {
+										this.$router.push({path: '/flowable/task/TodoList'})
+										this.cc(data)
+									}
+								}
 							});
-					}
+					}, param
 				);
 			} else {
 				// 动态表单
@@ -498,9 +1018,25 @@ export default {
 					this.auditForm.assignee,
 					this.auditForm,
 					(data) => {
+						this.changeBusiness()
 						useTabs.close();
-						this.$router.push("/flowable/task/TodoList");
-						this.cc(data);
+						// this.$router.push({path: "/flowable/task/TodoList"});
+						// this.cc(data);
+						if (this.$route.query.routePath) {
+							this.$router.push({path: this.$route.query.routePath})
+						} else {
+							var num = this.$route.query.num
+							if (num === '2') {
+								this.$router.push({path: '/sys/dashboard/workBench/Pending'})
+								this.cc(data)
+							} else if (num === '3') {
+								this.$router.push({path: '/sys/dashboard/workBench/PendingList'})
+								this.cc(data)
+							} else {
+								this.$router.push({path: '/flowable/task/TodoList'})
+								this.cc(data)
+							}
+						}
 					}
 				);
 			}
@@ -556,10 +1092,125 @@ export default {
 				case "_flow_print": // 打印
 					this.print();
 					break;
+				case '_flow_reapply':// 重新申请
+					this.reapply()
+					break
+				case '_flow_close':// 关闭
+					this.close()
+					break
+				case '_flow_reback':// 撤回
+					this.reback()
+					break
 				default:
 					this.commit(vars); // 自定义按钮提交
 			}
 		},
+		myNotice (taskId, proDefId, title, userName, createDate) {
+			this.inputForm = {
+				taskId: '',
+				title: '',
+				defId: '',
+				taskName: '',
+				createUser: '',
+				createTime: '',
+				noticeName: '',
+				noticeId: ''
+			}
+			taskService.historicTaskList(taskId).then((data) => {
+				if (data[data.length - 1].comment.status === '结束') {
+					this.inputForm.taskId = taskId
+					// 实例标题
+					this.inputForm.title = title
+					// 流程id
+					this.inputForm.defId = proDefId
+					// 流程名称
+					processService.getById(proDefId).then((data) => {
+						this.inputForm.taskName = data.name
+					})
+					// 流程发起人
+					this.inputForm.createUser = data[0].assigneeName
+					// 创建时间
+					this.inputForm.createTime = data[0].histIns.endTime
+					// 通知人
+					this.inputForm.noticeName = data[0].assigneeName
+					// 通知人Id
+					this.inputForm.noticeId = data[0].assigneeId
+					noticeService.addInfo(this.inputForm)
+				}
+			})
+		},
+		callBackFunc (type) {
+			// 隐藏同意按钮
+			if (type === 'hide') {
+				// 读取按钮
+				taskDefExtensionService.queryByDefIdAndTaskId({
+					processDefId: this.procDefKey,
+					taskDefId: this.taskDefKey
+				}).then((data) => {
+					// console.log('buttons', data)
+					data.flowButtonList.forEach(item => {
+						if (item.code === '_flow_agree') {
+							item.isHide = '1'
+						}
+					})
+					this.buttons = data.flowButtonList
+				})
+			}
+			// 展示同意按钮
+			if (type === 'show') {
+				// 读取按钮
+				taskDefExtensionService.queryByDefIdAndTaskId({
+					processDefId: this.procDefKey,
+					taskDefId: this.taskDefKey
+				}).then((data) => {
+					// console.log('buttons', data)
+					data.flowButtonList.forEach(item => {
+						if (item.code === '_flow_agree') {
+							item.isHide = '0'
+						}
+					})
+					this.buttons = data.flowButtonList
+				})
+			}
+		},
+		// 开启/关闭taskForm页面的加载中状态
+		changeLoading (loading) {
+			if (this.commonJS.isNotEmpty(loading)) {
+				this.loading = loading
+			} else {
+				this.loading = false
+			}
+		},
+		onTabChange (event) {
+			if (event.name === 'form-sixth') {
+				if (this.commonJS.isNotEmpty(this.wareHouseId)) {
+					this.wareHouseService.findHiById(this.wareHouseId).then((data) => {
+						this.dataListHi = data
+					})
+				}
+			}
+			if (event.name === 'form-seventh') {
+				if (this.commonJS.isNotEmpty(this.returnId)) {
+					this.collectService.findByReturnId(this.returnId).then((data) => {
+						this.collectService.findHiById(data.id).then((data) => {
+							this.dataListHiCollect = data
+						})
+					})
+				}
+			}
+		},
+		// 打开入库修改历史详情页
+		hiDetail (row) {
+			if (this.commonJS.isNotEmpty(row.id)) {
+				this.$refs.wareHouseHi.init(row.id)
+			}
+		},
+		// 打开领用退回历史详情页
+		hiDetailCollect (row) {
+			if (this.commonJS.isNotEmpty(row.id)) {
+				this.$refs.collectReturnHi.init(row.id)
+			}
+		}
 	},
 	data() {
 		return {
@@ -581,6 +1232,7 @@ export default {
 			buttons: [],
 			isCC: false,
 			isAssign: false,
+			isShow: true,
 			printObj: {
 				id: "printForm",
 				popTitle: "",
@@ -595,6 +1247,12 @@ export default {
 				userIds: null,
 				assignee: null,
 			},
+			cUser: false,
+			loading: false,
+			wareHouseId: '',
+			returnId: '',
+			dataListHi: [],
+			dataListHiCollect: []
 		};
 	},
 };

+ 1 - 1
src/views/program/configuration/fileDict/FileDictForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="500px"
       @close="close"
       @keyup.enter.native="doSubmit"

+ 1 - 1
src/views/program/configuration/proofreadType/BrowseTypeForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="500px"
       @close="close"
       @keyup.enter.native="doSubmit"

+ 1 - 1
src/views/program/configuration/proofreadType/TypeForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="500px"
       @close="close"
       @keyup.enter.native="doSubmit"

+ 1 - 1
src/views/program/configuration/typeDict/TypeDictForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="500px"
       @close="close"
       @keyup.enter.native="doSubmit"

+ 1 - 1
src/views/program/configuration/typeFileDict/TypeFileDictForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="500px"
       @close="close"
       @keyup.enter.native="doSubmit"

+ 1 - 1
src/views/program/registered/ContactForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1100px"
       height="500px"
       @close="close"

+ 1 - 1
src/views/program/registered/ContractForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       title="选择合同"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1100px"
       height="500px"
       @close="close"

+ 3 - 3
src/views/program/registered/ProjectArchiveForm.vue

@@ -137,7 +137,7 @@
                   type="date"
                   placement="bottom-start"
                   value-format="yyyy-MM-dd"
-                  placeholder="选择日期"clearable>
+                  placeholder="选择日期" clearable>
                 </el-date-picker>
               </el-form-item>
             </el-col>
@@ -287,7 +287,7 @@
                   v-model="inputForm.invoiceDate"
                   type="date"
                   value-format="yyyy-MM-dd"
-                  placeholder="选择日期时间"clearable>
+                  placeholder="选择日期时间" clearable>
                 </el-date-picker>
               </el-form-item>
             </el-col>
@@ -407,7 +407,7 @@
                   v-model="inputForm.reimbursementDate"
                   type="date"
                   value-format="yyyy-MM-dd"
-                  placeholder="选择日期时间"clearable>
+                  placeholder="选择日期时间" clearable>
                 </el-date-picker>
               </el-form-item>
             </el-col>

+ 4 - 4
src/views/program/registered/ProjectArchiveFormDialog.vue

@@ -3,7 +3,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1300px"
       @close="close"
       @keyup.enter.native=""
@@ -143,7 +143,7 @@
                   type="date"
                   placement="bottom-start"
                   value-format="yyyy-MM-dd"
-                  placeholder="选择日期"clearable>
+                  placeholder="选择日期" clearable>
                 </el-date-picker>
               </el-form-item>
             </el-col>
@@ -292,7 +292,7 @@
                   v-model="inputForm.invoiceDate"
                   type="date"
                   value-format="yyyy-MM-dd"
-                  placeholder="选择日期时间"clearable>
+                  placeholder="选择日期时间" clearable>
                 </el-date-picker>
               </el-form-item>
             </el-col>
@@ -412,7 +412,7 @@
                   v-model="inputForm.reimbursementDate"
                   type="date"
                   value-format="yyyy-MM-dd"
-                  placeholder="选择日期时间"clearable>
+                  placeholder="选择日期时间" clearable>
                 </el-date-picker>
               </el-form-item>
             </el-col>

+ 8 - 8
src/views/program/registered/ProjectForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1300px"
       @close="close"
       @keyup.enter.native=""
@@ -120,7 +120,7 @@
                     <el-form-item label="立项号" prop="approvalNo"
                                   :rules="[
                  ]">
-                      <el-input :disabled="true" maxlength="64" max v-model="inputForm.approvalNo" placeholder="请输入立项号"clearable></el-input>
+                      <el-input :disabled="true" maxlength="64" max v-model="inputForm.approvalNo" placeholder="请输入立项号" clearable></el-input>
                     </el-form-item>
                   </el-col>
                   <el-col :span="12">
@@ -142,14 +142,14 @@
                     <el-form-item label="评估目的" prop="assessmentObjective"
                                   :rules="[
                  ]">
-                      <el-input v-model="inputForm.assessmentObjective" placeholder="请输入评估目的"clearable></el-input>
+                      <el-input v-model="inputForm.assessmentObjective" placeholder="请输入评估目的" clearable></el-input>
                     </el-form-item>
                   </el-col>
                   <el-col :span="12">
                     <el-form-item label="评估方法" prop="assessmentWay"
                                   :rules="[
                  ]">
-                      <el-input v-model="inputForm.assessmentWay" placeholder="请输入评估方法"clearable></el-input>
+                      <el-input v-model="inputForm.assessmentWay" placeholder="请输入评估方法" clearable></el-input>
                     </el-form-item>
                   </el-col>
 
@@ -235,7 +235,7 @@
                     <el-form-item label="企业类型" prop="enterpriseType"
                                   :rules="[
                  ]">
-                      <el-input maxlength="64" v-model="inputForm.enterpriseType" placeholder="请输入企业类型"clearable></el-input>
+                      <el-input maxlength="64" v-model="inputForm.enterpriseType" placeholder="请输入企业类型" clearable></el-input>
                     </el-form-item>
                   </el-col>
                   <el-col :span="12">
@@ -285,7 +285,7 @@
                                   :rules="[
                           {required: true, message:'被评估企业不能为空', trigger:'blur'}
                  ]">
-                      <el-input v-model="inputForm.assessmentEnterprise" placeholder="请输入被评估企业"clearable></el-input>
+                      <el-input v-model="inputForm.assessmentEnterprise" placeholder="请输入被评估企业" clearable></el-input>
                     </el-form-item>
                   </el-col>
                   <el-col :span="12">
@@ -293,14 +293,14 @@
                                   :rules="[
                           {required: true, message:'联系人及电话不能为空', trigger:'blur'}
                  ]">
-                      <el-input maxlength="64" v-model="inputForm.linkNum" placeholder="请输入联系人及电话"clearable></el-input>
+                      <el-input maxlength="64" v-model="inputForm.linkNum" placeholder="请输入联系人及电话" clearable></el-input>
                     </el-form-item>
                   </el-col>
                   <el-col :span="12">
                     <el-form-item label="委托人与被评估单位关系" prop="relationship"
                                   :rules="[
                  ]">
-                      <el-input v-model="inputForm.relationship" placeholder="请输入委托人与被评估单位关系"clearable></el-input>
+                      <el-input v-model="inputForm.relationship" placeholder="请输入委托人与被评估单位关系" clearable></el-input>
                     </el-form-item>
                   </el-col>
                   <el-col :span="12">

+ 107 - 100
src/views/program/registered/ProjectForm2022.vue

@@ -3,12 +3,12 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1300px"
       @close="close"
       @keyup.enter.native=""
-      :visible.sync="visible">
-      <el-form size="middle" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="method==='view'"
+      v-model="visible">
+      <el-form size="large" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="method==='view'"
                label-width="220px" @submit.native.prevent>
         <el-divider content-position="left"><i class="el-icon-document"></i> 选择合同</el-divider>
         <el-row  :gutter="15">
@@ -18,7 +18,7 @@
                           {required: true, message:'合同不能为空', trigger:'blur'},
                           {required: true, message:'合同不能为空', trigger:'change'}
                  ]">
-              <el-input size="medium" :disabled="method!=='add'" :readonly="true" @focus="openContractForm()" v-model="inputForm.contractName" placeholder="请选择合同">
+              <el-input size="large" :disabled="method!=='add'" :readonly="true" @focus="openContractForm()" v-model="inputForm.contractName" placeholder="请选择合同">
                 <el-button slot="append" icon="el-icon-search" @click="openContractForm()"></el-button>
               </el-input>
             </el-form-item>
@@ -116,7 +116,7 @@
             <el-form-item label="立项号" prop="approvalNo"
                           :rules="[
                  ]">
-              <el-input :disabled="true" maxlength="64" max v-model="inputForm.approvalNo" placeholder="请输入立项号"clearable></el-input>
+              <el-input :disabled="true" maxlength="64" max v-model="inputForm.approvalNo" placeholder="请输入立项号" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -138,14 +138,14 @@
             <el-form-item label="评估目的" prop="assessmentObjective"
                           :rules="[
                  ]">
-              <el-input v-model="inputForm.assessmentObjective" placeholder="请输入评估目的"clearable></el-input>
+              <el-input v-model="inputForm.assessmentObjective" placeholder="请输入评估目的" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="评估方法" prop="assessmentWay"
                           :rules="[
                  ]">
-              <el-input v-model="inputForm.assessmentWay" placeholder="请输入评估方法"clearable></el-input>
+              <el-input v-model="inputForm.assessmentWay" placeholder="请输入评估方法" clearable></el-input>
             </el-form-item>
           </el-col>
 
@@ -157,7 +157,7 @@
               <el-date-picker
                 v-model="inputForm.assessmentDate"
                 type="date"
-                value-format="yyyy-MM-dd"
+                value-format="YYYY-MM-DD"
                 placeholder="选择评估基准日"
                 style="width:100%"
                 placement="bottom-start"
@@ -199,10 +199,10 @@
                       label: 'name',         // 显示名称
                       children: 'children'    // 子级字段名
                     }"
-                url="/sys/area/treeData"
+                url="/system-server/sys/area/treeData"
                 :value="inputForm.location"
                 :clearable="true"
-                size="medium"
+                size="large"
                 :accordion="true"
                 @getValue="(value) => {inputForm.location=value}"/>
             </el-form-item>
@@ -220,7 +220,7 @@
             <el-form-item label="企业类型" prop="enterpriseType"
                           :rules="[
                  ]">
-              <el-input maxlength="64" v-model="inputForm.enterpriseType" placeholder="请输入企业类型"clearable></el-input>
+              <el-input maxlength="64" v-model="inputForm.enterpriseType" placeholder="请输入企业类型" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -271,7 +271,7 @@
                           {required: true, message:'被评估企业不能为空', trigger:'blur'},
                           {required: true, message:'被评估企业不能为空', trigger:'change'}
                  ]">
-              <el-input v-model="inputForm.assessmentEnterpriseName" @focus="openWorkClientForm('3')" placeholder="请输入被评估企业"clearable></el-input>
+              <el-input v-model="inputForm.assessmentEnterpriseName" @focus="openWorkClientForm('3')" placeholder="请输入被评估企业" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -279,14 +279,14 @@
                           :rules="[
                           {required: true, message:'联系人及电话不能为空', trigger:'blur'}
                  ]">
-              <el-input maxlength="64" v-model="inputForm.linkNum" placeholder="请输入联系人及电话"clearable></el-input>
+              <el-input maxlength="64" v-model="inputForm.linkNum" placeholder="请输入联系人及电话" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="委托人与被评估单位关系" prop="relationship"
                           :rules="[
                  ]">
-              <el-input v-model="inputForm.relationship" placeholder="请输入委托人与被评估单位关系"clearable></el-input>
+              <el-input v-model="inputForm.relationship" placeholder="请输入委托人与被评估单位关系" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -297,7 +297,7 @@
               <el-date-picker
                 v-model="inputForm.checkYear"
                 type="year"
-                value-format="yyyy"
+                value-format="YYYY"
                 placeholder="选择评估费用核算年度"
                 style="width:100%"
                 placement="bottom-start"
@@ -312,16 +312,16 @@
                  ]">
               <SelectUserTree
                 ref="companyTree"
-                size="medium"
                 :props="{
                   value: 'id',             // ID字段名
                   label: 'name',         // 显示名称
                   children: 'children'    // 子级字段名
                 }"
-                :url="`/sys/user/treeUserDataAllOffice?type=2`"
+                :url="`/system-server/sys/user/treeUserDataAllOffice?type=2`"
                 :value="inputForm.projectManager"
                 :clearable="true"
                 :accordion="true"
+				size="large"
                 @getValue="(value) => {inputForm.projectManager=value}"/>
             </el-form-item>
           </el-col>
@@ -389,7 +389,7 @@
               <el-date-picker
                 v-model="inputForm.planEndTime"
                 type="date"
-                value-format="yyyy-MM-dd"
+                value-format="YYYY-MM-DD"
                 placeholder="选择计划完成时间"
                 style="width:100%"
                 placement="bottom-start"
@@ -454,7 +454,6 @@
                           :rules="[
                  ]">
               <el-date-picker
-                size="medium"
                 v-model="inputForm.workBeginAndEndDate"
                 type="daterange"
                 range-separator="至"
@@ -475,7 +474,7 @@
               <el-date-picker
                 v-model="inputForm.reportingDate"
                 type="date"
-                value-format="yyyy-MM-dd"
+                value-format="YYYY-MM-DD"
                 placeholder="选择预计出报告时间"
                 style="width:100%"
                 placement="bottom-start"
@@ -487,18 +486,19 @@
             <el-form-item label="备注" prop="remarks"
                           :rules="[
                  ]">
-              <el-input type="textarea" v-model="inputForm.remarks" maxlength="500" placeholder="请输入备注" show-word-limit></el-input>
+              <el-input type="textarea" :rows="4" v-model="inputForm.remarks" maxlength="500" placeholder="请输入备注" show-word-limit></el-input>
             </el-form-item>
           </el-col>
         </el-row>
         <el-divider content-position="left"><i class="el-icon-document"></i>
           委托方联系人和项目直接对接人
-          <el-button style="margin-left: 20px" type="primary" :disabled="method==='view'" size="mini" @click="openContactForm('0')" plain>
+          <el-button style="margin-left: 20px" type="primary" :disabled="method==='view'" size="default" @click="openContactForm('0')" plain>
             新增
           </el-button>
         </el-divider>
         <el-row  :gutter="15" >
-          <vxe-table
+			<el-col :span="24">
+          		<vxe-table
             border
             show-overflow
             ref="clientTable"
@@ -507,16 +507,15 @@
             style="margin-left: 5em"
             @cell-click=""
             @edit-closed=""
-            highlight-current-row
-            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+            :edit-config="{trigger: 'click', mode: 'row', showStatus: false, autoClear: true, icon: '#'}"
           >
             <vxe-table-column field="contacts" title="联系人" :edit-render="{}">
-              <template v-slot:edit="scope">
+              <template #edit="scope">
                 <el-input :disabled="true" v-model="scope.row.contacts" ></el-input>
               </template>
             </vxe-table-column>
             <vxe-table-column field="clientType" title="人员类型" :edit-render="{name: '$select', options: clientTypes}">
-              <template v-slot:edit="scope">
+              <template #edit="scope">
                 <vxe-select v-model="scope.row.clientType"  transfer>
                   <vxe-option
                     v-for="item in clientTypes"
@@ -528,109 +527,116 @@
               </template>
             </vxe-table-column>
             <vxe-table-column field="linkMobilePhoneFirst" title="联系方式1" :edit-render="{}">
-              <template v-slot:edit="scope">
+              <template #edit="scope">
                 <el-input :disabled="true" v-model="scope.row.linkMobilePhoneFirst" ></el-input>
               </template>
             </vxe-table-column>
             <vxe-table-column field="linkMobilePhoneSecoed" title="联系方式2" :edit-render="{}">
-              <template v-slot:edit="scope">
+              <template #edit="scope">
                 <el-input :disabled="true" v-model="scope.row.linkMobilePhoneSecoed" ></el-input>
               </template>
             </vxe-table-column>
             <vxe-table-column field="job" title="职位" :edit-render="{}">
-              <template v-slot:edit="scope">
+              <template #edit="scope">
                 <el-input v-model="scope.row.job" ></el-input>
               </template>
             </vxe-table-column>
             <vxe-table-column field="remarks" title="备注" :edit-render="{}">
-              <template v-slot:edit="scope">
+              <template #edit="scope">
                 <el-input v-model="scope.row.remarks" ></el-input>
               </template>
             </vxe-table-column>
             <vxe-table-column title="操作" width="100">
-              <template v-slot="scope">
+              <template #default="scope">
                 <el-button size="mini" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'client')">删除</el-button>
               </template>
             </vxe-table-column>
           </vxe-table>
+			</el-col>
         </el-row>
 
 
         <el-divider content-position="left"><i class="el-icon-document"></i>
           项目组成员
-          <el-button style="margin-left: 20px" type="primary" :disabled="method==='view'" size="mini" @click="insertEvent('member')" plain>
+          <el-button style="margin-left: 20px" type="primary" :disabled="method==='view'" size="default" @click="insertEvent('member')" plain>
             新增
           </el-button>
         </el-divider>
         <el-row  :gutter="15">
-          <vxe-table
-            border
-            show-overflow
-            show-footer
-            :footer-method="footerMethod"
-            ref="memberTable"
-            class="vxe-table-element"
-            :data="inputForm.members"
-            style="margin-left: 5em"
-            @cell-click=""
-            @edit-closed=""
-            highlight-current-row
-            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
-          >
-            <vxe-table-column field="name" title="姓名" :edit-render="{}">
-              <template v-slot:edit="scope">
-                <el-input v-model="scope.row.name" ></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="workHours" title="预计工时(时)" :edit-render="{name: '$input'}">
-              <template v-slot:edit="scope">
-                <vxe-input
-                  v-model="scope.row.workHours"
-                  type="float"
-                  digits="1"
-                  placeholder="请输入预计工时(时)"
-                  clearable>
-                </vxe-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="type" title="人员类型" :edit-render="{name: '$select', options: $dictUtils.getDictList('program_registered_member_type')}">
-              <template v-slot:edit="scope">
-                <vxe-select v-model="scope.row.type" placeholder="请选择人员类型" clearable style="width: 100%;" transfer>
-                  <vxe-option
-                    v-for="item in $dictUtils.getDictList('program_registered_member_type')"
-                    :key="item.value"
-                    :label="item.label"
-                    :value="item.value">
-                  </vxe-option>
-                </vxe-select>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="job" title="项目职务" :edit-render="{name: '$select', options: $dictUtils.getDictList('program_registered_member_position')}">
-              <template v-slot:edit="scope">
-                <vxe-select v-model="scope.row.job" placeholder="请选择项目职务" clearable style="width: 100%;" transfer>
-                  <vxe-option
-                    v-for="item in $dictUtils.getDictList('program_registered_member_position')"
-                    :key="item.value"
-                    :label="item.label"
-                    :value="item.value">
-                  </vxe-option>
-                </vxe-select>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column title="操作" width="100">
-              <template v-slot="scope">
-                <el-button size="mini" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'member')">删除</el-button>
-              </template>
-            </vxe-table-column>
-          </vxe-table>
+			<el-col :span="24">
+				<vxe-table
+					border
+					show-overflow
+					show-footer
+					:footer-method="footerMethod"
+					ref="memberTable"
+					class="vxe-table-element"
+					:data="inputForm.members"
+					style="margin-left: 5em"
+					keep-source
+					@cell-click=""
+					@edit-closed=""
+					:edit-config="{trigger: 'click', mode: 'row', showStatus: false, autoClear: true, icon: '#'}"
+				>
+					<vxe-table-column field="name" title="姓名" :edit-render="{}">
+						<template #edit="scope">
+							<el-input v-model="scope.row.name" ></el-input>
+						</template>
+					</vxe-table-column>
+					<vxe-table-column field="workHours" title="预计工时(时)" :edit-render="{name: '$input'}">
+						<template #edit="scope">
+							<vxe-input
+								v-model="scope.row.workHours"
+								type="float"
+								digits="1"
+								placeholder="请输入预计工时(时)"
+								clearable>
+							</vxe-input>
+						</template>
+					</vxe-table-column>
+					<vxe-table-column field="type" title="人员类型" :edit-render="{name: '$select', options: $dictUtils.getDictList('program_registered_member_type')}">
+						<template #edit="scope">
+							<vxe-select v-model="scope.row.type" placeholder="请选择人员类型" clearable style="width: 100%;" transfer>
+								<vxe-option
+									v-for="item in $dictUtils.getDictList('program_registered_member_type')"
+									:key="item.value"
+									:label="item.label"
+									:value="item.value">
+								</vxe-option>
+							</vxe-select>
+						</template>
+					</vxe-table-column>
+					<vxe-table-column field="job" title="项目职务" :edit-render="{name: '$select', options: $dictUtils.getDictList('program_registered_member_position')}">
+						<template #edit="scope">
+							<vxe-select v-model="scope.row.job" placeholder="请选择项目职务" clearable style="width: 100%;" transfer>
+								<vxe-option
+									v-for="item in $dictUtils.getDictList('program_registered_member_position')"
+									:key="item.value"
+									:label="item.label"
+									:value="item.value">
+								</vxe-option>
+							</vxe-select>
+						</template>
+					</vxe-table-column>
+					<vxe-table-column title="操作" width="100">
+						<template #default="scope">
+							<el-button size="default" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'member')">删除</el-button>
+						</template>
+					</vxe-table-column>
+				</vxe-table>
+			</el-col>
+
         </el-row>
       </el-form>
       <!--        附件-->
       <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
-      <span slot="footer" class="dialog-footer">
-      <el-button size="small" @click="close()" icon="el-icon-circle-close">关闭</el-button>
-      <el-button size="small" type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
-    </span>
+		<template #footer>
+			<span class="dialog-footer">
+			  <el-button @click="close()" icon="el-icon-circle-close">关闭</el-button>
+			  <el-button type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
+			</span>
+		</template>
+
     </el-dialog>
     <ContractForm  ref="contractForm" @getContract="getContract"></ContractForm>
     <WorkClientForm  ref="workClientForm" @getWorkClient="getWorkClient"></WorkClientForm>
@@ -816,7 +822,8 @@
           this.$refs.inputForm.resetFields()
           if (method === 'edit' || method === 'view') { // 修改或者查看
             this.loading = true
-            this.programProjectListInfoService.queryById(this.inputForm.id).then(({data}) => {
+			  this.$refs.uploadComponent.clearUpload()
+            this.programProjectListInfoService.queryById(this.inputForm.id).then((data) => {
               this.inputForm = this.recover(this.inputForm, data)
               this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
               if (!this.commonJS.isEmpty(this.inputForm.workBeginDate) && !this.commonJS.isEmpty(this.inputForm.workEndDate)) {
@@ -893,7 +900,7 @@
               this.inputForm.files = []
             }
             this.inputForm.files = this.$refs.uploadComponent.getDataList()
-            this.programProjectListInfoService.save2022(this.inputForm).then(({data}) => {
+            this.programProjectListInfoService.save2022(this.inputForm).then((data) => {
               this.close()
               this.$message.success(data)
               this.$emit('refreshDataList')
@@ -981,7 +988,7 @@
         this.visible = false
       },
       getTypeList () {
-        this.programTypeDictService.getList().then(({data}) => {
+        this.programTypeDictService.getList().then((data) => {
           this.typeDictList = data
         })
       },

+ 8 - 8
src/views/program/registered/ProjectForm2022Tab.vue

@@ -3,7 +3,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1300px"
       @close="close"
       @keyup.enter.native=""
@@ -120,7 +120,7 @@
                     <el-form-item label="立项号" prop="approvalNo"
                                   :rules="[
                  ]">
-                      <el-input :disabled="true" maxlength="64" max v-model="inputForm.approvalNo" placeholder="请输入立项号"clearable></el-input>
+                      <el-input :disabled="true" maxlength="64" max v-model="inputForm.approvalNo" placeholder="请输入立项号" clearable></el-input>
                     </el-form-item>
                   </el-col>
                   <el-col :span="12">
@@ -142,14 +142,14 @@
                     <el-form-item label="评估目的" prop="assessmentObjective"
                                   :rules="[
                  ]">
-                      <el-input v-model="inputForm.assessmentObjective" placeholder="请输入评估目的"clearable></el-input>
+                      <el-input v-model="inputForm.assessmentObjective" placeholder="请输入评估目的" clearable></el-input>
                     </el-form-item>
                   </el-col>
                   <el-col :span="12">
                     <el-form-item label="评估方法" prop="assessmentWay"
                                   :rules="[
                  ]">
-                      <el-input v-model="inputForm.assessmentWay" placeholder="请输入评估方法"clearable></el-input>
+                      <el-input v-model="inputForm.assessmentWay" placeholder="请输入评估方法" clearable></el-input>
                     </el-form-item>
                   </el-col>
 
@@ -224,7 +224,7 @@
                     <el-form-item label="企业类型" prop="enterpriseType"
                                   :rules="[
                  ]">
-                      <el-input maxlength="64" v-model="inputForm.enterpriseType" placeholder="请输入企业类型"clearable></el-input>
+                      <el-input maxlength="64" v-model="inputForm.enterpriseType" placeholder="请输入企业类型" clearable></el-input>
                     </el-form-item>
                   </el-col>
                   <el-col :span="12">
@@ -275,7 +275,7 @@
                           {required: true, message:'被评估企业不能为空', trigger:'blur'},
                           {required: true, message:'被评估企业不能为空', trigger:'change'}
                  ]">
-                      <el-input v-model="inputForm.assessmentEnterpriseName" @focus="openWorkClientForm('3')" placeholder="请输入被评估企业"clearable></el-input>
+                      <el-input v-model="inputForm.assessmentEnterpriseName" @focus="openWorkClientForm('3')" placeholder="请输入被评估企业" clearable></el-input>
                     </el-form-item>
                   </el-col>
                   <el-col :span="12">
@@ -283,14 +283,14 @@
                                   :rules="[
                           {required: true, message:'联系人及电话不能为空', trigger:'blur'}
                  ]">
-                      <el-input maxlength="64" v-model="inputForm.linkNum" placeholder="请输入联系人及电话"clearable></el-input>
+                      <el-input maxlength="64" v-model="inputForm.linkNum" placeholder="请输入联系人及电话" clearable></el-input>
                     </el-form-item>
                   </el-col>
                   <el-col :span="12">
                     <el-form-item label="委托人与被评估单位关系" prop="relationship"
                                   :rules="[
                  ]">
-                      <el-input v-model="inputForm.relationship" placeholder="请输入委托人与被评估单位关系"clearable></el-input>
+                      <el-input v-model="inputForm.relationship" placeholder="请输入委托人与被评估单位关系" clearable></el-input>
                     </el-form-item>
                   </el-col>
                   <el-col :span="12">

+ 7 - 7
src/views/program/registered/ProjectFormUpdate.vue

@@ -3,7 +3,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1300px"
       @close="close"
       @keyup.enter.native=""
@@ -116,7 +116,7 @@
             <el-form-item label="立项号" prop="approvalNo"
                           :rules="[
                  ]">
-              <el-input :disabled="true" maxlength="64" max v-model="inputForm.approvalNo" placeholder="请输入立项号"clearable></el-input>
+              <el-input :disabled="true" maxlength="64" max v-model="inputForm.approvalNo" placeholder="请输入立项号" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -138,14 +138,14 @@
             <el-form-item label="评估目的" prop="assessmentObjective"
                           :rules="[
                  ]">
-              <el-input v-model="inputForm.assessmentObjective" placeholder="请输入评估目的"clearable></el-input>
+              <el-input v-model="inputForm.assessmentObjective" placeholder="请输入评估目的" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="评估方法" prop="assessmentWay"
                           :rules="[
                  ]">
-              <el-input v-model="inputForm.assessmentWay" placeholder="请输入评估方法"clearable></el-input>
+              <el-input v-model="inputForm.assessmentWay" placeholder="请输入评估方法" clearable></el-input>
             </el-form-item>
           </el-col>
 
@@ -229,7 +229,7 @@
             <el-form-item label="企业类型" prop="enterpriseType"
                           :rules="[
                  ]">
-              <el-input maxlength="64" v-model="inputForm.enterpriseType" placeholder="请输入企业类型"clearable></el-input>
+              <el-input maxlength="64" v-model="inputForm.enterpriseType" placeholder="请输入企业类型" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -287,14 +287,14 @@
                           :rules="[
                           {required: true, message:'联系人及电话不能为空', trigger:'blur'}
                  ]">
-              <el-input maxlength="64" v-model="inputForm.linkNum" placeholder="请输入联系人及电话"clearable></el-input>
+              <el-input maxlength="64" v-model="inputForm.linkNum" placeholder="请输入联系人及电话" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="委托人与被评估单位关系" prop="relationship"
                           :rules="[
                  ]">
-              <el-input v-model="inputForm.relationship" placeholder="请输入委托人与被评估单位关系"clearable></el-input>
+              <el-input v-model="inputForm.relationship" placeholder="请输入委托人与被评估单位关系" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">

+ 14 - 14
src/views/program/registered/ProjectList.vue

@@ -33,7 +33,7 @@
         </el-date-picker>
       </el-form-item>
       <el-form-item v-if="showHideItem" label="状态" prop="status">
-        <el-select v-model="searchForm.status" placeholder="请选择" style="width:100%;"clearable>
+        <el-select v-model="searchForm.status" placeholder="请选择" style="width:100%;" clearable>
           <el-option
             v-for="item in $dictUtils.getDictList('program_project_list_info_status')"
             :key="item.value"
@@ -92,46 +92,46 @@
               <span v-else>{{scope.row.name}}</span>
             </template>
           </vxe-column>
-          <vxe-column min-width="100"align="center" title="项目编号" field="no"></vxe-column>
-          <vxe-column min-width="180"align="center" title="合同名称" field="contractName">
+          <vxe-column min-width="100" align="center" title="项目编号" field="no"></vxe-column>
+          <vxe-column min-width="180" align="center" title="合同名称" field="contractName">
             <template slot-scope="scope">
               <el-link  type="primary" :underline="false" v-if="hasPermission('program:registered:view')" @click="viewContract(scope.row.contractId)">{{scope.row.contractName}}</el-link>
               <el-link  type="primary" :underline="false" v-else-if="hasPermission('program:registered:view')" @click="viewContract(scope.row.contractId)">{{scope.row.contractName}}</el-link>
               <span v-else>{{scope.row.name}}</span>
             </template>
           </vxe-column>
-          <vxe-column min-width="100"align="center" title="项目负责人" field="projectManagerName"></vxe-column>
-          <vxe-column min-width="180"align="center" title="委托方" field="clientName"></vxe-column>
-          <vxe-column min-width="210"align="center" title="报告号" field="reportNo"></vxe-column>
-          <vxe-column min-width="100"align="center" title="登记人" field="createBy"></vxe-column>
-          <vxe-column min-width="120"align="center" title="创建日期" field="createDate"></vxe-column>
+          <vxe-column min-width="100" align="center" title="项目负责人" field="projectManagerName"></vxe-column>
+          <vxe-column min-width="180" align="center" title="委托方" field="clientName"></vxe-column>
+          <vxe-column min-width="210" align="center" title="报告号" field="reportNo"></vxe-column>
+          <vxe-column min-width="100" align="center" title="登记人" field="createBy"></vxe-column>
+          <vxe-column min-width="120" align="center" title="创建日期" field="createDate"></vxe-column>
 
-          <vxe-column  min-width="150px"align="center" title="状态" field="status" >
+          <vxe-column  min-width="150px" align="center" title="状态" field="status" >
             <template slot-scope="scope">
               <el-button  type="text" @click="registeredDetail(scope.row)" :type="$dictUtils.getDictLabel('program_project_list_info_status_info', scope.row.status, '-')" effect="dark" size="mini">{{$dictUtils.getDictLabel("program_project_list_info_status", scope.row.status, '-')}} </el-button>
             </template>
           </vxe-column>
-          <vxe-column min-width="120"align="center" title="一级校审" field="status1">
+          <vxe-column min-width="120" align="center" title="一级校审" field="status1">
             <template slot-scope="scope">
               <el-button  type="text" @click="firstAuditDetail(scope.row)" :type="$dictUtils.getDictLabel('program_project_list_info_status_info', scope.row.status1, '-')" effect="dark" size="mini">{{$dictUtils.getDictLabel("program_project_list_info_status", scope.row.status1, '-')}} </el-button>
             </template>
           </vxe-column>
-          <vxe-column min-width="120"align="center" title="二级校审" field="status2">
+          <vxe-column min-width="120" align="center" title="二级校审" field="status2">
             <template slot-scope="scope">
               <el-button  type="text" @click="secondAuditDetail(scope.row)" :type="$dictUtils.getDictLabel('program_project_list_info_status_info', scope.row.status2, '-')" effect="dark" size="mini">{{$dictUtils.getDictLabel("program_project_list_info_status", scope.row.status2, '-')}} </el-button>
             </template>
           </vxe-column>
-          <vxe-column min-width="120"align="center" title="三级校审" field="status3">
+          <vxe-column min-width="120" align="center" title="三级校审" field="status3">
             <template slot-scope="scope">
               <el-button  type="text" @click="thirdAuditDetail(scope.row)" :type="$dictUtils.getDictLabel('program_project_list_info_status_info', scope.row.status3, '-')" effect="dark" size="mini">{{$dictUtils.getDictLabel("program_project_list_info_status", scope.row.status3, '-')}} </el-button>
             </template>
           </vxe-column>
-          <vxe-column  min-width="150px"align="center" title="签发单状态" field="issuedStatus" >
+          <vxe-column  min-width="150px" align="center" title="签发单状态" field="issuedStatus" >
             <template slot-scope="scope">
               <el-button  type="text" @click="issuedDetail(scope.row)" :type="$dictUtils.getDictLabel('program_project_list_info_status_info', scope.row.issuedStatus, '-')" effect="dark" size="mini">{{$dictUtils.getDictLabel("program_project_list_info_status", scope.row.issuedStatus, '未登记')}} </el-button>
             </template>
           </vxe-column>
-          <vxe-column min-width="120"align="center" title="项目归档" field="archiveStatus">
+          <vxe-column min-width="120" align="center" title="项目归档" field="archiveStatus">
             <template slot-scope="scope">
               <el-button  type="text" @click="archiveDetail(scope.row)" :type="$dictUtils.getDictLabel('program_project_list_info_status_info', scope.row.archiveStatus, '-')" effect="dark" size="mini">{{$dictUtils.getDictLabel("program_project_list_info_status", scope.row.archiveStatus, '-')}} </el-button>
             </template>

+ 106 - 105
src/views/program/registered/ProjectList2022.vue

@@ -1,12 +1,12 @@
 <template>
   <div class="page">
-    <el-form size="small" :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
+    <el-form :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
       <!-- 搜索框-->
       <el-form-item label="项目名称" prop="name">
-        <el-input size="small" v-model="searchForm.name" placeholder="请输入项目名称" clearable></el-input>
+        <el-input v-model="searchForm.name" placeholder="请输入项目名称" clearable></el-input>
       </el-form-item>
       <el-form-item label="项目编号" prop="no">
-        <el-input size="small" v-model="searchForm.no" placeholder="请输入项目编号" clearable></el-input>
+        <el-input v-model="searchForm.no" placeholder="请输入项目编号" clearable></el-input>
       </el-form-item>
       <el-form-item v-if="showHideItem" label="登记人" prop="createBy">
         <SelectUserTree
@@ -16,20 +16,21 @@
                   label: 'name',         // 显示名称
                   children: 'children'    // 子级字段名
                 }"
-          :url="`/sys/user/treeUserDataAllOffice?type=2`"
+          :url="`/system-server/sys/user/treeUserDataAllOffice?type=2`"
           :value="searchForm.createBy"
           :clearable="true"
           :accordion="true"
+		  size="default"
           @getValue="(value) => {searchForm.createBy=value}"/>
       </el-form-item>
       <el-form-item v-if="showHideItem" label="项目负责人" prop="projectManagerName">
-        <el-input size="small" v-model="searchForm.projectManagerName" placeholder="请输入项目负责人" clearable></el-input>
+        <el-input v-model="searchForm.projectManagerName" placeholder="请输入项目负责人" clearable></el-input>
       </el-form-item>
       <el-form-item v-if="showHideItem" label="合同名称" prop="contractName">
-        <el-input size="small" v-model="searchForm.contractName" placeholder="请输入合同名称" clearable></el-input>
+        <el-input v-model="searchForm.contractName" placeholder="请输入合同名称" clearable></el-input>
       </el-form-item>
       <el-form-item v-if="showHideItem" label="委托方" prop="clientName">
-        <el-input size="small" v-model="searchForm.clientName" placeholder="请输入委托方" clearable></el-input>
+        <el-input v-model="searchForm.clientName" placeholder="请输入委托方" clearable></el-input>
       </el-form-item>
       <el-form-item v-if="showHideItem" label="创建时间" prop="createDates">
         <el-date-picker
@@ -55,22 +56,22 @@
       </el-form-item>
 
       <el-form-item>
-        <el-button type="default" @click="showHide" size="small" :icon="showHideIcon">{{showHideName}}</el-button>
-        <el-button type="primary" @click="refreshList()" size="small" icon="el-icon-search">查询</el-button>
-        <el-button @click="resetSearch()" size="small" icon="el-icon-refresh-right">重置</el-button>
+        <el-button type="default" @click="showHide" :icon="showHideIcon">{{showHideName}}</el-button>
+        <el-button type="primary" @click="refreshList()" icon="el-icon-search">查询</el-button>
+        <el-button @click="resetSearch()" icon="el-icon-refresh-right">重置</el-button>
       </el-form-item>
     </el-form>
 
-    <div class="bg-white top" style="">
+    <div class="jp-table">
       <vxe-toolbar :refresh="{query: refreshList}" custom>
         <template #buttons>
-          <el-button v-if="hasPermission('program:registered:add')" type="primary" size="small" icon="el-icon-plus" @click="add()">新建</el-button>
-<!--          <el-button v-if="hasPermission('program:registered:add')" type="primary" size="small" icon="el-icon-plus" @click="start()">新建</el-button>-->
-          <el-button v-if="hasPermission('program:registered:del')" type="danger"   size="small" icon="el-icon-delete" @click="deleteAll()" :disabled="$refs.typeDictTable && $refs.typeDictTable.getCheckboxRecords().length === 0" plain>删除</el-button>
-          <el-button v-if="hasPermission('program:registered:export')"  type="warning" plain @click="exportFile()" size="small">导出</el-button>
+          <el-button v-if="hasPermission('program:registered:add')" type="primary" icon="el-icon-plus" @click="add()">新建</el-button>
+<!--          <el-button v-if="hasPermission('program:registered:add')" type="primary" icon="el-icon-plus" @click="start()">新建</el-button>-->
+          <el-button v-if="hasPermission('program:registered:del')" type="danger"   icon="el-icon-delete" @click="deleteAll()" :disabled="$refs.typeDictTable && $refs.typeDictTable.getCheckboxRecords().length === 0" plain>删除</el-button>
+          <el-button v-if="hasPermission('program:registered:export')"  type="warning" plain @click="exportFile()">导出</el-button>
         </template>
       </vxe-toolbar>
-      <div style="height: calc(100% - 90px)">
+      <div class="jp-table-body">
         <vxe-table
           border="inner"
           auto-resize
@@ -97,21 +98,21 @@
               <span v-else>{{scope.row.name}}</span>
             </template>
           </vxe-column>
-          <vxe-column min-width="100"align="center" title="项目编号" field="no"></vxe-column>
-          <vxe-column min-width="180"align="center" title="合同名称" field="contractName">
+          <vxe-column min-width="100" align="center" title="项目编号" field="no"></vxe-column>
+          <vxe-column min-width="180" align="center" title="合同名称" field="contractName">
             <template slot-scope="scope">
               <el-link  type="primary" :underline="false" v-if="hasPermission('program:registered:view')" @click="viewContract(scope.row.contractId)">{{scope.row.contractName}}</el-link>
               <el-link  type="primary" :underline="false" v-else-if="hasPermission('program:registered:view')" @click="viewContract(scope.row.contractId)">{{scope.row.contractName}}</el-link>
               <span v-else>{{scope.row.name}}</span>
             </template>
           </vxe-column>
-          <vxe-column min-width="100"align="center" title="项目负责人" field="projectManagerName"></vxe-column>
-          <vxe-column min-width="180"align="center" title="委托方" field="clientName"></vxe-column>
-          <vxe-column min-width="210"align="center" title="报告号" field="reportNo"></vxe-column>
-          <vxe-column min-width="100"align="center" title="登记人" field="createBy"></vxe-column>
-          <vxe-column min-width="120"align="center" title="创建日期" field="createDate"></vxe-column>
+          <vxe-column min-width="100" align="center" title="项目负责人" field="projectManagerName"></vxe-column>
+          <vxe-column min-width="180" align="center" title="委托方" field="clientName"></vxe-column>
+          <vxe-column min-width="210" align="center" title="报告号" field="reportNo"></vxe-column>
+          <vxe-column min-width="100" align="center" title="登记人" field="createBy"></vxe-column>
+          <vxe-column min-width="120" align="center" title="创建日期" field="createDate"></vxe-column>
 
-          <vxe-column  min-width="110px"align="center" fixed="right" title="状态" field="status" >
+          <vxe-column  min-width="110px" align="center" fixed="right" title="状态" field="status" >
             <template slot-scope="scope">
 <!--              <el-button  type="text" @click="registeredDetail(scope.row)" :type="$dictUtils.getDictLabel('program_project_list_info_status_info', scope.row.status, '-')" effect="dark" size="mini">{{$dictUtils.getDictLabel("program_project_list_info_status", scope.row.status, '-')}} </el-button>-->
               <el-button  type="text" :type="$dictUtils.getDictLabel('program_project_list_info_status_info', scope.row.status, '-')" effect="dark" size="mini">{{$dictUtils.getDictLabel("program_project_list_info_status", scope.row.status, '-')}} </el-button>
@@ -137,7 +138,7 @@
 <!--              <el-button  type="text" @click="issuedDetail(scope.row)" :type="$dictUtils.getDictLabel('program_project_list_info_status_info', scope.row.issuedStatus, '-')" effect="dark" size="mini">{{$dictUtils.getDictLabel("program_project_list_info_status", scope.row.issuedStatus, '未登记')}} </el-button>-->
 <!--            </template>-->
 <!--          </vxe-column>-->
-          <vxe-column min-width="110"align="center" fixed="right" title="项目归档" field="archiveStatus">
+          <vxe-column min-width="110" align="center" fixed="right" title="项目归档" field="archiveStatus">
             <template slot-scope="scope">
 <!--              <el-button  type="text" @click="archiveDetail(scope.row)" :type="$dictUtils.getDictLabel('program_project_list_info_status_info', scope.row.archiveStatus, '-')" effect="dark" size="mini">{{$dictUtils.getDictLabel("program_project_list_info_status", scope.row.archiveStatus, '-')}} </el-button>-->
               <el-button  type="text" :type="$dictUtils.getDictLabel('program_project_list_info_status_info', scope.row.archiveStatus, '-')" effect="dark" size="mini">{{$dictUtils.getDictLabel("program_project_list_info_status", scope.row.archiveStatus, '-')}} </el-button>
@@ -145,10 +146,10 @@
           </vxe-column>
           <vxe-column title="操作" min-width="200px" fixed="right" align="center">
             <template  slot-scope="scope">
-              <el-button v-if="hasPermission('program:registered:edit')&&(scope.row.createBy === createName&&scope.row.archiveStatus!=='5') || isAdmin" type="text" size="small" @click="edit(scope.row.id)">修改</el-button>
-              <el-button v-if="hasPermission('program:registered:del')&&(scope.row.createBy === createName&&scope.row.archiveStatus!=='5') || isAdmin" type="text" size="small" @click="del(scope.row.id)">删除</el-button>
-              <el-button v-if="hasPermission('program:registered:edit')&&scope.row.status === '5' && commonJS.isEmpty(scope.row.reportNo) && scope.row.createBy === createName" type="text" size="small" @click="saveReportNo(scope.row.id)">生成报告号</el-button>
-              <el-button v-if="hasPermission('program:registered:edit')&&scope.row.status === '5' && commonJS.isNotEmpty(scope.row.reportNo) && scope.row.createBy === createName && scope.row.archiveStatus !== '5'" type="text" size="small" @click="archive(scope.row)">项目归档</el-button>
+              <el-button v-if="hasPermission('program:registered:edit')&&(scope.row.createBy === createName&&scope.row.archiveStatus!=='5') || isAdmin" text type="primary" @click="edit(scope.row.id)">修改</el-button>
+              <el-button v-if="hasPermission('program:registered:del')&&(scope.row.createBy === createName&&scope.row.archiveStatus!=='5') || isAdmin" text type="primary" @click="del(scope.row.id)">删除</el-button>
+              <el-button v-if="hasPermission('program:registered:edit')&&scope.row.status === '5' && commonJS.isEmpty(scope.row.reportNo) && scope.row.createBy === createName" text type="primary" @click="saveReportNo(scope.row.id)">生成报告号</el-button>
+              <el-button v-if="hasPermission('program:registered:edit')&&scope.row.status === '5' && commonJS.isNotEmpty(scope.row.reportNo) && scope.row.createBy === createName && scope.row.archiveStatus !== '5'" text type="primary" @click="archive(scope.row)">项目归档</el-button>
 
 
 <!--              <el-button v-if="hasPermission('program:registered:edit')&&(scope.row.status === '1' || scope.row.status === '3'||scope.row.status === '4')&&scope.row.createBy === createName" type="text" size="small" @click="registeredPush(scope.row)">修改</el-button>-->
@@ -220,9 +221,9 @@
   import WorkContractForm2 from '@/views/workContract/WorkContractForm2'
   import SelectUserTree from '@/views/utils/treeUserSelect'
   import pick from 'lodash.pick'
-  import TaskService from '@/api/flowable/TaskService'
-  import ProcessService from '@/api/flowable/ProcessService'
-  import UserService from '@/api/sys/UserService'
+  import taskService from '@/api/flowable/taskService'
+  import processService from '@/api/flowable/processService'
+  import userService from '@/api/sys/userService'
   import ProofreadIssuedService from '@/api/sys/ProofreadIssuedService'
   export default {
     data () {
@@ -265,15 +266,15 @@
       }
     },
     programProjectListInfoService: null,
-    taskService: null,
-    processService: null,
-    userService: null,
+    // taskService: null,
+    // processService: null,
+    // userService: null,
     proofreadIssuedService: null,
     created () {
       this.programProjectListInfoService = new ProgramProjectListInfoService()
-      this.taskService = new TaskService()
-      this.processService = new ProcessService()
-      this.userService = new UserService()
+      // this.taskService = new TaskService()
+      // this.processService = new ProcessService()
+      // this.userService = new UserService()
       this.proofreadIssuedService = new ProofreadIssuedService()
     },
     components: {
@@ -296,11 +297,11 @@
     },
     computed: {
       userName () {
-        return JSON.parse(localStorage.getItem('user')).name
+        return this.$store.state.user.name
       },
       user () {
-        this.createName = JSON.parse(localStorage.getItem('user')).name
-        return JSON.parse(localStorage.getItem('user'))
+        this.createName = this.$store.state.user.name
+        return this.$store.state.user
       }
     },
     methods: {
@@ -337,48 +338,48 @@
       // 获取数据列表
       refreshList () {
         this.loading = true
-        this.createName = JSON.parse(localStorage.getItem('user')).name
+        this.createName = this.$store.state.user.name
         this.programProjectListInfoService.list2022({
           'current': this.tablePage.currentPage,
           'size': this.tablePage.pageSize,
           'orders': this.tablePage.orders,
           ...this.searchForm
-        }).then(({data}) => {
+        }).then((data) => {
           this.dataList = data.records
           this.tablePage.total = data.total
           this.loading = false
         })
-        // this.processService.getByName('项目登记流程').then(({data}) => {
+        // this.processService.getByName('项目登记流程').then((data) => {
         //   if (!this.commonJS.isEmpty(data.id)) {
         //     this.processDefinitionAuditId = data.id
         //     this.procDefAuditKey = data.key
         //   }
         // })
-        // this.processService.getByName('项目一级校审').then(({data}) => {
+        // this.processService.getByName('项目一级校审').then((data) => {
         //   if (!this.commonJS.isEmpty(data.id)) {
         //     this.processDefinitionId1 = data.id
         //     this.procDefKey1 = data.key
         //   }
         // })
-        // this.processService.getByName('项目二级校审').then(({data}) => {
+        // this.processService.getByName('项目二级校审').then((data) => {
         //   if (!this.commonJS.isEmpty(data.id)) {
         //     this.processDefinitionId2 = data.id
         //     this.procDefKey2 = data.key
         //   }
         // })
-        // this.processService.getByName('项目三级校审').then(({data}) => {
+        // this.processService.getByName('项目三级校审').then((data) => {
         //   if (!this.commonJS.isEmpty(data.id)) {
         //     this.processDefinitionId3 = data.id
         //     this.procDefKey3 = data.key
         //   }
         // })
-        // this.processService.getByName('项目登记归档').then(({data}) => {
+        // this.processService.getByName('项目登记归档').then((data) => {
         //   if (!this.commonJS.isEmpty(data.id)) {
         //     this.processDefinitionIdArchive = data.id
         //     this.procDefKeyArchive = data.key
         //   }
         // })
-        // this.processService.getByName('报告签发审批').then(({data}) => {
+        // this.processService.getByName('报告签发审批').then((data) => {
         //   if (!this.commonJS.isEmpty(data.id)) {
         //     this.processDefinitionId4 = data.id
         //     this.procDefKey4 = data.key
@@ -410,7 +411,7 @@
           type: 'warning'
         }).then(() => {
           this.loading = true
-          this.programProjectListInfoService.delete(ids).then(({data}) => {
+          this.programProjectListInfoService.delete(ids).then((data) => {
             this.$message.success(data)
             this.refreshList()
             this.loading = false
@@ -429,7 +430,7 @@
           type: 'warning'
         }).then(() => {
           this.loading = true
-          this.programProjectListInfoService.deleteAll(ids).then(({data}) => {
+          this.programProjectListInfoService.deleteAll(ids).then((data) => {
             this.$message.success(data)
             this.refreshList()
             this.loading = false
@@ -447,7 +448,7 @@
         // 读取流程表单
         let tabTitle = `发起流程【评估-项目登记】`
         let processTitle = `${this.userName} 在 ${this.moment(new Date()).format('YYYY-MM-DD HH:mm')} 发起了 [评估-项目登记]`
-        this.taskService.getTaskDef({ procDefId: this.processDefinitionAuditId,
+        taskService.getTaskDef({ procDefId: this.processDefinitionAuditId,
           status: 'startAndHold'}).then((data) => {
             this.$router.push({
               path: '/flowable/task/TaskForm',
@@ -456,8 +457,8 @@
                 procDefKey: this.procDefAuditKey,
                 status: 'startAndHold',
                 title: tabTitle,
-                formType: data.data.formType,
-                formUrl: data.data.formUrl,
+                formType: data.formType,
+                formUrl: data.formUrl,
                 formTitle: processTitle,
                 businessId: 'false',
                 isShow: false,
@@ -475,7 +476,7 @@
         if (row.status === '3' || row.status === '4') {
           status = 'startAndClose'
         }
-        this.taskService.getTaskDef({ procDefId: this.processDefinitionAuditId,
+        taskService.getTaskDef({ procDefId: this.processDefinitionAuditId,
           businessId: row.id,
           businessTable: 'program_project_list_info'}).then((data) => {
             this.$router.push({
@@ -484,8 +485,8 @@
                 procDefId: this.processDefinitionAuditId,
                 procDefKey: this.procDefAuditKey,
                 title: title,
-                formType: data.data.formType,
-                formUrl: data.data.formUrl,
+                formType: data.formType,
+                formUrl: data.formUrl,
                 formTitle: processTitle,
                 businessTable: 'program_project_list_info',
                 businessId: row.id,
@@ -500,10 +501,10 @@
       registeredDetail (row) {
         if (row.status !== '0' && row.status !== '1') {
           // eslint-disable-next-line eqeqeq
-          this.taskService.getTaskDef({
+          taskService.getTaskDef({
             procInsId: row.procInsId,
             procDefId: this.processDefinitionAuditId
-          }).then(({data}) => {
+          }).then((data) => {
             this.$router.push({
               path: '/flowable/task/TaskFormDetail',
               query: {
@@ -526,12 +527,12 @@
           cancelButtonText: '取消',
           type: 'warning'
         }).then(async () => {
-          await this.programProjectListInfoService.queryById(row.id).then(({data}) => {
+          await this.programProjectListInfoService.queryById(row.id).then((data) => {
             if (data.status !== '2') { // status的值不等于“审核中”,就弹出提示
               this.$message.error('数据已发生改变或不存在,请刷新数据')
               this.refreshList()
             } else {
-              this.processService.revokeProcIns(row.procInsId).then(({data}) => {
+              processService.revokeProcIns(row.procInsId).then((data) => {
                 let form = {status: '3', id: row.id}
                 this.programProjectListInfoService.updateStatusById(form)
                 this.$message.success(data)
@@ -550,7 +551,7 @@
         if (row.status1 === '3' || row.status1 === '4') {
           status = 'startAndClose'
         }
-        this.taskService.getTaskDef({ procDefId: this.processDefinitionId1,
+        taskService.getTaskDef({ procDefId: this.processDefinitionId1,
           businessId: row.auditId1,
           businessTable: 'program_audit'}).then((data) => {
             this.$router.push({
@@ -559,8 +560,8 @@
                 procDefId: this.processDefinitionId1,
                 procDefKey: this.procDefKey1,
                 title: title,
-                formType: data.data.formType,
-                formUrl: data.data.formUrl,
+                formType: data.formType,
+                formUrl: data.formUrl,
                 formTitle: processTitle,
                 businessTable: 'program_audit',
                 businessId: row.auditId1,
@@ -575,10 +576,10 @@
       firstAuditDetail (row) {
         if (row.status1 !== '0' && row.status1 !== '1') {
           // eslint-disable-next-line eqeqeq
-          this.taskService.getTaskDef({
+          taskService.getTaskDef({
             procInsId: row.procInsId1,
             procDefId: this.processDefinitionId1
-          }).then(({data}) => {
+          }).then((data) => {
             this.$router.push({
               path: '/flowable/task/TaskFormDetail',
               query: {
@@ -601,12 +602,12 @@
           cancelButtonText: '取消',
           type: 'warning'
         }).then(async () => {
-          await this.programProjectListInfoService.findByIdAudit(row.auditId1).then(({data}) => {
+          await this.programProjectListInfoService.findByIdAudit(row.auditId1).then((data) => {
             if (data.status !== '2') { // status的值不等于“审核中”,就弹出提示
               this.$message.error('数据已发生改变或不存在,请刷新数据')
               this.refreshList()
             } else {
-              this.processService.revokeProcIns(row.procInsId1).then(({data}) => {
+              processService.revokeProcIns(row.procInsId1).then((data) => {
                 let form = {status: '3', id: row.auditId1}
                 this.programProjectListInfoService.updateStatusByAuditId(form)
                 this.$message.success(data)
@@ -625,7 +626,7 @@
         if (row.status2 === '3' || row.status2 === '4') {
           status = 'startAndClose'
         }
-        this.taskService.getTaskDef({ procDefId: this.processDefinitionId2,
+        taskService.getTaskDef({ procDefId: this.processDefinitionId2,
           businessId: row.auditId2,
           businessTable: 'program_audit'}).then((data) => {
             this.$router.push({
@@ -634,8 +635,8 @@
                 procDefId: this.processDefinitionId2,
                 procDefKey: this.procDefKey2,
                 title: title,
-                formType: data.data.formType,
-                formUrl: data.data.formUrl,
+                formType: data.formType,
+                formUrl: data.formUrl,
                 formTitle: processTitle,
                 businessTable: 'program_audit',
                 businessId: row.auditId2,
@@ -650,10 +651,10 @@
       secondAuditDetail (row) {
         if (row.status2 !== '0' && row.status2 !== '1') {
           // eslint-disable-next-line eqeqeq
-          this.taskService.getTaskDef({
+          taskService.getTaskDef({
             procInsId: row.procInsId2,
             procDefId: this.processDefinitionId2
-          }).then(({data}) => {
+          }).then((data) => {
             this.$router.push({
               path: '/flowable/task/TaskFormDetail',
               query: {
@@ -676,12 +677,12 @@
           cancelButtonText: '取消',
           type: 'warning'
         }).then(async () => {
-          await this.programProjectListInfoService.findByIdAudit(row.auditId2).then(({data}) => {
+          await this.programProjectListInfoService.findByIdAudit(row.auditId2).then((data) => {
             if (data.status !== '2') { // status的值不等于“审核中”,就弹出提示
               this.$message.error('数据已发生改变或不存在,请刷新数据')
               this.refreshList()
             } else {
-              this.processService.revokeProcIns(row.procInsId2).then(({data}) => {
+              processService.revokeProcIns(row.procInsId2).then((data) => {
                 let form = {status: '3', id: row.auditId2}
                 this.programProjectListInfoService.updateStatusByAuditId(form)
                 this.$message.success(data)
@@ -700,7 +701,7 @@
         if (row.status3 === '3' || row.status3 === '4') {
           status = 'startAndClose'
         }
-        this.taskService.getTaskDef({ procDefId: this.processDefinitionId3,
+        taskService.getTaskDef({ procDefId: this.processDefinitionId3,
           businessId: row.auditId3,
           businessTable: 'program_audit'}).then((data) => {
             this.$router.push({
@@ -709,8 +710,8 @@
                 procDefId: this.processDefinitionId3,
                 procDefKey: this.procDefKey3,
                 title: title,
-                formType: data.data.formType,
-                formUrl: data.data.formUrl,
+                formType: data.formType,
+                formUrl: data.formUrl,
                 formTitle: processTitle,
                 businessTable: 'program_audit',
                 businessId: row.auditId3,
@@ -725,10 +726,10 @@
       thirdAuditDetail (row) {
         if (row.status3 !== '0' && row.status3 !== '1') {
           // eslint-disable-next-line eqeqeq
-          this.taskService.getTaskDef({
+          taskService.getTaskDef({
             procInsId: row.procInsId3,
             procDefId: this.processDefinitionId3
-          }).then(({data}) => {
+          }).then((data) => {
             this.$router.push({
               path: '/flowable/task/TaskFormDetail',
               query: {
@@ -751,12 +752,12 @@
           cancelButtonText: '取消',
           type: 'warning'
         }).then(async () => {
-          await this.programProjectListInfoService.findByIdAudit(row.auditId3).then(({data}) => {
+          await this.programProjectListInfoService.findByIdAudit(row.auditId3).then((data) => {
             if (data.status !== '2') { // status的值不等于“审核中”,就弹出提示
               this.$message.error('数据已发生改变或不存在,请刷新数据')
               this.refreshList()
             } else {
-              this.processService.revokeProcIns(row.procInsId3).then(({data}) => {
+              processService.revokeProcIns(row.procInsId3).then((data) => {
                 let form = {status: '3', id: row.auditId3}
                 this.programProjectListInfoService.updateStatusByAuditId(form)
                 this.$message.success(data)
@@ -775,7 +776,7 @@
         if (row.archiveStatus === '3' || row.archiveStatus === '4') {
           status = 'startAndClose'
         }
-        this.taskService.getTaskDef({ procDefId: this.processDefinitionIdArchive,
+        taskService.getTaskDef({ procDefId: this.processDefinitionIdArchive,
           businessId: row.archiveId,
           businessTable: 'program_archive'}).then((data) => {
             this.$router.push({
@@ -784,8 +785,8 @@
                 procDefId: this.processDefinitionIdArchive,
                 procDefKey: this.procDefKeyArchive,
                 title: title,
-                formType: data.data.formType,
-                formUrl: data.data.formUrl,
+                formType: data.formType,
+                formUrl: data.formUrl,
                 formTitle: processTitle,
                 businessTable: 'program_archive',
                 businessId: row.archiveId,
@@ -800,10 +801,10 @@
       archiveDetail (row) {
         if (row.archiveStatus !== '0' && row.archiveStatus !== '1') {
           // eslint-disable-next-line eqeqeq
-          this.taskService.getTaskDef({
+          taskService.getTaskDef({
             procInsId: row.procInsIdArchive,
             procDefId: this.processDefinitionIdArchive
-          }).then(({data}) => {
+          }).then((data) => {
             this.$router.push({
               path: '/flowable/task/TaskFormDetail',
               query: {
@@ -826,12 +827,12 @@
           cancelButtonText: '取消',
           type: 'warning'
         }).then(async () => {
-          await this.programProjectListInfoService.findByIdArchive(row.archiveId).then(({data}) => {
+          await this.programProjectListInfoService.findByIdArchive(row.archiveId).then((data) => {
             if (data.status !== '2') { // status的值不等于“审核中”,就弹出提示
               this.$message.error('数据已发生改变或不存在,请刷新数据')
               this.refreshList()
             } else {
-              this.processService.revokeProcIns(row.procInsIdArchive).then(({data}) => {
+              processService.revokeProcIns(row.procInsIdArchive).then((data) => {
                 let form = {status: '3', id: row.archiveId}
                 this.programProjectListInfoService.updateStatusByArchiveId(form)
                 this.$message.success(data)
@@ -847,7 +848,7 @@
         this.loading = true
         this.programProjectListInfoService.downloadFirstAuditTpl(row.id, row.auditId1).then((res) => {
           // 将二进制流文件写入excel表,以下为重要步骤
-          this.$utils.downloadWord(res.data, '一级校审')
+          this.$utils.downloadWord(res, '一级校审')
           this.loading = false
         }).catch(function (err) {
           this.loading = false
@@ -862,7 +863,7 @@
         this.loading = true
         this.programProjectListInfoService.downloadSecondAuditTpl(row.id, row.auditId2).then((res) => {
           // 将二进制流文件写入excel表,以下为重要步骤
-          this.$utils.downloadWord(res.data, '二级校审')
+          this.$utils.downloadWord(res, '二级校审')
           this.loading = false
         }).catch(function (err) {
           this.loading = false
@@ -877,7 +878,7 @@
         this.loading = true
         this.programProjectListInfoService.downloadThirdlyAuditTpl(row.id, row.auditId3).then((res) => {
           // 将二进制流文件写入excel表,以下为重要步骤
-          this.$utils.downloadWord(res.data, '三级校审')
+          this.$utils.downloadWord(res, '三级校审')
           this.loading = false
         }).catch(function (err) {
           this.loading = false
@@ -892,7 +893,7 @@
         this.loading = true
         this.programProjectListInfoService.downloadProofreadAuditTpl(row.id).then((res) => {
           // 将二进制流文件写入excel表,以下为重要步骤
-          this.$utils.downloadExcel(res.data, '资产评估项目(校对)审核记录表.xls')
+          this.$utils.downloadExcel(res, '资产评估项目(校对)审核记录表.xls')
           this.loading = false
         }).catch(function (err) {
           this.loading = false
@@ -907,7 +908,7 @@
         this.loading = true
         this.programProjectListInfoService.downloadAuditRecordFormAfterBindingTpl(row.id).then((res) => {
           // 将二进制流文件写入excel表,以下为重要步骤
-          this.$utils.downloadExcel(res.data, '评估报告装订后浏览审核记录表.xls')
+          this.$utils.downloadExcel(res, '评估报告装订后浏览审核记录表.xls')
           this.loading = false
         }).catch(function (err) {
           this.loading = false
@@ -922,7 +923,7 @@
         this.loading = true
         this.programProjectListInfoService.downloadReportAusstellungTpl(row.id).then((res) => {
           // 将二进制流文件写入excel表,以下为重要步骤
-          this.$utils.downloadWord(res.data, '报告签发单')
+          this.$utils.downloadWord(res, '报告签发单')
           this.loading = false
         }).catch(function (err) {
           this.loading = false
@@ -932,7 +933,7 @@
         })
       },
       is () {
-        this.userService.is().then(({data}) => {
+        userService.is().then((data) => {
           this.isAdmin = data
         })
       },
@@ -945,7 +946,7 @@
           ...this.searchForm
         }).then((res) => {
           // 将二进制流文件写入excel表,以下为重要步骤
-          this.$utils.downloadExcel(res.data, '2022年项目登记列表信息')
+          this.$utils.downloadExcel(res, '2022年项目登记列表信息')
           this.loading = false
         }).catch(function (err) {
           this.loading = false
@@ -962,7 +963,7 @@
         }).then(() => {
           this.loading = true
           this.programProjectListInfoService.saveReportNo(id).then((data) => {
-            this.$message.success(data.data)
+            this.$message.success(data)
             this.refreshList()
             this.loading = false
           }).catch((e) => {
@@ -987,7 +988,7 @@
         if (row.issuedStatus === '3' || row.issuedStatus === '4' || row.issuedStatus === '2') {
           status = 'startAndClose'
         }
-        this.taskService.getTaskDef({ procDefId: this.processDefinitionId4,
+        taskService.getTaskDef({ procDefId: this.processDefinitionId4,
           businessId: row.id,
           businessTable: 'proofread_issued'}).then((data) => {
             this.$router.push({
@@ -996,8 +997,8 @@
                 procDefId: this.processDefinitionId4,
                 procDefKey: this.procDefKey4,
                 title: title,
-                formType: data.data.formType,
-                formUrl: data.data.formUrl,
+                formType: data.formType,
+                formUrl: data.formUrl,
                 formTitle: processTitle,
                 businessTable: 'proofread_issued',
                 businessId: row.id,
@@ -1012,10 +1013,10 @@
       issuedDetail (row) {
         if (row.issuedStatus !== undefined && row.issuedStatus !== '1') {
           // eslint-disable-next-line eqeqeq
-          this.taskService.getTaskDef({
+          taskService.getTaskDef({
             procInsId: row.procInsId4,
             procDefId: this.processDefinitionId4
-          }).then(({data}) => {
+          }).then((data) => {
             this.$router.push({
               path: '/flowable/task/TaskFormDetail',
               query: {
@@ -1038,12 +1039,12 @@
           cancelButtonText: '取消',
           type: 'warning'
         }).then(async () => {
-          await this.proofreadIssuedService.findById(row.id).then(({data}) => {
+          await this.proofreadIssuedService.findById(row.id).then((data) => {
             if (data.status !== '2') { // status的值不等于“审核中”,就弹出提示
               this.$message.error('数据已发生改变或不存在,请刷新数据')
               this.refreshList()
             } else {
-              this.processService.revokeProcIns(row.procInsId4).then(({data}) => {
+              processService.revokeProcIns(row.procInsId4).then((data) => {
                 let form = {status: '3', id: row.id}
                 this.proofreadIssuedService.updateStatus(form)
                 this.$message.success(data)

+ 1 - 1
src/views/program/registered/ProjectThreeAuditFormDialog.vue

@@ -3,7 +3,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1200px"
       @close="close"
       @keyup.enter.native=""

+ 5 - 5
src/views/program/registered/ProofreadBrowseForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       title="评估报告装订后浏览审核记录表"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1300px"
       @close="close"
       @keyup.enter.native=""
@@ -245,7 +245,7 @@
   import ProofreadInfoService from '@/api/sys/ProofreadInfoService'
   import ProofreadTypeService from '@/api/sys/ProofreadTypeService'
   import ProgramProjectListInfoService from '@/api/program/ProgramProjectListInfoService'
-  import UserService from '@/api/sys/UserService'
+  import userService from '@/api/sys/userService'
   export default {
     data () {
       return {
@@ -278,11 +278,11 @@
     proofreadInfoService: null,
     proofreadTypeService: null,
     programProjectListInfoService: null,
-    UserService: null,
+    // UserService: null,
     created () {
       this.proofreadInfoService = new ProofreadInfoService()
       this.programProjectListInfoService = new ProgramProjectListInfoService()
-      this.userService = new UserService()
+      // this.userService = new UserService()
       this.proofreadTypeService = new ProofreadTypeService()
     },
     components: {
@@ -330,7 +330,7 @@
                 this.inputForm.projectId = data.id
                 this.inputForm.projectName = data.name
                 this.inputForm.assessmentDate = data.assessmentDate
-                this.userService.queryById(data.projectManager).then(({data}) => {
+                userService.queryById(data.projectManager).then(({data}) => {
                   this.inputForm.projectManagerName = data.name
                 })
               })

+ 4 - 4
src/views/program/registered/ProofreadBrowseFormComponent.vue

@@ -242,7 +242,7 @@
   import ProofreadInfoService from '@/api/sys/ProofreadInfoService'
   import ProofreadTypeService from '@/api/sys/ProofreadTypeService'
   import ProgramProjectListInfoService from '@/api/program/ProgramProjectListInfoService'
-  import UserService from '@/api/sys/UserService'
+  import userService from '@/api/sys/userService'
   export default {
     data () {
       return {
@@ -276,11 +276,11 @@
     proofreadInfoService: null,
     proofreadTypeService: null,
     programProjectListInfoService: null,
-    UserService: null,
+    // UserService: null,
     created () {
       this.proofreadInfoService = new ProofreadInfoService()
       this.programProjectListInfoService = new ProgramProjectListInfoService()
-      this.userService = new UserService()
+      // this.userService = new UserService()
       this.proofreadTypeService = new ProofreadTypeService()
     },
     components: {
@@ -333,7 +333,7 @@
                 this.inputForm.projectId = data.id
                 this.inputForm.projectName = data.name
                 this.inputForm.assessmentDate = data.assessmentDate
-                this.userService.queryById(data.projectManager).then(({data}) => {
+                userService.queryById(data.projectManager).then(({data}) => {
                   this.inputForm.projectManagerName = data.name
                 })
               })

+ 5 - 5
src/views/program/registered/ProofreadForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       title="资产评估项目(校对)审核记录表"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1500px"
       @close="close"
       @keyup.enter.native=""
@@ -569,7 +569,7 @@
   import ProofreadInfoService from '@/api/sys/ProofreadInfoService'
   import ProofreadTypeService from '@/api/sys/ProofreadTypeService'
   import ProgramProjectListInfoService from '@/api/program/ProgramProjectListInfoService'
-  import UserService from '@/api/sys/UserService'
+  import userService from '@/api/sys/userService'
   export default {
     data () {
       return {
@@ -602,11 +602,11 @@
     proofreadInfoService: null,
     proofreadTypeService: null,
     programProjectListInfoService: null,
-    UserService: null,
+    // UserService: null,
     created () {
       this.proofreadInfoService = new ProofreadInfoService()
       this.programProjectListInfoService = new ProgramProjectListInfoService()
-      this.userService = new UserService()
+      // this.userService = new UserService()
       this.proofreadTypeService = new ProofreadTypeService()
     },
     components: {
@@ -658,7 +658,7 @@
                 this.inputForm.projectId = data.id
                 this.inputForm.projectName = data.name
                 this.inputForm.assessmentDate = data.assessmentDate
-                this.userService.queryById(data.projectManager).then(({data}) => {
+                userService.queryById(data.projectManager).then(({data}) => {
                   this.inputForm.projectManagerName = data.name
                 })
               })

+ 6 - 6
src/views/program/registered/RegisItemForm.vue

@@ -108,7 +108,7 @@
             <el-form-item label="立项号" prop="approvalNo"
                           :rules="[
                  ]">
-              <el-input maxlength="64" :disabled="true" v-model="inputForm.approvalNo" placeholder="请输入立项号"clearable></el-input>
+              <el-input maxlength="64" :disabled="true" v-model="inputForm.approvalNo" placeholder="请输入立项号" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -130,14 +130,14 @@
             <el-form-item label="评估目的" prop="assessmentObjective"
                           :rules="[
                  ]">
-              <el-input v-model="inputForm.assessmentObjective" placeholder="请输入评估目的"clearable></el-input>
+              <el-input v-model="inputForm.assessmentObjective" placeholder="请输入评估目的" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="评估方法" prop="assessmentWay"
                           :rules="[
                  ]">
-              <el-input v-model="inputForm.assessmentWay" placeholder="请输入评估方法"clearable></el-input>
+              <el-input v-model="inputForm.assessmentWay" placeholder="请输入评估方法" clearable></el-input>
             </el-form-item>
           </el-col>
 
@@ -221,7 +221,7 @@
             <el-form-item label="企业类型" prop="enterpriseType"
                           :rules="[
                  ]">
-              <el-input maxlength="64" v-model="inputForm.enterpriseType" placeholder="请输入企业类型"clearable></el-input>
+              <el-input maxlength="64" v-model="inputForm.enterpriseType" placeholder="请输入企业类型" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -279,14 +279,14 @@
                           :rules="[
                           {required: true, message:'联系人及电话不能为空', trigger:'blur'}
                  ]">
-              <el-input maxlength="64" v-model="inputForm.linkNum" placeholder="请输入联系人及电话"clearable></el-input>
+              <el-input maxlength="64" v-model="inputForm.linkNum" placeholder="请输入联系人及电话" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="委托人与被评估单位关系" prop="relationship"
                           :rules="[
                  ]">
-              <el-input v-model="inputForm.relationship" placeholder="请输入委托人与被评估单位关系"clearable></el-input>
+              <el-input v-model="inputForm.relationship" placeholder="请输入委托人与被评估单位关系" clearable></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">

+ 1 - 1
src/views/program/registered/WorkClientForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1100px"
       height="500px"
       @close="close"

+ 1 - 1
src/views/program/serviceType/ProgramServiceTypeForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="500px"
       @close="close"
       @keyup.enter.native="doSubmit"

+ 31 - 24
src/views/project/AssessForm.vue

@@ -3,12 +3,12 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
-      width="800px"
+	  draggable
+	  width="80%"
       @close="close"
       @keyup.enter.native="doSubmit"
-      :visible.sync="visible">
-      <el-form size="middle"
+      v-model="visible">
+      <el-form size="large"
                :model="inputForm"
                ref="inputForm"
                v-loading="loading"
@@ -64,7 +64,7 @@
                 style="width:100%;"
                 v-model="inputForm.evaluationBaseDateUi"
                 type="datetime"
-                value-format="yyyy-MM-dd HH:mm:ss"
+                value-format="YYYY-MM-DD h:m:s"
                 placeholder="选择日期时间">
               </el-date-picker>
             </el-form-item>
@@ -80,7 +80,7 @@
                 style="width:100%;"
                 v-model="inputForm.evaluationReportDateUi"
                 type="datetime"
-                value-format="yyyy-MM-dd HH:mm:ss"
+                value-format="YYYY-MM-DD h:m:s"
                 placeholder="选择日期时间">
               </el-date-picker>
             </el-form-item>
@@ -110,10 +110,11 @@
                     label: 'name',         // 显示名称
                     children: 'children'    // 子级字段名
                   }"
-                :url="`/sys/user/treeUserDataAllOffice?type=2`"
+                :url="`/system-server/sys/user/treeUserDataAllOffice?type=2`"
                 :value="inputForm.projectHead"
                 :clearable="true"
                 :accordion="true"
+				size="large"
                 :disabled="method==='view'"
                 @getValue="(value) => {inputForm.projectHead=value}"/>
             </el-form-item>
@@ -171,10 +172,11 @@
                     label: 'name',         // 显示名称
                     children: 'children'    // 子级字段名
                   }"
-                :url="`/sys/user/treeUserDataAllOffice?type=2`"
+                :url="`/system-server/sys/user/treeUserDataAllOffice?type=2`"
                 :value="inputForm.currentDisposePerson"
                 :clearable="true"
                 :accordion="true"
+				size="large"
                 :disabled="method==='view'"
                 @getValue="(value) => {inputForm.currentDisposePerson=value}"/>
             </el-form-item>
@@ -199,7 +201,7 @@
                 style="width:100%;"
                 v-model="inputForm.invoiceDateUi"
                 type="datetime"
-                value-format="yyyy-MM-dd HH:mm:ss"
+                value-format="YYYY-MM-DD h:m:s"
                 placeholder="选择日期时间">
               </el-date-picker>
             </el-form-item>
@@ -298,7 +300,7 @@
                 style="width:100%;"
                 v-model="inputForm.reimbursementDateUi"
                 type="datetime"
-                value-format="yyyy-MM-dd HH:mm:ss"
+                value-format="YYYY-MM-DD h:m:s"
                 placeholder="选择日期时间">
               </el-date-picker>
             </el-form-item>
@@ -320,17 +322,21 @@
           </el-col>
         </el-row>
         <!--        附件-->
-        <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
+		  <div>
+			<UpLoadComponent ref="uploadComponent"></UpLoadComponent>
+		  </div>
       </el-form>
-      <el-image-viewer
-        v-if="showViewer"
-        :on-close="closeViewer"
-        :url-list="[url]"
-        zIndex="9999"/>
-      <span slot="footer" class="dialog-footer">
-      <el-button  @click="close()" icon="el-icon-circle-close">关闭</el-button>
-      <el-button  type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
-    </span>
+<!--      <el-image-viewer-->
+<!--        v-if="showViewer"-->
+<!--        :on-close="closeViewer"-->
+<!--        :url-list="[url]"-->
+<!--        zIndex="9999"/>-->
+		<template #footer>
+		  <span class="dialog-footer">
+			<el-button  @click="close()" icon="el-icon-circle-close">关闭</el-button>
+		  	<el-button  type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
+		  </span>
+		</template>
     </el-dialog>
   </div>
 </template>
@@ -429,7 +435,7 @@
       async init (method, id) {
         this.dataList = []
         this.dataListNew = []
-        await this.ossService.findFileList(id).then(({data}) => {
+        await this.ossService.findFileList(id).then((data) => {
           data.forEach((item) => {
             item.name = item.attachmentName
             // item.createBy = item.createBy
@@ -497,11 +503,12 @@
         this.visible = true
         this.loading = false
         this.$nextTick(() => {
-          this.$refs.inputForm.resetFields()
+		  this.$refs.inputForm.resetFields();
           if (method === 'edit' || method === 'view') { // 修改或者查看
             this.loading = true
-            this.projectService.queryById(this.inputForm.id).then(({data}) => {
+            this.projectService.queryById(this.inputForm.id).then((data) => {
               this.inputForm = this.recover(this.inputForm, data)
+			  this.$refs.uploadComponent.clearUpload()
               this.inputForm.evaluationBaseDateUi = data.evaluationBaseDate
               this.inputForm.evaluationReportDateUi = data.evaluationReportDate
               this.inputForm.invoiceDateUi = data.invoiceDate
@@ -544,7 +551,7 @@
             } else {
               this.inputForm.status = '5'
             }
-            this.projectService.save(this.inputForm).then(({data}) => {
+            this.projectService.save(this.inputForm).then((data) => {
               this.close()
               this.$message.success(data)
               this.$emit('refreshDataList')

+ 206 - 177
src/views/project/AssessList.vue

@@ -1,183 +1,200 @@
 <template>
   <div class="page">
-      <el-form :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
-            <!-- 搜索框-->
-        <el-form-item prop="projectHead" :rules=" [{trigger: 'blur'}]" label="项目负责人">
-          <SelectUserTree
-            ref="companyTree"
-            :props="{
-                  value: 'id',             // ID字段名
-                  label: 'name',         // 显示名称
-                  children: 'children'    // 子级字段名
-                }"
-            :url="`/sys/user/treeUserDataAllOffice?type=2`"
-            :value="searchForm.projectHead"
-            :clearable="true"
-            :accordion="true"
-            @getValue="(value) => {searchForm.projectHead=value}"/>
-        </el-form-item>
-         <el-form-item prop="projectName" label="项目名称">
-                <el-input size="small" v-model="searchForm.projectName" placeholder="项目名称" clearable></el-input>
-         </el-form-item>
-        <el-form-item prop="year" v-if="showHideItem" label="年份">
-          <el-date-picker
-            placement="bottom-start"
-            v-model="searchForm.year"
-            type="year"
-            value-format="yyyy"
-            placeholder="选择年份">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item prop="documentNum" v-if="showHideItem" label="文号">
-          <el-input size="small" v-model="searchForm.documentNum" placeholder="文号" clearable></el-input>
-        </el-form-item>
-        <el-form-item prop="protocolNum" v-if="showHideItem" label="协议号">
-          <el-input size="small" v-model="searchForm.protocolNum" placeholder="协议号" clearable></el-input>
-        </el-form-item>
-        <el-form-item prop="customerName" v-if="showHideItem" label="客户名称">
-          <el-input size="small" v-model="searchForm.customerName" placeholder="客户名称" clearable></el-input>
-        </el-form-item>
-        <el-form-item prop="fileUploadType" v-if="showHideItem" label="上传状态">
-          <el-select v-model="searchForm.fileUploadType" placeholder="请选择上传状态" style="width:100%;">
-            <el-option
-              v-for="item in $dictUtils.getDictList('file_upload_type')"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
-            </el-option>
-          </el-select>
-        </el-form-item>
-
-          <el-form-item>
-            <el-button type="default" @click="showHide" size="small" :icon="showHideIcon">{{showHideName}}</el-button>
-            <el-button type="primary" @click="refreshList()" size="small" icon="el-icon-search">查询</el-button>
-            <el-button @click="resetSearch()" size="small" icon="el-icon-refresh-right">重置</el-button>
-          </el-form-item>
-      </el-form>
+	  <el-form
+		  :inline="true"
+		  class="query-form"
+		  ref="searchForm"
+		  :model="searchForm"
+		  v-if="searchVisible"
+		  @keyup.enter.native="refreshList()"
+		  @submit.native.prevent>
+		  <!-- 搜索框-->
+			  <el-form-item prop="projectHead" :rules=" [{trigger: 'blur'}]" label="项目负责人">
+				  <SelectUserTree
+					  ref="companyTree"
+					  :props="{
+		  value: 'id',             // ID字段名
+		  label: 'name',         // 显示名称
+		  children: 'children'    // 子级字段名
+		}"
+					  :url="`/system-server/sys/user/treeUserDataAllOffice?type=2`"
+					  :value="searchForm.projectHead"
+					  :clearable="true"
+					  :accordion="true"
+					  size="default"
+					  @getValue="(value) => {searchForm.projectHead=value}"/>
+			  </el-form-item>
+			  <el-form-item prop="projectName" label="项目名称">
+				  <el-input v-model="searchForm.projectName" placeholder="项目名称" clearable></el-input>
+			  </el-form-item>
+			  <el-form-item prop="year" v-if="showHideItem" label="年份">
+				  <el-date-picker
+					  placement="bottom-start"
+					  v-model="searchForm.year"
+					  type="year"
+					  value-format="YYYY"
+					  placeholder="选择年份">
+				  </el-date-picker>
+			  </el-form-item>
+			  <el-form-item prop="documentNum" v-if="showHideItem" label="文号">
+				  <el-input v-model="searchForm.documentNum" placeholder="文号" clearable></el-input>
+			  </el-form-item>
+			  <el-form-item prop="protocolNum" v-if="showHideItem" label="协议号">
+				  <el-input v-model="searchForm.protocolNum" placeholder="协议号" clearable></el-input>
+			  </el-form-item>
+			  <el-form-item prop="customerName" v-if="showHideItem" label="客户名称">
+				  <el-input v-model="searchForm.customerName" placeholder="客户名称" clearable></el-input>
+			  </el-form-item>
+			  <el-form-item prop="fileUploadType" v-if="showHideItem" label="上传状态">
+				  <el-select v-model="searchForm.fileUploadType" placeholder="请选择上传状态" style="width:100%;">
+					  <el-option
+						  v-for="item in $dictUtils.getDictList('file_upload_type')"
+						  :key="item.value"
+						  :label="item.label"
+						  :value="item.value">
+					  </el-option>
+				  </el-select>
+			  </el-form-item>
+			  <el-form-item>
+				  <el-button type="default" @click="showHide"  :icon="showHideIcon">{{showHideName}}</el-button>
+				  <el-button type="primary" @click="refreshList()"  icon="el-icon-search">查询</el-button>
+				  <el-button @click="resetSearch()"  icon="el-icon-refresh-right">重置</el-button>
+			  </el-form-item>
+	  </el-form>
 	  <div class="jp-table">
-        <vxe-toolbar :refresh="{query: refreshList}" import export print custom>
-          <template #buttons>
-            <el-button v-if="hasPermission('sys:project:add')" type="primary" size="small" icon="el-icon-plus" @click="add()">新建</el-button>
-<!--            <el-button v-if="hasPermission('sys:post:edit')" type="warning" size="small" icon="el-icon-edit-outline" @click="edit()" :disabled="$refs.projectTable && $refs.projectTable.getCheckboxRecords().length !== 1" plain>修改</el-button>-->
-            <el-button v-if="hasPermission('sys:project:del')" type="danger"   size="small" icon="el-icon-delete" @click="del()" :disabled="$refs.projectTable && $refs.projectTable.getCheckboxRecords().length === 0" plain>删除</el-button>
-            <el-button v-if="hasPermission('sys:project:import')"  type="default" @click="downloadTpl()" size="small">项目模板</el-button>
-            <el-button v-if="hasPermission('sys:project:exportFile')"  type="warning" plain @click="downloadFile()" size="small">完成比例</el-button>
-            <span style="margin-left:20px;color: #999999">文件上传比例 {{proport}}</span>
-          </template>
-        </vxe-toolbar>
-        <div style="height: calc(100% - 80px);">
-            <vxe-table
-                border="inner"
-                auto-resize
-                resizable
-                height="auto"
-                :loading="loading"
-                size="small"
-                ref="projectTable"
-                show-header-overflow
-                show-overflow
-                highlight-hover-row
-                :menu-config="{}"
-                :print-config="{}"
-                :export-config="{
-                    remote: true,
+		  <vxe-toolbar ref="toolbarRef" :refresh="{query: refreshList}" import export custom>
+			  <template #buttons>
+				  <el-button v-if="hasPermission('sys:project:add')" type="primary"  icon="el-icon-plus" @click="add()">新建</el-button>
+				  <!--            <el-button v-if="hasPermission('sys:post:edit')" type="warning"  icon="el-icon-edit-outline" @click="edit()" :disabled="$refs.projectTable && $refs.projectTable.getCheckboxRecords().length !== 1" plain>修改</el-button>-->
+				  <el-button v-if="hasPermission('sys:project:del')" type="danger"    icon="el-icon-delete" @click="del()" :disabled="$refs.projectTable && $refs.projectTable.getCheckboxRecords().length === 0" plain>删除</el-button>
+				  <el-button v-if="hasPermission('sys:project:import')"  type="default" @click="downloadTpl()" >项目模板</el-button>
+				  <el-button v-if="hasPermission('sys:project:exportFile')"  type="warning" plain @click="downloadFile()" >完成比例</el-button>
+				  <span style="margin-left:20px;color: #999999">文件上传比例 {{proport}}</span>
+			  </template>
+			  <template #tools>
+				  <vxe-button
+					  text
+					  type="primary"
+					  :title="searchVisible ? '收起检索' : '展开检索'"
+					  icon="vxe-icon-search"
+					  class="tool-btn"
+					  @click="searchVisible = !searchVisible"
+				  ></vxe-button>
+			  </template>
+		  </vxe-toolbar>
+		  <div class="jp-table-body">
+			  <vxe-table
+				  border="inner"
+				  auto-resize
+				  resizable
+				  height="auto"
+				  :loading="loading"
+				  size="small"
+				  ref="projectTable"
+				  show-header-overflow
+				  show-overflow
+				  highlight-hover-row
+				  :export-config="{
+					remote: true,
                     filename: `评估项目数据${moment(new Date()).format('YYYY-MM-DD')}`,
                     sheetName: '评估项目数据',
                     exportMethod: exportMethod,
                     types: ['xlsx'],
                     modes: ['current', 'selected', 'all']
-                  }"
-                @sort-change="sortChangeHandle"
-                :sort-config="{remote:true}"
-                :data="dataList"
-                :import-config="{
-                    importMethod: importMethod,
-                    types: ['xls', 'xlsx'],
-                    remote: true}"
-                :checkbox-config="{}">
-                <vxe-column type="seq" width="60" title="序号"></vxe-column>
-                <vxe-column type="checkbox"  width="40px"></vxe-column>
-                <vxe-column width="400px"  title="项目名称" field="projectName">
-                    <template #default="scope">
-                        <el-link  type="primary" :underline="false" v-if="hasPermission('sys:project:edit')" @click="view(scope.row.id)">{{scope.row.projectName}}</el-link>
-                        <el-link  type="primary" :underline="false" v-else-if="hasPermission('sys:project:view')"  @click="view(scope.row.id)">{{scope.row.projectName}}</el-link>
-                        <span v-else>{{scope.row.projectName}}</span>
-                    </template>
-                </vxe-column>
-                <vxe-column width="80px"  title="年份" field="year" > </vxe-column>
-                <vxe-column width="200px"  title="文号" field="documentNum" > </vxe-column>
-                <vxe-column width="110px"  title="协议号" field="protocolNum" > </vxe-column>
-                <vxe-column width="200px"  title="客户名称" field="customerName" > </vxe-column>
-                <vxe-column width="100px"  title="报告收费(元)" field="reportCharges" > </vxe-column>
-                <vxe-column width="110px" title="合同是否存档" field="isContractArchive" >
-                  <template #default="scope">
-                    {{ $dictUtils.getDictLabel("yes_no", scope.row.isContractArchive, '-') }}
-                  </template>
-                </vxe-column>
-                <vxe-column width="110px" title="底稿是否完好" field="isPapersIntact" >
-                  <template #default="scope">
-                    {{ $dictUtils.getDictLabel("yes_no", scope.row.isPapersIntact, '-') }}
-                  </template>
-                </vxe-column>
-                <vxe-column width="130px"  title="是否已经报销提成" field="isCommissionReimbursement" >
-                  <template #default="scope">
-                    {{ $dictUtils.getDictLabel("yes_no", scope.row.isCommissionReimbursement, '-') }}
-                  </template>
-                </vxe-column>
-                <vxe-column width="110px"  title="项目负责人" field="projectHead" > </vxe-column>
-                <vxe-column width="130px"  title="评估报告日" field="evaluationReportDate" >
-                  <template #default="scope">
-                    {{moment(scope.row.evaluationReportDate).format('YYYY-MM-DD')}}
-                  </template>
-                </vxe-column>
-                <vxe-column width="130px"  title="开票日期" field="invoiceDate" >
-                  <template #default="scope">
-                    {{moment(scope.row.invoiceDate).format('YYYY-MM-DD')}}
-                  </template></vxe-column>
-                <vxe-column width="50px"   title="状态" field="status" >
-                  <template #default="scope">
-                    {{ $dictUtils.getDictLabel("project_status", scope.row.status, '-') }}
-                  </template>
-                </vxe-column>
-                <vxe-column width="80px"   title="上传状态" field="fileUploadType" >
-                  <template #default="scope">
-                    {{ $dictUtils.getDictLabel("file_upload_type", scope.row.fileUploadType, '-') }}
-                  </template>
-                </vxe-column>
+				  }"
+				  @sort-change="sortChangeHandle"
+				  :sort-config="{remote:true}"
+				  :data="dataList"
+				  :import-config="{
+			importMethod: importMethod,
+			types: ['xls', 'xlsx'],
+			remote: true}"
+				  :checkbox-config="{}">
+				  <vxe-column type="seq" width="60" title="序号"></vxe-column>
+				  <vxe-column type="checkbox"  width="40px"></vxe-column>
+				  <vxe-column width="400px"  title="项目名称" field="projectName">
+					  <template #default="scope">
+						  <el-link  type="primary" :underline="false" v-if="hasPermission('sys:project:edit')" @click="view(scope.row.id)">{{scope.row.projectName}}</el-link>
+						  <el-link  type="primary" :underline="false" v-else-if="hasPermission('sys:project:view')"  @click="view(scope.row.id)">{{scope.row.projectName}}</el-link>
+						  <span v-else>{{scope.row.projectName}}</span>
+					  </template>
+				  </vxe-column>
+				  <vxe-column width="80px"  title="年份" field="year" > </vxe-column>
+				  <vxe-column width="200px"  title="文号" field="documentNum" > </vxe-column>
+				  <vxe-column width="110px"  title="协议号" field="protocolNum" > </vxe-column>
+				  <vxe-column width="200px"  title="客户名称" field="customerName" > </vxe-column>
+				  <vxe-column width="100px"  title="报告收费(元)" field="reportCharges" > </vxe-column>
+				  <vxe-column width="110px" title="合同是否存档" field="isContractArchive" >
+					  <template #default="scope">
+						  {{ $dictUtils.getDictLabel("yes_no", scope.row.isContractArchive, '-') }}
+					  </template>
+				  </vxe-column>
+				  <vxe-column width="110px" title="底稿是否完好" field="isPapersIntact" >
+					  <template #default="scope">
+						  {{ $dictUtils.getDictLabel("yes_no", scope.row.isPapersIntact, '-') }}
+					  </template>
+				  </vxe-column>
+				  <vxe-column width="130px"  title="是否已经报销提成" field="isCommissionReimbursement" >
+					  <template #default="scope">
+						  {{ $dictUtils.getDictLabel("yes_no", scope.row.isCommissionReimbursement, '-') }}
+					  </template>
+				  </vxe-column>
+				  <vxe-column width="110px"  title="项目负责人" field="projectHead" > </vxe-column>
+				  <vxe-column width="130px"  title="评估报告日" field="evaluationReportDate" >
+					  <template #default="scope">
+						  {{moment(scope.row.evaluationReportDate).format('YYYY-MM-DD')}}
+					  </template>
+				  </vxe-column>
+				  <vxe-column width="130px"  title="开票日期" field="invoiceDate" >
+					  <template #default="scope">
+						  {{moment(scope.row.invoiceDate).format('YYYY-MM-DD')}}
+					  </template></vxe-column>
+				  <vxe-column width="50px"   title="状态" field="status" >
+					  <template #default="scope">
+						  {{ $dictUtils.getDictLabel("project_status", scope.row.status, '-') }}
+					  </template>
+				  </vxe-column>
+				  <vxe-column width="80px"   title="上传状态" field="fileUploadType" >
+					  <template #default="scope">
+						  {{ $dictUtils.getDictLabel("file_upload_type", scope.row.fileUploadType, '-') }}
+					  </template>
+				  </vxe-column>
 
 
-                <!--<vxe-column  title="是否可用" field="status" sortable>
-                  <template slot-scope="scope">
-                    <el-tag v-if="scope.row.status==='1'" type="primary">
-                      {{ $dictUtils.getDictLabel("yes_no", scope.row.status, '-') }}
-                    </el-tag>
-                    <el-tag v-else type="danger">
-                      {{ $dictUtils.getDictLabel("yes_no", scope.row.status, '-') }}
-                    </el-tag>
-                  </template>
-                </vxe-column>-->
-                <vxe-column title="操作" width="200px" fixed="right" align="center">
-                    <template  #default="scope">
-                      <el-button v-if="hasPermission('sys:project:view')" type="text" icon="el-icon-view" size="small" @click="view(scope.row.id)">查看</el-button>
-                      <el-button v-if="hasPermission('sys:project:edit') && scope.row.permissionFlag" type="text" icon="el-icon-edit" size="small" @click="edit(scope.row.id)">修改</el-button>
-                      <el-button v-if="hasPermission('sys:project:del') && scope.row.permissionFlag" type="text"  icon="el-icon-delete" size="small" @click="del(scope.row.id)">删除</el-button>
-                    </template>
-                </vxe-column>
-            </vxe-table>
-            <vxe-pager
-              background
-              size="small"
-              :current-page="tablePage.currentPage"
-              :page-size="tablePage.pageSize"
-              :total="tablePage.total"
-              :page-sizes="[10, 20, 100, 1000, {label: '全量数据', value: 1000000}]"
-              :layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
-              @page-change="currentChangeHandle">
-            </vxe-pager>
-        </div>
-     </div>
+				  <!--<vxe-column  title="是否可用" field="status" sortable>
+					<template slot-scope="scope">
+					  <el-tag v-if="scope.row.status==='1'" type="primary">
+						{{ $dictUtils.getDictLabel("yes_no", scope.row.status, '-') }}
+					  </el-tag>
+					  <el-tag v-else type="danger">
+						{{ $dictUtils.getDictLabel("yes_no", scope.row.status, '-') }}
+					  </el-tag>
+					</template>
+				  </vxe-column>-->
+				  <vxe-column title="操作" width="120px" fixed="right" align="center">
+					  <template  #default="scope">
+						  <el-button v-if="hasPermission('sys:project:edit') && scope.row.permissionFlag" text type="primary" @click="edit(scope.row.id)">修改</el-button>
+						  <el-button v-if="hasPermission('sys:project:del') && scope.row.permissionFlag" text type="primary"  @click="del(scope.row.id)">删除</el-button>
+					  </template>
+				  </vxe-column>
+			  </vxe-table>
+			  <vxe-pager
+				  background
+				  size="small"
+				  :current-page="tablePage.currentPage"
+				  :page-size="tablePage.pageSize"
+				  :total="tablePage.total"
+				  :page-sizes="[10, 20, 100, 1000, {label: '全量数据', value: 1000000}]"
+				  :layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
+				  @page-change="currentChangeHandle">
+			  </vxe-pager>
+		  </div>
+	  </div>
+        <!-- 弹窗, 新增 / 修改 -->
         <!-- 弹窗, 新增 / 修改 -->
-    <AssessForm  ref="assessForm" @refreshDataList="refreshList"></AssessForm>
+	  <div>
+		  <AssessForm  ref="assessForm" @refreshDataList="refreshList"></AssessForm>
+	  </div>
   </div>
 </template>
 
@@ -188,6 +205,7 @@
   export default {
     data () {
       return {
+	  	searchVisible: true,
         showHideItem: false,
         showHideIcon: 'el-icon-arrow-down',
         showHideName: '展示',
@@ -220,7 +238,15 @@
     activated () {
       this.refreshList()
     },
-
+  mounted() {
+	  this.$nextTick(() => {
+		  // 将表格和工具栏进行关联
+		  const $table = this.$refs.projectTable;
+		  const $toolbar = this.$refs.toolbarRef;
+		  $table.connect($toolbar);
+	  });
+	  this.refreshList();
+  },
     methods: {
       showHide () {
         if (this.showHideItem === false) {
@@ -249,8 +275,10 @@
           'itemType': '1',
           ...this.searchForm
         }).then((data) => {
-          this.dataList = data.records
-          this.tablePage.total = data.total
+			if (this.commonJS.isNotEmpty(data)) {
+				this.dataList = data.records
+				this.tablePage.total = data.total
+			}
           this.loading = false
         })
       },
@@ -285,6 +313,7 @@
       },
       // 删除
       del (id) {
+      	console.log(this.$refs.projectTable.getCheckboxRecords())
         let ids = id || this.$refs.projectTable.getCheckboxRecords().map(item => {
           return item.id
         }).join(',')
@@ -294,7 +323,7 @@
           type: 'warning'
         }).then(() => {
           this.loading = true
-          this.projectService.delete(ids).then(({data}) => {
+          this.projectService.delete(ids).then((data) => {
             this.$message.success(data)
             this.refreshList()
             this.loading = false
@@ -307,7 +336,7 @@
         formBody.append('file', file)
         this.loading = true
         this.projectService.importExcel(formBody).then(result => {
-          this.$message.success(result.data)
+          this.$message.success(result)
           this.refreshList()
         }).catch(() => {
           this.refreshList()
@@ -324,7 +353,7 @@
         this.loading = true
         this.projectService.exportTemplate().then((res) => {
           // 将二进制流文件写入excel表,以下为重要步骤
-          this.$utils.downloadExcel(res.data, '项目导入模板')
+          this.$utils.downloadExcel(res, '项目导入模板')
           this.loading = false
         }).catch(function (err) {
           this.loading = false
@@ -341,7 +370,7 @@
           ...this.searchForm
         }).then((res) => {
           // 将二进制流文件写入excel表,以下为重要步骤
-          this.$utils.downloadExcel(res.data, '评估项目上传比例报告')
+          this.$utils.downloadExcel(res, '评估项目上传比例报告')
           this.loading = false
         }).catch(function (err) {
           this.loading = false
@@ -369,7 +398,7 @@
         }
         return this.projectService.exportExcel(params).then((res) => {
           // 将二进制流文件写入excel表,以下为重要步骤
-          this.$utils.downloadExcel(res.data, options.filename)
+          this.$utils.downloadExcel(res, options.filename)
         }).catch(function (err) {
           if (err.response) {
             console.log(err.response)

+ 32 - 25
src/views/project/ConsultationForm.vue

@@ -3,12 +3,12 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
-      width="800px"
+	  draggable
+	  width="80%"
       @close="close"
       @keyup.enter.native="doSubmit"
-      :visible.sync="visible">
-      <el-form size="middle"
+	  v-model="visible">
+      <el-form size="large"
                :model="inputForm"
                ref="inputForm"
                :class="method==='view'?'readonly':''"
@@ -64,7 +64,7 @@
                 style="width:100%;"
                 v-model="inputForm.evaluationBaseDateUi"
                 type="datetime"
-                value-format="yyyy-MM-dd HH:mm:ss"
+                value-format="YYYY-MM-DD h:m:s"
                 placeholder="选择日期时间">
               </el-date-picker>
             </el-form-item>
@@ -80,7 +80,7 @@
                 style="width:100%;"
                 v-model="inputForm.evaluationReportDateUi"
                 type="datetime"
-                value-format="yyyy-MM-dd HH:mm:ss"
+                value-format="YYYY-MM-DD h:m:s"
                 placeholder="选择日期时间">
               </el-date-picker>
             </el-form-item>
@@ -110,10 +110,11 @@
                     label: 'name',         // 显示名称
                     children: 'children'    // 子级字段名
                   }"
-                :url="`/sys/user/treeUserDataAllOffice?type=2`"
+                :url="`/system-server/sys/user/treeUserDataAllOffice?type=2`"
                 :value="inputForm.projectHead"
                 :clearable="true"
                 :accordion="true"
+				size="large"
                 :disabled="method==='view'"
                 @getValue="(value) => {inputForm.projectHead=value}"/>
             </el-form-item>
@@ -172,10 +173,11 @@
                     label: 'name',         // 显示名称
                     children: 'children'    // 子级字段名
                   }"
-                :url="`/sys/user/treeUserDataAllOffice?type=2`"
+                :url="`/system-server/sys/user/treeUserDataAllOffice?type=2`"
                 :value="inputForm.currentDisposePerson"
                 :clearable="true"
                 :accordion="true"
+				size="large"
                 :disabled="method==='view'"
                 @getValue="(value) => {inputForm.currentDisposePerson=value}"/>
             </el-form-item>
@@ -200,7 +202,7 @@
                 style="width:100%;"
                 v-model="inputForm.invoiceDateUi"
                 type="datetime"
-                value-format="yyyy-MM-dd HH:mm:ss"
+				value-format="YYYY-MM-DD h:m:s"
                 placeholder="选择日期时间">
               </el-date-picker>
             </el-form-item>
@@ -299,7 +301,7 @@
                 style="width:100%;"
                 v-model="inputForm.reimbursementDateUi"
                 type="datetime"
-                value-format="yyyy-MM-dd HH:mm:ss"
+				value-format="YYYY-MM-DD h:m:s"
                 placeholder="选择日期时间">
               </el-date-picker>
             </el-form-item>
@@ -338,18 +340,22 @@
 
         </el-row>
         <!--        附件-->
-        <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
+		  <div>
+			  <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
+		  </div>
 
       </el-form>
-      <el-image-viewer
-        v-if="showViewer"
-        :on-close="closeViewer"
-        :url-list="[url]"
-        zIndex="9999"/>
-      <span slot="footer" class="dialog-footer">
-      <el-button  @click="close()" icon="el-icon-circle-close">关闭</el-button>
-      <el-button  type="primary" v-if="method != 'view'"  @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
-    </span>
+<!--      <el-image-viewer-->
+<!--        v-if="showViewer"-->
+<!--        :on-close="closeViewer"-->
+<!--        :url-list="[url]"-->
+<!--        zIndex="9999"/>-->
+		<template #footer>
+			<span class="dialog-footer">
+				<el-button  @click="close()" icon="el-icon-circle-close">关闭</el-button>
+				<el-button  type="primary" v-if="method != 'view'"  @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
+			</span>
+		</template>
     </el-dialog>
   </div>
 </template>
@@ -359,7 +365,7 @@
   import SelectUserTree from '@/views/utils/treeUserSelect'
   import UpLoadComponent from '@/views/common/UpLoadComponent'
   import OSSSerive from '@/api/sys/OSSService'
-  import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
+  // import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
   export default {
     data () {
       return {
@@ -427,7 +433,7 @@
       }
     },
     components: {
-      ElImageViewer,
+      // ElImageViewer,
       SelectUserTree,
       UpLoadComponent
     },
@@ -448,7 +454,7 @@
       async init (method, id) {
         this.dataList = []
         this.dataListNew = []
-        await this.ossService.findFileList(id).then(({data}) => {
+        await this.ossService.findFileList(id).then((data) => {
           data.forEach((item) => {
             item.name = item.attachmentName
             // item.createBy = item.createBy
@@ -518,7 +524,8 @@
           this.$refs.inputForm.resetFields()
           if (method === 'edit' || method === 'view') { // 修改或者查看
             this.loading = true
-            this.projectService.queryById(this.inputForm.id).then(({data}) => {
+			  this.$refs.uploadComponent.clearUpload()
+              this.projectService.queryById(this.inputForm.id).then((data) => {
               this.inputForm = this.recover(this.inputForm, data)
               this.inputForm.evaluationBaseDateUi = data.evaluationBaseDate
               this.inputForm.evaluationReportDateUi = data.evaluationReportDate
@@ -562,7 +569,7 @@
             } else {
               this.inputForm.status = '5'
             }
-            this.projectService.save(this.inputForm).then(({data}) => {
+            this.projectService.save(this.inputForm).then((data) => {
               this.close()
               this.$message.success(data)
               this.$emit('refreshDataList')

+ 64 - 42
src/views/project/ConsultationList.vue

@@ -1,6 +1,7 @@
 <template>
   <div class="page">
-      <el-form size="small" :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
+      <el-form :inline="true" class="query-form" ref="searchForm" :model="searchForm" v-if="searchVisible"
+			   @keyup.enter.native="refreshList()" @submit.native.prevent>
             <!-- 搜索框-->
         <el-form-item prop="projectHead" :rules=" [{trigger: 'blur'}]" label="项目负责人">
           <SelectUserTree
@@ -10,32 +11,33 @@
                   label: 'name',         // 显示名称
                   children: 'children'    // 子级字段名
                 }"
-            :url="`/sys/user/treeUserDataAllOffice?type=2`"
+            :url="`/system-server/sys/user/treeUserDataAllOffice?type=2`"
             :value="searchForm.projectHead"
             :clearable="true"
             :accordion="true"
+			size="default"
             @getValue="(value) => {searchForm.projectHead=value}"/>
         </el-form-item>
          <el-form-item prop="projectName">
-                <el-input size="small" v-model="searchForm.projectName" placeholder="项目名称" clearable></el-input>
+                <el-input v-model="searchForm.projectName" placeholder="项目名称" clearable></el-input>
          </el-form-item>
         <el-form-item v-if="showHideItem" prop="year">
           <el-date-picker
             placement="bottom-start"
             v-model="searchForm.year"
             type="year"
-            value-format="yyyy"
+            value-format="YYYY"
             placeholder="选择年份">
           </el-date-picker>
         </el-form-item>
         <el-form-item v-if="showHideItem" prop="documentNum">
-          <el-input size="small" v-model="searchForm.documentNum" placeholder="文号" clearable></el-input>
+          <el-input  v-model="searchForm.documentNum" placeholder="文号" clearable></el-input>
         </el-form-item>
         <el-form-item v-if="showHideItem" prop="protocolNum">
-          <el-input size="small" v-model="searchForm.protocolNum" placeholder="协议号" clearable></el-input>
+          <el-input v-model="searchForm.protocolNum" placeholder="协议号" clearable></el-input>
         </el-form-item>
         <el-form-item v-if="showHideItem" prop="customerName">
-          <el-input size="small" v-model="searchForm.customerName" placeholder="客户名称" clearable></el-input>
+          <el-input v-model="searchForm.customerName" placeholder="客户名称" clearable></el-input>
         </el-form-item>
         <el-form-item v-if="showHideItem" prop="fileUploadType">
           <el-select v-model="searchForm.fileUploadType" placeholder="请选择上传状态" style="width:100%;">
@@ -49,23 +51,33 @@
         </el-form-item>
 
           <el-form-item>
-            <el-button type="default" @click="showHide" size="small" :icon="showHideIcon">{{showHideName}}</el-button>
-            <el-button type="primary" @click="refreshList()" size="small" icon="el-icon-search">查询</el-button>
-            <el-button @click="resetSearch()" size="small" icon="el-icon-refresh-right">重置</el-button>
+            <el-button type="default" @click="showHide" :icon="showHideIcon">{{showHideName}}</el-button>
+            <el-button type="primary" @click="refreshList()" icon="el-icon-search">查询</el-button>
+            <el-button @click="resetSearch()" icon="el-icon-refresh-right">重置</el-button>
           </el-form-item>
       </el-form>
-     <div class="bg-white top">
-        <vxe-toolbar :refresh="{query: refreshList}" import export print custom>
+     <div class="jp-table">
+        <vxe-toolbar ref="toolbarRef" :refresh="{query: refreshList}" import export custom>
           <template #buttons>
-            <el-button v-if="hasPermission('sys:project:add')" type="primary" size="small" icon="el-icon-plus" @click="add()">新建</el-button>
-<!--            <el-button v-if="hasPermission('sys:post:edit')" type="warning" size="small" icon="el-icon-edit-outline" @click="edit()" :disabled="$refs.projectTable && $refs.projectTable.getCheckboxRecords().length !== 1" plain>修改</el-button>-->
-            <el-button v-if="hasPermission('sys:project:del')" type="danger"   size="small" icon="el-icon-delete" @click="del()" :disabled="$refs.projectTable && $refs.projectTable.getCheckboxRecords().length === 0" plain>删除</el-button>
-            <el-button v-if="hasPermission('sys:project:import')"  type="default" @click="downloadTpl()" size="small">项目模板</el-button>
-            <el-button v-if="hasPermission('sys:project:exportFile')"  type="warning" plain @click="downloadFile()" size="small">完成比例</el-button>
+            <el-button v-if="hasPermission('sys:project:add')" type="primary"  icon="el-icon-plus" @click="add()">新建</el-button>
+<!--            <el-button v-if="hasPermission('sys:post:edit')" type="warning"  icon="el-icon-edit-outline" @click="edit()" :disabled="$refs.projectTable && $refs.projectTable.getCheckboxRecords().length !== 1" plain>修改</el-button>-->
+            <el-button v-if="hasPermission('sys:project:del')" type="danger"    icon="el-icon-delete" @click="del()" :disabled="$refs.projectTable && $refs.projectTable.getCheckboxRecords().length === 0" plain>删除</el-button>
+            <el-button v-if="hasPermission('sys:project:import')"  type="default" @click="downloadTpl()" >项目模板</el-button>
+            <el-button v-if="hasPermission('sys:project:exportFile')"  type="warning" plain @click="downloadFile()" >完成比例</el-button>
             <span style="margin-left:20px;color: #999999">文件上传比例 {{proport}}</span>
           </template>
+			<template #tools>
+				<vxe-button
+					text
+					type="primary"
+					:title="searchVisible ? '收起检索' : '展开检索'"
+					icon="vxe-icon-search"
+					class="tool-btn"
+					@click="searchVisible = !searchVisible"
+				></vxe-button>
+			</template>
         </vxe-toolbar>
-        <div style="height: calc(100% - 80px);">
+        <div class="jp-table-body">
             <vxe-table
                 border="inner"
                 auto-resize
@@ -98,7 +110,7 @@
                 <vxe-column type="seq" width="60" title="序号"></vxe-column>
                 <vxe-column type="checkbox"  width="40px"></vxe-column>
               <vxe-column width="400px"  title="项目名称" field="projectName">
-                <template slot-scope="scope">
+                <template #default="scope">
                   <el-link  type="primary" :underline="false" v-if="hasPermission('sys:project:edit')" @click="view(scope.row.id)">{{scope.row.projectName}}</el-link>
                   <el-link  type="primary" :underline="false" v-else-if="hasPermission('sys:project:view')"  @click="view(scope.row.id)">{{scope.row.projectName}}</el-link>
                   <span v-else>{{scope.row.projectName}}</span>
@@ -110,38 +122,38 @@
               <vxe-column width="200px"  title="客户名称" field="customerName" > </vxe-column>
               <vxe-column width="100px"  title="报告收费(元)" field="reportCharges" > </vxe-column>
               <vxe-column width="110px" title="合同是否存档" field="isContractArchive" >
-                <template slot-scope="scope">
+                <template #default="scope">
                   {{ $dictUtils.getDictLabel("yes_no", scope.row.isContractArchive, '-') }}
                 </template>
               </vxe-column>
               <vxe-column width="110px" title="底稿是否完好" field="isPapersIntact" >
-                <template slot-scope="scope">
+                <template #default="scope">
                   {{ $dictUtils.getDictLabel("yes_no", scope.row.isPapersIntact, '-') }}
                 </template>
               </vxe-column>
               <vxe-column width="130px"  title="是否已经报销提成" field="isCommissionReimbursement" >
-                <template slot-scope="scope">
+                <template #default="scope">
                   {{ $dictUtils.getDictLabel("yes_no", scope.row.isCommissionReimbursement, '-') }}
                 </template>
               </vxe-column>
               <vxe-column width="110px"  title="项目负责人" field="projectHead" > </vxe-column>
               <vxe-column width="130px"  title="评估报告日" field="evaluationReportDate" >
-                <template slot-scope="scope">
+                <template #default="scope">
                   {{moment(scope.row.evaluationReportDate).format('YYYY-MM-DD')}}
                 </template>
               </vxe-column>
               <vxe-column width="130px"  title="开票日期" field="invoiceDate" >
-                <template slot-scope="scope">
+                <template #default="scope">
                   {{moment(scope.row.invoiceDate).format('YYYY-MM-DD')}}
                 </template>
               </vxe-column>
               <vxe-column width="50px"   title="状态" field="status" >
-                <template slot-scope="scope">
+                <template #default="scope">
                   {{ $dictUtils.getDictLabel("project_status", scope.row.status, '-') }}
                 </template>
               </vxe-column>
               <vxe-column width="80px"   title="上传状态" field="fileUploadType" >
-                <template slot-scope="scope">
+                <template #default="scope">
                   {{ $dictUtils.getDictLabel("file_upload_type", scope.row.fileUploadType, '-') }}
                 </template>
               </vxe-column>
@@ -157,11 +169,10 @@
                     </el-tag>
                   </template>
                 </vxe-column>-->
-                <vxe-column title="操作" width="200px" fixed="right" align="center">
-                    <template  slot-scope="scope">
-                      <el-button v-if="hasPermission('sys:project:view')" type="text" icon="el-icon-view" size="small" @click="view(scope.row.id)">查看</el-button>
-                      <el-button v-if="hasPermission('sys:project:edit') && scope.row.permissionFlag" type="text" icon="el-icon-edit" size="small" @click="edit(scope.row.id)">修改</el-button>
-                      <el-button v-if="hasPermission('sys:project:del') && scope.row.permissionFlag" type="text"  icon="el-icon-delete" size="small" @click="del(scope.row.id)">删除</el-button>
+                <vxe-column title="操作" width="120px" fixed="right" align="center">
+                    <template  #default="scope">
+                      <el-button v-if="hasPermission('sys:project:edit') && scope.row.permissionFlag" text type="primary"  @click="edit(scope.row.id)">修改</el-button>
+                      <el-button v-if="hasPermission('sys:project:del') && scope.row.permissionFlag" text type="primary"   @click="del(scope.row.id)">删除</el-button>
                     </template>
                 </vxe-column>
             </vxe-table>
@@ -189,6 +200,7 @@
   export default {
     data () {
       return {
+	    searchVisible: true,
         showHideItem: false,
         showHideIcon: 'el-icon-arrow-down',
         showHideName: '展示',
@@ -221,7 +233,15 @@
     activated () {
       this.refreshList()
     },
-
+	  mounted() {
+		  this.$nextTick(() => {
+			  // 将表格和工具栏进行关联
+			  const $table = this.$refs.projectTable;
+			  const $toolbar = this.$refs.toolbarRef;
+			  $table.connect($toolbar);
+		  });
+		  this.refreshList();
+	  },
     methods: {
       showHide () {
         if (this.showHideItem === false) {
@@ -240,7 +260,7 @@
         this.projectService.proportion({
           'itemType': '2',
           ...this.searchForm
-        }).then(({data}) => {
+        }).then((data) => {
           this.proport = data
         })
         this.projectService.list({
@@ -249,10 +269,12 @@
           'orders': this.tablePage.orders,
           'itemType': '2',
           ...this.searchForm
-        }).then(({data}) => {
-          this.dataList = data.records
-          this.tablePage.total = data.total
-          this.loading = false
+        }).then((data) => {
+			if (this.commonJS.isNotEmpty(data)) {
+				this.dataList = data.records
+				this.tablePage.total = data.total
+			}
+          	this.loading = false
         })
       },
       // 当前页
@@ -295,7 +317,7 @@
           type: 'warning'
         }).then(() => {
           this.loading = true
-          this.projectService.delete(ids).then(({data}) => {
+          this.projectService.delete(ids).then((data) => {
             this.$message.success(data)
             this.refreshList()
             this.loading = false
@@ -308,7 +330,7 @@
         formBody.append('file', file)
         this.loading = true
         this.projectService.importExcel(formBody).then(result => {
-          this.$message.success(result.data)
+          this.$message.success(result)
           this.refreshList()
         }).catch(() => {
           this.refreshList()
@@ -325,7 +347,7 @@
         this.loading = true
         this.projectService.exportTemplate().then((res) => {
           // 将二进制流文件写入excel表,以下为重要步骤
-          this.$utils.downloadExcel(res.data, '项目导入模板')
+          this.$utils.downloadExcel(res, '项目导入模板')
           this.loading = false
         }).catch(function (err) {
           this.loading = false
@@ -342,7 +364,7 @@
           ...this.searchForm
         }).then((res) => {
           // 将二进制流文件写入excel表,以下为重要步骤
-          this.$utils.downloadExcel(res.data, '咨询项目上传比例报告')
+          this.$utils.downloadExcel(res, '咨询项目上传比例报告')
           this.loading = false
         }).catch(function (err) {
           this.loading = false
@@ -370,7 +392,7 @@
         }
         return this.projectService.exportExcel(params).then((res) => {
           // 将二进制流文件写入excel表,以下为重要步骤
-          this.$utils.downloadExcel(res.data, options.filename)
+          this.$utils.downloadExcel(res, options.filename)
         }).catch(function (err) {
           if (err.response) {
             console.log(err.response)

+ 149 - 149
src/views/reimbursement/ReimbursementFormCcpm.vue

@@ -1,157 +1,157 @@
 <template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
   <div>
-      <el-form size="middle" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="method === 'view'"
-               label-width="120px" @submit.native.prevent>
+<!--      <el-form size="middle" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="method === 'view'"-->
+<!--               label-width="120px" @submit.native.prevent>-->
 
-        <el-divider content-position="left"><i class="el-icon-document"></i> 基础信息</el-divider>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="经办人" prop="userName">
-              <el-input v-model="inputForm.userName" :disabled="true"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="报销编号" prop="no">
-              <el-input v-model="inputForm.no" :disabled="true" placeholder="自动生成"></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="所属部门" prop="departmentName">
-              <el-input v-model="inputForm.departmentName" :disabled="true"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="报销日期" prop="reimDate" :rules="[{required: true, message:'请选择报销日期', trigger:'blur'}]">
-              <el-date-picker
-                placement="bottom-start"
-                v-model="inputForm.reimDate"
-                type="date"
-                value-format="yyyy-MM-dd"
-                style="width: 100%"
-                placeholder="选择日期">
-              </el-date-picker>
-<!--                <el-input v-model="inputForm.reimDate" :disabled="true"></el-input>-->
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="备注" prop="remarks">
-              <el-input v-model="inputForm.remarks"
-                        type="textarea"
-                        :rows="5"
-                        maxlength="500"
-                        placeholder="请输入简介"
-                        show-word-limit>
-              </el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
+<!--        <el-divider content-position="left"><i class="el-icon-document"></i> 基础信息</el-divider>-->
+<!--        <el-row>-->
+<!--          <el-col :span="12">-->
+<!--            <el-form-item label="经办人" prop="userName">-->
+<!--              <el-input v-model="inputForm.userName" :disabled="true"></el-input>-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+<!--          <el-col :span="12">-->
+<!--            <el-form-item label="报销编号" prop="no">-->
+<!--              <el-input v-model="inputForm.no" :disabled="true" placeholder="自动生成"></el-input>-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+<!--        </el-row>-->
+<!--        <el-row>-->
+<!--          <el-col :span="12">-->
+<!--            <el-form-item label="所属部门" prop="departmentName">-->
+<!--              <el-input v-model="inputForm.departmentName" :disabled="true"></el-input>-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+<!--          <el-col :span="12">-->
+<!--            <el-form-item label="报销日期" prop="reimDate" :rules="[{required: true, message:'请选择报销日期', trigger:'blur'}]">-->
+<!--              <el-date-picker-->
+<!--                placement="bottom-start"-->
+<!--                v-model="inputForm.reimDate"-->
+<!--                type="date"-->
+<!--                value-format="yyyy-MM-dd"-->
+<!--                style="width: 100%"-->
+<!--                placeholder="选择日期">-->
+<!--              </el-date-picker>-->
+<!--&lt;!&ndash;                <el-input v-model="inputForm.reimDate" :disabled="true"></el-input>&ndash;&gt;-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+<!--        </el-row>-->
+<!--        <el-row>-->
+<!--          <el-col :span="24">-->
+<!--            <el-form-item label="备注" prop="remarks">-->
+<!--              <el-input v-model="inputForm.remarks"-->
+<!--                        type="textarea"-->
+<!--                        :rows="5"-->
+<!--                        maxlength="500"-->
+<!--                        placeholder="请输入简介"-->
+<!--                        show-word-limit>-->
+<!--              </el-input>-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+<!--        </el-row>-->
 
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          项目报销详情
-          <!--        <el-button style="margin-left: 20px" type="primary" :disabled="method === 'view'" size="mini" @click="insertEvent('detail')" plain>-->
-          <!--          新增-->
-          <!--        </el-button>-->
-        </el-divider>
-        <el-row  :gutter="15" >
-          <vxe-table
-            border
-            show-footer
-            show-overflow="title"
-            :footer-method="footerMethod"
-            ref="detailTable"
-            :key="detailKey"
-            class="vxe-table-element"
-            :data="inputForm.detailInfos"
-            style="margin-left: 3em"
-          >
-            <vxe-table-column min-width="80" align="center" field="userName" title="报销人" ></vxe-table-column>
-            <vxe-table-column min-width="80" align="center" field="deptName" title="报销部门" ></vxe-table-column>
-            <vxe-table-column min-width="80" align="center" field="typeName" title="报销类别"  ></vxe-table-column>
-            <vxe-table-column min-width="80" align="center" field="projectName" title="报销项目"  ></vxe-table-column>
-            <vxe-table-column min-width="80" align="center" field="reportNumber" title="报告号" ></vxe-table-column>
-            <vxe-table-column min-width="80" align="center" field="number" title="费用(元)"  ></vxe-table-column>
-            <vxe-table-column min-width="80" align="center" field="receiptNumbers" title="收据张数" ></vxe-table-column>
-            <vxe-table-column min-width="80" align="center" field="evectionNumber" title="出差天数" ></vxe-table-column>
-            <vxe-table-column min-width="80" align="center" field="content" title="内容" ></vxe-table-column>
-          </vxe-table>
-        </el-row>
+<!--        <el-divider content-position="left"><i class="el-icon-document"></i>-->
+<!--          项目报销详情-->
+<!--          &lt;!&ndash;        <el-button style="margin-left: 20px" type="primary" :disabled="method === 'view'" size="mini" @click="insertEvent('detail')" plain>&ndash;&gt;-->
+<!--          &lt;!&ndash;          新增&ndash;&gt;-->
+<!--          &lt;!&ndash;        </el-button>&ndash;&gt;-->
+<!--        </el-divider>-->
+<!--        <el-row  :gutter="15" >-->
+<!--          <vxe-table-->
+<!--            border-->
+<!--            show-footer-->
+<!--            show-overflow="title"-->
+<!--            :footer-method="footerMethod"-->
+<!--            ref="detailTable"-->
+<!--            :key="detailKey"-->
+<!--            class="vxe-table-element"-->
+<!--            :data="inputForm.detailInfos"-->
+<!--            style="margin-left: 3em"-->
+<!--          >-->
+<!--            <vxe-table-column min-width="80" align="center" field="userName" title="报销人" ></vxe-table-column>-->
+<!--            <vxe-table-column min-width="80" align="center" field="deptName" title="报销部门" ></vxe-table-column>-->
+<!--            <vxe-table-column min-width="80" align="center" field="typeName" title="报销类别"  ></vxe-table-column>-->
+<!--            <vxe-table-column min-width="80" align="center" field="projectName" title="报销项目"  ></vxe-table-column>-->
+<!--            <vxe-table-column min-width="80" align="center" field="reportNumber" title="报告号" ></vxe-table-column>-->
+<!--            <vxe-table-column min-width="80" align="center" field="number" title="费用(元)"  ></vxe-table-column>-->
+<!--            <vxe-table-column min-width="80" align="center" field="receiptNumbers" title="收据张数" ></vxe-table-column>-->
+<!--            <vxe-table-column min-width="80" align="center" field="evectionNumber" title="出差天数" ></vxe-table-column>-->
+<!--            <vxe-table-column min-width="80" align="center" field="content" title="内容" ></vxe-table-column>-->
+<!--          </vxe-table>-->
+<!--        </el-row>-->
 
-        <el-divider style="margin-top: 20px" content-position="left"><i class="el-icon-document"></i>
-          专用发票信息
-          <!--        <el-button style="margin-left: 20px" type="primary" :disabled="method === 'view'" size="mini" @click="insertEvent('amount')" plain>-->
-          <!--          新增-->
-          <!--        </el-button>-->
-        </el-divider>
-        <el-row  :gutter="15" >
-          <vxe-table
-            border
-            show-overflow
-            ref="amountTable"
-            class="vxe-table-element"
-            :data="inputForm.amountInfos"
-            style="margin-left: 3em"
-            :key="amountKey"
-          >
-            <vxe-table-column min-width="80" align="center" field="code" title="发票代码" ></vxe-table-column>
-            <vxe-table-column min-width="80" align="center" field="number" title="发票号" ></vxe-table-column>
-            <vxe-table-column min-width="80" align="center" field="amount" title="金额" ></vxe-table-column>
-            <vxe-table-column min-width="80" align="center" field="taxAmount" title="税额" ></vxe-table-column>
-            <vxe-table-column min-width="80" align="center" field="count" title="价税合计" ></vxe-table-column>
-          </vxe-table>
-        </el-row>
+<!--        <el-divider style="margin-top: 20px" content-position="left"><i class="el-icon-document"></i>-->
+<!--          专用发票信息-->
+<!--          &lt;!&ndash;        <el-button style="margin-left: 20px" type="primary" :disabled="method === 'view'" size="mini" @click="insertEvent('amount')" plain>&ndash;&gt;-->
+<!--          &lt;!&ndash;          新增&ndash;&gt;-->
+<!--          &lt;!&ndash;        </el-button>&ndash;&gt;-->
+<!--        </el-divider>-->
+<!--        <el-row  :gutter="15" >-->
+<!--          <vxe-table-->
+<!--            border-->
+<!--            show-overflow-->
+<!--            ref="amountTable"-->
+<!--            class="vxe-table-element"-->
+<!--            :data="inputForm.amountInfos"-->
+<!--            style="margin-left: 3em"-->
+<!--            :key="amountKey"-->
+<!--          >-->
+<!--            <vxe-table-column min-width="80" align="center" field="code" title="发票代码" ></vxe-table-column>-->
+<!--            <vxe-table-column min-width="80" align="center" field="number" title="发票号" ></vxe-table-column>-->
+<!--            <vxe-table-column min-width="80" align="center" field="amount" title="金额" ></vxe-table-column>-->
+<!--            <vxe-table-column min-width="80" align="center" field="taxAmount" title="税额" ></vxe-table-column>-->
+<!--            <vxe-table-column min-width="80" align="center" field="count" title="价税合计" ></vxe-table-column>-->
+<!--          </vxe-table>-->
+<!--        </el-row>-->
 
-      </el-form>
-      <!-- 附件 -->
-      <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
+<!--      </el-form>-->
+<!--      &lt;!&ndash; 附件 &ndash;&gt;-->
+<!--      <UpLoadComponent ref="uploadComponent"></UpLoadComponent>-->
 
-      <el-divider content-position="left"><i class="el-icon-document"></i>
-        审批意见
-      </el-divider>
-      <el-input v-model="comment"
-                type="textarea"
-                :rows="6"
-                maxlength="500"
-                placeholder="请输入审批意见:"
-                show-word-limit>
-      </el-input>
+<!--      <el-divider content-position="left"><i class="el-icon-document"></i>-->
+<!--        审批意见-->
+<!--      </el-divider>-->
+<!--      <el-input v-model="comment"-->
+<!--                type="textarea"-->
+<!--                :rows="6"-->
+<!--                maxlength="500"-->
+<!--                placeholder="请输入审批意见:"-->
+<!--                show-word-limit>-->
+<!--      </el-input>-->
 
-      <!--审批流程-->
-      <FlowHisTableCcpm ref="flowHisTableCcpm"></FlowHisTableCcpm>
+<!--      &lt;!&ndash;审批流程&ndash;&gt;-->
+<!--      <FlowHisTableCcpm ref="flowHisTableCcpm"></FlowHisTableCcpm>-->
 
-      <!--      <ProgramPageForm ref="programPageForm" @getProgram="getProgram"></ProgramPageForm>-->
-      <ProgramPageForm ref="programPageForm" @getProgram="getProgram"></ProgramPageForm>
-      <ProgramPageForm ref="programPageForm3" @getProgram="getProgram3"></ProgramPageForm>
-      <ProgramPageForm ref="programPageForm4" @getProgram="getProgram4"></ProgramPageForm>
-      <ProgramPageForm ref="programPageForm5" @getProgram="getProgram5"></ProgramPageForm>
+<!--      &lt;!&ndash;      <ProgramPageForm ref="programPageForm" @getProgram="getProgram"></ProgramPageForm>&ndash;&gt;-->
+<!--      <ProgramPageForm ref="programPageForm" @getProgram="getProgram"></ProgramPageForm>-->
+<!--      <ProgramPageForm ref="programPageForm3" @getProgram="getProgram3"></ProgramPageForm>-->
+<!--      <ProgramPageForm ref="programPageForm4" @getProgram="getProgram4"></ProgramPageForm>-->
+<!--      <ProgramPageForm ref="programPageForm5" @getProgram="getProgram5"></ProgramPageForm>-->
 
-      <!--      <ReimbursementTypePullForm ref="reimbursementTypePullForm" @getProgramForType="getProgramForType"></ReimbursementTypePullForm>-->
-      <ReimbursementTypePullForm ref="cwReimbursementTypePullForm" @getProgramForType="getProgramForType"></ReimbursementTypePullForm>
-      <ReimbursementTypePullForm ref="cwReimbursementTypePullForm2" @getProgramForType="getProgramForType2"></ReimbursementTypePullForm>
-      <ReimbursementTypePullForm ref="cwReimbursementTypePullForm3" @getProgramForType="getProgramForType3"></ReimbursementTypePullForm>
-      <ReimbursementTypePullForm ref="cwReimbursementTypePullForm4" @getProgramForType="getProgramForType4"></ReimbursementTypePullForm>
-      <ReimbursementTypePullForm ref="cwReimbursementTypePullForm5" @getProgramForType="getProgramForType5"></ReimbursementTypePullForm>
+<!--      &lt;!&ndash;      <ReimbursementTypePullForm ref="reimbursementTypePullForm" @getProgramForType="getProgramForType"></ReimbursementTypePullForm>&ndash;&gt;-->
+<!--      <ReimbursementTypePullForm ref="cwReimbursementTypePullForm" @getProgramForType="getProgramForType"></ReimbursementTypePullForm>-->
+<!--      <ReimbursementTypePullForm ref="cwReimbursementTypePullForm2" @getProgramForType="getProgramForType2"></ReimbursementTypePullForm>-->
+<!--      <ReimbursementTypePullForm ref="cwReimbursementTypePullForm3" @getProgramForType="getProgramForType3"></ReimbursementTypePullForm>-->
+<!--      <ReimbursementTypePullForm ref="cwReimbursementTypePullForm4" @getProgramForType="getProgramForType4"></ReimbursementTypePullForm>-->
+<!--      <ReimbursementTypePullForm ref="cwReimbursementTypePullForm5" @getProgramForType="getProgramForType5"></ReimbursementTypePullForm>-->
 
-      <!--      <UserPullForm ref="userPullForm" @getProgramForUser="getProgramForUser"></UserPullForm>-->
-      <UserPullForm ref="userPullForm" @getProgramForUser="getProgramForUser"></UserPullForm>
-      <UserPullForm ref="userPullForm2" @getProgramForUser="getProgramForUser2"></UserPullForm>
-      <UserPullForm ref="userPullForm3" @getProgramForUser="getProgramForUser3"></UserPullForm>
-      <UserPullForm ref="userPullForm4" @getProgramForUser="getProgramForUser4"></UserPullForm>
-      <UserPullForm ref="userPullForm5" @getProgramForUser="getProgramForUser5"></UserPullForm>
+<!--      &lt;!&ndash;      <UserPullForm ref="userPullForm" @getProgramForUser="getProgramForUser"></UserPullForm>&ndash;&gt;-->
+<!--      <UserPullForm ref="userPullForm" @getProgramForUser="getProgramForUser"></UserPullForm>-->
+<!--      <UserPullForm ref="userPullForm2" @getProgramForUser="getProgramForUser2"></UserPullForm>-->
+<!--      <UserPullForm ref="userPullForm3" @getProgramForUser="getProgramForUser3"></UserPullForm>-->
+<!--      <UserPullForm ref="userPullForm4" @getProgramForUser="getProgramForUser4"></UserPullForm>-->
+<!--      <UserPullForm ref="userPullForm5" @getProgramForUser="getProgramForUser5"></UserPullForm>-->
 
-      <WorkContractChooseCom ref="workContractChooseCom" @getContract="getContract"></WorkContractChooseCom>
-      <PurchaseChooseForm  ref="purchaseChooseForm" @getProject="getPurChoose"></PurchaseChooseForm>
-      <MaterialManagementDialog ref="materialManagementDialog" @getUpload="getUpload"></MaterialManagementDialog>
+<!--      <WorkContractChooseCom ref="workContractChooseCom" @getContract="getContract"></WorkContractChooseCom>-->
+<!--      <PurchaseChooseForm  ref="purchaseChooseForm" @getProject="getPurChoose"></PurchaseChooseForm>-->
+<!--      <MaterialManagementDialog ref="materialManagementDialog" @getUpload="getUpload"></MaterialManagementDialog>-->
 
     </div>
 </template>
 
 <script>
   // import MakeFormService from '@/api/form/MakeFormService'
-  import CommonApi from '@/api/cw/common/CommonApi'
+  /*import CommonApi from '@/api/cw/common/CommonApi'
   import ReimbursementApprovalTypeService from '@/api/cw/reimbursementApproval/ReimbursementApprovalTypeService'
   import ReimbursementTypeService from '@/api/sys/ReimbursementTypeService'
   import UpLoadComponent from '@/views/common/UpLoadComponentCcpm'
@@ -168,7 +168,7 @@
   import MaterialManagementService from '@/api/materialManagement/MaterialManagementService'
   import MaterialManagementDialog from '@/views/modules/materialManagement/file/MaterialManagementDialog'
   import ReimbursementService from '@/api/centerservice/ccpm/ReimbursementService'
-  import FlowHisTableCcpm from '@/views/modules/flowable/task/FlowHisTableCcpm'
+  import FlowHisTableCcpm from '@/views/modules/flowable/task/FlowHisTableCcpm'*/
   export default {
     data () {
       return {
@@ -236,7 +236,7 @@
       }
     },
     // makeFormService: null,
-    reimbursementApprovalTypeService: null,
+    /*reimbursementApprovalTypeService: null,
     reimbursementTypeService: null,
     userService: null,
     commonApi: null,
@@ -250,22 +250,22 @@
       this.reimbursementTypeService = new ReimbursementTypeService()
       this.materialManagementService = new MaterialManagementService()
       this.reimbursementService = new ReimbursementService()
-    },
+    },*/
     activated () {
       // this.createForm()
     },
     props: {
-      businessId: {
+      /*businessId: {
         type: String,
         default: ''
       },
       processDefKey: {
         type: String,
         default: ''
-      }
+      }*/
     },
     components: {
-      UpLoadComponent,
+      /*UpLoadComponent,
       SelectUserTree,
       SelectTree,
       ProgramPageForm,
@@ -274,10 +274,10 @@
       WorkContractChooseCom,
       PurchaseChooseForm,
       MaterialManagementDialog,
-      FlowHisTableCcpm
+      FlowHisTableCcpm*/
     },
     computed: {
-      bus: {
+      /*bus: {
         get () {
           return this.businessId
         },
@@ -301,9 +301,9 @@
       },
       userId () {
         return JSON.parse(localStorage.getItem('user')).id
-      }
+      }*/
     },
-    watch: {
+    /*watch: {
       'keyWatch': {
         handler (newVal) {
           if (this.commonJS.isNotEmpty(this.bus) && this.commonJS.isNotEmpty(this.pdKey)) {
@@ -322,9 +322,9 @@
           this.$refs.flowHisTableCcpm.changeLoading(newVal)
         }
       }
-    },
+    },*/
     methods: {
-      getKeyWatch (keyWatch) {
+      /*getKeyWatch (keyWatch) {
         this.keyWatch = keyWatch
       },
       init (method, id, processDefKey) {
@@ -1066,7 +1066,7 @@
           }
           // this.generateModel(this.options.list)
         })
-      }
+      }*/
     }
   }
 </script>

+ 1 - 1
src/views/reimbursement/info/InfoForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1200px"
       @close="close"
       @keyup.enter.native="doSubmit"

+ 3 - 3
src/views/reimbursement/info/InfoList.vue

@@ -118,20 +118,20 @@
               <span v-else>{{scope.row.no}}</span>
             </template>
           </vxe-column>
-          <vxe-column width="130" title="报销类型" field="sourceType"align="center">
+          <vxe-column width="130" title="报销类型" field="sourceType" align="center">
             <template slot-scope="scope">
               {{$dictUtils.getDictLabel('pg_reimbursement_source_type', scope.row.sourceType, '')}}
             </template>
           </vxe-column>
           <vxe-column min-width="200" title="报销类别" field="typeName" align="center"></vxe-column>
-          <vxe-column min-width="200" title="报销项目" field="projectName"align="center">
+          <vxe-column min-width="200" title="报销项目" field="projectName" align="center">
             <template slot-scope="scope">
               <el-link  type="primary" :underline="false" v-if="hasPermission('reimbursement:info:view') && scope.row.projectId != undefined" @click="viewProject(scope.row.projectId)">{{scope.row.sourceType === '2' ? '' : scope.row.projectName}}</el-link>
               <el-link  type="primary" :underline="false" v-else-if="hasPermission('reimbursement:info:view') && scope.row.projectId != undefined" @click="viewProject(scope.row.projectId)">{{scope.row.sourceType === '2' ? '' : scope.row.projectName}}</el-link>
               <span v-else>{{scope.row.sourceType === '2' ? '' : scope.row.projectName}}</span>
             </template>
           </vxe-column>
-          <vxe-column width="180" title="报销合同" field="projectName"align="center">
+          <vxe-column width="180" title="报销合同" field="projectName" align="center">
             <template slot-scope="scope">
               <el-link  type="primary" :underline="false" v-if="hasPermission('reimbursement:info:view') && scope.row.projectId != undefined" @click="viewContract(scope.row.projectId)">{{scope.row.sourceType === '2' ? scope.row.projectName : ''}}</el-link>
               <span v-else>{{scope.row.sourceType === '2' ? scope.row.projectName : ''}}</span>

+ 1 - 1
src/views/reimbursement/info/ProgramForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1000px"
       @close="close"
       append-to-body

+ 41 - 41
src/views/reimbursement/info/ReimbursementForm.vue

@@ -1,6 +1,6 @@
 <template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
   <div>
-    <el-form size="middle" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="status === 'audit' || status === 'taskFormDetail'"
+    <!--<el-form size="middle" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="status === 'audit' || status === 'taskFormDetail'"
              label-width="120px" @submit.native.prevent>
 
       <el-divider content-position="left"><i class="el-icon-document"></i> 基础信息</el-divider>
@@ -167,7 +167,7 @@
             <vxe-table-column field="userName" title="报销人" :edit-render="{}" :rules="[{required: true, message:'请选择报销人', trigger:'blur'}]">
               <template v-slot:edit="scope">
                 <el-input v-model="scope.row.userName" @focus="userPullListForm(scope.$rowIndex)"></el-input>
-                <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
+                &lt;!&ndash;              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>&ndash;&gt;
               </template>
             </vxe-table-column>
             <vxe-table-column field="deptName" title="报销部门" :edit-render="{}">
@@ -187,7 +187,7 @@
             </vxe-table-column>
             <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">
               <template v-slot:edit="scope">
-<!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
+&lt;!&ndash;                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>&ndash;&gt;
                 <el-input :readonly="true" v-model="scope.row.reportNumber"></el-input>
 
               </template>
@@ -248,7 +248,7 @@
             <vxe-table-column field="userName" title="报销人" :edit-render="{}" :rules="[{required: true, message:'请选择报销人', trigger:'blur'}]">
               <template v-slot:edit="scope">
                 <el-input v-model="scope.row.userName" @focus="userPullListForm2(scope.$rowIndex)"></el-input>
-                <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
+                &lt;!&ndash;              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>&ndash;&gt;
               </template>
             </vxe-table-column>
             <vxe-table-column field="deptName" title="报销部门" :edit-render="{}">
@@ -266,11 +266,11 @@
                 <el-input v-model="scope.row.contractName" @focus="openContractForm(scope.$rowIndex, scope.row)"></el-input>
               </template>
             </vxe-table-column>
-            <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-            <!--              <template v-slot:edit="scope">-->
-            <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-            <!--              </template>-->
-            <!--            </vxe-table-column>-->
+            &lt;!&ndash;            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">&ndash;&gt;
+            &lt;!&ndash;              <template v-slot:edit="scope">&ndash;&gt;
+            &lt;!&ndash;                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>&ndash;&gt;
+            &lt;!&ndash;              </template>&ndash;&gt;
+            &lt;!&ndash;            </vxe-table-column>&ndash;&gt;
             <vxe-table-column field="number" title="费用(元)" :edit-render="{}" :rules="[{required: true, message:'请输入费用', trigger:'blur'}]">
               <template v-slot:edit="scope">
                 <el-input maxlength="15" v-model="scope.row.number" @keyup.native="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
@@ -326,7 +326,7 @@
             <vxe-table-column field="userName" title="报销人" :edit-render="{}" :rules="[{required: true, message:'请选择报销人', trigger:'blur'}]">
               <template v-slot:edit="scope">
                 <el-input v-model="scope.row.userName" @focus="userPullListForm3(scope.$rowIndex)"></el-input>
-                <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
+                &lt;!&ndash;              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>&ndash;&gt;
               </template>
             </vxe-table-column>
             <vxe-table-column field="deptName" title="报销部门" :edit-render="{}">
@@ -404,7 +404,7 @@
             <vxe-table-column field="userName" title="报销人" :edit-render="{}" :rules="[{required: true, message:'请选择报销人', trigger:'blur'}]">
               <template v-slot:edit="scope">
                 <el-input v-model="scope.row.userName" @focus="userPullListForm4(scope.$rowIndex)"></el-input>
-                <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
+                &lt;!&ndash;              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>&ndash;&gt;
               </template>
             </vxe-table-column>
             <vxe-table-column field="deptName" title="报销部门" :edit-render="{}">
@@ -422,11 +422,11 @@
                 <el-input v-model="scope.row.projectName" @focus="openProgramPageForm4(scope.$rowIndex, scope.row)"></el-input>
               </template>
             </vxe-table-column>
-            <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-            <!--              <template v-slot:edit="scope">-->
-            <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-            <!--              </template>-->
-            <!--            </vxe-table-column>-->
+            &lt;!&ndash;            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">&ndash;&gt;
+            &lt;!&ndash;              <template v-slot:edit="scope">&ndash;&gt;
+            &lt;!&ndash;                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>&ndash;&gt;
+            &lt;!&ndash;              </template>&ndash;&gt;
+            &lt;!&ndash;            </vxe-table-column>&ndash;&gt;
             <vxe-table-column field="number" title="费用(元)" :edit-render="{}" :rules="[{required: true, message:'请输入费用', trigger:'blur'}]">
               <template v-slot:edit="scope">
                 <el-input maxlength="15" v-model="scope.row.number" @keyup.native="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
@@ -482,7 +482,7 @@
             <vxe-table-column field="userName" title="报销人" :edit-render="{}" :rules="[{required: true, message:'请选择报销人', trigger:'blur'}]">
               <template v-slot:edit="scope">
                 <el-input v-model="scope.row.userName" @focus="userPullListForm5(scope.$rowIndex)"></el-input>
-                <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
+                &lt;!&ndash;              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>&ndash;&gt;
               </template>
             </vxe-table-column>
             <vxe-table-column field="deptName" title="报销部门" :edit-render="{}">
@@ -500,11 +500,11 @@
                 <el-input v-model="scope.row.projectName" @focus="openProgramPageForm5(scope.$rowIndex, scope.row)"></el-input>
               </template>
             </vxe-table-column>
-            <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-            <!--              <template v-slot:edit="scope">-->
-            <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-            <!--              </template>-->
-            <!--            </vxe-table-column>-->
+            &lt;!&ndash;            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">&ndash;&gt;
+            &lt;!&ndash;              <template v-slot:edit="scope">&ndash;&gt;
+            &lt;!&ndash;                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>&ndash;&gt;
+            &lt;!&ndash;              </template>&ndash;&gt;
+            &lt;!&ndash;            </vxe-table-column>&ndash;&gt;
             <vxe-table-column field="number" title="费用(元)" :edit-render="{}" :rules="[{required: true, message:'请输入费用', trigger:'blur'}]">
               <template v-slot:edit="scope">
                 <el-input maxlength="15" v-model="scope.row.number" @keyup.native="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
@@ -589,23 +589,23 @@
 
 
     </el-form>
-    <!-- 附件 -->
+    &lt;!&ndash; 附件 &ndash;&gt;
     <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
 
-    <!--      <ProgramPageForm ref="programPageForm" @getProgram="getProgram"></ProgramPageForm>-->
+    &lt;!&ndash;      <ProgramPageForm ref="programPageForm" @getProgram="getProgram"></ProgramPageForm>&ndash;&gt;
     <ProgramPageForm ref="programPageForm" @getProgram="getProgram"></ProgramPageForm>
     <ProgramPageForm ref="programPageForm3" @getProgram="getProgram3"></ProgramPageForm>
     <ProgramPageForm ref="programPageForm4" @getProgram="getProgram4"></ProgramPageForm>
     <ProgramPageForm ref="programPageForm5" @getProgram="getProgram5"></ProgramPageForm>
 
-    <!--      <ReimbursementTypePullForm ref="reimbursementTypePullForm" @getProgramForType="getProgramForType"></ReimbursementTypePullForm>-->
+    &lt;!&ndash;      <ReimbursementTypePullForm ref="reimbursementTypePullForm" @getProgramForType="getProgramForType"></ReimbursementTypePullForm>&ndash;&gt;
     <ReimbursementTypePullForm ref="cwReimbursementTypePullForm" @getProgramForType="getProgramForType"></ReimbursementTypePullForm>
     <ReimbursementTypePullForm ref="cwReimbursementTypePullForm2" @getProgramForType="getProgramForType2"></ReimbursementTypePullForm>
     <ReimbursementTypePullForm ref="cwReimbursementTypePullForm3" @getProgramForType="getProgramForType3"></ReimbursementTypePullForm>
     <ReimbursementTypePullForm ref="cwReimbursementTypePullForm4" @getProgramForType="getProgramForType4"></ReimbursementTypePullForm>
     <ReimbursementTypePullForm ref="cwReimbursementTypePullForm5" @getProgramForType="getProgramForType5"></ReimbursementTypePullForm>
 
-    <!--      <UserPullForm ref="userPullForm" @getProgramForUser="getProgramForUser"></UserPullForm>-->
+    &lt;!&ndash;      <UserPullForm ref="userPullForm" @getProgramForUser="getProgramForUser"></UserPullForm>&ndash;&gt;
     <UserPullForm ref="userPullForm" @getProgramForUser="getProgramForUser"></UserPullForm>
     <UserPullForm ref="userPullForm2" @getProgramForUser="getProgramForUser2"></UserPullForm>
     <UserPullForm ref="userPullForm3" @getProgramForUser="getProgramForUser3"></UserPullForm>
@@ -615,12 +615,12 @@
     <WorkContractChooseCom ref="workContractChooseCom" @getContract="getContract"></WorkContractChooseCom>
     <PurchaseChooseForm  ref="purchaseChooseForm" @getProject="getPurChoose"></PurchaseChooseForm>
     <MaterialManagementDialog ref="materialManagementDialog" @getUpload="getUpload"></MaterialManagementDialog>
-    <ProjectListForm ref="projectListForm"></ProjectListForm>
+    <ProjectListForm ref="projectListForm"></ProjectListForm>-->
   </div>
 </template>
 
 <script>
-  import CommonApi from '@/api/cw/common/CommonApi'
+  /*import CommonApi from '@/api/cw/common/CommonApi'
   import ReimbursementApprovalTypeService from '@/api/cw/reimbursementApproval/ReimbursementApprovalTypeService'
   import ReimbursementService from '@/api/sys/ReimbursementService'
   import ReimbursementTypeService from '@/api/sys/ReimbursementTypeService'
@@ -637,7 +637,7 @@
   import PurchaseChooseForm from '@/views/materialManagement/wareHouse/PurchaseChooseForm'
   import MaterialManagementService from '@/api/materialManagement/MaterialManagementService'
   import MaterialManagementDialog from '@/views/materialManagement/file/MaterialManagementDialog'
-  import ProjectListForm from './ProgramForm'
+  import ProjectListForm from './ProgramForm'*/
   export default {
     data () {
       return {
@@ -700,14 +700,14 @@
         amountKey: ''
       }
     },
-    reimbursementApprovalTypeService: null,
+    /*reimbursementApprovalTypeService: null,
     reimbursementService: null,
     reimbursementTypeService: null,
     userService: null,
     commonApi: null,
-    materialManagementService: null,
+    materialManagementService: null,*/
     created () {
-      this.reimbursementApprovalTypeService = new ReimbursementApprovalTypeService()
+      /*this.reimbursementApprovalTypeService = new ReimbursementApprovalTypeService()
       this.reimbursementService = new ReimbursementService()
       this.inputForm.userId = this.userId
       this.inputForm.userName = this.name
@@ -716,7 +716,7 @@
       this.userService = new UserService()
       this.commonApi = new CommonApi()
       this.reimbursementTypeService = new ReimbursementTypeService()
-      this.materialManagementService = new MaterialManagementService()
+      this.materialManagementService = new MaterialManagementService()*/
     },
     props: {
       businessId: {
@@ -733,7 +733,7 @@
       }
     },
     components: {
-      UpLoadComponent,
+      /*UpLoadComponent,
       SelectUserTree,
       SelectTree,
       ProgramPageForm,
@@ -742,10 +742,10 @@
       WorkContractChooseCom,
       PurchaseChooseForm,
       MaterialManagementDialog,
-      ProjectListForm
+      ProjectListForm*/
     },
     computed: {
-      bus: {
+      /*bus: {
         get () {
           return this.businessId
         },
@@ -761,10 +761,10 @@
       },
       userId () {
         return JSON.parse(localStorage.getItem('user')).id
-      }
+      }*/
     },
     watch: {
-      'keyWatch': {
+      /*'keyWatch': {
         handler (newVal) {
           if (this.commonJS.isNotEmpty(this.bus)) {
             this.init('', this.bus)
@@ -780,10 +780,10 @@
           this.$emit('changeLoading', newVal)
           this.$refs.uploadComponent.changeLoading(newVal)
         }
-      }
+      }*/
     },
     methods: {
-      getKeyWatch (keyWatch) {
+      /*getKeyWatch (keyWatch) {
         this.keyWatch = keyWatch
       },
       init (method, id) {
@@ -1706,7 +1706,7 @@
       // 查看报销项目
       viewProject (id) {
         this.$refs.projectListForm.init(id)
-      }
+      }*/
     }
   }
 </script>

+ 1 - 1
src/views/reimbursement/type/TypeForm.vue

@@ -3,7 +3,7 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="500px"
       @close="close"
       @keyup.enter.native="doSubmit"

+ 418 - 0
src/views/sys/mould/SerialnumTplForm.vue

@@ -0,0 +1,418 @@
+<template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
+  <div>
+    <el-dialog
+      :title="title"
+      :close-on-click-modal="false"
+	  draggable
+      width="1200px"
+      @close="close()"
+      @keyup.enter.native="doSubmit"
+	  v-model="visible">
+      <el-form size="large" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="method==='view'"
+               label-width="150px">
+        <el-row  :gutter="0">
+          <el-col :span="12">
+            <el-form-item label="模板名称" prop="tplName" :rules="[
+                  {required: true, message:'请输入模板名称', trigger:'blur'}
+                ]">
+              <el-input v-model="inputForm.tplName" placeholder="请输入模板名称"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="公司" prop="companyId"
+                          :rules="[
+                   {required: true, message:'请选择公司', trigger:'blur'}
+                 ]">
+              <SelectTree
+                ref="officeTree"
+                :props="{
+                    value: 'id',             // ID字段名
+                    label: 'name',         // 显示名称
+                    children: 'children'    // 子级字段名
+                  }"
+                :url="`/system-server/sys/office/treeData2?type=1`"
+                :value="inputForm.companyId"
+                :clearable="true"
+                :accordion="true"
+				size="large"
+                @getValue="(value) => {inputForm.companyId=value}"/>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="业务标识" prop="bizCode"
+                          :rules="[
+                      {required: true, message:'请选择业务标识', trigger:'blur'}
+                   ]">
+              <el-select v-model="inputForm.bizCode" placeholder="请选择业务标识" style="width:100%;">
+                <el-option
+                  v-for="item in $dictUtils.getDictList('serial_biztype')"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="起始序列号" prop="serialNum">
+              <el-input v-model="inputForm.serialNum" placeholder="请输入起始序列号"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="序列号长度" prop="serialNumLen"
+                          :rules="[
+                   {required: true, message:'请输入序列号长度', trigger:'blur'}
+                 ]">
+              <el-input v-model="inputForm.serialNumLen" placeholder="请输入序列号长度"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="编号模板" prop="serialTpl"
+                :rules="[
+                  {required: true, message:'请输入编号模板', trigger:'blur'}
+                ]">
+              <el-input v-model="inputForm.serialTpl" :disabled="true" placeholder="请输入编号模板"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="编号示例" prop="serialTplEx"
+                          :rules="[
+                  {required: true, message:'请输入编号示例', trigger:'blur'}
+                ]">
+              <el-input v-model="inputForm.serialTplEx" :disabled="true" placeholder="请输入编号示例"></el-input>
+            </el-form-item>
+          </el-col>
+
+        </el-row>
+
+        <el-row></el-row>
+          <el-form-item style="margin-top: 20px" label="生成编号模板" prop="mouldList">
+            <vxe-toolbar >
+              <template #buttons>
+                <vxe-button status="primary" size="mini" @click="insertEvent">新增</vxe-button>
+              </template>
+            </vxe-toolbar>
+          </el-form-item>
+
+        <vxe-table
+          border
+          show-overflow
+          ref="xTable"
+          class="vxe-table-element"
+          :data="mouldList"
+          :disabled="method==='view'"
+          style="margin-left: 5em"
+          :edit-config="{trigger: 'click', mode: 'row', showStatus: false, autoClear: true, icon: '#'}"
+        >
+
+          <vxe-table-column field="type" title="变量名称" :edit-render="{name: '$select', options: $dictUtils.getDictList('variable_type')}">
+            <template v-slot:edit="scope" >
+              <vxe-select v-model="scope.row.type" @input="variableValue(scope.row, scope.row.type)" transfer>
+                <vxe-option
+                  v-for="item in $dictUtils.getDictList('variable_type')"
+                  :key="item.value"
+                  :value="item.value"
+                  :label="item.label">
+                </vxe-option>
+              </vxe-select>
+            </template>
+          </vxe-table-column>
+          <vxe-table-column field="value" title="变量值" :edit-render="{}">
+            <template v-slot:edit="scope">
+              <el-input :disabled="scope.row.showType" v-model="scope.row.value" ></el-input>
+            </template>
+          </vxe-table-column>
+          <vxe-table-column title="操作" width="100">
+            <template v-slot="scope">
+              <el-button size="mini" type="danger" @click="removeEvent(scope.row,scope.$rowIndex)">删除</el-button>
+            </template>
+          </vxe-table-column>
+        </vxe-table>
+
+      </el-form>
+		<template #footer>
+			<span  class="dialog-footer">
+			  <el-button type="primary" v-if="method != 'view'" @click="generateTemplate()" >生成模板</el-button>
+			  <el-button @click="close()" icon="el-icon-circle-close">关闭</el-button>
+			  <el-button type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
+			</span>
+		</template>
+
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+  import SerialnumTplService from '@/api/sys/SerialnumTplService'
+  import SelectTree from '@/components/treeSelect/treeSelect.vue'
+  export default {
+    data () {
+      return {
+        visable: false,
+        gridData: [],
+        radio: 0,
+        tableData: [],
+        dataList: [],
+        dataListNew: [],
+        title: '',
+        method: '',
+        isSubmit: false,
+        visible: false,
+        loading: false,
+        returnForm: {
+          id: '',
+          tplName: '',
+          companyId: '',
+          bizCode: '',
+          serialNum: '',
+          serialNumLen: '',
+          serialTpl: '',
+          serialTplEx: ''
+        },
+        inputForm: {
+          id: '',
+          tplName: '',
+          companyId: '',
+          bizCode: '',
+          serialNum: '',
+          serialNumLen: '',
+          serialTpl: '',
+          serialTplEx: ''
+        },
+        mouldList: [],
+        mould: {
+          type: '',
+          value: '',
+          showType: false
+        }
+      }
+    },
+    components: {
+      SelectTree
+    },
+    serialnumTplService: null,
+    created () {
+      this.serialnumTplService = new SerialnumTplService()
+    },
+    methods: {
+      init (method, id) {
+        this.method = method
+        this.inputForm = {
+          id: '',
+          tplName: '',
+          companyId: '',
+          bizCode: '',
+          serialNum: '',
+          serialNumLen: '',
+          serialTpl: '',
+          serialTplEx: '',
+          mouldList: [],
+          mould: {
+            type: '',
+            value: ''
+          }
+        }
+        this.inputForm.id = id
+        if (method === 'add') {
+          this.title = `新建基本信息`
+        } else if (method === 'edit') {
+          this.title = '修改基本信息'
+        } else if (method === 'view') {
+          this.showVi = false
+          this.title = '查看基本信息'
+        }
+        this.visible = true
+        this.loading = false
+        this.$nextTick(() => {
+          this.$refs.inputForm.resetFields()
+          if (method === 'edit' || method === 'view') { // 修改或者查看
+            this.loading = true
+            this.serialnumTplService.findById(this.inputForm.id).then((data) => {
+              this.inputForm = data
+            })
+          }
+          this.loading = false
+        })
+      },
+      // 表单提交
+      doSubmit () {
+        this.$refs['inputForm'].validate((valid) => {
+          if (valid) {
+            this.serialnumTplService.save(this.inputForm).then((data) => {
+              this.close()
+              this.$message.success(data)
+              this.$emit('refreshDataList')
+              this.loading = false
+            }).catch(() => {
+              this.loading = false
+            })
+          }
+        })
+      },
+      close () {
+        this.$refs.inputForm.resetFields()
+        this.visible = false
+        this.showVi = true
+        this.mouldList = []
+      },
+      // 排序
+      sortChangeHandle (column) {
+        this.orders = []
+        if (column.order != null) {
+          this.orders.push({column: this.$utils.toLine(column.prop), asc: column.order === 'ascending'})
+        }
+        this.refreshList()
+      },
+      deleteMsgById (row, index) {
+        this.dataListNew.splice(index, 1)
+        if (row.id !== null && row.id !== '' && row.id !== undefined) {
+          this.ossService.deleteMsgById(row.id)
+        }
+      },
+      tableRowClassName ({row, rowIndex}) {
+        row.index = rowIndex
+      },
+      handleRadioChange (val) {
+        if (val) {
+          this.radio = val.index
+        }
+      },
+      // 点击修改
+      dbclickFun (cell) {
+        this.onedit = false
+      },
+      // 新增
+      async insertEvent () {
+        if (this.inputForm.companyId === undefined || this.inputForm.companyId === '' || this.inputForm.companyId === null) {
+          this.$message.error('请选择公司信息')
+        } else if (this.inputForm.serialNumLen === undefined || this.inputForm.serialNumLen === '' || this.inputForm.serialNumLen === null) {
+          this.$message.error('请输入序列号长度')
+        } else {
+          await this.$refs.xTable.insert().then((data) => {
+            this.mouldList.push(data)
+          })
+        }
+      },
+      // 删除
+      removeEvent (row, rowIndex) {
+        this.$refs.xTable.remove(row)
+        this.mouldList.splice(rowIndex, 1)
+      },
+      // 变量值处理
+      variableValue (row, type) {
+        if (type === '1' || type === '2' || type === '11') {
+          row.value = ''
+          row.showType = true
+        }
+        if (type === '3' || type === '4' || type === '5' || type === '6') {
+          row.showType = false
+        }
+        if (type === '7') {
+          row.value = new Date().getFullYear()
+          row.showType = true
+        }
+        if (type === '8') {
+          let len = this.inputForm.serialNumLen
+          let s = '0000000000000000'
+          s = s.substring(0, len - 1)
+          row.value = s + '1'
+          row.showType = true
+        }
+        if (type === '9') {
+          row.value = new Date().getMonth() + 1
+          row.showType = true
+        }
+        if (type === '10') {
+          row.value = new Date().getDate()
+          row.showType = true
+        }
+      },
+      // 生成模板
+      generateTemplate () {
+        let list = this.mouldList
+        let i = ''
+        let j = ''
+        list.forEach(obj => {
+          // 公司简称
+          if (obj.type === '1') {
+            i = i + '{spnm}'
+          }
+          // 分公司简称
+          if (obj.type === '2') {
+            i = i + '{brspnm}'
+          }
+          // 固定字符、业务类型、业务类型代码、业务类型的字
+          if (obj.type === '3' || obj.type === '4' || obj.type === '5' || obj.type === '6') {
+            i = i + obj.value
+            j = j + obj.value
+          }
+          // 年度
+          if (obj.type === '7') {
+            i = i + '{year}'
+            j = j + obj.value
+          }
+          // 流水号
+          if (obj.type === '8') {
+            i = i + '{serialNum}'
+            j = j + obj.value
+          }
+          // 月度
+          if (obj.type === '9') {
+            i = i + '{month}'
+            j = j + obj.value
+          }
+          // 日期
+          if (obj.type === '10') {
+            i = i + '{day}'
+            j = j + obj.value
+          }
+          // 公司简称
+          if (obj.type === '11') {
+            i = i + '{replacement}'
+          }
+        })
+        this.inputForm.serialTpl = i
+        this.inputForm.serialTplEx = j
+      }
+    }
+  }
+</script>
+
+<style>
+  .tid_40 .vxe-body--column .vxe-cell{
+    padding: 1px;
+    text-align: center;
+  }
+  .tid_40 .vxe-header--row .col--last{
+    text-align: center;
+  }
+  .tid_45 .vxe-body--column .vxe-cell{
+    padding: 1px;
+    text-align: center;
+  }
+  .tid_45 .vxe-header--row .col--last{
+    text-align: center;
+  }
+  .vxe-select--panel {
+    z-index: 9997 !important
+  }
+  .vxe-input--panel.type--date, .vxe-input--panel.type--month, .vxe-input--panel.type--week, .vxe-input--panel.type--year {
+    z-index: 9998 !important
+  }
+</style>
+
+<style scoped>
+  .avatar{
+    height: 100px;
+  }
+  .el-divider__text {
+    font-weight: bold;
+    font-size: 16px;
+  }
+</style>

+ 177 - 0
src/views/sys/mould/SerialnumTplList.vue

@@ -0,0 +1,177 @@
+<template>
+  <div class="page">
+      <el-form :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
+            <!-- 搜索框-->
+         <el-form-item label="模板名称" prop="tplName">
+                <el-input v-model="searchForm.tplName" placeholder="请输入模板名称" clearable></el-input>
+         </el-form-item>
+
+          <el-form-item>
+            <el-button type="primary" @click="refreshList()" icon="el-icon-search">查询</el-button>
+            <el-button @click="resetSearch()" icon="el-icon-refresh-right">重置</el-button>
+          </el-form-item>
+      </el-form>
+
+     <div class="jp-table">
+        <vxe-toolbar :refresh="{query: refreshList}" custom>
+          <template #buttons>
+            <el-button v-if="hasPermission('sys:serialnumTpl:add')" type="primary" icon="el-icon-plus" @click="add()">新建</el-button>
+          </template>
+        </vxe-toolbar>
+        <div class="jp-table-body">
+            <vxe-table
+                border="inner"
+                auto-resize
+                resizable
+                height="auto"
+                :loading="loading"
+                size="small"
+                ref="serialnumTplTable"
+                show-header-overflow
+                show-overflow
+                highlight-hover-row
+                :menu-config="{}"
+                :data="dataList"
+                :checkbox-config="{}">
+                <vxe-column type="seq" width="60" title="序号"></vxe-column>
+                <vxe-column type="checkbox"  width="50px" align="center"></vxe-column>
+                <vxe-column min-width="200px"  title="模板名称" field="tplName" align="center">
+                    <template #default="scope">
+                        <el-link  type="primary" :underline="false" @click="view(scope.row.id)">{{scope.row.tplName}}</el-link>
+                    </template>
+                </vxe-column>
+                <vxe-column min-width="150px"  title="公司名称" field="companyName" align="center"></vxe-column>
+                <vxe-column min-width="100px"  title="业务标识" field="bizCode" align="center">
+                  <template #default="scope">
+                    {{ $dictUtils.getDictLabel("serial_biztype", scope.row.bizCode, '-') }}
+                  </template>
+                </vxe-column>
+                <vxe-column min-width="100px" title="序列号长度" field="serialNumLen" align="center"></vxe-column>
+                <vxe-column min-width="200px" title="编号模板示例" field="serialTplEx" align="center"> </vxe-column>
+
+                <vxe-column title="操作" width="200px" fixed="right" align="center">
+                    <template  #default="scope">
+<!--                      <el-button v-if="hasPermission('sys:serialnumTpl:view')" text type="primary"  @click="view(scope.row.id)">查看</el-button>-->
+                      <el-button v-if="hasPermission('sys:serialnumTpl:edit') " text type="primary"  @click="edit(scope.row.id)">修改</el-button>
+                      <el-button v-if="hasPermission('sys:serialnumTpl:del') " text type="primary"   @click="del(scope.row.id)">删除</el-button>
+                    </template>
+                </vxe-column>
+            </vxe-table>
+          <vxe-pager
+            background
+            size="small"
+            :current-page="tablePage.currentPage"
+            :page-size="tablePage.pageSize"
+            :total="tablePage.total"
+            :page-sizes="[10, 20, 100, 1000, {label: '全量数据', value: 1000000}]"
+            :layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
+            @page-change="currentChangeHandle">
+          </vxe-pager>
+        </div>
+     </div>
+        <!-- 弹窗, 新增 / 修改 -->
+    <SerialnumTplForm  ref="serialnumTplForm" @refreshDataList="refreshList"></SerialnumTplForm>
+  </div>
+</template>
+
+<script>
+  import SerialnumTplForm from './SerialnumTplForm'
+  import SerialnumTplService from '@/api/sys/SerialnumTplService'
+  export default {
+    data () {
+      return {
+        visible: false,
+        searchForm: {
+          tplName: ''
+        },
+        dataList: [],
+        tablePage: {
+          total: 0,
+          currentPage: 1,
+          pageSize: 10,
+          orders: []
+        },
+        loading: false
+      }
+    },
+    serialnumTplService: null,
+    created () {
+      this.serialnumTplService = new SerialnumTplService()
+    },
+    components: {
+      SerialnumTplForm
+    },
+    activated () {
+      this.refreshList()
+    },
+
+    methods: {
+      // 获取数据列表
+      refreshList () {
+        this.loading = true
+        this.serialnumTplService.list({
+          'current': this.tablePage.currentPage,
+          'size': this.tablePage.pageSize,
+          'orders': this.tablePage.orders,
+          'itemType': '1',
+          ...this.searchForm
+        }).then((data) => {
+          this.dataList = data.records
+          this.tablePage.total = data.total
+          this.loading = false
+        })
+      },
+      // 当前页
+      currentChangeHandle ({currentPage, pageSize}) {
+        this.tablePage.currentPage = currentPage
+        this.tablePage.pageSize = pageSize
+        this.refreshList()
+      },
+      // 排序
+      sortChangeHandle (column) {
+        this.tablePage.orders = []
+        if (column.order != null) {
+          this.tablePage.orders.push({column: this.$utils.toLine(column.property), asc: column.order === 'asc'})
+        }
+        this.refreshList()
+      },
+      // 新增
+      add () {
+        this.$refs.serialnumTplForm.init('add', '')
+      },
+      // 修改
+      edit (id) {
+        id = id || this.$refs.serialnumTplTable.getCheckboxRecords().map(item => {
+          return item.id
+        })[0]
+        this.$refs.serialnumTplForm.init('edit', id)
+      },
+      // 查看
+      view (id) {
+        this.$refs.serialnumTplForm.init('view', id)
+      },
+      // 删除
+      del (id) {
+        let ids = id || this.$refs.serialnumTplTable.getCheckboxRecords().map(item => {
+          return item.id
+        }).join(',')
+        this.$confirm(`确定删除所选项吗?`, '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.loading = true
+          this.serialnumTplService.remove(ids).then((data) => {
+            this.$message.success(data)
+            this.refreshList()
+            this.loading = false
+          })
+        })
+      },
+      resetSearch () {
+        this.$refs.searchForm.resetFields()
+        this.refreshList()
+      }
+    }
+  }
+</script>

+ 3 - 3
src/views/utils/treeUserSelect.vue

@@ -1,5 +1,5 @@
 <template>
-  <el-select :value="valueTitle" :size="size"  :disabled="disabled" :clearable="clearable" :placeholder="placeholderText" @clear="clearHandle">
+  <el-select v-model="valueTitle" :size="size"  :disabled="disabled" :clearable="clearable" :placeholder="placeholderText" @clear="clearHandle">
     <el-option :value="valueTitle"  :label="valueTitle" class="options">
       <el-tree  id="tree-option"
         ref="selectTree"
@@ -63,7 +63,7 @@ export default {
     /* 初始值 */
     label: {
       type: String,
-      default: () => { return null }
+      default: () => { return '' }
     },
     /* 可清空选项 */
     clearable: {
@@ -109,7 +109,7 @@ export default {
       this.$http({
         url: this.url,
         method: 'get'
-      }).then(({data}) => {
+      }).then((data) => {
         this.valueData = data
         this.setTreeList(this.valueData)
         this.$nextTick(() => {

+ 60 - 54
src/views/workClient/WorkClientForm.vue

@@ -3,12 +3,12 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1200px"
       @close="close(),closeXTable()"
       @keyup.enter.native="doSubmit"
-      :visible.sync="visible">
-      <el-form size="middle" :model="inputForm" ref="inputForm" :rules="rules" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="method==='view'"
+	  v-model="visible">
+      <el-form size="large" :model="inputForm" ref="inputForm" :rules="rules" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="method==='view'"
                label-width="150px">
         <el-row  :gutter="0">
           <el-col :span="10">
@@ -29,6 +29,7 @@
                   border="inner"
                   auto-resize
                   resizable
+				  keep-source
                   :row-config="{isHover: true}"
                   :data="gridData"
                   :checkbox-config="{}"
@@ -39,15 +40,17 @@
                   <vxe-column title="" field="entname" ></vxe-column>
                 </vxe-table>
 
-                <el-button type="info" slot="reference" @click="getPopTable" style="width: 100%" plain>查询</el-button>
+				  <template #reference>
+					  <el-button type="info" @click="getPopTable" style="width: 100%" plain>查询</el-button>
+				  </template>
 
               </el-popover>
             <el-form-item>
 
             </el-form-item>
           </el-col>
-          <el-col :span="12">
-            <el-form-item label="归属区域" prop="workClientInfo.areaId"
+          <el-col :span="12" >
+            <el-form-item style="margin-left: 8px" label="归属区域" prop="workClientInfo.areaId"
                           :rules="[
                    {required: true, message:'请选择归属区域', trigger:'blur'}
                  ]">
@@ -58,11 +61,12 @@
                       label: 'name',         // 显示名称
                       children: 'children'    // 子级字段名
                     }"
-                url="/sys/area/treeData"
+                url="/system-server/sys/area/treeData"
                 :value="inputForm.workClientInfo.areaId"
                 :clearable="true"
                 :accordion="true"
                 v-if="visible"
+				size="large"
                 @getValue="(value) => {inputForm.workClientInfo.areaId=value}"/>
             </el-form-item>
           </el-col>
@@ -213,7 +217,7 @@
         <el-form-item label="开票信息" prop="bankInfos">
           <vxe-toolbar>
             <template #buttons>
-              <vxe-button status="primary" :disabled="method==='view'" size="mini" @click="insertEvent('bank')">新增</vxe-button>
+              <vxe-button status="primary" :disabled="method==='view'" size="small" @click="insertEvent('bank')">新增</vxe-button>
             </template>
           </vxe-toolbar>
         </el-form-item>
@@ -224,31 +228,31 @@
           ref="xTable1"
           class="vxe-table-element"
           :data="bankInfos"
+		  keep-source
           style="margin-left: 5em"
           @cell-click="dbclickFun"
           @edit-closed=""
-          highlight-current-row
-          :edit-config="{trigger: 'click', mode: 'row', showStatus: true, autoClear: true}"
+          :edit-config="{trigger: 'click', mode: 'row', showStatus: false, autoClear: true, icon: '#'}"
         >
 
           <vxe-table-column field="ourBank" title="开票银行" :edit-render="{}">
-            <template v-slot:edit="scope" >
+            <template #edit="scope" >
               <el-input maxlength="64" v-model="scope.row.ourBank" ></el-input>
             </template>
           </vxe-table-column>
           <vxe-table-column field="bankNumber" title="开票账号" :edit-render="{}">
-            <template v-slot:edit="scope" >
+            <template #edit="scope" >
               <el-input v-model="scope.row.bankNumber" @blur="checkBankNumber(scope.row)" maxlength="30"></el-input>
             </template>
           </vxe-table-column>
           <vxe-table-column field="remarks" title="备注信息" :edit-render="{}">
-            <template v-slot:edit="scope" >
+            <template #edit="scope" >
               <el-input maxlength="64" v-model="scope.row.remarks" ></el-input>
             </template>
           </vxe-table-column>
           <vxe-table-column title="操作" width="100">
-            <template v-slot="scope">
-              <el-button size="mini" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'bank')">删除</el-button>
+            <template #default="scope">
+              <el-button size="small" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'bank')">删除</el-button>
             </template>
           </vxe-table-column>
         </vxe-table>
@@ -256,7 +260,7 @@
         <el-form-item style="margin-top: 20px" label="联系人信息" prop="linkmanInfos">
           <vxe-toolbar >
             <template #buttons>
-              <vxe-button status="primary" :disabled="method==='view'" size="mini" @click="insertEvent('linkman')">新增</vxe-button>
+              <vxe-button status="primary" :disabled="method==='view'" size="small" @click="insertEvent('linkman')">新增</vxe-button>
             </template>
           </vxe-toolbar>
         </el-form-item>
@@ -268,50 +272,50 @@
           class="vxe-table-element"
           :data="linkmanInfos"
           style="margin-left: 5em"
+		  keep-source
           @cell-click="dbclickFun"
           @edit-closed=""
-          highlight-current-row
-          :edit-config="{trigger: 'click', mode: 'row', showStatus: true, autoClear: true}"
+          :edit-config="{trigger: 'click', mode: 'row', showStatus: false, autoClear: true, icon: '#'}"
         >
 
         <vxe-table-column field="name" title="联系人姓名" :edit-render="{}">
-          <template v-slot:edit="scope">
+          <template #edit="scope">
             <el-input maxlength="10" v-model="scope.row.name" ></el-input>
           </template>
         </vxe-table-column>
         <vxe-table-column field="office" title="部门" :edit-render="{}">
-          <template v-slot:edit="scope">
+          <template #edit="scope">
             <el-input maxlength="10" v-model="scope.row.office" ></el-input>
           </template>
         </vxe-table-column>
         <vxe-table-column field="position" title="职务" :edit-render="{}">
-          <template v-slot:edit="scope">
+          <template #edit="scope">
             <el-input maxlength="10" v-model="scope.row.position" ></el-input>
           </template>
         </vxe-table-column>
         <vxe-table-column field="qq" title="QQ" :edit-render="{}">
-          <template v-slot:edit="scope">
+          <template #edit="scope">
             <el-input v-model="scope.row.qq" ></el-input>
           </template>
         </vxe-table-column>
         <vxe-table-column field="linkPhone" title="联系方式1" :edit-render="{}">
-          <template v-slot:edit="scope">
+          <template #edit="scope">
             <el-input v-model="scope.row.linkPhone"  maxlength="20"></el-input>
           </template>
         </vxe-table-column>
         <vxe-table-column field="linkMobile" title="联系方式2" :edit-render="{}">
-          <template v-slot:edit="scope">
+          <template #edit="scope">
             <el-input v-model="scope.row.linkMobile"  maxlength="20"></el-input>
           </template>
         </vxe-table-column>
         <vxe-table-column field="email" title="E-mail" :edit-render="{}">
-          <template v-slot:edit="scope">
+          <template #edit="scope">
             <el-input v-model="scope.row.email"  maxlength="64"></el-input>
           </template>
         </vxe-table-column>
         <vxe-table-column title="操作" width="100">
-          <template v-slot="scope">
-            <el-button size="mini" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'linkman')">删除</el-button>
+          <template #default="scope">
+            <el-button size="small" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'linkman')">删除</el-button>
           </template>
         </vxe-table-column>
         </vxe-table>
@@ -319,15 +323,17 @@
         <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
       </el-form>
 
-      <el-image-viewer
-        v-if="showViewer"
-        :on-close="closeViewer"
-        :url-list="[url]"
-        zIndex="9999"/>
-      <span slot="footer" class="dialog-footer">
-      <el-button size="small" @click="close(),closeXTable()" icon="el-icon-circle-close">关闭</el-button>
-      <el-button size="small" type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick >确定</el-button>
-    </span>
+<!--      <el-image-viewer-->
+<!--        v-if="showViewer"-->
+<!--        :on-close="closeViewer"-->
+<!--        :url-list="[url]"-->
+<!--        zIndex="9999"/>-->
+		<template #footer>
+			<span class="dialog-footer">
+      <el-button  @click="close(),closeXTable()" icon="el-icon-circle-close">关闭</el-button>
+      <el-button  type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick >确定</el-button>
+			</span>
+		</template>
     </el-dialog>
   </div>
 </template>
@@ -337,7 +343,7 @@
   import SelectTree from '@/components/treeSelect/treeSelect.vue'
   import UpLoadComponent from '@/views/common/UpLoadComponent'
   import OSSSerive from '@/api/sys/OSSService'
-  import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
+  // import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
   export default {
     data () {
       let checkUscCode = (rule, value, callback) => {
@@ -476,7 +482,7 @@
       }
     },
     components: {
-      ElImageViewer,
+      // ElImageViewer,
       SelectTree,
       UpLoadComponent
     },
@@ -493,7 +499,7 @@
         let value = this.inputForm.workClientInfo.name
         if (value !== null && value !== undefined && value !== '') {
           this.workClientService.isExist(value).then((data) => {
-            if (data.data !== 0) {
+            if (data !== 0) {
               this.$message.error('该客户名称已存在')
             }
           })
@@ -503,7 +509,7 @@
         let value = this.inputForm.workClientInfo.uscCode
         if (value !== null && value !== undefined && value !== '') {
           this.workClientService.isExist(value).then((data) => {
-            if (data.data !== 0) {
+            if (data !== 0) {
               this.$message.error('该统一社会信用代码已存在')
             }
           })
@@ -512,7 +518,7 @@
       haveUscCode (value, callback) {
         if (!this.commonJS.isEmpty(value)) {
           this.workClientService.haveUscCode(this.inputForm.id, value).then((data) => {
-            if (!data.data) {
+            if (!data) {
               callback(new Error('该统一社会信用代码已存在'))
             } else {
               callback()
@@ -525,7 +531,7 @@
       haveWorkClient (value, callback) {
         if (!this.commonJS.isEmpty(value)) {
           this.workClientService.haveWorkClient(this.inputForm.id, value).then((data) => {
-            if (!data.data) {
+            if (!data) {
               callback(new Error('该客户名称已存在'))
             } else {
               callback()
@@ -543,7 +549,7 @@
       async init (method, id) {
         this.dataList = []
         this.dataListNew = []
-        await this.ossService.findFileList(id).then(({data}) => {
+        await this.ossService.findFileList(id).then((data) => {
           data.forEach((item) => {
             item.name = item.attachmentName
             this.dataList.push(item)
@@ -641,7 +647,7 @@
           this.$refs.inputForm.resetFields()
           if (method === 'edit' || method === 'view') { // 修改或者查看
             this.loading = true
-            this.workClientService.findById(this.inputForm.id).then(({data}) => {
+            this.workClientService.findById(this.inputForm.id).then((data) => {
               // this.inputForm = this.recover(this.inputForm, data)
               data.workClientBank.forEach(i => {
                 this.bankInfos.push(i)
@@ -675,7 +681,7 @@
       doSubmit () {
         if (!this.commonJS.isEmpty(this.inputForm.workClientInfo.uscCode)) {
           this.workClientService.haveUscCode(this.inputForm.id, this.inputForm.workClientInfo.uscCode).then((data) => {
-            if (!data.data) {
+            if (!data) {
               this.$message.error('该统一社会信用代码已存在')
             }
           })
@@ -685,7 +691,7 @@
         }
         if (!this.commonJS.isEmpty(this.inputForm.workClientInfo.name)) {
           this.workClientService.haveWorkClient(this.inputForm.id, this.inputForm.workClientInfo.name).then((data) => {
-            if (!data.data) {
+            if (!data) {
               this.$message.error('该客户名称已存在')
             }
           })
@@ -799,7 +805,7 @@
 
             this.inputForm.workClientInfo.deputy = this.inputForm.workClientInfo.deputyList.join(',')
 
-            this.workClientService.save(this.inputForm).then(({data}) => {
+            this.workClientService.save(this.inputForm).then((data) => {
               this.close()
               this.$message.success(data)
               this.$emit('refreshDataList')
@@ -890,7 +896,7 @@
       },
       // 点击修改
       dbclickFun (cell) {
-        this.onedit = false
+        // this.onedit = false
       },
       // 删除
       removeEvent (row, rowIndex, type) {
@@ -929,20 +935,20 @@
       async rowClick (event) {
         let id = this.gridData[event.rowIndex].companyid
         await this.workClientService.enterpriseTicketInfo(id).then((data) => {
-          this.inputForm.workClientInfo.name = data.data.ENTNAME
-          this.inputForm.workClientInfo.uscCode = data.data.UNCID
-          this.inputForm.workClientInfo.registerAddress = data.data.OPLOC
+          this.inputForm.workClientInfo.name = data.ENTNAME
+          this.inputForm.workClientInfo.uscCode = data.UNCID
+          this.inputForm.workClientInfo.registerAddress = data.OPLOC
         })
         this.visable = false
       },
       async getPopTable () {
         let name = this.inputForm.workClientInfo.name
         if (name !== null && name !== undefined && name !== '') {
-          await this.workClientService.enterpriseSearchByName(name).then(({data}) => {
-            this.gridData = data.data.items
+          await this.workClientService.enterpriseSearchByName(name).then((data) => {
+            this.gridData = data.items
           })
         }
-        this.$refs.pops.updatePopper()
+        // this.$refs.pops.updatePopper()
       },
       closePop () {
         this.visable = false

+ 43 - 49
src/views/workClient/WorkClientList.vue

@@ -1,9 +1,9 @@
 <template>
   <div class="page">
-      <el-form size="small" :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
+      <el-form :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
             <!-- 搜索框-->
          <el-form-item label="客户名称" prop="name">
-                <el-input size="small" v-model="searchForm.name" placeholder="请输入客户名称" clearable></el-input>
+                <el-input v-model="searchForm.name" placeholder="请输入客户名称" clearable></el-input>
          </el-form-item>
 
         <el-form-item  label="客户性质" prop="companyType">
@@ -26,11 +26,11 @@
                       children: 'children'    // 子级字段名
                     }"
             placeholder="请选择所在区域"
-            size="small"
-            url="/sys/area/treeData"
+            url="/system-server/sys/area/treeData"
             :value="searchForm.areaId"
             :clearable="true"
             :accordion="true"
+			size="default"
             @getValue="(value) => {searchForm.areaId=value}"/>
         </el-form-item>
 
@@ -68,11 +68,11 @@
         </el-form-item>
 
         <el-form-item v-if="showHideItem" label="统一社会信用代码" prop="uscCode">
-          <el-input size="small" v-model="searchForm.uscCode" placeholder="请输入统一社会信用代码" clearable></el-input>
+          <el-input v-model="searchForm.uscCode" placeholder="请输入统一社会信用代码" clearable></el-input>
         </el-form-item>
 
-        <el-form-item v-if="showHideItem" label="创建人" prop="createBy">
-          <UserSelect :limit='1' :readonly="true" :userName="applyUserName" @getValue='(value, label) => {searchForm.createBy = value,applyUserName  = label}'></UserSelect>
+        <el-form-item v-if="showHideItem" label="创建人" prop="createById">
+          <UserSelect :limit='1' :readonly="true" :userName="applyUserName" @getValue='(value, label) => {searchForm.createById = value,applyUserName  = label}'></UserSelect>
         </el-form-item>
 
 <!--        <el-form-item label="代表方" prop="deputy">-->
@@ -87,20 +87,20 @@
 <!--        </el-form-item>-->
 
           <el-form-item>
-            <el-button type="default" @click="showHide" size="small" :icon="showHideIcon">{{showHideName}}</el-button>
-            <el-button type="primary" @click="refreshList()" size="small" icon="el-icon-search">查询</el-button>
-            <el-button @click="resetSearch()" size="small" icon="el-icon-refresh-right">重置</el-button>
+            <el-button type="default" @click="showHide"  :icon="showHideIcon">{{showHideName}}</el-button>
+            <el-button type="primary" @click="refreshList()"  icon="el-icon-search">查询</el-button>
+            <el-button @click="resetSearch()"  icon="el-icon-refresh-right">重置</el-button>
           </el-form-item>
       </el-form>
 
-     <div class="bg-white top">
-        <vxe-toolbar :refresh="{query: refreshList}" import export print custom>
+     <div class="jp-table">
+        <vxe-toolbar ref="toolbarRef" :refresh="{query: refreshList}" custom>
           <template #buttons>
-            <el-button v-if="hasPermission('sys:project:add')" type="primary" size="small" icon="el-icon-plus" @click="add()">新建</el-button>
-            <el-button v-if="hasPermission('sys:project:del')" type="danger"   size="small" icon="el-icon-delete" @click="del()" :disabled="$refs.workClientTable && $refs.workClientTable.getCheckboxRecords().length === 0" plain>删除</el-button>
+            <el-button v-if="hasPermission('sys:project:add')" type="primary"  icon="el-icon-plus" @click="add()">新建</el-button>
+            <el-button v-if="hasPermission('sys:project:del')" type="danger"   icon="el-icon-delete" @click="del()" :disabled="$refs.workClientTable && $refs.workClientTable.getCheckboxRecords().length === 0" plain>删除</el-button>
           </template>
         </vxe-toolbar>
-        <div style="height: calc(100% - 80px);">
+        <div class="jp-table-body">
             <vxe-table
                 border="inner"
                 auto-resize
@@ -120,48 +120,34 @@
                 :checkbox-config="{}">
                 <vxe-column type="seq" width="60" title="序号"></vxe-column>
                 <vxe-column type="checkbox"  width="40px"></vxe-column>
-                <vxe-column  title="客户名称" field="name">
-                    <template slot-scope="scope">
+                <vxe-column min-width="200" title="客户名称" field="name" align="center">
+                    <template #default="scope">
                         <el-link  type="primary" :underline="false" v-if="hasPermission('sys:project:edit')" @click="view(scope.row.id)">{{scope.row.name}}</el-link>
                         <el-link  type="primary" :underline="false" v-else-if="hasPermission('sys:project:view')"  @click="view(scope.row.id)">{{scope.row.name}}</el-link>
                         <span v-else>{{scope.row.name}}</span>
                     </template>
                 </vxe-column>
 <!--                <vxe-column width="200px"  title="代表方" field="deputy" ></vxe-column>-->
-                <vxe-column width="100px"  title="客户性质" field="companyType" >
-                  <template slot-scope="scope">
+                <vxe-column min-width="100px"  title="客户性质" field="companyType" align="center">
+                  <template #default="scope">
                     {{ $dictUtils.getDictLabel("customer_nature", scope.row.companyType, '-') }}
                   </template>
                 </vxe-column>
-                <vxe-column width="100px"  title="客户行业" field="companyIndustry" >
-                  <template slot-scope="scope">
+                <vxe-column min-width="100px"  title="客户行业" field="companyIndustry" align="center">
+                  <template #default="scope">
                     {{ $dictUtils.getDictLabel("industry", scope.row.companyIndustry, '-') }}
                   </template>
                 </vxe-column>
-                <vxe-column width="100px" title="所在地区" field="areaId" >
-                  <SelectTree
-                    ref="areaTree"
-                    :props="{
-                    value: 'areaId',             // ID字段名
-                    label: 'name',         // 显示名称
-                    children: 'children'    // 子级字段名
-                  }"
-                    url="/sys/area/treeData"
-                    :value="scope.row.areaId"
-                    :clearable="true"
-                    :accordion="true"
-                    v-if="visible"
-                    @getValue="(value) => {scope.row.areaId=value}"/>
-                </vxe-column>
-                <vxe-column width="150px" title="统一社会信用代码" field="uscCode" > </vxe-column>
-                <vxe-column width="80px" title="创建人" field="createBy" > </vxe-column>
-                <vxe-column width="100px" title="创建时间" field="createDate" > </vxe-column>
+                <vxe-column min-width="100px" title="所在地区" field="areaId" align="center"></vxe-column>
+                <vxe-column min-width="150px" title="统一社会信用代码" field="uscCode" align="center"> </vxe-column>
+                <vxe-column min-width="80px" title="创建人" field="createById" align="center"> </vxe-column>
+                <vxe-column min-width="100px" title="创建时间" field="createTime" align="center"> </vxe-column>
 
-                <vxe-column title="操作" width="200px" fixed="right" align="center">
-                    <template  slot-scope="scope">
-                      <el-button v-if="hasPermission('sys:work_client:view')" type="text" icon="el-icon-view" size="small" @click="view(scope.row.id)">查看</el-button>
-                      <el-button v-if="hasPermission('sys:work_client:edit') && scope.row.createFlag === '1'" type="text" icon="el-icon-edit" size="small" @click="edit(scope.row.id)">修改</el-button>
-                      <el-button v-if="hasPermission('sys:work_client:del')  && scope.row.createFlag === '1'" type="text"  icon="el-icon-delete" size="small" @click="del(scope.row.id)">删除</el-button>
+                <vxe-column title="操作" width="120px" fixed="right" align="center">
+                    <template  #default="scope">
+<!--                      <el-button v-if="hasPermission('sys:work_client:view')" text type="primary" icon="el-icon-view" @click="view(scope.row.id)">查看</el-button>-->
+                      <el-button v-if="hasPermission('sys:work_client:edit') && scope.row.createFlag === '1'" text type="primary"   @click="edit(scope.row.id)">修改</el-button>
+                      <el-button v-if="hasPermission('sys:work_client:del')  && scope.row.createFlag === '1'" text type="primary"    @click="del(scope.row.id)">删除</el-button>
                     </template>
                 </vxe-column>
             </vxe-table>
@@ -204,7 +190,7 @@
           companyIndustry: '',
           clientType: '',
           uscCode: '',
-          createBy: '',
+          createById: '',
           deputy: ''
         },
         dataList: [],
@@ -230,7 +216,15 @@
     activated () {
       this.refreshList()
     },
-
+	  mounted() {
+		  this.$nextTick(() => {
+			  // 将表格和工具栏进行关联
+			  const $table = this.$refs.workClientTable;
+			  const $toolbar = this.$refs.toolbarRef;
+			  $table.connect($toolbar);
+		  });
+		  this.refreshList();
+	  },
     methods: {
       showHide () {
         if (this.showHideItem === false) {
@@ -252,7 +246,7 @@
           'orders': this.tablePage.orders,
           'itemType': '1',
           ...this.searchForm
-        }).then(({data}) => {
+        }).then((data) => {
           this.dataList = data.records
           this.tablePage.total = data.total
           this.loading = false
@@ -298,7 +292,7 @@
           type: 'warning'
         }).then(() => {
           this.loading = true
-          this.workClientService.remove(ids).then(({data}) => {
+          this.workClientService.remove(ids).then((data) => {
             if (data.success) {
               this.$message.success(data.message)
               this.refreshList()
@@ -317,7 +311,7 @@
         formBody.append('file', file)
         this.loading = true
         this.workClientService.importExcel(formBody).then(result => {
-          this.$message.success(result.data)
+          this.$message.success(result)
           this.refreshList()
         }).catch(() => {
           this.refreshList()

+ 1 - 1
src/views/workContract/InputNumber.vue

@@ -171,7 +171,7 @@
   }
 </script>
 <style lang="scss" scoped>
-  // 取消element原有的input框样式
+  /*// 取消element原有的input框样式*/
   ::v-deep .el-input--mini .el-input__inner {
     border: 0px;
     margin: 0;

+ 8 - 9
src/views/workContract/WorkContractBorrowForm.vue

@@ -1,6 +1,6 @@
 <template>
 <div>
-  <el-form size="middle" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="method==='view'"
+  <el-form size="large" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="method==='view'"
            label-width="150px">
     <el-row  :gutter="0">
       <el-col :span="12">
@@ -35,7 +35,7 @@
             style="width: 100%"
             :disabled="this.inputForm.borrowType === '2'"
             v-model="inputForm.borrowData"
-            value-format="yyyy-MM-dd"
+            value-format="YYYY-MM-DD"
             placeholder="选择日期">
           </el-date-picker>
         </el-form-item>
@@ -49,7 +49,7 @@
             style="width: 100%"
             :disabled="this.inputForm.borrowType === '2'"
             v-model="inputForm.borrowRetData"
-            value-format="yyyy-MM-dd"
+            value-format="YYYY-MM-DD"
             placeholder="选择日期">
           </el-date-picker>
         </el-form-item>
@@ -131,7 +131,7 @@
     },
     computed: {
       userName () {
-        return JSON.parse(localStorage.getItem('user')).name
+        return this.$store.state.user.name
       }
     },
     methods: {
@@ -140,11 +140,10 @@
           this.loading = true
           this.inputForm.id = id
           this.$nextTick(() => {
-            console.log('id', id)
             this.$refs.inputForm.resetFields()
-            this.workContractBorrowService.findById(this.inputForm.id).then(({data}) => {
+            this.workContractBorrowService.findById(this.inputForm.id).then((data) => {
               if (this.commonJS.isEmpty(data.id)) {
-                this.workContractService.findById(this.inputForm.id).then(({data}) => {
+                this.workContractService.findById(this.inputForm.id).then((data) => {
                   this.inputForm = this.recover(this.inputForm, data)
                   this.inputForm.borrowName = this.userName
                   this.inputForm.borrowData = new Date()
@@ -169,7 +168,7 @@
             this.inputForm.contractInfoId = id
             this.inputForm.borrowType = '2'
             console.log('dosubmit', this.inputForm)
-            this.workContractBorrowService.save(this.inputForm).then(({data}) => {
+            this.workContractBorrowService.save(this.inputForm).then((data) => {
               callback(data.businessTable, data.businessId, this.inputForm)
               this.$refs.inputForm.resetFields()
               this.loading = false
@@ -184,7 +183,7 @@
       agreeForm (callback) {
         this.inputForm.borrowType = '5'
         this.workContractBorrowService.updateStatusById(this.inputForm).then(() => {
-          this.workContractBorrowService.updateMessageStatusById(this.inputForm).then(({data}) => {
+          this.workContractBorrowService.updateMessageStatusById(this.inputForm).then((data) => {
             callback(data.businessTable, data.businessId, this.inputForm)
             this.$refs.inputForm.resetFields()
             this.loading = false

+ 5 - 5
src/views/workContract/WorkContractBorrowMessageForm.vue

@@ -2,10 +2,10 @@
   <el-dialog
     :title="title"
     :close-on-click-modal="false"
-    v-dialogDrag
+	draggable
     width="1200px"
     @close="close()"
-    :visible.sync="visible">
+    v-model="visible">
   <div class="page">
       <el-form size="small" :inline="true" @submit.native.prevent>
         <div style="height: calc(100% - 80px);">
@@ -29,14 +29,14 @@
                 <vxe-column width="300px" title="合同名称" field="name"></vxe-column>
                 <vxe-column width="100px" title="借用人" field="borrowName" ></vxe-column>
                 <vxe-column width="100px" title="借用状态" field="borrowType" >
-                  <template slot-scope="scope">
+                  <template #default="scope">
                     {{ $dictUtils.getDictLabel("borrow_type", scope.row.borrowType, '-') }}
                   </template>
                 </vxe-column>
                 <vxe-column width="200px" title="借用时间" field="borrowData" ></vxe-column>
                 <vxe-column width="200px" title="大概归还时间" field="borrowRetData" ></vxe-column>
                 <vxe-column width="200px" title="实际归还时间" field="retData">
-                  <template slot-scope="scope">
+                  <template #default="scope">
                     {{getRetData(scope.row.retData)}}
                   </template>
                 </vxe-column>
@@ -69,7 +69,7 @@
         this.loading = true
         this.visible = true
         this.title = '合同借用详情'
-        this.workContractBorrowService.findMessageList(id).then(({data}) => {
+        this.workContractBorrowService.findMessageList(id).then((data) => {
           this.dataList = data
           this.loading = false
         })

+ 3 - 3
src/views/workContract/WorkContractChooseCom.vue

@@ -3,13 +3,13 @@
     <el-dialog
       title="选择合同"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1300px"
       height="500px"
       @close="close"
       append-to-body
       @keyup.enter.native=""
-      :visible.sync="visible">
+      v-model="visible">
       <div style="height: calc(100% - 80px);">
         <el-form size="small" :inline="true" class="query-form" ref="searchForm" :model="searchForm" @submit.native.prevent>
           <!-- 搜索框-->
@@ -148,7 +148,7 @@
           'size': this.tablePage.pageSize,
           'orders': this.tablePage.orders,
           ...this.searchForm
-        }).then(({data}) => {
+        }).then((data) => {
           this.dataList = data.records
           this.tablePage.total = data.total
           this.loading = false

+ 34 - 34
src/views/workContract/WorkContractFileForm.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-form size="middle" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="formReadOnly"
+    <el-form size="large" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="formReadOnly"
              label-width="150px">
       <el-row  :gutter="0">
         <el-col :span="12">
@@ -9,7 +9,7 @@
                 {required: true, message:'请输入客户名称', trigger:'change'}
               ]">
             <work-client-select
-              :size="'medium'"
+				size="large"
               :value="inputForm.clientId"
               :disabled="method==='view'"
               @getValue='(clientId,clientName) => {inputForm.clientId=clientId;inputForm.clientName=clientName}'
@@ -38,7 +38,7 @@
                ]">
             <el-date-picker
               placement="bottom-start"
-              value-format="yyyy-MM-dd"
+              value-format="YYYY-MM-DD"
               v-model="inputForm.contractDate"
               style="width: 100%"
               placeholder="选择日期">
@@ -50,7 +50,7 @@
           <el-form-item label="合同生效日期" prop="effectiveDate">
             <el-date-picker
               placement="bottom-start"
-              value-format="yyyy-MM-dd"
+              value-format="YYYY-MM-DD"
               v-model="inputForm.effectiveDate"
               style="width: 100%"
               placeholder="选择日期">
@@ -63,7 +63,7 @@
             <el-date-picker
               @change="checkData"
               placement="bottom-start"
-              value-format="yyyy-MM-dd"
+              value-format="YYYY-MM-DD"
               v-model="inputForm.closingDate"
               style="width: 100%"
               placeholder="选择日期">
@@ -158,13 +158,13 @@
 
         <el-col :span="12">
           <el-form-item label="归档人" prop="fileCreateName">
-            <el-input :disabled="true" v-model="this.userName"></el-input>
+            <el-input :disabled="true" v-model="userName"></el-input>
           </el-form-item>
         </el-col>
       </el-row>
     </el-form>
 
-    <el-form size="middle" :model="inputForm" ref="inputForm2" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="status !== 'audit'"
+    <el-form size="large" :model="inputForm" ref="inputForm2" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="status !== 'audit'"
              label-width="150px">
     <el-row v-if="this.inputForm.filedType === '2'">
       <el-col :span="12">
@@ -184,11 +184,11 @@
       </el-col>
     </el-row>
     </el-form>
-    <el-image-viewer
-      v-if="showViewer"
-      :on-close="closeViewer"
-      :url-list="[url]"
-      zIndex="9999"/>
+<!--    <el-image-viewer-->
+<!--      v-if="showViewer"-->
+<!--      :on-close="closeViewer"-->
+<!--      :url-list="[url]"-->
+<!--      zIndex="9999"/>-->
     <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
   </div>
 </template>
@@ -199,7 +199,7 @@
   import WorkContractFileService from '@/api/sys/WorkContractFileService'
   import WorkClientService from '@/api/sys/WorkClientService'
   import WorkClientSelect from '@/components/workClientInfoSelect'
-  import UserService from '@/api/sys/UserService'
+  import userService from '@/api/sys/userService'
   import OSSSerive, {
     httpRequest,
     toHref,
@@ -208,7 +208,7 @@
     fileName
   } from '@/api/sys/OSSService'
   import moment from 'moment'
-  import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
+  // import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
   export default {
     data () {
       return {
@@ -301,26 +301,26 @@
       }
     },
     components: {
-      ElImageViewer,
+      // ElImageViewer,
       UpLoadComponent,
       WorkClientSelect
     },
     computed: {
       userName () {
-        return JSON.parse(localStorage.getItem('user')).name
+        return this.$store.state.user.name
       }
     },
     ossService: null,
     workContractService: null,
     workContractFileService: null,
     workClientService: null,
-    userService: null,
+    // userService: null,
     created () {
       this.ossService = new OSSSerive()
       this.workContractService = new WorkContractService()
       this.workContractFileService = new WorkContractFileService()
       this.workClientService = new WorkClientService()
-      this.userService = new UserService()
+      // this.userService = new UserService()
     },
     mounted () {
       window.onPreview = this.onPreview
@@ -423,10 +423,10 @@
           this.$refs.inputForm.resetFields()
           if (method === 'edit' || method === 'view') { // 修改或者查看
             this.loading = true
-            await this.workContractService.findById(this.inputForm.id).then(async ({data}) => {
+            await this.workContractService.findById(this.inputForm.id).then(async (data) => {
               if (this.commonJS.isEmpty(data.id)) {
-                this.workContractFileService.findById(this.inputForm.id).then(({data}) => {
-                  this.workContractService.findById(data.contractInfoId).then(async ({data}) => {
+                this.workContractFileService.findById(this.inputForm.id).then((data) => {
+                  this.workContractService.findById(data.contractInfoId).then(async (data) => {
                     await this.saveData(data)
                     if (this.formReadOnly) {
                       method = 'view'
@@ -487,13 +487,13 @@
         }
         this.$refs.inputForm.resetFields()
         this.loading = false
-        this.businessId = ''
+        // this.businessId = ''
         callback()
       },
       startForm (callback) {
         this.loading = true
         if (this.commonJS.isNotEmpty(this.inputForm.contractFileId)) {
-          this.workContractFileService.findById(this.inputForm.contractFileId).then(({data}) => {
+          this.workContractFileService.findById(this.inputForm.contractFileId).then((data) => {
             if (this.commonJS.isNotEmpty(data.filedType) && data.filedType !== '0' && data.filedType !== '1' && data.filedType !== '3') { // 审核状态不是“未发起”或“暂存”或“撤回”,就弹出提示
               this.loading = false
               this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
@@ -518,17 +518,17 @@
         this.workContractService.save(this.inputForm)
         this.inputForm.filedType = '2'
         this.inputForm.contractInfoId = id
-        this.workContractFileService.save(this.inputForm).then(({data}) => {
+        this.workContractFileService.save(this.inputForm).then((data) => {
           this.inputForm.contractFileId = data.businessId
           callback(data.businessTable, data.businessId, this.inputForm)
           this.$refs.inputForm.resetFields()
           this.loading = false
-          this.businessId = ''
+          // this.businessId = ''
         })
       },
       reapplyForm (callback) {
         this.loading = true
-        this.workContractFileService.findById(this.inputForm.contractFileId).then(({data}) => {
+        this.workContractFileService.findById(this.inputForm.contractFileId).then((data) => {
           if (data.filedType !== '4') { // 审核状态不是“驳回”,就弹出提示
             this.loading = false
             this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
@@ -543,7 +543,7 @@
         this.loading = true
         this.$refs['inputForm2'].validate(async (valid) => {
           if (valid) {
-            await this.workContractFileService.findById(this.inputForm.contractFileId).then(({data}) => {
+            await this.workContractFileService.findById(this.inputForm.contractFileId).then((data) => {
               if (data.filedType !== '2') { // status的值不等于“审核中”,就弹出提示
                 this.loading = false
                 this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
@@ -564,11 +564,11 @@
                 this.inputForm.filedType = '5'
                 this.workContractService.save(this.inputForm)
                 this.inputForm.contractInfoId = id
-                this.workContractFileService.save(this.inputForm).then(({data}) => {
+                this.workContractFileService.save(this.inputForm).then((data) => {
                   callback(data.businessTable, data.businessId, this.inputForm)
                   this.$refs.inputForm.resetFields()
                   this.loading = false
-                  this.businessId = ''
+                  // this.businessId = ''
                 })
               }
             })
@@ -604,7 +604,7 @@
         this.inputForm.clientName = ''
         this.visible = false
         this.showVi = true
-        this.businessId = ''
+        // this.businessId = ''
         this.$refs.uploadComponent.clearUpload()
       },
       httpRequest (file) {
@@ -710,13 +710,13 @@
         let id = this.gridData[event.rowIndex].id
         this.inputForm.clientId = id
         await this.workClientService.findById(id).then((data) => {
-          this.inputForm.clientName = data.data.workClientInfo.name
+          this.inputForm.clientName = data.workClientInfo.name
         })
         this.visable = false
       },
       async getPopTable () {
         let name = this.inputForm.clientName
-        await this.workClientService.list(name).then(({data}) => {
+        await this.workClientService.list(name).then((data) => {
           this.gridData = data.records
         })
         this.$refs.pops.updatePopper()
@@ -780,7 +780,7 @@
           throw new Error()
         } else {
           if (type === 'reject' || type === 'reback') {
-            this.workContractFileService.findById(this.inputForm.contractFileId).then(({data}) => {
+            this.workContractFileService.findById(this.inputForm.contractFileId).then((data) => {
               if (data.filedType !== '2') { // status的值不等于“审核中”,就弹出提示
                 this.loading = false
                 this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
@@ -808,7 +808,7 @@
               }
             })
           } else if (type === 'hold') {
-            this.workContractFileService.findById(this.inputForm.contractFileId).then(({data}) => {
+            this.workContractFileService.findById(this.inputForm.contractFileId).then((data) => {
               if (data.filedType !== '4') { // status的值不等于“驳回”就弹出提示
                 this.loading = false
                 this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')

+ 30 - 26
src/views/workContract/WorkContractForm.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-form size="middle" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="formReadOnly"
+    <el-form size="large" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="formReadOnly"
              label-width="150px">
       <el-row  :gutter="0">
         <el-col :span="12">
@@ -9,7 +9,7 @@
                 {required: true, message:'请输入客户名称', trigger:'change'}
               ]">
             <work-client-select
-              :size="'medium'"
+              size="large"
               :value="inputForm.clientId"
               :disabled="method==='view'"
               @getValue='(clientId,clientName) => {inputForm.clientId=clientId;inputForm.clientName=clientName}'
@@ -38,7 +38,7 @@
                ]">
             <el-date-picker
               placement="bottom-start"
-              value-format="yyyy-MM-dd"
+              value-format="YYYY-MM-DD"
               v-model="inputForm.contractDate"
               style="width: 100%"
               placeholder="选择日期">
@@ -50,7 +50,7 @@
           <el-form-item label="合同生效日期" prop="effectiveDate">
             <el-date-picker
               placement="bottom-start"
-              value-format="yyyy-MM-dd"
+              value-format="YYYY-MM-DD"
               v-model="inputForm.effectiveDate"
               style="width: 100%"
               placeholder="选择日期">
@@ -63,7 +63,7 @@
             <el-date-picker
               @change="checkData"
               placement="bottom-start"
-              value-format="yyyy-MM-dd"
+              value-format="YYYY-MM-DD"
               v-model="inputForm.closingDate"
               style="width: 100%"
               placeholder="选择日期">
@@ -150,11 +150,11 @@
       </el-form-item>
 
       </el-form>
-      <el-image-viewer
-        v-if="showViewer"
-        :on-close="closeViewer"
-        :url-list="[url]"
-        zIndex="9999"/>
+<!--      <el-image-viewer-->
+<!--        v-if="showViewer"-->
+<!--        :on-close="closeViewer"-->
+<!--        :url-list="[url]"-->
+<!--        zIndex="9999"/>-->
     <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
   </div>
 </template>
@@ -172,7 +172,8 @@
     fileName
   } from '@/api/sys/OSSService'
   import moment from 'moment'
-  import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
+  import { shallowRef } from 'vue'
+  // import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
   export default {
     data () {
       return {
@@ -254,9 +255,11 @@
       }
     },
     components: {
-      ElImageViewer,
-      UpLoadComponent,
-      WorkClientSelect
+      // ElImageViewer,
+      // UpLoadComponent: shallowRef(UpLoadComponent),
+      // WorkClientSelect: shallowRef(WorkClientSelect),
+		UpLoadComponent,
+		WorkClientSelect
     },
     ossService: null,
     workContractService: null,
@@ -362,7 +365,7 @@
           this.$refs.inputForm.resetFields()
           if (method === 'edit' || method === 'view') { // 修改或者查看
             this.loading = true
-            this.workContractService.findById(this.inputForm.id).then(({data}) => {
+            this.workContractService.findById(this.inputForm.id).then((data) => {
               this.inputForm = this.recover(this.inputForm, data)
               const f = []
               if (data.fees !== null && data.fees !== undefined && data.fees !== '') {
@@ -389,7 +392,7 @@
         this.inputForm.workAttachmentList = this.$refs.uploadComponent.getDataList()
         this.inputForm.fees = this.inputForm.contractFees.join(',')
         this.inputForm.status = '1'
-        await this.workContractService.save(this.inputForm).then(({data}) => {
+        await this.workContractService.save(this.inputForm).then((data) => {
           callback()
           this.$refs.inputForm.resetFields()
           this.loading = false
@@ -401,7 +404,7 @@
       startForm (callback) {
         this.loading = true
         if (this.commonJS.isNotEmpty(this.inputForm.id)) {
-          this.workContractService.findById(this.inputForm.id).then(({data}) => {
+          this.workContractService.findById(this.inputForm.id).then((data) => {
             if (this.commonJS.isNotEmpty(data.status) && data.status !== '0' && data.status !== '1' && data.status !== '3') { // 审核状态不是“未发起”或“暂存”或“撤回”,就弹出提示
               this.loading = false
               this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
@@ -422,7 +425,7 @@
             this.inputForm.workAttachmentList = this.$refs.uploadComponent.getDataList()
             this.inputForm.status = '2'
             this.inputForm.fees = this.inputForm.contractFees.join(',')
-            await this.workContractService.save(this.inputForm).then(({data}) => {
+            await this.workContractService.save(this.inputForm).then((data) => {
               this.inputForm.id = data.businessId
               callback(data.businessTable, data.businessId, this.inputForm)
               this.$refs.inputForm.resetFields()
@@ -438,7 +441,7 @@
       },
       reapplyForm (callback) {
         this.loading = true
-        this.workContractService.findById(this.inputForm.id).then(({data}) => {
+        this.workContractService.findById(this.inputForm.id).then((data) => {
           if (data.status !== '4') { // 审核状态不是“驳回”,就弹出提示
             this.loading = false
             this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
@@ -453,7 +456,7 @@
         this.loading = true
         this.$refs['inputForm'].validate(async (valid) => {
           if (valid) {
-            await this.workContractService.findById(this.inputForm.id).then(({data}) => {
+            await this.workContractService.findById(this.inputForm.id).then((data) => {
               if (data.status !== '2') { // status的值不等于“审核中”,就弹出提示
                 this.loading = false
                 this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
@@ -463,7 +466,7 @@
                 this.inputForm.workAttachmentList = this.$refs.uploadComponent.getDataList()
                 this.inputForm.status = '5'
                 this.inputForm.fees = this.inputForm.contractFees.join(',')
-                this.workContractService.save(this.inputForm).then(({data}) => {
+                this.workContractService.save(this.inputForm).then((data) => {
                   callback(data.businessTable, data.businessId, this.inputForm)
                   this.$refs.inputForm.resetFields()
                   this.loading = false
@@ -588,13 +591,13 @@
         let id = this.gridData[event.rowIndex].id
         this.inputForm.clientId = id
         await this.workClientService.findById(id).then((data) => {
-          this.inputForm.clientName = data.data.workClientInfo.name
+          this.inputForm.clientName = data.workClientInfo.name
         })
         this.visable = false
       },
       async getPopTable () {
         let name = this.inputForm.clientName
-        await this.workClientService.list(name).then(({data}) => {
+        await this.workClientService.list(name).then((data) => {
           this.gridData = data.records
         })
         this.$refs.pops.updatePopper()
@@ -627,7 +630,7 @@
           throw new Error()
         } else {
           if (type === 'reject' || type === 'reback') {
-            this.workContractService.findById(this.inputForm.id).then(({data}) => {
+            this.workContractService.findById(this.inputForm.id).then((data) => {
               if (data.status !== '2') { // status的值不等于“审核中”,就弹出提示
                 this.loading = false
                 this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
@@ -648,14 +651,15 @@
                 if (type === 'reject' || type === 'reback') {
                   let param = {status: this.inputForm.status, id: this.inputForm.id}
                   this.workContractService.updateStatusById(param).then(() => {
+					  callback()
                     this.loading = false
-                    callback()
+
                   })
                 }
               }
             })
           } else if (type === 'hold') {
-            this.workContractService.findById(this.inputForm.id).then(({data}) => {
+            this.workContractService.findById(this.inputForm.id).then((data) => {
               if (data.status !== '4') { // status的值不等于“驳回”就弹出提示
                 this.loading = false
                 this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')

+ 27 - 24
src/views/workContract/WorkContractForm2.vue

@@ -3,12 +3,12 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="1200px"
       @close="close(),closeXTable()"
       @keyup.enter.native="doSubmit"
-      :visible.sync="visible">
-        <el-form size="middle" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="method==='view'"
+      v-model="visible">
+        <el-form size="large" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="method==='view'"
            label-width="150px">
 
           <el-row  :gutter="0">
@@ -18,7 +18,7 @@
                 {required: true, message:'请输入客户名称', trigger:'change'}
               ]">
                 <work-client-select
-                  :size="'medium'"
+                  size="large"
                   :value="inputForm.clientId"
                   :disabled="method==='view'"
                   @getValue='(clientId,clientName) => {inputForm.clientId=clientId;inputForm.clientName=clientName}'
@@ -38,7 +38,7 @@
 
           </el-row>
 
-          <el-row  :gutter="15">
+          <el-row  :gutter="0">
 
             <el-col :span="12">
               <el-form-item label="签订日期" prop="contractDate"
@@ -47,7 +47,7 @@
                    ]">
                 <el-date-picker
                   v-model="inputForm.contractDate"
-                  value-format="yyyy-MM-dd"
+                  value-format="YYYY-MM-DD"
                   style="width: 418px"
                   placeholder="选择日期">
                 </el-date-picker>
@@ -58,7 +58,7 @@
               <el-form-item label="合同生效日期" prop="effectiveDate">
                 <el-date-picker
                   v-model="inputForm.effectiveDate"
-                  value-format="yyyy-MM-dd"
+                  value-format="YYYY-MM-DD"
                   style="width: 418px"
                   placeholder="选择日期">
                 </el-date-picker>
@@ -69,7 +69,7 @@
               <el-form-item label="合同终止日期" prop="closingDate">
                 <el-date-picker
                   @change="checkData"
-                  value-format="yyyy-MM-dd"
+                  value-format="YYYY-MM-DD"
                   v-model="inputForm.closingDate"
                   style="width: 418px"
                   placeholder="选择日期">
@@ -154,15 +154,17 @@
           </el-form>
       <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
 
-      <el-image-viewer
-        v-if="showViewer"
-        :on-close="closeViewer"
-        :url-list="[url]"
-        zIndex="9999"/>
-      <span slot="footer" class="dialog-footer">
-      <el-button size="small" @click="close(),closeXTable()" icon="el-icon-circle-close">关闭</el-button>
-      <el-button size="small" type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick >确定</el-button>
-    </span>
+<!--      <el-image-viewer-->
+<!--        v-if="showViewer"-->
+<!--        :on-close="closeViewer"-->
+<!--        :url-list="[url]"-->
+<!--        zIndex="9999"/>-->
+		<template #footer>
+			<span class="dialog-footer">
+			  <el-button @click="close(),closeXTable()" icon="el-icon-circle-close">关闭</el-button>
+			  <el-button type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick >确定</el-button>
+			</span>
+		</template>
     </el-dialog>
   </div>
 </template>
@@ -180,7 +182,7 @@
     fileName
   } from '@/api/sys/OSSService'
   import moment from 'moment'
-  import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
+  // import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
   export default {
     data () {
       return {
@@ -250,7 +252,7 @@
       }
     },
     components: {
-      ElImageViewer,
+      // ElImageViewer,
       UpLoadComponent,
       WorkClientSelect
     },
@@ -332,9 +334,10 @@
         this.$nextTick(() => {
           // this.$refs.upload.clearFiles()
           this.$refs.inputForm.resetFields()
+			this.$refs.uploadComponent.clearUpload()
           if (method === 'edit' || method === 'view') { // 修改或者查看
             this.loading = true
-            this.workContractService.findById(this.inputForm.id).then(({data}) => {
+            this.workContractService.findById(this.inputForm.id).then((data) => {
               this.inputForm = this.recover(this.inputForm, data)
               const f = []
               if (data.fees !== null && data.fees !== undefined && data.fees !== '') {
@@ -371,7 +374,7 @@
               this.inputForm.workAttachmentList.push(item)
             })
 
-            this.workContractService.save(this.inputForm).then(({data}) => {
+            this.workContractService.save(this.inputForm).then((data) => {
               this.close()
               this.$message.success(data.msg)
               this.$emit('refreshDataList')
@@ -474,15 +477,15 @@
       async rowClick (event) {
         let id = this.gridData[event.rowIndex].companyid
         await this.workClientService.enterpriseTicketInfo(id).then((data) => {
-          this.inputForm.clientName = data.data.ENTNAME
-          this.inputForm.clientId = data.data.COMPANYID
+          this.inputForm.clientName = data.ENTNAME
+          this.inputForm.clientId = data.COMPANYID
         })
         this.visable = false
       },
       async getPopTable () {
         let name = this.inputForm.clientName
         if (name !== null && name !== undefined && name !== '') {
-          await this.workClientService.enterpriseSearchByName(name).then(({data}) => {
+          await this.workClientService.enterpriseSearchByName(name).then((data) => {
             this.gridData = data.data.items
           })
         }

+ 114 - 117
src/views/workContract/WorkContractList.vue

@@ -1,13 +1,13 @@
 <template>
   <div class="page">
-      <el-form size="small" :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
+      <el-form :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
        <!-- 搜索框-->
        <el-form-item label="客户名称" prop="clientName">
-              <el-input size="small" v-model="searchForm.clientName" placeholder="请输入客户名称" clearable></el-input>
+              <el-input v-model="searchForm.clientName" placeholder="请输入客户名称" clearable></el-input>
        </el-form-item>
 
         <el-form-item label="合同名称" prop="name">
-          <el-input size="small" v-model="searchForm.name" placeholder="请输入合同名称" clearable></el-input>
+          <el-input  v-model="searchForm.name" placeholder="请输入合同名称" clearable></el-input>
         </el-form-item>
 
         <el-form-item v-if="showHideItem" label="签订日期" prop="contractDates">
@@ -48,24 +48,24 @@
         </el-form-item>
 
         <el-form-item v-if="showHideItem" label="创建人" prop="createBy">
-          <UserSelect :limit='1' :readonly="true" :userName="applyUserName" @getValue='(value, label) => {searchForm.createBy = value,applyUserName  = label}'></UserSelect>
+          <UserSelect :limit='1' :readonly="true" size="default" :userName="applyUserName" @getValue='(value, label) => {searchForm.createBy = value,applyUserName  = label}'></UserSelect>
         </el-form-item>
 
         <el-form-item>
-          <el-button type="default" @click="showHide" size="small" :icon="showHideIcon">{{showHideName}}</el-button>
-          <el-button type="primary" @click="refreshList()" size="small" icon="el-icon-search">查询</el-button>
-          <el-button @click="resetSearch()" size="small" icon="el-icon-refresh-right">重置</el-button>
+          <el-button type="default" @click="showHide" :icon="showHideIcon">{{showHideName}}</el-button>
+          <el-button type="primary" @click="refreshList()" icon="el-icon-search">查询</el-button>
+          <el-button @click="resetSearch()" icon="el-icon-refresh-right">重置</el-button>
         </el-form-item>
       </el-form>
 
-     <div class="bg-white top">
-        <vxe-toolbar :refresh="{query: refreshList}" import export print custom>
+     <div class="jp-table">
+        <vxe-toolbar ref="toolbarRef" :refresh="{query: refreshList}" custom>
           <template #buttons>
-            <el-button v-if="hasPermission('sys:project:add')" type="primary" size="small" icon="el-icon-plus" @click="add()">新建</el-button>
-            <el-button v-if="hasPermission('sys:project:del')" type="danger"   size="small" icon="el-icon-delete" @click="del()" plain>删除</el-button>
-          </template>
+            <el-button v-if="hasPermission('sys:project:add')" type="primary" icon="el-icon-plus" @click="add()">新建</el-button>
+			<el-button v-if="hasPermission('sys:project:del')" type="danger"   icon="el-icon-delete" @click="del()" :disabled="$refs.workContractTable && $refs.workContractTable.getCheckboxRecords().length === 0" plain>删除</el-button>
+		  </template>
         </vxe-toolbar>
-        <div style="height: calc(100% - 80px);">
+        <div class="jp-table-body">
             <vxe-table
                 border="inner"
                 auto-resize
@@ -86,77 +86,77 @@
                 <vxe-column type="seq" width="60" title="序号"></vxe-column>
                 <vxe-column type="checkbox" width="40px"></vxe-column>
 
-                <vxe-column width="200px" title="合同编号" field="no"></vxe-column>
-                <vxe-column width="200px" title="合同名称" field="name">
-                  <template slot-scope="scope">
+                <vxe-column min-width="200px" title="合同编号" field="no" align="center"></vxe-column>
+                <vxe-column min-width="200px" title="合同名称" field="name" align="center">
+                  <template #default="scope">
                     <el-link  type="primary" :underline="false" v-if="hasPermission('sys:workContract:edit')" @click="view(scope.row.id)">{{scope.row.name}}</el-link>
                     <el-link  type="primary" :underline="false" v-else-if="hasPermission('sys:workContract:view')" @click="view(scope.row.id)">{{scope.row.name}}</el-link>
                     <span v-else>{{scope.row.name}}</span>
                   </template>
                 </vxe-column>
-                <vxe-column width="100px" title="案卷号" field="filedNo" >
-                  <template slot-scope="scope">
+                <vxe-column min-width="100px" title="案卷号" field="filedNo" align="center">
+                  <template #default="scope">
                     <el-link  type="primary" :underline="false" v-if="hasPermission('sys:workContract:edit')" @click="view(scope.row.id)">{{scope.row.filedNo}}</el-link>
                     <el-link  type="primary" :underline="false" v-else-if="hasPermission('sys:workContract:view')" @click="view(scope.row.id)">{{scope.row.filedNo}}</el-link>
                     <span v-else>{{scope.row.filedNo}}</span>
                   </template>
                 </vxe-column>
-                <vxe-column width="200px" title="客户名称" field="clientName" >
-                  <template slot-scope="scope">
+                <vxe-column min-width="200px" title="客户名称" field="clientName" align="center">
+                  <template #default="scope">
                     <el-link  type="primary" :underline="false" v-if="hasPermission('sys:work_client:edit')" @click="viewInfo(scope.row.clientId)">{{scope.row.clientName}}</el-link>
                     <el-link  type="primary" :underline="false" v-else-if="hasPermission('sys:work_client:view')" @click="viewInfo(scope.row.clientId)">{{scope.row.clientName}}</el-link>
                     <span v-else>{{scope.row.clientName}}</span>
                   </template>
                 </vxe-column>
-                <vxe-column width="100px" title="合同金额(元)" field="contractAmount"></vxe-column>
-                <vxe-column width="100px" title="创建人" field="createBy"></vxe-column>
-                <vxe-column width="150px" title="签订日期" field="contractDate"></vxe-column>
-                <vxe-column  width="120px" title="登记状态" field="status" fixed="right" align="center">
-                  <template slot-scope="scope">
-                    <el-button  type="text" @click="detail(scope.row)" :type="$dictUtils.getDictLabel('approval_type_status', scope.row.status, '-')" effect="dark" size="mini">{{$dictUtils.getDictLabel("approval_type", scope.row.status, '-')}} </el-button>
+                <vxe-column min-width="100px" title="合同金额(元)" field="contractAmount" align="center"></vxe-column>
+                <vxe-column min-width="100px" title="创建人" field="createById" align="center"></vxe-column>
+                <vxe-column min-width="150px" title="签订日期" field="contractDate" align="center"></vxe-column>
+                <vxe-column  min-width="120px" title="登记状态" field="status" fixed="right" align="center">
+                  <template #default="scope">
+                    <el-button @click="detail(scope.row)" :type="$dictUtils.getDictLabel('approval_type_status', scope.row.status, '')" effect="dark" size="small">{{$dictUtils.getDictLabel("approval_type", scope.row.status, '-')}} </el-button>
                   </template>
                 </vxe-column>
-                <vxe-column width="100px"  title="归档状态" field="filedType" fixed="right" align="center">
-                  <template slot-scope="scope">
-                    <el-button  type="text" @click="detailFiled(scope.row)" :type="$dictUtils.getDictLabel('filed_type_status', scope.row.filedType, '-')" effect="dark" size="mini">{{$dictUtils.getDictLabel("filed_type", scope.row.filedType, '未归档')}} </el-button>
+                <vxe-column min-width="100px"  title="归档状态" field="filedType" fixed="right" align="center">
+                  <template #default="scope">
+                    <el-button  @click="detailFiled(scope.row)" :type="$dictUtils.getDictLabel('filed_type_status', scope.row.filedType, '')" effect="dark" size="small">{{$dictUtils.getDictLabel("filed_type", scope.row.filedType, '未归档')}} </el-button>
                   </template>
                 </vxe-column>
 <!--                <vxe-column width="100px"  title="借用状态" field="borrowType" >-->
 <!--                  <template slot-scope="scope">-->
-<!--                    <el-button  type="text" @click="detailBorrow(scope.row)" :type="$dictUtils.getDictLabel('borrow_type_status', scope.row.borrowType, '-')" effect="dark" size="mini">{{$dictUtils.getDictLabel("borrow_type", scope.row.borrowType, '未借用')}} </el-button>-->
+<!--                    <el-button @click="detailBorrow(scope.row)" :type="$dictUtils.getDictLabel('borrow_type_status', scope.row.borrowType, '-')" effect="dark" size="small">{{$dictUtils.getDictLabel("borrow_type", scope.row.borrowType, '未借用')}} </el-button>-->
 <!--                  </template>-->
 <!--                </vxe-column>-->
 
                 <vxe-column title="操作" width="200px" fixed="right" align="center">
-                    <template  slot-scope="scope">
-                      <el-button v-if="hasPermission('sys:workContract:view')" type="text" size="small" @click="view(scope.row.id)">查看</el-button>
-                      <el-button v-if="hasPermission('sys:workContract:edit') && scope.row.status !== '2' && scope.row.status !== '5' && scope.row.status !== '4' && scope.row.createId === create" type="text" size="small" @click="edit(scope.row)">修改</el-button>
-                      <el-button v-if="hasPermission('sys:workContract:edit') && scope.row.status === '5' && isAdmin" type="text" size="small" @click="editForm(scope.row.id)">修改</el-button>
-                      <el-button v-if="hasPermission('sys:workContract:del') && (scope.row.status === '1' || scope.row.status === '3' )  && scope.row.createId === create" type="text" size="small" @click="del(scope.row.id)">删除</el-button>
-                      <el-button v-if="hasPermission('sys:workContract:back') && scope.row.status === '2'  && scope.row.createId === create" type="text" size="small" @click="reback(scope.row)">撤回</el-button>
+                    <template  #default="scope">
+<!--                      <el-button v-if="hasPermission('sys:workContract:view')" text type="primary"  @click="view(scope.row.id)">查看</el-button>-->
+                      <el-button v-if="hasPermission('sys:workContract:edit') && scope.row.status !== '2' && scope.row.status !== '5' && scope.row.status !== '4' && scope.row.createId === $store.state.user.id" text type="primary"  @click="edit(scope.row)">修改</el-button>
+                      <el-button v-if="hasPermission('sys:workContract:edit') && scope.row.status === '5' && isAdmin" text type="primary"  @click="editForm(scope.row.id)">修改</el-button>
+                      <el-button v-if="hasPermission('sys:workContract:del') && (scope.row.status === '1' || scope.row.status === '3' )  && scope.row.createId === $store.state.user.id" text type="primary"  @click="del(scope.row.id)">删除</el-button>
+                      <el-button v-if="hasPermission('sys:workContract:back') && scope.row.status === '2'  && scope.row.createId === $store.state.user.id" text type="primary"  @click="reback(scope.row)">撤回</el-button>
     <!--              合同登记  审核-->
-                      <el-button v-if="scope.row.status==='2' && checkIsAudit(scope.row)" type="text"  size="small" @click="examine(scope.row)">登记审核</el-button>
+                      <el-button v-if="scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary"   @click="examine(scope.row)">登记审核</el-button>
     <!--              合同登记  被驳回后当前申请人重新调整-->
-                      <el-button v-if="hasPermission('sys:workContract:edit')&&scope.row.createId === $store.state.user.id&&scope.row.status === '4'" type="text"  size="small" @click="adjust(scope.row)">驳回调整</el-button>
+                      <el-button v-if="hasPermission('sys:workContract:edit')&&scope.row.createId === $store.state.user.id&&scope.row.status === '4'" text type="primary"   @click="adjust(scope.row)">驳回调整</el-button>
 
-                      <el-button v-if="hasPermission('sys:workContract:filed') && scope.row.status === '5' && scope.row.createId === create && (scope.row.filedType === '0' || scope.row.filedType === undefined)" type="text" size="small" @click="filed(scope.row.id)">归档</el-button>
+                      <el-button v-if="hasPermission('sys:workContract:filed') && scope.row.status === '5' && scope.row.createId === $store.state.user.id && (scope.row.filedType === '0' || scope.row.filedType === undefined)" text type="primary"  @click="filed(scope.row.id)">归档</el-button>
                       <!--归档暂存修改-->
-                      <el-button v-if="hasPermission('sys:workContract:filed') && scope.row.status === '5' && scope.row.createId === create && scope.row.filedType === '1'" type="text" size="small" @click="filed(scope.row.id)">修改</el-button>
+                      <el-button v-if="hasPermission('sys:workContract:filed') && scope.row.status === '5' && scope.row.createId === $store.state.user.id && scope.row.filedType === '1'" text type="primary"  @click="filed(scope.row.id)">修改</el-button>
                       <!--归档撤回驳回修改-->
-                      <el-button v-if="hasPermission('sys:workContract:filed') && scope.row.status === '5' && scope.row.createId === create && (scope.row.filedType === '3')" type="text" size="small" @click="filedAndClose(scope.row)">修改</el-button>
+                      <el-button v-if="hasPermission('sys:workContract:filed') && scope.row.status === '5' && scope.row.createId === $store.state.user.id && (scope.row.filedType === '3')" text type="primary"  @click="filedAndClose(scope.row)">修改</el-button>
                       <!--归档撤回-->
-                      <el-button v-if="hasPermission('sys:workContract:back') && scope.row.status === '5' && scope.row.filedType === '2'  && scope.row.createId === create" type="text"  size="small" @click="rebackFiled(scope.row)">撤回</el-button>
+                      <el-button v-if="hasPermission('sys:workContract:back') && scope.row.status === '5' && scope.row.filedType === '2'  && scope.row.createId === $store.state.user.id" text type="primary"   @click="rebackFiled(scope.row)">撤回</el-button>
       <!--              合同归档  审核-->
-                      <el-button v-if="scope.row.filedType==='2' && checkIsAuditFiled(scope.row)" type="text"  size="small" @click="examineFiled(scope.row)">归档审核</el-button>
+                      <el-button v-if="scope.row.filedType==='2' && checkIsAuditFiled(scope.row)" text type="primary"   @click="examineFiled(scope.row)">归档审核</el-button>
       <!--              合同归档  被驳回后当前申请人重新调整-->
-                      <el-button v-if="hasPermission('sys:workContract:edit')&&scope.row.createId === $store.state.user.id&&scope.row.filedType === '4'" type="text"  size="small" @click="adjustFiled(scope.row)">驳回调整</el-button>
+                      <el-button v-if="hasPermission('sys:workContract:edit')&&scope.row.createId === $store.state.user.id&&scope.row.filedType === '4'" text type="primary"   @click="adjustFiled(scope.row)">驳回调整</el-button>
 
                       <!--合同借用-->
-<!--                      <el-button v-if="hasPermission('sys:workContract:borrow') && scope.row.status === '5' && scope.row.filedType === '5' && (scope.row.borrowType === undefined || scope.row.borrowType === '0' || scope.row.borrowType === '1')" type="text" size="small" @click="borrow(scope.row.id)">借用</el-button>-->
+<!--                      <el-button v-if="hasPermission('sys:workContract:borrow') && scope.row.status === '5' && scope.row.filedType === '5' && (scope.row.borrowType === undefined || scope.row.borrowType === '0' || scope.row.borrowType === '1')" type="text"  @click="borrow(scope.row.id)">借用</el-button>-->
 <!--                      &lt;!&ndash;借用撤回&ndash;&gt;-->
-<!--                      <el-button v-if="hasPermission('sys:workContract:back') && scope.row.status === '5' && scope.row.filedType === '5' && scope.row.borrowType === '2'" type="text" size="small" @click="rebackBorrow(scope.row)">撤回</el-button>-->
+<!--                      <el-button v-if="hasPermission('sys:workContract:back') && scope.row.status === '5' && scope.row.filedType === '5' && scope.row.borrowType === '2'" type="text"  @click="rebackBorrow(scope.row)">撤回</el-button>-->
 <!--                      &lt;!&ndash;借用归还&ndash;&gt;-->
-<!--                      <el-button v-if="hasPermission('sys:workContract:reture') && scope.row.status === '5' && scope.row.filedType === '5' && scope.row.borrowType === '5'" type="text" size="small" @click="retureBorrow(scope.row)">归还合同</el-button>-->
+<!--                      <el-button v-if="hasPermission('sys:workContract:reture') && scope.row.status === '5' && scope.row.filedType === '5' && scope.row.borrowType === '5'" type="text"  @click="retureBorrow(scope.row)">归还合同</el-button>-->
                     </template>
                 </vxe-column>
             </vxe-table>
@@ -188,10 +188,10 @@
   import WorkContractFileService from '@/api/sys/WorkContractFileService'
   import WorkContractBorrowService from '@/api/sys/WorkContractBorrowService'
   import SelectUserTree from '@/views/utils/treeUserSelect'
-  import TaskService from '@/api/flowable/TaskService'
-  import ProcessService from '@/api/flowable/ProcessService'
+  import taskService from '@/api/flowable/taskService'
+  import processService from '@/api/flowable/processService'
   import pick from 'lodash.pick'
-  import UserService from '@/api/sys/UserService'
+  import userService from '@/api/sys/userService'
   import UserSelect from '@/components/userSelect'
   export default {
     data () {
@@ -230,16 +230,16 @@
     workContractService: null,
     workContractFileService: null,
     workContractBorrowService: null,
-    taskService: null,
-    processService: null,
-    userService: null,
+    // taskService: null,
+    // processService: null,
+    // userService: null,
     created () {
       this.workContractService = new WorkContractService()
       this.workContractFileService = new WorkContractFileService()
       this.workContractBorrowService = new WorkContractBorrowService()
-      this.taskService = new TaskService()
-      this.processService = new ProcessService()
-      this.userService = new UserService()
+      // this.taskService = new TaskService()
+      // this.processService = new ProcessService()
+      // this.userService = new UserService()
     },
     components: {
       InputNumber,
@@ -255,12 +255,11 @@
     },
     computed: {
       userName () {
-        return JSON.parse(localStorage.getItem('user')).name
+        return this.$store.state.user.name
       },
       user () {
-        this.create = JSON.parse(localStorage.getItem('user')).id
-        console.log('createId', this.create)
-        return JSON.parse(localStorage.getItem('user'))
+        this.create = this.$store.state.user.id
+        return this.$store.state.user
       }
     },
 
@@ -278,7 +277,6 @@
       },
       // 获取数据列表
       refreshList () {
-        console.log('user', this.user)
         this.loading = true
         this.workContractService.list({
           'current': this.tablePage.currentPage,
@@ -286,12 +284,12 @@
           'orders': this.tablePage.orders,
           'itemType': '1',
           ...this.searchForm
-        }).then(({data}) => {
+        }).then((data) => {
           this.dataList = data.records
           this.tablePage.total = data.total
           this.loading = false
         })
-        this.processService.getByName('评估-合同登记').then(({data}) => {
+        processService.getByName('评估-合同登记').then((data) => {
           if (!this.commonJS.isEmpty(data.id)) {
             this.processDefinitionId = data.id
             this.procDefKey = data.key
@@ -320,10 +318,10 @@
       detail (row) {
         // eslint-disable-next-line eqeqeq
         if (!this.commonJS.isEmpty(row.status) && row.status != '1') {
-          this.taskService.getTaskDef({
+          taskService.getTaskDef({
             procInsId: row.procInsId,
             procDefId: row.processDefinitionId
-          }).then(({data}) => {
+          }).then((data) => {
             this.$router.push({
               path: '/flowable/task/TaskFormDetail',
               query: {
@@ -365,7 +363,7 @@
           type: 'warning'
         }).then(() => {
           this.loading = true
-          this.workContractService.remove(ids).then(({data}) => {
+          this.workContractService.remove(ids).then((data) => {
             this.$message.success(data)
             this.refreshList()
             this.loading = false
@@ -381,22 +379,22 @@
         // 读取流程表单
         let tabTitle = `发起流程【评估-合同登记】`
         let processTitle = `${this.userName} 在 ${this.moment(new Date()).format('YYYY-MM-DD HH:mm')} 发起了 [评估-合同登记]`
-        this.taskService.getTaskDef({ procDefId: this.processDefinitionId,
+        taskService.getTaskDef({ procDefId: this.processDefinitionId,
           status: 'startAndHold'}).then((data) => {
             this.$router.push({
               path: '/flowable/task/TaskForm',
               query: {
-                ...pick(data.data, 'formType', 'formUrl', 'procDefKey', 'taskDefKey', 'procInsId', 'procDefId', 'taskId', 'status', 'title'),
+                ...pick(data, 'formType', 'formUrl', 'procDefKey', 'taskDefKey', 'procInsId', 'procDefId', 'taskId', 'status', 'title'),
                 procDefId: this.processDefinitionId,
                 procDefKey: this.procDefKey,
                 status: 'startAndHold',
                 title: tabTitle,
-                formType: data.data.formType,
-                formUrl: data.data.formUrl,
+                formType: data.formType,
+                formUrl: data.formUrl,
                 formTitle: processTitle,
                 businessId: 'false',
                 isShow: false,
-                routePath: '/sys/workContract/WorkContractList'
+                routePath: '/workContract/WorkContractList'
               }
             })
           })
@@ -417,24 +415,24 @@
         } else if (row.status === '4') {
           status = 'reapplyFlag'
         }
-        this.taskService.getTaskDef({ procDefId: this.processDefinitionId,
+        taskService.getTaskDef({ procDefId: this.processDefinitionId,
           businessId: row.id,
           businessTable: 'work_contract_info'}).then((data) => {
             this.$router.push({
               path: '/flowable/task/TaskForm',
               query: {
-                ...pick(data.data, 'formType', 'formUrl', 'procDefKey', 'taskDefKey', 'procInsId', 'procDefId', 'taskId', 'status', 'title'),
+                ...pick(data, 'formType', 'formUrl', 'procDefKey', 'taskDefKey', 'procInsId', 'procDefId', 'taskId', 'status', 'title'),
                 procDefId: this.processDefinitionId,
                 procDefKey: this.procDefKey,
                 title: tabTitle,
-                formType: data.data.formType,
-                formUrl: data.data.formUrl,
+                formType: data.formType,
+                formUrl: data.formUrl,
                 formTitle: processTitle,
                 businessTable: 'work_contract_info',
                 businessId: row.id,
                 isShow: 'false',
                 status: status,
-                routePath: '/sys/workContract/WorkContractList'
+                routePath: '/workContract/WorkContractList'
               }
             })
           })
@@ -460,7 +458,7 @@
       //           businessTable: 'work_contract_info',
       //           businessId: row.id,
       //           isShow: false,
-      //           routePath: '/sys/workContract/WorkContractList'
+      //           routePath: '/workContract/WorkContractList'
       //         }
       //       })
       //     })
@@ -487,7 +485,7 @@
       //         businessTable: 'work_contract_info',
       //         businessId: row.id,
       //         isShow: false,
-      //         routePath: '/sys/workContract/WorkContractList'
+      //         routePath: '/workContract/WorkContractList'
       //       }
       //     })
       //   })
@@ -499,12 +497,12 @@
           cancelButtonText: '取消',
           type: 'warning'
         }).then(async () => {
-          await this.workContractService.findById(row.id).then(({data}) => {
+          await this.workContractService.findById(row.id).then((data) => {
             if (data.status !== '2') { // status的值不等于“审核中”,就弹出提示
               this.$message.error('数据已发生改变或不存在,请刷新数据')
               this.refreshList()
             } else {
-              this.processService.revokeProcIns(row.procInsId).then(async ({data}) => {
+              processService.revokeProcIns(row.procInsId).then(async (data) => {
                 let form = {status: '3', id: row.id}
                 await this.workContractService.updateStatusById(form)
                 this.$message.success(data)
@@ -536,12 +534,12 @@
           cancelButtonText: '取消',
           type: 'warning'
         }).then(async () => {
-          await this.workContractFileService.findByContractInfoId(row.id).then(({data}) => {
+          await this.workContractFileService.findByContractInfoId(row.id).then((data) => {
             if (data.filedType !== '2') { // status的值不等于“审核中”,就弹出提示
               this.$message.error('数据已发生改变或不存在,请刷新数据')
               this.refreshList()
             } else {
-              this.processService.revokeProcIns(data.procInsId).then(async ({data}) => {
+              processService.revokeProcIns(data.procInsId).then(async (data) => {
                 let form = {filedType: '3', id: row.id}
                 await this.workContractFileService.updateStatusById(form)
                 this.$message.success(data)
@@ -606,18 +604,18 @@
         }
       },
       is () {
-        this.userService.is().then(({data}) => {
+        userService.is().then((data) => {
           this.isAdmin = data
         })
       },
       // 归档
       filed (id) {
-        this.processService.getByName('评估-合同归档').then(({data}) => {
+        processService.getByName('评估-合同归档').then((data) => {
           if (!this.commonJS.isEmpty(data.id)) {
             // 读取流程表单
             let tabTitle = `发起流程【评估-合同归档】`
             let processTitle = `${this.userName} 在 ${this.moment(new Date()).format('YYYY-MM-DD HH:mm')} 发起了 [评估-合同归档]`
-            this.taskService.getTaskDef({ procDefId: data.id,
+            taskService.getTaskDef({ procDefId: data.id,
               businessId: id,
               businessTable: 'work_contract_file',
               status: 'startAndHoldFiled'}).then((reture) => {
@@ -629,13 +627,13 @@
                     procDefKey: data.key,
                     status: 'startAndHoldFiled',
                     title: tabTitle,
-                    formType: reture.data.formType,
-                    formUrl: reture.data.formUrl,
+                    formType: reture.formType,
+                    formUrl: reture.formUrl,
                     formTitle: processTitle,
                     businessTable: 'work_contract_file',
                     businessId: id,
                     isShow: false,
-                    routePath: '/sys/workContract/WorkContractList'
+                    routePath: '/workContract/WorkContractList'
                   }
                 })
               })
@@ -659,7 +657,7 @@
             //         businessTable: 'work_contract_file',
             //         businessId: id,
             //         isShow: false,
-            //         routePath: '/sys/workContract/WorkContractList'
+            //         routePath: '/workContract/WorkContractList'
             //       }
             //     })
             //   })
@@ -668,7 +666,7 @@
       },
       // 归档驳回撤回修改
       filedAndClose (row) {
-        this.processService.getByName('评估-合同归档').then(({data}) => {
+        processService.getByName('评估-合同归档').then((data) => {
           if (!this.commonJS.isEmpty(data.id)) {
             // 读取流程表单
             let tabTitle = `发起流程【评估-合同归档】`
@@ -679,7 +677,7 @@
             } else if (row.filedType === '4') {
               status = 'reapplyFlag'
             }
-            this.taskService.getTaskDef({ procDefId: data.id,
+            taskService.getTaskDef({ procDefId: data.id,
               businessId: row.id,
               businessTable: 'work_contract_file'}).then((reture) => {
                 this.$router.push({
@@ -689,14 +687,14 @@
                     procDefId: data.id,
                     procDefKey: data.key,
                     title: tabTitle,
-                    formType: reture.data.formType,
-                    formUrl: reture.data.formUrl,
+                    formType: reture.formType,
+                    formUrl: reture.formUrl,
                     formTitle: processTitle,
                     businessTable: 'work_contract_file',
                     businessId: row.id,
                     isShow: 'false',
                     status: status,
-                    routePath: '/sys/workContract/WorkContractList'
+                    routePath: '/workContract/WorkContractList'
                   }
                 })
               })
@@ -720,7 +718,7 @@
             //         businessTable: 'work_contract_file',
             //         businessId: id,
             //         isShow: false,
-            //         routePath: '/sys/workContract/WorkContractList'
+            //         routePath: '/workContract/WorkContractList'
             //       }
             //     })
             //   })
@@ -730,12 +728,12 @@
       // 归档详情
       detailFiled (row) {
         if (row.filedType !== '4') {
-          this.workContractFileService.findByContractInfoId(row.id).then(({data}) => {
+          this.workContractFileService.findByContractInfoId(row.id).then((data) => {
             if (!this.commonJS.isEmpty(data.id)) {
-              this.taskService.getTaskDef({
+              taskService.getTaskDef({
                 procInsId: data.procInsId,
                 procDefId: data.processDefinitionId
-              }).then(({data}) => {
+              }).then((data) => {
                 this.$router.push({
                   path: '/flowable/task/TaskFormDetail',
                   query: {
@@ -753,12 +751,12 @@
       },
       // 借用
       borrow (id) {
-        this.processService.getByName('评估-合同借用').then(({data}) => {
+        processService.getByName('评估-合同借用').then((data) => {
           if (!this.commonJS.isEmpty(data.id)) {
             // 读取流程表单
             let tabTitle = `发起流程【评估-合同借用】`
             let processTitle = `${this.userName} 在 ${this.moment(new Date()).format('YYYY-MM-DD HH:mm')} 发起了 [评估-合同借用]`
-            this.taskService.getTaskDef({ procDefId: data.id,
+            taskService.getTaskDef({ procDefId: data.id,
               businessId: id,
               businessTable: 'work_contract_borrow',
               status: 'startAndCloseBorrow'}).then((reture) => {
@@ -769,13 +767,13 @@
                     procDefKey: data.key,
                     status: 'startAndCloseBorrow',
                     title: tabTitle,
-                    formType: reture.data.formType,
-                    formUrl: reture.data.formUrl,
+                    formType: reture.formType,
+                    formUrl: reture.formUrl,
                     formTitle: processTitle,
                     businessTable: 'work_contract_borrow',
                     businessId: id,
                     isShow: false,
-                    routePath: '/sys/workContract/WorkContractList'
+                    routePath: '/workContract/WorkContractList'
                   }
                 })
               })
@@ -794,17 +792,16 @@
           taskId: row.taskBorrowId,
           type: 'warning'
         }).then(() => {
-          console.log('datas', row.taskBorrowId)
-          this.taskService.backNodes(row.taskBorrowId).then(({data}) => {
+          taskService.backNodes(row.taskBorrowId).then((data) => {
             let backNodes = data
             if (backNodes.length > 0) {
               let backTaskDefKey = backNodes[0].taskDefKey
-              this.taskService.back({
+              taskService.back({
                 taskId: row.taskBorrowId,
                 backTaskDefKey: backTaskDefKey,
                 isShow: false,
                 ...this.auditForm
-              }).then(({data}) => {
+              }).then((data) => {
                 this.updateStatusById(row, 'rebackBorrow')
                 this.$message.success('回退成功')
               })
@@ -825,7 +822,7 @@
       },
       // 驳回后调整
       adjust (row) {
-        this.workContractService.findById(row.id).then(({data}) => {
+        this.workContractService.findById(row.id).then((data) => {
           if (data.status !== '4') { // status的值不等于“驳回”,就弹出提示
             this.$message.error('数据已发生改变或不存在,请刷新数据')
             this.refreshList()
@@ -836,7 +833,7 @@
       },
       // 审核
       examine (row) {
-        this.workContractService.findById(row.id).then(({data}) => {
+        this.workContractService.findById(row.id).then((data) => {
           if (data.status !== '2') { // status的值不等于“审核中”,就弹出提示
             this.$message.error('数据已发生改变或不存在,请刷新数据')
             this.refreshList()
@@ -848,9 +845,9 @@
       // 审核或重新调整跳转
       todo (row) {
         let cUser = false
-        this.taskService.getTaskDefInfo({
+        taskService.getTaskDefInfo({
           taskId: row.taskId
-        }).then(({data}) => {
+        }).then((data) => {
           this.$router.push({
             path: '/flowable/task/TaskForm',
             query: {
@@ -860,7 +857,7 @@
               formTitle: `${data.taskName}`,
               cUser: cUser,
               title: `审批【${data.taskName || ''}】`,
-              routePath: '/sys/workContract/WorkContractList'   // 数据处理后需要跳转的页面路径
+              routePath: '/workContract/WorkContractList'   // 数据处理后需要跳转的页面路径
             }
           })
         })
@@ -879,7 +876,7 @@
       },
       // 驳回后调整
       adjustFiled (row) {
-        this.workContractFileService.findByContractInfoId(row.id).then(({data}) => {
+        this.workContractFileService.findByContractInfoId(row.id).then((data) => {
           if (data.filedType !== '4') { // status的值不等于“驳回”,就弹出提示
             this.$message.error('数据已发生改变或不存在,请刷新数据')
             this.refreshList()
@@ -890,7 +887,7 @@
       },
       // 审核
       examineFiled (row) {
-        this.workContractFileService.findByContractInfoId(row.id).then(({data}) => {
+        this.workContractFileService.findByContractInfoId(row.id).then((data) => {
           if (data.filedType !== '2') { // status的值不等于“审核中”,就弹出提示
             this.$message.error('数据已发生改变或不存在,请刷新数据')
             this.refreshList()
@@ -902,9 +899,9 @@
       // 审核或重新调整跳转
       todoFiled (row) {
         let cUser = false
-        this.taskService.getTaskDefInfo({
+        taskService.getTaskDefInfo({
           taskId: row.taskFiledId
-        }).then(({data}) => {
+        }).then((data) => {
           this.$router.push({
             path: '/flowable/task/TaskForm',
             query: {
@@ -914,7 +911,7 @@
               formTitle: `${data.taskName}`,
               cUser: cUser,
               title: `审批【${data.taskName || ''}】`,
-              routePath: '/sys/workContract/WorkContractList'   // 数据处理后需要跳转的页面路径
+              routePath: '/workContract/WorkContractList'   // 数据处理后需要跳转的页面路径
             }
           })
         })