From a1bf701b728e79151bc34ffc8cbe479ab9ca53e4 Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期二, 11 三月 2025 16:25:38 +0800
Subject: [PATCH] 单独钢化页面新增序号显示,钢化前大理片笼部分样式及接口

---
 UI-Project/src/views/Slicecage/slicecage.vue |  242 ++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 200 insertions(+), 42 deletions(-)

diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index 84788ba..ba10a0a 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -9,14 +9,16 @@
 const scanGlass = ref([])
 const {t} = useI18n()
 let language = ref(localStorage.getItem('lang') || 'zh')
+import { inject } from 'vue';
 const router = useRouter()
+const timeRange = ref([])
 const dialogFormVisiblea = ref(false)
-const dialogFormVisibleb = ref(false)
 const dialogFormVisiblec = ref(false)
 const dialogFormVisibled = ref(false)
 const dialogFormVisiblee = ref(false)
 const dialogFormVisiblef = ref(false)
 const dialogFormVisibles = ref(false)
+const blindb = ref(false)
 const inkageEntity = ref('#911005');
 const requestEntity = ref('#911005');
 const mesReplyEntity = ref('#911005');
@@ -31,15 +33,16 @@
 const tableDatae = ref([])
 const tableDatas = ref([])
 const tableDatass = ref([])
+const tableDatax = ref([]);
 const tableDatalack = ref([])
 const tableDataspecify = ref([])
 const tableDatacagedetails = ref([])
+const selectValuesa = reactive([]);
 const carPosition = ref([])
 const ganghua = ref('')
 const diaodu = ref('')
 const flowCardId = ref('')
 const filmsId = ref('')
-const project = ref([]);
 const adjust = ref([]);
 const adjusta = ref([]);
 const adjustedRects = ref([]);
@@ -52,16 +55,17 @@
 const subRectsCountsc = ref([]);
 const currentRow = reactive({}); // 褰撳墠琛岀殑鏁版嵁 
 const currentPage2 = ref(1)
+const globalDate = inject('globalDate');
 const inputValuesa = reactive({});
 const add = ref(false)
 const gap = ref('');
 const glassId = ref('');
-const glassType = ref('');
-const height = ref('');
-const sequence = ref('');
-const state = ref('');
-const temperingFeedSequence = ref('');
-const temperingLayoutId = ref('');
+const startSlot = ref('');
+const targetSlot = ref('');
+const taskStateList = ref('');
+const taskTypeList = ref('');
+const beginDate = ref('');
+const endDate = ref('');
 const thickness = ref('');
 const width = ref('');
 const cell1=ref(true);
@@ -251,6 +255,84 @@
     console.error('鍙戠敓閿欒:', error);  
   }  
 }; 
+// 鍘嗗彶浠诲姟
+// const handlehistorical = (row) => {
+//   blindb.value = true;
+//   historical()
+// };
+// 鍘嗗彶浠诲姟
+const historical = async () => {
+  try { 
+  let startTime = window.localStorage.getItem('startTime')
+      const response = await request.post("/cacheVerticalGlass/bigStorageCageHistoryTask/queryBigStorageCageHistoryTask", {
+        glassId: glassId.value,
+        startSlot: 0,
+        targetSlot: 0,
+        taskStateList: [],
+        taskTypeList: [],
+        beginDate: startTime,
+        endDate: globalDate
+    })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        tableDatax.value = response.data;
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    console.error(error);
+  }
+}
+// 鍘嗗彶鏌ヨ
+const sethistorical = async () => {
+  try { 
+  let startTime = window.localStorage.getItem('startTime')
+  let celllist=[]
+  let stateList=[]
+  let pstartSlot= ''
+  let ptargetSlot=''
+  if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+    if(selectValuesa[0]!=""){
+      celllist=[selectValuesa[0]];
+    }
+  }
+  if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+    if(selectValuesa[1]!=""){
+      stateList=[selectValuesa[1]];
+    }
+  }
+  if(startSlot.value != ""){
+    pstartSlot = startSlot.value
+  }else{
+    pstartSlot = '0'
+  }
+  if(targetSlot.value != ""){
+    ptargetSlot = targetSlot.value
+  }else{
+    ptargetSlot = '0'
+  }
+      const response = await request.post("/cacheVerticalGlass/bigStorageCageHistoryTask/queryBigStorageCageHistoryTask", {
+        glassId: glassId.value,
+        startSlot: pstartSlot,
+        targetSlot: ptargetSlot,
+        taskStateList: celllist,
+        taskTypeList: stateList,
+        beginDate: startTime,
+        endDate: globalDate
+    })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        tableDatax.value = response.data;
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    console.error(error);
+  }
+}
+
  // 鎷胯蛋
  const brokec = async(row) => {  
   try {
@@ -740,9 +822,39 @@
     console.error(error);
   }
 }
