From bc95be087fbf1b6c93bb8cdb8f0478305ec1199f Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期一, 04 七月 2022 17:35:39 +0800
Subject: [PATCH] 1.MES系统中ERP生产订单页面开发

---
 src/views/jcsz/zzjg.vue |   14 +-
 src/views/scgl/scdd.vue |  249 ++++++++++++++++++++++++++++++++-----------------
 src/views/scgl/gd.vue   |   13 +-
 3 files changed, 179 insertions(+), 97 deletions(-)

diff --git a/src/views/jcsz/zzjg.vue b/src/views/jcsz/zzjg.vue
index 277b859..5a672ff 100644
--- a/src/views/jcsz/zzjg.vue
+++ b/src/views/jcsz/zzjg.vue
@@ -150,7 +150,7 @@
           </el-radio-group>
         </el-form-item>
         <el-form-item label="缁勭粐缂栫爜" prop="OrgCode">
-          <el-input v-model="dialogForm.OrgCode" disabled style="width: 200px" />
+          <el-input v-model="dialogForm.OrgCode" :disabled="operation!=='add'" style="width: 200px" />
         </el-form-item>
         <el-form-item label="缁勭粐鍚嶇О" prop="OrgName">
           <el-input v-model="dialogForm.OrgName" style="width: 200px" />
@@ -353,9 +353,9 @@
       this.operation = operation
       this.dialogVisible = true
 
-      const res = await getNewEncodingRules(getCookie('ruleCode'))
-      this.dialogForm.OrgCode = res.RightCode
-      this.numvalue = res.numvalue
+      // const res = await getNewEncodingRules(getCookie('ruleCode'))
+      // this.dialogForm.OrgCode = res.RightCode
+      // this.numvalue = res.numvalue
     },
     // 淇敼鎸夐挳
     edit(operation, row) {
@@ -416,8 +416,10 @@
             OrganType: this.dialogFormOrgTypeSelected,
             OrganCode: this.dialogForm.OrgCode,
             OrganName: this.dialogForm.OrgName,
-            RightCode: this.operation === 'add' ? getCookie('ruleCode') : '',
-            numvalue: this.operation === 'add' ? this.numvalue : '',
+            RightCode: '',
+            numvalue: '',
+            // RightCode: this.operation === 'add' ? getCookie('ruleCode') : '',
+            // numvalue: this.operation === 'add' ? this.numvalue : '',
             SupUnit: this.dialogFormOrgTypeSelected === 'F' ? '0' : this.dialogForm.SupUnit,
             OperType: this.operation === 'add' ? 'Add' : 'Update',
             Operator: getCookie('admin')
diff --git a/src/views/scgl/gd.vue b/src/views/scgl/gd.vue
index 48e17ad..91e9e8e 100644
--- a/src/views/scgl/gd.vue
+++ b/src/views/scgl/gd.vue
@@ -128,8 +128,10 @@
             width="110"
           >
             <template slot-scope="{row}">
-              <div v-if="row.status==='CREATING'">杩涜涓�</div>
-              <div v-if="row.status==='NEW'">鏈紑濮�</div>
+              <div v-if="row.status==='NEW'">鏂板伐鍗�</div>
+              <div v-if="row.status==='ALLOC'">宸叉淳鍙�</div>
+              <div v-if="row.status==='START'">寮�宸�</div>
+              <div v-if="row.status==='CLOSED'">瀹屽伐</div>
             </template>
           </el-table-column>
           <el-table-column
@@ -186,7 +188,6 @@
           <el-table-column
             prop="createdate"
             label="鍒涘缓鏃堕棿"
-            show-overflow-tooltip
             sortable="custom"
           />
           <el-table-column
@@ -322,8 +323,10 @@
         rows: 20 // 姣忛〉澶氬皯鏉�
       },
       erporderstusArr: [
-        { code: 'CREATING', name: '杩涜涓�' },
-        { code: 'NEW', name: '鏈紑濮�' }
+        { code: 'NEW', name: '鏂板伐鍗�' },
+        { code: 'ALLOC', name: '宸叉淳鍙�' },
+        { code: 'START', name: '寮�宸�' },
+        { code: 'CLOSED', name: '瀹屽伐' }
       ],
       total: 10,
       radioSelected: '',
