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