diff --git a/packages/mobile/src/views/IceEvent/IceEventAdd.vue b/packages/mobile/src/views/IceEvent/IceEventAdd.vue index 2af4eb5..30006e4 100644 --- a/packages/mobile/src/views/IceEvent/IceEventAdd.vue +++ b/packages/mobile/src/views/IceEvent/IceEventAdd.vue @@ -153,9 +153,10 @@ :key="material.rid" v-model="material.usageAmount" type="number" + @input="checkMaterialAmount(material, index)" :label="material.wzmc" center - placeholder="请输入数量" + :placeholder="`余额: ${material.ye} `" > @@ -59,7 +59,7 @@ const formRef = ref(null); defineExpose({ formRef }); const props = defineProps({ - detailData: { + yhzData: { type: Object, default: () => ({}), }, diff --git a/packages/screen/src/views/MaterialManagement/detailDialog.vue b/packages/screen/src/views/MaterialManagement/detailDialog.vue index f5575ad..b3b40db 100644 --- a/packages/screen/src/views/MaterialManagement/detailDialog.vue +++ b/packages/screen/src/views/MaterialManagement/detailDialog.vue @@ -1,52 +1,68 @@ @@ -60,4 +76,9 @@ const props = defineProps({ \ No newline at end of file diff --git a/packages/screen/src/views/MaterialManagement/index.js b/packages/screen/src/views/MaterialManagement/index.js index e159898..a503ea4 100644 --- a/packages/screen/src/views/MaterialManagement/index.js +++ b/packages/screen/src/views/MaterialManagement/index.js @@ -16,6 +16,7 @@ const filterText = ref(''); // 树节点过滤条件 const tableData = ref([]); const qxmc = ref(''); // 区县名称 const yhzid = ref(''); // 养护站id +const yhzData = ref(); // 养护站信息 const filterData = reactive({ wzmc: '', }); // 表格过滤条件 @@ -42,22 +43,53 @@ const model = reactive({ const dialogType = ref(''); // 弹窗类型 const dialogRef = ref(null); // 弹窗实例 +const drawerVisible = ref(false); // 抽屉显示状态 +const drawer = reactive({ + title: '', + content: null, + props: {}, + onCancel: null, + onConfirm: null, + direction: 'rtl', + size: '50%' +}); // 抽屉内容 +const drawerType = ref(''); // 抽屉类型 +const drawerRef = ref(null); // 抽屉实例 + + + const INIT_FORM = { - rkrq: "", - rkdw: "", - sl: "", - dw: "", - cfdd: "", - fzr: "", - lxdh: "", - ye: "", - qxmc: "", - wzmc: "", - fzrid: "", - yhzid: "", + material: { + rkrq: "", + rkdw: "", + sl: "", + dw: "", + cfdd: "", + fzr: "", + lxdh: "", + ye: "", + qxmc: "", + wzmc: "", + fzrid: "", + yhzid: "", + jd: "", + wd: "", + }, + photos: [], }; // 表单初始值 const form = reactive({ ...INIT_FORM }); // 表单 +// 重置表单方法 +const resetForm = () => { + // 深拷贝重置嵌套对象 + form.material = { ...INIT_FORM.material }; + form.photos = [...INIT_FORM.photos]; + + form.material.yhzid = yhzid.value; + form.material.jd = yhzData.value?.jd; + form.material.wd = yhzData.value?.wd; +}; + // 节点过滤函数 @@ -96,7 +128,10 @@ const getTreeData = async () => { children: qx.yhzList.map(site => ({ id: site.id, name: `${site.mc}(${site.wzsl})`, - type: 'site' + type: 'site', + rawName: site.mc, // 原始名称 + jd: site.jd, + wd: site.wd, })), rawName: qx.qxmc, // 原始名称 }) @@ -116,18 +151,21 @@ const handleNodeClick = (data, node) => { if (data.type === 'area' && node.expanded === false) { console.log('树节点关闭', node.expanded) yhzid.value = ''; // 重置养护站id + yhzData.value = null; // 重置养护站信息 qxmc.value = ''; // 重置区县名称 return; } if (data.type === 'area') { console.log('你点击的是区县', data.id) yhzid.value = ''; // 重置养护站id + yhzData.value = null; // 重置养护站信息 qxmc.value = data.id; // 保存区县名称 } if (data.type === 'site') { console.log('你点击的是站点', data.name) yhzid.value = data.id; // 保存养护站id + yhzData.value = data; // 保存养护站信息 qxmc.value = ''; // 重置区县名称 } }; @@ -170,37 +208,25 @@ const columns = [ prop: 'ye', label: '余量', }, - { - prop: 'rkdw', - label: '入库单位', - }, - { - prop: 'rkrq', - label: '入库日期', - }, - { - prop: 'sl', - label: '数量', - }, { prop: 'dw', label: '单位', }, - { - prop: 'cfdd', - label: '存放地点', - }, { prop: 'fzr', label: '负责人', }, { - prop: 'lxdh', - label: '联系电话', + prop: 'rkrName', + label: '入库人', }, { - prop: 'qxmc', - label: '所属区县', + prop: 'rkrq', + label: '入库日期', + }, + { + prop: 'yhzMc', + label: '所属服务站', }, { label: "操作", @@ -220,18 +246,18 @@ const columns = [ }, () => "详情" ), - h( - ElButton, - { - type: "primary", - link: true, - onClick: async () => { - dialogType.value = 'edit' - await getDetailData(row); - }, - }, - () => "编辑" - ), + // h( + // ElButton, + // { + // type: "primary", + // link: true, + // onClick: async () => { + // dialogType.value = 'edit' + // await getDetailData(row); + // }, + // }, + // () => "编辑" + // ), h( ElButton, { @@ -305,20 +331,20 @@ const getDetailData = async (row) => { } if (res.code === '00000') { if (dialogType.value === 'detail') { - model.title = `物资详情`; - model.content = DetailDialog; - model.props = { - detailData: res.data.material, + drawer.title = `物资详情`; + drawer.content = DetailDialog; + drawer.props = { + detailData: res.data, }; - model.onCancel = () => { + drawer.onCancel = () => { dialogType.value = ''; - modelVisible.value = false; + drawerVisible.value = false; }; - model.onConfirm = () => { + drawer.onConfirm = () => { dialogType.value = ''; - modelVisible.value = false; + drawerVisible.value = false; }; - modelVisible.value = true; + drawerVisible.value = true; } if (dialogType.value === 'edit') { model.title = `编辑物资`; @@ -352,9 +378,9 @@ const getDetailData = async (row) => { const openAddModel = () => { model.title = `新增物资`; model.content = AddDialog; - Object.assign(form, INIT_FORM); + resetForm(); // 重置表单 model.props = { - detailData: {}, + yhzData: yhzData.value, form: form, }; model.onCancel = () => { @@ -382,6 +408,7 @@ const openAddModel = () => { console.log('error', error) } }; + model.width = '40%'; modelVisible.value = true; } @@ -441,7 +468,7 @@ export default () => { await getTreeData(); await getyhzwzList(); const rowData = (decodeURIComponent(route.params?.data)); - if (rowData !== 'undefined' && rowData!== 'null' && rowData !== '' ) { + if (rowData !== 'undefined' && rowData !== 'null' && rowData !== '') { const JSONData = JSON.parse(rowData); filterText.value = JSONData.mc; }; @@ -462,5 +489,9 @@ export default () => { dialogRef, model, openAddModel, + drawerVisible, + drawer, + drawerRef, + yhzid, } } \ No newline at end of file diff --git a/packages/screen/src/views/MaterialManagement/index.vue b/packages/screen/src/views/MaterialManagement/index.vue index 855ae16..15ae410 100644 --- a/packages/screen/src/views/MaterialManagement/index.vue +++ b/packages/screen/src/views/MaterialManagement/index.vue @@ -28,7 +28,7 @@
- 新增物资 +
@@ -65,9 +76,10 @@ import scriptFn from "./index.js"; import DynamicTable from "../../component/DynamicTable"; import MyDialog from "../../component/MyDialog"; +import MyDrawer from "../../component/MyDrawer/index.js"; const script = scriptFn(); -const { treeRef, dialogRef } = script; +const { treeRef, dialogRef, drawerRef } = script;