From bf69ec41f78a05d45eab4aa7cc5d1c2fc13e5818 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期二, 19 十一月 2024 18:14:52 +0800
Subject: [PATCH] ll
---
admin/.env | 2
admin/src/views/workorder/workorderCate.vue | 0
admin/src/api/Inspection/ywPatrolScheme.js | 40
admin/src/api/workorder/ywWorkorder.js | 40
admin/src/api/project/ywRoom.js | 40
admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue | 122 ++
admin/src/views/stock/in.vue | 0
admin/src/views/Inspection/task.vue | 169 +++
admin/src/api/Inspection/ywPatrolPoint.js | 40
admin/src/views/project/components/buildingDetail.vue | 0
admin/package-lock.json | 160 +-
admin/src/views/Inspection/dot.vue | 139 ++
admin/src/views/project/projectList.vue | 95 +
admin/src/views/client/staffList.vue | 0
admin/src/views/operation/category.vue | 0
admin/src/views/client/components/OperaYwCustomerWindow.vue | 150 +++
admin/src/api/Inspection/ywPatrolTask.js | 40
admin/src/views/workorder/workorderList.vue | 219 ++++
admin/src/views/operation/device.vue | 0
admin/src/api/business/project.js | 0
admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue | 36
admin/src/views/login.vue | 2
admin/src/views/project/components/OperaYwRoomWindow.vue | 114 ++
admin/src/api/project/ywBuilding.js | 40
admin/src/api/project/ywProject.js | 40
admin/src/views/client/clientList.vue | 219 ++++
admin/src/views/operation/record.vue | 0
admin/src/views/contract/contractList.vue | 0
admin/src/views/Inspection/plan.vue | 184 +++
admin/src/views/project/components/OperaYwProjectWindow.vue | 63 +
admin/src/views/project/housingList.vue | 112 ++
/dev/null | 101 --
admin/src/views/index.vue | 26
admin/src/api/client/ywCustomer.js | 40
admin/src/api/Inspection/ywPatrolLine.js | 40
admin/src/views/Inspection/area.vue | 0
admin/src/views/project/components/OperaYwBuildingWindow.vue | 110 ++
admin/src/views/stock/out.vue | 0
admin/public/index.html | 4
admin/src/views/project/buildingList.vue | 169 +++
admin/src/views/Inspection/components/OperaYwPatrolLineWindow.vue | 30
admin/src/views/Inspection/components/OperaYwPatrolTaskWindow.vue | 110 ++
admin/src/views/Inspection/path.vue | 129 ++
admin/src/views/stock/record.vue | 0
admin/src/views/business/internalMember.vue | 5
admin/src/views/stock/query.vue | 0
admin/src/views/workorder/components/OperaYwWorkorderWindow.vue | 150 +++
47 files changed, 2,737 insertions(+), 243 deletions(-)
diff --git a/admin/.env b/admin/.env
index 5d45627..2e37a67 100644
--- a/admin/.env
+++ b/admin/.env
@@ -10,4 +10,4 @@
VUE_APP_API_PREFIX = '/gateway_interface'
# 椤圭洰鍚嶇О
-VUE_APP_TITLE = '瀹夋嘲鏅烘収鐗╂祦鍥尯绯荤粺'
+VUE_APP_TITLE = '闃滃畞鏂囦綋涓績'
diff --git a/admin/package-lock.json b/admin/package-lock.json
index 88eda86..ff48650 100644
--- a/admin/package-lock.json
+++ b/admin/package-lock.json
@@ -1876,63 +1876,6 @@
"integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
"dev": true
},
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "optional": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "optional": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "optional": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "optional": true
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "optional": true
- },
- "loader-utils": {
- "version": "2.0.4",
- "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
- "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
- "dev": true,
- "optional": true,
- "requires": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^2.1.2"
- }
- },
"ssri": {
"version": "8.0.1",
"resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1617826515595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.1.tgz",
@@ -1940,28 +1883,6 @@
"dev": true,
"requires": {
"minipass": "^3.1.1"
- }
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "optional": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "vue-loader-v16": {
- "version": "npm:vue-loader@16.8.3",
- "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
- "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
- "dev": true,
- "optional": true,
- "requires": {
- "chalk": "^4.1.0",
- "hash-sum": "^2.0.0",
- "loader-utils": "^2.0.0"
}
}
}
@@ -13986,6 +13907,87 @@
}
}
},
+ "vue-loader-v16": {
+ "version": "npm:vue-loader@16.8.3",
+ "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
+ "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "chalk": "^4.1.0",
+ "hash-sum": "^2.0.0",
+ "loader-utils": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true,
+ "optional": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "optional": true
+ },
+ "loader-utils": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
"vue-property-decorator": {
"version": "8.5.1",
"resolved": "https://registry.npmjs.org/vue-property-decorator/-/vue-property-decorator-8.5.1.tgz",
diff --git a/admin/public/index.html b/admin/public/index.html
index cd3ecef..a0b0822 100644
--- a/admin/public/index.html
+++ b/admin/public/index.html
@@ -5,11 +5,11 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
- <title>瀹夋嘲鏅烘収鐗╂祦鍥尯绯荤粺</title>
+ <title>闃滃畞鏂囦綋涓績</title>
</head>
<body>
<noscript>
- <strong>We're sorry but 瀹夋嘲鏅烘収鐗╂祦鍥尯绯荤粺 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
+ <strong>We're sorry but 闃滃畞鏂囦綋涓績 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
diff --git a/admin/src/api/Inspection/ywPatrolLine.js b/admin/src/api/Inspection/ywPatrolLine.js
new file mode 100644
index 0000000..88ee422
--- /dev/null
+++ b/admin/src/api/Inspection/ywPatrolLine.js
@@ -0,0 +1,40 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywPatrolLine/page', data, {
+ trim: true
+ })
+}
+
+// 瀵煎嚭Excel
+export function exportExcel (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywPatrolLine/exportExcel', data, {
+ trim: true,
+ download: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywPatrolLine/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywPatrolLine/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/visitsAdmin/cloudService/business/ywPatrolLine/delete/${id}`)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+ return request.get('/visitsAdmin/cloudService/business/ywPatrolLine/delete/batch', {
+ params: {
+ ids
+ }
+ })
+}
diff --git a/admin/src/api/Inspection/ywPatrolPoint.js b/admin/src/api/Inspection/ywPatrolPoint.js
new file mode 100644
index 0000000..933179d
--- /dev/null
+++ b/admin/src/api/Inspection/ywPatrolPoint.js
@@ -0,0 +1,40 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywPatrolPoint/page', data, {
+ trim: true
+ })
+}
+
+// 瀵煎嚭Excel
+export function exportExcel (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywPatrolPoint/exportExcel', data, {
+ trim: true,
+ download: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywPatrolPoint/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywPatrolPoint/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/visitsAdmin/cloudService/business/ywPatrolPoint/delete/${id}`)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+ return request.get('/visitsAdmin/cloudService/business/ywPatrolPoint/delete/batch', {
+ params: {
+ ids
+ }
+ })
+}
diff --git a/admin/src/api/Inspection/ywPatrolScheme.js b/admin/src/api/Inspection/ywPatrolScheme.js
new file mode 100644
index 0000000..e644a9b
--- /dev/null
+++ b/admin/src/api/Inspection/ywPatrolScheme.js
@@ -0,0 +1,40 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywPatrolScheme/page', data, {
+ trim: true
+ })
+}
+
+// 瀵煎嚭Excel
+export function exportExcel (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywPatrolScheme/exportExcel', data, {
+ trim: true,
+ download: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywPatrolScheme/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywPatrolScheme/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/visitsAdmin/cloudService/business/ywPatrolScheme/delete/${id}`)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+ return request.get('/visitsAdmin/cloudService/business/ywPatrolScheme/delete/batch', {
+ params: {
+ ids
+ }
+ })
+}
diff --git a/admin/src/api/Inspection/ywPatrolTask.js b/admin/src/api/Inspection/ywPatrolTask.js
new file mode 100644
index 0000000..d247bf3
--- /dev/null
+++ b/admin/src/api/Inspection/ywPatrolTask.js
@@ -0,0 +1,40 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywPatrolTask/page', data, {
+ trim: true
+ })
+}
+
+// 瀵煎嚭Excel
+export function exportExcel (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywPatrolTask/exportExcel', data, {
+ trim: true,
+ download: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywPatrolTask/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywPatrolTask/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/visitsAdmin/cloudService/business/ywPatrolTask/delete/${id}`)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+ return request.get('/visitsAdmin/cloudService/business/ywPatrolTask/delete/batch', {
+ params: {
+ ids
+ }
+ })
+}
diff --git a/admin/src/views/platform/LogisticsRecord/screen.vue b/admin/src/api/business/project.js
similarity index 100%
copy from admin/src/views/platform/LogisticsRecord/screen.vue
copy to admin/src/api/business/project.js
diff --git a/admin/src/api/client/ywCustomer.js b/admin/src/api/client/ywCustomer.js
new file mode 100644
index 0000000..324a53e
--- /dev/null
+++ b/admin/src/api/client/ywCustomer.js
@@ -0,0 +1,40 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywCustomer/page', data, {
+ trim: true
+ })
+}
+
+// 瀵煎嚭Excel
+export function exportExcel (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywCustomer/exportExcel', data, {
+ trim: true,
+ download: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywCustomer/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywCustomer/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/visitsAdmin/cloudService/business/ywCustomer/delete/${id}`)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+ return request.get('/visitsAdmin/cloudService/business/ywCustomer/delete/batch', {
+ params: {
+ ids
+ }
+ })
+}
diff --git a/admin/src/api/meeting/bookings.js b/admin/src/api/meeting/bookings.js
deleted file mode 100644
index d1ab7f7..0000000
--- a/admin/src/api/meeting/bookings.js
+++ /dev/null
@@ -1,103 +0,0 @@
-import request from '../../utils/request'
-// 鏌ヨ
-export function fetchList(data) {
- return request.post('/meetingAdmin/cloudService/business/bookings/page', data, {
- trim: true
- })
-}
-
-// 瀵煎嚭Excel
-export function exportExcel(data) {
- return request.post('/meetingAdmin/cloudService/business/bookings/exportExcel', data, {
- trim: true,
- download: true
- })
-}
-
-// 鍒涘缓
-export function create(data) {
- return request.post('/meetingAdmin/cloudService/business/bookings/create', data)
-}
-
-// 淇敼
-export function updateById(data) {
- return request.post('/meetingAdmin/cloudService/business/bookings/updateById', data)
-}
-// 鍙栨秷
-export function cancelById(data) {
- return request.post('/meetingAdmin/cloudService/business/meeting/reservationCancel', data)
-}
-// 寮�濮�
-export function startById(data) {
- return request.post('/meetingAdmin/cloudService/business/meeting/start', data)
-}
-// 缁撴潫
-export function meetingEndById(data) {
- return request.post('/meetingAdmin/cloudService/business/meeting/reservationOver', data)
-}
-// 鎻愬墠寮�濮�
-export function startEarlyById(data) {
- return request.post('/meetingAdmin/cloudService/business/meeting/startEarly', data)
-}
-//
-export function overBookById(data) {
- return request.post('/meetingAdmin/cloudService/business/meeting/reservationOver', data)
-}
-// 棰勫畾璇︽儏
-export function BookDetailById(params) {
- return request.get('/meetingAdmin/cloudService/web/meeting/meetingDetail', {
- params
- })
-}
-
-// 鍒犻櫎
-export function deleteById(id) {
- return request.get(`/meetingAdmin/cloudService/business/bookings/delete/${id}`)
-}
-
-// 鏍规嵁ID鏌ヨ
-export function bookingsDetail(id) {
- return request.get(`/meetingAdmin/cloudService/business/bookings/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch(ids) {
- return request.get('/meetingAdmin/cloudService/business/bookings/delete/batch', {
- params: {
- ids
- }
- })
-}
-
-// 浼氳瀹や娇鐢ㄦ椂闀跨粺璁�
-export function getRoomStatistics(yearNum, roomId) {
- return request.get(`/meetingAdmin/cloudService/business/bookings/getRoomStatistics?yearNum=${yearNum}&roomId=${roomId}`)
-}
-// 浼氳瀹や娇鐢ㄦ椂闀跨粺璁″鍑篍xcel
-export function exportRoomStatistics(data) {
- return request.post(`/meetingAdmin/cloudService/business/bookings/exportRoomStatistics`, data, {
- trim: true,
- download: true
- })
-}
-
-// 浜哄憳鍙傚姞浼氳鏃跺父
-export function getUserStatistics(data) {
- return request.post(`/meetingAdmin/cloudService/business/bookings/getUserStatistics`, data)
-}
-// 浜哄憳鍙備細鏃堕暱缁熻瀵煎嚭Excel
-export function exportUserStatistics(data) {
- return request.post(`/meetingAdmin/cloudService/business/bookings/exportUserStatistics`, data, {
- trim: true,
- download: true
- })
-}
-
-//
-export function reservationCancel(type) {
- return request.get(`/meetingAdmin/cloudService/business/bookings/reservationCancel?type=${type}`)
-}
-//
-export function findMothBookingMeet({ roomId, dateMonth }) {
- return request.post(`/meetingAdmin/cloudService/business/bookings/findMothBookingMeet?roomId=${roomId}&dateMonth=${dateMonth}`)
-}
diff --git a/admin/src/api/meeting/devices.js b/admin/src/api/meeting/devices.js
deleted file mode 100644
index 6709043..0000000
--- a/admin/src/api/meeting/devices.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import request from '../../utils/request'
-// 鏌ヨ
-export function fetchList (data) {
- return request.post('/meetingAdmin/cloudService/business/devices/page', data, {
- trim: true
- })
-}
-
-// 瀵煎嚭Excel
-export function exportExcel (data) {
- return request.post('/meetingAdmin/cloudService/business/devices/exportExcel', data, {
- trim: true,
- download: true
- })
-}
-
-// 鍒涘缓
-export function create (data) {
- return request.post('/meetingAdmin/cloudService/business/devices/create', data)
-}
-
-// 淇敼
-export function updateById (data) {
- return request.post('/meetingAdmin/cloudService/business/devices/updateById', data)
-}
-
-// 鍒犻櫎
-export function deleteById (id) {
- return request.get(`/meetingAdmin/cloudService/business/devices/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
- return request.get('/meetingAdmin/cloudService/business/devices/delete/batch', {
- params: {
- ids
- }
- })
-}
diff --git a/admin/src/api/meeting/home.js b/admin/src/api/meeting/home.js
deleted file mode 100644
index f18b5cf..0000000
--- a/admin/src/api/meeting/home.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import request from '../../utils/request'
-// 鏌ヨ
-export function home (data) {
- return request.post('/meetingAdmin/cloudService/business/home/home', data, {
- trim: true
- })
-}
diff --git a/admin/src/api/meeting/notice.js b/admin/src/api/meeting/notice.js
deleted file mode 100644
index 0c7b158..0000000
--- a/admin/src/api/meeting/notice.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import request from '../../utils/request'
-// 鏌ヨ
-export function fetchList (data) {
- return request.post('/meetingAdmin/cloudService/business/notice/page', data, {
- trim: true
- })
-}
-
-// 瀵煎嚭Excel
-export function exportExcel (data) {
- return request.post('/meetingAdmin/cloudService/business/notice/exportExcel', data, {
- trim: true,
- download: true
- })
-}
-
-// 鍒涘缓
-export function create (data) {
- return request.post('/meetingAdmin/cloudService/business/notice/create', data)
-}
-
-// 淇敼
-export function updateById (data) {
- return request.post('/meetingAdmin/cloudService/business/notice/updateById', data)
-}
-
-// 鍒犻櫎
-export function deleteById (id) {
- return request.get(`/meetingAdmin/cloudService/notice/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
- return request.get('/meetingAdmin/cloudService/business/notice/delete/batch', {
- params: {
- ids
- }
- })
-}
diff --git a/admin/src/api/meeting/projects.js b/admin/src/api/meeting/projects.js
deleted file mode 100644
index 03d4b53..0000000
--- a/admin/src/api/meeting/projects.js
+++ /dev/null
@@ -1,43 +0,0 @@
-import request from '../../utils/request'
-// 鏌ヨ
-export function fetchList (data) {
- return request.post('/meetingAdmin/cloudService/business/projects/page', data, {
- trim: true
- })
-}
-
-// 瀵煎嚭Excel
-export function exportExcel (data) {
- return request.post('/meetingAdmin/cloudService/business/projects/exportExcel', data, {
- trim: true,
- download: true
- })
-}
-
-// 鍒涘缓
-export function create (data) {
- return request.post('/meetingAdmin/cloudService/business/projects/create', data)
-}
-
-// 淇敼
-export function updateById (data) {
- return request.post('/meetingAdmin/cloudService/business/projects/updateById', data)
-}
-// 浼氳鍏宠仈鐨勯」鐩�
-export function findListByObjId (data) {
- return request.post('/meetingAdmin/cloudService/business/projects/findListByObjId', data)
-}
-
-// 鍒犻櫎
-export function deleteById (id) {
- return request.get(`/meetingAdmin/cloudService/business/projects/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
- return request.get('/meetingAdmin/cloudService/business/projects/delete/batch', {
- params: {
- ids
- }
- })
-}
diff --git a/admin/src/api/meeting/roomRecord.js b/admin/src/api/meeting/roomRecord.js
deleted file mode 100644
index d4cbb0d..0000000
--- a/admin/src/api/meeting/roomRecord.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import request from '../../utils/request'
-// 鏌ヨ
-export function fetchList (data) {
- return request.post('/meetingAdmin/cloudService/business/roomRecord/page', data, {
- trim: true
- })
-}
-
-// 瀵煎嚭Excel
-export function exportExcel (data) {
- return request.post('/meetingAdmin/cloudService/business/roomRecord/exportExcel', data, {
- trim: true,
- download: true
- })
-}
-
-// 鍒涘缓
-export function create (data) {
- return request.post('/meetingAdmin/cloudService/business/roomRecord/create', data)
-}
-
-// 淇敼
-export function updateById (data) {
- return request.post('/meetingAdmin/cloudService/business/roomRecord/updateById', data)
-}
-
-// 鍒犻櫎
-export function deleteById (id) {
- return request.get(`/meetingAdmin/cloudService/roomRecord/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
- return request.get('/meetingAdmin/cloudService/business/roomRecord/delete/batch', {
- params: {
- ids
- }
- })
-}
diff --git a/admin/src/api/meeting/roomTime.js b/admin/src/api/meeting/roomTime.js
deleted file mode 100644
index 9d717e9..0000000
--- a/admin/src/api/meeting/roomTime.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import request from '../../utils/request'
-// 鏌ヨ
-export function findList (data) {
- return request.post('/meetingAdmin/cloudService/business/roomTime/findList', data)
-}
diff --git a/admin/src/api/meeting/rooms.js b/admin/src/api/meeting/rooms.js
deleted file mode 100644
index 9735b54..0000000
--- a/admin/src/api/meeting/rooms.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import request from '../../utils/request'
-// 鏌ヨ
-export function fetchList (data) {
- return request.post('/meetingAdmin/cloudService/business/rooms/page', data, {
- trim: true
- })
-}
-// 瀵煎嚭Excel
-export function exportExcel (data) {
- return request.post('/meetingAdmin/cloudService/business/rooms/exportExcel', data, {
- trim: true,
- download: true
- })
-}
-// 鍒涘缓
-export function create (data) {
- return request.post('/meetingAdmin/cloudService/business/rooms/create', data)
-}
-
-// 淇敼
-export function updateById (data) {
- return request.post('/meetingAdmin/cloudService/business/rooms/updateById', data)
-}
-// 淇敼鐘舵��
-export function updateStatusById (data) {
- return request.post('/meetingAdmin/cloudService/business/rooms/updateStatusById', data)
-}
-
-//
-export function findList (data) {
- return request.post('/meetingAdmin/cloudService/business/rooms/findList', data)
-}
-
-// 鍒犻櫎
-export function deleteById (id) {
- return request.get(`/meetingAdmin/cloudService/business/rooms/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
- return request.get('/meetingAdmin/cloudService/business/rooms/delete/batch', {
- params: {
- ids
- }
- })
-}
diff --git a/admin/src/api/platform/index.js b/admin/src/api/platform/index.js
deleted file mode 100644
index 4e85937..0000000
--- a/admin/src/api/platform/index.js
+++ /dev/null
@@ -1,130 +0,0 @@
-import request from '@/utils/request'
-
-// 鑾峰彇鏈堝彴缁勪俊鎭�
-export function getPlatformGroupList(data) {
- return request.post('/visitsAdmin/cloudService/business/platform/getPlatformGroupList', data)
-}
-// 鍙彿鍒楄〃
-export function platformCallList(data) {
- return request.post('/visitsAdmin/cloudService/business/platform/platformCallList', data)
-}
-// 鍏ュ洯鍙彿
-export function platformInPark(data) {
- return request.post('/visitsAdmin/cloudService/business/platform/platformInPark', data)
-}
-// 鏈堝彴鍙彿
-export function platformCallNumber(data) {
- return request.post('/visitsAdmin/cloudService/business/platform/platformCallNumber', data)
-}
-// 寮�濮嬩綔涓�
-export function platformBeginWork(data) {
- return request.post('/visitsAdmin/cloudService/business/platform/beginWork', data)
-}
-// 瀹屾垚浣滀笟
-export function platformFinishWork(data) {
- return request.post('/visitsAdmin/cloudService/business/platform/finishWork', data)
-}
-// 杩囧彿
-export function platformOverNumber(data) {
- return request.post('/visitsAdmin/cloudService/business/platform/platformOverNumber', data)
-}
-// 寮傚父鎸傝捣
-export function platformErr(data) {
- return request.post('/visitsAdmin/cloudService/business/platform/platformErr', data)
-}
-// 寮傚父鎸傝捣
-export function platformMove(data) {
- return request.post('/visitsAdmin/cloudService/business/platform/platformMove', data)
-}
-// 鏈堝彴閰嶇疆
-export function updUserPlatformConfig(data) {
- return request.get('/visitsAdmin/cloudService/business/platform/updUserPlatformConfig?ids=' + data)
-}
-
-// 鏍规嵁鏈堝彴缁勮幏鍙栨湀鍙板垪琛ㄤ俊鎭�
-export function listByGroupId(id) {
- return request.get('/visitsAdmin/cloudService/business/platform/listByGroupId?groupId=' + id)
-}
-// 鏈堝彴鍒楄〃 缂栬緫
-export function PlatformEdit(data) {
- return request.post('/visitsAdmin/cloudService/business/platform/updateById', data, {
- trim: true
- })
-}
-// 鏈堝彴鍒楄〃 鍒犻櫎
-export function PlatformDel(id) {
- return request.get('/visitsAdmin/cloudService/business/platform/delete/' + id, {
- trim: true
- })
-}
-// 鏈堝彴璋冨害涓績 鍒楄〃
-export function getPlatformJob(data) {
- return request.post('/visitsAdmin/cloudService/business/platformJob/page', data, {
- trim: true
- })
-}
-// 杞﹁締鎺掗槦鎯呭喌
-export function platformLineUpPage(data) {
- return request.post('/visitsAdmin/cloudService/business/platform/platformLineUpPage', data, {
- trim: true
- })
-}
-
-// 鍏ュ洯鍘熷洜
-export function platformReasonList() {
- return request.get('/visitsAdmin/cloudService/business/platformBooks/platformReasonList')
-}
-// 鐗╂祦杞﹂绾�
-export function platformBooksApply(data) {
- return request.post('/visitsAdmin/cloudService/business/platformBooks/apply', data)
-}
-// 鑾峰彇鏈堝彴缁� 绛夊緟涓庡紓甯告寕璧锋暟鎹�
-export function getPlatformGroupWork(id) {
- return request.get('/visitsAdmin/cloudService/business/platform/getPlatformGroupWork?platformGroupId=' + id)
-}
-// 鏈堝彴鍏ュ洯棰勭害 鍒嗛〉鍒楄〃
-export function platformBooksPage(data) {
- return request.post('/visitsAdmin/cloudService/business/platformBooks/page', data)
-}
-// 鏈堝彴鍏ュ洯棰勭害 鍒楄〃瀵煎嚭
-export function platformBooksExport(data) {
- return request.post('/visitsAdmin/cloudService/business/platformBooks/exportExcel', data, {
- trim: true,
- download: true
- })
-}
-// 鏈堝彴璋冨害浣滀笟浠诲姟 鍒嗛〉鍒楄〃
-export function platformJobPage(data) {
- return request.post('/visitsAdmin/cloudService/business/platformJob/page', data)
-}
-// 缁熻鏈堝彴浣滀笟浠诲姟 鍒嗛〉鍒楄〃
-export function platformLogPage(data) {
- return request.post('/visitsAdmin/cloudService/business/platformLog/page', data)
-}
-// 鏈堝彴浣滀笟缁熻 鍒嗛〉鍒楄〃
-export function platformWorkReportPage(data) {
- return request.post('/visitsAdmin/cloudService/business/platform/platformWorkReportPage', data)
-}
-// 鏈堝彴璋冨害浣滀笟浠诲姟 鍒犻櫎
-export function platformJobDel(id) {
- return request.get('/visitsAdmin/cloudService/business/platformJob/delete?id=' + id)
-}
-// 鏈堝彴杩愬崟璇︽儏
-export function platformWmsJobDetail(id) {
- return request.get('/visitsAdmin/cloudService/business/platformWmsJob/' + id)
-}
-// 鏈堝彴璋冨害浣滀笟浠诲姟 绛惧埌
-export function platformJobSign(data) {
- return request.post('/visitsAdmin/cloudService/business/platformJob/signIn', data)
-}
-// 鏈堝彴璋冨害浣滀笟浠诲姟 绂诲洯鎺堟潈
-export function platformPowerLevel(data) {
- return request.post('/visitsAdmin/cloudService/business/platform/powerLevel', data)
-}
-// 鏈堝彴璋冨害浣滀笟浠诲姟 鍒楄〃瀵煎嚭
-export function platformJobExport(data) {
- return request.post('/visitsAdmin/cloudService/business/platformJob/exportExcel', data, {
- trim: true,
- download: true
- })
-}
diff --git a/admin/src/api/platform/platform.js b/admin/src/api/platform/platform.js
deleted file mode 100644
index c258903..0000000
--- a/admin/src/api/platform/platform.js
+++ /dev/null
@@ -1,57 +0,0 @@
-import request from '../../utils/request'
-
-// 鏌ヨ
-export function fetchList (data) {
- return request.post('/visitsAdmin/cloudService/business/platform/page', data, {
- trim: true
- })
-}
-
-// 鍚屾
-export function syncPlatforms (data) {
- return request.post('/visitsAdmin/cloudService/business/hksync/syncPlatforms', data)
-}
-// 鍚屾
-export function syncPlatformStatus (data) {
- return request.post('/visitsAdmin/cloudService/business/hksync/syncPlatformStatus', data)
-}
-
-// 瀵煎嚭Excel
-export function exportExcel (data) {
- return request.post('/visitsAdmin/cloudService/business/platform/exportExcel', data, {
- trim: true,
- download: true
- })
-}
-// 淇敼鐘舵��
-export function updateStatusById (data) {
- return request.post('/visitsAdmin/cloudService/business/platform/updateStatusById', data)
-}
-
-// 鍒涘缓
-export function create (data) {
- return request.post('/visitsAdmin/cloudService/business/platform/create', data)
-}
-
-// 淇敼
-export function updateById (data) {
- return request.post('/visitsAdmin/cloudService/business/platform/updateById', data)
-}
-
-// 鍒犻櫎
-export function deleteById (id) {
- return request.get(`/visitsAdmin/cloudService/business/platform/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
- return request.get('/visitsAdmin/cloudService/business/platform/delete/batch', {
- params: {
- ids
- }
- })
-}
-// 鏌ヨ鍙绾﹂噺
-export function checkSurplusNum (data) {
- return request.post('/visitsAdmin/cloudService/business/platformBooks/checkSurplusNum', data)
-}
\ No newline at end of file
diff --git a/admin/src/api/platform/platformGroup.js b/admin/src/api/platform/platformGroup.js
deleted file mode 100644
index 87cdd5a..0000000
--- a/admin/src/api/platform/platformGroup.js
+++ /dev/null
@@ -1,45 +0,0 @@
-import request from '../../utils/request'
-
-// 鏌ヨ
-export function fetchList (data) {
- return request.post('/visitsAdmin/cloudService/business/platformGroup/page', data, {
- trim: true
- })
-}
-export function allList (data) {
- return request.post('/visitsAdmin/cloudService/business/platformGroup/list', data, {
- trim: true
- })
-}
-
-// 瀵煎嚭Excel
-export function exportExcel (data) {
- return request.post('/visitsAdmin/cloudService/business/platformGroup/exportExcel', data, {
- trim: true,
- download: true
- })
-}
-
-// 鍒涘缓
-export function create (data) {
- return request.post('/visitsAdmin/cloudService/business/platformGroup/create', data)
-}
-
-// 淇敼
-export function updateById (data) {
- return request.post('/visitsAdmin/cloudService/business/platformGroup/updateById', data)
-}
-
-// 鍒犻櫎
-export function deleteById (id) {
- return request.get(`/visitsAdmin/cloudService/business/platformGroup/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
- return request.get('/visitsAdmin/cloudService/business/platformGroup/delete/batch', {
- params: {
- ids
- }
- })
-}
diff --git a/admin/src/api/platform/platformReason.js b/admin/src/api/platform/platformReason.js
deleted file mode 100644
index 826270c..0000000
--- a/admin/src/api/platform/platformReason.js
+++ /dev/null
@@ -1,48 +0,0 @@
-import request from '../../utils/request'
-
-// 鏌ヨ
-export function fetchList (data) {
- return request.post('/visitsAdmin/cloudService/business/platformReason/page', data, {
- trim: true
- })
-}
-export function allList (data) {
- return request.post('/visitsAdmin/cloudService/business/platformReason/list', data, {
- trim: true
- })
-}
-
-// 瀵煎嚭Excel
-export function exportExcel (data) {
- return request.post('/visitsAdmin/cloudService/business/platformReason/exportExcel', data, {
- trim: true,
- download: true
- })
-}
-
-// 鍒涘缓
-export function create (data) {
- return request.post('/visitsAdmin/cloudService/business/platformReason/create', data)
-}
-
-// 淇敼
-export function updateById (data) {
- return request.post('/visitsAdmin/cloudService/business/platformReason/updateById', data)
-}
-export function updateStatusById (data) {
- return request.post('/visitsAdmin/cloudService/business/platformReason/updateStatusById', data)
-}
-
-// 鍒犻櫎
-export function deleteById (id) {
- return request.get(`/visitsAdmin/cloudService/business/platformReason/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
- return request.get('/visitsAdmin/cloudService/business/platformReason/delete/batch', {
- params: {
- ids
- }
- })
-}
diff --git a/admin/src/api/platform/platformWaterGas.js b/admin/src/api/platform/platformWaterGas.js
deleted file mode 100644
index d8026e1..0000000
--- a/admin/src/api/platform/platformWaterGas.js
+++ /dev/null
@@ -1,48 +0,0 @@
-import request from '../../utils/request'
-
-// 鏌ヨ
-export function fetchList (data) {
- return request.post('/visitsAdmin/cloudService/business/platformWaterGas/page', data, {
- trim: true
- })
-}
-export function allList (data) {
- return request.post('/visitsAdmin/cloudService/business/platformWaterGas/list', data, {
- trim: true
- })
-}
-
-// 瀵煎嚭Excel
-export function exportExcel (data) {
- return request.post('/visitsAdmin/cloudService/business/platformWaterGas/exportExcel', data, {
- trim: true,
- download: true
- })
-}
-
-// 鍒涘缓
-export function create (data) {
- return request.post('/visitsAdmin/cloudService/business/platformWaterGas/create', data)
-}
-
-// 淇敼
-export function updateById (data) {
- return request.post('/visitsAdmin/cloudService/business/platformWaterGas/updateById', data)
-}
-export function updateStatusById (data) {
- return request.post('/visitsAdmin/cloudService/business/platformWaterGas/updateStatusById', data)
-}
-
-// 鍒犻櫎
-export function deleteById (id) {
- return request.get(`/visitsAdmin/cloudService/business/platformWaterGas/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
- return request.get('/visitsAdmin/cloudService/business/platformWaterGas/delete/batch', {
- params: {
- ids
- }
- })
-}
diff --git a/admin/src/api/project/ywBuilding.js b/admin/src/api/project/ywBuilding.js
new file mode 100644
index 0000000..dfcfefd
--- /dev/null
+++ b/admin/src/api/project/ywBuilding.js
@@ -0,0 +1,40 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywBuilding/page', data, {
+ trim: true
+ })
+}
+
+// 瀵煎嚭Excel
+export function exportExcel (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywBuilding/exportExcel', data, {
+ trim: true,
+ download: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywBuilding/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywBuilding/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/visitsAdmin/cloudService/business/ywBuilding/delete/${id}`)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+ return request.get('/visitsAdmin/cloudService/business/ywBuilding/delete/batch', {
+ params: {
+ ids
+ }
+ })
+}
diff --git a/admin/src/api/project/ywProject.js b/admin/src/api/project/ywProject.js
new file mode 100644
index 0000000..b3d7325
--- /dev/null
+++ b/admin/src/api/project/ywProject.js
@@ -0,0 +1,40 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywProject/page', data, {
+ trim: true
+ })
+}
+
+// 瀵煎嚭Excel
+export function exportExcel (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywProject/exportExcel', data, {
+ trim: true,
+ download: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywProject/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywProject/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/visitsAdmin/cloudService/business/ywProject/delete/${id}`)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+ return request.get('/visitsAdmin/cloudService/business/ywProject/delete/batch', {
+ params: {
+ ids
+ }
+ })
+}
diff --git a/admin/src/api/project/ywRoom.js b/admin/src/api/project/ywRoom.js
new file mode 100644
index 0000000..8a7dd61
--- /dev/null
+++ b/admin/src/api/project/ywRoom.js
@@ -0,0 +1,40 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywRoom/page', data, {
+ trim: true
+ })
+}
+
+// 瀵煎嚭Excel
+export function exportExcel (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywRoom/exportExcel', data, {
+ trim: true,
+ download: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywRoom/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywRoom/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/visitsAdmin/cloudService/business/ywRoom/delete/${id}`)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+ return request.get('/visitsAdmin/cloudService/business/ywRoom/delete/batch', {
+ params: {
+ ids
+ }
+ })
+}
diff --git a/admin/src/api/workorder/ywWorkorder.js b/admin/src/api/workorder/ywWorkorder.js
new file mode 100644
index 0000000..5e14df5
--- /dev/null
+++ b/admin/src/api/workorder/ywWorkorder.js
@@ -0,0 +1,40 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywWorkorder/page', data, {
+ trim: true
+ })
+}
+
+// 瀵煎嚭Excel
+export function exportExcel (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywWorkorder/exportExcel', data, {
+ trim: true,
+ download: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywWorkorder/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywWorkorder/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/visitsAdmin/cloudService/business/ywWorkorder/delete/${id}`)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+ return request.get('/visitsAdmin/cloudService/business/ywWorkorder/delete/batch', {
+ params: {
+ ids
+ }
+ })
+}
diff --git a/admin/src/views/platform/LogisticsRecord/screen.vue b/admin/src/views/Inspection/area.vue
similarity index 100%
copy from admin/src/views/platform/LogisticsRecord/screen.vue
copy to admin/src/views/Inspection/area.vue
diff --git a/admin/src/views/meeting/components/OperaRoomRecordWindow.vue b/admin/src/views/Inspection/components/OperaYwPatrolLineWindow.vue
similarity index 66%
rename from admin/src/views/meeting/components/OperaRoomRecordWindow.vue
rename to admin/src/views/Inspection/components/OperaYwPatrolLineWindow.vue
index 964a835..abbc222 100644
--- a/admin/src/views/meeting/components/OperaRoomRecordWindow.vue
+++ b/admin/src/views/Inspection/components/OperaYwPatrolLineWindow.vue
@@ -21,20 +21,20 @@
<el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
<el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" v-trim/>
</el-form-item>
+ <el-form-item label="鍚嶇О" prop="name">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�" v-trim/>
+ </el-form-item>
<el-form-item label="澶囨敞" prop="remark">
<el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/>
</el-form-item>
- <el-form-item label="浜哄憳缂栫爜锛堝叧鑱攕ystem_user琛級" prop="userId">
- <el-input v-model="form.userId" placeholder="璇疯緭鍏ヤ汉鍛樼紪鐮侊紙鍏宠仈system_user琛級" v-trim/>
+ <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
+ <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" v-trim/>
</el-form-item>
- <el-form-item label="鍏宠仈瀵硅薄缂栫爜锛堝叧鑱攔ooms鎴朾ooking琛級" prop="objId">
- <el-input v-model="form.objId" placeholder="璇疯緭鍏ュ叧鑱斿璞$紪鐮侊紙鍏宠仈rooms鎴朾ooking琛級" v-trim/>
+ <el-form-item label="鎺掑簭鐮�" prop="sortnum">
+ <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
</el-form-item>
- <el-form-item label="鍏宠仈瀵硅薄绫诲瀷 0浼氳瀹ょ鐞嗗憳 1鍙備細浜哄憳" prop="objType">
- <el-input v-model="form.objType" placeholder="璇疯緭鍏ュ叧鑱斿璞$被鍨� 0浼氳瀹ょ鐞嗗憳 1鍙備細浜哄憳" v-trim/>
- </el-form-item>
- <el-form-item label="浼氳瀹ょ紪鐮侊紙鍏宠仈rooms琛級" prop="roomId">
- <el-input v-model="form.roomId" placeholder="璇疯緭鍏ヤ細璁缂栫爜锛堝叧鑱攔ooms琛級" v-trim/>
+ <el-form-item label="鍥炬爣" prop="imgurl">
+ <el-input v-model="form.imgurl" placeholder="璇疯緭鍏ュ浘鏍�" v-trim/>
</el-form-item>
</el-form>
</GlobalWindow>
@@ -44,7 +44,7 @@
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
export default {
- name: 'OperaRoomRecordWindow',
+ name: 'OperaYwPatrolLineWindow',
extends: BaseOpera,
components: { GlobalWindow },
data () {
@@ -57,11 +57,11 @@
editor: '',
editDate: '',
isdeleted: '',
+ name: '',
remark: '',
- userId: '',
- objId: '',
- objType: '',
- roomId: ''
+ status: '',
+ sortnum: '',
+ imgurl: ''
},
// 楠岃瘉瑙勫垯
rules: {
@@ -70,7 +70,7 @@
},
created () {
this.config({
- api: '/meeting/roomRecord',
+ api: '/Inspection/ywPatrolLine',
'field.id': 'id'
})
}
diff --git a/admin/src/views/meeting/components/OperaRoomRecordWindow.vue b/admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue
similarity index 64%
copy from admin/src/views/meeting/components/OperaRoomRecordWindow.vue
copy to admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue
index 964a835..cc134ed 100644
--- a/admin/src/views/meeting/components/OperaRoomRecordWindow.vue
+++ b/admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue
@@ -21,20 +21,26 @@
<el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
<el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" v-trim/>
</el-form-item>
+ <el-form-item label="鍚嶇О" prop="name">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�" v-trim/>
+ </el-form-item>
<el-form-item label="澶囨敞" prop="remark">
<el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/>
</el-form-item>
- <el-form-item label="浜哄憳缂栫爜锛堝叧鑱攕ystem_user琛級" prop="userId">
- <el-input v-model="form.userId" placeholder="璇疯緭鍏ヤ汉鍛樼紪鐮侊紙鍏宠仈system_user琛級" v-trim/>
+ <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
+ <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" v-trim/>
</el-form-item>
- <el-form-item label="鍏宠仈瀵硅薄缂栫爜锛堝叧鑱攔ooms鎴朾ooking琛級" prop="objId">
- <el-input v-model="form.objId" placeholder="璇疯緭鍏ュ叧鑱斿璞$紪鐮侊紙鍏宠仈rooms鎴朾ooking琛級" v-trim/>
+ <el-form-item label="鎺掑簭鐮�" prop="sortnum">
+ <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
</el-form-item>
- <el-form-item label="鍏宠仈瀵硅薄绫诲瀷 0浼氳瀹ょ鐞嗗憳 1鍙備細浜哄憳" prop="objType">
- <el-input v-model="form.objType" placeholder="璇疯緭鍏ュ叧鑱斿璞$被鍨� 0浼氳瀹ょ鐞嗗憳 1鍙備細浜哄憳" v-trim/>
+ <el-form-item label="鍥炬爣" prop="imgurl">
+ <el-input v-model="form.imgurl" placeholder="璇疯緭鍏ュ浘鏍�" v-trim/>
</el-form-item>
- <el-form-item label="浼氳瀹ょ紪鐮侊紙鍏宠仈rooms琛級" prop="roomId">
- <el-input v-model="form.roomId" placeholder="璇疯緭鍏ヤ細璁缂栫爜锛堝叧鑱攔ooms琛級" v-trim/>
+ <el-form-item label="鍖哄煙缂栫爜锛堝叧鑱攃ategory)" prop="areaId">
+ <el-input v-model="form.areaId" placeholder="璇疯緭鍏ュ尯鍩熺紪鐮侊紙鍏宠仈category)" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍦板潃" prop="addr">
+ <el-input v-model="form.addr" placeholder="璇疯緭鍏ュ湴鍧�" v-trim/>
</el-form-item>
</el-form>
</GlobalWindow>
@@ -44,7 +50,7 @@
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
export default {
- name: 'OperaRoomRecordWindow',
+ name: 'OperaYwPatrolPointWindow',
extends: BaseOpera,
components: { GlobalWindow },
data () {
@@ -57,11 +63,13 @@
editor: '',
editDate: '',
isdeleted: '',
+ name: '',
remark: '',
- userId: '',
- objId: '',
- objType: '',
- roomId: ''
+ status: '',
+ sortnum: '',
+ imgurl: '',
+ areaId: '',
+ addr: ''
},
// 楠岃瘉瑙勫垯
rules: {
@@ -70,7 +78,7 @@
},
created () {
this.config({
- api: '/meeting/roomRecord',
+ api: '/Inspection/ywPatrolPoint',
'field.id': 'id'
})
}
diff --git a/admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue b/admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue
new file mode 100644
index 0000000..d4e36c0
--- /dev/null
+++ b/admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue
@@ -0,0 +1,122 @@
+<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="creator">
+ <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
+ <el-input v-model="form.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
+ <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
+ <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏍囬" prop="title">
+ <el-input v-model="form.title" placeholder="璇疯緭鍏ユ爣棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
+ <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎺掑簭鐮�" prop="sortnum">
+ <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="宸℃鐐圭紪鐮�(鍏宠仈yw_patrol_line)" prop="lineId">
+ <el-input v-model="form.lineId" placeholder="璇疯緭鍏ュ贰妫�鐐圭紪鐮�(鍏宠仈yw_patrol_line)" v-trim/>
+ </el-form-item>
+ <el-form-item label="宸℃璐熻矗浜虹紪鐮侀泦鍚堬紝澶氫釜浣跨敤鑻辨枃閫楀彿闅斿紑" prop="userIds">
+ <el-input v-model="form.userIds" placeholder="璇疯緭鍏ュ贰妫�璐熻矗浜虹紪鐮侀泦鍚堬紝澶氫釜浣跨敤鑻辨枃閫楀彿闅斿紑" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶勭悊浜虹紪鐮�(鍏宠仈system_user)" prop="dealUserId">
+ <el-input v-model="form.dealUserId" placeholder="璇疯緭鍏ュ鐞嗕汉缂栫爜(鍏宠仈system_user)" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶勭悊鏃堕棿" prop="dealDate">
+ <el-date-picker v-model="form.dealDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ鐞嗘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="澶勭悊澶囨敞" prop="dealInfo">
+ <el-input v-model="form.dealInfo" placeholder="璇疯緭鍏ュ鐞嗗娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="寰幆鍛ㄦ湡 0姣忓ぉ 1姣忓懆 2姣忓ぉ" prop="circleType">
+ <el-input v-model="form.circleType" placeholder="璇疯緭鍏ュ惊鐜懆鏈� 0姣忓ぉ 1姣忓懆 2姣忓ぉ" v-trim/>
+ </el-form-item>
+ <el-form-item label="寰幆閲嶅瑙勫垯 1-31锛屽涓嫳鏂囬�楀彿闅斿紑" prop="circleDays">
+ <el-input v-model="form.circleDays" placeholder="璇疯緭鍏ュ惊鐜噸澶嶈鍒� 1-31锛屽涓嫳鏂囬�楀彿闅斿紑" v-trim/>
+ </el-form-item>
+ <el-form-item label="寮�濮嬫棩鏈�" prop="startDate">
+ <el-date-picker v-model="form.startDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ紑濮嬫棩鏈�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="缁撴潫鏃ユ湡" prop="endDate">
+ <el-date-picker v-model="form.endDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ粨鏉熸棩鏈�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="寮�濮嬫椂闂寸偣" prop="startTime">
+ <el-input v-model="form.startTime" placeholder="璇疯緭鍏ュ紑濮嬫椂闂寸偣" v-trim/>
+ </el-form-item>
+ <el-form-item label="缁撴潫鏃堕棿鐐�" prop="endTime">
+ <el-input v-model="form.endTime" placeholder="璇疯緭鍏ョ粨鏉熸椂闂寸偣" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎵ц杩涘害 0寰呭紑濮� 1杩涜涓� 2瓒呮湡 3宸插畬鎴�" prop="processStatus">
+ <el-input v-model="form.processStatus" placeholder="璇疯緭鍏ユ墽琛岃繘搴� 0寰呭紑濮� 1杩涜涓� 2瓒呮湡 3宸插畬鎴�" 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: 'OperaYwPatrolSchemeWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ title: '',
+ remark: '',
+ status: '',
+ sortnum: '',
+ lineId: '',
+ userIds: '',
+ dealUserId: '',
+ dealDate: '',
+ dealInfo: '',
+ circleType: '',
+ circleDays: '',
+ startDate: '',
+ endDate: '',
+ startTime: '',
+ endTime: '',
+ processStatus: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/Inspection/ywPatrolScheme',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/views/Inspection/components/OperaYwPatrolTaskWindow.vue b/admin/src/views/Inspection/components/OperaYwPatrolTaskWindow.vue
new file mode 100644
index 0000000..e990066
--- /dev/null
+++ b/admin/src/views/Inspection/components/OperaYwPatrolTaskWindow.vue
@@ -0,0 +1,110 @@
+<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="creator">
+ <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
+ <el-input v-model="form.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
+ <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
+ <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏍囬" prop="title">
+ <el-input v-model="form.title" placeholder="璇疯緭鍏ユ爣棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0寰呭紑濮� 1杩涜涓� 2宸茶秴鏈� 3宸插畬鎴� 4宸插彇娑�" prop="status">
+ <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0寰呭紑濮� 1杩涜涓� 2宸茶秴鏈� 3宸插畬鎴� 4宸插彇娑�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎺掑簭鐮�" prop="sortnum">
+ <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="宸℃璁″垝缂栫爜(鍏宠仈yw_patrol_scheme)" prop="schemeId">
+ <el-input v-model="form.schemeId" placeholder="璇疯緭鍏ュ贰妫�璁″垝缂栫爜(鍏宠仈yw_patrol_scheme)" v-trim/>
+ </el-form-item>
+ <el-form-item label="宸℃鐐圭紪鐮�(鍏宠仈yw_patrol_point)" prop="pointId">
+ <el-input v-model="form.pointId" placeholder="璇疯緭鍏ュ贰妫�鐐圭紪鐮�(鍏宠仈yw_patrol_point)" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶勭悊浜虹紪鐮�(鍏宠仈system_user)" prop="dealUserId">
+ <el-input v-model="form.dealUserId" placeholder="璇疯緭鍏ュ鐞嗕汉缂栫爜(鍏宠仈system_user)" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶勭悊鏃堕棿" prop="dealDate">
+ <el-date-picker v-model="form.dealDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ鐞嗘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="澶勭悊澶囨敞" prop="dealInfo">
+ <el-input v-model="form.dealInfo" placeholder="璇疯緭鍏ュ鐞嗗娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="寰幆鍛ㄦ湡 0姣忓ぉ 1姣忓懆 2姣忓ぉ" prop="circleType">
+ <el-input v-model="form.circleType" placeholder="璇疯緭鍏ュ惊鐜懆鏈� 0姣忓ぉ 1姣忓懆 2姣忓ぉ" v-trim/>
+ </el-form-item>
+ <el-form-item label="寮�濮嬫棩鏈�" prop="startDate">
+ <el-date-picker v-model="form.startDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ紑濮嬫棩鏈�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="缁撴潫鏃ユ湡" prop="endDate">
+ <el-date-picker v-model="form.endDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ粨鏉熸棩鏈�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="宸℃缁撴灉 0姝e父 1寮傚父" prop="dealStatus">
+ <el-input v-model="form.dealStatus" placeholder="璇疯緭鍏ュ贰妫�缁撴灉 0姝e父 1寮傚父" 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: 'OperaYwPatrolTaskWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ title: '',
+ remark: '',
+ status: '',
+ sortnum: '',
+ schemeId: '',
+ pointId: '',
+ dealUserId: '',
+ dealDate: '',
+ dealInfo: '',
+ circleType: '',
+ startDate: '',
+ endDate: '',
+ dealStatus: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/Inspection/ywPatrolTask',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/views/Inspection/dot.vue b/admin/src/views/Inspection/dot.vue
new file mode 100644
index 0000000..804b0a9
--- /dev/null
+++ b/admin/src/views/Inspection/dot.vue
@@ -0,0 +1,139 @@
+<template>
+ <TableLayout :permissions="['business:ywpatrolpoint:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="涓婚敭" prop="id">
+ <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ヤ富閿�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
+ <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
+ <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
+ <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
+ <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <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="remark">
+ <el-input v-model="searchForm.remark" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
+ <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎺掑簭鐮�" prop="sortnum">
+ <el-input v-model="searchForm.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍥炬爣" prop="imgurl">
+ <el-input v-model="searchForm.imgurl" placeholder="璇疯緭鍏ュ浘鏍�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍖哄煙缂栫爜锛堝叧鑱攃ategory)" prop="areaId">
+ <el-input v-model="searchForm.areaId" placeholder="璇疯緭鍏ュ尯鍩熺紪鐮侊紙鍏宠仈category)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍦板潃" prop="addr">
+ <el-input v-model="searchForm.addr" placeholder="璇疯緭鍏ュ湴鍧�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywpatrolpoint:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:ywpatrolpoint:create', 'business:ywpatrolpoint:delete']">
+ <li><el-button type="primary" @click="$refs.operaYwPatrolPointWindow.open('鏂板缓杩愮淮宸℃鐐逛俊鎭〃')" icon="el-icon-plus" v-permissions="['business:ywpatrolpoint:create']">鏂板缓</el-button></li>
+ <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywpatrolpoint:delete']">鍒犻櫎</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column type="selection" width="55"></el-table-column>
+ <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
+ <el-table-column prop="creator" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="editor" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="isdeleted" label="鏄惁鍒犻櫎0鍚� 1鏄�" min-width="100px"></el-table-column>
+ <el-table-column prop="name" label="鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
+ <el-table-column prop="status" label="鐘舵�� 0鍚敤 1绂佺敤" min-width="100px"></el-table-column>
+ <el-table-column prop="sortnum" label="鎺掑簭鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="imgurl" label="鍥炬爣" min-width="100px"></el-table-column>
+ <el-table-column prop="areaId" label="鍖哄煙缂栫爜锛堝叧鑱攃ategory)" min-width="100px"></el-table-column>
+ <el-table-column prop="addr" label="鍦板潃" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:ywpatrolpoint:update', 'business:ywpatrolpoint:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaYwPatrolPointWindow.open('缂栬緫杩愮淮宸℃鐐逛俊鎭〃', row)" icon="el-icon-edit" v-permissions="['business:ywpatrolpoint:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywpatrolpoint:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaYwPatrolPointWindow ref="operaYwPatrolPointWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaYwPatrolPointWindow from './components/OperaYwPatrolPointWindow'
+export default {
+ name: 'YwPatrolPoint',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaYwPatrolPointWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ name: '',
+ remark: '',
+ status: '',
+ sortnum: '',
+ imgurl: '',
+ areaId: '',
+ addr: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '杩愮淮宸℃鐐逛俊鎭〃',
+ api: '/Inspection/ywPatrolPoint',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/Inspection/path.vue b/admin/src/views/Inspection/path.vue
new file mode 100644
index 0000000..3cfe10a
--- /dev/null
+++ b/admin/src/views/Inspection/path.vue
@@ -0,0 +1,129 @@
+<template>
+ <TableLayout :permissions="['business:ywpatrolline:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="涓婚敭" prop="id">
+ <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ヤ富閿�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
+ <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
+ <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
+ <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
+ <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <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="remark">
+ <el-input v-model="searchForm.remark" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
+ <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎺掑簭鐮�" prop="sortnum">
+ <el-input v-model="searchForm.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍥炬爣" prop="imgurl">
+ <el-input v-model="searchForm.imgurl" placeholder="璇疯緭鍏ュ浘鏍�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywpatrolline:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:ywpatrolline:create', 'business:ywpatrolline:delete']">
+ <li><el-button type="primary" @click="$refs.operaYwPatrolLineWindow.open('鏂板缓杩愮淮宸℃璺嚎淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:ywpatrolline:create']">鏂板缓</el-button></li>
+ <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywpatrolline:delete']">鍒犻櫎</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column type="selection" width="55"></el-table-column>
+ <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
+ <el-table-column prop="creator" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="editor" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="isdeleted" label="鏄惁鍒犻櫎0鍚� 1鏄�" min-width="100px"></el-table-column>
+ <el-table-column prop="name" label="鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
+ <el-table-column prop="status" label="鐘舵�� 0鍚敤 1绂佺敤" min-width="100px"></el-table-column>
+ <el-table-column prop="sortnum" label="鎺掑簭鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="imgurl" label="鍥炬爣" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:ywpatrolline:update', 'business:ywpatrolline:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaYwPatrolLineWindow.open('缂栬緫杩愮淮宸℃璺嚎淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:ywpatrolline:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywpatrolline:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaYwPatrolLineWindow ref="operaYwPatrolLineWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaYwPatrolLineWindow from './components/OperaYwPatrolLineWindow'
+export default {
+ name: 'YwPatrolLine',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaYwPatrolLineWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ name: '',
+ remark: '',
+ status: '',
+ sortnum: '',
+ imgurl: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '杩愮淮宸℃璺嚎淇℃伅琛�',
+ api: '/Inspection/ywPatrolLine',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/Inspection/plan.vue b/admin/src/views/Inspection/plan.vue
new file mode 100644
index 0000000..0a92ff6
--- /dev/null
+++ b/admin/src/views/Inspection/plan.vue
@@ -0,0 +1,184 @@
+<template>
+ <TableLayout :permissions="['business:ywpatrolscheme:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="涓婚敭" prop="id">
+ <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ヤ富閿�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
+ <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
+ <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
+ <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
+ <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏍囬" prop="title">
+ <el-input v-model="searchForm.title" placeholder="璇疯緭鍏ユ爣棰�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input v-model="searchForm.remark" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
+ <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎺掑簭鐮�" prop="sortnum">
+ <el-input v-model="searchForm.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="宸℃鐐圭紪鐮�(鍏宠仈yw_patrol_line)" prop="lineId">
+ <el-input v-model="searchForm.lineId" placeholder="璇疯緭鍏ュ贰妫�鐐圭紪鐮�(鍏宠仈yw_patrol_line)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="宸℃璐熻矗浜虹紪鐮侀泦鍚堬紝澶氫釜浣跨敤鑻辨枃閫楀彿闅斿紑" prop="userIds">
+ <el-input v-model="searchForm.userIds" placeholder="璇疯緭鍏ュ贰妫�璐熻矗浜虹紪鐮侀泦鍚堬紝澶氫釜浣跨敤鑻辨枃閫楀彿闅斿紑" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶勭悊浜虹紪鐮�(鍏宠仈system_user)" prop="dealUserId">
+ <el-input v-model="searchForm.dealUserId" placeholder="璇疯緭鍏ュ鐞嗕汉缂栫爜(鍏宠仈system_user)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶勭悊鏃堕棿" prop="dealDate">
+ <el-date-picker v-model="searchForm.dealDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ鐞嗘椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="澶勭悊澶囨敞" prop="dealInfo">
+ <el-input v-model="searchForm.dealInfo" placeholder="璇疯緭鍏ュ鐞嗗娉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="寰幆鍛ㄦ湡 0姣忓ぉ 1姣忓懆 2姣忓ぉ" prop="circleType">
+ <el-input v-model="searchForm.circleType" placeholder="璇疯緭鍏ュ惊鐜懆鏈� 0姣忓ぉ 1姣忓懆 2姣忓ぉ" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="寰幆閲嶅瑙勫垯 1-31锛屽涓嫳鏂囬�楀彿闅斿紑" prop="circleDays">
+ <el-input v-model="searchForm.circleDays" placeholder="璇疯緭鍏ュ惊鐜噸澶嶈鍒� 1-31锛屽涓嫳鏂囬�楀彿闅斿紑" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="寮�濮嬫棩鏈�" prop="startDate">
+ <el-date-picker v-model="searchForm.startDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ紑濮嬫棩鏈�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="缁撴潫鏃ユ湡" prop="endDate">
+ <el-date-picker v-model="searchForm.endDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ粨鏉熸棩鏈�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="寮�濮嬫椂闂寸偣" prop="startTime">
+ <el-input v-model="searchForm.startTime" placeholder="璇疯緭鍏ュ紑濮嬫椂闂寸偣" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="缁撴潫鏃堕棿鐐�" prop="endTime">
+ <el-input v-model="searchForm.endTime" placeholder="璇疯緭鍏ョ粨鏉熸椂闂寸偣" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎵ц杩涘害 0寰呭紑濮� 1杩涜涓� 2瓒呮湡 3宸插畬鎴�" prop="processStatus">
+ <el-input v-model="searchForm.processStatus" placeholder="璇疯緭鍏ユ墽琛岃繘搴� 0寰呭紑濮� 1杩涜涓� 2瓒呮湡 3宸插畬鎴�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywpatrolscheme:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:ywpatrolscheme:create', 'business:ywpatrolscheme:delete']">
+ <li><el-button type="primary" @click="$refs.operaYwPatrolSchemeWindow.open('鏂板缓杩愮淮宸℃璁″垝淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:ywpatrolscheme:create']">鏂板缓</el-button></li>
+ <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywpatrolscheme:delete']">鍒犻櫎</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column type="selection" width="55"></el-table-column>
+ <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
+ <el-table-column prop="creator" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="editor" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="isdeleted" label="鏄惁鍒犻櫎0鍚� 1鏄�" min-width="100px"></el-table-column>
+ <el-table-column prop="title" label="鏍囬" min-width="100px"></el-table-column>
+ <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
+ <el-table-column prop="status" label="鐘舵�� 0鍚敤 1绂佺敤" min-width="100px"></el-table-column>
+ <el-table-column prop="sortnum" label="鎺掑簭鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="lineId" label="宸℃鐐圭紪鐮�(鍏宠仈yw_patrol_line)" min-width="100px"></el-table-column>
+ <el-table-column prop="userIds" label="宸℃璐熻矗浜虹紪鐮侀泦鍚堬紝澶氫釜浣跨敤鑻辨枃閫楀彿闅斿紑" min-width="100px"></el-table-column>
+ <el-table-column prop="dealUserId" label="澶勭悊浜虹紪鐮�(鍏宠仈system_user)" min-width="100px"></el-table-column>
+ <el-table-column prop="dealDate" label="澶勭悊鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="dealInfo" label="澶勭悊澶囨敞" min-width="100px"></el-table-column>
+ <el-table-column prop="circleType" label="寰幆鍛ㄦ湡 0姣忓ぉ 1姣忓懆 2姣忓ぉ" min-width="100px"></el-table-column>
+ <el-table-column prop="circleDays" label="寰幆閲嶅瑙勫垯 1-31锛屽涓嫳鏂囬�楀彿闅斿紑" min-width="100px"></el-table-column>
+ <el-table-column prop="startDate" label="寮�濮嬫棩鏈�" min-width="100px"></el-table-column>
+ <el-table-column prop="endDate" label="缁撴潫鏃ユ湡" min-width="100px"></el-table-column>
+ <el-table-column prop="startTime" label="寮�濮嬫椂闂寸偣" min-width="100px"></el-table-column>
+ <el-table-column prop="endTime" label="缁撴潫鏃堕棿鐐�" min-width="100px"></el-table-column>
+ <el-table-column prop="processStatus" label="鎵ц杩涘害 0寰呭紑濮� 1杩涜涓� 2瓒呮湡 3宸插畬鎴�" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:ywpatrolscheme:update', 'business:ywpatrolscheme:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaYwPatrolSchemeWindow.open('缂栬緫杩愮淮宸℃璁″垝淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:ywpatrolscheme:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywpatrolscheme:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaYwPatrolSchemeWindow ref="operaYwPatrolSchemeWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaYwPatrolSchemeWindow from './components/OperaYwPatrolSchemeWindow'
+export default {
+ name: 'YwPatrolScheme',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaYwPatrolSchemeWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ title: '',
+ remark: '',
+ status: '',
+ sortnum: '',
+ lineId: '',
+ userIds: '',
+ dealUserId: '',
+ dealDate: '',
+ dealInfo: '',
+ circleType: '',
+ circleDays: '',
+ startDate: '',
+ endDate: '',
+ startTime: '',
+ endTime: '',
+ processStatus: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '杩愮淮宸℃璁″垝淇℃伅琛�',
+ api: '/Inspection/ywPatrolScheme',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/Inspection/task.vue b/admin/src/views/Inspection/task.vue
new file mode 100644
index 0000000..e2e9040
--- /dev/null
+++ b/admin/src/views/Inspection/task.vue
@@ -0,0 +1,169 @@
+<template>
+ <TableLayout :permissions="['business:ywpatroltask:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="涓婚敭" prop="id">
+ <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ヤ富閿�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
+ <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
+ <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
+ <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
+ <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏍囬" prop="title">
+ <el-input v-model="searchForm.title" placeholder="璇疯緭鍏ユ爣棰�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input v-model="searchForm.remark" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0寰呭紑濮� 1杩涜涓� 2宸茶秴鏈� 3宸插畬鎴� 4宸插彇娑�" prop="status">
+ <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬� 0寰呭紑濮� 1杩涜涓� 2宸茶秴鏈� 3宸插畬鎴� 4宸插彇娑�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎺掑簭鐮�" prop="sortnum">
+ <el-input v-model="searchForm.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="宸℃璁″垝缂栫爜(鍏宠仈yw_patrol_scheme)" prop="schemeId">
+ <el-input v-model="searchForm.schemeId" placeholder="璇疯緭鍏ュ贰妫�璁″垝缂栫爜(鍏宠仈yw_patrol_scheme)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="宸℃鐐圭紪鐮�(鍏宠仈yw_patrol_point)" prop="pointId">
+ <el-input v-model="searchForm.pointId" placeholder="璇疯緭鍏ュ贰妫�鐐圭紪鐮�(鍏宠仈yw_patrol_point)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶勭悊浜虹紪鐮�(鍏宠仈system_user)" prop="dealUserId">
+ <el-input v-model="searchForm.dealUserId" placeholder="璇疯緭鍏ュ鐞嗕汉缂栫爜(鍏宠仈system_user)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶勭悊鏃堕棿" prop="dealDate">
+ <el-date-picker v-model="searchForm.dealDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ鐞嗘椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="澶勭悊澶囨敞" prop="dealInfo">
+ <el-input v-model="searchForm.dealInfo" placeholder="璇疯緭鍏ュ鐞嗗娉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="寰幆鍛ㄦ湡 0姣忓ぉ 1姣忓懆 2姣忓ぉ" prop="circleType">
+ <el-input v-model="searchForm.circleType" placeholder="璇疯緭鍏ュ惊鐜懆鏈� 0姣忓ぉ 1姣忓懆 2姣忓ぉ" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="寮�濮嬫棩鏈�" prop="startDate">
+ <el-date-picker v-model="searchForm.startDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ紑濮嬫棩鏈�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="缁撴潫鏃ユ湡" prop="endDate">
+ <el-date-picker v-model="searchForm.endDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ粨鏉熸棩鏈�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="宸℃缁撴灉 0姝e父 1寮傚父" prop="dealStatus">
+ <el-input v-model="searchForm.dealStatus" placeholder="璇疯緭鍏ュ贰妫�缁撴灉 0姝e父 1寮傚父" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywpatroltask:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:ywpatroltask:create', 'business:ywpatroltask:delete']">
+ <li><el-button type="primary" @click="$refs.operaYwPatrolTaskWindow.open('鏂板缓杩愮淮宸℃浠诲姟淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:ywpatroltask:create']">鏂板缓</el-button></li>
+ <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywpatroltask:delete']">鍒犻櫎</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column type="selection" width="55"></el-table-column>
+ <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
+ <el-table-column prop="creator" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="editor" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="isdeleted" label="鏄惁鍒犻櫎0鍚� 1鏄�" min-width="100px"></el-table-column>
+ <el-table-column prop="title" label="鏍囬" min-width="100px"></el-table-column>
+ <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
+ <el-table-column prop="status" label="鐘舵�� 0寰呭紑濮� 1杩涜涓� 2宸茶秴鏈� 3宸插畬鎴� 4宸插彇娑�" min-width="100px"></el-table-column>
+ <el-table-column prop="sortnum" label="鎺掑簭鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="schemeId" label="宸℃璁″垝缂栫爜(鍏宠仈yw_patrol_scheme)" min-width="100px"></el-table-column>
+ <el-table-column prop="pointId" label="宸℃鐐圭紪鐮�(鍏宠仈yw_patrol_point)" min-width="100px"></el-table-column>
+ <el-table-column prop="dealUserId" label="澶勭悊浜虹紪鐮�(鍏宠仈system_user)" min-width="100px"></el-table-column>
+ <el-table-column prop="dealDate" label="澶勭悊鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="dealInfo" label="澶勭悊澶囨敞" min-width="100px"></el-table-column>
+ <el-table-column prop="circleType" label="寰幆鍛ㄦ湡 0姣忓ぉ 1姣忓懆 2姣忓ぉ" min-width="100px"></el-table-column>
+ <el-table-column prop="startDate" label="寮�濮嬫棩鏈�" min-width="100px"></el-table-column>
+ <el-table-column prop="endDate" label="缁撴潫鏃ユ湡" min-width="100px"></el-table-column>
+ <el-table-column prop="dealStatus" label="宸℃缁撴灉 0姝e父 1寮傚父" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:ywpatroltask:update', 'business:ywpatroltask:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaYwPatrolTaskWindow.open('缂栬緫杩愮淮宸℃浠诲姟淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:ywpatroltask:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywpatroltask:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaYwPatrolTaskWindow ref="operaYwPatrolTaskWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaYwPatrolTaskWindow from './components/OperaYwPatrolTaskWindow'
+export default {
+ name: 'YwPatrolTask',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaYwPatrolTaskWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ title: '',
+ remark: '',
+ status: '',
+ sortnum: '',
+ schemeId: '',
+ pointId: '',
+ dealUserId: '',
+ dealDate: '',
+ dealInfo: '',
+ circleType: '',
+ startDate: '',
+ endDate: '',
+ dealStatus: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '杩愮淮宸℃浠诲姟淇℃伅琛�',
+ api: '/Inspection/ywPatrolTask',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/business/approvalConfiguration.vue b/admin/src/views/business/approvalConfiguration.vue
deleted file mode 100644
index 56f5133..0000000
--- a/admin/src/views/business/approvalConfiguration.vue
+++ /dev/null
@@ -1,674 +0,0 @@
-<template>
- <TableLayout>
- <template v-slot:table-wrap>
- <el-tabs v-model="activeType" @tab-click="handleClick">
- <el-tab-pane label="鏅�氳瀹�" name="0"></el-tab-pane>
- <el-tab-pane label="鏂藉伐璁垮" name="1"></el-tab-pane>
- </el-tabs>
- <div class="config">
- <div class="config_list">
- <div class="config_list_head">
- <span>閰嶇疆娴佺▼</span>
- </div>
- <div class="config_content">
- <div class="item">
- <div class="head">鍙戣捣浜�</div>
- <div class="content">璁垮</div>
- </div>
- <div class="arrows">
- <div class="line"></div>
- <img src="@/assets/images/peizhi_ar@2x.png" alt="" />
- </div>
- <div v-for="(item, index) in apprList" :key="index">
- <div class="item yellow" :class="{
- active: activeIndex == index,
- blue: item.type == '1',
- }" @click="flowClick(index)">
- <div class="head">{{ item.remark }}</div>
- <div class="content">
- <!-- 瀹℃壒 -->
- <template v-if="item.type == 0">
- <template v-if="item.memberType == '0'">
- <div>琚浜�</div>
- </template>
- <template v-if="item.memberType == '2'">
- <div>閮ㄩ棬涓荤</div>
- </template>
- <template v-if="item.memberType == '1'">
- <div v-if="item.objIds && item.objIds.length === 1">
- <span>{{ item.objIds[0].name }}
- {{ item.objIds[0].companyName }}</span>
- <span v-if="item.approveType == 0 && item.type == '0'">
- 鎴栫</span>
- <span v-if="item.approveType == 1 && item.type == '0'">
- 浼氱</span>
- </div>
- <div v-else-if="item.objIds && item.objIds.length > 1">
- <span>{{ item.objIds[0].name }} 绛�</span>
- <span v-if="item.approveType == 0 && item.type == '0'">
- 鎴栫</span>
- <span v-if="item.approveType == 1 && item.type == '0'">
- 浼氱</span>
- </div>
- <div v-else>璇烽�夋嫨</div>
- <i class="el-icon-arrow-right"></i>
- </template>
- </template>
- <!-- 鎶勯�� -->
- <template v-if="item.type == 1">
- <div v-if="item.objIds && item.objIds.length === 1">
- <span>{{ item.objIds[0].name }}
- {{ item.objIds[0].companyName }}</span>
- </div>
- <div v-else-if="item.objIds && item.objIds.length > 1">
- <span>{{ item.objIds[0].name }} 绛�</span>
- </div>
- <div v-else>璇烽�夋嫨</div>
- <i v-if="item.memberType == '1'" class="el-icon-arrow-right"></i>
- </template>
- </div>
- </div>
- <div class="arrows">
- <template v-if="apprList.length - 1 !== index">
- <div class="line"></div>
- <img src="@/assets/images/peizhi_ar@2x.png" alt="" />
- </template>
- <i v-if="apprList.length - 2 === index" @click="handleAddAppr()" class="el-icon-circle-plus add"></i>
- </div>
- </div>
- </div>
- </div>
- <div class="config_data">
- <div class="config_data_item">
- <div class="config_data_item_label">閫夋嫨璇ヨ妭鐐圭殑瀹℃壒浜�</div>
- <div class="df_ac mb10">
- <div>瀹℃壒鑺傜偣鍚嶇О</div>
- <el-input class="w200 ml10" v-model="apprList[activeIndex].remark"></el-input>
- </div>
- <!-- 鎶勯�佷汉 -->
- <template v-if="apprList[activeIndex].type == '1'">
- <div class="config_data_item_reviewed_content">
- <div v-for="mem, memIndex in apprList[activeIndex].objIds" :key="mem.id"
- class="config_data_item_reviewed_content_item">
- <span>{{ mem.name }}</span>
- <i @click="memDel(memIndex)" class="el-icon-close"></i>
- </div>
- <span class="add" @click="selStaff">+娣诲姞</span>
- </div>
- </template>
- <el-radio-group v-if="apprList[activeIndex].type == '0'" v-model="apprList[activeIndex].memberType">
- <el-radio :label="0">琚浜�</el-radio>
- <el-radio :label="1">鎸囧畾浜哄憳</el-radio>
- <el-radio :label="2">閮ㄩ棬涓荤</el-radio>
- </el-radio-group>
- <div class="config_data_item_reviewed" v-if="apprList[activeIndex].memberType == 1">
- <div class="config_data_item_reviewed_label">
- <span>鎸囧畾瀹℃牳浜�</span>
- <span>涓嶈秴杩�20浜�</span>
- </div>
- <div class="config_data_item_reviewed_content">
- <div v-for="mem, memIndex in apprList[activeIndex].objIds" :key="mem.id"
- class="config_data_item_reviewed_content_item">
- <span>{{ mem.name }}</span>
- <i class="el-icon-close" @click="memDel(memIndex)"></i>
- </div>
- <span class="add" @click="selStaff">+娣诲姞</span>
- </div>
- </div>
- <div class="config_data_item_reviewed" v-if="apprList[activeIndex].memberType == 2">
- <div class="config_data_item_reviewed_label">
- <span>閮ㄩ棬涓荤</span>
- </div>
- <div class="config_data_item_reviewed_r">
- <span>琚浜虹殑</span>
- <el-select v-model="apprList[activeIndex].objLevel" placeholder="璇烽�夋嫨" style="margin: 0 20px 0 10px">
- <el-option label="鐩存帴涓荤" :value="0" />
- <el-option label="浜岀骇涓荤" :value="1" />
- <el-option label="涓夌骇涓荤" :value="2" />
- <el-option label="鍥涚骇涓荤" :value="4" />
- </el-select>
- <el-checkbox v-model="apprList[activeIndex].noleaderOpt" :true-label="1"
- :false-label="0">鎵句笉鍒颁富绠℃椂锛岀敱涓婄骇涓荤浠e鏍�</el-checkbox>
- </div>
- </div>
- </div>
- <div class="config_data_item" v-if="
- (apprList[activeIndex].memberType == 1 ||
- apprList[activeIndex].memberType == 2) &&
- apprList[activeIndex].type == '0'
- ">
- <div class="config_data_item_label">
- 瀹℃壒鏂瑰紡
- <span>瀹℃壒浜轰负澶氫釜鏃讹紝閲囩敤鐨勫鎵规柟寮�</span>
- </div>
- <el-radio-group v-model="apprList[activeIndex].approveType" style="display: flex; flex-direction: column">
- <el-radio :label="0" style="margin-bottom: 20px">鎴栫锛堝叾涓竴鍚嶅鎵逛汉鍚屾剰鎴栨嫆缁濆嵆鍙級</el-radio>
- <el-radio :label="1">浼氱锛堟墍鏈夊鎵逛汉閮藉悓鎰忔墠鍙�氳繃锛�</el-radio>
- </el-radio-group>
- </div>
- <div class="config_data_submit">
- <el-button @click="onSubmit" :loading="subLoading" style="background: #435ebe"
- type="primary">淇濆瓨閰嶇疆椤�</el-button>
- <el-button v-if="activeIndex !== 0 && activeIndex !== apprList.length - 1" type="danger" plain
- @click="handleDel">鍒犻櫎鑺傜偣</el-button>
- </div>
- </div>
- </div>
- </template>
- <!-- -->
- <el-dialog title="閫夋嫨鍛樺伐" :visible.sync="isShowTransfer" width="1000px">
- <div class="staff_modal">
- <div class="left">
- <div style="
- width: 100%;
- height: 50px;
- background: rgba(242, 242, 242, 1);
- line-height: 50px;
- text-align: center;
- font-size: 14px;
- ">
- 浼佷笟缁勭粐鏋舵瀯
- </div>
- <div style="width: 100%; max-height: 560px; overflow-y: scroll">
- <Tree :list="companyTree" :defaultProps="{
- name: 'name',
- status: 'fsStatus',
- children: 'childList',
- id: 'id',
- }" @callback="callback" />
- </div>
- </div>
- <el-transfer filterable :title="['鏈��', '宸查��']" openAll :props="{ label: 'name', key: 'keyTemp' }"
- filter-placeholder="鎼滅储鍛樺伐" v-model="searchForm.objIds" :right-default-checked="searchForm.objIdsT" :data="memberList" class="transfer">
- </el-transfer>
- </div>
- <span slot="footer" class="dialog-footer">
- <el-button @click="isShowTransfer = false">鍙� 娑�</el-button>
- <el-button type="primary" @click="TransferSub">纭� 瀹�</el-button>
- </span>
- </el-dialog>
- </TableLayout>
-</template>
-
-<script>
-import TableLayout from '@/layouts/TableLayout'
-// import treeTransfer from 'el-tree-transfer'
-import Tree from '@/components/common/Tree'
-import { approveTemplSave, approveTemplByType } from '@/api'
-import { fetchList } from '@/api/business/company'
-import { fetchList as memberListPost } from '@/api/business/member'
-import { getSystemDictData } from '@/api/other/other'
-
-export default {
- name: 'config',
- components: {
- TableLayout,
- Tree
- },
- data() {
- return {
- activeType: '0',
- subLoading: false,
- apprList: [
- { remark: '瀹℃壒浜�', active: false, type: '0', objIds: [] },
- { remark: '鎶勯�佷汉', active: false, type: '1', objIds: [] }
- ],
- activeIndex: 0,
-
- param: {
- objIdsT: []
- },
- searchForm: {},
- isShowTransfer: false,
- memberList: [],
- companyTree: []
- }
- },
- created() {
- this.getfindCompanyTreePage()
- this.initDate()
- },
- methods: {
- handleClick() {
- this.apprList = []
- const arr = [
- { remark: '瀹℃壒浜�', active: false, type: 0, objIds: [] },
- { remark: '鎶勯�佷汉', active: false, type: 1, objIds: [] }
- ]
- this.apprList = [...arr]
- this.initDate()
- },
- flowClick(i) {
- this.activeIndex = i
- this.apprList.forEach((item, index) => {
- if (i === index) {
- item.active = true
- console.log("====================", item.objIds)
- if (item.objIds && item.objIds.length > 0) {
- const objIds = item.objIds.map(i => {
- return `${i.id}-${i.name}${i.companyName ? '-' + i.companyName : ''}`
- })
- this.$set(this.searchForm, 'objIds', objIds)
- } else {
- this.$set(this.searchForm, 'objIds', [])
- }
- } else {
- item.active = false
- }
- })
- },
- initDate() {
- const { activeType } = this
- approveTemplByType(activeType).then(res => {
- if (res && res.paramList) {
- const arr = res.paramList || []
- arr.forEach(item => {
- if (item.memberList && item.memberList.length > 0) {
- item.objIds = item.memberList.map(i => {
- return {
- id: i.id,
- name: i.name,
- companyName: i.companyName
- }
- })
- } else {
- item.objIds = []
- }
- })
- this.apprList = arr
- this.flowClick(0)
- this.$forceUpdate()
- }
-
- // console.log(res);
- })
- },
- onSubmit() {
- const { apprList, activeType } = this
- const temp = JSON.parse(JSON.stringify(apprList))
- temp.forEach((item, index) => {
- item.level = index + 1
- if (item.objIds && item.objIds.length > 0) {
- item.objIds = item.objIds.map(i => i.id).join(',')
- } else {
- item.objIds = ''
- }
- })
- this.subLoading = true
- approveTemplSave({
- type: activeType,
- paramList: temp
- }).then(res => {
- this.subLoading = false
- this.$tip.success('淇濆瓨鎴愬姛')
- }, () => {
- this.subLoading = false
- })
- },
- handleDel() {
- const { activeIndex } = this
- this.apprList.splice(activeIndex, 1)
- this.activeIndex = 0
- },
- handleAddAppr() {
- this.apprList.splice(this.apprList.length - 1, 0, { remark: '瀹℃壒浜�', approveType: 0, active: false, type: 0, objIds: [] })
- // this.apprList.push({ remark: '瀹℃壒浜�', active: false, type: '0' })
- },
-
- // 鑾峰彇缁勭粐鏍�
- getfindCompanyTreePage() {
- fetchList(2)
- .then(res => {
- if (res && res.length > 0) {
- res[0].fsStatus = 1
- this.companyTree = res
- // // this.searchForm.erpOrgId = res[0].erpId
- // this.search()
- // this.department = this.getDepartmentTree(res)
- }
- })
- },
- getMemberList() {
- memberListPost({
- model: {
- companyId: this.searchForm.companyId || '',
- canVisit: '',
- companyType: 1,
- erpOrgId: '',
- hasFace: '',
- hkStatus: '',
- includeChild: true,
- type: 2
- },
- page: 1,
- capacity: 300
- }).then(res => {
- this.memberList = res.records || []
- this.memberList.forEach(item => {
- item.keyTemp = item.id + '-' + item.name + '-' + item.companyName || ''
- })
- // console.log('defaultProps', res)
- })
- },
- callback(row) {
- console.log(row)
- this.$set(this.searchForm, 'companyId', row.id)
- this.$set(this.searchForm, 'erpOrgId', row.erpId)
- this.$set(this.searchForm, 'objIdsT', this.searchForm.objIds)
- console.log('searchForm.objIds', this.searchForm.objIds);
-
- this.getMemberList()
- },
- TransferSub() {
- const { activeIndex } = this
- if (this.searchForm.objIds && this.searchForm.objIds.length > 0) {
- if (this.searchForm.objIds.length > 20) return this.$message.warning('鏈�澶氶�夋嫨20浜�')
- const arr = this.searchForm.objIds.map(ii => {
- const obj = ii.split('-')
- return {
- id: Number(obj[0]),
- name: obj[1],
- companyName: obj[2] || ''
- }
- })
- this.apprList.forEach((item, index) => {
- if (activeIndex === index) {
- item.objIds = arr
- }
- })
- }
- this.isShowTransfer = false
- console.log(this.searchForm.objIds)
- },
- memDel(memIndex) {
- const { activeIndex } = this
- this.apprList.forEach((item, index) => {
- if (activeIndex === index) {
- item.objIds.splice(memIndex, 1)
- const objIds = item.objIds.map(i => {
- return i.id + '-' + i.name
- })
- this.$set(this.searchForm, 'objIds', objIds)
- }
- })
- },
- selStaff() {
- this.isShowTransfer = true
- this.getMemberList()
- },
- seleItem(i) {
- this.list.forEach((item, index) => {
- item.active = index === i
- })
- }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-.config {
- width: 100%;
- padding-bottom: 20px;
- box-sizing: border-box;
- height: calc(100vh - 140px);
- display: flex;
- align-items: center;
- justify-content: space-between;
-
- .config_list {
- width: 543px;
- height: 100%;
- flex-shrink: 0;
- border-radius: 2px;
- padding: 20px;
- box-sizing: border-box;
- border: 1px solid #eeeeee;
- background: #f7f7f7;
-
- .config_list_head {
- width: 100%;
- height: 40px;
- display: flex;
- align-items: center;
- justify-content: space-between;
-
- span {
- font-size: 18px;
- font-weight: 500;
- color: #222222;
- }
- }
-
- .config_content {
- width: 100%;
- height: calc(100% - 40px);
- padding-top: 45px;
- box-sizing: border-box;
- overflow-y: scroll;
- display: flex;
- align-items: center;
- flex-direction: column;
-
- &::-webkit-scrollbar {
- width: 0;
- }
-
- .active {
- border: 2px solid #4456ac !important;
- }
-
- .yellow {
- background: #e89e42 !important;
- }
-
- .blue {
- background: #5094f3 !important;
- }
-
- .arrows {
- display: flex;
- flex-direction: column;
- align-items: center;
- position: relative;
-
- .line {
- width: 1px;
- height: 60px;
- background-color: #ccc;
- }
-
- .add {
- font-size: 40px;
- color: #2080f7;
- position: absolute;
- cursor: pointer;
- z-index: 999;
- top: 10px;
- }
-
- img {
- width: 12px;
- }
- }
-
- .item {
- width: 200px;
- cursor: pointer;
- border: 2px solid #f7f7f7;
- height: 80px;
- background: #4456ac;
- border-radius: 2px;
- position: relative;
- display: flex;
- flex-direction: column;
-
- .head {
- height: 32px;
- line-height: 32px;
- padding: 2px 12px;
- color: #fff;
- }
-
- .content {
- flex: 1;
- background-color: #fff;
- display: flex;
- align-items: center;
- padding: 0 12px;
- justify-content: space-between;
- }
-
- &:last-child {
- margin: 0 !important;
- }
- }
- }
- }
-
- .config_data {
- flex: 1;
- height: 100%;
- margin-left: 20px;
-
- .config_data_submit {
- margin-top: 50px;
- }
-
- .config_data_item {
- width: 100%;
- display: flex;
- flex-direction: column;
- margin-bottom: 30px;
-
- &:last-child {
- margin: 0 !important;
- }
-
- .config_data_item_label {
- font-size: 16px;
- font-weight: 500;
- color: #222222;
- margin-bottom: 20px;
-
- span {
- font-size: 12px;
- font-weight: 400;
- color: #999999;
- margin-left: 10px;
- }
- }
-
- .config_data_item_reviewed {
- width: 100%;
- margin-top: 20px;
-
- .config_data_item_reviewed_r {
- margin-top: 10px;
- width: 100%;
- display: flex;
- align-items: center;
-
- span {
- flex-shrink: 0;
- font-size: 14px;
- font-weight: 400;
- color: #666666;
- }
- }
-
- .config_data_item_reviewed_label {
- display: flex;
- align-items: center;
-
- span {
- &:nth-child(1) {
- font-size: 14px;
- font-weight: 400;
- color: #222222;
- }
-
- &:nth-child(2) {
- font-size: 12px;
- font-weight: 400;
- color: #999999;
- margin-left: 8px;
- }
- }
- }
- }
- }
- }
-}
-
-.config_data_item_reviewed_content {
- width: 400px;
- margin-top: 10px;
- height: 110px;
- padding: 12px;
- box-sizing: border-box;
- border-radius: 2px;
- border: 1px solid #dfe2e8;
- display: flex;
- align-items: flex-start;
- flex-wrap: wrap;
-
- .add {
- font-size: 12px;
- font-weight: 400;
- color: #435ebe;
- cursor: pointer;
- margin-top: 3px;
- }
-
- .config_data_item_reviewed_content_item {
- padding: 3px 5px;
- background: #f4f7fc;
- border-radius: 2px;
- box-sizing: border-box;
- margin-right: 10px;
- margin-bottom: 10px;
-
- span {
- font-size: 12px;
- font-weight: 400;
- color: #333333;
- }
-
- i {
- color: #949ba2;
- margin-left: 10px;
- cursor: pointer;
- }
- }
-}
-
-.staff_modal {
- display: flex;
-
- .left {
- width: 300px;
- margin-right: 20px;
- }
-
- .transfer {
- height: 600px;
- width: 100%;
- display: flex;
- justify-content: center;
- align-items: center;
-
- ::v-deep .el-transfer-panel {
- flex: 1;
- height: 100%;
- }
-
- ::v-deep .el-transfer-panel__body {
- height: 500px;
- }
-
- ::v-deep .el-transfer-panel__list.is-filterable {
- height: 480px;
- }
- }
-}
-</style>
diff --git a/admin/src/views/business/approvalReport.vue b/admin/src/views/business/approvalReport.vue
deleted file mode 100644
index d37953a..0000000
--- a/admin/src/views/business/approvalReport.vue
+++ /dev/null
@@ -1,653 +0,0 @@
-<template>
- <TableLayout>
- <template v-slot:table-wrap>
- <div class="config">
- <div class="config_list">
- <div class="config_list_head">
- <span>閰嶇疆娴佺▼</span>
- </div>
- <div class="config_content">
- <div class="item">
- <div class="head">鍙戣捣浜�</div>
- <div class="content">琚浜�</div>
- </div>
- <div class="arrows">
- <div class="line"></div>
- <img src="@/assets/images/peizhi_ar@2x.png" alt="" />
- </div>
- <div v-for="(item, index) in apprList" :key="index">
- <div class="item yellow" :class="{
- active: activeIndex == index,
- blue: item.type == '1',
- }" @click="flowClick(index)">
- <div class="head">{{ item.remark }}</div>
- <div class="content">
- <!-- 瀹℃壒 -->
- <template v-if="item.type == 0">
- <template v-if="item.memberType == '0'">
- <div>琚浜�</div>
- </template>
- <template v-if="item.memberType == '2'">
- <div>閮ㄩ棬涓荤</div>
- </template>
- <template v-if="item.memberType == '1'">
- <div v-if="item.objIds && item.objIds.length === 1">
- <span>{{ item.objIds[0].name }}
- {{ item.objIds[0].companyName }}</span>
- <span v-if="item.approveType == 0 && item.type == '0'">
- 鎴栫</span>
- <span v-if="item.approveType == 1 && item.type == '0'">
- 浼氱</span>
- </div>
- <div v-else-if="item.objIds && item.objIds.length > 1">
- <span>{{ item.objIds[0].name }} 绛�</span>
- <span v-if="item.approveType == 0 && item.type == '0'">
- 鎴栫</span>
- <span v-if="item.approveType == 1 && item.type == '0'">
- 浼氱</span>
- </div>
- <div v-else>璇烽�夋嫨</div>
- <i class="el-icon-arrow-right"></i>
- </template>
- </template>
- <!-- 鎶勯�� -->
- <template v-if="item.type == 1">
- <div v-if="item.objIds && item.objIds.length === 1">
- <span>{{ item.objIds[0].name }}
- {{ item.objIds[0].companyName }}</span>
- </div>
- <div v-else-if="item.objIds && item.objIds.length > 1">
- <span>{{ item.objIds[0].name }} 绛�</span>
- </div>
- <div v-else>璇烽�夋嫨</div>
- <i v-if="item.memberType == '1'" class="el-icon-arrow-right"></i>
- </template>
- </div>
- </div>
- <div class="arrows">
- <template v-if="apprList.length - 1 !== index">
- <div class="line"></div>
- <img src="@/assets/images/peizhi_ar@2x.png" alt="" />
- </template>
- <i v-if="apprList.length - 2 === index" @click="handleAddAppr()" class="el-icon-circle-plus add"></i>
- </div>
- </div>
- </div>
- </div>
- <div class="config_data">
- <div class="config_data_item">
- <div class="config_data_item_label">閫夋嫨璇ヨ妭鐐圭殑瀹℃壒浜�</div>
- <div class="df_ac mb10">
- <div>瀹℃壒鑺傜偣鍚嶇О</div>
- <el-input class="w200 ml10" v-model="apprList[activeIndex].remark"></el-input>
- </div>
- <!-- 鎶勯�佷汉 -->
- <template v-if="apprList[activeIndex].type == '1'">
- <div class="config_data_item_reviewed_content">
- <div v-for="mem, memIndex in apprList[activeIndex].objIds" :key="mem.id"
- class="config_data_item_reviewed_content_item">
- <span>{{ mem.name }}</span>
- <i @click="memDel(memIndex)" class="el-icon-close"></i>
- </div>
- <span class="add" @click="selStaff">+娣诲姞</span>
- </div>
- </template>
- <el-radio-group v-if="apprList[activeIndex].type == '0'" v-model="apprList[activeIndex].memberType">
- <el-radio :label="0">琚浜�</el-radio>
- <el-radio :label="1">鎸囧畾浜哄憳</el-radio>
- <el-radio :label="2">閮ㄩ棬涓荤</el-radio>
- </el-radio-group>
- <div class="config_data_item_reviewed" v-if="apprList[activeIndex].memberType == 1">
- <div class="config_data_item_reviewed_label">
- <span>鎸囧畾瀹℃牳浜�</span>
- <span>涓嶈秴杩�20浜�</span>
- </div>
- <div class="config_data_item_reviewed_content">
- <div v-for="(mem, memIndex) in apprList[activeIndex].objIds" :key="mem.id"
- class="config_data_item_reviewed_content_item">
- <span>{{ mem.name }}</span>
- <i class="el-icon-close" @click="memDel(memIndex)"></i>
- </div>
- <span class="add" @click="selStaff">+娣诲姞</span>
- </div>
- </div>
- <div class="config_data_item_reviewed" v-if="apprList[activeIndex].memberType == 2">
- <div class="config_data_item_reviewed_label">
- <span>閮ㄩ棬涓荤</span>
- </div>
- <div class="config_data_item_reviewed_r">
- <span>琚浜虹殑</span>
- <el-select v-model="apprList[activeIndex].objLevel" placeholder="璇烽�夋嫨" style="margin: 0 20px 0 10px">
- <el-option label="鐩存帴涓荤" :value="0" />
- <el-option label="浜岀骇涓荤" :value="1" />
- <el-option label="涓夌骇涓荤" :value="2" />
- <el-option label="鍥涚骇涓荤" :value="4" />
- </el-select>
- <el-checkbox v-model="apprList[activeIndex].noleaderOpt" :true-label="1"
- :false-label="0">鎵句笉鍒颁富绠℃椂锛岀敱涓婄骇涓荤浠e鏍�</el-checkbox>
- </div>
- </div>
- </div>
- <div class="config_data_item" v-if="
- (apprList[activeIndex].memberType == 1 ||
- apprList[activeIndex].memberType == 2) &&
- apprList[activeIndex].type == '0'
- ">
- <div class="config_data_item_label">
- 瀹℃壒鏂瑰紡
- <span>瀹℃壒浜轰负澶氫釜鏃讹紝閲囩敤鐨勫鎵规柟寮�</span>
- </div>
- <el-radio-group v-model="apprList[activeIndex].approveType" style="display: flex; flex-direction: column">
- <el-radio :label="0" style="margin-bottom: 20px">鎴栫锛堝叾涓竴鍚嶅鎵逛汉鍚屾剰鎴栨嫆缁濆嵆鍙級</el-radio>
- <el-radio :label="1">浼氱锛堟墍鏈夊鎵逛汉閮藉悓鎰忔墠鍙�氳繃锛�</el-radio>
- </el-radio-group>
- </div>
- <div class="config_data_submit">
- <el-button @click="onSubmit" :loading="subLoading" style="background: #435ebe"
- type="primary">淇濆瓨閰嶇疆椤�</el-button>
- <el-button v-if="activeIndex !== 0 && activeIndex !== apprList.length - 1" type="danger" plain
- @click="handleDel">鍒犻櫎鑺傜偣</el-button>
- </div>
- </div>
- </div>
- </template>
- <!-- -->
- <el-dialog title="閫夋嫨鍛樺伐" :visible.sync="isShowTransfer" width="1000px">
- <div class="staff_modal">
- <div class="left">
- <div style="
- width: 100%;
- height: 50px;
- background: rgba(242, 242, 242, 1);
- line-height: 50px;
- text-align: center;
- font-size: 14px;
- ">
- 浼佷笟缁勭粐鏋舵瀯
- </div>
- <div style="width: 100%; max-height: 560px; overflow-y: scroll">
- <Tree :list="companyTree" :defaultProps="{
- name: 'name',
- status: 'fsStatus',
- children: 'childList',
- id: 'id',
- }" @callback="callback" />
- </div>
- </div>
- <el-transfer filterable :title="['鏈��', '宸查��']" openAll :props="{ label: 'name', key: 'keyTemp' }"
- filter-placeholder="鎼滅储鍛樺伐" v-model="searchForm.objIds" :data="memberList" class="transfer">
- </el-transfer>
- </div>
- <span slot="footer" class="dialog-footer">
- <el-button @click="isShowTransfer = false">鍙� 娑�</el-button>
- <el-button type="primary" @click="TransferSub">纭� 瀹�</el-button>
- </span>
- </el-dialog>
- </TableLayout>
-</template>
-
-<script>
-import TableLayout from '@/layouts/TableLayout'
-// import treeTransfer from 'el-tree-transfer'
-import Tree from '@/components/common/Tree'
-import { approveTemplSave, approveTemplByType } from '@/api'
-import { fetchList } from '@/api/business/company'
-import { fetchList as memberListPost } from '@/api/business/member'
-export default {
- name: 'config',
- components: {
- TableLayout,
- Tree
- },
- data() {
- return {
- activeType: '2',
- subLoading: false,
- apprList: [
- { remark: '瀹℃壒浜�', active: false, type: '0', objIds: [] },
- { remark: '鎶勯�佷汉', active: false, type: '1', objIds: [] }
- ],
- activeIndex: 0,
-
- param: {},
- searchForm: {},
- isShowTransfer: false,
- memberList: [],
- companyTree: []
- }
- },
- created() {
- this.getfindCompanyTreePage()
- this.initDate()
- },
- methods: {
- flowClick(i) {
- this.activeIndex = i
- this.apprList.forEach((item, index) => {
- if (i === index) {
- item.active = true
- if (item.objIds && item.objIds.length > 0) {
- const objIds = item.objIds.map(i => {
- return `${i.id}-${i.name}${i.companyName ? '-' + i.companyName : ''}`
- })
- this.$set(this.searchForm, 'objIds', objIds)
- } else {
- this.$set(this.searchForm, 'objIds', [])
- }
- } else {
- item.active = false
- }
- })
- },
- initDate() {
- const { activeType } = this
- approveTemplByType(activeType).then(res => {
- if (res && res.paramList) {
- const arr = res.paramList || []
- arr.forEach(item => {
- if (item.memberList && item.memberList.length > 0) {
- item.objIds = item.memberList.map(i => {
- return {
- id: i.id,
- name: i.name,
- companyName: i.companyName
- }
- })
- } else {
- item.objIds = []
- }
- })
- this.apprList = arr
- this.flowClick(0)
- this.$forceUpdate()
- }
-
- // console.log(res);
- })
- },
- onSubmit() {
- const { apprList, activeType } = this
- const temp = JSON.parse(JSON.stringify(apprList))
- temp.forEach((item, index) => {
- item.level = index + 1
- if (item.objIds && item.objIds.length > 0) {
- item.objIds = item.objIds.map(i => i.id).join(',')
- } else {
- item.objIds = ''
- }
- })
- this.subLoading = true
- approveTemplSave({
- type: activeType,
- paramList: temp
- }).then(res => {
- this.subLoading = false
- this.$tip.success('淇濆瓨鎴愬姛')
- }, () => {
- this.subLoading = false
- })
- },
- handleDel() {
- const { activeIndex } = this
- this.apprList.splice(activeIndex, 1)
- this.activeIndex = 0
- },
- handleAddAppr() {
- this.apprList.splice(this.apprList.length - 2, 0, { remark: '瀹℃壒浜�', approveType: 0, active: false, type: 0, objIds: [] })
- // this.apprList.push({ remark: '瀹℃壒浜�', active: false, type: '0' })
- },
-
- // 鑾峰彇缁勭粐鏍�
- getfindCompanyTreePage() {
- fetchList()
- .then(res => {
- if (res && res.length > 0) {
- res[0].fsStatus = 1
- this.companyTree = res
- // // this.searchForm.erpOrgId = res[0].erpId
- // this.search()
- // this.department = this.getDepartmentTree(res)
- }
- })
- },
- getMemberList() {
- memberListPost({
- model: {
- companyId: this.searchForm.companyId || '',
- canVisit: '',
- companyType: 1,
- erpOrgId: '',
- hasFace: '',
- hkStatus: '',
- includeChild: true,
- type: 2
- },
- page: 1,
- capacity: 300
- }).then(res => {
- this.memberList = res.records || []
- this.memberList.forEach(item => {
- item.keyTemp = item.id + '-' + item.name + '-' + item.companyName || ''
- })
- // console.log('defaultProps', res)
- })
- },
- callback(row) {
- console.log(row)
- this.$set(this.searchForm, 'companyId', row.id)
- this.$set(this.searchForm, 'erpOrgId', row.erpId)
- this.getMemberList()
- },
- TransferSub() {
- const { activeIndex } = this
- if (this.searchForm.objIds && this.searchForm.objIds.length > 0) {
- if (this.searchForm.objIds.length > 20) return this.$message.warning('鏈�澶氶�夋嫨20浜�')
- const arr = this.searchForm.objIds.map(ii => {
- const obj = ii.split('-')
- return {
- id: Number(obj[0]),
- name: obj[1],
- companyName: obj[2] || ''
- }
- })
- this.apprList.forEach((item, index) => {
- if (activeIndex === index) {
- item.objIds = arr
- }
- })
- }
- this.isShowTransfer = false
- console.log(this.searchForm.objIds)
- },
- memDel(memIndex) {
- const { activeIndex } = this
- this.apprList.forEach((item, index) => {
- if (activeIndex === index) {
- item.objIds.splice(memIndex, 1)
- const objIds = item.objIds.map(i => {
- return i.id + '-' + i.name
- })
- this.$set(this.searchForm, 'objIds', objIds)
- }
- })
- },
- selStaff() {
- this.isShowTransfer = true
- this.getMemberList()
- },
- seleItem(i) {
- this.list.forEach((item, index) => {
- item.active = index === i
- })
- }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-.config {
- width: 100%;
- padding-bottom: 20px;
- box-sizing: border-box;
- height: calc(100vh - 140px);
- display: flex;
- align-items: center;
- justify-content: space-between;
-
- .config_list {
- width: 543px;
- height: 100%;
- flex-shrink: 0;
- border-radius: 2px;
- padding: 20px;
- box-sizing: border-box;
- border: 1px solid #eeeeee;
- background: #f7f7f7;
-
- .config_list_head {
- width: 100%;
- height: 40px;
- display: flex;
- align-items: center;
- justify-content: space-between;
-
- span {
- font-size: 18px;
- font-weight: 500;
- color: #222222;
- }
- }
-
- .config_content {
- width: 100%;
- height: calc(100% - 40px);
- padding-top: 45px;
- box-sizing: border-box;
- overflow-y: scroll;
- display: flex;
- align-items: center;
- flex-direction: column;
-
- &::-webkit-scrollbar {
- width: 0;
- }
-
- .active {
- border: 2px solid #4456ac !important;
- }
-
- .yellow {
- background: #e89e42 !important;
- }
-
- .blue {
- background: #5094f3 !important;
- }
-
- .arrows {
- display: flex;
- flex-direction: column;
- align-items: center;
- position: relative;
-
- .line {
- width: 1px;
- height: 60px;
- background-color: #ccc;
- }
-
- .add {
- font-size: 40px;
- color: #2080f7;
- position: absolute;
- cursor: pointer;
- z-index: 999;
- top: 10px;
- }
-
- img {
- width: 12px;
- }
- }
-
- .item {
- width: 200px;
- cursor: pointer;
- border: 2px solid #f7f7f7;
- height: 80px;
- background: #4456ac;
- border-radius: 2px;
- position: relative;
- display: flex;
- flex-direction: column;
-
- .head {
- height: 32px;
- line-height: 32px;
- padding: 2px 12px;
- color: #fff;
- }
-
- .content {
- flex: 1;
- background-color: #fff;
- display: flex;
- align-items: center;
- padding: 0 12px;
- justify-content: space-between;
- }
-
- &:last-child {
- margin: 0 !important;
- }
- }
- }
- }
-
- .config_data {
- flex: 1;
- height: 100%;
- margin-left: 20px;
-
- .config_data_submit {
- margin-top: 50px;
- }
-
- .config_data_item {
- width: 100%;
- display: flex;
- flex-direction: column;
- margin-bottom: 30px;
-
- &:last-child {
- margin: 0 !important;
- }
-
- .config_data_item_label {
- font-size: 16px;
- font-weight: 500;
- color: #222222;
- margin-bottom: 20px;
-
- span {
- font-size: 12px;
- font-weight: 400;
- color: #999999;
- margin-left: 10px;
- }
- }
-
- .config_data_item_reviewed {
- width: 100%;
- margin-top: 20px;
-
- .config_data_item_reviewed_r {
- margin-top: 10px;
- width: 100%;
- display: flex;
- align-items: center;
-
- span {
- flex-shrink: 0;
- font-size: 14px;
- font-weight: 400;
- color: #666666;
- }
- }
-
- .config_data_item_reviewed_label {
- display: flex;
- align-items: center;
-
- span {
- &:nth-child(1) {
- font-size: 14px;
- font-weight: 400;
- color: #222222;
- }
-
- &:nth-child(2) {
- font-size: 12px;
- font-weight: 400;
- color: #999999;
- margin-left: 8px;
- }
- }
- }
- }
- }
- }
-}
-
-.config_data_item_reviewed_content {
- width: 400px;
- margin-top: 10px;
- height: 110px;
- padding: 12px;
- box-sizing: border-box;
- border-radius: 2px;
- border: 1px solid #dfe2e8;
- display: flex;
- align-items: flex-start;
- flex-wrap: wrap;
-
- .add {
- font-size: 12px;
- font-weight: 400;
- color: #435ebe;
- cursor: pointer;
- margin-top: 3px;
- }
-
- .config_data_item_reviewed_content_item {
- padding: 3px 5px;
- background: #f4f7fc;
- border-radius: 2px;
- box-sizing: border-box;
- margin-right: 10px;
- margin-bottom: 10px;
-
- span {
- font-size: 12px;
- font-weight: 400;
- color: #333333;
- }
-
- i {
- color: #949ba2;
- margin-left: 10px;
- cursor: pointer;
- }
- }
-}
-
-.staff_modal {
- display: flex;
-
- .left {
- width: 300px;
- margin-right: 20px;
- }
-
- .transfer {
- height: 600px;
- width: 100%;
- display: flex;
- justify-content: center;
- align-items: center;
-
- ::v-deep .el-transfer-panel {
- flex: 1;
- height: 100%;
- }
-
- ::v-deep .el-transfer-panel__body {
- height: 500px;
- }
-
- ::v-deep .el-transfer-panel__list.is-filterable {
- height: 480px;
- }
- }
-}
-</style>
diff --git a/admin/src/views/business/blackmailPersonnel.vue b/admin/src/views/business/blackmailPersonnel.vue
deleted file mode 100644
index 5093b78..0000000
--- a/admin/src/views/business/blackmailPersonnel.vue
+++ /dev/null
@@ -1,149 +0,0 @@
-<template>
- <TableLayout :permissions="['business:member: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="companyName">
- <el-input v-model="searchForm.companyName" placeholder="璇疯緭鍏ョ粍缁囧悕绉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鎿嶄綔浜哄憳" prop="createrId">
- <el-select v-model="searchForm.createrId" placeholder="璇烽�夋嫨">
- <el-option
- v-for="item in user"
- :key="item.id"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
-<!-- <el-form-item label="浜哄憳绫诲瀷" prop="type">-->
-<!-- <el-select v-model="searchForm.type" placeholder="璇烽�夋嫨">-->
-<!-- <el-option label="璁垮" value="1"></el-option>-->
-<!-- <el-option label="鍔冲姟" value="0"></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:member:create', 'business:member:delete']">
- <li><el-button type="primary" v-permissions="['business:member:create']" @click="thaws">绉诲嚭</el-button></li>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="name" label="濮撳悕" min-width="100px"></el-table-column>
- <el-table-column prop="phone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
- <el-table-column prop="idcardDecode" label="韬唤璇佸彿鐮�" min-width="100px"></el-table-column>
- <el-table-column label="浜哄憳绫诲瀷" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.type === 0">鍔冲姟璁垮</span>
- <span v-if="row.type === 1">鏅�氳瀹�</span>
- <span v-if="row.type === 2">鍐呴儴浜哄憳</span>
- </template>
- </el-table-column>
- <el-table-column prop="visitCompanyName" label="缁勭粐" min-width="100px"></el-table-column>
- <el-table-column prop="optRemark" label="鎿嶄綔淇℃伅" min-width="300px"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:member:update', 'business:member:delete'])"
- label="鎿嶄綔"
- min-width="120"
- fixed="right"
- >
- <template slot-scope="{row}">
- <el-button type="text" icon="el-icon-edit" v-permissions="['business:member:update']" @click="thaw(row.id)">绉诲嚭</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import { findAllList } from '@/api/system/common'
-import { updateRemoveBlackById } from '@/api/business/block'
-export default {
- name: 'blackmailPersonnel',
- extends: BaseTable,
- components: { TableLayout, Pagination },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- companyName: '',
- name: '',
- createrId: '',
- type: 1
- },
- user: []
- }
- },
- created () {
- this.config({
- module: '浜哄憳淇℃伅琛�',
- api: '/business/block',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- this.getUser()
- },
- methods: {
- thaws () {
- if (this.tableData.selectedRows.length === 0) return this.$message.warning('鑷冲皯閫夋嫨涓�椤瑰唴瀹�')
- const ids = this.tableData.selectedRows.map(item => {
- return item.id
- })
- updateRemoveBlackById(ids.join(','))
- .then(res => {
- this.$message.success('鎿嶄綔鎴愬姛')
- this.search()
- })
- },
- thaw (ids) {
- this.$confirm('纭畾绉诲嚭姝ょ敤鎴峰悧?', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- updateRemoveBlackById(ids)
- .then(res => {
- this.$message.success('鎿嶄綔鎴愬姛')
- this.search()
- })
- }).catch(() => {
-
- })
- },
- getUser () {
- findAllList({})
- .then(res => {
- this.user = res.map(item => {
- return {
- name: item.realname,
- id: item.id
- }
- })
- })
- }
- }
-}
-</script>
diff --git a/admin/src/views/business/company.vue b/admin/src/views/business/company.vue
deleted file mode 100644
index 0f40089..0000000
--- a/admin/src/views/business/company.vue
+++ /dev/null
@@ -1,114 +0,0 @@
-<template>
- <TableLayout :permissions="['business:company: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="type" @keypress.enter.native="search">
- <el-select v-model="searchForm.type" placeholder="璇烽�夋嫨">
- <el-option label="鍔冲姟缁勭粐" value="0"></el-option>
- <el-option label="鍐呴儴缁勭粐" value="1"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="鑱旂郴浜哄鍚�" prop="linkName">
- <el-input v-model="searchForm.linkName" placeholder="璇疯緭鍏ヨ仈绯讳汉濮撳悕" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鑱旂郴鐢佃瘽" prop="linkPhone">
- <el-input v-model="searchForm.linkPhone" 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:company:create', 'business:company:delete']">
- <li><el-button type="primary" @click="$refs.operaCompanyWindow.open('鏂板')" icon="el-icon-plus" v-permissions="['business:company:create']">鏂板缓</el-button></li>
-<!-- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:company:delete']">鍒犻櫎</el-button></li>-->
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="name" label="缁勭粐" min-width="100px"></el-table-column>
- <el-table-column prop="type" label="缁勭粐绫诲瀷" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.type === 0">鍔冲姟缁勭粐</span>
- <span v-if="row.type === 1">鍐呴儴缁勭粐</span>
- </template>
- </el-table-column>
- <el-table-column prop="code" label="缁勭粐缂栫爜" min-width="100px"></el-table-column>
- <el-table-column prop="num" label="鍔冲姟浜烘暟" min-width="100px"></el-table-column>
- <el-table-column prop="linkName" label="璐熻矗浜�" min-width="100px"></el-table-column>
- <el-table-column prop="linkPhone" label="鑱旂郴鐢佃瘽" min-width="100px"></el-table-column>
- <el-table-column prop="status" label="鐘舵��" min-width="100px">
- <template slot-scope="{row}">
- <el-switch
- v-model="row.status"
- active-color="#13ce66"
- inactive-color="#ff4949">
- </el-switch>
- </template>
- </el-table-column>
- <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="creator" label="鍒涘缓浜�" min-width="100px"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:company:update', 'business:company:delete'])"
- label="鎿嶄綔"
- min-width="120"
- fixed="right"
- >
- <template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaCompanyWindow.open('缂栬緫', row)" icon="el-icon-edit" v-permissions="['business:company:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:company:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaCompanyWindow ref="operaCompanyWindow" @success="handlePageChange"/>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaCompanyWindow from '@/components/business/OperaCompanyWindow'
-export default {
- name: 'Company',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaCompanyWindow },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- name: '',
- type: '',
- linkName: '',
- linkPhone: ''
- }
- }
- },
- created () {
- this.config({
- module: '浼佷笟淇℃伅琛�',
- api: '/business/company',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- }
-}
-</script>
diff --git a/admin/src/views/business/deletePersonnel.vue b/admin/src/views/business/deletePersonnel.vue
deleted file mode 100644
index 8a06251..0000000
--- a/admin/src/views/business/deletePersonnel.vue
+++ /dev/null
@@ -1,155 +0,0 @@
-<template>
- <TableLayout :permissions="['business:member:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="濮撳悕/鎵嬫満鍙�" prop="keyword">
- <el-input v-model="searchForm.keyword" placeholder="璇疯緭鍏ュ鍚�/鎵嬫満鍙�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="缁勭粐鍚嶇О" prop="companyName">
- <el-input v-model="searchForm.companyName" placeholder="璇疯緭鍏ョ粍缁囧悕绉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="涓嬪彂鐘舵��" prop="sendStatus">
- <el-select v-model="searchForm.hkStatus" 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-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>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column prop="name" label="濮撳悕" min-width="100px"></el-table-column>
- <el-table-column prop="phone" 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 v-if="row.type === 0">鍔冲姟璁垮</span>
- <span v-if="row.type === 1">鏅�氳瀹�</span>
- <span v-if="row.type === 2">鍐呴儴浜哄憳</span>
- </template>
- </el-table-column>
- <el-table-column fixed="right" label="浜鸿劯淇℃伅" min-width="100px">
- <template slot-scope="{row}">
- <el-image
- v-if="row.faceImg"
- style="width: 60px; height: 60px"
- :src="row.faceImg"
- :preview-src-list="[row.faceImg]">
- </el-image>
- </template>
- </el-table-column>
- <el-table-column label="鐘舵��" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.hkStatus === 0">鏈悓姝�</span>
- <span v-else-if="row.hkStatus === 1">宸插悓姝�</span>
- <span v-else-if="row.hkStatus === 2">鍚屾澶辫触</span>
- <span v-else-if="row.hkStatus === 3">涓嶇鍚堜笅鍙戞潯浠�</span>
- <span v-else-if="row.hkStatus === 4">绛夊緟鍒犻櫎鏉冮檺</span>
- </template>
- </el-table-column>
- <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>-
- <el-table-column
- v-if="containPermissions(['business:member:update'])"
- label="鎿嶄綔"
- min-width="120"
- fixed="right"
- >
- <template slot-scope="{row}">
- <el-button v-if="row.hkStatus === 2" type="text" @click="delHkForce(row.id)" v-permissions="['business:member:update']">閲嶆柊鍒犻櫎</el-button>
- <el-button v-if="row.hkStatus === 4 " type="text" @click="delHkForce(row.id)" v-permissions="['business:member:update']">绔嬪嵆鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- </TableLayout>
-</template>
-
-<script>
- import BaseTable from '@/components/base/BaseTable'
- import TableLayout from '@/layouts/TableLayout'
- import Pagination from '@/components/common/Pagination'
- import { delHkForce } from '@/api/business/member'
- export default {
- name: 'deletePersonnel',
- extends: BaseTable,
- components: { TableLayout, Pagination },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- companyName: '',
- keyword: '',
- type: '2',
- isdeleted: 1,
- hkStatus: null
- },
- user: []
- }
- },
- created () {
- this.config({
- module: '浜哄憳淇℃伅琛�',
- api: '/business/member',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- },
- methods: {
- delHkForce(dataId) {
- this.$confirm('纭畾寮哄埗鍒犻櫎瀹夐槻骞冲彴浜哄憳淇℃伅鍚楋紵姝ゆ搷浣滀笉鍙�嗭紝璇疯皑鎱庢搷浣滐紝鏄惁缁х画?', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- delHkForce({id:dataId})
- .then(res => {
- this.search()
- })
- }).catch(() => {
-
- });
- },
- // thaws () {
- // if (this.tableData.selectedRows.length === 0) return this.$message.warning('鑷冲皯閫夋嫨涓�椤瑰唴瀹�')
- // const ids = this.tableData.selectedRows.map(item => {
- // return { id: item.id }
- // })
- // this.thaw(ids)
- // },
- // thaw (ids) {
- // this.$confirm('纭畾绉婚櫎姝ょ敤鎴峰悧?', '鎻愮ず', {
- // confirmButtonText: '纭畾',
- // cancelButtonText: '鍙栨秷',
- // type: 'warning'
- // }).then(() => {
- // // updateRemoveStatusById(ids)
- // // .then(res => {
- // // this.$message.success('鎿嶄綔鎴愬姛')
- // // this.search()
- // // })
- // }).catch(() => {
- //
- // })
- // },
- }
- }
-</script>
diff --git a/admin/src/views/business/empower.vue b/admin/src/views/business/empower.vue
deleted file mode 100644
index 5be2ce0..0000000
--- a/admin/src/views/business/empower.vue
+++ /dev/null
@@ -1,182 +0,0 @@
-<template>
- <TableLayout :permissions="['business:empower:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="濮撳悕鎵嬫満鍙�" prop="memberName">
- <el-input v-model="searchForm.memberName" placeholder="璇疯緭鍏ュ鍚�/鎵嬫満鍙�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="涓嬪彂鐘舵��" prop="sendStatus">
- <el-select v-model="searchForm.sendStatus" placeholder="璇烽�夋嫨" @keypress.enter.native="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="companyName">
- <el-input v-model="searchForm.companyName" placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="璁惧鍚嶇О" prop="deviceName">
- <el-input v-model="searchForm.deviceName" placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="涓嬪彂璧峰鏃堕棿" prop="startTime">
- <el-date-picker
- @change="seleTime"
- v-model="time"
- @keypress.enter.native="search"
- type="datetimerange"
- format="yyyy-MM-dd HH:mm:ss"
- value-format="yyyy-MM-dd HH:mm:ss"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡">
- </el-date-picker>
- </el-form-item>
- <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio">
- <el-radio-button label="0">褰撳ぉ</el-radio-button>
- <el-radio-button label="1">杩�7澶�</el-radio-button>
- <el-radio-button label="2">杩�30澶�</el-radio-button>
- </el-radio-group>
- <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:empower:create', 'business:empower:delete']">
- <li><el-button type="primary" v-permissions="['business:empower:exportExcel']" @click="exportExcel">瀵煎嚭</el-button></li>
-<!-- <li><el-button type="primary" v-permissions="['business:empower:create']">绔嬪嵆涓嬪彂</el-button></li>-->
-<!-- <li><el-button type="primary" v-permissions="['business:empower:create']">鍙栨秷涓嬪彂</el-button></li>-->
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="memberName" label="濮撳悕" min-width="80px"></el-table-column>
- <el-table-column prop="memberPhone" label="鎵嬫満鍙�" min-width="120px"></el-table-column>
- <el-table-column prop="memberidCard" label="韬唤璇佸彿鐮�" min-width="130px"></el-table-column>
- <el-table-column prop="companyName" label="鎵�灞炵粍缁�" min-width="150px"></el-table-column>
- <el-table-column prop="deviceName" label="璁惧鍚嶇О" min-width="150px"></el-table-column>
- <el-table-column label="闂ㄧ鏈夋晥鏈�" min-width="170px">
- <template slot-scope="{row}">
- <span v-if="!row.startTime || !row.endTime">闀挎湡</span>
- <div v-else>
- <span>璧凤細{{row.startTime}}</span><br />
- <span>姝細{{row.endTime}}</span>
- </div>
- </template>
- </el-table-column>
- <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="150px"></el-table-column>
- <el-table-column label="鏄惁鍒犻櫎" min-width="100px">
- <template slot-scope="{row}">
- <span style="color: green;" v-if="row.isdeleted === 0">鍚�</span>
- <span style="color: red;" v-if="row.isdeleted === 1">鏄�</span>
- </template>
- </el-table-column>
-<!-- <el-table-column prop="createrName" label="鎿嶄綔浜哄憳" min-width="100px"></el-table-column>-->
- <el-table-column label="涓嬪彂鐘舵��" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.sendStatus === 0">寰呬笅鍙�</span>
- <span v-if="row.sendStatus === 1">浠诲姟鎵ц</span>
- <span v-if="row.sendStatus === 2">涓嬪彂鎴愬姛</span>
- <span v-if="row.sendStatus === 3">宸插彇娑�</span>
- <span v-if="row.sendStatus === 4">涓嬪彂澶辫触</span>
- <span v-if="row.sendStatus === 5">浠诲姟涓嬭浇宸茬粨鏉�</span>
- <span v-if="row.sendStatus === 6">涓嶇鍚堜笅鍙戞潯浠�</span>
- </template>
- </el-table-column>
- <el-table-column prop="sendType" label="涓嬪彂绫诲瀷" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.sendType === 0">瀹炴椂</span>
- <span v-if="row.sendType === 1">瀹氭椂</span>
- </template>
- </el-table-column>
- <el-table-column prop="sendDate" label="涓嬪彂鏃堕棿" min-width="150px"></el-table-column>
- <el-table-column prop="sendInfo" label="涓嬪彂澶囨敞" min-width="150px"></el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import { timeForMat } from '@/utils/util'
-export default {
- name: 'Empower',
- extends: BaseTable,
- components: { TableLayout, Pagination },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- memberName: '',
- companyName: '',
- sendStartDate: '',
- sendEndDate: '',
- startTime: '',
- endTime: '',
- sendStatus: '',
- radio: null,
- deviceName: ''
- },
- time: []
- }
- },
- created () {
- this.config({
- module: '浜哄憳鎺堟潈瀵煎叆璁板綍',
- api: '/business/empower',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.changeRadio('0')
- this.search()
- },
- methods: {
- changeRadio (e) {
- this.searchForm.radio = e
- if (e === '0') {
- this.searchForm.sendStartDate = timeForMat(0)[0]
- this.searchForm.sendEndDate = timeForMat(0)[1]
- this.time = timeForMat(0)
- } else if (e === '1') {
- this.searchForm.sendStartDate = timeForMat(6)[0]
- this.searchForm.sendEndDate = timeForMat(6)[1]
- this.time = timeForMat(6)
- } else if (e === '2') {
- this.searchForm.sendStartDate = timeForMat(29)[0]
- this.searchForm.sendEndDate = timeForMat(29)[1]
- this.time = timeForMat(29)
- }
- this.search()
- },
- seleTime (e) {
- this.searchForm.sendStartDate = e[0]
- this.searchForm.sendEndDate = e[1]
- this.searchForm.radio = null
- this.search()
- },
- reset () {
- this.$refs.searchForm.resetFields()
- this.searchForm.radio = '0'
- this.changeRadio('0')
- // this.search()
- }
- }
-}
-</script>
diff --git a/admin/src/views/business/freezePersonnel.vue b/admin/src/views/business/freezePersonnel.vue
deleted file mode 100644
index aea6fe8..0000000
--- a/admin/src/views/business/freezePersonnel.vue
+++ /dev/null
@@ -1,133 +0,0 @@
-<template>
- <TableLayout :permissions="['business:member: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="code">
- <el-input v-model="searchForm.code" placeholder="璇疯緭鍏ュ伐鍙�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="閮ㄩ棬" prop="companyId">
- <el-cascader
- :options="options"
- v-model="searchForm.companyId"
- @change="changeCompanyId"
- :show-all-levels="false"
- @keypress.enter.native="search"
- :props="{ checkStrictly: true, value: 'id', label: 'name', children: 'companyDTOList' }"
- ></el-cascader>
- </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:member:create', 'business:member:delete']">
- <li><el-button type="primary" v-permissions="['business:member:create']" @click="thaws()">瑙e喕</el-button></li>
- <li><el-button type="primary" :loading="isWorking.export" v-permissions="['business:member:exportExcel']" @click="exportExcel">瀵煎嚭</el-button></li>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="name" label="濮撳悕" min-width="100px"></el-table-column>
- <el-table-column prop="companyName" label="閮ㄩ棬" min-width="100px"></el-table-column>
- <el-table-column prop="code" label="宸ュ彿" min-width="100px"></el-table-column>
- <el-table-column prop="visitsLastDate" label="鏈�鍚庝竴娆¢棬绂佹椂闂�" min-width="100px"></el-table-column>
- <el-table-column prop="optRemark" label="鍐荤粨淇℃伅" min-width="100px"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:member:update', 'business:member:delete'])"
- label="鎿嶄綔"
- min-width="120"
- fixed="right"
- >
- <template slot-scope="{row}">
- <el-button type="text" @click="thaw(row.id)" icon="el-icon-edit" v-permissions="['business:member:update']">瑙e喕</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import { findCompanyTreePage } from '@/api/business/company'
-import { updateRemoveStatusById } from '@/api/business/block'
-export default {
- name: 'freezePersonnel',
- extends: BaseTable,
- components: { TableLayout, Pagination },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- companyId: '',
- name: '',
- code: '',
- type: 2
- },
- options: []
- }
- },
- created () {
- this.config({
- module: '鍐荤粨浜哄憳',
- api: '/business/block',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- this.getfindCompanyTreePage()
- },
- methods: {
- thaws () {
- if (this.tableData.selectedRows.length === 0) return this.$message.warning('鑷冲皯閫夋嫨涓�椤瑰唴瀹�')
- const ids = this.tableData.selectedRows.map(item => {
- // return { id: item.id }
- return item.id
- })
- this.thaw(ids.join(','))
- },
- thaw (ids) {
- this.$confirm('纭畾瑙e喕姝ょ敤鎴峰悧?', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- updateRemoveStatusById(ids)
- .then(res => {
- this.$message.success('鎿嶄綔鎴愬姛')
- this.search()
- })
- }).catch(() => {
-
- })
- },
- changeCompanyId (e) {
- this.searchForm.companyId = e[e.length - 1]
- },
- // 鑾峰彇缁勭粐鏍�
- getfindCompanyTreePage () {
- findCompanyTreePage(1)
- .then(res => {
- this.options = res
- })
- }
- }
-}
-</script>
diff --git a/admin/src/views/business/internalMember.vue b/admin/src/views/business/internalMember.vue
index a5fd7e7..956a89c 100644
--- a/admin/src/views/business/internalMember.vue
+++ b/admin/src/views/business/internalMember.vue
@@ -53,8 +53,7 @@
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
<ul class="toolbar" v-permissions="['business:member:delete', 'business:member:create,business:empower:create']">
- <li><el-button type="primary" v-permissions="['business:member:sync']" :loading="loading"
- @click="synchronous()">鍚屾</el-button></li>
+
<li><el-button type="primary"
@click="$refs.OperaMemberWindow.open('鏂板缓鍛樺伐', null, department, searchForm.companyType)" icon="el-icon-plus"
v-permissions="['business:member:create']">鏂板缓鍛樺伐</el-button></li>
@@ -62,8 +61,6 @@
icon="el-icon-plus" v-permissions="['business:member:create']">浜哄憳瀵煎叆</el-button></li>
<li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete"
v-permissions="['business:member:delete']">鎵归噺鍒犻櫎</el-button></li>
- <li><el-button type="primary" v-permissions="['business:empower:create']" @click="startEmpowerBatch()"
- >涓嬪彂鎺堟潈</el-button></li>
<li style="float: right">
<el-checkbox style="font-size: 12px" label="1" v-model="searchForm.includeChild" key="1"
@change="search">鏄惁鍖呭惈涓嬬骇缁勭粐</el-checkbox>
diff --git a/admin/src/views/business/laborSource.vue b/admin/src/views/business/laborSource.vue
deleted file mode 100644
index f1320b0..0000000
--- a/admin/src/views/business/laborSource.vue
+++ /dev/null
@@ -1,104 +0,0 @@
-<template>
- <div class="box">
- <el-form :model="form" ref="form" label-width="140px">
- <el-form-item label="鏉ヨ棰勭害鏂瑰紡:" prop="reservationWay">
- <el-radio-group v-model="form.reservationWay">
- <el-radio :label="0">棰勭害鍏嶇櫥璁�</el-radio>
- <el-radio :label="1">棰勭害鍚庣櫥璁�(闇�瑕侀厤澶囪瀹㈡満)</el-radio>
- </el-radio-group>
- </el-form-item>
- <el-form-item label="琚浜烘牎楠屾柟寮�:" prop="checkVisit">
- <el-radio-group v-model="form.checkVisit">
- <el-radio :label="0">浠呮墜鏈哄彿</el-radio>
- <el-radio :label="1">鎵嬫満鍙�&濮撳悕</el-radio>
- </el-radio-group>
- </el-form-item>
- <el-form-item label="鍋ュ悍璇佹槸鍚﹀繀濉�:" prop="healthCard">
- <el-radio-group v-model="form.healthCard">
- <el-radio :label="0">鍚�</el-radio>
- <el-radio :label="1">鏄�</el-radio>
- </el-radio-group>
- </el-form-item>
- <el-form-item label="璁垮鏄惁绛旈:" prop="isAnswer">
- <el-switch
- v-model="form.isAnswer"
- active-color="#13ce66"
- inactive-color="#ff4949"
- :active-value="1"
- :inactive-value="0">
- </el-switch>
- </el-form-item>
- <el-form-item label="璁垮绛旈涓婚:" prop="theme">
- <el-input style="width: 50%;" type="textarea" v-model="form.theme" placeholder="璇疯緭鍏ョ瓟棰樻爣棰�" v-trim/>
- </el-form-item>
- <el-form-item label="璁垮绛旈璇存槑:" prop="description">
- <el-input style="width: 50%;" type="textarea" v-model="form.description" placeholder="璇疯緭鍏�" v-trim/>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="submit">淇濆瓨閰嶇疆椤�</el-button>
- </el-form-item>
- </el-form>
- </div>
-</template>
-
-<script>
-import { getLaborConfigDTO, updateLaborConfigDTO } from '@/api/system/common'
-export default {
- name: 'visitorSources',
-
- data () {
- return {
- form: {
- id: null,
- checkVisit: 0,
- reservationWay: 0,
- healthCard: 0,
- isAnswer: 0,
- theme: '',
- description: ''
- }
- }
- },
-
- created () {
- this.getData()
- },
-
- methods: {
- getData () {
- getLaborConfigDTO({})
- .then(res => {
- this.form.checkVisit = res.checkVisit
- this.form.description = res.description
- this.form.healthCard = res.healthCard
- this.form.isAnswer = res.isAnswer
- this.form.reservationWay = res.reservationWay
- this.form.theme = res.theme
- })
- },
- submit () {
- updateLaborConfigDTO({
- isAnswer: this.form.isAnswer,
- healthCard: this.form.healthCard,
- checkVisit: this.form.checkVisit,
- reservationWay: this.form.reservationWay,
- description: this.form.description,
- theme: this.form.theme
- }).then(res => {
- this.$message.success('淇濆瓨鎴愬姛')
- this.getData()
- })
- }
- }
-}
-</script>
-
-<style lang="scss" scoped>
- .box {
- width: 100%;
- height: 100%;
- padding: 30px;
- box-sizing: border-box;
- background: #ffffff;
- }
-</style>
diff --git a/admin/src/views/business/memberCard.vue b/admin/src/views/business/memberCard.vue
deleted file mode 100644
index 9391141..0000000
--- a/admin/src/views/business/memberCard.vue
+++ /dev/null
@@ -1,170 +0,0 @@
-<template>
- <TableLayout :permissions="['business:membercard:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item title="鍗″彿" prop="code">
- <el-input v-model="searchForm.code" placeholder="鍗″彿" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item title="濮撳悕/鎵嬫満鍙�" prop="keyword">
- <el-input v-model="searchForm.keyword" placeholder="鍛樺伐濮撳悕/鎵嬫満鍙�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item title="鐢ㄦ埛绫诲瀷" prop="memberType">
- <el-select v-model="searchForm.memberType" placeholder="鐢ㄦ埛绫诲瀷">
- <el-option label="鍔冲姟浜哄憳" :value="0"></el-option>
- <el-option label="鍐呴儴鍛樺伐" :value="2"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item title="鐘舵��" prop="status">
- <el-select v-model="searchForm.status" 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="3"></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:membercard:create']">
- <li><el-button type="primary" @click="$refs.operaMemberCardWindow.open('鏂板缓浜哄憳寮�鍗�')" icon="el-icon-plus" v-permissions="['business:membercard:create']">鏂板缓</el-button></li>
- <li><el-button type="primary" @click="batchLossReporting">鎸傚け</el-button></li>
- <li><el-button type="primary" @click="batchDecoupling">瑙f寕</el-button></li>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="code" label="鍗″彿" min-width="100px"></el-table-column>
- <el-table-column prop="cardTypeName" label="鍗$被鍨�" min-width="100px"></el-table-column>
- <el-table-column label="鐘舵��" min-width="100px">
- <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>
- <span v-if="row.status === 3">鎸傚け</span>
- </template>
- </el-table-column>
- <el-table-column label="鐢ㄦ埛绫诲瀷" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.memberType === 0">鍔冲姟璁垮</span>
- <span v-if="row.memberType === 2">鍐呴儴浜哄憳</span>
- </template>
- </el-table-column>
- <el-table-column prop="memberName" label="鍛樺伐濮撳悕" min-width="100px"></el-table-column>
- <el-table-column prop="memberPhone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
- <el-table-column prop="companyName" label="缁勭粐" min-width="100px"></el-table-column>
- <el-table-column prop="createDate" label="寮�鍗℃椂闂�" min-width="140px"></el-table-column>
- <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="140px"></el-table-column>
- <el-table-column
- label="鎿嶄綔"
- min-width="120"
- fixed="right"
- >
- <template slot-scope="{row}">
- <el-button type="text" v-if="row.status === 3" @click="jiegua(row.id)">瑙f寕</el-button>
- <el-button type="text" v-if="row.status !== 3 && row.status !== 2" @click="tui(row.id)">閫�鍗�</el-button>
- <el-button type="text" v-if="row.status !== 3 && row.status !== 2" @click="guashi(row.id)">鎸傚け</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaMemberCardWindow ref="operaMemberCardWindow" @success="handlePageChange"/>
- </TableLayout>
-</template>
-
-<script>
- import BaseTable from '@/components/base/BaseTable'
- import TableLayout from '@/layouts/TableLayout'
- import Pagination from '@/components/common/Pagination'
- import OperaMemberCardWindow from '@/components/business/OperaMemberCardWindow'
- import { refundCard, batchLoss, batchUnLoss } from '@/api/business/memberCard'
- export default {
- name: 'MemberCard',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaMemberCardWindow },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- code: '',
- keyword: '',
- status: '',
- memberType: ''
- }
- }
- },
- created () {
- this.config({
- module: '鐢ㄦ埛鍗$墖缁戝畾淇℃伅琛�',
- api: '/business/memberCard',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- },
- methods: {
- // 鎵归噺瑙f寕
- batchDecoupling () {
- let arr = []
- this.tableData.selectedRows.forEach(item => {
- arr.push({ id: item.id, status: 1 })
- })
- batchUnLoss(arr)
- .then(res => {
- this.$message.success('鎿嶄綔鎴愬姛')
- this.search()
- })
- },
- // 鎵归噺鎸傚け
- batchLossReporting() {
- let arr = []
- this.tableData.selectedRows.forEach(item => {
- arr.push({ id: item.id, status: 3 })
- })
- batchLoss(arr)
- .then(res => {
- this.$message.success('鎿嶄綔鎴愬姛')
- this.search()
- })
- },
- // 閫�鍗�
- tui(id) {
- refundCard({ id, status: 2 })
- .then(res => {
- this.$message.success('鎿嶄綔鎴愬姛')
- this.search()
- })
- },
- // 鎸傚け
- guashi(id) {
- batchLoss([{ id, status: 3 }])
- .then(res => {
- this.$message.success('鎿嶄綔鎴愬姛')
- this.search()
- })
- },
- // 瑙f寕
- jiegua(id) {
- batchUnLoss([{ id, status: 1 }])
- .then(res => {
- this.$message.success('鎿嶄綔鎴愬姛')
- this.search()
- })
- }
- }
- }
-</script>
diff --git a/admin/src/views/business/problemLog.vue b/admin/src/views/business/problemLog.vue
deleted file mode 100644
index 8466393..0000000
--- a/admin/src/views/business/problemLog.vue
+++ /dev/null
@@ -1,84 +0,0 @@
-<template>
- <TableLayout :permissions="['business:member: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="companyName">
- <el-input v-model="searchForm.companyName" placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="浜哄憳绫诲瀷" prop="type">
- <el-select v-model="searchForm.type" 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">
- <li><el-button type="primary" :loading="isWorking.export" v-permissions="['business:member:exportExcel']" @click="exportExcel">瀵煎嚭</el-button></li>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- >
- <el-table-column prop="name" label="绛旈浜�" min-width="100px"></el-table-column>
- <el-table-column prop="phone" 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 v-if="row.type === 0">鍔冲姟璁垮</span>
- <span v-if="row.type === 1">鏅�氳瀹�</span>
- <span v-if="row.type === 2">鍐呴儴浜哄憳</span>
- </template>
- </el-table-column>
- <el-table-column prop="createDate" label="绛旈鏃堕棿" min-width="100px"></el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-export default {
- name: 'ProblemLog',
- extends: BaseTable,
- components: { TableLayout, Pagination },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- name: '',
- companyName: '',
- type: ''
- },
- options: []
- }
- },
- created () {
- this.config({
- module: '璁垮绛旈璁板綍琛�',
- api: '/business/problemLog',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- }
-}
-</script>
diff --git a/admin/src/views/business/problems.vue b/admin/src/views/business/problems.vue
deleted file mode 100644
index c47eee2..0000000
--- a/admin/src/views/business/problems.vue
+++ /dev/null
@@ -1,121 +0,0 @@
-<template>
- <TableLayout :permissions="['business:problems:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="棰樼洰鍚嶇О" prop="title">
- <el-input v-model="searchForm.title" placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <!-- <el-form-item label="浜哄憳绫诲瀷" prop="useType">
- <el-select v-model="searchForm.useType" placeholder="璇烽�夋嫨" @keypress.enter.native="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> -->
- <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:problems:create']">
- <li><el-button type="primary" @click="$refs.operaProblemsWindow.open('鏂板缓璇曢淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:problems:create']">鏂板缓</el-button></li>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- >
- <el-table-column prop="title" label="棰樼洰鍚嶇О" min-width="150px"></el-table-column>
- <el-table-column prop="useType" label="閫傜敤浜哄憳绫诲瀷" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.useType === 0">璁垮鍜屽姵鍔�</span>
- <span v-if="row.useType === 1">浠呰瀹�</span>
- <span v-if="row.useType === 2">浠呭姵鍔�</span>
- </template>
- </el-table-column>
- <el-table-column prop="type" label="棰樼洰绫诲瀷" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.type === 0">鍒ゆ柇</span>
- <span v-if="row.type === 1">鍗曢��</span>
- <span v-if="row.type === 2">澶氶��</span>
- </template>
- </el-table-column>
- <el-table-column prop="score" label="鍒嗗��" min-width="100px"></el-table-column>
- <el-table-column prop="sortnu" label="棰樼洰椤哄簭(鍗囧簭)" min-width="100px"></el-table-column>
- <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="creatorName" label="鍒涘缓浜�" min-width="100px"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:company:update', 'business:company:delete'])"
- label="鎿嶄綔"
- min-width="120"
- fixed="right"
- >
- <template slot-scope="{row}">
- <el-button type="text" @click="edit(row)" icon="el-icon-edit" v-permissions="['business:company:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:company:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaProblemsWindow ref="operaProblemsWindow" @success="handlePageChange"/>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaProblemsWindow from '@/components/business/OperaProblemsWindow'
-export default {
- name: 'Problems',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaProblemsWindow },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- title: '',
- useType: ''
- }
- }
- },
- created () {
- this.config({
- module: '璇曢淇℃伅琛�',
- api: '/business/problems',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- },
- methods: {
- edit (row) {
- if (row.objectList && row.objectList.length > 0) {
- row.objectList = row.objectList.map((item, index) => {
- return {
- code: item.code,
- value: item.value,
- sort: '閫夐」' + item.code,
- id: index.toString()
- }
- })
- } else {
- row.objectList = []
- }
- if (row.type === 2) {
- row.answer = row.answer.split(',')
- }
- this.$refs.operaProblemsWindow.open('缂栬緫璇曢淇℃伅', row)
- }
- }
-}
-</script>
diff --git a/admin/src/views/business/relativeMember.vue b/admin/src/views/business/relativeMember.vue
deleted file mode 100644
index 92ed414..0000000
--- a/admin/src/views/business/relativeMember.vue
+++ /dev/null
@@ -1,443 +0,0 @@
-<template>
- <TableLayout1 :permissions="['business:member:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="" prop="keyword">
- <el-input v-model="searchForm.keyword" placeholder="璇疯緭鍏ュ鍚�/鎵嬫満鍙�/宸ュ彿" @keypress.enter.native="search"></el-input>
- </el-form-item>
-
- <el-form-item label="" prop="positionId" >
- <el-select v-model="searchForm.positionId" clearable filterable placeholder="宀椾綅">
- <el-option v-for="item in positionList" :key="item.id" :label="item.name" :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="" prop="hasFace">
- <el-select v-model="searchForm.hasFace" @keypress.enter.native="search" placeholder="鏄惁鏈変汉鑴�">
- <el-option label="鏃�" value="0"></el-option>
- <el-option label="鏈�" value="1"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="" prop="canVisit">
- <el-select v-model="searchForm.canVisit" @keypress.enter.native="search" placeholder="鍙嫓璁�">
- <el-option label="鏄�" value="1"></el-option>
- <el-option label="鍚�" value="0"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="" prop="workStatus">
- <el-select v-model="searchForm.workStatus" @keypress.enter.native="search" clearable placeholder="鍦ㄨ亴鐘舵��">
- <el-option label="鍦ㄨ亴" value="0"></el-option>
- <el-option label="绂昏亴" value="1"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="" prop="hkStatus">
- <el-select v-model="searchForm.hkStatus" @keypress.enter.native="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>
-<!-- <el-form-item label="">
- <el-checkbox style="font-size: 12px" label="1" v-model="searchForm.includeChild" key="1">鏄惁鍖呭惈涓嬬骇缁勭粐</el-checkbox>
- </el-form-item>-->
- <section>
- <el-button type="primary" @click="search">鎼滅储</el-button>
- <el-button @click="reset">閲嶇疆</el-button>
- </section>
- </el-form>
- <template v-slot:menu>
- <div
- style="width: 100%; height: 50px; background: rgba(242, 242, 242, 1); line-height: 50px; text-align: center; font-size: 14px;">
- 浼佷笟缁勭粐鏋舵瀯</div>
- <div style="width: 100%; height: calc(100vh - 170px); overflow-y: scroll;">
- <Tree :list="companyTree" :defaultProps="{ name: 'name', status: 'fsStatus', children: 'childList', id: 'id' }"
- @callback="callback" />
- </div>
- </template>
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <ul class="toolbar"
- v-permissions="['business:member:delete', 'business:member:create,business:empower:create', 'business:traintime:create']">
- <!--
- <li><el-button type="primary" v-permissions="['business:member:sync']" :loading="loading" @click="synchronous()">鍚屾</el-button></li>
--->
- <li><el-button type="primary"
- @click="$refs.OperaMemberWindow.open('鏂板缓鍛樺伐', null, department, searchForm.companyType)" icon="el-icon-plus"
- v-permissions="['business:member:create']">鏂板缓鍛樺伐</el-button></li>
- <li><el-button type="primary" @click="$refs.OperaMemberImportWindow.open('浜哄憳瀵煎叆', searchForm.companyType)"
- icon="el-icon-plus" v-permissions="['business:member:create']">浜哄憳瀵煎叆</el-button></li>
- <li><el-button type="primary"
- @click="$refs.OperaTrainTimeImportWindow.open('鍩硅鏈夋晥鏈熷鍏�', department, searchForm.companyType)"
- icon="el-icon-plus" v-permissions="['business:traintime:create']">鍩硅鏈熷鍏�</el-button></li>
- <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete"
- v-permissions="['business:member:delete']">鎵归噺鍒犻櫎</el-button></li>
- <li><el-button type="primary" v-permissions="['business:empower:create']" @click="startEmpowerBatch()">涓嬪彂鎺堟潈</el-button></li>
- <li style="float: right">
- <el-checkbox style="font-size: 12px" label="1" v-model="searchForm.includeChild" key="1"
- @change="search">鏄惁鍖呭惈涓嬬骇缁勭粐</el-checkbox>
- </li>
-
- <li><el-button type="primary" v-permissions="['business:empower:exportExcel']" @click="exportExcel">瀵煎嚭</el-button></li>
-
- </ul>
- <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column fixed="left" prop="name" label="濮撳悕" min-width="110px">
- <template slot-scope="{row}">
- <span>{{ row.name }}</span>
- <span class="zhuguan" v-if="row.headStatus == 1">涓荤</span>
- </template>
- </el-table-column>
- <el-table-column label="浜鸿劯淇℃伅" min-width="100px">
- <template slot-scope="{row}">
- <el-image v-if="row.faceImgFull" style="width: 60px; height: 60px" :src="row.faceImgFull"
- :preview-src-list="[row.faceImgFull]">
- </el-image>
- </template>
- </el-table-column>
- <el-table-column prop="phone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
- <el-table-column prop="idcardDecode" label="韬唤璇佸彿" min-width="100px"></el-table-column>
- <el-table-column label="鎬у埆" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.sex == 1">鐢�</span>
- <span v-if="row.sex == 2">濂�</span>
- </template>
- </el-table-column>
- <el-table-column prop="companyName" label="鎵�灞為儴闂�" min-width="100px"></el-table-column>
- <el-table-column prop="positionName" label="宀椾綅" min-width="100px"></el-table-column>
-<!-- <el-table-column prop="isDangyuan" label="鏄惁鍏氬憳" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.isDangyuan ==1 " style="color: green">鍏氬憳</span>
- <span v-if="row.isDangyuan ==0">闈炲厷鍛�</span>
- </template>
- </el-table-column>-->
- <el-table-column prop="jobDate" label="鍏ヨ亴鏃ユ湡" min-width="100px"> </el-table-column>
-<!-- <el-table-column prop="status" label="鐘舵��" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.status == 0" style="color: green">姝e父</span>
- <span v-if="row.status == 1" style="color: red">绂佺敤</span>
- <span v-if="row.status == 2" style="color: red">鎷夐粦/鍐荤粨</span>
- </template>
- </el-table-column>-->
- <el-table-column prop="trainEndTime" label="鍩硅鏈夋晥鏈�" min-width="100px"> </el-table-column>
- <el-table-column label="閮ㄩ棬绫诲瀷" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.companyType == 0">鐩稿叧鏂圭粍缁�</span>
- <span v-if="row.companyType == 1">鍐呴儴缁勭粐</span>
- </template>
- </el-table-column>
- <el-table-column label="鍦ㄨ亴鐘舵��">
- <template slot-scope="{row}">
- <el-switch @change="changeWorkStatus($event, row)" v-model="row.workStatus" active-color="#13ce66"
- inactive-color="#ff4949" :active-value="0" :inactive-value="1">
- </el-switch>
- </template>
- </el-table-column>
- <el-table-column label="鏄惁鍙嫓璁�">
- <template slot-scope="{row}">
- <el-switch @change="changeCanvisit($event, row)" v-model="row.canVisit" active-color="#13ce66"
- inactive-color="#ff4949" :active-value="1" :inactive-value="0">
- </el-switch>
- </template>
- </el-table-column>
- <el-table-column label="娴峰悍鍚屾鐘舵��" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.hkStatus == 0" style="color: #435EBE">寰呭悓姝�</span>
- <span v-if="row.hkStatus == 1" style="color: green">鍚屾鎴愬姛</span>
- <span v-if="row.hkStatus == 2" style="color: red">鍚屾澶辫触</span>
- <span v-if="row.hkStatus == 3" style="color: red">涓嶇鍚堜笅鍙戞潯浠�</span>
- </template>
- </el-table-column>
- <el-table-column label="鏄惁鎺堟潈" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.authStatus == 1" style="color: green">鏄�</span>
- <span v-if="row.authStatus == 0" style="color: red">鍚�</span>
- </template>
- </el-table-column>
- <el-table-column label="闂ㄧ瑙掕壊" min-width="100px">
- <template slot-scope="{row}">
- <span>{{ (row.roleNames && row.roleNames.length) ? row.roleNames.join(',') : '-' }}</span>
- </template>
- </el-table-column>
- <el-table-column label="闂ㄧ鏈夋晥鏈�" min-width="170px">
- <template slot-scope="{row}">
- <div v-if="row.roleId != null && row.roleId != ''">
- <div v-if="!row.startTime || !row.endTime">闀挎湡鏈夋晥</div>
- <div v-else>
- <span>璧凤細{{ row.startTime }}</span><br />
- <span>姝細{{ row.endTime }}</span>
- </div>
- </div>
- <div v-else>-</div>
- </template>
- </el-table-column>
- <el-table-column prop="code" label="宸ュ彿" min-width="100px"></el-table-column>
- <el-table-column label="鍗$墖" min-width="80px">
- <template slot-scope="{row}">
- <el-button @click="$refs.cardOpeningRecord.open('寮�鍗¤褰�', row.id)" type="text">{{ row.memberCardCount ||
- '0' }}</el-button>
- </template>
- </el-table-column>
- <el-table-column prop="editorName" label="鎿嶄綔浜�" min-width="100px"></el-table-column>
- <el-table-column prop="editDate" label="鏈�鍚庢搷浣滄椂闂�" min-width="150px"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:member:update', 'business:member:delete', 'business:empower:create'])"
- label="鎿嶄綔" min-width="280" fixed="right">
- <template slot-scope="{row}">
- <el-button type="text" icon="el-icon-edit" @click="$refs.OperaMemberWindow.open('缂栬緫鍛樺伐淇℃伅', row, department)"
- v-permissions="['business:empower:update']">缂栬緫</el-button>
- <el-button type="text" icon="el-icon-plus" @click="empower(row.id)"
- v-permissions="['business:empower:create']">閲嶆柊鎺堟潈</el-button>
- <el-button type="text" :loading="heading" style="color: red" icon="el-icon-delete"
- @click="updateHead(row, 0)" v-if="row.headStatus == 1"
- v-permissions="['business:member:head']">鍙栨秷涓荤</el-button>
- <el-button type="text" :loading="heading" icon="el-icon-edit" @click="updateHead(row, 1)"
- v-if="row.headStatus == 0" v-permissions="['business:member:head']">璁句负涓荤</el-button>
- <el-button type="text" icon="el-icon-delete" @click="deleteById(row)" style="color: red"
- v-permissions="['business:member:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
- </pagination>
- <!-- 鏌ョ湅浜哄憳寮�鍗¤褰� -->
- <cardOpeningRecord ref="cardOpeningRecord" @success="handlePageChange" />
- <OperaMemberWindow ref="OperaMemberWindow" @success="handlePageChange" />
- <OperaMemberImportWindow ref="OperaMemberImportWindow" @success="handlePageChange" />
- <OperaTrainTimeImportWindow ref="OperaTrainTimeImportWindow" @success="handlePageChange" />
- <OperaMemberRoleWindow ref="OperaMemberRoleWindow" @success="handlePageChange" />
- </template>
- </TableLayout1>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout1 from '@/layouts/TableLayout1'
-import Pagination from '@/components/common/Pagination'
-import cardOpeningRecord from '@/components/business/cardOpeningRecord'
-import Tree from '@/components/common/Tree'
-import OperaMemberWindow from '@/components/business/OperaMemberWindow'
-import OperaMemberImportWindow from '@/components/business/OperaMemberImportWindow'
-import OperaTrainTimeImportWindow from '@/components/business/OperaTrainTimeImportWindow'
-import OperaMemberRoleWindow from '@/components/business/OperaMemberRoleWindow'
-import { fetchList } from '@/api/business/company'
-import { allList as positionList } from '@/api/business/position'
-import { memberSync, roleAuth, updateCanVisit, updateHead, updateWorkStatus } from '@/api/business/member'
-export default {
- name: 'internalMember',
- extends: BaseTable,
- components: { TableLayout1, Pagination, Tree, cardOpeningRecord, OperaMemberWindow, OperaMemberRoleWindow, OperaMemberImportWindow, OperaTrainTimeImportWindow },
- data () {
- return {
- TreeList: [],
- // 鎼滅储
- searchForm: {
- name: '',
- status: '',
- hkStatus: '',
- includeChild: true,
- canVisit: '',
- keyword: '',
- type: 2,
- companyType: 0,
- erpOrgId: '',
- workStatus: '',
- positionId: '',
- companyId: '',
- hasFace: ''
- },
- loading: false,
- heading: false,
- working: false,
- canvisiting: false,
- companyTree: [],
- positionList: [],
- department: []
- }
- },
- created () {
- this.config({
- module: '浜哄憳淇℃伅琛�',
- api: '/business/member',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- // this.search()
- this.getfindCompanyTreePage()
- this.getPositionList()
- },
- methods: {
- startEmpowerBatch () {
- if (this.tableData.selectedRows.length === 0) {
- this.$tip.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�')
- return
- }
- var ids = []
- var names = []
- this.tableData.selectedRows.forEach(item => {
- ids.push(item.id)
- names.push(item.name)
- })
- this.$refs.OperaMemberRoleWindow.open('鍐呴儴鍛樺伐涓嬪彂鏉冮檺', ids, names, this.searchForm.companyType)
- },
- getPositionList () {
- positionList({})
- .then(res => {
- this.positionList = res
- })
- },
- empower (id) {
- var that = this
- this.$confirm('纭畾閲嶆柊鎺堟潈鍚�?', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- roleAuth(id)
- .then(res => {
- this.$tip.apiSuccess(res || '鎿嶄綔鎴愬姛')
- that.search()
- })
- }).catch(() => {
- this.$tip.apiSuccess('鎿嶄綔澶辫触')
- })
- },
- // 鑾峰彇缁勭粐鏍�
- getfindCompanyTreePage () {
- fetchList()
- .then(res => {
- if (res && res.length > 0) {
- res[0].fsStatus = 1
- this.companyTree = res
- // this.searchForm.erpOrgId = res[0].erpId
- this.search()
- this.department = this.getDepartmentTree(res)
- }
- })
- },
- getDepartmentTree (tree) {
- if (tree == null) {
- return []
- }
- return tree.map(item => {
- const newItem = { ...item }
- if (newItem) {
- newItem.children = newItem.childList
- }
- if (item.children && item.children.length == 0) {
- this.$delete(newItem, 'children')
- } else {
- newItem.children = this.getDepartmentTree(newItem.children)
- }
- if (newItem.type === this.searchForm.companyType) {
- // newItem.disabled =false
- } else {
- newItem.disabled = true
- }
- return newItem
- })
- },
- // 鍚屾淇℃伅
- async synchronous () {
- this.$dialog.actionConfirm('璇ユ搷浣滈檷瑙﹀彂鍏ㄥ憳淇℃伅鏇存柊鍜岄噸鏂颁笅鍙戯紒璇疯皑鎱庢搷浣�', '鎮ㄧ‘璁ゅ叏閲忓悓姝ュ唴閮ㄤ汉鍛樹俊鎭悧锛�')
- .then(() => {
- this.loading = true
- memberSync({})
- .then(res => {
- this.$tip.apiSuccess(res || '鍚屾鎴愬姛')
- this.search()
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.loading = false
- })
- })
- .catch(() => { })
- },
- async updateHead (row, type) {
- this.$dialog.actionConfirm('鎮ㄧ‘璁よ繘琛屽綋鍓嶆搷浣滃悧锛�', '閮ㄩ棬涓荤璁剧疆鎿嶄綔鎻愮ず')
- .then(() => {
- this.heading = true
- updateHead({ id: row.id, headStatus: type })
- .then(res => {
- this.$tip.apiSuccess(res || '鎿嶄綔鎴愬姛')
- this.search()
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.heading = false
- })
- .catch(() => { })
- })
- },
- changeWorkStatus (e, row) {
- this.working = true
- updateWorkStatus({ id: row.id, workStatus: e })
- .then(res => {
- this.$tip.apiSuccess(res || '鎿嶄綔鎴愬姛')
- this.search()
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.working = false
- })
- .catch(() => { })
- },
- changeCanvisit (e, row) {
- this.canvisiting = true
- updateCanVisit({ id: row.id, canVisit: e })
- .then(res => {
- this.$tip.apiSuccess(res || '鎿嶄綔鎴愬姛')
- this.search()
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.canvisiting = false
- })
- .catch(() => { })
- },
- callback (row) {
- this.searchForm.erpOrgId = row.erpId
- this.searchForm.companyId = row.id
- this.search()
- }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-@import '@/assets/style/variables.scss';
-
-.box {
- width: 100%;
- display: flex;
- align-items: center;
-
- .box_menu {
- width: 100px;
- height: 100%;
- flex-shrink: 0;
- }
-
- .box_tab {
- flex: 1;
- height: 100%;
- }
-}
-
-.zhuguan {
- color: $primary-color;
- border: 1px solid $primary-color;
- padding: 0px 3px;
- border-radius: 4px;
- margin-left: 6px;
-}
-</style>
diff --git a/admin/src/views/business/reportRecord.vue b/admin/src/views/business/reportRecord.vue
deleted file mode 100644
index 0c1c06b..0000000
--- a/admin/src/views/business/reportRecord.vue
+++ /dev/null
@@ -1,222 +0,0 @@
-<template>
- <div class="main_app">
- <QueryForm
- v-model="filters"
- :query-form-config="queryFormConfig"
- @handleQuery="getList(1)"
- @clear="clear"
- />
- <div class="query_btns" style="margin: 16px 0 0" v-permissions="['business:visits:create', 'business:visits:exportExcel']">
- <el-button type="primary" @click="handleEdit()" icon="el-icon-plus" v-permissions="['business:visits:create']">鏂板缓</el-button>
- <el-button type="primary" :loading="exLoading" @click="exportExcel" v-permissions="['business:visits:exportExcel']">瀵煎嚭</el-button>
- </div>
- <el-table
- v-loading="loading"
- :data="dataList"
- stripe
- row-key="id"
- default-expand-all
- >
- <el-table-column type="selection" width="55" align="center"></el-table-column>
- <el-table-column
- prop="carNos"
- label="鍏ュ洯杞﹁締"
- min-width="100px"
- ></el-table-column>
- <el-table-column
- prop="companyName"
- label="鍏徃鍚嶇О"
- min-width="100px"
- ></el-table-column>
- <el-table-column
- prop="name"
- label="鑱旂郴浜轰俊鎭�"
- min-width="100px"
- ></el-table-column>
- <el-table-column
- prop="phone"
- label="鎵嬫満鍙�"
- min-width="100px"
- ></el-table-column>
- <el-table-column
- prop="receptMemberName"
- label="琚浜�"
- min-width="100px"
- ></el-table-column>
- <el-table-column label="鎷滆鏃堕棿" min-width="160px">
- <template slot-scope="{ row }">
- <span>璧凤細{{ row.starttime }}</span
- ><br />
- <span>姝細{{ row.endtime }}</span>
- </template>
- </el-table-column>
- <el-table-column
- prop="reason"
- label="鎷滆浜嬬敱"
- min-width="100"
- ></el-table-column>
- <el-table-column
- prop="status"
- fixed="right"
- label="鐘舵��"
- align="center"
- min-width="100"
- >
- <template slot-scope="{ row }">
- <span style="color: rgba(245, 154, 35, 0.996)" v-if="row.status === 0"
- >寰呮彁浜ゅ鎵�</span
- >
- <span v-if="row.status === 1" style="color: rgba(245, 154, 35, 0.996)"
- >澶勭悊涓�</span
- >
- <span v-if="row.status === 2" style="color: rgba(245, 154, 35, 0.996)"
- >宸插悓鎰�</span
- >
- <span style="color: gray" v-if="row.status === 3">宸叉嫆缁�</span>
- <span v-if="row.status === 4" style="color: gray">鍙栨秷</span>
- <span v-if="row.status === 5" style="color: green">涓嬪彂鎴愬姛</span>
- <span v-if="row.status === 6" style="color: gray">涓嬪彂澶辫触</span>
- <span v-if="row.status === 7" style="color: green">鎷滆涓�</span>
- <span v-if="row.status === 8" style="color: red">宸茬绂�</span>
- <span v-if="row.status === 9" style="color: gray">宸插け鏁�</span>
- </template>
- </el-table-column>
- <el-table-column label="鎿嶄綔" align="center" width="100" fixed="right">
- <template slot-scope="{ row }">
- <el-button
- type="text"
- @click="handleDetail(row)"
- v-permissions="['business:company:update']"
- >鏌ョ湅璇︽儏</el-button
- >
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="getList"
- :pagination="pagination"
- />
- <ReportDetail v-if="isShowReport" ref="VisReportDetailRef" />
- <OperaVisitsReportWindow @close="isShowEdit = false" @success="getList" v-if="isShowEdit" ref="operaVisitsWindowRef" />
- </div>
-</template>
-
-<script>
-import Pagination from '@/components/common/Pagination'
-import QueryForm from '@/components/common/QueryForm'
-// import ReportDetail from './page-components/ReportDetail.vue'
-import ReportDetail from '@/views/task/visReportDetail.vue'
-import OperaVisitsReportWindow from '@/components/business/operaVisitsReportWindow.vue'
-import { fetchList, exportExcel } from '@/api/business/visits'
-export default {
- components: {
- ReportDetail,
- QueryForm,
- Pagination,
- OperaVisitsReportWindow
- },
- data () {
- return {
- isShowEdit: false,
- exLoading: false,
-
- isShowReport: false,
- activeTab: '0',
- filters: {
- type: 2
- },
- dataList: [],
- queryFormConfig: {
- formItems: [
- {
- filed: 'carNos',
- type: 'input',
- label: '杞︾墝鍙�'
- },
- {
- filed: 'companyName',
- type: 'input',
- label: '鍏徃鍚嶇О'
- }
- ],
- online: true
- },
- loading: false,
- sorting: false,
- searchForm: {
- // type: 1
- },
- pagination: {
- capacity: 10,
- page: 1
- },
- total: 0
- }
- },
- created () {
- this.getList()
- },
- methods: {
- exportExcel () {
- this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
- .then(() => {
- this.exLoading = true
- exportExcel({
- page: this.pagination.page,
- capacity: 1000000,
- model: this.filters
- })
- .then(response => {
- this.download(response)
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.exLoading = false
- })
- })
- },
- handleEdit () {
- this.isShowEdit = true
- this.$nextTick(() => {
- this.$refs.operaVisitsWindowRef.isShowModal = true
- })
- },
- handleDetail (row) {
- this.isShowReport = true
- this.$nextTick(() => {
- this.$nextTick(() => {
- this.$refs.VisReportDetailRef.id = row.id
- this.$refs.VisReportDetailRef.type = 1
- this.$refs.VisReportDetailRef.getDetail()
- this.$refs.VisReportDetailRef.isShowModal = true
- })
- })
- },
- getList (page) {
- const { pagination, filters } = this
- pagination.page = page || pagination.page
- fetchList({
- model: { ...filters },
- ...pagination
- }).then(res => {
- this.dataList = res.records || []
- })
- },
- clear () {
- this.filters = {
- type: 2
- }
- this.getList(0)
- },
- handleSizeChange (capacity) {
- this.pagination.capacity = capacity
- }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-</style>
diff --git a/admin/src/views/business/strandedPersonnel.vue b/admin/src/views/business/strandedPersonnel.vue
deleted file mode 100644
index 89e0d2a..0000000
--- a/admin/src/views/business/strandedPersonnel.vue
+++ /dev/null
@@ -1,155 +0,0 @@
-<template>
- <TableLayout :permissions="['business:member: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="companyName">
- <el-input v-model="searchForm.companyName" placeholder="璇疯緭鍏ョ粍缁囧悕绉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
-<!-- <el-form-item label="鐢ㄦ埛绫诲瀷" prop="type">
- <el-select v-model="searchForm.type" placeholder="璇烽�夋嫨">
- <el-option label="璁垮" value="1"></el-option>
- <el-option label="鍔冲姟" value="0"></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:member:create', 'business:member:delete']">-->
- <!-- <li><el-button type="primary" v-permissions="['business:member:create']" @click="thaws">绂诲満</el-button></li>-->
- <!-- </ul>-->
- <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
- <!-- <el-table-column type="selection" width="55"></el-table-column>-->
- <el-table-column prop="name" label="濮撳悕" min-width="100px"></el-table-column>
- <el-table-column prop="phone" 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">
- <span>璁垮</span>
- <!-- <template slot-scope="{ row }">
- <span v-if="row.type === 0">鍔冲姟璁垮</span>
- <span v-if="row.type === 1">鏅�氳瀹�</span>
- <span v-if="row.type === 2">鍐呴儴浜哄憳</span>
- </template>-->
- </el-table-column>
- <el-table-column prop="inDate" label="鍦ㄥ洯鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="outDate" label="鎺堟潈鍒版湡鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column label="瓒呮椂鏃堕暱" min-width="100px">
- <template slot-scope="{ row }">
- <span v-if="row.outStatus === 1">{{ row.timeOut.toString().replace("-", "") }}鍒嗛挓</span>
- <span v-else>-</span>
- </template>
- </el-table-column>
- <el-table-column label="鐘舵��" min-width="100px">
- <template slot-scope="{ row }">
- <span v-if="row.outStatus === 0">鏈秴鏃�</span>
- <span style="color: red" v-else-if="row.outStatus === 1">宸茶秴鏃�</span>
- <span v-else-if="row.outStatus === 2">鍗冲皢瓒呮椂</span>
- </template>
- </el-table-column>
- <el-table-column v-if="
- containPermissions([
- 'business:member:update',
- 'business:member:delete',
- ])
- " label="鎿嶄綔" min-width="120" fixed="right">
- <template slot-scope="{ row }">
- <el-button type="text" icon="el-icon-edit" v-permissions="['business:member:update']"
- @click="departure(row.id)">绂诲巶</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
- </pagination>
- </template>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import { findAllList } from '@/api/system/common'
-import { level } from '@/api/business/staging'
-export default {
- name: 'strandedPersonnel',
- extends: BaseTable,
- components: { TableLayout, Pagination },
- data() {
- return {
- // 鎼滅储
- searchForm: {
- companyName: '',
- name: '',
- status: 2
- // type: '1'
- },
- user: []
- }
- },
- created() {
- this.config({
- module: '浜哄憳淇℃伅琛�',
- api: '/business/strandedPersonnel',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- this.getUser()
- },
- methods: {
- departure(id) {
- this.$confirm('纭畾绂诲巶鍚�, 鏄惁缁х画?', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- level(id)
- .then(res => {
- this.search()
- })
- }).catch(() => {
-
- })
- },
- // thaws () {
- // if (this.tableData.selectedRows.length === 0) return this.$message.warning('鑷冲皯閫夋嫨涓�椤瑰唴瀹�')
- // const ids = this.tableData.selectedRows.map(item => {
- // return { id: item.id }
- // })
- // this.thaw(ids)
- // },
- // thaw (ids) {
- // this.$confirm('纭畾绉婚櫎姝ょ敤鎴峰悧?', '鎻愮ず', {
- // confirmButtonText: '纭畾',
- // cancelButtonText: '鍙栨秷',
- // type: 'warning'
- // }).then(() => {
- // // updateRemoveStatusById(ids)
- // // .then(res => {
- // // this.$message.success('鎿嶄綔鎴愬姛')
- // // this.search()
- // // })
- // }).catch(() => {
- //
- // })
- // },
- getUser() {
- findAllList({})
- .then(res => {
- this.user = res.map(item => {
- return {
- name: item.realname,
- id: item.id
- }
- })
- })
- }
- }
-}
-</script>
diff --git a/admin/src/views/business/trainTime.vue b/admin/src/views/business/trainTime.vue
deleted file mode 100644
index db6d4dc..0000000
--- a/admin/src/views/business/trainTime.vue
+++ /dev/null
@@ -1,133 +0,0 @@
-<template>
- <TableLayout :permissions="['business:deviceevent:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="濮撳悕/鎵嬫満鍙�" prop="keyWords">
- <el-input v-model="searchForm.keyWords" placeholder="璇疯緭鍏ュ鍚�/鎵嬫満鍙�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="缁勭粐" prop="companyName">
- <el-input v-model="searchForm.companyName" placeholder="璇疯緭鍏ョ粍缁囧悕绉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="璧峰鏃堕棿" prop="eventType">
- <el-date-picker
- @change="seleTime"
- v-model="time"
- type="datetimerange"
- format="yyyy-MM-dd HH:mm:ss"
- value-format="yyyy-MM-dd HH:mm:ss"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡">
- </el-date-picker>
- </el-form-item>
- <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio">
- <el-radio-button label="0">褰撳ぉ</el-radio-button>
- <el-radio-button label="1">杩�7澶�</el-radio-button>
- <el-radio-button label="2">杩�30澶�</el-radio-button>
- </el-radio-group>
- <section>
- <el-button type="primary" @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"
- stripe
- >
- <el-table-column prop="name" label="浜哄憳濮撳悕" min-width="100px"></el-table-column>
- <el-table-column prop="phone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
- <el-table-column prop="idcardNo" label="璇佷欢鍙�" min-width="150px"></el-table-column>
- <el-table-column prop="companyName" label="缁勭粐鍚嶇О" min-width="150px"></el-table-column>
- <el-table-column prop="startTime" label="寮�濮嬫棩鏈�" min-width="150px"></el-table-column>
- <el-table-column prop="endTime" label="缁撴潫鏃ユ湡" min-width="150px"></el-table-column>
- <el-table-column label="浜鸿劯鐓х墖" min-width="80px">
- <template slot-scope="{row}">
- <el-image
- v-if="row.faceImg"
- style="width: 80px; height: 80px"
- :src="row.faceImg"
- :preview-src-list="[row.faceImg]">
- </el-image>
- </template>
- </el-table-column>
- <el-table-column prop="createName" label="鎿嶄綔浜�" min-width="100px"></el-table-column>
- <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="150px"></el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import { timeForMat } from '@/utils/util'
-export default {
- name: 'DeviceEvent',
- extends: BaseTable,
- components: { TableLayout, Pagination },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- keyWords: '',
- companyName: '',
- startTime: '',
- endTime: '',
- radio: 0
- },
- time: []
- }
- },
- created () {
- this.config({
- module: '鍩硅鏈夋晥鏈熷垪琛�',
- api: '/business/trainTime',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.changeRadio('0')
- this.search()
- },
- methods: {
- changeRadio (e) {
- if (e === '0') {
- this.searchForm.startTime = timeForMat(0)[0]
- this.searchForm.endTime = timeForMat(0)[1]
- this.time = timeForMat(0)
- } else if (e === '1') {
- this.searchForm.startTime = timeForMat(6)[0]
- this.searchForm.endTime = timeForMat(6)[1]
- this.time = timeForMat(6)
- } else if (e === '2') {
- this.searchForm.startTime = timeForMat(29)[0]
- this.searchForm.endTime = timeForMat(29)[1]
- this.time = timeForMat(29)
- }
- this.search()
- },
- seleTime (e) {
- this.searchForm.startTime = e[0]
- this.searchForm.endTime = e[1]
- this.searchForm.radio = null
- this.search()
- },
- reset () {
- this.$refs.searchForm.resetFields()
- this.time = []
- this.searchForm.radio = '0'
- this.changeRadio('0')
- this.search()
- }
- }
-}
-</script>
diff --git a/admin/src/views/business/visitOrigin.vue b/admin/src/views/business/visitOrigin.vue
deleted file mode 100644
index 6b709b6..0000000
--- a/admin/src/views/business/visitOrigin.vue
+++ /dev/null
@@ -1,82 +0,0 @@
-<template>
- <TableLayout :permissions="['business:member:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="120px" inline>
- <el-form-item label="鎷滆浜嬬敱" prop="name">
- <el-input v-model="searchForm.title" clearable 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:visitreason:create','business:visitreason:delete']">
- <li><el-button type="primary" @click="$refs.OperaVisitreasonWindow.open('鏂板缓鎷滆浜嬬敱',null,searchForm.type)" icon="el-icon-plus" v-permissions="['business:visitreason:create']">鏂板缓</el-button></li>
- <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:visitreason:delete']">鎵归噺鍒犻櫎</el-button></li>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="title" label="鎷滆浜嬬敱" min-width="200px"></el-table-column>
- <el-table-column prop="sortnum" label="鎺掑簭鐮�" min-width="100px"></el-table-column>
- <el-table-column prop="editDate" label="鎿嶄綔鏃堕棿" min-width="200px"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:visitreason:update', 'business:visitreason:delete' ])"
- label="鎿嶄綔"
- min-width="250"
- fixed="right"
- >
- <template slot-scope="{row}">
- <el-button type="text" icon="el-icon-edit" @click="$refs.OperaVisitreasonWindow.open('缂栬緫鎷滆浜嬬敱',row,searchForm.type)" v-permissions="['business:visitreason:update']">缂栬緫</el-button>
- <el-button type="text" icon="el-icon-delete" @click="deleteById(row)" style="color: red" v-permissions="['business:visitreason:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaVisitreasonWindow ref="OperaVisitreasonWindow" @success="handlePageChange"/>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaVisitreasonWindow from '@/components/business/OperaVisitreasonWindow'
-export default {
- name: 'areaSet',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaVisitreasonWindow },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- title: ''
- }
- }
- },
- created () {
- this.config({
- module: '鎷滆浜嬬敱閰嶇疆',
- api: '/business/visitReason',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- },
- methods: {
- }
-}
-</script>
diff --git a/admin/src/views/business/visitorManagement.vue b/admin/src/views/business/visitorManagement.vue
deleted file mode 100644
index fe0cd12..0000000
--- a/admin/src/views/business/visitorManagement.vue
+++ /dev/null
@@ -1,123 +0,0 @@
-<template>
- <TableLayout :permissions="['business:member: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="phone">
- <el-input v-model="searchForm.phone" placeholder="璇疯緭鍏ユ墜鏈哄彿" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍏徃鍚嶇О" prop="companyName">
- <el-input v-model="searchForm.companyName" placeholder="璇疯緭鍏ュ叕鍙稿悕绉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="韬唤璇佸彿" prop="idcardNo">
- <el-input v-model="searchForm.idcardNo" 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:member:create', 'business:member:delete']">
- <li><el-button type="primary" v-permissions="['business:member:create']" @click="block">鎷夐粦</el-button></li>
- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">鍒犻櫎</el-button></li>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="name" label="濮撳悕" min-width="100px"></el-table-column>
- <el-table-column prop="phone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
- <el-table-column prop="phone" label="鎬у埆" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.sex === 1">鐢�</span>
- <span v-if="row.sex === 2">濂�</span>
- </template>
- </el-table-column>
- <el-table-column prop="status" label="鐘舵��" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="(row.status || 0) === 0" style="color: green">姝e父</span>
- <span v-else style="color: red">寮傚父</span>
- </template>
- </el-table-column>
- <el-table-column label="璇佷欢绫诲瀷" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.idcardType === 0">韬唤璇�</span>
- <span v-if="row.idcardType === 1">娓境璇佷欢</span>
- <span v-if="row.idcardType === 2">鎶ょ収</span>
- </template>
- </el-table-column>
- <el-table-column prop="idcardDecode" label="韬唤璇佸彿" width="150px"></el-table-column>
- <el-table-column prop="visitCompanyName" label="鍏徃" min-width="100px"></el-table-column>
- <el-table-column prop="visitTimes" label="鎷滆娆℃暟" min-width="100px"></el-table-column>
- <el-table-column prop="lastVisitDate" label="鏈�鍚庢嫓璁挎椂闂�" min-width="100px"></el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import { batchBlock } from '@/api/business/member'
-export default {
- name: 'visitorManagement',
- extends: BaseTable,
- components: { TableLayout, Pagination },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- companyName: '',
- name: '',
- phone: '',
- idcardNo: '',
- type: 1
- }
- }
- },
- created () {
- this.config({
- module: '浜哄憳淇℃伅琛�',
- api: '/business/member',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- },
- methods: {
- block () {
- if (this.tableData.selectedRows.length === 0) {
- this.$message.warning('璇烽�夋嫨浜哄憳')
- return
- }
- this.$confirm('纭畾瑕佹媺榛戝悧?', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- batchBlock(this.tableData.selectedRows.map(item => item.id).join(','))
- .then(res => {
- this.$message.success('鎷夐粦鎴愬姛')
- this.search()
- })
- }).catch(() => {
-
- })
- }
- }
-}
-</script>
diff --git a/admin/src/views/business/visitorSources.vue b/admin/src/views/business/visitorSources.vue
deleted file mode 100644
index 84bdd07..0000000
--- a/admin/src/views/business/visitorSources.vue
+++ /dev/null
@@ -1,252 +0,0 @@
-<template>
- <div class="box">
- <el-form :model="form" ref="form" label-width="140px">
- <div>
- <span style="font-size: 15px; font-weight: bold">浜哄憳鎺堟潈閰嶇疆锛�</span>
- </div>
- <el-form-item label="" prop="frezzDays" label-width="50px">
- 浜哄憳闂ㄧ鎺堟潈鍐荤粨锛氳繛缁�
- <el-input
- style="width: 50px"
- type="text"
- v-model="form.frezzDays"
- placeholder=""
- v-trim
- />
- 澶╋紝鏃犻棬绂�/杞﹁締闂告満浜嬩欢
- </el-form-item>
- <div>
- <span style="font-size: 15px; font-weight: bold">璁垮閰嶇疆锛�</span>
- </div>
- <el-form-item label="鏉ヨ棰勭害鏂瑰紡:" prop="reservationWay">
- <el-radio-group v-model="form.reservationWay">
- <el-radio :label="1">棰勭害鍏嶇櫥璁�</el-radio>
- <el-radio :label="0">棰勭害鍚庣櫥璁�(闇�瑕侀厤澶囪瀹㈡満)</el-radio>
- </el-radio-group>
- </el-form-item>
- <el-form-item label="琚浜烘牎楠屾柟寮�:" prop="checkVisit">
- <el-radio-group v-model="form.checkVisit">
- <el-radio :label="0">浠呮墜鏈哄彿</el-radio>
- <el-radio :label="1">鎵嬫満鍙�&濮撳悕</el-radio>
- </el-radio-group>
- </el-form-item>
- <el-form-item label="鍋ュ悍璇佹槸鍚﹀繀濉�:" prop="healthCard">
- <el-radio-group v-model="form.healthCard">
- <el-radio :label="0">鍚�</el-radio>
- <el-radio :label="1">鏄�</el-radio>
- </el-radio-group>
- </el-form-item>
- <el-form-item label="鍏佽鑷�夐棬绂佺粍:" prop="doorsVisitRequired">
- <el-switch
- v-model="form.doorsVisitRequired"
- active-color="#13ce66"
- inactive-color="#ff4949"
- :active-value="1"
- :inactive-value="0"
- >
- </el-switch>
- </el-form-item>
- <el-form-item label="璁垮鏄惁绛旈:" prop="isAnswer">
- <el-switch
- v-model="form.isAnswer"
- active-color="#13ce66"
- inactive-color="#ff4949"
- :active-value="1"
- :inactive-value="0"
- >
- </el-switch>
- </el-form-item>
- <el-form-item label="璁垮绛旈涓婚:" prop="theme">
- <el-input
- style="width: 50%"
- type="textarea"
- v-model="form.theme"
- placeholder="璇疯緭鍏ョ瓟棰樻爣棰�"
- v-trim
- />
- </el-form-item>
- <el-form-item label="璁垮绛旈璇存槑:" prop="description">
- <el-input
- style="width: 50%"
- type="textarea"
- v-model="form.description"
- placeholder="璇疯緭鍏�"
- v-trim
- />
- </el-form-item>
- <el-form-item label="鍦ㄥ洯椤荤煡:" prop="visitNotice">
- <!-- <el-tiptap
- style="width: 50%"
- v-model="form.visitNotice"
- :extensions="extensions"
- /> -->
- <RichEditor style="width: 70%" :richData="form.visitNotice" :styleEditor="styleEditor" @getWangedditor="getWangedditor" :readonly="false"/>
- </el-form-item>
- <el-form-item label="璁垮棰勭害鎸囧崡:" prop="visitNotice">
- <!-- <el-tiptap
- style="width: 50%"
- v-model="form.visitTips"
- :extensions="extensions"
- /> -->
- <RichEditor style="width: 70%" :richData="form.visitTips" :styleEditor="styleEditor" @getWangedditor="getWangedditor1" :readonly="false"/>
- </el-form-item>
- <el-form-item label="璁垮鍏ュ洯瀵艰鍥�:" prop="visitNotice">
- <!-- <el-tiptap
- style="width: 50%"
- v-model="form.visitMap"
- :extensions="extensions"
- /> -->
- <RichEditor style="width: 70%" :richData="form.visitMap" :styleEditor="styleEditor" @getWangedditor="getWangedditor2" :readonly="false"/>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="submit">淇濆瓨閰嶇疆椤�</el-button>
- </el-form-item>
- </el-form>
- </div>
-</template>
-
-<script>
-import { getVisitConfigDTO, updateVisitConfig } from '@/api/system/common'
-import RichEditor from '@/components/common/RichEditor'
-import {
- // necessary extensions
- Doc,
- Text,
- Paragraph,
- Heading,
- Bold,
- Underline,
- Italic,
- Strike,
- ListItem,
- BulletList,
- OrderedList,
- Image,
- Blockquote,
- TextAlign,
- Indent,
- Table,
- TableHeader,
- TableCell,
- TableRow,
- TextColor,
- HorizontalRule
-} from 'element-tiptap'
-import { upload } from '@/api/system/common'
-export default {
- name: 'visitorSources',
- components: {
- RichEditor
- },
- data() {
- return {
- form: {
- id: null,
- checkVisit: 0,
- reservationWay: 0,
- healthCard: 0,
- isAnswer: 0,
- doorsVisitRequired: '',
- theme: '',
- description: '',
- visitNotice: '',
- visitMap: '',
- visitTips: '',
- frezzDays: null
- },
- styleEditor:'border: 1px solid #ccc;display: inline-block;',
- extensions: [
- new Doc(),
- new Text(),
- new Paragraph(),
- new Heading({ level: 5 }),
- new Bold({ bubble: true }),
- new Underline({ bubble: true, menubar: false }),
- new Italic(),
- new Strike(),
- new ListItem(),
- new BulletList(),
- new OrderedList(),
- new Image({
- uploadRequest(file) {
- const fd = new FormData()
- fd.append('folder', 'visit/')
- fd.append('file', file)
- return upload(fd).then(res => {
- return res.url
- })
- }
- }),
- new Blockquote(),
- new TextAlign(),
- new Indent(),
- new Table(),
- new TableHeader(),
- new TableCell(),
- new TableRow(),
- new HorizontalRule(),
- new TextColor()
- ]
- }
- },
-
- created() {
- this.getData()
- },
-
- methods: {
- getWangedditor(val){
- this.form.visitNotice =val
- },
- getWangedditor1(val){
- this.form.visitTips =val
- },
- getWangedditor2(val){
- this.form.visitMap =val
- },
- getData() {
- getVisitConfigDTO({})
- .then(res => {
- this.form.checkVisit = res.checkVisit
- this.form.description = res.description
- this.form.healthCard = res.healthCard
- this.form.isAnswer = res.isAnswer
- this.form.reservationWay = res.reservationWay
- this.form.theme = res.theme
- this.form.doorsVisitRequired = res.doorsVisitRequired
- this.form.visitNotice = res.visitNotice
- this.form.visitTips = res.visitTips
- this.form.visitMap = res.visitMap
- this.form.frezzDays = res.frezzDays
- })
- },
- submit() {
- updateVisitConfig({
- isAnswer: this.form.isAnswer,
- healthCard: this.form.healthCard,
- checkVisit: this.form.checkVisit,
- reservationWay: this.form.reservationWay,
- description: this.form.description,
- theme: this.form.theme,
- visitNotice: this.form.visitNotice,
- visitTips: this.form.visitTips,
- frezzDays: this.form.frezzDays,
- visitMap: this.form.visitMap,
- doorsVisitRequired: this.form.doorsVisitRequired
- }).then(res => {
- this.$message.success('淇濆瓨鎴愬姛')
- this.getData()
- })
- }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-.box {
- width: 100%;
- padding: 30px;
- box-sizing: border-box;
- background: #ffffff;
-}
-</style>
diff --git a/admin/src/views/business/visits.vue b/admin/src/views/business/visits.vue
deleted file mode 100644
index 6e28c5b..0000000
--- a/admin/src/views/business/visits.vue
+++ /dev/null
@@ -1,213 +0,0 @@
-<template>
- <TableLayout :permissions="['business:visits: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="idcardNo">
- <el-input v-model="searchForm.idcardNo" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="璁垮鍗曚綅" prop="companyName">
- <el-input v-model="searchForm.companyName" placeholder="璇疯緭鍏ヨ瀹㈠崟浣�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="瀹℃壒鐘舵��" prop="status">
- <el-select v-model="searchForm.status" 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="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="7"></el-option>
- <el-option label="宸茬绂�" value="8"></el-option>
- <el-option label="宸插け鏁�" value="9"></el-option>
- </el-select>
- </el-form-item>
- <section>
- <el-button type="primary" @click="search">鎼滅储</el-button>
- <!-- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:visits:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>-->
- <el-button @click="reset">閲嶇疆</el-button>
- </section>
- </el-form>
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:visits:create', 'business:visits:exportExcel']">
- <li><el-button type="primary" @click="handleEdit()" icon="el-icon-plus"
- v-permissions="['business:visits:create']">鏂板缓</el-button></li>
- <li><el-button type="primary" :loading="isWorking.export" @click="exportExcel"
- v-permissions="['business:visits:exportExcel']">瀵煎嚭</el-button></li>
- </ul>
- <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="name" label="璁垮濮撳悕" min-width="100px"></el-table-column>
- <el-table-column prop="phone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
- <el-table-column prop="companyName" label="璁垮鍗曚綅" min-width="100px"></el-table-column>
- <el-table-column prop="receptMemberName" label="琚浜�" min-width="100px"></el-table-column>
- <el-table-column prop="reason" label="鎷滆浜嬬敱" min-width="100px"></el-table-column>
- <el-table-column label="棰勭害鏃堕棿" min-width="170px">
- <template slot-scope="{row}">
- <span>璧凤細{{ row.starttime }}</span><br />
- <span>姝細{{ row.endtime }}</span>
- </template>
- </el-table-column>
- <el-table-column label="绛惧埌鏃堕棿" min-width="170px">
- <template slot-scope="{row}">
- <div v-if="row.inDate && row.outDate">
- <span>璧凤細{{ row.inDate }}</span><br />
- <span>姝細{{ row.outDate }}</span>
- </div>
- <span v-else>-</span>
- </template>
- </el-table-column>
- <el-table-column label="鏂藉伐浜哄憳" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.type == 0">鍚�</span>
- <span v-if="row.type == 1">鏄�</span>
- </template>
- </el-table-column>
- <el-table-column label="闅忚杞﹁締" min-width="100px">
- <template slot-scope="{row}">
- <span>{{ row.carNos }}</span>
- </template>
- </el-table-column>
- <el-table-column prop="status" fixed="right" label="鐘舵��" min-width="100px">
- <template slot-scope="{row}">
- <span style="color: rgba(245, 154, 35, 0.996);" v-if="row.status === 0">寰呮彁浜ゅ鎵�</span>
- <span v-if="row.status === 1" style="color: rgba(245, 154, 35, 0.996);">瀹℃壒涓�</span>
- <span v-if="row.status === 2" style="color: rgba(245, 154, 35, 0.996);">瀹℃牳閫氳繃</span>
- <span style="color: gray;" v-if="row.status === 3">瀹℃壒椹冲洖</span>
- <span v-if="row.status === 4" style="color: gray">鍙栨秷</span>
- <span v-if="row.status === 5" style="color: green">涓嬪彂鎴愬姛</span>
- <span v-if="row.status === 6" style="color: gray">涓嬪彂澶辫触</span>
- <span v-if="row.status === 7" style="color: green">鎷滆涓�</span>
- <span v-if="row.status === 8" style="color: red">宸茬绂�</span>
- <span v-if="row.status === 9" style="color: gray">宸插け鏁�</span>
- </template>
- </el-table-column>
- <el-table-column v-if="containPermissions(['business:visits:update', 'business:visits:delete'])" label="鎿嶄綔"
- min-width="200" fixed="right">
- <template slot-scope="{row}">
- <el-button type="text" @click="departure(row.id)" icon="el-icon-delete" style="color: red" v-if="row.status == 7">绂诲巶</el-button>
- <el-button type="text" @click="cancel(row.id)" v-permissions="['business:visits:cancel']"
- icon="el-icon-delete" style="color: red" v-if="row.status == 5">鍙栨秷棰勭害</el-button>
- <el-button type="text" @click="resend(row.id)" v-permissions="['business:visits:update']"
- icon="el-icon-edit" v-if="row.status == 6">閲嶆柊涓嬪彂</el-button>
- <!-- <el-button type="text" @click="$refs.OperaVisitsDesWindow.open('璇︽儏', row.id)" icon="el-icon-view">璇︽儏</el-button> -->
- <el-button type="text" @click="handleDetail(row)" icon="el-icon-view">璇︽儏</el-button>
- <!-- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:visits:delete']">鏌ヨ瀹℃壒缁撴灉</el-button>-->
- </template>
- </el-table-column>
- </el-table>
- <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
- </pagination>
- <!-- 璇︽儏 -->
- <!-- <OperaVisitsDesWindow ref="OperaVisitsDesWindow" /> -->
- <TaskDetail v-if="isShowDetail" ref="DetailRef" />
- <!-- 鏂板缓 -->
- <OperaVisitsWindow @close="isShowEdit = false" @success="search" v-if="isShowEdit" ref="operaVisitsWindowRef" />
- </template>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaVisitsDesWindow from '@/components/business/OperaVisitsDesWindow'
-import OperaVisitsWindow from '@/components/business/operaVisitsWindow'
-import TaskDetail from '@/views/task/visSubDetail.vue'
-
-export default {
- name: 'Visits',
- extends: BaseTable,
- components: { TableLayout, Pagination, TaskDetail, OperaVisitsWindow },
- data() {
- return {
- isShowEdit: false,
- isShowDetail: false,
- // 鎼滅储
- searchForm: {
- name: '',
- companyName: '',
- idcardNo: '',
- status: '',
- type: 0
- }
- }
- },
- created() {
- this.config({
- module: '璁垮鐢宠淇℃伅琛�',
- api: '/business/visits',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- },
- methods: {
- handleDetail(row) {
- this.isShowDetail = true
- console.log('row', row)
- this.$nextTick(() => {
- this.$refs.DetailRef.id = row.id
- this.$refs.DetailRef.type = 0
- this.$refs.DetailRef.getDetail()
- this.$refs.DetailRef.isShowModal = true
- })
- },
- handleEdit() {
- this.isShowEdit = true
- this.$nextTick(() => {
- this.$refs.operaVisitsWindowRef.isShowModal = true
- })
- },
- departure(id) {
- this.$confirm('纭畾绂诲巶鍚�, 鏄惁缁х画?', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- level(id)
- .then(res => {
- this.page = 1
- this.getData()
- })
- }).catch(() => {
-
- })
- },
- cancel(id) {
- this.$confirm('纭畾鍙栨秷棰勭害鍚�, 鏄惁缁х画?', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- visitCancel(id)
- .then(res => {
- this.page = 1
- this.getData()
- })
- }).catch(() => {
-
- })
- },
- resend(id) {
- this.$confirm('纭畾灏濊瘯閲嶆柊鍙戣捣棰勭害鍚�, 鏄惁缁х画?', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- this.api.visitResend(id)
- .then(res => {
- this.page = 1
- this.getData()
- })
- }).catch(() => {
-
- })
- }
- }
-}
-</script>
diff --git a/admin/src/views/client/clientList.vue b/admin/src/views/client/clientList.vue
new file mode 100644
index 0000000..e5520ef
--- /dev/null
+++ b/admin/src/views/client/clientList.vue
@@ -0,0 +1,219 @@
+<template>
+ <TableLayout :permissions="['business:ywcustomer:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="涓婚敭" prop="id">
+ <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ヤ富閿�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
+ <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
+ <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
+ <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
+ <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input v-model="searchForm.remark" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎵�灞炶涓氱紪鐮侊紙鍏宠仈category)" prop="industryId">
+ <el-input v-model="searchForm.industryId" placeholder="璇疯緭鍏ユ墍灞炶涓氱紪鐮侊紙鍏宠仈category)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="绫诲瀷 0涓汉 1浼佷笟" prop="type">
+ <el-input v-model="searchForm.type" placeholder="璇疯緭鍏ョ被鍨� 0涓汉 1浼佷笟" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <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="phone">
+ <el-input v-model="searchForm.phone" placeholder="璇疯緭鍏ユ墜鏈哄彿" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="韬唤璇佸彿锛堝姞瀵嗭級" prop="idcardNo">
+ <el-input v-model="searchForm.idcardNo" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙凤紙鍔犲瘑锛�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="璇佷欢鏄剧ず淇℃伅" prop="idcardDecode">
+ <el-input v-model="searchForm.idcardDecode" placeholder="璇疯緭鍏ヨ瘉浠舵樉绀轰俊鎭�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="瀹㈡埛缂栫爜" prop="code">
+ <el-input v-model="searchForm.code" placeholder="璇疯緭鍏ュ鎴风紪鐮�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0姝e父 1绂佺敤" prop="status">
+ <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬� 0姝e父 1绂佺敤" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="韬唤 0鑰佹澘 1瓒呯骇绠$悊鍛�" prop="highCheckor">
+ <el-input v-model="searchForm.highCheckor" placeholder="璇疯緭鍏ヨ韩浠� 0鑰佹澘 1瓒呯骇绠$悊鍛�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏈�杩戠櫥褰曟椂闂�" prop="lastLoginDate">
+ <el-date-picker v-model="searchForm.lastLoginDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ渶杩戠櫥褰曟椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鐧诲綍娆℃暟" prop="loginNum">
+ <el-input v-model="searchForm.loginNum" placeholder="璇疯緭鍏ョ櫥褰曟鏁�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="绯荤粺鐧诲綍鐢ㄦ埛缂栫爜(鍏宠仈system_user)" prop="userId">
+ <el-input v-model="searchForm.userId" placeholder="璇疯緭鍏ョ郴缁熺櫥褰曠敤鎴风紪鐮�(鍏宠仈system_user)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="璇佷欢绫诲瀷 0韬唤璇� 1娓境璇佷欢 2鎶ょ収" prop="idcardType">
+ <el-input v-model="searchForm.idcardType" placeholder="璇疯緭鍏ヨ瘉浠剁被鍨� 0韬唤璇� 1娓境璇佷欢 2鎶ょ収" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="寮�鎴烽摱琛�" prop="accountBank">
+ <el-input v-model="searchForm.accountBank" placeholder="璇疯緭鍏ュ紑鎴烽摱琛�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="璐﹀彿" prop="accountNo">
+ <el-input v-model="searchForm.accountNo" placeholder="璇疯緭鍏ヨ处鍙�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="璐︽埛鐢佃瘽" prop="accountPhone">
+ <el-input v-model="searchForm.accountPhone" placeholder="璇疯緭鍏ヨ处鎴风數璇�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="缁熶竴淇$敤浠g爜" prop="creditCard">
+ <el-input v-model="searchForm.creditCard" placeholder="璇疯緭鍏ョ粺涓�淇$敤浠g爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="榛樿鍙戠エ绫诲瀷 0澧炲�肩◣鏅�氬彂绁� 1澧炲�肩◣涓撶敤鍙戠エ" prop="fpType">
+ <el-input v-model="searchForm.fpType" placeholder="璇疯緭鍏ラ粯璁ゅ彂绁ㄧ被鍨� 0澧炲�肩◣鏅�氬彂绁� 1澧炲�肩◣涓撶敤鍙戠エ" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="璐﹀彿娉ㄥ唽鍦板潃" prop="accountAddr">
+ <el-input v-model="searchForm.accountAddr" placeholder="璇疯緭鍏ヨ处鍙锋敞鍐屽湴鍧�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="韬唤绫诲瀷0鑰佹澘瓒呯骇绠$悊鍛�;1=浜轰簨绠$悊鍛�;2=鍛樺伐" prop="identityType">
+ <el-input v-model="searchForm.identityType" placeholder="璇疯緭鍏ヨ韩浠界被鍨�0鑰佹澘瓒呯骇绠$悊鍛�;1=浜轰簨绠$悊鍛�;2=鍛樺伐" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="閭" prop="email">
+ <el-input v-model="searchForm.email" placeholder="璇疯緭鍏ラ偖绠�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鑱旂郴浜虹紪鐮侊紙鍏宠仈member锛�" prop="memberId">
+ <el-input v-model="searchForm.memberId" placeholder="璇疯緭鍏ヨ仈绯讳汉缂栫爜锛堝叧鑱攎ember锛�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywcustomer:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:ywcustomer:create', 'business:ywcustomer:delete']">
+ <li><el-button type="primary" @click="$refs.operaYwCustomerWindow.open('鏂板缓杩愮淮瀹㈡埛淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:ywcustomer:create']">鏂板缓</el-button></li>
+ <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywcustomer:delete']">鍒犻櫎</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column type="selection" width="55"></el-table-column>
+ <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
+ <el-table-column prop="creator" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="editor" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="isdeleted" label="鏄惁鍒犻櫎0鍚� 1鏄�" min-width="100px"></el-table-column>
+ <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
+ <el-table-column prop="industryId" label="鎵�灞炶涓氱紪鐮侊紙鍏宠仈category)" min-width="100px"></el-table-column>
+ <el-table-column prop="type" label="绫诲瀷 0涓汉 1浼佷笟" min-width="100px"></el-table-column>
+ <el-table-column prop="name" label="瀹㈡埛" min-width="100px"></el-table-column>
+ <el-table-column prop="phone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
+ <el-table-column prop="idcardNo" label="韬唤璇佸彿锛堝姞瀵嗭級" min-width="100px"></el-table-column>
+ <el-table-column prop="idcardDecode" label="璇佷欢鏄剧ず淇℃伅" min-width="100px"></el-table-column>
+ <el-table-column prop="code" label="瀹㈡埛缂栫爜" min-width="100px"></el-table-column>
+ <el-table-column prop="status" label="鐘舵�� 0姝e父 1绂佺敤" min-width="100px"></el-table-column>
+ <el-table-column prop="highCheckor" label="韬唤 0鑰佹澘 1瓒呯骇绠$悊鍛�" min-width="100px"></el-table-column>
+ <el-table-column prop="lastLoginDate" label="鏈�杩戠櫥褰曟椂闂�" min-width="100px"></el-table-column>
+ <el-table-column prop="loginNum" label="鐧诲綍娆℃暟" min-width="100px"></el-table-column>
+ <el-table-column prop="userId" label="绯荤粺鐧诲綍鐢ㄦ埛缂栫爜(鍏宠仈system_user)" min-width="100px"></el-table-column>
+ <el-table-column prop="idcardType" label="璇佷欢绫诲瀷 0韬唤璇� 1娓境璇佷欢 2鎶ょ収" min-width="100px"></el-table-column>
+ <el-table-column prop="accountBank" label="寮�鎴烽摱琛�" min-width="100px"></el-table-column>
+ <el-table-column prop="accountNo" label="璐﹀彿" min-width="100px"></el-table-column>
+ <el-table-column prop="accountPhone" label="璐︽埛鐢佃瘽" min-width="100px"></el-table-column>
+ <el-table-column prop="creditCard" label="缁熶竴淇$敤浠g爜" min-width="100px"></el-table-column>
+ <el-table-column prop="fpType" label="榛樿鍙戠エ绫诲瀷 0澧炲�肩◣鏅�氬彂绁� 1澧炲�肩◣涓撶敤鍙戠エ" min-width="100px"></el-table-column>
+ <el-table-column prop="accountAddr" label="璐﹀彿娉ㄥ唽鍦板潃" min-width="100px"></el-table-column>
+ <el-table-column prop="identityType" label="韬唤绫诲瀷0鑰佹澘瓒呯骇绠$悊鍛�;1=浜轰簨绠$悊鍛�;2=鍛樺伐" min-width="100px"></el-table-column>
+ <el-table-column prop="email" label="閭" min-width="100px"></el-table-column>
+ <el-table-column prop="memberId" label="鑱旂郴浜虹紪鐮侊紙鍏宠仈member锛�" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:ywcustomer:update', 'business:ywcustomer:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaYwCustomerWindow.open('缂栬緫杩愮淮瀹㈡埛淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:ywcustomer:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywcustomer:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaYwCustomerWindow ref="operaYwCustomerWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaYwCustomerWindow from './components/OperaYwCustomerWindow'
+export default {
+ name: 'YwCustomer',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaYwCustomerWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ remark: '',
+ industryId: '',
+ type: '',
+ name: '',
+ phone: '',
+ idcardNo: '',
+ idcardDecode: '',
+ code: '',
+ status: '',
+ highCheckor: '',
+ lastLoginDate: '',
+ loginNum: '',
+ userId: '',
+ idcardType: '',
+ accountBank: '',
+ accountNo: '',
+ accountPhone: '',
+ creditCard: '',
+ fpType: '',
+ accountAddr: '',
+ identityType: '',
+ email: '',
+ memberId: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '杩愮淮瀹㈡埛淇℃伅琛�',
+ api: '/client/ywCustomer',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/client/components/OperaYwCustomerWindow.vue b/admin/src/views/client/components/OperaYwCustomerWindow.vue
new file mode 100644
index 0000000..a116521
--- /dev/null
+++ b/admin/src/views/client/components/OperaYwCustomerWindow.vue
@@ -0,0 +1,150 @@
+<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="creator">
+ <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
+ <el-input v-model="form.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
+ <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
+ <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎵�灞炶涓氱紪鐮侊紙鍏宠仈category)" prop="industryId">
+ <el-input v-model="form.industryId" placeholder="璇疯緭鍏ユ墍灞炶涓氱紪鐮侊紙鍏宠仈category)" v-trim/>
+ </el-form-item>
+ <el-form-item label="绫诲瀷 0涓汉 1浼佷笟" prop="type">
+ <el-input v-model="form.type" placeholder="璇疯緭鍏ョ被鍨� 0涓汉 1浼佷笟" v-trim/>
+ </el-form-item>
+ <el-form-item label="瀹㈡埛" prop="name">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ュ鎴�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎵嬫満鍙�" prop="phone">
+ <el-input v-model="form.phone" placeholder="璇疯緭鍏ユ墜鏈哄彿" v-trim/>
+ </el-form-item>
+ <el-form-item label="韬唤璇佸彿锛堝姞瀵嗭級" prop="idcardNo">
+ <el-input v-model="form.idcardNo" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙凤紙鍔犲瘑锛�" v-trim/>
+ </el-form-item>
+ <el-form-item label="璇佷欢鏄剧ず淇℃伅" prop="idcardDecode">
+ <el-input v-model="form.idcardDecode" placeholder="璇疯緭鍏ヨ瘉浠舵樉绀轰俊鎭�" v-trim/>
+ </el-form-item>
+ <el-form-item label="瀹㈡埛缂栫爜" prop="code">
+ <el-input v-model="form.code" placeholder="璇疯緭鍏ュ鎴风紪鐮�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0姝e父 1绂佺敤" prop="status">
+ <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0姝e父 1绂佺敤" v-trim/>
+ </el-form-item>
+ <el-form-item label="韬唤 0鑰佹澘 1瓒呯骇绠$悊鍛�" prop="highCheckor">
+ <el-input v-model="form.highCheckor" placeholder="璇疯緭鍏ヨ韩浠� 0鑰佹澘 1瓒呯骇绠$悊鍛�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏈�杩戠櫥褰曟椂闂�" prop="lastLoginDate">
+ <el-date-picker v-model="form.lastLoginDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ渶杩戠櫥褰曟椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鐧诲綍娆℃暟" prop="loginNum">
+ <el-input v-model="form.loginNum" placeholder="璇疯緭鍏ョ櫥褰曟鏁�" v-trim/>
+ </el-form-item>
+ <el-form-item label="绯荤粺鐧诲綍鐢ㄦ埛缂栫爜(鍏宠仈system_user)" prop="userId">
+ <el-input v-model="form.userId" placeholder="璇疯緭鍏ョ郴缁熺櫥褰曠敤鎴风紪鐮�(鍏宠仈system_user)" v-trim/>
+ </el-form-item>
+ <el-form-item label="璇佷欢绫诲瀷 0韬唤璇� 1娓境璇佷欢 2鎶ょ収" prop="idcardType">
+ <el-input v-model="form.idcardType" placeholder="璇疯緭鍏ヨ瘉浠剁被鍨� 0韬唤璇� 1娓境璇佷欢 2鎶ょ収" v-trim/>
+ </el-form-item>
+ <el-form-item label="寮�鎴烽摱琛�" prop="accountBank">
+ <el-input v-model="form.accountBank" placeholder="璇疯緭鍏ュ紑鎴烽摱琛�" v-trim/>
+ </el-form-item>
+ <el-form-item label="璐﹀彿" prop="accountNo">
+ <el-input v-model="form.accountNo" placeholder="璇疯緭鍏ヨ处鍙�" v-trim/>
+ </el-form-item>
+ <el-form-item label="璐︽埛鐢佃瘽" prop="accountPhone">
+ <el-input v-model="form.accountPhone" placeholder="璇疯緭鍏ヨ处鎴风數璇�" v-trim/>
+ </el-form-item>
+ <el-form-item label="缁熶竴淇$敤浠g爜" prop="creditCard">
+ <el-input v-model="form.creditCard" placeholder="璇疯緭鍏ョ粺涓�淇$敤浠g爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="榛樿鍙戠エ绫诲瀷 0澧炲�肩◣鏅�氬彂绁� 1澧炲�肩◣涓撶敤鍙戠エ" prop="fpType">
+ <el-input v-model="form.fpType" placeholder="璇疯緭鍏ラ粯璁ゅ彂绁ㄧ被鍨� 0澧炲�肩◣鏅�氬彂绁� 1澧炲�肩◣涓撶敤鍙戠エ" v-trim/>
+ </el-form-item>
+ <el-form-item label="璐﹀彿娉ㄥ唽鍦板潃" prop="accountAddr">
+ <el-input v-model="form.accountAddr" placeholder="璇疯緭鍏ヨ处鍙锋敞鍐屽湴鍧�" v-trim/>
+ </el-form-item>
+ <el-form-item label="韬唤绫诲瀷0鑰佹澘瓒呯骇绠$悊鍛�;1=浜轰簨绠$悊鍛�;2=鍛樺伐" prop="identityType">
+ <el-input v-model="form.identityType" placeholder="璇疯緭鍏ヨ韩浠界被鍨�0鑰佹澘瓒呯骇绠$悊鍛�;1=浜轰簨绠$悊鍛�;2=鍛樺伐" v-trim/>
+ </el-form-item>
+ <el-form-item label="閭" prop="email">
+ <el-input v-model="form.email" placeholder="璇疯緭鍏ラ偖绠�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鑱旂郴浜虹紪鐮侊紙鍏宠仈member锛�" prop="memberId">
+ <el-input v-model="form.memberId" placeholder="璇疯緭鍏ヨ仈绯讳汉缂栫爜锛堝叧鑱攎ember锛�" 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: 'OperaYwCustomerWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ remark: '',
+ industryId: '',
+ type: '',
+ name: '',
+ phone: '',
+ idcardNo: '',
+ idcardDecode: '',
+ code: '',
+ status: '',
+ highCheckor: '',
+ lastLoginDate: '',
+ loginNum: '',
+ userId: '',
+ idcardType: '',
+ accountBank: '',
+ accountNo: '',
+ accountPhone: '',
+ creditCard: '',
+ fpType: '',
+ accountAddr: '',
+ identityType: '',
+ email: '',
+ memberId: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/client/ywCustomer',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/views/platform/LogisticsRecord/screen.vue b/admin/src/views/client/staffList.vue
similarity index 100%
copy from admin/src/views/platform/LogisticsRecord/screen.vue
copy to admin/src/views/client/staffList.vue
diff --git a/admin/src/views/platform/LogisticsRecord/screen.vue b/admin/src/views/contract/contractList.vue
similarity index 100%
copy from admin/src/views/platform/LogisticsRecord/screen.vue
copy to admin/src/views/contract/contractList.vue
diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue
index c50e64b..6fa6e1d 100644
--- a/admin/src/views/index.vue
+++ b/admin/src/views/index.vue
@@ -183,16 +183,6 @@
</div>
</div>
</div>
- <TaskDetail v-if="isShowDetail" ref="DetailRef" @success="SubSuccess('isShowDetail')" />
- <VisReportDetail v-if="isShowReport" ref="VisReportDetailRef" @success="SubSuccess('isShowReport')" />
- <DangetDetail v-if="isShowDanger" ref="DangetDetailRef" @success="SubSuccess('isShowDanger')" />
- <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" @success="SubSuccess('isShowDriver')" />
- <!-- 鐢ㄨ溅鐢宠 -->
- <OperaCarUseBookWindow ref="OperaDetailsWindow" @success="getTaskList" />
- <!-- 闅愭偅 -->
- <OperaHiddenDangerWindow ref="OperaHiddenDangerWindow" @success="getTaskList" />
- <!-- 棰勭害璇︽儏 -->
- <OperaVisitsDesWindow ref="OperaVisitsDesWindow" />
</div>
</template>
@@ -205,24 +195,8 @@
getAppHeaderNav
} from '@/api'
import { level } from '@/api/business/visits'
-import TaskDetail from '@/views/task/visSubDetail.vue'
-import VisReportDetail from '@/views/task/visReportDetail.vue'
-import DangetDetail from '@/views/task/dangetDetail.vue'
-import DriverDetail from '@/views/task/driverDetail.vue'
-import OperaCarUseBookWindow from '@/components/business/OperaCarUseBookWindow'
-import OperaHiddenDangerWindow from '@/components/business/OperaHiddenDangerWindow'
-import OperaVisitsDesWindow from '@/components/business/OperaVisitsDesWindow'
const colors = ['#52a4f7', '#7678f7', '#5fc6d5']
export default {
- components: {
- TaskDetail,
- VisReportDetail,
- DangetDetail,
- DriverDetail,
- OperaCarUseBookWindow,
- OperaHiddenDangerWindow,
- OperaVisitsDesWindow
- },
data() {
return {
colors,
diff --git a/admin/src/views/login.vue b/admin/src/views/login.vue
index 6cdf919..0569816 100644
--- a/admin/src/views/login.vue
+++ b/admin/src/views/login.vue
@@ -3,7 +3,7 @@
<img src="@/assets/images/bg@2x.png" class="main_bg" alt="">
<div class="login_wrap">
<div class="login_img">
- <div class="h2">瀹夊窘瀹夋嘲鐗╂祦鏈夐檺璐d换鍏徃</div>
+ <div class="h2">闃滃畞鏂囦綋涓績</div>
<div class="h3">鏅烘収鐗╂祦鍥尯瀹夋秷涓�浣撳寲绯荤粺</div>
</div>
<div class="form_wrap">
diff --git a/admin/src/views/meeting/bookings.vue b/admin/src/views/meeting/bookings.vue
deleted file mode 100644
index ffc3d68..0000000
--- a/admin/src/views/meeting/bookings.vue
+++ /dev/null
@@ -1,380 +0,0 @@
-<template>
- <TableLayout :permissions="['business:bookings:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="浼氳瀹�" prop="roomId">
- <el-select v-model="searchForm.roomId" filterable clearable placeholder="璇烽�夋嫨浼氳瀹�">
- <el-option v-for="item in rooms" :key="item.id" :value="item.id" :label="item.name" />
- </el-select>
- </el-form-item>
- <el-form-item label="棰勭害閮ㄩ棬" prop="department">
- <el-cascader v-model="searchForm.department" :options="department" :show-all-levels="false" clearable
- :props="props"></el-cascader>
- <!-- @change="handleChange" -->
- <!-- <el-select
- v-model="searchForm.departmentId"
- filterable
- clearable
- placeholder="璇烽�夋嫨閮ㄩ棬"
- >
- <el-option v-for="item in department" :key="item.id" :value="item.id" :label="item.name" />
- </el-select> -->
- </el-form-item>
- <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="realName">
- <el-input v-model="searchForm.realName" placeholder="璇疯緭鍏ラ绾︿汉" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="浼氳鐘舵��" prop="status">
- <el-select v-model="searchForm.meetingStatus" filterable clearable placeholder="璇烽�夋嫨鐘舵��">
- <el-option v-for="item in status" :key="item.id" :value="item.id" :label="item.name" />
- </el-select>
- </el-form-item>
- <el-form-item label="璧锋鏃堕棿" prop="startTime">
- <el-date-picker v-model="date" type="datetimerange" range-separator="鑷�" value-format="yyyy-MM-dd HH:mm:ss"
- :default-time="['00:00:00', '23:59:59']" start-placeholder="寮�濮嬫椂闂�" end-placeholder="缁撴潫鏃堕棿"
- @change="selectDate"></el-date-picker>
- <!-- <el-date-picker v-model="searchForm.startTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ紑濮嬫椂闂�" @change="search"/> -->
- </el-form-item>
- <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio">
- <el-radio-button label="0">褰撳ぉ</el-radio-button>
- <el-radio-button label="1">杩�7澶�</el-radio-button>
- <el-radio-button label="2">杩�30澶�</el-radio-button>
- </el-radio-group>
- <!-- <el-form-item label="缁撴潫鏃堕棿" prop="endTime">
- <el-date-picker v-model="searchForm.endTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ粨鏉熸椂闂�" @change="search"/>
- </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:bookings:create',
- 'business:bookings:exportExcel',
- ]">
- <li>
- <el-button type="primary" @click="$refs.operaBookingsWindow.open('鏂板缓浼氳')"
- v-permissions="['business:bookings:create']">鏂板缓</el-button>
- </li>
- <!-- <li><el-button @click="deleteByIdInBatch" v-permissions="['business:bookings:delete']">鍒犻櫎</el-button></li> -->
- <li>
- <el-button :loading="isWorking.export" v-permissions="['business:bookings:exportExcel']"
- @click="exportExcel">瀵煎嚭</el-button>
- </li>
- </ul>
- <el-table v-loading="isWorking.search" :data="tableData.list" stripe
- @selection-change="handleSelectionChange">
- <!-- <el-table-column type="selection" align="center" width="55"></el-table-column> -->
- <el-table-column prop="name" label="浼氳涓婚" align="center" min-width="120px" show-overflow-tooltip>
- <template slot-scope="{ row }">
- <span class="long-title-style">{{ row.name }}</span>
- </template>
- </el-table-column>
- <el-table-column prop="roomName" label="浼氳瀹�" align="center" min-width="120px" show-overflow-tooltip>
- <template slot-scope="{ row }">
- <span class="long-title-style">{{ row.roomName }}</span>
- </template>
- </el-table-column>
- <el-table-column prop="meetingTime" label="浼氳鏃堕棿" align="center" min-width="120px"></el-table-column>
- <el-table-column prop="managerInfo" label="棰勭害浜�" align="center" min-width="100px"></el-table-column>
- <el-table-column label="浼氳鐘舵��" align="center" min-width="60px">
- <template slot-scope="{ row }">
- <span v-if="row.meetingStatus == 1">鏈紑濮�</span>
- <span v-if="row.meetingStatus == 2">杩涜涓�</span>
- <span v-if="row.meetingStatus == 3">宸茬粨鏉�</span>
- <span v-if="row.meetingStatus == 4">鍗冲皢寮�濮�</span>
- <span v-if="row.meetingStatus == 5">宸叉挙閿�</span>
- <!-- {{ row.status==0 ? '姝e父' : '鍙栨秷' }} -->
- </template>
- </el-table-column>
- <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" align="center" min-width="150px"></el-table-column>
- <!-- <el-table-column prop="content" label="浼氳鍐呭" min-width="100px"></el-table-column> -->
- <el-table-column v-if="
- containPermissions([
- 'business:bookings:update',
- 'business:bookings:delete',
- ])
- " label="鎿嶄綔" min-width="140" align="center" fixed="right">
- <template slot-scope="{ row }">
- <template>
- <el-button type="text" @click="$refs.operaBookingsDetailWindow.open('浼氳璇︽儏', row)">鏌ョ湅璇︽儏</el-button>
- <el-button v-if="row.meetingStatus == '1'" type="text"
- @click="$refs.operaBookingsWindow.open('缂栬緫浼氳棰勭害', row)"
- v-permissions="['business:bookings:update']">缂栬緫</el-button>
- <el-button type="text" v-if="row.meetingStatus == '1'" @click="handleStart(row)">寮�濮�</el-button>
- <el-button type="text" v-if="row.meetingStatus == '2'" @click="handleEnd(row)">缁撴潫</el-button>
- <el-button v-if="row.meetingStatus == '1'" type="text" @click="cancelMeeting(row.id)"
- v-permissions="['business:bookings:update']">鎾ゅ洖</el-button>
- </template>
- <!-- <el-button v-else type="text" @click="deleteById(row)" v-permissions="['business:bookings:delete']">鍒犻櫎</el-button> -->
- </template>
- </el-table-column>
- </el-table>
- <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaBookingsWindow ref="operaBookingsWindow" @success="handlePageChange" />
- <OperaBookingsDetailWindow @success="search" ref="operaBookingsDetailWindow" />
-
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaBookingsWindow from '@/views/meeting/components/OperaBookingsWindow'
-import OperaBookingsDetailWindow from '@/views/meeting/components/OperaBookingsDetailWindow'
-import { findList } from '@/api/meeting/rooms'
-import { getSystemDictData } from '@/api/system/dictData'
-import { fetchList } from '@/api/business/company'
-import { cancelById, bookingsDetail, startEarlyById, startById, meetingEndById } from '@/api/meeting/bookings'
-import { timeForMat } from '@/utils/util'
-export default {
- name: 'Bookings',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaBookingsWindow, OperaBookingsDetailWindow },
- data() {
- return {
- date: [],
- // 鎼滅储
- searchForm: {
- roomId: '',
- // departmentId: [],
- department: [],
- realName: '',
- meetingStatus: '',
- createDate: '',
- editor: '',
- editDate: '',
- isdeleted: '',
- remark: '',
- name: '',
- startTime: '',
- endTime: '',
- content: '',
- radio: 0
- },
- props: {
- label: 'name',
- value: 'id',
- checkStrictly: true
- },
- rooms: [
- { name: '201浼氳瀹�', id: '0' }
- ],
- department: [
- { name: '寮�鍙戦儴闂�', id: '0' }
- ],
- status: [
- { name: '鏈紑濮�', id: 1 },
- { name: '鍗冲皢寮�濮�', id: 4 },
- { name: '杩涜涓�', id: 2 },
- { name: '宸叉挙閿�', id: 5 },
- { name: '宸茬粨鏉�', id: 3 }
- ],
- link: 'https://dmtest.ahapp.net/meeting_h5/' // H5_LINK_ADDR
- }
- },
- provide() {
- return {
- rooms: () => this.rooms
- }
- },
- created() {
- this.config({
- module: '浼氳瀹ら瀹氫俊鎭〃',
- api: '/meeting/bookings',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- fetchList(1)
- .then(res => {
- this.department = this.newTree(res)
- })
- getSystemDictData('H5_LINK_ADDR')
- .then(res => {
- console.log(res)
- this.link = res.code
- })
- findList({ status: 0 })
- .then(res => {
- this.rooms = res
- })
- this.changeRadio('0')
- },
- methods: {
- changeRadio(e) {
- if (e === '0') {
- this.searchForm.startTime = timeForMat(0)[0]
- this.searchForm.endTime = timeForMat(0)[1]
- this.date = timeForMat(0)
- } else if (e === '1') {
- this.searchForm.startTime = timeForMat(6)[0]
- this.searchForm.endTime = timeForMat(6)[1]
- this.date = timeForMat(6)
- } else if (e === '2') {
- this.searchForm.startTime = timeForMat(29)[0]
- this.searchForm.endTime = timeForMat(29)[1]
- this.date = timeForMat(29)
- }
- this.search()
- },
- newTree(tree) {
- if (tree == null) {
- return []
- }
- return tree.map(item => {
- const newItem = { ...item }
- if (newItem) {
- newItem.children = newItem.childList
- }
- if (item.children && item.children.length == 0) {
- this.$delete(newItem, 'children')
- } else {
- newItem.children = this.newTree(newItem.children)
- }
- return newItem
- })
- },
- selectDate(v) {
- this.searchForm.endTime = v[1] + ' 23:59:59'
- this.searchForm.startTime = v[0] + ' 00:00:00'
- this.searchForm.radio = null
- },
- reset() {
- this.$refs.searchForm.resetFields()
- this.date = []
- this.searchForm.radio = '0'
- this.searchForm.startTime = ''
- this.searchForm.endTime = ''
- this.changeRadio('0')
- },
- copy(row) {
- const text = `${row.realName} 閭�璇锋偍鍔犲叆浼氳\n浼氳涓婚锛�${row.name}\n浼氳瀹わ細${row.roomName}\n浼氳鏃堕棿锛�${row.meetingTime}\n鐐瑰嚮閾炬帴鐩存帴鍔犲叆浼氳锛歕n${this.link}?id=${row.id}`
- this.$copyText(text)
- .then(() => {
- this.$message.success('浼氳淇℃伅澶嶅埗鎴愬姛锛屽幓鍒嗕韩缁欏悓浜嬪惂~')
- })
- .catch(e => {
- })
- },
- handleStart(row) {
- this.$dialog.messageWaring('寮�濮嬩細璁�', '鏄惁寮�濮嬪綋鍓嶄細璁紵')
- .then(() => {
- let fn = new Date(row.startTime).getTime() > new Date().getTime() ? startEarlyById : startById
- fn({ id: row.id })
- .then(() => {
- this.$message.success('浼氳宸插紑濮�')
- this.handlePageChange()
- })
- .catch(e => {
- })
- })
- },
- handleEnd(row) {
- this.$dialog.messageWaring('缁撴潫浼氳', '鏄惁缁撴潫褰撳墠浼氳锛�')
- .then(() => {
- meetingEndById({ id: row.id })
- .then(() => {
- this.$message.success('浼氳宸茬粨鏉�')
- this.handlePageChange()
- })
- .catch(e => {
- })
- })
- },
- cancelMeeting(id) {
- this.$dialog.messageWaring('鍙栨秷浼氳', '鏄惁鍙栨秷褰撳墠浼氳锛�')
- .then(() => {
- cancelById({ id })
- .then(() => {
- this.$message.success('鍙栨秷鎴愬姛')
- this.handlePageChange()
- })
- .catch(e => {
- })
- })
- },
- showDetail(id) {
- bookingsDetail(id)
- .then(res => {
- this.$refs.operaBookingsDetailWindow.open('浼氳璇︽儏', res)
- })
- .catch(e => {
- })
- },
- editBookings(id) {
- bookingsDetail(id)
- .then(res => {
- this.$refs.operaBookingsWindow.open('缂栬緫浼氳棰勭害', res)
- })
- .catch(e => {
- })
- },
- handlePageChange(pageIndex) {
- this.__checkApi()
- this.tableData.pagination.pageIndex = pageIndex || this.tableData.pagination.pageIndex
- this.isWorking.search = true
- const form = JSON.parse(JSON.stringify(this.searchForm))
- if (form.department.length) {
- form.departmentId = form.department[form.department.length - 1]
- }
- this.api.fetchList({
- page: this.tableData.pagination.pageIndex,
- capacity: this.tableData.pagination.pageSize,
- model: form,
- sorts: this.tableData.sorts
- })
- .then(data => {
- this.tableData.list = data.records
- this.tableData.pagination.total = data.total
- })
- .catch(e => {
- // this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.isWorking.search = false
- })
- }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-.detail_modal {
- padding: 20px 16px;
-
- .title {
- text-align: center;
- font-weight: 600;
- font-size: 16px;
- margin-bottom: 20px;
- }
-
- .h1 {
- font-weight: 600;
- font-size: 16px;
- margin-bottom: 15px;
- }
-
- .line {
- display: flex;
- margin-bottom: 10px;
-
- .label {
- width: 70px;
- color: #888888;
- }
-
- .value {
- color: #333333;
- }
- }
-}
-</style>
diff --git a/admin/src/views/meeting/components/OperaBookingsDetailWindow.vue b/admin/src/views/meeting/components/OperaBookingsDetailWindow.vue
deleted file mode 100644
index 2e7463d..0000000
--- a/admin/src/views/meeting/components/OperaBookingsDetailWindow.vue
+++ /dev/null
@@ -1,212 +0,0 @@
-<template>
- <GlobalAlertWindow
- :title="title"
- :visible.sync="visible"
- :confirm-working="isWorking"
- @confirm="confirm"
- width="600px"
- >
- <div class="title-style">
- <div class="header-title">{{ form.name }}</div>
- <div class="item-value">{{ `${form.roomName} ${form.meetingTime}` }}</div>
- </div>
- <div class="content-style">
- <div class="item">
- <div class="item-title">鍙備細浜哄憳</div>
- <div>
- {{ form.sysList.map((item) => `${item.realName}`).join("锛�") }}
- </div>
- </div>
- <div class="item">
- <div class="item-title">浼氳鍐呭</div>
- <div class="item-value">{{ form.content || "鏃�" }}</div>
- </div>
- <div v-if="form.projectList.length" class="item">
- <div class="">鏈嶅姟椤�</div>
- <div class="item-value">
- {{ form.projectList.map((item) => item.projectName).join(" | ") }}
- </div>
- </div>
- <div class="item" v-if="form.fileList.length">
- <div class="item-title">闄勪欢</div>
- <div>
- <FileLink
- :links="form.fileList"
- linkName="fileurlFull"
- :isUpload="false"
- />
- </div>
- </div>
- <div class="item" v-if="!!form.remark">
- <div class="item-title">澶囨敞</div>
- <div class="item-value">{{ form.remark }}</div>
- </div>
- </div>
- <div class="bottom-style">
- <div class="item-title">棰勭害浜�</div>
- <div class="item-value">{{ form.managerInfo }}</div>
- </div>
- <div slot="footer">
- <el-button type="primary" v-if="form.meetingStatus == 1" @click="openCancel('0')">鎾ら攢</el-button>
- <el-button v-if="form.meetingStatus == 2" type="primary" @click="openCancel('1')">缁撴潫</el-button>
- <el-button @click="visible = false">鍙栨秷</el-button>
- </div>
- <!-- 鍙栨秷/缁撴潫 -->
- <el-dialog
- :title="cancelParam.falg == '1' ? '缁撴潫浼氳' : '鎾ら攢浼氳'"
- :visible.sync="isShowCancel"
- append-to-body
- width="500px"
- >
- <el-form style="padding: 30px">
- <el-form-item label="鎾ゅ洖璇存槑">
- <el-input
- type="textarea"
- :rows="4"
- placeholder="璇疯緭鍏ヨ鏄庛��"
- v-model="cancelParam.businessRemark"
- >
- </el-input>
- </el-form-item>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button @click="isShowCancel = false">鍙栨秷</el-button>
- <el-button type="primary" @click="onSubCancel()">纭畾</el-button>
- </span>
- </el-dialog>
- </GlobalAlertWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
-import FileLink from '@/views/meeting/components/common/FileLink'
-import { cancelById, overBookById } from '@/api/meeting/bookings'
-export default {
- name: 'OperaBookingsDetailWindow',
- extends: BaseOpera,
- components: { GlobalAlertWindow, FileLink },
- data () {
- return {
- // 琛ㄥ崟鏁版嵁
- form: {
- id: null,
- name: '',
- roomName: '',
- meetingTime: '',
- date: '',
- editDate: '',
- projectList: [],
- remark: '',
- roomId: '',
- meetingStatus: '',
- startTime: '',
- endTime: '',
- times: [],
- content: '',
- sysList: [],
- fileList: [],
- managerInfo: ''
- },
- // room: [],
- sysList: [],
- projectList: [],
- timelist: [],
-
- isShowCancel: false,
- cancelParam: {
- flag: '0'
- },
- // 楠岃瘉瑙勫垯
- rules: {
-
- }
- }
- },
- created () {
- this.config({
- api: '/meeting/bookings',
- 'field.id': 'id'
- })
- },
- methods: {
- openCancel (flag) {
- this.isShowCancel = true
- this.cancelParam.flag = flag
- },
- onSubCancel () {
- const { id } = this.form
- const fn = this.cancelParam.flag === '0' ? cancelById : overBookById
- fn({ id, businessRemark: this.cancelParam.businessRemark }).then(res => {
- this.$tip.success('鎻愪氦鎴愬姛')
- this.visible = false
- this.isShowCancel = false
- this.$emit('success')
- })
- }
- /**
- * 鎵撳紑绐楀彛
- * @title 绐楀彛鏍囬
- * @target 缂栬緫鐨勫璞�
- */
- // open (title, target) {
- // this.title = title
- // this.visible = true
- // this.timelist = []
- // // 鏂板缓
- // 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]
- // }
- // // this.form.projectList = target.projectList ? target.projectList.map(item => item.projectId) : []
- // // this.form.sysList = this.form.sysList ? this.form.sysList.map(item => item.userId) : []
- // // this.form.date = target.startTime.split(' ')[0]
-
- // })
- // },
-
- }
-}
-</script>
-
-<style lang="scss" scoped>
-::v-deep .el-dialog__body {
- padding: 0;
-}
-.title-style {
- padding: 20px;
- border-bottom: 10px #f7f7f7 solid;
-}
-.content-style {
- padding: 20px;
- border-bottom: 10px #f7f7f7 solid;
-}
-.item {
- padding: 5px 0;
-}
-.header-title {
- font-size: 16px;
- font-weight: 600;
- padding-bottom: 5px;
-}
-.item-title {
- font-size: 16px;
- color: #999;
- padding-bottom: 5px;
-}
-.item-value {
- font-size: 14px;
- color: #111;
-}
-.bottom-style {
- padding: 20px;
-}
-</style>
diff --git a/admin/src/views/meeting/components/OperaBookingsWindow.vue b/admin/src/views/meeting/components/OperaBookingsWindow.vue
deleted file mode 100644
index 133272d..0000000
--- a/admin/src/views/meeting/components/OperaBookingsWindow.vue
+++ /dev/null
@@ -1,489 +0,0 @@
-<template>
- <GlobalAlertWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"
- width="840px">
- <el-form :model="form" ref="form" :rules="rules" label-width="120px" label-suffix="锛�">
- <el-form-item label="鍏宠仈浼氳瀹�" prop="roomId">
- <el-select v-model="form.roomId" filterable clearable :disabled="isEdit" placeholder="璇烽�夋嫨鍏宠仈浼氳瀹�"
- @change="selectRoom">
- <el-option v-for="item in rooms()" :key="item.id" :value="item.id" :label="item.name" />
- </el-select>
- </el-form-item>
- <el-form-item label="棰勫畾鏃ユ湡" prop="date">
- <el-date-picker :disabled="isEdit" v-model="form.date" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨棰勫畾鏃ユ湡"
- @change="selectDate"></el-date-picker>
- </el-form-item>
- <el-form-item label="棰勫畾鏃堕棿" prop="times">
- <div class="time-style">
- <div class="time-item" v-for="(item, index) in timelist" :key="item.id" :class="{
- 'time-item-sel': form.times.indexOf(index) != -1,
- 'time-item-disable': item.isUse,
- 'disable': item.bookingTimeId
- }" @click="selectTimes(index, item)">{{ `${item.startTime}-${item.endTime}` }}</div>
- </div>
- </el-form-item>
- <el-form-item label="浼氳涓婚" prop="name">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ヤ細璁富棰�" :maxlength="30" v-trim />
- </el-form-item>
-
- <div class="df_ac">
- <el-form-item label="鍙備細浜哄憳">
- <el-select v-model="form.sysList" filterable clearable multiple placeholder="閫夋嫨閮ㄩ棬鎴愬憳">
- <el-option v-for="item in sysList" :key="item.id" :value="item.id"
- :label="item.department ? `${item.department.name}-${item.realname}` : item.realname"></el-option>
- <!-- <el-option :key="1" :value="1" label="绂佺敤" /> -->
- </el-select>
- </el-form-item>
- <el-form-item class="ml10" label-width="140px" label="鏄惁閫氱煡鍙備細浜哄憳">
- <el-radio v-model="form.joinNotice" :label="1">涓嶉�氱煡</el-radio>
- <el-radio v-model="form.joinNotice" :label="0">閫氱煡</el-radio>
- </el-form-item>
- </div>
- <el-form-item label="浼氳鍐呭" prop="content">
- <el-input type="textarea" v-model="form.content" :maxlength="300" show-word-limit
- :autosize="{ minRows: 4, maxRows: 12 }" placeholder="璇疯緭鍏ヤ細璁唴瀹�" v-trim />
- </el-form-item>
- <el-form-item v-if="projectList.length" label="閫夋嫨鏈嶅姟椤圭洰" prop="projectList">
- <el-checkbox-group v-model="form.projectList">
- <el-checkbox v-for="project in projectList" :label="project.id"
- :key="project.id">{{ project.name }}</el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- <el-form-item label="浼氳闄勪欢" prop="fileList">
- <div>
- <el-button type="primary" icon="el-icon-upload" @click="$refs.upFile.click()">浼氳闄勪欢</el-button>
- </div>
- <div class="data-list">
- <FileLink :links="form.fileList" linkName="fileFullUrl" />
- </div>
- </el-form-item>
- <el-form-item label="浼氳澶囨敞" prop="remark">
- <el-input type="textarea" v-model="form.remark" placeholder="璇疯緭鍏ヤ細璁娉�" v-trim />
- </el-form-item>
- <input type="file" @change="upFiles" ref="upFile" style="display: none;" />
- </el-form>
-
- <el-dialog title="浼氳瀹ら绾︽儏鍐�" :visible.sync="isShowDetail" append-to-body width="600px">
- <div class="detail_modal">
- <div class="h1">{{ activeInfo.meetingName }}</div>
- <div class="line">
- <div class="label">浼氳鏃堕棿</div>
- <div class="value" v-if="activeInfo.meetingDate">
- {{ activeInfo.meetingDate.slice(5) }} {{ activeInfo.meetingTime }}
- </div>
- </div>
- <div class="line">
- <div class="label">浼氳瀹�</div>
- <div class="value">{{ activeInfo.roomName }}</div>
- </div>
- <div class="line">
- <div class="label">棰勭害浜�</div>
- <div class="value">{{ activeInfo.bookingUserName }}</div>
- </div>
- <el-button @click="isShowDetail = false">鍏抽棴</el-button>
- </div>
- </el-dialog>
- </GlobalAlertWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
-import FileLink from '@/views/meeting/components/common/FileLink'
-import { upload } from '@/api/system/common'
-import { fetchList as userList } from '@/api/system/user'
-import { findListByObjId } from '@/api/meeting/projects'
-import { BookDetailById } from '@/api/meeting/bookings'
-import { findList } from '@/api/meeting/roomTime'
-import { numRule, arrayRule } from '@/utils/form'
-export default {
- name: 'OperaBookingsWindow',
- extends: BaseOpera,
- components: { GlobalAlertWindow, FileLink },
- data() {
- return {
- // 琛ㄥ崟鏁版嵁
- form: {
- id: null,
- date: '',
- editDate: '',
- projectList: [],
- remark: '',
- name: '',
- roomId: '',
- startTime: '',
- endTime: '',
- times: [],
- joinNotice: 1,
- content: '',
- sysList: [],
- fileList: []
- },
- activeInfo: {},
- isShowDetail: false,
- isEdit: false,
- // room: [],
- sysList: [],
- projectList: [],
- timelist: [],
- // 楠岃瘉瑙勫垯
- rules: {
- roomId: [
- { required: true, validator: numRule, message: '璇烽�夋嫨鍏宠仈浼氳瀹�', tigger: 'change' }
- ],
- date: [
- { required: true, message: '璇烽�夋嫨棰勫畾鏃ユ湡', tigger: 'change' }
- ],
- times: [
- { required: true, validator: arrayRule, message: '璇烽�夋嫨棰勭害鏃堕棿', tigger: 'change' }
- ],
- sysList: [
- { required: true, validator: arrayRule, message: '璇烽�夋嫨鍙備細浜哄憳', tigger: 'change' }
- ],
- name: [
- { required: true, message: '璇烽�夋嫨杈撳叆浼氳涓婚', tigger: 'blur' }
- ]
- // content: [
- // { required: true, message: '璇疯緭鍏ヤ細璁唴瀹�', tigger: 'blur' }
- // ],
- }
- }
- },
- inject: ['rooms'],
- created() {
- this.config({
- api: '/meeting/bookings',
- 'field.id': 'id'
- })
- userList({
- page: 1,
- capacity: 9999,
- model: { realname: this.filterText,querySpecial: 1, memberType: 2, companyType: 1 }
- })
- .then(res => {
- console.log('userList', res)
- this.sysList = res.records
- })
- },
- methods: {
- /**
- * 鎵撳紑绐楀彛
- * @title 绐楀彛鏍囬
- * @target 缂栬緫鐨勫璞�
- */
- open(title, target) {
- this.title = title
- this.visible = true
- this.timelist = []
- this.isEdit = false
- // 鏂板缓
- 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]
- }
- this.isEdit = true
- this.form.projectList = target.projectList ? target.projectList.map(item => item.projectId) : []
- this.form.sysList = this.form.sysList ? this.form.sysList.map(item => item.userId) : []
- // console.log(target.startTime.split(' '));
- // debugger
- this.form.date = target.startTime.split(' ')[0]
- this.getTimes(true)
- this.selectRoom(this.form.roomId)
- })
- },
- selectRoom(objId) {
- this.getTimes()
- findListByObjId({
- objId: objId,
- objType: 0
- })
- .then(res => {
- this.projectList = res
- })
- },
- selectDate(v) {
- // console.log(v);
- this.getTimes()
- },
- getTimes(isInit = false) {
- this.form.times = []
- this.timelist = []
-
- if (this.form.date && this.form.roomId) {
- findList({
- yudingDate: this.form.date + ' 00:00:00',
- roomId: this.form.roomId,
- bookingId: this.form.id
- })
- .then(res => {
- this.timelist = res
- if (isInit) {
- this.timelist.forEach((itme, index) => {
- if (itme.isChoose) {
- itme.isUse = false
- this.form.times.push(index)
- }
- })
- // let startTime = this.form.startTime.split(' ')[1]
- // let endTime = this.form.endTime.split(' ')[1]
- // let firstIndex = this.timelist.findIndex(item => item.startTime == startTime)
- // let lastIndex = this.timelist.findIndex(item => item.endTime == endTime)
- // let index = firstIndex
- // while(index <= lastIndex) {
- // this.form.times.push(index)
- // index ++
- // }
- // console.log('startTime', startTime);
- // console.log('endTime', endTime);
- // console.log('firstIndex', firstIndex);
- // console.log('lastIndex', lastIndex);
- // console.log('this.form.times', this.form.times);
- }
- })
- }
- },
- getDetail(id) {
- BookDetailById({
- id
- }).then(res => {
- this.activeInfo = res
- this.isShowDetail = true
- })
- },
- selectTimes(index, item) {
- if (item.bookingTimeId) {
- this.getDetail(item.bookingTimeId)
- return
- }
- if (this.isEdit) {
- return
- }
- const tempIndex = this.form.times.indexOf(index)
- if (tempIndex != -1) {
- if (tempIndex == 0) {
- // console.log(this.form.times);
- // debugger
- this.form.times.splice(0, 1)
- } else if (tempIndex == this.form.times.length - 1) {
- this.form.times.splice(tempIndex, 1)
- }
- } else {
- if (item.isUse) {
- return
- }
- if (this.form.times.length && index + 1 !== this.form.times[0] && index - 1 !== this.form.times[this.form.times.length - 1]) {
- this.$message.error('棰勭害鏃堕棿蹇呴』鏄浉閭荤殑锛�')
- return
- }
- this.form.times.push(index)
- this.form.times.sort((x, y) => x - y)
- }
- // console.log(this.form.times);
- },
- upFiles(file) {
- const formdate = new FormData()
- this.isUploading = true
- formdate.append('file', file.target.files[0])
- formdate.append('folder', 'projects')
- upload(formdate)
- .then(res => {
- // console.log(this.form);
- this.form.fileList.push({
- name: res.originname,
- url: res.url,
- fileurl: res.imgaddr
- })
- })
- .catch(err => {
- console.log(err)
- })
- .finally(() => this.isUploading = false)
- this.$refs.upFile.value = null
- },
- // 纭鏂板缓
- __confirmCreate() {
- this.$refs.form.validate((valid) => {
- // debugger
- if (!valid) {
- return
- }
- // console.log(this.form);
- // debugger
- // 璋冪敤鏂板缓鎺ュ彛
- this.isWorking = true
- let sysList = [...this.form.sysList]
- sysList = sysList.map(item => {
- return { userId: item }
- })
- let projectList = [...this.form.projectList]
- projectList = projectList.map(item => {
- return { projectId: item }
- })
- const bookingTimeList = []
- this.form.times.forEach(item => {
- bookingTimeList.push({
- timeId: this.timelist[item].id,
- id: this.timelist[item].bookingTimeId
- })
- })
- const startTime = this.form.date + ' ' + this.timelist[this.form.times[0]].startTime + ':00'
- const endTime = this.form.date + ' ' + this.timelist[this.form.times[this.form.times.length - 1]].endTime + ':00'
- this.api.create({
- ...this.form,
- sysList,
- projectList,
- startTime,
- endTime,
- bookingTimeList
- })
- .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
- }
- // 璋冪敤鏂板缓鎺ュ彛
- this.isWorking = true
- let sysList = [...this.form.sysList]
- sysList = sysList.map(item => {
- return { userId: item }
- })
- let projectList = [...this.form.projectList]
- projectList = projectList.map(item => {
- return { projectId: item }
- })
- const bookingTimeList = []
- this.form.times.forEach(item => {
- bookingTimeList.push({
- timeId: this.timelist[item].id,
- id: this.timelist[item].bookingTimeId
- })
- })
- const startTime = this.form.date + ' ' + this.timelist[this.form.times[0]].startTime + ':00'
- const endTime = this.form.date + ' ' + this.timelist[this.form.times[this.form.times.length - 1]].endTime + ':00'
- this.api.updateById({
- ...this.form,
- sysList,
- projectList,
- startTime,
- endTime,
- bookingTimeList
- })
- .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>
-@import "@/assets/style/alertstyle.scss";
-@import "@/assets/style/variables.scss";
-
-::v-deep .el-input.is-disabled .el-input__inner {
- background-color: #fff !important;
- cursor: pointer;
-}
-
-.time-style {
- display: flex;
- flex-wrap: wrap;
- cursor: pointer;
-
- .time-item {
- margin-right: 8px;
- margin-bottom: 8px;
- font-size: 14px;
- font-weight: 400;
- line-height: 14px;
- width: 124px;
- height: 36px;
- display: flex;
- justify-content: center;
- align-items: center;
- border-radius: 5px;
- color: #111;
- border: #cccccc solid 1px;
- cursor: pointer;
- }
-
- .time-item-sel {
- border-color: $primary-color;
- background-color: #f6f9fe;
- color: $primary-color;
- }
-
- .time-item-disable {
- color: #fff;
- border-color: #cccccc;
- background-color: #cccccc;
- }
-
- .disable {
- border-color: #bed6f9;
- background-color: #bed6f9;
- color: #fff;
- }
-}
-
-.detail_modal {
- padding: 20px 16px;
-
- .title {
- text-align: center;
- font-weight: 600;
- font-size: 16px;
- margin-bottom: 20px;
- }
-
- .h1 {
- font-weight: 600;
- font-size: 16px;
- margin-bottom: 15px;
- }
-
- .line {
- display: flex;
- margin-bottom: 10px;
-
- .label {
- width: 70px;
- color: #888888;
- }
-
- .value {
- color: #333333;
- }
- }
-}
-</style>
diff --git a/admin/src/views/meeting/components/OperaDevicesWindow.vue b/admin/src/views/meeting/components/OperaDevicesWindow.vue
deleted file mode 100644
index d6ac254..0000000
--- a/admin/src/views/meeting/components/OperaDevicesWindow.vue
+++ /dev/null
@@ -1,95 +0,0 @@
-<template>
- <GlobalAlertWindow
- :title="title"
- :visible.sync="visible"
- :confirm-working="isWorking"
- @confirm="confirm"
- >
- <el-form :model="form" ref="form" label-width="110px" label-suffix="锛�" :rules="rules">
- <!-- <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
- <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
- </el-form-item>
- <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
- <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
- </el-form-item>
- <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
- <el-input v-model="form.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
- </el-form-item>
- <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
- <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
- </el-form-item>
- <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
- <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" v-trim/>
- </el-form-item>
- <el-form-item label="澶囨敞" prop="remark">
- <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/>
- </el-form-item> -->
- <el-form-item label="闂ㄧID" prop="code">
- <el-input v-model="form.code" placeholder="璇疯緭鍏ラ棬绂両D" v-trim/>
- </el-form-item>
- <el-form-item label="闂ㄧ鍚嶇О" prop="name">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ラ棬绂佸悕绉�" v-trim/>
- </el-form-item>
- <el-form-item label="鍏宠仈浼氳瀹�" prop="roomId">
- <el-select
- v-model="form.roomId"
- filterable
- clearable
- placeholder="璇烽�夋嫨鍏宠仈浼氳瀹�"
- >
- <el-option v-for="item in room()" :key="item.id" :value="item.id" :label="item.name" />
- </el-select>
- </el-form-item>
- <!-- <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
- <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" v-trim/>
- </el-form-item> -->
- </el-form>
- </GlobalAlertWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
-import { numRule } from '@/utils/form'
-export default {
- name: 'OperaDevicesWindow',
- extends: BaseOpera,
- components: { GlobalAlertWindow },
- data () {
- return {
- // 琛ㄥ崟鏁版嵁
- form: {
- id: null,
- name: '',
- code: '',
- roomId: '',
- },
- // 楠岃瘉瑙勫垯
- rules: {
- code: [
- { required: true, message: '璇疯緭鍏ラ棬绂両D', tigger: 'blur' }
- ],
- name: [
- { required: true, message: '璇疯緭鍏ラ棬绂佸悕绉�', tigger: 'blur' }
- ],
- roomId: [
- { required: true, validator: numRule, message: '璇烽�夋嫨鍏宠仈浼氳瀹�', tigger: 'change' }
- ],
- }
- }
- },
- inject: ['room'],
- created () {
- this.config({
- api: '/meeting/devices',
- 'field.id': 'id'
- })
-
- }
-}
-</script>
-
-<style lang="scss" scoped>
-@import "@/assets/style/alertstyle.scss";
-
-</style>
diff --git a/admin/src/views/meeting/components/OperaNoticeWindow.vue b/admin/src/views/meeting/components/OperaNoticeWindow.vue
deleted file mode 100644
index 47884d8..0000000
--- a/admin/src/views/meeting/components/OperaNoticeWindow.vue
+++ /dev/null
@@ -1,83 +0,0 @@
-<template>
- <GlobalAlertWindow
- :title="title"
- :visible.sync="visible"
- :confirm-working="isWorking"
- width="70%"
- @confirm="confirm"
- >
- <el-form :model="form" ref="form" :rules="rules">
- <el-form-item label="鏍囬" prop="title">
- <el-input v-model="form.title" placeholder="璇疯緭鍏ユ爣棰橈紝涓嶈秴杩�30涓瓧" maxlength="30" v-trim/>
- </el-form-item>
- <el-form-item label="鍐呭" prop="content">
- <!-- <el-input type="textarea" v-model="form.content" placeholder="璇疯緭鍏ュ唴瀹�" v-trim/> -->
- </el-form-item>
- <RichEditor :content="{ content: form.content }" @edit="form.content=$event"></RichEditor>
-
- <!-- <el-form-item label="澶囨敞" prop="remark">
- <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/>
- </el-form-item>
- <el-form-item label="鐢ㄦ埛缂栫爜锛堝叧鑱攎ember琛級" prop="memberId">
- <el-input v-model="form.memberId" placeholder="璇疯緭鍏ョ敤鎴风紪鐮侊紙鍏宠仈member琛級" v-trim/>
- </el-form-item>
- <el-form-item label="瀵硅薄缂栫爜" prop="objId">
- <el-input v-model="form.objId" placeholder="璇疯緭鍏ュ璞$紪鐮�" v-trim/>
- </el-form-item>
- <el-form-item label="瀵硅薄绫诲瀷 " prop="objType">
- <el-input v-model="form.objType" placeholder="璇疯緭鍏ュ璞$被鍨� " v-trim/>
- </el-form-item>
- <el-form-item label="娑堟伅绫诲瀷 0绯荤粺娑堟伅 1浼氳閫氱煡" prop="type">
- <el-input v-model="form.type" placeholder="璇疯緭鍏ユ秷鎭被鍨� 0绯荤粺娑堟伅 1浼氳閫氱煡" v-trim/>
- </el-form-item>
- <el-form-item label="鐘舵�� 0鏈 1宸茶" prop="status">
- <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0鏈 1宸茶" v-trim/>
- </el-form-item> -->
- </el-form>
- </GlobalAlertWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
-import RichEditor from '@/components/common/RichEditor.vue'
-export default {
- name: 'OperaNoticeWindow',
- extends: BaseOpera,
- components: { GlobalAlertWindow, RichEditor },
- data () {
- return {
- // 琛ㄥ崟鏁版嵁
- form: {
- id: null,
- creator: '',
- createDate: '',
- editor: '',
- editDate: '',
- isdeleted: '',
- remark: '',
- memberId: '',
- title: '',
- content: '',
- objId: '',
- objType: '',
- type: '',
- status: ''
- },
- // 楠岃瘉瑙勫垯
- rules: {
- }
- }
- },
- created () {
- this.config({
- api: 'meeting/notice',
- 'field.id': 'id'
- })
- }
-}
-</script>
-
-<style lang="scss" scoped>
-@import "@/assets/style/alertstyle.scss";
-</style>
diff --git a/admin/src/views/meeting/components/OperaProjectsWindow.vue b/admin/src/views/meeting/components/OperaProjectsWindow.vue
deleted file mode 100644
index 21c69d8..0000000
--- a/admin/src/views/meeting/components/OperaProjectsWindow.vue
+++ /dev/null
@@ -1,134 +0,0 @@
-<template>
- <GlobalAlertWindow
- v-loading="isUploading"
- :title="title"
- :visible.sync="visible"
- :confirm-working="isWorking"
- @confirm="confirm"
- >
- <el-form :model="form" ref="form" :rules="rules" label-width="120px" label-suffix="锛�">
- <el-form-item label="鍚嶇О" prop="name">
- <el-input v-model="form.name" maxlength="6" placeholder="璇疯緭鍏ワ紝涓嶈秴杩�6涓瓧" v-trim/>
- </el-form-item>
- <el-form-item label="灞曠ず鍥�" prop="imgurlfull">
- <!-- {{ form.imgurlfull }} -->
- <UploadAvatarImage
- :file="{ 'imgurlfull': form.imgurlfull, 'imgurl': form.imgurl }"
- :uploadData="uploadData"
- @uploadSuccess="uploadAvatarSuccess"
- @uploadEnd="isUploading = false"
- @uploadBegin="isUploading = true"
- />
- </el-form-item>
- <el-form-item label="鎺掑簭鐮�(鍗囧簭)" prop="sortnum">
- <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
- </el-form-item>
- <!-- <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
- <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
- </el-form-item>
- <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
- <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
- </el-form-item>
- <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
- <el-input v-model="form.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
- </el-form-item>
- <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
- <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
- </el-form-item>
- <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
- <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" v-trim/>
- </el-form-item>
-
- <el-form-item label="澶囨敞" prop="remark">
- <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/>
- </el-form-item>
- <el-form-item label="鍥炬爣" prop="imgurl">
- <el-input v-model="form.imgurl" placeholder="璇疯緭鍏ュ浘鏍�" v-trim/>
- </el-form-item>
- <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
- <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" v-trim/>
- </el-form-item> -->
- </el-form>
- </GlobalAlertWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
-import UploadAvatarImage from '@/components/common/UploadAvatarImage'
-export default {
- name: 'OperaProjectsWindow',
- extends: BaseOpera,
- components: { GlobalAlertWindow, UploadAvatarImage },
- data () {
- return {
- isUploading: false,
- uploadData: {
- folder: 'projects'
- },
- // 琛ㄥ崟鏁版嵁
- form: {
- id: null,
- creator: '',
- createDate: '',
- editor: '',
- editDate: '',
- isdeleted: '',
- name: '',
- remark: '',
- imgurlfull: '',
- imgurl: '',
- status: '',
- sortnum: ''
- },
- // 楠岃瘉瑙勫垯
- rules: {
- }
- }
- },
- created () {
- this.config({
- api: '/meeting/projects',
- 'field.id': 'id'
- })
- },
- methods: {
- /**
- * 鎵撳紑绐楀彛
- * @title 绐楀彛鏍囬
- * @target 缂栬緫鐨勫璞�
- */
- open (title, target) {
- this.title = title
- this.visible = true
- this.form.imgurl = ''
- this.form.imgurlfull = ''
- debugger
- // 鏂板缓
- 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]
- }
- console.log('this.form', this.form);
- })
- },
- // 涓婁紶鍥剧墖
- uploadAvatarSuccess(file) {
- this.form.imgurl = file.imgurl;
- this.form.imgurlfull = file.imgurlfull;
- },
- }
-}
-</script>
-
-<style lang="scss" scoped>
-@import "@/assets/style/alertstyle.scss";
-</style>
diff --git a/admin/src/views/meeting/components/OperaRoomsWindow.vue b/admin/src/views/meeting/components/OperaRoomsWindow.vue
deleted file mode 100644
index ebe13ac..0000000
--- a/admin/src/views/meeting/components/OperaRoomsWindow.vue
+++ /dev/null
@@ -1,376 +0,0 @@
-<template>
- <GlobalAlertWindow v-loading="isUploading" :title="title" :visible.sync="visible" :confirm-working="isWorking"
- @confirm="confirm">
- <el-form :model="form" ref="form" :rules="rules" label-width="120px" label-suffix="锛�">
- <el-form-item label="浼氳瀹ゅ悕绉�" prop="name">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ヤ細璁鍚嶇О" :maxlength="10" v-trim />
- </el-form-item>
- <el-form-item label="寮�鏀炬椂闂�" prop="timeRange">
- <el-time-picker is-range value-format="HH:mm" format="HH:mm" v-model="timeRange" range-separator="鑷�"
- start-placeholder="寮�濮嬫椂闂�" end-placeholder="缁撴潫鏃堕棿" placeholder="閫夋嫨鏃堕棿鑼冨洿" @change="selectRange"></el-time-picker>
- </el-form-item>
- <el-form-item label="绮掑害鍒嗛挓" prop="intervalTime">
- <el-input v-model="form.intervalTime" type="number" placeholder="璇疯緭鍏ユ椂闂寸矑搴︼紙鍒嗛挓锛�" v-trim />
- </el-form-item>
- <el-form-item label="瀹圭撼浜烘暟" prop="limitNum">
- <el-input v-model="form.limitNum" type="number" placeholder="璇疯緭鍏ュ绾充汉鏁�" v-trim />
- </el-form-item>
- <el-form-item label="绠$悊鍛�" prop="sysList">
- <el-select v-model="form.sysList" filterable multiple clearable placeholder="璇烽�夋嫨閮ㄩ棬">
- <!-- :label="`${item.department.name}-${item.realname}`" -->
- <el-option v-for="item in userList()" :key="item.id" :value="item.id"
- :label="item.companyId ? `${item.companyName}-${item.companyName}` : item.realname" />
- </el-select>
- </el-form-item>
- <el-form-item label="鎻愪緵鏈嶅姟椤圭洰" prop="projectList">
- <el-checkbox-group v-model="form.projectList">
- <el-checkbox v-for="project in projectList" :label="project.id" :key="project.id">{{ project.name
- }}</el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- <el-form-item label="绌洪棽灞曠ず鍐呭" prop="fileType">
- <el-radio v-model="form.fileType" @change="changeFile" :label="2">鏃�</el-radio>
- <el-radio v-model="form.fileType" @change="changeFile" :label="0">鍥剧墖</el-radio>
- <el-radio v-model="form.fileType" @change="changeFile" :label="1">瑙嗛</el-radio>
- </el-form-item>
- <el-form-item v-if="form.fileType == 0" label="灞曠ず鍥剧墖" prop="imgurl">
- <div class="upload_wrap">
- <el-upload class="avatar-uploader" accept=".png,.jpg,.jpeg" :action="uploadImgUrl" :data="uploadData"
- :show-file-list="false" :before-upload="beforeAvatarUpload" :on-error="uploadError"
- :on-success="handleImgSuccess">
- <div>
- <i class="el-icon-plus avatar-uploader-icon"></i>
- </div>
- </el-upload>
- <div v-for="item, i in form.multifileList" class="img_wrap">
- <img :src="item.fileurlFull" class="img">
- <i class="el-icon-error del" @click="imgDel(i)"></i>
- </div>
- </div>
- </el-form-item>
- <el-form-item v-if="form.fileType == 1" label="灞曠ず瑙嗛" prop="imgurl">
- <UploadAvatarVideo :file="{ 'videourlfull': form.videoFullUrl, 'videourl': form.videourl }"
- :uploadData="uploadData" @uploadSuccess="uploadAvatarSuccess" @uploadEnd="isUploading = false"
- @uploadBegin="isUploading = true" />
- </el-form-item>
- <el-form-item label="浣跨敤椤荤煡" prop="tips">
- <el-input v-model="form.tips" type="textarea" placeholder="璇疯緭鍏ヤ娇鐢ㄩ』鐭�" v-trim />
- </el-form-item>
- </el-form>
- </GlobalAlertWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
-import UploadAvatarVideo from '@/components/common/UploadAvatarVideo'
-import { numRule } from '@/utils/form'
-import { fetchList } from '@/api/meeting/projects'
-import { Loading } from 'element-ui'
-export default {
- name: 'OperaRoomsWindow',
- extends: BaseOpera,
- components: { GlobalAlertWindow, UploadAvatarVideo },
- data() {
- let timeRangeRule = (rule, value, callBack) => {
- if (!this.form.startTime) {
- callBack(new Error('璇烽�夋嫨寮�濮嬫椂闂�'))
- return
- }
- if (!this.form.endTime) {
- callBack(new Error('璇烽�夋嫨缁撴潫鏃堕棿'))
- return
- }
- callBack()
- }
- return {
- uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/upload',
- isUploading: false,
- uploadData: {
- folder: 'projects'
- },
- timeRange: ['', ''],
- loading: null,
- // 琛ㄥ崟鏁版嵁
- form: {
- id: null,
- sysList: [],
- multifileList: [],
- projectList: [],
- createDate: '',
- editor: '',
- editDate: null,
- isdeleted: 0,
- fileType: 2,
- name: '',
- remark: '',
- startTime: '',
- endTime: '',
- limitNum: 0,
- imgurl: '',
- imgFullUrl: '',
- tips: '',
- status: 0,
- intervalTime: 0
- },
- user: [],
- projectList: [],
- // 楠岃瘉瑙勫垯
- rules: {
- name: [
- { required: true, message: '璇疯緭鍏ヤ細璁鍚嶇О', tigger: 'blur' }
- ],
- intervalTime: [
- { required: true, validator: numRule, message: '璇疯緭鍏ユ椂闂寸矑搴�', tigger: 'blur' }
- ],
- timeRange: [
- { required: true, validator: timeRangeRule, tigger: 'change' }
- ]
- }
- }
- },
- inject: ['userList'],
- created() {
- this.config({
- api: '/meeting/rooms',
- 'field.id': 'id'
- })
- // realname: this.filterText
- fetchList({
- page: 1,
- capacity: 9999,
- model: {},
- })
- .then(res => {
- this.projectList = res.records
- })
- },
- methods: {
- /**
- * 鎵撳紑绐楀彛
- * @title 绐楀彛鏍囬
- * @target 缂栬緫鐨勫璞�
- */
- open(title, target) {
- this.title = title
- this.visible = true
- this.timeRange = ['', '']
- // 鏂板缓
- 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]
- }
- if (target.fileType == 1 && target.multifileList && target.multifileList.length > 0) {
- this.$set(this.form, 'videoFullUrl', target.multifileList[0].fileurlFull)
- this.$set(this.form, 'videourl', target.multifileList[0].fileurl)
- }
- this.timeRange = [target.startTime, target.endTime]
- this.form.projectList = this.form.projectList ? target.projectList.map(item => item.projectId) : []
- this.form.sysList = this.form.sysList ? this.form.sysList.map(item => item.userId) : []
- // console.log(this.form.imgFullUrl);
- })
- },
- imgDel(i) {
- this.form.multifileList.splice(i, 1)
- },
- handleImgSuccess(res) {
- this.$nextTick(() => {
- this.loading.close()
- })
- const list = [...this.form.multifileList]
-
- if (res.code == 200) {
- let { data } = res
- list.push({
- fileurl: data.imgaddr,
- fileurlFull: data.url,
- type: 0
- })
- this.$set(this.form, 'multifileList', list)
-
- }
- },
- uploadError() {
- // this.$message.error('涓婁紶澶辫触')
- this.$nextTick(() => {
- this.loading.close()
- })
- },
- // // 鎷︽埅
- beforeAvatarUpload(file) {
- this.loading = Loading.service({
- lock: true,
- text: 'Loading',
- spinner: 'el-icon-loading',
- background: 'rgba(0, 0, 0, 0.7)'
- })
- return true
- },
- selectRange(v) {
- // console.log(this.timeRange);
- console.log(v)
- this.form.startTime = v[0]
- this.form.endTime = v[1]
- console.log(this.form.startTime, this.form.endTime)
- },
- changeFile() {
- this.$set(this.form, 'multifileList', [])
- },
- uploadAvatarSuccess(file) {
- console.log('file', file)
- let temp = []
- temp.push({
- fileurl: file.imgurl,
- fileurlFull: file.imgurlfull,
- type: 1
- })
- this.form.multifileList = temp
- this.$set(this.form, 'videourl', file.imgurl)
- this.$set(this.form, 'videoFullUrl', file.imgurlfull)
- },
- // 纭鏂板缓
- __confirmCreate() {
- this.$refs.form.validate((valid) => {
- // debugger
- if (!valid) {
- return
- }
- // console.log(this.form);
- // debugger
- // 璋冪敤鏂板缓鎺ュ彛
- this.isWorking = true
- let sysList = [...this.form.sysList]
- sysList = sysList.map(item => {
- return { userId: item }
- })
- let projectList = [...this.form.projectList]
- projectList = projectList.map(item => {
- return { projectId: item }
- })
- this.api.create({
- ...this.form,
- sysList,
- projectList
- })
- .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
- }
- console.log(this.form)
- debugger
- // 璋冪敤鏂板缓鎺ュ彛
- this.isWorking = true
- let sysList = [...this.form.sysList]
- sysList = sysList.map(item => {
- return { userId: item }
- })
- let projectList = [...this.form.projectList]
- projectList = projectList.map(item => {
- return { projectId: item }
- })
- this.api.updateById({
- ...this.form,
- sysList,
- projectList
- })
- .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>
-$image-width: 90px;
-
-.upload_wrap {
- display: flex;
-
- .img_wrap {
- margin-left: 10px;
- border: 1px dashed #d9d9d9;
- width: $image-width;
- height: $image-width;
- border-radius: 6px;
- position: relative;
-
- .img {
- width: $image-width;
- height: $image-width;
- }
-
- .del {
- position: absolute;
- top: -6px;
- right: -6px;
- cursor: pointer;
- color: red;
- }
- }
-}
-
-.avatar-uploader {
- width: $image-width;
- height: $image-width;
-}
-
-::v-deep .el-upload {
- border: 1px dashed #d9d9d9;
- border-radius: 6px;
- cursor: pointer;
- position: relative;
- overflow: hidden;
-}
-
-.avatar-uploader .el-upload:hover {
- border-color: #409EFF;
-}
-
-.avatar-uploader-icon {
- line-height: 90px;
- font-size: 28px;
- color: #8c939d;
- width: $image-width;
- height: $image-width;
- text-align: center;
-}
-
-.avatar {
- width: 90px;
- max-height: 90px;
- display: block;
-}
-</style>
\ No newline at end of file
diff --git a/admin/src/views/meeting/components/common/FileLink.vue b/admin/src/views/meeting/components/common/FileLink.vue
deleted file mode 100644
index 08a1485..0000000
--- a/admin/src/views/meeting/components/common/FileLink.vue
+++ /dev/null
@@ -1,92 +0,0 @@
-<template>
- <div>
- <FileLinkItem
- v-for="(item, index) in links"
- :key="index"
- :link="item[linkName]"
- :name="item.name"
- :isUpload="isUpload"
- @showFile="showFile"
- @deleteAction="deleteFile(index)"
- />
- <PDFPreview ref="PDFPreview" />
- <el-image-viewer
- v-if="showViewer"
- :on-close="close"
- :initialIndex="tempIndex"
- :url-list="srcList"
- :zIndex="3000"
- />
- </div>
-</template>
-
-<script>
-// import { fileType } from '@/utils/util';
-import FileLinkItem from './FileLinkItem.vue';
-import PDFPreview from './PDFPreview'
-import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
-export default {
- components: {
- FileLinkItem,
- PDFPreview,
- ElImageViewer
- },
- props: {
- links: {
- type: Array,
- required: true
- },
- isUpload: {
- type: Boolean,
- default: true
- },
- linkName: {
- type: String,
- required: true
- }
- },
- data() {
- return {
- showViewer: false
- }
- },
- computed: {
- // 鍥剧墖鍦板潃
- // srcList() {
- // return this.links.filter(item => {
- // let link = item[this.linkName]
- // return fileType(link) == 1
- // }).map(item => item[this.linkName])
- // }
- },
- methods: {
- deleteFile(index) {
- this.links.splice(index, 1)
- },
- downloadFile(url) {
- window.open(url, '_blank')
- },
- showFile(url) {
- debugger
- // let type = fileType(url)
- // switch (type) {
- // case 1:
- // this.tempIndex = this.srcList.findIndex(item => item == url)
- // this.showViewer = true
- // break;
- // case 2:
- // this.$refs.PDFPreview.open('', { url })
- // break;
- // case 3:
- // window.open(url, '_blank')
- // break;
- // default:
- // break;
- // }
- },
- close() {
- this.showViewer = false
- }
- },
-}
-</script>
diff --git a/admin/src/views/meeting/components/common/FileLinkItem.vue b/admin/src/views/meeting/components/common/FileLinkItem.vue
deleted file mode 100644
index 237910d..0000000
--- a/admin/src/views/meeting/components/common/FileLinkItem.vue
+++ /dev/null
@@ -1,89 +0,0 @@
-<template>
- <div class="file-link">
- <div class="like-link" @click="showFile(link)">{{ name }}</div>
- <i v-if="isUpload" class="el-icon-delete delete" @click="deleteFile()"></i>
- <i v-else class="el-icon-download download" @click="downloadFile(link)"></i>
- </div>
-</template>
-
-<script>
-
-export default {
- props: {
- link: {
- type: String,
- default: ''
- },
- name: {
- type: String,
- default: ''
- },
-
- isUpload: {
- type: Boolean,
- default: true
- }
- },
- data() {
- return {
- showViewer: false
- }
- },
- methods: {
- deleteFile() {
- this.$emit('deleteAction')
- },
- downloadFile(url) {
- window.open(url, '_blank')
- },
- showFile(link) {
- this.$emit('showFile',link)
- }
- },
-}
-</script>
-
-<style lang="scss" scoped>
-.file-link {
- // height: 26px;
- display: flex;
- font-size: 14px;
- line-height: 26px;
-
- .like-link {
- line-height: 26px;
- color: #216EEE;
- cursor: pointer;
- text-decoration: underline;
- }
- .delete {
- box-sizing: border-box;
- line-height: 26px;
- margin-left: 10px;
- width: 16px;
- height: 16px;
- // background-color: #BFC3CB;
- color: #216EEE;
- border-radius: 50%;
- padding: 1.5px;
- cursor: pointer;
- &:hover {
- color: #ff0000;
- }
- }
- .download {
- line-height: 26px;
- box-sizing: border-box;
- margin-left: 10px;
- width: 16px;
- height: 16px;
- color: #828D9E;
- border-radius: 50%;
- padding: 1.5px;
- cursor: pointer;
- &:hover {
- color: #216EEE;
- }
- }
-}
-</style>
diff --git a/admin/src/views/meeting/components/common/PDFPreview.vue b/admin/src/views/meeting/components/common/PDFPreview.vue
deleted file mode 100644
index 31c81fc..0000000
--- a/admin/src/views/meeting/components/common/PDFPreview.vue
+++ /dev/null
@@ -1,95 +0,0 @@
-<template>
- <el-dialog
- class="global-window"
- :visible="visible"
- :with-header="true"
- :close-on-press-escape="false"
- :wrapper-closable="false"
- :append-to-body="true"
- @close="visible=false"
- width="70%"
- >
- <div class="pdf-container">
- <iframe
- :src="`${path}/pdfjs/web/viewer.html?file=${form.url}`"
- frameborder="0"
- style="width: 100%; height: 100%;"
- ></iframe>
- </div>
- </el-dialog>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-
-import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
-export default {
- name: 'OperaCompanyUserWindow',
- extends: BaseOpera,
- components: { GlobalAlertWindow },
- data () {
- return {
- path: process.env.VUE_APP_CONTEXT_PATH == '/' ? '' : process.env.VUE_APP_CONTEXT_PATH,
- // 琛ㄥ崟鏁版嵁
- form: {
- url: ''
- }
- }
- },
- created () {
- }
-}
-
-</script>
-
-<style lang="scss" scoped>
-.address {
- ::v-deep .el-form-item {
- display: flex;
- }
- ::v-deep .el-form-item__content {
- flex: 1;
- }
- ::v-deep .el-select {
- width: 32%;
- .el-input__inner {
- width: 100%;
- }
- }
-}
-.pdf-container {
- width: 100%;
- height: calc(80vh - 100px);
- overflow-y: scroll;
-}
-::v-deep .el-dialog__header {
- padding: 0 !important;
- height: 40px;
- line-height: 40px;
- text-align: center;
- // background-color: rgba($color: #000000, $alpha: 0.3);
-
- }
-::v-deep .window__footer {
- height: 1px;
-}
-// ::v-deep .el-dialog__body {
- // background-color: rgba($color: #000000, $alpha: 0.3);
-// }
-.ins-pdf-button-box {
- display: flex;
- padding: 20px;
- div {
- width: 80px;
- // background-color: #fff;
- background-color: #f5f5f5;
- margin-right: 10px;
- text-align: center;
- padding: 8px;
- }
- .last-style {
- border: 1px solid #666;
-
- }
-}
-</style>
diff --git a/admin/src/views/meeting/components/selectMember.vue b/admin/src/views/meeting/components/selectMember.vue
deleted file mode 100644
index 5fae9db..0000000
--- a/admin/src/views/meeting/components/selectMember.vue
+++ /dev/null
@@ -1,267 +0,0 @@
-<template>
- <GlobalAlertWindow
- :title="title"
- :visible.sync="visible"
- :confirm-working="isWorking"
- @confirm="confirm"
- >
- <div class="select-container">
- <div class="tree">
- <div style="display: flex; margin-bottom: 5px;">
- <el-input
- placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
- v-model="filterText"
- clearable
- @input="inputAction"
- @keypress.enter.native="search"
- ></el-input>
- <el-button @click="search" style="margin-left: 5px;" type="primary">鎼滅储</el-button>
- </div>
- <el-tree
- key="tree"
- v-if="!filterList.length"
- :data="data"
- :load="loadNode"
- lazy
- >
- <span class="custom-tree-node" slot-scope="{ node, data }">
- <span>{{ node.data.name }}</span>
- <el-checkbox @change="selectUser(node.data)" v-if="node.data.isUser" v-model="node.data.isSelect"></el-checkbox>
- </span>
- </el-tree>
- <div v-else>
- <div v-for="item in filterList" :key="item.id" class="custom-tree-node">
- <span>{{ item.realname }}</span>
- <el-checkbox @change="selectUser(item)" v-model="item.isSelect"></el-checkbox>
- </div>
- </div>
- </div>
- <div class="line"></div>
- <div class="selected">
- <div style="margin-bottom: 5px;">宸查�夛細{{ selectList.length }}</div>
- <div v-for="item in selectList" :key="item.id" class="custom-tree-node">
- <span>{{ item.name }}</span>
- <i class="el-icon-delete delete" @click="deleteAction(item)"></i>
- </div>
- </div>
- </div>
- </GlobalAlertWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
-// import { findTreeUser } from '@/api/system/department'
-import { fetchList as userList } from '@/api/system/user'
-export default {
- name: 'selectMember',
- extends: BaseOpera,
- components: { GlobalAlertWindow },
- data () {
- return {
- props: {
- label: 'name',
- children: 'zones',
- isLeaf: 'isUser'
- },
- data: [],
- filterText: '',
- filterList: [],
- selectList: [],
- // 琛ㄥ崟鏁版嵁
- form: {
- id: null,
- creator: '',
- createDate: '',
- editor: '',
- editDate: '',
- isdeleted: '',
- remark: '',
- name: '',
- roomId: '',
- startTime: '',
- endTime: '',
- content: ''
- },
- rootNode: {},
- // 楠岃瘉瑙勫垯
- rules: {
- }
- }
- },
- created () {
- this.config({
- api: '/meeting/bookings',
- 'field.id': 'id'
- })
-
- },
- methods: {
- /**
- * 鎵撳紑绐楀彛
- * @title 绐楀彛鏍囬
- * @target 缂栬緫鐨勫璞�
- */
- open (title, target) {
- this.title = title
- this.visible = true
- this.filterList = []
- // 鏂板缓
- 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]
- }
- })
- },
- loadNode(node, resolve) {
- this.rootNode = node
- // console.log(node, resolve);
- if (node.data.isUser) {
- return resolve([])
- }
- let parentId = ''
- if (node.level === 0) {
- parentId = ''
- } else {
- parentId = node.data.id
- }
- // findTreeUser({parentId})
- // .then(res => {
- // // this.data = [res]
- // if (!parentId) {
- // resolve([res])
- // } else {
- // let resolveList = []
- // if (res.userList) {
- // res.userList.forEach(item => {
- // let index = this.selectList.findIndex(sel => sel.id == item.id)
- // resolveList.push({
- // ...item,
- // name: item.realname,
- // isUser: true,
- // isSelect: index !== -1
- // })
- // });
- // }
- // if (res.children) {
- // res.children.forEach(item => {
- // resolveList.push(item)
- // })
- // }
-
- // resolve(resolveList)
- // }
-
- // })
- },
- inputAction() {
- if (!this.filterText) {
- this.filterList = []
- }
- },
- search() {
- this.filterList = []
- if (this.filterText) {
- userList({
- page: 1,
- capacity: 9999,
- model: { realname: this.filterText },
- })
- .then(res => {
- // console.log(res);
- // this.filterList = res.records
- res.records.forEach(item => {
- let index = this.selectList.findIndex(sel => sel.id == item.id)
- this.filterList.push({
- ...item,
- isSelect: index !== -1
- })
- })
- })
- }
- },
- selectUser(item) {
- let index = this.selectList.findIndex(sel => sel.id == item.id)
- if (index !== -1) {
- this.selectList.splice(index, 1)
- } else {
- this.selectList.push({
- name: item.realname,
- id: item.id
- })
- }
- },
- deleteAction(item) {
- console.log(this.rootNode);
- this.selectList.splice(this.selectList.findIndex(sel => sel.id == item.id), 1)
- this.filterList.forEach(filter => {
- if (filter.id == item.id) {
- filter.isSelect = false
- }
- })
- }
- },
-}
-</script>
-
-<style lang="scss" scoped>
-.select-container {
- display: flex;
- height: 100%;
- .tree {
- padding: 0 10px 10px;
- box-sizing: border-box;
- width: calc(50% - 0.5px);
- min-height: 200px;
- // height: 100%;
-
- }
- .line {
- width: 1px;
- min-height: 200px;
- // height: 100%;
-
- background-color: #f7f7f7;
- }
- .selected {
- padding: 0 10px 10px;
- box-sizing: border-box;
- // background-color: red;
- // flex: 1;
- width: calc(50% - 0.5px);
- min-height: 200px;
- // height: 100%;
- }
-}
-.custom-tree-node {
- flex: 1;
- display: flex;
- align-items: center;
- justify-content: space-between;
- font-size: 14px;
- padding-right: 8px;
-}
-.delete {
- box-sizing: border-box;
- line-height: 26px;
- margin-left: 10px;
- width: 16px;
- height: 16px;
- // background-color: #BFC3CB;
- color: #216EEE;
- border-radius: 50%;
- padding: 1.5px;
- cursor: pointer;
- &:hover {
- color: #ff0000;
- }
- }
-</style>
diff --git a/admin/src/views/meeting/devices.vue b/admin/src/views/meeting/devices.vue
deleted file mode 100644
index ed02763..0000000
--- a/admin/src/views/meeting/devices.vue
+++ /dev/null
@@ -1,154 +0,0 @@
-<template>
- <TableLayout :permissions="['business:devices:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="浼氳瀹�" prop="roomId">
- <el-select
- v-model="searchForm.roomId"
- filterable
- clearable
- placeholder="璇烽�夋嫨浼氳瀹�"
- >
- <el-option v-for="item in room" :key="item.id" :value="item.id" :label="item.name" />
- </el-select>
- </el-form-item>
- <el-form-item label="鐘舵��" prop="status">
- <el-select
- v-model="searchForm.status"
- filterable
- clearable
- placeholder="璇烽�夋嫨浼氳瀹�"
- >
- <el-option :key="0" :value="0" label="鍚敤" />
- <el-option :key="1" :value="1" label="绂佺敤" />
- </el-select>
- </el-form-item>
- <section>
- <el-button type="primary" @click="search">鎼滅储</el-button>
- <!-- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:devices:exportExcel']" @click="exportExcel">瀵煎嚭</el-button> -->
- <el-button @click="reset">閲嶇疆</el-button>
- </section>
- </el-form>
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:devices:create']">
- <li><el-button type="primary" @click="$refs.operaDevicesWindow.open('鏂板缓璁惧')" icon="el-icon-plus" v-permissions="['business:devices:create']">鏂板缓</el-button></li>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="index" prop="index" label="搴忓彿" align="center" min-width="50px"></el-table-column>
- <el-table-column prop="code" label="闂ㄧID" align="center" min-width="100px"></el-table-column>
- <el-table-column prop="name" label="闂ㄧ鍚嶇О" align="center" min-width="100px"></el-table-column>
- <el-table-column prop="roomName" label="鍏宠仈浼氳瀹�" align="center" min-width="100px"></el-table-column>
- <el-table-column prop="status" label="鐘舵��" align="center" min-width="100px">
- <template slot-scope="{row}">
- <el-switch
- v-model="row.status"
- active-color="#13ce66"
- inactive-color="#999"
- :active-value="0"
- :inactive-value="1"
- @change="changeStatus(row)"
- ></el-switch>
- </template>
- </el-table-column>
-
- <!-- <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="editor" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
- <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="isdeleted" label="鏄惁鍒犻櫎0鍚� 1鏄�" min-width="100px"></el-table-column>
- <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
- <el-table-column prop="code" label="璁惧鍙凤紙涓嶅彲閲嶅锛�" min-width="100px"></el-table-column> -->
-
- <el-table-column
- v-if="containPermissions(['business:devices:update', 'business:devices:delete'])"
- label="鎿嶄綔"
- min-width="120"
- fixed="right"
- align="center"
- >
- <template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaDevicesWindow.open('缂栬緫璁惧', row)" icon="el-icon-edit" v-permissions="['business:devices:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:devices:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- ></pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaDevicesWindow ref="operaDevicesWindow" @success="handlePageChange"/>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaDevicesWindow from '@/views/meeting/components/OperaDevicesWindow'
-import { findList } from '@/api/meeting/rooms'
-import { updateById } from '@/api/meeting/devices'
-export default {
- name: 'Devices',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaDevicesWindow },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- id: '',
- creator: '',
- createDate: '',
- editor: '',
- editDate: '',
- isdeleted: '',
- remark: '',
- name: '',
- code: '',
- roomId: '',
- status: ''
- },
- room: []
- }
- },
- provide() {
- return {
- room: () => this.room
- }
- },
- created () {
- this.config({
- module: '璁惧绠$悊淇℃伅琛�',
- api: '/meeting/devices',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- findList({status:0})
- .then(res => {
- this.room = res
- })
- this.search()
- },
- methods: {
- changeStatus(item) {
- updateById(item)
- .then(() => {
- this.$message.success('淇敼鎴愬姛')
- })
- .catch(e => {
- })
- .finally(() => {
- this.handlePageChange()
- })
- }
- },
-}
-
-</script>
diff --git a/admin/src/views/meeting/notice.vue b/admin/src/views/meeting/notice.vue
deleted file mode 100644
index b4bfeb7..0000000
--- a/admin/src/views/meeting/notice.vue
+++ /dev/null
@@ -1,109 +0,0 @@
-<template>
- <TableLayout :permissions="['business:notice:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="閫氱煡鏍囬" prop="title">
- <el-input v-model="searchForm.title" placeholder="璇疯緭鍏ラ�氱煡鏍囬" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍙戝竷浜�" prop="creatorName">
- <el-input v-model="searchForm.creatorName" placeholder="璇疯緭鍏ュ彂甯冧汉" @keypress.enter.native="search"></el-input>
- </el-form-item>
-
- <section>
- <el-button type="primary" @click="search">鎼滅储</el-button>
- <!-- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:notice:exportExcel']" @click="exportExcel">瀵煎嚭</el-button> -->
- <el-button @click="reset">閲嶇疆</el-button>
- </section>
- </el-form>
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:notice:create', 'business:notice:delete']">
- <li><el-button type="primary" @click="$refs.operaNoticeWindow.open('鏂板缓娑堟伅閫氱煡')" icon="el-icon-plus" v-permissions="['business:notice:create']">鏂板缓</el-button></li>
- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:notice:delete']">鍒犻櫎</el-button></li>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="title" label="鏍囬" align="center" min-width="100px"></el-table-column>
- <el-table-column prop="createDate" label="鍙戝竷鏃堕棿" align="center" min-width="100px"></el-table-column>
- <el-table-column prop="creatorName" label="鍙戝竷浜�" align="center" min-width="100px"></el-table-column>
- <!-- <el-table-column prop="editor" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
- <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="isdeleted" label="鏄惁鍒犻櫎0鍚� 1鏄�" min-width="100px"></el-table-column>
- <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
- <el-table-column prop="memberId" label="鐢ㄦ埛缂栫爜锛堝叧鑱攎ember琛級" min-width="100px"></el-table-column>
- <el-table-column prop="content" label="鍐呭" min-width="100px"></el-table-column>
- <el-table-column prop="objId" label="瀵硅薄缂栫爜" min-width="100px"></el-table-column>
- <el-table-column prop="objType" label="瀵硅薄绫诲瀷 " min-width="100px"></el-table-column>
- <el-table-column prop="type" label="娑堟伅绫诲瀷 0绯荤粺娑堟伅 1浼氳閫氱煡" min-width="100px"></el-table-column>
- <el-table-column prop="status" label="鐘舵�� 0鏈 1宸茶" min-width="100px"></el-table-column> -->
- <el-table-column
- v-if="containPermissions(['business:notice:update', 'business:notice:delete'])"
- label="鎿嶄綔"
- min-width="120"
- fixed="right"
- align="center"
- >
- <template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaNoticeWindow.open('缂栬緫娑堟伅閫氱煡', row)" icon="el-icon-edit" v-permissions="['business:notice:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:notice:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaNoticeWindow ref="operaNoticeWindow" @success="handlePageChange"/>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaNoticeWindow from '@/views/meeting/components/OperaNoticeWindow'
-export default {
- name: 'Notice',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaNoticeWindow },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- id: '',
- creatorName: '',
- createDate: '',
- editor: '',
- editDate: '',
- isdeleted: '',
- remark: '',
- memberId: '',
- title: '',
- content: '',
- objId: '',
- objType: '',
- type: '',
- status: ''
- }
- }
- },
- created () {
- this.config({
- module: '娑堟伅閫氱煡淇℃伅琛�',
- api: '@/views/meeting/api/notice',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- }
-}
-</script>
diff --git a/admin/src/views/meeting/projects.vue b/admin/src/views/meeting/projects.vue
deleted file mode 100644
index b0d02c6..0000000
--- a/admin/src/views/meeting/projects.vue
+++ /dev/null
@@ -1,131 +0,0 @@
-<template>
- <TableLayout :permissions="['business:projects:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <!-- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="涓婚敭" prop="id">
- <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ヤ富閿�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
- <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
- <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
- </el-form-item>
- <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
- <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
- <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
- </el-form-item>
- <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
- <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <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="remark">
- <el-input v-model="searchForm.remark" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍥炬爣" prop="imgurl">
- <el-input v-model="searchForm.imgurl" placeholder="璇疯緭鍏ュ浘鏍�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
- <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鎺掑簭鐮佸崌搴�" prop="sortnum">
- <el-input v-model="searchForm.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜鍗囧簭" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <section>
- <el-button type="primary" @click="search">鎼滅储</el-button>
- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:projects:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
- <el-button @click="reset">閲嶇疆</el-button>
- </section>
- </el-form> -->
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:projects:create', 'business:projects:delete']">
- <li><el-button type="primary" @click="$refs.operaProjectsWindow.open('鏂板缓鏈嶅姟椤圭洰')" icon="el-icon-plus" v-permissions="['business:projects:create']">鏂板缓</el-button></li>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column label="鍥炬爣" align="center" min-width="100px">
- <template slot-scope="{row}">
- <!-- {{ row.imgurlfull }} -->
- <el-image
- v-if="!!row.imgurlfull"
- style="width: 40px; height: 40px;"
- :src="row.imgurlfull"
- :preview-src-list="[row.imgurlfull]"
- ></el-image>
- </template>
- </el-table-column>
- <el-table-column prop="name" label="鍚嶇О" align="center" min-width="100px"></el-table-column>
- <el-table-column prop="sortnum" label="鎺掑簭鐮�(鍗囧簭)" align="center" min-width="100px"></el-table-column>
- <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" align="center" min-width="100px"></el-table-column>
- <el-table-column prop="editDate" label="鏇存柊鏃堕棿" align="center" min-width="100px"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:projects:update', 'business:projects:delete'])"
- label="鎿嶄綔"
- min-width="120"
- align="center"
- >
- <template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaProjectsWindow.open('缂栬緫鏈嶅姟椤圭洰', row)" icon="el-icon-edit" v-permissions="['business:projects:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:projects:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaProjectsWindow ref="operaProjectsWindow" @success="handlePageChange"/>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaProjectsWindow from '@/views/meeting/components/OperaProjectsWindow'
-export default {
- name: 'Projects',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaProjectsWindow },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- id: '',
- creator: '',
- createDate: '',
- editor: '',
- editDate: '',
- isdeleted: '',
- name: '',
- remark: '',
- imgurl: '',
- status: '',
- sortnum: ''
- }
- }
- },
- created () {
- this.config({
- module: '鏈嶅姟椤圭洰淇℃伅琛�',
- api: '/meeting/projects',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- }
-}
-</script>
diff --git a/admin/src/views/meeting/roomRecord.vue b/admin/src/views/meeting/roomRecord.vue
deleted file mode 100644
index f2020b1..0000000
--- a/admin/src/views/meeting/roomRecord.vue
+++ /dev/null
@@ -1,154 +0,0 @@
-<template>
- <TableLayout :permissions="['business:roomrecord:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="浼氳瀹�" prop="roomId">
- <el-select
- v-model="searchForm.roomId"
- filterable
- clearable
- placeholder="璇烽�夋嫨浼氳瀹�"
- >
- <el-option v-for="item in rooms" :key="item.id" :value="item.id" :label="item.name" />
- </el-select>
- </el-form-item>
- <el-form-item label="浜哄憳濮撳悕" prop="name">
- <el-input v-model="searchForm.userName" placeholder="璇疯緭鍏ヤ汉鍛樺鍚�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="浼氳涓婚" prop="name">
- <el-input v-model="searchForm.meeting" placeholder="璇疯緭鍏ヤ細璁富棰�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="绫诲瀷" prop="status">
- <el-select v-model= "searchForm.objType" placeholder="璇烽�夋嫨鐘舵��">
- <el-option key="0" value="0" label="绠$悊鍛�" />
- <el-option key="1" value="1" label="鍙備細浜哄憳" />
- <el-option key="2" value="2" label="澶栭儴浜哄憳" />
- </el-select>
- </el-form-item>
- <el-form-item label="寮�闂ㄦ椂闂�" prop="startTime">
- <el-date-picker
- v-model="date"
- type="datetimerange"
- range-separator="鑷�"
- value-format="yyyy-MM-dd HH:mm:ss"
- start-placeholder="寮�濮嬫椂闂�"
- end-placeholder="缁撴潫鏃堕棿"
- @change="selectDate"
- ></el-date-picker>
- <!-- <el-date-picker v-model="searchForm.startTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ紑濮嬫椂闂�" @change="search"/> -->
- </el-form-item>
- <section>
- <el-button type="primary" @click="search">鎼滅储</el-button>
- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:roomrecord:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
- <el-button @click="reset">閲嶇疆</el-button>
- </section>
- </el-form>
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
-<!-- <ul class="toolbar" v-permissions="['business:roomrecord:create', 'business:roomrecord:delete']">
- <li><el-button type="primary" @click="$refs.operaRoomRecordWindow.open('鏂板缓浼氳瀹ゅ紑闂ㄨ褰曡〃')" icon="el-icon-plus" v-permissions="['business:roomrecord:create']">鏂板缓</el-button></li>
- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:roomrecord:delete']">鍒犻櫎</el-button></li>
- </ul>-->
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column label="浜哄憳濮撳悕" prop="userName" min-width="100px"></el-table-column>
- <el-table-column label="浜哄憳绫诲瀷" prop="objType" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.objType==0" >绠$悊鍛�</span>
- <span v-else-if="row.objType==1">鍙備細浜哄憳</span>
- <span v-else >澶栭儴浜哄憳</span>
- </template>
- </el-table-column>
- <el-table-column label="浼氳涓婚" prop="meeting" min-width="100px"></el-table-column>
- <el-table-column label="浼氳瀹�" prop="roomName" min-width="100px"></el-table-column>
- <el-table-column prop="createDate" label="寮�闂ㄦ椂闂�" min-width="100px"></el-table-column>
-<!-- <el-table-column
- v-if="containPermissions(['business:roomrecord:update', 'business:roomrecord:delete'])"
- label="鎿嶄綔"
- min-width="120"
- fixed="right"
- >
- <template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaRoomRecordWindow.open('缂栬緫浼氳瀹ゅ紑闂ㄨ褰曡〃', row)" icon="el-icon-edit" v-permissions="['business:roomrecord:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:roomrecord:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>-->
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaRoomRecordWindow ref="operaRoomRecordWindow" @success="handlePageChange"/>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaRoomRecordWindow from '@/views/meeting/components/OperaRoomRecordWindow'
-import { findList } from '@/api/meeting/rooms'
-export default {
- name: 'RoomRecord',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaRoomRecordWindow },
- data () {
- return {
- date:[],
- // 鎼滅储
- rooms: [
- { name: '201浼氳瀹�', id: '0' }
- ],
- // 鎼滅储
- searchForm: {
- userName: '',
- roomId: '',
- meeting: '',
- objType:null,
- startDate: null,
- endDate: null,
- }
- }
- },
- created () {
- this.config({
- module: '浼氳瀹ゅ紑闂ㄨ褰曡〃',
- api: '/meeting/roomRecord',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- findList({})
- .then(res => {
- this.rooms = res
- })
- this.search()
- },
- methods: {
- selectDate(v) {
- this.searchForm.endDate = v[1]
- this.searchForm.startDate = v[0]
- },
- reset () {
- this.$refs.searchForm.resetFields()
- this.date = []
- this.searchForm = {
- userName: '',
- roomId: '',
- meeting: '',
- objType:null,
- startDate: null,
- endDate: null,
- }
- this.search()
- }
- }
-}
-</script>
diff --git a/admin/src/views/meeting/roomStatistics.vue b/admin/src/views/meeting/roomStatistics.vue
deleted file mode 100644
index 1ab4e4f..0000000
--- a/admin/src/views/meeting/roomStatistics.vue
+++ /dev/null
@@ -1,229 +0,0 @@
-<template>
- <TableLayout :permissions="['business:rooms:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="80px" 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="roomId">
- <el-select
- v-model="searchForm.roomId"
- filterable
- clearable
- placeholder="璇烽�夋嫨浼氳瀹�"
- >
- <el-option
- v-for="item in rooms"
- :key="item.id"
- :value="item.id"
- :label="item.name"
- />
- </el-select>
- </el-form-item> -->
- <el-form-item label="骞翠唤" prop="yearNum">
- <!-- <div @click="selectMemberAction">
- <el-input v-model="searchForm.id" disabled placeholder="閫夋嫨閮ㄩ棬鎴愬憳"></el-input>
- </div> -->
- <!-- {{ searchForm.sysList }} -->
- <el-select
- v-model="searchForm.yearNum"
- clearable
- placeholder="閫夋嫨閮ㄩ棬鎴愬憳"
- >
- <el-option
- v-for="item in years"
- :key="item"
- :value="item"
- :label="`${item}骞碻"
- ></el-option>
- <!-- <el-option :key="1" :value="1" label="绂佺敤" /> -->
- </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:rooms:create', 'business:rooms:delete']">
- <li><el-button :loading="isWorking.export" v-permissions="['business:rooms:exportExcel']" @click="exportExcel">瀵煎嚭</el-button></li>
- <!-- <li><el-button type="primary" @click="$refs.operaRoomsWindow.open('鏂板缓浼氳瀹�')" v-permissions="['business:rooms:create']">鏂板缓</el-button></li>
- <li><el-button @click="deleteByIdInBatch" v-permissions="['business:rooms:delete']">鍒犻櫎</el-button></li> -->
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column prop="roomName" label="浼氳瀹�" align="center" min-width="120px"></el-table-column>
- <el-table-column prop="januaryCount" label="涓�鏈�" align="center" min-width="80px">
- <template slot-scope="{row}">
- {{ `${row.januaryCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="浜屾湀" align="center" min-width="80px">
- <template slot-scope="{row}">
- {{ `${row.februaryCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="涓夋湀" align="center" min-width="80px">
- <template slot-scope="{row}">
- {{ `${row.marchCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="鍥涙湀" align="center" min-width="80px">
- <template slot-scope="{row}">
- {{ `${row.aprilCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="浜旀湀" align="center" min-width="80px">
- <template slot-scope="{row}">
- {{ `${row.mayCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="鍏湀" align="center" min-width="80px">
- <template slot-scope="{row}">
- {{ `${row.juneCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="涓冩湀" align="center" min-width="80px">
- <template slot-scope="{row}">
- {{ `${row.julyCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="鍏湀" align="center" min-width="80px">
- <template slot-scope="{row}">
- {{ `${row.augustCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="涔濇湀" align="center" min-width="80px">
- <template slot-scope="{row}">
- {{ `${row.septemberCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="鍗佹湀" align="center" min-width="80px">
- <template slot-scope="{row}">
- {{ `${row.octoberCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="鍗佷竴鏈�" align="center" min-width="80px">
- <template slot-scope="{row}">
- {{ `${row.novemberCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="鍗佷簩鏈�" align="center" min-width="80px">
- <template slot-scope="{row}">
- {{ `${row.decemberCount}H` }}
- </template>
- </el-table-column>
-
- </el-table>
- </template>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import { getRoomStatistics, exportRoomStatistics } from '@/api/meeting/bookings'
-// import { findList } from '@/api/meeting/rooms'
-export default {
- name: 'Rooms',
- extends: BaseTable,
- components: { TableLayout, },
- data () {
- return {
- years: [
- '2021', '2022', '2023'
- ],
- rooms: [],
- // 鎼滅储
- searchForm: {
- yearNum: '',
- roomId: ''
- }
- }
- },
-
- created () {
- this.config({
- module: '浼氳瀹や俊鎭〃',
- api: '/meeting/rooms',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- // findList({})
- // .then(res => {
- // this.rooms = res
- // })
- let tempYear = new Date().getFullYear()
- this.searchForm.yearNum = tempYear
- this.years = [tempYear-2, tempYear-1, tempYear]
- this.search()
- },
- methods: {
- // 瀵煎嚭Excel
- exportExcel () {
- this.__checkApi()
- this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
- .then(() => {
- this.isWorking.export = true
- exportRoomStatistics({
- page: this.tableData.pagination.pageIndex,
- capacity: 1000000,
- model: this.searchForm,
- sorts: this.tableData.sorts
- })
- .then(response => {
- this.download(response)
- })
- .catch(e => {
- // this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.isWorking.export = false
- })
- })
- .catch(() => {})
- },
- // 椤电爜鍙樻洿澶勭悊
- handlePageChange () {
- this.isWorking.search = true
- getRoomStatistics(this.searchForm.yearNum, this.searchForm.roomId)
- .then(data => {
- this.tableData.list = data
- // this.tableData.pagination.total = data.total
- })
- .catch(e => {
- // this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.isWorking.search = false
- })
- },
- // selectMemberAction() {
- // console.log('21212');
- // this.$refs.selectMember.open('閫夋嫨绠$悊鍛�')
- // },
- changeStatus(item) {
- updateById({
- id: item.id,
- status: item.status
- }).then(res => {
- this.search()
- })
- }
- },
-}
-</script>
-
-<style scoped>
-::v-deep .el-input.is-disabled .el-input__inner {
- background-color: #fff !important;
- cursor: pointer;
-}
-</style>
diff --git a/admin/src/views/meeting/rooms.vue b/admin/src/views/meeting/rooms.vue
deleted file mode 100644
index 5380f67..0000000
--- a/admin/src/views/meeting/rooms.vue
+++ /dev/null
@@ -1,240 +0,0 @@
-<template>
- <TableLayout :permissions="['business:rooms: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="sysList">
- <el-select
- v-model="searchForm.sysList"
- filterable
- clearable
- multiple
- style="width: 250px"
- placeholder="閫夋嫨閮ㄩ棬鎴愬憳"
- >
- <el-option
- v-for="item in userList"
- :key="item.id"
- :value="item.id"
- :label="item.companyId?`${item.companyName}-${item.companyName}`:item.realname"
- ></el-option>
- <!-- :label="`${item.department.name}-${item.realname}`" -->
- <!-- <el-option :key="1" :value="1" label="绂佺敤" /> -->
- </el-select>
- </el-form-item>
-
- <section>
- <el-button type="primary" @click="search">鎼滅储</el-button>
- <!-- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:rooms:exportExcel']" @click="exportExcel">瀵煎嚭</el-button> -->
- <el-button @click="reset">閲嶇疆</el-button>
- </section>
- </el-form>
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:rooms:create']">
- <li><el-button type="primary" @click="$refs.operaRoomsWindow.open('鏂板缓浼氳瀹�')" v-permissions="['business:rooms:create']">鏂板缓</el-button></li>
- <!-- <li><el-button @click="deleteByIdInBatch" v-permissions="['business:rooms:delete']">鍒犻櫎</el-button></li> -->
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <!-- <el-table-column type="selection" width="55"></el-table-column> -->
- <el-table-column prop="id" label="鍞竴鏍囪瘑" align="center" min-width="80px" show-overflow-tooltip>
- <template slot-scope="{row}">
- <span class="long-title-style">{{ row.id }}</span>
- </template>
- </el-table-column>
- <el-table-column prop="name" label="浼氳瀹ゅ悕绉�" align="center" min-width="120px" show-overflow-tooltip>
- <template slot-scope="{row}">
- <span class="long-title-style">{{ row.name }}</span>
- </template>
- </el-table-column>
- <el-table-column prop="startTime" label="寮�鏀炬椂闂�" align="center" min-width="120px">
- <template slot-scope="{row}">
- {{ `${row.startTime}-${row.endTime}` }}
- </template>
- </el-table-column>
- <el-table-column prop="intervalTime" label="绮掑害锛堝垎閽燂級" align="center" min-width="100px"></el-table-column>
- <el-table-column prop="limitNum" label="瀹圭撼浜烘暟" align="center" min-width="100px"></el-table-column>
- <el-table-column prop="limitNum" label="绠$悊鍛�" min-width="140px" align="center" show-overflow-tooltip>
- <template slot-scope="{row}">
- <span class="long-title-style">{{ row.sysList.map(item => item.realName).join(',') }}</span>
-
- <!-- <ul>
- <li v-for="sys in row.sysList" :key="sys.id">{{sys.realName}}</li>
- </ul> -->
- </template>
- </el-table-column>
- <el-table-column prop="limitNum" label="鍙�夋湇鍔¢」" align="center" min-width="140px" show-overflow-tooltip>
- <template slot-scope="{row}">
- <div class="long-title-style">{{ row.projectList.map(item => item.projectName).join(' | ') }}</div>
-
- </template>
- </el-table-column>
- <el-table-column prop="status" label="鐘舵��" align="center" min-width="100px">
- <template slot-scope="{row}">
- <el-switch
- v-model="row.status"
- active-color="#13ce66"
- inactive-color="#999"
- :active-value="0"
- :inactive-value="1"
- @change="changeStatus(row)"
- ></el-switch>
- </template>
- </el-table-column>
- <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" align="center" min-width="140px"></el-table-column>
- <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="140px"></el-table-column>
- <!-- <el-table-column prop="editor" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
- <el-table-column prop="isdeleted" label="鏄惁鍒犻櫎0鍚� 1鏄�" min-width="100px"></el-table-column>
- <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
- <el-table-column prop="imgurl" label="浼氳瀹ゅ浘鐗�" min-width="100px"></el-table-column>
- <el-table-column prop="tips" label="浣跨敤椤荤煡" min-width="100px"></el-table-column>
- <el-table-column prop="status" label="鐘舵�� 0鍚敤 1绂佺敤" min-width="100px"></el-table-column> -->
- <el-table-column
- v-if="containPermissions(['business:rooms:update', 'business:rooms:delete'])"
- label="鎿嶄綔"
- min-width="120"
- fixed="right"
- >
- <template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaRoomsWindow.open('缂栬緫浼氳瀹�', row)" v-permissions="['business:rooms:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" v-permissions="['business:rooms:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- ></pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaRoomsWindow ref="operaRoomsWindow" @success="handlePageChange"/>
- <!-- <selectMember ref="selectMember" @done=""/> -->
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaRoomsWindow from '@/views/meeting/components/OperaRoomsWindow'
-import { fetchList as userList } from '@/api/system/user'
-// import selectMember from '@/components/meeting/selectMember'
-import { updateStatusById } from '@/api/meeting/rooms'
-export default {
- name: 'Rooms',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaRoomsWindow },
- data () {
- return {
- userList: [],
- // 鎼滅储
- searchForm: {
- id: '',
- creator: '',
- createDate: '',
- editor: '',
- editDate: '',
- isdeleted: '',
- name: '',
- remark: '',
- startTime: '',
- endTime: '',
- limitNum: '',
- imgurl: '',
- tips: '',
- status: '',
- intervalTime: '',
- sysList: []
- }
- }
- },
- provide () {
- return {
- userList: () => this.userList
- }
- },
- created () {
- this.config({
- module: '浼氳瀹や俊鎭〃',
- api: '/meeting/rooms',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- userList({
- page: 1,
- capacity: 9999,
- memberType: 2,
- model: { realname: this.filterText }
- })
- .then(res => {
- this.userList = res.records
- })
- this.search()
- },
- methods: {
- // 椤电爜鍙樻洿澶勭悊
- handlePageChange (pageIndex) {
- this.__checkApi()
- this.tableData.pagination.pageIndex = pageIndex || this.tableData.pagination.pageIndex
- this.isWorking.search = true
- let sysList = [...this.searchForm.sysList]
- sysList = sysList.map(item => {
- return { userId: item }
- })
- console.log(sysList)
- this.api.fetchList({
- page: this.tableData.pagination.pageIndex,
- capacity: this.tableData.pagination.pageSize,
- model: {
- ...this.searchForm,
- sysList
- },
- sorts: this.tableData.sorts
- })
- .then(data => {
- this.tableData.list = data.records
- this.tableData.pagination.total = data.total
- })
- .catch(e => {
- // this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.isWorking.search = false
- })
- },
- // selectMemberAction() {
- // console.log('21212');
- // this.$refs.selectMember.open('閫夋嫨绠$悊鍛�')
- // },
- changeStatus (item) {
- updateStatusById({
- id: item.id,
- status: item.status
- })
- .then(() => {
- this.$message.success('淇敼鎴愬姛')
- })
- .catch(e => {
- })
- .finally(() => {
- this.handlePageChange()
- })
- }
- }
-}
-</script>
-
-<style scoped>
-::v-deep .el-input.is-disabled .el-input__inner {
- background-color: #fff !important;
- cursor: pointer;
-}
-</style>
diff --git a/admin/src/views/meeting/userStatistics.vue b/admin/src/views/meeting/userStatistics.vue
deleted file mode 100644
index 22722a3..0000000
--- a/admin/src/views/meeting/userStatistics.vue
+++ /dev/null
@@ -1,244 +0,0 @@
-<template>
- <TableLayout :permissions="['business:rooms:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="浜哄憳" prop="userId">
- <el-select
- v-model="searchForm.userId"
- clearable
- filterable
- placeholder="閫夋嫨浜哄憳"
- >
- <el-option
- v-for="item in sysList"
- :key="item.id"
- :value="item.id"
- :label="item.department?`${item.department.name}-${item.realname}`:item.realname"
- ></el-option>
- <!-- :label="item.name" -->
- </el-select>
- </el-form-item>
- <el-form-item label="骞翠唤" prop="yearNum">
- <el-select
- v-model="searchForm.yearNum"
- clearable
- placeholder="閫夋嫨骞翠唤"
- >
- <el-option
- v-for="item in years"
- :key="item"
- :value="item"
- :label="`${item}骞碻"
- ></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>
- <!-- v-permissions="['business:rooms:create', 'business:rooms:delete']" -->
- <ul class="toolbar" >
- <!-- v-permissions="['business:rooms:exportExcel']" -->
- <li><el-button :loading="isWorking.export" @click="exportExcel">瀵煎嚭</el-button></li>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <!-- <el-table-column prop="roomName" label="浼氳瀹�" align="center" min-width="100px"></el-table-column> -->
- <el-table-column prop="realname" label="濮撳悕" align="center" min-width="100px"></el-table-column>
- <el-table-column prop="januaryCount" label="涓�鏈�" align="center" min-width="120px">
- <template slot-scope="{row}">
- {{ `${row.januaryCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="浜屾湀" align="center" min-width="120px">
- <template slot-scope="{row}">
- {{ `${row.februaryCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="涓夋湀" align="center" min-width="120px">
- <template slot-scope="{row}">
- {{ `${row.marchCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="鍥涙湀" align="center" min-width="120px">
- <template slot-scope="{row}">
- {{ `${row.aprilCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="浜旀湀" align="center" min-width="120px">
- <template slot-scope="{row}">
- {{ `${row.mayCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="鍏湀" align="center" min-width="120px">
- <template slot-scope="{row}">
- {{ `${row.juneCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="涓冩湀" align="center" min-width="120px">
- <template slot-scope="{row}">
- {{ `${row.julyCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="鍏湀" align="center" min-width="120px">
- <template slot-scope="{row}">
- {{ `${row.augustCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="涔濇湀" align="center" min-width="120px">
- <template slot-scope="{row}">
- {{ `${row.septemberCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="鍗佹湀" align="center" min-width="120px">
- <template slot-scope="{row}">
- {{ `${row.octoberCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="鍗佷竴鏈�" align="center" min-width="120px">
- <template slot-scope="{row}">
- {{ `${row.novemberCount}H` }}
- </template>
- </el-table-column>
- <el-table-column prop="januaryCount" label="鍗佷簩鏈�" align="center" min-width="120px">
- <template slot-scope="{row}">
- {{ `${row.decemberCount}H` }}
- </template>
- </el-table-column>
-
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- ></pagination>
- </template>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import { getUserStatistics, exportUserStatistics } from '@/api/meeting/bookings'
-import { fetchList as userList } from '@/api/system/user'
-
-export default {
- name: 'Rooms',
- extends: BaseTable,
- components: { TableLayout, Pagination },
- data () {
- return {
- years: [
- '2021', '2022', '2023'
- ],
- sysList: [],
- // 鎼滅储
- searchForm: {
- yearNum: '',
- userId: ''
- }
- }
- },
-
- created () {
- this.config({
- module: '浼氳瀹や俊鎭〃',
- api: '/meeting/rooms',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- let tempYear = new Date().getFullYear()
- this.searchForm.yearNum = tempYear
- this.years = [tempYear-2, tempYear-1, tempYear]
-
- // findList({})
- // .then(res => {
- // this.rooms = res
- // })
- userList({
- page: 1,
- capacity: 9999,
- model: { realname: this.filterText, companyType: 1 },
- })
- .then(res => {
- console.log('userList', res);
- this.sysList = res.records
- })
- this.search()
- },
- methods: {
- // 瀵煎嚭Excel
- exportExcel () {
- this.__checkApi()
- this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
- .then(() => {
- this.isWorking.export = true
- exportUserStatistics({
- page: this.tableData.pagination.pageIndex,
- capacity: 1000000,
- model: this.searchForm,
- sorts: this.tableData.sorts
- })
- .then(response => {
- this.download(response)
- })
- .catch(e => {
- // this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.isWorking.export = false
- })
- })
- .catch(() => {})
- },
- handlePageChange (pageIndex) {
- this.__checkApi()
- this.tableData.pagination.pageIndex = pageIndex || this.tableData.pagination.pageIndex
- this.isWorking.search = true
- getUserStatistics({
- page: this.tableData.pagination.pageIndex,
- capacity: this.tableData.pagination.pageSize,
- model: this.searchForm,
- sorts: this.tableData.sorts
- })
- .then(data => {
- this.tableData.list = data.records
- this.tableData.pagination.total = data.total
- })
- .catch(e => {
- // this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.isWorking.search = false
- })
- },
- // selectMemberAction() {
- // console.log('21212');
- // this.$refs.selectMember.open('閫夋嫨绠$悊鍛�')
- // },
- changeStatus(item) {
- updateById({
- id: item.id,
- status: item.status
- }).then(res => {
- this.search()
- })
- }
- },
-}
-</script>
-
-<style scoped>
-::v-deep .el-input.is-disabled .el-input__inner {
- background-color: #fff !important;
- cursor: pointer;
-}
-</style>
diff --git a/admin/src/views/platform/LogisticsRecord/screen.vue b/admin/src/views/operation/category.vue
similarity index 100%
copy from admin/src/views/platform/LogisticsRecord/screen.vue
copy to admin/src/views/operation/category.vue
diff --git a/admin/src/views/operation/danger/areaSet.vue b/admin/src/views/operation/danger/areaSet.vue
deleted file mode 100644
index 6423fdc..0000000
--- a/admin/src/views/operation/danger/areaSet.vue
+++ /dev/null
@@ -1,88 +0,0 @@
-<template>
- <TableLayout :permissions="['business:member:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="120px" inline>
- <el-form-item label="闅愭偅鍖哄煙" prop="name">
- <el-input v-model="searchForm.name" clearable placeholder="璇疯緭鍏ラ殣鎮e尯鍩�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="璐d换閮ㄩ棬" prop="companyName">
- <el-input v-model="searchForm.companyName" clearable 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:hiddendangerparam:create','business:hiddendangerparam:delete']">
- <li><el-button type="primary" @click="$refs.OperaHiddenDangerParamWindow.open('鏂板缓闅愭偅鍖哄煙',null,searchForm.type)" icon="el-icon-plus" v-permissions="['business:hiddendangerparam:create']">鏂板缓</el-button></li>
- <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:hiddendangerparam:delete']">鎵归噺鍒犻櫎</el-button></li>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="name" label="闅愭偅鍖哄煙" min-width="120px"></el-table-column>
- <el-table-column prop="companyName" label="璐d换閮ㄩ棬" min-width="120px"></el-table-column>
- <el-table-column prop="sortnum" label="鎺掑簭鐮�" min-width="70px"></el-table-column>
- <el-table-column prop="memberNames" label="瀹夊叏鍛�" min-width="80px"></el-table-column>
- <el-table-column prop="editDate" label="鎿嶄綔鏃堕棿" min-width="160px"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:hiddendangerparam:update', 'business:hiddendangerparam:delete' ])"
- label="鎿嶄綔"
- min-width="140"
- fixed="right"
- >
- <template slot-scope="{row}">
- <el-button type="text" icon="el-icon-edit" @click="$refs.OperaHiddenDangerParamWindow.open('缂栬緫闅愭偅鍖哄煙',row,searchForm.type)" v-permissions="['business:hiddendangerparam:update']">缂栬緫</el-button>
- <el-button type="text" icon="el-icon-delete" @click="deleteById(row)" style="color: red" v-permissions="['business:hiddendangerparam:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaHiddenDangerParamWindow ref="OperaHiddenDangerParamWindow" @success="handlePageChange"/>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaHiddenDangerParamWindow from '@/components/business/OperaHiddenDangerParamWindow'
-export default {
- name: 'areaSet',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaHiddenDangerParamWindow },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- name: '',
- type:0
- }
- }
- },
- created () {
- this.config({
- module: '闅愭偅闅忔墜鎷嶉厤缃�',
- api: '/business/hiddenDangerParam',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- },
- methods: {
- }
-}
-</script>
diff --git a/admin/src/views/operation/danger/record.vue b/admin/src/views/operation/danger/record.vue
deleted file mode 100644
index 5b60581..0000000
--- a/admin/src/views/operation/danger/record.vue
+++ /dev/null
@@ -1,234 +0,0 @@
-<template>
- <TableLayout :permissions="['business:empower:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="鎻愭姤浜�" prop="memberName">
- <el-input v-model="searchForm.memberName" placeholder="璇疯緭鍏ュ鍚�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鎻愭姤浜虹粍缁�" prop="companyName">
- <el-input v-model="searchForm.companyName" placeholder="璇疯緭鍏�" clearable @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="璐d换閮ㄩ棬" prop="dutyCompanyName">
- <el-input v-model="searchForm.dutyCompanyName" placeholder="璇疯緭鍏ヨ矗浠婚儴闂�" clearable @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="闅愭偅鍖哄煙" prop="areaId">
- <el-select v-model="searchForm.areaId" placeholder="璇烽�夋嫨闅愭偅鍖哄煙" clearable @change="search">
- <el-option
- v-for="item in areaList"
- :key="item.id"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="闅愭偅绫诲瀷" prop="cateId">
- <el-select v-model="searchForm.cateId" placeholder="璇烽�夋嫨闅愭偅绫诲瀷" clearable @change="search">
- <el-option
- v-for="item in cateList"
- :key="item.id"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="鐘舵��" prop="status">
- <el-select v-model="searchForm.status" @change="search" clearable 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>
- <el-form-item label="鎻愭姤鏃堕棿" prop="startTime">
- <el-date-picker
- @change="seleTime"
- v-model="time"
- @keypress.enter.native="search"
- type="datetimerange"
- format="yyyy-MM-dd HH:mm:ss"
- value-format="yyyy-MM-dd HH:mm:ss"
- :default-time="['00:00:00', '23:59:59']"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡">
- </el-date-picker>
- </el-form-item>
- <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio">
- <el-radio-button label="0">褰撳ぉ</el-radio-button>
- <el-radio-button label="1">杩�7澶�</el-radio-button>
- <el-radio-button label="2">杩�30澶�</el-radio-button>
- </el-radio-group>
- <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:hiddendanger:create', 'business:hiddendanger:exportExcel']">
- <li><el-button type="primary" icon="el-icon-plus" v-permissions="['business:hiddendanger:create']" @click="handleEdit">鏂板缓</el-button></li>
- <li><el-button type="primary" v-permissions="['business:hiddendanger:exportExcel']" @click="handleEx">瀵煎嚭</el-button></li>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="dutyCompanyName" label="璐d换閮ㄩ棬" min-width="150px"></el-table-column>
- <el-table-column prop="areaName" label="闅愭偅鍖哄煙" min-width="150px"></el-table-column>
- <el-table-column prop="categoryName" label="闅愭偅绫诲瀷" min-width="150px"></el-table-column>
- <el-table-column prop="memberName" label="鎻愭姤浜�" min-width="80px"></el-table-column>
- <el-table-column prop="companyName" label="鎵�灞炵粍缁�" min-width="150px"></el-table-column>
- <el-table-column prop="createDate" label="鎻愭姤鏃堕棿" min-width="150px"></el-table-column>
- <el-table-column label="澶勭悊缁撴灉" min-width="100px">
- <template slot-scope="{row}">
- <span class="status-blue" v-if="row.status === 0">寰呭鐞�</span>
- <span class="status-green" v-if="row.status === 1">宸插鐞�</span>
- <span class="status-red" v-if="row.status === 2">宸查��鍥�</span>
- </template>
- </el-table-column>
- <el-table-column prop="editDate" label="鎿嶄綔鏃堕棿" min-width="150px"></el-table-column>
- <el-table-column
- label="鎿嶄綔"
- min-width="100"
- fixed="right"
- >
- <template slot-scope="{row}">
- <el-button type="text" icon="el-icon-edit" @click="$refs.OperaHiddenDangerWindow.open('闅愭偅闅忔墜鎷嶈鎯�',row)" >鏌ョ湅璇︽儏</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- <OperaHiddenDangerWindow ref="OperaHiddenDangerWindow" @success="handlePageChange"/>
- <!-- 鏂板缓 -->
- <HiddenDangerParam @close="isShowEdit = false" @success="search" v-if="isShowEdit" ref="HiddenDangerParamRef" />
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaHiddenDangerWindow from '@/components/business/OperaHiddenDangerWindow'
-import HiddenDangerParam from '@/components/operation/HiddenDangerParam.vue'
-import { timeForMat } from '@/utils/util'
-import { allList, exportExcel } from '@/api/business/hiddenDangerParam'
-export default {
- name: 'Empower',
- extends: BaseTable,
- components: { TableLayout, Pagination ,OperaHiddenDangerWindow, HiddenDangerParam},
- data () {
- return {
- isShowEdit: false,
- // 鎼滅储
- searchForm: {
- memberName: '',
- companyName: '',
- queryStartTime: '',
- companyName: '',
- queryEndTime: '',
- areaId: null,
- cateId: null,
- status: null,
- radio: 0
- },
- cateList: [],
- areaList: [],
- time: []
- }
- },
- created () {
- this.config({
- module: '闅愭偅闅忔墜鎷嶇鐞�',
- api: '/business/hiddenDanger',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- // this.search()
- this.changeRadio('0')
- this.loadParams()
- },
- methods: {
- handleEx () {
- this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
- .then(() => {
- this.exLoading = true
- exportExcel({
- model: this.searchForm
- })
- .then(response => {
- this.download(response)
- })
- .catch(e => {
- })
- .finally(() => {
- this.exLoading = false
- })
- })
- },
- handleEdit () {
- this.isShowEdit = true
- this.$nextTick(() => {
- this.$refs.HiddenDangerParamRef.isShowModal = true
- })
- },
- changeRadio (e) {
- this.searchForm.radio = e
- if (e === '0') {
- this.searchForm.queryStartTime = timeForMat(0)[0]
- this.searchForm.queryEndTime = timeForMat(0)[1]
- this.time = timeForMat(0)
- } else if (e === '1') {
- this.searchForm.queryStartTime = timeForMat(6)[0]
- this.searchForm.queryEndTime = timeForMat(6)[1]
- this.time = timeForMat(6)
- } else if (e === '2') {
- this.searchForm.queryStartTime = timeForMat(29)[0]
- this.searchForm.queryEndTime = timeForMat(29)[1]
- this.time = timeForMat(29)
- }
- this.search()
- },
- loadParams () {
- allList({
- })
- .then(res => {
- if (res != null && res.length) {
- res.forEach(item => {
- if (item && item.type != null && item.type === 0) {
- this.areaList.push(item)
- }
- if (item && item.type != null && item.type === 1) {
- this.cateList.push(item)
- }
- })
- }
- })
- .catch(e => {
- // this.$tip.apiFailed(e)
- })
- .finally(() => {
- })
- },
- seleTime (e) {
- this.searchForm.queryStartTime = e[0]
- this.searchForm.queryEndTime = e[1]
- this.searchForm.radio = null
- this.search()
- },
- reset () {
- this.$refs.searchForm.resetFields()
- this.searchForm.radio = '0'
- this.changeRadio('0')
- // this.search()
- }
- }
-}
-</script>
diff --git a/admin/src/views/operation/danger/typeSet.vue b/admin/src/views/operation/danger/typeSet.vue
deleted file mode 100644
index 1d5bbb9..0000000
--- a/admin/src/views/operation/danger/typeSet.vue
+++ /dev/null
@@ -1,83 +0,0 @@
-<template>
- <TableLayout :permissions="['business:member:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="120px" inline>
- <el-form-item label="闅愭偅绫诲瀷" prop="name">
- <el-input v-model="searchForm.name" clearable placeholder="璇疯緭鍏ラ殣鎮g被鍨�" @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:hiddendangerparam:create','business:hiddendangerparam:delete']">
- <li><el-button type="primary" @click="$refs.OperaHiddenDangerParamWindow.open('鏂板缓闅愭偅绫诲瀷',null,searchForm.type)" icon="el-icon-plus" v-permissions="['business:hiddendangerparam:create']">鏂板缓</el-button></li>
- <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:hiddendangerparam:delete']">鎵归噺鍒犻櫎</el-button></li>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="name" label="闅愭偅绫诲瀷" min-width="200px"></el-table-column>
- <el-table-column prop="sortnum" label="鎺掑簭鐮�" min-width="100px"></el-table-column>
- <el-table-column prop="editDate" label="鎿嶄綔鏃堕棿" min-width="200px"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:hiddendangerparam:update', 'business:hiddendangerparam:delete' ])"
- label="鎿嶄綔"
- min-width="250"
- fixed="right"
- >
- <template slot-scope="{row}">
- <el-button type="text" icon="el-icon-edit" @click="$refs.OperaHiddenDangerParamWindow.open('缂栬緫闅愭偅绫诲瀷',row,searchForm.type)" v-permissions="['business:hiddendangerparam:update']">缂栬緫</el-button>
- <el-button type="text" icon="el-icon-delete" @click="deleteById(row)" style="color: red" v-permissions="['business:hiddendangerparam:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaHiddenDangerParamWindow ref="OperaHiddenDangerParamWindow" @success="handlePageChange"/>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaHiddenDangerParamWindow from '@/components/business/OperaHiddenDangerParamWindow'
-export default {
- name: 'areaSet',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaHiddenDangerParamWindow },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- name: '',
- type:1
- }
- }
- },
- created () {
- this.config({
- module: '闅愭偅闅忔墜鎷嶉厤缃被鍨�',
- api: '/business/hiddenDangerParam',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- },
- methods: {
- }
-}
-</script>
diff --git a/admin/src/views/platform/LogisticsRecord/screen.vue b/admin/src/views/operation/device.vue
similarity index 100%
copy from admin/src/views/platform/LogisticsRecord/screen.vue
copy to admin/src/views/operation/device.vue
diff --git a/admin/src/views/platform/LogisticsRecord/screen.vue b/admin/src/views/operation/record.vue
similarity index 100%
copy from admin/src/views/platform/LogisticsRecord/screen.vue
copy to admin/src/views/operation/record.vue
diff --git a/admin/src/views/operation/serviceCar/apprConfig.vue b/admin/src/views/operation/serviceCar/apprConfig.vue
deleted file mode 100644
index e42cad6..0000000
--- a/admin/src/views/operation/serviceCar/apprConfig.vue
+++ /dev/null
@@ -1,668 +0,0 @@
-<template>
- <TableLayout>
- <template v-slot:table-wrap>
- <el-tabs v-model="activeType" @tab-click="handleClick">
- <el-tab-pane label="甯傚唴鐢ㄨ溅" name="3"></el-tab-pane>
- <el-tab-pane label="甯傚鐢ㄨ溅" name="4"></el-tab-pane>
- </el-tabs>
- <div class="config">
- <div class="config_list">
- <div class="config_list_head">
- <span>閰嶇疆娴佺▼</span>
- </div>
- <div class="config_content">
- <div class="item">
- <div class="head">鍙戣捣浜�</div>
- <div class="content">鍐呴儴鍛樺伐</div>
- </div>
- <div class="arrows">
- <div class="line"></div>
- <img src="@/assets/images/peizhi_ar@2x.png" alt="" />
- </div>
- <div v-for="(item, index) in apprList" :key="index">
- <div class="item yellow" :class="{
- active: activeIndex == index,
- blue: item.type == '1',
- }" @click="flowClick(index)">
- <div class="head">{{ item.remark }}</div>
- <div class="content">
- <!-- 瀹℃壒 -->
- <template v-if="item.type == 0">
- <template v-if="item.memberType == '2'">
- <div>閮ㄩ棬涓荤</div>
- </template>
- <template v-if="item.memberType == '1'">
- <div v-if="item.objIds && item.objIds.length === 1">
- <span>{{ item.objIds[0].name }}
- {{ item.objIds[0].companyName }}</span>
- <span v-if="item.approveType == 0 && item.type == '0'">
- 鎴栫</span>
- <span v-if="item.approveType == 1 && item.type == '0'">
- 浼氱</span>
- </div>
- <div v-else-if="item.objIds && item.objIds.length > 1">
- <span>{{ item.objIds[0].name }} 绛�</span>
- <span v-if="item.approveType == 0 && item.type == '0'">
- 鎴栫</span>
- <span v-if="item.approveType == 1 && item.type == '0'">
- 浼氱</span>
- </div>
- <div v-else>璇烽�夋嫨</div>
- <i class="el-icon-arrow-right"></i>
- </template>
- </template>
- <!-- 鎶勯�� -->
- <template v-if="item.type == 1">
- <div v-if="item.objIds && item.objIds.length === 1">
- <span>{{ item.objIds[0].name }}
- {{ item.objIds[0].companyName }}</span>
- </div>
- <div v-else-if="item.objIds && item.objIds.length > 1">
- <span>{{ item.objIds[0].name }} 绛�</span>
- </div>
- <div v-else>璇烽�夋嫨</div>
- <i v-if="item.memberType == '1'" class="el-icon-arrow-right"></i>
- </template>
- </div>
- </div>
- <div class="arrows">
- <template v-if="apprList.length - 1 !== index">
- <div class="line"></div>
- <img src="@/assets/images/peizhi_ar@2x.png" alt="" />
- </template>
- <i v-if="apprList.length - 2 === index" @click="handleAddAppr()" class="el-icon-circle-plus add"></i>
- </div>
- </div>
- </div>
- </div>
- <div class="config_data">
- <div class="config_data_item">
- <div class="config_data_item_label">閫夋嫨璇ヨ妭鐐圭殑瀹℃壒浜�</div>
- <div class="df_ac mb10">
- <div>瀹℃壒鑺傜偣鍚嶇О</div>
- <el-input class="w200 ml10" v-model="apprList[activeIndex].remark"></el-input>
- </div>
- <!-- 鎶勯�佷汉 -->
- <template v-if="apprList[activeIndex].type == '1'">
- <div class="config_data_item_reviewed_content">
- <div v-for="mem, memIndex in apprList[activeIndex].objIds" :key="mem.id"
- class="config_data_item_reviewed_content_item">
- <span>{{ mem.name }}</span>
- <i @click="memDel(memIndex)" class="el-icon-close"></i>
- </div>
- <span class="add" @click="selStaff">+娣诲姞</span>
- </div>
- </template>
- <el-radio-group v-if="apprList[activeIndex].type == '0'" v-model="apprList[activeIndex].memberType">
- <!-- <el-radio :label="0">琚浜�</el-radio> -->
- <el-radio :label="1">鎸囧畾浜哄憳</el-radio>
- <el-radio :label="2">閮ㄩ棬涓荤</el-radio>
- </el-radio-group>
- <div class="config_data_item_reviewed" v-if="apprList[activeIndex].memberType == 1">
- <div class="config_data_item_reviewed_label">
- <span>鎸囧畾瀹℃牳浜�</span>
- <span>涓嶈秴杩�20浜�</span>
- </div>
- <div class="config_data_item_reviewed_content">
- <div v-for="(mem, memIndex) in apprList[activeIndex].objIds" :key="mem.id"
- class="config_data_item_reviewed_content_item">
- <span>{{ mem.name }}</span>
- <i class="el-icon-close" @click="memDel(memIndex)"></i>
- </div>
- <span class="add" @click="selStaff">+娣诲姞</span>
- </div>
- </div>
- <div class="config_data_item_reviewed" v-if="apprList[activeIndex].memberType == 2">
- <div class="config_data_item_reviewed_label">
- <span>閮ㄩ棬涓荤</span>
- </div>
- <div class="config_data_item_reviewed_r">
- <span>鐢宠浜虹殑</span>
- <el-select v-model="apprList[activeIndex].objLevel" placeholder="璇烽�夋嫨" style="margin: 0 20px 0 10px">
- <el-option label="鐩存帴涓荤" :value="0" />
- <el-option label="浜岀骇涓荤" :value="1" />
- <el-option label="涓夌骇涓荤" :value="2" />
- <el-option label="鍥涚骇涓荤" :value="4" />
- </el-select>
- <el-checkbox v-model="apprList[activeIndex].noleaderOpt" :true-label="1"
- :false-label="0">鎵句笉鍒颁富绠℃椂锛岀敱涓婄骇涓荤浠e鏍�</el-checkbox>
- </div>
- </div>
- </div>
- <div class="config_data_item" v-if="
- (apprList[activeIndex].memberType == 1 ||
- apprList[activeIndex].memberType == 2) &&
- apprList[activeIndex].type == '0'
- ">
- <div class="config_data_item_label">
- 瀹℃壒鏂瑰紡
- <span>瀹℃壒浜轰负澶氫釜鏃讹紝閲囩敤鐨勫鎵规柟寮�</span>
- </div>
- <el-radio-group v-model="apprList[activeIndex].approveType" style="display: flex; flex-direction: column">
- <el-radio :label="0" style="margin-bottom: 20px">鎴栫锛堝叾涓竴鍚嶅鎵逛汉鍚屾剰鎴栨嫆缁濆嵆鍙級</el-radio>
- <el-radio :label="1">浼氱锛堟墍鏈夊鎵逛汉閮藉悓鎰忔墠鍙�氳繃锛�</el-radio>
- </el-radio-group>
- </div>
- <div v-if="apprList[activeIndex].type == '0'" class="df_ac mb10">
- <div>鍏佽淇敼"椹鹃┒鍛�"</div>
- <el-switch class="ml10" :active-value="1" :inactive-value="0"
- v-model="apprList[activeIndex].driverParam"></el-switch>
- </div>
- <div class="config_data_submit">
- <el-button @click="onSubmit" :loading="subLoading" style="background: #435ebe"
- type="primary">淇濆瓨閰嶇疆椤�</el-button>
- <el-button v-if="activeIndex !== 0 && activeIndex !== apprList.length - 1" type="danger" plain
- @click="handleDel">鍒犻櫎鑺傜偣</el-button>
- </div>3
- </div>
- </div>
- </template>
- <!-- -->
- <el-dialog title="閫夋嫨鍛樺伐" :visible.sync="isShowTransfer" width="1000px">
- <div class="staff_modal">
- <div class="left">
- <div style="
- width: 100%;
- height: 50px;
- background: rgba(242, 242, 242, 1);
- line-height: 50px;
- text-align: center;
- font-size: 14px;
- ">
- 浼佷笟缁勭粐鏋舵瀯
- </div>
- <div style="width: 100%; max-height: 560px; overflow-y: scroll">
- <Tree :list="companyTree" :defaultProps="{
- name: 'name',
- status: 'fsStatus',
- children: 'childList',
- id: 'id',
- }" @callback="callback" />
- </div>
- </div>
- <el-transfer filterable :title="['鏈��', '宸查��']" openAll :props="{ label: 'name', key: 'keyTemp' }"
- filter-placeholder="鎼滅储鍛樺伐" v-model="searchForm.objIds" :data="memberList" class="transfer">
- </el-transfer>
- </div>
- <span slot="footer" class="dialog-footer">
- <el-button @click="isShowTransfer = false">鍙� 娑�</el-button>
- <el-button type="primary" @click="TransferSub">纭� 瀹�</el-button>
- </span>
- </el-dialog>
- </TableLayout>
-</template>
-
-<script>
-import TableLayout from '@/layouts/TableLayout'
-// import treeTransfer from 'el-tree-transfer'
-import Tree from '@/components/common/Tree'
-import { approveTemplSave, approveTemplByType } from '@/api'
-import { fetchList } from '@/api/business/company'
-import { fetchList as memberListPost } from '@/api/business/member'
-export default {
- name: 'config',
- components: {
- TableLayout,
- Tree
- },
- data() {
- return {
- activeType: '3',
- subLoading: false,
- apprList: [
- { remark: '瀹℃壒浜�', active: false, type: '0', objIds: [] },
- { remark: '鎶勯�佷汉', active: false, type: '1', objIds: [] }
- ],
- activeIndex: 0,
-
- param: {},
- searchForm: {},
- isShowTransfer: false,
- memberList: [],
- companyTree: []
- }
- },
- created() {
- this.getfindCompanyTreePage()
- this.initDate()
- },
- methods: {
- handleClick() {
- this.apprList = []
- const arr = [
- { remark: '瀹℃壒浜�', active: false, type: 0, objIds: [] },
- { remark: '鎶勯�佷汉', active: false, type: 1, objIds: [] }
- ]
- this.apprList = [...arr]
- this.initDate()
- },
- flowClick(i) {
- this.activeIndex = i
- this.apprList.forEach((item, index) => {
- if (i === index) {
- item.active = true
- if (item.objIds && item.objIds.length > 0) {
- const objIds = item.objIds.map(i => {
- return `${i.id}-${i.name}${i.companyName ? '-' + i.companyName : ''}`
- })
- this.$set(this.searchForm, 'objIds', objIds)
- } else {
- this.$set(this.searchForm, 'objIds', [])
- }
- } else {
- item.active = false
- }
- })
- },
- initDate() {
- const { activeType } = this
- approveTemplByType(activeType).then(res => {
- if (res && res.paramList) {
- const arr = res.paramList || []
- arr.forEach(item => {
- if (item.memberList && item.memberList.length > 0) {
- item.objIds = item.memberList.map(i => {
- return {
- id: i.id,
- name: i.name,
- companyName: i.companyName
- }
- })
- } else {
- item.objIds = []
- }
- })
- this.apprList = arr
- this.flowClick(0)
- this.$forceUpdate()
- }
-
- // console.log(res);
- })
- },
- onSubmit() {
- const { apprList, activeType } = this
- const temp = JSON.parse(JSON.stringify(apprList))
- temp.forEach((item, index) => {
- item.level = index + 1
- if (item.objIds && item.objIds.length > 0) {
- item.objIds = item.objIds.map(i => i.id).join(',')
- } else {
- item.objIds = ''
- }
- })
- this.subLoading = true
- approveTemplSave({
- type: activeType,
- paramList: temp
- }).then(res => {
- this.subLoading = false
- this.$tip.success('淇濆瓨鎴愬姛')
- }, () => {
- this.subLoading = false
- })
- },
- handleDel() {
- const { activeIndex } = this
- this.apprList.splice(activeIndex, 1)
- this.activeIndex = 0
- },
- handleAddAppr() {
- this.apprList.splice(this.apprList.length - 1, 0, { remark: '瀹℃壒浜�', approveType: 0, active: false, type: 0, objIds: [] })
- // this.apprList.push({ remark: '瀹℃壒浜�', active: false, type: '0' })
- },
-
- // 鑾峰彇缁勭粐鏍�
- getfindCompanyTreePage() {
- fetchList()
- .then(res => {
- if (res && res.length > 0) {
- res[0].fsStatus = 1
- this.companyTree = res
- // // this.searchForm.erpOrgId = res[0].erpId
- // this.search()
- // this.department = this.getDepartmentTree(res)
- }
- })
- },
- getMemberList() {
- memberListPost({
- model: {
- companyId: this.searchForm.companyId || '',
- canVisit: '',
- companyType: 1,
- erpOrgId: '',
- hasFace: '',
- hkStatus: '',
- includeChild: true,
- type: 2
- },
- page: 1,
- capacity: 300
- }).then(res => {
- this.memberList = res.records || []
- this.memberList.forEach(item => {
- item.keyTemp = item.id + '-' + item.name + '-' + item.companyName || ''
- })
- // console.log('defaultProps', res)
- })
- },
- callback(row) {
- console.log(row)
- this.$set(this.searchForm, 'companyId', row.id)
- this.$set(this.searchForm, 'erpOrgId', row.erpId)
- this.getMemberList()
- },
- TransferSub() {
- const { activeIndex } = this
- if (this.searchForm.objIds && this.searchForm.objIds.length > 0) {
- if (this.searchForm.objIds.length > 20) return this.$message.warning('鏈�澶氶�夋嫨20浜�')
- const arr = this.searchForm.objIds.map(ii => {
- const obj = ii.split('-')
- return {
- id: Number(obj[0]),
- name: obj[1],
- companyName: obj[2] || ''
- }
- })
- this.apprList.forEach((item, index) => {
- if (activeIndex === index) {
- item.objIds = arr
- }
- })
- }
- this.isShowTransfer = false
- console.log(this.searchForm.objIds)
- },
- memDel(memIndex) {
- const { activeIndex } = this
- this.apprList.forEach((item, index) => {
- if (activeIndex === index) {
- item.objIds.splice(memIndex, 1)
- const objIds = item.objIds.map(i => {
- return i.id + '-' + i.name
- })
- this.$set(this.searchForm, 'objIds', objIds)
- }
- })
- },
- selStaff() {
- this.isShowTransfer = true
- this.getMemberList()
- },
- seleItem(i) {
- this.list.forEach((item, index) => {
- item.active = index === i
- })
- }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-.config {
- width: 100%;
- padding-bottom: 20px;
- box-sizing: border-box;
- height: calc(100vh - 140px);
- display: flex;
- align-items: center;
- justify-content: space-between;
-
- .config_list {
- width: 543px;
- height: 100%;
- flex-shrink: 0;
- border-radius: 2px;
- padding: 20px;
- box-sizing: border-box;
- border: 1px solid #eeeeee;
- background: #f7f7f7;
-
- .config_list_head {
- width: 100%;
- height: 40px;
- display: flex;
- align-items: center;
- justify-content: space-between;
-
- span {
- font-size: 18px;
- font-weight: 500;
- color: #222222;
- }
- }
-
- .config_content {
- width: 100%;
- height: calc(100% - 40px);
- padding-top: 45px;
- box-sizing: border-box;
- overflow-y: scroll;
- display: flex;
- align-items: center;
- flex-direction: column;
-
- &::-webkit-scrollbar {
- width: 0;
- }
-
- .active {
- border: 2px solid #4456ac !important;
- }
-
- .yellow {
- background: #e89e42 !important;
- }
-
- .blue {
- background: #5094f3 !important;
- }
-
- .arrows {
- display: flex;
- flex-direction: column;
- align-items: center;
- position: relative;
-
- .line {
- width: 1px;
- height: 60px;
- background-color: #ccc;
- }
-
- .add {
- font-size: 40px;
- color: #2080f7;
- position: absolute;
- cursor: pointer;
- z-index: 999;
- top: 10px;
- }
-
- img {
- width: 12px;
- }
- }
-
- .item {
- width: 200px;
- cursor: pointer;
- border: 2px solid #f7f7f7;
- height: 80px;
- background: #4456ac;
- border-radius: 2px;
- position: relative;
- display: flex;
- flex-direction: column;
-
- .head {
- height: 32px;
- line-height: 32px;
- padding: 2px 12px;
- color: #fff;
- }
-
- .content {
- flex: 1;
- background-color: #fff;
- display: flex;
- align-items: center;
- padding: 0 12px;
- justify-content: space-between;
- }
-
- &:last-child {
- margin: 0 !important;
- }
- }
- }
- }
-
- .config_data {
- flex: 1;
- height: 100%;
- margin-left: 20px;
-
- .config_data_submit {
- margin-top: 50px;
- }
-
- .config_data_item {
- width: 100%;
- display: flex;
- flex-direction: column;
- margin-bottom: 30px;
-
- &:last-child {
- margin: 0 !important;
- }
-
- .config_data_item_label {
- font-size: 16px;
- font-weight: 500;
- color: #222222;
- margin-bottom: 20px;
-
- span {
- font-size: 12px;
- font-weight: 400;
- color: #999999;
- margin-left: 10px;
- }
- }
-
- .config_data_item_reviewed {
- width: 100%;
- margin-top: 20px;
-
- .config_data_item_reviewed_r {
- margin-top: 10px;
- width: 100%;
- display: flex;
- align-items: center;
-
- span {
- flex-shrink: 0;
- font-size: 14px;
- font-weight: 400;
- color: #666666;
- }
- }
-
- .config_data_item_reviewed_label {
- display: flex;
- align-items: center;
-
- span {
- &:nth-child(1) {
- font-size: 14px;
- font-weight: 400;
- color: #222222;
- }
-
- &:nth-child(2) {
- font-size: 12px;
- font-weight: 400;
- color: #999999;
- margin-left: 8px;
- }
- }
- }
- }
- }
- }
-}
-
-.config_data_item_reviewed_content {
- width: 400px;
- margin-top: 10px;
- height: 110px;
- padding: 12px;
- box-sizing: border-box;
- border-radius: 2px;
- border: 1px solid #dfe2e8;
- display: flex;
- align-items: flex-start;
- flex-wrap: wrap;
-
- .add {
- font-size: 12px;
- font-weight: 400;
- color: #435ebe;
- cursor: pointer;
- margin-top: 3px;
- }
-
- .config_data_item_reviewed_content_item {
- padding: 3px 5px;
- background: #f4f7fc;
- border-radius: 2px;
- box-sizing: border-box;
- margin-right: 10px;
- margin-bottom: 10px;
-
- span {
- font-size: 12px;
- font-weight: 400;
- color: #333333;
- }
-
- i {
- color: #949ba2;
- margin-left: 10px;
- cursor: pointer;
- }
- }
-}
-
-.staff_modal {
- display: flex;
-
- .left {
- width: 300px;
- margin-right: 20px;
- }
-
- .transfer {
- height: 600px;
- width: 100%;
- display: flex;
- justify-content: center;
- align-items: center;
-
- ::v-deep .el-transfer-panel {
- flex: 1;
- height: 100%;
- }
-
- ::v-deep .el-transfer-panel__body {
- height: 500px;
- }
-
- ::v-deep .el-transfer-panel__list.is-filterable {
- height: 480px;
- }
- }
-}
-</style>
diff --git a/admin/src/views/operation/serviceCar/apprRecord.vue b/admin/src/views/operation/serviceCar/apprRecord.vue
deleted file mode 100644
index 784b850..0000000
--- a/admin/src/views/operation/serviceCar/apprRecord.vue
+++ /dev/null
@@ -1,385 +0,0 @@
-<template>
- <TableLayout :permissions="['business:empower:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form
- ref="searchForm"
- slot="search-form"
- :model="searchForm"
- label-width="100px"
- inline
- >
- <el-form-item label="鐢宠浜�" prop="memberName">
- <el-input
- v-model="searchForm.memberName"
- placeholder="璇疯緭鍏ュ鍚�/鎵嬫満鍙�"
- @keypress.enter.native="search"
- ></el-input>
- </el-form-item>
- <el-form-item label="鐢宠浜虹粍缁�" prop="companyName">
- <el-input
- v-model="searchForm.companyName"
- placeholder="璇疯緭鍏ョ敵璇蜂汉缁勭粐"
- clearable
- @keypress.enter.native="search"
- ></el-input>
- </el-form-item>
- <el-form-item label="杞︾墝鍙�" prop="carCode">
- <el-input
- v-model="searchForm.carCode"
- placeholder="璇疯緭鍏ヨ溅鐗屽彿"
- clearable
- @keypress.enter.native="search"
- ></el-input>
- </el-form-item>
- <el-form-item label="鐘舵��" prop="status">
- <el-select
- v-model="searchForm.status"
- @change="search"
- clearable
- 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="3"></el-option>
- <el-option label="宸叉挙閿�" value="4"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="鐩殑鍦扮被鍨�" prop="type">
- <el-select
- v-model="searchForm.type"
- @change="search"
- clearable
- placeholder="鐩殑鍦扮被鍨�"
- >
- <el-option label="甯傚唴鐢ㄨ溅" value="0"></el-option>
- <el-option label="甯傚鐢ㄨ溅" value="1"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="鍑哄彂鏃堕棿" prop="startTime">
- <el-date-picker
- @change="seleTime"
- v-model="time"
- @keypress.enter.native="search"
- type="datetimerange"
- format="yyyy-MM-dd HH:mm:ss"
- value-format="yyyy-MM-dd HH:mm:ss"
- :default-time="['00:00:00', '23:59:59']"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡"
- >
- </el-date-picker>
- </el-form-item>
- <el-radio-group
- v-model="searchForm.radio"
- size="small"
- @input="changeRadio"
- >
- <el-radio-button label="0">褰撳ぉ</el-radio-button>
- <el-radio-button label="1">杩�7澶�</el-radio-button>
- <el-radio-button label="2">杩�30澶�</el-radio-button>
- </el-radio-group>
- <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:carusebook:create',
- 'business:carusebook:exportExcel',
- ]"
- >
- <li>
- <el-button
- type="primary"
- @click="handleEdit"
- icon="el-icon-plus"
- v-permissions="['business:carusebook:create']"
- >鏂板缓</el-button
- >
- </li>
- <li>
- <el-button
- type="primary"
- @click="handleEx"
- v-permissions="['business:carusebook:exportExcel']"
- >瀵煎嚭</el-button
- >
- </li>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column
- prop="carCode"
- label="杞︾墝鍙�"
- min-width="100px"
- ></el-table-column>
- <el-table-column
- prop="memberName"
- label="鎻愭姤浜�"
- min-width="80px"
- ></el-table-column>
- <el-table-column
- prop="memberNames"
- label="涔樿溅浜�"
- min-width="180px"
- ></el-table-column>
- <el-table-column
- prop="companyName"
- label="鎵�灞炵粍缁�"
- min-width="150px"
- ></el-table-column>
- <el-table-column label="鐢ㄨ溅鏃堕棿" min-width="170px">
- <template slot-scope="{ row }">
- <span v-if="row.startTime">璧�:{{ row.startTime.slice(0,16) }}</span
- ><br />
- <span v-if="row.endTime">姝�:{{ row.endTime.slice(0,16) }}</span>
- </template>
- </el-table-column>
- <el-table-column
- prop="planUseDate"
- label="鍑哄彂鏃堕棿"
- min-width="150px"
- >
- <template slot-scope="{ row }">
- <span v-if="row.planUseDate">{{ row.planUseDate.slice(0,16) }}</span>
- </template>
- </el-table-column>
- <el-table-column label="鐩殑鍦�" min-width="200px">
- <template slot-scope="{ row }">
- <span class="status-green" v-if="row.type === 0">銆愬競鍐呫��</span>
- <span class="status-red" v-if="row.type === 1">銆愬競澶栥��</span>
- <span>{{ row.addr }}</span>
- </template>
- </el-table-column>
- <el-table-column label="鐘舵��" min-width="100px">
- <template slot-scope="{ row }">
- <span class="status-blue" v-if="row.status === 0">鐢宠涓�</span>
- <span class="status-blue" v-if="row.status === 1">瀹℃牳涓�</span>
- <span class="status-green" v-if="row.status === 2">瀹℃壒閫氳繃</span>
- <span class="status-red" v-if="row.status === 3">瀹℃壒涓嶉�氳繃</span>
- <span class="status-red" v-if="row.status === 4">宸叉挙閿�</span>
- </template>
- </el-table-column>
-
- <el-table-column
- prop="createDate"
- label="鐢宠鏃堕棿"
- min-width="150px"
- ></el-table-column>
- <el-table-column
- prop="editDate"
- label="鎿嶄綔鏃堕棿"
- min-width="150px"
- ></el-table-column>
- <el-table-column
- label="鎿嶄綔"
- min-width="160"
- align="center"
- fixed="right"
- >
- <template slot-scope="{ row }">
- <el-button
- type="text"
- icon="el-icon-edit"
- @click="$refs.OperaDetailsWindow.open('鍏姟杞︾敵璇疯鎯�', row)"
- >鏌ョ湅璇︽儏</el-button
- >
- <!-- <el-button v-if="(row.status === 1 || row.status === 2) && new Date().getTime() < new Date(row.startTime).getTime()" type="text" icon="el-icon-delete" @click="rowRevokeClick(row)" >鎾ら攢</el-button> -->
- <el-button
- v-if="
- (row.status === 0 || row.status === 1 || row.status === 2) &&
- new Date().getTime() < new Date(row.startTime).getTime()
- "
- type="text"
- icon="el-icon-delete"
- @click="rowRevokeClick(row)"
- >鎾ら攢</el-button
- >
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- <!-- -->
- <el-dialog title="鐢ㄨ溅鎾ら攢" :visible.sync="isShowBack" width="520px">
- <el-form
- :model="backParam"
- :rules="rules"
- ref="backForm"
- label-width="100px"
- class="demo-ruleForm"
- >
- <el-form-item label="璇存槑" prop="info">
- <el-input
- type="textarea"
- :rows="4"
- v-model="backParam.info"
- placeholder="璇疯緭鍏ユ挙閿�璇存槑"
- ></el-input>
- </el-form-item>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button @click="isShowBack = false">鍙栨秷</el-button>
- <el-button type="primary" @click="backSubmit">纭畾</el-button>
- </span>
- </el-dialog>
- <OperaCarUseBookWindow
- ref="OperaDetailsWindow"
- @success="handlePageChange"
- />
- <OperaCarUseBookParamWindow ref="OperaParamWindow" @success="search" />
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaCarUseBookWindow from '@/components/business/OperaCarUseBookWindow'
-import OperaCarUseBookParamWindow from '@/components/operation/OperCarUseBookParamWindow.vue'
-import { timeForMat } from '@/utils/util'
-import { allList } from '@/api/business/hiddenDangerParam'
-import { carUseBookRecordEx, revokeById } from '@/api/business/carUseBook'
-export default {
- name: 'Empower',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaCarUseBookWindow, OperaCarUseBookParamWindow },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- memberName: '',
- companyName: '',
- queryStartTime: '',
- queryEndTime: '',
- type: null,
- status: null,
- radio: 0
- },
- cateList: [],
- areaList: [],
- time: [],
-
- isShowBack: false,
- backParam: {},
- rules: {
- info: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }]
- }
- }
- },
- created () {
- this.config({
- module: '鐢ㄨ溅鐢宠绠$悊',
- api: '/business/carUseBook',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- // this.search()
- this.changeRadio('0')
- this.loadParams()
- },
- methods: {
- rowRevokeClick (row) {
- this.isShowBack = true
- this.backParam = {}
- this.$set(this.backParam, 'id', row.id)
- this.$nextTick(() => {
- this.$refs.backForm.clearValidate()
- })
- },
- backSubmit () {
- revokeById({ ...this.backParam }).then(res => {
- this.$tip.success('鎾ら攢鎴愬姛')
- this.isShowBack = false
- this.search()
- })
- },
- handleEx () {
- this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
- .then(() => {
- this.exLoading = true
- carUseBookRecordEx({
- model: this.searchForm
- })
- .then(response => {
- this.download(response)
- })
- .catch(e => {
- })
- .finally(() => {
- this.exLoading = false
- })
- })
- },
- changeRadio (e) {
- this.searchForm.radio = e
- if (e === '0') {
- this.searchForm.queryStartTime = timeForMat(0)[0]
- this.searchForm.queryEndTime = timeForMat(0)[1]
- this.time = timeForMat(0)
- } else if (e === '1') {
- this.searchForm.queryStartTime = timeForMat(6)[0]
- this.searchForm.queryEndTime = timeForMat(6)[1]
- this.time = timeForMat(6)
- } else if (e === '2') {
- this.searchForm.queryStartTime = timeForMat(29)[0]
- this.searchForm.queryEndTime = timeForMat(29)[1]
- this.time = timeForMat(29)
- }
- this.search()
- },
- handleEdit () {
- this.$refs.OperaParamWindow.open()
- },
- loadParams () {
- allList({
- })
- .then(res => {
- if (res != null && res.length) {
- res.forEach(item => {
- if (item && item.type != null && item.type === 0) {
- this.areaList.push(item)
- }
- if (item && item.type != null && item.type === 1) {
- this.cateList.push(item)
- }
- })
- }
- })
- .catch(e => {
- // this.$tip.apiFailed(e)
- })
- .finally(() => {
- })
- },
- seleTime (e) {
- this.searchForm.queryStartTime = e[0]
- this.searchForm.queryEndTime = e[1]
- this.searchForm.radio = null
- this.search()
- },
- reset () {
- this.$refs.searchForm.resetFields()
- this.searchForm.radio = '0'
- this.changeRadio('0')
- // this.search()
- }
- }
-}
-</script>
diff --git a/admin/src/views/operation/serviceCar/driverConfig.vue b/admin/src/views/operation/serviceCar/driverConfig.vue
deleted file mode 100644
index 3878456..0000000
--- a/admin/src/views/operation/serviceCar/driverConfig.vue
+++ /dev/null
@@ -1,90 +0,0 @@
-<template>
- <TableLayout :permissions="['business:member:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="120px" inline>
- <el-form-item label="鍙告満濮撳悕/鎵嬫満鍙�" prop="memberName">
- <el-input v-model="searchForm.memberName" clearable 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:cardriver:create','business:cardriver:delete']">
- <li><el-button type="primary" @click="$refs.OperaCarDriverWindow.open('鏂板缓鍙告満',null,searchForm.type)" icon="el-icon-plus" v-permissions="['business:cardriver:create']">鏂板缓</el-button></li>
- <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:cardriver:delete']">鎵归噺鍒犻櫎</el-button></li>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="memberName" label="濮撳悕" min-width="150px"></el-table-column>
- <el-table-column prop="memberPhone" label="鎵嬫満鍙�" min-width="200px"></el-table-column>
- <el-table-column prop="memberSex" label="鎬у埆" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.memberSex == 1">鐢�</span>
- <span v-if="row.memberSex == 2">濂�</span>
- </template>
- </el-table-column>
- <el-table-column prop="companyName" label="缁勭粐" min-width="260px"></el-table-column>
- <el-table-column prop="carCode" label="杞︾墝鍙�" min-width="100px"></el-table-column>
- <el-table-column prop="editDate" label="鎿嶄綔鏃堕棿" min-width="150px"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:cardriver:update', 'business:cardriver:delete' ])"
- label="鎿嶄綔"
- min-width="250"
- fixed="right"
- >
- <template slot-scope="{row}">
- <el-button type="text" icon="el-icon-edit" @click="$refs.OperaCarDriverWindow.open('缂栬緫鍙告満',row,searchForm.type)" v-permissions="['business:cardriver:update']">缂栬緫</el-button>
- <el-button type="text" icon="el-icon-delete" @click="deleteById(row)" style="color: red" v-permissions="['business:cardriver:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaCarDriverWindow ref="OperaCarDriverWindow" @success="handlePageChange"/>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaCarDriverWindow from '@/components/business/OperaCarDriverWindow'
-export default {
- name: 'areaSet',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaCarDriverWindow },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- title: ''
- }
- }
- },
- created () {
- this.config({
- module: '鍙告満閰嶇疆',
- api: '/business/carDriver',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- },
- methods: {
- }
-}
-</script>
diff --git a/admin/src/views/platform/LogisticsRecord/leaveAuth.vue b/admin/src/views/platform/LogisticsRecord/leaveAuth.vue
deleted file mode 100644
index ecc0fa4..0000000
--- a/admin/src/views/platform/LogisticsRecord/leaveAuth.vue
+++ /dev/null
@@ -1,251 +0,0 @@
-<template>
- <div class="main_app">
- <QueryForm v-model="filters" :query-form-config="queryFormConfig" @changeForm='changeForm' @handleQuery="getList(1)"
- @clear="clear">
- <template #fastdate>
- <el-radio-group v-model="filters.fastdate" size="small" @input="changeRadio">
- <el-radio-button label="0">褰撳ぉ</el-radio-button>
- <el-radio-button label="6">杩�7澶�</el-radio-button>
- <el-radio-button label="29">杩�30澶�</el-radio-button>
- </el-radio-group>
- </template>
- </QueryForm>
- <div class="pt16">
- <el-button :loading="exLoading" @click="handleEx"
- v-permissions="['business:platformjob:exportExcel']">瀵煎嚭</el-button>
- </div>
- <el-table class="mb20" v-loading="loading" :data="list" stripe>
- <el-table-column type="index" label="搴忓彿" width="70" show-overflow-tooltip />
- <el-table-column prop="billCode" label="杩愬崟鍙�/鍚堝悓鍙�" min-width="100" show-overflow-tooltip>
- <template v-slot="scope">
- <span>{{ scope.row.billCode || scope.row.contractNum }}</span>
- </template>
- </el-table-column>
- <!-- <el-table-column prop="totalNum" label="鎬讳綔涓氶噺(涓囨敮)" min-width="100" show-overflow-tooltip /> -->
- <el-table-column prop="carCodeFront" label="杞︾墝鍙�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="carCodeBack" label="鐢靛瓙閿佺姸鎬�" min-width="100" show-overflow-tooltip>
- <template v-slot="scope">
- <span class="red" v-if="scope.row.billCode && scope.row.lockStatus == 0">鏈笂閿�</span>
- <span class="red" v-if="scope.row.billCode && scope.row.lockStatus == 1">閮ㄥ垎涓婇攣</span>
- <span v-if="scope.row.billCode && scope.row.lockStatus == 2">鍏ㄩ儴涓婇攣</span>
- <span v-if="!scope.row.billCode">-</span>
- </template>
- </el-table-column>
- <el-table-column prop="carrierName" label="杩愯緭鍏徃" min-width="100" show-overflow-tooltip />
- <el-table-column prop="driverName" label="椹鹃┒鍛�" min-width="120" show-overflow-tooltip>
- <template v-slot="scope">
- <span>{{ scope.row.driverName }} {{ scope.row.drivierPhone }}</span>
- </template>
- </el-table-column>
- <!-- <el-table-column prop="drivierPhone" label="鑱旂郴鏂瑰紡" min-width="100" show-overflow-tooltip /> -->
-
- <el-table-column prop="doneDate" label="浣滀笟瀹屾垚鏃堕棿" min-width="150" show-overflow-tooltip />
- <el-table-column prop="workTime" label="鎺堟潈鐘舵��" min-width="100" show-overflow-tooltip>
- <template v-slot="scope">
- <span v-if="scope.row.status == 9 || scope.row.status == 10">宸叉巿鏉�</span>
- <span class="red" v-if="scope.row.status == 6">鏈巿鏉�</span>
- </template>
- </el-table-column>
- <el-table-column prop="outUserName" label="鎿嶄綔鍛�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="outHkdate" label="鎿嶄綔鏃堕棿" min-width="150" show-overflow-tooltip />
- <el-table-column prop="remark" label="澶囨敞" min-width="150" show-overflow-tooltip />
- <el-table-column label="鎿嶄綔" align="center" fixed="right" min-width="100" show-overflow-tooltip>
- <template v-slot="scope">
- <el-button v-if="scope.row.status == 6" type="text" v-permissions="['business:platformbooks:detail']"
- @click="handleAuth(scope.row)">绂诲洯鎺堟潈</el-button>
- <span v-else>-</span>
- </template>
- </el-table-column>
- </el-table>
- <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
- <!-- -->
- <!-- -->
- <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" />
- </div>
-</template>
-
-<script>
-import Pagination from '@/components/common/Pagination'
-import QueryForm from '@/components/common/QueryForm'
-import { platformJobPage, platformJobExport, platformPowerLevel } from '@/api'
-import { statusMap } from '../config'
-import DriverDetail from "@/views/task/driverDetail"
-import GlobalWindow from '@/components/common/GlobalWindow'
-import UploadFaceImg from '@/components/common/UploadFaceImg'
-import { Message } from 'element-ui'
-import dayjs from 'dayjs'
-export default {
- components: {
- Pagination,
- QueryForm,
- DriverDetail,
- GlobalWindow,
- UploadFaceImg
- },
- data() {
- return {
- statusMap,
- isShowDriver: false,
- exLoading: false,
- loading: false,
- pagination: {
- pageSize: 10,
- page: 1,
- total: 0
- },
- filters: {
- selDate: [],
- fastdate: 0
- },
- list: [],
- queryFormConfig: {
- formItems: [
- {
- filed: 'contractNum',
- type: 'input',
- label: '鍚堝悓鍙�'
- },
- {
- filed: 'billCode',
- type: 'input',
- label: '杩愬崟鍙�'
- },
- {
- filed: 'carCodeFront',
- type: 'input',
- label: '杞︾墝鍙�'
- },
- {
- filed: 'driverName',
- type: 'input',
- label: '椹鹃┒鍛�'
- },
- {
- filed: 'queryStatusForPower',
- type: 'select',
- label: '鎺堟潈鐘舵��',
- options: [
- { value: '9,10', label: '宸叉巿鏉�' },
- { value: '6', label: '鏈巿鏉�' }
- ]
- },
- {
- filed: 'selDate',
- type: 'datetimerange',
- label: '浣滀笟瀹屾垚鏃堕棿鎼滅储',
- pickerOptions: {}
- },
- {
- type: 'slot',
- filed: 'fastdate',
- label: ''
- }
- ],
- online: true
- },
- }
- },
- created() {
- this.changeRadio('0')
- this.getList()
- },
- methods: {
- changeRadio(day) {
- const arr = [dayjs().subtract(day, 'day').format('YYYY-MM-DD') + ' 00:00:00', dayjs().format('YYYY-MM-DD') + ' 23:59:59']
- this.$set(this.filters, 'selDate', arr)
- this.getList()
- },
- changeForm(str) {
- if (str === 'selDate') {
- this.$set(this.filters, 'fastdate', null)
- this.getList()
- }
- },
- getList(page) {
- const { pagination, filters } = this
- this.loading = true
- platformJobPage({
- model: {
- ...filters,
- queryStatus: '6,9,10,2,3,4',
- beginDoneDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null,
- beginDoneDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null,
- },
- sorts: [{ direction: 'DESC', property: 'DONE_DATE' }],
- capacity: pagination.pageSize,
- page: page || pagination.page,
- }).then(res => {
- this.loading = false
- this.list = res.records || []
- this.list.forEach(item => {
- item.inTypeTemp = item.inType == 0 ? '鏁存墭鐩�' : '浠剁儫'
- item.taskOrigin = 'WMS鑾峰彇'
- })
- this.pagination.total = res.total || 0
- }, () => {
- this.loading = false
- })
- },
- handleAuth(row) {
- this.$prompt('澶囨敞', '绂诲洯鎺堟潈', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- }).then(({ value }) => {
- platformPowerLevel({ jobId: row.id, remark: value }).then(res => {
- Message.success('绂诲洯鎺堟潈鎴愬姛')
- this.getList()
- })
- })
- },
- handleEx() {
- this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
- .then(() => {
- this.exLoading = true
- platformJobExport({
- page: this.pagination.page,
- capacity: 1000000,
- queryStatus: '6,9,10',
- model: this.filters
- })
- .then(response => {
- this.download(response)
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.exLoading = false
- })
- })
- },
- clear() {
- this.pagination.page = 1
- this.filters = {
- selDate: [],
- fastdate: 0
- }
- this.getList()
- },
- handleDetail(row) {
- this.isShowDriver = true
- this.$nextTick(() => {
- this.$refs.DriverDetailRef.id = row.id
- this.$refs.DriverDetailRef.type = 6
- this.$refs.DriverDetailRef.getDetail()
- this.$refs.DriverDetailRef.isShowModal = true
- })
- },
- handleSizeChange(capacity) {
- this.pagination.pageSize = capacity
- }
- }
-}
-</script>
-<style lang="scss" scoped>
-.param_title {
- font-size: 18px;
- font-weight: 600;
- color: #000000;
- margin-bottom: 15px;
-}
-</style>
\ No newline at end of file
diff --git a/admin/src/views/platform/LogisticsRecord/operation.vue b/admin/src/views/platform/LogisticsRecord/operation.vue
deleted file mode 100644
index 95dd8c5..0000000
--- a/admin/src/views/platform/LogisticsRecord/operation.vue
+++ /dev/null
@@ -1,217 +0,0 @@
-<template>
- <div class="main_app">
- <QueryForm v-model="filters" :query-form-config="queryFormConfig" @changeForm='changeForm' @handleQuery="getList(1)" @clear="clear">
- <template #fastdate>
- <el-radio-group
- v-model="filters.fastdate"
- size="small"
- @input="changeRadio"
- >
- <el-radio-button label="0">褰撳ぉ</el-radio-button>
- <el-radio-button label="6">杩�7澶�</el-radio-button>
- <el-radio-button label="29">杩�30澶�</el-radio-button>
- </el-radio-group>
- </template>
- </QueryForm>
- <div class="pt16">
- <el-button :loading="exLoading" @click="handleEx" v-permissions="['business:platformjob:exportExcel']">瀵煎嚭</el-button>
- </div>
- <el-table class="mb20" v-loading="loading" :data="list" stripe>
- <el-table-column prop="billCode" label="杩愬崟鍙�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="totalNum" label="鎬讳綔涓氶噺(涓囨敮)" min-width="100" show-overflow-tooltip />
- <el-table-column prop="carCodeFront" label="杞︾墝鍓嶇収鍙�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="carCodeBack" label="杞︾墝鍚庣収鍙�" min-width="100" show-overflow-tooltip />
- <!-- <el-table-column prop="taskOrigin" label="浠诲姟鏉ユ簮" min-width="100" show-overflow-tooltip />
- <el-table-column prop="carrierName" label="杩愯緭鍏徃" min-width="100" show-overflow-tooltip /> -->
- <el-table-column prop="driverName" label="椹鹃┒鍛�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="drivierPhone" label="鑱旂郴鏂瑰紡" min-width="100" show-overflow-tooltip />
- <el-table-column prop="confirmTaskDate" label="纭鏃堕棿" min-width="150" show-overflow-tooltip />
- <el-table-column prop="signDate" label="绛惧埌鏃堕棿" min-width="150" show-overflow-tooltip />
- <el-table-column prop="callDate" label="鍙彿鏃堕棿" min-width="150" show-overflow-tooltip />
- <el-table-column prop="startDate" label="浣滀笟寮�濮嬫椂闂�" min-width="150" show-overflow-tooltip />
- <el-table-column prop="doneDate" label="浣滀笟瀹屾垚鏃堕棿" min-width="150" show-overflow-tooltip />
- <el-table-column prop="workTime" label="浣滀笟鏃堕暱" min-width="100" show-overflow-tooltip />
- <el-table-column prop="platformNames" label="鍙彿鏈堝彴" min-width="100" show-overflow-tooltip />
- <el-table-column label="浣滀笟鎯呭喌" fixed="right" min-width="100" show-overflow-tooltip>
- <template v-slot="scope">
- <span>{{ statusMap[scope.row.status] }}</span>
- </template>
- </el-table-column>
- </el-table>
- <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
- <!-- -->
- <!-- -->
- <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" />
- </div>
-</template>
-
-<script>
-import Pagination from '@/components/common/Pagination'
-import QueryForm from '@/components/common/QueryForm'
-import { platformJobPage, platformJobExport,platformJobDel } from '@/api'
-import { statusMap } from '../config'
-import DriverDetail from "@/views/task/driverDetail"
-import GlobalWindow from '@/components/common/GlobalWindow'
-import UploadFaceImg from '@/components/common/UploadFaceImg'
-import { Message } from 'element-ui'
-import dayjs from 'dayjs'
-import duration from 'dayjs/plugin/duration'
-dayjs.extend(duration);
-export default {
- components: {
- Pagination,
- QueryForm,
- DriverDetail,
- GlobalWindow,
- UploadFaceImg
- },
- data() {
- return {
- statusMap,
- isShowDriver: false,
- exLoading: false,
- loading: false,
- pagination: {
- pageSize: 10,
- page: 1,
- total: 0
- },
- filters: {
- selDate: [],
- fastdate: 0
- },
- list: [],
- queryFormConfig: {
- formItems: [
- {
- filed: 'code',
- type: 'input',
- label: '杩愬崟鍙�'
- },
- {
- filed: 'carCodeFront',
- type: 'input',
- label: '杞︾墝鍙�'
- },
- {
- filed: 'driverName',
- type: 'input',
- label: '椹鹃┒鍛�'
- },
- {
- filed: 'selDate',
- type: 'datetimerange',
- label: '',
- pickerOptions: {}
- },
- {
- type: 'slot',
- filed: 'fastdate',
- label: ''
- }
- ],
- online: true
- },
- }
- },
- created() {
- this.changeRadio('0')
- this.getList()
- },
- methods: {
- changeRadio (day) {
- const arr = [dayjs().subtract(day, 'day').format('YYYY-MM-DD') + ' 00:00:00', dayjs().format('YYYY-MM-DD') + ' 23:59:59']
- this.$set(this.filters, 'selDate', arr)
- this.getList()
- },
- changeForm (str) {
- if (str === 'selDate') {
- this.$set(this.filters, 'fastdate', null)
- this.getList()
- }
- },
- getList(page) {
- const { pagination, filters } = this
- this.loading = true
- platformJobPage({
- model: {
- ...filters,
- jobType: '0',
- beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null,
- beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null,
- },
- capacity: pagination.pageSize,
- page: page || pagination.page,
- }).then(res => {
- this.loading = false
- this.list = res.records || []
- this.list.forEach(item => {
- item.inTypeTemp = item.inType == 0 ? '鏁存墭鐩�' : '浠剁儫'
- item.taskOrigin = 'WMS鑾峰彇'
- item.workTime = dayjs.duration(item.workTime, 'seconds').format('H鏃秏鍒唖绉�');
- })
- this.pagination.total = res.total || 0
- }, () => {
- this.loading = false
- })
- },
- handleDel(row) {
- this.$dialog.exportConfirm('纭鍒犻櫎鍚楋紵').then(() => {
- platformJobDel({ id: row.id }).then(res => {
- Message.success('鍒犻櫎鎴愬姛')
- this.getList()
- })
- })
- },
- handleEx() {
- this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
- .then(() => {
- this.exLoading = true
- platformJobExport({
- page: this.pagination.page,
- capacity: 1000000,
- jobType: '0',
- model: this.filters
- })
- .then(response => {
- this.download(response)
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.exLoading = false
- })
- })
- },
- clear() {
- this.pagination.page = 1
- this.filters = {
- selDate: [],
- fastdate: 0
- }
- this.getList()
- },
- handleDetail(row) {
- this.isShowDriver = true
- this.$nextTick(() => {
- this.$refs.DriverDetailRef.id = row.id
- this.$refs.DriverDetailRef.type = 6
- this.$refs.DriverDetailRef.getDetail()
- this.$refs.DriverDetailRef.isShowModal = true
- })
- },
- handleSizeChange(capacity) {
- this.pagination.pageSize = capacity
- }
- }
-}
-</script>
-<style lang="scss" scoped>
-.param_title {
- font-size: 18px;
- font-weight: 600;
- color: #000000;
- margin-bottom: 15px;
-}
-</style>
\ No newline at end of file
diff --git a/admin/src/views/platform/LogisticsRecord/operationCity.vue b/admin/src/views/platform/LogisticsRecord/operationCity.vue
deleted file mode 100644
index 3dceb78..0000000
--- a/admin/src/views/platform/LogisticsRecord/operationCity.vue
+++ /dev/null
@@ -1,218 +0,0 @@
-<template>
- <div class="main_app">
- <QueryForm v-model="filters" :query-form-config="queryFormConfig" @changeForm='changeForm' @handleQuery="getList(1)" @clear="clear">
- <template #fastdate>
- <el-radio-group
- v-model="filters.fastdate"
- size="small"
- @input="changeRadio"
- >
- <el-radio-button label="0">褰撳ぉ</el-radio-button>
- <el-radio-button label="6">杩�7澶�</el-radio-button>
- <el-radio-button label="29">杩�30澶�</el-radio-button>
- </el-radio-group>
- </template>
- </QueryForm>
- <div class="pt16">
- <el-button :loading="exLoading" @click="handleEx" v-permissions="['business:platformjob:exportExcel']">瀵煎嚭</el-button>
- </div>
- <el-table class="mb20" v-loading="loading" :data="list" stripe>
- <el-table-column prop="contractNum" label="鍚堝悓鍙�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="reason" label="鍏ュ洯鍘熷洜" min-width="100" show-overflow-tooltip />
- <el-table-column prop="totalNum" label="鎬讳綔涓氶噺(涓囨敮)" min-width="100" show-overflow-tooltip />
- <el-table-column prop="carCodeFront" label="杞︾墝鍓嶇収鍙�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="carCodeBack" label="杞︾墝鍚庣収鍙�" min-width="100" show-overflow-tooltip />
- <!-- <el-table-column prop="taskOrigin" label="浠诲姟鏉ユ簮" min-width="100" show-overflow-tooltip />
- <el-table-column prop="carrierName" label="杩愯緭鍏徃" min-width="100" show-overflow-tooltip /> -->
- <el-table-column prop="driverName" label="椹鹃┒鍛�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="drivierPhone" label="鑱旂郴鏂瑰紡" min-width="100" show-overflow-tooltip />
- <!-- <el-table-column prop="confirmTaskDate" label="纭鏃堕棿" min-width="150" show-overflow-tooltip /> -->
- <el-table-column prop="signDate" label="绛惧埌鏃堕棿" min-width="150" show-overflow-tooltip />
- <el-table-column prop="callDate" label="鍙彿鏃堕棿" min-width="150" show-overflow-tooltip />
- <el-table-column prop="startDate" label="浣滀笟寮�濮嬫椂闂�" min-width="150" show-overflow-tooltip />
- <el-table-column prop="doneDate" label="浣滀笟瀹屾垚鏃堕棿" min-width="150" show-overflow-tooltip />
- <el-table-column prop="workTime" label="浣滀笟鏃堕暱" min-width="100" show-overflow-tooltip />
- <el-table-column prop="platformName" label="鍙彿鏈堝彴" min-width="100" show-overflow-tooltip />
- <el-table-column label="浣滀笟鎯呭喌" fixed="right" min-width="100" show-overflow-tooltip>
- <template v-slot="scope">
- <span>{{ statusMap[scope.row.status] }}</span>
- </template>
- </el-table-column>
- </el-table>
- <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
- <!-- -->
- <!-- -->
- <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" />
- </div>
-</template>
-
-<script>
-import Pagination from '@/components/common/Pagination'
-import QueryForm from '@/components/common/QueryForm'
-import { platformJobPage, platformJobExport,platformJobDel } from '@/api'
-import { statusMap } from '../config'
-import DriverDetail from "@/views/task/driverDetail"
-import GlobalWindow from '@/components/common/GlobalWindow'
-import UploadFaceImg from '@/components/common/UploadFaceImg'
-import { Message } from 'element-ui'
-import dayjs from 'dayjs'
-import duration from 'dayjs/plugin/duration'
-dayjs.extend(duration);
-export default {
- components: {
- Pagination,
- QueryForm,
- DriverDetail,
- GlobalWindow,
- UploadFaceImg
- },
- data() {
- return {
- statusMap,
- isShowDriver: false,
- exLoading: false,
- loading: false,
- pagination: {
- pageSize: 10,
- page: 1,
- total: 0
- },
- filters: {
- selDate: [],
- fastdate: 0
- },
- list: [],
- queryFormConfig: {
- formItems: [
- {
- filed: 'contractNum',
- type: 'input',
- label: '鍚堝悓鍙�'
- },
- {
- filed: 'carCodeFront',
- type: 'input',
- label: '杞︾墝鍙�'
- },
- {
- filed: 'driverName',
- type: 'input',
- label: '椹鹃┒鍛�'
- },
- {
- filed: 'selDate',
- type: 'datetimerange',
- label: '',
- pickerOptions: {}
- },
- {
- type: 'slot',
- filed: 'fastdate',
- label: ''
- }
- ],
- online: true
- },
- }
- },
- created() {
- this.changeRadio('0')
- this.getList()
- },
- methods: {
- changeRadio (day) {
- const arr = [dayjs().subtract(day, 'day').format('YYYY-MM-DD') + ' 00:00:00', dayjs().format('YYYY-MM-DD') + ' 23:59:59']
- this.$set(this.filters, 'selDate', arr)
- this.getList()
- },
- changeForm (str) {
- if (str === 'selDate') {
- this.$set(this.filters, 'fastdate', null)
- this.getList()
- }
- },
- getList(page) {
- const { pagination, filters } = this
- this.loading = true
- platformJobPage({
- model: {
- ...filters,
- jobType: 1,
- beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null,
- beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null,
- },
- capacity: pagination.pageSize,
- page: page || pagination.page,
- }).then(res => {
- this.loading = false
- this.list = res.records || []
- this.list.forEach(item => {
- item.inTypeTemp = item.inType == 0 ? '鏁存墭鐩�' : '浠剁儫'
- item.taskOrigin = 'WMS鑾峰彇'
- item.workTime = dayjs.duration(item.workTime, 'seconds').format('H鏃秏鍒唖绉�');
- })
- this.pagination.total = res.total || 0
- }, () => {
- this.loading = false
- })
- },
- handleDel(row) {
- this.$dialog.exportConfirm('纭鍒犻櫎鍚楋紵').then(() => {
- platformJobDel({ id: row.id }).then(res => {
- Message.success('鍒犻櫎鎴愬姛')
- this.getList()
- })
- })
- },
- handleEx() {
- this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
- .then(() => {
- this.exLoading = true
- platformJobExport({
- page: this.pagination.page,
- capacity: 1000000,
- jobType: 1,
- model: this.filters
- })
- .then(response => {
- this.download(response)
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.exLoading = false
- })
- })
- },
- clear() {
- this.pagination.page = 1
- this.filters = {
- selDate: [],
- fastdate: 0
- }
- this.getList()
- },
- handleDetail(row) {
- this.isShowDriver = true
- this.$nextTick(() => {
- this.$refs.DriverDetailRef.id = row.id
- this.$refs.DriverDetailRef.type = 6
- this.$refs.DriverDetailRef.getDetail()
- this.$refs.DriverDetailRef.isShowModal = true
- })
- },
- handleSizeChange(capacity) {
- this.pagination.pageSize = capacity
- }
- }
-}
-</script>
-<style lang="scss" scoped>
-.param_title {
- font-size: 18px;
- font-weight: 600;
- color: #000000;
- margin-bottom: 15px;
-}
-</style>
\ No newline at end of file
diff --git a/admin/src/views/platform/LogisticsRecord/subscribe.vue b/admin/src/views/platform/LogisticsRecord/subscribe.vue
deleted file mode 100644
index 3673592..0000000
--- a/admin/src/views/platform/LogisticsRecord/subscribe.vue
+++ /dev/null
@@ -1,350 +0,0 @@
-<template>
- <div class="main_app">
- <QueryForm v-model="filters" :query-form-config="queryFormConfig" @changeForm='changeForm' @handleQuery="getList(1)" @clear="clear">
- <template #fastdate>
- <el-radio-group
- v-model="filters.fastdate"
- size="small"
- @input="changeRadio"
- >
- <el-radio-button label="0">褰撳ぉ</el-radio-button>
- <el-radio-button label="6">杩�7澶�</el-radio-button>
- <el-radio-button label="29">杩�30澶�</el-radio-button>
- </el-radio-group>
- </template>
- </QueryForm>
- <div class="pt16">
- <el-button type="primary" @click="handleEdit" icon="el-icon-plus"
- v-permissions="['business:platformbooks:create']">鏂板缓</el-button>
- <el-button :loading="exLoading" @click="handleEx" v-permissions="['business:platformbooks:exportExcel']">瀵煎嚭</el-button>
- </div>
- <el-table class="mb20" v-loading="loading" :data="list" stripe>
- <el-table-column prop="contractNum" label="鍚堝悓鍗曞彿" min-width="100" show-overflow-tooltip />
- <el-table-column prop="inReason" label="鍏ュ洯鍘熷洜" min-width="100" show-overflow-tooltip />
- <el-table-column prop="totalNum" label="鎬讳綔涓氶噺(涓囨敮)" min-width="100" show-overflow-tooltip />
- <el-table-column prop="carCodeFront" label="杞︾墝鍓嶇収鍙�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="carCodeBack" label="杞︾墝鍚庣収鍙�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="driverName" label="椹鹃┒鍛�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="driverPhone" label="鑱旂郴鏂瑰紡" min-width="100" show-overflow-tooltip />
- <el-table-column prop="inTypeTemp" label="鍏ュ簱绫诲瀷" min-width="100" show-overflow-tooltip />
- <el-table-column prop="arriveDate" label="棰勭害鍒板満鏃堕棿" min-width="150" show-overflow-tooltip />
- <el-table-column label="瀹℃壒缁撴灉" min-width="100" show-overflow-tooltip>
- <template v-slot="scope">
- <span v-if="scope.row.status == '0'">寰呭鎵�</span>
- <span v-if="scope.row.status == '1'">瀹℃壒涓�</span>
- <span v-if="scope.row.status == '2'">瀹℃壒閫氳繃</span>
- <span v-if="scope.row.status == '3'">瀹℃壒椹冲洖</span>
- <span v-if="scope.row.status == '4'">宸插彇娑�</span>
- </template>
- </el-table-column>
- <el-table-column prop="auditName" label="褰撳墠瀹℃壒浜�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="editDate" label="鎿嶄綔鏃堕棿" min-width="150" show-overflow-tooltip />
- <el-table-column prop="name" label="鎿嶄綔" min-width="120" align="center" fixed="right" show-overflow-tooltip>
- <template v-slot="scope">
- <el-button type="text" v-permissions="['business:platformbooks:detail']"
- @click="handleDetail(scope.row)">棰勭害璇︽儏</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
- <!-- -->
- <GlobalWindow :title="param.id ? '缂栬緫鐗╂祦杞﹂绾�' : '鏂板鐗╂祦杞﹂绾�'" center :visible.sync="isShowEdit" width="600px"
- :confirm-working="subLoading" @confirm="onSubmit">
- <el-form :model="param" :rules="rules" ref="ruleForm" label-width="100px">
- <div class="param_title">杩愯緭淇℃伅</div>
- <el-form-item label="鍏ュ洯鍘熷洜" prop="reasonId">
- <el-select v-model="param.reasonId" @change="checkSurplus" class="w300" placeholder="璇烽�夋嫨">
- <el-option v-for="item in reasonList" :key="item.id" :label="item.reason" :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="鍚堝悓鍙�" prop="contractNum">
- <el-input v-model="param.contractNum" class="w300" placeholder="璇疯緭鍏ュ悎鍚屽彿"></el-input>
- </el-form-item>
- <el-form-item label="鍒板満鏃堕棿" prop="arriveDate">
- <el-date-picker v-model="param.arriveDate" @change="checkSurplus" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" class="w300"
- placeholder="璇烽�夋嫨">
- </el-date-picker>
- </el-form-item>
- <el-form-item label="鍏ュ簱绫诲瀷" prop="inType">
- <div>
- <el-radio v-model="param.inType" :label="0">鏁翠欢鐩�</el-radio>
- <el-radio v-model="param.inType" :label="1">浠剁儫</el-radio>
- </div>
- </el-form-item>
- <el-form-item label="鎬昏繍杈撻噺" prop="totalNum">
- <el-input @blur="checkSurplus" oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 10)" v-model="param.totalNum" placeholder="璇疯緭鍏�" class="w300"></el-input>
- <span class="ml10">涓囨敮</span>
- </el-form-item>
- <el-form-item label="鍑嗚繍璇佺収鐗�" prop="transportImg">
- <UploadAvatarImage :file="{ 'imgurlfull': param.transportImgFull, 'imgurl': param.transportImg }"
- :uploadData="{ folder: 'platform' }" @uploadSuccess="uploadSuccess" @uploadEnd="isUploading = false"
- @uploadBegin="isUploading = true" />
- </el-form-item>
- <div class="param_title">鍙告満/杞﹁締淇℃伅</div>
- <el-form-item label="鍙告満濮撳悕" prop="driverName">
- <el-input v-model="param.driverName" placeholder="璇疯緭鍏�" class="w300"></el-input>
- </el-form-item>
- <el-form-item label="鍙告満鎵嬫満鍙�" prop="driverPhone">
- <el-input oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 11)" v-model="param.driverPhone" placeholder="璇疯緭鍏�" class="w300"></el-input>
- </el-form-item>
- <el-form-item label="杞﹀墠鐗岀収鍙�" prop="carCodeFront">
- <el-input v-model="param.carCodeFront" placeholder="璇疯緭鍏�" class="w300"></el-input>
- </el-form-item>
- <el-form-item label="杞﹀悗鐗岀収鍙�" prop="carCodeBack">
- <el-input v-model="param.carCodeBack" placeholder="璇疯緭鍏�" class="w300"></el-input>
- </el-form-item>
- </el-form>
- </GlobalWindow>
- <!-- -->
- <DriverDetail v-if="isShowDriver" @success="getList" @close="isShowDriver = false" ref="DriverDetailRef" />
- </div>
-</template>
-
-<script>
-import Pagination from '@/components/common/Pagination'
-import QueryForm from '@/components/common/QueryForm'
-import { platformBooksPage, platformReasonList, platformBooksApply, platformBooksExport } from '@/api'
-import { checkSurplusNum } from '@/api/platform/platform'
-import DriverDetail from "@/views/task/driverDetail"
-import GlobalWindow from '@/components/common/GlobalWindow'
-import UploadAvatarImage from '@/components/common/UploadAvatarImage'
-import { Message } from 'element-ui'
-import dayjs from 'dayjs'
-export default {
- components: {
- Pagination,
- QueryForm,
- DriverDetail,
- GlobalWindow,
- UploadAvatarImage
- },
- data() {
- return {
- isShowDriver: false,
- exLoading: false,
- loading: false,
- pagination: {
- pageSize: 10,
- page: 1,
- total: 0
- },
- filters: {
- selDate: [],
- fastdate: 0
- },
- list: [],
-
- isShowEdit: false,
- subLoading: false,
- param: {
- inType: 0
- },
- reasonList: [],
- rules: {
- contractNum: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
- totalNum: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
- driverName: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
- driverPhone: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
- carCodeFront: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
- carCodeBack: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
-
- transportImg: [{ required: true, message: '璇蜂笂浼�', trigger: 'blur' }],
- reasonId: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }],
- arriveDate: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }],
- inType: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }],
- driverName: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }],
- },
- queryFormConfig: {
- formItems: [
- {
- filed: 'carCodeFront',
- type: 'input',
- label: '杞︾墝鍙�'
- },
- {
- filed: 'driverName',
- type: 'input',
- label: '椹鹃┒鍛�'
- },
- {
- filed: 'contractNum',
- type: 'input',
- label: '鍚堝悓鍗曞彿'
- },
- {
- filed: 'status',
- type: 'select',
- label: '瀹℃壒缁撴灉',
- options: [
- { value: 0, label: '寰呭鎵�' },
- { value: 1, label: '瀹℃壒涓�' },
- { value: 2, label: '瀹℃壒閫氳繃' },
- { value: 3, label: '瀹℃壒椹冲洖' },
- { value: 4, label: '宸插彇娑�' },
- ]
- },
- {
- filed: 'selDate',
- type: 'datetimerange',
- label: '鎿嶄綔鏃堕棿',
- pickerOptions: {}
- },
- {
- type: 'slot',
- filed: 'fastdate',
- label: ''
- }
- ],
- online: true
- },
- }
- },
- created() {
- this.changeRadio('0')
- this.getList()
- },
- methods: {
- checkSurplus() {
- const { arriveDate, reasonId, totalNum } = this.param
- if(!arriveDate || !reasonId || !totalNum) return
- checkSurplusNum({
- arriveDate,
- reasonId,
- totalNum
- }).then(res => {
- console.log('res', res);
-
- if( res == 0 || res < Number(totalNum)){
- Message.error(`褰撴棩鍓╀綑鍙绾︿綔涓氶噺${res}涓囨敮涓嶈冻璇烽�夋嫨鍏朵粬鍒板満鏃ユ湡`)
- }
- })
- },
- changeRadio (day) {
- const arr = [dayjs().subtract(day, 'day').format('YYYY-MM-DD') + ' 00:00:00', dayjs().format('YYYY-MM-DD') + ' 23:59:59']
- this.$set(this.filters, 'selDate', arr)
- this.getList()
- },
- changeForm (str) {
- if (str === 'selDate') {
- this.$set(this.filters, 'fastdate', null)
- this.getList()
- }
- },
- getList(page) {
- const { pagination, filters } = this
- this.loading = true
- platformBooksPage({
- model: {
- ...filters,
- arriveDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null,
- arriveDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null,
- },
- capacity: pagination.pageSize,
- page: page || pagination.page,
- }).then(res => {
- this.loading = false
- this.list = res.records || []
- this.list.forEach(item => {
- item.inTypeTemp = item.inType == 0 ? '鏁存墭鐩�' : '浠剁儫'
- })
- this.pagination.total = res.total || 0
- }, () => {
- this.loading = false
- })
- },
- handleEx() {
- this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
- .then(() => {
- this.exLoading = true
- platformBooksExport({
- page: this.pagination.page,
- capacity: 1000000,
- model: this.filters
- })
- .then(response => {
- this.download(response)
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.exLoading = false
- })
- })
- },
- onSubmit() {
- this.$refs['ruleForm'].validate((valid) => {
- const param = this.param
- param.inReason = this.reasonList.find(item => param.reasonId == item.id).reason
- if (valid) {
- this.subLoading = true
- platformBooksApply({ ...param }).then(res => {
- this.getList()
- this.subLoading = false
- this.isShowEdit = false
- }, () => {
- this.subLoading = false
- })
- }
- })
- },
- uploadSuccess(file) {
- this.$set(this.param, 'transportImg', file.imgurl)
- this.$set(this.param, 'transportImgFull', file.imgurlfull)
- },
- handleEdit(row) {
- this.isShowEdit = true
- this.param = {
- inType: 0
- }
- this.$nextTick(() => {
- this.$refs['ruleForm'].clearValidate()
- })
- this.$set(this.param, 'arriveDate', dayjs().format('YYYY-MM-DD HH:mm:ss'))
- this.getplatformReason()
- },
- getplatformReason() {
- platformReasonList().then(res => {
- this.reasonList = res || []
- })
- },
- handleSub() {
- this.$refs.ruleForm.validate((valid) => {
- if (valid) {
- alert('submit!')
- }
- })
- },
- clear() {
- this.pagination.page = 1
- this.filters = {
- selDate: [],
- fastdate: 0,
- }
- this.changeRadio('0')
- },
- handleDetail(row) {
- this.isShowDriver = true
- this.$nextTick(() => {
- this.$refs.DriverDetailRef.id = row.id
- this.$refs.DriverDetailRef.type = 6
- this.$refs.DriverDetailRef.getDetail()
- this.$refs.DriverDetailRef.isShowModal = true
- })
- },
- handleDel() { },
- handleSizeChange(capacity) {
- this.pagination.pageSize = capacity
- }
- }
-}
-</script>
-<style lang="scss" scoped>
-.param_title {
- font-size: 18px;
- font-weight: 600;
- color: #000000;
- margin-bottom: 15px;
-}
-</style>
\ No newline at end of file
diff --git a/admin/src/views/platform/LogisticsRecord/waybill.vue b/admin/src/views/platform/LogisticsRecord/waybill.vue
deleted file mode 100644
index c34af48..0000000
--- a/admin/src/views/platform/LogisticsRecord/waybill.vue
+++ /dev/null
@@ -1,240 +0,0 @@
-<template>
- <div class="main_app">
- <QueryForm v-model="filters" :query-form-config="queryFormConfig" @changeForm='changeForm' @handleQuery="getList(1)"
- @clear="clear">
- <template #fastdate>
- <el-radio-group v-model="filters.fastdate" size="small" @input="changeRadio">
- <el-radio-button label="0">褰撳ぉ</el-radio-button>
- <el-radio-button label="6">杩�7澶�</el-radio-button>
- <el-radio-button label="29">杩�30澶�</el-radio-button>
- </el-radio-group>
- </template>
- </QueryForm>
- <div class="pt16">
- <el-button :loading="exLoading" @click="handleEx"
- v-permissions="['business:platformjob:exportExcel']">瀵煎嚭</el-button>
- </div>
- <el-table class="mb20" v-loading="loading" :data="list" stripe>
- <el-table-column prop="billCode" label="杩愬崟鍙�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="carCodeFront" label="杞︾墝鍓嶇収鍙�" min-width="100" show-overflow-tooltip />
- <!-- <el-table-column prop="carCodeBack" label="杞︾墝鍚庣収鍙�" min-width="100" show-overflow-tooltip /> -->
- <el-table-column prop="taskOrigin" label="浠诲姟鏉ユ簮" min-width="100" show-overflow-tooltip />
- <el-table-column prop="carrierName" label="杩愯緭鍏徃" min-width="100" show-overflow-tooltip />
- <el-table-column prop="driverName" label="鍙告満" min-width="100" show-overflow-tooltip />
- <el-table-column prop="drivierPhone" label="鍙告満鐢佃瘽" min-width="100" show-overflow-tooltip />
- <el-table-column prop="inTypeTemp" label="浣滀笟绫诲瀷" min-width="100" show-overflow-tooltip>
- <template v-slot="scope">
- <span v-if="scope.row.type == '0'">鑷湁杞﹀嵏璐�</span>
- <span v-if="scope.row.type == '1'">鑷湁杞﹁璐�</span>
- <span v-if="scope.row.type == '2'">澶栧崗杞﹀嵏璐�</span>
- <span v-if="scope.row.type == '3'">澶栧崗杞﹁璐�</span>
- <span v-if="scope.row.type == '4'">甯傚叕鍙稿鍗忚溅鍗歌揣</span>
- </template>
- </el-table-column>
- <el-table-column prop="ioCreatedate" label="鍒涘缓鏃堕棿" min-width="150" show-overflow-tooltip />
- <el-table-column prop="name" label="浣滀笟鐘舵��" min-width="100" show-overflow-tooltip>
- <template v-slot="scope">
- <span>{{ statusMap[scope.row.status] }}</span>
- </template>
- </el-table-column>
- <el-table-column prop="name" label="鎿嶄綔" min-width="120" align="center" fixed="right" show-overflow-tooltip>
- <template v-slot="scope">
- <el-button v-if="scope.row.status == '12'" type="text" class="red" v-permissions="['business:platformjob:delete']"
- @click="handleDel(scope.row)">鍒犻櫎</el-button>
- <el-button v-if="scope.row != 12" type="text" v-permissions="['business:platformjob:query']"
- @click="handleDetail(scope.row)">杩愬崟璇︽儏</el-button>
- </template>
- </el-table-column>
- </el-table>
- <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
- <!-- -->
- <!-- -->
- <WaybillDetailRef v-if="isShowDetail" ref="WaybillDetailRef" />
- </div>
-</template>
-
-<script>
-import Pagination from '@/components/common/Pagination'
-import QueryForm from '@/components/common/QueryForm'
-import { platformJobPage, platformJobExport, platformJobDel } from '@/api'
-import { statusMap } from '../config'
-import WaybillDetailRef from "../components/WaybillDetail.vue"
-import GlobalWindow from '@/components/common/GlobalWindow'
-import UploadFaceImg from '@/components/common/UploadFaceImg'
-import { Message } from 'element-ui'
-import dayjs from 'dayjs'
-export default {
- components: {
- Pagination,
- QueryForm,
- WaybillDetailRef,
- GlobalWindow,
- UploadFaceImg
- },
- data() {
- return {
- statusMap,
- isShowDetail: false,
- exLoading: false,
- loading: false,
- pagination: {
- pageSize: 10,
- page: 1,
- total: 0
- },
- filters: {
- selDate: [],
- fastdate: 0
- },
- list: [],
- queryFormConfig: {
- formItems: [
- {
- filed: 'billCode',
- type: 'input',
- label: '杩愬崟鍙�'
- },
- {
- filed: 'driverName',
- type: 'input',
- label: '椹鹃┒鍛�'
- },
- {
- filed: 'carCodeFront',
- type: 'input',
- label: '杞︾墝鍙�'
- },
- {
- filed: 'status',
- type: 'select',
- label: '浣滀笟鐘舵��',
- options: [
- { value: 0, label: '寰呯‘璁�' },
- { value: 1, label: '寰呯鍒�' },
- { value: 2, label: '绛夊緟鍙彿' },
- { value: 3, label: '鍏ュ洯绛夊緟' },
- { value: 4, label: '鏈堝彴绛夊緟' },
- { value: 5, label: '浣滀笟涓�' },
- { value: 6, label: '浣滀笟瀹屾垚' },
- { value: 7, label: '杞Щ涓�' },
- { value: 8, label: '寮傚父鎸傝捣' },
- { value: 9, label: '宸叉巿鏉冪鍥�' },
- { value: 10, label: '宸茬鍥�' },
- { value: 11, label: '宸茶繃鍙�' },
- { value: 12, label: '宸插彇娑�' },
- ]
- },
- {
- filed: 'selDate',
- type: 'datetimerange',
- label: '鎿嶄綔鏃堕棿',
- pickerOptions: {}
- },
- {
- type: 'slot',
- filed: 'fastdate',
- label: ''
- }
- ],
- online: true
- },
- }
- },
- created() {
- this.changeRadio('0')
- },
- methods: {
- changeRadio(day) {
- const arr = [dayjs().subtract(day, 'day').format('YYYY-MM-DD') + ' 00:00:00', dayjs().format('YYYY-MM-DD') + ' 23:59:59']
- this.$set(this.filters, 'selDate', arr)
- this.getList()
- },
- changeForm(str) {
- if (str === 'selDate') {
- this.$set(this.filters, 'fastdate', null)
- this.getList()
- }
- },
- getList(page) {
- const { pagination, filters } = this
- this.loading = true
- platformJobPage({
- model: {
- ...filters,
- jobType: '0',
- createDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null,
- createDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null,
- },
- capacity: pagination.pageSize,
- page: page || pagination.page,
- }).then(res => {
- this.loading = false
- this.list = res.records || []
- this.list.forEach(item => {
- item.inTypeTemp = item.inType == 0 ? '鏁存墭鐩�' : '浠剁儫'
- item.taskOrigin = 'WMS鑾峰彇'
- })
- this.pagination.total = res.total || 0
- }, () => {
- this.loading = false
- })
- },
- handleDel(row) {
- this.$dialog.exportConfirm('纭鍒犻櫎鍚楋紵').then(() => {
- platformJobDel(row.id).then(res => {
- Message.success('鍒犻櫎鎴愬姛')
- this.getList()
- })
- })
- },
- handleEx() {
- this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
- .then(() => {
- this.exLoading = true
- platformJobExport({
- page: this.pagination.page,
- capacity: 1000000,
- jobType: '0',
- model: this.filters
- })
- .then(response => {
- this.download(response)
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.exLoading = false
- })
- })
- },
- clear() {
- this.pagination.page = 1
- this.filters = {
- selDate: [],
- fastdate: 0
- }
- this.changeRadio('0')
- },
- handleDetail(row) {
- this.isShowDetail = true
- this.$nextTick(() => {
- this.$refs.WaybillDetailRef.isShowModal = true
- this.$refs.WaybillDetailRef.id = row.id
- this.$refs.WaybillDetailRef.getDetail()
- })
- },
- handleSizeChange(capacity) {
- this.pagination.pageSize = capacity
- }
- }
-}
-</script>
-<style lang="scss" scoped>
-.param_title {
- font-size: 18px;
- font-weight: 600;
- color: #000000;
- margin-bottom: 15px;
-}
-</style>
\ No newline at end of file
diff --git a/admin/src/views/platform/LogisticsRecord/waybillQuery.vue b/admin/src/views/platform/LogisticsRecord/waybillQuery.vue
deleted file mode 100644
index e9cb826..0000000
--- a/admin/src/views/platform/LogisticsRecord/waybillQuery.vue
+++ /dev/null
@@ -1,181 +0,0 @@
-<template>
- <div class="main_app">
- <QueryForm v-model="filters" :query-form-config="queryFormConfig" @changeForm='changeForm' @handleQuery="getList(1)"
- @clear="clear">
- </QueryForm>
- <div class="pt16">
- <el-button :loading="exLoading" @click="handleEx"
- v-permissions="['business:platformjob:exportExcel']">瀵煎嚭</el-button>
- </div>
- <el-table class="mb20" v-loading="loading" :data="list" stripe>
- <el-table-column prop="billCode" label="濮撳悕" min-width="100" show-overflow-tooltip />
- <el-table-column prop="carCodeFront" label="鎵嬫満鍙�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="taskOrigin" label="钀ラ攢鍖哄煙" min-width="100" show-overflow-tooltip />
- <el-table-column prop="carrierName" label="澶囨敞" min-width="100" show-overflow-tooltip />
- <el-table-column prop="driverName" label="鏈�鍚庢洿鏂版椂闂�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="name" label="鎿嶄綔" min-width="120" align="center" fixed="right" show-overflow-tooltip>
- <template v-slot="scope">
- <el-button v-if="scope.row.status == '12'" type="text" class="red" v-permissions="['business:platformjob:delete']"
- @click="handleDel(scope.row)">鍒犻櫎</el-button>
- <el-button v-if="scope.row != 12" type="text" v-permissions="['business:platformjob:query']"
- @click="handleDetail(scope.row)">缂栬緫</el-button>
- </template>
- </el-table-column>
- </el-table>
- <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
- <!-- -->
- <!-- -->
- <WaybillDetailRef v-if="isShowDetail" ref="WaybillDetailRef" />
- </div>
-</template>
-
-<script>
-import Pagination from '@/components/common/Pagination'
-import QueryForm from '@/components/common/QueryForm'
-import { platformJobPage, platformJobExport, platformJobDel } from '@/api'
-import { statusMap } from '../config'
-import WaybillDetailRef from "../components/WaybillDetail.vue"
-import GlobalWindow from '@/components/common/GlobalWindow'
-import UploadFaceImg from '@/components/common/UploadFaceImg'
-import { Message } from 'element-ui'
-import dayjs from 'dayjs'
-export default {
- components: {
- Pagination,
- QueryForm,
- WaybillDetailRef,
- GlobalWindow,
- UploadFaceImg
- },
- data() {
- return {
- statusMap,
- isShowDetail: false,
- exLoading: false,
- loading: false,
- pagination: {
- pageSize: 10,
- page: 1,
- total: 0
- },
- filters: {
- selDate: [],
- fastdate: 0
- },
- list: [],
- queryFormConfig: {
- formItems: [
- {
- filed: 'name',
- type: 'input',
- label: '濮撳悕'
- },
- {
- filed: 'phone',
- type: 'input',
- label: '鎵嬫満鍙�'
- }
- ],
- online: true
- },
- }
- },
- created() {
- this.changeRadio('0')
- this.getList()
- },
- methods: {
- changeRadio(day) {
- const arr = [dayjs().subtract(day, 'day').format('YYYY-MM-DD') + ' 00:00:00', dayjs().format('YYYY-MM-DD') + ' 23:59:59']
- this.$set(this.filters, 'selDate', arr)
- this.getList()
- },
- changeForm(str) {
- if (str === 'selDate') {
- this.$set(this.filters, 'fastdate', null)
- this.getList()
- }
- },
- getList(page) {
- const { pagination, filters } = this
- this.loading = true
- platformJobPage({
- model: {
- ...filters,
- jobType: '0',
- createDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null,
- createDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null,
- },
- capacity: pagination.pageSize,
- page: page || pagination.page,
- }).then(res => {
- this.loading = false
- this.list = res.records || []
- this.list.forEach(item => {
- item.inTypeTemp = item.inType == 0 ? '鏁存墭鐩�' : '浠剁儫'
- item.taskOrigin = 'WMS鑾峰彇'
- })
- this.pagination.total = res.total || 0
- }, () => {
- this.loading = false
- })
- },
- handleDel(row) {
- this.$dialog.exportConfirm('纭鍒犻櫎鍚楋紵').then(() => {
- platformJobDel(row.id).then(res => {
- Message.success('鍒犻櫎鎴愬姛')
- this.getList()
- })
- })
- },
- handleEx() {
- this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
- .then(() => {
- this.exLoading = true
- platformJobExport({
- page: this.pagination.page,
- capacity: 1000000,
- jobType: '0',
- model: this.filters
- })
- .then(response => {
- this.download(response)
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.exLoading = false
- })
- })
- },
- clear() {
- this.pagination.page = 1
- this.filters = {
- selDate: [],
- fastdate: 0
- }
- this.getList()
- },
- handleDetail(row) {
- this.isShowDetail = true
- this.$nextTick(() => {
- this.$refs.WaybillDetailRef.isShowModal = true
- this.$refs.WaybillDetailRef.id = row.id
- this.$refs.WaybillDetailRef.getDetail()
- })
- },
- handleSizeChange(capacity) {
- this.pagination.pageSize = capacity
- }
- }
-}
-</script>
-<style lang="scss" scoped>
-.param_title {
- font-size: 18px;
- font-weight: 600;
- color: #000000;
- margin-bottom: 15px;
-}
-</style>
\ No newline at end of file
diff --git a/admin/src/views/platform/components/PlatformQueuing.vue b/admin/src/views/platform/components/PlatformQueuing.vue
deleted file mode 100644
index cbd48dc..0000000
--- a/admin/src/views/platform/components/PlatformQueuing.vue
+++ /dev/null
@@ -1,268 +0,0 @@
-<template>
- <GlobalWindow :title="callType == 1 ? '鍙彿鍏ュ洯-' + title : '鏈堝彴鍙彿-' + title" :visible.sync="isShowModal"
- :showConfirm="false" width="800px">
- <div class="queuing_modal">
- <div class="df_ac mb20">
- <span>鎼滅储杞﹁締锛�</span>
- <el-input class="flex1 mr20" v-model="carCodeFront" placeholder="璇疯緭鍏ヨ溅鐗屽彿"></el-input>
- <el-button type="primary" @click="getList">鏌ユ壘</el-button>
- <el-button @click="reset">閲嶇疆</el-button>
- </div>
- <div class="list">
- <div class="item" v-for="item in dataList" :key="item.id">
- <div class="head df_sb">
- <div v-if="item.carCodeFront" class="code">
- <span>{{ item.carCodeFront.slice(0, 1) }}</span>
- <span>{{ item.carCodeFront.slice(1, 2) }}</span>
- <span>路</span>
- <span>{{ item.carCodeFront.slice(2) }}</span>
- </div>
- <div class="status">{{ statusMap[item.status] }}</div>
- </div>
- <div class="info">
- <div v-if="item.billCode" class="ite">
- <span>杩愯緭鍗曞彿锛�</span>
- <span>{{ item.billCode }}</span>
- </div>
- <div v-else class="ite">
- <span>鍚堝悓鍗曞彿锛�</span>
- <span>{{ item.contractNum }}</span>
- </div>
- <div class="ite">
- <span>椹鹃┒鍛橈細</span>
- <span>{{ item.driverName }}</span>
- </div>
- <div class="ite">
- <span>鎵嬫満鍙凤細</span>
- <span>{{ item.drivierPhone }}</span>
- </div>
- <div class="ite">
- <span>鎬昏繍杈撻噺锛�</span>
- <span>{{ item.totalNum || item.ioQty }}涓囨敮</span>
- </div>
- <div v-if="item.billCode" class="ite" style="width: 66%">
- <span>杩愯緭鍏徃锛�</span>
- <span>{{ item.carrierName }}</span>
- </div>
- </div>
- <div class="footer df_sb">
- <div v-if="item.billCode" @click="handleDetail(item)" class="detail">杩愬崟璇︽儏</div>
- <div v-else class="detail" @click="subDetail(item)">棰勭害璇︽儏</div>
- <el-button v-preventReClick :loading="loadingCall" type="primary" @click="handleCall(item)">鍙彿</el-button>
- </div>
- </div>
- </div>
- <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="pagination">
- </pagination>
- </div>
- <!-- -->
- <WaybillDetail ref="WaybillDetailRef" v-if="isShowDetail" @success="getList" @close="isShowDetail = false" />
- <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" />
- </GlobalWindow>
-</template>
-
-<script>
-import GlobalWindow from '@/components/common/GlobalWindow'
-import Pagination from '@/components/common/Pagination'
-import { platformCallList, platformCallNumber, platformInPark } from '@/api'
-import { statusMap } from '../config'
-import { Message } from 'element-ui'
-import WaybillDetail from './WaybillDetail.vue'
-import DriverDetail from "@/views/task/driverDetail.vue"
-export default {
- components: {
- GlobalWindow,
- Pagination,
- WaybillDetail,
- DriverDetail
- },
- data() {
- return {
- statusMap,
- isShowModal: false,
- subLoading: false,
- pagination: {
- total: 0,
- pageSize: 10,
- page: 1
- },
- carCodeFront: '',
- title: '',
- callType: '1',
- activePlat: {},
- dataList: [],
- isShowDetail: false, // 杩愬崟璇︽儏
- isShowDriver: false, // 棰勭害璇︽儏
- loadingCall: false
-
- }
- },
- methods: {
- handleCall(item) {
- const { activePlat, callType } = this
- this.loadingCall = true
- if (callType == 1) { // 鍏ュ洯鍙彿
- platformInPark({
- jobId: item.id,
- platformId: activePlat.id
- }).then(() => {
- this.loadingCall = false
- Message.success('鍙彿鎴愬姛')
- this.$emit('success')
- this.getList()
- },() => {this.loadingCall = false})
- } else {
- this.loadingCall = true
- platformCallNumber({ platformId: activePlat.id, jobId: item.id }).then(res => {
- this.loadingCall = false
- Message.success('鍙彿鎴愬姛')
- this.$emit('success')
- this.getList()
- },()=> {this.loadingCall = false})
- }
- },
- subDetail(row) {
- this.isShowDriver = true
- this.$nextTick(() => {
- this.$refs.DriverDetailRef.id = row.bookId
- this.$refs.DriverDetailRef.type = row.objType
- this.$refs.DriverDetailRef.getDetail()
- this.$refs.DriverDetailRef.isShowModal = true
- })
- },
- handleDetail(row) {
- this.isShowDetail = true
- this.$nextTick(() => {
- this.$refs.WaybillDetailRef.isShowModal = true
- this.$refs.WaybillDetailRef.id = row.id
- this.$refs.WaybillDetailRef.getDetail()
- })
- },
- getList() {
- const { activePlat, pagination, carCodeFront, callType } = this
- platformCallList({
- model: { callType, platformId: activePlat.id, carCodeFront },
- page: pagination.page,
- capacity: pagination.pageSize
- }).then(res => {
- this.dataList = res.records
- this.pagination.total = res.total
- })
- },
- reset() {
- this.carCodeFront = ''
- this.pagination.page = 1
- this.pagination.pageSize = 10
- this.getList()
- },
- handleSizeChange(e) {
- this.pagination.pageSize = e
- this.getList()
- },
- handlePageChange(e) {
- this.pagination.page = e
- this.getList()
- },
- handleSub() {
- const { param } = this
- this.subLoading = true
- PlatformEdit({
- ...param
- }).then(res => {
- this.subLoading = false
- this.isShowEdit = false
- this.$tip.success('鎻愪氦鎴愬姛')
- this.getList()
- }, () => {
- this.subLoading = false
- })
- }
- }
-
-}
-</script>
-
-<style lang="scss" scoped>
-@import "@/assets/style/variables.scss";
-
-.queuing_modal {
- padding: 10px 30px;
-
- .list {
- .item {
- background: #f4fafb;
- border-radius: 2px;
- border: 1px solid #dfe2e8;
- margin-bottom: 10px;
- padding: 16px;
-
- .head {
- margin-bottom: 15px;
-
- .plate {
- width: 90px;
- text-align: center;
- font-size: 15px;
- color: #111111;
- padding: 4px 5px;
- font-weight: 700;
- border: 1px solid #279baa;
- background-color: #fff;
- }
-
- .status {
- color: $primaryColor;
- }
-
- .code {
- display: flex;
- font-weight: 600;
- height: 30px;
- line-height: 30px;
- font-size: 15px;
- color: #111111;
- background-color: #fff;
- border-radius: 4px;
- border: 1px solid $primaryColor;
- padding-right: 4px;
-
- span {
- &:nth-of-type(1) {
- background: $primaryColor;
- padding: 0 8px;
- color: #fff;
- }
-
- &:nth-of-type(2) {
- padding-left: 4px;
- }
- }
- }
- }
-
- .info {
- display: flex;
- flex-wrap: wrap;
-
- .ite {
- width: 33.3%;
- margin-bottom: 8px;
-
- span {
- &:nth-child(1) {
- color: #666666;
- }
- }
- }
- }
-
- .footer {
- .detail {
- color: $primaryColor;
- cursor: pointer;
- }
- }
- }
- }
-}
-</style>
diff --git a/admin/src/views/platform/components/PlatformSign.vue b/admin/src/views/platform/components/PlatformSign.vue
deleted file mode 100644
index d24c2d4..0000000
--- a/admin/src/views/platform/components/PlatformSign.vue
+++ /dev/null
@@ -1,248 +0,0 @@
-<template>
- <GlobalWindow title="杞﹁締绛惧埌" :visible.sync="isShowModal" :showConfirm="false" width="800px">
- <div class="queuing_modal">
- <div class="df_ac mb20">
- <span>鎼滅储杞﹁締锛�</span>
- <el-input class="flex1 mr20" v-model="carCodeFront" placeholder="璇疯緭鍏ヨ溅鐗屽彿"></el-input>
- <el-button type="primary" @click="getList">鏌ユ壘</el-button>
- <el-button @click="reset">閲嶇疆</el-button>
- </div>
- <div class="list">
- <div class="item" v-for="item in dataList" :key="item.id">
- <div class="head df_sb">
- <div v-if="item.carCodeFront" class="code">
- <span>{{ item.carCodeFront.slice(0, 1) }}</span>
- <span>{{ item.carCodeFront.slice(1, 2) }}</span>
- <span>路</span>
- <span>{{ item.carCodeFront.slice(2) }}</span>
- </div>
- <div class="status" :class="{ red: item.status == 0 }">{{ statusMap[item.status] }}</div>
- </div>
- <div class="info">
- <div v-if="item.billCode" class="ite">
- <span>杩愯緭鍗曞彿锛�</span>
- <span>{{ item.billCode }}</span>
- </div>
- <div v-else class="ite">
- <span>鍚堝悓鍗曞彿锛�</span>
- <span>{{ item.contractNum }}</span>
- </div>
- <div class="ite">
- <span>椹鹃┒鍛橈細</span>
- <span>{{ item.driverName }}</span>
- </div>
- <div class="ite">
- <span>鎵嬫満鍙凤細</span>
- <span>{{ item.drivierPhone }}</span>
- </div>
- <div class="ite">
- <span>鎬昏繍杈撻噺锛�</span>
- <span>{{ item.totalNum || item.ioQty }}涓囨敮</span>
- </div>
- <div v-if="item.type != 4" class="ite" style="width: 66%">
- <span>杩愯緭鍏徃锛�</span>
- <span>{{ item.carrierName }}</span>
- </div>
- </div>
- <div class="footer df_sb">
- <div @click="handleDetail(item)" v-if="item.billCode" class="detail">杩愬崟璇︽儏</div>
- <div @click="subDetail(item)" v-else class="detail">棰勭害璇︽儏</div>
- <el-button type="primary" @click="handleCall(item)">绛惧埌</el-button>
- </div>
- </div>
- </div>
- <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="pagination">
- </pagination>
- </div>
- <WaybillDetailRef v-if="isShowDetail" ref="WaybillDetailRef" />
- <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" />
- </GlobalWindow>
-</template>
-
-<script>
-import GlobalWindow from '@/components/common/GlobalWindow'
-import Pagination from '@/components/common/Pagination'
-import WaybillDetailRef from "./WaybillDetail.vue"
-import DriverDetail from "@/views/task/driverDetail.vue"
-import { platformJobPage, platformJobSign } from '@/api'
-import { statusMap } from '../config'
-import { Message } from 'element-ui'
-export default {
- components: {
- GlobalWindow,
- Pagination,
- WaybillDetailRef,
- DriverDetail
- },
- data() {
- return {
- statusMap,
- isShowModal: false,
- isShowDetail: false,
- isShowDriver: false,
- subLoading: false,
- pagination: {
- total: 0,
- pageSize: 10,
- page: 1
- },
- carCodeFront: '',
- // activePlat: {},
- dataList: []
-
- }
- },
- methods: {
- handleCall(item) {
- // const activePlatform = this.activePlat
- platformJobSign({ jobId: item.id, signType: '2' }).then(res => {
- Message.success('绛惧埌鎴愬姛')
- this.$emit('success')
- this.getList()
- })
- },
- getList() {
- const { activePlat, pagination, carCodeFront } = this
- platformJobPage({
- model: { platformGroupId: activePlat.id, queryStatus: '0,1', carCodeFront },
- page: pagination.page,
- capacity: pagination.pageSize
- }).then(res => {
- this.dataList = res.records
- this.pagination.total = res.total
- })
- },
- subDetail(row) {
- this.isShowDriver = true
- this.$nextTick(() => {
- this.$refs.DriverDetailRef.id = row.bookId
- this.$refs.DriverDetailRef.type = row.objType
- this.$refs.DriverDetailRef.getDetail()
- this.$refs.DriverDetailRef.isShowModal = true
- })
- },
- handleDetail(row) {
- this.isShowDetail = true
- this.$nextTick(() => {
- this.$refs.WaybillDetailRef.isShowModal = true
- this.$refs.WaybillDetailRef.id = row.id
- this.$refs.WaybillDetailRef.getDetail()
- })
- },
- reset() {
- this.carCodeFront = ''
- this.pagination.page = 1
- this.pagination.pageSize = 10
- this.getList()
- },
- handleSizeChange(e) {
- this.pagination.pageSize = e
- this.getList()
- },
- handlePageChange(e) {
- this.pagination.page = e
- this.getList()
- },
- handleSub() {
- const { param } = this
- this.subLoading = true
- PlatformEdit({
- ...param
- }).then(res => {
- this.subLoading = false
- this.isShowEdit = false
- this.$tip.success('鎻愪氦鎴愬姛')
- this.getList()
- }, () => {
- this.subLoading = false
- })
- }
- }
-
-}
-</script>
-
-<style lang="scss" scoped>
-@import "@/assets/style/variables.scss";
-
-.queuing_modal {
- padding: 10px 30px;
-
- .list {
- .item {
- background: #f4fafb;
- border-radius: 2px;
- border: 1px solid #dfe2e8;
- margin-bottom: 10px;
- padding: 16px;
-
- .head {
- margin-bottom: 15px;
-
- .plate {
- width: 90px;
- text-align: center;
- font-size: 15px;
- color: #111111;
- padding: 4px 5px;
- font-weight: 700;
- border: 1px solid #279baa;
- background-color: #fff;
- }
-
- .status {
- color: $primaryColor;
- }
-
- .code {
- display: flex;
- font-weight: 600;
- height: 30px;
- line-height: 30px;
- font-size: 15px;
- color: #111111;
- background-color: #fff;
- border-radius: 4px;
- border: 1px solid $primaryColor;
- padding-right: 4px;
-
- span {
- &:nth-of-type(1) {
- background: $primaryColor;
- padding: 0 8px;
- color: #fff;
- }
-
- &:nth-of-type(2) {
- padding-left: 4px;
- }
- }
- }
- }
-
- .info {
- display: flex;
- flex-wrap: wrap;
-
- .ite {
- width: 33.3%;
- margin-bottom: 8px;
-
- span {
- &:nth-child(1) {
- color: #666666;
- }
- }
- }
- }
-
- .footer {
- .detail {
- color: $primaryColor;
- cursor: pointer;
- }
- }
- }
- }
-}
-</style>
diff --git a/admin/src/views/platform/components/WaybillDetail.vue b/admin/src/views/platform/components/WaybillDetail.vue
deleted file mode 100644
index 4cbabfa..0000000
--- a/admin/src/views/platform/components/WaybillDetail.vue
+++ /dev/null
@@ -1,204 +0,0 @@
-<template>
- <GlobalWindow title="杩愬崟璇︽儏" center :visible.sync="isShowModal" width="800px" :confirm-working="subLoading"
- @confirm="isShowModal = false">
- <div class="detail_modal">
- <div class="head">
- <div class="plate" v-if="info.plateNumber">
- <span>{{ info.plateNumber.slice(0, 1) }}</span>
- <span>{{ info.plateNumber.slice(1, 2) }}</span>
- <span>路</span>
- <span>{{ info.plateNumber.slice(2) }}</span>
- </div>
- <div class="list">
- <div class="item">
- <span>杩愯緭鍗曞彿锛�</span>
- <span>{{ info.carryBillCode }}</span>
- </div>
- <div class="item">
- <span>鎬昏繍杈撻噺锛�</span>
- <span>{{ info.ioQty || info.totalNum }}涓囨敮</span>
- </div>
- <div class="item">
- <span>椹鹃┒鍛橈細</span>
- <span>{{ info.driverName }} {{ info.driverPhone }}</span>
- </div>
- </div>
- </div>
- <div class="title">鍚堝悓鍒楄〃</div>
- <div class="content">
- <div class="item" v-for="item in info.wmsJobContractVOList">
- <div class="contract">
- <span>鍚堝悓鍙凤細{{ item.contractCode }}</span>
- <!-- <div> -->
- <span class="scs" v-if="item.status == 1">WMS浣滀笟宸插畬鎴�</span>
- <span class="pad" v-if="item.status == 0">WMS浣滀笟鏈畬鎴�</span>
- <span class="err" v-if="item.status == 2">WMS浣滀笟宸插彇娑�</span>
-
- <span class="scs" v-if="item.lockStatus == 1">鐢靛瓙閿佸凡涓婇攣</span>
- <span class="pad" v-if="item.lockStatus == 0">鐢靛瓙閿佹湭涓婇攣</span>
- <!-- </div> -->
- </div>
- <div class="placeholder6">鏀惰揣鍦帮細{{ item.address }}</div>
- <div class="list">
- <div class="line" v-for="line in item.platformWmsDetailList">
- <div class="left"><span>鐗╂枡鍚嶇О锛�</span><span>{{ line.materialName }}</span></div>
- <div class="right"><span>鏁伴噺锛�</span><span>{{ line.ioQty }}涓囨敮</span></div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </GlobalWindow>
-</template>
-
-<script>
-import GlobalWindow from '@/components/common/GlobalWindow'
-import { platformWmsJobDetail } from '@/api'
-export default {
- components: {
- GlobalWindow
- },
- data() {
- return {
- isShowModal: false,
- subLoading: false,
- info: {},
- id: ''
-
- }
- },
- methods: {
- getDetail() {
- const { id } = this
- platformWmsJobDetail(id).then(res => {
- this.info = res
- })
- }
- }
-
-}
-</script>
-
-<style lang="scss" scoped>
-@import "@/assets/style/variables.scss";
-
-.detail_modal {
- font-size: 12px;
- color: #282828;
-
- .head {
- background: rgba(39, 155, 170, 0.05);
- border-radius: 4px;
- border: 1px solid #dfe2e8;
- padding: 16px;
-
- .plate {
- display: flex;
- font-weight: 600;
- height: 30px;
- line-height: 30px;
- font-size: 15px;
- color: #111111;
- background-color: #fff;
- border-radius: 4px;
- border: 1px solid $primaryColor;
- padding-right: 4px;
- width:106px;
- span {
- &:nth-of-type(1) {
- background: $primaryColor;
- padding: 0 8px;
- color: #fff;
- }
-
- &:nth-of-type(2) {
- padding-left: 4px;
- }
- }
- }
-
- .list {
- display: flex;
- flex-wrap: wrap;
- margin-top: 16px;
-
- .item {
- width: 50%;
- margin-bottom: 8px;
-
- span {
- &:nth-child(1) {
- color: #666666;
- }
- }
- }
- }
- }
-
- .title {
- margin: 16px 0;
- font-weight: 500;
- font-size: 16px;
- color: #222222;
- }
-
- .content {
- .item {
- border-radius: 4px;
- border: 1px solid #dfe2e8;
- padding: 16px;
- margin-bottom: 10px;
-
- .list {
- background: #f7f7f7;
- border-radius: 4px;
- padding: 12px 16px;
- margin-top: 10px;
- }
-
- .contract {
- font-weight: 500;
- font-size: 15px;
- color: #279baa;
- margin-bottom: 4px;
- display: flex;
- justify-content: space-between;
- .scs{
- color: #00ba67;
- }
- .pad{
- color: #f19c3f;
- }
- .err{
- color: red;
- }
- }
-
- .line {
- display: flex;
- margin-bottom: 8px;
-
- &:nth-last-child(1) {
- margin: 0;
- }
-
- div {
- span {
- &:nth-child(1) {
- color: #666666;
- }
- }
- }
-
- .left {
- flex: 6;
- }
-
- .right {
- flex: 4;
- }
- }
- }
- }
-}
-</style>
diff --git a/admin/src/views/platform/components/oilImportTem.vue b/admin/src/views/platform/components/oilImportTem.vue
deleted file mode 100644
index 415b5e0..0000000
--- a/admin/src/views/platform/components/oilImportTem.vue
+++ /dev/null
@@ -1,85 +0,0 @@
-<template>
- <el-dialog
- class="center-title"
- :title="title"
- width="500px"
- top="30vh"
- :visible.sync="visible"
- :confirm-working="isWorking"
- @confirm="confirm"
- >
- <p class="tip-warn"><i class="el-icon-warning"></i>瀵煎叆璇存槑锛�<br>
- 1.璇峰厛涓嬭浇鏂囦欢妯℃澘锛屽苟鎸夌収妯℃澘瑕佸幓濉啓琛ㄦ牸鍐呭;<br>
- </p>
- <el-form class="demo-form-inline" >
- <el-form-item label="鏂囦欢妯℃澘" required>
- <div style="width: 100%;display: flex;align-items: center;">
- <el-button type="primary" @click="clickRef">鐐瑰嚮涓婁紶</el-button>
- <el-button type="text" @click="exportTemplate">鐐瑰嚮涓嬭浇妯$増.EXCEL</el-button>
- </div>
- <div style="font-size: 14px; color: black;" v-if="fileName">{{fileName}}</div>
- </el-form-item>
- </el-form>
- <input type="file" style="position: fixed; left: 0; top: -50px;" accept=".xlsx" ref="fileExcel" @change="result" />
- <template v-slot:footer>
- <el-button @click="visible=false">杩斿洖</el-button>
- </template>
- </el-dialog>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalWindow from '@/components/common/GlobalWindow'
-import { importExcel2 } from '@/api/business/member'
-export default {
- name: 'OperaMemberImportWindow',
- extends: BaseOpera,
- // eslint-disable-next-line vue/no-unused-components
- components: { GlobalWindow },
- data () {
- return {
- importing:false,
- fileName: '',
- companyType: 0
- }
- },
- methods: {
- open (title, companyType) {
- this.title = title
- this.fileName = ''
- this.visible = true
- // this.companyType = companyType
- },
- // 瀵煎嚭妯℃澘
- exportTemplate () {
- // 鎶曚繚鐢宠
- window.open('/template/oil.xlsx')
- },
- clickRef () {
- this.$refs.fileExcel.click()
- },
- result (e) {
- const data = new FormData()
- data.append('file', e.target.files[0])
- // data.append('companyType', this.companyType)
- importExcel2(data)
- .then(res => {
- this.$message.success('瀵煎叆鎴愬姛')
- this.$emit('success')
- this.visible = false
- })
- .catch(err => {
- // this.$message.error(err)
- this.fileName = ''
- })
- .finally(() => {
- this.$refs.fileExcel.value = null
- })
- }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-
-</style>
diff --git a/admin/src/views/platform/config.js b/admin/src/views/platform/config.js
deleted file mode 100644
index add62d5..0000000
--- a/admin/src/views/platform/config.js
+++ /dev/null
@@ -1,26 +0,0 @@
-export const statusMap = {
- 0: '寰呯‘璁�',
- 1: '寰呯鍒�',
- 2: '绛夊緟鍙彿',
- 3: '鍏ュ洯绛夊緟',
- 4: '鏈堝彴绛夊緟', // 宸插彨鍙�
- 5: '浣滀笟涓�',
- 6: '浣滀笟瀹屾垚',
- 7: '杞Щ涓�',
- 8: '寮傚父鎸傝捣',
- 9: '宸叉巿鏉冪鍥�',
- 10: '宸茬鍥�',
- 11: '宸茶繃鍙�',
- 12: '宸插彇娑�',
-}
-export const queryQueueUpConfig = {
- formItems: [
- {
- filed: 'carCodeFront',
- type: 'input',
- label: '鎼滅储杞﹁締',
- placeholder: '璇疯緭鍏ヨ溅鐗屽彿'
- },
- ],
- online: true
-}
\ No newline at end of file
diff --git a/admin/src/views/platform/gas.vue b/admin/src/views/platform/gas.vue
deleted file mode 100644
index 7cb6c13..0000000
--- a/admin/src/views/platform/gas.vue
+++ /dev/null
@@ -1,116 +0,0 @@
-<template>
- <TableLayout :permissions="['business:platformwatergas:query']">
- <SearchFormCollapse slot="search-form" :need-more="false">
- <el-form ref="searchForm" :model="searchForm" label-width="100px" inline >
- <el-form-item title="璇烽�夋嫨骞存湀鏃堕棿" label="" prop="timeInfo" >
- <el-date-picker
- @change="search"
- v-model="searchForm.timeInfo"
- format="yyyy-MM"
- placeholder="璇烽�夋嫨骞存湀鏃堕棿"
- value-format="yyyy-MM-dd HH:mm:ss"
- type="month"
- />
- </el-form-item>
- <section>
- <el-button type="primary" @click="search">鎼滅储</el-button>
- <el-button @click="reset">閲嶇疆</el-button>
- </section>
- </el-form>
- </SearchFormCollapse>
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:platformwatergas:create','business:platformwatergas:delete','business:notice:exportExcel']">
- <li><el-button type="primary" @click="$refs.OperaPlatformGasWindow.open('鏂板缓鐢ㄦ皵')" icon="el-icon-plus" v-permissions="['business:platformwatergas:create']">鏂板缓</el-button></li>
- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:platformwatergas:delete']">鍒犻櫎</el-button></li>
- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:notice:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="timeInfo" label="浣跨敤鏈堜唤" fixed min-width="100px">
- <template slot-scope="{row}">
- {{(row.timeInfo || row.timeInfo.length >7 )?row.timeInfo.substr(0,7):'-'}}
- </template>
- </el-table-column>
- <el-table-column prop="num" label="鐢ㄦ皵閲忥紙绔嬫柟绫筹級" fixed min-width="150px"></el-table-column>
- <el-table-column prop="content" label="璇存槑" min-width="120px"></el-table-column>
- <el-table-column prop="editDate" label="鏈�杩戞搷浣滄椂闂�" min-width="140px"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:platformwatergas:update', 'business:platformwatergas:delete'])"
- label="鎿嶄綔"
- align="center"
- min-width="150"
- fixed="right"
- >
- <template slot-scope="{row}">
- <el-button type="text" @click="$refs.OperaPlatformGasWindow.open('缂栬緫鐢ㄦ皵', row)" icon="el-icon-edit" v-permissions="['business:platformwatergas:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:platformwatergas:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaPlatformGasWindow ref="OperaPlatformGasWindow" @success="handlePageChange"/>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import SearchFormCollapse from '@/components/common/SearchFormCollapse'
-import Pagination from '@/components/common/Pagination'
-import OperaPlatformGasWindow from '@/components/business/OperaPlatformGasWindow'
-import { allList } from '@/api/platform/platformGroup'
-export default {
- name: 'Platform',
- extends: BaseTable,
- components: { SearchFormCollapse, TableLayout, Pagination, OperaPlatformGasWindow },
- data () {
- return {
- groupList: [],
- // 鎼滅储
- working: false,
- working1: false,
- searchForm: {
- timeInfo: '',
- type: 1
- }
- }
- },
- created () {
- this.config({
- module: '鐢ㄦ皵淇℃伅琛�',
- api: '/platform/platformWaterGas',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- this.loadGroupList()
- },
- methods: {
- loadGroupList () {
- allList({})
- .then(res => {
- this.groupList = res || []
- })
- },
- changeStatus (e, row) {
- this.api.updateStatusById({
- id: row.id,
- status: e
- })
- }
- }
-}
-</script>
diff --git a/admin/src/views/platform/index.vue b/admin/src/views/platform/index.vue
deleted file mode 100644
index e12c639..0000000
--- a/admin/src/views/platform/index.vue
+++ /dev/null
@@ -1,682 +0,0 @@
-<template>
- <div class="main_app">
- <div class="mb20 main_header">
- <div class="platgroup_tabs">
- <div class="tab" :class="{ active: activeGroup.id === item.id }" @click="platgroupClick(item)"
- v-for="(item, i) in PlatGroupList" :key="i">
- {{ item.name }}
- </div>
- </div>
- <div class="btns">
- <!-- <el-button type="primary" @click="handleSet">鍒锋柊</el-button> -->
- <el-button type="primary" class="ml20" @click="handleSet">閰嶇疆鏈堝彴</el-button>
- </div>
- </div>
- <!-- -->
- <div v-if="activeGroup.platformList" class="platform_list">
- <div class="item" :class="{ emyty: item.workStatus == 0 }" v-for="(item, i) in activeGroup.platformList" :key="i">
- <div class="head">
- <div class="left">
- <div class="status mr10">
- {{ item.workStatus == "0" ? "绌洪棽" : "浣滀笟涓�" }}
- </div>
- <div class="name">{{ item.name }}</div>
- <div class="ite">
- <span class="placeholder9">浣滀笟锛�</span><span>{{ item.platformWorkVO.workNum }}</span>
- </div>
- <div class="ite">
- <span class="placeholder9">宸插彨锛�</span><span>{{ item.platformWorkVO.callNum }}</span>
- </div>
- <div class="ite">
- <span class="placeholder9">绛夊緟锛�</span><span>{{ item.platformWorkVO.waitNum }}</span>
- </div>
- <div class="ite">
- <span class="placeholder9">寮傚父锛�</span><span class="red">{{ item.platformWorkVO.exceptionNum }}</span>
- </div>
- </div>
- <el-button @click="handleQueuing(item, 1)">鍙彿鍏ュ洯</el-button>
- <el-button type="primary" @click="handleQueuing(item, 2)">鏈堝彴鍙彿</el-button>
- </div>
- <div class="list" v-if="item.platformWorkVO && item.platformWorkVO.platformJobList">
- <div class="info" :class="{ err: task.status == 8 }" v-for="task in item.platformWorkVO.platformJobList"
- :key="task.id">
- <div class="line">
- <div class="left">
- <div v-if="task.carCodeFront" class="code">
- <span>{{ task.carCodeFront.slice(0, 1) }}</span>
- <span>{{ task.carCodeFront.slice(1, 2) }}</span>
- <span>路</span>
- <span>{{ task.carCodeFront.slice(2) }}</span>
- </div>
- </div>
- <div class="right">
- <div class="status_item" v-if="task.status != 4 && task.status != 5" :class="{ red: task.status == 8 }">
- <span class="lab">{{ statusMap[task.status] }}</span>
- </div>
- <div class="status_item" v-if="task.status == 4">
- <span class="lab">鍙彿涓�</span> {{ task.callDateTemp }}
- </div>
- <div class="status_item scs" v-if="task.status == 5">
- <span class="lab">浣滀笟涓�</span> {{ task.startDateTemp }}
- </div>
- </div>
- </div>
- <div class="line">
- <div v-if="task.billCode" style="width: 40%;" class="ite">
- <span>杩愯緭鍗曞彿锛�</span>
- <span>{{ task.billCode }}</span>
- </div>
- <div v-else class="ite" style="width: 40%;">
- <span>鍚堝悓鍗曞彿锛�</span>
- <span>{{ task.contractNum }}</span>
- </div>
- <div class="ite jiashi">
- <span>椹鹃┒鍛橈細</span>
- <span>{{ task.driverName }} {{ task.drivierPhone }}</span>
- </div>
- <!-- <div class="ite phone">
- <span>鎵嬫満鍙凤細</span>
- <span>{{ task.drivierPhone }}</span>
- </div> -->
- <div class="ite" style="width: 40%">
- <span>鎬昏繍杈撻噺锛�</span>
- <span>{{ task.totalNum || task.ioQty }}涓囨敮</span>
- </div>
- <div v-if="task.billCode" class="ite" style="width: 60%">
- <span>杩愯緭鍏徃锛�</span>
- <span>{{ task.carrierName }}</span>
- </div>
- <!-- <div class="ite"></div> -->
- </div>
- <div class="line">
- <div class="left">
- <span v-if="task.billCode" class="primaryColor pointer" @click="handleDetail(task)">杩愬崟璇︽儏</span>
- <span v-else class="primaryColor pointer" @click="subDetail(task)">棰勭害璇︽儏</span>
- </div>
- <div class="right">
- <el-button v-if="task.status == 5" plain @click="handleErr(task)">寮傚父鎸傝捣</el-button>
- <el-button v-if="task.status == 5 || task.status == 8" plain
- @click="handleTransform(item, task)">杞Щ鏈堝彴</el-button>
- <el-button v-if="task.status == 4" plain @click="handlePass(task)">杩囧彿</el-button>
- <el-button v-preventReClick :loading="loadingFinish" v-if="task.status == 5 || task.status == 8" type="primary"
- @click="handleFinish(task)">浣滀笟瀹屾垚</el-button>
- <el-button v-preventReClick :loading="loadingOpen" v-if="task.status == 4" type="primary" @click="handleWork(task)">寮�濮嬩綔涓�</el-button>
- </div>
- </div>
- </div>
- </div>
- <div v-if="!item.platformWorkVO.platformJobList || item.platformWorkVO.platformJobList.length == 0"
- class="empty_plat">
- <img src="@/assets/images/default_nodata.png" alt="">
- <div>鏆傛棤杞﹁締</div>
- </div>
- </div>
- </div>
- <!-- 閰嶇疆鏄剧ず鏈堝彴 -->
- <GlobalWindow title="閰嶇疆鏄剧ず鏈堝彴" :visible.sync="isShowSet" :confirm-working="setLoading" @confirm="handleSetSub"
- width="560px">
- <div class="set_modal">
- <div class="mb10" v-for="group in PlatGroupListSet" :key="group.id">
- <div class="title">{{ group.name }}</div>
- <div class="list">
- <div class="item" @click="platformSetClick(item.id)" :class="{ active: item.showConfig }"
- v-for="item in group.platformList" :key="item.id">
- <div>{{ item.name }}</div>
- <div v-if="item.showConfig" class="bg"></div>
- <i v-if="item.showConfig" class="el-icon-check scs"></i>
- </div>
- </div>
- </div>
- </div>
- </GlobalWindow>
- <!-- 杩愬崟璇︽儏 -->
- <!-- -->
- <!-- 鍙彿 -->
- <PlatformQueuing ref="PlatformQueuingRef" v-if="isShowQueuing" @success="getPlatGroupList"
- @close="isShowQueuing = false" />
- <WaybillDetail ref="WaybillDetailRef" v-if="isShowDetail" @success="getList" @close="isShowDetail = false" />
- <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" />
- <el-dialog title="杞Щ鏈堝彴" :visible.sync="isShowTransform" width="500px" style="margin-top: 12vh">
- <div class="df_ac">
- <span>閫夋嫨杞Щ鍒扮殑鏈堝彴锛�</span>
- <el-select v-model="activePlatId">
- <el-option v-for="item in activeGroup.platformList" :key="item.id" :label="item.name" :value="item.id">
- </el-option>
- </el-select>
- </div>
- <span slot="footer" class="dialog-footer">
- <el-button @click="isShowTransform = false">鍙栨秷</el-button>
- <el-button v-preventReClick type="primary" @click="transformSub">纭畾</el-button>
- </span>
- </el-dialog>
- </div>
-</template>
-
-<script>
-import {
- getPlatformGroupList,
- platformBeginWork,
- platformFinishWork,
- platformOverNumber,
- platformErr,
- platformMove,
- updUserPlatformConfig,
-
- listByGroupId
-} from '@/api'
-import PlatformQueuing from './components/PlatformQueuing.vue'
-import WaybillDetail from './components/WaybillDetail.vue'
-import DriverDetail from "@/views/task/driverDetail.vue"
-import GlobalWindow from '@/components/common/GlobalWindow'
-import dayjs from 'dayjs'
-import duration from 'dayjs/plugin/duration'
-import { Loading, Message } from 'element-ui'
-import { statusMap } from './config'
-dayjs.extend(duration)
-export default {
- components: {
- PlatformQueuing,
- WaybillDetail,
- DriverDetail,
- GlobalWindow
- },
- data() {
- return {
- statusMap,
- activeGroup: {},
- PlatGroupList: [],
- PlatGroupListSet: [],
- platList: [],
- platCallList: [],
- isShowTransform: false,
- activePlatId: '', // 杞Щ鏈堝彴
- activetaskId: '',
-
- isShowSet: false, // 鏈堝彴閰嶇疆
- setLoading: false,
-
- setParam: {},
- isShowDetail: false, // 杩愬崟璇︽儏
- isShowDriver: false, // 棰勭害璇︽儏
- detail: {},
- isShowQueuing: false,
- timer: null,
-
- loadingOpen: false,
- loadingFinish: false,
- }
- },
- created() {
- setInterval(() => {
- this.getPlatGroupList()
- }, 1000 * 20)
- this.getPlatGroupList()
- },
- methods: {
- handleWork(item) {
- this.loadingOpen = true
- platformBeginWork({ jobId: item.id }).then(res => {
- this.loadingOpen = false
- Message.success('宸插紑濮嬩綔涓�')
- this.getPlatGroupList()
- }, () => {
- this.loadingOpen = false
- })
- },
- handleFinish(item) {
- this.loadingFinish = true
- platformFinishWork({ jobId: item.id }).then(res => {
- this.loadingFinish = false
- Message.success('瀹屾垚浣滀笟')
- this.getPlatGroupList()
- },() => {
- this.loadingFinish = false
- })
- },
- handleTransform(item, task) {
- this.activePlatId = item.id
- this.activetaskId = task.id
- this.isShowTransform = true
- },
- transformSub() {
- const { activePlatId, activetaskId } = this
- platformMove({ platformId: activePlatId, jobId: activetaskId }).then(res => {
- Message.success('杞Щ鏈堝彴鎴愬姛')
- this.isShowTransform = false
- this.getPlatGroupList()
- })
- },
- handlePass(item) {
- this.$confirm(`纭 ${item.carCodeFront}缃负杩囧彿鍚楋紵杩囧彿鍚庯紝闇�瑕侀噸鏂扮鍒版墠鑳借繘鍏ュ洯鍖篳, '娓╅Θ鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- platformOverNumber({ jobId: item.id }).then(ress => {
- Message.success('杩囧彿鎴愬姛')
- this.getPlatGroupList()
- })
- })
- },
- handleErr(item) {
- this.$confirm('鎮ㄧ‘璁よ瀵硅浠诲姟杩涜寮傚父鎸傝捣鍚�', '娓╅Θ鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- platformErr({ jobId: item.id }).then(ress => {
- Message.success('寮傚父鎸傝捣鎴愬姛')
- this.getPlatGroupList()
- })
- })
- },
- platgroupClick(item) {
- this.activeGroup = { ...item }
- this.circulInitTaskList()
- this.timer = setInterval(() => {
- this.circulInitTaskList()
- }, 1000)
- },
- getPlatGroupList() {
- getPlatformGroupList({
- queryData: 1,
- queryType: 1
- }).then(res => {
- this.PlatGroupList = res || []
- if (res.length > 0) {
- if (this.activeGroup && this.activeGroup.id) {
- this.activeGroup = res.find(item => item.id === this.activeGroup.id)
- } else {
- this.activeGroup = res[0]
- }
- this.circulInitTaskList()
- this.timer = setInterval(() => {
- this.circulInitTaskList()
- }, 1000)
- }
- })
- },
- circulInitTaskList() {
- if (this.activeGroup && this.activeGroup.platformList && this.activeGroup.platformList.length > 0) {
- const time = new Date()
- this.activeGroup.platformList.forEach(plat => {
- if (plat.platformWorkVO.platformJobList && plat.platformWorkVO.platformJobList.length > 0) {
- plat.platformWorkVO.platformJobList.forEach(item => {
- if (item.newCallDate) {
- const timeNum = time.getTime() - new Date(item.newCallDate).getTime()
- if (timeNum > 3600000) {
- item.callDateTemp = dayjs.duration(timeNum).format('H灏忔椂m鍒唖绉�')
- } else {
- item.callDateTemp = dayjs.duration(timeNum).format('m鍒唖绉�')
- }
- }
- if (item.newStartDate) {
- const timeNum = time.getTime() - new Date(item.newStartDate).getTime()
- if (timeNum > 3600000) {
- item.startDateTemp = dayjs.duration(timeNum).format('H灏忔椂m鍒唖绉�')
- } else {
- item.startDateTemp = dayjs.duration(timeNum).format('m鍒唖绉�')
- }
- }
- })
- }
- })
- this.$forceUpdate()
- }
- },
- handleQueuing(item, callType) {
- this.isShowQueuing = true
- this.$nextTick(() => {
- this.$refs.PlatformQueuingRef.isShowModal = true
- this.$refs.PlatformQueuingRef.callType = callType
- this.$refs.PlatformQueuingRef.carCodeFront = ''
- this.$refs.PlatformQueuingRef.pagination = {
- total: 0,
- pageSize: 10,
- page: 1
- }
- this.$refs.PlatformQueuingRef.activePlat = { ...item }
- this.$refs.PlatformQueuingRef.getList()
- this.$refs.PlatformQueuingRef.title = item.name
- })
- },
- subDetail(row) {
- this.isShowDriver = true
- this.$nextTick(() => {
- this.$refs.DriverDetailRef.id = row.bookId
- this.$refs.DriverDetailRef.type = 6
- this.$refs.DriverDetailRef.getDetail()
- this.$refs.DriverDetailRef.isShowModal = true
- })
- },
- handleDetail(row) {
- this.isShowDetail = true
- this.$nextTick(() => {
- this.$refs.WaybillDetailRef.isShowModal = true
- this.$refs.WaybillDetailRef.id = row.id
- this.$refs.WaybillDetailRef.getDetail()
- })
- },
- getList() {
- const { groupId } = this
- listByGroupId(groupId).then(res => {
- this.platList = res
- })
- },
- handleSet() {
- this.isShowSet = true
- getPlatformGroupList({
- queryData: 0,
- queryType: 1
- }).then(res => {
- this.PlatGroupListSet = res || []
- })
- },
- handleSetSub() {
- const { PlatGroupListSet } = this
- const ids = []
- PlatGroupListSet.forEach(item => {
- item.platformList.forEach(platform => {
- if (platform.showConfig) {
- ids.push(platform.id)
- }
- })
- })
- this.setLoading = true
- updUserPlatformConfig(ids).then(res => {
- this.setLoading = false
- Message.success('鏇存柊鎴愬姛')
- this.isShowSet = false
- this.getPlatGroupList()
- }, () => {
- this.setLoading = false
- })
- },
- platformSetClick(id) {
- const { PlatGroupListSet } = this
- PlatGroupListSet.forEach(item => {
- item.platformList.forEach(platform => {
- if (platform.id === id) {
- platform.showConfig = !platform.showConfig
- }
- })
- })
- }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-@import "@/assets/style/variables.scss";
-
-.platform_list {
- width: 100%;
-
- .item {
- /* padding: 16px 24px; */
- background: #ffffff;
- border-radius: 2px;
- border: 1px solid #dfe2e8;
- margin-bottom: 12px;
- width: 100%;
-
- .head {
- display: flex;
- justify-content: space-between;
- align-items: center;
- height: 50px;
- background: linear-gradient(270deg, #FFFFFF 0%, #EBF6F7 100%);
- border-radius: 2px 2px 0px 0px;
- padding: 0 20px;
-
- .shengyin {
- width: 12px;
- height: 12px;
- margin-right: 3px;
- }
-
- .left {
- flex: 1;
- display: flex;
- align-items: center;
-
- .name {
- font-size: 16px;
- margin-right: 50px;
- }
-
- .status {
- line-height: 25px;
- height: 25px;
- background: #00ba67;
- border-radius: 2px;
- color: #ffffff;
- padding: 0 6px;
- }
-
- .ite {
- margin-right: 30px;
- }
- }
- }
-
- .list {
- display: flex;
- flex-wrap: wrap;
- margin-top: 10px;
- padding: 16px;
- width: calc(100% - 0);
-
- .info {
- background: #f4fafb;
- border-radius: 2px;
- border: 1px solid #dfe2e8;
- padding: 16px;
- border-radius: 2px;
- margin-bottom: 10px;
- width: calc(31.6% - 22px);
- margin-right: 10px;
-
- &:nth-of-type(3n) {
- margin-right: 0;
- }
-
- .status_item {
- .lab {
- font-weight: 500;
- }
-
- color: #00ba67;
- }
-
- .line {
- display: flex;
- align-items: center;
- justify-content: space-between;
- flex-wrap: wrap;
- margin-bottom: 6px;
-
- .ite {
- width: 50%;
- margin-top: 8px;
- }
-
- .jiashi {
- width: 60%;
- }
-
- .phone {
- width: 37.6%;
- }
-
- .left {
- .code {
- display: flex;
- font-weight: 600;
- height: 30px;
- line-height: 30px;
- font-size: 15px;
- color: #111111;
- background-color: #fff;
- border-radius: 4px;
- border: 1px solid $primaryColor;
- padding-right: 4px;
-
- span {
- &:nth-of-type(1) {
- background: $primaryColor;
- padding: 0 8px;
- color: #fff;
- }
-
- &:nth-of-type(2) {
- padding-left: 4px;
- }
- }
- }
- }
-
- .right {
- display: flex;
- align-items: center;
- }
- }
- }
-
- .jobing {
- background: #effbf5;
-
- .status {
- color: #00ba67;
- }
- }
-
- .err {
- background: #fef6f6;
-
- .status {
- color: #ed4545;
- }
- }
- }
-
- .empty_plat {
- width: 100%;
- height: 170px;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- font-size: 12px;
- color: #B2B2B2;
-
- img {
- width: 110px;
- }
- }
- }
-
- .emyty {
- .head {
- background: linear-gradient(270deg, #FFFFFF 0%, #F7F7F7 100%) !important;
- }
-
- .status {
- background: #CCCCCC !important;
- }
- }
-}
-
-.main_header {
- display: flex;
- position: relative;
-
- .platgroup_tabs {
- flex: 1;
- display: flex;
- border-bottom: 1px solid #dfe2e8;
-
- .tab {
- color: #666666;
- margin-right: 40px;
- cursor: pointer;
- padding-bottom: 18px;
- border-bottom: 2px solid #fff;
- }
-
- .active {
- font-weight: 500;
- font-size: 15px;
- color: #222222;
- border-bottom: 2px solid $primary-color;
- }
- }
-
- .btns {
- position: absolute;
- width: 180px;
- height: 36px;
- right: 0;
- top: -4px;
- display: flex;
- justify-content: flex-end;
- }
-}
-
-/* */
-.set_modal {
- .title {
- font-size: 16px;
- font-weight: 600;
- margin-bottom: 16px;
- }
-
- .list {
- display: flex;
- flex-wrap: wrap;
-
- .item {
- cursor: pointer;
- padding: 0 36px;
- height: 36px;
- border: 1px solid #dfe2e8;
- display: flex;
- justify-content: center;
- align-items: center;
- border-radius: 2px;
- margin-bottom: 10px;
- margin-right: 13px;
- position: relative;
- overflow: hidden;
-
- .bg {
- position: absolute;
- right: -12px;
- bottom: -12px;
- width: 24px;
- height: 24px;
- background: $primaryColor;
- transform: rotate(45deg);
- }
-
- .scs {
- position: absolute;
- right: -1px;
- bottom: -1px;
- color: #fff;
- z-index: 99999;
- transform: scale(.8)
- }
- }
-
- .active {
- background: rgba(39, 155, 170, 0.06);
- border: 1px solid $primaryColor;
- color: $primaryColor;
- }
- }
-}
-
-/* */
-/* */
-</style>
diff --git a/admin/src/views/platform/oil.vue b/admin/src/views/platform/oil.vue
deleted file mode 100644
index a6b5680..0000000
--- a/admin/src/views/platform/oil.vue
+++ /dev/null
@@ -1,138 +0,0 @@
-<template>
- <TableLayout :permissions="['business:platformwatergas:query']">
- <SearchFormCollapse slot="search-form" :need-more="false">
- <el-form ref="searchForm" :model="searchForm" label-width="100px" inline >
- <el-form-item title="璇疯緭鍏ヨ溅鐗屽彿" >
- <el-input v-model="searchForm.carCode" clearable placeholder="璇疯緭鍏ヨ溅鐗屽彿" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="浣跨敤鏃堕棿锛�" >
- <el-date-picker
- @change="search"
- v-model="searchForm.startTime"
- format="yyyy-MM"
- style="width: 140px"
- placeholder="寮�濮嬫椂闂�"
- value-format="yyyy-MM-dd HH:mm:ss"
- type="month"
- />~
- <el-date-picker
- @change="search"
- v-model="searchForm.endTime"
- format="yyyy-MM"
- style="width: 140px"
- placeholder="缁撴潫鏃堕棿"
- value-format="yyyy-MM-dd HH:mm:ss"
- type="month"
- />
- </el-form-item>
- <section>
- <el-button type="primary" @click="search">鎼滅储</el-button>
- <el-button @click="reset">閲嶇疆</el-button>
- </section>
- </el-form>
- </SearchFormCollapse>
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:platformwatergas:create','business:platformwatergas:delete','business:notice:exportExcel']">
- <li><el-button type="primary" @click="$refs.OperaPlatformOilWindow.open('鏂板缓娌硅��')" icon="el-icon-plus" v-permissions="['business:platformwatergas:create']">鏂板缓</el-button></li>
- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:platformwatergas:delete']">鍒犻櫎</el-button></li>
- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:platformwatergas:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:platformwatergas:exportExcel']" @click="handleImport">瀵煎叆</el-button>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="carCode" label="杞︾墝鍙�" fixed min-width="150px"></el-table-column>
- <el-table-column prop="timeInfo" label="浣跨敤鏈堜唤" fixed min-width="100px">
- <template slot-scope="{row}">
- {{(row.timeInfo || row.timeInfo.length >7 )?row.timeInfo.substr(0,7):'-'}}
- </template>
- </el-table-column>
- <el-table-column prop="num" label="娌硅�楋紙鍗囷級" fixed min-width="150px"></el-table-column>
- <el-table-column prop="content" label="璇存槑" min-width="120px"></el-table-column>
- <el-table-column prop="editDate" label="鏈�杩戞搷浣滄椂闂�" min-width="140px"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:platformwatergas:update', 'business:platformwatergas:delete'])"
- label="鎿嶄綔"
- align="center"
- min-width="150"
- fixed="right"
- >
- <template slot-scope="{row}">
- <el-button type="text" @click="$refs.OperaPlatformOilWindow.open('缂栬緫娌硅��', row)" icon="el-icon-edit" v-permissions="['business:platformwatergas:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:platformwatergas:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaPlatformOilWindow ref="OperaPlatformOilWindow" @success="handlePageChange"/>
- <oilImportTem ref="oilImportTem" @success="handlePageChange"/>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import SearchFormCollapse from '@/components/common/SearchFormCollapse'
-import Pagination from '@/components/common/Pagination'
-import OperaPlatformOilWindow from '@/components/business/OperaPlatformOilWindow'
-import { allList } from '@/api/platform/platformGroup'
-import oilImportTem from './components/oilImportTem'
-export default {
- name: 'Platform',
- extends: BaseTable,
- components: { SearchFormCollapse, TableLayout, Pagination, OperaPlatformOilWindow, oilImportTem },
- data () {
- return {
- groupList: [],
- // 鎼滅储
- working: false,
- working1: false,
- searchForm: {
- carCode:'',
- startTime: '',
- endTime: '',
- type: 2
- }
- }
- },
- created () {
- this.config({
- module: '娌硅�椾俊鎭〃',
- api: '/platform/platformWaterGas',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- this.loadGroupList()
- },
- methods: {
- handleImport() {
- this.$refs.oilImportTem.open('鎵归噺瀵煎叆')
- },
- loadGroupList () {
- allList({})
- .then(res => {
- this.groupList = res || []
- })
- },
- changeStatus (e, row) {
- this.api.updateStatusById({
- id: row.id,
- status: e
- })
- }
- }
-}
-</script>
diff --git a/admin/src/views/platform/platform.vue b/admin/src/views/platform/platform.vue
deleted file mode 100644
index fc0e89f..0000000
--- a/admin/src/views/platform/platform.vue
+++ /dev/null
@@ -1,164 +0,0 @@
-<template>
- <TableLayout :permissions="['business:platform:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <SearchFormCollapse slot="search-form" :need-more="false">
- <el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
- <el-form-item label="" prop="name">
- <el-input v-model="searchForm.name" clearable placeholder="璇疯緭鍏ユ湀鍙板悕绉�"
- @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="">
- <el-select v-model="searchForm.groupId" placeholder="璇烽�夋嫨鏈堝彴鍒嗙粍" @change="search" clearable>
- <el-option v-for="item in groupList" :key="item.id" :label="item.name" :value="item.id">
- </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>
- </SearchFormCollapse>
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:hksync:platforms']">
- <li><el-button type="primary" :loading="working" @click="syncData" icon="el-icon-plus"
- v-permissions="['business:hksync:platforms']">鍚屾</el-button></li>
- <li><el-button type="primary" :loading="working1" @click="syncStatus" icon="el-icon-plus"
- v-permissions="['business:hksync:platforms']">鍚屾瀹炴椂鐘舵��</el-button></li>
- </ul>
- <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="name" label="鏈堝彴鍚嶇О" fixed min-width="100px"></el-table-column>
- <el-table-column prop="code" label="鏈堝彴缂栫爜" fixed min-width="100px"></el-table-column>
- <el-table-column prop="groupName" label="鎵�灞炴湀鍙扮粍" fixed min-width="150px"></el-table-column>
- <el-table-column prop="workingNum" label="鍚屾椂鍙彿杞﹁締鏁�" min-width="120px"></el-table-column>
- <el-table-column prop="stayTimeoutAlarmTime" label="鍋滅暀瓒呮椂鎶ヨ鏃堕棿(鍒嗛挓锛�" min-width="180px">
- <template scope="{row}">{{ row.stayTimeoutAlarmTime ? (row.stayTimeoutAlarmTime) : '-' }}</template>
- </el-table-column>
- <el-table-column prop="workTimeoutAlarmTime" label="浣滀笟瓒呮椂鎶ヨ鏃堕棿(鍒嗛挓锛�" min-width="180px">
- <template scope="{row}"> {{ row.workTimeoutAlarmTime ? (row.workTimeoutAlarmTime) : '-' }}</template>
- </el-table-column>
- <el-table-column prop="workRate" label="鏈堝彴浣滀笟鏁堢巼(涓囨敮/灏忔椂)" min-width="180px"></el-table-column>
- <!-- <el-table-column prop="platformStatus" label="鏈堝彴鐘舵��" min-width="100px">
- <template scope="{row}">
- <span v-if="row.platformStatus == 0">鏃犺溅</span>
- <span v-if="row.platformStatus == 1">鏈夎溅</span>
- <span v-if="row.platformStatus == 2">瓒呮椂鍋滈潬</span>
- <span v-if="row.platformStatus == 3">閿欒鍋滈潬</span>
- </template>
- </el-table-column> -->
- <el-table-column prop="broadcastNames" label="鍏宠仈骞挎挱" min-width="100px"></el-table-column>
- <el-table-column prop="ledNames" label="鍏宠仈LED" min-width="100px"></el-table-column>
- <el-table-column prop="ledContent" label="LED绌洪棽鏂囨" min-width="180px"></el-table-column>
- <el-table-column prop="hkDate" label="鍚屾鏃堕棿" min-width="150px"></el-table-column>
- <el-table-column label="鏈堝彴鐘舵��" fixed="right" width="100px">
- <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">
- </el-switch>
- </template>
- </el-table-column>
- <el-table-column v-if="containPermissions(['business:platform:update', 'business:platform:delete'])" label="鎿嶄綔"
- min-width="120" fixed="right">
- <template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaPlatformWindow.open('缂栬緫鏈堝彴淇℃伅琛�', row)" icon="el-icon-edit"
- v-permissions="['business:platform:update']">缂栬緫</el-button>
- <!-- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
- v-permissions="['business:platform:delete']">鍒犻櫎</el-button> -->
- </template>
- </el-table-column>
- </el-table>
- <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaPlatformWindow ref="operaPlatformWindow" @success="handlePageChange" />
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import SearchFormCollapse from '@/components/common/SearchFormCollapse'
-import Pagination from '@/components/common/Pagination'
-import OperaPlatformWindow from '@/components/business/OperaPlatformWindow'
-import { allList } from '@/api/platform/platformGroup'
-export default {
- name: 'Platform',
- extends: BaseTable,
- components: { SearchFormCollapse, TableLayout, Pagination, OperaPlatformWindow },
- data() {
- return {
- groupList: [],
- // 鎼滅储
- working: false,
- working1: false,
- searchForm: {
- name: '',
- groupId: null
- }
- }
- },
- created() {
- this.config({
- module: '鏈堝彴淇℃伅琛�',
- api: '/platform/platform',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- this.loadGroupList()
- },
- methods: {
- loadGroupList() {
- allList({})
- .then(res => {
- this.groupList = res || []
- })
- },
- changeStatus(e, row) {
- this.api.updateStatusById({
- id: row.id,
- status: e
- })
- },
- syncData() {
- this.$dialog.actionConfirm('鎿嶄綔纭鎻愰啋', '鎮ㄧ‘璁ゅ悓姝ュ叏閮ㄤ俊鎭悧锛�')
- .then(() => {
- this.isWorking.working = true
- this.api.syncPlatforms({})
- .then(res => {
- this.$tip.apiSuccess(res || '鍚屾鎴愬姛')
- this.search()
- })
- .catch(e => {
- // this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.isWorking.working = false
- })
- })
- .catch(() => { })
- },
- syncStatus() {
- this.$dialog.actionConfirm('鎿嶄綔纭鎻愰啋', '鎮ㄧ‘璁ゅ悓姝ュ叏閮ㄤ俊鎭悧锛�')
- .then(() => {
- this.isWorking.working = true
- this.api.syncPlatformStatus({})
- .then(res => {
- this.$tip.apiSuccess(res || '鍚屾鎴愬姛')
- this.search()
- })
- .catch(e => {
- // this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.isWorking.working = false
- })
- })
- .catch(() => { })
- }
- }
-}
-</script>
diff --git a/admin/src/views/platform/platformGroup.vue b/admin/src/views/platform/platformGroup.vue
deleted file mode 100644
index 62b3061..0000000
--- a/admin/src/views/platform/platformGroup.vue
+++ /dev/null
@@ -1,87 +0,0 @@
-<template>
- <TableLayout :permissions="['business:platformgroup:query']">
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:platformgroup:create','business:platformgroup:delete']">
- <li><el-button type="primary" @click="$refs.operaPlatformGroupWindow.open('鏂板缓鏈堝彴鍒嗙粍')" icon="el-icon-plus" v-permissions="['business:platformgroup:create']">鏂板缓</el-button></li>
- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:platformgroup:delete']">鍒犻櫎</el-button></li>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="name" label="鏈堝彴缁勫悕绉�" fixed min-width="150px" align="center"></el-table-column>
- <el-table-column prop="startTime" label="宸ヤ綔鏃堕棿" min-width="150px" align="center">
- <template scope="{row}">
- {{row.startTime || ' '}} - {{row.endTime || ' '}}
- </template>
- </el-table-column>
- <el-table-column prop="type" label="涓氬姟绫诲瀷" align="center" min-width="150px">
- <template scope="{row}">
- <span v-if="row.type == 0">瀹夋嘲鐗╂祦鍗歌揣</span>
- <span v-if="row.type == 1">瀹夋嘲鐗╂祦瑁呰揣</span>
- <span v-if="row.type == 2">甯傚叕鍙稿嵏璐�</span>
- </template>
- </el-table-column>
- <el-table-column prop="waitCallTime" label="鍙彿绛夊緟鏃堕棿锛堝垎閽燂級" min-width="140px" align="center"></el-table-column>
- <el-table-column prop="editDate" label="鏈�杩戞洿鏂版椂闂�" min-width="150px" align="center"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:platformgroup:update', 'business:platformgroup:delete'])"
- label="鎿嶄綔"
- min-width="120"
- align="center"
- fixed="right"
- >
- <template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaPlatformGroupWindow.open('缂栬緫鏈堝彴鍒嗙粍', row)" icon="el-icon-edit" v-permissions="['business:platformgroup:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:platformgroup:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaPlatformGroupWindow ref="operaPlatformGroupWindow" @success="handlePageChange"/>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaPlatformGroupWindow from '@/components/business/OperaPlatformGroupWindow'
-export default {
- name: 'Platform',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaPlatformGroupWindow },
- data () {
- return {
- // 鎼滅储
- working: false,
- working1: false,
- searchForm: {
- name: ''
- }
- }
- },
- created () {
- this.config({
- module: '鏈堝彴淇℃伅琛�',
- api: '/platform/platformGroup',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- },
- methods: {
- }
-}
-</script>
diff --git a/admin/src/views/platform/platformReason.vue b/admin/src/views/platform/platformReason.vue
deleted file mode 100644
index 117bf82..0000000
--- a/admin/src/views/platform/platformReason.vue
+++ /dev/null
@@ -1,115 +0,0 @@
-<template>
- <TableLayout :permissions="['business:platformreason:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <SearchFormCollapse slot="search-form" :need-more="false">
- <el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
- <el-form-item label="" prop="reason">
- <el-input v-model="searchForm.reason" clearable placeholder="璇疯緭鍏ュ叆鍥師鍥�"
- @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="">
- <el-select v-model="searchForm.groupId" placeholder="璇烽�夋嫨鏈堝彴鍒嗙粍" @change="search" clearable>
- <el-option v-for="item in groupList" :key="item.id" :label="item.name" :value="item.id">
- </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>
- </SearchFormCollapse>
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:platformreason:create', 'business:platformreason:delete']">
- <li><el-button type="primary" @click="$refs.OperaPlatformReasonWindow.open('鏂板缓鏈堝彴鍏ュ洯鍘熷洜')" icon="el-icon-plus"
- v-permissions="['business:platformreason:create']">鏂板缓</el-button></li>
- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete"
- v-permissions="['business:platformreason:delete']">鍒犻櫎</el-button></li>
- </ul>
- <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="reason" label="鍏ュ洯鍘熷洜" fixed min-width="100px"></el-table-column>
- <el-table-column prop="groupName" label="瀵瑰簲浣滀笟鏈堝彴缁�" fixed min-width="150px"></el-table-column>
- <el-table-column prop="limitNum" label="浣滀笟閲�(涓囨敮/澶�)" min-width="120px"></el-table-column>
- <el-table-column prop="sortnum" label="鎺掑簭鐮�" fixed min-width="80px"></el-table-column>
- <el-table-column prop="remark" label="璇存槑" fixed min-width="100px"></el-table-column>
- <el-table-column label="绂�/鍚敤" min-width="120px">
- <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">
- </el-switch>
- </template>
- </el-table-column>
- <el-table-column prop="editDate" label="鏈�杩戞搷浣滄椂闂�" min-width="140px"></el-table-column>
- <el-table-column v-if="containPermissions(['business:platformreason:update', 'business:platformreason:delete'])"
- label="鎿嶄綔" align="center" min-width="150" fixed="right">
- <template slot-scope="{row}">
- <el-button type="text" @click="$refs.OperaPlatformApproveTemplWindow.open('鏈堝彴鍏ュ洯鍘熷洜瀹℃壒娴�', row)"
- icon="el-icon-edit" v-permissions="['business:platformreason:update']">瀹℃壒娴�</el-button>
- <el-button type="text" @click="$refs.OperaPlatformReasonWindow.open('缂栬緫鏈堝彴鍏ュ洯鍘熷洜', row)" icon="el-icon-edit"
- v-permissions="['business:platformreason:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
- v-permissions="['business:platformreason:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaPlatformReasonWindow ref="OperaPlatformReasonWindow" @success="handlePageChange" />
- <OperaPlatformApproveTemplWindow ref="OperaPlatformApproveTemplWindow" @success="handlePageChange" />
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import SearchFormCollapse from '@/components/common/SearchFormCollapse'
-import Pagination from '@/components/common/Pagination'
-import OperaPlatformReasonWindow from '@/components/business/OperaPlatformReasonWindow'
-import OperaPlatformApproveTemplWindow from '@/components/business/OperaPlatformApproveTemplWindow'
-import { allList } from '@/api/platform/platformGroup'
-export default {
- name: 'Platform',
- extends: BaseTable,
- components: { SearchFormCollapse, TableLayout, Pagination, OperaPlatformReasonWindow, OperaPlatformApproveTemplWindow },
- data() {
- return {
- groupList: [],
- // 鎼滅储
- working: false,
- working1: false,
- searchForm: {
- reason: '',
- groupId: null
- }
- }
- },
- created() {
- this.config({
- module: '鏈堝彴鍏ュ洯鍘熷洜淇℃伅琛�',
- api: '/platform/platformReason',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- this.loadGroupList()
- },
- methods: {
- loadGroupList() {
- allList({})
- .then(res => {
- this.groupList = res || []
- })
- },
- changeStatus(e, row) {
- this.api.updateStatusById({
- id: row.id,
- status: e
- })
- }
- }
-}
-</script>
diff --git a/admin/src/views/platform/queueUp.vue b/admin/src/views/platform/queueUp.vue
deleted file mode 100644
index eb4b0b1..0000000
--- a/admin/src/views/platform/queueUp.vue
+++ /dev/null
@@ -1,323 +0,0 @@
-<template>
- <div class="main_app">
- <div class="mb20 main_header">
- <div class="platgroup_tabs">
- <div class="tab" :class="{ active: activeGroup.id === item.id }" @click="platgroupClick(item)"
- v-for="(item, i) in PlatGroupList" :key="i">
- {{ item.name }}
- </div>
- </div>
- </div>
- <div class="df_sb">
- <QueryForm v-model="filters" :query-form-config="queryQueueUpConfig" @handleQuery="getList(1)" @clear="clear">
- </QueryForm>
- <el-button @click="openSign" type="primary" style="align-self: flex-start;">杞﹁締绛惧埌</el-button>
- </div>
- <div class="main_content">
- <div class="static_wrap">
- <span>绛夊緟锛�<span class="num">{{ staticParam.waitNum }}</span></span>
- <span class="mr30">{{ }}</span>
- <span>鎸傝捣锛�<span class="red">{{ staticParam.exceptionNum }}</span></span>
- <span></span>
- </div>
- </div>
- <el-table class="mb20" v-loading="loading" :data="dataList" stripe row-key="id" default-expand-all>
- <el-table-column type="index" label="搴忓彿" width="80" />
- <el-table-column label="杞︾墝鍙�" width="130">
- <template slot-scope="{ row }">
- <div class="plate_id">
- <span>{{ row.carCodeFront.slice(0, 1) }}</span>
- <span>{{ row.carCodeFront.slice(1, 2) }}</span>
- <span>路</span>
- <span>{{ row.carCodeFront.slice(2) }}</span>
- </div>
- </template>
- </el-table-column>
- <el-table-column prop="carrierName" label="杩愯緭鍏徃" min-width="120">
- <template v-slot="scope">
- <span>{{ scope.row.carrierName || '-' }}</span>
- </template>
- </el-table-column>
- <el-table-column prop="contractNum" label="杩愯緭鍗曞彿/鍚堝悓鍙�" min-width="120">
- <template v-slot="scope">
- <span>{{ scope.row.billCode || scope.row.contractNum || '-' }}</span>
- </template>
- </el-table-column>
- <el-table-column prop="totalNum" label="鎬昏繍杈撻噺(涓囨敮)" min-width="110">
- <template v-slot="scope">
- <span>{{ scope.row.totalNum || '-' }}</span>
- </template>
- </el-table-column>
- <el-table-column label="椹鹃┒鍛�" min-width="130">
- <template slot-scope="{ row }">
- <span class="mr10">{{ row.driverName }}</span>
- <span>{{ row.drivierPhone }}</span>
- </template>
- </el-table-column>
- <el-table-column prop="signDate" label="绛惧埌鏃堕棿" min-width="150" />
- <el-table-column label="鎿嶄綔" align="center" width="100" fixed="right">
- <template slot-scope="{ row }">
- <el-button v-if="row.billCode" type="text" @click="handleDetail(row)"
- v-permissions="['business:company:update']">杩愬崟璇︽儏</el-button>
- <el-button v-else type="text" @click="subDetail(row)">棰勭害璇︽儏</el-button>
- </template>
- </el-table-column>
- </el-table>
- <!-- <el-table v-else class="mb20" v-loading="loading" :data="dataList" stripe row-key="id" default-expand-all>
- <el-table-column type="index" label="搴忓彿" width="80" />
- <el-table-column label="杞︾墝鍙�" width="130">
- <template slot-scope="{ row }">
- <div class="plate_id">
- <span>{{ row.carCodeFront.slice(0, 1) }}</span>
- <span>{{ row.carCodeFront.slice(1, 2) }}</span>
- <span>路</span>
- <span>{{ row.carCodeFront.slice(2) }}</span>
- </div>
- </template>
- </el-table-column>
- <el-table-column prop="carrierName" label="杩愯緭鍏徃" min-width="120" />
- <el-table-column prop="totalNum" label="鎬昏繍杈撻噺(涓囨敮)" min-width="110" />
- <el-table-column label="椹鹃┒鍛�" min-width="130">
- <template slot-scope="{ row }">
- <span class="mr10">{{ row.driverName }}</span>
- <span>{{ row.drivierPhone }}</span>
- </template>
- </el-table-column>
- <el-table-column prop="signDate" label="绛惧埌鏃堕棿" min-width="150" />
- <el-table-column label="鎿嶄綔" align="center" width="100" fixed="right">
- <template slot-scope="{ row }">
- <el-button v-if="row.billCode" type="text" @click="handleDetail(row)"
- v-permissions="['business:company:update']">杩愬崟璇︽儏</el-button>
- <el-button v-else type="text" @click="subDetail(row)">棰勭害璇︽儏</el-button>
- </template>
- </el-table-column>
- </el-table> -->
- <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="pagination" />
-
- <!-- -->
- <PlatformSign ref="PlatformSignRef" v-if="isPlatformSign" @success="getPlatGroupList"
- @close="isPlatformSign = false" />
- <WaybillDetail ref="WaybillDetailRef" v-if="isShowDetail" @success="getList" @close="isShowDetail = false" />
- <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" />
- </div>
-</template>
-
-<script>
-import Pagination from '@/components/common/Pagination'
-import QueryForm from '@/components/common/QueryForm'
-import {
- getPlatformGroupList,
- platformLineUpPage,
- getPlatformGroupWork
-} from '@/api'
-import { queryQueueUpConfig } from './config'
-import WaybillDetail from './components/WaybillDetail.vue'
-import DriverDetail from "@/views/task/driverDetail.vue"
-import PlatformSign from './components/PlatformSign.vue'
-export default {
- components: {
- Pagination,
- QueryForm,
- PlatformSign,
- WaybillDetail,
- DriverDetail
- },
- data() {
- return {
- filters: {},
- activeGroup: {
- type: 2
- },
- PlatGroupList: [],
- staticParam: {},
- dataList: [],
- loading: false,
- isShowDriver: false,
- isPlatformSign: false,
- pagination: {
- pageSize: 10,
- page: 1,
- total: 0,
- },
- queryQueueUpConfig,
- isShowDetail: false, // 杩愬崟璇︽儏
- detail: {}
- }
- },
- created() {
- this.getPlatGroupList()
- },
- methods: {
- openSign() {
- this.isPlatformSign = true
- this.$nextTick(() => {
- this.$refs.PlatformSignRef.isShowModal = true
- this.$refs.PlatformSignRef.activePlat = this.activeGroup
- this.$refs.PlatformSignRef.carCodeFront = ''
- this.$refs.PlatformSignRef.pagination = {
- total: 0,
- pageSize: 10,
- page: 1
- }
- this.$refs.PlatformSignRef.getList()
- })
- },
- getPlatGroupList() {
- getPlatformGroupList({
- queryData: 1,
- queryType: 1
- }).then(res => {
- this.PlatGroupList = res || []
- if (res && res.length > 0) {
- if (this.activeGroup && this.activeGroup.id) {
- this.activeGroup = res.find(item => item.id === this.activeGroup.id)
- } else {
- this.activeGroup = res[0]
- }
-
- this.getPlatformGroupWork()
- this.getList()
- }
- })
- },
- getList() {
- const { activeGroup, pagination, filters } = this
- this.loading = true
- platformLineUpPage({
- model: { platformGroupId: activeGroup.id, ...filters, callType: 3 },
- capacity: pagination.pageSize,
- page: pagination.page,
- }).then(res => {
- this.loading = false
- this.dataList = res.records || []
- this.pagination.total = res.total || 0
- }, () => {
- this.loading = false
- })
- },
- getPlatformGroupWork() {
- const { activeGroup } = this
- getPlatformGroupWork(activeGroup.id).then(res => {
- this.staticParam = res || {}
- })
- },
- handleSizeChange(e) {
- this.pagination.pageSize = e
- this.getList()
- },
- handlePageChange(e) {
- this.pagination.page = e
- this.getList()
- },
- platgroupClick(item) {
- this.activeGroup = { ...item }
- this.pagination.page = 1
- this.filters = {}
- this.getPlatformGroupWork()
- this.getList()
- },
- clear() {
- this.pagination.page = 1
- this.filters = {}
- this.getList()
- },
- subDetail(row) {
- this.isShowDriver = true
- this.$nextTick(() => {
- this.$refs.DriverDetailRef.id = row.bookId
- this.$refs.DriverDetailRef.type = row.objType
- this.$refs.DriverDetailRef.getDetail()
- this.$refs.DriverDetailRef.isShowModal = true
- })
- },
- handleDetail(row) {
- this.isShowDetail = true
- this.$nextTick(() => {
- this.$refs.WaybillDetailRef.isShowModal = true
- this.$refs.WaybillDetailRef.id = row.id
- this.$refs.WaybillDetailRef.getDetail()
- })
- },
- }
-}
-</script>
-
-<style lang="scss" scoped>
-@import "@/assets/style/variables.scss";
-
-.main_content {
- background-color: #fff;
- position: relative;
- z-index: 999;
- top: -10;
- margin: -20px;
- padding: 0 20px;
-
- .static_wrap {
- height: 50px;
- line-height: 50px;
- color: #666666;
- font-size: 15px;
- padding: 0 20px;
- background: #F4FAFB;
- border-radius: 2px 2px 0px 0px;
- margin-bottom: 36px;
-
- .num {
- color: #111111;
- }
- }
-}
-
-.plate_id {
- display: flex;
- width: 120px;
- font-weight: 600;
- height: 30px;
- line-height: 30px;
- font-size: 16px;
- color: #111111;
- border-radius: 4px;
- border: 1px solid #dfdede;
-
- span {
- &:nth-of-type(1) {
- background: $primary-color;
- padding: 0 6px;
- color: #fff
- }
-
- &:nth-of-type(2) {
- padding-left: 2px;
- }
-
- &:nth-of-type(4) {
- padding-right: 3px;
- }
- }
-}
-
-
-.main_header {
- .platgroup_tabs {
- flex: 1;
- display: flex;
- border-bottom: 1px solid #dfe2e8;
-
- .tab {
- color: #666666;
- margin-right: 40px;
- cursor: pointer;
- padding-bottom: 14px;
- border-bottom: 2px solid #fff;
- }
-
- .active {
- font-weight: 500;
- font-size: 15px;
- color: #222222;
- border-bottom: 2px solid $primary-color;
- }
- }
-}
-</style>
diff --git a/admin/src/views/platform/set/application.vue b/admin/src/views/platform/set/application.vue
deleted file mode 100644
index da1562e..0000000
--- a/admin/src/views/platform/set/application.vue
+++ /dev/null
@@ -1,82 +0,0 @@
-<template>
- <div class="main_app">
- <el-form
- :model="form"
- :rules="rules"
- label-suffix="锛�"
- ref="ruleForm"
- label-width="140px"
- >
- <!-- <el-form-item label="甯傚叕鍙稿鎵逛汉">
- <el-select v-model="param.aa" class="w400" placeholder="璇烽�夋嫨锛屽閫�">
- <el-option></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="甯傚叕鍙告棩浣滀笟閲�">
- <el-input v-model="param.bbb" class="w400" placeholder="璇疯緭鍏�"></el-input>
- <span>涓囨敮</span>
- </el-form-item>-->
- <el-form-item label="鐗╂祦杞﹂绾︽寚鍗�" required label-width="180px">
- <RichEditor :richData="form.bookTips" :styleEditor="styleEditor" @getWangedditor="getWangedditor" :readonly="false"/>
- </el-form-item>
- <el-form-item label="鐗╂祦杞﹀洯鍖哄瑙堝浘" required label-width="180px">
- <RichEditor :richData="form.tipsImg" :styleEditor="styleEditor" @getWangedditor="getWangedditor1" :readonly="false"/>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="submit">淇濆瓨閰嶇疆椤�</el-button>
- </el-form-item>
-
- </el-form>
- </div>
-</template>
-
-<script>
-import RichEditor from '@/components/common/RichEditor'
-import { getPlatformConfigDTO, updatePlatformConfig } from '@/api/system/common'
-export default {
- components: {
- RichEditor: RichEditor
- },
- data () {
- return {
- styleEditor:'border: 1px solid #ccc;display: inline-block;',
- form: {
- bookTips: '',
- tipsImg: ''
- },
- rules: {}
- }
- },
- created () {
- this.getData()
- },
- methods: {
- getWangedditor(val){
- this.form.bookTips =val
- },
- getWangedditor1(val){
- this.form.tipsImg =val
- },
- getData: function () {
- getPlatformConfigDTO({})
- .then(res => {
- this.form.tipsImg = res.tipsImg
- this.form.bookTips = res.bookTips
- })
- },
- submit () {
- updatePlatformConfig({
- tipsImg: this.form.tipsImg,
- bookTips: this.form.bookTips
- }).then(res => {
- this.$message.success('淇濆瓨鎴愬姛')
- this.getData()
- })
- }
-
- }
-}
-</script>
-
-<style>
-</style>
diff --git a/admin/src/views/platform/set/group.vue b/admin/src/views/platform/set/group.vue
deleted file mode 100644
index cd46a7d..0000000
--- a/admin/src/views/platform/set/group.vue
+++ /dev/null
@@ -1,169 +0,0 @@
-<template>
- <div class="main_app">
- <QueryForm
- v-model="filters"
- :query-form-config="queryFormConfig"
- @handleQuery="getList(1)"
- @clear="clear"
- />
- <div class="mb20 mt20">
- <el-button type="primary" @click="handleEdit()">鏂板</el-button>
- </div>
- <el-table v-loading="loading" :data="list" stripe>
- <el-table-column
- prop="name"
- label="鏈堝彴缁�"
- min-width="100"
- show-overflow-tooltip
- />
- <el-table-column
- prop="name"
- label="鍏ュ洯浜嬬敱"
- min-width="100"
- show-overflow-tooltip
- />
- <el-table-column
- prop="name"
- label="鎿嶄綔"
- min-width="80"
- show-overflow-tooltip
- >
- <template v-slot="scope">
- <el-button type="text" @click="handleEdit(scope.row)">缂栬緫</el-button>
- <el-button type="text" class="red" @click="handleDel(scope.row)"
- >鍒犻櫎</el-button
- >
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="getList"
- :pagination="pagination"
- />
- <GlobalWindow
- :title="param.id ? '缂栬緫鏈堝彴' : '鏂板鏈堝彴'"
- :visible.sync="isShowEdit"
- width="800px"
- :confirm-working="subLoading"
- @confirm="handleSub"
- >
- <el-form
- :model="param"
- :rules="rules"
- label-suffix="锛�"
- ref="ruleForm"
- label-width="120px"
- >
- <el-form-item label="鏈堝彴缁勫悕绉�">
- <el-input v-model="param.aaa" class="w300" disabled></el-input>
- </el-form-item>
- <el-form-item label="鍏宠仈鍏ュ洯浜嬬敱">
- <el-checkbox-group v-model="param.checkList">
- <el-checkbox label="0">瀹夋嘲瑁呰揣</el-checkbox>
- <el-checkbox label="0">瀹夋嘲鍗歌揣</el-checkbox>
- <el-checkbox label="0">甯傚叕鍙稿嵏璐�</el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- <el-form-item label="鍏宠仈鏈堝彴">
- <el-transfer
- filterable
- filter-placeholder="鎼滅储"
- :titles="['寰呮坊鍔犳湀鍙�', '宸叉坊鍔犳湀鍙�']"
- v-model="param.sel"
- :data="data"
- class="transfer"
-
- >
- </el-transfer>
- </el-form-item>
- </el-form>
- </GlobalWindow>
- </div>
-</template>
-
-<script>
-import Pagination from '@/components/common/Pagination'
-import QueryForm from '@/components/common/QueryForm'
-import GlobalWindow from '@/components/common/GlobalWindow'
-export default {
- components: {
- Pagination,
- QueryForm,
- GlobalWindow
- },
- data () {
- return {
- filters: {},
- loading: false,
- subLoading: false,
- queryFormConfig: {
- formItems: [
- {
- filed: 'name',
- type: 'input',
- label: '鏈堝彴缁�'
- }
- ],
- online: true
- },
- pagination: {
- capacity: 10,
- page: 1
- },
- list: [{}],
- total: 0,
- isShowEdit: false,
- param: {
- sel: []
- },
- rules: {},
-
- data: [
- { key: '1', label: '涓婃捣' },
- { key: '2', label: '涓婃捣' },
- { key: '3', label: '涓婃捣' },
- { key: '4', label: '涓婃捣' },
- { key: '5', label: '涓婃捣' }
- ]
- }
- },
- methods: {
- handleSub () {
- this.isShowEdit = false
- },
- getList (page) { },
- clear () { },
- handleEdit (row) {
- this.isShowEdit = true
- },
- handleDel () { },
- handleSizeChange (capacity) {
- this.pagination.capacity = capacity
- }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-.transfer {
- height: 600px;
- width: 100%;
- display: flex;
- justify-content: center;
- align-items: center;
-
- ::v-deep .el-transfer-panel {
- flex: 1;
- height: 100%;
- }
-
- ::v-deep .el-transfer-panel__body {
- height: 500px;
- }
-
- ::v-deep .el-transfer-panel__list.is-filterable {
- height: 480px;
- }
-}
-</style>
diff --git a/admin/src/views/platform/set/index.vue b/admin/src/views/platform/set/index.vue
deleted file mode 100644
index 824cbcf..0000000
--- a/admin/src/views/platform/set/index.vue
+++ /dev/null
@@ -1,250 +0,0 @@
-<template>
- <div class="main_app">
- <QueryForm
- v-model="filters"
- :query-form-config="queryFormConfig"
- @handleQuery="getList(1)"
- @clear="clear"
- />
- <el-table v-loading="loading" :data="dataList" stripe>
- <el-table-column
- prop="name"
- label="鏈堝彴鍚嶇О"
- min-width="100"
- show-overflow-tooltip
- />
- <el-table-column
- prop="name"
- label="宸ヤ綔鏃堕棿"
- min-width="100"
- show-overflow-tooltip
- >
- <template v-slot="scope">
- <span>{{ scope.row.startTime }}-{{ scope.row.endTime }}</span>
- </template>
- </el-table-column>
- <el-table-column
- prop="workingNum"
- label="鍚屾椂浣滀笟杞﹁締鏁�"
- min-width="100"
- show-overflow-tooltip
- />
- <el-table-column
- prop="alermTime"
- label="鍋滅暀瓒呮椂鎶ヨ鏃堕棿(鍒嗛挓)"
- min-width="100"
- show-overflow-tooltip
- />
- <el-table-column
- prop="wariCallTime"
- label="鍙彿绛夊緟鏃堕棿(鍒嗛挓)"
- min-width="80"
- show-overflow-tooltip
- />
- <el-table-column
- prop=""
- label="鏈堝彴浣滀笟鏁堢巼(涓囨敮/灏忔椂)"
- min-width="120"
- show-overflow-tooltip
- />
- <el-table-column
- prop="name"
- label="鍋滅敤/鍚敤"
- min-width="80"
- show-overflow-tooltip
- >
- <template v-slot="scope">
- <el-switch
- v-model="scope.row.status"
- active-value="0"
- inactive-value="1"
- @change="e => changeStatus(scope.row)"
- >
- </el-switch>
- </template>
- </el-table-column>
- <el-table-column
- prop="name"
- label="鎿嶄綔"
- min-width="80"
- show-overflow-tooltip
- >
- <template v-slot="scope">
- <el-button type="text" @click="handleEdit(scope.row)">缂栬緫</el-button>
- <el-button type="text" class="red" @click="handleDel(scope.row)"
- >鍒犻櫎</el-button
- >
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="getList"
- :pagination="pagination"
- />
- <GlobalWindow
- :title="param.id ? '缂栬緫鏈堝彴閰嶇疆' : '鏂板鏈堝彴閰嶇疆'"
- :visible.sync="isShowEdit"
- width="600px"
- :confirm-working="subLoading"
- @confirm="handleSub"
- >
- <el-form
- :model="param"
- :rules="rules"
- label-suffix="锛�"
- ref="ruleForm"
- label-width="140px"
- >
- <el-form-item label="鏈堝彴鍚嶇О">
- <el-input v-model="param.name" class="w300" disabled></el-input>
- </el-form-item>
- <el-form-item label="宸ヤ綔鏃堕棿">
- <el-time-picker
- class="w100"
- v-model="param.startTime"
- range-separator="鑷�"
- value-format="HH:mm"
- format="HH:mm"
- />
- 鑷�
- <el-time-picker
- class="w100"
- v-model="param.endTime"
- range-separator="鑷�"
- value-format="HH:mm"
- format="HH:mm"
- />
- </el-form-item>
- <el-form-item label="鍚屾椂浣滀笟杞﹁締鏁�">
- <el-input v-model="param.workingNum" class="w300"></el-input>
- <span class="ml10">涓�</span>
- </el-form-item>
- <el-form-item label="鍋滅暀瓒呮椂鎶ヨ鏃堕棿">
- <el-input
- v-model="param.alermTime"
- placeholder="璇疯緭鍏�"
- class="w300"
- ></el-input>
- <span class="ml10">鍒嗛挓</span>
- </el-form-item>
- <el-form-item label="鍙彿绛夊緟鏃堕棿" prop="name">
- <el-input
- v-model="param.wariCallTime"
- placeholder="璇疯緭鍏�"
- class="w300"
- ></el-input>
- <span class="ml10">鍒嗛挓</span>
- </el-form-item>
- <el-form-item label="鏈堝彴浣滀笟鏁堢巼" placeholder="璇疯緭鍏�" prop="name">
- <el-input
- v-model="param.ccc"
- class="w300"
- placeholder="璇疯緭鍏�"
- oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 7)"
- />
- <span class="ml10">涓囨敮/灏忔椂</span>
- </el-form-item>
- <el-form-item label="浣滀笟瓒呮椂鎶ヨ鏃堕棿">
- <el-input
- v-model="param.aaa"
- placeholder="璇疯緭鍏�"
- class="w300"
- ></el-input>
- <span class="ml10">鍒嗛挓</span>
- </el-form-item>
- </el-form>
- </GlobalWindow>
- </div>
-</template>
-
-<script>
-import Pagination from '@/components/common/Pagination'
-import QueryForm from '@/components/common/QueryForm'
-import GlobalWindow from '@/components/common/GlobalWindow'
-// import { getPlatform, PlatformEdit, PlatformDel } from '@/api'
-import { PlatformEdit, PlatformDel } from '@/api'
-export default {
- components: {
- Pagination,
- QueryForm,
- GlobalWindow
- },
- data () {
- return {
- filters: {},
- loading: false,
- subLoading: false,
- queryFormConfig: {
- formItems: [
- {
- filed: 'name',
- type: 'input',
- label: '鏈堝彴鍚嶇О'
- }
- ],
- online: true
- },
- pagination: {
- capacity: 10,
- page: 1
- },
- dataList: [{}],
- total: 0,
- isShowEdit: false,
- param: {},
- rules: {}
- }
- },
- created () {
- this.getList()
- },
- methods: {
- getList (page) {
- const { filters, pagination } = this
- pagination.page = page || pagination.page
- // getPlatform({
- // model: { ...filters },
- // ...pagination
- // }).then(res => {
- // this.dataList = res.records
- // })
- },
- handleDel (item) {
- this.$confirm('纭畾鍒犻櫎璇ユ湀鍙板悧, 鏄惁缁х画?', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(res => {
- PlatformDel(item.id).then(() => {
- this.getList()
- this.$tip.success('鍒犻櫎鎴愬姛')
- })
- })
- },
- changeStatus (item) {
- PlatformEdit({
- ...item,
- status: item.stauts == 1 ? 0 : 1
- }).then(res => {
- this.$tip.success('鏇存柊鎴愬姛')
- this.getList()
- })
- },
- clear () {
- this.filters = {}
- this.getList(0)
- },
- handleEdit (row) {
- this.isShowEdit = true
- this.param = { ...row }
- },
- handleSizeChange (capacity) {
- this.pagination.capacity = capacity
- }
- }
-}
-</script>
-
-<style>
-</style>
diff --git a/admin/src/views/platform/water.vue b/admin/src/views/platform/water.vue
deleted file mode 100644
index fd99d89..0000000
--- a/admin/src/views/platform/water.vue
+++ /dev/null
@@ -1,117 +0,0 @@
-<template>
- <TableLayout :permissions="['business:platformwatergas:query']">
- <SearchFormCollapse slot="search-form" :need-more="false">
- <el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
- <el-form-item title="璇烽�夋嫨骞存湀鏃堕棿" label="" >
- <el-date-picker
- @change="search"
- clearable
- v-model="searchForm.timeInfo"
- format="yyyy-MM"
- placeholder="璇烽�夋嫨骞存湀鏃堕棿"
- value-format="yyyy-MM-dd HH:mm:ss"
- type="month"
- />
- </el-form-item>
- <section>
- <el-button type="primary" @click="search">鎼滅储</el-button>
- <el-button @click="reset">閲嶇疆</el-button>
- </section>
- </el-form>
- </SearchFormCollapse>
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:platformwatergas:create','business:platformwatergas:delete','business:notice:exportExcel']">
- <li><el-button type="primary" @click="$refs.OperaPlatformWaterWindow.open('鏂板缓鐢ㄦ按')" icon="el-icon-plus" v-permissions="['business:platformwatergas:create']">鏂板缓</el-button></li>
- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:platformwatergas:delete']">鍒犻櫎</el-button></li>
- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:notice:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="timeInfo" label="浣跨敤鏈堜唤" fixed min-width="100px">
- <template slot-scope="{row}">
- {{(row.timeInfo || row.timeInfo.length >7 )?row.timeInfo.substr(0,7):'-'}}
- </template>
- </el-table-column>
- <el-table-column prop="num" label="鐢ㄦ按閲忥紙鍚級" fixed min-width="150px"></el-table-column>
- <el-table-column prop="content" label="璇存槑" min-width="120px"></el-table-column>
- <el-table-column prop="editDate" label="鏈�杩戞搷浣滄椂闂�" min-width="140px"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:platformwatergas:update', 'business:platformwatergas:delete'])"
- label="鎿嶄綔"
- align="center"
- min-width="150"
- fixed="right"
- >
- <template slot-scope="{row}">
- <el-button type="text" @click="$refs.OperaPlatformWaterWindow.open('缂栬緫鐢ㄦ按', row)" icon="el-icon-edit" v-permissions="['business:platformwatergas:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:platformwatergas:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaPlatformWaterWindow ref="OperaPlatformWaterWindow" @success="handlePageChange"/>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import SearchFormCollapse from '@/components/common/SearchFormCollapse'
-import Pagination from '@/components/common/Pagination'
-import OperaPlatformWaterWindow from '@/components/business/OperaPlatformWaterWindow'
-import { allList } from '@/api/platform/platformGroup'
-export default {
- name: 'Platform',
- extends: BaseTable,
- components: { SearchFormCollapse, TableLayout, Pagination, OperaPlatformWaterWindow },
- data () {
- return {
- groupList: [],
- // 鎼滅储
- working: false,
- working1: false,
- searchForm: {
- timeInfo: '',
- type: 0
- }
- }
- },
- created () {
- this.config({
- module: '鐢ㄦ按淇℃伅琛�',
- api: '/platform/platformWaterGas',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- this.loadGroupList()
- },
- methods: {
- loadGroupList () {
- allList({})
- .then(res => {
- this.groupList = res || []
- })
- },
- changeStatus (e, row) {
- this.api.updateStatusById({
- id: row.id,
- status: e
- })
- }
- }
-}
-</script>
diff --git a/admin/src/views/project/buildingList.vue b/admin/src/views/project/buildingList.vue
new file mode 100644
index 0000000..82b1bcc
--- /dev/null
+++ b/admin/src/views/project/buildingList.vue
@@ -0,0 +1,169 @@
+<template>
+ <TableLayout :permissions="['business:ywbuilding:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="涓婚敭" prop="id">
+ <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ヤ富閿�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
+ <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
+ <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
+ <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
+ <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <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="remark">
+ <el-input v-model="searchForm.remark" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
+ <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎺掑簭鐮�" prop="sortnum">
+ <el-input v-model="searchForm.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍥炬爣" prop="imgurl">
+ <el-input v-model="searchForm.imgurl" placeholder="璇疯緭鍏ュ浘鏍�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="缂栧彿" prop="code">
+ <el-input v-model="searchForm.code" placeholder="璇疯緭鍏ョ紪鍙�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍦板潃" prop="addr">
+ <el-input v-model="searchForm.addr" placeholder="璇疯緭鍏ュ湴鍧�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="闈㈢Н锛堝钩鏂圭背锛�" prop="area">
+ <el-input v-model="searchForm.area" placeholder="璇疯緭鍏ラ潰绉紙骞虫柟绫筹級" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="浜ф潈闈㈢Н锛堝钩鏂圭背锛�" prop="cqArea">
+ <el-input v-model="searchForm.cqArea" placeholder="璇疯緭鍏ヤ骇鏉冮潰绉紙骞虫柟绫筹級" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍙闈㈢Н锛堝钩鏂圭背锛�" prop="rentArea">
+ <el-input v-model="searchForm.rentArea" placeholder="璇疯緭鍏ュ彲绉熼潰绉紙骞虫柟绫筹級" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍦颁笂灞傛暟" prop="onFloor">
+ <el-input v-model="searchForm.onFloor" placeholder="璇疯緭鍏ュ湴涓婂眰鏁�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍦颁笅灞傛暟" prop="underFloor">
+ <el-input v-model="searchForm.underFloor" placeholder="璇疯緭鍏ュ湴涓嬪眰鏁�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_project)" prop="projectId">
+ <el-input v-model="searchForm.projectId" placeholder="璇疯緭鍏ユ墍灞為」鐩紪鐮侊紙鍏宠仈yw_project)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywbuilding:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:ywbuilding:create', 'business:ywbuilding:delete']">
+ <li><el-button type="primary" @click="$refs.operaYwBuildingWindow.open('鏂板缓杩愮淮妤煎畤淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:ywbuilding:create']">鏂板缓</el-button></li>
+ <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywbuilding:delete']">鍒犻櫎</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column type="selection" width="55"></el-table-column>
+ <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
+ <el-table-column prop="creator" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="editor" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="isdeleted" label="鏄惁鍒犻櫎0鍚� 1鏄�" min-width="100px"></el-table-column>
+ <el-table-column prop="name" label="鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
+ <el-table-column prop="status" label="鐘舵�� 0鍚敤 1绂佺敤" min-width="100px"></el-table-column>
+ <el-table-column prop="sortnum" label="鎺掑簭鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="imgurl" label="鍥炬爣" min-width="100px"></el-table-column>
+ <el-table-column prop="code" label="缂栧彿" min-width="100px"></el-table-column>
+ <el-table-column prop="addr" label="鍦板潃" min-width="100px"></el-table-column>
+ <el-table-column prop="area" label="闈㈢Н锛堝钩鏂圭背锛�" min-width="100px"></el-table-column>
+ <el-table-column prop="cqArea" label="浜ф潈闈㈢Н锛堝钩鏂圭背锛�" min-width="100px"></el-table-column>
+ <el-table-column prop="rentArea" label="鍙闈㈢Н锛堝钩鏂圭背锛�" min-width="100px"></el-table-column>
+ <el-table-column prop="onFloor" label="鍦颁笂灞傛暟" min-width="100px"></el-table-column>
+ <el-table-column prop="underFloor" label="鍦颁笅灞傛暟" min-width="100px"></el-table-column>
+ <el-table-column prop="projectId" label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_project)" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:ywbuilding:update', 'business:ywbuilding:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaYwBuildingWindow.open('缂栬緫杩愮淮妤煎畤淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:ywbuilding:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywbuilding:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaYwBuildingWindow ref="operaYwBuildingWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaYwBuildingWindow from './components/OperaYwBuildingWindow'
+export default {
+ name: 'YwBuilding',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaYwBuildingWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ name: '',
+ remark: '',
+ status: '',
+ sortnum: '',
+ imgurl: '',
+ code: '',
+ addr: '',
+ area: '',
+ cqArea: '',
+ rentArea: '',
+ onFloor: '',
+ underFloor: '',
+ projectId: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '杩愮淮妤煎畤淇℃伅琛�',
+ api: '/project/ywBuilding',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/project/components/OperaYwBuildingWindow.vue b/admin/src/views/project/components/OperaYwBuildingWindow.vue
new file mode 100644
index 0000000..e82f290
--- /dev/null
+++ b/admin/src/views/project/components/OperaYwBuildingWindow.vue
@@ -0,0 +1,110 @@
+<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="creator">
+ <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
+ <el-input v-model="form.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
+ <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
+ <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍚嶇О" prop="name">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
+ <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎺掑簭鐮�" prop="sortnum">
+ <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍥炬爣" prop="imgurl">
+ <el-input v-model="form.imgurl" placeholder="璇疯緭鍏ュ浘鏍�" v-trim/>
+ </el-form-item>
+ <el-form-item label="缂栧彿" prop="code">
+ <el-input v-model="form.code" placeholder="璇疯緭鍏ョ紪鍙�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍦板潃" prop="addr">
+ <el-input v-model="form.addr" placeholder="璇疯緭鍏ュ湴鍧�" v-trim/>
+ </el-form-item>
+ <el-form-item label="闈㈢Н锛堝钩鏂圭背锛�" prop="area">
+ <el-input v-model="form.area" placeholder="璇疯緭鍏ラ潰绉紙骞虫柟绫筹級" v-trim/>
+ </el-form-item>
+ <el-form-item label="浜ф潈闈㈢Н锛堝钩鏂圭背锛�" prop="cqArea">
+ <el-input v-model="form.cqArea" placeholder="璇疯緭鍏ヤ骇鏉冮潰绉紙骞虫柟绫筹級" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍙闈㈢Н锛堝钩鏂圭背锛�" prop="rentArea">
+ <el-input v-model="form.rentArea" placeholder="璇疯緭鍏ュ彲绉熼潰绉紙骞虫柟绫筹級" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍦颁笂灞傛暟" prop="onFloor">
+ <el-input v-model="form.onFloor" placeholder="璇疯緭鍏ュ湴涓婂眰鏁�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍦颁笅灞傛暟" prop="underFloor">
+ <el-input v-model="form.underFloor" placeholder="璇疯緭鍏ュ湴涓嬪眰鏁�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_project)" prop="projectId">
+ <el-input v-model="form.projectId" placeholder="璇疯緭鍏ユ墍灞為」鐩紪鐮侊紙鍏宠仈yw_project)" 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: 'OperaYwBuildingWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ name: '',
+ remark: '',
+ status: '',
+ sortnum: '',
+ imgurl: '',
+ code: '',
+ addr: '',
+ area: '',
+ cqArea: '',
+ rentArea: '',
+ onFloor: '',
+ underFloor: '',
+ projectId: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/project/ywBuilding',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/views/project/components/OperaYwProjectWindow.vue b/admin/src/views/project/components/OperaYwProjectWindow.vue
new file mode 100644
index 0000000..3523263
--- /dev/null
+++ b/admin/src/views/project/components/OperaYwProjectWindow.vue
@@ -0,0 +1,63 @@
+<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="addr">
+ <el-input v-model="form.addr" placeholder="璇疯緭鍏ヨ缁嗗湴鍧�"/>
+ </el-form-item>
+ <el-form-item label="璇︾粏鍦板潃" prop="addr">
+ <el-input v-model="form.addr" placeholder="璇疯緭鍏ヨ缁嗗湴鍧�"/>
+ </el-form-item>
+ <el-form-item label="椤圭洰绠�浠�" prop="desc">
+ <el-input type="textarea" :rows="4" v-model="form.desc" placeholder="璇疯緭鍏�"/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaYwProjectWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ name: '',
+ remark: '',
+ status: '',
+ sortnum: '',
+ imgurl: '',
+ areaId: '',
+ addr: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/project/ywProject',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/views/project/components/OperaYwRoomWindow.vue b/admin/src/views/project/components/OperaYwRoomWindow.vue
new file mode 100644
index 0000000..5fab7dc
--- /dev/null
+++ b/admin/src/views/project/components/OperaYwRoomWindow.vue
@@ -0,0 +1,114 @@
+<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="creator">
+ <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
+ <el-input v-model="form.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
+ <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
+ <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍚嶇О" prop="name">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
+ <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎺掑簭鐮�" prop="sortnum">
+ <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍥炬爣" prop="imgurl">
+ <el-input v-model="form.imgurl" placeholder="璇疯緭鍏ュ浘鏍�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎴块棿缂栧彿" prop="code">
+ <el-input v-model="form.code" placeholder="璇疯緭鍏ユ埧闂寸紪鍙�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎴垮彿" prop="roomNum">
+ <el-input v-model="form.roomNum" placeholder="璇疯緭鍏ユ埧鍙�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏄惁鎷涘晢 0鍚� 1鏄�" prop="isInvestment">
+ <el-input v-model="form.isInvestment" placeholder="璇疯緭鍏ユ槸鍚︽嫑鍟� 0鍚� 1鏄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="寤虹瓚闈㈢Н锛堝钩鏂圭背锛�" prop="area">
+ <el-input v-model="form.area" placeholder="璇疯緭鍏ュ缓绛戦潰绉紙骞虫柟绫筹級" v-trim/>
+ </el-form-item>
+ <el-form-item label="璁¤垂闈㈢Н锛堝钩鏂圭背锛�" prop="feeArea">
+ <el-input v-model="form.feeArea" placeholder="璇疯緭鍏ヨ璐归潰绉紙骞虫柟绫筹級" v-trim/>
+ </el-form-item>
+ <el-form-item label="璁$闈㈢Н锛堝钩鏂圭背锛�" prop="rentArea">
+ <el-input v-model="form.rentArea" placeholder="璇疯緭鍏ヨ绉熼潰绉紙骞虫柟绫筹級" v-trim/>
+ </el-form-item>
+ <el-form-item label="妤煎眰鏁�" prop="floor">
+ <el-input v-model="form.floor" placeholder="璇疯緭鍏ユゼ灞傛暟" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_project)" prop="projectId">
+ <el-input v-model="form.projectId" placeholder="璇疯緭鍏ユ墍灞為」鐩紪鐮侊紙鍏宠仈yw_project)" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_building)" prop="buildingId">
+ <el-input v-model="form.buildingId" placeholder="璇疯緭鍏ユ墍灞為」鐩紪鐮侊紙鍏宠仈yw_building)" 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: 'OperaYwRoomWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ name: '',
+ remark: '',
+ status: '',
+ sortnum: '',
+ imgurl: '',
+ code: '',
+ roomNum: '',
+ isInvestment: '',
+ area: '',
+ feeArea: '',
+ rentArea: '',
+ floor: '',
+ projectId: '',
+ buildingId: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/project/ywRoom',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/views/platform/LogisticsRecord/screen.vue b/admin/src/views/project/components/buildingDetail.vue
similarity index 100%
copy from admin/src/views/platform/LogisticsRecord/screen.vue
copy to admin/src/views/project/components/buildingDetail.vue
diff --git a/admin/src/views/project/housingList.vue b/admin/src/views/project/housingList.vue
new file mode 100644
index 0000000..6aadddd
--- /dev/null
+++ b/admin/src/views/project/housingList.vue
@@ -0,0 +1,112 @@
+<template>
+ <TableLayout :permissions="['business:ywroom:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="鎴垮彿" prop="roomNum">
+ <el-input v-model="searchForm.roomNum" placeholder="璇疯緭鍏ユ埧鍙�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_project)" prop="projectId">
+ <el-input v-model="searchForm.projectId" placeholder="璇疯緭鍏ユ墍灞為」鐩紪鐮侊紙鍏宠仈yw_project)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_building)" prop="buildingId">
+ <el-input v-model="searchForm.buildingId" placeholder="璇疯緭鍏ユ墍灞為」鐩紪鐮侊紙鍏宠仈yw_building)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywroom:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:ywroom:create', 'business:ywroom:delete']">
+ <li><el-button type="primary" @click="$refs.operaYwRoomWindow.open('鏂板缓杩愮淮鎴挎簮淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:ywroom:create']">鏂板缓</el-button></li>
+ <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywroom:delete']">鍒犻櫎</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column type="selection" width="55"></el-table-column>
+ <el-table-column prop="name" label="鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column prop="roomNum" label="鎴垮彿" min-width="100px"></el-table-column>
+ <el-table-column prop="isInvestment" label="鏄惁鎷涘晢 0鍚� 1鏄�" min-width="100px"></el-table-column>
+ <el-table-column prop="area" label="寤虹瓚闈㈢Н锛堝钩鏂圭背锛�" min-width="100px"></el-table-column>
+ <el-table-column prop="feeArea" label="璁¤垂闈㈢Н锛堝钩鏂圭背锛�" min-width="100px"></el-table-column>
+ <el-table-column prop="rentArea" label="璁$闈㈢Н锛堝钩鏂圭背锛�" min-width="100px"></el-table-column>
+ <el-table-column prop="floor" label="妤煎眰鏁�" min-width="100px"></el-table-column>
+ <el-table-column prop="projectId" label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_project)" min-width="100px"></el-table-column>
+ <el-table-column prop="buildingId" label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_building)" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:ywroom:update', 'business:ywroom:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaYwRoomWindow.open('缂栬緫杩愮淮鎴挎簮淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:ywroom:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywroom:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaYwRoomWindow ref="operaYwRoomWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaYwRoomWindow from './components/OperaYwRoomWindow'
+export default {
+ name: 'YwRoom',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaYwRoomWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ name: '',
+ remark: '',
+ status: '',
+ sortnum: '',
+ imgurl: '',
+ code: '',
+ roomNum: '',
+ isInvestment: '',
+ area: '',
+ feeArea: '',
+ rentArea: '',
+ floor: '',
+ projectId: '',
+ buildingId: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '杩愮淮鎴挎簮淇℃伅琛�',
+ api: '/project/ywRoom',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/project/projectList.vue b/admin/src/views/project/projectList.vue
new file mode 100644
index 0000000..df5fee2
--- /dev/null
+++ b/admin/src/views/project/projectList.vue
@@ -0,0 +1,95 @@
+<template>
+ <TableLayout :permissions="['business:ywproject: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>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywproject:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:ywproject:create', 'business:ywproject:delete']">
+ <li><el-button type="primary" @click="$refs.operaYwProjectWindow.open('鏂板缓椤圭洰')" icon="el-icon-plus" v-permissions="['business:ywproject:create']">鏂板缓</el-button></li>
+ <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywproject:delete']">鍒犻櫎</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column type="selection" width="55"></el-table-column>
+ <el-table-column prop="name" label="椤圭洰鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column prop="name" label="绠$悊闈㈢Н(m)" min-width="100px"></el-table-column>
+ <el-table-column prop="name" label="椤圭洰鍚嶇О" min-width="100px"></el-table-column>
+
+ <el-table-column
+ v-if="containPermissions(['business:ywproject:update', 'business:ywproject:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaYwProjectWindow.open('缂栬緫椤圭洰', row)" icon="el-icon-edit" v-permissions="['business:ywproject:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywproject:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaYwProjectWindow ref="operaYwProjectWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaYwProjectWindow from './components/OperaYwProjectWindow'
+export default {
+ name: 'YwProject',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaYwProjectWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ name: '',
+ remark: '',
+ status: '',
+ sortnum: '',
+ imgurl: '',
+ areaId: '',
+ addr: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '杩愮淮椤圭洰淇℃伅琛�',
+ api: '/project/ywProject',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/platform/LogisticsRecord/screen.vue b/admin/src/views/stock/in.vue
similarity index 100%
rename from admin/src/views/platform/LogisticsRecord/screen.vue
rename to admin/src/views/stock/in.vue
diff --git a/admin/src/views/platform/LogisticsRecord/screen.vue b/admin/src/views/stock/out.vue
similarity index 100%
copy from admin/src/views/platform/LogisticsRecord/screen.vue
copy to admin/src/views/stock/out.vue
diff --git a/admin/src/views/platform/LogisticsRecord/screen.vue b/admin/src/views/stock/query.vue
similarity index 100%
copy from admin/src/views/platform/LogisticsRecord/screen.vue
copy to admin/src/views/stock/query.vue
diff --git a/admin/src/views/platform/LogisticsRecord/screen.vue b/admin/src/views/stock/record.vue
similarity index 100%
copy from admin/src/views/platform/LogisticsRecord/screen.vue
copy to admin/src/views/stock/record.vue
diff --git a/admin/src/views/task/dangetDetail.vue b/admin/src/views/task/dangetDetail.vue
deleted file mode 100644
index 2651ddb..0000000
--- a/admin/src/views/task/dangetDetail.vue
+++ /dev/null
@@ -1,906 +0,0 @@
-<template>
- <GlobalWindow :title="title" :visible.sync="isShowModal" @close="close" @confirm="confirm">
- <div class="modal_wrap">
- <div class="modal_content">
- <div class="header">
- <img v-if="info.status == '3' || info.status == '6'" class="head_bg" src="@/assets/task/bg_shenhe_fail@2x.png" alt="">
- <img v-else-if="info.status == '2' || info.status == '5'" class="head_bg" src="@/assets/task/bg_shenhe_pass@2x.png" alt="">
- <img v-else-if="info.status == '4'" class="head_bg" src="@/assets/task/bg_shenhe_chexiao@2x.png" alt="">
- <img v-else class="head_bg" src="@/assets/task/bg_shenhe@2x.png" alt="">
- <div class="left">
- <div class="h1">{{ cateList[type] }}</div>
- <div class="time">鎻愪氦鏃堕棿锛歿{ info.createDate }}</div>
- </div>
- <div class="right" :class="{ scs: info.status == '2' || info.status == '5', msg: info.status == '3' || info.status == '6' }">{{ statusMap[info.status] }}</div>
- </div>
- <div class="info">
- <div class="title">闅愭偅闅忔墜鎷嶄俊鎭�</div>
- <div class="list">
- <div class="item">
- <div class="label">鎻愭姤浜�</div>
- <div class="value">
- {{ info.memberName }} {{ info.memberPhone }}
- </div>
- </div>
- <div class="item">
- <div class="label">闅愭偅鍖哄煙</div>
- <div class="value">{{ info.areaName }}</div>
- </div>
- <div class="item">
- <div class="label">闅愭偅绫诲瀷</div>
- <div class="value">{{ info.categoryName }}</div>
- </div>
- <div class="item">
- <div class="label">闅愭偅鎻忚堪</div>
- <div class="value">{{ info.content }}</div>
- </div>
- <div class="item file">
- <div class="label">鐜板満鎯呭喌</div>
- <div class="value">
- <div class="file_list">
- <div class="file" v-for="item in info.submitFileList">
- <img
- v-if="item.type == 0"
- :key="item.id"
- :src="item.fileurlFull"
- mode="widthFix"
- class="img"
- />
- <video
- v-if="item.type == 1"
- :key="item.id"
- :src="item.fileurlFull"
- class="img"
- controls
- />
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="side">
- <div class="side_title">瀹℃壒娴佺▼</div>
- <div
- class="list"
- v-if="
- info.approveDateVO != null && info.approveDateVO.approveList != null
- "
- >
- <div
- class="item"
- v-for="(item, index) in info.approveDateVO.approveList"
- :key="item.id"
- >
- <div
- class="separate"
- v-if="index < info.approveDateVO.approveList.length - 1"
- ></div>
- <div class="info">
- <img
- src="@/assets/icons/ic_tongguo.png"
- class="iconnew"
- v-if="item.status == 2"
- />
- <img
- src="@/assets/icons/ic_dangqian.png"
- class="iconnew"
- v-if="item.status == 1"
- />
- <img
- src="@/assets/icons/ic_jujue.png"
- class="iconnew"
- v-if="item.status == 3"
- />
- <img
- src="@/assets/icons/ic_grey.png"
- class="iconnew"
- v-if="item.status == null || item.status == 0"
- />
- <div style="display: inline" v-if="item.approveType != 1">
- <img
- v-if="item.faceImg != null && item.faceImg != ''"
- :src="item.faceImg"
- class="avatar"
- alt=""
- />
- <img
- v-if="item.faceImg == null || item.faceImg == ''"
- src="@/assets/avatar/man.png"
- class="avatar"
- alt=""
- />
- </div>
- <div style="display: inline" v-if="item.approveType == 1">
- <img
- v-if="item.type != 1"
- src="@/assets/icons/ic_duoren.png"
- class="avatar"
- alt=""
- />
- <img
- v-if="item.type == 1"
- src="@/assets/icons/ic_chaosong.png"
- class="avatar"
- alt=""
- />
- </div>
- <div class="content">
- <div class="line">
- <div class="name">{{ item.title }}</div>
- <div class="time">{{ item.checkDate }}</div>
- </div>
- <div class="line">
- <div class="company">
- {{ item.memberName }}
- <div
- style="display: inline"
- v-if="item.statusInfo != null && item.statusInfo != ''"
- >
- 锛�<span class="status-green">{{
- item.statusInfo || ""
- }}</span
- >锛�
- </div>
- </div>
- </div>
- </div>
- </div>
- <div
- v-if="
- item.approveType != 1 &&
- item.checkInfo != null &&
- item.checkInfo != ''
- "
- class="remark"
- >
- {{ item.checkInfo || "" }}
- </div>
- <div v-if="item.approveType == 1" class="childList">
- <div
- class="m_content company"
- v-for="item1 in item.approveList"
- :key="item1.id"
- >
- <img
- v-if="item1.faceImg != null && item1.faceImg != ''"
- :src="item1.faceImg"
- class="avatar"
- alt=""
- />
- <img
- v-if="item1.faceImg == null || item1.faceImg == ''"
- src="@/assets/avatar/man.png"
- class="avatar"
- alt=""
- />
- <span> {{ item1.memberName }}</span>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <!-- -->
- <template v-slot:footer>
- <el-button @click="handleAppr" type="primary" class="status-red"
- >澶勭悊</el-button
- >
- <el-button @click="isShowTransfer = true" type="primary" plain
- >杞氦</el-button
- >
- <el-button @click="isShowBack = true" type="danger" plain>閫�鍥�</el-button>
- <el-button @click="close">杩斿洖</el-button>
- </template>
- <!-- 鍚屾剰/鎷掔粷 -->
- <el-dialog
- append-to-body
- title="闅愭偅杞氦"
- :visible.sync="isShowTransfer"
- width="600px"
- >
- <el-form
- :model="transferForm"
- :rules="handleRules"
- ref="transferForm"
- label-width="100px"
- class="demo-ruleForm"
- >
- <el-form-item label="闅愭偅杞氦浜�" prop="checkUserId">
- <el-select
- v-model="transferForm.checkUserId"
- filterable
- placeholder="璇烽�夋嫨 鍗曢��"
- >
- <el-option
- v-for="item in memberList"
- :key="item.id"
- :label="item.name"
- :value="item.id"
- >
- </el-option>
- </el-select>
- </el-form-item>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button @click="isShowTransfer = false">鍙栨秷</el-button>
- <el-button :loading="subLoading" type="primary" @click="onTransfer"
- >纭畾</el-button
- >
- </span>
- </el-dialog>
- <!-- 闅愭偅 -->
- <el-dialog
- append-to-body
- title="闅愭偅鏁存敼"
- :visible.sync="isShowProblem"
- width="600px"
- >
- <el-form
- :model="handleParam"
- :rules="handleRules"
- ref="handleForm"
- label-width="100px"
- >
- <el-form-item label="鏁存敼鏃堕棿" prop="dealTime">
- <el-date-picker
- class="w300"
- value-format="yyyy-MM-dd hh:mm:ss"
- type="datetime"
- placeholder="閫夋嫨鏃ユ湡"
- v-model="handleParam.dealTime"
- />
- </el-form-item>
- <el-form-item label="鏁存敼鍓�" prop="dealBeforeFileList">
- <div class="upload_wrap">
- <el-upload
- class="avatar-uploader"
- :action="uploadUrl"
- :show-file-list="false"
- :on-error="uploadError"
- :on-success="handleAvatarSuccess"
- :before-upload="beforeAvatarUpload"
- >
- <img v-if="param.url" :src="param.url" class="avatar" />
- <div v-else class="upload_box">
- <el-icon class="el-icon-plus icon" />
- <div class="text">鍥剧墖/瑙嗛</div>
- </div>
- </el-upload>
- <template v-if="handleParam.dealBeforeFileList">
- <div
- class="img_wrap"
- v-for="(img, i) in handleParam.dealBeforeFileList"
- :key="i"
- >
- <img v-if="img.type == 0" :src="img.fileurlFull" alt="" />
- <video
- v-if="img.type == 1"
- :src="img.fileurlFull"
- controls
- alt=""
- />
- </div>
- </template>
- </div>
- </el-form-item>
- <el-form-item label="鏁存敼鍚�" prop="dealAfterFileList">
- <div class="upload_wrap">
- <el-upload
- class="avatar-uploader"
- :action="uploadUrl"
- :show-file-list="false"
- :on-success="handleAfterSuccess"
- :on-error="uploadError"
- :before-upload="beforeAvatarUpload"
- >
- <img v-if="param.url" :src="param.url" class="avatar" />
- <div v-else class="upload_box">
- <el-icon class="el-icon-plus icon" />
- <div class="text">鍥剧墖/瑙嗛</div>
- </div>
- </el-upload>
- <template v-if="handleParam.dealAfterFileList">
- <div
- class="img_wrap"
- v-for="(img, i) in handleParam.dealAfterFileList"
- :key="i"
- >
- <img v-if="img.type == 0" :src="img.fileurlFull" alt="" />
- <video
- v-if="img.type == 1"
- :src="img.fileurlFull"
- controls
- alt=""
- />
- </div>
- </template>
- </div>
- </el-form-item>
- <el-form-item label="鏁存敼璇存槑">
- <el-input
- type="textarea"
- placeholder="璇峰~鍐欒鏄�"
- :rows="4"
- v-model="handleParam.checkInfo"
- />
- </el-form-item>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button @click="isShowProblem = false">鍙栨秷</el-button>
- <el-button type="primary" :loading="subLoading" @click="onSubAppr"
- >纭畾</el-button
- >
- </span>
- </el-dialog>
- <el-dialog
- append-to-body
- title="闅愭偅閫�鍥�"
- :visible.sync="isShowBack"
- width="600px"
- >
- <el-form
- :model="backForm"
- :rules="handleRules"
- ref="backForm"
- label-width="100px"
- >
- <el-form-item label="鏁存敼鏃堕棿" prop="dealTime">
- <el-date-picker
- class="w300"
- value-format="yyyy-MM-dd hh:mm:ss"
- type="datetime"
- placeholder="閫夋嫨鏃ユ湡"
- v-model="backForm.dealTime"
- />
- </el-form-item>
- <el-form-item label="鏁存敼鍓�">
- <div class="upload_wrap">
- <el-upload
- class="avatar-uploader"
- :action="uploadUrl"
- :show-file-list="false"
- :on-success="handleBackSuccess"
- :on-error="uploadError"
- :before-upload="beforeAvatarUpload"
- >
- <div class="upload_box">
- <el-icon class="el-icon-plus icon" />
- <div class="text">鍥剧墖/瑙嗛</div>
- </div>
- </el-upload>
- <template v-if="backForm.dealBeforeFileList">
- <div
- class="img_wrap"
- v-for="(img, i) in backForm.dealBeforeFileList"
- :key="i"
- >
- <img v-if="img.type == 0" :src="img.fileurlFull" alt="" />
- <video
- v-if="img.type == 1"
- :src="img.fileurlFull"
- controls
- alt=""
- />
- </div>
- </template>
- </div>
- </el-form-item>
- <el-form-item label="鏁存敼璇存槑">
- <el-input
- type="textarea"
- placeholder="璇峰~鍐欒鏄�"
- :rows="4"
- v-model="backForm.checkInfo"
- />
- </el-form-item>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button @click="isShowBack = false">鍙栨秷</el-button>
- <el-button type="primary" :loading="subLoading" @click="onSubBack"
- >纭畾</el-button
- >
- </span>
- </el-dialog>
- </GlobalWindow>
-</template>
-
-<script>
-import GlobalWindow from '@/components/common/GlobalWindow'
-import { memberList } from '@/api/business/hiddenDangerParam'
-import { Loading } from 'element-ui'
-import {
- uploadFile,
- hiddenDangerDetail,
- dealHiddenDanger,
- transferHiddenDanger
-} from '@/api/index'
-
-export default {
- components: { GlobalWindow },
- data () {
- return {
- id: '',
- type: '',
- uploadUrl: uploadFile,
- loadingInstance: false,
- title: '璁垮棰勭害璇︽儏',
- isShowModal: false,
- info: {},
- isShowAppr: false,
- apprTitle: '鍚屾剰',
- subLoading: false,
- param: {},
- handleParam: {},
- backForm: {},
- isShowBack: false,
- isShowTransfer: false,
- transferForm: {},
- memberList: [],
- isShowProblem: false,
- rules: {
- checkInfo: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }]
- },
- handleRules: {
- dealTime: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
- dealBeforeFileList: [{ type: 'array', required: true, message: '璇烽�夋嫨', trigger: 'change' }],
- checkUserId: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
- dealAfterFileList: [{ type: 'array', required: true, message: '璇烽�夋嫨', trigger: 'change' }]
- },
- statusMap: {
- 0: '寰呭鏍�',
- 1: '澶勭悊涓�',
- 2: '宸查�氳繃',
- 3: '宸叉嫆缁�',
- 4: '宸插彇娑�',
- 5: '浠栦汉鎴栫',
- 6: '浠栦汉鎷掔粷'
- },
- cateList: {
- 0: '璁垮鐢宠',
- 1: '璁垮鎶ュ',
- 2: '鐢ㄨ溅鐢宠',
- 3: '闅愭偅闅忔墜鎷�',
- 4: '鐗╂祦杞︾敵璇�'
- }
- }
- },
- created () {
- this.getMemberList()
- },
- methods: {
- onSubAppr () {
- this.$refs.handleForm.validate((valid) => {
- if (!valid) {
- return
- }
- this.subLoading = true
- dealHiddenDanger({
- ...this.handleParam,
- status: 1,
- id: this.id
- })
- .then(res => {
- this.subLoading = false
- this.$tip.apiSuccess('澶勭悊鎴愬姛')
- this.getDetail()
- this.$emit('success')
- this.$emit('close')
- this.isShowProblem = false
- })
- .finally(() => {
- this.subLoading = false
- })
- })
- },
- close(){
- this.isShowModal = false
- this.$emit('close')
- },
- onSubBack () {
- this.$refs.backForm.validate((valid) => {
- if (!valid) {
- return
- }
- this.subLoading = true
- dealHiddenDanger({
- ...this.backForm,
- status: 2,
- id: this.id
- })
- .then(res => {
- this.subLoading = false
- this.$tip.apiSuccess('閫�鍥炴垚鍔�')
- this.getDetail()
- this.isShowProblem = false
- })
- .finally(() => {
- this.subLoading = false
- })
- })
- },
- onTransfer () {
- this.$refs.transferForm.validate((valid) => {
- if (!valid) {
- return
- }
- this.subLoading = true
- transferHiddenDanger({
- ...this.transferForm,
- id: this.id
- })
- .then(res => {
- this.subLoading = false
- if (res.code !== 200) return
- this.$tip.apiSuccess('杞氦鎴愬姛')
- this.getDetail()
- this.isShowTransfer = false
- })
- .finally(() => {
- this.subLoading = false
- })
- })
- },
- getMemberList () {
- memberList({}).then(res => {
- this.memberList = res || []
- })
- },
- getDetail () {
- const { id } = this
- hiddenDangerDetail(id).then(res => {
- this.info = res
- })
- },
- handleAppr (val) {
- this.isShowProblem = true
- },
- confirm () {
- console.log('--')
- },
- handleTransfer () {
- this.isShowProblem = true
- },
- reject () { },
- handleAvatarSuccess (res) {
- this.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
- if(this.loadingInstance){
- this.loadingInstance.close()
- }
- })
- if (res.code === 200) {
- const str = res.data.url.indexOf('png') > 0 || res.data.url.indexOf('jpg') > 0
- const arr = this.handleParam.dealBeforeFileList || []
- arr.push({
- type: str ? 0 : 1,
- fileurl: res.data.imgaddr,
- fileurlFull: res.data.url
- })
- this.$set(this.handleParam, 'dealBeforeFileList', arr)
- }
- },
- handleAfterSuccess (res) {
- this.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
- if(this.loadingInstance){
- this.loadingInstance.close()
- }
- })
- if (res.code === 200) {
- const str = res.data.url.indexOf('png') > 0 || res.data.url.indexOf('jpg') > 0
- const arr = this.handleParam.dealAfterFileList || []
- arr.push({
- type: str ? 0 : 1,
- fileurl: res.data.imgaddr,
- fileurlFull: res.data.url
- })
- this.$set(this.handleParam, 'dealAfterFileList', arr)
- }
- },
- handleBackSuccess (res) {
- this.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
- if(this.loadingInstance){
- this.loadingInstance.close()
- }
- })
- if (res.code === 200) {
- const str = res.data.url.indexOf('png') > 0 || res.data.url.indexOf('jpg') > 0
- const arr = this.backForm.dealBeforeFileList || []
- arr.push({
- type: str ? 0 : 1,
- fileurl: res.data.imgaddr,
- fileurlFull: res.data.url
- })
- this.$set(this.backForm, 'dealBeforeFileList', arr)
- }
- },
- beforeAvatarUpload () {
- this.loadingInstance = Loading.service({
- lock: true,
- text: 'Loading',
- spinner: 'el-icon-loading',
- background: 'rgba(0, 0, 0, 0.7)'
- })
- },
- uploadError() {
- this.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
- this.loadingInstance.close()
- })
- },
- }
-}
-</script>
-
-<style lang="scss" scoped>
-@import "@/assets/style/variables.scss";
-.upload_wrap {
- display: flex;
- flex-wrap: wrap;
- .img_wrap {
- width: 85px;
- margin-right: 10px;
- margin-bottom: 10px;
- img,
- video {
- width: 100%;
- }
- }
-}
-.upload_box {
- width: 84px;
- height: 84px;
- border-radius: 4px;
- background-color: #f7f7f7;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- color: #999999;
- border: 1px solid #e4e4e4;
- .icon {
- font-size: 24px;
- }
- .text {
- font-size: 12px;
- }
-}
-.side_title {
- font-weight: 600;
- font-size: 18px;
- color: #111111;
- margin-bottom: 20px;
- margin-left: 20px;
- margin-top: 20px;
-}
-.modal_wrap {
- display: flex;
- height: 100%;
- .modal_content {
- flex: 1;
- padding: 0px 30px;
- border-radius: 8px;
- overflow: hidden;
- height: 100%;
-
- .title {
- font-weight: 600;
- font-size: 18px;
- color: #333333;
- margin-bottom: 20px;
- margin-top: 30px;
- }
- .info {
- .list {
- display: flex;
- flex-wrap: wrap;
-
- .item {
- display: flex;
- width: 40%;
- margin-bottom: 20px;
- &:nth-of-type(2n) {
- width: 60%;
- }
-
- .label {
- color: #888888;
- width: 100px;
- }
- .file_list {
- display: flex;
- .file {
- width: 92px;
- margin-right: 12px;
- margin-bottom: 12px;
- .img{
- max-height: 92px;
- max-width: 92px;
- }
- }
- }
- .value {
- color: #111111;
- }
- }
- .file {
- width: 100%;
- }
- }
- }
-
- .header {
- display: flex;
- justify-content: space-between;
- align-items: center;
- padding: 20px 30px;
- margin: 0 -30px;
- border-radius: 8px 8px 0 0;
- position: relative;
- .head_bg{
- position: absolute;
- width: 100%;
- height: 100%;
- left: 0;
- top: 0;
- z-index: 9;
- }
- .h1 {
- font-weight: 600;
- font-size: 22px;
- color: #111111;
- margin-bottom: 8px;
- }
-
- .time {
- font-size: 14px;
- color: #999999;
- }
- .right {
- height: 40px;
- font-size: 16px;
- color: #ffffff;
- line-height: 40px;
- padding: 0 20px;
- background: #207ff7;
- box-shadow: 4px 4px 0px 0px rgba(32, 127, 247, 0.16);
- border-radius: 16px 0px 16px 0px;
- position: relative;
- z-index: 99;
- }
- .scs{
- background-color: #00BA67;
- }
- .msg{
- background-color: #ED4545;
- }
- }
- .table_info {
- .name_wrap {
- display: flex;
- align-items: center;
- .avatar {
- width: 40px;
- height: 40px;
- border-radius: 50%;
- margin-right: 12px;
- }
- .content {
- .line {
- display: flex;
- }
- .tag {
- color: #b2cbf9;
- border: 1px solid #b2cbf9;
- padding: 0px 4px;
- border-radius: 4px;
- margin-left: 6px;
- }
- }
- }
- }
- }
-
- .side {
- height: 100%;
- width: 420px;
- background: #ffffff;
- border-left: 20px solid #f7f7f7;
- .list {
- .item {
- padding: 8px 0;
- position: relative;
- .separate {
- position: absolute;
- border-left: 2px dashed #cccccc;
- left: 31px;
- height: calc(100% - 30px);
- top: 49px;
- }
- .avatar {
- width: 40px;
- height: 40px;
- border-radius: 50%;
- margin: 0 12px 0 16px;
- //border: 1px solid;
- }
- .childList {
- display: flex;
- flex-wrap: wrap;
- margin-left: 100px;
- }
- .company {
- font-size: 13px;
- color: #888888;
- .status {
- color: $primaryColor;
- }
- }
- .m_content {
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- margin-bottom: 4px;
- }
- .info {
- display: flex;
- align-items: center;
- margin-left: 20px;
- .icon {
- position: relative;
- z-index: 11;
- color: #53b76f;
- font-size: 24px;
- }
- .icon1 {
- position: relative;
- z-index: 11;
- color: deepskyblue;
- font-size: 24px;
- }
- .icon2 {
- position: relative;
- z-index: 11;
- color: #dc362e;
- font-size: 24px;
- }
- .iconnew {
- width: 24px;
- height: 24px;
- }
- .icon3 {
- position: relative;
- z-index: 11;
- color: gray;
- font-size: 24px;
- }
- .content {
- flex: 1;
- .line {
- display: flex;
- justify-content: space-between;
- align-content: center;
- margin-bottom: 6px;
- .name {
- font-weight: 600;
- font-size: 16px;
- color: #111111;
- }
- .time {
- color: #888888;
- }
- }
- }
- }
- .remark {
- background: #f7f7f7;
- border-radius: 4px;
- padding: 13px 15px;
- color: #666666;
- margin-left: 100px;
- }
- }
- }
- }
-}
-</style>
diff --git a/admin/src/views/task/driverDetail.vue b/admin/src/views/task/driverDetail.vue
deleted file mode 100644
index e7f6cad..0000000
--- a/admin/src/views/task/driverDetail.vue
+++ /dev/null
@@ -1,519 +0,0 @@
-<template>
- <GlobalWindow :title="title" :visible.sync="isShowModal" @close="close" @confirm="confirm">
- <div class="modal_wrap">
- <div class="modal_content">
- <div class="header">
- <img v-if="info.status == '3' || info.status == '6'" class="head_bg" src="@/assets/task/bg_shenhe_fail@2x.png"
- alt="">
- <img v-else-if="info.status == '2' || info.status == '5'" class="head_bg"
- src="@/assets/task/bg_shenhe_pass@2x.png" alt="">
- <img v-else-if="info.status == '4'" class="head_bg" src="@/assets/task/bg_shenhe_chexiao@2x.png" alt="">
- <img v-else class="head_bg" src="@/assets/task/bg_shenhe@2x.png" alt="">
- <div class="left">
- <div class="h1">鐗╂祦杞﹂绾�</div>
- <div class="time">鎻愪氦鏃堕棿锛歿{ info.createDate }}</div>
- </div>
- <div class="right"
- :class="{ scs: info.status == '2' || info.status == '5', msg: info.status == '3' || info.status == '6' }">{{
- statusMap[info.status] }}</div>
- </div>
- <div class="info">
- <div class="title">鐗╂祦杞﹂绾︿俊鎭�</div>
- <div class="list">
- <div class="item">
- <div class="label">鐢宠浜�</div>
- <div class="value">{{ info.driverName }} {{ info.driverPhone }}</div>
- </div>
- <div class="item">
- <div class="label">杞︾墝鐓�</div>
- <div class="value">鍓� {{ info.carCodeFront }}锛屽悗 {{ info.carCodeBack }}</div>
- </div>
- <div class="item">
- <div class="label">鍚堝悓缂栧彿</div>
- <div class="value">{{ info.contractNum }}</div>
- </div>
- <div class="item">
- <div class="label">鍒板巶鏃堕棿</div>
- <div class="value">{{ info.arriveDate }}</div>
- </div>
- <div class="item">
- <div class="label">鍏ュ簱绫诲瀷</div>
- <div class="value">{{ info.inType == 0 ? '鏁存墭鐩�' : '浠剁儫' }}</div>
- </div>
- <div class="item">
- <div class="label">鎬昏繍杈撻噺</div>
- <div class="value">{{ info.totalNum || info.ioQty }}涓囨敮</div>
- </div>
- <div class="item">
- <div class="label">鍑嗚繍璇佺収鐗�</div>
- <div v-if="info.transportImg" class="value">
- <el-image style="width: 100px" :preview-src-list="[info.prefixUrl + info.transportImg]"
- :src="info.prefixUrl + info.transportImg" alt="" />
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="side">
- <div class="side_title">瀹℃壒娴佺▼</div>
- <div class="list" v-if="info.approveDateVO != null && info.approveDateVO.approveList != null">
- <div class="item" v-for="item, index in info.approveDateVO.approveList">
- <div v-if="index != info.approveDateVO.approveList.length - 1" class="separate"></div>
- <div class="info">
- <img src="@/assets/icons/ic_tongguo.png" class="iconnew" v-if="item.status == 2" />
- <img src="@/assets/icons/ic_dangqian.png" class="iconnew" v-if="item.status == 1" />
- <img src="@/assets/icons/ic_jujue.png" class="iconnew" v-if="item.status == 3" />
- <img src="@/assets/icons/ic_grey.png" class="iconnew" v-if="item.status == null || item.status == 0" />
- </div>
- <div class="avatar_wrap">
- <img class="img" :src="item.faceImg
- ? item.faceImg
- : require('@/assets/avatar/man.png')
- " />
- </div>
- <div class="content">
- <div class="head">
- <div class="event">{{ item.title }}</div>
- <div class="time">{{ item.checkDate }}</div>
- </div>
- <div class="name_wrap">
- <span>{{ item.memberName }}<span v-if="item.statusInfo" class="status">({{ item.statusInfo
- }})</span></span>
- </div>
- <div v-if="item.checkInfo" class="remark">
- {{ item.checkInfo }}
- </div>
- <div v-if="item.approveType == 0 || item.type == 1 || item.approveType == 1" class="carbon">
- <div class="carbon_item" v-for="child in item.approveList" :key="child.id">
- <img v-if="child.faceImg != null && child.faceImg != ''" :src="child.faceImg" class="avatar" alt="" />
- <img v-if="child.faceImg == null || child.faceImg == ''" src="@/assets/avatar/man.png" class="avatar"
- alt="" />
- <div class="text">{{ child.memberName }}</div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <!-- -->
- <template v-slot:footer>
- <el-button @click="handleAppr(2)" type="primary" class="status-red" v-if="
- info.approveDateVO != null &&
- info.approveDateVO.canBeApproved != null &&
- info.approveDateVO.canBeApproved == 1
- ">鍚屾剰</el-button>
- <el-button @click="handleAppr(3)" type="danger" v-if="
- info.approveDateVO != null &&
- info.approveDateVO.canBeApproved != null &&
- info.approveDateVO.canBeApproved == 1
- ">鎷掔粷</el-button>
- <el-button @click="close">杩斿洖</el-button>
- </template>
- <!-- 鍚屾剰/鎷掔粷 -->
- <el-dialog append-to-body :title="apprTitle" :visible.sync="isShowAppr" width="480px">
- <el-form :model="param" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
- <el-form-item :prop="param.status == 3 ? 'checkInfo' : ''" :label="param.status == 2 ? '鍚屾剰璇存槑' : '鎷掔粷璇存槑'">
- <el-input type="textarea" :placeholder="param.status == 2 ? '鍚屾剰璇存槑锛岄潪蹇呭~' : '鎷掔粷璇存槑蹇呭~'
- " :rows="4" v-model="param.checkInfo" />
- </el-form-item>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button @click="isShowAppr = false">鍙栨秷</el-button>
- <el-button :loading="subLoading" type="primary" @click="onSubAppr">纭畾</el-button>
- </span>
- </el-dialog>
- </GlobalWindow>
-</template>
-
-<script>
-import GlobalWindow from '@/components/common/GlobalWindow'
-import {
- getDriverJobDetail,
- approveDo
-} from '@/api'
-export default {
- components: { GlobalWindow },
- data() {
- return {
- id: '',
- type: '',
-
- title: '鐗╂祦杞﹂绾﹁鎯�',
- isShowModal: false,
- info: {},
- isShowAppr: false,
- apprTitle: '鍚屾剰',
- subLoading: false,
- param: {},
-
- isShowProblem: false,
- rules: {
- checkInfo: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }]
- },
- statusMap: {
- 0: '寰呭鏍�',
- 1: '澶勭悊涓�',
- 2: '宸插悓鎰�',
- 3: '宸叉嫆缁�',
- 4: '宸插彇娑�',
- 5: '浠栦汉鎴栫',
- 6: '浠栦汉鎷掔粷'
- },
- cateList: {
- 0: '璁垮鐢宠',
- 1: '璁垮鎶ュ',
- 2: '鐢ㄨ溅鐢宠',
- 3: '闅愭偅闅忔墜鎷�',
- 4: '鐗╂祦杞︾敵璇�'
- }
- }
- },
- methods: {
- onSubAppr() {
- this.$refs.ruleForm.validate((valid) => {
- if (!valid) {
- return
- }
- this.$dialog.actionConfirm('鎿嶄綔纭', this.param.status === 2 ? '鎮ㄧ‘璁ゅ悓鎰忚鐢宠鍚楋紵' : '鎮ㄧ‘璁ゆ嫆缁濊鐢宠鍚楋紵')
- .then(() => {
- this.subLoading = true
- approveDo({
- objId: this.id,
- objType: 6,
- status: this.param.status,
- checkInfo: this.param.checkInfo
- })
- .then(res => {
- this.subLoading = false
- this.$tip.apiSuccess('澶勭悊鎴愬姛')
- this.getDetail()
- this.$emit('success')
- this.$emit('close')
- this.isShowAppr = false
- })
- .finally(() => {
- this.subLoading = false
- })
- })
- })
- },
- getDetail() {
- const { id } = this
- getDriverJobDetail(id).then(res => {
- this.info = res
- if (this.info.approveDateVO && this.info.approveDateVO.approveList.length > 0) {
- this.info.approveDateVO.approveList.forEach(item => {
- if (item.approveList && item.approveList.length == 1 && item.type !== 1) {
- item.title = item.approveList[0].title
- item.faceImg = item.approveList[0].faceImg
- item.memberName = item.approveList[0].memberName
- item.statusInfo = item.approveList[0].statusInfo
- item.approveList = []
- }
- })
- }
- })
- },
- close() {
- this.isShowModal = false
- this.$emit('close')
- },
- handleAppr(val) {
- this.$set(this.param, 'status', val)
- this.apprTitle = val == 2 ? '鍚屾剰' : '鎷掔粷'
- this.isShowAppr = true
- },
- confirm() {
- console.log('--')
- },
- handleTransfer() {
- this.isShowProblem = true
- },
- reject() { },
- handleAvatarSuccess() { },
- beforeAvatarUpload() { }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-@import "@/assets/style/variables.scss";
-
-.upload_box {
- width: 84px;
- height: 84px;
- border-radius: 4px;
- background-color: #f7f7f7;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- color: #999999;
- border: 1px solid #e4e4e4;
-
- .icon {
- font-size: 24px;
- }
-
- .text {
- font-size: 12px;
- }
-}
-
-.side_title {
- font-weight: 600;
- font-size: 18px;
- color: #111111;
- margin-bottom: 20px;
- margin-left: 20px;
- margin-top: 20px;
-}
-
-.modal_wrap {
- display: flex;
- height: 100%;
-
- .modal_content {
- flex: 1;
- padding: 0px 30px;
- border-radius: 8px;
- overflow: hidden;
- height: 100%;
-
- .title {
- font-weight: 600;
- font-size: 18px;
- color: #333333;
- margin-bottom: 20px;
- margin-top: 30px;
- }
-
- .info {
- .list {
- display: flex;
- flex-wrap: wrap;
-
- .item {
- display: flex;
- width: 40%;
- margin-bottom: 20px;
-
- &:nth-of-type(2n) {
- width: 60%;
- }
-
- .label {
- color: #888888;
- width: 100px;
- }
-
- .value {
- color: #111111;
- }
- }
- }
- }
-
- .header {
- display: flex;
- justify-content: space-between;
- align-items: center;
- padding: 20px 30px;
- margin: 0 -30px;
- border-radius: 8px 8px 0 0;
- position: relative;
-
- .head_bg {
- position: absolute;
- width: 100%;
- height: 100%;
- left: 0;
- top: 0;
- z-index: 9;
- }
-
- .h1 {
- font-weight: 600;
- font-size: 22px;
- color: #111111;
- margin-bottom: 8px;
- }
-
- .time {
- font-size: 14px;
- color: #999999;
- }
-
- .right {
- height: 40px;
- font-size: 16px;
- color: #ffffff;
- line-height: 40px;
- padding: 0 20px;
- background: #207ff7;
- box-shadow: 4px 4px 0px 0px rgba(32, 127, 247, 0.16);
- border-radius: 16px 0px 16px 0px;
- position: relative;
- z-index: 99;
- }
-
- .scs {
- background-color: #00BA67;
- }
-
- .msg {
- background-color: #ED4545;
- }
- }
-
- .table_info {
- .name_wrap {
- display: flex;
- align-items: center;
-
- .avatar {
- width: 40px;
- height: 40px;
- border-radius: 50%;
- margin-right: 12px;
- }
-
- .content {
- .line {
- display: flex;
- }
-
- .tag {
- color: #b2cbf9;
- border: 1px solid #b2cbf9;
- padding: 0px 4px;
- border-radius: 4px;
- margin-left: 6px;
- }
- }
- }
- }
- }
-
- .side {
- height: 100%;
- width: 420px;
- background: #ffffff;
- border-left: 20px solid #f7f7f7;
-
- .list {
- .item {
- padding: 8px 0;
- display: flex;
- margin-bottom: 24px;
- position: relative;
-
- .separate {
- position: absolute;
- border-left: 2px dashed #cccccc;
- left: 31px;
- height: calc(100% - 2px);
- top: 42px;
- }
-
- .info {
- padding-top: 10px;
- margin-left: 20px;
- margin-right: 16px;
-
- .iconnew {
- width: 24px;
- height: 24px;
- }
- }
-
- .avatar_wrap {
- width: 40px;
- height: 40px;
- position: relative;
- margin-right: 10px;
-
- .img {
- width: 40px;
- height: 40px;
- border-radius: 50%;
- }
-
- .status {
- width: 14px;
- height: 14px;
- border-radius: 50%;
- position: absolute;
- right: 0;
- bottom: 0;
- }
-
- }
-
- .content {
- flex: 1;
-
- .head {
- display: flex;
- justify-content: space-between;
- margin-bottom: 2px;
-
- .event {
- font-size: 15px;
- }
-
- .time {
- font-size: 13px;
- color: #999999;
- }
- }
-
- .name_wrap {
- font-size: 13px;
- color: #777777;
-
- .status {
- color: $primaryColor;
- }
- }
-
- .remark {
- margin-top: 6px;
- background-color: #f7f7f7;
- padding: 7px 10px;
- border-radius: 4px;
- font-size: 13px;
- color: #666666;
- line-height: 18px;
- }
- }
-
- .carbon {
- display: flex;
- width: 100%;
- overflow-x: auto;
- margin-top: 12px;
-
- .carbon_item {
- text-align: center;
- flex-shrink: 0;
- width: 60px;
-
- img {
- width: 36px;
- height: 36px;
- margin: 0 auto;
- }
-
- div {
- font-size: 13px;
- color: #777777;
- }
- }
- }
- }
- }
- }
-}
-</style>
diff --git a/admin/src/views/task/index.vue b/admin/src/views/task/index.vue
deleted file mode 100644
index ac5d8d1..0000000
--- a/admin/src/views/task/index.vue
+++ /dev/null
@@ -1,303 +0,0 @@
-<template>
- <div class="main_app">
- <QueryForm
- v-model="filters"
- :query-form-config="queryFormConfig"
- @handleQuery="getList(1)"
- @clear="clear"
- @changeForm='changeForm'
- >
- <template #fastdate>
- <el-radio-group
- v-model="filters.fastdate"
- size="small"
- @input="changeRadio"
- >
- <el-radio-button label="0">褰撳ぉ</el-radio-button>
- <el-radio-button label="6">杩�7澶�</el-radio-button>
- <el-radio-button label="29">杩�30澶�</el-radio-button>
- </el-radio-group>
- </template>
- </QueryForm>
- <!-- -->
- <el-tabs v-model="filters.queryType" @tab-click="(e) => getList(1)">
- <el-tab-pane label="寰呭鐞�" name="0">
- <template #label>
- <span
- >寰呭鐞�
- <el-badge
- v-if="headData.noticeWaitNum"
- :value="headData.noticeWaitNum"
- class="item"
- type="danger"
- >
- </el-badge>
- </span>
- </template>
- </el-tab-pane>
- <el-tab-pane :value="headData.noticeDealNum" label="宸插鐞�" name="1">
- </el-tab-pane>
- <el-tab-pane :value="headData.noticeCreateNum" label="鎴戝彂璧风殑" name="2">
- </el-tab-pane>
- <el-tab-pane :value="headData.noticeCopyNum" label="鎶勯�佹垜鐨�" name="3">
- <template #label>
- <span
- >鎶勯�佹垜鐨�
- <el-badge
- v-if="headData.noticeCopyNum"
- :value="headData.noticeCopyNum"
- class="item"
- type="danger"
- >
- </el-badge>
- </span>
- </template>
- </el-tab-pane>
- </el-tabs>
- <el-table
- v-loading="loading"
- :data="dataList"
- stripe
- row-key="id"
- class="mb20"
- default-expand-all
- >
- <el-table-column label="澶勭悊浜嬮」" min-width="160">
- <template slot-scope="{ row }"> {{ row.title}}
- </template>
- </el-table-column>
- <el-table-column prop="info" label="褰撳墠闃舵" min-width="100"></el-table-column>
- <el-table-column prop="createDate" label="鎻愪氦鏃堕棿" min-width="100">
- </el-table-column>
- <el-table-column label="鎿嶄綔" width="230" fixed="right">
- <template slot-scope="{ row }">
- <el-button
- type="text"
- @click="handleDetail(row)"
- >鏌ョ湅璇︽儏</el-button
- >
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="getList"
- :pagination="pagination"
- />
- <TaskDetail v-if="isShowDetail" ref="DetailRef" @close="isShowDetail = false" @success="SubSuccess('isShowDetail')" />
- <VisReportDetail v-if="isShowReport" ref="VisReportDetailRef" @close="isShowReport = false" @success="SubSuccess('isShowReport')" />
- <DangetDetail v-if="isShowDanger" ref="DangetDetailRef" @close="isShowDanger = false" @success="SubSuccess('isShowDanger')" />
- <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" @close="isShowDriver = false" @success="SubSuccess('isShowDriver')" />
- <!-- 鐢ㄨ溅鐢宠 -->
- <OperaCarUseBookWindow ref="OperaDetailsWindow" @success="getList" />
- <!-- 闅愭偅 -->
- <OperaHiddenDangerWindow ref="OperaHiddenDangerWindow" @success="getList" />
- <!-- 棰勭害璇︽儏 -->
- <OperaVisitsDesWindow ref="OperaVisitsDesWindow" />
- </div>
-</template>
-
-<script>
-import Pagination from '@/components/common/Pagination'
-import QueryForm from '@/components/common/QueryForm'
-import TaskDetail from './visSubDetail.vue'
-import VisReportDetail from './visReportDetail.vue'
-import DangetDetail from './dangetDetail.vue'
-import DriverDetail from './driverDetail.vue'
-import OperaCarUseBookWindow from '@/components/business/OperaCarUseBookWindow'
-import OperaHiddenDangerWindow from '@/components/business/OperaHiddenDangerWindow'
-import OperaVisitsDesWindow from '@/components/business/OperaVisitsDesWindow'
-import dayjs from 'dayjs'
-import {
- taskCenterHeadPC,
- taskCenterPage,
- taskSignRead
-} from '@/api'
-export default {
- components: {
- TaskDetail,
- VisReportDetail,
- DangetDetail,
- QueryForm,
- DriverDetail,
- Pagination,
- OperaCarUseBookWindow,
- OperaHiddenDangerWindow,
- OperaVisitsDesWindow
- },
- data () {
- return {
- isShowDetail: false,
- isShowReport: false,
- isShowDanger: false,
- isShowDriver: false,
- filters: {
- queryType: '0',
- // fastdate: 0
- },
- queryFormConfig: {
- formItems: [
- {
- filed: 'type',
- type: 'select',
- label: '浠诲姟绫诲瀷',
- options: [
- { label: '璁垮鐢宠', value: '0' },
- { label: '璁垮鎶ュ', value: '1' },
- { label: '鐢ㄨ溅鐢宠', value: '2' },
- { label: '闅愭偅闅忔墜鎷�', value: '3' },
- { label: '鐗╂祦杞︾敵璇�', value: '4' }
- ]
- },
- {
- filed: 'selTime',
- type: 'datetimerange',
- label: '璧锋鏃堕棿',
- pickerOptions: {}
- },
- {
- type: 'slot',
- filed: 'fastdate',
- label: ''
- }
- ],
- online: true
- },
- pagination: {
- capacity: 10,
- page: 1,
- total: 0,
- },
- loading: false,
- dataList: [],
- headData: {},
-
- cateList: [
- { name: '璁垮鐢宠', id: 0 },
- { name: '璁垮鎶ュ', id: 1 },
- { name: '鐢ㄨ溅鐢宠', id: 2 },
- { name: '闅愭偅闅忔墜鎷�', id: 3 },
- { name: '鐗╂祦杞︾敵璇�', id: 4 }
- ]
- }
- },
- created () {
- // this.getHeadData()
- // this.changeRadio('0')
- this.getList()
- },
- methods: {
- changeRadio (day) {
- const arr = [dayjs().subtract(day, 'day').format('YYYY-MM-DD') + ' 00:00:00', dayjs().format('YYYY-MM-DD') + ' 23:59:59']
- this.$set(this.filters, 'selTime', arr)
- this.getList()
- },
- SubSuccess(str) {
- this[str] = false
- this.getTaskList()
- },
- handleDetail (row) {
- if (this.filters.queryType == 3) {
- taskSignRead({
- noticesId: row.id,
- signType: 0
- }).then(res => {
- this.getHeadData()
- })
- }
- if (row.objType === 2) {
- this.$refs.OperaDetailsWindow.open('鍏姟杞︾敵璇疯鎯�', { ...row, id: row.objId })
- return
- }
- if (row.objType === 1) {
- this.isShowReport = true
- this.$nextTick(() => {
- this.$refs.VisReportDetailRef.id = row.objId
- this.$refs.VisReportDetailRef.type = row.objType
- this.$refs.VisReportDetailRef.getDetail()
- this.$refs.VisReportDetailRef.isShowModal = true
- })
- return
- }
- if (row.objType === 3) {
- const obj = { ...row, id: row.objId }
- this.$refs.OperaHiddenDangerWindow.open('闅愭偅闅忔墜鎷嶈鎯�', obj)
- return
- }
- if (row.objType === 6) {
- const obj = { ...row, id: row.objId }
- this.isShowDriver = true
- this.$nextTick(() => {
- this.$refs.DriverDetailRef.id = row.objId
- this.$refs.DriverDetailRef.type = row.objType
- this.$refs.DriverDetailRef.getDetail()
- this.$refs.DriverDetailRef.isShowModal = true
- })
- return
- }
- if (row.objType === 0) {
- this.isShowDetail = true
- this.$nextTick(() => {
- this.$refs.DetailRef.id = row.objId
- this.$refs.DetailRef.type = row.objType
- this.$refs.DetailRef.getDetail()
- this.$refs.DetailRef.isShowModal = true
- })
- }
- },
- changeForm (str) {
- if (str === 'selTime') {
- this.$set(this.filters, 'fastdate', null)
- this.getList()
- }
- },
- getList (page) {
- this.getHeadData()
- const { filters, pagination } = this
- if (filters.selTime && filters.selTime.length > 0) {
- filters.startDate = filters.selTime[0]
- filters.endDate = filters.selTime[1]
- } else {
- filters.startDate = null
- filters.endDate = null
- }
- pagination.page = page || pagination.page
- taskCenterPage({
- model: { ...filters, queryType: Number(filters.queryType) },
- ...pagination
- }).then(res => {
- console.log('res', res)
- this.dataList = res.records || []
- this.pagination.total = res.total || 0
- this.dataList.forEach(i => {
- i.param1 = JSON.parse(i.param1)
- })
- })
- },
- getHeadData () {
- const { filters } = this
- if (filters.selTime && filters.selTime.length > 0) {
- filters.startDate = filters.selTime[0]
- filters.endDate = filters.selTime[1]
- } else {
- filters.startDate = null
- filters.endDate = null
- }
- taskCenterHeadPC({ ...filters, queryType: Number(filters.queryType), isDetail: '1' }).then(res => {
- this.headData = res
- })
- },
- clear () {
- this.filters = {
- queryType: '0',
- }
- this.getList(0)
- },
- handleSizeChange (capacity) {
- this.pagination.capacity = capacity
- }
- }
-}
-</script>
-
-<style scoped lang="scss"></style>
diff --git a/admin/src/views/task/visReportDetail.vue b/admin/src/views/task/visReportDetail.vue
deleted file mode 100644
index 83c8ce0..0000000
--- a/admin/src/views/task/visReportDetail.vue
+++ /dev/null
@@ -1,567 +0,0 @@
-<template>
- <GlobalWindow :title="title" :visible.sync="isShowModal" @close="close" @confirm="confirm">
- <div class="modal_wrap">
- <div class="modal_content">
- <div class="header">
- <img v-if="info.businessStatus == '3'" class="head_bg" src="@/assets/task/bg_shenhe_fail@2x.png" alt="">
- <img v-else-if="info.businessStatus == '2'" class="head_bg" src="@/assets/task/bg_shenhe_pass@2x.png" alt="">
- <img v-else-if="info.businessStatus == '4'" class="head_bg" src="@/assets/task/bg_shenhe_chexiao@2x.png"
- alt="">
- <img v-else class="head_bg" src="@/assets/task/bg_shenhe@2x.png" alt="">
- <div class="left">
- <div class="h1">{{ cateList[type] }}</div>
- <div class="time">鎻愪氦鏃堕棿锛歿{ info.createDate }}</div>
- </div>
- <div class="right" :class="{ scs: info.businessStatus == '2', msg: info.businessStatus == '3' }">{{
- statusMap[info.businessStatus] }}</div>
- </div>
- <div class="info">
- <div class="title">璁垮鎶ュ淇℃伅</div>
- <div class="list">
- <div class="item">
- <div class="label">琚浜�</div>
- <div class="value">{{ info.receptMemberName }} {{ info.receptMemberDepartment }}</div>
- </div>
- <div class="item">
- <div class="label">鏉ヨ鏃堕棿</div>
- <div class="value">{{ info.starttime }}鑷硔{ info.endtime }}</div>
- </div>
- <div class="item">
- <div class="label">鏉ヨ鍗曚綅</div>
- <div class="value">{{ info.companyName }}</div>
- </div>
- <div class="item">
- <div class="label">鏉ヨ浜嬬敱</div>
- <div class="value">{{ info.reason }}</div>
- </div>
- <div class="item">
- <div class="label">鑱旂郴浜�</div>
- <div class="value">{{ info.name }} {{ info.phone }}</div>
- </div>
- <div class="item">
- <div class="label">鍏ュ洯杞﹁締</div>
- <div class="value">{{ info.carNos }}</div>
- </div>
- <div class="item">
- <div class="label">闅忚溅浜烘暟</div>
- <div class="value">{{ info.memberNum || 0 }}浜�</div>
- </div>
- </div>
- </div>
- </div>
- <div class="side">
- <div class="side_title">瀹℃壒娴佺▼</div>
- <div class="list" v-if="
- info.approveDateVO != null && info.approveDateVO.approveList != null
- ">
- <div class="item" v-for="(item, index) in info.approveDateVO.approveList" :key="item.id">
- <div class="separate" v-if="index < info.approveDateVO.approveList.length - 1"></div>
- <div class="info">
- <img src="@/assets/icons/ic_tongguo.png" class="iconnew" v-if="item.status == 2" />
- <img src="@/assets/icons/ic_dangqian.png" class="iconnew" v-if="item.status == 1" />
- <img src="@/assets/icons/ic_jujue.png" class="iconnew" v-if="item.status == 3" />
- <img src="@/assets/icons/ic_grey.png" class="iconnew" v-if="item.status == null || item.status == 0" />
- <div style="display: inline" v-if="item.approveType != 1">
- <img v-if="item.faceImg != null && item.faceImg != ''" :src="item.faceImg" class="avatar" alt="" />
- <img v-if="item.faceImg == null || item.faceImg == ''" src="@/assets/avatar/man.png" class="avatar"
- alt="" />
- </div>
- <div style="display: inline" v-if="item.approveType == 1">
- <img v-if="item.type != 1" src="@/assets/icons/ic_duoren.png" class="avatar" alt="" />
- <img v-if="item.type == 1" src="@/assets/icons/ic_chaosong.png" class="avatar" alt="" />
- </div>
- <div class="content">
- <div class="line">
- <div class="name">{{ item.title }}</div>
- <div class="time">{{ item.checkDate }}</div>
- </div>
- <div class="line">
- <div class="company">
- {{ item.memberName }}
- <div style="display: inline" v-if="item.statusInfo != null && item.statusInfo != ''">
- 锛�<span :class="{ padding: item.statusInfo == '澶勭悊涓�' || item.status == '1' }">{{
- item.statusInfo || ""
- }}</span>锛�
- </div>
- </div>
- </div>
- </div>
- </div>
- <div v-if="
- item.approveType != 1 &&
- item.checkInfo != null &&
- item.checkInfo != ''
- " class="remark">
- {{ item.checkInfo || "" }}
- </div>
- <div v-if="item.approveType == 0 || item.type == 1 || item.approveType == 1" class="childList">
- <div class="m_content company" v-for="item1 in item.approveList" :key="item1.id">
- <img v-if="item1.faceImg != null && item1.faceImg != ''" :src="item1.faceImg" class="avatar" alt="" />
- <img v-if="item1.faceImg == null || item1.faceImg == ''" src="@/assets/avatar/man.png" class="avatar"
- alt="" />
- <span> {{ item1.memberName }}</span>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <!-- -->
- <template v-slot:footer>
- <el-button @click="handleAppr(2)" type="primary" class="status-red" v-if="
- info.approveDateVO != null &&
- info.approveDateVO.canBeApproved != null &&
- info.approveDateVO.canBeApproved == 1
- ">鍚屾剰</el-button>
- <el-button @click="handleAppr(3)" type="danger" v-if="
- info.approveDateVO != null &&
- info.approveDateVO.canBeApproved != null &&
- info.approveDateVO.canBeApproved == 1
- ">鎷掔粷</el-button>
- <el-button @click="close">杩斿洖</el-button>
- </template>
- <!-- 鍚屾剰/鎷掔粷 -->
- <el-dialog append-to-body :title="apprTitle" :visible.sync="isShowAppr" width="480px">
- <el-form :model="param" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
- <el-form-item :prop="param.status == 3 ? 'checkInfo' : ''" :label="param.status == 2 ? '鍚屾剰璇存槑' : '鎷掔粷璇存槑'">
- <el-input type="textarea" :placeholder="param.status == 2 ? '鍚屾剰璇存槑锛岄潪蹇呭~' : '鎷掔粷璇存槑蹇呭~'
- " :rows="4" v-model="param.checkInfo" />
- </el-form-item>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button @click="isShowAppr = false">鍙栨秷</el-button>
- <el-button :loading="subLoading" type="primary" @click="onSubAppr">纭畾</el-button>
- </span>
- </el-dialog>
- <!-- 闅愭偅 -->
- <el-dialog append-to-body title="闅愭偅" :visible.sync="isShowProblem" width="480px">
- <el-form :model="param" :rules="rules" ref="ruleForm" label-width="100px">
- <el-form-item label="閫�鍥炴椂闂�">
- <el-date-picker class="w300" value-format="yyyy-MM-dd" type="date" placeholder="閫夋嫨鏃ユ湡" v-model="param.date" />
- </el-form-item>
- <el-form-item label="鏁存敼鍓�">
- <div class="df_ac">
- <img src="@/assets/avatar/man.png" />
- <el-upload class="avatar-uploader" action="https://jsonplaceholder.typicode.com/posts/"
- :show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
- <img v-if="param.url" :src="param.url" class="avatar" />
- <div v-else class="upload_box">
- <el-icon class="el-icon-plus icon" />
- <div class="text">鍥剧墖/瑙嗛</div>
- </div>
- </el-upload>
- </div>
- </el-form-item>
- <el-form-item label="閫�鍥炶鏄�">
- <el-input type="textarea" placeholder="璇峰~鍐欒鏄�" :rows="4" v-model="param.explain" />
- </el-form-item>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button @click="isShowProblem = false">鍙栨秷</el-button>
- <el-button type="primary" @click="isShowProblem = false">纭畾</el-button>
- </span>
- </el-dialog>
- </GlobalWindow>
-</template>
-
-<script>
-import GlobalWindow from '@/components/common/GlobalWindow'
-import {
- getVisitedReDetail,
- approveDo
-} from '@/api'
-export default {
- components: { GlobalWindow },
- data() {
- return {
- id: '',
- type: '',
-
- title: '璁垮棰勭害璇︽儏',
- isShowModal: false,
- info: {},
- isShowAppr: false,
- apprTitle: '鍚屾剰',
- subLoading: false,
- param: {},
-
- isShowProblem: false,
- rules: {
- checkInfo: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }]
- },
- statusMap: {
- 0: '寰呭鏍�',
- 1: '澶勭悊涓�',
- 2: '宸查�氳繃',
- 3: '宸叉嫆缁�',
- 4: '宸插彇娑�',
- 5: '浠栦汉鎴栫',
- 6: '浠栦汉鎷掔粷'
- },
- cateList: {
- 0: '璁垮鐢宠',
- 1: '璁垮鎶ュ',
- 2: '鐢ㄨ溅鐢宠',
- 3: '闅愭偅闅忔墜鎷�',
- 4: '鐗╂祦杞︾敵璇�'
- }
- }
- },
- methods: {
- onSubAppr() {
- this.$refs.ruleForm.validate((valid) => {
- if (!valid) {
- return
- }
- this.$dialog.actionConfirm('鎿嶄綔纭', this.param.status === 2 ? '鎮ㄧ‘璁ゅ悓鎰忚鐢宠鍚楋紵' : '鎮ㄧ‘璁ゆ嫆缁濊鐢宠鍚楋紵')
- .then(() => {
- this.subLoading = true
- approveDo({
- objId: this.id,
- objType: 2,
- status: this.param.status,
- checkInfo: this.param.checkInfo
- })
- .then(res => {
- this.subLoading = false
- this.$tip.apiSuccess('澶勭悊鎴愬姛')
- this.getDetail()
- this.$emit('success')
- this.$emit('close')
- this.isShowAppr = false
- })
- .finally(() => {
- this.subLoading = false
- })
- })
- })
- },
- close() {
- this.isShowModal = false
- this.$emit('close')
- },
- getDetail() {
- const { id } = this
- getVisitedReDetail({ id }).then(res => {
- this.info = res
- if (this.info.approveDateVO && this.info.approveDateVO.approveList.length > 0) {
- this.info.approveDateVO.approveList.forEach(item => {
- if (item.approveList && item.approveList.length == 1 && item.type !== 1) {
- item.title = item.approveList[0].title
- item.faceImg = item.approveList[0].faceImg
- item.memberName = item.approveList[0].memberName
- item.statusInfo = item.approveList[0].statusInfo
- item.status = item.approveList[0].status
- item.approveList = []
- }
- })
- }
- })
- },
- handleAppr(val) {
- this.$set(this.param, 'status', val)
- this.apprTitle = val == 2 ? '鍚屾剰' : '鎷掔粷'
- this.isShowAppr = true
- },
- confirm() {
- console.log('--')
- },
- handleTransfer() {
- this.isShowProblem = true
- },
- reject() { },
- handleAvatarSuccess() { },
- beforeAvatarUpload() { }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-@import "@/assets/style/variables.scss";
-
-.upload_box {
- width: 84px;
- height: 84px;
- border-radius: 4px;
- background-color: #f7f7f7;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- color: #999999;
- border: 1px solid #e4e4e4;
-
- .icon {
- font-size: 24px;
- }
-
- .text {
- font-size: 12px;
- }
-}
-
-.side_title {
- font-weight: 600;
- font-size: 18px;
- color: #111111;
- margin-bottom: 20px;
- margin-left: 20px;
- margin-top: 20px;
-}
-
-.modal_wrap {
- display: flex;
- height: 100%;
-
- .modal_content {
- flex: 1;
- padding: 0px 30px;
- border-radius: 8px;
- overflow: hidden;
- height: 100%;
-
- .title {
- font-weight: 600;
- font-size: 18px;
- color: #333333;
- margin-bottom: 20px;
- margin-top: 30px;
- }
-
- .info {
- .list {
- display: flex;
- flex-wrap: wrap;
-
- .item {
- display: flex;
- width: 40%;
- margin-bottom: 20px;
-
- &:nth-of-type(2n) {
- width: 60%;
- }
-
- .label {
- color: #888888;
- width: 100px;
- }
-
- .value {
- color: #111111;
- }
- }
- }
- }
-
- .header {
- display: flex;
- justify-content: space-between;
- align-items: center;
- padding: 20px 30px;
- margin: 0 -30px;
- border-radius: 8px 8px 0 0;
- position: relative;
-
- .head_bg {
- position: absolute;
- width: 100%;
- height: 100%;
- left: 0;
- top: 0;
- z-index: 9;
- }
-
- .h1 {
- font-weight: 600;
- font-size: 22px;
- color: #111111;
- margin-bottom: 8px;
- }
-
- .time {
- font-size: 14px;
- color: #999999;
- }
-
- .right {
- height: 40px;
- font-size: 16px;
- color: #ffffff;
- line-height: 40px;
- padding: 0 20px;
- background: #207ff7;
- box-shadow: 4px 4px 0px 0px rgba(32, 127, 247, 0.16);
- border-radius: 16px 0px 16px 0px;
- position: relative;
- z-index: 99;
- }
-
- .scs {
- background-color: #00BA67;
- }
-
- .msg {
- background-color: #ED4545;
- }
- }
-
- .table_info {
- .name_wrap {
- display: flex;
- align-items: center;
-
- .avatar {
- width: 40px;
- height: 40px;
- border-radius: 50%;
- margin-right: 12px;
- }
-
- .content {
- .line {
- display: flex;
- }
-
- .tag {
- color: #b2cbf9;
- border: 1px solid #b2cbf9;
- padding: 0px 4px;
- border-radius: 4px;
- margin-left: 6px;
- }
- }
- }
- }
- }
-
- .side {
- height: 100%;
- width: 420px;
- background: #ffffff;
- border-left: 20px solid #f7f7f7;
-
- .list {
- .item {
- padding: 8px 0;
- position: relative;
-
- .separate {
- position: absolute;
- border-left: 2px dashed #cccccc;
- left: 31px;
- height: calc(100% - 30px);
- top: 49px;
- }
-
- .avatar {
- width: 40px;
- height: 40px;
- border-radius: 50%;
- margin: 0 12px 0 16px;
- //border: 1px solid;
- }
-
- .childList {
- display: flex;
- flex-wrap: wrap;
- margin-left: 100px;
- }
-
- .company {
- font-size: 13px;
- color: #888888;
-
- .status {
- color: $primaryColor;
- }
- }
-
- .m_content {
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- margin-bottom: 4px;
- }
-
- .info {
- display: flex;
- align-items: center;
- margin-left: 20px;
-
- .icon {
- position: relative;
- z-index: 11;
- color: #53b76f;
- font-size: 24px;
- }
-
- .icon1 {
- position: relative;
- z-index: 11;
- color: deepskyblue;
- font-size: 24px;
- }
-
- .icon2 {
- position: relative;
- z-index: 11;
- color: #dc362e;
- font-size: 24px;
- }
-
- .iconnew {
- width: 24px;
- height: 24px;
- }
-
- .icon3 {
- position: relative;
- z-index: 11;
- color: gray;
- font-size: 24px;
- }
-
- .content {
- flex: 1;
-
- .line {
- display: flex;
- justify-content: space-between;
- align-content: center;
- margin-bottom: 6px;
-
- .status {
- color: #888888;
- }
-
- .padding {
- color: $primaryColor;
- }
-
- .name {
- font-weight: 600;
- font-size: 16px;
- color: #111111;
- }
-
- .time {
- color: #888888;
- }
- }
- }
- }
-
- .remark {
- background: #f7f7f7;
- border-radius: 4px;
- padding: 13px 15px;
- color: #666666;
- margin-left: 100px;
- }
- }
- }
- }
-}
-</style>
diff --git a/admin/src/views/task/visSubDetail.vue b/admin/src/views/task/visSubDetail.vue
deleted file mode 100644
index d9f19b2..0000000
--- a/admin/src/views/task/visSubDetail.vue
+++ /dev/null
@@ -1,610 +0,0 @@
-<template>
- <GlobalWindow :title="title" :visible.sync="isShowModal" @close="close" @confirm="confirm">
- <div class="modal_wrap">
- <div class="modal_content">
- <div class="header">
- <img v-if="info.businessStatus == '3'" class="head_bg"
- src="@/assets/task/bg_shenhe_fail@2x.png" alt="">
- <img v-else-if="info.businessStatus == '2'" class="head_bg"
- src="@/assets/task/bg_shenhe_pass@2x.png" alt="">
- <img v-else-if="info.businessStatus == '4'" class="head_bg" src="@/assets/task/bg_shenhe_chexiao@2x.png" alt="">
- <img v-else class="head_bg" src="@/assets/task/bg_shenhe@2x.png" alt="">
- <div class="left">
- <div class="h1">{{ cateList[type] }}</div>
- <div class="time">鎻愪氦鏃堕棿锛歿{ info.createTime }}</div>
- </div>
- <div class="right"
- :class="{ scs: info.businessStatus == '2', msg: info.businessStatus == '3' }">{{
- statusMap[info.businessStatus] }}</div>
- </div>
- <div class="info">
- <div class="title">璁垮棰勭害淇℃伅</div>
- <div class="list">
- <div class="item">
- <div class="label">琚浜�</div>
- <div class="value">{{ info.visitUserName }}</div>
- </div>
- <div class="item">
- <div class="label">鏉ヨ鏃堕棿</div>
- <div class="value">{{ info.visitTime }}</div>
- </div>
- <div class="item">
- <div class="label">鏉ヨ浜嬬敱</div>
- <div class="value">{{ info.visitReason }}</div>
- </div>
- <div class="item">
- <div class="label">闅忚杞﹁締</div>
- <div class="value">{{ info.carNos }}</div>
- </div>
- <div class="item">
- <div class="label">鏂藉伐浜哄憳</div>
- <div class="value">{{ info.type == "0" ? "鍚�" : "鏄�" }}</div>
- </div>
- <div class="item">
- <div class="label">鏂藉伐鍐呭</div>
- <div class="value">{{ info.constructionReason }}</div>
- </div>
- </div>
- </div>
- <div class="table_info">
- <div class="title">璁垮淇℃伅</div>
- <el-table :data="[info]" border fit>
- <el-table-column label="濮撳悕" prop="" min-width="150">
- <template slot-scope="{ row }">
- <div class="name_wrap">
- <image :src="row.prefix
- ? row.prefix
- : require('@/assets/avatar/man.png')
- " class="avatar" mode="" />
- <div class="content">
- <div class="line">
- <div class="name">{{ row.name }}</div>
- <div class="tag">鐢宠浜�</div>
- </div>
- <div class="line placeholder9">{{ row.phone }}</div>
- </div>
- </div>
- </template>
- </el-table-column>
- <!-- <el-table-column label="鎬у埆" prop="" min-width="40" /> -->
- <el-table-column label="璇佷欢绫诲瀷" prop="idcardTypeName" min-width="80">
- <template slot-scope="{ row }">
- <span v-if="row.idcardType == 0">韬唤璇�</span>
- <span v-if="row.idcardType == 1">娓境璇佷欢</span>
- <span v-if="row.idcardType == 2">鎶ょ収</span>
- </template>
- </el-table-column>
- <el-table-column label="璇佷欢鍙风爜" prop="idCardDecode" min-width="120" />
- <el-table-column label="鍏徃鍚嶇О" prop="companyName" min-width="120" />
- <el-table-column label="浜鸿劯鐓х墖" prop="" min-width="80">
- <template slot-scope="{ row }">
- <el-image v-if="row.prefix && row.faceImg" :src="row.prefix + row.faceImg" :preview-src-list="[row.prefix + row.faceImg]">
- </el-image>
- </template>
- </el-table-column>
- </el-table>
- </div>
- </div>
- <div class="side">
- <div class="side_title">瀹℃壒娴佺▼</div>
- <div class="list" v-if="
- info.approveDateVO != null && info.approveDateVO.approveList != null
- ">
- <div class="item" v-for="(item, index) in info.approveDateVO.approveList" :key="item.id">
- <div class="separate" v-if="index < info.approveDateVO.approveList.length - 1"></div>
- <div class="info">
- <img src="@/assets/icons/ic_tongguo.png" class="iconnew" v-if="item.status == 2" />
- <img src="@/assets/icons/ic_dangqian.png" class="iconnew" v-if="item.status == 1" />
- <img src="@/assets/icons/ic_jujue.png" class="iconnew" v-if="item.status == 3" />
- <img src="@/assets/icons/ic_grey.png" class="iconnew" v-if="item.status == null || item.status == 0" />
- <div style="display: inline" v-if="item.approveType != 1">
- <img v-if="item.faceImg != null && item.faceImg != ''" :src="item.faceImg" class="avatar" alt="" />
- <img v-if="item.faceImg == null || item.faceImg == ''" src="@/assets/avatar/man.png" class="avatar"
- alt="" />
- </div>
- <div style="display: inline" v-if="item.approveType == 1">
- <img v-if="item.type != 1" src="@/assets/icons/ic_duoren.png" class="avatar" alt="" />
- <img v-if="item.type == 1" src="@/assets/icons/ic_chaosong.png" class="avatar" alt="" />
- </div>
- <div class="content">
- <div class="line">
- <div class="name">{{ item.title }}</div>
- <div class="time">{{ item.checkDate }}</div>
- </div>
- <div class="line">
- <div class="company">
- {{ item.memberName }}
- <div style="display: inline" v-if="item.statusInfo != null && item.statusInfo != ''">
- 锛�<span :class="{ padding: item.statusInfo == '澶勭悊涓�' || item.status == '1' }">{{
- item.statusInfo || ""
- }}</span>锛�
- </div>
- </div>
- </div>
- </div>
- </div>
- <div v-if="
- item.approveType != 1 &&
- item.checkInfo != null &&
- item.checkInfo != ''
- " class="remark">
- {{ item.checkInfo || "" }}
- </div>
- <div v-if="item.approveType == 1" class="childList">
- <div class="m_content company" v-for="item1 in item.approveList" :key="item1.id">
- <img v-if="item1.faceImg != null && item1.faceImg != ''" :src="item1.faceImg" class="avatar" alt="" />
- <img v-if="item1.faceImg == null || item1.faceImg == ''" src="@/assets/avatar/man.png" class="avatar"
- alt="" />
- <span> {{ item1.memberName }}</span>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <!-- -->
- <template v-slot:footer>
- <el-button @click="handleAppr(2)" type="primary" class="status-red" v-if="
- info.approveDateVO != null &&
- info.approveDateVO.canBeApproved != null &&
- info.approveDateVO.canBeApproved == 1
- ">鍚屾剰</el-button>
- <el-button @click="handleAppr(3)" type="danger" v-if="
- info.approveDateVO != null &&
- info.approveDateVO.canBeApproved != null &&
- info.approveDateVO.canBeApproved == 1
- ">鎷掔粷</el-button>
- <el-button @click="close">杩斿洖</el-button>
- </template>
- <!-- 鍚屾剰/鎷掔粷 -->
- <el-dialog append-to-body :title="param.status == 2 ? '鍚屾剰' : '鎷掔粷'" :visible.sync="isShowAppr" width="480px">
- <el-form :model="param" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
- <el-form-item :prop="param.status == 3 ? 'checkInfo' : ''" :label="param.status == 2 ? '鍚屾剰璇存槑' : '鎷掔粷璇存槑'">
- <el-input type="textarea" :placeholder="param.status == 2 ? '鍚屾剰璇存槑锛岄潪蹇呭~' : '鎷掔粷璇存槑蹇呭~'
- " :rows="4" v-model="param.checkInfo" />
- </el-form-item>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button @click="isShowAppr = false">鍙栨秷</el-button>
- <el-button :loading="subLoading" type="primary" @click="onSubAppr">纭畾</el-button>
- </span>
- </el-dialog>
- <!-- 闅愭偅 -->
- <el-dialog append-to-body title="闅愭偅" :visible.sync="isShowProblem" width="480px">
- <el-form :model="param" :rules="rules" ref="ruleForm" label-width="100px">
- <el-form-item label="閫�鍥炴椂闂�">
- <el-date-picker class="w300" value-format="yyyy-MM-dd" type="date" placeholder="閫夋嫨鏃ユ湡" v-model="param.date" />
- </el-form-item>
- <el-form-item label="鏁存敼鍓�">
- <div class="df_ac">
- <img src="@/assets/avatar/man.png" />
- <el-upload class="avatar-uploader" action="https://jsonplaceholder.typicode.com/posts/"
- :show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
- <img v-if="param.url" :src="param.url" class="avatar" />
- <div v-else class="upload_box">
- <el-icon class="el-icon-plus icon" />
- <div class="text">鍥剧墖/瑙嗛</div>
- </div>
- </el-upload>
- </div>
- </el-form-item>
- <el-form-item label="閫�鍥炶鏄�">
- <el-input type="textarea" placeholder="璇峰~鍐欒鏄�" :rows="4" v-model="param.explain" />
- </el-form-item>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button @click="isShowProblem = false">鍙栨秷</el-button>
- <el-button type="primary" @click="isShowProblem = false">纭畾</el-button>
- </span>
- </el-dialog>
- </GlobalWindow>
-</template>
-
-<script>
-import GlobalWindow from '@/components/common/GlobalWindow'
-import {
- getVisitedDetail,
- approveDo
-} from '@/api'
-export default {
- components: { GlobalWindow },
- data() {
- return {
- id: '',
- type: '',
-
- title: '璁垮棰勭害璇︽儏',
- isShowModal: false,
- info: {},
- isShowAppr: false,
- apprTitle: '鍚屾剰',
- subLoading: false,
- param: {},
-
- isShowProblem: false,
- rules: {
- checkInfo: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }]
- },
- statusMap: {
- 0: '寰呭鏍�',
- 1: '澶勭悊涓�',
- 2: '宸插悓鎰�',
- 3: '宸叉嫆缁�',
- 4: '宸插彇娑�',
- },
- cateList: {
- 0: '璁垮鐢宠',
- 1: '璁垮鎶ュ',
- 2: '鐢ㄨ溅鐢宠',
- 3: '闅愭偅闅忔墜鎷�',
- 4: '鐗╂祦杞︾敵璇�'
- }
- }
- },
- methods: {
- onSubAppr() {
- this.$refs.ruleForm.validate((valid) => {
- if (!valid) {
- return
- }
- this.$dialog.actionConfirm('鎿嶄綔纭', this.param.status === 2 ? '鎮ㄧ‘璁ゅ悓鎰忚鐢宠鍚楋紵' : '鎮ㄧ‘璁ゆ嫆缁濊鐢宠鍚楋紵')
- .then(() => {
- this.subLoading = true
- approveDo({
- objId: this.id,
- objType: this.info.type,
- status: this.param.status,
- checkInfo: this.param.checkInfo
- })
- .then(res => {
- this.subLoading = false
- this.$tip.apiSuccess('澶勭悊鎴愬姛')
- this.getDetail()
- this.$emit('success')
- this.$emit('close')
- this.isShowAppr = false
- })
- .finally(() => {
- this.subLoading = false
- })
- })
- })
- },
- close(){
- this.isShowModal = false
- this.$emit('close')
- },
- getDetail() {
- const { id, type } = this
- console.log(id, type)
- switch (type) {
- case 0:
- getVisitedDetail({ id }).then(res => {
- this.info = res
- if (this.info.approveDateVO && this.info.approveDateVO.approveList.length > 0) {
- this.info.approveDateVO.approveList.forEach(item => {
- if (item.approveList && item.approveList.length == 1 && item.type !== 1) {
- item.title = item.approveList[0].title
- item.faceImg = item.approveList[0].faceImg
- item.memberName = item.approveList[0].memberName
- item.statusInfo = item.approveList[0].statusInfo
- item.approveList = []
- }
- })
- }
- })
- break
-
- default:
- break
- }
- },
- handleAppr(val) {
- this.$set(this.param, 'status', val)
- this.isShowAppr = true
- this.$nextTick(() => {
- this.$refs.ruleForm.clearValidate()
- })
- },
- confirm() {
- console.log('--')
- },
- handleTransfer() {
- this.isShowProblem = true
- },
- reject() { },
- handleAvatarSuccess() { },
- beforeAvatarUpload() { }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-@import "@/assets/style/variables.scss";
-
-.upload_box {
- width: 84px;
- height: 84px;
- border-radius: 4px;
- background-color: #f7f7f7;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- color: #999999;
- border: 1px solid #e4e4e4;
-
- .icon {
- font-size: 24px;
- }
-
- .text {
- font-size: 12px;
- }
-}
-
-.side_title {
- font-weight: 600;
- font-size: 18px;
- color: #111111;
- margin-bottom: 20px;
- margin-left: 20px;
- margin-top: 20px;
-}
-
-.modal_wrap {
- display: flex;
- height: 100%;
-
- .modal_content {
- flex: 1;
- padding: 0px 30px;
- border-radius: 8px;
- overflow: hidden;
- height: 100%;
-
- .title {
- font-weight: 600;
- font-size: 18px;
- color: #333333;
- margin-bottom: 20px;
- margin-top: 30px;
- }
-
- .info {
- .list {
- display: flex;
- flex-wrap: wrap;
-
- .item {
- display: flex;
- width: 40%;
- margin-bottom: 20px;
-
- &:nth-of-type(2n) {
- width: 60%;
- }
-
- .label {
- color: #888888;
- width: 100px;
- }
-
- .value {
- color: #111111;
- }
- }
- }
- }
-
- .header {
- display: flex;
- justify-content: space-between;
- align-items: center;
- padding: 20px 30px;
- margin: 0 -30px;
- border-radius: 8px 8px 0 0;
- position: relative;
-
- .head_bg {
- position: absolute;
- width: 100%;
- height: 100%;
- left: 0;
- top: 0;
- z-index: 9;
- }
-
- .h1 {
- font-weight: 600;
- font-size: 22px;
- color: #111111;
- margin-bottom: 8px;
- }
-
- .time {
- font-size: 14px;
- color: #999999;
- }
-
- .right {
- height: 40px;
- font-size: 16px;
- color: #ffffff;
- line-height: 40px;
- padding: 0 20px;
- background: #207ff7;
- box-shadow: 4px 4px 0px 0px rgba(32, 127, 247, 0.16);
- border-radius: 16px 0px 16px 0px;
- position: relative;
- z-index: 99;
- }
-
- .scs {
- background-color: #00BA67;
- }
-
- .msg {
- background-color: #ED4545;
- }
- }
-
- .table_info {
- .name_wrap {
- display: flex;
- align-items: center;
-
- .avatar {
- width: 40px;
- height: 40px;
- border-radius: 50%;
- margin-right: 12px;
- }
-
- .content {
- .line {
- display: flex;
- }
-
- .tag {
- color: #b2cbf9;
- border: 1px solid #b2cbf9;
- padding: 0px 4px;
- border-radius: 4px;
- margin-left: 6px;
- }
- }
- }
- }
- }
-
- .side {
- height: 100%;
- width: 420px;
- background: #ffffff;
- border-left: 20px solid #f7f7f7;
-
- .list {
- .item {
- padding: 8px 0;
- position: relative;
-
- .separate {
- position: absolute;
- border-left: 2px dashed #cccccc;
- left: 31px;
- height: calc(100% - 30px);
- top: 49px;
- }
-
- .avatar {
- width: 40px;
- height: 40px;
- border-radius: 50%;
- margin: 0 12px 0 16px;
- //border: 1px solid;
- }
-
- .childList {
- display: flex;
- flex-wrap: wrap;
- margin-left: 100px;
- }
-
- .company {
- font-size: 13px;
- color: #888888;
-
- .status {
- color: $primaryColor;
- }
- }
-
- .m_content {
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- margin-bottom: 4px;
- }
-
- .info {
- display: flex;
- align-items: center;
- margin-left: 20px;
-
- .icon {
- position: relative;
- z-index: 11;
- color: #53b76f;
- font-size: 24px;
- }
-
- .icon1 {
- position: relative;
- z-index: 11;
- color: deepskyblue;
- font-size: 24px;
- }
-
- .icon2 {
- position: relative;
- z-index: 11;
- color: #dc362e;
- font-size: 24px;
- }
-
- .iconnew {
- width: 24px;
- height: 24px;
- }
-
- .icon3 {
- position: relative;
- z-index: 11;
- color: gray;
- font-size: 24px;
- }
-
- .content {
- flex: 1;
-
- .line {
- display: flex;
- justify-content: space-between;
- align-content: center;
- margin-bottom: 6px;
-
- .status {
- color: #888888;
- }
-
- .padding {
- color: $primaryColor;
- }
-
- .name {
- font-weight: 600;
- font-size: 16px;
- color: #111111;
- }
-
- .time {
- color: #888888;
- }
- }
- }
- }
-
- .remark {
- background: #f7f7f7;
- border-radius: 4px;
- padding: 13px 15px;
- color: #666666;
- margin-left: 100px;
- }
- }
- }
- }
-}
-</style>
diff --git a/admin/src/views/vehicle/cars.vue b/admin/src/views/vehicle/cars.vue
deleted file mode 100644
index cddc4f7..0000000
--- a/admin/src/views/vehicle/cars.vue
+++ /dev/null
@@ -1,228 +0,0 @@
-<template>
- <TableLayout :permissions="['business:member:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="" prop="code" title="杞︾墝鍙�">
- <el-input v-model="searchForm.code" clearable placeholder="杞︾墝鍙�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="" prop="memberName" title="杞︿富淇℃伅">
- <el-input v-model="searchForm.memberName" clearable placeholder="杞︿富淇℃伅"
- @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="" prop="catePName" title="鍒嗙被鍚嶇О">
- <el-cascader v-model="searchForm.cateIds" @change="changeSel" placeholder="璇烽�夋嫨鍒嗙被" clearable :options="cateList" :props="{
- label: 'name',
- value: 'id',
- children: 'childCategoryList',
- checkStrictly: true
- }"></el-cascader>
- </el-form-item>
- <el-form-item label="" prop="companyName" title="杞︿富缁勭粐鍚嶇О">
- <el-input v-model="searchForm.companyName" clearable placeholder="杞︿富缁勭粐鍚嶇О"
- @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="" prop="authStatus" title="鏄惁鎺堟潈">
- <el-select v-model="searchForm.authStatus" @change="search" clearable placeholder="鏄惁鎺堟潈">
- <el-option label="宸叉巿鏉�" value="1"></el-option>
- <el-option label="鏈巿鏉�" value="0"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="" prop="type" title="涓氬姟绫诲瀷">
- <el-select v-model="searchForm.type" @change="search" clearable 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:cars:create', 'business:cars:exportExcel', 'business:parkBook:create']">
- <li><el-button type="primary" @click="handleEdit" icon="el-icon-plus"
- v-permissions="['business:cars:create']">鏂板缓</el-button></li>
- <li><el-button type="primary" @click="$refs.OperaCarsImportWindowRef.open('浜哄憳瀵煎叆', searchForm.companyType)" v-permissions="['business:cars:create']">杞﹁締瀵煎叆</el-button>
- </li>
- <li><el-button type="primary" @click="exportExcel" v-permissions="['business:cars:exportExcel']">瀵煎嚭</el-button>
- </li>
- <li><el-button type="primary" @click="startEmpowerBatch" icon="el-icon-plus"
- v-permissions="['business:parkbook:create']">涓嬪彂鎺堟潈</el-button></li>
- </ul>
- <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="code" label="杞︾墝鍙�" min-width="100px"></el-table-column>
- <el-table-column prop="memberName" label="杞︿富濮撳悕" min-width="100px"></el-table-column>
- <el-table-column prop="memberPhone" label="杞︿富鎵嬫満鍙�" min-width="100px"></el-table-column>
- <el-table-column prop="catePName" label="涓�绾у垎绫�" min-width="120px"></el-table-column>
- <el-table-column prop="cateName" label="浜岀骇鍒嗙被" min-width="120px"></el-table-column>
- <el-table-column prop="companyName" label="杞︿富缁勭粐" min-width="200px"></el-table-column>
- <el-table-column label="鏄惁鎺堟潈" align="center" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.authStatus == 1" style="color: green">鏄�</span>
- <span v-else style="color: red">鍚�</span>
- </template>
- </el-table-column>
- <el-table-column prop="parksName" align="center" label="宸叉巿鏉冨仠杞﹀満" min-width="200px">
- <template slot-scope="{row}">
- <div v-if="row.parkBookList && row.parkBookList.length">
- <span v-for="item in row.parkBookList" :key="item.id" style="display: block">
- <span
- :style="(item.hkStatus == 0 ? 'color:#2080f7' : (item.hkStatus == 1 ? 'color:green' : (item.hkStatus == 2 ? 'color:red' : '')))">銆恵{
- item.hkStatus ==
- 0 ? '绛夊緟涓嬪彂' : (item.hkStatus == 1 ? '涓嬪彂鎴愬姛' : (item.hkStatus == 2 ? '涓嬪彂澶辫触' : '')) }}銆� </span>{{
- item.parksName }}
- </span>
- </div>
- <span v-if="row.parkBookList == null || row.parkBookList.length == 0">-</span>
- </template>
- </el-table-column>
- <el-table-column label="涓嬪彂鏈夋晥鏈�" align="center" min-width="170px">
- <template slot-scope="{row}">
- <div
- v-if="row.authStatus != null && row.authStatus == 1 && row.parkBookList != null && row.parkBookList.length > 0">
- <div v-if="!row.startTime || !row.endTime">闀挎湡鏈夋晥</div>
- <div v-else>
- <span style="color: green">璧凤細{{ row.startTime }}</span><br />
- <span style="color: red">姝細{{ row.endTime }}</span>
- </div>
- </div>
- <div v-else>-</div>
- </template>
- </el-table-column>
- <el-table-column label="澶囨敞" min-width="120px">
- <template slot-scope="{row}">
- <span v-if="row.type == 0">瀹夋嘲鍏姟杞�</span>
- <span v-if="row.type == 1">瀹夋嘲鑷湁鐗╂祦杞�</span>
- <span v-if="row.type == 2">鍏朵粬</span>
- </template>
- </el-table-column>
- <el-table-column prop="editorName" label="鎿嶄綔浜�" min-width="100px"></el-table-column>
- <el-table-column prop="editDate" label="鎿嶄綔鏃堕棿" min-width="140px"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:member:update', 'business:member:delete', 'business:empower:create'])"
- label="鎿嶄綔" min-width="200" align="center" fixed="right">
- <template slot-scope="{row}">
- <el-button type="text" icon="el-icon-edit" @click="handleEdit(row)"
- v-permissions="['business:cars:update']">缂栬緫</el-button>
- <el-button type="text" icon="el-icon-edit"
- @click="$refs.operaCarAuthWindow.open('涓嬪彂鎺堟潈', [row.id], [row.code])"
- v-permissions="['business:parkbook:create']">涓嬪彂鎺堟潈</el-button>
- <el-button type="text" icon="el-icon-delete" @click="deleteById(row)" style="color: red"
- v-permissions="['business:empower:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaCarAuthWindow ref="operaCarAuthWindow" @success="handlePageChange" />
- <OperaCarsImportWindow ref="OperaCarsImportWindowRef" @success="handlePageChange" />
- <OperaCarsWindow v-if="isShowEdit" ref="operaCarsWindow" @close="isShowEdit = false" @success="handlePageChange" />
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaCarsWindow from '@/components/business/OperaCarsWindow'
-import OperaCarAuthWindow from '@/components/business/OperaCarAuthWindow'
-import OperaCarsImportWindow from './components/OperaCarsImportWindow'
-import { fetchList } from '@/api/business/category.js'
-export default {
- name: 'Cars',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaCarsWindow, OperaCarAuthWindow,OperaCarsImportWindow },
- data() {
- return {
- // 鎼滅储
- searchForm: {
- code: '',
- memberName: '',
- companyName: '',
- cateIds: [],
- catePId: '',
- cateId: '',
- type: null,
- authStatus: null,
- ids: ''
- },
- isShowEdit: false,
- cateList: [],
- selIdsList: []
- }
- },
- created() {
- this.config({
- module: '杞﹁締淇℃伅琛�',
- api: '/business/cars',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- this.getCate()
- },
- methods: {
- handleSelectionChange(e) {
- this.searchForm.ids = e.map(i => i.id).join(',')
- },
- changeSel(e) {
- console.log(e)
- if (e && e.length == 1) {
- this.$set(this.searchForm, 'catePId', e[0])
- this.$set(this.searchForm, 'cateId', '')
- } else if (e && e.length == 2) {
- this.$set(this.searchForm, 'catePId', e[0])
- this.$set(this.searchForm, 'cateId', e[1])
- } else {
- this.$set(this.searchForm, 'catePId', '')
- this.$set(this.searchForm, 'cateId', '')
- }
- this.search()
- },
- getCate() {
- fetchList({
- model: {},
- capacity: 1000,
- page: 1,
- }).then(res => {
- this.cateList = res.records || []
-
- })
- },
- handleEdit(row) {
- this.isShowEdit = true
- let str = row && row.id ? '缂栬緫杞﹁締' : '鏂板缓杞﹁締'
- this.$nextTick(() => {
- this.$refs.operaCarsWindow.open(str, row)
- if (row && row.id) {
- let form = { ...row, cateId: [] }
- if (row.catePId) { form.cateId.push(row.catePId) }
- if (row.cateId) { form.cateId.push(row.cateId) }
- this.$refs.operaCarsWindow.form = form
- this.$refs.operaCarsWindow.loadMember()
- }
- })
- },
- // 鍚屾淇℃伅
- startEmpowerBatch() {
- if (this.tableData.selectedRows.length === 0) {
- this.$tip.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�')
- return
- }
- var ids = []
- var codes = []
- this.tableData.selectedRows.forEach(item => {
- ids.push(item.id)
- codes.push(item.code)
- })
- this.$refs.operaCarAuthWindow.open('杞﹁締涓嬪彂鎺堟潈', ids, codes)
- },
- }
-}
-</script>
diff --git a/admin/src/views/vehicle/category.vue b/admin/src/views/vehicle/category.vue
deleted file mode 100644
index ecf4b97..0000000
--- a/admin/src/views/vehicle/category.vue
+++ /dev/null
@@ -1,130 +0,0 @@
-<template>
- <TableLayout>
- <!-- 鎼滅储琛ㄥ崟 -->
- <!-- <el-form ref="searchForm" slot="search-form" label-width="100px" inline>
- <el-form-item label="鐘舵��" prop="status">
- <el-select v-model="filters.status" 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>
- </section>
- </el-form> -->
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:category:create', 'business:category:delete']">
- <li><el-button type="primary" @click="handleEdit()" icon="el-icon-plus"
- v-permissions="['business:category:create']">鏂板缓</el-button></li>
- <li v-permissions="['business:category:exportExcel']"><el-button type="primary" @click="exportExcel"
- >瀵煎嚭</el-button></li>
- </ul>
- <el-table row-key="id" :tree-props="{ children: 'childCategoryList' }" v-loading="isWorking.search"
- :data="dataList" stripe @selection-change="handleSelectionChange">
- <el-table-column prop="name" label="鍒嗙被鍚嶇О" min-width="100px"></el-table-column>
- <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
- <!-- <el-table-column prop="status" label="鐘舵��" min-width="100px">
- <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 prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column v-if="containPermissions(['business:category:update', 'business:category:delete'])"
- label="鎿嶄綔" min-width="120" fixed="right">
- <template slot-scope="{row}">
- <el-button type="text" @click="handleEdit(row)" icon="el-icon-edit"
- v-permissions="['business:category:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
- v-permissions="['business:category:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination @size-change="handleSizeChange" @current-change="getList" :pagination="tableData.pagination">
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaCategoryWindow v-if="isShowEdit" @close="isShowEdit = false" ref="operaCategoryWindow"
- @success="getList" />
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaCategoryWindow from './components/OperaCategoryWindow'
-import { fetchList, deleteById } from '@/api/business/category.js'
-export default {
- name: 'Category',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaCategoryWindow },
- data() {
- return {
- // 鎼滅储
- filters: {
- parentId: ''
- },
- isShowEdit: false,
- loading: false,
- pagination: {
- pageSize: 10,
- page: 1,
- total: 0,
- },
- dataList: []
- }
- },
- created() {
- this.config({
- module: '杞﹁締淇℃伅琛�',
- api: '/business/category',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.getList()
- },
- methods: {
- handleEdit(row) {
- this.isShowEdit = true
- let str = row && row.id ? '缂栬緫杞﹁締鍒嗙被' : '鏂板缓杞﹁締鍒嗙被'
- this.$nextTick(() => {
- this.$refs.operaCategoryWindow.open(str)
- this.$refs.operaCategoryWindow.getList()
- if (row && row.id) {
- this.$refs.operaCategoryWindow.getDetail(row.id)
- }
- })
- },
- deleteById(row) {
- this.$confirm(`鎮ㄧ‘璁よ鍒犻櫎璇ュ垎绫诲悧`, '娓╅Θ鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- deleteById(row.id).then(res => {
- this.getList()
- })
- })
-
- },
- getList() {
- const { pagination, filters } = this
- this.loading = true
- fetchList({
- model: { ...filters },
- capacity: pagination.pageSize,
- page: pagination.page,
- }).then(res => {
- this.loading = false
- this.dataList = res.records || []
- this.pagination.total = res.total || 0
- }, () => {
- this.loading = false
- })
- },
- }
-}
-</script>
diff --git a/admin/src/views/vehicle/components/OperaCarsImportWindow.vue b/admin/src/views/vehicle/components/OperaCarsImportWindow.vue
deleted file mode 100644
index a0ab3a4..0000000
--- a/admin/src/views/vehicle/components/OperaCarsImportWindow.vue
+++ /dev/null
@@ -1,84 +0,0 @@
-<template>
- <el-dialog
- class="center-title"
- :title="title"
- width="500px"
- top="30vh"
- :visible.sync="visible"
- :confirm-working="isWorking"
- @confirm="confirm"
- >
- <p class="tip-warn"><i class="el-icon-warning"></i>瀵煎叆璇存槑锛�<br>
- 1.璇峰厛涓嬭浇鏂囦欢妯℃澘锛屽苟鎸夌収妯℃澘瑕佸幓濉啓琛ㄦ牸鍐呭;<br>
- </p>
- <el-form class="demo-form-inline" >
- <el-form-item label="杞﹁締淇℃伅" required>
- <div style="width: 100%;display: flex;align-items: center;">
- <el-button type="primary" @click="clickRef">鐐瑰嚮涓婁紶</el-button>
- <el-button type="text" @click="exportTemplate">鐐瑰嚮涓嬭浇妯$増.EXCEL</el-button>
- </div>
- <div style="font-size: 14px; color: black;" v-if="fileName">{{fileName}}</div>
- </el-form-item>
- </el-form>
- <input type="file" style="position: fixed; left: 0; top: -50px;" accept=".xlsx" ref="fileExcel" @change="result" />
- <template v-slot:footer>
- <el-button @click="visible=false">杩斿洖</el-button>
- </template>
- </el-dialog>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalWindow from '@/components/common/GlobalWindow'
-import { importExcel } from '@/api/business/cars'
-export default {
- extends: BaseOpera,
- // eslint-disable-next-line vue/no-unused-components
- components: { GlobalWindow },
- data () {
- return {
- importing:false,
- fileName: '',
- companyType: 0
- }
- },
- methods: {
- open (title, companyType) {
- this.title = title
- this.fileName = ''
- this.visible = true
- this.companyType = companyType
- },
- // 瀵煎嚭妯℃澘
- exportTemplate () {
- // 鎶曚繚鐢宠
- window.open('/template/cars.xlsx')
- },
- clickRef () {
- this.$refs.fileExcel.click()
- },
- result (e) {
- const data = new FormData()
- data.append('file', e.target.files[0])
- // data.append('companyType', this.companyType)
- importExcel(data)
- .then(res => {
- this.$message.success('瀵煎叆鎴愬姛')
- this.$emit('success')
- this.visible = false
- })
- .catch(err => {
- // this.$message.error(err)
- this.fileName = ''
- })
- .finally(() => {
- this.$refs.fileExcel.value = null
- })
- }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-
-</style>
diff --git a/admin/src/views/vehicle/components/OperaCategoryWindow.vue b/admin/src/views/vehicle/components/OperaCategoryWindow.vue
deleted file mode 100644
index b3588eb..0000000
--- a/admin/src/views/vehicle/components/OperaCategoryWindow.vue
+++ /dev/null
@@ -1,79 +0,0 @@
-<template>
- <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" width="600px" @close="close" @confirm="confirm">
- <el-form :model="form" ref="form" :rules="rules">
- <el-form-item label="鎵�灞炲垎绫�" prop="parentId">
- <el-select :disabled="form.id" v-model="form.parentId" placeholder="涓嶅~涓哄垯涓�绾у垎绫�">
- <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="鍒嗙被鍚嶇О" prop="name">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ュ垎绫诲悕绉�" v-trim />
- </el-form-item>
- <!-- <el-form-item label="鐘舵��" prop="status">
- <el-select v-model="form.status" placeholder="璇烽�夋嫨">
- <el-option label="鍚敤" value="0"></el-option>
- <el-option label="绂佺敤" value="1"></el-option>
- </el-select>
- </el-form-item> -->
- <el-form-item label="澶囨敞" prop="remark">
- <el-input type="textarea" v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim />
- </el-form-item>
- </el-form>
- </GlobalWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalWindow from '@/components/common/GlobalWindow'
-import { create, fetchCateList, getInfoById } from '@/api/business/category.js'
-export default {
- name: 'OperaCategoryWindow',
- extends: BaseOpera,
- components: { GlobalWindow },
- data() {
- return {
- // 琛ㄥ崟鏁版嵁
- form: {
- parentId: null,
- name: '',
- remark: '',
- status: '',
- type: 1
- },
- // 楠岃瘉瑙勫垯
- rules: {
- name: [
- { required: true, message: '璇疯緭鍏ヤ簩绾у垎绫诲悕绉�', trigger: 'blur' }
- ],
- status: [
- { required: true, message: '璇烽�夋嫨鏄惁鍚敤', trigger: 'change' }
- ]
- },
- dataList: []
- }
- },
- created() {
- this.config({
- api: '/business/category',
- 'field.id': 'id'
- })
- },
- methods: {
- getList() {
- fetchCateList({}).then(res => {
- this.dataList = res || []
-
- })
- },
- close() {
- this.visible = false
- this.$emit('close')
- },
- getDetail(id) {
- getInfoById(id).then(res => {
- this.form = res
- })
- },
- }
-}
-</script>
diff --git a/admin/src/views/vehicle/manager.vue b/admin/src/views/vehicle/manager.vue
deleted file mode 100644
index bb555b0..0000000
--- a/admin/src/views/vehicle/manager.vue
+++ /dev/null
@@ -1,153 +0,0 @@
-<template>
- <div class="main_app">
- <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" />
- <div class="table_btns">
- <el-button icon="el-icon-plus" @click="handleEdit()" type="primary">鏂板缓</el-button>
- <el-button @click="handleAppr" type="primary">涓嬪彂鎺堟潈</el-button>
- </div>
- <el-table v-loading="loading" :data="list" stripe>
- <el-table-column prop="name" label="杞︾墝鐓�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="name" label="涓氬姟绫诲瀷" min-width="80" show-overflow-tooltip />
- <el-table-column prop="name" label="鎺堟潈鍋滆溅鍦�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="name" label="杞︿富濮撳悕" min-width="80" show-overflow-tooltip />
- <el-table-column prop="name" label="鐢宠鏈夋晥鏈�" min-width="110" show-overflow-tooltip />
- <el-table-column prop="name" label="鍋滆溅鍦轰笅鍙�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="name" label="鎿嶄綔浜�" min-width="80" show-overflow-tooltip />
- <el-table-column prop="name" label="鎿嶄綔鏃堕棿" min-width="110" show-overflow-tooltip />
-
- <el-table-column label="鎿嶄綔" width="230" fixed="right">
- <!-- v-permissions="['business:company:update']" -->
- <template slot-scope="{ row }">
- <el-button type="text" icon="el-icon-edit" @click="handleEdit(row)">缂栬緫</el-button>
- <el-button type="text" icon="el-icon-delete" @click="handleDel(row)" class="red">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
- <!-- -->
- <el-dialog :title="param.id ? '缂栬緫杞﹁締' : '鏂板杞﹁締'" :visible.sync="isShowEdit" width="600px">
- <el-form :model="param" :rules="rules" ref="ruleForm" label-width="100px">
- <el-form-item label="杞︾墝鐓�">
- <el-input type="text" placeholder="璇疯緭鍏�" v-model="param.explain" />
- </el-form-item>
- <el-form-item label="涓氬姟绫诲瀷">
- <el-radio v-model="param.aa" label="1">鍛樺伐杞﹁締</el-radio>
- </el-form-item>
- <el-form-item label="杞︿富濮撳悕">
- <el-select v-model="param.b" filterable placeholder="璇烽�夋嫨,鍗曢�夛紝鏀寔鎼滅储">
- <el-option></el-option>
- </el-select>
- </el-form-item>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button @click="isShowEdit = false">鍙栨秷</el-button>
- <el-button type="primary" @click="handleSub">纭畾</el-button>
- </span>
- </el-dialog>
- <!-- -->
- <el-dialog title="鍋滆溅鍦烘巿鏉�" :visible.sync="isShowAuthor" width="600px">
- <el-form :model="authorization" :rules="rules" ref="authorForm" label-width="100px">
- <el-form-item label="鎺堟潈鍋滆溅鍦�">
- <el-select v-model="authorization.b" filterable placeholder="璇烽�夋嫨,澶氶��">
- <el-option></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="鐢宠鏈夋晥鏈�">
- <el-radio v-model="authorization.aa" label="1">闀挎湡鏈夋晥</el-radio>
- <div class="mt10">
- <el-date-picker v-model="authorization.ac" type="daterange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�"
- format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" end-placeholder="缁撴潫鏃ユ湡">
- </el-date-picker>
- </div>
- </el-form-item>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button @click="isShowAuthor = false">鍙栨秷</el-button>
- <el-button type="primary" @click="authorSub">鎻愪氦</el-button>
- </span>
- </el-dialog>
- </div>
-</template>
-
-<script>
-import Pagination from '@/components/common/Pagination'
-import QueryForm from '@/components/common/QueryForm'
-export default {
- components: {
- Pagination,
- QueryForm
- },
- data() {
- return {
- filters: {},
- loading: false,
- queryFormConfig: {
- formItems: [
- {
- filed: 'idCard',
- type: 'input',
- label: '杞︾墝鐓�'
- },
- {
- filed: 'name',
- type: 'select',
- label: '涓氬姟绫诲瀷',
- options: []
- },
- {
- filed: 'name',
- type: 'select',
- label: '鍋滆溅鍦轰笅鍙�',
- options: []
- }
- ],
- online: true
- },
- pagination: {
- capacity: 10,
- page: 1
- },
- list: [{}],
- total: 0,
-
- isShowEdit: false,
- param: {},
- isShowAuthor: false,
- authorization: {},
- rules: {}
- }
- },
- methods: {
- handleSub() {
- this.$refs.ruleForm.validate((valid) => {
- if (valid) {
- alert('submit!')
- }
- })
- },
- authorSub() { },
- handleEdit(row) {
- this.isShowEdit = true
- },
- handleAppr() {
- this.isShowAuthor = true
- },
- handleDel(row) {
- this.$confirm('纭鍒犻櫎璇ヨ溅杈�', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
-
- })
- },
- getList(page) { },
- clear() { },
- handleSizeChange(capacity) {
- this.pagination.capacity = capacity
- }
- }
-}
-</script>
-
-<style></style>
diff --git a/admin/src/views/vehicle/parkBook.vue b/admin/src/views/vehicle/parkBook.vue
deleted file mode 100644
index 5902ae2..0000000
--- a/admin/src/views/vehicle/parkBook.vue
+++ /dev/null
@@ -1,146 +0,0 @@
-<template>
- <TableLayout :permissions="['business:member:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item title="杞︾墝鍙�" prop="carCode">
- <el-input v-model="searchForm.carCode" placeholder="杞︾墝鍙�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item title="杞︿富淇℃伅" prop="memberName">
- <el-input v-model="searchForm.memberName" placeholder="杞︿富淇℃伅" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item title="杞︿富缁勭粐" prop="companyName">
- <el-input v-model="searchForm.companyName" placeholder="杞︿富缁勭粐鍚嶇О" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item title="鍋滆溅搴撳悕绉�" prop="parksName">
- <el-input v-model="searchForm.parksName" 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:member:create', 'business:member:delete']">
-<!--
- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:cars:delete']">鍒犻櫎</el-button></li>
--->
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="carCode" label="杞︾墝鍙�" fixed min-width="100px"></el-table-column>
- <el-table-column prop="parksName" label="鍋滆溅鍦�" fixed min-width="100px"></el-table-column>
- <el-table-column prop="startTime" label="鏈夋晥鏈�" align="center" fixed min-width="150px">
- <template slot-scope="{row}">
- <div v-if="!row.startTime || !row.endTime">闀挎湡鏈夋晥</div>
- <div v-else>
- <span style="color: green">璧凤細{{row.startTime}}</span><br/>
- <span style="color: red">姝細{{row.endTime}}</span>
- </div>
- </template>
- </el-table-column>
- <el-table-column prop="startTime" label="鐘舵��" fixed min-width="100px">
- <template slot-scope="{row}">
- <div v-if="row.isdeleted==1" style="color: red">宸插垹闄�</div>
- <div v-else style="color: green">
- <span v-if="row.hkStatus==0" style="color: #435EBE">寰呬笅鍙�</span>
- <span v-if="row.hkStatus==1" style="color: green">涓嬪彂鎴愬姛</span>
- <span v-if="row.hkStatus==2" style="color: red">涓嬪彂澶辫触</span>
- </div>
- </template>
- </el-table-column>
- <el-table-column label="鐢ㄦ埛绫诲瀷" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.memberType === 0">鍔冲姟璁垮</span>
- <span v-if="row.memberType === 1">鏅�氳瀹�</span>
- <span v-if="row.memberType === 2">鍐呴儴浜哄憳</span>
- </template>
- </el-table-column>
- <el-table-column prop="memberName" label="濮撳悕" min-width="100px"></el-table-column>
- <el-table-column prop="memberPhone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
- <el-table-column prop="companyName" label="缁勭粐" min-width="100px"></el-table-column>
- <el-table-column prop="remark" label="澶囨敞" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.isdeleted !=2">{{row.remark}}</span>
- </template>
- </el-table-column>
- <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="140px"></el-table-column>
-<!-- <el-table-column-->
-<!-- v-if="containPermissions(['business:member:update', 'business:member:delete'])"-->
-<!-- label="鎿嶄綔"-->
-<!-- min-width="120"-->
-<!-- fixed="right"-->
-<!-- >-->
-<!-- <template slot-scope="{row}">-->
-<!--<!– <el-button type="text" @click="$refs.operaCarsWindow.open('缂栬緫杞﹁締淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:member:update']">缂栬緫</el-button>–>-->
-<!-- <el-button type="text" @click="deleteById(row)" v-if="row.isdeleted !=1" icon="el-icon-delete" v-permissions="['business:parkbook:delete']">鍒犻櫎</el-button>-->
-<!--<!–-->
-<!-- <el-button type="text" @click="reUpdate(row)" v-if="row.isdeleted !=1 && row.hkStatus ==0" icon="el-icon-edit" v-permissions="['business:parkbook:update']">绔嬪埢涓嬪彂</el-button>-->
-<!--–>-->
-<!-- </template>-->
-<!-- </el-table-column>-->
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaCarsWindow ref="operaCarsWindow" @success="handlePageChange"/>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaCarsWindow from '@/components/business/OperaCarsWindow'
-import { validity } from '@/utils/util'
-import { sync } from '@/api/business/cars'
-import { batchLoss } from '@/api/business/memberCard'
-import {reUpdate} from "@/api/business/parkBook";
-export default {
- name: 'parkBook',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaCarsWindow },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- carCode: '',
- memberName: '',
- parksName: '',
- companyName: ''
- }
- }
- },
- created () {
- this.config({
- module: '杞﹁締淇℃伅琛�',
- api: '/business/parkBook',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- },
- methods: {
- validity (startTime, endTime) {
- return validity(startTime, endTime)
- },
- reUpdate (row) {
- reUpdate({ id: row.id })
- .then(res => {
- this.$message.success('鎿嶄綔鎴愬姛')
- this.search()
- })
- }
- }
-}
-</script>
diff --git a/admin/src/views/vehicle/parks.vue b/admin/src/views/vehicle/parks.vue
deleted file mode 100644
index d0764f3..0000000
--- a/admin/src/views/vehicle/parks.vue
+++ /dev/null
@@ -1,105 +0,0 @@
-<template>
- <TableLayout :permissions="['business:member: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="parentHkId">
- <el-select v-model="searchForm.parentHkId" placeholder="璇烽�夋嫨">
- <el-option
- v-for="item in list"
- :key="item.id"
- :label="item.name"
- :value="item.id">
- </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">
- <li><el-button type="primary" v-permissions="['business:hksync:park']" @click="syncParks()">鍚屾</el-button></li>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- >
- <el-table-column prop="name" label="鍋滆溅搴撳悕绉�" min-width="100px"></el-table-column>
- <el-table-column prop="parentName" label="鎵�灞炲仠杞﹀簱" min-width="100px"></el-table-column>
- <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import {findList, syncParks} from '@/api/business/parks'
-export default {
- name: 'Parks',
- extends: BaseTable,
- components: { TableLayout, Pagination },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- name: '',
- parentHkId: ''
- },
- list: []
- }
- },
- created () {
- this.config({
- module: '鍋滆溅搴撲俊鎭〃',
- api: '/business/parks',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- this.getfindList()
- },
- methods: {
- syncParks(){
- this.$dialog.actionConfirm("鎿嶄綔纭鎻愰啋","鎮ㄧ‘璁ゅ悓姝ュ叏閮ㄤ俊鎭悧锛�")
- .then(() => {
- this.isWorking.delete = true
- this.api.syncParks({})
- .then(res => {
- this.$tip.apiSuccess(res || '鍚屾鎴愬姛')
- this.__afterDelete()
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.isWorking.delete = false
- })
- })
- .catch(() => {})
- },
- getfindList () {
- findList({})
- .then(res => {
- this.list = res
- console.log(res)
- })
- }
- }
-}
-</script>
diff --git a/admin/src/views/vehicle/visitPark.vue b/admin/src/views/vehicle/visitPark.vue
deleted file mode 100644
index 680b58c..0000000
--- a/admin/src/views/vehicle/visitPark.vue
+++ /dev/null
@@ -1,101 +0,0 @@
-<template>
- <TableLayout :permissions="['business:visitpark:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item title="杞︾墝鍙�" prop="carCode">
- <el-input v-model="searchForm.carCode" 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:visitpark:create', 'business:visitpark:delete']">
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="carCode" label="杞︾墝鍙�" fixed min-width="100px"></el-table-column>
- <el-table-column prop="parksName" label="鍋滆溅鍦�" fixed min-width="100px"></el-table-column>
- <el-table-column prop="startTime" label="鏈夋晥鏈�" align="center" fixed min-width="150px">
- <template slot-scope="{row}">
- <div v-if="!row.startTime || !row.endTime">闀挎湡鏈夋晥</div>
- <div v-else>
- <span style="color: green">璧凤細{{row.startTime}}</span><br/>
- <span style="color: red">姝細{{row.endTime}}</span>
- </div>
- </template>
- </el-table-column>
- <el-table-column prop="startTime" label="鐘舵��" fixed min-width="100px">
- <template slot-scope="{row}">
- <div v-if="row.isdeleted==1" style="color: red">宸插垹闄�</div>
- <div v-else style="color: green">
- <span v-if="row.hkStatus==0" style="color: #435EBE">寰呬笅鍙�</span>
- <span v-if="row.hkStatus==1" style="color: green">棰勭害鎴愬姛</span>
- <span v-if="row.hkStatus==2" style="color: red">棰勭害澶辫触</span>
- <span v-if="row.hkStatus==2" style="color: red">宸插彇娑�</span>
- </div>
- </template>
- </el-table-column>
- <el-table-column prop="remark" label="澶囨敞" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.isdeleted !=2">{{row.remark}}</span>
- </template>
- </el-table-column>
- <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="140px"></el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaCarsWindow ref="operaCarsWindow" @success="handlePageChange"/>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaCarsWindow from '@/components/business/OperaCarsWindow'
-import { validity } from '@/utils/util'
-export default {
- name: 'parkBook',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaCarsWindow },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- carCode: '',
- memberName: '',
- parksName: '',
- companyName: ''
- }
- }
- },
- created () {
- this.config({
- module: '杞﹁締淇℃伅琛�',
- api: '/business/visitPark',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- },
- methods: {
- validity (startTime, endTime) {
- return validity(startTime, endTime)
- }
- }
-}
-</script>
diff --git a/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue b/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue
new file mode 100644
index 0000000..1bdcfef
--- /dev/null
+++ b/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue
@@ -0,0 +1,150 @@
+<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="creator">
+ <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
+ <el-input v-model="form.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
+ <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
+ <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鏍囬" prop="title">
+ <el-input v-model="form.title" placeholder="璇疯緭鍏ユ爣棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
+ <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎺掑簭鐮�" prop="sortnum">
+ <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎯呭喌璇存槑" prop="content">
+ <el-input v-model="form.content" placeholder="璇疯緭鍏ユ儏鍐佃鏄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="涓婇棬鏃堕棿" prop="getDate">
+ <el-date-picker v-model="form.getDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ヤ笂闂ㄦ椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_project)" prop="projectId">
+ <el-input v-model="form.projectId" placeholder="璇疯緭鍏ユ墍灞為」鐩紪鐮侊紙鍏宠仈yw_project)" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_building)" prop="buildingId">
+ <el-input v-model="form.buildingId" placeholder="璇疯緭鍏ユ墍灞為」鐩紪鐮侊紙鍏宠仈yw_building)" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎵�灞炴埧闂寸紪鐮侊紙鍏宠仈yw_room)" prop="roomId">
+ <el-input v-model="form.roomId" placeholder="璇疯緭鍏ユ墍灞炴埧闂寸紪鐮侊紙鍏宠仈yw_room)" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎻愭姤浜虹紪鐮�" prop="userId">
+ <el-input v-model="form.userId" placeholder="璇疯緭鍏ユ彁鎶ヤ汉缂栫爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="鑱旂郴鐢佃瘽" prop="phone">
+ <el-input v-model="form.phone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎻愭姤鏃堕棿" prop="submitDate">
+ <el-date-picker v-model="form.submitDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ彁鎶ユ椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="宸ュ崟鍒嗙被缂栫爜(鍏宠仈category锛�" prop="cateId">
+ <el-input v-model="form.cateId" placeholder="璇疯緭鍏ュ伐鍗曞垎绫荤紪鐮�(鍏宠仈category锛�" v-trim/>
+ </el-form-item>
+ <el-form-item label="淇濅慨鍖哄煙绫诲瀷 0瀹ゅ唴缁翠慨 1鍏叡鍖哄煙" prop="areaType">
+ <el-input v-model="form.areaType" placeholder="璇疯緭鍏ヤ繚淇尯鍩熺被鍨� 0瀹ゅ唴缁翠慨 1鍏叡鍖哄煙" v-trim/>
+ </el-form-item>
+ <el-form-item label="宸ュ崟缂栧彿" prop="code">
+ <el-input v-model="form.code" placeholder="璇疯緭鍏ュ伐鍗曠紪鍙�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶勭悊鐘舵�� 0寰呭鐞� 1宸插垎娲� 2宸插鐞�" prop="dealStatus">
+ <el-input v-model="form.dealStatus" placeholder="璇疯緭鍏ュ鐞嗙姸鎬� 0寰呭鐞� 1宸插垎娲� 2宸插鐞�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍒嗘淳浜虹紪鐮�(鍏宠仈system_user)" prop="dispatchUserId">
+ <el-input v-model="form.dispatchUserId" placeholder="璇疯緭鍏ュ垎娲句汉缂栫爜(鍏宠仈system_user)" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍒嗘淳鏃堕棿" prop="dispatchDate">
+ <el-date-picker v-model="form.dispatchDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垎娲炬椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鍒嗘淳澶勭悊璇存槑" prop="dispatchInfo">
+ <el-input v-model="form.dispatchInfo" placeholder="璇疯緭鍏ュ垎娲惧鐞嗚鏄�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶勭悊浜虹紪鐮�(鍏宠仈system_user)" prop="dealUserId">
+ <el-input v-model="form.dealUserId" placeholder="璇疯緭鍏ュ鐞嗕汉缂栫爜(鍏宠仈system_user)" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶勭悊鏃堕棿" prop="dealDate">
+ <el-date-picker v-model="form.dealDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ鐞嗘椂闂�"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="澶勭悊澶囨敞" prop="dealInfo">
+ <el-input v-model="form.dealInfo" placeholder="璇疯緭鍏ュ鐞嗗娉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶勭悊鏂瑰紡 0鎸囨淳鍚庡鐞� 1鐩存帴鍥炲" prop="dealType">
+ <el-input v-model="form.dealType" placeholder="璇疯緭鍏ュ鐞嗘柟寮� 0鎸囨淳鍚庡鐞� 1鐩存帴鍥炲" 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: 'OperaYwWorkorderWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ title: '',
+ remark: '',
+ status: '',
+ sortnum: '',
+ content: '',
+ getDate: '',
+ projectId: '',
+ buildingId: '',
+ roomId: '',
+ userId: '',
+ phone: '',
+ submitDate: '',
+ cateId: '',
+ areaType: '',
+ code: '',
+ dealStatus: '',
+ dispatchUserId: '',
+ dispatchDate: '',
+ dispatchInfo: '',
+ dealUserId: '',
+ dealDate: '',
+ dealInfo: '',
+ dealType: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/workorder/ywWorkorder',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/admin/src/views/platform/LogisticsRecord/screen.vue b/admin/src/views/workorder/workorderCate.vue
similarity index 100%
copy from admin/src/views/platform/LogisticsRecord/screen.vue
copy to admin/src/views/workorder/workorderCate.vue
diff --git a/admin/src/views/workorder/workorderList.vue b/admin/src/views/workorder/workorderList.vue
new file mode 100644
index 0000000..05a7417
--- /dev/null
+++ b/admin/src/views/workorder/workorderList.vue
@@ -0,0 +1,219 @@
+<template>
+ <TableLayout :permissions="['business:ywworkorder:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="涓婚敭" prop="id">
+ <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ヤ富閿�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
+ <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
+ <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
+ <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
+ <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
+ <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏍囬" prop="title">
+ <el-input v-model="searchForm.title" placeholder="璇疯緭鍏ユ爣棰�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input v-model="searchForm.remark" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
+ <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎺掑簭鐮�" prop="sortnum">
+ <el-input v-model="searchForm.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎯呭喌璇存槑" prop="content">
+ <el-input v-model="searchForm.content" placeholder="璇疯緭鍏ユ儏鍐佃鏄�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="涓婇棬鏃堕棿" prop="getDate">
+ <el-date-picker v-model="searchForm.getDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ヤ笂闂ㄦ椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_project)" prop="projectId">
+ <el-input v-model="searchForm.projectId" placeholder="璇疯緭鍏ユ墍灞為」鐩紪鐮侊紙鍏宠仈yw_project)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_building)" prop="buildingId">
+ <el-input v-model="searchForm.buildingId" placeholder="璇疯緭鍏ユ墍灞為」鐩紪鐮侊紙鍏宠仈yw_building)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎵�灞炴埧闂寸紪鐮侊紙鍏宠仈yw_room)" prop="roomId">
+ <el-input v-model="searchForm.roomId" placeholder="璇疯緭鍏ユ墍灞炴埧闂寸紪鐮侊紙鍏宠仈yw_room)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎻愭姤浜虹紪鐮�" prop="userId">
+ <el-input v-model="searchForm.userId" placeholder="璇疯緭鍏ユ彁鎶ヤ汉缂栫爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鑱旂郴鐢佃瘽" prop="phone">
+ <el-input v-model="searchForm.phone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎻愭姤鏃堕棿" prop="submitDate">
+ <el-date-picker v-model="searchForm.submitDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ彁鎶ユ椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="宸ュ崟鍒嗙被缂栫爜(鍏宠仈category锛�" prop="cateId">
+ <el-input v-model="searchForm.cateId" placeholder="璇疯緭鍏ュ伐鍗曞垎绫荤紪鐮�(鍏宠仈category锛�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="淇濅慨鍖哄煙绫诲瀷 0瀹ゅ唴缁翠慨 1鍏叡鍖哄煙" prop="areaType">
+ <el-input v-model="searchForm.areaType" placeholder="璇疯緭鍏ヤ繚淇尯鍩熺被鍨� 0瀹ゅ唴缁翠慨 1鍏叡鍖哄煙" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="宸ュ崟缂栧彿" prop="code">
+ <el-input v-model="searchForm.code" placeholder="璇疯緭鍏ュ伐鍗曠紪鍙�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶勭悊鐘舵�� 0寰呭鐞� 1宸插垎娲� 2宸插鐞�" prop="dealStatus">
+ <el-input v-model="searchForm.dealStatus" placeholder="璇疯緭鍏ュ鐞嗙姸鎬� 0寰呭鐞� 1宸插垎娲� 2宸插鐞�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒嗘淳浜虹紪鐮�(鍏宠仈system_user)" prop="dispatchUserId">
+ <el-input v-model="searchForm.dispatchUserId" placeholder="璇疯緭鍏ュ垎娲句汉缂栫爜(鍏宠仈system_user)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒嗘淳鏃堕棿" prop="dispatchDate">
+ <el-date-picker v-model="searchForm.dispatchDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垎娲炬椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="鍒嗘淳澶勭悊璇存槑" prop="dispatchInfo">
+ <el-input v-model="searchForm.dispatchInfo" placeholder="璇疯緭鍏ュ垎娲惧鐞嗚鏄�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶勭悊浜虹紪鐮�(鍏宠仈system_user)" prop="dealUserId">
+ <el-input v-model="searchForm.dealUserId" placeholder="璇疯緭鍏ュ鐞嗕汉缂栫爜(鍏宠仈system_user)" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶勭悊鏃堕棿" prop="dealDate">
+ <el-date-picker v-model="searchForm.dealDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ鐞嗘椂闂�" @change="search"/>
+ </el-form-item>
+ <el-form-item label="澶勭悊澶囨敞" prop="dealInfo">
+ <el-input v-model="searchForm.dealInfo" placeholder="璇疯緭鍏ュ鐞嗗娉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="澶勭悊鏂瑰紡 0鎸囨淳鍚庡鐞� 1鐩存帴鍥炲" prop="dealType">
+ <el-input v-model="searchForm.dealType" placeholder="璇疯緭鍏ュ鐞嗘柟寮� 0鎸囨淳鍚庡鐞� 1鐩存帴鍥炲" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywworkorder:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:ywworkorder:create', 'business:ywworkorder:delete']">
+ <li><el-button type="primary" @click="$refs.operaYwWorkorderWindow.open('鏂板缓杩愮淮宸ュ崟淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:ywworkorder:create']">鏂板缓</el-button></li>
+ <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywworkorder:delete']">鍒犻櫎</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column type="selection" width="55"></el-table-column>
+ <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
+ <el-table-column prop="creator" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="editor" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="isdeleted" label="鏄惁鍒犻櫎0鍚� 1鏄�" min-width="100px"></el-table-column>
+ <el-table-column prop="title" label="鏍囬" min-width="100px"></el-table-column>
+ <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
+ <el-table-column prop="status" label="鐘舵�� 0鍚敤 1绂佺敤" min-width="100px"></el-table-column>
+ <el-table-column prop="sortnum" label="鎺掑簭鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="content" label="鎯呭喌璇存槑" min-width="100px"></el-table-column>
+ <el-table-column prop="getDate" label="涓婇棬鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="projectId" label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_project)" min-width="100px"></el-table-column>
+ <el-table-column prop="buildingId" label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_building)" min-width="100px"></el-table-column>
+ <el-table-column prop="roomId" label="鎵�灞炴埧闂寸紪鐮侊紙鍏宠仈yw_room)" min-width="100px"></el-table-column>
+ <el-table-column prop="userId" label="鎻愭姤浜虹紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="phone" label="鑱旂郴鐢佃瘽" min-width="100px"></el-table-column>
+ <el-table-column prop="submitDate" label="鎻愭姤鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="cateId" label="宸ュ崟鍒嗙被缂栫爜(鍏宠仈category锛�" min-width="100px"></el-table-column>
+ <el-table-column prop="areaType" label="淇濅慨鍖哄煙绫诲瀷 0瀹ゅ唴缁翠慨 1鍏叡鍖哄煙" min-width="100px"></el-table-column>
+ <el-table-column prop="code" label="宸ュ崟缂栧彿" min-width="100px"></el-table-column>
+ <el-table-column prop="dealStatus" label="澶勭悊鐘舵�� 0寰呭鐞� 1宸插垎娲� 2宸插鐞�" min-width="100px"></el-table-column>
+ <el-table-column prop="dispatchUserId" label="鍒嗘淳浜虹紪鐮�(鍏宠仈system_user)" min-width="100px"></el-table-column>
+ <el-table-column prop="dispatchDate" label="鍒嗘淳鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="dispatchInfo" label="鍒嗘淳澶勭悊璇存槑" min-width="100px"></el-table-column>
+ <el-table-column prop="dealUserId" label="澶勭悊浜虹紪鐮�(鍏宠仈system_user)" min-width="100px"></el-table-column>
+ <el-table-column prop="dealDate" label="澶勭悊鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="dealInfo" label="澶勭悊澶囨敞" min-width="100px"></el-table-column>
+ <el-table-column prop="dealType" label="澶勭悊鏂瑰紡 0鎸囨淳鍚庡鐞� 1鐩存帴鍥炲" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:ywworkorder:update', 'business:ywworkorder:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaYwWorkorderWindow.open('缂栬緫杩愮淮宸ュ崟淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:ywworkorder:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywworkorder:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaYwWorkorderWindow ref="operaYwWorkorderWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaYwWorkorderWindow from './components/OperaYwWorkorderWindow'
+export default {
+ name: 'YwWorkorder',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaYwWorkorderWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ title: '',
+ remark: '',
+ status: '',
+ sortnum: '',
+ content: '',
+ getDate: '',
+ projectId: '',
+ buildingId: '',
+ roomId: '',
+ userId: '',
+ phone: '',
+ submitDate: '',
+ cateId: '',
+ areaType: '',
+ code: '',
+ dealStatus: '',
+ dispatchUserId: '',
+ dispatchDate: '',
+ dispatchInfo: '',
+ dealUserId: '',
+ dealDate: '',
+ dealInfo: '',
+ dealType: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '杩愮淮宸ュ崟淇℃伅琛�',
+ api: '/workorder/ywWorkorder',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
--
Gitblit v1.9.3