From b172994cb67bd03949e40dd810fffd0293054929 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 29 二月 2024 16:12:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/plan/productionschedul/index.vue |  239 +++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 143 insertions(+), 96 deletions(-)

diff --git a/src/views/plan/productionschedul/index.vue b/src/views/plan/productionschedul/index.vue
index 13e02e7..1037dd2 100644
--- a/src/views/plan/productionschedul/index.vue
+++ b/src/views/plan/productionschedul/index.vue
@@ -2,56 +2,67 @@
   <div class="mod-config">
     <basic-container>
       <el-row>
-        <el-col :span="16" style="height:100vh">
-          <el-row style="height:65%;padding:0px 10px;">
+        <el-col :span="24">
+          <el-row style="padding:0px 10px;">
             <el-col :span="24" style="margin: 0;">
               <div style="display:flex;height:36px;justify-content: space-between;align-items:center;">
-                <div><span style="color:#E84738;font-weight: bold;">鏈畬鎴�</span></div>
                 <div>
-                  <el-button @click="tagFinished" size="mini" round type="success">鏍囪宸插畬鎴�</el-button>
+                    <el-dropdown @command="changeTable">
+                        <span :style="dropdownTitleStyle" class="el-dropdown-link">
+                            {{dropdownTitle}}<i class="el-icon-arrow-down el-icon--right"></i>
+                        </span>
+                        <el-dropdown-menu slot="dropdown">
+                            <el-dropdown-item command="undone">寰呭畬鎴愯皟搴�</el-dropdown-item>
+                            <el-dropdown-item command="done">宸插畬鎴愯皟搴�</el-dropdown-item>
+                        </el-dropdown-menu>
+                    </el-dropdown>
+                </div>
+                <div>
+                  <el-button @click="tagFinished" v-if="showUnDownTable" size="mini" round type="success">鏍囪宸插畬鎴�</el-button>
                   <el-button size="mini" round type="primary"
-                  v-if="permissions.plan_productionschedul_edit_line"
+                  v-if="permissions.plan_productionschedul_edit_line && showUnDownTable"
                   @click="openEditDialog">缂栬緫鏃堕棿绾�</el-button>
                   <el-tooltip content="鍒锋柊">
                     <el-button circle icon="el-icon-refresh" @click="getDataList"></el-button>
                   </el-tooltip>
                 </div>
               </div>
+              <!-- 寰呭畬鎴愯皟搴﹁〃鏍� -->
               <avue-crud
+              v-if="showUnDownTable"
               class="unfinished-crud"
               :data="tableData"
-              ref="crud"
+              ref="unfinished"
               :option="option"
               :span-method="spanMethod"
               @refresh-change="getDataList"
               @current-change="handleCurrentChange"
               @size-change="handleSizeChange"
+              @cell-click="handleClickCell"
               :page="page"
               @selection-change="selectionRow"
               :table-loading="loading">
-              <template #menu="{ row, index }">
-                <el-button
-                v-if="permissions.plan_productionschedul_edit"
-                type="text"
-                icon="el-icon-edit"
-                size="small"
-                @click="editHandle(row, index)">缂栬緫</el-button>
-                <el-button
-                v-if="permissions.plan_productionschedul_del"
-                type="text"
-                icon="el-icon-delete"
-                size="small"
-                @click="deleteHandle(row, index)">鍒犻櫎</el-button>
-              </template>
+                <template slot="product" slot-scope="scope">
+                    <el-link type="primary">{{ scope.row.product }}</el-link>
+                </template>
+                <template #menu="{ row, index }">
+                    <el-button
+                    v-if="permissions.plan_productionschedul_edit"
+                    type="text"
+                    icon="el-icon-edit"
+                    size="small"
+                    @click="editHandle(row, index)">缂栬緫</el-button>
+                    <el-button
+                    v-if="permissions.plan_productionschedul_del"
+                    type="text"
+                    icon="el-icon-delete"
+                    size="small"
+                    @click="deleteHandle(row, index)">鍒犻櫎</el-button>
+                </template>
               </avue-crud>
-            </el-col>
-          </el-row>
-          <el-row style="height:35%;padding:0px 10px;">
-            <el-col :span="24" style="margin: 0;">
-              <div style="display:flex;height:36px;justify-content: space-between;align-items:center;">
-                <div><span style="color:#34BD66;font-weight: bold;">宸插畬鎴�</span></div>
-              </div>
+              <!-- 宸插畬鎴愯皟搴﹁〃鏍� -->
               <avue-crud
+              v-else
               class="finished-crud"
               :data="finishedTableData"
               ref="finished"
@@ -59,45 +70,20 @@
               :span-method="spanMethod"
               @refresh-change="getFinishedData"
               @current-change="handleCurrentChange"
+              @cell-click="handleClickCell"
               @size-change="handleSizeChange"
               :page="finishedPage"
               @selection-change="selectionFinishedRow">
