From 9a0e4f1641f41a3dc1df4453ad416fb1522bd2ea Mon Sep 17 00:00:00 2001
From: 王震 <10952869+daywangzhen@user.noreply.gitee.com>
Date: 星期四, 18 一月 2024 17:30:49 +0800
Subject: [PATCH] 	modified:   src/page/wel.vue 	modified:   src/views/quality/rawMaterial/rawMaterial-form.vue

---
 src/views/plan/productionschedul/index.vue |  266 ++++++++++++++++++++++++++--------------------------
 1 files changed, 134 insertions(+), 132 deletions(-)

diff --git a/src/views/plan/productionschedul/index.vue b/src/views/plan/productionschedul/index.vue
index ecf9c7a..4f05a4f 100644
--- a/src/views/plan/productionschedul/index.vue
+++ b/src/views/plan/productionschedul/index.vue
@@ -2,83 +2,90 @@
   <div class="mod-config">
     <basic-container>
       <el-row>
-        <el-col :span="14">
-          <el-row>
-            <el-col :span="24">
-              <div style="height:40vh;padding: 0px 10px;">
-                <span style="position: relative;top:40px;">鏈畬鎴�</span>
-                <span style="position: relative;top:30px;left:60%;z-index: 11">
-                  <el-button @click="tagFinished" size="mini" round type="primary">鏍囪宸插畬鎴�</el-button>
+        <el-col :span="16" style="height:100vh">
+          <el-row style="height:65%;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-button size="mini" round type="primary"
-                  v-if="permissions.plan_productionschedul_edit_line" 
+                  v-if="permissions.plan_productionschedul_edit_line"
                   @click="openEditDialog">缂栬緫鏃堕棿绾�</el-button>
-                </span>
-                <avue-crud 
-                :data="tableData" 
-                ref="crud" 
-                :option="option" 
-                :span-method="spanMethod" 
-                @refresh-change="getUnFinishedData"
-                @current-change="handleCurrentChange"
-                @size-change="handleSizeChange"
-                :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>
-                </avue-crud>
+                  <el-tooltip content="鍒锋柊">
+                    <el-button circle icon="el-icon-refresh" @click="getDataList"></el-button>
+                  </el-tooltip>
+                </div>
               </div>
+              <avue-crud
+              class="unfinished-crud"
+              :data="tableData"
+              ref="crud"
+              :option="option"
+              :span-method="spanMethod"
+              @refresh-change="getDataList"
+              @current-change="handleCurrentChange"
+              @size-change="handleSizeChange"
+              :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>
+              </avue-crud>
             </el-col>
           </el-row>
-          <el-row>
-            <el-col :span="24">
-              <div style="height:40vh;padding: 0px 10px;">
-                <span style="position: relative;top:40px">宸插畬鎴�</span>
-                <avue-crud 
-                :data="finishedTableData" 
-                ref="finished" 
-                :option="finishedOption" 
-                :span-method="spanMethod" 
-                @refresh-change="getFinishedData"
-                @current-change="handleCurrentChange"
-                @size-change="handleSizeChange"
-                :page="finishedPage" 
-                @selection-change="selectionFinishedRow">
-                <!-- <template #menu="{ row, index }">
-                  <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-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
+              class="finished-crud"
+              :data="finishedTableData"
+              ref="finished"
+              :option="finishedOption"
+              :span-method="spanMethod"
+              @refresh-change="getFinishedData"
+              @current-change="handleCurrentChange"
+              @size-change="handleSizeChange"
+              :page="finishedPage"
+              @selection-change="selectionFinishedRow">
+              <!-- <template #menu="{ row, index }">
+                <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-col>
-        <el-col :span="10" style="padding-left: 10px">
+        <el-col :span="8" style="padding-left: 10px">
           <div style="">
             <el-card>
               <div slot="header" class="clearfix">
                 <span>璋冨害鏃堕棿绾�</span>
               </div>