+// 浠诲姟閲嶇疆
+const handleptask = async() => { 
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.partasks'), 
+      t('workOrder.prompt'),  
+      {  
+        confirmButtonText: t('workOrder.yes'), 
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',  
+      } 
+    );
+ if (confirmResult === 'confirm') {
+  const response = await request.post('/cacheVerticalGlass/bigStorageCage/resetCage')
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) { 
+    console.error('鍙戠敓閿欒:', error); 
+  }  
+}; 
 let socket = null;
 const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheVerticalGlass/api/talk/slicecage`;
 const handleMessage = (data) => {
+  if (cageInfo && cageInfo.createTime) {
+    cageInfo.formattedCreateTime = formatTimestamp(cageInfo.createTime);
+  }
+  if (cageInfo && cageInfo.updateTime) {
+    cageInfo.formattedupdateTime = formatTimestamp(cageInfo.updateTime);
+  }
   if(data.bigStorageSummary!=null){
     tableDatass.value = data.bigStorageSummary[0]
   }else{
@@ -976,8 +1088,19 @@
     right,
   };
 };
-onMounted(() => {
+// 鏍煎紡鍖栧悗绔椂闂村苟璁$畻涓�鍛ㄥ墠鐨勬椂闂�
+const defaultTime = ref<[Date, Date]>([new Date(), new Date()]);
+function parseAndSetTime() {
+  const backendTime = new Date(globalDate);
+  const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 鍑忓幓7澶�
+  console.log(formatTimestamp(oneWeekAgo));
+  console.log(oneWeekAgo);
+  timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+  window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+}
+  onMounted(() => {
   socket = initializeWebSocket(socketUrl, handleMessage);
+  parseAndSetTime();
 });
   onUnmounted(() => {
     if (socket) {
@@ -1056,6 +1179,17 @@
   }
   return '';
 }
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp) {
+  const date = new Date(timestamp);
+  const year = date.getFullYear();
+  const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+  const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+  const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
 onBeforeUnmount(() => {
   closeWebSocket();
 });
@@ -1063,9 +1197,10 @@
 <template>
   <div style="height: 600px;">
     <el-button style="margin-top: 7px;margin-left: 10px;" id="searchButton" type="primary" @click="handlexiang">{{ $t('searchOrder.cageinformation') }}</el-button>
-    <el-button style="margin-top: 7px;margin-left: 10px;" id="searchButton" type="success" @click="dialogFormVisibleb = true">{{ $t('searchOrder.productionqueue') }}</el-button>
+    <el-button style="margin-top: 7px;margin-left: 10px;" id="searchButton" type="success" @click="handlehistorical">{{ $t('searchOrder.historicaltasks') }}</el-button>
     <el-button style="margin-top: 7px;margin-left: 10px;" id="searchButton" type="warning" @click="handleganghua">{{ $t('searchOrder.temperingqueries') }}</el-button>
     <el-button style="margin-top: 7px;margin-left: 10px;" id="searchButton" type="info" @click="dialogFormVisibles=true;fetchFlows()">{{ $t('searchOrder.searchlayout') }}</el-button>
+    <el-button style="margin-top: 7px;margin-left: 10px;" id="searchButton" type="danger" @click="handleptask()">{{ $t('searchOrder.partask') }}</el-button>
     <el-switch style="margin-top: 7px;margin-left: 10px;" v-model="ganghua" class="mb-2" :inactive-text="$t('searchOrder.temperedswitch')" @change="handleChange" />
     <el-switch style="margin-top: 7px;margin-left: 10px;" v-model="diaodu" class="mb-2" :inactive-text="$t('searchOrder.Schedulingswitch')" @change="handlediaodu" />
     <div id="dotClass">
@@ -1100,7 +1235,7 @@
       <el-table height="300px" ref="table" 
         @selection-change="handleSelectionChange"
         :row-class-name="tableRowClassName"
-        :data="tableDatad" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+        :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
           <el-table-column prop="glassId" align="center" :label="$t('searchOrder.intoglassid')" min-width="140" />
           <el-table-column prop="startSlot" align="center" :label="$t('searchOrder.startposition')" min-width="120" />
           <el-table-column prop="targetSlot" align="center" :label="$t('searchOrder.targetlocation')" min-width="120" />
@@ -1381,46 +1516,69 @@
     </div>
   </div>
   </el-dialog>
-<el-dialog v-model="dialogFormVisibleb" top="5vh" width="85%" :title="$t('searchOrder.productionqueue')">
-    <el-table  ref="table" style="margin-top: 20px;height: 700px;"
-        :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-          <el-table-column prop="glassId" fixed align="center" :label="$t('searchOrder.glassID')" min-width="150"/>
-          <el-table-column prop="flowCardId" fixed align="center" :label="$t('searchOrder.processcards')" min-width="120" />
-          <el-table-column prop="width" align="center" :label="$t('searchOrder.width')"  min-width="80" />
-          <el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="80" />
-          <el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="80" />
-          <el-table-column prop="filmsid" align="center" :label="$t('searchOrder.coatingtypes')" min-width="80" />
+<!-- 鍘嗗彶浠诲姟 -->
+<el-dialog v-model="blindb" top="10vh" width="90%">
+  <div style="display: flex;">
+    <el-input v-model="glassId" style="margin-left: 10px;margin-bottom: 10px;width: 270px;" :placeholder="$t('searchOrder.inglassID')" />
+    <el-input v-model="startSlot" style="margin-left: 10px;margin-bottom: 10px;width: 270px;" :placeholder="$t('film.originateslot')" />
+    <el-input v-model="targetSlot" style="margin-left: 10px;margin-bottom: 10px;width: 270px;" :placeholder="$t('film.endslot')" />
+          <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('searchOrder.taskstatus')" clearable
+          style="width: 270px;margin-left: 10px;">
+          <el-option :label="$t('searchOrder.begin')" value="0"></el-option>
+          <el-option :label="$t('searchOrder.finish')" value="2"></el-option>
+          <el-option :label="$t('order.dilapidation')" value="3"></el-option>
+          <el-option :label="$t('searchOrder.uncar')" value="4"></el-option>
+        </el-select>
+        <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('film.enabletype')" clearable
+          style="width: 270px;margin-left: 10px;">
+          <el-option :label="$t('searchOrder.inkage')" value="1"></el-option>
+          <el-option :label="$t('searchOrder.outfilm')" value="2"></el-option>
+          <el-option :label="$t('film.dispatch')" value="3"></el-option>
+        </el-select>
+            <el-date-picker v-model="timeRange" type="datetimerange" range-separator="鑷�" :start-placeholder="$t('reportmanage.starttime')" 
+             style="margin-left: 15px;" value-format = "YYYY-MM-DD hh:mm:ss"
+              :end-placeholder="$t('reportmanage.endtime')">
+            </el-date-picker>
+          <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="sethistorical()">{{$t('reportmanage.inquire')}}</el-button>
+      </div>
+    <el-table ref="table" style="margin-top: 20px;height: 650px;" :data="tableDatad" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+      <el-table-column prop="glassIdIn" align="center" :label="$t('searchOrder.intoglassid')" min-width="80" />
+      <el-table-column prop="glassIdOut" align="center" :label="$t('searchOrder.outputglassID')" min-width="80" />
+          <el-table-column prop="currentCell" align="center" :label="$t('sorter.layernow')" min-width="80" />
+          <el-table-column prop="startCell" align="center" :label="$t('processCard.layer')" min-width="120" />
           <el-table-column
             align="center"
-            :label="$t('searchOrder.acceptshorizontal')"
-            min-width="150"
-            prop="ishorizontal"
-          >
-          <template #default="scope">  
-        <el-tag :type="getStatusTypea(scope.row.ishorizontal)">  
-          {{ getStatusTexta(scope.row.ishorizontal) }}  
-        </el-tag>  
-      </template> 
-          </el-table-column>
-          <el-table-column prop="temperingLayoutId" align="center" :label="$t('searchOrder.layoutID')" min-width="120" />
-          <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" min-width="120" />
-          <el-table-column prop="xCoordinate" align="center" :label="$t('searchOrder.xcoordinates')" min-width="80" />
-          <el-table-column prop="yCoordinate" align="center" :label="$t('searchOrder.ycoordinates')" min-width="80" />
-          <el-table-column prop="angle" align="center" :label="$t('searchOrder.rotationangle')" min-width="150" />
-          <el-table-column
-            align="center"
-            :label="$t('searchOrder.state')"
+            :label="$t('film.taskstatus')"
             min-width="80"
-            prop="state"
+            prop="taskState"
           >
           <template #default="scope">  
-        <el-tag :type="getStatusTypeb(scope.row.state)">  
-          {{ getStatusTextb(scope.row.state) }}  
+        <el-tag :type="getStatusTypeb(scope.row.taskState)">  
+          {{ getStatusTextb(scope.row.taskState) }}  
         </el-tag>  
       </template> 
           </el-table-column>
+          <el-table-column
+            align="center"
+            :label="$t('film.enabletype')"
+            min-width="80"
+            prop="taskType"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusTypea(scope.row.taskType)">  
+          {{ getStatusTexta(scope.row.taskType) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column prop="createTime" align="center" :label="$t('film.createtime')" min-width="120" />
+          <el-table-column prop="updateTime" align="center" :label="$t('sorter.updateTime')" min-width="120" />
         </el-table>
-</el-dialog>
+        <template #footer>
+      <div id="dialog-footer">
+        <el-button @click="blindb = false">{{ $t('large.close') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
 <!-- 閽㈠寲鏌ヨ -->
 <el-dialog v-model="dialogFormVisiblec" top="5vh" width="85%" :title="$t('searchOrder.temperingqueries')">
   <div style="margin-bottom: 20px">

--
Gitblit v1.8.0