+                <template slot="product" slot-scope="scope">
+                    <el-link type="primary">{{ scope.row.product }}</el-link>
+                </template>
               </avue-crud>
             </el-col>
           </el-row>
         </el-col>
-        <el-col :span="8" style="padding-left: 10px">
-          <div style="">
-            <el-card>
-              <div slot="header" class="clearfix">
-                <span>璋冨害鏃堕棿绾�</span>
-              </div>
-              <div style="height:100vh;overflow-y: scroll;">
-                <el-timeline>
-                    <el-timeline-item
-                      placement="top"
-                      :color="(item.planTime||item.actualTime) ? '#34BD66' :null"
-                      :icon="(item.planTime||item.actualTime) ? 'el-icon-circle-check' :null"
-                      v-for="(item, index) in scheduleList"
-                      :key="index"
-                      :timestamp="item.title">
-                        <el-card shadow="hover" :body-style="{margin: '0',padding:'0px 20px 0px 20px'}" style="width:90%;">
-                          <p>
-                            <span style="font-weight: bold;">璁″垝鏃堕棿: </span>
-                            {{item.planTime}}
-                          </p>
-                          <p>
-                            <span style="font-weight: bold;">瀹為檯鏃堕棿: </span>
-                            {{ item.actualTime }}</p>
-                        </el-card>
-                    </el-timeline-item>
-                </el-timeline>
-            </div>
-            </el-card>
-          </div>
-        </el-col>
       </el-row>
     </basic-container>
+    <!-- 缂栬緫鏃堕棿绾� -->
     <el-dialog
     title="缂栬緫鏃堕棿绾�"
     :visible.sync="dialogVisible"
@@ -147,32 +133,63 @@
         <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
         <el-button type="primary" @click="confirmEditSchedul">纭� 瀹�</el-button>
       </span>
-  </el-dialog>
-  <el-dialog
-    title="缂栬緫"
-    :visible.sync="editDialogVisible"
-    width="50%">
-    <el-form :model="editForm" label-width="120px">
-      <el-row>
-        <el-col :span="24">
-          <el-form-item label="鐢熶骇鎯呭喌:">
-            <el-input style="width:100%" placeholder="璇疯緭鍏ョ敓浜ф儏鍐�" type="textarea" :row="2" v-model="editForm.productionStatus"></el-input>
-          </el-form-item>
-        </el-col>
-      </el-row>
-      <el-row>
-        <el-col :span="24">
-          <el-form-item label="鐢熶骇绋嬪害:">
-            <el-input style="width:100%" placeholder="璇疯緭鍏ョ敓浜х▼搴�" type="textarea" :row="2" v-model="editForm.productionRoutine"></el-input>
-          </el-form-item>
-        </el-col>
-      </el-row>
-    </el-form>
-    <span slot="footer" class="dialog-footer">
-      <el-button @click="editDialogVisible = false">鍙� 娑�</el-button>
-      <el-button type="primary" @click="confirmEdit()">纭� 瀹�</el-button>
-    </span>
-  </el-dialog>
+    </el-dialog>
+    <!-- 缂栬緫鐢熶骇杩囩▼鍜岀敓浜ф儏鍐� -->
+    <el-dialog
+        title="缂栬緫"
+        :visible.sync="editDialogVisible"
+        width="50%">
+        <el-form :model="editForm" label-width="120px">
+        <el-row>
+            <el-col :span="24">
+            <el-form-item label="鐢熶骇鎯呭喌:">
+                <el-input style="width:100%" placeholder="璇疯緭鍏ョ敓浜ф儏鍐�" type="textarea" :row="2" v-model="editForm.productionStatus"></el-input>
+            </el-form-item>
+            </el-col>
+        </el-row>
+        <el-row>
+            <el-col :span="24">
+            <el-form-item label="鐢熶骇绋嬪害:">
+                <el-input style="width:100%" placeholder="璇疯緭鍏ョ敓浜х▼搴�" type="textarea" :row="2" v-model="editForm.productionRoutine"></el-input>
+            </el-form-item>
+            </el-col>
+        </el-row>
+        </el-form>
+        <span slot="footer" class="dialog-footer">
+        <el-button @click="editDialogVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="confirmEdit()">纭� 瀹�</el-button>
+        </span>
+    </el-dialog>
+    <!-- 鏌ョ湅鏃堕棿绾� -->
+    <el-dialog
+    title="鏌ョ湅璋冨害鏃堕棿绾�"
+    top="5vh"
+    :visible.sync="showTimeLineDialog"
+    width="40%">
+        <el-card>
+            <div style="height:500px;overflow-y: scroll;">
+            <el-timeline>
+                <el-timeline-item
+                    placement="top"
+                    :color="(item.actualTime) ? '#34BD66' :null"
+                    :icon="(item.actualTime) ? 'el-icon-circle-check' :null"
+                    v-for="(item, index) in scheduleList"
+                    :key="index"
+                    :timestamp="item.title">
+                    <el-card shadow="hover" :body-style="{margin: '0',padding:'0px 20px 0px 20px'}" style="width:90%;">
+                        <p>
+                        <span style="font-weight: bold;">璁″垝鏃堕棿: </span>
+                        {{item.planTime}}
+                        </p>
+                        <p>
+                        <span style="font-weight: bold;">瀹為檯鏃堕棿: </span>
+                        {{ item.actualTime }}</p>
+                    </el-card>
+                </el-timeline-item>
+            </el-timeline>
+            </div>
+        </el-card>
+    </el-dialog>
   </div>
 </template>
 