diff --git a/src/views/scgl/scdd.vue b/src/views/scgl/scdd.vue
index dd8303e..a063c82 100644
--- a/src/views/scgl/scdd.vue
+++ b/src/views/scgl/scdd.vue
@@ -78,13 +78,14 @@
         <el-button
           type="primary"
           icon="el-icon-refresh-right"
+          @click="reset"
         >鍚屾ERP
         </el-button>
         <el-button
           type="primary"
           icon="el-icon-switch-button"
           @click="orderClose"
-        >璁㈠崟鍏抽棴
+        >鍏抽棴璁㈠崟
         </el-button>
         <!--        <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>-->
         <!--        <el-button type="primary" icon="el-icon-upload2" @click="upload">瀵煎叆</el-button>-->
@@ -109,12 +110,12 @@
           <el-table-column
             width="50"
           >
-            <template scope="scope">
+            <template slot-scope="{row}">
               <el-radio
                 v-model="radioSelected"
-                :label="scope.$index"
+                :label="row.wo"
                 style="color: #fff;padding-left: 10px; margin-right: -25px;"
-                @change.native="getCurrentRow(scope.row)"
+                @change.native="getCurrentRow(row.wo)"
               />
             </template>
           </el-table-column>
@@ -130,8 +131,10 @@
             width="110"
           >
             <template slot-scope="{row}">
-              <div v-if="row.status==='CREATING'">杩涜涓�</div>
-              <div v-if="row.status==='NEW'">鏈紑濮�</div>
+              <div v-if="row.status==='NEW'">鏂拌鍗�</div>
+              <div v-if="row.status==='CREATING'">鍒涘缓涓�</div>
+              <div v-if="row.status==='CREATED'">宸插垱寤�</div>
+              <div v-if="row.status==='CLOSED'">宸插叧闂�</div>
             </template>
           </el-table-column>
           <el-table-column
@@ -162,14 +165,14 @@
           />
           <el-table-column
             prop="wkshp_name"
-            label="鐢熸垚杞﹂棿"
+            label="鐢熶骇杞﹂棿"
             sortable="custom"
           />
           <el-table-column
             prop="paydate"
             label="瑕佹眰浜や粯鏃堕棿"
             sortable="custom"
-            show-overflow-tooltip
+            width="160"
           />
           <el-table-column
             prop="createuser"
@@ -179,7 +182,7 @@
           <el-table-column
             prop="createdate"
             label="鍒涘缓鏃堕棿"
-            show-overflow-tooltip
+            width="160"
             sortable="custom"
           />
           <el-table-column
@@ -187,8 +190,7 @@
           >
             <template slot-scope="{row}">
               <div class="operationClass">
-                <el-button type="text" @click="edit('edit',row)">缂栬緫</el-button>
-                <!--                <el-button type="text" @click="del(row)">鍒犻櫎</el-button>-->
+                <el-button type="text" @click="edit('edit',row)">涓嬭揪</el-button>
               </div>
             </template>
           </el-table-column>
@@ -208,7 +210,7 @@
     </div>
 
     <el-dialog
-      :title="operation==='add'?'鏂板':'缂栬緫'"
+      :title="operation==='add'?'鏂板':'涓嬭揪'"
       :visible.sync="dialogVisible"
       width="50%"
       top="15vh"
@@ -216,12 +218,12 @@
       @close="handleClose"
     >
       <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
-        <el-form-item label="璁㈠崟鐘舵��" prop="OrgCode">
+        <el-form-item label="璁㈠崟鐘舵��" prop="erporderstus">
           <el-select
-            v-model="form.partcode"
+            v-model="dialogForm.erporderstus"
             disabled
             :popper-append-to-body="false"
-            style="width: 220px"
+            style="width: 200px"
             placeholder="璇烽�夋嫨"
           >
             <el-option
@@ -232,36 +234,58 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="璁㈠崟缂栧彿" prop="OrgCode">
-          <el-input v-model="dialogForm.OrgCode" disabled style="width: 220px" />
+        <el-form-item label="璁㈠崟缂栧彿" prop="erpordercode">
+          <el-input v-model="dialogForm.erpordercode" disabled style="width: 200px" />
         </el-form-item>