-              <div style="height:70vh;overflow-y: scroll;">
+              <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">
@@ -122,7 +129,7 @@
                       style="width:100%"
                       v-model="item.planTime"
                       value-format="yyyy-MM-dd HH:mm:ss"
-                      type="datetime" 
+                      type="datetime"
                       placeholder="閫夋嫨鏃ユ湡鏃堕棿">
                     </el-date-picker>
                   </el-col>
@@ -136,7 +143,7 @@
                       style="width:100%"
                       v-model="item.actualTime"
                       value-format="yyyy-MM-dd HH:mm:ss"
-                      type="datetime" 
+                      type="datetime"
                       placeholder="閫夋嫨鏃ユ湡鏃堕棿">
                     </el-date-picker>
                   </el-col>
@@ -185,6 +192,7 @@
   fillTime,
   deleteSchedul,
   updateState,
+  checkTimeLines,
 } from '@/api//plan/productionschedul'
 import ttable from '@/views/common/ztt-table.vue'
 import { mapGetters } from 'vuex'
@@ -222,7 +230,7 @@
           prop:'id',
           order:'descending'
         },
-        height: 200,
+        height: 370,
         selection: true,
         columnBtn: false,
         index: true,
@@ -332,7 +340,7 @@
           prop:'id',
           order:'descending'
         },
-        height: 180,
+        height: 230,
         selection: true,
         columnBtn: false,
         index: true,
@@ -446,7 +454,7 @@
       }, {
         prop: 'contractNo',
         span: []
-      }, 
+      },
       {
         prop: 'orderTime',
         span: []
@@ -496,6 +504,11 @@
           productionStatus: null,
         }
       }