@@ -184,12 +201,20 @@
   deleteSchedul,
   updateState,
   checkTimeLines,
+  updateSchedul
 } from '@/api//plan/productionschedul'
 import ttable from '@/views/common/ztt-table.vue'
 import { mapGetters } from 'vuex'
 export default {
     data() {
     return {
+      dropdownTitleStyle: {
+        color: '#E84738',
+        fontWeight: 'bold'
+      },
+      showUnDownTable: true,
+      dropdownTitle: '寰呭畬鎴愯皟搴�',
+      showTimeLineDialog:false,
       editForm:{
         id: null,
         productionRoutine: null,
@@ -221,7 +246,7 @@
           prop:'id',
           order:'descending'
         },
-        height: 370,
+        height: 530,
         selection: true,
         columnBtn: false,
         index: true,
@@ -280,6 +305,7 @@
             prop: 'product',
             label: '浜у搧鍚�',
             overHidden: true,
+            slot: true
           },
           {
             minWidth: 120,
@@ -404,6 +430,7 @@
             prop: 'product',
             label: '浜у搧鍚�',
             overHidden: true,
+            slot: true
           },
           {
             minWidth: 120,
@@ -515,12 +542,26 @@
       }
     }
   },
-  mounted() {
-
-  },
-  beforeDestroy() {
-  },
+  mounted() {},
+  beforeDestroy() {},
   methods: {
+    handleClickCell(row, column, cell, event){
+        if(column.label === '浜у搧鍚�'){
+            this.getScheduleById(row.mid)
+            this.showTimeLineDialog = true
+        }
+    },
+    changeTable(command){
+        if(command === 'undone'){
+            this.dropdownTitle = '寰呭畬鎴愯皟搴�'
+            this.dropdownTitleStyle = {color:'#E84738',fontWeight: 'bold'}
+            this.showUnDownTable = true
+        }else if(command === 'done'){
+            this.dropdownTitle = '宸插畬鎴愯皟搴�'
+            this.dropdownTitleStyle = {color:'#34BD66',fontWeight: 'bold'}
+            this.showUnDownTable = false
+        }
+    },
     tagFinished(){
       if(this.multipleSelection.length < 1){
         this.$message.warning("璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�")
@@ -580,6 +621,7 @@
       })
     },
     confirmEditSchedul(){
+      const _than = this
       let data = this.scheduleEditList
       let mIds = this.multipleSelection.map(ele=>{
         return ele.mid
@@ -601,16 +643,15 @@
       }
       fillTime(obj).then(res=>{
         if(res.status===200){
-          this.$message.success("鏇存柊鎴愬姛")
+            _than.$message.success("鏇存柊鎴愬姛")
         }else{
-          this.$message.error("鏇存柊澶辫触")
+            _than.$message.error("鏇存柊澶辫触")
         }
-        this.getScheduleById(orderObj.id)
-        this.dialogVisible = false
+        // _than.getScheduleById(orderObj.id)
+        _than.dialogVisible = false
       }).catch(error=>{
         console.error(error);
       })
-
     },
     initTimeLine(data){
       let scheduleList = []
@@ -662,7 +703,10 @@
     },
     selectionRow(val){
       this.multipleSelection = val
-      this.getScheduleById(val[val.length-1].mid)
+    //   if(this.multipleSelection.length>0){
+    //       this.getScheduleById(val[val.length-1].mid)
+    //       this.showTimeLineDialog = true
+    //   }
     },
     selectionFinishedRow(val){
       if (val.length > 1) {
@@ -699,6 +743,9 @@
     getDataList(){
       this.getUnFinishedData()
       this.getFinishedData()
+      this.$nextTick(()=>{
+          this.rowCalc()
+      })
     },
     getUnFinishedData() {
       this.loading = true
@@ -741,7 +788,7 @@
         deleteSchedul(row.mid).then(res=>{
           if(res.status===200){
             _than.$message.success("鍒犻櫎鎴愬姛")
-            _than.getData()
+            _than.getDataList()
           }
         }).catch(error=>{
           console.error(error)

--
Gitblit v1.9.3