From 3011b9800d6c5bee031d87bc4e225b5b1fb52571 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期六, 23 十一月 2024 09:19:21 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0.1' into 2.0.1
---
company/src/components/business/OperaSolutionsDescWindow.vue | 46
company/src/api/business/solutions.js | 15
company/src/components/business/OperaInsuranceApplyWindow.vue | 113
company/src/components/enterprise/addEmployeeWithDu.vue | 51
company/src/components/business/OperaInsuranceApplyCheckWindow.vue | 25
company/src/components/common/chooseCompany.vue | 144 +
company/src/components/business/OperaUnionApplyCheckWindow.vue | 13
company/.env.developmentShop | 5
company/src/views/indexShop.vue | 48
company/src/views/business/unionChangeUnit.vue | 22
company/src/components/business/OperaCompanyUserApplyCarefulWindow.vue | 179 ++
company/src/api/business/contract.js | 38
company/src/components/enterprise/confirmJobType.vue | 26
company/src/utils/request.js | 4
company/src/views/system/role.vue | 22
company/src/api/system/user.js | 10
company/src/components/business/OperaContractWindow.vue | 187 ++
company/src/layouts/AppLayout.vue | 3
company/src/components/enterprise/importEmployees.vue | 10
company/src/views/business/solutions.vue | 68
company/src/views/business/switchCourt.vue | 23
company/src/components/business/OperaCompanyDescWindow.vue | 34
company/src/components/enterprise/factoryChange.vue | 100
company/src/views/business/unionApply.vue | 20
company/src/components/enterprise/OperaInsuranceApplyAddWindow.vue | 125 +
company/src/api/business/insuranceApply.js | 5
company/src/api/business/company.js | 10
company/src/components/business/detailsEntrustedInsurance.vue | 72
company/src/components/business/modification.vue | 25
company/src/views/business/applyChange.vue | 37
company/.env.developmentCom | 6
company/.env | 2
company/src/components/business/OperaSolutionsWindow.vue | 6
company/src/components/business/OperaUnionChangeDetailWindow.vue | 45
company/src/components/system/user/OperaUserWindow.vue | 78
company/src/views/business/contract.vue | 172 +
company/src/components/business/OperaCompanyUserApplyWindow.vue | 247 ++
company/src/api/business/companyUserApply.js | 38
company/src/api/business/companyPermission.js | 10
company/src/views/index.vue | 149 +
company/src/assets/icons/ic_company@2x.png | 0
company/src/views/enterprise/insuranceApply.vue | 117
company/src/api/business/worktype.js | 5
company/src/views/business/companyDepartment.vue | 162 +
company/src/components/business/OperaUnionChangeCheckWindow.vue | 75
company/src/components/business/operaCompanyUserApplyDescWindow.vue | 168 +
company/.env.development | 5
company/src/components/business/selectPolicy.vue | 172 +
company/src/api/business/companyDepartment.js | 42
company/src/components/enterprise/selectEmployees.vue | 6
company/src/components/business/OperaSolutionsBaseWindow.vue | 59
company/src/views/enterprise/myPolicy.vue | 10
company/.env.productionShop | 5
company/src/components/enterprise/renewalInsurance.vue | 16
company/src/api/system/role.js | 5
company/src/components/business/OperaContractDescWindow.vue | 169 +
company/src/api/business/customerService.js | 38
company/src/views/business/company.vue | 1
company/src/views/business/unionChange.vue | 8
company/src/components/business/allocateEnterprises.vue | 113 +
company/src/views/business/userManagement.vue | 141 +
company/src/components/business/OperaApplyChangeCheckWindow.vue | 32
company/src/assets/style/style.scss | 10
company/src/components/business/OperaUnionChangeUnitDetailWindow.vue | 37
company/public/template/personnel_no.xlsx | 0
company/src/components/business/OperaApplyChangeUnitDetailWindow.vue | 45
company/src/components/system/role/Permissions.vue | 127 +
company/src/views/business/companyUserApply.vue | 104 +
company/src/utils/resetMessage.js | 18
company/src/components/enterprise/additionSubtractionApplication.vue | 182 +
company/src/api/business/applyChange.js | 8
company/src/components/business/OperaWtbApplyShopWindow.vue | 69
company/src/components/system/user/RoleConfigWindow.vue | 7
company/src/views/system/user.vue | 321 +-
company/src/main.js | 2
company/src/components/system/user/allocationEnterprises.vue | 11
company/.env.production | 10
company/src/api/business/unionApply.js | 5
company/src/views/business/insuranceApply.vue | 115
company/src/components/business/OperaApplyChangeDetailWindow.vue | 26
company/src/components/business/authorizedEnterprise.vue | 127 +
company/.env.productionCom | 4
company/src/api/system/common.js | 5
company/src/views/business/customerService.vue | 93 +
company/src/components/business/OperaCustomerServiceWindow.vue | 64
company/src/components/business/OperaUnionChangeUnitCheckWindow.vue | 65
company/src/components/common/CommonHeader.vue | 101
company/src/components/common/UploadFile.vue | 13
company/src/components/business/OperaCompanyDepartmentWindow.vue | 138 +
company/src/components/system/role/PermissionConfigWindow.vue | 7
company/src/components/business/OperaApplyChangeUnitCheckWindow.vue | 15
91 files changed, 4,604 insertions(+), 707 deletions(-)
diff --git a/company/.env b/company/.env
index d0e2989..db9f162 100644
--- a/company/.env
+++ b/company/.env
@@ -5,7 +5,7 @@
# 椤圭洰涓婁笅鏂囪矾寰�
# VUE_APP_CONTEXT_PATH = '/yyb_admin'
-VUE_APP_CONTEXT_PATH = '/yyb_web'
+# VUE_APP_CONTEXT_PATH = '/yyb_web'
# VUE_APP_CONTEXT_PATH = '/yyb_shop'
# 鎺ュ彛鍓嶇紑
diff --git a/company/.env.development b/company/.env.development
index d6927af..fa73b3f 100644
--- a/company/.env.development
+++ b/company/.env.development
@@ -4,11 +4,12 @@
# 鎺ュ彛鍓嶇紑
VUE_APP_API_PREFIX = '/yyb_admin_api'
VUE_APP_SYSTEM_TITLE = '浜戞槗淇濆鎴锋湇鍔$郴缁�-骞冲彴绔�'
+VUE_APP_CONTEXT_PATH = '/yyb_admin'
VUE_APP_COOKIE_NAME='dmplat-auth-token'
# 娴嬭瘯鏈�
-# VUE_APP_API = 'https://dmtest.ahapp.net/yyb_admin_api/'
+VUE_APP_API = 'https://dmtest.ahapp.net/yyb_admin_api/'
# 浠诲悍
-VUE_APP_API = 'http://192.168.0.138:10030/'
+# VUE_APP_API = 'http://192.168.0.147:10030/'
diff --git a/company/.env.developmentCom b/company/.env.developmentCom
index b2dc706..97327af 100644
--- a/company/.env.developmentCom
+++ b/company/.env.developmentCom
@@ -4,11 +4,11 @@
# 鎺ュ彛鍓嶇紑
# VUE_APP_API_PREFIX = '/yyb_admin_api'
VUE_APP_SYSTEM_TITLE = '浜戞槗淇濆鎴锋湇鍔$郴缁�-浼佷笟绔�'
-
+VUE_APP_CONTEXT_PATH = '/yyb_web'
VUE_APP_COOKIE_NAME='doumee-auth-token'
-#VUE_APP_API = 'https://dmtest.ahapp.net/yyb_web_api/'
+VUE_APP_API = 'https://dmtest.ahapp.net/yyb_web_api/'
-VUE_APP_API = 'http://192.168.0.138:10031/'
+# VUE_APP_API = 'http://192.168.0.147:10031/'
# VUE_APP_API = 'https://www.yyb.red/yyb_web_api/'
diff --git a/company/.env.developmentShop b/company/.env.developmentShop
index 1c61b78..04e6f03 100644
--- a/company/.env.developmentShop
+++ b/company/.env.developmentShop
@@ -5,9 +5,10 @@
# VUE_APP_API_PREFIX = '/yyb_admin_api'
VUE_APP_COOKIE_NAME='dmshop-auth-token'
VUE_APP_SYSTEM_TITLE = '浜戞槗淇濆鎴锋湇鍔$郴缁�-鍟嗘埛绔�'
-#VUE_APP_API = 'https://www.yyb.red/yyb_shop_api/'
+VUE_APP_CONTEXT_PATH = '/yyb_shop'
+VUE_APP_API = 'https://dmtest.ahapp.net/yyb_shop_api/'
- VUE_APP_API = 'http://192.168.0.135:10032/'
+# VUE_APP_API = 'http://192.168.0.147:10032/'
#VUE_APP_API = 'http://localhost:10032/'
diff --git a/company/.env.production b/company/.env.production
index 03b6275..1e74d9e 100644
--- a/company/.env.production
+++ b/company/.env.production
@@ -1,14 +1,14 @@
# 鐢熶骇鐜閰嶇疆
NODE_ENV = 'production'
-VUE_APP_CONTEXT_PATH = '/admin'
-
VUE_APP_API_PREFIX = '/yyb_admin_api'
-VUE_APP_CONTEXT_NAME = 'admin'
+VUE_APP_CONTEXT_NAME = 'yyb_admin'
VUE_APP_COOKIE_NAME='dmplat-auth-token'
VUE_APP_SYSTEM_TITLE = '浜戞槗淇濆鎴锋湇鍔$郴缁�-骞冲彴绔�'
+VUE_APP_CONTEXT_PATH = '/yyb_admin'
+
# 骞冲彴绔�
-# VUE_APP_API = 'https://dmtest.ahapp.net/yyb_admin_api/'
+VUE_APP_API = 'https://dmtest.ahapp.net/yyb_admin_api/'
# 浼佷笟绔�
-VUE_APP_API = 'https://www.yyb.red/yyb_admin_api/'
+# VUE_APP_API = 'https://www.yyb.red/yyb_admin_api/'
diff --git a/company/.env.productionCom b/company/.env.productionCom
index 74dbcc8..e58bfab 100644
--- a/company/.env.productionCom
+++ b/company/.env.productionCom
@@ -3,9 +3,9 @@
VUE_APP_API_PREFIX = '/yyb_web_api'
-#VUE_APP_CONTEXT_PATH = '/company'
+VUE_APP_CONTEXT_PATH = '/yyb_web'
-VUE_APP_CONTEXT_NAME = 'company'
+VUE_APP_CONTEXT_NAME = 'yyb_company'
VUE_APP_COOKIE_NAME='doumee-auth-token'
diff --git a/company/.env.productionShop b/company/.env.productionShop
index 6623bf3..9547a87 100644
--- a/company/.env.productionShop
+++ b/company/.env.productionShop
@@ -1,11 +1,10 @@
# 鐢熶骇鐜閰嶇疆
NODE_ENV = 'production'
-VUE_APP_CONTEXT_PATH = '/shop'
VUE_APP_API_PREFIX = '/yyb_shop_api'
-VUE_APP_CONTEXT_NAME = 'shop'
+VUE_APP_CONTEXT_NAME = 'yyb_shop'
VUE_APP_COOKIE_NAME='dmshop-auth-token'
-
+VUE_APP_CONTEXT_PATH = '/yyb_shop'
# 骞冲彴绔�
# VUE_APP_API = 'https://dmtest.ahapp.net/yyb_shop_api/'
diff --git a/company/public/template/personnel_no.xlsx b/company/public/template/personnel_no.xlsx
new file mode 100644
index 0000000..bf128e5
--- /dev/null
+++ b/company/public/template/personnel_no.xlsx
Binary files differ
diff --git a/company/src/api/business/applyChange.js b/company/src/api/business/applyChange.js
index 53f514b..bf4a495 100644
--- a/company/src/api/business/applyChange.js
+++ b/company/src/api/business/applyChange.js
@@ -57,3 +57,11 @@
export function update (data) {
return request.post('/business/applyChange/update', data)
}
+
+// 瀵煎嚭淇濆崟涓嬫墍鏈夊姞鍑忎繚璇︽儏鍗�
+export function exportApplyJiajianBaoExcel (data) {
+ return request.post('/business/applyChange/exportApplyJiajianBaoExcel', data, {
+ trim: true,
+ download: true
+ })
+}
diff --git a/company/src/api/business/company.js b/company/src/api/business/company.js
index dba1e13..090cd33 100644
--- a/company/src/api/business/company.js
+++ b/company/src/api/business/company.js
@@ -55,3 +55,13 @@
export function updateSolutions (data) {
return request.post('/business/company/updateSolutions', data)
}
+
+// 鏌ヨ褰撳墠浼佷笟杩涜闆嗗洟鐢宠鍙互鐢宠鐨勪紒涓�
+export function findAllCompanyList (data) {
+ return request.post('/business/company/findAllCompanyList', data)
+}
+
+// 鍙戣捣绛剧讲
+export function getSignLink (id) {
+ return request.get(`/business/companySolution/getSignLink?id=${id}`)
+}
diff --git a/company/src/api/business/companyDepartment.js b/company/src/api/business/companyDepartment.js
new file mode 100644
index 0000000..cb9f259
--- /dev/null
+++ b/company/src/api/business/companyDepartment.js
@@ -0,0 +1,42 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/business/companyDepartment/page', data, {
+ trim: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/business/companyDepartment/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/business/companyDepartment/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/business/companyDepartment/delete/${id}`)
+}
+
+// 缁勭粐鏍戞煡璇�
+export function tree () {
+ return request.get(`/business/companyDepartment/tree`)
+}
+
+// 鎺掑簭
+export function updateSort (data) {
+ return request.post('/business/companyDepartment/updateSort', data)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+ return request.get('/business/companyDepartment/delete/batch', {
+ params: {
+ ids
+ }
+ })
+}
diff --git a/company/src/api/business/companyPermission.js b/company/src/api/business/companyPermission.js
index 6afbf1a..c73e1fd 100644
--- a/company/src/api/business/companyPermission.js
+++ b/company/src/api/business/companyPermission.js
@@ -4,3 +4,13 @@
export function create (data) {
return request.post('/business/companyPermission/create', data)
}
+
+// 鍒嗛〉鏌ヨ
+export function page (data) {
+ return request.post('/business/companyPermission/page', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/business/companyPermission/delete/${id}`)
+}
diff --git a/company/src/api/business/companyUserApply.js b/company/src/api/business/companyUserApply.js
new file mode 100644
index 0000000..c35a759
--- /dev/null
+++ b/company/src/api/business/companyUserApply.js
@@ -0,0 +1,38 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/business/companyUserApply/page', data, {
+ trim: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/business/companyUserApply/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/business/companyUserApply/updateById', data)
+}
+
+// 鏍规嵁ID鏌ヨ
+export function getById (id) {
+ return request.get(`business/companyUserApply/${id}`)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/business/companyUserApply/delete/${id}`)
+}
+
+// 瀹℃壒
+export function audit (data) {
+ return request.post('/business/companyUserApply/audit', data)
+}
+
+// 鍒嗛〉鏌ヨ
+export function page (data) {
+ return request.post('/business/companyUserApply/page', data)
+}
diff --git a/company/src/api/business/contract.js b/company/src/api/business/contract.js
new file mode 100644
index 0000000..2107d0b
--- /dev/null
+++ b/company/src/api/business/contract.js
@@ -0,0 +1,38 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/business/contract/page', data, {
+ trim: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/business/contract/create', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/business/contract/delete/${id}`)
+}
+
+// 鏍规嵁id鏌ヨ
+export function contractId (id) {
+ return request.get(`/business/contract/${id}`)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/business/contract/updateById', data)
+}
+
+// 鍚堝悓鍙栨秷
+export function cancel (id) {
+ return request.get(`/business/contract/cancel?id=${id}`)
+}
+
+// 鍙戣捣绛剧讲
+export function getSignLink (id) {
+ return request.get(`/business/contract/getSignLink?id=${id}`)
+}
diff --git a/company/src/api/business/customerService.js b/company/src/api/business/customerService.js
new file mode 100644
index 0000000..32675ea
--- /dev/null
+++ b/company/src/api/business/customerService.js
@@ -0,0 +1,38 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/business/customerService/page', data, {
+ trim: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/business/customerService/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/business/customerService/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/business/customerService/delete/${id}`)
+}
+
+// 鏍规嵁ID鏌ヨ
+export function findByCompanyId (companyId) {
+ return request.get(`/business/customerService/findByCompanyId?companyId=${companyId}`)
+}
+
+// 鎺堟潈浼佷笟
+export function auth (data) {
+ return request.post('/business/customerService/auth', data)
+}
+
+// 鏍规嵁ID鏌ヨ
+export function getById (id) {
+ return request.get(`/business/customerService/${id}`)
+}
diff --git a/company/src/api/business/insuranceApply.js b/company/src/api/business/insuranceApply.js
index bc52189..5976ae6 100644
--- a/company/src/api/business/insuranceApply.js
+++ b/company/src/api/business/insuranceApply.js
@@ -185,3 +185,8 @@
export function getApplyPower (data) {
return request.post('/business/insuranceApply/getApplyPower', data)
}
+
+// 鎶曚繚澶嶅
+export function reexamineCheck (data) {
+ return request.post('/business/insuranceApply/reexamineCheck', data)
+}
diff --git a/company/src/api/business/solutions.js b/company/src/api/business/solutions.js
index 4d890c1..aedfa3a 100644
--- a/company/src/api/business/solutions.js
+++ b/company/src/api/business/solutions.js
@@ -13,7 +13,10 @@
}
// 鏌ヨ鍏ㄩ儴淇濋櫓鏂规
-export function all (data) {
+export function all (data, type) {
+ if (!type) {
+ data.status = 0
+ }
return request.post('/business/solutions/list', data)
}
@@ -41,3 +44,13 @@
export function getNewVersion (id) {
return request.get(`/business/solutions/getNewVersion?solutionId=${id}`)
}
+
+// 鏌ヨ浼佷笟鍙娇鐢ㄦ柟妗堬紙宸茬缃诧級
+export function getUseList (companyId, dateType) {
+ return request.get(`/business/solutions/getUseList?companyId=${companyId}&dateType=${dateType}`)
+}
+
+// 鏍规嵁ID鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/business/solutions/delete/${id}`)
+}
diff --git a/company/src/api/business/unionApply.js b/company/src/api/business/unionApply.js
index ec6b3af..aa0de3b 100644
--- a/company/src/api/business/unionApply.js
+++ b/company/src/api/business/unionApply.js
@@ -43,3 +43,8 @@
export function getById (id) {
return request.get(`/business/unionApply/${id}`)
}
+
+// 鎶曚繚澶嶅
+export function reexamineCheck (data) {
+ return request.post('/business/unionApply/reexamineCheck', data)
+}
diff --git a/company/src/api/business/worktype.js b/company/src/api/business/worktype.js
index c6fbbfc..39238ec 100644
--- a/company/src/api/business/worktype.js
+++ b/company/src/api/business/worktype.js
@@ -14,3 +14,8 @@
export function findListByDTO (data) {
return request.post('/business/worktype/findListByDTO', data)
}
+
+// 涓绘柟妗堝鍏ュ伐绉�
+export function importExcelForSolution (data) {
+ return request.post('/business/worktype/importExcelForSolution', data)
+}
diff --git a/company/src/api/system/common.js b/company/src/api/system/common.js
index 7689187..220281c 100644
--- a/company/src/api/system/common.js
+++ b/company/src/api/system/common.js
@@ -32,6 +32,11 @@
})
}
+// 鍒囨崲浼佷笟
+export function switchCompany (params) {
+ return request.get('/system/switchCompany', { params })
+}
+
// 鍝佺墝鍒楄〃鏌ヨ
export function brand (data) {
return request.post('/business/brand/list', data)
diff --git a/company/src/api/system/role.js b/company/src/api/system/role.js
index 5d9e34b..8f9093f 100644
--- a/company/src/api/system/role.js
+++ b/company/src/api/system/role.js
@@ -47,3 +47,8 @@
export function createRoleMenu (data) {
return request.post('/system/role/createRoleMenu', data)
}
+
+// 閰嶇疆瑙掕壊鏁版嵁鏉冮檺
+export function createRoleDataPermission (data) {
+ return request.post('/system/role/createRoleDataPermission', data)
+}
diff --git a/company/src/api/system/user.js b/company/src/api/system/user.js
index 6473428..e47475a 100644
--- a/company/src/api/system/user.js
+++ b/company/src/api/system/user.js
@@ -47,3 +47,13 @@
export function updUserStatus (params) {
return request.get('/system/user/updUserStatus', {params})
}
+
+// 璁剧疆鎴栧彇娑堜富绠�
+export function updateHead (data) {
+ return request.post('/system/user/updateHead', data)
+}
+
+// 鏌ヨ褰撳墠浼佷笟涓嬫墍鏈夌敤鎴�
+export function findUserList (data) {
+ return request.post('/system/user/findUserList', data)
+}
diff --git a/company/src/assets/icons/ic_company@2x.png b/company/src/assets/icons/ic_company@2x.png
new file mode 100644
index 0000000..c98e42c
--- /dev/null
+++ b/company/src/assets/icons/ic_company@2x.png
Binary files differ
diff --git a/company/src/assets/style/style.scss b/company/src/assets/style/style.scss
index 620ff86..e3d4276 100644
--- a/company/src/assets/style/style.scss
+++ b/company/src/assets/style/style.scss
@@ -99,7 +99,15 @@
.settle-status1,.change-status6,
.tax-status2,.union-apply-status4,
.du-status2 {
- color: #F95601 !important;
+ color: #f95601 !important;
+}
+
+.change-status6 {
+ color: #999 !important;
+}
+
+.change-status5, .change-status8 {
+ color: red !important;
}
.tip-warn {
diff --git a/company/src/components/business/OperaApplyChangeCheckWindow.vue b/company/src/components/business/OperaApplyChangeCheckWindow.vue
index eebee83..18d9f6b 100644
--- a/company/src/components/business/OperaApplyChangeCheckWindow.vue
+++ b/company/src/components/business/OperaApplyChangeCheckWindow.vue
@@ -101,7 +101,7 @@
<div class="form_item">
<div class="form_item_label"><span>*</span>涓婁紶鎵瑰崟锛�</div>
<div class="form_item_val">
- <UploadFile :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @uploadSuccess="baoxianFileUploaded" />
+ <UploadFile :limit="99" :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @remove="removePIDAN" @uploadSuccess="baoxianFileUploaded" />
</div>
</div>
</div>
@@ -122,7 +122,7 @@
<div class="form_item">
<div class="form_item_label"><span>*</span>涓婁紶鎵瑰崟锛�</div>
<div class="form_item_val">
- <UploadFile :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList2" @uploadSuccess="editBaoxianFileUploaded" />
+ <UploadFile :limit="99" :uploadData="{ folder: 'apply',fileType:'.pdf' }" @remove="removeEditPiDan" :fileList="form.fileList2" @uploadSuccess="editBaoxianFileUploaded" />
</div>
</div>
<div class="form_item">
@@ -185,8 +185,8 @@
applyStartTime: null,
delValidTime: null,
validCode: null,
- pidanFile: null,
- editPidanFile: null,
+ pidanFile: [],
+ editPidanFile: [],
fileList1: [],
fileList2: [],
selectRadio: 0
@@ -217,8 +217,8 @@
delValidTime: null,
applyStartTime: null,
validCode: null,
- pidanFile: null,
- editPidanFile: null,
+ pidanFile: [],
+ editPidanFile: [],
fileList1: [],
fileList2: [],
selectRadio: 0
@@ -313,10 +313,24 @@
}
},
baoxianFileUploaded (data) {
- this.form.pidanFile = data
+ this.form.pidanFile.push(data)
+ },
+ removePIDAN(e) {
+ this.form.pidanFile.forEach((item, index) => {
+ if (e === item.imgaddr) {
+ this.form.pidanFile.splice(index, 1)
+ }
+ })
},
editBaoxianFileUploaded (data) {
- this.form.editPidanFile = data
+ this.form.editPidanFile.push(data)
+ },
+ removeEditPiDan(e) {
+ this.form.editPidanFile.forEach((item, index) => {
+ if (e === item.imgaddr) {
+ this.form.editPidanFile.splice(index, 1)
+ }
+ })
},
backDo () {
this.$dialog.messageConfirm('纭杩涜璇ユ搷浣滃悧锛�')
@@ -353,7 +367,7 @@
applyStartTime: (this.model.delOnlyReplace != 1 ? this.form.applyStartTime : this.form.delValidTime),
delValidTime: this.form.delValidTime,
validCode: this.form.validCode,
- pidanFile: this.form.pidanFile
+ pidanFileList: this.form.pidanFile
})
.then(response => {
this.visible = false
diff --git a/company/src/components/business/OperaApplyChangeDetailWindow.vue b/company/src/components/business/OperaApplyChangeDetailWindow.vue
index 763ce82..9e76416 100644
--- a/company/src/components/business/OperaApplyChangeDetailWindow.vue
+++ b/company/src/components/business/OperaApplyChangeDetailWindow.vue
@@ -49,8 +49,9 @@
<el-button v-if="[2].includes(model.status)" type="primary" @click="viewPidan">鏌ョ湅鎵瑰崟</el-button>
<el-button v-if=" model.solutionType == 0 && [1].includes(model.status)" type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('涓婁紶鎵瑰崟',model,3)">涓婁紶鎵瑰崟</el-button>
<el-button v-if="model.solutionType == 0 &&[3,4].includes(model.status)" type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('椹冲洖閫�鍥炵敵璇�',model,5)">椹冲洖閫�鍥炵敵璇�</el-button>
- <el-button v-if="model.solutionType == 0 &&[0,1,3,4].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('閫�鍥炵敵璇�',model,1)">閫�鍥炵敵璇�</el-button>
+ <el-button v-if="[0,1].includes(model.solutionType) &&[0,1,3,4].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('閫�鍥炵敵璇�',model,1)">閫�鍥炵敵璇�</el-button>
<el-button v-if="model.solutionType == 0 &&[2].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('淇敼鎵瑰崟',model,4)">淇敼鎵瑰崟</el-button>
+ <el-button v-if=" model.solutionType == 1 && [1].includes(model.status)" type="primary" @click="$refs.ApplyChangeDetails.open('鎶曚繚瀹℃牳',apply,model,1)">鎵规敼瀹℃牳</el-button>
</template>
</div>
</div>
@@ -146,6 +147,7 @@
label="韬唤璇佸彿">
</el-table-column>
<el-table-column
+ v-if="apply && apply.hasDispatchUnit !== 1"
prop="duName"
label="娲鹃仯鍗曚綅">
</el-table-column>
@@ -242,11 +244,20 @@
<el-button @click="visiblePhone=false">鍙� 娑�</el-button>
</span>
</el-dialog>
+ <el-dialog title="鎵瑰崟鍒楄〃" :modal="false" :visible.sync="flieVisible">
+ <el-table :data="model.pidanFileList">
+ <el-table-column property="name" label="鏂囦欢鍚嶇О"></el-table-column>
+ <el-table-column label="鎿嶄綔" width="90">
+ <template slot-scope="{row}">
+ <el-button type="primary" @click="yulan(row.name, row.fileurlFull)">棰勮</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </el-dialog>
<template v-slot:footer>
<el-button @click="visible=false">杩斿洖</el-button>
</template>
</GlobalWindow>
-
</template>
<script>
@@ -320,7 +331,8 @@
activeName: '0',
total: 0,
currentPage: 1,
- loading: false
+ loading: false,
+ flieVisible: false,
}
},
created () {
@@ -447,10 +459,10 @@
}
},
viewPidan(){
- if(this.model.pidanFile && this.model.pidanFile.fileurlFull){
- this.$refs.OperaPdfViewerWindow.open('鏌ョ湅鎵瑰崟',this.model.pidanFile.fileurlFull)
- // window.open(this.model.pidanFile.fileurlFull)
- }
+ this.flieVisible = true
+ },
+ yulan(name, url) {
+ this.$refs.OperaPdfViewerWindow.open(name, url)
},
handleSizeChange(val){
console.log(val)
diff --git a/company/src/components/business/OperaApplyChangeUnitCheckWindow.vue b/company/src/components/business/OperaApplyChangeUnitCheckWindow.vue
index 61c3a72..7e881ff 100644
--- a/company/src/components/business/OperaApplyChangeUnitCheckWindow.vue
+++ b/company/src/components/business/OperaApplyChangeUnitCheckWindow.vue
@@ -54,7 +54,7 @@
<div class="form_item">
<div class="form_item_label">涓婁紶鎵瑰崟锛�</div>
<div class="form_item_val">
- <UploadFile :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @uploadSuccess="baoxianFileUploaded" />
+ <UploadFile :uploadData="{ folder: 'apply',fileType:'.pdf' }" :limit="99" :fileList="form.fileList1" @remove="removePIDAN" @uploadSuccess="baoxianFileUploaded" />
</div>
</div>
</div>
@@ -135,7 +135,7 @@
editValidCode: '',
applyStartTime:null,
validCode:null,
- pidanFile:null,
+ pidanFile:[],
editPidanFile:null,
fileList1: [],
fileList2: [],
@@ -166,7 +166,7 @@
editValidCode: '',
applyStartTime:null,
validCode:null,
- pidanFile:null,
+ pidanFile:[],
editPidanFile:null,
fileList1: [],
fileList2: [],
@@ -219,8 +219,15 @@
}
},
baoxianFileUploaded(data){
- this.form.pidanFile=data
+ this.form.pidanFile.push(data)
},
+ removePIDAN(e) {
+ this.form.pidanFile.forEach((item, index) => {
+ if (item.imgaddr === e) {
+ this.form.pidanFile.splice(index, 1)
+ }
+ })
+ },
editBaoxianFileUploaded(data){
this.form.editPidanFile=data
},
diff --git a/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue b/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue
index d245367..e4fcf77 100644
--- a/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue
+++ b/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue
@@ -49,7 +49,8 @@
<el-button v-if="[2].includes(model.status)" type="primary" @click="viewPidan">鏌ョ湅鎵瑰崟</el-button>
<el-button v-if=" model.solutionType == 0 && [1].includes(model.status)" type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('涓婁紶鎵瑰崟',model,3)">涓婁紶鎵瑰崟</el-button>
<el-button v-if="model.solutionType == 0 &&[3,4].includes(model.status)" type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('椹冲洖閫�鍥炵敵璇�',model,5)">椹冲洖閫�鍥炵敵璇�</el-button>
- <el-button v-if="model.solutionType == 0 &&[0,1,3,4].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('閫�鍥炵敵璇�',model,1)">閫�鍥炵敵璇�</el-button>
+ <el-button v-if=" model.solutionType == 1 && [1].includes(model.status)" type="primary" @click="$refs.ApplyChangeDetails.open('鎶曚繚瀹℃牳',apply,model,1)">鎵规敼瀹℃牳</el-button>
+ <el-button v-if="[0,1,3,4].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('閫�鍥炵敵璇�',model,1)">閫�鍥炵敵璇�</el-button>
<el-button v-if="model.solutionType == 0 &&[2].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('淇敼鎵瑰崟',model,4)">淇敼鎵瑰崟</el-button>
</template>
</div>
@@ -126,6 +127,7 @@
label="韬唤璇佸彿">
</el-table-column>
<el-table-column
+ v-if="hasDispatchUnit !== 1"
prop="oldDuName"
label="鍘熸淳閬e崟浣�">
</el-table-column>
@@ -138,6 +140,7 @@
label="淇濋櫓鐢熸晥璧锋湡">
</el-table-column>
<el-table-column
+ v-if="hasDispatchUnit !== 1"
prop="duName"
label="鏇存崲鍚庢淳閬e崟浣�">
</el-table-column>
@@ -211,6 +214,27 @@
<el-button @click="visiblePhone=false">鍙� 娑�</el-button>
</span>
</el-dialog>
+ <el-dialog
+ title="鏌ョ湅鎵瑰崟"
+ :visible.sync="visibleFile"
+ width="800px"
+ :modal="false"
+ :show-close="true"
+ :close-on-click-modal="false"
+ append-to-body
+ center>
+ <el-table :data="model.pidanFileList">
+ <el-table-column property="name" label="鏂囦欢鍚�"></el-table-column>
+ <el-table-column label="鎿嶄綔" width="90px">
+ <template slot-scope="{row}">
+ <el-button type="primary" @click="chakan(row.name, row.fileurlFull)">鏌ョ湅</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="visibleFile=false">鍏� 闂�</el-button>
+ </span>
+ </el-dialog>
<ApplyChangeUnitDetails ref="ApplyChangeDetails" @success="successEvent" />
<OperaApplyChangeUnitCheckWindow ref="OperaApplyChangeCheckWindow" @success="successEvent" />
<!-- 浼佷笟鐢宠閫�鍥� -->
@@ -307,7 +331,9 @@
activeName: '0',
total: 0,
currentPage: 1,
- loading: false
+ loading: false,
+ hasDispatchUnit: null,
+ visibleFile: false
}
},
created () {
@@ -330,6 +356,9 @@
this.timer=null
this.getDetail()
this.getList()
+ },
+ chakan(name, url) {
+ this.$refs.OperaPdfViewerWindow.open(name, url)
},
send () {
sendSms({
@@ -439,10 +468,11 @@
}
},
viewPidan(){
- if(this.model.pidanFile && this.model.pidanFile.fileurlFull){
- this.$refs.OperaPdfViewerWindow.open('鏌ョ湅鎵瑰崟',this.model.pidanFile.fileurlFull)
- // window.open(this.model.pidanFile.fileurlFull)
- }
+ this.visibleFile = true
+ // if(this.model.pidanFile && this.model.pidanFile.fileurlFull){
+ // this.$refs.OperaPdfViewerWindow.open('鏌ョ湅鎵瑰崟',this.model.pidanFile.fileurlFull)
+ // // window.open(this.model.pidanFile.fileurlFull)
+ // }
},
handleSizeChange (val) {
console.log(val)
@@ -457,15 +487,14 @@
},
getDetail () {
getDetail(this.dataId).then(res => {
+ this.hasDispatchUnit = res.hasDispatchUnit
this.apply = res
- console.log(this.tableData)
}).catch(err => {
})
getChangeDetail(this.modelId).then(res => {
this.model = res
this.tableData = new Array()
this.tableData.push(res)
- console.log(this.tableData)
this.activities = res.applyLogList
}).catch(err => {
})
diff --git a/company/src/components/business/OperaCompanyDepartmentWindow.vue b/company/src/components/business/OperaCompanyDepartmentWindow.vue
new file mode 100644
index 0000000..ae1d5d8
--- /dev/null
+++ b/company/src/components/business/OperaCompanyDepartmentWindow.vue
@@ -0,0 +1,138 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="涓婄骇缁勭粐" prop="parentId">
+ <el-cascader
+ :options="organization"
+ v-model="form.parentId"
+ :disabled="form.disabled"
+ placeholder="璇烽�夋嫨涓婄骇缁勭粐"
+ :props="{ label: 'name', value: 'id', checkStrictly: true }"
+ clearable />
+ </el-form-item>
+ <el-form-item label="缁勭粐鍚嶇О" prop="name">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+ import BaseOpera from '@/components/base/BaseOpera'
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ import { tree } from '@/api/business/companyDepartment'
+ import { mapState } from 'vuex'
+ export default {
+ name: 'OperaCompanyDepartmentWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ computed: {
+ ...mapState(['userInfo'])
+ },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ name: '',
+ parentId: [],
+ type: '',
+ disabled: false
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ name: [
+ { required: true, message: '璇疯緭鍏ョ粍缁囧悕绉�' }
+ ]
+ },
+ organization: []
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/companyDepartment',
+ 'field.id': 'id'
+ })
+ },
+ methods: {
+ __confirmCreate () {
+ this.$refs.form.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ let obj = JSON.parse(JSON.stringify(this.form))
+ obj.parentId = obj.parentId && obj.parentId.length > 0 ? obj.parentId[0] : ''
+ obj.type = this.userInfo.type
+ // 璋冪敤鏂板缓鎺ュ彛
+ this.isWorking = true
+ this.api.create(obj)
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('鏂板缓鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ })
+ },
+ __confirmEdit () {
+ this.$refs.form.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ // 璋冪敤鏂板缓鎺ュ彛
+ let obj = JSON.parse(JSON.stringify(this.form))
+ obj.parentId = obj.parentId && obj.parentId.length > 0 ? obj.parentId[0] : ''
+ obj.type = this.userInfo.type
+ this.isWorking = true
+ this.api.updateById(obj)
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('淇敼鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ })
+ },
+ open (title, target) {
+ this.title = title
+ this.visible = true
+ this.getTree()
+ // 鏂板缓
+ if (target == null) {
+ this.$nextTick(() => {
+ this.$refs.form.resetFields()
+ this.form[this.configData['field.id']] = null
+ })
+ return
+ }
+ // 缂栬緫
+ this.$nextTick(() => {
+ for (const key in this.form) {
+ this.form[key] = target[key]
+ }
+ })
+ },
+ getTree() {
+ tree()
+ .then(records => {
+ this.organization = records
+ })
+ }
+ }
+ }
+</script>
diff --git a/company/src/components/business/OperaCompanyDescWindow.vue b/company/src/components/business/OperaCompanyDescWindow.vue
index b10e676..eaf6c4a 100644
--- a/company/src/components/business/OperaCompanyDescWindow.vue
+++ b/company/src/components/business/OperaCompanyDescWindow.vue
@@ -98,6 +98,30 @@
<el-checkbox :true-label="1" :false-label="0" disabled v-model="row.canReduce">鍑忎繚</el-checkbox>
</template>
</el-table-column>
+ <el-table-column
+ align="center"
+ label="绛剧讲鐘舵��">
+ <template slot-scope="{row}">
+ <template v-if="row.signStatus == 0">寰呯缃�</template>
+ <template v-else-if="row.signStatus == 1">宸茬缃�</template>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="signDate"
+ align="center"
+ label="绛剧讲鏃堕棿">
+ </el-table-column>
+ <el-table-column
+ prop="signUserName"
+ align="center"
+ label="绛剧讲浜�">
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔">
+ <template slot-scope="{row}">
+ <el-button type="text" v-if="row.signStatus === 1" @click="openFile(row.fileSignUrl)">鏌ョ湅绛剧讲鏂规涔�</el-button>
+ </template>
+ </el-table-column>
</el-table>
<div class="info_list" v-if="JSON.stringify(form) !== '{}'">
<div class="info_list_item">
@@ -155,6 +179,7 @@
<OperaCompanyWindow ref="operaCompanyWindow" @success="callback"/>
<!-- 淇敼淇濋櫓鏂规 -->
<modification ref="modification" @success="callback"/>
+ <OperaPdfViewerWindow ref="operaPdfViewerWindow" />
<!-- 淇敼鎵嬫満鍙� -->
<el-dialog
title="鏇存敼缁戝畾鎵嬫満鍙�"
@@ -193,13 +218,14 @@
import GlobalWindow from '@/components/common/GlobalWindow'
import OperaCompanyWindow from '@/components/business/OperaCompanyWindow'
import modification from '@/components/business/modification'
+import OperaPdfViewerWindow from '@/components/business/OperaPdfViewerWindow'
import { getById, updatePhone } from '@/api/business/company'
import { listForCompany } from '@/api/business/solutions'
import { sendSms } from '@/api/business/smsEmail'
export default {
name: 'OperaCompanyDescWindow',
extends: BaseOpera,
- components: { GlobalWindow, OperaCompanyWindow, modification },
+ components: { GlobalWindow, OperaCompanyWindow, modification, OperaPdfViewerWindow },
data () {
return {
ruleForm: {
@@ -225,6 +251,9 @@
})
},
methods: {
+ openFile(url) {
+ this.$refs.operaPdfViewerWindow.open('鏂规纭涔�', url)
+ },
close () {
this.visiblePhone = false
this.phone = ''
@@ -344,7 +373,8 @@
solutionName: item.solutionName,
shopName: item.shopName,
canAdd: item.canAdd,
- canReduce: item.canReduce
+ canReduce: item.canReduce,
+ ...item
}
})
console.log(that.form)
diff --git a/company/src/components/business/OperaCompanyUserApplyCarefulWindow.vue b/company/src/components/business/OperaCompanyUserApplyCarefulWindow.vue
new file mode 100644
index 0000000..60d5475
--- /dev/null
+++ b/company/src/components/business/OperaCompanyUserApplyCarefulWindow.vue
@@ -0,0 +1,179 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="100%"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <div class="info" v-if="info">
+ <div class="info_list">
+ <div class="info_list_item" style="width: 100%;">
+ <div class="info_list_item_label">鐢宠鎺堟潈璐﹀彿锛�</div>
+ <div class="info_list_item_val">{{info.userName}}</div>
+ </div>
+ <div class="info_list_item" style="width: 100%;">
+ <div class="info_list_item_label">鎺堟潈绠$悊浼佷笟锛�</div>
+ <div class="info_list_item_val">{{info.companyNames}}</div>
+ </div>
+ <div class="info_list_item" style="width: 100%;">
+ <div class="info_list_item_label">鐢宠璇存槑锛�</div>
+ <div class="info_list_item_val">{{info.content}}</div>
+ </div>
+ <div class="info_list_item" style="width: 100%;">
+ <div class="info_list_item_label">鐢宠闄勪欢锛�</div>
+ <div class="info_list_item_val">
+ <div class="info_list_item_val_cul">
+ <u v-for="(item, index) in info.multifileList" :key="index" @click="openFile(item.fileurlFull)">{{item.name}}</u>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鏄惁閫氳繃" prop="status">
+ <el-radio-group v-model="form.status">
+ <el-radio :label="1">瀹℃牳閫氳繃</el-radio>
+ <el-radio :label="2">瀹℃牳涓嶉�氳繃</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item :label="form.status === 1 ? '澶囨敞鐞嗙敱' : '椹冲洖鐞嗙敱'" prop="checkInfo" :rules="form.status === 2 ? { required: true, message: '椹冲洖鐞嗙敱涓嶈兘涓虹┖', trigger: 'blur' } : { required: false } ">
+ <el-input
+ type="textarea"
+ placeholder="璇疯緭鍏�"
+ v-model="form.checkInfo"
+ maxlength="300"
+ show-word-limit />
+ </el-form-item>
+ </el-form>
+ <!-- 棰勮pdf -->
+ <OperaPdfViewerWindow ref="OperaPdfViewerWindow" />
+ </GlobalWindow>
+</template>
+
+<script>
+ import BaseOpera from '@/components/base/BaseOpera'
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ import UploadFile from '@/components/common/UploadFile'
+ import OperaPdfViewerWindow from '@/components/business/OperaPdfViewerWindow'
+ import { audit, getById } from '@/api/business/companyUserApply'
+ export default {
+ name: 'OperaCompanyUserApplyCarefulWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow, UploadFile, OperaPdfViewerWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ status: 1,
+ checkInfo: ''
+ },
+ info: null,
+ // 楠岃瘉瑙勫垯
+ rules: {}
+ }
+ },
+ methods: {
+ open (title, id) {
+ this.title = title
+ this.form.checkInfo = ''
+ this.form.status = 1
+ this.form.id = id
+ getById(id)
+ .then(res => {
+ this.info = res
+ this.visible = true
+ })
+ },
+ openFile(url) {
+ this.$refs.OperaPdfViewerWindow.open('闄勪欢', url)
+ },
+ confirm() {
+ this.$refs.form.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ // 璋冪敤鏂板缓鎺ュ彛
+ this.isWorking = true
+ audit(this.form)
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('瀹℃牳鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ })
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .info {
+ width: 100%;
+ .info_label {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-bottom: 20px;
+ span {
+ font-size: 18px;
+ font-weight: 600;
+ color: #000000;
+ }
+ }
+ .info_list {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ .info_list_item {
+ width: 50%;
+ display: flex;
+ align-items: start;
+ margin-bottom: 20px;
+ .info_list_item_label {
+ font-size: 15px;
+ flex-shrink: 0;
+ }
+ .info_list_item_val {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ font-size: 15px;
+ .info_list_item_val_cul {
+ display: flex;
+ flex-direction: column;
+ u {
+ font-size: 15px;
+ color: #2E68EC;
+ cursor: pointer;
+ margin-top: 5px;
+ &:first-child {
+ margin: 0;
+ }
+ }
+ }
+ .image {
+ width: 100px;
+ height: 100px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ overflow: hidden;
+ img {
+ width: 100%;
+ }
+ }
+ }
+ }
+ }
+ }
+</style>
diff --git a/company/src/components/business/OperaCompanyUserApplyWindow.vue b/company/src/components/business/OperaCompanyUserApplyWindow.vue
new file mode 100644
index 0000000..17e1d39
--- /dev/null
+++ b/company/src/components/business/OperaCompanyUserApplyWindow.vue
@@ -0,0 +1,247 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="50%"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鎺堟潈璐﹀彿" prop="userId">
+ <el-select v-model="form.userId" filterable placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in account"
+ :key="item.id"
+ :label="item.username"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鐢宠鎺堟潈浼佷笟" prop="companyIds">
+ <el-select
+ v-model="form.companyIds"
+ multiple
+ filterable
+ placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in company"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鐢宠璇存槑" prop="content">
+ <el-input
+ type="textarea"
+ placeholder="璇疯緭鍏ョ敵璇疯鏄�"
+ v-model="form.content"
+ maxlength="300"
+ show-word-limit />
+ </el-form-item>
+ <el-form-item label="鎺堟潈涔�" prop="multifileList">
+ <UploadFile v-if="visible" @remove="deleFile" :limit="99" :uploadData="{ folder: 'companyUserApply', fileType:'.pdf' }" :fileList="fileList" @uploadSuccess="editFanganFile" />
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+ import BaseOpera from '@/components/base/BaseOpera'
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ import UploadFile from '@/components/common/UploadFile'
+ import { findUserList } from '@/api/system/user'
+ import { findAllCompanyList } from '@/api/business/company'
+ export default {
+ name: 'OperaCompanyUserApplyWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow, UploadFile },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ userId: '',
+ content: '',
+ companyIds: [],
+ multifileList: []
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ multifileList: [
+ { required: true, message: '璇蜂笂浼犳巿鏉冧功' }
+ ],
+ companyIds: [
+ { required: true, message: '璇烽�夋嫨鎺堟潈浼佷笟' }
+ ],
+ userId: [
+ { required: true, message: '璇烽�夋嫨鎺堟潈璐﹀彿' }
+ ]
+ },
+ account: [],
+ fileList: [],
+ company: []
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/companyUserApply',
+ 'field.id': 'id'
+ })
+ },
+ methods: {
+ __confirmCreate () {
+ this.$refs.form.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ let obj = JSON.parse(JSON.stringify(this.form))
+ obj.companyIds = obj.companyIds.join(',')
+ obj.companyNames = []
+ this.form.companyIds.forEach(item => {
+ this.company.forEach(row => {
+ if (item === row.id) {
+ obj.companyNames.push(row.name)
+ }
+ })
+ })
+ obj.companyNames = obj.companyNames.join(',')
+ this.isWorking = true
+ this.api.create(obj)
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('鏂板缓鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ })
+ },
+ // 纭淇敼
+ __confirmEdit () {
+ this.$refs.form.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ let obj = JSON.parse(JSON.stringify(this.form))
+ obj.companyIds = obj.companyIds.join(',')
+ obj.companyNames = []
+ this.form.companyIds.forEach(item => {
+ this.company.forEach(row => {
+ if (item === row.id) {
+ obj.companyNames.push(row.name)
+ }
+ })
+ })
+ obj.companyNames = obj.companyNames.join(',')
+ this.isWorking = true
+ this.api.updateById(obj)
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('淇敼鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ })
+ },
+ open (title, target) {
+ this.title = title
+ this.visible = true
+ this.getAccount()
+ this.getFindAllCompanyList()
+ // 鏂板缓
+ if (target == null) {
+ this.$nextTick(() => {
+ this.$refs.form.resetFields()
+ this.form[this.configData['field.id']] = null
+ })
+ return
+ }
+ // 缂栬緫
+ this.$nextTick(() => {
+ for (const key in this.form) {
+ this.form[key] = target[key]
+ }
+ })
+ },
+ deleFile (imgaddr) {
+ this.form.multifileList.forEach((item, index) => {
+ if (item.imgaddr === imgaddr) {
+ this.form.multifileList.splice(index, 1)
+ }
+ })
+ },
+ editFanganFile (data) {
+ this.form.multifileList.push(data)
+ },
+ getAccount() {
+ findUserList({})
+ .then(res => {
+ console.log(res)
+ this.account = res
+ })
+ },
+ getFindAllCompanyList() {
+ findAllCompanyList({})
+ .then(res => {
+ console.log(res)
+ this.company = res
+ })
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .list {
+ width: 100%;
+ padding: 10px 16px;
+ box-sizing: border-box;
+ background: #F4F7FC;
+ border-radius: 2px;
+ border: 1px solid #DFE2E8;
+ margin-top: 10px;
+ .list_label {
+ font-weight: 400;
+ font-size: 13px;
+ color: #333333;
+ }
+ .list_box {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ .list_box_row {
+ padding: 0 10px;
+ box-sizing: border-box;
+ background: #FFFFFF;
+ border-radius: 2px;
+ display: flex;
+ align-items: center;
+ margin-right: 10px;
+ &:last-child {
+ margin: 0 !important;
+ }
+ span {
+ font-weight: 400;
+ font-size: 12px;
+ color: #3F4F69;
+ margin-right: 12px;
+ }
+ i {
+ color: #BFC3CB;
+ cursor: pointer;
+ }
+ }
+ }
+ }
+</style>
diff --git a/company/src/components/business/OperaContractDescWindow.vue b/company/src/components/business/OperaContractDescWindow.vue
new file mode 100644
index 0000000..da17f44
--- /dev/null
+++ b/company/src/components/business/OperaContractDescWindow.vue
@@ -0,0 +1,169 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="100%"
+ :withFooter="false"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <div class="info" v-if="info">
+ <div class="info_label">
+ <span>鍚堝悓璇︽儏</span>
+ </div>
+ <div class="info_list">
+ <div class="info_list_item">
+ <div class="info_list_item_label">鍚堝悓鍚嶇О锛�</div>
+ <div class="info_list_item_val">{{info.name}}</div>
+ </div>
+ <div class="info_list_item">
+ <div class="info_list_item_label">鍚堝悓鏃堕棿锛�</div>
+ <div class="info_list_item_val">{{info.startTime}} - {{info.endTime}}</div>
+ </div>
+ <div class="info_list_item" v-if="userInfo.type === 0 || info.type === 2">
+ <div class="info_list_item_label">鍚堝悓绫诲瀷锛�</div>
+ <div class="info_list_item_val">
+ <template v-if="info.signType === 0">骞冲彴-鍟嗘埛</template>
+ <template v-if="info.signType === 1">骞冲彴-浼佷笟</template>
+ <template v-if="info.signType === 2">鍟嗘埛-浼佷笟</template>
+ </div>
+ </div>
+ <div class="info_list_item">
+ <div class="info_list_item_label">浼佷笟鍚嶇О锛�</div>
+ <div class="info_list_item_val">{{info.companyName}}</div>
+ </div>
+ <div class="info_list_item" style="width: 100%;" v-if="userInfo.type === 0 || info.type === 2">
+ <div class="info_list_item_label">绛剧讲鏂瑰紡锛�</div>
+ <div class="info_list_item_val">
+ <template v-if="info.type === 0">鍙屾柟绛剧珷</template>
+ <template v-if="info.type === 1">浠呮垜鏂圭绔�</template>
+ </div>
+ </div>
+ <div class="info_list_item" style="width: 100%;">
+ <div class="info_list_item_label">鍘熷闄勪欢锛�</div>
+ <div class="info_list_item_val" v-if="info.multifile">
+ <u @click.stop="openPDF(info.multifile.name, info.multifile.fileurlFull)">{{info.multifile.name}}</u>
+ </div>
+ </div>
+ <div class="info_list_item" style="width: 100%;">
+ <div class="info_list_item_label">澶囨敞锛�</div>
+ <div class="info_list_item_val">{{info.remark}}</div>
+ </div>
+ </div>
+ </div>
+ <div class="info" v-if="info && info.status !== 0">
+ <div class="info_label">
+ <span>鍚堝悓绛剧讲鎯呭喌</span>
+ </div>
+ <div class="info_list">
+ <div class="info_list_item">
+ <div class="info_list_item_label">{{info.signType === 2 ? '鍟嗘埛' : [0, 1].includes(info.signType) ? '骞冲彴' : ''}}绛剧讲浜猴細</div>
+ <div class="info_list_item_val">{{info.firstSignUserName}}</div>
+ </div>
+ <div class="info_list_item">
+ <div class="info_list_item_label">{{info.signType === 2 ? '鍟嗘埛' : [0, 1].includes(info.signType) ? '骞冲彴' : ''}}绛剧讲鏃堕棿锛�</div>
+ <div class="info_list_item_val">{{info.signDate}}</div>
+ </div>
+ <div class="info_list_item" v-if="info.type !== 1">
+ <div class="info_list_item_label">{{info.signType === 0 ? '鍟嗘埛' : [1, 2].includes(info.signType) ? '浼佷笟' : ''}}绛剧讲浜猴細</div>
+ <div class="info_list_item_val">{{info.doneSignUserName}}</div>
+ </div>
+ <div class="info_list_item" v-if="info.type !== 1">
+ <div class="info_list_item_label">{{info.signType === 0 ? '鍟嗘埛' : [1, 2].includes(info.signType) ? '浼佷笟' : ''}}绛剧讲鏃堕棿锛�</div>
+ <div class="info_list_item_val">{{info.comSignDate}}</div>
+ </div>
+ <div class="info_list_item">
+ <div class="info_list_item_label">绛剧讲浠讹細</div>
+ <div class="info_list_item_val">
+ <u v-if="info.multiDoneFile" @click.stop="openPDF(info.multiDoneFile.name, info.multiDoneFile.fileurlFull)">{{info.multiDoneFile.name}}</u>
+ <u v-else-if="info.multiFirstFile" @click.stop="openPDF(info.multiFirstFile.name, info.multiFirstFile.fileurlFull)">{{info.multiFirstFile.name}}</u>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- 棰勮pdf -->
+ <OperaPdfViewerWindow ref="OperaPdfViewerWindow" />
+ </GlobalWindow>
+</template>
+
+<script>
+ import BaseOpera from '@/components/base/BaseOpera'
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ import OperaPdfViewerWindow from '@/components/business/OperaPdfViewerWindow'
+ import { contractId } from '@/api/business/contract'
+ import { mapState } from 'vuex'
+ export default {
+ name: 'OperaContractDescWindow',
+ extends: BaseOpera,
+ computed: {
+ ...mapState(['userInfo'])
+ },
+ components: { GlobalWindow, OperaPdfViewerWindow },
+ data () {
+ return {
+ info: null
+ }
+ },
+ methods: {
+ open (title, id) {
+ this.title = title
+ this.info = null
+ this.visible = true
+ console.log(this.userInfo)
+ contractId(id)
+ .then(res => {
+ console.log(res)
+ this.info = res
+ })
+ },
+ openPDF(name, url) {
+ this.$refs.OperaPdfViewerWindow.open(name, url)
+ },
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .info {
+ width: 100%;
+ .info_label {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-bottom: 20px;
+ span {
+ font-size: 18px;
+ font-weight: 600;
+ color: #000000;
+ }
+ }
+ .info_list {
+ width: 100%;
+ display: flex;
+ align-items: start;
+ flex-wrap: wrap;
+ .info_list_item {
+ width: 50%;
+ display: flex;
+ align-items: start;
+ margin-bottom: 20px;
+ .info_list_item_label {
+ flex-shrink: 0;
+ font-size: 16px;
+ }
+ .info_list_item_val {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ font-size: 16px;
+ u {
+ font-size: 16px;
+ color: #2E68EC;
+ cursor: pointer;
+ }
+ }
+ }
+ }
+ }
+</style>
diff --git a/company/src/components/business/OperaContractWindow.vue b/company/src/components/business/OperaContractWindow.vue
new file mode 100644
index 0000000..a9717b9
--- /dev/null
+++ b/company/src/components/business/OperaContractWindow.vue
@@ -0,0 +1,187 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鍚堝悓鍚嶇О" prop="name">
+ <el-input v-model="form.name" maxlength="50" show-word-limit placeholder="璇疯緭鍏ュ悎鍚屽悕绉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍚堝悓瀵硅薄" prop="companyType" v-if="type !== 2">
+ <el-radio-group v-model="form.companyType" @change="getList">
+ <el-radio :label="0">浼佷笟</el-radio>
+ <el-radio :label="1">鍟嗘埛</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item :label="type !== 2 ? '浼佷笟/鍟嗘埛鍚嶇О' : '浼佷笟鍚嶇О'" prop="companyId">
+ <el-select v-model="form.companyId" filterable placeholder="璇烽�夋嫨锛屾敮鎸佹悳绱�">
+ <el-option
+ v-for="item in nameList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鍚堝悓鏃堕棿" prop="date">
+ <el-date-picker
+ v-model="form.date"
+ type="daterange"
+ @change="changeDate"
+ value-format="yyyy-MM-dd"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡">
+ </el-date-picker>
+ </el-form-item>
+ <el-form-item label="绛剧珷鏂瑰紡" prop="type">
+ <el-radio-group v-model="form.type">
+ <el-radio :label="0">鍙屾柟绛剧珷</el-radio>
+ <el-radio :label="1">浠呮垜鏂圭绔�</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item label="鍚堝悓闄勪欢" prop="multifile" :rules="[{required:true,message:'璇蜂笂浼犳柟妗堢‘璁や功'}]">
+ <div v-if="visible">
+ <UploadFile @remove="deleFile" :uploadData="{ folder: 'contract', fileType:'.pdf' }" :fileList="fileList" @uploadSuccess="editFanganFile" />
+ </div>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input
+ type="textarea"
+ placeholder="璇疯緭鍏ュ娉�"
+ v-model="form.remark"
+ maxlength="300"
+ show-word-limit
+ v-trim
+ />
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+ import BaseOpera from '@/components/base/BaseOpera'
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ import UploadFile from '@/components/common/UploadFile'
+ import { pageAll } from '@/api/business/company'
+ import { mapState } from 'vuex'
+ export default {
+ name: 'OperaContractWindow',
+ extends: BaseOpera,
+ computed: {
+ ...mapState(['userInfo'])
+ },
+ components: { GlobalWindow, UploadFile },
+ data () {
+ const validatorTime = (rule, value, callback) => {
+ if (!this.form.startTime || !this.form.endTime) {
+ return callback(new Error('璇烽�夋嫨鍚堝悓鏃堕棿'))
+ }
+ callback()
+ }
+ const validatorMultifile = (rule, value, callback) => {
+ if (!this.form.multifile) {
+ return callback(new Error('璇蜂笂浼犲悎鍚岄檮浠�'))
+ }
+ callback()
+ }
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ remark: '',
+ name: '',
+ companyType: 0,
+ type: 0,
+ startTime: '',
+ endTime: '',
+ date: [],
+ multifile: null,
+ companyId: ''
+ },
+ fileList: [],
+ // 楠岃瘉瑙勫垯
+ rules: {
+ name: [
+ { required: true, message: '璇疯緭鍏ュ悎鍚屽悕绉�' }
+ ],
+ companyType: [
+ { required: true, message: '璇烽�夋嫨鍚堝悓瀵硅薄' }
+ ],
+ companyId: [
+ { required: true, message: '璇烽�夋嫨浼佷笟/鍟嗘埛鍚嶇О' }
+ ],
+ date: [
+ { required: true, validator: validatorTime }
+ ],
+ multifile: [
+ { required: true, validator: validatorMultifile }
+ ],
+ },
+ nameList: [],
+ list: [],
+ type: null
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/contract',
+ 'field.id': 'id'
+ })
+ },
+ methods: {
+ open (title, target, type) {
+ this.title = title
+ this.type = type
+ this.visible = true
+ if (this.userInfo.type === 0) {
+ this.list = [{ label: '浼佷笟', id: 0 },{ label: '鍟嗘埛', id: 1 }]
+ } else if (this.userInfo.type === 2) {
+ this.list = [{ label: '浼佷笟', id: 0 }]
+ }
+ // 鏂板缓
+ if (target == null) {
+ this.$nextTick(() => {
+ this.$refs.form.resetFields()
+ this.form[this.configData['field.id']] = null
+ })
+ this.getList()
+ return
+ }
+ // 缂栬緫
+ this.$nextTick(() => {
+ for (const key in this.form) {
+ this.form[key] = target[key]
+ }
+ })
+ this.getList()
+ },
+ getList() {
+ this.form.companyId = ''
+ pageAll({ type: this.form.companyType })
+ .then(res => {
+ console.log(res)
+ this.nameList = res
+ })
+ },
+ deleFile () {
+ this.form.multifile = null
+ },
+ editFanganFile (data) {
+ console.log(data)
+ this.form.multifile = data
+ },
+ changeDate(e) {
+ if (e) {
+ this.form.startTime = e[0]
+ this.form.endTime = e[1]
+ } else {
+ this.form.startTime = ''
+ this.form.endTime = ''
+ }
+ }
+ }
+ }
+</script>
diff --git a/company/src/components/business/OperaCustomerServiceWindow.vue b/company/src/components/business/OperaCustomerServiceWindow.vue
new file mode 100644
index 0000000..b2775b6
--- /dev/null
+++ b/company/src/components/business/OperaCustomerServiceWindow.vue
@@ -0,0 +1,64 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="瀹㈡湇濮撳悕" prop="name">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎵嬫満鍙�" prop="mobile">
+ <el-input v-model="form.mobile" maxlength="11" show-word-limit placeholder="璇疯緭鍏ユ墜鏈哄彿" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+ import BaseOpera from '@/components/base/BaseOpera'
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ export default {
+ name: 'OperaCustomerServiceWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ const validatorMobile = (rule, value, callback) => {
+ if (value === '') {
+ callback(new Error('璇疯緭鍏ユ墜鏈哄彿'));
+ } else if (!/^1[3-9]\d{9}$/.test(value)) {
+ callback(new Error('鎵嬫満鍙蜂笉鍚堟硶'));
+ }
+ callback()
+ };
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ remark: '',
+ name: '',
+ mobile: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ name: [
+ { required: true, message: '璇疯緭鍏ュ鏈嶅鍚�' }
+ ],
+ mobile: [
+ { required: true, validator: validatorMobile }
+ ]
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/customerService',
+ 'field.id': 'id'
+ })
+ }
+ }
+</script>
diff --git a/company/src/components/business/OperaInsuranceApplyCheckWindow.vue b/company/src/components/business/OperaInsuranceApplyCheckWindow.vue
index 71d0815..c0eb2dd 100644
--- a/company/src/components/business/OperaInsuranceApplyCheckWindow.vue
+++ b/company/src/components/business/OperaInsuranceApplyCheckWindow.vue
@@ -84,6 +84,7 @@
uploadToubaodan,
check
} from "@/api/business/insuranceApply";
+import { uploadBXD } from "@/api/business/unionApply";
import UploadFile from "@/components/common/UploadFile";
import {remark} from "@/api/business/settleClaims";
export default {
@@ -155,6 +156,7 @@
visible4: false,
visible5: false,
visible6: false,
+ type: null
}
},
created () {
@@ -167,8 +169,9 @@
dele2() {
this.form.toubaodanFile = ''
},
- open(title,target,flag){
+ open(title,target,flag,type){
this.visible=true
+ this.type = type
this.model={}
this.form= {
id: null,
@@ -242,7 +245,11 @@
if (!valid) {
return
}
- this.uploadBaoxiandan()
+ if (!this.type) {
+ this.uploadBaoxiandan()
+ } else if (this.type === 1) {
+ this.uploadBaoxiandan1()
+ }
})
} else if (this.flag == 4) {
this.$refs.form4.validate((valid) => {
@@ -337,7 +344,19 @@
this.$tip.apiFailed(err)
})
})
-
+ },
+ uploadBaoxiandan1(){
+ this.$dialog.messageConfirm('纭杩涜璇ユ搷浣滃悧锛�')
+ .then(() => {
+ this.isWorking = true
+ uploadBXD({id:this.model.id,startTime:this.form.startTime,code:this.form.code,baoxiandanFile:this.form.baoxianFile})
+ .then(response => {
+ this.visible = false
+ this.$emit('success')
+ }).catch(err => {
+ this.$tip.apiFailed(err)
+ })
+ })
},
editBaoxiandan(){
this.$dialog.messageConfirm('纭杩涜璇ユ搷浣滃悧锛�')
diff --git a/company/src/components/business/OperaInsuranceApplyWindow.vue b/company/src/components/business/OperaInsuranceApplyWindow.vue
index 3337197..98cdbfa 100644
--- a/company/src/components/business/OperaInsuranceApplyWindow.vue
+++ b/company/src/components/business/OperaInsuranceApplyWindow.vue
@@ -19,14 +19,20 @@
<div class="desc_item_label">
<div class="desc_item_label_left">
<span>鎶曚繚浼佷笟锛歿{ model.companyName }}</span>
- <span>淇濆崟鐘舵�侊細<span :class="'apply-status'+model.status" >{{ model.statusInfo }}</span></span>
+ <span>淇濆崟鐘舵�侊細
+ <span style="color: #f95601;" v-if="[5,27].includes(model.status) && model.statusInfo === '寰呯敓鏁�'">{{ model.statusInfo }}</span>
+ <span :class="'apply-status'+model.status" v-else>{{ model.statusInfo }}</span>
+ </span>
<span>鎻愪氦鏃堕棿锛歿{ model.createDate }}</span>
</div>
<div class="desc_item_label_right">
+ <el-button type="primary" @click="viewConfirmationLetter">鏌ョ湅鏂规纭涔�</el-button>
+ <el-button type="primary" v-if="[1].includes(model.solutionType) && model.shenqingdanFile" @click="viewShenqingdan(model.shenqingdanFile)">鏌ョ湅鐢宠鍗�</el-button>
<template v-if="userInfo.type === 1">
<el-button type="primary" @click="$refs.InsuranceDetails.open('鎶曚繚璇︽儏鍗�',model,0)">瀵煎嚭璇﹀崟</el-button>
<el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">鏌ョ湅鎶曚繚鍗�</el-button>
<!-- $refs.operaverifyPhoneNumberWindew.open('楠岃瘉鎵嬫満鍙�')-->
+<!-- <el-button v-if="[22].includes(model.status) && model.solutionType === 1" type="primary" @click="viewShenqingdan(model.shenqingdanFile)">鏌ョ湅鐢宠鍗�</el-button>-->
<el-button v-if="model.status == 2" type="primary" :disabled="loading" :loading="loading" @click="goSign()">绛剧讲鎶曚繚鍗�</el-button>
<el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">鏌ョ湅淇濋櫓鍗�</el-button>
<el-button v-if="model.status == 4" type="primary" @click="$refs.operaInsuranceApplyAddWindow.open('鎶曚繚鐢宠', {id: dataId})">鍐嶆鎶曚繚</el-button>
@@ -34,15 +40,20 @@
<el-button v-if="model.status == 4" type="primary" @click="closeOrder">鍏抽棴鐢宠</el-button>
</template>
<template v-else>
+ <el-button v-if="[12].includes(model.status)" type="primary" @click="review">鎶曚繚澶嶅</el-button>
<el-button type="primary" @click="$refs.InsuranceDetails.open('鎶曚繚璇︽儏鍗�',model,0)">瀵煎嚭璇﹀崟</el-button>
- <el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">鏌ョ湅鎶曚繚鍗�</el-button>
- <el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">鏌ョ湅淇濋櫓鍗�</el-button>
+ <el-button v-if="[2, 3, 5, 7, 8, 26].includes(model.status) && (model.toubaodanFile || model.toubaodanSignedFile)" type="primary" @click="viewToubaodan">鏌ョ湅鎶曚繚鍗�</el-button>
+ <el-button v-if="[27,5].includes(model.status)" type="primary" @click="viewBaoxiandan">鏌ョ湅淇濋櫓鍗�</el-button>
<el-button v-if="[2,10].includes(model.status) && model.solutionType ==0" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('涓婁紶鎶曚繚鍗�',model,2)">涓婁紶鎶曚繚鍗�</el-button>
- <el-button v-if="model.status == 3 && model.solutionType ==0" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('涓婁紶淇濋櫓鍗�',model,3)">涓婁紶淇濋櫓鍗�</el-button>
+ <el-button v-if="model.status === 3 && userInfo.type === 0" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('涓婁紶淇濋櫓鍗�',model,3)">涓婁紶淇濋櫓鍗�</el-button>
+
+<!-- <el-button v-if="model.status == 26 && model.solutionType == 1" type="primary" @click="$refs.OperaUnionApplyCheckWindow.open('涓婁紶淇濋櫓鍗�',model,3)">涓婁紶淇濋櫓鍗�</el-button>-->
+<!-- <el-button v-if="[22].includes(model.status) && model.solutionType === 1 && model.shenqingdanFile" type="primary" @click="viewShenqingdan(model.shenqingdanFile)">鏌ョ湅鐢宠鍗�</el-button>-->
<el-button v-if="[6,7,8,11].includes(model.status) && model.solutionType ==0" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('椹冲洖閫�鍥炵敵璇�',model,5)">椹冲洖閫�鍥炵敵璇�</el-button>
- <el-button v-if="model.status == 0 && model.solutionType ==0" type="primary" @click="$refs.InsuranceDetails.open('鎶曚繚瀹℃牳',model,1)">鎶曚繚瀹℃牳</el-button>
- <el-button v-if="![1,4,,5].includes(model.status) && model.solutionType ==0" type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('閫�鍥炵敵璇�',model,1)">閫�鍥炵敵璇�</el-button>
- <el-button v-if="model.status == 5 && model.solutionType ==0" type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('淇敼淇濋櫓鍗�',model,4)">淇敼淇濋櫓鍗�</el-button>
+ <el-button v-if="[22, 0].includes(model.status) && [0,1].includes(model.solutionType)" type="primary" @click="$refs.InsuranceDetails.open('鎶曚繚瀹℃牳',model,1)">鎶曚繚瀹℃牳</el-button>
+ <el-button v-if="![1, 4, 5].includes(model.status) && [0,1].includes(model.solutionType)" type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('閫�鍥炵敵璇�',model,1)">閫�鍥炵敵璇�</el-button>
+ <el-button v-if="[5,27].includes(model.status) && ['寰呯敓鏁�'].includes(model.statusInfo) && userInfo.type === 0" type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('淇敼淇濋櫓鍗�',model,4)">淇敼淇濋櫓鍗�</el-button>
+
</template>
</div>
</div>
@@ -72,12 +83,12 @@
align="center"
label="淇濋櫓鐢熸晥姝㈡湡">
</el-table-column>
- <el-table-column
- prop="insureNum"
- align="center"
- label="鎶曚繚浜烘暟">
- </el-table-column>
- <el-table-column prop="guaranteeNum" align="center" label="鍦ㄤ繚浜烘暟" ></el-table-column>
+<!-- <el-table-column-->
+<!-- prop="insureNum"-->
+<!-- align="center"-->
+<!-- label="鎶曚繚浜烘暟">-->
+<!-- </el-table-column>-->
+ <el-table-column prop="guaranteeNum" align="center" label="褰撳墠鍦ㄤ繚浜烘暟" ></el-table-column>
<el-table-column
prop="serviceDays"
align="center"
@@ -86,9 +97,9 @@
<el-table-column
prop="currentFee"
align="center"
- label="宸蹭骇鐢熻垂鐢�(鍏�)">
+ label="鎵规敼璐圭敤鍚堣">
<template slot-scope="{row}">
- <span>{{row.currentFee!=null?row.currentFee: '-'}}</span>
+ <span>{{row.changeMoney}}鍏�</span>
</template>
</el-table-column>
<el-table-column
@@ -103,9 +114,9 @@
</div>
<div class="desc_item_cate">
<el-tabs v-model="activeName" @tab-click="handleClick">
- <el-tab-pane label="鍦ㄤ繚浜哄憳" name="0" ></el-tab-pane>
+ <el-tab-pane label="淇濆崟浜哄憳" name="0" ></el-tab-pane>
<el-tab-pane label="鍔�/鍑忎繚璁板綍" name="1"></el-tab-pane>
- <el-tab-pane label="鏇存崲娲鹃仯鍗曚綅璁板綍" name="2"></el-tab-pane>
+ <el-tab-pane :label="model.hasDispatchUnit !== 1 ? '鏇存崲娲鹃仯鍗曚綅' : '鏇存崲宸ョ璁板綍'" name="2"></el-tab-pane>
</el-tabs>
</div>
<div class="desc_item_search">
@@ -116,9 +127,10 @@
<el-option label="鍏ㄩ儴" value="0"></el-option>
<el-option label="淇濋殰涓�" value="1"></el-option>
<el-option label="涓嶅湪淇�" value="2"></el-option>
+ <el-option label="寰呯敓鏁�" value="3"></el-option>
</el-select>
</el-form-item>
- <el-form-item label="娲鹃仯鍗曚綅" prop="duId">
+ <el-form-item label="娲鹃仯鍗曚綅" prop="duId" v-if="model.hasDispatchUnit !== 1">
<el-select v-model="formInline.duId" placeholder="璇烽�夋嫨" @change="search">
<el-option
v-for="item in dwList"
@@ -195,8 +207,8 @@
<el-button type="primary" style="width: 80px;" @click="search">鏌ヨ</el-button>
<el-button @click="resetting" style="width: 80px;">閲嶇疆</el-button>
<el-button type="primary" style="width: 80px;" @click="exportExcel" v-if="activeName === '0'">瀵煎嚭鍚嶅崟</el-button>
- <el-button type="primary" style="width: 100px;" @click="$refs.OperaApplyChangeMonthWindow.open('鍔犲噺淇濊垂鐢ㄦ湀搴︾粺璁�',model)" v-if="activeName === '1'">璐圭敤缁熻鏌ヨ</el-button>
-
+ <el-button type="primary" style="width: 100px;" @click="$refs.OperaApplyChangeMonthWindow.open('鍔犲噺淇濊垂鐢ㄦ湀搴︾粺璁�',model)" v-if="activeName === '1'">璐圭敤缁熻鏌ヨ</el-button>
+ <el-button type="primary" style="width: 120px;" @click="exportRecords" v-if="activeName === '1' && (model.status === 5 || model.status === 27)">瀵煎嚭鍔犲噺淇濊褰�</el-button>
</el-form-item>
</el-form>
</div>
@@ -208,7 +220,7 @@
v-if="activeName === '0'"
style="width: 100%">
<el-table-column label="搴忓彿"
- align="center">
+ align="center">
<template slot-scope="scope">
<span>{{scope.$index + 1}}</span>
</template>
@@ -229,12 +241,23 @@
</template>
</el-table-column>
<el-table-column
+ align="center"
+ :key="Math.random()"
+ label="鍦ㄤ繚鐘舵��">
+ <template slot-scope="{row}">
+ <span v-if="row.applyStatus === 0" style="color: #00BA92;">淇濋殰涓�</span>
+ <span v-if="row.applyStatus === 1" style="color: #999;">涓嶅湪淇�</span>
+ <span v-if="row.applyStatus === 2" style="color: #f95601;">寰呯敓鏁�</span>
+ </template>
+ </el-table-column>
+ <el-table-column
:key="Math.random()"
prop="idcardNo"
align="center"
label="韬唤璇佸彿">
</el-table-column>
<el-table-column
+ v-if="model.hasDispatchUnit !== 1"
:key="Math.random()"
prop="duName"
align="center"
@@ -373,7 +396,7 @@
v-if="activeName === '2'"
style="width: 100%">
<el-table-column label="搴忓彿"
- align="center">
+ align="center">
<template slot-scope="scope">
<span>{{scope.$index + 1}}</span>
</template>
@@ -401,7 +424,7 @@
:key="Math.random()"
prop="changeNum"
align="center"
- label="鏇存崲娲鹃仯鍗曚綅浜烘暟">
+ :label="model.hasDispatchUnit !== 1 ? '鏇存崲娲鹃仯鍗曚綅浜烘暟' : '鏇存崲宸ョ浜烘暟'">
<template scope="{row}">
{{row.changeNum||0}} 浜�
</template>
@@ -483,6 +506,7 @@
<operaverifyPhoneNumberWindew ref="operaverifyPhoneNumberWindew" @success="goSign" />
<OperaPdfViewerWindow ref="OperaPdfViewerWindow" />
<OperaApplyChangeMonthWindow ref="OperaApplyChangeMonthWindow" />
+ <OperaUnionApplyCheckWindow ref="OperaUnionApplyCheckWindow" @success="successEvent" />
<template v-slot:footer>
<el-button @click="visible=false">杩斿洖</el-button>
</template>
@@ -500,15 +524,16 @@
import OperaApplyChangeDetailWindow from '@/components/business/OperaApplyChangeDetailWindow'
import OperaApplyChangeMonthWindow from '@/components/business/OperaApplyChangeMonthWindow'
import OperaApplyChangeUnitDetailWindow from '@/components/business/OperaApplyChangeUnitDetailWindow'
-
import applyReturn from '@/components/enterprise/applyReturn'
import { getDetail, getSignLink, applyDetailPage, exportExcel, applyChagneDetailExcel, applyOpt } from '@/api/business/insuranceApply'
import { findListByDTO } from '@/api/business/dispatchUnit'
-import { fetchList } from '@/api/business/applyChange'
+import { fetchList, exportApplyJiajianBaoExcel } from '@/api/business/applyChange'
+import { reexamineCheck } from '@/api/business/insuranceApply'
import { findListByDTO as worktypeFindListByDTO } from '@/api/business/worktype'
import OperaInsuranceApplyAddWindow from '@/components/enterprise/OperaInsuranceApplyAddWindow'
import { mapState } from 'vuex'
import OperaPdfViewerWindow from '@/components/business/OperaPdfViewerWindow'
+import OperaUnionApplyCheckWindow from '@/components/business/OperaUnionApplyCheckWindow'
export default {
name: 'OperaInsuranceApplyWindow1',
extends: BaseOpera,
@@ -524,7 +549,8 @@
OperaApplyChangeDetailWindow,
OperaApplyChangeUnitDetailWindow,
OperaInsuranceApplyAddWindow,
- operaverifyPhoneNumberWindew
+ operaverifyPhoneNumberWindew,
+ OperaUnionApplyCheckWindow
},
data () {
return {
@@ -603,6 +629,33 @@
this.getList()
this.getDW()
this.getGZ()
+ },
+ viewShenqingdan(row) {
+ if (!row) return;
+ this.$refs.OperaPdfViewerWindow.open(row.name, row.fileurlFull)
+ },
+ viewConfirmationLetter() {
+ this.$refs.OperaPdfViewerWindow.open('鏌ョ湅鏂规纭涔�', this.model.fanganFile.fileurlFull)
+ },
+ review() {
+ this.$confirm('鏄惁纭畾澶嶆牳閫氳繃?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ reexamineCheck({ id: this.dataId })
+ .then(res => {
+ this.getDetail()
+ })
+ }).catch(() => {
+
+ });
+ },
+ exportRecords() {
+ exportApplyJiajianBaoExcel({ id: this.dataId })
+ .then(response => {
+ this.download(response)
+ })
},
result(flag,param){
console.log(flag,param)
@@ -946,14 +999,18 @@
.desc_item_label {
width: 100%;
display: flex;
- align-items: center;
- justify-content: space-between;
+ align-items: start;
+ flex-direction: column;
margin-bottom: 10px;
span {
font-size: 14px;
color: black;
margin-right: 30px;
}
+ .desc_item_label_right {
+ width: 100%;
+ margin: 10px 0;
+ }
}
.desc_item_from {
width: 100%;
diff --git a/company/src/components/business/OperaSolutionsBaseWindow.vue b/company/src/components/business/OperaSolutionsBaseWindow.vue
index e7f597e..bbb4437 100644
--- a/company/src/components/business/OperaSolutionsBaseWindow.vue
+++ b/company/src/components/business/OperaSolutionsBaseWindow.vue
@@ -25,7 +25,7 @@
</el-form-item>
<el-form-item label="鎶曚繚骞撮緞" prop="minAge">
<div style="display: flex; align-items: center;">
- <el-select v-model="form.minAge" style="flex: 1;" placeholder="璇烽�夋嫨">
+ <el-select v-model="form.minAge" @change="changeMinAge" style="flex: 1;" placeholder="璇烽�夋嫨">
<el-option
v-for="item in 80"
:key="item"
@@ -34,7 +34,7 @@
</el-option>
</el-select>
<span style="margin: 0 30px;">鑷�</span>
- <el-select v-model="form.maxAge" style="flex: 1;" placeholder="璇烽�夋嫨">
+ <el-select v-model="form.maxAge" @change="changeMaxAge" style="flex: 1;" placeholder="璇烽�夋嫨">
<el-option
v-for="item in 80"
:key="item"
@@ -87,7 +87,11 @@
placeholder="璇烽�夋嫨鎵规敼鎻愰啋鏃堕棿">
</el-time-picker>
</el-form-item>
- <el-button type="primary" @click="add" style="margin-bottom: 10px;">娣诲姞宸ョ</el-button>
+ <div style="display: flex; align-items: center;">
+ <el-button type="primary" @click="add" style="margin-bottom: 10px;">娣诲姞宸ョ</el-button>
+ <el-button type="primary" @click="impor" style="margin-bottom: 10px;">瀵煎叆宸ョ</el-button>
+ <el-button type="text" @click="exprot">瀵煎叆妯$増xls</el-button>
+ </div>
<el-table
:data="form.worktypeIdList"
border
@@ -133,6 +137,8 @@
<RichEditor :richData="form.ortherInfo" :styleEditor="'border: 1px solid #ccc;display: inline-block;'" @getWangedditor="getWangedditor2" :readonly="false"/>
</el-form-item>
</el-form>
+ <!-- 涓婁紶宸ョ -->
+ <input type="file" @change="getFile" style="opacity: 0;" ref="upload" accept=".xlsx" />
</GlobalWindow>
</template>
@@ -140,7 +146,7 @@
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import { all } from '@/api/business/insurance'
- import { all as allWorktype } from '@/api/business/worktype'
+ import { all as allWorktype, importExcelForSolution } from '@/api/business/worktype'
import { solutionsBaseId } from '@/api/business/solutionsBase'
import { pageAll as shopList } from '@/api/business/company'
import UploadFile from '@/components/common/UploadFile'
@@ -233,6 +239,37 @@
})
},
methods: {
+ // 瀵煎叆宸ョ妯℃澘
+ getFile(e) {
+ const formdate = new FormData()
+ formdate.append('file', e.target.files[0])
+ formdate.append('insuranceId', this.form.insuranceId)
+ importExcelForSolution(formdate)
+ .then(res => {
+ console.log(res)
+ res.forEach(id => {
+ if (this.form.worktypeIdList.length === 1 && !this.form.worktypeIdList[0].worktypeId) {
+ this.form.worktypeIdList[0].worktypeId = id
+ } else {
+ this.form.worktypeIdList.push({ worktypeId: id })
+ }
+ })
+ })
+ .catch(err => {
+ this.$message.error(err.message)
+ })
+ .finally(() => {
+ this.$refs.upload.value = null
+ })
+ },
+ impor() {
+ if (!this.form.insuranceId) return this.$message.warning('璇峰厛閫夋嫨浼佷笟')
+ this.$refs.upload.click()
+ },
+ // 瀵煎嚭妯℃澘
+ exprot() {
+ window.open(process.env.VUE_APP_TYPEWORK_URL)
+ },
getWangedditor(val){
this.form.specialAgreement = val;
},
@@ -242,7 +279,18 @@
getWangedditor2(val){
this.form.ortherInfo = val;
},
-
+ changeMinAge(e) {
+ if (this.form.maxAge && this.form.maxAge >= 0 && e > this.form.maxAge) {
+ this.form.minAge = ''
+ this.$message.warning('璧峰骞撮緞涓嶈兘澶т簬鎴骞撮緞锛�')
+ }
+ },
+ changeMaxAge(e) {
+ if (this.form.minAge && this.form.minAge >= 0 && e < this.form.minAge) {
+ this.form.maxAge = ''
+ this.$message.warning('鎴骞撮緞涓嶈兘澶т簬璧峰骞撮緞锛�')
+ }
+ },
handNumberInput (value) {
const regex = /^[-+]?\d*$/
if (!regex.test(value)) {
@@ -338,7 +386,6 @@
this.form[key] = res[key]
}
this.form.correctWarnTime = `${this.form.correctWarnTime}:00`
- console.log(this.form.correctWarnTime)
if (res.worktypeList) {
this.form.worktypeIdList = res.worktypeList.map(item => {
return {
diff --git a/company/src/components/business/OperaSolutionsDescWindow.vue b/company/src/components/business/OperaSolutionsDescWindow.vue
index bacd9ca..67a8b60 100644
--- a/company/src/components/business/OperaSolutionsDescWindow.vue
+++ b/company/src/components/business/OperaSolutionsDescWindow.vue
@@ -57,8 +57,10 @@
<div class="info_list_item_val" ><a v-if="form.fanganFile && form.fanganFile.fileurlFull" style="cursor: pointer;color: #2E68EC" title="鐐瑰嚮鏌ョ湅" @click="openFile(form.fanganFile.fileurlFull)">{{ form.fanganFile.name || '鐐瑰嚮鏌ョ湅' }}</a></div>
</div>
</div>
+ <div style="font-size: 18px; font-weight: bold; margin-bottom: 10px;" v-if="userInfo.type === 0">鏂规浣跨敤鎯呭喌</div>
<el-table
- :data="form.worktypeList"
+ v-if="userInfo.type === 0"
+ :data="list"
border
style="width: 100%; margin-bottom: 20px;">
<el-table-column
@@ -70,11 +72,37 @@
</template>
</el-table-column>
<el-table-column
- prop="worktypeName"
+ prop="companyName"
align="center"
- label="宸ョ鍚嶇О">
+ label="浼佷笟鍚嶇О">
+ </el-table-column>
+ <el-table-column
+ align="center"
+ label="绛剧珷鎯呭喌">
+ <template slot-scope="{row}">
+ <span v-if="row.signStatus === 0">寰呯绔�</span>
+ <span v-if="row.signStatus === 1">宸茬绔�</span>
+ </template>
</el-table-column>
</el-table>
+<!-- <el-table-->
+<!-- :data="form.worktypeList"-->
+<!-- border-->
+<!-- style="width: 100%; margin-bottom: 20px;">-->
+<!-- <el-table-column-->
+<!-- label="搴忓彿"-->
+<!-- align="center"-->
+<!-- width="80">-->
+<!-- <template slot-scope="scope">-->
+<!-- <span>{{scope.$index + 1}}</span>-->
+<!-- </template>-->
+<!-- </el-table-column>-->
+<!-- <el-table-column-->
+<!-- prop="worktypeName"-->
+<!-- align="center"-->
+<!-- label="宸ョ鍚嶇О">-->
+<!-- </el-table-column>-->
+<!-- </el-table>-->
</div>
<!-- 淇敼 -->
<OperaSolutionsWindow ref="operaSolutionsWindow" @success="callback"/>
@@ -89,7 +117,7 @@
import OperaSolutionsWindow from '@/components/business/OperaSolutionsWindow'
import OperaPdfViewerWindow from '@/components/business/OperaPdfViewerWindow'
import OperaSolutionsBaseDescWindow from '@/components/business/OperaSolutionsBaseDescWindow'
-import { solutionsId } from '@/api/business/solutions'
+import { solutionsId, listForCompany } from '@/api/business/solutions'
import { mapState } from 'vuex'
export default {
name: 'OperaSolutionsDescWindow',
@@ -130,7 +158,8 @@
signKeyword: '',
worktypeList: [],
worktypeIdList: []
- }
+ },
+ list: []
}
},
computed: {
@@ -186,8 +215,15 @@
this.form[key] = target[key]
}
this.getDetails()
+ this.getList()
})
},
+ getList() {
+ listForCompany({ solutionId: this.form.id })
+ .then(res => {
+ this.list = res
+ })
+ },
openFile (url) {
setTimeout(() => {
this.$refs.OperaPdfViewerWindow.open('鏂规纭涔�',url)
diff --git a/company/src/components/business/OperaSolutionsWindow.vue b/company/src/components/business/OperaSolutionsWindow.vue
index 597bc1f..4d23b6e 100644
--- a/company/src/components/business/OperaSolutionsWindow.vue
+++ b/company/src/components/business/OperaSolutionsWindow.vue
@@ -64,9 +64,9 @@
</el-form-item>
<el-form-item label="绛剧珷鏂瑰紡" prop="signType" v-if="form.type === 1">
<el-select v-model="form.signType" placeholder="璇烽�夋嫨濮旀墭鍟嗘埛">
- <el-option label="浼佷笟绛剧讲鍟嗘埛涓婁紶鎶曚繚鍗�" :value="0"></el-option>
- <el-option label="浼佷笟绛炬姇淇濈敵璇�" :value="1"></el-option>
- <el-option label="浼佷笟鏃犻渶绛剧珷" :value="2"></el-option>
+ <el-option label="鍟嗘埛绛剧讲鍟嗘埛涓婁紶鎶曚繚鍗�" :value="0"></el-option>
+ <el-option label="鍟嗘埛绛炬姇淇濈敵璇�" :value="1"></el-option>
+ <el-option label="鍟嗘埛鏃犻渶绛剧珷" :value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="鏈夋淳閬e崟浣�" prop="hasDispatchUnit">
diff --git a/company/src/components/business/OperaUnionApplyCheckWindow.vue b/company/src/components/business/OperaUnionApplyCheckWindow.vue
index 4ccb8b5..becba97 100644
--- a/company/src/components/business/OperaUnionApplyCheckWindow.vue
+++ b/company/src/components/business/OperaUnionApplyCheckWindow.vue
@@ -16,11 +16,11 @@
<el-form-item label="涓婁紶鎶曚繚鍗曪細" prop="toubaodanFile">
<UploadFile @remove="dele2" :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList" @uploadSuccess="toubaoFileUploaded" />
</el-form-item>
- <div v-for="(item,index) in this.model.applyList" :key="index">
- <el-form-item :label="(index+1)+'.琚繚闄╀汉锛�'+item.companyName+')锛�'" prop="tbdMultifileList[index]">
- <UploadFile @remove="deleIndex(0,index)" :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileIndex="index" :showTips="showTips" :fileList="model.applyList[index].fileList" @uploadSuccess="toubaoFileUploaded2" />
- </el-form-item>
- </div>
+<!-- <div v-for="(item,index) in this.model.applyList" :key="index">-->
+<!-- <el-form-item :label="(index+1)+'.琚繚闄╀汉锛�'+item.companyName+')锛�'" prop="tbdMultifileList[index]">-->
+<!-- <UploadFile @remove="deleIndex(0,index)" :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileIndex="index" :showTips="showTips" :fileList="model.applyList[index].fileList" @uploadSuccess="toubaoFileUploaded2" />-->
+<!-- </el-form-item>-->
+<!-- </div>-->
</el-form>
<!-- 涓婁紶淇濋櫓鍗� -->
<el-form v-if="visible3==true" :model="form" ref="form3" :rules="rules3" style="width: 100%;">
@@ -56,7 +56,7 @@
<el-form-item label="涓婁紶淇濋櫓鍗曪細" prop="baoxianFile">
<UploadFile @remove="dele3" :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @uploadSuccess="baoxianFileUploaded" />
</el-form-item>
- <div class="box_table">
+ <div class="box_table" v-if="false">
<div class="box_table_head">
<div class="box_table_head_item">搴忓彿</div>
<div class="box_table_head_item">琚繚闄╀汉</div>
@@ -204,6 +204,7 @@
}
this.model = target
+ console.log(target)
this.form.startTime = target.startTime
this.form.endTime = target.endTime
this.title = title
diff --git a/company/src/components/business/OperaUnionChangeCheckWindow.vue b/company/src/components/business/OperaUnionChangeCheckWindow.vue
index 4a85267..d758456 100644
--- a/company/src/components/business/OperaUnionChangeCheckWindow.vue
+++ b/company/src/components/business/OperaUnionChangeCheckWindow.vue
@@ -71,30 +71,30 @@
<el-input v-model="form.code" placeholder="璇疯緭鍏�" v-trim/>
</el-form-item>
<el-form-item label="涓婁紶鎵瑰崟锛�" prop="baoxianFile">
- <UploadFile @remove="dele3" :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @uploadSuccess="baoxianFileUploaded" />
+ <UploadFile @remove="dele3" :limit="99" :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @uploadSuccess="baoxianFileUploaded" />
</el-form-item>
- <div class="box_table">
- <div class="box_table_head">
- <div class="box_table_head_item">搴忓彿</div>
- <div class="box_table_head_item">琚繚闄╀汉</div>
- <div v-if="model.type==0" class="box_table_head_item">鍔犱繚浜烘暟</div>
- <div v-if="model.type==0" class="box_table_head_item">鍑忎繚浜烘暟</div>
- <div v-if="model.type==1" class="box_table_head_item">鍙樻洿浜烘暟</div>
- <div class="box_table_head_item">涓婁紶鎵瑰崟</div>
- </div>
- <div class="box_table_content" v-for="(item, index) in model.applyList" :key="index">
- <div class="box_table_content_item">{{index + 1}}</div>
- <div class="box_table_content_item" >{{ item.companyName }}</div>
- <div v-if="model.type==0" class="box_table_content_item">{{ item.addNum }}</div>
- <div v-if="model.type==0" class="box_table_content_item">{{ item.delNum }}</div>
- <div v-if="model.type==1" class="box_table_content_item">{{ item.changeNum }}</div>
- <div class="box_table_content_item">
- <el-form-item label="" prop="bxdMultifileList[index]">
- <UploadFileLink @remove="deleIndex(1,index)" :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileIndex="index" :showTips="showTips" :fileList="model.applyList[index].fileList1" @uploadSuccess="baoxianFileUploaded2" />
- </el-form-item>
- </div>
- </div>
- </div>
+<!-- <div class="box_table">-->
+<!-- <div class="box_table_head">-->
+<!-- <div class="box_table_head_item">搴忓彿</div>-->
+<!-- <div class="box_table_head_item">琚繚闄╀汉</div>-->
+<!-- <div v-if="model.type==0" class="box_table_head_item">鍔犱繚浜烘暟</div>-->
+<!-- <div v-if="model.type==0" class="box_table_head_item">鍑忎繚浜烘暟</div>-->
+<!-- <div v-if="model.type==1" class="box_table_head_item">鍙樻洿浜烘暟</div>-->
+<!-- <div class="box_table_head_item">涓婁紶鎵瑰崟</div>-->
+<!-- </div>-->
+<!-- <div class="box_table_content" v-for="(item, index) in model.applyList" :key="index">-->
+<!-- <div class="box_table_content_item">{{index + 1}}</div>-->
+<!-- <div class="box_table_content_item" >{{ item.companyName }}</div>-->
+<!-- <div v-if="model.type==0" class="box_table_content_item">{{ item.addNum }}</div>-->
+<!-- <div v-if="model.type==0" class="box_table_content_item">{{ item.delNum }}</div>-->
+<!-- <div v-if="model.type==1" class="box_table_content_item">{{ item.changeNum }}</div>-->
+<!-- <div class="box_table_content_item">-->
+<!-- <el-form-item label="" prop="bxdMultifileList[index]">-->
+<!-- <UploadFileLink @remove="deleIndex(1,index)" :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileIndex="index" :showTips="showTips" :fileList="model.applyList[index].fileList1" @uploadSuccess="baoxianFileUploaded2" />-->
+<!-- </el-form-item>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </div>-->
</el-form>
<template v-slot:footer>
<el-button type="primary" @click="doSubmit">纭� 瀹�</el-button>
@@ -118,6 +118,13 @@
extends: BaseOpera,
components: { UploadFile, GlobalWindow ,UploadFileLink},
data () {
+ const checkFile = (rule, value, callback) => {
+ if (value.length === 0) {
+ callback(new Error('璇蜂笂浼犳壒鍗�'));
+ } else {
+ callback();
+ }
+ };
return {
// 琛ㄥ崟鏁版嵁
model: {},
@@ -136,7 +143,7 @@
{ required: true, message: '璇峰畬鍠勪俊鎭�' }
],
baoxianFile: [
- { required: true, message: '璇峰畬鍠勪俊鎭�' }
+ { required: true, validator: checkFile }
]
},
form: {
@@ -145,7 +152,7 @@
applyTime: null,
delValidTime: null,
code: null,
- baoxianFile: null,
+ baoxianFile: [],
bxdMultifileList: [],
fileList1: [],
selectRadio: 0
@@ -171,8 +178,12 @@
this.form.bxdMultifileList[index].name = null
}
},
- dele3 () {
- this.form.baoxianFile = null
+ dele3 (imgaddr) {
+ this.form.baoxianFile.forEach((item, index) => {
+ if (imgaddr === item.imgaddr) {
+ this.form.baoxianFile.splice(index, 1)
+ }
+ })
},
open (title, target, flag) {
this.visible = true
@@ -182,7 +193,7 @@
backCheckInfo: '',
startTime: null,
code: null,
- baoxianFile: null,
+ baoxianFile: [],
delValidTime: null,
bxdMultifileList:[],
fileList1: [],
@@ -238,7 +249,8 @@
}
},
baoxianFileUploaded (data) {
- this.form.baoxianFile = data
+ this.form.baoxianFile.push(data)
+ console.log(this.form.baoxianFile)
},
baoxianFileUploaded2 (data) {
this.form.bxdMultifileList[data.index].fileurl = data.fileurl
@@ -266,8 +278,9 @@
applyDate: (this.model.delOnlyReplace != 1 ? this.form.applyTime : this.form.delValidTime),
delValidTime:this.form.delValidTime,
code: this.form.code,
- fileurl: this.form.baoxianFile.fileurl,
- name: this.form.baoxianFile.name,
+ pidanFileList: this.form.baoxianFile,
+ // fileurl: this.form.baoxianFile.fileurl,
+ // name: this.form.baoxianFile.name,
applyChangeBXDList:this.form.bxdMultifileList
}
uploadBXD(param)
diff --git a/company/src/components/business/OperaUnionChangeDetailWindow.vue b/company/src/components/business/OperaUnionChangeDetailWindow.vue
index e606aca..da2f6fc 100644
--- a/company/src/components/business/OperaUnionChangeDetailWindow.vue
+++ b/company/src/components/business/OperaUnionChangeDetailWindow.vue
@@ -27,7 +27,7 @@
<el-button v-if="[1,2].includes(model.status)" type="primary" @click="viewApplyFile">鏌ョ湅鐢宠鍗�</el-button>
<el-button v-if="[0].includes(model.status)" type="primary" :disabled="loading" :loading="loading" @click="getSignLink(0)">绛剧讲鐢宠鍗�</el-button>
<el-button v-if="[2].includes(model.status)" type="primary" @click="viewPidan">鏌ョ湅鎵瑰崟</el-button>
- <el-button v-if=" [1].includes(model.status)" type="primary" @click="$refs.OperaUnionChangeCheckWindow.open('涓婁紶鎵瑰崟',model,3)">涓婁紶鎵瑰崟</el-button>
+ <el-button v-if=" [1].includes(model.status) && userInfo.type === 0" type="primary" @click="$refs.OperaUnionChangeCheckWindow.open('涓婁紶鎵瑰崟',model,3)">涓婁紶鎵瑰崟</el-button>
<el-button v-if="[0,1].includes(model.status)" type="danger" @click="$refs.OperaUnionChangeCheckWindow.open('閫�鍥炵敵璇�',model,1)">閫�鍥炵敵璇�</el-button>
</template>
<template v-if="0">
@@ -136,6 +136,7 @@
label="琚繚闄╀汉">
</el-table-column>
<el-table-column
+ v-if="hasDispatchUnit !== 1"
prop="duName"
label="娲鹃仯鍗曚綅">
</el-table-column>
@@ -235,21 +236,37 @@
</span>
</el-dialog>
<el-dialog
- title="鏌ョ湅淇濋櫓鍗�"
+ title="鏌ョ湅鎵瑰崟"
:visible.sync="visibleFile"
- width="500px"
- :modal="true"
+ width="700px"
+ :modal="false"
:show-close="true"
:close-on-click-modal="false"
append-to-body
center>
- <div class="desc_item_from" v-for="(item, index) in pidanFileData" :key="index" style="margin-bottom: 15px">
- <span v-if="index ==0">{{item.name}}锛�</span>
- <span v-if="index >0">琚繚闄╀汉锛坽{item.name}}锛変繚闄╁崟锛�</span>
- <a style="cursor: pointer;color: #2E68EC" v-if="item.file && item.file.fileurl && index ==0" @click="openFile(item.file.fileurlFull,item.name)">鍦ㄧ嚎棰勮</a>
- <a style="cursor: pointer;color: #2E68EC" v-if="item.file && item.file.fileurl && index !=0 " @click="openFile(item.file.fileurlFull,'琚繚闄╀汉锛�'+item.name+'锛変繚闄╁崟')">鍦ㄧ嚎棰勮</a>
- <span v-if="!item.file || !item.file.fileurl">鏈笂浼�</span>
- </div>
+ <el-table
+ :data="model.pidanFileList"
+ border
+ style="width: 100%">
+ <el-table-column
+ prop="name"
+ label="鍚嶇О">
+ </el-table-column>
+ <el-table-column
+ width="90"
+ label="鎿嶄綔">
+ <template slot-scope="{ row }">
+ <el-button type="primary" @click="seePidan(row.name, row.fileurlFull)">鏌ョ湅</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+<!-- <div class="desc_item_from" v-for="(item, index) in pidanFileData" :key="index" style="margin-bottom: 15px">-->
+<!-- <span v-if="index ==0">{{item.name}}锛�</span>-->
+<!-- <span v-if="index >0">琚繚闄╀汉锛坽{item.name}}锛変繚闄╁崟锛�</span>-->
+<!-- <a style="cursor: pointer;color: #2E68EC" v-if="item.file && item.file.fileurl && index ==0" @click="openFile(item.file.fileurlFull,item.name)">鍦ㄧ嚎棰勮</a>-->
+<!-- <a style="cursor: pointer;color: #2E68EC" v-if="item.file && item.file.fileurl && index !=0 " @click="openFile(item.file.fileurlFull,'琚繚闄╀汉锛�'+item.name+'锛変繚闄╁崟')">鍦ㄧ嚎棰勮</a>-->
+<!-- <span v-if="!item.file || !item.file.fileurl">鏈笂浼�</span>-->
+<!-- </div>-->
<span slot="footer" class="dialog-footer">
<el-button @click="visibleFile=false">鍏� 闂�</el-button>
</span>
@@ -311,6 +328,7 @@
model: {},
visiblePhone: false,
visibleFile:false,
+ hasDispatchUnit: null,
form: {
businessId: null,
phone: this.$store.state.userInfo.company? this.$store.state.userInfo.company.phone:null,
@@ -364,6 +382,9 @@
this.getDetail()
this.getList()
},
+ seePidan(name, url) {
+ this.$refs.OperaPdfViewerWindow.open(name, url)
+ },
send () {
sendSms({
phone: this.form.phone
@@ -493,7 +514,6 @@
this.model = res
this.tableData = new Array()
this.tableData.push(res)
- console.log(this.tableData)
this.pidanFileData.push({ name: '鍟嗘埛淇濋櫓鍗�', file: this.model.pidanFile })
this.getApplyList()
}).catch(err => {
@@ -502,6 +522,7 @@
getApplyList () {
applyList({ unionChangeId: this.model.id, getFiles: 1 }).then(res => {
this.model.applyList = res
+ this.hasDispatchUnit = res[0].hasDispatchUnit
if (res && res.length > 0) {
res.forEach(item => {
if (item.pidanFile) {
diff --git a/company/src/components/business/OperaUnionChangeUnitCheckWindow.vue b/company/src/components/business/OperaUnionChangeUnitCheckWindow.vue
index 5791392..685a964 100644
--- a/company/src/components/business/OperaUnionChangeUnitCheckWindow.vue
+++ b/company/src/components/business/OperaUnionChangeUnitCheckWindow.vue
@@ -35,30 +35,30 @@
<el-input v-model="form.code" placeholder="璇疯緭鍏�" v-trim/>
</el-form-item>
<el-form-item label="涓婁紶鎵瑰崟锛�" prop="baoxianFile">
- <UploadFile @remove="dele3" :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @uploadSuccess="baoxianFileUploaded" />
+ <UploadFile @remove="dele3" :limit="99" :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @uploadSuccess="baoxianFileUploaded" />
</el-form-item>
- <div class="box_table">
- <div class="box_table_head">
- <div class="box_table_head_item">搴忓彿</div>
- <div class="box_table_head_item">琚繚闄╀汉</div>
- <div v-if="model.type==0" class="box_table_head_item">鍔犱繚浜烘暟</div>
- <div v-if="model.type==0" class="box_table_head_item">鍑忎繚浜烘暟</div>
- <div v-if="model.type==1" class="box_table_head_item">鍙樻洿浜烘暟</div>
- <div class="box_table_head_item">涓婁紶鎵瑰崟</div>
- </div>
- <div class="box_table_content" v-for="(item, index) in model.applyList" :key="index">
- <div class="box_table_content_item">{{index + 1}}</div>
- <div class="box_table_content_item" >{{ item.companyName }}</div>
- <div v-if="model.type==0" class="box_table_content_item">{{ item.addNum }}</div>
- <div v-if="model.type==0" class="box_table_content_item">{{ item.delNum }}</div>
- <div v-if="model.type==1" class="box_table_content_item">{{ item.changeNum }}</div>
- <div class="box_table_content_item">
- <el-form-item label="" prop="bxdMultifileList[index]">
- <UploadFileLink @remove="deleIndex(1,index)" :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileIndex="index" :showTips="showTips" :fileList="model.applyList[index].fileList1" @uploadSuccess="baoxianFileUploaded2" />
- </el-form-item>
- </div>
- </div>
- </div>
+<!-- <div class="box_table">-->
+<!-- <div class="box_table_head">-->
+<!-- <div class="box_table_head_item">搴忓彿</div>-->
+<!-- <div class="box_table_head_item">琚繚闄╀汉</div>-->
+<!-- <div v-if="model.type==0" class="box_table_head_item">鍔犱繚浜烘暟</div>-->
+<!-- <div v-if="model.type==0" class="box_table_head_item">鍑忎繚浜烘暟</div>-->
+<!-- <div v-if="model.type==1" class="box_table_head_item">鍙樻洿浜烘暟</div>-->
+<!-- <div class="box_table_head_item">涓婁紶鎵瑰崟</div>-->
+<!-- </div>-->
+<!-- <div class="box_table_content" v-for="(item, index) in model.applyList" :key="index">-->
+<!-- <div class="box_table_content_item">{{index + 1}}</div>-->
+<!-- <div class="box_table_content_item" >{{ item.companyName }}</div>-->
+<!-- <div v-if="model.type==0" class="box_table_content_item">{{ item.addNum }}</div>-->
+<!-- <div v-if="model.type==0" class="box_table_content_item">{{ item.delNum }}</div>-->
+<!-- <div v-if="model.type==1" class="box_table_content_item">{{ item.changeNum }}</div>-->
+<!-- <div class="box_table_content_item">-->
+<!-- <el-form-item label="" prop="bxdMultifileList[index]">-->
+<!-- <UploadFileLink @remove="deleIndex(1,index)" :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileIndex="index" :showTips="showTips" :fileList="model.applyList[index].fileList1" @uploadSuccess="baoxianFileUploaded2" />-->
+<!-- </el-form-item>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </div>-->
</el-form>
<template v-slot:footer>
<el-button type="primary" @click="doSubmit">纭� 瀹�</el-button>
@@ -108,7 +108,7 @@
backCheckInfo: '',
applyTime: null,
code: null,
- baoxianFile: null,
+ baoxianFile: [],
bxdMultifileList: [],
fileList1: [],
selectRadio: 0
@@ -134,8 +134,12 @@
this.form.bxdMultifileList[index].name = null
}
},
- dele3 () {
- this.form.baoxianFile = null
+ dele3 (e) {
+ this.form.baoxianFile.forEach((item, index) => {
+ if (e === item.imgaddr) {
+ this.form.baoxianFile.splice(index, 1)
+ }
+ })
},
open (title, target, flag) {
this.visible = true
@@ -145,7 +149,7 @@
backCheckInfo: '',
startTime: null,
code: null,
- baoxianFile: null,
+ baoxianFile: [],
bxdMultifileList:[],
fileList1: [],
selectRadio: 0,
@@ -198,7 +202,7 @@
}
},
baoxianFileUploaded (data) {
- this.form.baoxianFile = data
+ this.form.baoxianFile.push(data)
},
baoxianFileUploaded2 (data) {
this.form.bxdMultifileList[data.index].fileurl = data.fileurl
@@ -225,8 +229,9 @@
id: this.model.id,
applyDate: this.form.applyTime,
code: this.form.code,
- fileurl: this.form.baoxianFile.fileurl,
- name: this.form.baoxianFile.name,
+ // fileurl: this.form.baoxianFile.fileurl,
+ // name: this.form.baoxianFile.name,
+ pidanFileList: this.form.baoxianFile,
applyChangeBXDList:this.form.bxdMultifileList
}
uploadBXD(param)
diff --git a/company/src/components/business/OperaUnionChangeUnitDetailWindow.vue b/company/src/components/business/OperaUnionChangeUnitDetailWindow.vue
index df35918..61d53af 100644
--- a/company/src/components/business/OperaUnionChangeUnitDetailWindow.vue
+++ b/company/src/components/business/OperaUnionChangeUnitDetailWindow.vue
@@ -10,7 +10,7 @@
<div class="desc_item">
<div class="desc_item_label">
<div class="desc_item_label_left">
- <span>鎶曚繚浜猴細{{ model.shopName}}</span>
+ <span>鎶曚繚浜猴細{{ model.shopName}} </span>
<span v-if="model.status === 0">淇濆崟鐘舵�侊細<span :class="'change-status'+model.status" >寰呯缃�</span></span>
<span v-if="model.status === 1">淇濆崟鐘舵�侊細<span :class="'change-status'+model.status" >寰呭鏍�</span></span>
<span v-if="model.status === 2">淇濆崟鐘舵�侊細<span :class="'change-status'+model.status" >宸茬敓鏁�</span></span>
@@ -27,7 +27,7 @@
<el-button v-if="[1,2].includes(model.status)" type="primary" @click="viewApplyFile">鏌ョ湅鐢宠鍗�</el-button>
<el-button v-if="[0].includes(model.status)" type="primary" :disabled="loading" :loading="loading" @click="getSignLink(0)">绛剧讲鐢宠鍗�</el-button>
<el-button v-if="[2].includes(model.status)" type="primary" @click="viewPidan">鏌ョ湅鎵瑰崟</el-button>
- <el-button v-if=" [1].includes(model.status)" type="primary" @click="$refs.OperaUnionChangeCheckWindow.open('涓婁紶鎵瑰崟',model,3)">涓婁紶鎵瑰崟</el-button>
+ <el-button v-if=" [1].includes(model.status) && userInfo.type !== 2" type="primary" @click="$refs.OperaUnionChangeCheckWindow.open('涓婁紶鎵瑰崟',model,3)">涓婁紶鎵瑰崟</el-button>
<el-button v-if="[0,1].includes(model.status)" type="danger" @click="$refs.OperaUnionChangeCheckWindow.open('閫�鍥炵敵璇�',model,1)">閫�鍥炵敵璇�</el-button>
</template>
<template v-if="0">
@@ -113,6 +113,7 @@
label="琚繚闄╀汉">
</el-table-column>
<el-table-column
+ v-if="hasDispatchUnit !== 1"
prop="oldDuName"
label="鍘熸淳閬e崟浣�">
</el-table-column>
@@ -121,6 +122,7 @@
label="鍘熸墍灞炲伐绉�">
</el-table-column>
<el-table-column
+ v-if="hasDispatchUnit !== 1"
prop="duName"
label="鏇存崲鍚庢淳閬e崟浣�">
</el-table-column>
@@ -203,21 +205,29 @@
</span>
</el-dialog>
<el-dialog
- title="鏌ョ湅淇濋櫓鍗�"
+ title="鏌ョ湅鎵瑰崟"
:visible.sync="visibleFile"
width="800px"
- :modal="true"
+ :modal="false"
:show-close="true"
:close-on-click-modal="false"
append-to-body
center>
- <div class="desc_item_from" v-for="(item, index) in pidanFileData" :key="index" style="margin-bottom: 15px">
- <span v-if="index ==0">{{item.name}}锛�</span>
- <span v-if="index >0">琚繚闄╀汉锛坽{item.name}}锛変繚闄╁崟锛�</span>
- <a style="cursor: pointer;color: #2E68EC" v-if="item.file && item.file.fileurl && index ==0" @click="openFile(item.file.fileurlFull,item.name)">鍦ㄧ嚎棰勮</a>
- <a style="cursor: pointer;color: #2E68EC" v-if="item.file && item.file.fileurl && index !=0 " @click="openFile(item.file.fileurlFull,'琚繚闄╀汉锛�'+item.name+'锛変繚闄╁崟')">鍦ㄧ嚎棰勮</a>
- <span v-if="!item.file || !item.file.fileurl">鏈笂浼�</span>
- </div>
+ <el-table :data="model.pidanFileList">
+ <el-table-column property="name" label="鏂囦欢鍚�"></el-table-column>
+ <el-table-column label="鎿嶄綔" width="90px">
+ <template slot-scope="{row}">
+ <el-button type="primary" @click="chakan(row.name, row.fileurlFull)">鏌ョ湅</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+<!-- <div class="desc_item_from" v-for="(item, index) in pidanFileData" :key="index" style="margin-bottom: 15px">-->
+<!-- <span v-if="index ==0">{{item.name}}锛�</span>-->
+<!-- <span v-if="index >0">琚繚闄╀汉锛坽{item.name}}锛変繚闄╁崟锛�</span>-->
+<!-- <a style="cursor: pointer;color: #2E68EC" v-if="item.file && item.file.fileurl && index ==0" @click="openFile(item.file.fileurlFull,item.name)">鍦ㄧ嚎棰勮</a>-->
+<!-- <a style="cursor: pointer;color: #2E68EC" v-if="item.file && item.file.fileurl && index !=0 " @click="openFile(item.file.fileurlFull,'琚繚闄╀汉锛�'+item.name+'锛変繚闄╁崟')">鍦ㄧ嚎棰勮</a>-->
+<!-- <span v-if="!item.file || !item.file.fileurl">鏈笂浼�</span>-->
+<!-- </div>-->
<!--
<div class="desc_item_from" v-for="(item, index) in pidanFileData" :key="index" style="margin-bottom: 15px">
<span v-if="index ==0">{{item.name}}锛�</span>
@@ -283,6 +293,7 @@
model: {},
visiblePhone: false,
visibleFile:false,
+ hasDispatchUnit: null,
form: {
businessId: null,
phone: this.$store.state.userInfo.company? this.$store.state.userInfo.company.phone:null,
@@ -336,6 +347,9 @@
this.getDetail()
this.getList()
},
+ chakan(name, url) {
+ this.$refs.OperaPdfViewerWindow.open(name, url)
+ },
send () {
sendSms({
phone: this.form.phone
@@ -472,6 +486,7 @@
getApplyList () {
applyList({ unionChangeId: this.model.id, getFiles: 1 }).then(res => {
this.model.applyList = res
+ this.hasDispatchUnit = res[0].hasDispatchUnit
if (res && res.length > 0) {
res.forEach(item => {
if (item.pidanFile) {
diff --git a/company/src/components/business/OperaWtbApplyShopWindow.vue b/company/src/components/business/OperaWtbApplyShopWindow.vue
index ec7d1b2..3ea73c1 100644
--- a/company/src/components/business/OperaWtbApplyShopWindow.vue
+++ b/company/src/components/business/OperaWtbApplyShopWindow.vue
@@ -20,16 +20,19 @@
<div class="desc_item_label_left">
<span>鎶曚繚浜猴細{{ model.shopName }}</span>
<span>琚繚闄╀汉锛歿{ model.companyName }}</span>
- <span>淇濆崟鐘舵�侊細<span :class="'apply-status'+model.status" >{{ model.statusInfo }}</span></span>
+ <span>淇濆崟鐘舵�侊細
+ <span :class="'apply-status'+model.status" >{{ model.statusInfo }}</span>
+ </span>
<span>鎻愪氦鏃堕棿锛歿{ model.createDate }}</span>
</div>
<div class="desc_item_label_right">
+ <el-button type="primary" @click="viewConfirmationLetter">鏌ョ湅鏂规纭涔�</el-button>
<el-button type="primary" @click="$refs.InsuranceDetails.open('鎶曚繚璇︽儏鍗�',model,0)">瀵煎嚭璇﹀崟</el-button>
<template v-if="userInfo.type === 1">
<el-button v-if="model.status == 24" type="primary" @click="$refs.OperaInsuranceApplyAddWindow.open('鎶曚繚鐢宠', {id: dataId})">鍐嶆鎶曚繚</el-button>
- <el-button v-if="[21,22,23,24,25,26,27].includes(model.status)" type="primary" @click="viewFanganshu">鏌ョ湅纭涔�</el-button>
+<!-- <el-button v-if="[21,22,23,24,25,26,27].includes(model.status)" type="primary" @click="viewFanganshu">鏌ョ湅纭涔�</el-button>-->
<el-button v-if="[22,23,24,25,26,27].includes(model.status) && model.shenqingdanFile" type="primary" @click="viewShenqingdan">鏌ョ湅鐢宠鍗�</el-button>
- <el-button v-if="[1,2,3].includes(model.unionApplyTbdStatus) &&(model.toubaodanFile || model.oubaodanSignedFile)" type="primary" @click="viewToubaodan">鏌ョ湅鎶曚繚鍗�</el-button>
+ <el-button v-if="[1,2,3].includes(model.unionApplyTbdStatus) && (model.toubaodanFile || model.toubaodanSignedFile) && model.signType !== 1" type="primary" @click="viewToubaodan">鏌ョ湅鎶曚繚鍗�</el-button>
<el-button v-if="[3].includes(model.unionApplyTbdStatus) &&(model.baoxiandanFile)" type="primary" @click="viewBaoxiandan">鏌ョ湅淇濋櫓鍗�</el-button>
<!-- goSign-->
<el-button v-if="model.status == 20" type="primary" :disabled="loading" :loading="loading" @click="getSignLink(0)">绛剧讲鏂规纭涔�</el-button>
@@ -38,7 +41,7 @@
<el-button v-if="model.status == 24" type="danger" @click="closeOrder">鍏抽棴鐢宠</el-button>
</template>
<template v-if="userInfo.type === 2">
- <el-button v-if="[21,22,23,24,25,26,27].includes(model.status)" type="primary" @click="viewFanganshu">鏌ョ湅纭涔�</el-button>
+<!-- <el-button v-if="[21,22,23,24,25,26,27].includes(model.status)" type="primary" @click="viewFanganshu">鏌ョ湅纭涔�</el-button>-->
<el-button v-if="[22,23,24,25,26,27].includes(model.status) && model.shenqingdanFile" type="primary" @click="viewShenqingdan">鏌ョ湅鐢宠鍗�</el-button>
<el-button v-if="[1,2,3].includes(model.unionApplyTbdStatus) &&(model.toubaodanFile || model.oubaodanSignedFile)" type="primary" @click="viewToubaodan">鏌ョ湅鎶曚繚鍗�</el-button>
<el-button v-if="[3].includes(model.unionApplyTbdStatus) &&(model.baoxiandanFile)" type="primary" @click="viewBaoxiandan">鏌ョ湅淇濋櫓鍗�</el-button>
@@ -47,7 +50,7 @@
<el-button v-if="model.status == 23" type="danger" @click="$refs.OperaWtbApplyCheckWindow.open('鍏抽棴鐢宠',model,2)">鍏抽棴鐢宠</el-button>
</template>
<template v-if="userInfo.type === 0">
- <el-button v-if="[21,22,23,24,25,26,27].includes(model.status)" type="primary" @click="viewFanganshu">鏌ョ湅纭涔�</el-button>
+<!-- <el-button v-if="[21,22,23,24,25,26,27].includes(model.status)" type="primary" @click="viewFanganshu">鏌ョ湅纭涔�</el-button>-->
<el-button v-if="[22,23,24,25,26,27].includes(model.status) && model.shenqingdanFile" type="primary" @click="viewShenqingdan">鏌ョ湅鐢宠鍗�</el-button>
<el-button v-if="[1,2,3].includes(model.unionApplyTbdStatus) &&(model.toubaodanFile || model.oubaodanSignedFile)" type="primary" @click="viewToubaodan">鏌ョ湅鎶曚繚鍗�</el-button>
<el-button v-if="[3].includes(model.unionApplyTbdStatus) &&(model.baoxiandanFile)" type="primary" @click="viewBaoxiandan">鏌ョ湅淇濋櫓鍗�</el-button>
@@ -80,15 +83,7 @@
align="center"
:label="getApplyTimeTitle(1,model.solutionType,model)">
</el-table-column>
- <el-table-column
- prop="insureNum"
- align="center"
- label="鎶曚繚浜烘暟">
- <template scope="{row}">
- <span>{{row.insureNum||0}} 浜�</span>
- </template>
- </el-table-column>
- <el-table-column prop="guaranteeNum" align="center" label="鍦ㄤ繚浜烘暟" >
+ <el-table-column prop="guaranteeNum" align="center" label="褰撳墠鍦ㄤ繚浜烘暟" >
<template scope="{row}">
<span>{{row.guaranteeNum||0}} 浜�</span>
</template>
@@ -104,10 +99,10 @@
<el-table-column
prop="currentFee"
align="center"
- label="宸蹭骇鐢熻垂鐢�">
- <template scope="{row}">
- <span>{{row.currentFee!=null?row.currentFee+' 鍏�': '-'}}</span>
- </template>
+ label="鎵规敼璐圭敤鍚堣">
+ <template slot-scope="{row}">
+ <span>{{row.changeMoney}}鍏�</span>
+ </template>
</el-table-column>
<el-table-column
prop="fee"
@@ -121,9 +116,9 @@
</div>
<div class="desc_item_cate">
<el-tabs v-model="activeName" @tab-click="handleClick">
- <el-tab-pane label="鍦ㄤ繚浜哄憳" name="0" ></el-tab-pane>
+ <el-tab-pane label="淇濆崟浜哄憳" name="0" ></el-tab-pane>
<el-tab-pane label="鍔�/鍑忎繚璁板綍" name="1"></el-tab-pane>
- <el-tab-pane label="鏇存崲娲鹃仯鍗曚綅璁板綍" name="2"></el-tab-pane>
+ <el-tab-pane :label="model.hasDispatchUnit !== 1 ? '鏇存崲娲鹃仯鍗曚綅' : '鏇存崲宸ョ璁板綍'" name="2"></el-tab-pane>
</el-tabs>
</div>
<div class="desc_item_search">
@@ -134,9 +129,10 @@
<el-option label="鍏ㄩ儴" value="0"></el-option>
<el-option label="淇濋殰涓�" value="1"></el-option>
<el-option label="涓嶅湪淇�" value="2"></el-option>
+ <el-option label="寰呯敓鏁�" value="3"></el-option>
</el-select>
</el-form-item>
- <el-form-item label="娲鹃仯鍗曚綅" prop="duId">
+ <el-form-item label="娲鹃仯鍗曚綅" prop="duId" v-if="model.hasDispatchUnit !== 1">
<el-select v-model="formInline.duId" placeholder="璇烽�夋嫨" @change="search">
<el-option
v-for="item in dwList"
@@ -216,6 +212,7 @@
<el-button @click="resetting" style="width: 80px;">閲嶇疆</el-button>
<el-button type="primary" style="width: 80px;" @click="exportExcel" v-if="activeName === '0'">瀵煎嚭鍚嶅崟</el-button>
<el-button type="primary" style="width: 100px;" @click="$refs.OperaApplyChangeMonthWindow.open('鍔犲噺淇濊垂鐢ㄦ湀搴︾粺璁�',model)" v-if="activeName === '1'">璐圭敤缁熻鏌ヨ</el-button>
+ <el-button type="primary" style="width: 120px;" @click="exportRecords" v-if="activeName === '1' && [5,27].includes(model.status)">瀵煎嚭鍔犲噺淇濊褰�</el-button>
</el-form-item>
</el-form>
</div>
@@ -248,12 +245,23 @@
</template>
</el-table-column>
<el-table-column
+ align="center"
+ :key="Math.random()"
+ label="鍦ㄤ繚鐘舵��">
+ <template slot-scope="{row}">
+ <span v-if="row.applyStatus === 0" style="color: #00BA92;">淇濋殰涓�</span>
+ <span v-if="row.applyStatus === 1" style="color: #999;">涓嶅湪淇�</span>
+ <span v-if="row.applyStatus === 2" style="color: #f95601;">寰呯敓鏁�</span>
+ </template>
+ </el-table-column>
+ <el-table-column
:key="Math.random()"
prop="idcardNo"
align="center"
label="韬唤璇佸彿">
</el-table-column>
<el-table-column
+ v-if="model.hasDispatchUnit !== 1"
:key="Math.random()"
prop="duName"
align="center"
@@ -410,7 +418,7 @@
:key="Math.random()"
prop="changeNum"
align="center"
- label="鏇存崲娲鹃仯鍗曚綅浜烘暟">
+ :label="model.hasDispatchUnit !== 1 ? '鏇存崲娲鹃仯鍗曚綅浜烘暟' : '鏇存崲宸ョ浜烘暟'">
</el-table-column>
<el-table-column
:key="Math.random()"
@@ -544,7 +552,7 @@
getMemberListOnlineSignLink, getSignTBQRSLink, getSignWTBTBDLink
} from '@/api/business/insuranceApply'
import { findListByDTO } from '@/api/business/dispatchUnit'
-import { fetchList } from '@/api/business/applyChange'
+import { fetchList, exportApplyJiajianBaoExcel } from '@/api/business/applyChange'
import { findListByDTO as worktypeFindListByDTO } from '@/api/business/worktype'
import { mapState } from 'vuex'
import {sendSms} from '@/api/business/smsEmail';
@@ -657,6 +665,15 @@
this.getDW()
this.getGZ()
},
+ exportRecords() {
+ exportApplyJiajianBaoExcel({ id: this.dataId })
+ .then(response => {
+ this.download(response)
+ })
+ },
+ viewConfirmationLetter() {
+ this.$refs.OperaPdfViewerWindow.open('鏌ョ湅鏂规纭涔�', this.model.fanganFile.fileurlFull)
+ },
getSignLink (flag) {
if (flag === 0) {
this.signTitle = '绛剧讲鏂规纭涔�'
@@ -688,6 +705,8 @@
// }, 500)
}).catch(err => {
this.$tip.apiFailed(err)
+ }).finally(() => {
+ this.loading = false
})
} else if (this.form.type === 1) {
getMemberListOnlineSignLink(this.form).then(res => {
@@ -698,6 +717,8 @@
// }, 500)
}).catch(err => {
this.$tip.apiFailed(err)
+ }).finally(() => {
+ this.loading = false
})
} else if (this.form.type === 2) {
getSignWTBTBDLink(this.form).then(res => {
@@ -708,6 +729,8 @@
// }, 500)
}).catch(err => {
this.$tip.apiFailed(err)
+ }).finally(() => {
+ this.loading = false
})
}
// })
diff --git a/company/src/components/business/allocateEnterprises.vue b/company/src/components/business/allocateEnterprises.vue
new file mode 100644
index 0000000..9488e2c
--- /dev/null
+++ b/company/src/components/business/allocateEnterprises.vue
@@ -0,0 +1,113 @@
+<template>
+ <GlobalWindow
+ class="menu-config-dialog"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ width="800px"
+ title="鍒嗛厤鏈嶅姟浼佷笟"
+ @confirm="confirm"
+ >
+ <p class="tip">涓虹敤鎴� <em>{{form.name || ''}}</em> 鍒嗛厤浼佷笟</p>
+ <el-transfer
+ :titles="['鏈垎閰嶄紒涓�', '宸插垎閰嶄紒涓�']"
+ v-model="form.companyIds"
+ :data="enterprise" />
+ </GlobalWindow>
+</template>
+
+<script>
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ import { allForFp } from '@/api/business/company'
+ import { auth, getById } from '@/api/business/customerService'
+ import { mapState } from 'vuex'
+ export default {
+ name: 'allocateEnterprises',
+ components: { GlobalWindow },
+ computed: {
+ ...mapState(['userInfo'])
+ },
+ data () {
+ return {
+ visible: false,
+ isWorking: false,
+ form: {
+ id: null,
+ name: '',
+ companyIds: []
+ },
+ enterprise: []
+ }
+ },
+ methods: {
+ open (title, id) {
+ this.title = title
+ this.visible = true
+ this.getCompany()
+ for (const key in this.form) {
+ this.form[key] = ''
+ }
+ getById(id)
+ .then(res => {
+ this.form.id = res.id
+ this.form.name = res.name
+ this.form.companyIds = res.customerCompanyList.map(item => item.companyId)
+ })
+ },
+ getCompany() {
+ allForFp({ type: this.userInfo.type })
+ .then(res => {
+ this.enterprise = res.map(item => {
+ return {
+ key: item.id,
+ label: item.name
+ }
+ })
+ })
+ },
+ confirm() {
+ let obj = {
+ id: this.form.id,
+ customerCompanyList: []
+ }
+ if (this.form.companyIds.length > 0) {
+ obj.customerCompanyList = this.form.companyIds.map(item => {
+ return {
+ companyId: item
+ }
+ })
+ }
+ this.isWorking = true
+ auth(obj)
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ }
+ }
+ }
+</script>
+<style>
+ .el-transfer-panel {
+ width: 300px !important;
+ }
+</style>
+<style scoped lang="scss">
+ @import "@/assets/style/variables.scss";
+ .global-window {
+ .tip {
+ margin-bottom: 12px;
+ em {
+ font-style: normal;
+ color: $primary-color;
+ font-weight: bold;
+ }
+ }
+ }
+</style>
diff --git a/company/src/components/business/authorizedEnterprise.vue b/company/src/components/business/authorizedEnterprise.vue
new file mode 100644
index 0000000..3817fde
--- /dev/null
+++ b/company/src/components/business/authorizedEnterprise.vue
@@ -0,0 +1,127 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="100%"
+ :withFooter="false"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-table
+ :data="tableData"
+ border
+ style="width: 100%">
+ <el-table-column
+ prop="username"
+ label="璐﹀彿">
+ </el-table-column>
+ <el-table-column
+ prop="realname"
+ label="濮撳悕">
+ </el-table-column>
+ <el-table-column
+ prop="mobile"
+ label="鑱旂郴鏂瑰紡">
+ </el-table-column>
+ <el-table-column
+ width="200"
+ prop="companyName"
+ label="鎺堟潈浼佷笟鍚嶇О">
+ </el-table-column>
+ <el-table-column
+ prop="auditName"
+ label="鎺堟潈浜�">
+ </el-table-column>
+ <el-table-column
+ width="170"
+ prop="createDate"
+ label="鎺堟潈鏃堕棿">
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔">
+ <template slot-scope="{row}">
+ <el-button type="text" @click="cancel(row.id)">鍙栨秷鎺堟潈</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <div style="width: 100%; height: 15px;"></div>
+ <el-pagination
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ :current-page="form.page"
+ :page-sizes="[10, 30, 50, 100]"
+ :page-size="form.size"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="total">
+ </el-pagination>
+ </GlobalWindow>
+</template>
+
+<script>
+ import BaseOpera from '@/components/base/BaseOpera'
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ import { page, deleteById } from '@/api/business/companyPermission'
+ export default {
+ name: 'authorizedEnterprise',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ model: {},
+ tableData: [],
+ form: {
+ page: 1,
+ capacity: 10,
+ model: {
+ userId: null
+ }
+ },
+ total: 0
+ }
+ },
+ methods: {
+ cancel(id) {
+ this.$confirm('纭畾鍙栨秷鎺堟潈璇ヤ紒涓氬悧?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ deleteById(id)
+ .then(res => {
+ this.getList()
+ })
+ }).catch(() => {
+
+ });
+ },
+ handleSizeChange(e) {
+ this.form.capacity = e
+ this.getList()
+ },
+ handleCurrentChange(e) {
+ this.form.page = e
+ this.getList()
+ },
+ open (title, id) {
+ this.title = title
+ this.visible = true
+ this.form.page = 1
+ this.form.capacity = 10
+ this.form.model.userId = id
+ this.getList()
+ },
+ getList() {
+ page(this.form)
+ .then(res => {
+ console.log(res)
+ this.total = res.total
+ this.tableData = res.records
+ })
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+
+</style>
diff --git a/company/src/components/business/detailsEntrustedInsurance.vue b/company/src/components/business/detailsEntrustedInsurance.vue
index 6b07c9c..d57101c 100644
--- a/company/src/components/business/detailsEntrustedInsurance.vue
+++ b/company/src/components/business/detailsEntrustedInsurance.vue
@@ -11,23 +11,40 @@
<div class="desc_item_label">
<div class="desc_item_label_left">
<span>鎶曚繚浜猴細{{ model.companyName }}</span>
- <span>淇濆崟鐘舵�侊細<span :class="'union-apply-status'+model.status" >{{ model.statusInfo }}</span></span>
+ <span>淇濆崟鐘舵�侊細
+ <span v-if="model.status === 5 && model.statusInfo === '寰呭鏍�'" style="color: #216EEE;">{{ model.statusInfo }}</span>
+ <span v-else-if="model.status === 3 && model.statusInfo === '宸茶繃鏈�'" style="color: #999;">{{ model.statusInfo }}</span>
+ <span v-else-if="model.status === 3 && model.statusInfo === '寰呯敓鏁�'" style="color: #f95601;">{{ model.statusInfo }}</span>
+ <span v-else-if="model.status === 4 && model.statusInfo === '宸查��鍥�'" style="color: red;">{{ model.statusInfo }}</span>
+ <span :class="'union-apply-status'+model.status" v-else>{{ model.statusInfo }}</span>
+ </span>
<span>鎻愪氦鏃堕棿锛歿{ model.createDate }}</span>
</div>
<div class="desc_item_label_right">
<template v-if="userInfo.type === 2">
- <el-button type="primary" @click="$refs.InsuranceDetails.open('瀵煎嚭璇﹀崟',model,0)">瀵煎嚭璇﹀崟</el-button>
+ <el-button type="primary" @click="$refs.InsuranceDetails.open('瀵煎嚭璇﹀崟',model,0)">瀵煎嚭璇﹀崟</el-button>
<el-button v-if="[0].includes(model.status) " type="primary" @click="$refs.OperaUnionApplyCheckWindow.open('涓婁紶鎶曚繚鍗�',model,2)">涓婁紶鎶曚繚鍗�</el-button>
- <el-button v-if="model.status == 1" type="primary" :disabled="loading" :loading="loading" @click="getSignLink(0)">绛剧讲鎶曚繚鍗�</el-button>
- <el-button v-if="[2,3,4].includes(model.status)" type="primary" @click="viewToubaodan">鏌ョ湅鎶曚繚鍗�</el-button>
- <el-button v-if="[2].includes(model.status) " type="primary" @click="$refs.OperaUnionApplyCheckWindow.open('涓婁紶淇濋櫓鍗�',model,3)">涓婁紶淇濋櫓鍗�</el-button>
+ <el-button v-if="model.status == 1" type="primary" :disabled="loading" :loading="loading" @click="getSignLink(0)">{{model.signType === 1 ? '绛剧讲鐢宠鍗�' : '绛剧讲鎶曚繚鍗�'}}</el-button>
+ <el-button v-if="[2,3,4].includes(model.status)" type="primary" @click="viewToubaodan">{{model.signType === 1 ? '鏌ョ湅鐢宠鍗�' : '鏌ョ湅鎶曚繚鍗�'}}</el-button>
+<!-- <el-button v-if="[2].includes(model.status) " type="primary" @click="$refs.OperaUnionApplyCheckWindow.open('涓婁紶淇濋櫓鍗�',model,3)">涓婁紶淇濋櫓鍗�</el-button>-->
<el-button v-if="model.status == 3" type="primary" @click="viewBaoxiandan">鏌ョ湅淇濋櫓鍗�</el-button>
+
+ <el-button v-if="[2,3,4,1,5].includes(model.status) && (model.toubaodanFile || model.toubaodanSignedFile)" type="primary" @click="viewToubaodan">{{model.signType === 1 ? '鏌ョ湅鐢宠鍗�' : '鏌ョ湅鎶曚繚鍗�'}}</el-button>
+ <el-button v-if="[0,1,2,5].includes(model.status) " type="danger" @click="$refs.OperaUnionApplyCheckWindow.open('閫�鍥炵敵璇�',model,1)">閫�鍥炵敵璇�</el-button>
+ <el-button v-if="[5].includes(model.status)" type="primary" @click="fusheng">鎶曚繚澶嶅</el-button>
+
<el-button v-if="[0,1,2].includes(model.status) " type="danger" @click="$refs.OperaUnionApplyCheckWindow.open('閫�鍥炵敵璇�',model,1)">閫�鍥炵敵璇�</el-button>
</template>
<template v-if="userInfo.type ===0">
+ <el-button v-if="[2,3,4,1,5].includes(model.status) && (model.toubaodanFile || model.toubaodanSignedFile)" type="primary" @click="viewToubaodan">{{model.signType === 1 ? '鏌ョ湅鐢宠鍗�' : '鏌ョ湅鎶曚繚鍗�'}}</el-button>
+ <el-button v-if="[0].includes(model.status) " type="primary" @click="$refs.OperaUnionApplyCheckWindow.open('涓婁紶鎶曚繚鍗�',model,2)">涓婁紶鎶曚繚鍗�</el-button>
+ <el-button v-if="[0, 1].includes(model.status)" type="primary" :disabled="loading" :loading="loading" @click="getSignLink(0)">{{model.signType === 1 ? '绛剧讲鐢宠鍗�' : '绛剧讲鎶曚繚鍗�'}}</el-button>
+ <el-button v-if="[0,1,2,5].includes(model.status) " type="danger" @click="$refs.OperaUnionApplyCheckWindow.open('閫�鍥炵敵璇�',model,1)">閫�鍥炵敵璇�</el-button>
+ <el-button v-if="[2].includes(model.status)" type="primary" @click="$refs.OperaUnionApplyCheckWindow.open('涓婁紶淇濋櫓鍗�',model,3)">涓婁紶淇濋櫓鍗�</el-button>
<el-button type="primary" @click="$refs.InsuranceDetails.open('瀵煎嚭璇﹀崟',model,0)">瀵煎嚭璇﹀崟</el-button>
- <el-button v-if="[2,3,4].includes(model.status)" type="primary" @click="viewToubaodan">鏌ョ湅鎶曚繚鍗�</el-button>
+<!-- <el-button v-if="[2,3,4].includes(model.status)" type="primary" @click="viewToubaodan">鏌ョ湅鎶曚繚鍗�</el-button>-->
<el-button v-if="[4].includes(model.status)" type="primary" @click="viewBaoxiandan">鏌ョ湅淇濋櫓鍗�</el-button>
+ <el-button v-if="[5].includes(model.status)" type="primary" @click="fusheng">鎶曚繚澶嶅</el-button>
</template>
</div>
</div>
@@ -98,9 +115,9 @@
</div>
<div class="desc_item_cate">
<el-tabs v-model="activeName" @tab-click="handleClick">
- <el-tab-pane label="鍦ㄤ繚浜哄憳" name="0" ></el-tab-pane>
+ <el-tab-pane label="淇濆崟浜哄憳" name="0" ></el-tab-pane>
<el-tab-pane label="鍔�/鍑忎繚璁板綍" name="1"></el-tab-pane>
- <el-tab-pane label="鏇存崲娲鹃仯鍗曚綅璁板綍" name="2"></el-tab-pane>
+ <el-tab-pane label="鏇存崲宸ョ璁板綍" name="2"></el-tab-pane>
</el-tabs>
</div>
<div class="desc_item_search">
@@ -111,6 +128,7 @@
<el-option label="鍏ㄩ儴" value="0"></el-option>
<el-option label="淇濋殰涓�" value="1"></el-option>
<el-option label="涓嶅湪淇�" value="2"></el-option>
+ <el-option label="寰呯敓鏁�" value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item label="鍛樺伐濮撳悕" prop="memberName">
@@ -178,6 +196,16 @@
</template>
</el-table-column>
<el-table-column
+ align="center"
+ :key="Math.random()"
+ label="鍦ㄤ繚鐘舵��">
+ <template slot-scope="{row}">
+ <span v-if="row.applyStatus === 0" style="color: #00BA92;">淇濋殰涓�</span>
+ <span v-if="row.applyStatus === 1" style="color: #999;">涓嶅湪淇�</span>
+ <span v-if="row.applyStatus === 2" style="color: #00BA92;">寰呯敓鏁�</span>
+ </template>
+ </el-table-column>
+ <el-table-column
:key="Math.random()"
prop="idcardNo"
align="center"
@@ -190,6 +218,7 @@
label="琚繚闄╀汉">
</el-table-column>
<el-table-column
+ v-if="model.hasDispatchUnit !== 1"
:key="Math.random()"
prop="duName"
align="center"
@@ -322,7 +351,7 @@
:key="Math.random()"
prop="changeNum"
align="center"
- label="鏇存崲娲鹃仯鍗曚綅浜烘暟">
+ label="鏇存崲宸ョ浜烘暟">
</el-table-column>
<el-table-column
:key="Math.random()"
@@ -450,7 +479,7 @@
import OperaApplyChangeUnitDetailWindow from '@/components/business/OperaApplyChangeUnitDetailWindow'
import OperaUnionApplyCheckWindow from '@/components/business/OperaUnionApplyCheckWindow'
-import { getById, getSignLink } from '@/api/business/unionApply'
+import { getById, getSignLink, reexamineCheck } from '@/api/business/unionApply'
import {
applyDetailPage,
@@ -560,6 +589,20 @@
this.getList()
this.getDW()
this.getGZ()
+ },
+ fusheng() {
+ this.$confirm('鏄惁纭畾澶嶅閫氳繃?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ reexamineCheck({ id: this.dataId })
+ .then(res => {
+ this.getDetail()
+ })
+ }).catch(() => {
+
+ });
},
getSignLink (flag) {
if (flag === 0) {
@@ -814,10 +857,11 @@
}, 500)
},
viewToubaodan () {
- this.fileData = this.taobaodanFileData;
- this.visibleFile=true
- this.fileTitle='鏌ョ湅鎶曚繚鍗�'
- this.fileFlag = 0
+ if (this.model.toubaodanSignedFile) {
+ this.$refs.OperaPdfViewerWindow.open(this.model.toubaodanSignedFile.name, this.model.toubaodanSignedFile.fileurlFull)
+ } else if (this.model.toubaodanFile) {
+ this.$refs.OperaPdfViewerWindow.open(this.model.toubaodanFile.name, this.model.toubaodanFile.fileurlFull)
+ }
},
viewBaoxiandan () {
this.fileFlag = 1
diff --git a/company/src/components/business/modification.vue b/company/src/components/business/modification.vue
index 53e9d17..7d186a0 100644
--- a/company/src/components/business/modification.vue
+++ b/company/src/components/business/modification.vue
@@ -10,6 +10,7 @@
<el-table v-if="form.solutionList && form.solutionList.length>0"
:data="form.solutionList"
border
+ border
style="width: 100%">
<el-table-column
label="搴忓彿"
@@ -23,8 +24,7 @@
align="center"
label="淇濋櫓鏂规">
<template slot-scope="scope">
-<!-- :value="{ id:item.id, baseId: item.baseId }"-->
- <el-select v-model="scope.row.solution.id" @change="changeSolution($event, scope.$index)" placeholder="璇烽�夋嫨">
+ <el-select v-model="scope.row.solution.id" :disabled="scope.row.disabled" filterable @change="changeSolution($event, scope.$index)" placeholder="璇烽�夋嫨">
<el-option
v-for="item in programme"
:key="item.id"
@@ -38,7 +38,7 @@
align="center"
label="濮旀墭鍟嗘埛">
<template slot-scope="scope">
- <el-select :ref="'shopSelect'+scope.$index" :disabled="scope.row.solution.type ==1" v-model="scope.row.shopId" clearable value-key="id" placeholder="璇烽�夋嫨">
+ <el-select :ref="'shopSelect'+scope.$index" disabled v-model="scope.row.shopId" clearable value-key="id" placeholder="璇烽�夋嫨">
<el-option
v-for="item in shops"
:key="item.id"
@@ -54,6 +54,14 @@
<template slot-scope="{row}">
<el-checkbox :true-label="1" :false-label="0" disabled v-model="row.canAdd">鍔犱繚</el-checkbox>
<el-checkbox :true-label="1" :false-label="0" disabled v-model="row.canReduce">鍑忎繚</el-checkbox>
+ </template>
+ </el-table-column>
+ <el-table-column
+ align="center"
+ label="绛剧讲鐘舵��">
+ <template slot-scope="{row}">
+ <template v-if="row.signStatus === 0">寰呯绔�</template>
+ <template v-else-if="row.signStatus === 1">宸茬绔�</template>
</template>
</el-table-column>
<el-table-column
@@ -116,9 +124,10 @@
if (item.id === e) {
baseId = item.baseId
this.form.solutionList[index].solution.type = item.type
- if(item.type == 1){
+ // console.log(item.type)
+ // if(item.type == 1){
this.form.solutionList[index].shopId =item.shopId
- }
+ // }
}
})
@@ -163,18 +172,20 @@
.then(resa => {
resa.forEach(item => {
this.form.solutionList.push({
+ disabled: true,
solution: { id: item.solutionId, baseId: item.solutionBaseId,type:item.solutionType },
shopId: item.shopId,
canAdd: 1,
- canReduce: 1
+ canReduce: 1,
+ signStatus: item.signStatus
})
})
- console.log(this.form.solutionList)
that.visible = true
})
},
add () {
this.form.solutionList.push({
+ disabled: false,
solution: { id: null, baseId: null },
shopId: null,
canAdd: 1,
diff --git a/company/src/components/business/operaCompanyUserApplyDescWindow.vue b/company/src/components/business/operaCompanyUserApplyDescWindow.vue
new file mode 100644
index 0000000..9c7a58e
--- /dev/null
+++ b/company/src/components/business/operaCompanyUserApplyDescWindow.vue
@@ -0,0 +1,168 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="100%"
+ :withFooter="false"
+ :visible.sync="visible"
+ >
+ <div class="info">
+ <div class="info_label">
+ <span>鐢宠璁板綍璇︽儏</span>
+ </div>
+ <div class="info_list">
+ <div class="info_list_item">
+ <div class="info_list_item_label">鐢宠浜猴細</div>
+ <div class="info_list_item_val">{{form.realName}}</div>
+ </div>
+ <div class="info_list_item">
+ <div class="info_list_item_label">鐢宠鏃堕棿锛�</div>
+ <div class="info_list_item_val">{{form.createDate}}</div>
+ </div>
+ <div class="info_list_item" style="width: 100%;">
+ <div class="info_list_item_label">鎺堟潈璐﹀彿锛�</div>
+ <div class="info_list_item_val">{{form.userName}}</div>
+ </div>
+ <div class="info_list_item" style="width: 100%;">
+ <div class="info_list_item_label">鎺堟潈绠$悊浼佷笟锛�</div>
+ <div class="info_list_item_val">{{form.companyNames}}</div>
+ </div>
+ <div class="info_list_item" style="width: 100%;">
+ <div class="info_list_item_label">鐢宠璇存槑锛�</div>
+ <div class="info_list_item_val">{{form.content}}</div>
+ </div>
+ <div class="info_list_item" style="width: 100%;">
+ <div class="info_list_item_label">鐢宠闄勪欢锛�</div>
+ <div class="info_list_item_val">
+ <div class="info_list_item_val_cul">
+ <u v-for="(item, index) in form.multifileList" :key="index" @click="openFile(item.name, item.fileurlFull)">{{item.name}}</u>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="info">
+ <div class="info_label">
+ <span>瀹℃壒鎯呭喌</span>
+ </div>
+ <div class="info_list">
+ <div class="info_list_item">
+ <div class="info_list_item_label">瀹℃壒缁撴灉锛�</div>
+ <div class="info_list_item_val">
+ <template v-if="form.status === 0">寰呭鏍�</template>
+ <template v-if="form.status === 1">瀹℃牳閫氳繃</template>
+ <template v-if="form.status === 2">瀹℃牳涓嶉�氳繃</template>
+ </div>
+ </div>
+ <div class="info_list_item">
+ <div class="info_list_item_label">瀹℃牳鏃堕棿锛�</div>
+ <div class="info_list_item_val">{{form.checkDate}}</div>
+ </div>
+ <div class="info_list_item" style="width: 100%;">
+ <div class="info_list_item_label">瀹℃牳璇存槑锛�</div>
+ <div class="info_list_item_val">{{form.checkInfo}}</div>
+ </div>
+ </div>
+ </div>
+ <!-- 棰勮pdf -->
+ <OperaPdfViewerWindow ref="OperaPdfViewerWindow" />
+ </GlobalWindow>
+</template>
+
+<script>
+ import BaseOpera from '@/components/base/BaseOpera'
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ import { getById } from '@/api/business/companyUserApply'
+ import { mapState } from 'vuex'
+ import OperaPdfViewerWindow from '@/components/business/OperaPdfViewerWindow'
+ export default {
+ name: 'operaCompanyUserApplyDescWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow, OperaPdfViewerWindow },
+ data () {
+ return {
+ form: {}
+ }
+ },
+ computed: {
+ ...mapState(['userInfo'])
+ },
+ methods: {
+ open (title, id) {
+ this.title = title
+ getById(id)
+ .then(res => {
+ console.log(res)
+ this.form = res
+ this.visible = true
+ })
+ },
+ openFile(name, url) {
+ this.$refs.OperaPdfViewerWindow.open(name, url)
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .info {
+ width: 100%;
+ .info_label {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-bottom: 20px;
+ span {
+ font-size: 18px;
+ font-weight: 600;
+ color: #000000;
+ }
+ }
+ .info_list {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ .info_list_item {
+ width: 50%;
+ display: flex;
+ align-items: start;
+ margin-bottom: 20px;
+ .info_list_item_label {
+ font-size: 15px;
+ flex-shrink: 0;
+ }
+ .info_list_item_val {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ font-size: 15px;
+ .info_list_item_val_cul {
+ display: flex;
+ flex-direction: column;
+ u {
+ font-size: 15px;
+ color: #2E68EC;
+ cursor: pointer;
+ margin-top: 5px;
+ &:first-child {
+ margin: 0;
+ }
+ }
+ }
+ .image {
+ width: 100px;
+ height: 100px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ overflow: hidden;
+ img {
+ width: 100%;
+ }
+ }
+ }
+ }
+ }
+ }
+</style>
diff --git a/company/src/components/business/selectPolicy.vue b/company/src/components/business/selectPolicy.vue
new file mode 100644
index 0000000..8d187e7
--- /dev/null
+++ b/company/src/components/business/selectPolicy.vue
@@ -0,0 +1,172 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="100%"
+ :withFooter="false"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+<!-- <el-form ref="form" :model="form" label-width="100px" inline>-->
+<!-- <el-form-item label="浼佷笟鍚嶇О" prop="name">-->
+<!-- <el-input v-model="form.model.name" placeholder="璇疯緭鍏�" @keypress.enter.native="getList"></el-input>-->
+<!-- </el-form-item>-->
+<!-- <el-form-item>-->
+<!-- <div style="display: flex; align-items: center;">-->
+<!-- <el-button type="primary" @click="getList">鎼滅储</el-button>-->
+<!-- <el-button @click="reset">閲嶇疆</el-button>-->
+<!-- </div>-->
+<!-- </el-form-item>-->
+<!-- </el-form>-->
+ <el-table
+ :data="tableData"
+ border
+ style="width: 100%">
+ <el-table-column label="搴忓彿" width="80px" align="center" fixed>
+ <template slot-scope="scope">
+ <span>{{scope.$index + 1}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="statusInfo" align="center" fixed label="鐘舵��">
+ <template slot-scope="{row}">
+ <span :class="'apply-status'+row.status">{{row.statusInfo}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="solutionsName" align="center" fixed label="淇濋櫓鏂规" min-width="150"></el-table-column>
+ <el-table-column label="绫诲瀷" fixed align="center">
+ <template slot-scope="{row}">
+ <span style="color: #00BA92" v-if="row.solutionType == 1">濮旀墭鎶曚繚</span>
+ <span style="color: #F95601;" v-else>鐩存帴鎶曚繚</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="淇濆崟鍙�" align="center" fixed>
+ <template slot-scope="{row}">
+ <span>{{row.code ? row.code : '-'}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="guaranteeNum" align="center" label="褰撳墠鍦ㄤ繚浜烘暟" width="120">
+ <template slot-scope="{row}">
+ <span>{{(row.guaranteeNum||0)}} 浜�</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鎶曚繚鏃堕暱" align="center">
+ <template slot-scope="{row}">
+ <span>{{(row.serviceDays - row.loseEfficacyDays) < 0 ? `-` : (row.serviceDays - row.loseEfficacyDays+'澶�')}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="fee" label="鎵规敼璐圭敤鍚堣" align="center" width="120">
+ <template slot-scope="{row}">
+ <span>{{row.changeMoney+' 鍏�'}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="fee" label="鎬昏垂鐢�" align="center">
+ <template slot-scope="{row}">
+ <span>{{row.fee!=null?row.fee+' 鍏�': '-'}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="createDate" label="鎻愪氦鏃ユ湡" align="center" min-width="150"></el-table-column>
+ <el-table-column prop="startTime" label="鎶曚繚鐢熸晥鏃ユ湡" align="center" min-width="150"></el-table-column>
+ <el-table-column prop="endTime" label="鎶曚繚澶辨晥鏃ユ湡" align="center" min-width="150"></el-table-column>
+ <el-table-column
+ fixed="right"
+ width="120"
+ label="鎿嶄綔">
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.factoryChange.open('鏇存崲娲鹃仯鍗曚綅鐢宠', { id: row.id })" v-if="isShow(row.status, row.endTime) && type === 2">{{ row.hasDispatchUnit === 1 ? '鏇存崲宸ョ' : '鏇存崲娲鹃仯鍗曚綅' }}</el-button>
+ <el-button type="text" @click="$refs.additionSubtractionApplication.open('鍔犲噺淇濈敵璇�', { id: row.id })" v-else-if="isShow(row.status, row.endTime) && type === 1">鍔犲噺淇濈敵璇�</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <div style="width: 100%; height: 15px;"></div>
+ <el-pagination
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ :current-page="form.page"
+ :page-sizes="[10, 30, 50, 100]"
+ :page-size="form.size"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="total">
+ </el-pagination>
+ <!-- 鍔犲噺淇濈敵璇� -->
+ <additionSubtractionApplication ref="additionSubtractionApplication" @success="selectItem" />
+ <!-- 鏇存崲娲鹃仯鍗曚綅鐢宠 -->
+ <factoryChange ref="factoryChange" @success="selectItem" />
+ </GlobalWindow>
+</template>
+
+<script>
+ import BaseOpera from '@/components/base/BaseOpera'
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ import additionSubtractionApplication from '@/components/enterprise/additionSubtractionApplication'
+ import factoryChange from '@/components/enterprise/factoryChange'
+ import { fetchList } from '@/api/business/insuranceApply'
+ export default {
+ name: 'selectPolicy',
+ extends: BaseOpera,
+ components: { GlobalWindow, additionSubtractionApplication, factoryChange },
+ data () {
+ return {
+ model: {},
+ tableData: [],
+ type: null,
+ form: {
+ page: 1,
+ capacity: 10,
+ model: {
+ companyId: '',
+ status: '5,27',
+ timeOut: 3
+ }
+ },
+ total: 0
+ }
+ },
+ methods: {
+ // 鍒ゆ柇鏄惁鏄剧ず鍔犲噺淇�
+ isShow(status, endTime) {
+ const currentDate = new Date();
+ const specifiedDate = new Date(endTime);
+ return [5,27].includes(status) && (currentDate < specifiedDate);
+ },
+ selectItem() {
+ this.$emit('success')
+ this.visible = false
+ },
+ handleSizeChange(e) {
+ this.form.capacity = e
+ this.getList()
+ },
+ handleCurrentChange(e) {
+ this.form.page = e
+ this.getList()
+ },
+ open (title, id, type) {
+ this.title = title
+ this.type = type
+ this.form.model.companyId = id
+ this.form.name = ''
+ this.visible = true
+ this.form.page = 1
+ this.form.capacity = 10
+ this.getList()
+ },
+ reset() {
+ this.form.page = 1
+ this.form.capacity = 10
+ this.form.model.name = ''
+ this.getList()
+ },
+ getList() {
+ fetchList(this.form)
+ .then(res => {
+ this.total = res.total
+ this.tableData = res.records
+ })
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+
+</style>
diff --git a/company/src/components/common/CommonHeader.vue b/company/src/components/common/CommonHeader.vue
index a5705fc..606771e 100644
--- a/company/src/components/common/CommonHeader.vue
+++ b/company/src/components/common/CommonHeader.vue
@@ -6,16 +6,40 @@
<!-- <div class="title-en">Diagnosis of Intelligent Manufacturing Integrated Service Platfrom</div> -->
</div>
<div class="user">
- <el-dropdown v-if="isLogined" trigger="click">
+ <!-- 浼佷笟 -->
+ <div style="display: flex; align-items: center;" v-if="userInfo.type === 1">
+ <div class="user_kf" v-if="info">
+ 鏈嶅姟浜哄憳锛歿{info.name}} {{info.mobile}}
+ </div>
+ <el-dropdown v-if="isLogined" trigger="click">
<span class="el-dropdown-link">
- <!-- <img v-if="userInfo != null" :src="userInfo.avatar == null ? `${require('@/assets/avatar/man.png')}` : userInfo.avatar" alt="">{{userInfo | displayName}}<i class="el-icon-arrow-down el-icon--right"></i> -->
- <img v-if="userInfo != null" style="width: 30px !important;" src="@/assets/avatar/man.png" alt="">{{userInfo | displayName}}<i class="el-icon-arrow-down el-icon--right"></i>
+ <img v-if="userInfo != null" class="img1" style="width: 20px !important;" src="@/assets/icons/ic_company@2x.png" alt="">{{userInfo.showCompany.name}}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
- <el-dropdown-menu slot="dropdown">
- <el-dropdown-item @click.native="changePwd">淇敼瀵嗙爜</el-dropdown-item>
- <el-dropdown-item @click.native="logout">閫�鍑虹櫥褰�</el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
+ <el-dropdown-menu slot="dropdown">
+ <el-dropdown-item @click.native="changeCompany(item)" v-for="(item, index) in userInfo.companyPermissionList" :key="index">{{item.companyName}}</el-dropdown-item>
+ </el-dropdown-menu>
+ </el-dropdown>
+ <el-dropdown v-if="isLogined" trigger="click" style="top: -7px;">
+ <span class="el-dropdown-link">
+ <img v-if="userInfo != null" class="img2" style="width: 30px !important;" src="@/assets/avatar/man.png" alt="">{{userInfo.realname}}<i class="el-icon-arrow-down el-icon--right"></i>
+ </span>
+ <el-dropdown-menu slot="dropdown">
+ <el-dropdown-item @click.native="changePwd">淇敼瀵嗙爜</el-dropdown-item>
+ <el-dropdown-item @click.native="logout">閫�鍑虹櫥褰�</el-dropdown-item>
+ </el-dropdown-menu>
+ </el-dropdown>
+ </div>
+ <div v-else>
+ <el-dropdown v-if="isLogined" trigger="click" style="top: -7px;">
+ <span class="el-dropdown-link">
+ <img v-if="userInfo != null" class="img2" style="width: 30px !important;" src="@/assets/avatar/man.png" alt="">{{userInfo | displayName}}<i class="el-icon-arrow-down el-icon--right"></i>
+ </span>
+ <el-dropdown-menu slot="dropdown">
+ <el-dropdown-item @click.native="changePwd">淇敼瀵嗙爜</el-dropdown-item>
+ <el-dropdown-item @click.native="logout">閫�鍑虹櫥褰�</el-dropdown-item>
+ </el-dropdown-menu>
+ </el-dropdown>
+ </div>
</div>
</div>
<!-- 淇敼瀵嗙爜 -->
@@ -43,7 +67,8 @@
<script>
import { mapState, mapMutations } from 'vuex'
import GlobalAlertWindow from './GlobalAlertWindow'
-import { logout, updatePwd } from '@/api/system/common'
+import { logout, updatePwd, switchCompany } from '@/api/system/common'
+import { findByCompanyId } from '@/api/business/customerService'
export default {
name: 'CommonHeader',
components: { GlobalAlertWindow },
@@ -65,6 +90,7 @@
changePwd: false
},
username: 'bob', // 鐢ㄦ埛鍚�
+ info: null,
// 淇敼瀵嗙爜寮规
changePwdData: {
form: {
@@ -88,6 +114,9 @@
},
created () {
document.title=this.systemTitle
+ if (this.userInfo.companyId) {
+ this.setFindByCompanyId(this.userInfo.companyId)
+ }
},
computed: {
...mapState(['menuData', 'userInfo']),
@@ -114,6 +143,24 @@
},
methods: {
...mapMutations(['setUserInfo', 'switchCollapseMenu']),
+ // 鍒囨崲浼佷笟
+ changeCompany(row) {
+ if (row.companyId === this.userInfo.companyId) {
+ this.$message.warning('涓嶈兘鍒囨崲褰撳墠浼佷笟')
+ return
+ }
+ switchCompany({ companyId: row.companyId })
+ .then(res => {
+ location.reload();
+ })
+ },
+ setFindByCompanyId(companyId) {
+ if (this.userInfo.type !== 1) return
+ findByCompanyId(companyId)
+ .then(res => {
+ this.info = res
+ })
+ },
// 淇敼瀵嗙爜
changePwd () {
this.visible.changePwd = true
@@ -167,7 +214,11 @@
}
}
</script>
-
+<style>
+ .el-dropdown-menu {
+ width: 240px !important;
+ }
+</style>
<style scoped lang="scss">
@import "@/assets/style/variables.scss";
.common-header {
@@ -205,13 +256,31 @@
padding-right: 25px;
background: url('../../assets/images/top_ic_bolang@2x.png') no-repeat;
flex-shrink: 0;
- text-align: right;
- .el-dropdown {
- top: 10px;
- color: #fff;
+ /*text-align: right;*/
+ display: flex;
+ align-items: center;
+ justify-content: end;
+ .user_kf {
+ color: #ffffff;
+ font-size: 14px;
+ margin-right: 30px;
}
- img {
- width: 32px;
+ .el-dropdown {
+ top: -2px;
+ color: #fff;
+ margin-right: 30px;
+ &:last-child {
+ margin: 0 !important;
+ }
+ }
+ .img1 {
+ width: 20px;
+ position: relative;
+ top: 5px;
+ margin-right: 10px;
+ }
+ .img2 {
+ width: 20px;
position: relative;
top: 10px;
margin-right: 10px;
diff --git a/company/src/components/common/UploadFile.vue b/company/src/components/common/UploadFile.vue
index 8624fa0..4bb6bfb 100644
--- a/company/src/components/common/UploadFile.vue
+++ b/company/src/components/common/UploadFile.vue
@@ -5,7 +5,7 @@
class="upload-demo"
:accept="uploadData.fileType"
:action="uploadImgUrl"
- :limit="1"
+ :limit="limit"
:before-remove="removes"
:on-exceed="handleExceed"
:on-success="handleFileSuccess"
@@ -42,7 +42,11 @@
type: String,
default: 'width: 190px; height: 190px;'
},
- uploadData: Object
+ uploadData: Object,
+ limit: {
+ type: Number,
+ default: () => 1
+ }
},
data() {
return {
@@ -70,9 +74,10 @@
}
},
methods: {
- removes() {
+ removes(e) {
this.uploaded=false
- this.$emit('remove')
+ console.log(e.imgaddr)
+ this.$emit('remove', e.imgaddr)
},
// 涓婁紶鍥剧墖
handleExceed(){
diff --git a/company/src/components/common/chooseCompany.vue b/company/src/components/common/chooseCompany.vue
new file mode 100644
index 0000000..34caaf5
--- /dev/null
+++ b/company/src/components/common/chooseCompany.vue
@@ -0,0 +1,144 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="100%"
+ :withFooter="false"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form ref="form" :model="form" label-width="100px" inline>
+ <el-form-item label="浼佷笟鍚嶇О" prop="name">
+ <el-input v-model="form.model.name" placeholder="璇疯緭鍏�" @keypress.enter.native="getList"></el-input>
+ </el-form-item>
+ <el-form-item>
+ <div style="display: flex; align-items: center;">
+ <el-button type="primary" @click="getList">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form-item>
+ </el-form>
+ <el-table
+ :data="tableData"
+ border
+ style="width: 100%">
+ <el-table-column
+ prop="name"
+ label="浼佷笟鍚嶇О">
+ </el-table-column>
+ <el-table-column
+ width="170"
+ prop="code"
+ label="缁熶竴淇$敤浠g爜">
+ </el-table-column>
+ <el-table-column
+ prop="createDate"
+ label="鍒涘缓鏃堕棿">
+ </el-table-column>
+ <el-table-column
+ prop="phone"
+ label="缁戝畾鎵嬫満">
+ </el-table-column>
+ <el-table-column
+ width="90"
+ label="鍚敤鐘舵��">
+ <template slot-scope="{row}">
+ <span v-if="row.status === 0">鍚敤</span>
+ <span v-if="row.status === 1">绂佺敤</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鐢靛瓙绛捐璇佺姸鎬�">
+ <template slot-scope="{row}">
+ <template v-if="row.signStatus === 0">寰呰璇�</template>
+ <template v-if="row.signStatus === 1">璁よ瘉涓�</template>
+ <template v-if="row.signStatus === 2">璁よ瘉澶辫触</template>
+ <template v-if="row.signStatus === 3">璁よ瘉閫氳繃</template>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔">
+ <template slot-scope="{row}">
+ <el-button type="text" @click="selectItem(row)">閫夋嫨</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <div style="width: 100%; height: 15px;"></div>
+ <el-pagination
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ :current-page="form.page"
+ :page-sizes="[10, 30, 50, 100]"
+ :page-size="form.size"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="total">
+ </el-pagination>
+ </GlobalWindow>
+</template>
+
+<script>
+ import BaseOpera from '@/components/base/BaseOpera'
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ import { fetchList } from '@/api/business/company'
+ export default {
+ name: 'chooseCompany',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ model: {},
+ tableData: [],
+ form: {
+ page: 1,
+ capacity: 10,
+ model: {
+ type: 0,
+ name: '',
+ status: 0,
+ isdeleted: 1
+ }
+ },
+ total: 0
+ }
+ },
+ methods: {
+ selectItem(row) {
+ this.$emit('submit', { companyId: row.id, companyName: row.name })
+ this.visible = false
+ },
+ handleSizeChange(e) {
+ this.form.capacity = e
+ this.getList()
+ },
+ handleCurrentChange(e) {
+ this.form.page = e
+ this.getList()
+ },
+ open (title, id) {
+ this.title = title
+ this.form.name = ''
+ this.visible = true
+ this.form.page = 1
+ this.form.capacity = 10
+ this.getList()
+ },
+ reset() {
+ this.form.page = 1
+ this.form.capacity = 10
+ this.form.model.name = ''
+ this.getList()
+ },
+ getList() {
+ fetchList(this.form)
+ .then(res => {
+ this.total = res.total
+ this.tableData = res.records
+ })
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+
+</style>
diff --git a/company/src/components/enterprise/OperaInsuranceApplyAddWindow.vue b/company/src/components/enterprise/OperaInsuranceApplyAddWindow.vue
index 15fb687..2b3f5b0 100644
--- a/company/src/components/enterprise/OperaInsuranceApplyAddWindow.vue
+++ b/company/src/components/enterprise/OperaInsuranceApplyAddWindow.vue
@@ -10,7 +10,7 @@
<div class="list">
<el-form :inline="true" ref="form" :model="form" :rules="rules" class="demo-form-inline">
<el-form-item label="淇濋櫓鏂规" prop="solutionId">
- <el-select v-model="form.solutionId" @change="changeSolution" placeholder="璇烽�夋嫨">
+ <el-select v-model="form.solutionId" filterable @change="changeSolution" placeholder="璇烽�夋嫨">
<el-option
v-for="item in company"
:key="item.id"
@@ -83,7 +83,8 @@
<div style="display: inline-block;margin-right: 30px;font-size: 14px"><span>鍚堣璐圭敤锛�</span>
<span style="font-weight: bold;color: red">{{sumFee}}</span>鍏�
</div>
- <el-button type="primary" @click="sele">閫夊彇娲鹃仯鍗曚綅</el-button>
+ <el-button type="primary" @click="sele(1)" v-if="item && item.hasDispatchUnit !== 1">閫夊彇娲鹃仯鍗曚綅</el-button>
+ <el-button type="primary" @click="sele(2)" v-if="item && item.hasDispatchUnit === 1">閫夊彇宸ョ</el-button>
</div>
</div>
<!-- show-summary
@@ -124,6 +125,7 @@
</template>
</u-table-column>
<u-table-column
+ v-if="item && item.hasDispatchUnit !== 1"
prop="duName"
label="娲鹃仯鍗曚綅">
</u-table-column>
@@ -183,7 +185,7 @@
import importEmployees from '@/components/enterprise/importEmployees'
import confirmJobType from '@/components/enterprise/confirmJobType'
import detailsPolicyholder from '@/components/business/detailsPolicyholder'
-import { all, getNewVersion } from '@/api/business/solutions'
+import { all, getNewVersion, getUseList } from '@/api/business/solutions'
import { mapState } from 'vuex'
import { create, getCountCyclePriceVO, getDetail, findList } from '@/api/business/insuranceApply'
import { UTable, UTableColumn } from 'umy-ui'
@@ -208,7 +210,8 @@
ID: null,
solutionId: '',
applyStartTime: '',
- applyEndTime: ''
+ applyEndTime: '',
+ companyId: null
},
solutionName: '',
type: '',
@@ -258,6 +261,7 @@
this.isWorking = true
// if (!this.form.id) {
create({
+ companyId: this.form.companyId,
applyDetailList: arr,
applyStartTime: this.form.applyStartTime,
applyEndTime: this.form.applyEndTime,
@@ -305,6 +309,10 @@
this.form.solutionId = ''
this.form.applyStartTime = ''
this.form.applyEndTime = ''
+ if (target.companyId) {
+ this.form.companyId = target.companyId
+ this.form.companyName = target.companyName
+ }
if (target && target.id) {
this.$nextTick(() => {
this.$refs.form.resetFields()
@@ -397,31 +405,90 @@
this.$message.warning('鑷冲皯娣诲姞涓�椤瑰憳宸�')
return
}
- for (let i = 0; i < this.tableData.length; i++) {
- console.log(this.tableData[i].worktypeId)
- console.log(this.tableData[i].duId)
- if (!this.tableData[i].worktypeId || !this.tableData[i].duId) {
- this.$message.warning('璇峰畬鍠勬淳閬e崟浣嶅拰宸ョ淇℃伅')
- return
+ if (this.item.hasDispatchUnit !== 1) {
+ for (let i = 0; i < this.tableData.length; i++) {
+ if (!this.tableData[i].worktypeId || !this.tableData[i].duId) {
+ this.$message.warning('璇峰畬鍠勬淳閬e崟浣嶅拰宸ョ淇℃伅')
+ return
+ }
+ }
+ } else {
+ for (let i = 0; i < this.tableData.length; i++) {
+ if (!this.tableData[i].worktypeId) {
+ this.$message.warning('璇峰畬鍠勬淳宸ョ淇℃伅')
+ return
+ }
}
}
-
let price = 0
// if (this.item && this.item.type != 1) {
this.tableData.forEach(item => {
price = price + item.fee
})
// }
- this.$refs.detailsPolicyholder.open('鎶曚繚璇︽儏鍗�', {
- companyName: this.userInfo.company.name,
- solutionName: this.item.name,
- solutionType: this.item.type,
- applyStartTime: this.form.applyStartTime,
- applyEndTime: this.form.applyEndTime,
- insureNum: this.tableData.length,
- totalPrice: price,
- detailList: this.tableData
- })
+ const endTime = Number(this.item.correctWarnTime.split(':')[0] + this.item.correctWarnTime.split(':')[1])
+ const now = new Date();
+ const hours = now.getHours();
+ const minutes = now.getMinutes();
+ const date = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`;
+ const startTime = Number(date.split(':')[0] + date.split(':')[1])
+ if (startTime > endTime) {
+ this.$confirm('鎮ㄥ凡瓒呰繃褰撳ぉ鏈�鏅氭壒鏀规椂闂达紝淇濆崟瀹為檯鐢熸晥鏃堕棿浠ヤ繚闄╁叕鍙稿鏍镐负鍑嗭紒', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ if (!this.form.companyId) {
+ this.$refs.detailsPolicyholder.open('鎶曚繚璇︽儏鍗�', {
+ companyName: this.userInfo.company.name,
+ solutionName: this.item.name,
+ solutionType: this.item.type,
+ applyStartTime: this.form.applyStartTime,
+ applyEndTime: this.form.applyEndTime,
+ insureNum: this.tableData.length,
+ totalPrice: price,
+ detailList: this.tableData
+ })
+ } else {
+ this.$refs.detailsPolicyholder.open('鎶曚繚璇︽儏鍗�', {
+ companyName: this.form.companyName,
+ solutionName: this.item.name,
+ solutionType: this.item.type,
+ applyStartTime: this.form.applyStartTime,
+ applyEndTime: this.form.applyEndTime,
+ insureNum: this.tableData.length,
+ totalPrice: price,
+ detailList: this.tableData
+ })
+ }
+ }).catch(() => {
+
+ });
+ } else {
+ if (!this.form.companyId) {
+ this.$refs.detailsPolicyholder.open('鎶曚繚璇︽儏鍗�', {
+ companyName: this.userInfo.company.name,
+ solutionName: this.item.name,
+ solutionType: this.item.type,
+ applyStartTime: this.form.applyStartTime,
+ applyEndTime: this.form.applyEndTime,
+ insureNum: this.tableData.length,
+ totalPrice: price,
+ detailList: this.tableData
+ })
+ } else {
+ this.$refs.detailsPolicyholder.open('鎶曚繚璇︽儏鍗�', {
+ companyName: this.form.companyName,
+ solutionName: this.item.name,
+ solutionType: this.item.type,
+ applyStartTime: this.form.applyStartTime,
+ applyEndTime: this.form.applyEndTime,
+ insureNum: this.tableData.length,
+ totalPrice: price,
+ detailList: this.tableData
+ })
+ }
+ }
}
})
},
@@ -470,21 +537,21 @@
this.$message.warning('璇峰厛閫夋嫨淇濋櫓鏂规')
return
}
- this.$refs.selectEmployees.open('閫夊彇鍛樺伐', { arr: this.tableData, price: this.price, type: 1 })
+ this.$refs.selectEmployees.open('閫夊彇鍛樺伐', { arr: this.tableData, price: this.price, type: 1, companyId: this.form.companyId })
},
addUser () {
if (!this.form.solutionId) {
this.$message.warning('璇峰厛閫夋嫨淇濋櫓鏂规')
return
}
- this.$refs.addEmployee.open('娣诲姞鍛樺伐', { arr: this.tableData, price: this.price, solutionId: this.form.solutionId })
+ this.$refs.addEmployee.open('娣诲姞鍛樺伐', { arr: this.tableData, price: this.price, solutionId: this.form.solutionId, hasDispatchUnit: this.item.hasDispatchUnit, companyId: this.userInfo.type === 1 ? this.userInfo.companyId : this.form.companyId })
},
uploadUser () {
if (!this.form.solutionId) {
this.$message.warning('璇峰厛閫夋嫨淇濋櫓鏂规')
return
}
- this.$refs.importEmployees.open('涓婁紶鍚嶅崟', { arr: this.tableData, solutionId: this.form.solutionId, type: 1, price: this.price })
+ this.$refs.importEmployees.open('涓婁紶鍚嶅崟', { arr: this.tableData, solutionId: this.form.solutionId, type: 1, hasDispatchUnit: this.item.hasDispatchUnit, price: this.price })
},
// 鍒囨崲鏂规
changeSolution (e) {
@@ -555,7 +622,7 @@
this.$refs.multipleTable.clearSelection()
},
// 閫夋嫨鍛樺伐
- sele () {
+ sele (type) {
if (!this.form.solutionId) {
this.$message.warning('璇烽�夋嫨淇濋櫓鏂规')
return
@@ -564,14 +631,18 @@
this.$message.warning('璇烽�夋嫨鍛樺伐')
return
}
- this.$refs.confirmJobType.open('纭宸ョ', { solutionId: this.form.solutionId })
+ this.$refs.confirmJobType.open('纭宸ョ', { solutionId: this.form.solutionId, type })
},
// 鏌ヨ鍏ㄩ儴鏂规
getCompany () {
- all({})
+ getUseList(this.form.companyId ? this.form.companyId : this.userInfo.companyId, 2)
.then(res => {
this.company = res
})
+ // all({ companyId: this.form.companyId })
+ // .then(res => {
+ // this.company = res
+ // })
},
getAgeByIdCard (idCard) {
const sexAndAge = {}
diff --git a/company/src/components/enterprise/addEmployeeWithDu.vue b/company/src/components/enterprise/addEmployeeWithDu.vue
index 7565552..80b00ca 100644
--- a/company/src/components/enterprise/addEmployeeWithDu.vue
+++ b/company/src/components/enterprise/addEmployeeWithDu.vue
@@ -14,7 +14,7 @@
<el-form-item label="韬唤璇佸彿" required>
<el-input v-model="item.idCard" maxlength="18" placeholder="璇疯緭鍏�"></el-input>
</el-form-item>
- <el-form-item label="娲鹃仯鍗曚綅" >
+ <el-form-item label="娲鹃仯鍗曚綅" v-if="hasDispatchUnit !== 1">
<el-select v-model="item.duId" @change="selectChange(index)" placeholder="璇烽�夋嫨" clearable>
<el-option
v-for="item in dispatching"
@@ -57,6 +57,8 @@
tempIndex: -1,
dispatching: [],
solutionId: null,
+ companyId: null,
+ hasDispatchUnit: null,
list: [
{
memberName: '',
@@ -79,6 +81,8 @@
this.visible = true
this.tempIndex = tempIndex
this.solutionId = obj.solutionId
+ this.companyId = obj.companyId
+ this.hasDispatchUnit = obj.hasDispatchUnit
this.dispatching = []
this.list = [
{
@@ -94,7 +98,14 @@
]
this.arr = obj.arr
this.price = obj.price
- this.getFindListByDTO()
+ if (obj.hasDispatchUnit === 1) {
+ this.getFindListByDTO()
+ } else {
+ worktype({ id: obj.solutionId, queryType: 0 })
+ .then(res => {
+ this.list[0].options = res
+ })
+ }
},
getFindListByDTO () {
findListByDTO({
@@ -128,17 +139,31 @@
})
},
add () {
- this.list.push({
- memberName: '',
- idCard: '',
- workTypeName: '',
- worktypeId: '',
- duName: '',
- duId: '',
- options: [],
- fee: '',
- id: this.tempIndex - 1
- })
+ if (!this.companyId) {
+ this.list.push({
+ memberName: '',
+ idCard: '',
+ workTypeName: '',
+ worktypeId: '',
+ duName: '',
+ duId: '',
+ options: [],
+ fee: '',
+ id: this.tempIndex - 1
+ })
+ } else {
+ this.list.push({
+ memberName: '',
+ idCard: '',
+ workTypeName: '',
+ worktypeId: '',
+ duName: '',
+ duId: '',
+ options: JSON.parse(JSON.stringify(this.list[0].options)),
+ fee: '',
+ id: this.tempIndex - 1
+ })
+ }
},
dele (index) {
this.list.splice(index, 1)
diff --git a/company/src/components/enterprise/additionSubtractionApplication.vue b/company/src/components/enterprise/additionSubtractionApplication.vue
index c3e10b6..b3c9821 100644
--- a/company/src/components/enterprise/additionSubtractionApplication.vue
+++ b/company/src/components/enterprise/additionSubtractionApplication.vue
@@ -68,25 +68,35 @@
align="center"
label="淇濋櫓鐢熸晥姝㈡湡">
</el-table-column>
- <el-table-column
- prop="insureNum"
- align="center"
- label="鎶曚繚浜烘暟">
- </el-table-column>
- <el-table-column
- prop="guaranteeNum"
- align="center"
- label="鍦ㄤ繚浜烘暟">
+<!-- <el-table-column-->
+<!-- prop="insureNum"-->
+<!-- align="center"-->
+<!-- label="鎶曚繚浜烘暟">-->
+<!-- </el-table-column>-->
+<!-- <el-table-column-->
+<!-- prop="guaranteeNum"-->
+<!-- align="center"-->
+<!-- label="鍦ㄤ繚浜烘暟">-->
+<!-- </el-table-column>-->
+ <el-table-column prop="guaranteeNum" align="center" label="褰撳墠鍦ㄤ繚浜烘暟" width="120">
+ <template slot-scope="{row}">
+ <span>{{(row.guaranteeNum||0)}} 浜�</span>
+ </template>
</el-table-column>
<el-table-column
prop="serviceDays"
align="center"
label="淇濆崟鏃堕暱锛堝ぉ锛�">
</el-table-column>
- <el-table-column
- prop="currentFee"
- align="center"
- label="宸蹭骇鐢熻垂鐢�(鍏�)">
+<!-- <el-table-column-->
+<!-- prop="currentFee"-->
+<!-- align="center"-->
+<!-- label="宸蹭骇鐢熻垂鐢�(鍏�)">-->
+<!-- </el-table-column>-->
+ <el-table-column prop="fee" label="鎵规敼璐圭敤鍚堣" align="center" width="120">
+ <template slot-scope="{row}">
+ <span>{{row.changeMoney+' 鍏�'}}</span>
+ </template>
</el-table-column>
<el-table-column
prop="fee"
@@ -109,10 +119,13 @@
<el-button type="danger" @click="deleItem">鍒犻櫎</el-button>
</div>
<div class="btns_item" v-if="activeName !== '1'">
- <el-button type="primary" @click="sele">閫夊彇娲鹃仯鍗曚綅</el-button>
+<!-- <el-button type="primary" @click="sele">閫夊彇娲鹃仯鍗曚綅</el-button>-->
+ <el-button type="primary" @click="sele(1)" v-if="item && item.hasDispatchUnit !== 1">閫夊彇娲鹃仯鍗曚綅</el-button>
+ <el-button type="primary" @click="sele(2)" v-if="item && item.hasDispatchUnit === 1">閫夊彇宸ョ</el-button>
</div>
</div>
<el-table
+ v-if="item"
:data="activeName === '0' ? form.addDetailList : form.delDetailList"
border
show-summary
@@ -145,6 +158,7 @@
</template>
</el-table-column>
<el-table-column
+ v-if="item && item.hasDispatchUnit !== 1"
prop="duName"
label="娲鹃仯鍗曚綅">
</el-table-column>
@@ -324,14 +338,6 @@
},
// 鑾峰彇鎶曚繚璇︽儏
getDetails () {
- // findList({ applyId: this.form.id })
- // .then(res => {
- // res.forEach(item => {
- // item.idCard = item.idcardNo
- // item.fee = ''
- // })
- // this.tableData = res
- // })
getDetail(this.form.id)
.then(res => {
this.list.push(res)
@@ -368,7 +374,20 @@
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '鎬讳环'
- } else if (index === 7) {
+ } else if (this.item.hasDispatchUnit === 1 && index === 6) {
+ let total = 0
+ if (this.activeName === '0') {
+ this.form.addDetailList.forEach(item => {
+ total += item.fee || 0
+ })
+ sums[index] = (total || 0).toFixed(2)
+ } else {
+ this.form.delDetailList.forEach(item => {
+ total += item.reducePrice
+ })
+ sums[index] = (total || 0).toFixed(2)
+ }
+ } else if (this.item.hasDispatchUnit !== 1 && index === 7) {
let total = 0
if (this.activeName === '0') {
this.form.addDetailList.forEach(item => {
@@ -450,56 +469,67 @@
// this.$message.warning('鑷冲皯娣诲姞涓�椤瑰憳宸�')
// return
// }
- for (let i = 0; i < this.form.addDetailList.length; i++) {
- if (!this.form.addDetailList[i].worktypeId || !this.form.addDetailList[i].duId) {
- this.$message.warning('璇峰畬鍠勫姞淇濇淳閬e崟浣嶅拰宸ョ淇℃伅')
- return
+ if (this.item.hasDispatchUnit !== 1) {
+ for (let i = 0; i < this.form.addDetailList.length; i++) {
+ if (!this.form.addDetailList[i].worktypeId || !this.form.addDetailList[i].duId) {
+ this.$message.warning('璇峰畬鍠勫姞淇濇淳閬e崟浣嶅拰宸ョ淇℃伅')
+ return
+ }
+ }
+ for (let i = 0; i < this.form.delDetailList.length; i++) {
+ if (!this.form.delDetailList[i].worktypeId || !this.form.delDetailList[i].duId) {
+ this.$message.warning('璇峰畬鍠勫噺淇濇淳閬e崟浣嶅拰宸ョ淇℃伅')
+ return
+ }
+ }
+ } else {
+ for (let i = 0; i < this.form.addDetailList.length; i++) {
+ if (!this.form.addDetailList[i].worktypeId) {
+ this.$message.warning('璇峰畬鍠勫姞淇濆伐绉嶄俊鎭�')
+ return
+ }
+ }
+ for (let i = 0; i < this.form.delDetailList.length; i++) {
+ if (!this.form.delDetailList[i].worktypeId) {
+ this.$message.warning('璇峰畬鍠勫噺淇濆伐绉嶄俊鎭�')
+ return
+ }
}
}
- for (let i = 0; i < this.form.delDetailList.length; i++) {
- if (!this.form.delDetailList[i].worktypeId || !this.form.delDetailList[i].duId) {
- this.$message.warning('璇峰畬鍠勫噺淇濇淳閬e崟浣嶅拰宸ョ淇℃伅')
- return
- }
+ let arr = this.company.filter(item => item.id === this.form.solutionId)
+ const endTime = Number(arr[0].correctWarnTime.split(':')[0] + arr[0].correctWarnTime.split(':')[1])
+ const now = new Date();
+ const hours = now.getHours();
+ const minutes = now.getMinutes();
+ const date = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`;
+ const startTime = Number(date.split(':')[0] + date.split(':')[1])
+ if (startTime > endTime) {
+ this.$confirm('鎮ㄥ凡瓒呰繃褰撳ぉ鏈�鏅氭壒鏀规椂闂达紝淇濆崟瀹為檯鐢熸晥鏃堕棿浠ヤ繚闄╁叕鍙稿鏍镐负鍑嗭紒', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ this.$refs.ApplyChangeDetails1.open('鍔犲噺淇濊鍗�', this.form.addDetailList, this.form.delDetailList, {
+ companyName: this.item.companyName,
+ solutionsName: this.form.solutionsName,
+ code: this.list[0].code,
+ startTime: this.list[0].startTime,
+ endTime: this.list[0].endTime,
+ applyStartTime: this.form.applyStartTime
+ })
+ }).catch(() => {
+
+ });
+ } else {
+ this.$refs.ApplyChangeDetails1.open('鍔犲噺淇濊鍗�', this.form.addDetailList, this.form.delDetailList, {
+ companyName: this.item.companyName,
+ solutionsName: this.form.solutionsName,
+ code: this.list[0].code,
+ startTime: this.list[0].startTime,
+ endTime: this.list[0].endTime,
+ applyStartTime: this.form.applyStartTime
+ })
}
-
- this.$refs.ApplyChangeDetails1.open('鍔犲噺淇濊鍗�', this.form.addDetailList, this.form.delDetailList, {
- companyName: this.userInfo.company.name,
- solutionsName: this.form.solutionsName,
- code: this.list[0].code,
- startTime: this.list[0].startTime,
- endTime: this.list[0].endTime,
- applyStartTime: this.form.applyStartTime
- })
-
- // return
-
- // this.form.addDetailList.forEach(item => {
- // item.idcardNo = item.idCard
- // })
- // this.form.delDetailList.forEach(item => {
- // item.idcardNo = item.idCard
- // })
- // // let arr = JSON.parse(JSON.stringify(this.form.addDetailList))
- // // arr.forEach(item => {
- // // item.idcardNo = item.idCard
- // // })
- // this.isWorking = true
- // create({
- // applyId: this.form.id,
- // addDetailList: this.form.addDetailList,
- // delDetailList: this.form.delDetailList,
- // validTime: this.form.applyStartTime,
- // type: 0
- // }).then(() => {
- // this.visible = false
- // this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
- // this.$emit('success')
- // }).catch(e => {
- // this.$tip.apiFailed(e)
- // }).finally(() => {
- // this.isWorking = false
- // })
}
})
},
@@ -534,9 +564,9 @@
return
}
if (this.activeName === '0') {
- this.$refs.addEmployee.open('娣诲姞鍔犱繚鍛樺伐', { arr: this.form.addDetailList, solutionId: this.item.newVersionSolutionId, price: this.price })
+ this.$refs.addEmployee.open('娣诲姞鍔犱繚鍛樺伐', { arr: this.form.addDetailList, solutionId: this.item.newVersionSolutionId, price: this.price, companyId: this.item.hasDispatchUnit === 1 ? '1' : '' })
} else {
- this.$refs.addEmployee.open('娣诲姞鍑忎繚鍛樺伐', { arr: this.form.delDetailList, solutionId: this.item.newVersionSolutionId, price: this.reducePrice })
+ this.$refs.addEmployee.open('娣诲姞鍑忎繚鍛樺伐', { arr: this.form.delDetailList, solutionId: this.item.newVersionSolutionId, price: this.reducePrice, companyId: this.item.hasDispatchUnit === 1 ? '1' : '' })
}
},
uploadUser () {
@@ -551,9 +581,9 @@
}
if (this.activeName === '0') {
- this.$refs.importEmployees.open('鍔犱繚鍛樺伐鍚嶅崟', { arr: this.form.addDetailList, type: 1, price: this.price, solutionId: this.item.newVersionSolutionId })
+ this.$refs.importEmployees.open('鍔犱繚鍛樺伐鍚嶅崟', { arr: this.form.addDetailList, type: 1, price: this.price, hasDispatchUnit: this.item.hasDispatchUnit, solutionId: this.item.newVersionSolutionId })
} else {
- this.$refs.importEmployees.open('鍑忎繚鍛樺伐鍚嶅崟', { arr: this.form.delDetailList, type: 0, price: this.reducePrice, solutionId: this.item.newVersionSolutionId, insuranceApplyId: this.form.id })
+ this.$refs.importEmployees.open('鍑忎繚鍛樺伐鍚嶅崟', { arr: this.form.delDetailList, type: 0, price: this.reducePrice, hasDispatchUnit: this.item.hasDispatchUnit, solutionId: this.item.newVersionSolutionId, insuranceApplyId: this.form.id })
}
},
// 鍒囨崲鏂规
@@ -603,7 +633,7 @@
this.$refs.multipleTable.clearSelection()
},
// 閫夋嫨鍛樺伐
- sele () {
+ sele (type) {
if (this.activeName === '0') {
if (this.addTrue !== 0) return this.$message.warning('褰撳墠淇濆崟鏆備笉鏀寔鎿嶄綔')
} else {
@@ -617,7 +647,7 @@
this.$message.warning('璇烽�夋嫨鍛樺伐')
return
}
- this.$refs.confirmJobType.open('纭宸ョ', { solutionId: this.item.newVersionSolutionId })
+ this.$refs.confirmJobType.open('纭宸ョ', { solutionId: this.item.newVersionSolutionId, type })
},
// 鏌ヨ鍏ㄩ儴鏂规
getCompany () {
diff --git a/company/src/components/enterprise/confirmJobType.vue b/company/src/components/enterprise/confirmJobType.vue
index 638a430..5425aec 100644
--- a/company/src/components/enterprise/confirmJobType.vue
+++ b/company/src/components/enterprise/confirmJobType.vue
@@ -7,7 +7,7 @@
@confirm="confirm"
>
<el-form class="demo-form-inline">
- <el-form-item label="娲鹃仯鍗曚綅" required>
+ <el-form-item label="娲鹃仯鍗曚綅" required v-if="type !== 2">
<el-select v-model="dw" @change="selectChange" placeholder="璇烽�夋嫨">
<el-option
v-for="item in dispatching"
@@ -45,6 +45,7 @@
form: {
solutionId: ''
},
+ type: null,
data: [],
dw: [],
gz: [],
@@ -59,9 +60,17 @@
this.gz = ''
this.form.solutionId = arr.solutionId
this.data = arr.seleData
+ this.type = arr.type
this.visible = true
this.options=[]
- this.getFindListByDTO()
+ if (arr.type === 2) {
+ worktype({ id: arr.solutionId, queryType: 0 })
+ .then(res => {
+ this.options = res
+ })
+ } else {
+ this.getFindListByDTO()
+ }
},
getFindListByDTO () {
findListByDTO({
@@ -85,9 +94,16 @@
})
},
confirm() {
- if(!this.dw || !this.gz){
- this.$message.error("璇峰厛閫夋嫨娲鹃仯鍗曚綅鍜屽伐绉嶏紒")
- return;
+ if (this.type === 2) {
+ if(!this.gz){
+ this.$message.error("璇峰厛閫夋嫨宸ョ锛�")
+ return;
+ }
+ } else {
+ if(!this.dw || !this.gz){
+ this.$message.error("璇峰厛閫夋嫨娲鹃仯鍗曚綅鍜屽伐绉嶏紒")
+ return;
+ }
}
let obj = {
workTypeName: '',
diff --git a/company/src/components/enterprise/factoryChange.vue b/company/src/components/enterprise/factoryChange.vue
index 9ee1676..9865d81 100644
--- a/company/src/components/enterprise/factoryChange.vue
+++ b/company/src/components/enterprise/factoryChange.vue
@@ -64,21 +64,31 @@
align="center"
label="淇濋櫓鐢熸晥姝㈡湡">
</el-table-column>
- <el-table-column
- prop="insureNum"
- align="center"
- label="鎶曚繚浜烘暟">
+<!-- <el-table-column-->
+<!-- prop="insureNum"-->
+<!-- align="center"-->
+<!-- label="鎶曚繚浜烘暟">-->
+<!-- </el-table-column>-->
+<!-- <el-table-column prop="guaranteeNum" align="center" label="鍦ㄤ繚浜烘暟" ></el-table-column>-->
+ <el-table-column prop="guaranteeNum" align="center" label="褰撳墠鍦ㄤ繚浜烘暟" width="120">
+ <template slot-scope="{row}">
+ <span>{{(row.guaranteeNum||0)}} 浜�</span>
+ </template>
</el-table-column>
- <el-table-column prop="guaranteeNum" align="center" label="鍦ㄤ繚浜烘暟" ></el-table-column>
<el-table-column
prop="serviceDays"
align="center"
label="淇濆崟鏃堕暱锛堝ぉ锛�">
</el-table-column>
- <el-table-column
- prop="currentFee"
- align="center"
- label="宸蹭骇鐢熻垂鐢�(鍏�)">
+<!-- <el-table-column-->
+<!-- prop="currentFee"-->
+<!-- align="center"-->
+<!-- label="宸蹭骇鐢熻垂鐢�(鍏�)">-->
+<!-- </el-table-column>-->
+ <el-table-column prop="fee" label="鎵规敼璐圭敤鍚堣" align="center" width="120">
+ <template slot-scope="{row}">
+ <span>{{row.changeMoney+' 鍏�'}}</span>
+ </template>
</el-table-column>
<el-table-column
prop="fee"
@@ -93,7 +103,9 @@
<el-button type="danger" @click="deleItem">鍒犻櫎</el-button>
</div>
<div class="btns_item">
- <el-button type="primary" @click="sele">閫夊彇娲鹃仯鍗曚綅</el-button>
+<!-- <el-button type="primary" @click="sele">閫夊彇娲鹃仯鍗曚綅</el-button>-->
+ <el-button type="primary" @click="sele(1)" v-if="item && item.hasDispatchUnit !== 1">閫夊彇娲鹃仯鍗曚綅</el-button>
+ <el-button type="primary" @click="sele(2)" v-if="item && item.hasDispatchUnit === 1">閫夊彇宸ョ</el-button>
</div>
</div>
<el-table
@@ -120,6 +132,7 @@
label="韬唤璇佸彿">
</el-table-column>
<el-table-column
+ v-if="item && item.hasDispatchUnit !== 1"
prop="oldDuName"
label="鍘熸淳閬e崟浣�">
</el-table-column>
@@ -128,6 +141,7 @@
label="鍘熸墍灞炲伐绉�">
</el-table-column>
<el-table-column
+ v-if="item && item.hasDispatchUnit !== 1"
prop="duName"
label="鍙樻洿鍚庢淳閬e崟浣�">
</el-table-column>
@@ -348,35 +362,41 @@
// this.$message.warning('鑷冲皯娣诲姞涓�椤瑰憳宸�')
// return
// }
- for (let i = 0; i < this.form.factory.length; i++) {
- if (!this.form.factory[i].worktypeId || !this.form.factory[i].duId) {
- this.$message.warning('璇峰畬鍠勬淳閬e崟浣嶅拰宸ョ淇℃伅')
- return
+ if (this.item.hasDispatchUnit !== 1) {
+ for (let i = 0; i < this.form.factory.length; i++) {
+ if (!this.form.factory[i].worktypeId || !this.form.factory[i].duId) {
+ this.$message.warning('璇峰畬鍠勬淳閬e崟浣嶅拰宸ョ淇℃伅')
+ return
+ }
+ }
+ } else {
+ for (let i = 0; i < this.form.factory.length; i++) {
+ if (!this.form.factory[i].worktypeId) {
+ this.$message.warning('璇峰畬鍠勫伐绉嶄俊鎭�')
+ return
+ }
}
}
- this.$refs.ApplyChangeUnitDetails1.open('鏇存崲娲鹃仯鍗曚綅璇﹀崟', this.form.factory, { ...this.list[0], applyStartTime: this.form.applyStartTime })
- // this.form.factory.forEach(item => {
- // item.idcardNo = item.idCard
- // })
- // let arr = JSON.parse(JSON.stringify(this.form.factory))
- // arr.forEach(item => {
- // item.idcardNo = item.idCard
- // })
- // this.isWorking = true
- // create({
- // applyId: this.form.id,
- // changeDetailList: this.form.factory,
- // validTime: this.form.applyStartTime,
- // type: 1
- // }).then(() => {
- // this.visible = false
- // this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
- // this.$emit('success')
- // }).catch(e => {
- // this.$tip.apiFailed(e)
- // }).finally(() => {
- // this.isWorking = false
- // })
+ let arr = this.company.filter(item => item.id === this.form.solutionId)
+ const endTime = Number(arr[0].correctWarnTime.split(':')[0] + arr[0].correctWarnTime.split(':')[1])
+ const now = new Date();
+ const hours = now.getHours();
+ const minutes = now.getMinutes();
+ const date = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`;
+ const startTime = Number(date.split(':')[0] + date.split(':')[1])
+ if (startTime > endTime) {
+ this.$confirm('鎮ㄥ凡瓒呰繃褰撳ぉ鏈�鏅氭壒鏀规椂闂达紝淇濆崟瀹為檯鐢熸晥鏃堕棿浠ヤ繚闄╁叕鍙稿鏍镐负鍑嗭紒', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ this.$refs.ApplyChangeUnitDetails1.open('鏇存崲娲鹃仯鍗曚綅璇﹀崟', this.form.factory, { ...this.list[0], applyStartTime: this.form.applyStartTime })
+ }).catch(() => {
+
+ });
+ } else {
+ this.$refs.ApplyChangeUnitDetails1.open('鏇存崲娲鹃仯鍗曚綅璇﹀崟', this.form.factory, { ...this.list[0], applyStartTime: this.form.applyStartTime })
+ }
}
})
},
@@ -403,7 +423,7 @@
this.$message.warning('璇峰厛閫夋嫨淇濋櫓鏂规')
return
}
- this.$refs.importEmployees.open('涓婁紶鍚嶅崟', { arr: this.form.factory, price: this.price })
+ this.$refs.importEmployees.open('涓婁紶鍚嶅崟', { arr: this.form.factory, price: this.price, hasDispatchUnit: this.item.hasDispatchUnit })
},
// 鍒囨崲鏂规
changeSolution1 (e) {
@@ -435,7 +455,7 @@
this.$refs.multipleTable.clearSelection()
},
// 閫夋嫨鍛樺伐
- sele () {
+ sele (type) {
if (!this.form.solutionId) {
this.$message.warning('璇烽�夋嫨淇濋櫓鏂规')
return
@@ -444,7 +464,7 @@
this.$message.warning('璇烽�夋嫨鍛樺伐')
return
}
- this.$refs.confirmJobType.open('纭宸ョ', { solutionId: this.newVersionSolutionId })
+ this.$refs.confirmJobType.open('纭宸ョ', { solutionId: this.newVersionSolutionId, type })
},
// 鏌ヨ鍏ㄩ儴鏂规
getCompany () {
diff --git a/company/src/components/enterprise/importEmployees.vue b/company/src/components/enterprise/importEmployees.vue
index a61616f..8e3f2df 100644
--- a/company/src/components/enterprise/importEmployees.vue
+++ b/company/src/components/enterprise/importEmployees.vue
@@ -48,7 +48,8 @@
applyId: null,
addList: [],
delList: [],
- fileName: ''
+ fileName: '',
+ hasDispatchUnit: null
}
},
methods: {
@@ -63,6 +64,7 @@
this.applyId = obj.insuranceApplyId
this.list = obj.arr
this.price = obj.price
+ this.hasDispatchUnit = obj.hasDispatchUnit
this.importing= false
this.confirming= false
},
@@ -70,7 +72,11 @@
exportTemplate () {
// 鎶曚繚鐢宠
if (this.type === 1) {
- window.open('/template/personnel_add.xlsx')
+ if (this.hasDispatchUnit === 1) {
+ window.open('/template/personnel_no.xlsx')
+ } else {
+ window.open('/template/personnel_add.xlsx')
+ }
} else {
window.open('/template/personnel_reduce.xlsx')
}
diff --git a/company/src/components/enterprise/renewalInsurance.vue b/company/src/components/enterprise/renewalInsurance.vue
index 6638b2a..861f3f1 100644
--- a/company/src/components/enterprise/renewalInsurance.vue
+++ b/company/src/components/enterprise/renewalInsurance.vue
@@ -26,14 +26,24 @@
<span>{{row.code ? row.code : '-'}}</span>
</template>
</el-table-column>
- <el-table-column prop="insureNum" label="鎶曚繚浜烘暟"></el-table-column>
- <el-table-column prop="guaranteeNum" label="鍦ㄤ繚浜烘暟" ></el-table-column>
+ <el-table-column prop="guaranteeNum" align="center" label="褰撳墠鍦ㄤ繚浜烘暟" width="120">
+ <template slot-scope="{row}">
+ <span>{{(row.guaranteeNum||0)}} 浜�</span>
+ </template>
+ </el-table-column>
+<!-- <el-table-column prop="insureNum" label="鎶曚繚浜烘暟"></el-table-column>-->
+<!-- <el-table-column prop="guaranteeNum" label="鍦ㄤ繚浜烘暟" ></el-table-column>-->
<el-table-column label="鎶曚繚鏃堕暱锛堝ぉ锛�">
<template slot-scope="{row}">
<span>{{row.serviceDays < 0 ? `-` : row.serviceDays}}</span>
</template>
</el-table-column>
- <el-table-column prop="currentFee" label="宸蹭骇鐢熻垂鐢�"></el-table-column>
+<!-- <el-table-column prop="currentFee" label="宸蹭骇鐢熻垂鐢�"></el-table-column>-->
+ <el-table-column prop="fee" label="鎵规敼璐圭敤鍚堣" align="center" width="120">
+ <template slot-scope="{row}">
+ <span>{{row.changeMoney+' 鍏�'}}</span>
+ </template>
+ </el-table-column>
<el-table-column prop="fee" label="鎬昏垂鐢紙鍏冿級"></el-table-column>
<el-table-column prop="endTime" label="淇濋櫓鐢熸晥姝㈡湡"></el-table-column>
<el-table-column label="澶辨晥鍓╀綑锛堝ぉ锛�">
diff --git a/company/src/components/enterprise/selectEmployees.vue b/company/src/components/enterprise/selectEmployees.vue
index dfa5994..90c6943 100644
--- a/company/src/components/enterprise/selectEmployees.vue
+++ b/company/src/components/enterprise/selectEmployees.vue
@@ -81,6 +81,7 @@
confirming:false,
type: '',
val: '',
+ companyId: null,
memberIds:[],
loading:false,
memberList:[],
@@ -115,6 +116,7 @@
if (obj.type) {
this.type = obj.type
}
+ this.companyId = obj.companyId
this.list = []
if (obj.insuranceApplyId) {
this.insuranceApplyId = obj.insuranceApplyId
@@ -162,9 +164,6 @@
}
item.fee = this.price
})
-
- console.log(this.oldList)
- console.log(this.seleData)
this.confirming=false
this.$emit('result', this.seleData)
this.seleData=[]
@@ -197,6 +196,7 @@
this.loading = true;
findListByDTO({
name: query,
+ companyId: this.companyId,
insuranceApplyId: this.insuranceApplyId,
notInInsuranceApplyId: this.notInInsuranceApplyId,
validTime: this.validTime
diff --git a/company/src/components/system/role/PermissionConfigWindow.vue b/company/src/components/system/role/PermissionConfigWindow.vue
index 17476a0..7c2c014 100644
--- a/company/src/components/system/role/PermissionConfigWindow.vue
+++ b/company/src/components/system/role/PermissionConfigWindow.vue
@@ -2,7 +2,7 @@
<GlobalWindow
:visible.sync="visible"
:confirm-working="isWorking"
- width="582px"
+ width="800px"
title="閰嶇疆瑙掕壊鏉冮檺"
@confirm="confirm"
>
@@ -122,3 +122,8 @@
}
}
</style>
+<style>
+ .el-transfer-panel {
+ width: 300px !important;
+ }
+</style>
diff --git a/company/src/components/system/role/Permissions.vue b/company/src/components/system/role/Permissions.vue
new file mode 100644
index 0000000..d7bed0a
--- /dev/null
+++ b/company/src/components/system/role/Permissions.vue
@@ -0,0 +1,127 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鏉冮檺绫诲瀷" prop="type">
+ <el-select v-model="form.type" @change="form.customData === []" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in options"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鑷畾涔夐儴闂�" prop="customData" v-if="form.type === 4">
+ <el-cascader
+ :options="organization"
+ v-model="form.customData"
+ placeholder="璇烽�夋嫨涓婄骇缁勭粐"
+ :props="{ label: 'name', value: 'id', multiple: true, checkStrictly: true }"
+ clearable />
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+ import BaseOpera from '@/components/base/BaseOpera'
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ import { tree } from '@/api/business/companyDepartment'
+ import { createRoleDataPermission } from '@/api/system/role'
+ export default {
+ name: 'Permissions',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ roleId: null,
+ type: '',
+ customData: []
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ type: [
+ { required: true, message: '璇烽�夋嫨鏉冮檺绫诲瀷' }
+ ],
+ customData: [
+ { required: true, message: '璇烽�夋嫨閮ㄩ棬' }
+ ]
+ },
+ organization: [],
+ options: [
+ { label: '鍏ㄩ儴', value: 0 },
+ { label: '鎵�灞為儴闂ㄥ強涓嬪睘閮ㄩ棬', value: 1 },
+ { label: '鎵�灞為儴闂ㄥ強鍏跺瓙瀛欓儴闂�', value: 2 },
+ { label: '浠呮墍灞為儴闂�', value: 3 },
+ { label: '鑷畾涔夐儴闂�', value: 4 },
+ { label: '浠呰嚜宸�', value: -1 }
+ ]
+ }
+ },
+ methods: {
+ confirm () {
+ this.$refs.form.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ this.isWorking = true
+ let obj = JSON.parse(JSON.stringify(this.form))
+ if (obj.customData.length > 0) {
+ obj.customData = obj.customData.flat().join(',')
+ } else {
+ obj.customData = ''
+ }
+ createRoleDataPermission(obj)
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ })
+ },
+ getTree() {
+ tree()
+ .then(records => {
+ this.organization = records
+ })
+ },
+ open (title, target) {
+ this.title = title
+ this.visible = true
+ this.getTree()
+ // 鏂板缓
+ if (target == null) {
+ this.$nextTick(() => {
+ this.$refs.form.resetFields()
+ this.form[this.configData['field.id']] = null
+ })
+ return
+ }
+ // 缂栬緫
+ this.$nextTick(() => {
+ for (const key in this.form) {
+ this.form[key] = target[key]
+ }
+ })
+ }
+ },
+ created () {
+ this.config({
+ api: '/system/role'
+ })
+ }
+ }
+</script>
diff --git a/company/src/components/system/user/OperaUserWindow.vue b/company/src/components/system/user/OperaUserWindow.vue
index a64d417..85dce16 100644
--- a/company/src/components/system/user/OperaUserWindow.vue
+++ b/company/src/components/system/user/OperaUserWindow.vue
@@ -23,6 +23,14 @@
<el-button type="primary" style="flex-shrink: 0; margin-left: 15px;" v-else>{{num}}s</el-button>
</div>
</el-form-item>
+ <el-form-item label="閮ㄩ棬" prop="departmentId">
+ <el-cascader
+ :options="organization"
+ v-model="form.departmentId"
+ placeholder="璇烽�夋嫨"
+ :props="{ label: 'name', value: 'id', children: 'childList', checkStrictly: true }"
+ clearable />
+ </el-form-item>
<el-form-item label="鎶勯�佹枃浠堕偖绠�" prop="email">
<el-input v-model="form.email" placeholder="璇疯緭鍏�" v-trim />
</el-form-item>
@@ -37,7 +45,7 @@
import PositionSelect from '@/components/common/PositionSelect'
import { checkMobile, checkEmail } from '@/utils/form'
import { sendSms } from '@/api/business/smsEmail'
-
+import { tree } from '@/api/business/companyDepartment'
export default {
name: 'OperaUserWindow',
extends: BaseOpera,
@@ -51,10 +59,12 @@
realname: '', // 濮撳悕
mobile: '', // 鎵嬫満鍙风爜
email: '',
- captcha: ''
+ captcha: '',
+ departmentId: ''
},
num: 0,
timer: null,
+ organization: [],
// 楠岃瘉瑙勫垯
rules: {
username: [
@@ -66,6 +76,9 @@
mobile: [
{ required: true, validator: checkMobile }
],
+ departmentId: [
+ { required: true, message: '璇烽�夋嫨閮ㄩ棬' }
+ ],
email: [
{ required: true, message: '璇疯緭鍏ラ偖绠�' }
]
@@ -73,6 +86,52 @@
}
},
methods: {
+ __confirmCreate () {
+ this.$refs.form.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ let obj = JSON.parse(JSON.stringify(this.form))
+ obj.departmentId = obj.departmentId[obj.departmentId.length - 1]
+ // 璋冪敤鏂板缓鎺ュ彛
+ this.isWorking = true
+ this.api.create(obj)
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('鏂板缓鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ })
+ },
+ __confirmEdit () {
+ this.$refs.form.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ let obj = JSON.parse(JSON.stringify(this.form))
+ obj.departmentId = obj.departmentId[obj.departmentId.length - 1]
+ // 璋冪敤鏂板缓鎺ュ彛
+ this.isWorking = true
+ this.api.updateById(obj)
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('淇敼鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ })
+ },
send() {
if (!this.form.mobile) {
this.$message.warning('璇疯緭鍏ユ墜鏈哄彿')
@@ -82,6 +141,12 @@
.then(res => {
this.num = 60
this.setTime()
+ })
+ },
+ getTree() {
+ tree()
+ .then(records => {
+ this.organization = records
})
},
setTime() {
@@ -100,6 +165,7 @@
open (title, target) {
this.title = title
this.visible = true
+ this.getTree()
clearInterval(this.timer)
this.num = 0
// 鏂板缓
@@ -107,8 +173,8 @@
this.$nextTick(() => {
this.$refs.form.resetFields()
this.form.id = null
- this.form.departmentId = null
- this.form.positionIds = []
+ // this.form.departmentId = null
+ // this.form.positionIds = []
})
return
}
@@ -117,8 +183,8 @@
for (const key in this.form) {
this.form[key] = target[key]
}
- this.form.departmentId = target.department == null ? null : target.department.id
- this.form.positionIds = target.positions == null ? [] : target.positions.map(p => p.id)
+ // this.form.departmentId = target.department == null ? null : target.department.id
+ // this.form.positionIds = target.positions == null ? [] : target.positions.map(p => p.id)
})
}
},
diff --git a/company/src/components/system/user/RoleConfigWindow.vue b/company/src/components/system/user/RoleConfigWindow.vue
index 5b029f7..3bf8d7a 100644
--- a/company/src/components/system/user/RoleConfigWindow.vue
+++ b/company/src/components/system/user/RoleConfigWindow.vue
@@ -2,7 +2,7 @@
<GlobalWindow
:visible.sync="visible"
:confirm-working="isWorking"
- width="582px"
+ width="800px"
title="閰嶇疆鐢ㄦ埛瑙掕壊"
@confirm="confirm"
>
@@ -125,3 +125,8 @@
}
}
</style>
+<style>
+ .el-transfer-panel {
+ width: 300px !important;
+ }
+</style>
diff --git a/company/src/components/system/user/allocationEnterprises.vue b/company/src/components/system/user/allocationEnterprises.vue
index d9a9c14..0a26f64 100644
--- a/company/src/components/system/user/allocationEnterprises.vue
+++ b/company/src/components/system/user/allocationEnterprises.vue
@@ -2,8 +2,8 @@
<GlobalWindow
:visible.sync="visible"
:confirm-working="isWorking"
- width="582px"
- title="閰嶇疆鐢ㄦ埛瑙掕壊"
+ width="800px"
+ title="鍒嗛厤浼佷笟"
@confirm="confirm"
>
<p class="tip" v-if="user != null">涓虹敤鎴� <em>{{user.realname}}</em> 鍒嗛厤浼佷笟</p>
@@ -91,9 +91,14 @@
}
}
</script>
-
+<style>
+ .el-transfer-panel {
+ width: 300px !important;
+ }
+</style>
<style scoped lang="scss">
@import "@/assets/style/variables.scss";
+
// 瑙掕壊閰嶇疆
.global-window {
.tip {
diff --git a/company/src/layouts/AppLayout.vue b/company/src/layouts/AppLayout.vue
index 96b84b5..ab907f4 100644
--- a/company/src/layouts/AppLayout.vue
+++ b/company/src/layouts/AppLayout.vue
@@ -47,7 +47,8 @@
// 浼佷笟绔敤鎴疯缃按鍗�
if (this.userInfo.type === 1 || this.userInfo.type === 2) {
if(this.userInfo.company && this.userInfo.company.name){
- Watermark.set(this.userInfo.company.name, this.$refs.containerS);
+ Watermark.set(this.userInfo.showCompany.name, this.$refs.containerS);
+ // Watermark.set(this.userInfo.company.name, this.$refs.containerS);
}
}
},
diff --git a/company/src/main.js b/company/src/main.js
index e3587f1..175888f 100644
--- a/company/src/main.js
+++ b/company/src/main.js
@@ -10,7 +10,6 @@
import plugins from './plugins'
import { mapState, mapMutations } from 'vuex'
import { fetchMenuTree } from './api/system/menu'
-
Vue.config.productionTip = false
Vue.use(ElementUI, {
size: 'small'
@@ -19,7 +18,6 @@
Vue.use(directives)
Vue.use(filters)
Vue.use(plugins)
-
new Vue({
data: {
loading: false
diff --git a/company/src/utils/request.js b/company/src/utils/request.js
index 39e92c7..ea38661 100644
--- a/company/src/utils/request.js
+++ b/company/src/utils/request.js
@@ -42,8 +42,7 @@
// 鏂板缓鍝嶅簲鎷︽埅鍣�
axiosInstance.interceptors.response.use((response) => {
- // console.log(response.status)
- // debugger
+ // console.log(response)
// 璇锋眰澶辫触
if (response.status !== 200) {
return Promise.reject(new Error('鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庡啀璇�'))
@@ -66,6 +65,7 @@
}
return response.data.data
}, function (error) {
+ console.log(error)
if (error.code == null) {
return Promise.reject(new Error('鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庡啀璇�'))
}
diff --git a/company/src/utils/resetMessage.js b/company/src/utils/resetMessage.js
new file mode 100644
index 0000000..4fca990
--- /dev/null
+++ b/company/src/utils/resetMessage.js
@@ -0,0 +1,18 @@
+import { Message } from 'element-ui';
+
+let messageInstance = null;
+
+export const showMessage = (message) => {
+ if (messageInstance) {
+ // 濡傛灉宸茬粡瀛樺湪涓�涓秷鎭彁绀哄疄渚嬶紝鍒欏厛鍏抽棴瀹�
+ Message.closeAll();
+ }
+
+ // 鏄剧ず鏂扮殑娑堟伅鎻愮ず锛屽苟淇濆瓨璇ュ疄渚�
+ messageInstance = Message({
+ message: message,
+ onClose: () => {
+ messageInstance = null; // 褰撴秷鎭彁绀哄叧闂椂锛屽皢瀹炰緥缃负null
+ }
+ });
+}
diff --git a/company/src/views/business/applyChange.vue b/company/src/views/business/applyChange.vue
index 1e2c6e7..2031d8a 100644
--- a/company/src/views/business/applyChange.vue
+++ b/company/src/views/business/applyChange.vue
@@ -9,9 +9,15 @@
<el-option label="寰呭鏍�" value="1"></el-option>
<el-option label="宸茬敓鏁�" value="2"></el-option>
<el-option label="鐢宠閫�鍥�" value="3"></el-option>
- <!-- 3 4 閮芥槸閫�鍥炵敵璇蜂腑-->
<el-option label="宸查��鍥�" value="5"></el-option>
<el-option label="宸插叧闂�" value="6"></el-option>
+ <el-option label="鎵规敼鐢宠涓�" value="9"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鎶曚繚绫诲瀷" prop="solutionType">
+ <el-select v-model="searchForm.solutionType" placeholder="璇烽�夋嫨" @change="search">
+ <el-option label="鐩翠繚鎶曚繚" :value="0"></el-option>
+ <el-option label="濮旀墭鎶曚繚" :value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="鎶曚繚浼佷笟" prop="companyId">
@@ -52,6 +58,9 @@
</el-form>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
+ <ul class="toolbar">
+ <li><el-button type="primary" @click="$refs.chooseCompany.open('閫夋嫨浼佷笟')">鏂板</el-button></li>
+ </ul>
<el-table
v-loading="isWorking.search"
:data="tableData.list"
@@ -70,6 +79,7 @@
<span :class="'change-status'+row.status" v-if="row.status === 3 || row.status === 4">閫�鍥炵敵璇�</span>
<span :class="'change-status'+row.status" v-if="row.status ===5 || row.status === 8">宸查��鍥�</span>
<span :class="'change-status'+row.status" v-if="row.status ===6">宸插叧闂�</span>
+ <span :class="'change-status'+row.status" v-if="row.status ===9">鎵规敼鐢宠涓�</span>
</template>
</el-table-column>
<el-table-column prop="companyName" label="鎶曚繚浼佷笟" min-width="100px"></el-table-column>
@@ -85,7 +95,7 @@
fixed="right"
>
<template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaApplyChangeDetailWindow.open('鍔犲噺淇濊鎯�', row)">鏌ョ湅璇︽儏</el-button>
+ <el-button type="text" @click="openEdit(row)">鏌ョ湅璇︽儏</el-button>
</template>
</el-table-column>
</el-table>
@@ -98,6 +108,11 @@
</template>
<!-- 璇︽儏 -->
<OperaApplyChangeDetailWindow ref="operaApplyChangeDetailWindow" @success="handlePageChange"/>
+ <OperaUnionChangeDetailWindow ref="OperaUnionChangeDetailWindow" @success="handlePageChange"/>
+ <!-- 閫夋嫨浼佷笟 -->
+ <chooseCompany ref="chooseCompany" @submit="getCompany" />
+ <!-- 閫夋嫨淇濆崟 -->
+ <selectPolicy ref="selectPolicy" @success="handlePageChange" />
</TableLayout>
</template>
@@ -105,13 +120,16 @@
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
+import OperaUnionChangeDetailWindow from '@/components/business/OperaUnionChangeDetailWindow'
import OperaApplyChangeDetailWindow from '@/components/business/OperaApplyChangeDetailWindow'
import {all as solutionAll, all} from '@/api/business/solutions'
import {pageAll as companyAll} from "@/api/business/company";
+import chooseCompany from '@/components/common/chooseCompany'
+import selectPolicy from '@/components/business/selectPolicy'
export default {
name: 'add_subtract',
extends: BaseTable,
- components: { TableLayout, Pagination, OperaApplyChangeDetailWindow },
+ components: { TableLayout, Pagination, OperaApplyChangeDetailWindow, OperaUnionChangeDetailWindow, chooseCompany, selectPolicy },
data () {
return {
// 鎼滅储
@@ -122,7 +140,7 @@
createDateE: '',
createDateS: '',
companyId: '',
- solutionType: 0,
+ solutionType: '',
baseSolutionsId: '',
time: []
},
@@ -141,6 +159,17 @@
this.loadSelectList()
},
methods: {
+ getCompany(e) {
+ this.$refs.selectPolicy.open('閫夋嫨淇濆崟', e.companyId, 1)
+ },
+ openEdit(row) {
+ this.$refs.operaApplyChangeDetailWindow.open('鍔犲噺淇濊鎯�', row)
+ // if (row.solutionType === 0) {
+ // this.$refs.operaApplyChangeDetailWindow.open('鍔犲噺淇濊鎯�', row)
+ // } else if (row.solutionType === 1) {
+ // this.$refs.OperaUnionChangeDetailWindow.open('鍔犲噺淇濊鎯�', row)
+ // }
+ },
loadSelectList() {
solutionAll({dataType:2,type:0}).then(res => {
this.solutionList = res
diff --git a/company/src/views/business/company.vue b/company/src/views/business/company.vue
index 87a5ea1..ea58a9e 100644
--- a/company/src/views/business/company.vue
+++ b/company/src/views/business/company.vue
@@ -23,6 +23,7 @@
:data="tableData.list"
stripe
>
+ <el-table-column prop="username" label="鐧诲綍璐﹀彿" min-width="150px" fixed align="center"></el-table-column>
<el-table-column prop="name" label="浼佷笟鍚嶇О" min-width="150px" fixed align="center"></el-table-column>
<el-table-column prop="code" label="缁熶竴淇$敤浠g爜" min-width="150px" fixed align="center"></el-table-column>
<el-table-column prop="phone" label="缁戝畾鎵嬫満鍙�" min-width="100px" fixed align="center"></el-table-column>
diff --git a/company/src/views/business/companyDepartment.vue b/company/src/views/business/companyDepartment.vue
new file mode 100644
index 0000000..ca9b260
--- /dev/null
+++ b/company/src/views/business/companyDepartment.vue
@@ -0,0 +1,162 @@
+<template>
+ <TableLayout :permissions="['business:companydepartment:query']">
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:companydepartment:create']">
+ <li><el-button type="primary" @click="$refs.operaCompanyDepartmentWindow.open('鏂板缓缁勭粐', { disabled: false })" icon="el-icon-plus" v-permissions="['business:companydepartment:create']">鏂板缓</el-button></li>
+ <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:menu:delete']">鍒犻櫎</el-button></li>
+ <li><el-button @click="sort('top')" :loading="isWorking.sort" icon="el-icon-sort-up" v-permissions="['system:menu:sort']">涓婄Щ</el-button></li>
+ <li><el-button @click="sort('bottom')" :loading="isWorking.sort" icon="el-icon-sort-down" v-permissions="['system:menu:sort']">涓嬬Щ</el-button></li>
+ </ul>
+ <el-table
+ ref="table"
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ :tree-props="{children: 'childList', hasChildren: 'hasChildren'}"
+ row-key="id"
+ stripe
+ :default-expand-all="false"
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column type="selection" width="55" fixed="left"></el-table-column>
+ <el-table-column prop="name" label="缁勭粐鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column prop="name" label="缁勭粐绫诲瀷" min-width="100px"></el-table-column>
+ <el-table-column prop="editorName" label="鎿嶄綔浜�" min-width="100px"></el-table-column>
+ <el-table-column prop="editDate" label="鎿嶄綔鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:companydepartment:update', 'business:companydepartment:delete'])"
+ label="鎿嶄綔"
+ min-width="140"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaCompanyDepartmentWindow.open('缂栬緫缁勭粐', {...row, parentId: [row.id], disabled: true})" icon="el-icon-edit" v-permissions="['business:companydepartment:update']">缂栬緫</el-button>
+ <el-button type="text" icon="el-icon-plus" @click="$refs.operaCompanyDepartmentWindow.open('鏂板缓瀛愮粍缁�', {...row, id: null, parentId: [row.id], disabled: true})">鏂板缓瀛愮粍缁�</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:companydepartment:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaCompanyDepartmentWindow ref="operaCompanyDepartmentWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+ import BaseTable from '@/components/base/BaseTable'
+ import TableLayout from '@/layouts/TableLayout'
+ import Pagination from '@/components/common/Pagination'
+ import OperaCompanyDepartmentWindow from '@/components/business/OperaCompanyDepartmentWindow'
+ import { tree, updateSort } from '@/api/business/companyDepartment'
+ export default {
+ name: 'CompanyDepartment',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaCompanyDepartmentWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ },
+ isWorking: {
+ sort: false
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '浼佷笟淇℃伅琛�',
+ api: '/business/companyDepartment',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ },
+ methods: {
+ // 鏌ヨ鏁版嵁
+ handlePageChange () {
+ this.isWorking.search = true
+ tree()
+ .then(records => {
+ this.tableData.list = records
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking.search = false
+ })
+ },
+ // 鎺掑簭
+ sort (direction) {
+ if (this.isWorking.sort) {
+ return
+ }
+ if (this.tableData.selectedRows.length === 0) {
+ this.$tip.warning('璇烽�夋嫨涓�鏉℃暟鎹�')
+ return
+ }
+ if (this.tableData.selectedRows.length > 1) {
+ this.$tip.warning('鎺掑簭鏃朵粎鍏佽閫夋嫨涓�鏉℃暟鎹�')
+ return
+ }
+ const menuId = this.tableData.selectedRows[0].id
+ // 鎵惧埌鑿滃崟鑼冨洿
+ let menuPool
+ for (const rootMenu of this.tableData.list) {
+ const parent = this.__findParent(menuId, rootMenu)
+ if (parent != null) {
+ menuPool = parent.children
+ }
+ }
+ menuPool = menuPool || this.tableData.list
+ const menuIndex = menuPool.findIndex(menu => menu.id === menuId)
+ // 涓婄Щ鏍¢獙
+ if (direction === 'top' && menuIndex === 0) {
+ this.$tip.warning('鑿滃崟宸插埌椤堕儴')
+ return
+ }
+ // 涓嬬Щ鏍¢獙
+ if (direction === 'bottom' && menuIndex === menuPool.length - 1) {
+ this.$tip.warning('鑿滃崟宸插埌搴曢儴')
+ return
+ }
+ this.isWorking.sort = true
+ updateSort({
+ id: this.tableData.selectedRows[0].id,
+ direction
+ })
+ .then(() => {
+ if (direction === 'top') {
+ menuPool.splice(menuIndex, 0, menuPool.splice(menuIndex - 1, 1)[0])
+ } else {
+ menuPool.splice(menuIndex, 0, menuPool.splice(menuIndex + 1, 1)[0])
+ }
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking.sort = false
+ })
+ },
+ // 鏌ヨ鐖惰妭鐐�
+ __findParent (id, parent) {
+ if (parent.childList === 0) {
+ return
+ }
+ for (const menu of parent.childList) {
+ if (menu.id === id) {
+ return parent
+ }
+ if (menu.childList.length > 0) {
+ const m = this.__findParent(id, menu)
+ if (m != null) {
+ return m
+ }
+ }
+ }
+ return null
+ }
+ }
+ }
+</script>
diff --git a/company/src/views/business/companyUserApply.vue b/company/src/views/business/companyUserApply.vue
new file mode 100644
index 0000000..9993b73
--- /dev/null
+++ b/company/src/views/business/companyUserApply.vue
@@ -0,0 +1,104 @@
+<template>
+ <TableLayout :permissions="['business:companyuserapply:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="鐢宠鐘舵��" prop="status">
+ <el-select v-model="searchForm.status" @change="search" placeholder="璇烽�夋嫨">
+ <el-option label="寰呭鏍�" :value="0"></el-option>
+ <el-option label="瀹℃牳閫氳繃" :value="1"></el-option>
+ <el-option label="瀹℃牳涓嶉�氳繃" :value="2"></el-option>
+ </el-select>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:companyuserapply:create']" v-if="userInfo.type === 1">
+ <li><el-button type="primary" @click="$refs.operaCompanyUserApplyWindow.open('鏂板缓鐢宠')" icon="el-icon-plus" v-permissions="['business:companyuserapply:create']">鏂板缓</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column label="搴忓彿" width="80px">
+ <template slot-scope="scope">
+ <span>{{scope.$index + 1}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="realName" label="鐢宠浜�"></el-table-column>
+ <el-table-column prop="userName" label="鎺堟潈璐﹀彿"></el-table-column>
+ <el-table-column prop="content" label="鐢宠璇存槑"></el-table-column>
+ <el-table-column prop="createDate" label="鐢宠鏃堕棿"></el-table-column>
+ <el-table-column label="鐢宠鐘舵��">
+ <template slot-scope="{row}">
+ <span v-if="row.status === 0">寰呭鏍�</span>
+ <span v-if="row.status === 1">瀹℃牳閫氳繃</span>
+ <span v-if="row.status === 2">瀹℃牳涓嶉�氳繃</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaCompanyUserApplyDescWindow.open('鐢宠璁板綍璇︽儏', row.id)" icon="el-icon-view">鏌ョ湅</el-button>
+ <el-button type="text" v-if="userInfo.type === 0 && row.status === 0" @click="$refs.operaCompanyUserApplyCarefulWindow.open('闆嗗洟鐢宠璁板綍瀹℃牳', row.id)">瀹℃牳</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-if="userInfo.type === 1" v-permissions="['business:companyuserapply:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaCompanyUserApplyWindow ref="operaCompanyUserApplyWindow" @success="handlePageChange"/>
+ <!-- 鏌ョ湅 -->
+ <operaCompanyUserApplyDescWindow ref="operaCompanyUserApplyDescWindow" />
+ <!-- 瀹℃牳 -->
+ <OperaCompanyUserApplyCarefulWindow ref="operaCompanyUserApplyCarefulWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+ import BaseTable from '@/components/base/BaseTable'
+ import TableLayout from '@/layouts/TableLayout'
+ import Pagination from '@/components/common/Pagination'
+ import OperaCompanyUserApplyCarefulWindow from '@/components/business/OperaCompanyUserApplyCarefulWindow'
+ import OperaCompanyUserApplyWindow from '@/components/business/OperaCompanyUserApplyWindow'
+ import operaCompanyUserApplyDescWindow from '@/components/business/operaCompanyUserApplyDescWindow'
+ import { mapState } from 'vuex'
+ export default {
+ name: 'CompanyUserApply',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaCompanyUserApplyWindow, operaCompanyUserApplyDescWindow, OperaCompanyUserApplyCarefulWindow },
+ computed: {
+ ...mapState(['userInfo'])
+ },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ status: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '闆嗗洟鐢宠璁板綍琛�',
+ api: '/business/companyUserApply',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+ }
+</script>
diff --git a/company/src/views/business/contract.vue b/company/src/views/business/contract.vue
new file mode 100644
index 0000000..84b03d5
--- /dev/null
+++ b/company/src/views/business/contract.vue
@@ -0,0 +1,172 @@
+<template>
+ <TableLayout :permissions="['business:contract:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="鍚堝悓鍚嶇О" prop="name">
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ悎鍚屽悕绉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍚堝悓绫诲瀷" prop="signType">
+ <el-select v-model="searchForm.signType" placeholder="璇烽�夋嫨" @change="search">
+ <el-option label="骞冲彴-鍟嗘埛" :value="0"></el-option>
+ <el-option label="骞冲彴-浼佷笟" :value="1"></el-option>
+ <el-option label="鍟嗘埛-浼佷笟" :value="2"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鐘舵��" prop="queryStatus">
+ <el-select v-model="searchForm.queryStatus" placeholder="璇烽�夋嫨" @change="search">
+ <el-option label="寰呭钩鍙扮缃�" :value="0"></el-option>
+ <el-option label="寰呭晢鎴风缃�" :value="1"></el-option>
+ <el-option label="寰呬紒涓氱缃�" :value="2"></el-option>
+ <el-option label="宸插畬鎴�" :value="3"></el-option>
+ <el-option label="宸插彇娑�" :value="4"></el-option>
+ <el-option label="宸插叧闂�" :value="5"></el-option>
+ </el-select>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:contract:create']" v-if="[0,2].includes(userInfo.type)">
+ <li><el-button type="primary" @click="$refs.operaContractWindow.open('鏂板缓鍚堝悓淇℃伅琛�', null, userInfo.type)" icon="el-icon-plus" v-permissions="['business:contract:create']">鏂板缓</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column label="搴忓彿" width="80px">
+ <template slot-scope="scope">
+ <span>{{scope.$index + 1}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="name" label="鍚堝悓鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column label="鍚堝悓绫诲瀷" min-width="100px">
+ <template slot-scope="{row}">
+ <template v-if="row.signType === 0">骞冲彴-鍟嗘埛</template>
+ <template v-else-if="row.signType === 1">骞冲彴-浼佷笟</template>
+ <template v-else-if="row.signType === 2">鍟嗘埛-浼佷笟</template>
+ </template>
+ </el-table-column>
+ <el-table-column prop="companyName" label="鐢蹭箼鏂瑰悕绉�" min-width="100px">
+ <template slot-scope="{row}">
+ {{ row.partyCompanyName }} / {{ row.companyName }}
+ </template>
+ </el-table-column>
+ <el-table-column label="鍚堝悓寮�濮嬫椂闂�" min-width="100px">
+ <template slot-scope="{row}">
+ {{ row.startTime }} - {{ row.endTime }}
+ </template>
+ </el-table-column>
+ <el-table-column label="鐘舵��" min-width="100px">
+ <template slot-scope="{row}">
+ <template v-if="row.queryStatus === 0">寰呭钩鍙扮缃�</template>
+ <template v-else-if="row.queryStatus === 1">寰呭晢鎴风缃�</template>
+ <template v-else-if="row.queryStatus === 2">寰呬紒涓氱缃�</template>
+ <template v-else-if="row.queryStatus === 3">宸插畬鎴�</template>
+ <template v-else-if="row.queryStatus === 4">宸插彇娑�</template>
+ <template v-else-if="row.queryStatus === 5">宸插叧闂�</template>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔"
+ min-width="150"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaContractDescWindow.open('鍚堝悓璇︽儏', row.id)" icon="el-icon-view">鏌ョ湅璇︽儏</el-button>
+ <template v-if="userInfo.type === 0">
+ <template v-if="(row.signType === 0 && row.status === 0) || (row.signType === 1 && row.status === 0)">
+ <el-button type="text" @click="sign(row)" icon="el-icon-document-checked">绛剧讲</el-button>
+ </template>
+ </template>
+ <template v-if="userInfo.type === 1">
+ <template v-if="(row.signType === 1 && row.status === 1) || (row.signType === 2 && row.status === 1)">
+ <el-button type="text" @click="sign(row)" icon="el-icon-document-checked">绛剧讲</el-button>
+ </template>
+ </template>
+ <template v-if="userInfo.type === 2">
+ <template v-if="(row.signType === 0 && row.status === 1) || (row.signType === 2 && row.status === 0)">
+ <el-button type="text" @click="sign(row)" icon="el-icon-document-checked">绛剧讲</el-button>
+ </template>
+ </template>
+ <el-button type="text" icon="el-icon-document-remove" v-if="row.status === 0" @click="cancelHT(row.id)">鍙栨秷</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:contract:delete']" v-if="row.status === 4">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaContractWindow ref="operaContractWindow" @success="handlePageChange"/>
+ <!-- 璇︽儏 -->
+ <OperaContractDescWindow ref="operaContractDescWindow" />
+ </TableLayout>
+</template>
+
+<script>
+ import BaseTable from '@/components/base/BaseTable'
+ import TableLayout from '@/layouts/TableLayout'
+ import Pagination from '@/components/common/Pagination'
+ import OperaContractWindow from '@/components/business/OperaContractWindow'
+ import OperaContractDescWindow from '@/components/business/OperaContractDescWindow'
+ import { cancel, getSignLink } from '@/api/business/contract'
+ import { mapState } from 'vuex'
+ export default {
+ name: 'Contract',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaContractWindow, OperaContractDescWindow },
+ computed: {
+ ...mapState(['userInfo'])
+ },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ name: '',
+ signType: '',
+ queryStatus: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '鍚堝悓淇℃伅琛�',
+ api: '/business/contract',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ },
+ methods: {
+ // 绛剧讲
+ sign(row) {
+ getSignLink(row.id)
+ .then(res => {
+ window.open(res)
+ })
+ },
+ // 鍙栨秷鍚堝悓
+ cancelHT(id) {
+ this.$confirm('纭鍙栨秷褰撳墠鍚堝悓鍚�?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ cancel(id).then(res => {
+ this.search()
+ })
+ }).catch(() => {
+
+ });
+ }
+ }
+ }
+</script>
diff --git a/company/src/views/business/customerService.vue b/company/src/views/business/customerService.vue
new file mode 100644
index 0000000..a5a33c6
--- /dev/null
+++ b/company/src/views/business/customerService.vue
@@ -0,0 +1,93 @@
+<template>
+ <TableLayout :permissions="['business:customerservice:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="鍚嶇О" prop="name">
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ悕绉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎵嬫満鍙�" prop="mobile">
+ <el-input v-model="searchForm.mobile" placeholder="璇疯緭鍏ユ墜鏈哄彿" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:customerservice:create']">
+ <li><el-button type="primary" @click="$refs.operaCustomerServiceWindow.open('鏂板璐﹀彿')" icon="el-icon-plus" v-permissions="['business:customerservice:create']">鏂板缓</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column label="搴忓彿" width="80px">
+ <template slot-scope="scope">
+ <span>{{scope.$index + 1}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="name" label="瀹㈡湇濮撳悕" min-width="100px"></el-table-column>
+ <el-table-column prop="mobile" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
+ <el-table-column prop="companyNum" label="鏈嶅姟浼佷笟鏁�" min-width="100px"></el-table-column>
+ <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="createUserName" label="鍒涘缓浜�" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:customerservice:update', 'business:customerservice:delete'])"
+ label="鎿嶄綔"
+ min-width="180"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaCustomerServiceWindow.open('缂栬緫璐﹀彿', row)" icon="el-icon-edit" v-permissions="['business:customerservice:update']">缂栬緫</el-button>
+ <el-button type="text" @click="$refs.allocateEnterprises.open('鍒嗛厤鏈嶅姟浼佷笟', row.id)" icon="el-icon-connection">浼佷笟鎺堟潈</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:customerservice:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaCustomerServiceWindow ref="operaCustomerServiceWindow" @success="handlePageChange"/>
+ <!-- 鍒嗛厤浼佷笟 -->
+ <allocateEnterprises ref="allocateEnterprises" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+ import BaseTable from '@/components/base/BaseTable'
+ import TableLayout from '@/layouts/TableLayout'
+ import Pagination from '@/components/common/Pagination'
+ import OperaCustomerServiceWindow from '@/components/business/OperaCustomerServiceWindow'
+ import allocateEnterprises from '@/components/business/allocateEnterprises'
+ export default {
+ name: 'CustomerService',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaCustomerServiceWindow, allocateEnterprises },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ name: '',
+ mobile: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '瀹㈡湇淇℃伅琛�',
+ api: '/business/customerService',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+ }
+</script>
diff --git a/company/src/views/business/insuranceApply.vue b/company/src/views/business/insuranceApply.vue
index 9f674f5..4a49a27 100644
--- a/company/src/views/business/insuranceApply.vue
+++ b/company/src/views/business/insuranceApply.vue
@@ -3,15 +3,18 @@
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
<el-form-item label="淇濆崟鐘舵��" prop="statusCollect">
- <el-select v-model="searchForm.statusCollect" placeholder="璇烽�夋嫨" @keypress.enter.native="search">
- <el-option label="寰呭鏍�" value="0"></el-option>
- <el-option label="寰呭嚭鍗�" value="1"></el-option>
- <el-option label="寰呯缃�" value="7"></el-option>
- <el-option label="淇濋殰涓�" value="2"></el-option>
- <el-option label="宸茶繃鏈�" value="3"></el-option>
- <el-option label="宸查��鍥�" value="4"></el-option>
- <el-option label="閫�鍥炵敵璇蜂腑" value="5"></el-option>
- <el-option label="宸插叧闂�" value="6"></el-option>
+ <el-select v-model="statusCollect" placeholder="璇烽�夋嫨" @change="changeStatus">
+ <el-option
+ v-for="(item, index) in status"
+ :key="index"
+ :label="item.label"
+ :value="item.id" />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鎶曚繚绫诲瀷" prop="solutionType">
+ <el-select v-model="searchForm.solutionType" placeholder="璇烽�夋嫨" @change="search">
+ <el-option label="鐩翠繚鎶曚繚" :value="0"></el-option>
+ <el-option label="濮旀墭鎶曚繚" :value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="鎶曚繚浼佷笟" prop="companyId">
@@ -52,6 +55,9 @@
</el-form>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
+ <ul class="toolbar">
+ <li><el-button type="primary" @click="$refs.chooseCompany.open('閫夋嫨闇�瑕佹姇淇濈殑浼佷笟')">鏂板</el-button></li>
+ </ul>
<el-table
v-loading="isWorking.search"
:data="tableData.list"
@@ -62,9 +68,13 @@
<span>{{scope.$index + 1}}</span>
</template>
</el-table-column>
- <el-table-column prop="statusInfo" align="center" fixed label="鐘舵��">
+ <el-table-column prop="statusInfo" align="center" fixed label="鐘舵��">
<template slot-scope="{row}">
- <span :class="'apply-status'+row.status" >{{row.statusInfo}}</span>
+ <span style="color: #666;" v-if="[9,25,27,5].includes(row.status) && ['宸插叧闂�','宸茶繃鏈�'].includes(row.statusInfo)">{{row.statusInfo}}</span>
+ <span style="color: red;" v-else-if="row.status === 4 && row.statusInfo === '宸查��鍥�'">{{ row.statusInfo}}</span>
+ <span style="color: #f95601;" v-else-if="[5,27].includes(row.status) && row.statusInfo === '寰呯敓鏁�'">{{ row.statusInfo}}</span>
+ <span style="color: #216EEE;" v-else-if="[12].includes(row.status) && row.statusInfo === '寰呭鏍�'">{{ row.statusInfo}}</span>
+ <span :class="'apply-status'+row.status" v-else>{{row.statusInfo}}</span>
</template>
</el-table-column>
<el-table-column prop="solutionsName" fixed label="淇濋櫓鏂规" align="center" min-width="150"></el-table-column>
@@ -79,26 +89,36 @@
<span>{{row.code ? row.code : '-'}}</span>
</template>
</el-table-column>
- <el-table-column prop="insureNum" align="center" label="鎶曚繚浜烘暟" >
- <template slot-scope="{row}">
- <span>{{(row.insureNum||0)}} 浜�</span>
- </template>
- </el-table-column>
- <el-table-column prop="guaranteeNum" align="center" label="鍦ㄤ繚浜烘暟" >
- <template slot-scope="{row}">
- <span>{{(row.guaranteeNum||0)}} 浜�</span>
- </template>
- </el-table-column>
+<!-- <el-table-column prop="insureNum" align="center" label="鎶曚繚浜烘暟" >-->
+<!-- <template slot-scope="{row}">-->
+<!-- <span>{{(row.insureNum||0)}} 浜�</span>-->
+<!-- </template>-->
+<!-- </el-table-column>-->
+ <el-table-column prop="guaranteeNum" align="center" label="褰撳墠鍦ㄤ繚浜烘暟" width="120">
+ <template slot-scope="{row}">
+ <span>{{(row.guaranteeNum||0)}} 浜�</span>
+ </template>
+ </el-table-column>
+<!-- <el-table-column prop="guaranteeNum" align="center" label="鍦ㄤ繚浜烘暟" >-->
+<!-- <template slot-scope="{row}">-->
+<!-- <span>{{(row.guaranteeNum||0)}} 浜�</span>-->
+<!-- </template>-->
+<!-- </el-table-column>-->
<el-table-column label="鎶曚繚鏃堕暱">
<template slot-scope="{row}">
<span>{{(row.serviceDays - row.loseEfficacyDays) < 0 ? `-` : (row.serviceDays - row.loseEfficacyDays+'澶�')}}</span>
</template>
</el-table-column>
- <el-table-column prop="currentFee" label="宸蹭骇鐢熻垂鐢�" align="center">
- <template slot-scope="{row}">
- <span>{{row.currentFee!=null?row.currentFee+' 鍏�': '-'}}</span>
- </template>
- </el-table-column>
+ <el-table-column prop="fee" label="鎵规敼璐圭敤鍚堣" align="center" width="120">
+ <template slot-scope="{row}">
+ <span>{{row.changeMoney+' 鍏�'}}</span>
+ </template>
+ </el-table-column>
+<!-- <el-table-column prop="currentFee" label="宸蹭骇鐢熻垂鐢�" align="center">-->
+<!-- <template slot-scope="{row}">-->
+<!-- <span>{{row.currentFee!=null?row.currentFee+' 鍏�': '-'}}</span>-->
+<!-- </template>-->
+<!-- </el-table-column>-->
<el-table-column prop="fee" label="鎬昏垂鐢�" align="center">
<template slot-scope="{row}">
<span>{{row.fee!=null?row.fee+' 鍏�': '-'}}</span>
@@ -127,6 +147,10 @@
</template>
<!-- 鏂板缓/淇敼 -->
<OperaInsuranceApplyWindow ref="operaInsuranceApplyWindow" @success="handlePageChange"/>
+ <!-- 閫夋嫨浼佷笟 -->
+ <chooseCompany ref="chooseCompany" @submit="getVal" />
+ <!-- 鏂板鎶曚繚 -->
+ <OperaInsuranceApplyAddWindow ref="OperaInsuranceApplyAddWindow" @success="handlePageChange" />
</TableLayout>
</template>
@@ -137,10 +161,12 @@
import { all as solutionAll} from '@/api/business/solutions'
import { pageAll as companyAll} from '@/api/business/company'
import OperaInsuranceApplyWindow from '@/components/business/OperaInsuranceApplyWindow'
+import OperaInsuranceApplyAddWindow from '@/components/enterprise/OperaInsuranceApplyAddWindow'
+import chooseCompany from '@/components/common/chooseCompany'
export default {
name: 'InsuranceApply',
extends: BaseTable,
- components: { TableLayout, Pagination, OperaInsuranceApplyWindow },
+ components: { TableLayout, Pagination, OperaInsuranceApplyWindow, chooseCompany, OperaInsuranceApplyAddWindow },
data () {
return {
// 鎼滅储
@@ -149,12 +175,25 @@
createTimeE: '',
time: [],
baseSolutionId: '',
- solutionType: 0,
+ solutionType: '',
companyId: '',
- statusCollect: ''
+ statusCollect: '',
},
+ statusCollect: '',
solutionList:[],
- companyList:[]
+ companyList:[],
+ status: [
+ { label: '寰呭鏍�', id: '0' },
+ { label: '寰呭嚭鍗�', id: '1' },
+ { label: '鎶曚繚涓�', id: '26' },
+ { label: '寰呯缃�', id: '7' },
+ { label: '寰呯敓鏁�', id: '2,0' },
+ { label: '淇濋殰涓�', id: '2,1' },
+ { label: '宸茶繃鏈�', id: '2,2' },
+ { label: '宸查��鍥�', id: '4' },
+ { label: '閫�鍥炵敵璇蜂腑', id: '5' },
+ { label: '宸插叧闂�', id: '6' },
+ ]
}
},
created () {
@@ -168,9 +207,25 @@
this.loadSelectList()
},
methods:{
+ changeStatus(e) {
+ if (e.indexOf(',') !== -1) {
+ this.searchForm.timeOut = e.split(',')[1]
+ this.searchForm.statusCollect = e.split(',')[0]
+ } else {
+ this.searchForm.timeOut = ''
+ this.searchForm.statusCollect = e
+ }
+ this.search()
+ },
+ getVal(company) {
+ this.$refs.OperaInsuranceApplyAddWindow.open('鎶曚繚鐢宠', { type: '', companyName: company.companyName, companyId: company.companyId })
+ },
// 鎼滅储妗嗛噸缃�
reset () {
this.$refs.searchForm.resetFields()
+ this.statusCollect = ''
+ this.searchForm.timeOut = ''
+ this.searchForm.statusCollect = ''
this.searchForm.createTimeS = ''
this.searchForm.createTimeE = ''
this.search()
diff --git a/company/src/views/business/solutions.vue b/company/src/views/business/solutions.vue
index c65c11e..17f8511 100644
--- a/company/src/views/business/solutions.vue
+++ b/company/src/views/business/solutions.vue
@@ -5,6 +5,12 @@
<el-form-item label="淇濋櫓鏂规" prop="name">
<el-input v-model="searchForm.name" placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
</el-form-item>
+ <el-form-item label="绛剧讲鐘舵��" prop="signStatus">
+ <el-select v-model="searchForm.signStatus" placeholder="璇烽�夋嫨">
+ <el-option label="寰呯缃�" :value="0"></el-option>
+ <el-option label="宸茬缃�" :value="1"></el-option>
+ </el-select>
+ </el-form-item>
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
<el-button @click="reset">閲嶇疆</el-button>
@@ -27,12 +33,13 @@
<span>{{scope.$index + 1}}</span>
</template>
</el-table-column>
- <el-table-column prop="name" label="瀛愭柟妗堝悕绉�" min-width="150px"></el-table-column>
- <el-table-column prop="solutionBaseName" label="涓绘柟妗�" min-width="100px"></el-table-column>
+ <el-table-column prop="name" label="瀛愭柟妗堝悕绉�" min-width="150px" v-if="userInfo.type === 0"></el-table-column>
+ <el-table-column prop="name" label="鏂规鍚嶇О" min-width="150px" v-if="userInfo.type === 1"></el-table-column>
+ <el-table-column prop="solutionBaseName" label="涓绘柟妗�" min-width="100px" v-if="userInfo.type === 0"></el-table-column>
<el-table-column label="鎶曚繚绫诲瀷" min-width="120px" align="center">
<template slot-scope="{row}">
- <span v-if="row.type === 0">鐩翠繚</span>
- <span v-if="row.type === 1">濮旀墭<div style="color: blue;display: block" >{{row.shopName||'-'}}</div></span>
+ <span v-if="row.type === 0">鐩翠繚<div style="color: blue;display: block" >{{ row.shopName || '-' }}</div></span>
+ <span v-if="row.type === 1">濮旀墭<div style="color: blue;display: block" >{{ row.shopName || '-' }}</div></span>
</template>
</el-table-column>
<el-table-column label="鎶曚繚浠锋牸" min-width="100px">
@@ -46,7 +53,7 @@
<span v-if="row.timeUnit === 5">骞�</span>
</template>
</el-table-column>
- <el-table-column prop="retrial" label="闇�瑕佸瀹�">
+ <el-table-column prop="retrial" label="闇�瑕佸瀹�" v-if="userInfo.type === 0">
<template slot-scope="{row}">
<span v-if="row.retrial === 0">涓嶉渶瑕�</span>
<span v-if="row.retrial === 1">闇�瑕�</span>
@@ -56,19 +63,30 @@
<el-table-column prop="status" label="鍚敤鐘舵��" min-width="100px" v-if="userInfo.type !== 1">
<template slot-scope="{row}">
<el-switch
- @change="changeStatus($event, row)"
- v-model="row.status"
- active-color="#13ce66"
- inactive-color="#ff4949"
- :active-value="0"
- :inactive-value="1">
+ @change="changeStatus($event, row)"
+ v-model="row.status"
+ active-color="#13ce66"
+ inactive-color="#ff4949"
+ :active-value="0"
+ :inactive-value="1">
</el-switch>
</template>
</el-table-column>
+
+ <el-table-column prop="signDate" label="绛剧讲鏃堕棿" min-width="100px" v-if="userInfo.type === 1"></el-table-column>
+ <el-table-column prop="signUserName" label="绛剧讲浜�" min-width="100px" v-if="userInfo.type === 1"></el-table-column>
+ <el-table-column label="绛剧讲鐘舵��" min-width="100px" v-if="userInfo.type === 1">
+ <template slot-scope="{row}">
+ <span v-if="row.signStatus === 0">寰呯绔�</span>
+ <span v-else-if="!row.signStatus">寰呯绔�</span>
+ <span v-else-if="row.signStatus === 1">宸茬绔�</span>
+ </template>
+ </el-table-column>
+
<el-table-column
v-if="containPermissions(['business:solutions:update', 'business:solutions:delete'])"
label="鎿嶄綔"
- min-width="150"
+ min-width="230"
fixed="right"
>
<template slot-scope="{row}">
@@ -76,6 +94,13 @@
<template v-if="userInfo.type !== 1">
<el-button type="text" @click="$refs.operaSolutionsWindow.open('缂栬緫瀛愭柟妗�', { id: row.id })" icon="el-icon-edit" v-permissions="['business:solutions:update']">淇敼</el-button>
</template>
+ <template v-if="userInfo.type === 1 && (!row.signStatus || row.signStatus === 0)">
+ <el-button type="text" icon="el-icon-tickets" @click="sign(row.companySolutionId)">绛剧讲</el-button>
+ </template>
+ <template v-if="userInfo.type === 1 && row.signStatus === 1">
+ <el-button type="text" icon="el-icon-tickets" @click="seeFleSignUrl(row.fileSignUrl)">鏌ョ湅鏂规纭涔�</el-button>
+ </template>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:solutions:delete']">鍒犻櫎</el-button>
</template>
</el-table-column>
</el-table>
@@ -90,6 +115,8 @@
<OperaSolutionsWindow ref="operaSolutionsWindow" @success="handlePageChange"/>
<!-- 璇︽儏 -->
<OperaSolutionsDescWindow ref="OperaSolutionsDescWindow" @success="handlePageChange"/>
+ <!-- 棰勮pdf -->
+ <OperaPdfViewerWindow ref="OperaPdfViewerWindow" />
</TableLayout>
</template>
<script>
@@ -98,19 +125,23 @@
import Pagination from '@/components/common/Pagination'
import OperaSolutionsWindow from '@/components/business/OperaSolutionsWindow'
import OperaSolutionsDescWindow from '@/components/business/OperaSolutionsDescWindow'
+ import OperaPdfViewerWindow from '@/components/business/OperaPdfViewerWindow'
import { updateStatus } from '@/api/business/solutions'
+ import { getSignLink } from '@/api/business/company'
import { mapState } from 'vuex'
export default {
name: 'Solutions',
extends: BaseTable,
- components: { TableLayout, Pagination, OperaSolutionsWindow, OperaSolutionsDescWindow },
+ components: { TableLayout, Pagination, OperaSolutionsWindow, OperaSolutionsDescWindow, OperaPdfViewerWindow },
data () {
return {
// 鎼滅储
searchForm: {
name: '',
status: '',
- type: ''
+ type: '',
+ signStatus: '',
+ dataType: 0
}
}
},
@@ -132,6 +163,15 @@
this.search()
},
methods: {
+ seeFleSignUrl(url) {
+ this.$refs.OperaPdfViewerWindow.open('鏂规纭涔�', url)
+ },
+ sign(id) {
+ getSignLink(id)
+ .then(res => {
+ window.open(res)
+ })
+ },
// 淇敼鐘舵��
changeStatus (status, row) {
updateStatus({ id: row.id, status })
diff --git a/company/src/views/business/switchCourt.vue b/company/src/views/business/switchCourt.vue
index c329e25..d0e21ae 100644
--- a/company/src/views/business/switchCourt.vue
+++ b/company/src/views/business/switchCourt.vue
@@ -14,6 +14,12 @@
<el-option label="宸插叧闂�" value="6"></el-option>
</el-select>
</el-form-item>
+ <el-form-item label="鎶曚繚绫诲瀷" prop="solutionType">
+ <el-select v-model="searchForm.solutionType" placeholder="璇烽�夋嫨" @change="search">
+ <el-option label="鐩翠繚鎶曚繚" :value="0"></el-option>
+ <el-option label="濮旀墭鎶曚繚" :value="1"></el-option>
+ </el-select>
+ </el-form-item>
<el-form-item label="鎶曚繚浼佷笟" prop="companyId">
<el-select v-model="searchForm.companyId" filterable placeholder="璇烽�夋嫨" @change="search">
<el-option
@@ -52,6 +58,9 @@
</el-form>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
+ <ul class="toolbar">
+ <li><el-button type="primary" @click="$refs.chooseCompany.open('閫夋嫨浼佷笟')">鏂板</el-button></li>
+ </ul>
<el-table
v-loading="isWorking.search"
:data="tableData.list"
@@ -70,6 +79,7 @@
<span :class="'change-status'+ row.status" v-if="row.status === 3 || row.status === 4">閫�鍥炵敵璇�</span>
<span :class="'change-status'+ row.status" v-if="row.status ===5 || row.status === 8">宸查��鍥�</span>
<span :class="'change-status'+ row.status" v-if="row.status ===6">宸插叧闂�</span>
+ <span :class="'change-status'+ row.status" v-if="row.status ===9">鎵规敼鐢宠涓�</span>
</template>
</el-table-column>
<el-table-column prop="companyName" label="鎶曚繚浼佷笟" min-width="150px" align="center"></el-table-column>
@@ -100,6 +110,10 @@
</template>
<!-- 璇︽儏 -->
<OperaApplyChangeUnitDetailWindow ref="operaApplyChangeDetailWindow" @success="handlePageChange"/>
+ <!-- 閫夋嫨浼佷笟 -->
+ <chooseCompany ref="chooseCompany" @submit="getCompany" />
+ <!-- 閫夋嫨淇濆崟 -->
+ <selectPolicy ref="selectPolicy" @success="handlePageChange" />
</TableLayout>
</template>
@@ -110,10 +124,12 @@
import OperaApplyChangeUnitDetailWindow from '@/components/business/OperaApplyChangeUnitDetailWindow'
import {all as solutionAll, all} from '@/api/business/solutions'
import {pageAll as companyAll} from "@/api/business/company";
+import chooseCompany from '@/components/common/chooseCompany'
+import selectPolicy from '@/components/business/selectPolicy'
export default {
name: 'switchCourt',
extends: BaseTable,
- components: { TableLayout, Pagination, OperaApplyChangeUnitDetailWindow },
+ components: { TableLayout, Pagination, OperaApplyChangeUnitDetailWindow, chooseCompany, selectPolicy },
data () {
return {
// 鎼滅储
@@ -122,7 +138,7 @@
type: '1',
solutionsId: '',
createDateE: '',
- solutionType: 0,
+ solutionType: '',
createDateS: '',
baseSolutionsId: '',
companyId: '',
@@ -143,6 +159,9 @@
this.loadSelectList()
},
methods: {
+ getCompany(e) {
+ this.$refs.selectPolicy.open('閫夋嫨淇濆崟', e.companyId, 2)
+ },
loadSelectList() {
solutionAll({dataType:2,type:0}).then(res => {
this.solutionList = res
diff --git a/company/src/views/business/unionApply.vue b/company/src/views/business/unionApply.vue
index 3944843..cf2521e 100644
--- a/company/src/views/business/unionApply.vue
+++ b/company/src/views/business/unionApply.vue
@@ -2,13 +2,15 @@
<TableLayout :permissions="['business:insuranceapply:query']">
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="淇濆崟鐘舵��" prop="status" >
- <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨" clearable @keypress.enter.native="search">
+ <el-form-item label="淇濆崟鐘舵��" prop="queryStatus" >
+ <el-select v-model="searchForm.queryStatus" placeholder="璇烽�夋嫨" clearable @change="search">
<el-option label="寰呭鏍�" value="0"></el-option>
<el-option label="寰呯缃�" value="1"></el-option>
<el-option label="寰呭嚭鍗�" value="2"></el-option>
<el-option label="淇濋殰涓�" value="3"></el-option>
<el-option label="宸查��鍥�" value="4"></el-option>
+ <el-option label="寰呯敓鏁�" value="5"></el-option>
+ <el-option label="宸茶繃鏈�" value="6"></el-option>
</el-select>
</el-form-item>
<el-form-item label="淇濋櫓鏂规" prop="solutionId">
@@ -39,9 +41,9 @@
</el-form>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
- <ul class="toolbar" v-if="userInfo.type==2" v-permissions="['business:unionapply:create']">
- <li><el-button type="primary" @click="$refs.OpearaUnionApply.open('濮旀墭鎶曚繚鐢宠')" v-permissions="['business:unionapply:create']">鎻愪氦鐢宠</el-button></li>
- </ul>
+<!-- <ul class="toolbar" v-if="userInfo.type==2" v-permissions="['business:unionapply:create']">-->
+<!-- <li><el-button type="primary" @click="$refs.OpearaUnionApply.open('濮旀墭鎶曚繚鐢宠')" v-permissions="['business:unionapply:create']">鎻愪氦鐢宠</el-button></li>-->
+<!-- </ul>-->
<el-table
v-loading="isWorking.search"
:data="tableData.list"
@@ -54,7 +56,11 @@
</el-table-column>
<el-table-column prop="statusInfo" label="鐘舵��" min-width="100px">
<template slot-scope="{row}">
- <span :class="'union-apply-status'+row.status" >{{ row.statusInfo}}</span>
+ <span v-if="row.status === 3 && row.statusInfo === '宸茶繃鏈�'" style="color: #999;">{{ row.statusInfo}}</span>
+ <span v-else-if="row.status === 3 && row.statusInfo === '寰呯敓鏁�'" style="color: #f95601;">{{ row.statusInfo}}</span>
+ <span v-else-if="row.status === 4 && row.statusInfo === '宸查��鍥�'" style="color: red;">{{ row.statusInfo}}</span>
+ <span v-else-if="row.status === 5 && row.statusInfo === '寰呭鏍�'" style="color: #216EEE;">{{ row.statusInfo}}</span>
+ <span :class="'union-apply-status'+row.status" v-else>{{ row.statusInfo}}</span>
</template>
</el-table-column>
<el-table-column prop="solutionName" label="淇濋櫓鏂规" min-width="100px"></el-table-column>
@@ -106,7 +112,7 @@
queryStartTime: '',
queryEndTime: '',
solutionId: '',
- status: '',
+ queryStatus: '',
time: []
},
solutionList: []
diff --git a/company/src/views/business/unionChange.vue b/company/src/views/business/unionChange.vue
index b06f1e6..3a5e242 100644
--- a/company/src/views/business/unionChange.vue
+++ b/company/src/views/business/unionChange.vue
@@ -31,9 +31,9 @@
</el-form>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
- <ul class="toolbar" v-if="userInfo.type==2" v-permissions="['business:unionchange:create']">
- <li><el-button type="primary" @click="$refs.OpearaUnionChange.open('鍔犲噺淇濈敵璇�')" v-permissions="['business:unionchange:create']">鎻愪氦鐢宠</el-button></li>
- </ul>
+<!-- <ul class="toolbar" v-if="userInfo.type==2 && " v-permissions="['business:unionchange:create']">-->
+<!-- <li><el-button type="primary" @click="$refs.OpearaUnionChange.open('鍔犲噺淇濈敵璇�')" v-permissions="['business:unionchange:create']">鎻愪氦鐢宠</el-button></li>-->
+<!-- </ul>-->
<el-table
v-loading="isWorking.search"
:data="tableData.list"
@@ -49,7 +49,7 @@
<span :class="'union-change-status'+row.status" v-if="row.status === 0">寰呯缃�</span>
<span :class="'union-change-status'+row.status" v-if="row.status === 1">寰呭鏍�</span>
<span :class="'union-change-status'+row.status" v-if="row.status === 2">宸茬敓鏁�</span>
- <span :class="'union-change-status'+row.status" v-if="row.status === 3">宸查��鍥�</span>
+ <span style="color: red;" v-if="row.status === 3">宸查��鍥�</span>
</template>
</el-table-column>
<el-table-column align="center" prop="applyCode" label="鍏宠仈淇濆崟鍙�" min-width="150px"></el-table-column>
diff --git a/company/src/views/business/unionChangeUnit.vue b/company/src/views/business/unionChangeUnit.vue
index cc0beb3..1b2b926 100644
--- a/company/src/views/business/unionChangeUnit.vue
+++ b/company/src/views/business/unionChangeUnit.vue
@@ -4,10 +4,10 @@
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
<el-form-item label="淇濆崟鐘舵��" prop="status">
<el-select v-model="searchForm.status" clearable @change="search">
- <el-option label="寰呯缃�" value="1"></el-option>
- <el-option label="寰呭鏍�" value="2"></el-option>
- <el-option label="宸茬敓鏁�" value="3"></el-option>
- <el-option label="宸查��鍥�" value="4"></el-option>
+ <el-option label="寰呯缃�" value="0"></el-option>
+ <el-option label="寰呭鏍�" value="1"></el-option>
+ <el-option label="宸茬敓鏁�" value="2"></el-option>
+ <el-option label="宸查��鍥�" value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item label="淇濋櫓鏂规" prop="solutionName">
@@ -31,9 +31,9 @@
</el-form>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
- <ul class="toolbar" v-if="userInfo.type==2" v-permissions="['business:unionchange:create']">
- <li><el-button type="primary" @click="$refs.OpearaUnionChangeUnit.open('鏇存崲娲鹃仯鍗曚綅鐢宠')" v-permissions="['business:unionchange:create']">鎻愪氦鐢宠</el-button></li>
- </ul>
+<!-- <ul class="toolbar" v-if="userInfo.type==2" v-permissions="['business:unionchange:create']">-->
+<!-- <li><el-button type="primary" @click="$refs.OpearaUnionChangeUnit.open('鏇存崲娲鹃仯鍗曚綅鐢宠')" v-permissions="['business:unionchange:create']">鎻愪氦鐢宠</el-button></li>-->
+<!-- </ul>-->
<el-table
v-loading="isWorking.search"
:data="tableData.list"
@@ -46,10 +46,10 @@
</el-table-column>
<el-table-column align="center" prop="status" label="淇濆崟鐘舵��" min-width="80px">
<template slot-scope="{row}">
- <span :class="'union-change-status'+row.status" v-if="row.status === 0">寰呯缃�</span>
- <span :class="'union-change-status'+row.status" v-if="row.status === 1">寰呭鏍�</span>
- <span :class="'union-change-status'+row.status" v-if="row.status === 2">宸茬敓鏁�</span>
- <span :class="'union-change-status'+row.status" v-if="row.status === 3">宸查��鍥�</span>
+ <span :class="'union-change-status'+row.status" v-if="row.status === 0">寰呯缃�</span>
+ <span :class="'union-change-status'+row.status" v-if="row.status === 1">寰呭鏍�</span>
+ <span :class="'union-change-status'+row.status" v-if="row.status === 2">宸茬敓鏁�</span>
+ <span style="color: red;" v-if="row.status === 3">宸查��鍥�</span>
</template>
</el-table-column>
<el-table-column align="center" prop="applyCode" label="鍏宠仈淇濆崟鍙�" min-width="150px"></el-table-column>
diff --git a/company/src/views/business/userManagement.vue b/company/src/views/business/userManagement.vue
new file mode 100644
index 0000000..f0d98fb
--- /dev/null
+++ b/company/src/views/business/userManagement.vue
@@ -0,0 +1,141 @@
+<template>
+ <TableLayout :permissions="['system:user:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="80px" inline>
+ <el-form-item label="璐﹀彿" prop="username">
+ <el-input v-model="searchForm.username" v-trim placeholder="璇疯緭鍏�" @keypress.enter.native="search"/>
+ </el-form-item>
+ <el-form-item label="濮撳悕" prop="realname">
+ <el-input v-model="searchForm.realname" v-trim placeholder="璇疯緭鍏�" @keypress.enter.native="search"/>
+ </el-form-item>
+ <el-form-item label="鑱旂郴鏂瑰紡" prop="mobile">
+ <el-input v-model="searchForm.mobile" v-trim placeholder="璇疯緭鍏�" @keypress.enter.native="search"/>
+ </el-form-item>
+ <el-form-item label="浼佷笟鍚嶇О" prop="companyName">
+ <el-input v-model="searchForm.companyName" v-trim placeholder="璇疯緭鍏�" @keypress.enter.native="search"/>
+ </el-form-item>
+ <section>
+ <el-button type="primary" icon="el-icon-search" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ :default-sort = "{prop: 'createTime', order: 'descending'}"
+ stripe
+ @sort-change="handleSortChange"
+ >
+ <el-table-column label="搴忓彿" width="80px">
+ <template slot-scope="scope">
+ <span>{{scope.$index + 1}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="username" label="璐﹀彿" min-width="120px"></el-table-column>
+ <el-table-column prop="realname" label="濮撳悕" min-width="100px"></el-table-column>
+ <el-table-column prop="mobile" label="鑱旂郴鏂瑰紡" min-width="100px"></el-table-column>
+ <el-table-column prop="companyName" label="褰掑睘鍏徃" min-width="100px"></el-table-column>
+ <el-table-column label="鎺堟潈浼佷笟" min-width="100px">
+ <template slot-scope="{row}">
+ <span>{{row.authNum}}瀹�</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鏄惁瓒呯" min-width="100px">
+ <template slot-scope="{row}">
+ <span v-if="row.isAdmin === '1'">鏄�</span>
+ <span v-if="row.isAdmin === '0'">鍚�</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鐘舵��" min-width="100px">
+ <template slot-scope="{row}">
+ <el-switch
+ v-if="!row.fixed"
+ @change="changeStatus($event, row)"
+ v-model="row.status"
+ active-color="#13ce66"
+ inactive-color="#ff4949"
+ :active-value="0"
+ :inactive-value="1">
+ </el-switch>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔"
+ width="100"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.authorizedEnterprise.open('鎺堟潈浼佷笟璁板綍', row.id)">鎺堟潈浼佷笟</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ ></pagination>
+ </template>
+ <authorizedEnterprise ref="authorizedEnterprise" />
+ </TableLayout>
+</template>
+
+<script>
+ import Pagination from '@/components/common/Pagination'
+ import TableLayout from '@/layouts/TableLayout'
+ import BaseTable from '@/components/base/BaseTable'
+ import { updUserStatus } from '@/api/system/user'
+ import authorizedEnterprise from '@/components/business/authorizedEnterprise'
+ export default {
+ name: 'userManagement',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, authorizedEnterprise },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ username: '',
+ realname: '',
+ mobile: '',
+ companyName: '',
+ type: 1
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '鐢ㄦ埛',
+ api: '/system/user',
+ 'field.main': 'realname',
+ sorts: [{
+ property: 'CREATE_TIME',
+ direction: 'DESC'
+ }]
+ })
+ this.search()
+ },
+ methods: {
+ changeStatus(status, row) {
+ updUserStatus({
+ id: row.id,
+ status
+ }).then(res => {
+ this.search()
+ }).catch(err => {
+ row.status = row.status === 0 ? 1 : 0
+ })
+ }
+ }
+ }
+</script>
+
+<style scoped lang="scss">
+ @import "@/assets/style/variables.scss";
+ // 鍒楄〃澶村儚澶勭悊
+ .table-column-avatar {
+ img {
+ width: 48px;
+ }
+ }
+</style>
diff --git a/company/src/views/enterprise/insuranceApply.vue b/company/src/views/enterprise/insuranceApply.vue
index 1013974..73fc0c6 100644
--- a/company/src/views/enterprise/insuranceApply.vue
+++ b/company/src/views/enterprise/insuranceApply.vue
@@ -3,16 +3,12 @@
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
<el-form-item label="鐘舵��" prop="statusCollect">
- <el-select v-model="searchForm.statusCollect" placeholder="璇烽�夋嫨" @change="search">
- <el-option label="寰呭鏍�" value="0"></el-option>
- <el-option label="寰呭嚭鍗�" value="1"></el-option>
- <el-option label="寰呯缃�" value="7"></el-option>
- <el-option label="淇濋殰涓�" value="2"></el-option>
- <el-option label="宸茶繃鏈�" value="3"></el-option>
- <el-option label="宸查��鍥�" value="4"></el-option>
- <el-option label="閫�鍥炵敵璇蜂腑" value="5"></el-option>
- <el-option label="宸插叧闂�" value="6"></el-option>
- <el-option label="鎶曚繚涓�" value="26"></el-option>
+ <el-select v-model="statusCollect" placeholder="璇烽�夋嫨" @change="changeStatus">
+ <el-option
+ v-for="(item, index) in status"
+ :key="index"
+ :label="item.label"
+ :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="淇濋櫓鏂规" prop="baseSolutionId">
@@ -58,7 +54,12 @@
</el-table-column>
<el-table-column prop="statusInfo" align="center" fixed label="鐘舵��">
<template slot-scope="{row}">
- <span :class="'apply-status'+row.status" >{{row.statusInfo}}</span>
+ <span style="color: #666;" v-if="[9,25,27,5].includes(row.status) && ['宸插叧闂�','宸茶繃鏈�'].includes(row.statusInfo)">{{row.statusInfo}}</span>
+ <span style="color: red;" v-else-if="row.status === 4 && row.statusInfo === '宸查��鍥�'">{{ row.statusInfo}}</span>
+ <span style="color: #f95601;" v-else-if="[5,27].includes(row.status) && row.statusInfo === '寰呯敓鏁�'">{{ row.statusInfo}}</span>
+ <span style="color: #216EEE;" v-else-if="[12].includes(row.status) && row.statusInfo === '寰呭鏍�'">{{ row.statusInfo}}</span>
+ <span :class="'apply-status'+row.status" v-else>{{row.statusInfo}}</span>
+<!-- <span :class="'apply-status'+row.status" >{{row.statusInfo}}</span>-->
</template>
</el-table-column>
<el-table-column prop="solutionsName" fixed label="淇濋櫓鏂规" align="center" min-width="150"></el-table-column>
@@ -73,26 +74,31 @@
<span>{{row.code ? row.code : '-'}}</span>
</template>
</el-table-column>
- <el-table-column prop="insureNum" align="center" label="鎶曚繚浜烘暟" >
- <template slot-scope="{row}">
- <span>{{(row.insureNum||0)}} 浜�</span>
- </template>
- </el-table-column>
- <el-table-column prop="guaranteeNum" align="center" label="鍦ㄤ繚浜烘暟" >
- <template slot-scope="{row}">
- <span>{{(row.guaranteeNum||0)}} 浜�</span>
- </template>
- </el-table-column>
+<!-- <el-table-column prop="insureNum" align="center" label="鎶曚繚浜烘暟" >-->
+<!-- <template slot-scope="{row}">-->
+<!-- <span>{{(row.insureNum||0)}} 浜�</span>-->
+<!-- </template>-->
+<!-- </el-table-column>-->
+ <el-table-column prop="guaranteeNum" align="center" label="褰撳墠鍦ㄤ繚浜烘暟" width="120">
+ <template slot-scope="{row}">
+ <span>{{(row.guaranteeNum||0)}} 浜�</span>
+ </template>
+ </el-table-column>
<el-table-column label="鎶曚繚鏃堕暱">
<template slot-scope="{row}">
<span>{{(row.serviceDays - row.loseEfficacyDays) < 0 ? `-` : (row.serviceDays - row.loseEfficacyDays+'澶�')}}</span>
</template>
</el-table-column>
- <el-table-column prop="currentFee" label="宸蹭骇鐢熻垂鐢�" align="center">
- <template slot-scope="{row}">
- <span>{{row.currentFee!=null?row.currentFee+' 鍏�': '-'}}</span>
- </template>
- </el-table-column>
+<!-- <el-table-column prop="currentFee" label="宸蹭骇鐢熻垂鐢�" align="center">-->
+<!-- <template slot-scope="{row}">-->
+<!-- <span>{{row.currentFee!=null?row.currentFee+' 鍏�': '-'}}</span>-->
+<!-- </template>-->
+<!-- </el-table-column>-->
+ <el-table-column prop="fee" label="鎵规敼璐圭敤鍚堣" align="center" width="120">
+ <template slot-scope="{row}">
+ <span>{{row.changeMoney+' 鍏�'}}</span>
+ </template>
+ </el-table-column>
<el-table-column prop="fee" label="鎬昏垂鐢�" align="center">
<template slot-scope="{row}">
<span>{{row.fee!=null?row.fee+' 鍏�': '-'}}</span>
@@ -110,10 +116,10 @@
>
<template slot-scope="{row}">
<el-button type="text" @click="godetail(row)" v-permissions="['business:insuranceapply:update']">鏌ョ湅璇︽儏</el-button>
- <!-- <el-button type="text" @click="$refs.OperaApplyChangeMonthWindow.open('鍔犲噺淇濇湀搴﹁垂鐢ㄧ粺璁�',row)" v-permissions="['business:applychange:query']">鍔犲噺淇濊垂鐢�</el-button>
- <template v-if="row.statusCollect === 2">-->
- <!-- <el-button type="text" @click="$refs.additionSubtractionApplication.open('鍔犲噺淇濈敵璇�', { id: row.id })">鍔犲噺淇濈敵璇�</el-button>-->
- <!-- </template>-->
+<!-- <el-button type="text" @click="$refs.OperaApplyChangeMonthWindow.open('鍔犲噺淇濇湀搴﹁垂鐢ㄧ粺璁�',row)" v-permissions="['business:applychange:query']">鍔犲噺淇濊垂鐢�</el-button>-->
+ <template v-if="isShow(row.status, row.endTime)">
+ <el-button type="text" @click="$refs.additionSubtractionApplication.open('鍔犲噺淇濈敵璇�', { id: row.id })">鍔犲噺淇濈敵璇�</el-button>
+ </template>
</template>
</el-table-column>
</el-table>
@@ -132,6 +138,8 @@
<OperaWtbApplyShopWindow ref="OperaWtbApplyShopWindow" @success="handlePageChange" />
<!-- 鎶曚繚璇︽儏 -->
<OperaInsuranceApplyDetails ref="OperaInsuranceApplyDetails" @success="handlePageChange" />
+ <!-- 鍔犲噺淇濈敵璇� -->
+ <additionSubtractionApplication ref="additionSubtractionApplication" @success="handlePageChange" />
</TableLayout>
</template>
<script>
@@ -141,6 +149,7 @@
import OperaInsuranceApplyAddWindow from '@/components/enterprise/OperaInsuranceApplyAddWindow'
import OperaInsuranceApplyDetails from '@/components/business/OperaInsuranceApplyWindow'
import OperaWtbApplyShopWindow from '@/components/business/OperaWtbApplyShopWindow'
+import additionSubtractionApplication from '@/components/enterprise/additionSubtractionApplication'
import OperaApplyChangeMonthWindow from '@/components/business/OperaApplyChangeMonthWindow'
import { all as solutionAll } from '@/api/business/solutions'
@@ -149,7 +158,7 @@
extends: BaseTable,
components: { TableLayout, Pagination,
// OperaApplyChangeMonthWindow,
- OperaInsuranceApplyAddWindow, OperaInsuranceApplyDetails,OperaWtbApplyShopWindow },
+ OperaInsuranceApplyAddWindow, OperaInsuranceApplyDetails,OperaWtbApplyShopWindow, additionSubtractionApplication },
data () {
return {
// 鎼滅储
@@ -157,9 +166,23 @@
createTimeS: '',
createTimeE: '',
baseSolutionId: '',
- statusCollect: ''
+ statusCollect: '',
+ timeOut: ''
},
- solutionList: []
+ statusCollect: '',
+ solutionList: [],
+ status: [
+ { label: '寰呭鏍�', id: '0' },
+ { label: '寰呭嚭鍗�', id: '1' },
+ { label: '鎶曚繚涓�', id: '26' },
+ { label: '寰呯缃�', id: '7' },
+ { label: '寰呯敓鏁�', id: '2,0' },
+ { label: '淇濋殰涓�', id: '2,1' },
+ { label: '宸茶繃鏈�', id: '2,2' },
+ { label: '宸查��鍥�', id: '4' },
+ { label: '閫�鍥炵敵璇蜂腑', id: '5' },
+ { label: '宸插叧闂�', id: '6' },
+ ]
}
},
created () {
@@ -173,14 +196,32 @@
this.loadSelectList()
},
methods: {
+ // 鍒ゆ柇鏄惁鏄剧ず鍔犲噺淇�
+ isShow(status, endTime) {
+ const currentDate = new Date();
+ const specifiedDate = new Date(endTime);
+ return [5,27].includes(status) && (currentDate < specifiedDate);
+ },
+ changeStatus(e) {
+ if (e.indexOf(',') !== -1) {
+ this.searchForm.timeOut = e.split(',')[1]
+ this.searchForm.statusCollect = e.split(',')[0]
+ } else {
+ this.searchForm.timeOut = ''
+ this.searchForm.statusCollect = e
+ }
+ this.search()
+ },
reset() {
- this.searchForm.createTimeS = ''
- this.searchForm.createTimeE = ''
- this.$refs.searchForm.resetFields()
- this.search()
+ this.searchForm.createTimeS = ''
+ this.searchForm.timeOut = ''
+ this.searchForm.createTimeE = ''
+ this.statusCollect = ''
+ this.searchForm.statusCollect = ''
+ this.$refs.searchForm.resetFields()
+ this.search()
},
result(flag,param){
- console.log(flag,param)
if(param && param.godetail && param.id){
if (param.type == 1) {
this.$refs.OperaWtbApplyShopWindow.open('濮旀墭鎶曚繚璇︽儏', { id: param.id })
diff --git a/company/src/views/enterprise/myPolicy.vue b/company/src/views/enterprise/myPolicy.vue
index b711b90..19f8a23 100644
--- a/company/src/views/enterprise/myPolicy.vue
+++ b/company/src/views/enterprise/myPolicy.vue
@@ -23,7 +23,7 @@
</el-form-item>
<el-form-item label="鐘舵��" prop="timeOut">
<el-select v-model="searchForm.timeOut" placeholder="璇烽�夋嫨" @change="search">
- <el-option label="鏈紑濮�" value="0"></el-option>
+ <el-option label="寰呯敓鏁�" value="0"></el-option>
<el-option label="淇濋殰涓�" value="1"></el-option>
<el-option label="宸茶繃鏈�" value="2"></el-option>
</el-select>
@@ -156,7 +156,7 @@
<el-button type="text" @click="godetail(row)" v-permissions="['business:insuranceapply:update']">鏌ョ湅璇︽儏</el-button>
<!-- <el-button type="text" @click="$refs.OperaApplyChangeMonthWindow.open('鍔犲噺淇濇湀搴﹁垂鐢ㄧ粺璁�',row)" v-permissions="['business:applychange:query']">鍔犲噺淇濊垂鐢�</el-button>
<template v-if="row.statusCollect === 2">-->
- <el-button type="text" @click="$refs.additionSubtractionApplication.open('鍔犲噺淇濈敵璇�', { id: row.id })">鍔犲噺淇濈敵璇�</el-button>
+ <el-button type="text" @click="$refs.additionSubtractionApplication.open('鍔犲噺淇濈敵璇�', { id: row.id })" v-if="isShow(row.status, row.endTime)">鍔犲噺淇濈敵璇�</el-button>
<!-- </template>-->
</template>
</el-table-column>
@@ -241,6 +241,12 @@
this.getNum()
},
methods: {
+ // 鍒ゆ柇鏄惁鏄剧ず鍔犲噺淇�
+ isShow(status, endTime) {
+ const currentDate = new Date();
+ const specifiedDate = new Date(endTime);
+ return [5,27].includes(status) && (currentDate < specifiedDate);
+ },
godetail (row) {
if (row.solutionType == 1) {
this.$refs.OperaWtbApplyShopWindow.open('濮旀墭鎶曚繚璇︽儏', { id: row.id })
diff --git a/company/src/views/index.vue b/company/src/views/index.vue
index ff4cb7f..86ba11f 100644
--- a/company/src/views/index.vue
+++ b/company/src/views/index.vue
@@ -123,10 +123,105 @@
</el-pagination>
</div>
</div>
+
+ <div v-if="activeName === '6'">
+ <div class="home_content_right_list" v-if="tableData6 && tableData6.length">
+ <div class="list_item" v-for="(item, index) in tableData6" :key="index">
+ <div class="list_item_left">
+ <span>{{item.title}}锛坽{ item.typeDetail }}锛�</span>
+ <span>{{item.info}}锛坽{item.content}}锛�</span>
+ </div>
+ <div class="list_item_center">
+ <span>{{item.companyName}}</span>
+ <span>鎻愪氦鏃堕棿 {{item.createDate}}</span>
+ </div>
+ <div class="list_item_right">
+ <span @click="jump('/business/contract')">鏌ョ湅</span>
+ </div>
+ </div>
+ </div>
+ <div class="home_content_right_list" v-else>
+ <div class="list_item" style="width: 100%;font-size: 12px;display:block;color: #8c939d;text-align: center; padding: 20px">
+ 鏆傛棤娑堟伅
+ </div>
+ </div>
+ <div class="home_content_right_page">
+ <el-pagination
+ @current-change="handleCurrentChange6"
+ :current-page="page6"
+ :page-size="5"
+ layout="total, prev, pager, next, jumper"
+ :total="totalPage6">
+ </el-pagination>
+ </div>
+ </div>
+ <div v-if="activeName === '7'">
+ <div class="home_content_right_list" v-if="tableData7 && tableData7.length">
+ <div class="list_item" v-for="(item, index) in tableData7" :key="index">
+ <div class="list_item_left">
+ <span>{{item.title}}锛坽{ item.typeDetail }}锛�</span>
+ <span>{{item.info}}锛坽{item.content}}锛�</span>
+ </div>
+ <div class="list_item_center">
+ <span>{{item.companyName}}</span>
+ <span>鎻愪氦鏃堕棿 {{item.createDate}}</span>
+ </div>
+ <div class="list_item_right">
+ <span @click="jump('/business/solutions')">鏌ョ湅</span>
+ </div>
+ </div>
+ </div>
+ <div class="home_content_right_list" v-else>
+ <div class="list_item" style="width: 100%;font-size: 12px;display:block;color: #8c939d;text-align: center; padding: 20px">
+ 鏆傛棤娑堟伅
+ </div>
+ </div>
+ <div class="home_content_right_page">
+ <el-pagination
+ @current-change="handleCurrentChange2"
+ :current-page="page7"
+ :page-size="5"
+ layout="total, prev, pager, next, jumper"
+ :total="totalPage7">
+ </el-pagination>
+ </div>
+ </div>
+ <div v-if="activeName === '8'">
+ <div class="home_content_right_list" v-if="tableData8 && tableData8.length">
+ <div class="list_item" v-for="(item, index) in tableData8" :key="index">
+ <div class="list_item_left">
+ <span>{{item.title}}锛堝緟瀹℃牳锛�</span>
+ <span>{{item.info}}锛坽{item.content}}锛�</span>
+ </div>
+ <div class="list_item_center">
+ <span>{{item.companyName}}</span>
+ <span>鎻愪氦鏃堕棿 {{item.createDate}}</span>
+ </div>
+ <div class="list_item_right">
+ <span @click="jump('/business/companyUserApply')">鏌ョ湅</span>
+ </div>
+ </div>
+ </div>
+ <div class="home_content_right_list" v-else>
+ <div class="list_item" style="width: 100%;font-size: 12px;display:block;color: #8c939d;text-align: center; padding: 20px">
+ 鏆傛棤娑堟伅
+ </div>
+ </div>
+ <div class="home_content_right_page">
+ <el-pagination
+ @current-change="handleCurrentChange2"
+ :current-page="page7"
+ :page-size="5"
+ layout="total, prev, pager, next, jumper"
+ :total="totalPage7">
+ </el-pagination>
+ </div>
+ </div>
+
</div>
</div>
<OperaInsuranceApplyWindow ref="operaInsuranceApplyWindow" @success="handleCurrentChange0()"/>
- <OperaWtbApplyShopWindow ref="OperaWtbApplyShopWindow" @success="handleCurrentChange0()"/>
+ <OperaWtbApplyShopWindow ref="OperaWatbApplyShopWindow" @success="handleCurrentChange0()"/>
<dispatchUnitDetailsPlat ref="dispatchUnitDetailsPlat" @success="handleCurrentChange0()"/>
<OperaSettleClaimsWindow ref="operaSettleClaimsWindow" @success="handleCurrentChange2()"/>
<OperaApplyChangeUnitDetailWindow ref="operaApplyChangeUnitDetailWindow" @success="handleCurrentChange0()"/>
@@ -165,12 +260,21 @@
page0: 1,
page1: 1,
page2: 1,
+ page6: 1,
+ page7: 1,
+ page8: 1,
+ totalPage8: 0,
+ totalPage7: 0,
+ totalPage6: 0,
totalPage2: 0,
totalPage1: 0,
totalPage0: 0,
tableData0: [],
tableData1: [],
tableData2: [],
+ tableData6: [],
+ tableData7: [],
+ tableData8: [],
cate: [
{
name: '鎶曚繚鐢宠',
@@ -317,9 +421,22 @@
if (type === 1) {
this.tableData1 = response.records
this.totalPage1 = response.total
- } if (type === 2) {
+ }
+ if (type === 2) {
this.tableData2 = response.records
this.totalPage2 = response.total
+ }
+ if (type === 6) {
+ this.tableData6 = response.records
+ this.totalPage6 = response.total
+ }
+ if (type === 7) {
+ this.tableData7 = response.records
+ this.totalPage7 = response.total
+ }
+ if (type === 8) {
+ this.tableData8 = response.records
+ this.totalPage8 = response.total
}
})
.catch(e => {
@@ -341,10 +458,12 @@
this.tabs.push({ name: '2', label: '鐞嗚禂鎻愰啋' })
// this.handleCurrentChange2(0);
}
- //鏂板鍒嗙被
- if (pemissons.includes('business:notice:settle')) {
- this.tabs.push({ name: '3', label: '鍚堝悓绛剧讲鎻愰啋' })
- // this.handleCurrentChange2(0);
+ if (this.userInfo.type === 1) {
+ this.tabs.push({ name: '7', label: '鏂规绛剧讲鎻愰啋' })
+ }
+ this.tabs.push({ name: '6', label: '鍚堝悓绛剧讲鎻愰啋' })
+ if (this.userInfo.type === 0) {
+ this.tabs.push({ name: '8', label: '闆嗗洟鐢宠鎻愰啋' })
}
/* if (pemissons.includes('business:notice:insurance')) {
this.getNoticeList(0, this.page0)
@@ -364,6 +483,12 @@
this.handleCurrentChange1(0)
} else if (this.activeName === '2') {
this.handleCurrentChange2(0)
+ } else if (this.activeName === '6') {
+ this.handleCurrentChange6(0)
+ } else if (this.activeName === '7') {
+ this.handleCurrentChange7(0)
+ } else if (this.activeName === '8') {
+ this.handleCurrentChange8(0)
}
},
handleCurrentChange0 (page) {
@@ -378,6 +503,18 @@
this.page2 = page
this.getNoticeList(2, this.page2)
},
+ handleCurrentChange6 (page) {
+ this.page6 = page
+ this.getNoticeList(6, this.page6)
+ },
+ handleCurrentChange7 (page) {
+ this.page7 = page
+ this.getNoticeList(7, this.page7)
+ },
+ handleCurrentChange8 (page) {
+ this.page8 = page
+ this.getNoticeList(8, this.page8)
+ },
jump (url) {
if (!url) return
this.$router.push({ path: url })
diff --git a/company/src/views/indexShop.vue b/company/src/views/indexShop.vue
index ce5e346..62d3e57 100644
--- a/company/src/views/indexShop.vue
+++ b/company/src/views/indexShop.vue
@@ -86,6 +86,39 @@
</el-pagination>
</div>
</div>
+
+ <div v-if="activeName === '6'" >
+ <div class="home_content_right_list" v-if="tableData6&&tableData6.length">
+ <div class="list_item" v-for="(item, index) in tableData6" :key="index">
+ <div class="list_item_left">
+ <span>{{item.title}}锛坽{ item.typeDetail }}锛�</span>
+ <span>{{item.info}}锛坽{item.content}}锛�</span>
+ </div>
+ <div class="list_item_center">
+ <span>{{item.companyName}}</span>
+ <span>鎻愪氦鏃堕棿 {{item.createDate}}</span>
+ </div>
+ <div class="list_item_right">
+ <span @click="jump('/business/contract')">鏌ョ湅</span>
+ </div>
+ </div>
+ </div>
+ <div class="home_content_right_list" v-else>
+ <div class="list_item" style="width: 100%;font-size: 12px;display:block;color: #8c939d;text-align: center; padding: 20px">
+ 鏆傛棤娑堟伅
+ </div>
+ </div>
+ <div class="home_content_right_page">
+ <el-pagination
+ @current-change="handleCurrentChange1"
+ :current-page="page1"
+ :page-size="5"
+ layout="total, prev, pager, next, jumper"
+ :total="totalPage1">
+ </el-pagination>
+ </div>
+ </div>
+
</div>
</div>
<OperaInsuranceApplyWindow ref="operaInsuranceApplyWindow" @success="handleCurrentChange0()"/>
@@ -118,12 +151,15 @@
page0: 1,
page1: 1,
page2: 1,
+ page6: 1,
+ totalPage6: 0,
totalPage2: 0,
totalPage1: 0,
totalPage0: 0,
tableData0: [],
tableData1: [],
tableData2: [],
+ tableData6: [],
cate: [
{
name: '鎶曚繚鐢宠瀹℃牳',
@@ -201,6 +237,7 @@
initLoadData () {
this.handleCurrentChange0(0)
this.handleCurrentChange1(0)
+ this.handleCurrentChange6(0)
},
getNoticeList (type, page) {
noticeList({
@@ -218,6 +255,10 @@
this.tableData1 = response.records
this.totalPage1 = response.total
}
+ if (type === 6) {
+ this.tableData6 = response.records
+ this.totalPage6 = response.total
+ }
})
.catch(e => {
this.$tip.apiFailed(e)
@@ -226,6 +267,7 @@
initPanel () {
this.tabs.push({ name: '0', label: '鐩存帴鎶曚繚寰呭姙' })
this.tabs.push({ name: '1', label: '濮旀墭鎶曚繚寰呭姙' })
+ this.tabs.push({ name: '6', label: '鍚堝悓绛剧讲鎻愰啋' })
},
handleClick (e) {
this.activeName = e.name
@@ -233,6 +275,8 @@
this.handleCurrentChange0(0)
} else if (this.activeName === '1') {
this.handleCurrentChange1(0)
+ } else if (this.activeName === '6') {
+ this.handleCurrentChange6(0)
}
},
handleCurrentChange0 (page) {
@@ -243,6 +287,10 @@
this.page1 = page
this.getNoticeList(4, this.page1)
},
+ handleCurrentChange6 (page) {
+ this.page6 = page
+ this.getNoticeList(6, this.page6)
+ },
jump (url) {
if (!url) return
this.$router.push({ path: url })
diff --git a/company/src/views/system/role.vue b/company/src/views/system/role.vue
index 45cab31..579e7ca 100644
--- a/company/src/views/system/role.vue
+++ b/company/src/views/system/role.vue
@@ -42,12 +42,12 @@
<el-table-column
v-if="containPermissions(['system:role:update', 'system:role:createRolePermission', 'system:role:createRoleMenu', 'system:role:delete'])"
label="鎿嶄綔"
- min-width="270"
+ min-width="260"
fixed="right"
>
-<!-- v-if="isAdmin || (row.code !== adminCode && userInfo.roles.findIndex(code => code === row.code) === -1)"-->
<template slot-scope="{row}">
<el-button type="text" @click="$refs.operaRoleWindow.open('缂栬緫瑙掕壊', row)" icon="el-icon-edit" v-permissions="['system:role:update']">缂栬緫</el-button>
+<!-- <el-button type="text" @click="openRole(row.systemDataPermission, row.id)">鏁版嵁鏉冮檺</el-button>-->
<el-button type="text" @click="$refs.permissionConfigWindow.open(row)" v-permissions="['system:role:createRolePermission']">閰嶇疆鏉冮檺</el-button>
<el-button type="text" @click="$refs.menuConfigWindow.open(row)" icon="el-icon-menu" v-permissions="['system:role:createRoleMenu']">鎺堟潈鑿滃崟</el-button>
<el-button v-if="!row.fixed" type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:role:delete']">鍒犻櫎</el-button>
@@ -66,6 +66,8 @@
<PermissionConfigWindow ref="permissionConfigWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/>
<!-- 鎺堟潈鑿滃崟 -->
<MenuConfigWindow ref="menuConfigWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/>
+ <!-- 鏁版嵁鏉冮檺 -->
+ <Permissions ref="permissions" @success="handlePageChange(tableData.pagination.pageIndex)"/>
</TableLayout>
</template>
@@ -76,10 +78,11 @@
import OperaRoleWindow from '@/components/system/role/OperaRoleWindow'
import PermissionConfigWindow from '@/components/system/role/PermissionConfigWindow'
import MenuConfigWindow from '@/components/system/role/MenuConfigWindow'
+import Permissions from '@/components/system/role/Permissions'
export default {
name: 'SystemRole',
extends: BaseTable,
- components: { MenuConfigWindow, PermissionConfigWindow, OperaRoleWindow, TableLayout, Pagination },
+ components: { MenuConfigWindow, PermissionConfigWindow, OperaRoleWindow, TableLayout, Pagination, Permissions },
data () {
return {
// 鎼滅储
@@ -100,6 +103,19 @@
}]
})
this.search()
+ },
+ methods: {
+ openRole(row, id) {
+ if (row) {
+ let customData = []
+ row.customData.split(',').forEach(item => {
+ customData.push([item])
+ })
+ this.$refs.permissions.open('鏁版嵁鏉冮檺', { ...row, customData })
+ } else {
+ this.$refs.permissions.open('鏁版嵁鏉冮檺', { roleId: id, customData: [] })
+ }
+ }
}
}
</script>
diff --git a/company/src/views/system/user.vue b/company/src/views/system/user.vue
index e43e158..26bceaf 100644
--- a/company/src/views/system/user.vue
+++ b/company/src/views/system/user.vue
@@ -1,163 +1,180 @@
<template>
- <TableLayout :permissions="['system:user:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="80px" inline>
-<!-- <el-form-item label="鐢ㄦ埛鍚�" prop="username">-->
-<!-- <el-input v-model="searchForm.username" v-trim placeholder="璇疯緭鍏ョ敤鎴峰悕" @keypress.enter.native="search"/>-->
-<!-- </el-form-item>-->
- <el-form-item label="濮撳悕" prop="realname">
- <el-input v-model="searchForm.realname" v-trim placeholder="璇疯緭鍏�" @keypress.enter.native="search"/>
- </el-form-item>
-<!-- <el-form-item label="鎵嬫満鍙风爜" prop="mobile">-->
-<!-- <el-input v-model="searchForm.mobile" v-trim placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" @keypress.enter.native="search"/>-->
-<!-- </el-form-item>-->
-<!-- <el-form-item label="鎵�灞為儴闂�" prop="rootDeptId">-->
-<!-- <DepartmentSelect v-model="searchForm.rootDeptId" placeholder="璇烽�夋嫨鎵�灞為儴闂�" clearable/>-->
-<!-- </el-form-item>-->
-<!-- <el-form-item label="宀椾綅" prop="positionId">-->
-<!-- <PositionSelect v-model="searchForm.positionId" placeholder="璇烽�夋嫨宀椾綅" clearable/>-->
-<!-- </el-form-item>-->
- <section>
- <el-button type="primary" icon="el-icon-search" @click="search">鎼滅储</el-button>
- <el-button @click="reset">閲嶇疆</el-button>
- </section>
- </el-form>
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['system:user:create', 'system:user:delete']">
- <li v-permissions="['system:user:create']"><el-button type="primary" @click="$refs.operaUserWindow.open('鏂板璐﹀彿')">鏂板璐﹀彿</el-button></li>
-<!-- <li v-permissions="['system:user:delete']"><el-button icon="el-icon-delete" @click="deleteByIdInBatch">鍒犻櫎</el-button></li>-->
- </ul>
-<!-- @selection-change="handleSelectionChange"-->
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- :default-sort = "{prop: 'createTime', order: 'descending'}"
- stripe
- @sort-change="handleSortChange"
- >
- <el-table-column label="搴忓彿" width="80px">
- <template slot-scope="scope">
- <span>{{scope.$index + 1}}</span>
- </template>
- </el-table-column>
- <el-table-column prop="username" label="璐﹀彿" min-width="120px"></el-table-column>
- <el-table-column prop="realname" label="濮撳悕" min-width="100px"></el-table-column>
- <el-table-column prop="mobile" label="鑱旂郴鏂瑰紡" min-width="100px"></el-table-column>
- <el-table-column prop="roles" label="瑙掕壊" min-width="160px" class-name="table-column-strings">
- <template slot-scope="{row}">
- <ul>
- <li v-for="role in row.roles" :key="role.id">{{role.name}}</li>
- </ul>
- </template>
- </el-table-column>
- <el-table-column label="鍚敤鐘舵��" min-width="100px">
- <template slot-scope="{row}">
- <el-switch
- v-if="!row.fixed"
- @change="changeStatus($event, row)"
- v-model="row.status"
- active-color="#13ce66"
- inactive-color="#ff4949"
- :active-value="0"
- :inactive-value="1">
- </el-switch>
- </template>
- </el-table-column>
- <el-table-column
- v-if="containPermissions(['system:user:update', 'system:user:createUserRole', 'system:user:resetPwd', 'system:user:delete'])"
- label="鎿嶄綔"
- width="270"
- fixed="right"
- >
-<!-- row.id !== userInfo.id &&-->
- <template v-if="isAdmin || (row.roles.findIndex(r => r.code === adminCode) === -1)" slot-scope="{row}">
- <el-button type="text" icon="el-icon-edit" @click="$refs.operaUserWindow.open('缂栬緫鐢ㄦ埛', row)" v-permissions="['system:user:update']">缂栬緫</el-button>
- <el-button type="text" @click="$refs.allocationEnterprises.open('鍒嗛厤浼佷笟', row)" v-if="userInfo.type !== 1">鍒嗛厤浼佷笟</el-button>
- <el-button type="text" icon="el-icon-s-custom" @click="$refs.roleConfigWindow.open(row)" v-permissions="['system:user:createUserRole']">閰嶇疆瑙掕壊</el-button>
- <el-button type="text" @click="$refs.resetPwdWindow.open(row)" v-permissions="['system:user:resetPwd']">閲嶇疆瀵嗙爜</el-button>
-<!-- <el-button v-if="!row.fixed" type="text" icon="el-icon-delete" @click="deleteById(row)" v-permissions="['system:user:delete']">鍒犻櫎</el-button>-->
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- ></pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaUserWindow ref="operaUserWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/>
- <!-- 閰嶇疆瑙掕壊 -->
- <RoleConfigWindow ref="roleConfigWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/>
- <!-- 閲嶇疆瀵嗙爜 -->
- <ResetPwdWindow ref="resetPwdWindow"/>
- <!-- 鍒嗛厤浼佷笟 -->
- <allocationEnterprises ref="allocationEnterprises" @success="handlePageChange(tableData.pagination.pageIndex)"/>
- </TableLayout>
+ <TableLayout :permissions="['system:user:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="80px" inline>
+ <el-form-item label="濮撳悕" prop="realname">
+ <el-input v-model="searchForm.realname" v-trim placeholder="璇疯緭鍏�" @keypress.enter.native="search"/>
+ </el-form-item>
+ <el-form-item label="鎵�灞為儴闂�" prop="companyDepartmentPathName">
+ <el-input v-model="searchForm.companyDepartmentPathName" v-trim placeholder="璇疯緭鍏�" @keypress.enter.native="search"/>
+ </el-form-item>
+ <section>
+ <el-button type="primary" icon="el-icon-search" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['system:user:create', 'system:user:delete']">
+ <li v-permissions="['system:user:create']"><el-button type="primary" @click="$refs.operaUserWindow.open('鏂板璐﹀彿')">鏂板璐﹀彿</el-button></li>
+ <!-- <li v-permissions="['system:user:delete']"><el-button icon="el-icon-delete" @click="deleteByIdInBatch">鍒犻櫎</el-button></li>-->
+ </ul>
+ <!-- @selection-change="handleSelectionChange"-->
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ :default-sort = "{prop: 'createTime', order: 'descending'}"
+ stripe
+ @sort-change="handleSortChange"
+ >
+ <el-table-column label="搴忓彿" width="80px">
+ <template slot-scope="scope">
+ <span>{{scope.$index + 1}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="username" label="璐﹀彿" min-width="120px"></el-table-column>
+ <el-table-column prop="realname" label="濮撳悕" min-width="100px"></el-table-column>
+ <el-table-column prop="mobile" label="鑱旂郴鏂瑰紡" min-width="100px"></el-table-column>
+ <el-table-column label="涓荤" min-width="100px">
+ <template slot-scope="{ row }">
+ <el-switch
+ v-model="row.headStatus"
+ @change="setHeadStatus($event, row)"
+ active-color="#13ce66"
+ inactive-color="#ff4949"
+ :active-value="1"
+ :inactive-value="0">
+ </el-switch>
+ </template>
+ </el-table-column>
+ <el-table-column prop="companyDepartmentPathName" label="鎵�鍦ㄩ儴闂�" min-width="100px"></el-table-column>
+ <el-table-column prop="roles" label="瑙掕壊" min-width="160px" class-name="table-column-strings">
+ <template slot-scope="{row}">
+ <ul>
+ <li v-for="role in row.roles" :key="role.id">{{role.name}}</li>
+ </ul>
+ </template>
+ </el-table-column>
+ <el-table-column label="鍚敤鐘舵��" min-width="100px">
+ <template slot-scope="{row}">
+ <el-switch
+ v-if="!row.fixed"
+ @change="changeStatus($event, row)"
+ v-model="row.status"
+ active-color="#13ce66"
+ inactive-color="#ff4949"
+ :active-value="0"
+ :inactive-value="1">
+ </el-switch>
+ </template>
+ </el-table-column>
+ <el-table-column
+ v-if="containPermissions(['system:user:update', 'system:user:createUserRole', 'system:user:resetPwd', 'system:user:delete'])"
+ label="鎿嶄綔"
+ width="270"
+ fixed="right"
+ >
+ <!-- row.id !== userInfo.id &&-->
+ <template v-if="isAdmin || (row.roles.findIndex(r => r.code === adminCode) === -1)" slot-scope="{row}">
+ <el-button type="text" icon="el-icon-edit" @click="$refs.operaUserWindow.open('缂栬緫鐢ㄦ埛', {...row, departmentId: row.companyDepartmentPathId ? row.companyDepartmentPathId.substring(0, row.companyDepartmentPathId.length - 1).split('/').map(val => +val) : '' })" v-permissions="['system:user:update']">缂栬緫</el-button>
+ <el-button type="text" @click="$refs.allocationEnterprises.open('鍒嗛厤浼佷笟', row)" v-if="[0,2].includes(userInfo.type)">鍒嗛厤浼佷笟</el-button>
+ <el-button type="text" icon="el-icon-s-custom" @click="$refs.roleConfigWindow.open(row)" v-permissions="['system:user:createUserRole']">閰嶇疆瑙掕壊</el-button>
+ <el-button type="text" @click="$refs.resetPwdWindow.open(row)" v-permissions="['system:user:resetPwd']">閲嶇疆瀵嗙爜</el-button>
+ <!-- <el-button v-if="!row.fixed" type="text" icon="el-icon-delete" @click="deleteById(row)" v-permissions="['system:user:delete']">鍒犻櫎</el-button>-->
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ ></pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaUserWindow ref="operaUserWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/>
+ <!-- 閰嶇疆瑙掕壊 -->
+ <RoleConfigWindow ref="roleConfigWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/>
+ <!-- 閲嶇疆瀵嗙爜 -->
+ <ResetPwdWindow ref="resetPwdWindow"/>
+ <!-- 鍒嗛厤浼佷笟 -->
+ <allocationEnterprises ref="allocationEnterprises" @success="handlePageChange(tableData.pagination.pageIndex)"/>
+ </TableLayout>
</template>
<script>
-import Pagination from '@/components/common/Pagination'
-import TableLayout from '@/layouts/TableLayout'
-import BaseTable from '@/components/base/BaseTable'
-import OperaUserWindow from '@/components/system/user/OperaUserWindow'
-import allocationEnterprises from '@/components/system/user/allocationEnterprises'
-import RoleConfigWindow from '@/components/system/user/RoleConfigWindow'
-import ResetPwdWindow from '@/components/system/user/ResetPwdWindow'
-import DepartmentSelect from '@/components/common/DepartmentSelect'
-import PositionSelect from '@/components/common/PositionSelect'
-import { updUserStatus } from '@/api/system/user'
-
-export default {
- name: 'SystemUser',
- extends: BaseTable,
- components: { allocationEnterprises, PositionSelect, DepartmentSelect, ResetPwdWindow, RoleConfigWindow, OperaUserWindow, TableLayout, Pagination },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- username: '', // 鍚嶅瓧
- realname: '', // 濮撳悕
- rootDeptId: null, // 閮ㄩ棬ID
- positionId: null, // 宀椾綅ID
- mobile: '' // 鎵嬫満鍙风爜
+ import Pagination from '@/components/common/Pagination'
+ import TableLayout from '@/layouts/TableLayout'
+ import BaseTable from '@/components/base/BaseTable'
+ import OperaUserWindow from '@/components/system/user/OperaUserWindow'
+ import allocationEnterprises from '@/components/system/user/allocationEnterprises'
+ import RoleConfigWindow from '@/components/system/user/RoleConfigWindow'
+ import ResetPwdWindow from '@/components/system/user/ResetPwdWindow'
+ import DepartmentSelect from '@/components/common/DepartmentSelect'
+ import PositionSelect from '@/components/common/PositionSelect'
+ import { updUserStatus, updateHead } from '@/api/system/user'
+ import { mapState } from 'vuex'
+ export default {
+ name: 'SystemUser',
+ extends: BaseTable,
+ computed: {
+ ...mapState(['userInfo'])
+ },
+ components: { allocationEnterprises, PositionSelect, DepartmentSelect, ResetPwdWindow, RoleConfigWindow, OperaUserWindow, TableLayout, Pagination },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ username: '', // 鍚嶅瓧
+ realname: '', // 濮撳悕
+ rootDeptId: null, // 閮ㄩ棬ID
+ positionId: null, // 宀椾綅ID
+ mobile: '', // 鎵嬫満鍙风爜
+ type: '',
+ companyDepartmentPathName: '' // 閮ㄩ棬鍚嶇О
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '鐢ㄦ埛',
+ api: '/system/user',
+ 'field.main': 'realname',
+ sorts: [{
+ property: 'CREATE_TIME',
+ direction: 'DESC'
+ }]
+ })
+ this.searchForm.type = this.userInfo.type
+ this.search()
+ },
+ methods: {
+ // 璁剧疆鍙栨秷涓荤
+ setHeadStatus(e, row) {
+ updateHead({ id: row.id, headStatus: row.headStatus })
+ .then(res => {
+ this.search()
+ })
+ },
+ changeStatus(status, row) {
+ updUserStatus({
+ id: row.id,
+ status
+ }).then(res => {
+ this.search()
+ }).catch(err => {
+ row.status = row.status === 0 ? 1 : 0
+ })
}
}
- },
- created () {
- this.config({
- module: '鐢ㄦ埛',
- api: '/system/user',
- 'field.main': 'realname',
- sorts: [{
- property: 'CREATE_TIME',
- direction: 'DESC'
- }]
- })
- this.search()
- },
- methods: {
- changeStatus(status, row) {
- updUserStatus({
- id: row.id,
- status
- }).then(res => {
- this.search()
- }).catch(err => {
- row.status = row.status === 0 ? 1 : 0
- })
- }
}
-}
</script>
<style scoped lang="scss">
-@import "@/assets/style/variables.scss";
-// 鍒楄〃澶村儚澶勭悊
-.table-column-avatar {
- img {
- width: 48px;
- }
-}
+ @import "@/assets/style/variables.scss";
+ // 鍒楄〃澶村儚澶勭悊
+ .table-column-avatar {
+ img {
+ width: 48px;
+ }
+ }
</style>
--
Gitblit v1.9.3