From 41e0df8413624e6034c967f3afae30da59370879 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期一, 11 十二月 2023 16:20:15 +0800
Subject: [PATCH] 	modified:   src/components/verifition/Verify/VerifyPoints.vue 	modified:   src/const/crud/admin/sys-public-param.js 	modified:   src/page/full-screen/fullScreenPlus.vue 	modified:   src/page/index/logo.vue 	modified:   src/page/index/sidebar/sidebarItem.vue 	modified:   src/page/login/index.vue 	modified:   src/page/login/thirdpartylogin.vue 	modified:   src/util/elAttr.js 	modified:   src/views/accounting/unitworkfactor/unitworkfactor-form.vue 	modified:   src/views/accounting/unitworkfactor/updateQuota-form.vue 	modified:   src/views/basic/discmaintenance/discmaintenance-form.vue 	modified:   src/views/basic/log/index.vue 	modified:   src/views/basic/part/part-form.vue 	modified:   src/views/basic/part/print-label-form.vue 	modified:   src/views/basic/poc/index.vue 	modified:   src/views/basic/tabletest/index.vue 	modified:   src/views/basic/template/index.vue 	modified:   src/views/basic/template/template-form.vue 	modified:   src/views/basic/workstation/workstation-form.vue 	modified:   src/views/common/custom-table.vue 	modified:   src/views/common/documentDetail.vue 	modified:   src/views/common/operationParamTemplate.vue 	modified:   src/views/common/rawMaterial-part.vue 	modified:   src/views/common/search-select.vue 	modified:   src/views/common/ztt-table.vue 	modified:   src/views/huawei/code19bind/list.vue 	modified:   src/views/huawei/code19gen/form.vue 	modified:   src/views/huawei/grossweightcode/list.vue 	modified:   src/views/huawei/grossweightcode/task-secret-form.vue 	modified:   src/views/oa/JiegouModal.vue 	modified:   src/views/oa/PeizhiModal.vue 	modified:   src/views/oa/technology-document-new.vue 	modified:   src/views/oa/technology-document.vue 	modified:   src/views/plan/customer/index.vue 	modified:   src/views/plan/customerorder/confirm-pull-customerorder.vue 	modified:   src/views/plan/customerorder/customerorder-config-history.vue 	modified:   src/views/plan/customerorder/customerorder-form.vue 	modified:   src/views/plan/customerorder/customerorder-return.vue 	modified:   src/views/plan/customerorder/customerorder-ztt-table.vue 	modified:   src/views/plan/customerorder/index.vue 	modified:   src/views/plan/customerorder/other-customer-order-line.vue 	modified:   src/views/plan/customerorder/sample-customerorder-form.vue 	modified:   src/views/plan/customerorder/schedule-table.vue 	modified:   src/views/plan/manufacturingorder/auto-operationtask.vue 	modified:   src/views/plan/manufacturingorder/customerorder.vue 	modified:   src/views/plan/manufacturingorder/customize-param-template.vue 	modified:   src/views/plan/manufacturingorder/order-operation-form.vue 	modified:   src/views/plan/manufacturingorder/productorder-form.vue 	modified:   src/views/plan/manufacturingorderapply/index.vue 	modified:   src/views/plan/masterproductionschedule/auto-manufacturingorder.vue 	modified:   src/views/plan/operationtask/gantt.vue 	modified:   src/views/plan/operationtask/operationtask-form.vue 	modified:   src/views/plan/operationtask/task-material.vue 	modified:   src/views/plan/productionschedul/index.vue 	modified:   src/views/plan/productionschedul/template-form.vue 	modified:   src/views/plan/schedule/gantt.vue 	modified:   src/views/plan/schedulelookover/ganttview.vue 	modified:   src/views/plan/segmentmerge/index.vue 	modified:   src/views/plan/segmentmerge/operate-dialog.vue 	modified:   src/views/plan/segmentmerge/operation-technology-form.vue 	modified:   src/views/product/dutyrecord/index.vue 	modified:   src/views/product/producttraceability/index.vue 	modified:   src/views/product/producttraceability/traceability-diagram.vue 	modified:   src/views/product/workbench/batchproductout-form-new.vue 	modified:   src/views/product/workbench/batchproductout-form.vue 	modified:   src/views/product/workbench/feed-form.vue 	modified:   src/views/product/workbench/feed-pane.vue 	modified:   src/views/product/workbench/feed-tab.vue 	modified:   src/views/product/workbench/handymantype.vue 	modified:   src/views/product/workbench/index.vue 	modified:   src/views/product/workbench/mould-pane.vue 	modified:   src/views/product/workbench/operation-task-pane.vue 	modified:   src/views/product/workbench/product-record-form.vue 	modified:   src/views/product/workbench/productout-form-by-batch.vue 	modified:   src/views/product/workbench/productout-form.vue 	modified:   src/views/product/workbench/productrecord-tab.vue 	modified:   src/views/product/workbench/producttracking-tab.vue 	modified:   src/views/product/workbench/shift-productout-form.vue 	modified:   src/views/product/workbench/splitTaskForm.vue 	modified:   src/views/product/workbench/taskinfo-pane.vue 	modified:   src/views/quality/Packaging_ledger/pack-from.vue 	modified:   src/views/quality/apply/index.vue 	modified:   src/views/quality/exception/exception.vue 	modified:   src/views/quality/exception/index.vue 	modified:   src/views/quality/finishedProductInspection/finishedProduct-form.vue 	modified:   src/views/quality/finishedProductInspection/finishedProduct-print.vue 	modified:   src/views/quality/finishedProductInspection/finishedProducter-print.vue 	modified:   src/views/quality/finishedProductInspection/index.vue 	modified:   src/views/quality/newReport/ReportForm.vue 	modified:   src/views/quality/processInspect/index.vue 	modified:   src/views/quality/processInspect/processInspect-form.vue 	modified:   src/views/quality/processconfiguration/index.vue 	modified:   src/views/quality/processconfiguration/table-form.vue 	modified:   src/views/quality/rawMaterial/QrcodeReader.vue 	modified:   src/views/quality/rawMaterial/index.vue 	modified:   src/views/quality/rawMaterial/rawMaterial-form.vue 	modified:   src/views/quality/report/index.vue 	modified:   src/views/quality/standardbind/standardbind-form.vue 	modified:   src/views/quality/statistics/rateChart.vue 	modified:   src/views/quality/testitemlayout/index.vue 	modified:   src/views/quality/testplan/testplan-form.vue 	modified:   src/views/quality/unqualifiedprocess/examineApproveform.vue 	modified:   src/views/quality/unqualifiedprocess/index.vue 	modified:   src/views/quality/unqualifiedprocess/loaction-form.vue 	modified:   src/views/quality/unqualifiedprocess/unqualifiedprocessform.vue 	modified:   src/views/technology/completeproductstructure/completeproductstructure-form.vue 	modified:   src/views/technology/document/checkStandardTable.vue 	modified:   src/views/technology/document/document-form.vue 	modified:   src/views/technology/document/extendsOperation.vue 	modified:   src/views/technology/document/extendsTestStandard.vue 	modified:   src/views/technology/document/extendsTestStandardParam.vue 	modified:   src/views/technology/document/teststandard.vue 	modified:   src/views/technology/structure/single-structure-form.vue 	modified:   src/views/warehouse/changestock/index.vue 	modified:   src/views/warehouse/check/check-detail.vue 	modified:   src/views/warehouse/pallettransports/ifslocation-form.vue 	modified:   src/views/warehouse/pallettransports/ifsstock-form.vue 	modified:   src/views/warehouse/pallettransports/index.vue 	modified:   src/views/warehouse/returnstock/ifslocation-form.vue 	modified:   src/views/warehouse/returnstock/index.vue 	modified:   src/views/warehouse/returnstock/returnstock-form.vue 	modified:   src/views/warehouse/returnstock/stock-part.vue 	modified:   src/views/warehouse/stock/print-label-form.vue 	modified:   src/views/warehouse/stock/small-print-label-form.vue 	modified:   src/views/warehouse/stock/small-warehousing-label-form.vue 	modified:   src/views/warehouse/stock/stock-table.vue 	modified:   src/views/warehouse/stock/warehousing-label-form.vue 	modified:   src/views/zte/pkgidbind/index.vue

