From 40156cbae622671684543e0899c381f0b22a4bb4 Mon Sep 17 00:00:00 2001 From: CD配唱片 <CD配唱片> Date: 星期五, 25 四月 2025 20:05:41 +0800 Subject: [PATCH] 提交新内容和修正 --- src/views/mainPlan/gasPlanning/index.vue | 300 +++++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 225 insertions(+), 75 deletions(-) diff --git a/src/views/mainPlan/gasPlanning/index.vue b/src/views/mainPlan/gasPlanning/index.vue index a84817d..2bb0a90 100644 --- a/src/views/mainPlan/gasPlanning/index.vue +++ b/src/views/mainPlan/gasPlanning/index.vue @@ -51,11 +51,11 @@ </HxlhTable> --> <vxe-table border - ref="xTable" + ref="tableRef" show-overflow :loading="loading" :height="height" - :edit-config="{ mode: 'row', trigger: 'click', showStatus: true }" + :edit-config="{ trigger: 'manual', mode: 'row', showStatus: true }" :data="routePlanList" @cell-click="cellClickEvent" > @@ -66,10 +66,13 @@ field="dayProduceType" title="鏃ヤ骇鍑虹被鍨�" min-width="160" - :edit-render="{ }" + :edit-render="{}" > <template #edit="{ row }"> - <vxe-select v-model="row.dayProduceType" :options="dayProduceTypeOptions"></vxe-select> + <vxe-select + v-model="row.dayProduceType" + :options="dayProduceTypeOptions" + ></vxe-select> </template> <template #default="{ row }"> <span>{{ formatTypeLabel([row.dayProduceType]) }}</span> @@ -82,10 +85,7 @@ :edit-render="{ autoFocus: 'input' }" > <template #edit="{ row }"> - <el-input-number - v-model="row.dayProduceNum" - size="mini" - /> + <el-input-number v-model="row.dayProduceNum" size="mini" /> </template> </vxe-column> <vxe-column @@ -105,9 +105,7 @@ :edit-render="{ autoFocus: 'input' }" > <template #edit="{ row }"> - <el-input-number - v-model="row.personnelNumber" - /> + <el-input-number v-model="row.personnelNumber" /> </template> </vxe-column> <vxe-column @@ -117,10 +115,7 @@ :edit-render="{ autoFocus: 'input' }" > <template #edit="{ row }"> - <el-input-number - v-model="row.dayProduceAllNum" - disabled - /> + <el-input-number v-model="row.dayProduceAllNum" disabled /> </template> </vxe-column> <vxe-column @@ -140,7 +135,7 @@ :edit-render="{ autoFocus: 'input' }" > <template #edit="{ row }"> - <el-input-number v-model="row.monthProduceAllNum" disabled/> + <el-input-number v-model="row.monthProduceAllNum" disabled /> </template> </vxe-column> <vxe-column @@ -152,6 +147,22 @@ <template #edit="{ row }"> <el-input type="textarea" v-model="row.remark" /> </template> + </vxe-column> + <vxe-column title="鎿嶄綔" width="200" fixed="right"> + <!-- <template #default="{ row }"> + <vxe-button @click="handleSave(row)" :loading="row.loading" + >淇濆瓨</vxe-button + > --> + <template #default="{ row }"> + <template v-if="hasEditStatus(row)"> + <el-button @click="saveRowEvent(row)" size="small">淇濆瓨</el-button> + <el-button @click="cancelRowEvent()" size="small">鍙栨秷</el-button> + </template> + <template v-else> + <el-button @click="editRowEvent(row)" size="small">缂栬緫</el-button> + </template> + </template> + <!-- </template> --> </vxe-column> </vxe-table> </div> @@ -167,11 +178,11 @@ :height="height" > </HxlhTable> --> - <vxe-table + <vxe-table border - ref="xTable" + ref="tableRef1" show-overflow - :loading="loading" + :loading="loading2" :height="height" :edit-config="{ mode: 'row', trigger: 'click', showStatus: true }" :data="gasPlanList" @@ -184,10 +195,13 @@ field="dayProduceType" title="鏃ヤ骇鍑虹被鍨�" min-width="160" - :edit-render="{ }" + :edit-render="{}" > <template #edit="{ row }"> - <vxe-select v-model="row.dayProduceType" :options="dayProduceTypeOptions"></vxe-select> + <vxe-select + v-model="row.dayProduceType" + :options="dayProduceTypeOptions" + ></vxe-select> </template> <template #default="{ row }"> <span>{{ formatTypeLabel([row.dayProduceType]) }}</span> @@ -200,10 +214,7 @@ :edit-render="{ autoFocus: 'input' }" > <template #edit="{ row }"> - <el-input-number - v-model="row.dayProduceNum" - size="mini" - /> + <el-input-number v-model="row.dayProduceNum" size="mini" /> </template> </vxe-column> <vxe-column @@ -223,9 +234,7 @@ :edit-render="{ autoFocus: 'input' }" > <template #edit="{ row }"> - <el-input-number - v-model="row.personnelNumber" - /> + <el-input-number v-model="row.personnelNumber" /> </template> </vxe-column> <vxe-column @@ -235,9 +244,7 @@ :edit-render="{ autoFocus: 'input' }" > <template #edit="{ row }"> - <el-input-number - v-model="row.dayProduceAllNum" - /> + <el-input-number v-model="row.dayProduceAllNum" /> </template> </vxe-column> <vxe-column @@ -247,7 +254,7 @@ :edit-render="{ autoFocus: 'input' }" > <template #edit="{ row }"> - <el-input-number v-model="row.days" /> + <el-input-number v-model="row.days" /> </template> </vxe-column> <vxe-column @@ -270,10 +277,26 @@ <el-input type="textarea" v-model="row.remark" /> </template> </vxe-column> + <vxe-column title="鎿嶄綔" width="200" fixed="right"> + <!-- <template #default="{ row }"> + <el-button @click="handleSave(row)" :loading="row.loading" + >淇濆瓨</el-button + > --> + <template #default="{ row }"> + <template v-if="hasEditStatus1(row)"> + <el-button @click="saveRowEvent1(row)" size="small">淇濆瓨</el-button> + <el-button @click="cancelRowEvent1()" size="small">鍙栨秷</el-button> + </template> + <template v-else> + <el-button @click="editRowEvent1(row)" size="small">缂栬緫</el-button> + </template> + </template> + <!-- </template> --> + </vxe-column> </vxe-table> - <div class="btn_center"> - <el-button type="primary" @click="handleSave">淇濆瓨</el-button> - </div> + <!-- <div class="btn_center"> + <el-button type="primary" @click="handleSave2">淇濆瓨</el-button> + </div> --> </div> </div> </div> @@ -286,11 +309,14 @@ import { listGasPlan, getGasPlanSave } from "@/api/mainPlan/gasPlanning"; const height = ref(document.documentElement.clientHeight - 400 + "px;"); const loading = ref(false); +const loading2 = ref(false); const data = reactive({ queryParams: { date: "", }, }); +const tableRef = ref() +const tableRef1 = ref() const { queryParams } = toRefs(data); const gasPlanList = ref([]); const routePlanList = ref([]); @@ -300,13 +326,17 @@ ]); const formatTypeLabel = (list) => { if (list) { - return list.map(type => { - const item = dayProduceTypeOptions.value.find(item => item.value === type) - return item ? item.label : type - }).join(',') + return list + .map((type) => { + const item = dayProduceTypeOptions.value.find( + (item) => item.value === type + ); + return item ? item.label : type; + }) + .join(","); } - return '' -} + return ""; +}; // 琛ㄦ牸閰嶇疆 // const columns = ref([ // // { @@ -378,6 +408,68 @@ // type: "html", // }, // ]); +const hasEditStatus = (row) => { + const $table = tableRef.value + if ($table) { + return $table.isEditByRow(row) + } +} +const editRowEvent = (row) => { + const $table = tableRef.value + if ($table) { + $table.setEditRow(row) + } +} +const saveRowEvent = (row) => { + const $table = tableRef.value + if ($table) { + $table.clearEdit().then(() => { + // loading.value = true + // setTimeout(() => { + // loading.value = false + // VxeUI.modal.message({ content: `淇濆瓨鎴愬姛锛乶ame=${row.name}`, status: 'success' }) + // }, 300) + handleSave(row) + }) + } +} +const cancelRowEvent = () => { + const $table = tableRef.value + if ($table) { + $table.clearEdit() + } +} +const hasEditStatus1 = (row) => { + const $table = tableRef1.value + if ($table) { + return $table.isEditByRow(row) + } +} +const editRowEvent1 = (row) => { + const $table = tableRef1.value + if ($table) { + $table.setEditRow(row) + } +} +const saveRowEvent1 = (row) => { + const $table = tableRef1.value + if ($table) { + $table.clearEdit().then(() => { + // loading.value = true + // setTimeout(() => { + // loading.value = false + // VxeUI.modal.message({ content: `淇濆瓨鎴愬姛锛乶ame=${row.name}`, status: 'success' }) + // }, 300) + handleSave2(row) + }) + } +} +const cancelRowEvent1 = () => { + const $table = tableRef1.value + if ($table) { + $table.clearEdit() + } +} async function getRouteList(year, month) { const res = await listGasPlan({ major: "绠¤矾", @@ -395,10 +487,14 @@ personnelNumber: item.personnelNumber == null ? "1" : item.personnelNumber, dayProduceAllNum: - item.dayProduceAllNum == null ? "0" : item.dayProduceNum*item.personnelNumber, + item.dayProduceAllNum == null + ? "0" + : item.dayProduceNum * item.personnelNumber, days: item.days == null ? "22" : item.days, monthProduceAllNum: - item.monthProduceAllNum == null ? "0" : item.dayProduceAllNum*item.days, + item.monthProduceAllNum == null + ? "0" + : item.dayProduceAllNum * item.days, }; }); loading.value = false; @@ -420,55 +516,109 @@ personnelNumber: item.personnelNumber == null ? "1" : item.personnelNumber, dayProduceAllNum: - item.dayProduceAllNum == null ? "0" : item.dayProduceNum*item.personnelNumber, + item.dayProduceAllNum == null + ? "0" + : item.dayProduceNum * item.personnelNumber, days: item.days == null ? "22" : item.days, monthProduceAllNum: - item.monthProduceAllNum == null ? "0" : item.dayProduceAllNum*item.days, + item.monthProduceAllNum == null + ? "0" + : item.dayProduceAllNum * item.days, }; }); - loading.value = false; + loading2.value = false; } -function cellClickEvent ({ row, column }){ - console.log(column,row) - row.dayProduceAllNum = row.dayProduceNum*row.personnelNumber - row.monthProduceAllNum = row.dayProduceAllNum*row.days +function cellClickEvent({ row, column }) { + console.log(column, row); + row.dayProduceAllNum = row.dayProduceNum * row.personnelNumber; + row.monthProduceAllNum = row.dayProduceAllNum * row.days; } function handleQuery() { + if(!queryParams.value.date){ + ElMessage({ + message: "璇烽�夋嫨骞存湀", + type: "error", + }); + return; + } console.log(queryParams.value.date, "scsciciisc"); const year = queryParams.value.date.split("-")[0]; const month = parseInt(queryParams.value.date.split("-")[1]); getRouteList(year, month); getGasList(year, month); } -async function handleSave() { +function resetQuery() { + queryParams.value.date = "" +} +async function handleSave(row) { const year = queryParams.value.date.split("-")[0]; const month = parseInt(queryParams.value.date.split("-")[1]); - gasPlanList.value = gasPlanList.value.map((item)=>{ - return { - ...item, - major: "姘斾綋", - year, - month - } - }) - routePlanList.value = routePlanList.value.map((item)=>{ - return { - ...item, + console.log(row, "baocun"); + // gasPlanList.value = gasPlanList.value.map((item) => { + // return { + // ...item, + // major: "姘斾綋", + // year, + // month, + // }; + // }); + // routePlanList.value = routePlanList.value.map((item) => { + // return { + // ...item, + // major: "绠¤矾", + // year, + // month, + // }; + // }); + const res = await getGasPlanSave([ + { + ...row, major: "绠¤矾", year, - month - } - }) - const res = await getGasPlanSave([ - ...gasPlanList.value, - ...routePlanList.value - ]) - ElMessage({ + month, + }, + ]); + ElMessage({ message: "鏁版嵁淇濆瓨鎴愬姛", type: "success", }); - handleQuery() - console.log(res,"akiwjciwj") + handleQuery(); + console.log(res, "akiwjciwj"); +} +async function handleSave2(row) { + const year = queryParams.value.date.split("-")[0]; + const month = parseInt(queryParams.value.date.split("-")[1]); + console.log(row, "baocun"); + // gasPlanList.value = gasPlanList.value.map((item) => { + // return { + // ...item, + // major: "姘斾綋", + // year, + // month, + // }; + // }); + // routePlanList.value = routePlanList.value.map((item) => { + // return { + // ...item, + // major: "绠¤矾", + // year, + // month, + // }; + // }); + const res = await getGasPlanSave([ + { + ...row, + major: "姘斾綋", + year, + month, + }, + ]); + ElMessage({ + message: "鏁版嵁淇濆瓨鎴愬姛", + type: "success", + }); + handleQuery(); + console.log(res, "akiwjciwj"); } onMounted(() => { // getRouteList(); @@ -491,11 +641,11 @@ margin: 20px auto; } } -.btn_center{ +.btn_center { display: flex; justify-content: center; align-items: center; - margin-top:20px; - padding-bottom:20px; + margin-top: 20px; + padding-bottom: 20px; } </style> -- Gitblit v1.9.3