From fe25b9d9dc98187a0b885631bc39dfd5daa15163 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 20 十一月 2025 17:26:04 +0800
Subject: [PATCH] 工位改为默认查询所有状态

---
 src/views/mdc/first-workpiece-detail.vue |  218 ++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 168 insertions(+), 50 deletions(-)

diff --git a/src/views/mdc/first-workpiece-detail.vue b/src/views/mdc/first-workpiece-detail.vue
index c5b634e..b61d80c 100644
--- a/src/views/mdc/first-workpiece-detail.vue
+++ b/src/views/mdc/first-workpiece-detail.vue
@@ -2,54 +2,46 @@
  * @Author: lzhe lzhe@example.com
  * @Date: 2024-04-26 09:36:18
  * @LastEditors: lzhe lzhe@example.com
- * @LastEditTime: 2024-11-22 18:45:06
+ * @LastEditTime: 2024-12-20 15:06:05
  * @FilePath: /smart-web/src/views/mdc/status-record.vue
  * @Description: 杩欐槸榛樿璁剧疆,璇疯缃甡customMade`, 鎵撳紑koroFileHeader鏌ョ湅閰嶇疆 杩涜璁剧疆: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 -->
 <template>
     <el-main style="height: 100%;" class="timeAnalysis">
-        <el-card shadow="never" body-style="height: 100%;padding: 0;" style="margin-bottom: 12px;">
-            <div class="detailModel" v-for="item in detailModelList">
-                <div>
-                    <div class="">闆朵欢鍚嶇О</div><div><process-charts></process-charts></div>
-                </div>
-                <div>
-                    <div>寮�濮嬫椂闂�</div><div><process-charts></process-charts></div>
-                </div>
-                <div>
-                    <div>缁撴潫鏃堕棿</div><div><process-charts></process-charts></div>
-                </div>
-                <div>
-                    <div>鍔犲伐鏈哄簥</div><div><process-charts></process-charts></div>
-                </div>
-                <div class="modelBtn">
-                    <el-button type="primary" @click="goFirstWorkProcess">杩囩▼鍒嗘瀽</el-button>
+        <el-card body-style="height: 100%;padding: 0;" style="margin-bottom: 12px;">
+            <div class="tableOuter">
+                <div class="tableAll">
+                    <div class="tableHeader">
+                      <span v-for="item in tableHeader" :style="{'width': item.width}"> {{item.title}} </span>  
+                    </div>
+                    <div v-for="(item,index) in tableData" class="tableBody">
+                        <span style="width:60px;" v-if="item.id">{{item.index}}</span>
+                        <span style="width:80px;" v-if="item.id">{{item.partNo}}</span>
+                        <span style="width:80px;" v-if="item.id">{{item.processNo}}</span>
+                        <span style="width:60px;" v-if="item.id">{{item.version}}</span>
+                        <span style="width:100px;" v-if="item.id">{{item.workstationName}}</span>
+                        <span style="width:145px;" v-if="item.id">{{item.startTime}}</span>
+                        <span style="width:145px;" v-if="item.id">{{item.endTime}}</span>
+                        <span style="width:100px;" v-if="item.id">{{ convertSeconds(item.occupancySecs || 0) }}</span>
+                        <span style="width:100px;" v-if="item.id">{{ convertSeconds(item.clampingSecs || 0) }}</span>
+                        <span style="width:100px;" v-if="item.id">{{ convertSeconds(item.firstWorkingSecs || 0) }}</span>
+                        <span style="width:100px;" v-if="item.id">{{ convertSeconds(item.firstMeasureSecs || 0) }}</span>
+                        <span style="width:100px;" v-if="item.id">{{ convertSeconds(item.lastRemoveSecs || 0) }}</span>
+                        <span style="width:80px;" v-if="item.id">{{ convertSeconds(item.processingSecs || 0) }}</span>
+                        <span style="width:80px;" v-if="item.id">{{ convertSeconds(item.prepareSecs || 0) }}</span>
+                        <span style="width:80px;" v-if="item.id">{{ convertSeconds(item.singleProcessSecs || 0) }}</span>
+                        <span style="width:60px;" v-if="item.id">{{item.amount}}</span>
+                        <!-- 鍥捐〃 -->
+                        <el-card  v-if="!item.id" shadow="never" body-style="padding: 0;" class="chartsDiv">
+                            <process-charts :index="index" :tableData="tableData"></process-charts>
+                            <div class="modelBtn">
+                                <el-button type="primary" @click="goFirstWorkProcess(item,index)">杩囩▼鍒嗘瀽</el-button>
+                                <el-button type="primary" @click="exportBtn(item,index)">杈撳嚭</el-button>
+                            </div>
+                        </el-card>
+                    </div>
                 </div>
             </div>
-        </el-card>
-        <el-card body-style="height: 100%;padding: 0;" style="margin-bottom: 12px;">
-            <el-table :data="tableData" border @selection-change="handleSelectionChange">
-                <el-table-column prop="test" label="搴忓彿" width="60"></el-table-column>
-                <el-table-column prop="test" label="闆朵欢鍙�" width="80"></el-table-column>
-                <el-table-column prop="test" label="宸ュ簭鍙�" width="80"></el-table-column>
-                <el-table-column prop="test" label="鐗堟" width="60"></el-table-column>
-                <el-table-column prop="test" label="鏈哄簥" width="60"></el-table-column>
-                <el-table-column prop="test" label="寮�鏈烘椂闂�" width="80"></el-table-column>
-                <el-table-column prop="test" label="缁撴潫鏃堕棿" width="80"></el-table-column>
-                <el-table-column prop="test" label="鍗犳満鏃堕棿" width="100"></el-table-column>
-                <el-table-column prop="test" label="瑁呭す璋冭瘯鏃堕棿" width="100"></el-table-column>
-                <el-table-column prop="test" label="棣栦欢鍒囧墛鏃堕棿" width="100"></el-table-column>
-                <el-table-column prop="test" label="棣栦欢鍒囧墛鏃堕棿" width="100"></el-table-column>
-                <el-table-column prop="test" label="鏈欢鎷嗗嵏鏃堕棿" width="100"></el-table-column>
-                <el-table-column prop="test" label="棣栦欢璁¢噺鏃堕棿" width="100"></el-table-column>
-                <el-table-column prop="test" label="鍔犲伐鏃堕棿" width="80"></el-table-column>
-                <el-table-column prop="test" label="鍑嗗鏃堕棿" width="80"></el-table-column>
-                <el-table-column prop="test" label="鍗曚欢宸ユ椂" width="80"></el-table-column>
-                <el-table-column prop="test" label="鏁伴噺" width="60"></el-table-column>
-            </el-table>
-            <el-footer>
-                <el-button type="primary">杈撳嚭</el-button>
-            </el-footer>
         </el-card>
     </el-main>
 </template>
@@ -68,29 +60,155 @@
     },
     data() {
         return {
-            detailModelList: [{},{}],
-            tableData: []
+            detailModelList: [],
+            tableData: [],
+            tableHeader: [
+                {title:'搴忓彿',width: '60px'},
+                {title:'闆朵欢鍙�',width: '80px'},
+                {title:'宸ュ簭鍙�',width: '80px'},
+                {title:'鐗堟',width: '60px'},
+                {title:'宸ヤ綅',width: '100px'},
+                {title:'寮�濮嬫椂闂�',width: '145px'},
+                {title:'缁撴潫鏃堕棿',width: '145px'},
+                {title:'鍗犳満鏃堕棿',width: '100px'},
+                {title:'瑁呭す璋冭瘯鏃堕棿',width: '100px'},
+                {title:'棣栦欢鍒囧墛鏃堕棿',width: '100px'},
+                {title:'棣栦欢璁¢噺鏃堕棿',width: '100px'},
+                {title:'鏈欢鎷嗗嵏鏃堕棿',width: '100px'},
+                {title:'鍔犲伐鏃堕棿',width: '80px'},
+                {title:'鍑嗗鏃堕棿',width: '80px'},
+                {title:'鍗曚欢宸ユ椂',width: '80px'},
+                {title:'鏁伴噺',width: '60px'}
+            ]
         }
     },
     created() {
-        for(var i=0;i<10;i++) {
-            this.tableData.push({test: 1})
-        }
     },
     mounted() {
+        this.getTableData();
+        var idList = this.$route.query.ids.split(",");
+        idList.forEach(item=> {
+            this.detailModelList.push({id: item});
+        })
     },
     methods: {
-        handleSelectionChange() {
-
+        exportBtn(item,index) {
+            var id = this.tableData[index - 1].id;
+            this.$HTTP.get(`/api/workinghour/export?id=${id}`).then(res => {
+                if (res.code == 200) {
+                    this.$TOOL.downFile(res.data.link,res.data.originalName);
+                }
+            })
         },
-        goFirstWorkProcess() {
-            this.$router.push({path: `/mdc/first-workpiece-process`,query: {id:1}})
+        convertSeconds(seconds) {  //杞崲鏃堕棿
+            // 瀹氫箟鏃堕棿鍗曚綅杞崲鍏崇郴
+            const daysInSeconds = 24 * 60 * 60;
+            const hoursInSeconds = 60 * 60;
+            const minutesInSeconds = 60;
+
+            // 璁$畻澶╂暟
+            let days = Math.floor(seconds / daysInSeconds);
+            seconds %= daysInSeconds;
+
+            // 璁$畻灏忔椂鏁�
+            let hours = Math.floor(seconds / hoursInSeconds);
+            seconds %= hoursInSeconds;
+
+            // 璁$畻鍒嗛挓鏁�
+            let minutes = Math.floor(seconds / minutesInSeconds);
+            seconds %= minutesInSeconds;
+
+            // 鍑嗗缁撴灉鏁扮粍
+            let result = [];
+
+            // 鏍规嵁闇�瑕佹坊鍔犲ぉ鏁板埌缁撴灉鏁扮粍
+            if (days > 0) {
+                result.push(`${days}澶ー);
+            }
+
+            // 鏍规嵁闇�瑕佹坊鍔犲皬鏃舵暟鍒扮粨鏋滄暟缁�
+            if (hours > 0) {
+                result.push(`${hours}灏忔椂`);
+            }
+
+            // 鏍规嵁闇�瑕佹坊鍔犲垎閽熸暟鍒扮粨鏋滄暟缁�
+            if (minutes > 0) {
+                result.push(`${minutes}鍒嗛挓`);
+            }
+
+            // 濮嬬粓娣诲姞绉掓暟鍒扮粨鏋滄暟缁勶紙鍥犱负绉掓暟鎬绘槸鏈夋剰涔夌殑锛�
+            result.push(`${seconds}绉抈);
+
+            // 杩斿洖鏍煎紡鍖栧悗鐨勫瓧绗︿覆
+            return result.join(' ');
+        },
+        goFirstWorkProcess(item,index) {
+            var id = this.tableData[index - 1].id;
+            this.$router.push({path: `/mdc/first-workpiece-process`,query: {id}})
+        },
+        getTableData() {
+            this.$HTTP.post(`/api/workinghour/listByIds`, {ids: this.$route.query.ids.split(',')}).then(res => {
+                if (res.code === 200) {
+                    res.data.forEach((item,index)=> {
+                        item.index = index + 1;
+                    })
+                    // 浣跨敤 reduce 鏂规硶鏉ユ瀯寤烘柊鐨勬暟缁�
+                    var newArray = res.data.reduce((acc, curr) => {
+                      acc.push(curr); // 灏嗗綋鍓嶅璞℃坊鍔犲埌绱Н鍣ㄤ腑
+                      acc.push({}); // 鍦ㄥ綋鍓嶅璞″悗娣诲姞涓�涓┖瀵硅薄
+                      return acc;
+                    }, []);
+                    this.tableData = newArray;
+                    //console.log(this.tableData,111)
+                }
+            })
         }
     }
 }
 </script>
 
 <style scoped>
+    .tableOuter {
+        width: 100%;
+        overflow: hidden;
+    }
+    .tableAll {
+        overflow-x: scroll;
+        white-space: nowrap;
+        border: 1px solid #e4e7ed;
+    }
+    .tableHeader,.tableBody {
+        width:1470px;
+        border-top: 1px solid #e4e7ed;
+        display: flex;
+    }
+    .tableHeader span {
+        padding: 8px 12px;
+        display: inline-block;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: normal;
+        word-break: break-all;
+        line-height: 23px;
+        color: #909399;
+        font-weight: bold;
+        border-right: 1px solid #e4e7ed;
+    }
+    .tableBody span {
+        padding: 8px 12px;
+        display: inline-block;
+        white-space: normal;
+        word-break: break-all;
+        color: #909399;
+        border-right: 1px solid #e4e7ed;
+    }
+    .chartsDiv {
+        padding-bottom: 12px;
+        width: 100%;
+        padding-top: 12px;
+        padding-left: 12px;
+        padding-right: 12px;
+    }
     .detailModel > div {
         height: 32px;
         display: flex;

--
Gitblit v1.9.3