From b030ebe26e358d0ad8f496ba6c1f5b8c279c61fe Mon Sep 17 00:00:00 2001 From: Joe <1712833832@qq.com> Date: Tue, 30 Jan 2024 16:46:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=94=E6=80=A5=E6=9C=BA=E6=9E=84=E8=81=94?= =?UTF-8?q?=E8=B0=83=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../JiHeExpressway/components/Card1/index.vue | 4 +- .../components/MultipleLabelItem.vue | 12 +- .../components/FormConfig/index.vue | 44 ++- .../event/businessDataManagement/index.vue | 8 +- .../components/AddNEditDialog.vue | 266 ++++++++++++++++++ .../EditEventInformationDialog/data.js | 39 --- .../EditEventInformationDialog/index.vue | 72 ----- .../views/emergencyAgencies/index.vue | 42 ++- .../components/AddNEditDialog.vue | 4 +- .../views/firstResponders/index.vue | 28 +- .../src/views/JiHeExpressway/utils/enum.js | 10 + 11 files changed, 382 insertions(+), 147 deletions(-) create mode 100644 ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/emergencyAgencies/components/AddNEditDialog.vue delete mode 100644 ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/emergencyAgencies/components/EditEventInformationDialog/data.js delete mode 100644 ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/emergencyAgencies/components/EditEventInformationDialog/index.vue diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/Card1/index.vue b/ruoyi-ui/src/views/JiHeExpressway/components/Card1/index.vue index 2f04db6d..dc21c63a 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/components/Card1/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/components/Card1/index.vue @@ -19,9 +19,9 @@ -
+ diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/components/MultipleLabelItem.vue b/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/components/MultipleLabelItem.vue index 4d9d5605..71db061c 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/components/MultipleLabelItem.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/components/MultipleLabelItem.vue @@ -1,14 +1,14 @@ @@ -52,6 +52,14 @@ export default { display: flex; gap: 6px; + .suffix {} + + .prefix {} + + span { + min-width: fit-content; + } + >.unknown { flex: 1; } diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/index.vue b/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/index.vue index 493856d6..e62222c7 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/index.vue @@ -183,6 +183,23 @@ export default { * config * }) */ + const ruleMatch = (value) => { + /** + * @type {{ callback?: (value: any) => boolean; type?: "phone"; message: string; }[]} + */ + const rules = item.rules || []; + + for (let index = 0; index < rules.length; index++) { + const rule = rules[index]; + // 返回值 true 通过 false 异常 + if (typeof rule.callback === 'function') { + if (!rule.callback(value, this.modelFormData)) return new Error(rule.message || "内容错误"); + } + else if (RegexpMap[rule.type]) { + if (!RegexpMap[rule.type].reg.test(value)) return new Error(rule.message || RegexpMap[rule.type].message) + } + } + } if (item.required) return [ { @@ -191,20 +208,25 @@ export default { if (!value && typeof value === 'object' || typeof value === 'string' && !value.trim()) return callback(new Error(`${item.options?.placeholder || `${item.label}不能为空`}`)) + const err = ruleMatch(value); + + if (err) return callback(err) + + callback() + }, + trigger: ["blur", "change"], + }, + ] + else if (item.rules?.length) return [ + { + validator: (_, __, callback) => { /** * @type {{ callback?: (value: any) => boolean; type?: "phone"; message: string; }[]} */ - const rules = item.rules || []; - - for (let index = 0; index < rules.length; index++) { - const rule = rules[index]; - if (typeof rule.callback === 'function') { - if (!rule.callback(value)) return new Error(rule.message || "内容错误"); - } - else if (RegexpMap[rule.type]) { - if (!RegexpMap[rule.type].reg.test(value)) return callback(new Error(rule.message || RegexpMap[rule.type].message)) - } - } + + const err = ruleMatch(pathGet(this.modelFormData, item.key)); + + if (err) return callback(err) callback() }, diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/index.vue index ec518e93..1cdb9cce 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/index.vue @@ -44,12 +44,12 @@ export default { pageNum: this.currentPage || 1 }), setTotal: (total) => this.total = total, - setCurrentPage: page => this.currentPage = page + setCurrentPage: page => this.handleCurrentChange(page) } }, data() { return { - activeName: "FirstResponders", + activeName: "EmergencyAgencies", panels: [ { label: "应急人员", @@ -79,8 +79,10 @@ export default { }, handleSizeChange(size) { this.pageSize = size; + this.$refs.viewRef.getData(); }, - handleCurrentChange() { + handleCurrentChange(currentPage) { + this.currentPage = currentPage; this.$refs.viewRef.getData(); }, } diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/emergencyAgencies/components/AddNEditDialog.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/emergencyAgencies/components/AddNEditDialog.vue new file mode 100644 index 00000000..32b0b036 --- /dev/null +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/emergencyAgencies/components/AddNEditDialog.vue @@ -0,0 +1,266 @@ + + + + + diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/emergencyAgencies/components/EditEventInformationDialog/data.js b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/emergencyAgencies/components/EditEventInformationDialog/data.js deleted file mode 100644 index c7075cba..00000000 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/emergencyAgencies/components/EditEventInformationDialog/data.js +++ /dev/null @@ -1,39 +0,0 @@ -import * as PresetFormItems from "@screen/pages/control/event/event/FormEvent/PresetFormItems.js"; - -export const formConfigList = [ - { - label: "事故类型:", - key: "key13", - type: "select", - }, - PresetFormItems.trafficAccidentType, - PresetFormItems.callPolicePersonName, - PresetFormItems.callPolicePersonPhone, - PresetFormItems.route, - PresetFormItems.direction, - PresetFormItems.eventLevel, - PresetFormItems.station, - PresetFormItems.locationMode, - PresetFormItems.pressure, - PresetFormItems.eventHappenTime, - PresetFormItems.aEstimatedReleaseTime, - PresetFormItems.weatherConditions, - PresetFormItems.effect, - PresetFormItems.isMaintenanceAccident, - PresetFormItems.isCongestionAhead, - PresetFormItems.isCurveRoad, - PresetFormItems.isInTunnel, - PresetFormItems.isArrives, - PresetFormItems.isForkRoad, - PresetFormItems.emptyLine, - PresetFormItems.trafficPolicePhone, - { - ...PresetFormItems.emptyLine, - key: "096993", - }, - PresetFormItems.wreckerCalls, - PresetFormItems.spillName, - PresetFormItems.ownerPhone, - PresetFormItems.laneOccupancy, - PresetFormItems.vehicleCondition, -]; diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/emergencyAgencies/components/EditEventInformationDialog/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/emergencyAgencies/components/EditEventInformationDialog/index.vue deleted file mode 100644 index 93583e0a..00000000 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/emergencyAgencies/components/EditEventInformationDialog/index.vue +++ /dev/null @@ -1,72 +0,0 @@ - - - - - diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/emergencyAgencies/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/emergencyAgencies/index.vue index 72b8bcf5..6eecf612 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/emergencyAgencies/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/emergencyAgencies/index.vue @@ -2,7 +2,7 @@
- + @@ -14,7 +14,7 @@ 导出 - + @@ -32,16 +32,18 @@
+ +
@@ -50,6 +52,7 @@ import Card from "@screen/components/Card1/index.vue" import InputSearch from '@screen/components/InputSearch/index.vue'; import ButtonGradient from '@screen/components/Buttons/ButtonGradient.vue'; import Button from '@screen/components/Buttons/Button.vue'; +import AddNEditDialog from "./components/AddNEditDialog.vue" import { searchFormList } from "./data"; import request from "@/utils/request"; @@ -59,16 +62,19 @@ import { delay, exportFile } from "@screen/utils/common"; // 应急机构 export default { name: 'EmergencyAgencies', - inject: ['getPagination', 'setTotal'], + inject: ['getPagination', 'setTotal', 'setCurrentPage'], components: { Card, ButtonGradient, InputSearch, - Button + Button, + AddNEditDialog }, data() { return { searchFormList, + addNEditDialogVisible: false, + dialogData: null, // data: Array.from({ length: 20 }).map(() => ({ // source: "济菏运管中心", // location: "长清大学城收费站", @@ -96,13 +102,35 @@ export default { { key: "dcOrganizations.latitude", label: "救援外协单位" - }] + } + ] } }, created() { this.getData(); }, methods: { + handleDelete(data) { + request({ + url: `/business/shifts/${data.dcOrganizations.id}`, + method: "DELETE", + data: {} + }) + .then((result) => { + if (result.code != 200) return Message.error(`删除失败!`); + this.setCurrentPage(1) + Message.success(`删除成功!`); + }) + .catch((err) => { + Message.error(`删除失败!`); + }); + }, + + handleOpenDialogAddEdit(data) { + this.addNEditDialogVisible = true; + this.dialogData = data; + }, + handleSearch(data) { this.searchData = data; this.getData(); diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/firstResponders/components/AddNEditDialog.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/firstResponders/components/AddNEditDialog.vue index 9aee9856..ef9a2b85 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/firstResponders/components/AddNEditDialog.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/firstResponders/components/AddNEditDialog.vue @@ -149,8 +149,8 @@ export default { method: this.data ? 'PUT' : 'POST', data }) - .then(() => { - this.$parent.getData(); + .then(result => { + if (result.code != 200) return Message.error(`提交失败!`); Message.success(`提交成功!`); diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/firstResponders/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/firstResponders/index.vue index 78b47eeb..138436ed 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/firstResponders/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/firstResponders/index.vue @@ -14,7 +14,7 @@ 导出 - + @@ -44,6 +44,7 @@ import InputSearch from '@screen/components/InputSearch/index.vue'; import ButtonGradient from '@screen/components/Buttons/ButtonGradient.vue'; import AddNEditDialog from "./components/AddNEditDialog.vue" +import { Message } from "element-ui"; import { searchFormList } from "./data"; import request from "@/utils/request"; import { setLoading } from "@screen/utils/index.js" @@ -58,7 +59,7 @@ export default { InputSearch, AddNEditDialog }, - inject: ['getPagination', 'setTotal'], + inject: ['getPagination', 'setTotal', 'setCurrentPage'], data() { return { searchFormList, @@ -72,12 +73,20 @@ export default { this.getSearchOptions(); }, methods: { - handleDelete() { - // request({ - // url: `/business/employees/sysPost`, - // method: "post", - // data: {} - // }) + handleDelete(data) { + request({ + url: `/business/employees/${data.id}`, + method: "DELETE", + data: {} + }) + .then((result) => { + if (result.code != 200) return Message.error(`删除失败!`); + this.setCurrentPage(1) + Message.success(`删除成功!`); + }) + .catch((err) => { + Message.error(`删除失败!`); + }); }, handleOpenDialogAddEdit(data) { this.addNEditDialogVisible = true; @@ -142,9 +151,10 @@ export default { } }).then(result => { if (result.code != 200) return; + this.data = result.rows; + this.setTotal(result.total) - // this.setTotal(90) }).finally(() => { closeLoading(); }) diff --git a/ruoyi-ui/src/views/JiHeExpressway/utils/enum.js b/ruoyi-ui/src/views/JiHeExpressway/utils/enum.js index 282c0fa8..88670761 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/utils/enum.js +++ b/ruoyi-ui/src/views/JiHeExpressway/utils/enum.js @@ -50,6 +50,16 @@ export const CameraDirectionEnum = { }, }; +export const CameraDirectionEnumList = Object.keys(CameraDirectionEnum).map( + (key) => { + return { + value: key, + key, + label: CameraDirectionEnum[key].text, + }; + } +); + // 设备的状态 export const DeviceTypeEnum = { 0: {