From 376bcaa483e26c36c90bebcce1d0b9be8e854d5e Mon Sep 17 00:00:00 2001 From: CD配唱片 <CD配唱片> Date: 星期一, 28 四月 2025 12:59:45 +0800 Subject: [PATCH] 提交产能规划全table编辑 --- src/views/mainPlan/gasPlanning/index.vue | 225 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 208 insertions(+), 17 deletions(-) diff --git a/src/views/mainPlan/gasPlanning/index.vue b/src/views/mainPlan/gasPlanning/index.vue index a55c53a..5dd713d 100644 --- a/src/views/mainPlan/gasPlanning/index.vue +++ b/src/views/mainPlan/gasPlanning/index.vue @@ -7,7 +7,7 @@ :inline="true" label-width="68px" > - <el-row type="flex" justify="left"> + <el-row type="flex" justify="left" @click.stop="handleCancleStaus"> <el-col :span="6"> <el-form-item label="閫夋嫨鏈堜唤" prop="description"> <el-date-picker @@ -32,7 +32,7 @@ </el-form> <div class="box_container"> <el-row> - <el-col :span="22"> + <el-col :span="22" @click="handleCancleStaus"> <div class="title_text">绠¤矾瑙勫垝浜ц兘</div> </el-col> <el-col :span="2"> @@ -77,7 +77,6 @@ > <vxe-column field="processName" title="鏍囧噯宸ュ簭鍚嶇О" min-width="150"> </vxe-column> - <!-- :edit-render="sexEditRender" --> <vxe-column field="dayProduceType" title="鏃ヤ骇鍑虹被鍨�" @@ -85,13 +84,43 @@ :edit-render="{}" > <template #edit="{ row }"> - <vxe-select + <!-- <vxe-select v-model="row.dayProduceType" :options="dayProduceTypeOptions" - ></vxe-select> + ></vxe-select> --> + <el-select + clearable + v-model="row.dayProduceType" + style="width: 140px" + > + <el-option + v-for="type in dayProduceTypeOptions" + :key="type.value" + :label="type.label" + :value="type.value" + > + </el-option> + </el-select> </template> <template #default="{ row }"> - <span>{{ formatTypeLabel([row.dayProduceType]) }}</span> + <div v-if="!clickedTableRef"> + <span>{{ formatTypeLabel([row.dayProduceType]) }}</span> + </div> + <div v-else> + <el-select + clearable + v-model="row.dayProduceType" + style="width: 140px" + > + <el-option + v-for="type in dayProduceTypeOptions" + :key="type.value" + :label="type.label" + :value="type.value" + > + </el-option> + </el-select> + </div> </template> </vxe-column> <vxe-column @@ -103,6 +132,14 @@ <template #edit="{ row }"> <el-input-number v-model="row.dayProduceNum" size="mini" /> </template> + <template #default="{ row }"> + <div v-if="!clickedTableRef"> + <span>{{ row.dayProduceNum }}</span> + </div> + <div v-else> + <el-input-number v-model="row.dayProduceNum" size="mini" /> + </div> + </template> </vxe-column> <vxe-column field="dayProduceUnit" @@ -112,6 +149,14 @@ > <template #edit="{ row }"> <el-input v-model="row.dayProduceUnit" /> + </template> + <template #default="{ row }"> + <div v-if="!clickedTableRef"> + <span>{{ row.dayProduceUnit }}</span> + </div> + <div v-else> + <el-input v-model="row.dayProduceUnit" /> + </div> </template> </vxe-column> <vxe-column @@ -123,6 +168,14 @@ <template #edit="{ row }"> <el-input-number v-model="row.personnelNumber" /> </template> + <template #default="{ row }"> + <div v-if="!clickedTableRef"> + <span>{{ row.personnelNumber }}</span> + </div> + <div v-else> + <el-input-number v-model="row.personnelNumber" /> + </div> + </template> </vxe-column> <vxe-column field="dayProduceAllNum" @@ -133,6 +186,14 @@ <template #edit="{ row }"> <el-input-number v-model="row.dayProduceAllNum" disabled /> </template> + <template #default="{ row }"> + <div v-if="!clickedTableRef"> + <span>{{ row.dayProduceAllNum }}</span> + </div> + <div v-else> + <el-input-number v-model="row.dayProduceAllNum" disabled /> + </div> + </template> </vxe-column> <vxe-column field="days" @@ -142,6 +203,14 @@ > <template #edit="{ row }"> <el-input-number v-model="row.days" /> + </template> + <template #default="{ row }"> + <div v-if="!clickedTableRef"> + <span>{{ row.days }}</span> + </div> + <div v-else> + <el-input-number v-model="row.days" /> + </div> </template> </vxe-column> <vxe-column @@ -161,7 +230,23 @@ :edit-render="{ autoFocus: 'input' }" > <template #edit="{ row }"> - <el-input type="textarea" v-model="row.remark" /> + <el-input + type="textarea" + autosize="{minRows:2,maxRows:3}" + v-model="row.remark" + /> + </template> + <template #default="{ row }"> + <div v-if="!clickedTableRef"> + <span>{{ row.remark }}</span> + </div> + <div v-else> + <el-input + type="textarea" + autosize="{minRows:2,maxRows:3}" + v-model="row.remark" + /> + </div> </template> </vxe-column> <!-- <vxe-column title="鎿嶄綔" width="200" fixed="right"> @@ -184,7 +269,7 @@ </div> <div class="box_container"> <el-row> - <el-col :span="22"> + <el-col :span="22" @click="handleCancleStausGas"> <div class="title_text">姘旀煖瑙勫垝浜ц兘</div> </el-col> <el-col :span="2"> @@ -216,11 +301,10 @@ :height="height" :edit-config="{ mode: 'row', trigger: 'click', showStatus: true }" :data="gasPlanList" - @cell-click="cellClickEvent" + @cell-click="cellClickEventGas" > <vxe-column field="processName" title="鏍囧噯宸ュ簭鍚嶇О" min-width="150"> </vxe-column> - <!-- :edit-render="sexEditRender" --> <vxe-column field="dayProduceType" title="鏃ヤ骇鍑虹被鍨�" @@ -228,13 +312,43 @@ :edit-render="{}" > <template #edit="{ row }"> - <vxe-select + <!-- <vxe-select v-model="row.dayProduceType" :options="dayProduceTypeOptions" - ></vxe-select> + ></vxe-select> --> + <el-select + clearable + v-model="row.dayProduceType" + style="width: 140px" + > + <el-option + v-for="type in dayProduceTypeOptions" + :key="type.value" + :label="type.label" + :value="type.value" + > + </el-option> + </el-select> </template> <template #default="{ row }"> - <span>{{ formatTypeLabel([row.dayProduceType]) }}</span> + <div v-if="!clickedTableRefGas"> + <span>{{ formatTypeLabel([row.dayProduceType]) }}</span> + </div> + <div v-else> + <el-select + clearable + v-model="row.dayProduceType" + style="width: 140px" + > + <el-option + v-for="type in dayProduceTypeOptions" + :key="type.value" + :label="type.label" + :value="type.value" + > + </el-option> + </el-select> + </div> </template> </vxe-column> <vxe-column @@ -246,6 +360,14 @@ <template #edit="{ row }"> <el-input-number v-model="row.dayProduceNum" size="mini" /> </template> + <template #default="{ row }"> + <div v-if="!clickedTableRefGas"> + <span>{{ row.dayProduceNum }}</span> + </div> + <div v-else> + <el-input-number v-model="row.dayProduceNum" size="mini" /> + </div> + </template> </vxe-column> <vxe-column field="dayProduceUnit" @@ -255,6 +377,14 @@ > <template #edit="{ row }"> <el-input v-model="row.dayProduceUnit" /> + </template> + <template #default="{ row }"> + <div v-if="!clickedTableRefGas"> + <span>{{ row.dayProduceUnit }}</span> + </div> + <div v-else> + <el-input v-model="row.dayProduceUnit" /> + </div> </template> </vxe-column> <vxe-column @@ -266,6 +396,14 @@ <template #edit="{ row }"> <el-input-number v-model="row.personnelNumber" /> </template> + <template #default="{ row }"> + <div v-if="!clickedTableRefGas"> + <span>{{ row.personnelNumber }}</span> + </div> + <div v-else> + <el-input-number v-model="row.personnelNumber" /> + </div> + </template> </vxe-column> <vxe-column field="dayProduceAllNum" @@ -274,7 +412,15 @@ :edit-render="{ autoFocus: 'input' }" > <template #edit="{ row }"> - <el-input-number v-model="row.dayProduceAllNum" /> + <el-input-number v-model="row.dayProduceAllNum" disabled /> + </template> + <template #default="{ row }"> + <div v-if="!clickedTableRefGas"> + <span>{{ row.dayProduceAllNum }}</span> + </div> + <div v-else> + <el-input-number v-model="row.dayProduceAllNum" disabled /> + </div> </template> </vxe-column> <vxe-column @@ -286,6 +432,14 @@ <template #edit="{ row }"> <el-input-number v-model="row.days" /> </template> + <template #default="{ row }"> + <div v-if="!clickedTableRefGas"> + <span>{{ row.days }}</span> + </div> + <div v-else> + <el-input-number v-model="row.days" /> + </div> + </template> </vxe-column> <vxe-column field="monthProduceAllNum" @@ -294,7 +448,7 @@ :edit-render="{ autoFocus: 'input' }" > <template #edit="{ row }"> - <el-input-number v-model="row.monthProduceAllNum" /> + <el-input-number v-model="row.monthProduceAllNum" disabled /> </template> </vxe-column> <vxe-column @@ -304,7 +458,23 @@ :edit-render="{ autoFocus: 'input' }" > <template #edit="{ row }"> - <el-input type="textarea" v-model="row.remark" /> + <el-input + type="textarea" + autosize="{minRows:2,maxRows:3}" + v-model="row.remark" + /> + </template> + <template #default="{ row }"> + <div v-if="!clickedTableRefGas"> + <span>{{ row.remark }}</span> + </div> + <div v-else> + <el-input + type="textarea" + autosize="{minRows:2,maxRows:3}" + v-model="row.remark" + /> + </div> </template> </vxe-column> <!-- <vxe-column title="鎿嶄綔" width="200" fixed="right"> @@ -350,6 +520,8 @@ { label: "鍗曚汉鏃ヤ骇鍑�", value: "1" }, { label: "鍥哄畾鏃ヤ骇鍑�", value: "2" }, ]); +const clickedTableRef = ref(false); +const clickedTableRefGas = ref(false); const formatTypeLabel = (list) => { if (list) { return list @@ -463,9 +635,20 @@ // VxeUI.modal.message({ content: `淇濆瓨鎴愬姛锛乶ame=${row.name}`, status: 'success' }) // }, 300) handleSave("绠¤矾"); + clickedTableRef.value = false; }); } }; +const handleCancelAllStatus = ()=>{ + handleCancleStaus(); + handleCancleStausGas(); +} +const handleCancleStaus = () => { + clickedTableRef.value = false; +}; +const handleCancleStausGas = () => { + clickedTableRefGas.value = false; +} // const cancelRowEvent = () => { // const $table = tableRef.value; // if ($table) { @@ -501,6 +684,7 @@ // VxeUI.modal.message({ content: `淇濆瓨鎴愬姛锛乶ame=${row.name}`, status: 'success' }) // }, 300) handleSave("姘旀煖"); + clickedTableRefGas.value = false; }); } }; @@ -572,7 +756,14 @@ loading2.value = false; } function cellClickEvent({ row, column }) { - console.log(column, row); + clickedTableRef.value = true; + console.log(clickedTableRef.value); + row.dayProduceAllNum = row.dayProduceNum * row.personnelNumber; + row.monthProduceAllNum = row.dayProduceAllNum * row.days; +} +function cellClickEventGas({ row, column }) { + clickedTableRefGas.value = true; + console.log(clickedTableRef.value); row.dayProduceAllNum = row.dayProduceNum * row.personnelNumber; row.monthProduceAllNum = row.dayProduceAllNum * row.days; } -- Gitblit v1.9.3