---
 src/views/plan/productionschedul/index.vue |  209 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 194 insertions(+), 15 deletions(-)

diff --git a/src/views/plan/productionschedul/index.vue b/src/views/plan/productionschedul/index.vue
index 0775072..b76fe0c 100644
--- a/src/views/plan/productionschedul/index.vue
+++ b/src/views/plan/productionschedul/index.vue
@@ -3,13 +3,14 @@
     <basic-container>
       <el-row>
         <el-col :span="12">
-          <div style="height:80vh">
+          <div style="height:80vh;padding: 0px 10px;">
             <avue-crud :data="tableData" ref="crud" :option="option" :span-method="spanMethod" 
             @refresh-change="getData"
             :page="page" 
             @selection-change="selectionRow"
             :table-loading="loading">
             <template #menu="{ row, index }">
+              <el-button type="text" icon="el-icon-edit" size="small" @click="editHandle(row, index)">缂栬緫</el-button>
               <el-button type="text" icon="el-icon-delete" size="small" @click="deleteHandle(row, index)">鍒犻櫎</el-button>
             </template>
           </avue-crud>
@@ -20,7 +21,7 @@
             <el-card>
               <div slot="header" class="clearfix">
                 <span>璋冨害鏃堕棿绾�</span>
-                <el-button style="float: right; padding: 3px 0" type="text">鎿嶄綔鎸夐挳</el-button>
+                <el-button v-if="scheduleList.length>0" @click="openEditDialog" style="float: right; padding: 3px 0" type="text">缂栬緫</el-button>
               </div>
               <div style="height:70vh;overflow-y: scroll;">
                 <el-timeline>
