From 0119182fc7947e3bd2299a24bba7e25e913dbddc Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 22 十二月 2023 09:47:40 +0800
Subject: [PATCH] 	modified:   src/api/plan/productionschedul.js 	modified:   src/views/plan/productionschedul/index.vue 	modified:   src/views/quality/processInspect/index.vue 	modified:   src/views/quality/processInspect/processInspect-form.vue 	modified:   src/views/quality/rawMaterial/rawMaterial-form.vue

---
 src/views/plan/productionschedul/index.vue               |  285 +++++++++++++++++++++++++++++++++++++++-------
 src/views/quality/rawMaterial/rawMaterial-form.vue       |    6 
 src/api/plan/productionschedul.js                        |    8 +
 src/views/quality/processInspect/index.vue               |   45 ++++---
 src/views/quality/processInspect/processInspect-form.vue |    2 
 5 files changed, 278 insertions(+), 68 deletions(-)

diff --git a/src/api/plan/productionschedul.js b/src/api/plan/productionschedul.js
index 6ab0eeb..bf84050 100644
--- a/src/api/plan/productionschedul.js
+++ b/src/api/plan/productionschedul.js
@@ -36,4 +36,12 @@
     method: 'post',
     data: data
   })
+}
+
+export function updateState(data) {
+  return request({
+    url: '/mes/productionSchedul/updateState',
+    method: 'post',
+    data: data
+  })
 }
\ No newline at end of file
diff --git a/src/views/plan/productionschedul/index.vue b/src/views/plan/productionschedul/index.vue
index 8ff933b..2b4de6c 100644
--- a/src/views/plan/productionschedul/index.vue
+++ b/src/views/plan/productionschedul/index.vue
@@ -2,37 +2,71 @@
   <div class="mod-config">
     <basic-container>
       <el-row>
-        <el-col :span="12">
-          <div style="height:80vh;padding: 0px 10px;">
-            <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 
-              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>
+        <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:73%;z-index: 11">
+                  <el-button @click="tagFinished" size="mini" round type="primary">鏍囪宸插畬鎴�</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>
+              </div>
+            </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="selectionRow">
+                <!-- <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>
+              </div>
+            </el-col>
+          </el-row>
         </el-col>
-        <el-col :span="12" style="padding-left: 10px">
+        <el-col :span="10" style="padding-left: 10px">
           <div style="">
             <el-card>
               <div slot="header" class="clearfix">
@@ -148,7 +182,7 @@
   fetchScheduleById,
   fillTime,
   deleteSchedul,
-  updateSchedul
+  updateState,
 } from '@/api//plan/productionschedul'
 import ttable from '@/views/common/ztt-table.vue'
 import { mapGetters } from 'vuex'
@@ -168,8 +202,15 @@
       multipleSelection: [],
       loading: true,
       tableData: [],
+      finishedTableData: [],
       page: {
-        total: 10,
+        total: 0,
+        currentPage: 1,
+        pageSize: 10,
+        pagerCount: 5
+      },
+      finishedPage: {
+        total: 0,
         currentPage: 1,
         pageSize: 10,
         pagerCount: 5
@@ -179,7 +220,7 @@
           prop:'id',
           order:'descending'
         },
-        height: 400,
+        height: 200,
         selection: true,
         columnBtn: false,
         index: true,
@@ -187,6 +228,117 @@
         selectionFixed: false,
         rowKey: 'mid',
         indexLabel: '搴忓彿',