-        <el-form-item label="浜у搧缂栫爜" prop="OrgName">
-          <el-input v-model="dialogForm.OrgName" disabled style="width: 220px" />
+        <el-form-item label="浜у搧缂栫爜" prop="partcode">
+          <el-input v-model="dialogForm.partcode" disabled style="width: 200px" />
         </el-form-item>
-        <el-form-item label="浜у搧鍚嶇О" prop="OrgName">
-          <el-input v-model="dialogForm.OrgName" disabled style="width: 220px" />
+        <el-form-item label="浜у搧鍚嶇О" prop="partname">
+          <el-input v-model="dialogForm.partname" disabled style="width: 200px" />
         </el-form-item>
-        <el-form-item label="璁㈠崟鏁伴噺" prop="OrgName">
-          <el-input v-model="dialogForm.OrgName" disabled style="width: 220px" />
+        <el-form-item label="璁㈠崟鏁伴噺" prop="erpqty">
+          <el-input v-model="dialogForm.erpqty" disabled style="width: 200px" />
         </el-form-item>
-        <el-form-item label="浜у搧瑙勬牸" prop="OrgName">
-          <el-input v-model="dialogForm.OrgName" disabled style="width: 220px" />
+        <el-form-item label="浜у搧瑙勬牸" prop="partspec">
+          <el-input v-model="dialogForm.partspec" disabled style="width: 200px" />
         </el-form-item>
-        <el-form-item label="涓嬭揪鏁伴噺" prop="OrgName">
-          <el-input v-model="dialogForm.OrgName" style="width: 220px" />
+        <el-form-item label="鐢熶骇杞﹂棿" prop="wkshopname">
+          <el-input v-model="dialogForm.wkshopname" disabled style="width: 200px" />
         </el-form-item>
-        <el-form-item label="涓嬪崟鏁伴噺" prop="OrgName">
-          <el-input v-model="dialogForm.OrgName" style="width: 220px" />
+        <el-form-item label="鎵�灞炰粨搴�" prop="warehousename">
+          <el-input v-model="dialogForm.warehousename" disabled style="width: 200px" />
         </el-form-item>
-        <el-form-item label="浜や粯鏃堕棿" prop="OrgName">
-          <el-date-picker
-            v-model="dialogForm.OrgName"
-            type="date"
-            style="width: 220px"
-            placeholder="閫夋嫨鏃ユ湡"
+        <el-form-item label="涓嬪崟鏁伴噺" prop="markqty">
+          <el-input
+            v-model="dialogForm.markqty"
+            oninput="value=value.replace(/[^0-9.]/g,'')"
+            style="width: 200px"
           />
-          <!--          <el-input v-model="dialogForm.OrgName" style="width: 220px" />-->
         </el-form-item>
+        <el-form-item label="涓嬪崟鍗曟暟" prop="ordernum">
+          <el-input
+            v-model="dialogForm.ordernum"
+            oninput="value=value.replace(/[^0-9.]/g,'')"
+            style="width: 200px"
+          />
+        </el-form-item>
+        <el-form-item label="宸蹭笅鍗曟暟" prop="relse_qty">
+          <el-input
+            v-model="dialogForm.relse_qty"
+            disabled
+            oninput="value=value.replace(/[^0-9.]/g,'')"
+            style="width: 200px"
+          />
+        </el-form-item>
+        <!--        <el-form-item label="浜や粯鏃堕棿" prop="">-->
+        <!--          <el-date-picker-->
+        <!--            v-model="dialogForm.markqty"-->
+        <!--            type="date"-->
+        <!--            style="width: 200px"-->
+        <!--            placeholder="閫夋嫨鏃ユ湡"-->
+        <!--          />-->
+        <!--          <el-input v-model="dialogForm.OrgName" style="width: 200px" />-->
+        <!--        </el-form-item>-->
 
       </el-form>
       <span slot="footer" class="dialog-footer">
@@ -278,7 +302,7 @@
 import Pagination from '@/components/Pagination'
 import { AddUpdateOrganization, DeleteOrganization, OrganizationSearch, PrentOrganization } from '@/api/jcsz'
 import { getCookie } from '@/utils/auth'