+    },
+    multipleSelection(newVal){
+      if(newVal.length==0){
+        this.scheduleList = []
+      }
     }
   },
   mounted() {
@@ -506,7 +519,7 @@
   methods: {
     tagFinished(){
       if(this.multipleSelection.length < 1){
-        this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�")
+        this.$message.warning("璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�")
         return
       }
       let ids = this.multipleSelection.map(ele=>{
@@ -544,15 +557,29 @@
     },
     openEditDialog(){
       if(this.multipleSelection.length<1){
-        this.$message.error("璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�")
+        this.$message.warning("璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�")
         return
       }
-      this.scheduleEditList = JSON.parse(JSON.stringify(this.scheduleList))
-      this.dialogVisible = true
+      let mIds = this.multipleSelection.map(ele=>{
+        return ele.mid
+      })
+      checkTimeLines(mIds).then(res=>{
+        if(res.data.data.length==1){
+          let dataList = this.initTimeLine(res.data.data[0])
+          this.scheduleEditList = dataList
+          this.dialogVisible = true
+        }else{
+          this.$message.error("閫変腑鏁版嵁鐨勮皟搴︽椂闂寸嚎涓嶄竴鑷�!")
+        }
+      }).catch(error=>{
+        console.error(error);
+      })
     },
     confirmEditSchedul(){
       let data = this.scheduleEditList
-      let orderObj = this.multipleSelection[0]
+      let mIds = this.multipleSelection.map(ele=>{
+        return ele.mid
+      })
       let obj = {
         "documentActualTime": data[0].actualTime,
         "documentPlanTime": data[0].planTime,
@@ -566,13 +593,13 @@
         "checkPlanTime": data[4].planTime,
         "productActualTime": data[5].actualTime,
         "productPlanTime": data[5].planTime,
-        "id": orderObj.id,
-        "contractNo": orderObj.contractNo,
-        "customerName": orderObj.customerName,
-        "deliveryDate": orderObj.deliveryDate,
-        "orderTime": orderObj.orderTime,
-        "productType": orderObj.productType,
-        "projectName": orderObj.projectName
+        "mids": mIds,
+        // "contractNo": orderObj.contractNo,
+        // "customerName": orderObj.customerName,
+        // "deliveryDate": orderObj.deliveryDate,
+        // "orderTime": orderObj.orderTime,
+        // "productType": orderObj.productType,
+        // "projectName": orderObj.projectName
       }
       fillTime(obj).then(res=>{
         if(res.status===200){
@@ -583,7 +610,7 @@
         this.getScheduleById(orderObj.id)
         this.dialogVisible = false
       }).catch(error=>{
-        console.log(error);
+        console.error(error);
       })
 
     },
@@ -591,7 +618,7 @@
       done()
     },
     initTimeLine(data){
-      this.scheduleList = []
+      let scheduleList = []
       if(data){
         let arr = [
           {
@@ -625,31 +652,31 @@
             planTime: data.productPlanTime,
           },
         ]
-        this.scheduleList = arr
+        scheduleList = arr
+        return scheduleList
       }
     },
     getScheduleById(id){
       if(id){
         fetchScheduleById(id).then(res=>{
-          this.initTimeLine(res.data.data)
+          this.scheduleList = this.initTimeLine(res.data.data)
         }).catch(error=>{
-          console.log(error);
+          console.error(error);
         })
       }
     },
     selectionRow(val){
-      // if (val.length > 1) {
-      //   const preVal = val.shift();
-      //   this.$refs.crud.toggleRowSelection(preVal, false);
-      // }
-      // else{
-      //   this.scheduleList=[]
-      // }
+      if (val.length > 1) {
+        const preVal = val.shift();
+        this.$refs.crud.toggleRowSelection(preVal, false);
+      }
+      else{
+        this.scheduleList=[]
+      }
       this.multipleSelection = val
-      // this.getScheduleById(val[0].id)
+      this.getScheduleById(val[0].mid)
     },
     selectionFinishedRow(val){
-      console.log(val);
       if (val.length > 1) {
         const preVal = val.shift();
         this.$refs.finished.toggleRowSelection(preVal, false);
@@ -681,6 +708,10 @@
       }
     },
     // 鑾峰彇鏁版嵁鍒楄〃
+    getDataList(){
+      this.getUnFinishedData()
+      this.getFinishedData()
+    },
     getUnFinishedData() {
       this.loading = true
       let param = {
@@ -714,7 +745,7 @@
     // 鍒犻櫎
     deleteHandle(row,index) {
       const _than = this
-      _than.$confirm('鏄惁纭鍒犻櫎', '鎻愮ず', {
+      _than.$confirm('鏄惁纭鍒犻櫎璇ョ敓浜ц皟搴︿俊鎭�', '鎻愮ず', {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
         type: 'warning'
@@ -797,51 +828,22 @@
 }
 </script>
 <style>
-.avue-crud__tip{
+.unfinished-crud .avue-crud__tip{
+  display: none;
+}
+.unfinished-crud .avue-crud__menu{
+  display: none;
+}
+.finished-crud .avue-crud__tip{
+  display: none;
+}
+.finished-crud .avue-crud__menu{
   display: none;
 }
 .avue-crud__pagination {
     position: relative;
-    padding: 5px 0 20px 20px;
+    padding: 0px 0 0px 20px;
     text-align: right;
     z-index: 10;
-}
-.basic-template-table .el-table__body .el-table__row td:first-child .cell {
-  padding-left: 0px;
-  padding-right: 0px;
-}
-
-.basic-template-table .el-table__body .el-table__row:hover {
-  cursor: move;
-}
-
-.basic-template-table .el-table__body .el-table__row:hover .icon {
-  display: inline-block;
-}
-
-.basic-template-table .el-table__body .el-table__row .icon {
-  color: rgba(0, 0, 0, 0.45);
-  font-size: 12px;
-  line-height: 18px;
-  display: none;
-}
-
-.aufontAll {
-  font-family: aufontAll !important;
-  font-size: 14px;
-  font-style: normal;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-
-.h-icon-all-drag {
-  background: url('/img/tz.png') center center no-repeat;
-  background-size: cover;
-  font-size: 14px;
-}
-.h-icon-all-drag:before {
-  content: '\E63E';
-  font-size: 14px;
-  visibility: hidden;
 }
 </style>

--
Gitblit v1.9.3