From 4ae7c5fa9e882053c9ca2e894897827e42f7844d Mon Sep 17 00:00:00 2001 From: huangchenhao <123673748@qq.com> Date: Wed, 19 Nov 2025 16:18:50 +0800 Subject: [PATCH 1/2] =?UTF-8?q?PC=E7=AB=AF=20=E4=B8=80=E4=BA=9B=E8=A1=A8?= =?UTF-8?q?=E5=8D=95=E9=AA=8C=E8=AF=81=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/MaterialManagement/addDialog.vue | 95 +++++-- .../src/views/MaterialManagement/index.js | 47 ++-- .../ServiceStationManagePage/addDialog.vue | 265 ++++++++++++++++++ .../component/MaterialAddDialog.vue | 103 +++++-- .../component/PersonAddDialog.vue | 50 +++- .../ServiceStationManagePage/detailDrawer.vue | 85 +++--- .../views/ServiceStationManagePage/index.js | 58 +++- 7 files changed, 590 insertions(+), 113 deletions(-) create mode 100644 packages/screen/src/views/ServiceStationManagePage/addDialog.vue diff --git a/packages/screen/src/views/MaterialManagement/addDialog.vue b/packages/screen/src/views/MaterialManagement/addDialog.vue index 7699c79..96c258a 100644 --- a/packages/screen/src/views/MaterialManagement/addDialog.vue +++ b/packages/screen/src/views/MaterialManagement/addDialog.vue @@ -2,6 +2,8 @@
{{ yhzData.rawName }} - + - + - + + + - - - - - - - - + + + + + + + + + + @@ -54,7 +60,7 @@ \ No newline at end of file diff --git a/packages/screen/src/views/ServiceStationManagePage/component/MaterialAddDialog.vue b/packages/screen/src/views/ServiceStationManagePage/component/MaterialAddDialog.vue index 4150bf3..4c036bc 100644 --- a/packages/screen/src/views/ServiceStationManagePage/component/MaterialAddDialog.vue +++ b/packages/screen/src/views/ServiceStationManagePage/component/MaterialAddDialog.vue @@ -2,6 +2,8 @@
{{ basicData.mc }} - + - + - + + + - - - - - - - - + + + + + + + + + + @@ -54,7 +60,7 @@ diff --git a/packages/screen/src/views/ServiceStationManagePage/component/PersonAddDialog.vue b/packages/screen/src/views/ServiceStationManagePage/component/PersonAddDialog.vue index 1366eeb..6a7cf70 100644 --- a/packages/screen/src/views/ServiceStationManagePage/component/PersonAddDialog.vue +++ b/packages/screen/src/views/ServiceStationManagePage/component/PersonAddDialog.vue @@ -2,16 +2,19 @@
- + - + - - + + + + +
diff --git a/packages/screen/src/views/ServiceStationManagePage/detailDrawer.vue b/packages/screen/src/views/ServiceStationManagePage/detailDrawer.vue index e0df01a..d980ba1 100644 --- a/packages/screen/src/views/ServiceStationManagePage/detailDrawer.vue +++ b/packages/screen/src/views/ServiceStationManagePage/detailDrawer.vue @@ -241,7 +241,7 @@ const getPeopleList = async () => { const data = { pageNum: pagination.current, pageSize: pagination.pageSize, - yhzid: Number(props.basicData.id), + yhzid: props.basicData.id, }; const res = await request({ url: "/snow-ops-platform/yhzry/list", @@ -333,8 +333,8 @@ const INIT_FORM_people = { yhzid: props.basicData.id, sjhm: "", xm: "", - sfjwd: "", - jwd: "", + jd: "", + wd: "", }; const materialForm = reactive({}); const INIT_FORM_material = { @@ -381,6 +381,7 @@ const INIT_FORM_equipment = { fsfw: "", yhzid: props.basicData.id, }; +const dialogRef = ref(null); const modelVisible = ref(false); const model = reactive({ title: "", @@ -442,44 +443,58 @@ const handleAdd = () => { // 新增负责人 const handleAddPeopleConfirm = async () => { - try { - const res = await request({ - url: "/snow-ops-platform/yhzry/add", - method: "post", - data: toRaw(peopleForm.value), + await dialogRef?.value?.dynamicComponentRef?.formRef + .validate() + .then(async () => { + try { + const res = await request({ + url: "/snow-ops-platform/yhzry/add", + method: "post", + data: toRaw(peopleForm), + }); + if (res.code === "00000") { + ElMessage.success("新增成功"); + modelVisible.value = false; + getPeopleList(); + } else { + throw new Error(res.message); + } + } catch (error) { + console.log(error); + ElMessage.error(error.message); + } + }) + .catch((err) => { + ElMessage.error("请处理表单中的错误项"); }); - if (res.code === "00000") { - ElMessage.success("新增成功"); - modelVisible.value = false; - getPeopleList(); - } else { - throw new Error(res.message); - } - } catch (error) { - console.log(error); - ElMessage.error(error.message); - } }; // 新增物资 const handleAddMaterialConfirm = async () => { - try { - const res = await request({ - url: "/snow-ops-platform/yjwz/add", - method: "post", - data: toRaw(materialForm), + await dialogRef?.value?.dynamicComponentRef?.formRef + .validate() + .then(async () => { + try { + const res = await request({ + url: "/snow-ops-platform/yjwz/add", + method: "post", + data: toRaw(materialForm), + }); + if (res.code === "00000") { + ElMessage.success("新增成功"); + modelVisible.value = false; + getMaterialList(); + } else { + throw new Error(res.message); + } + } catch (error) { + console.log(error); + ElMessage.error(error.message); + } + }) + .catch((err) => { + ElMessage.error("请处理表单中的错误项"); }); - if (res.code === "00000") { - ElMessage.success("新增成功"); - modelVisible.value = false; - getMaterialList(); - } else { - throw new Error(res.message); - } - } catch (error) { - console.log(error); - ElMessage.error(error.message); - } }; // 新增设备 diff --git a/packages/screen/src/views/ServiceStationManagePage/index.js b/packages/screen/src/views/ServiceStationManagePage/index.js index 7e910ca..624e468 100644 --- a/packages/screen/src/views/ServiceStationManagePage/index.js +++ b/packages/screen/src/views/ServiceStationManagePage/index.js @@ -2,6 +2,7 @@ import { h, ref, onMounted, reactive, watch, toRaw, nextTick } from "vue"; import { request } from "@/utils/request"; import { useRoute, useRouter } from 'vue-router' import DetailDrawer from "./detailDrawer.vue"; +import AddDialog from "./addDialog.vue"; const tableData = ref([]); // 表格数据 const filterData = reactive({ @@ -16,8 +17,19 @@ const model = reactive({ props: {}, onCancel: null, onConfirm: null, + width: '', }); // 弹窗内容 -const form = reactive({}); +const form = reactive({ +}); +const INIT_FORM = { + qxmc: "", + mc: "", + fzrXm: "", + fzrSjhm: "", + fzrUserId: "", + jd: "", + wd: "", +}; const drawer = reactive({ title: '', content: null, @@ -113,9 +125,49 @@ const getYhzDetail = async (row) => { // 打开新增养护站弹窗 const openAddDialog = () => { - - console.log('新增',) + model.title = '新增养护站'; + Object.assign(form, INIT_FORM); + model.props = { + form: form, + }; + model.content = AddDialog; + model.onCancel = () => { + dialogType.value = ''; + modelVisible.value = false; + }; + model.onConfirm = async () => { + dialogType.value = ''; + await dialogRef?.value?.dynamicComponentRef?.formRef.validate().then(() => { + addYHZ(); + }) + .catch((err) => { + ElMessage.error('请处理表单中的错误项'); + }); + }; + model.width = "50%" + modelVisible.value = true; }; + +// 新增养护站 +const addYHZ = async () => { + try { + const res = await request({ + url: "/snow-ops-platform/yhz/add", + method: "POST", + data: form, + }); + if (res.code === "00000") { + ElMessage.success("新增成功"); + modelVisible.value = false; + getTableData(); + } else { + throw new Error(res.message); + } + } catch (error) { + ElMessage.error(error.message || "新增失败"); + } +}; + export default () => { const router = useRouter(); From fa4eb3f9dc86e6154aaf296cb75d5a2643abeb82 Mon Sep 17 00:00:00 2001 From: huangchenhao <123673748@qq.com> Date: Wed, 19 Nov 2025 17:02:43 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BA=BA=E5=91=98=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=88=A0=E9=99=A4=E5=8A=9F=E8=83=BD=20?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=99=BB=E9=99=86=E8=8E=B7=E5=8F=96=E5=85=BB?= =?UTF-8?q?=E6=8A=A4=E7=AB=99=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/mobile/src/views/Home.vue | 2 +- .../src/views/Material/MaterialManagement.vue | 1 - .../ServiceStationManagePage/detailDrawer.vue | 45 +++++++++++++++++++ 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/packages/mobile/src/views/Home.vue b/packages/mobile/src/views/Home.vue index fccca5e..0fa0a70 100644 --- a/packages/mobile/src/views/Home.vue +++ b/packages/mobile/src/views/Home.vue @@ -87,7 +87,7 @@ const getYHZinfo = async () => { method: "GET", }); if (res.code === "00000") { - yhzinfo.value = res.data; + yhzinfo.value = res.data[0]; } else { throw new Error(res.message); } diff --git a/packages/mobile/src/views/Material/MaterialManagement.vue b/packages/mobile/src/views/Material/MaterialManagement.vue index 1a71dc5..27457f4 100644 --- a/packages/mobile/src/views/Material/MaterialManagement.vue +++ b/packages/mobile/src/views/Material/MaterialManagement.vue @@ -440,7 +440,6 @@ const handleGetLocation = () => { (position) => { form.material.jd = position.coords.longitude.toFixed(6); form.material.wd = position.coords.latitude.toFixed(6); - showToast("定位成功"); }, (error) => { const errorMessage = diff --git a/packages/screen/src/views/ServiceStationManagePage/detailDrawer.vue b/packages/screen/src/views/ServiceStationManagePage/detailDrawer.vue index d980ba1..c2f2443 100644 --- a/packages/screen/src/views/ServiceStationManagePage/detailDrawer.vue +++ b/packages/screen/src/views/ServiceStationManagePage/detailDrawer.vue @@ -144,6 +144,51 @@ const columns = () => { ); }, }, + { + label: "操作", + fixed: "right", + width: 150, + render: (row) => () => + h("div", { class: "action-btns" }, [ + h( + ElButton, + { + type: "danger", + link: true, + style: "margin-left: 10px;", + onClick: async () => { + try { + await ElMessageBox.confirm( + "确定要删除该人员吗?", + "删除确认", + { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + } + ); + const res = await request({ + url: `/snow-ops-platform/yhzry/delete`, + method: "POST", + data: { + id: row.id, + }, + }); + if (res.code === "00000") { + ElMessage.success("删除成功"); + getPeopleList(); + } + } catch (error) { + if (error instanceof Error) { + ElMessage.error(error.message || "删除失败"); + } + } + }, + }, + () => "删除" + ), + ]), + }, ]; case "material": return [