@@ -28,10 +29,15 @@
                       placement="top"
                       v-for="(item, index) in scheduleList"
                       :key="index"
-                      :timestamp="item.planTime">
-                        <el-card style="width:95%;margin: 0;padding: 0px 10px;">
-                          <p style="font-weight: bold;">{{item.title}}</p>
-                          <p>瀹為檯鏃堕棿: {{ item.actualTime }}</p>
+                      :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>
@@ -41,6 +47,82 @@
         </el-col>
       </el-row>
     </basic-container>
+    <el-dialog
+    title="缂栬緫鏃堕棿绾�"
+    :visible.sync="dialogVisible"
+    top="5vh"
+    width="50%"
+    :before-close="handleClose">
+      <div style="height:60vh;overflow-y: scroll;">
+        <el-timeline>
+          <el-timeline-item
+            placement="top"
+            v-for="(item, index) in scheduleEditList"
+            :key="index"
+            :timestamp="item.title">
+              <el-card shadow="hover" style="width:90%" :body-style="{padding:'20px 20px 5px 20px'}">
+                <el-row>
+                  <el-col :span="3">
+                    <p style="font-weight: bold;line-height: 50%;">璁″垝鏃堕棿: </p>
+                  </el-col>
+                  <el-col :span="21">
+                    <el-date-picker
+                      style="width:100%"
+                      v-model="item.planTime"
+                      value-format="yyyy-MM-dd HH:mm:ss"
+                      type="datetime" 
+                      placeholder="閫夋嫨鏃ユ湡鏃堕棿">
+                    </el-date-picker>
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="3">
+                    <p style="font-weight: bold;line-height: 50%;">瀹為檯鏃堕棿: </p>
+                  </el-col>
+                  <el-col :span="21">
+                    <el-date-picker
+                      style="width:100%"
+                      v-model="item.actualTime"
+                      value-format="yyyy-MM-dd HH:mm:ss"
+                      type="datetime" 
+                      placeholder="閫夋嫨鏃ユ湡鏃堕棿">
+                    </el-date-picker>
+                  </el-col>
+                </el-row>
+              </el-card>
+          </el-timeline-item>
+        </el-timeline>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <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>
   </div>
 </template>
 
@@ -48,6 +130,9 @@
 import {
   fetchScheduleList,
   fetchScheduleById,
+  fillTime,
+  deleteSchedul,
+  updateSchedul
 } from '@/api//plan/productionschedul'
 import TableForm from './template-form'
 import ttable from '@/views/common/ztt-table.vue'
