From a48ded866d223f581944ea9043df1b296b3425e3 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期四, 21 十二月 2023 13:17:46 +0800
Subject: [PATCH] 	modified:   src/views/basic/company/index.vue 	modified:   src/views/basic/customizeparamtemplatetype/index.vue 	modified:   src/views/basic/division/index.vue 	modified:   src/views/basic/factory/index.vue 	modified:   src/views/basic/location/index.vue 	modified:   src/views/basic/param/index.vue 	modified:   src/views/basic/part/index.vue 	modified:   src/views/basic/post/index.vue 	modified:   src/views/basic/shift/index.vue 	modified:   src/views/basic/staff/index.vue 	modified:   src/views/basic/template/index.vue 	modified:   src/views/basic/warehouse/index.vue 	modified:   src/views/basic/workstation/index.vue 	modified:   src/views/plan/manufacturingorder/index.vue 	modified:   src/views/plan/masterproductionschedule/index.vue 	modified:   src/views/plan/operationtask/index.vue 	modified:   src/views/plan/productionschedul/index.vue 	modified:   src/views/quality/finishedProductInspection/index.vue 	modified:   src/views/quality/rawMaterial/index.vue 	modified:   src/views/technology/completeproductstructure/index.vue 	modified:   src/views/technology/document/index.vue 	modified:   src/views/technology/operation/index.vue 	modified:   src/views/technology/routing/index.vue 	modified:   src/views/technology/structure/index.vue 	modified:   src/views/warehouse/FinishedWarehousing/index.vue 	modified:   src/views/warehouse/changestock/index.vue 	modified:   src/views/warehouse/pallettransports/index.vue

---
 src/views/plan/productionschedul/index.vue |  152 +++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 129 insertions(+), 23 deletions(-)

diff --git a/src/views/plan/productionschedul/index.vue b/src/views/plan/productionschedul/index.vue
index 3a03c19..8ff933b 100644
--- a/src/views/plan/productionschedul/index.vue
+++ b/src/views/plan/productionschedul/index.vue
@@ -4,13 +4,30 @@
       <el-row>
         <el-col :span="12">
           <div style="height:80vh;padding: 0px 10px;">
-            <avue-crud :data="tableData" ref="crud" :option="option" :span-method="spanMethod" 
+            <avue-crud 
+            :data="tableData" 
+            ref="crud" 
+            :option="option" 
+            :span-method="spanMethod" 
             @refresh-change="getData"
+            @current-change="handleCurrentChange"
+            @size-change="handleSizeChange"
             :page="page" 
             @selection-change="selectionRow"
             :table-loading="loading">
             <template #menu="{ row, index }">
-              <el-button type="text" icon="el-icon-delete" size="small" @click="deleteHandle(row, index)">鍒犻櫎</el-button>
+              <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>
           </div>
@@ -20,7 +37,7 @@
             <el-card>
               <div slot="header" class="clearfix">
                 <span>璋冨害鏃堕棿绾�</span>
-                <el-button v-if="scheduleList.length>0" @click="openEditDialog" style="float: right; padding: 3px 0" type="text">缂栬緫</el-button>
+                <el-button v-if="permissions.plan_productionschedul_edit_line && 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>
@@ -97,6 +114,31 @@
         <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>
 
@@ -104,14 +146,21 @@
 import {
   fetchScheduleList,
   fetchScheduleById,
-  fillTime
+  fillTime,
+  deleteSchedul,
+  updateSchedul
 } from '@/api//plan/productionschedul'
-import TableForm from './template-form'
 import ttable from '@/views/common/ztt-table.vue'
 import { mapGetters } from 'vuex'
 export default {
     data() {
     return {
+      editForm:{
+        id: null,
+        productionRoutine: null,
+        productionStatus: null,
+      },
+      editDialogVisible: false,
       dialogVisible: false,
       scheduleList: [],
       scheduleEditList: [],
@@ -122,17 +171,24 @@
       page: {
         total: 10,
         currentPage: 1,
-        pageSize: 10
+        pageSize: 10,
+        pagerCount: 5
       },
       option: {
+        defaultSort:{
+          prop:'id',
+          order:'descending'
+        },
         height: 400,
         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,
@@ -228,6 +284,9 @@
         ],
       },
       spanArr: [{
+        prop: 'id',
+        span: []
+      },{
         prop: 'projectName',
         span: []
       }, {
@@ -255,24 +314,34 @@
   },
   components: {
     ttable,
-    TableForm,
   },
   computed: {
     ...mapGetters(['permissions']),
   },
   created(){
+    if(!this.permissions.plan_productionschedul_edit && !this.permissions.plan_productionschedul_del){
+      this.option.menu = false
+    }
     this.loading = true
     this.getData()
     this.getParamType()
-    this.rowSort()
+    // this.rowSort()
     this.rowCalc()
   },
   beforeUpdate() {
-    this.rowSort()
+    // this.rowSort()
     this.rowCalc()
   },
   watch:{
-
+    editDialogVisible(newVal){
+      if(!newVal){
+        this.editForm = {
+          id: null,
+          productionRoutine: null,
+          productionStatus: null,
+        }
+      }
+    }
   },
   mounted() {
 
@@ -280,6 +349,26 @@
   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
@@ -287,8 +376,6 @@
     confirmEditSchedul(){
       let data = this.scheduleEditList
       let orderObj = this.multipleSelection[0]
-      console.log("data---",data)
-      console.log("orderObj-----",orderObj)
       let obj = {
         "documentActualTime": data[0].actualTime,
         "documentPlanTime": data[0].planTime,
@@ -310,7 +397,6 @@
         "productType": orderObj.productType,
         "projectName": orderObj.projectName
       }
-      console.log("obj----->>>",obj);
       fillTime(obj).then(res=>{
         if(res.status===200){
           this.$message.success("鏇存柊鎴愬姛")
@@ -394,12 +480,24 @@
       }
       return ''
     },
+    handleSizeChange(val){
+      if(val){
+        this.page.pageSize=val
+        this.getData()
+      }
+    },
+    handleCurrentChange(val){
+      if(val){
+        this.page.currentPage=val
+        this.getData()
+      }
+    },
     // 鑾峰彇鏁版嵁鍒楄〃
     getData() {
       this.loading = true
       let param = {
-        size: 20,
-        current: 1,
+        size: this.page.pageSize,
+        current: this.page.currentPage,
       }
       fetchScheduleList(param).then((res) => {
         this.tableData = res.data.data.records
@@ -409,17 +507,22 @@
       })
       this.loading = false
     },
-    handleCurrentChange(val) {
-      this.multipleSelection = val
-    },
     // 鍒犻櫎
     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)
+        })
       })
     },
     //鍔ㄦ�佸悎骞舵柟娉�
@@ -430,7 +533,7 @@
         ele.span = this.rowSpan(ele.prop, parent)
       })
     },
-    rowSort(list) {
+    rowSort() {
       let propList = this.spanArr.map(ele => ele.prop)
       this.spanArr.forEach((ele, index) => {
         let key = ele.prop
@@ -490,6 +593,9 @@
 }
 </script>
 <style>
+.avue-crud__tip{
+  display: none;
+}
 .basic-template-table .el-table__body .el-table__row td:first-child .cell {
   padding-left: 0px;
   padding-right: 0px;

--
Gitblit v1.9.3