-import { ErpOrderSearch } from '@/api/scgl'
+import { ClosedErpOrder, ErpOrderSearch, MarkSaveErpOrder } from '@/api/scgl'
 import { PartSelect } from '@/api/zzmx'
 
 const SER_HZ = /^[\u4e00-\u9fa5]+$/
@@ -318,29 +342,47 @@
       },
       // partArr: [],
       erporderstusArr: [
-        { code: 'CREATING', name: '杩涜涓�' },
-        { code: 'NEW', name: '鏈紑濮�' }
+        { code: 'NEW', name: '鏂拌鍗�' },
+        { code: 'CREATING', name: '鍒涘缓涓�' },
+        { code: 'CREATED', name: '宸插垱寤�' },
+        { code: 'CLOSED', name: '宸插叧闂�' }
       ],
       total: 10,
-      radioSelected: {},
+      // radioSelected: {},
+      radioSelected: '',
       tableData: [],
       dialogVisible: false,
       dialogForm: {
-        OrgType: '',
-        OrgCode: '',
-        OrgName: '',
-        SupUnit: ''// 涓婄骇鍗曚綅
+        partname: '', // 浜у搧鍚嶇О
+        partspec: '', // 浜у搧瑙勬牸
+        paydate: '', // 浜や粯鏃堕棿
+        wkshopname: '', // 杞﹂棿鍚嶇О
+        warehousename: '', // 浠撳簱鍚嶇О
+
+        erporderstus: '', // 璁㈠崟鐘舵�佺爜
+        erpordercode: '', // 璁㈠崟缂栧彿
+        partcode: '', // 浜у搧缂栫爜
+        wkshopcode: '', // 杞﹂棿缂栫爜
+        warehousecode: '', // 浠撳簱缂栫爜
+
+        erpqty: '', // 璁㈠崟鏁伴噺
+        markqty: '', // 涓嬪崟鏁伴噺
+        ordernum: '', // 涓嬪崟鍗曟暟
+        relse_qty: '' // 宸蹭笅鍗曟暟閲�
       },
       operation: '',
       dialogFormRules: {
-        OrgType: [
-          { required: true, message: '璇疯緭鍏ラ�夋嫨绫诲瀷', trigger: ['blur', 'change'] }
+        // OrgType: [
+        //   { required: true, message: '璇疯緭鍏ラ�夋嫨绫诲瀷', trigger: ['blur', 'change'] }
+        // ],
+        // OrgCode: [
+        //   { required: true, validator: validateName, trigger: ['blur', 'change'] }
+        // ],
+        markqty: [
+          { required: true, message: '璇疯緭鍏ヤ笅鍗曟暟閲�', trigger: ['blur', 'change'] }
         ],
-        OrgCode: [
-          { required: true, validator: validateName, trigger: ['blur', 'change'] }
-        ],
-        OrgName: [
-          { required: true, message: '璇疯緭鍏ュ悕绉�', trigger: ['blur', 'change'] }
+        ordernum: [
+          { required: true, message: '璇疯緭鍏ヤ笅鍗曞崟鏁�', trigger: ['blur', 'change'] }
         ]
 
       }
@@ -361,6 +403,9 @@
       this.tableData = res.data
       this.total = res.count
     },
+    // syncGetErpOrderSearch() {
+    //   this.getErpOrderSearch()
+    // },
     // async getPartSelect() {
     //   const { data: res } = await PartSelect()
     //   this.partArr = res
@@ -395,13 +440,35 @@
       this.getErpOrderSearch()
     },
     // 鍗曢�夋閫変腑鑾峰彇褰撳墠琛屼俊鎭�
-    getCurrentRow(row) {
-      console.log(row, 1)
-      this.radioSelected = row
+    getCurrentRow(wo) {
+      this.radioSelected = wo
     },
     // 璁㈠崟鍏抽棴
-    orderClose() {
+    async  orderClose() {
       console.log(this.radioSelected, 1)
+
+      this.$confirm('鏄惁纭鍏抽棴璁㈠崟?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        this.tableData.forEach((item, index) => {
+          if (this.radioSelected === item.wo) {
+            if (item.status !== 'NEW') {
+              return this.$message.info('姝よ鍗曢潪鏂拌鍗曪紝鏃犳硶鍏抽棴锛�')
+            }
+          }
+        })
+
+        ClosedErpOrder({ erpordercode: this.radioSelected }).then(res => {
+          if (res.code === '200') {
+            this.$message.success('鍒犻櫎鎴愬姛!')
+            this.getErpOrderSearch()
+          }
+        })
+      }).catch(() => {
+        this.$message.info('宸插彇娑堝垹闄�')
+      })
     },
     // 鏂板鎸夐挳
     add(operation) {
@@ -414,34 +481,38 @@
       this.dialogVisible = true
 
       this.$nextTick(() => {
-        this.dialogForm.OrgCode = row.org_code
-        this.dialogForm.OrgName = row.org_name
-        this.dialogForm.SupUnit = row.parent_id
-      })
-    },
-    // 鍒犻櫎鎸夐挳
-    async del(row) {
-      this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
-        confirmButtonText: '纭畾',
-        cancelButtonText: '鍙栨秷',
-        type: 'warning'
-      }).then(() => {
-        DeleteOrganization({ orgid: row.code }).then(res => {
-          if (res.code === '200') {
-            this.$message.success('鍒犻櫎鎴愬姛!')
-            this.getErpOrderSearch()
-          }
-        })
-      }).catch(() => {
-        this.$message.info('宸插彇娑堝垹闄�')
+        this.dialogForm.erporderstus = row.status
+        this.dialogForm.erpordercode = row.wo
+        this.dialogForm.partcode = row.partcode
+        this.dialogForm.partname = row.partname
+        this.dialogForm.partspec = row.partspec
+        this.dialogForm.wkshopcode = row.wkshp_code
+        this.dialogForm.wkshopname = row.wkshp_name
+        this.dialogForm.warehousecode = row.stck_code
+        this.dialogForm.warehousename = row.stck_name
+
+        this.dialogForm.erpqty = row.qty
+        this.dialogForm.markqty = parseFloat(row.qty) - parseFloat(row.relse_qty)
+        this.dialogForm.ordernum = 1
+        this.dialogForm.relse_qty = row.relse_qty
       })
     },
     // 瀵硅瘽妗嗗叧闂簨浠�
     handleClose() {
-      this.dialogForm.OrgType = ''
-      this.dialogForm.OrgCode = ''
-      this.dialogForm.OrgName = ''
-      this.dialogForm.SupUnit = ''
+      this.dialogForm.erporderstus = ''
+      this.dialogForm.erpordercode = ''
+      this.dialogForm.partcode = ''
+      this.dialogForm.partname = ''
+      this.dialogForm.partspec = ''
+      this.dialogForm.wkshopcode = ''
+      this.dialogForm.wkshopname = ''
+      this.dialogForm.warehousecode = ''
+      this.dialogForm.warehousename = ''
+
+      this.dialogForm.erpqty = ''
+      this.dialogForm.markqty = ''
+      this.dialogForm.ordernum = ''
+      this.dialogForm.relse_qty = ''
       this.$refs.dialogForm.clearValidate()
     },
     // 瀵硅瘽妗嗗彇娑�
@@ -453,18 +524,24 @@
       this.$refs.dialogForm.validate(valid => {
         if (valid) {
           const data = {
-            OrganCode: this.dialogForm.OrgCode,
-            OrganName: this.dialogForm.OrgName,
-            OperType: this.operation === 'add' ? 'Add' : 'Update',
-            Operator: getCookie('admin')
+            'erporderstus': this.dialogForm.erporderstus,
+            'erpordercode': this.dialogForm.erpordercode,
+            'partcode': this.dialogForm.partcode,
+            'wkshopcode': this.dialogForm.wkshopcode,
+            'warehousecode': this.dialogForm.warehousecode,
+            'erpqty': this.dialogForm.erpqty,
+            'markqty': this.dialogForm.markqty,
+            'ordernum': this.dialogForm.ordernum,
+            'relse_qty': this.dialogForm.relse_qty
           }
-          AddUpdateOrganization(data).then(res => {
+          console.log(data)
+          MarkSaveErpOrder(data).then(res => {
             if (res.code === '200') {
-              this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+              this.$message.success('涓嬭揪鎴愬姛锛�')
               this.dialogVisible = false
               this.getErpOrderSearch()
             } else {
-              this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+              this.$message.error('涓嬭揪澶辫触锛�')
             }
           })
         }

--
Gitblit v1.9.3