From 928fa3682fcd0bcb59e3ca3da8770ecbb06cf315 Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期五, 02 八月 2024 10:32:21 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 UI-Project/src/views/ReportWork/reportWork.vue |  237 ++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 185 insertions(+), 52 deletions(-)

diff --git a/UI-Project/src/views/ReportWork/reportWork.vue b/UI-Project/src/views/ReportWork/reportWork.vue
index f28dac1..67b04ab 100644
--- a/UI-Project/src/views/ReportWork/reportWork.vue
+++ b/UI-Project/src/views/ReportWork/reportWork.vue
@@ -1,51 +1,137 @@
 <template>
   <div style="height: 600px;">
-    <span class="demonstration">鐢熶骇鏃堕棿</span>
-    <el-date-picker v-model="timeRange" type="daterange" format="YYYY/MM/DD" value-format="YYYY-MM-DD"
-      start-placeholder="寮�濮嬫椂闂�" end-placeholder="缁撴潫鏃堕棿" :default-time="defaultTime" />
-    <el-select v-model="report.type" placeholder="娓呴�夋嫨绫诲瀷">
-      <el-option label="鍏ㄩ儴" value="0"></el-option>
-      <el-option label="瀹屽伐" value="1"></el-option>
-      <el-option label="鐮存崯" value="2"></el-option>
-      <el-option label="鎷胯蛋" value="3"></el-option>
+    <div style="display: flex; flex-direction: row; align-items: center; margin-top: 20px;">  
+    <span style="margin-left: 10px;" class="demonstration">{{ $t('reportmanage.productiontime') }}</span>
+    <el-date-picker style="margin-left: 10px;"  v-model="timeRange" type="daterange" format="YYYY/MM/DD" value-format="YYYY-MM-DD"
+      :start-placeholder="$t('reportmanage.starttime')" :end-placeholder="$t('reportmanage.endtime')" :default-time="defaultTime" />
+    <el-select v-model="report.type" :placeholder="$t('reportmanage.ctype')" style="margin-left: 10px;" >
+      <el-option :label="$t('reportmanage.all')" value="0"></el-option>
+      <el-option :label="$t('reportmanage.completed')" value="1"></el-option>
+      <el-option :label="$t('reportmanage.broke')" value="2"></el-option>
+      <el-option :label="$t('reportmanage.takeout')" value="3"></el-option>
     </el-select>
-    <el-select v-model="report.status" placeholder="娓呴�夋嫨鐘舵��">
-      <el-option label="鍏ㄩ儴" value="0"></el-option>
-      <el-option label="鏈姤宸�" value="1"></el-option>
-      <el-option label="寰呮姤宸�" value="2"></el-option>
-      <el-option label="宸叉姤宸�" value="3"></el-option>
+    <el-select v-model="report.status" :placeholder="$t('reportmanage.cstate')" style="margin-left: 10px;" >
+      <el-option :label="$t('reportmanage.all')" value="0"></el-option>
+      <el-option :label="$t('reportmanage.dreportwork')" value="1"></el-option>
+      <el-option :label="$t('reportmanage.pendingwork')" value="2"></el-option>
+      <el-option :label="$t('reportmanage.reportwork')" value="3"></el-option>
     </el-select>
-    <el-select v-model="report.workingProcedure" placeholder="娓呴�夋嫨宸ュ簭">
-      <el-option label="鍏ㄩ儴" value="0"></el-option>
-      <el-option label="鍒囧壊" value="1"></el-option>
-      <el-option label="纾ㄨ竟" value="2"></el-option>
-      <el-option label="閽㈠寲" value="3"></el-option>
+    <el-select v-model="report.workingProcedure" :placeholder="$t('reportmanage.cprocess')" style="margin-left: 10px;" >
+      <el-option :label="$t('reportmanage.all')" value="0"></el-option>
+      <el-option :label="$t('reportmanage.incise')" value="1"></el-option>
+      <el-option :label="$t('reportmanage.edging')" value="2"></el-option>
+      <el-option :label="$t('reportmanage.steel')" value="3"></el-option>
     </el-select>
-    <el-button type="primary" @click="selectReportData()">鏌ヨ</el-button>
-    <el-button type="success">鎶ュ伐</el-button>
-    <el-table height="100%" ref="table" :data="reportData"
+    <el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('reportmanage.inquire') }}</el-button>
+    <el-button type="success" style="margin-left: 10px;" @click="handleConfirm">{{ $t('reportmanage.signingwork') }}</el-button>
+  </div>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+    <el-table height="540" ref="table" :data="reportData"
       :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