+        menuAlign: 'center',
+        menuWidth: 130,
+        editBtn: false,
+        delBtn: false,
+        addBtn: false,
+        border: true,
+        align: 'center',
+        column: [
+          {
+            minWidth: 120,
+            prop: 'projectName',
+            label: '椤圭洰鍚嶇О',
+            overHidden: true,
+          },
+          {
+            minWidth: 100,
+            prop: 'contractNo',
+            label: '鍚堝悓鍙�',
+            overHidden: true,
+          },
+          {
+            minWidth: 120,
+            prop: 'orderTime',
+            label: '鎺ュ崟鏃ユ湡',
+            overHidden: true,
+            formatter: (row,columnValue)=> this.formatDate(row,columnValue)
+          },
+          {
+            minWidth: 120,
+            prop: 'customerName',
+            label: '瀹㈡埛鍚嶇О',
+            overHidden: true,
+          },
+          {
+            minWidth: 120,
+            prop: 'deliveryDate',
+            label: '浜よ揣鏃ユ湡',
+            overHidden: true,
+            formatter: (row,columnValue)=> this.formatDate(row,columnValue)
+          },
+          {
+            minWidth: 120,
+            prop: 'productType',
+            label: '浜у搧绫诲瀷',
+            overHidden: true,
+          },
+          {
+            minWidth: 120,
+            prop: 'product',
+            label: '浜у搧鍚�',
+            overHidden: true,
+          },
+          {
+            minWidth: 120,
+            prop: 'specs',
+            label: '瑙勬牸鍨嬪彿',
+            overHidden: true,
+          },
+          {
+            minWidth: 120,
+            prop: 'unit',
+            label: '鍗曚綅',
+            overHidden: true,
+          },
+          {
+            minWidth: 120,
+            prop: 'number',
+            label: '鏁伴噺',
+            overHidden: true,
+          },
+          {
+            minWidth: 120,
+            prop: 'productionStatus',
+            label: '鐢熶骇鎯呭喌',
+            overHidden: true,
+          },
+          {
+            minWidth: 120,
+            prop: 'productionRoutine',
+            label: '鐢熶骇绋嬪害',
+            overHidden: true,
+          },
+          {
+            minWidth: 120,
+            prop: 'projectLeader',
+            label: '椤圭洰璐熻矗浜�',
+            overHidden: true,
+          },
+          {
+            minWidth: 150,
+            prop: 'remark',
+            label: '澶囨敞',
+            overHidden: true,
+          }
+        ],
+      },
+      finishedOption: {
+        refreshBtn: false, // 鏄惁鏄剧ず鍒锋柊鎸夐挳
+        defaultSort:{
+          prop:'id',
+          order:'descending'
+        },
+        height: 180,
+        selection: true,
+        columnBtn: false,
+        index: true,
+        indexFixed: false,
+        selectionFixed: false,
+        rowKey: 'mid',
+        indexLabel: '搴忓彿',
+        menu: false,
         menuAlign: 'center',
         menuWidth: 130,
         editBtn: false,
@@ -323,7 +475,8 @@
       this.option.menu = false
     }
     this.loading = true
-    this.getData()
+    this.getUnFinishedData()
+    this.getFinishedData()
     this.getParamType()
     // this.rowSort()
     this.rowCalc()
