From 1ca3f1a1b91ddd07e1d69e046c7a4b62fa6634c4 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期二, 04 十一月 2025 14:43:56 +0800
Subject: [PATCH] 修改开发环境服务端地址

---
 src/views/mdc/first-workpiece.vue |  239 +++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 182 insertions(+), 57 deletions(-)

diff --git a/src/views/mdc/first-workpiece.vue b/src/views/mdc/first-workpiece.vue
index d7dc055..aec3104 100644
--- a/src/views/mdc/first-workpiece.vue
+++ b/src/views/mdc/first-workpiece.vue
@@ -2,7 +2,7 @@
  * @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:10:08
  * @FilePath: /smart-web/src/views/mdc/status-record.vue
  * @Description: 杩欐槸榛樿璁剧疆,璇疯缃甡customMade`, 鎵撳紑koroFileHeader鏌ョ湅閰嶇疆 杩涜璁剧疆: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 -->
@@ -10,79 +10,94 @@
     <el-main style="height: 100%;" class="timeAnalysis">
         <el-card shadow="never" style="height: 100%;" body-style="height: 100%;padding: 0;">
             <el-container style="height: 100%;">
-                <!-- <el-aside width="300px" style="height: 100%;">
-                    <el-container>
-                        <el-main style="padding: 20px;">
-                            <el-row>
-                                <el-col style="margin-bottom: 12px;">鏃ユ湡</el-col>
-                            </el-row>
-                            <el-row style="margin-top: 14px;">
-                                <MYTree getAll v-model="treeChecked" show-checkbox class="MYTree-content"></MYTree>
-                            </el-row>
-                        </el-main>
-                        <el-footer>
-                            <el-button @click="query" type="primary">鏌ヨ</el-button>
-                            <exportDialog @export="exportExcel"></exportDialog>
-                        </el-footer>
-                    </el-container>
-                </el-aside>
-                <el-container>
-                    <el-main style="position: relative;">
-                        
-                    </el-main>
-                </el-container> -->
                 <el-aside width="300px" style="height: 100%;">
                     <el-main style="border-bottom: 1px solid #ccc;">
                         <el-form ref="form" :model="searchInfo" label-width="80px">
                           <el-form-item label="闆朵欢鍙�">
-                            <el-input v-model="searchInfo.test"></el-input>
+                            <el-input v-model="searchInfo.partNo"></el-input>
                           </el-form-item>
-                          <el-form-item label="鏈哄簭鍙�">
-                            <el-input v-model="searchInfo.test"></el-input>
+                          <el-form-item label="宸ヤ綅缂栧彿">
+                            <el-input v-model="searchInfo.workstationName"></el-input>
                           </el-form-item>
                           <el-form-item label="寮�濮嬫椂闂�">
-                            <el-date-picker v-model="searchInfo.time" type="date" placeholder="閫夋嫨鏃ユ湡"></el-date-picker>
+                            <el-date-picker v-model="searchInfo.startDate" format="YYYY-MM-DD" value-format="YYYY-MM-DD" type="date" placeholder="閫夋嫨鏃ユ湡"></el-date-picker>
                           </el-form-item>
                           <el-form-item label="缁撴潫鏃堕棿">
-                            <el-date-picker v-model="searchInfo.time" type="date" placeholder="閫夋嫨鏃ユ湡"></el-date-picker>
+                            <el-date-picker v-model="searchInfo.endDate" format="YYYY-MM-DD" value-format="YYYY-MM-DD" type="date" placeholder="閫夋嫨鏃ユ湡"></el-date-picker>
                           </el-form-item>
                         </el-form>
-                        <div style="text-align: center;"><el-button type="primary">涓昏鎸夐挳</el-button></div>
+                        <div style="text-align: center;"><el-button type="primary" @click="searchBtn">鏌ヨ</el-button></div>
                     </el-main>
                     <el-main>
                         <el-radio-group v-model="tabPosition" style="margin-bottom: 12px;">
                             <el-radio-button label="璁惧缁撴瀯鏍�"></el-radio-button>
                             <el-radio-button label="闆朵欢缁撴瀯鏍�"></el-radio-button>
                         </el-radio-group>
-                        <MYTree v-model="treeChecked" show-checkbox class="MYTree-content"></MYTree>
+                        <!-- <MYTree v-model="treeChecked" show-checkbox class="MYTree-content"></MYTree> -->
                     </el-main>
                 </el-aside>
                 <el-container>
                     <el-main>
                         <el-table :data="tableData" border @selection-change="handleSelectionChange">
-                            <el-table-column type="selection" width="55"></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="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-column type="selection" width="55" fixed></el-table-column>
+                            <el-table-column prop="index" label="搴忓彿" width="60" fixed></el-table-column>
+                            <el-table-column prop="partNo" label="闆朵欢鍙�" width="80" fixed></el-table-column>
+                            <el-table-column prop="processNo" label="宸ュ簭鍙�" width="80"></el-table-column>
+                            <el-table-column prop="version" label="鐗堟" width="60"></el-table-column>
+                            <el-table-column prop="workstationName" label="宸ヤ綅" width="100"></el-table-column>
+                            <el-table-column prop="startTime" label="寮�濮嬫椂闂�" width="145"></el-table-column>
+                            <el-table-column prop="endTime" label="缁撴潫鏃堕棿" width="145"></el-table-column>
+                            <el-table-column prop="occupancySecs" label="鍗犳満鏃堕棿" width="100">
+                                <template #default="scope">
+                                    {{ convertSeconds(scope.row.occupancySecs || 0) }}
+                                </template>
+                            </el-table-column>
+                            <el-table-column prop="clampingSecs" label="瑁呭す璋冭瘯鏃堕棿" width="100">
+                                 <template #default="scope">
+                                    {{ convertSeconds(scope.row.clampingSecs || 0) }}
+                                </template>
+                            </el-table-column>
+                            <el-table-column prop="firstWorkingSecs" label="棣栦欢鍒囧墛鏃堕棿" width="100">
+                                <template #default="scope">
+                                    {{ convertSeconds(scope.row.firstWorkingSecs || 0) }}
+                                </template>
+                            </el-table-column>
+                            <el-table-column prop="firstMeasureSecs" label="棣栦欢璁¢噺鏃堕棿" width="100">
+                                <template #default="scope">
+                                    {{ convertSeconds(scope.row.firstMeasureSecs || 0) }}
+                                </template>
+                            </el-table-column>
+                            <el-table-column prop="lastRemoveSecs" label="鏈欢鎷嗗嵏鏃堕棿" width="100">
+                                <template #default="scope">
+                                    {{ convertSeconds(scope.row.lastRemoveSecs || 0) }}
+                                </template>
+                            </el-table-column>
+                            <el-table-column prop="processingSecs" label="鍔犲伐鏃堕棿" width="80">
+                                <template #default="scope">
+                                    {{ convertSeconds(scope.row.processingSecs || 0) }}
+                                </template>
+                            </el-table-column>
+                            <el-table-column prop="prepareSecs" label="鍑嗗鏃堕棿" width="80">
+                                <template #default="scope">
+                                    {{ convertSeconds(scope.row.prepareSecs || 0) }}
+                                </template>
+                            </el-table-column>
+                            <el-table-column prop="singleProcessSecs" label="鍗曚欢宸ユ椂" width="80">
+                                <template #default="scope">
+                                    {{ convertSeconds(scope.row.singleProcessSecs || 0) }}
+                                </template>
+                            </el-table-column>
+                            <el-table-column prop="amount" label="鏁伴噺" width="60"></el-table-column>
+                            <el-table-column label="鎿嶄綔" width="100">
+                                <template #default="scope">
+                                    <el-button type="primary" @click="exportBtn(scope)">杈撳嚭</el-button>
+                                </template>
+                            </el-table-column>
                         </el-table>
+                        <el-pagination background layout="total, prev, pager, next" :total="total" style="margin-top: 12px;" @current-change="handleCurrentChange"></el-pagination>
                     </el-main>
                     <el-footer>
                         <el-button type="primary" @click="goFirstWorkDetail">璇︽儏</el-button>
-                        <el-button type="primary">杈撳嚭</el-button>
                     </el-footer>
                 </el-container>
             </el-container>
@@ -105,28 +120,138 @@
     data() {
         return {
             searchInfo: {
-                test: "",
-                time: ""
+              "endDate": "",
+              "partNo": "",
+              "startDate": "",
+              "workstationName": ""
             },
             tabPosition: "璁惧缁撴瀯鏍�",
             tableData: [],
-            treeChecked: []
+            treeChecked: [],
+            ids: [],
+            total: 0,
+            current: 1,
+            size: 20
         }
     },
     created() {
-        var obj = {test:1}
-        for(var i=0;i<10;i++) {
-            this.tableData.push(obj);
-        }
+        // var obj = {test:1}
+        // for(var i=0;i<10;i++) {
+        //     this.tableData.push(obj);
+        // }
     },
     mounted() {
+        this.setDate();  //璁剧疆寮�濮嬶紝缁撴潫鏃ユ湡
+        this.getTableData();
     },
     methods: {
+        exportBtn(scope) {
+            this.$HTTP.get(`/api/workinghour/export?id=${scope.row.id}`).then(res => {
+                if (res.code == 200) {
+                    this.$TOOL.downFile(res.data.link,res.data.originalName);
+                }
+            })
+        },
+        setDate() {
+            var date = new Date();
+            var threeDaysInMilliseconds = 3 * 24 * 60 * 60 * 1000;
+            var threeDaysAgo = new Date(date.getTime() - threeDaysInMilliseconds);
+
+            // 杈呭姪鍑芥暟锛岀敤浜庡皢鏁板瓧鏍煎紡鍖栦负涓や綅鏁�
+            function padZero(num) {
+                return num < 10 ? '0' + num : num;
+            }
+
+            // 鏋勫缓褰撳墠鏃ユ湡鐨勫瓧绗︿覆
+            var currentYear = date.getFullYear();
+            var currentMonth = padZero(date.getMonth() + 1); // 鏈堜唤浠�0寮�濮嬶紝鎵�浠ラ渶瑕佸姞1
+            var currentDay = padZero(date.getDate());
+            this.searchInfo.endDate = currentYear + '-' + currentMonth + '-' + currentDay;
+
+            // 鏋勫缓涓夊ぉ鍓嶆棩鏈熺殑瀛楃涓�
+            var previousYear = threeDaysAgo.getFullYear();
+            var previousMonth = padZero(threeDaysAgo.getMonth() + 1);
+            var previousDay = padZero(threeDaysAgo.getDate());
+            this.searchInfo.startDate = previousYear + '-' + previousMonth + '-' + previousDay;
+        },
+        handleCurrentChange(val) {
+            this.current = val;
+            this.getTableData();
+        },
+        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(' ');
+        },
+        changeStartDate(val) {
+        },
+        searchBtn() {
+            if(!this.searchInfo.startDate || !this.searchInfo.endDate) {
+                this.$message.error('閫夋嫨寮�濮嬨�佺粨鏉熸椂闂存煡璇�');
+                return;
+            }
+            this.getTableData();
+        },
+        getTableData() {
+            this.$HTTP.post(`/api/workinghour/page?current=${this.current}&size=${this.size}`, this.searchInfo).then(res => {
+                if (res.code === 200) {
+                    res.data.records.forEach((item,index)=> {
+                        item.index = index + 1;
+                    })
+                    this.tableData = res.data.records;
+                    this.total = res.data.total;
+                }
+            })
+        },
         goFirstWorkDetail() {
-            this.$router.push({path: `/mdc/first-workpiece-detail`,query: {id:1}})
+            if(this.ids.length == 0) {
+                this.$message.error("璇峰厛閫夋嫨鏁版嵁");
+                return;
+            }
+            this.$router.push({path: `/mdc/first-workpiece-detail`,query: {ids: this.ids.join(',')}})
         },
         handleSelectionChange(val) {
-            console.log(val);
+            this.ids = [];
+            val.forEach(item=> {
+                this.ids.push(item.id);
+            })
         },
         query() {
             

--
Gitblit v1.9.3