-      <el-table-column prop="teamsGroupsName" align="center" label="鎶ュ伐鐝粍" min-width="120" />
-      <el-table-column prop="deviceName" align="center" label="鎶ュ伐璁惧" min-width="120" />
-      <el-table-column prop="line" align="center" label="绾胯矾" min-width="120" />
-      <el-table-column prop="workingProcedure" align="center" label="宸ュ簭" min-width="120" />
-      <el-table-column prop="glassId" align="center" label="鐜荤拑id" min-width="120" />
-      <el-table-column prop="engineerId" align="center" label="宸ョ▼鍙�" min-width="120" />
-      <el-table-column prop="temperingLayoutId" align="center" label="閽㈠寲鐗堝浘id" min-width="120" />
-      <el-table-column prop="damageTime" align="center" label="鐢熶骇鏃堕棿" min-width="120" />
-      <el-table-column prop="type" align="center" label="绫诲瀷" min-width="120" />
-      <el-table-column prop="status" align="center" label="鐘舵��" min-width="120" />
-      <el-table-column prop="processId" align="center" label="娴佺▼鍗�" min-width="120" />
-      <el-table-column prop="orderNumber" align="center" label="搴忓彿" min-width="120" />
-      <el-table-column prop="technologyNumber" align="center" label="灞�" min-width="120" />
-      <el-table-column prop="breakageType" align="center" label="鐮存崯绫诲瀷" min-width="120" />
-      <el-table-column prop="breakageReason" align="center" label="鐮存崯鍘熷洜" min-width="120" />
-      <el-table-column prop="responsibleProcess" align="center" label="璐d换宸ュ簭" min-width="120" />
-      <el-table-column prop="responsiblePersonnel" align="center" label="璐d换浜哄憳" min-width="120" />
-      <el-table-column prop="responsibleTeam" align="center" label="璐d换鐝粍" min-width="120" />
-      <el-table-column prop="responsibleEquipment" align="center" label="璐d换璁惧" min-width="120" />
-      <el-table-column prop="remark" align="center" label="澶囨敞" min-width="120" />
+      <el-table-column prop="teamsGroupsName" align="center" :label="$t('reportmanage.reporteam')" min-width="120" />
+      <el-table-column prop="deviceName" align="center" :label="$t('reportmanage.reportingequipment')" min-width="120" />
+      <el-table-column prop="line" align="center" :label="$t('reportmanage.line')" min-width="120" />
+      <el-table-column prop="workingProcedure" align="center" :label="$t('reportmanage.process')" min-width="120" />
+      <el-table-column prop="glassId" align="center" :label="$t('reportmanage.glassID')" min-width="130" />
+      <el-table-column prop="engineerId" align="center" :label="$t('reportmanage.projectnumber')" min-width="120" />
+      <el-table-column prop="temperingLayoutId" align="center" :label="$t('reportmanage.layoutID')" min-width="120" />
+      <el-table-column prop="damageTime" align="center" :label="$t('reportmanage.productiontime')" min-width="230" />
+      <el-table-column prop="type" align="center" :label="$t('reportmanage.type')" min-width="120" />
+      <el-table-column prop="status" align="center" :label="$t('reportmanage.state')" min-width="120" />
+      <el-table-column prop="processId" align="center" :label="$t('reportmanage.processcards')" min-width="140" />
+      <el-table-column prop="orderNumber" align="center" :label="$t('reportmanage.number')" min-width="120" />
+      <el-table-column prop="technologyNumber" align="center" :label="$t('reportmanage.layer')" min-width="120" />
+      <el-table-column prop="breakageType" align="center" :label="$t('reportmanage.typebreakage')" min-width="180">
+        <template #default="{ row }">  
+        <el-select  
+                      v-model="selectValuesa[row.id]"
+                      filterable  
+                      :placeholder="$t('reportmanage.pcausebreakage')"
+                      clearable  
+                      @input="handleInputChangea($event, row.id)"
+                    >  
+                 <el-option  
+                    v-for="item in selectOptionsa"  
+                    :key="item.basicName"  
+                    :label="item.basicName"  
+                    :value="item.basicName"  
+                 />  
+               </el-select>  
+               </template>
+      </el-table-column>
+      <el-table-column prop="breakageReason" align="center" :label="$t('reportmanage.causebreakage')" min-width="180">
+        <template #default="{ row }">  
+        <el-select  
+                      v-model="selectValuesb[row.id]"
+                      filterable  
+                      :placeholder="$t('reportmanage.ptypebreakage')"
+                      clearable  
+                      @input="handleInputChangea($event, row.id)"
+                    >  
+                 <el-option  
+                    v-for="item in selectOptionsb"  
+                    :key="item.basicName"  
+                    :label="item.basicName"  
+                    :value="item.basicName"  
+                 />  
+               </el-select>  
+               </template>
+      </el-table-column>
+      <el-table-column align="center" :label="$t('reportmanage.responsibleprocess')" min-width="120">
+        <template #default="{ row }">  
+        <span>{{ '鍒囧壊纾ㄨ竟閽㈠寲' }}</span>  
+      </template>  
+      </el-table-column>
+      <el-table-column prop="responsiblePersonnel" align="center" :label="$t('reportmanage.responsiblepersonnel')" min-width="180">
+        <template #default="{ row }">
+          <el-input :placeholder="$t('reportmanage.presponsiblepersonnel')" v-model="inputValuesa[row.id]" autocomplete="off" />
+        </template>
+      </el-table-column>
+      <el-table-column prop="responsibleTeam" align="center" :label="$t('reportmanage.responsibleteam')" min-width="180">
+        <template #default="{ row }">  
+        <el-select  
+                      v-model="selectValuesc[row.id]"
+                      filterable  
+                      :placeholder="$t('reportmanage.presponsibleteam')"
+                      clearable  
+                      @input="handleInputChangea($event, row.id)"
+                    >  
+                 <el-option  
+                    v-for="item in selectOptionsc"  
+                    :key="item.basicName"  
+                    :label="item.basicName"  
+                    :value="item.basicName"  
+                 />  
+               </el-select>  
+               </template>
+      </el-table-column>
+      <el-table-column prop="responsibleEquipment" align="center" :label="$t('reportmanage.responsibleequipment')" min-width="180">
+        <template #default="{ row }">  
+        <el-select  
+                      v-model="selectValuesd[row.id]"
+                      filterable  
+                      :placeholder="$t('reportmanage.presponsibleequipment')"
+                      clearable  
+                      @input="handleInputChangea($event, row.id)"
+                    >  
+                 <el-option  
+                    v-for="item in selectOptionsd"  
+                    :key="item.basicName"  
+                    :label="item.basicName"  
+                    :value="item.basicName"  
+                 />  
+               </el-select>  
+               </template>
+      </el-table-column>
+      <el-table-column prop="remark" align="center" :label="$t('reportmanage.remark')" min-width="180">
+        <template #default="{ row }">
+          <el-input :placeholder="$t('reportmanage.premark')" v-model="inputValuesb[row.id]" autocomplete="off" />
+        </template>
+      </el-table-column>
     </el-table>