@@ -349,13 +502,31 @@
   beforeDestroy() {
   },
   methods: {
+    tagFinished(){
+      if(this.multipleSelection.length < 1){
+        this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�")
+        return
+      }
+      let ids = this.multipleSelection.map(ele=>{
+        return ele.mid
+      })
+      updateState(ids).then(res=>{
+        if(res.status===200){
+          this.$message.success("鏇存柊鎴愬姛")
+          this.getUnFinishedData()
+          this.getFinishedData()
+        }
+      }).catch(error=>{
+        console.error(error);
+      })
+    },
     confirmEdit(){
       const _than = this
       updateSchedul(this.editForm).then(res=>{
         if(res.status===200){
           _than.$message.success("鏇存柊鎴愬姛")
           _than.editDialogVisible = false
-          _than.getData()
+          _than.getUnFinishedData()
         }
       }).catch(error=>{
         console.error(error);
@@ -461,15 +632,15 @@
       }
     },
     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].id)
     },
     formatDate(row, cellValue){
       if (cellValue) {
@@ -483,26 +654,42 @@
     handleSizeChange(val){
       if(val){
         this.page.pageSize=val
-        this.getData()
+        this.getUnFinishedData()
       }
     },
     handleCurrentChange(val){
       if(val){
         this.page.currentPage=val
-        this.getData()
+        this.getUnFinishedData()
       }
     },
     // 鑾峰彇鏁版嵁鍒楄〃
-    getData() {
+    getUnFinishedData() {
       this.loading = true
       let param = {
         size: this.page.pageSize,
         current: this.page.currentPage,
+        state: false
       }
       fetchScheduleList(param).then((res) => {
         this.tableData = res.data.data.records
         this.page.total = res.data.data.total
         this.page.currentPage = res.data.data.records.pages
+        this.scheduleList = []
+      })
+      this.loading = false
+    },
+    getFinishedData() {
+      this.loading = true
+      let param = {
+        size: this.finishedPage.pageSize,
+        current: this.finishedPage.currentPage,
+        state: true
+      }
+      fetchScheduleList(param).then((res) => {
+        this.finishedTableData = res.data.data.records
+        this.finishedPage.total = res.data.data.total
+        this.finishedPage.currentPage = res.data.data.records.pages
         this.scheduleList = []
       })
       this.loading = false
@@ -596,6 +783,12 @@
 .avue-crud__tip{
   display: none;
 }
+.avue-crud__pagination {
+    position: relative;
+    padding: 5px 0 20px 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;
diff --git a/src/views/quality/processInspect/index.vue b/src/views/quality/processInspect/index.vue
index 2fddf58..2ccb642 100644
--- a/src/views/quality/processInspect/index.vue
+++ b/src/views/quality/processInspect/index.vue
@@ -21,6 +21,7 @@
     import * as fecha from 'element-ui/lib/utils/date'
 	import processInspectForm from './processInspect-form'
     import { transform } from '@/util/fileTransform'
+    import { mapGetters } from 'vuex'
     import { page,deleteById,exportProcessInsProduct } from '@/api/quality/processInspect'
 	export default {
 		components: {
@@ -162,23 +163,8 @@
                             }
                         },
                     ],
-                    toolbar: [
-                    {
-                        text: '鏂板',
-                        type: 'primary',
-                        fun: this.addOrUpdateHandle
-                    },
-                    // {
-                    //     text: '瀵煎嚭',
-                    //     fun: this.exportExcel
-                    // }
-                    ],
-                    operator: [{
-                        text: '浣滃簾',
-                        type: 'text',
-                        size: 'small',
-                        fun: this.deleteHandle
-                    }],
+                    toolbar: [],
+                    operator: null,
                     operatorConfig: {
                     fixed: 'right',
                     label: '鎿嶄綔',
@@ -188,7 +174,26 @@
                 },
 			}
 		},
-		created() { },
+        computed: {
+            ...mapGetters(['permissions'])
+        },
+		created() { 
+            if(this.permissions.quality_processInspect_add){
+                this.table.toolbar.push({
+                        text: '鏂板',
+                        type: 'primary',
+                        fun: this.addOrUpdateHandle
+                    })
+            }
+            if(this.permissions.quality_processInspect_del){
+                this.table.operator = [{
+                        text: '浣滃簾',
+                        type: 'text',
+                        size: 'small',
+                        fun: this.deleteHandle
+                    }]
+            }
+         },
 		methods: {
             exportExcel(){
                 let queryParam=this.$refs.processInspect.getQueryParam();
@@ -215,6 +220,10 @@
 			},
 			// 鏂板 / 淇敼
 			addOrUpdateHandle(row) {
+                if(!this.permissions.quality_processInspect_edit && row){
+                    this.$message.error("璇ヨ鑹叉病鏈夋搷浣滄潈闄�")
+                    return
+                }
 				this.$router.push({
 					name: 'processInspectForm',
 					query: { id: row == null ? null : row.id },
diff --git a/src/views/quality/processInspect/processInspect-form.vue b/src/views/quality/processInspect/processInspect-form.vue
index 443d28e..42cef67 100644
--- a/src/views/quality/processInspect/processInspect-form.vue
+++ b/src/views/quality/processInspect/processInspect-form.vue
@@ -492,7 +492,7 @@
                 let isNumber = true
                 for(var i=0;i<row.empiricalValueAddss.length;i++){
                     let val = row.empiricalValueAddss[i]
-                    if(!/^[0-9]*[1-9][0-9]*$/.test(val)){
+                    if(!/(^-?[0-9]{1,6}$)|(^-?[0-9]{1,6}[\.]{1}[0-9]{1,3}$)/.test(val)){
                         row.empiricalValueAddss[i] = null
                         _than.$message.error("璇疯緭鍏ユ暟瀛�")
                         isNumber = false
diff --git a/src/views/quality/rawMaterial/rawMaterial-form.vue b/src/views/quality/rawMaterial/rawMaterial-form.vue
index 7a663b7..811d792 100644
--- a/src/views/quality/rawMaterial/rawMaterial-form.vue
+++ b/src/views/quality/rawMaterial/rawMaterial-form.vue
@@ -579,7 +579,7 @@
               required: null,
               rpId: null,
               name: null,
-              unit: null,
+              unit: 'mm',
               userName: null,
               testValue: '',
               testValueList: [],
@@ -715,7 +715,7 @@
             let isTrue = true
             for(var i=0;i<row.testValueList.length;i++){
               let val = row.testValueList[i]
-              let reg = /^[0-9]*[1-9][0-9]*$/
+              let reg = /(^-?[0-9]{1,6}$)|(^-?[0-9]{1,6}[\.]{1}[0-9]{1,3}$)/
               if(!reg.test(val) && !['鏄�','鍚�'].includes(val)){
                 this.$message.error("璇疯緭鍏ユ暟瀛楁垨閫夋嫨鏄惁")
                 row.testValueList[i] = null
@@ -773,7 +773,7 @@
           required: null,
           rpId: null,
           name: null,
-          unit: null,
+          unit: 'mm',
           userName: null,
           testValue: null,
           testValueList: [],

--
Gitblit v1.9.3