@@ -55,7 +140,15 @@
 export default {
     data() {
     return {
+      editForm:{
+        id: null,
+        productionRoutine: null,
+        productionStatus: null,
+      },
+      editDialogVisible: false,
+      dialogVisible: false,
       scheduleList: [],
+      scheduleEditList: [],
       typeOptions: [],
       multipleSelection: [],
       loading: true,
@@ -70,10 +163,12 @@
         selection: true,
         columnBtn: false,
         index: true,
-        rowKey: 'product',
+        indexFixed: false,
+        selectionFixed: false,
+        rowKey: 'mid',
         indexLabel: '搴忓彿',
         menuAlign: 'center',
-        menuWidth: 100,
+        menuWidth: 130,
         editBtn: false,
         delBtn: false,
         addBtn: false,
@@ -213,7 +308,15 @@
     this.rowCalc()
   },
   watch:{
-
+    editDialogVisible(newVal){
+      if(!newVal){
+        this.editForm = {
+          id: null,
+          productionRoutine: null,
+          productionStatus: null,
+        }
+      }
+    }
   },
   mounted() {
 
@@ -221,6 +324,70 @@
   beforeDestroy() {
   },
   methods: {
+    confirmEdit(){
+      const _than = this
+      updateSchedul(this.editForm).then(res=>{
+        if(res.status===200){
+          _than.$message.success("鏇存柊鎴愬姛")
+          _than.editDialogVisible = false
+          _than.getData()
+        }
+      }).catch(error=>{
+        console.error(error);
+      })
+    },
+    editHandle(row,index){
+      if(row){
+        this.editForm.id = row.mid
+        this.editForm.productionRoutine = row.productionRoutine
+        this.editForm.productionStatus = row.productionStatus
+        this.editDialogVisible = true
+      }
+    },
+    openEditDialog(){
+      this.scheduleEditList = JSON.parse(JSON.stringify(this.scheduleList))
+      this.dialogVisible = true
+    },
+    confirmEditSchedul(){
+      let data = this.scheduleEditList
+      let orderObj = this.multipleSelection[0]
+      let obj = {
+        "documentActualTime": data[0].actualTime,
+        "documentPlanTime": data[0].planTime,
+        "bomActualTime": data[1].actualTime,
+        "bomPlanTime": data[1].planTime,
+        "contractActualTime": data[2].actualTime,
+        "contractPlanTime": data[2].planTime,
+        "arrivalActualTime": data[3].actualTime,
+        "arrivalPlanTime": data[3].planTime,
+        "checkActualTime": data[4].actualTime,
+        "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
+      }
+      fillTime(obj).then(res=>{
+        if(res.status===200){
+          this.$message.success("鏇存柊鎴愬姛")
+        }else{
+          this.$message.error("鏇存柊澶辫触")
+        }
+        this.getScheduleById(orderObj.id)
+        this.dialogVisible = false
+      }).catch(error=>{
+        console.log(error);
+      })
+
+    },
+    handleClose(done){
+      done()
+    },
     initTimeLine(data){
       this.scheduleList = []
       if(data){
@@ -270,10 +437,14 @@
     },
     selectionRow(val){
       if (val.length > 1) {
-         const preVal = val.shift();
-         this.$refs.crud.toggleRowSelection(preVal, false);
-       }
-       this.getScheduleById(val[0].id)
+        const preVal = val.shift();
+        this.$refs.crud.toggleRowSelection(preVal, false);
+      }
+      else{
+        this.scheduleList=[]
+      }
+      this.multipleSelection = val
+      this.getScheduleById(val[0].id)
     },
     formatDate(row, cellValue){
       if (cellValue) {
@@ -304,12 +475,20 @@
     },
     // 鍒犻櫎
     deleteHandle(row,index) {
-      this.$confirm('鏄惁纭鍒犻櫎', '鎻愮ず', {
+      const _than = this
+      _than.$confirm('鏄惁纭鍒犻櫎', '鎻愮ず', {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
         type: 'warning'
       }).then(function() {
-
+        deleteSchedul(row.mid).then(res=>{
+          if(res.status===200){
+            _than.$message.success("鍒犻櫎鎴愬姛")
+            _than.getData()
+          }
+        }).catch(error=>{
+          console.error(error)
+        })
       })
     },
     //鍔ㄦ�佸悎骞舵柟娉�

--
Gitblit v1.9.3