+    </div>
+    </el-card>
   </div>
 </template>
 <script setup>
@@ -63,7 +149,17 @@
   workingProcedure: '0',
 });
 const reportData = ref([])
-const timeRange = ref(["2022-01-01", "2022-01-01"])
+const timeRange = ref(["2022-01-01", "2025-01-01"])
+const selectOptionsa = ref([]);
+const selectOptionsb = ref([]);
+const selectOptionsc = ref([]);
+const selectOptionsd = ref([]);
+const selectValuesa = reactive({});
+const selectValuesb = reactive({});
+const selectValuesc = reactive({});
+const selectValuesd = reactive({});
+const inputValuesa = reactive({});
+const inputValuesb = reactive({});
 
 
 // 鏌ヨ鏁版嵁
@@ -90,7 +186,45 @@
     status:"2"
   })
 };
-
+// 鎶ュ伐
+const handleConfirm = async () => {
+  const response = await request.post("/cacheVerticalGlass/damage/submitDamage", reportData.value)
+  if (response.code === 200) {
+    ElMessage.success(response.message);
+  } else {
+    ElMessage.error(response.message);
+  }
+};
+const fetchTableData = async () => {  
+  try {  
+    const response = await request.post('/cacheVerticalGlass/basic_data_produce/selectBasicDataProduceGroup');  
+    if (response.code == 200) {  
+      selectOptionsa.value = response.data.breakagetype.filter(item => item !== null)
+.map(item => ({ basicName: item.basicName }));
+      selectOptionsb.value = response.data.breakagereason.filter(item => item !== null)
+.map(item => ({ basicName: item.basicName }));
+      selectOptionsc.value = response.data.teamsgroups.filter(item => item !== null)
+.map(item => ({ basicName: item.basicName }));
+      selectOptionsd.value = response.data.device.filter(item => item !== null)
+.map(item => ({ basicName: item.basicName }));
+    } else {  
+      ElMessage.warning(response.data);  
+    }  
+  } catch (error) {  
+    console.error('Error fetching options:', error);  
+  }  
+}; 
+const handleInputChangea = (value, rowId) => {  
+  // 鏇存柊瀵瑰簲琛岀殑 select 鍊�  
+  selectValuesa[rowId] = value;  
+  selectValuesb[rowId] = value;  
+  selectValuesc[rowId] = value;  
+  selectValuesd[rowId] = value;  
+  inputValuesa[rowId] = value;  
+  inputValuesb[rowId] = value;  
+};
+fetchTableData();  
+let socket = null;
 const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/screen`;
 const handleMessage = (data) => {
   // adjustedRects.value = data.device[0].map(rect => ({  
@@ -100,7 +234,7 @@
   //       thisProcess: rect.thisProcess,
   //     })); 
 };
-let socket;
+// let socket;
 onMounted(() => {
   socket = new WebSocket(socketUrl);
   socket.onmessage = (event) => {
@@ -110,19 +244,18 @@
   };
   // };  
 });
-
-
-
-
 onUnmounted(() => {
   socket.close();
 });
-
 onMounted(() => {
-  // fetchFlowCardId();
-  // fetchTableData(); // 鑾峰彇鏁版嵁
-  initializeWebSocket(socketUrl, handleMessage);
+  fetchTableData();
+  socket = initializeWebSocket(socketUrl, handleMessage);
 });
+  onUnmounted(() => {
+    if (socket) {
+    closeWebSocket(socket);
+    }
+    });
 onBeforeUnmount(() => {
   console.log("鍏抽棴浜�")
   closeWebSocket();

--
Gitblit v1.8.0