From d49f39681a68fd819ac687d67b6352ba386d0d13 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期四, 25 四月 2024 12:12:08 +0800
Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/mes-ocea-before into master

---
 src/views/plan/customerorder/sample-customerorder-form.vue |  359 +++++++++++++++++++----------------------------------------
 1 files changed, 118 insertions(+), 241 deletions(-)

diff --git a/src/views/plan/customerorder/sample-customerorder-form.vue b/src/views/plan/customerorder/sample-customerorder-form.vue
index 94aaeb1..765dc1a 100644
--- a/src/views/plan/customerorder/sample-customerorder-form.vue
+++ b/src/views/plan/customerorder/sample-customerorder-form.vue
@@ -1,7 +1,7 @@
 <template>
   <el-dialog
     width="75%"
-    top="10vh"
+    top="5vh"
     :fullscreen="isFullScreen"
     :close-on-click-modal="false"
     :visible.sync="visible"
@@ -34,7 +34,7 @@
               <el-input
                 v-model="dataForm.contractNo"
                 placeholder=""
-                disabled
+
               ></el-input>
             </el-form-item>
           </el-col>
@@ -51,14 +51,6 @@
               <el-input v-model="dataForm.entityName" placeholder=""></el-input>
             </el-form-item>
           </el-col>
-          <!-- <el-col :span="6">
-            <el-form-item label="浜嬩笟閮�" prop="salesDepartment">
-              <el-input
-                v-model="dataForm.salesDepartment"
-                placeholder=""
-              ></el-input>
-            </el-form-item>
-          </el-col> -->
           <el-col :span="6">
             <el-form-item label="鐪佷唤" prop="province">
               <el-input v-model="dataForm.province" placeholder=""></el-input>
@@ -68,9 +60,11 @@
         <el-row>
           <el-col :span="6">
             <el-form-item label="涓氬姟鍛�" prop="salesMan">
-              <el-select @change="selsctionSales" clearable filterable v-model="salesSelectData" style="width:100%">
+                <!-- salesMan -->
+                <el-input v-model="dataForm.salesMan" placeholder=""></el-input>
+              <!-- <el-select @change="selsctionSales" clearable filterable v-model="salesSelectData" style="width:100%">
                 <el-option v-for="(item,index) in staffOptions" :key="index" :value="item.staffNo+','+item.staffName" :label="item.staffName"/>
-              </el-select>
+              </el-select> -->
             </el-form-item>
           </el-col>
           <el-col :span="6">
@@ -156,6 +150,7 @@
     </el-divider>
     <div>
       <avue-crud ref="crud"
+        class="l-mes"
         show-hide="false"
         :option="option"
         :data="tableData">
@@ -175,196 +170,6 @@
           </template>
       </avue-crud>
     </div>
-    <!-- <div class="l-mes normal-form">
-      <el-row :gutter="20">
-        <el-col :span="2">
-          <span>闆朵欢鍙�</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.partNo"
-            placeholder=""
-            readonly
-          >
-            <el-button
-              slot="append"
-              icon="el-icon-search"
-              @click="openPartDialog()"
-            ></el-button>
-          </el-input>
-        </el-col>
-        <el-col :span="2">
-          <span>鍗曚綅</span>
-        </el-col>
-        <el-col :span="6">
-          <el-select
-            v-model="dataForm.customerOrder.unit"
-            placeholder=""
-            style="width: 100%"
-          >
-            <el-option
-              v-for="item in units"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            />
-          </el-select>
-        </el-col>
-        <el-col :span="2">
-          <span>鏁伴噺</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.buyQtyDue"
-            placeholder=""
-          ></el-input>
-        </el-col>
-      </el-row>
-      <el-row :gutter="20">
-        <el-col :span="2">
-          <span>鐢靛帇绛夌骇</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.voltAgeClass"
-            placeholder=""
-          ></el-input>
-        </el-col>
-        <el-col :span="2">
-          <span>浜у搧鍚嶇О</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.productName"
-            placeholder=""
-          ></el-input>
-        </el-col>
-        <el-col :span="2">
-          <span>鍒堕�犲睘鎬�</span>
-        </el-col>
-        <el-col :span="6">
-          <el-select
-            v-model="dataForm.customerOrder.manufactureAttr"
-            placeholder=""
-            style="width: 100%"
-            disabled
-          >
-            <el-option
-              v-for="item in manufactureAttrs"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            />
-          </el-select>
-        </el-col>
-      </el-row>
-      <el-row :gutter="20">
-        <el-col :span="2">
-          <span>澶栨姢棰滆壊</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.outerColor"
-            placeholder=""
-          ></el-input>
-        </el-col>
-        <el-col :span="2">
-          <span>闆朵欢瑙勬牸</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.customerPartSpec"
-            placeholder=""
-          ></el-input>
-        </el-col>
-        <el-col :span="2">
-          <span>鍖呰瑕佹眰</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.packageRequire"
-            placeholder=""
-          ></el-input>
-        </el-col>
-      </el-row>
-      <el-row :gutter="20">
-        <el-col :span="2">
-          <span>璐ㄩ噺瑕佹眰</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.qualityRequire"
-            placeholder=""
-          ></el-input>
-        </el-col>
-        <el-col :span="2">
-          <span>鐢熶骇闇�姹傝鏄�</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.otherProductRequire"
-            placeholder=""
-          ></el-input>
-        </el-col>
-        <el-col :span="2">
-          <span>绯荤粺</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.divisionSystem"
-            placeholder=""
-          ></el-input>
-        </el-col>
-      </el-row>
-      <el-row :gutter="20">
-        <el-col :span="2">
-          <span>鏀惰揣鍦板潃</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.shippingAddress"
-            placeholder=""
-          ></el-input>
-        </el-col>
-        <el-col :span="2">
-          <span>涓氬姟鍛�</span>
-        </el-col>
-        <el-col :span="6">
-          <el-select v-model="dataForm.customerOrder.salesmanName" style="width:100%">
-                <el-option v-for="(item,index) in staffOptions" :key="index" :value="item.staff_no" :label="item.staffName"/>
-          </el-select>
-        </el-col>
-        <el-col :span="2">
-          <span>鐩橀暱瑕佹眰</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.lengthRequirement"
-            placeholder=""
-          ></el-input>
-        </el-col>
-      </el-row>
-      <el-row :gutter="20">
-        <el-col :span="2">
-          <span>澶囨敞</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.remark"
-            placeholder=""
-          ></el-input>
-        </el-col>
-        <el-col :span="2">
-          <span>浜у搧绫诲瀷</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.productType"
-            placeholder=""
-          ></el-input>
-        </el-col>
-      </el-row>
-    </div> -->
 
     <span slot="footer" class="dialog-footer">
       <el-button @click="visible = false">鍙栨秷</el-button>
@@ -401,9 +206,34 @@
   color: #c0c4cc;
   margin: -1px 0;
 }
+.l-mes .el-input-group__append,
+.l-mes .el-input-group__prepend {
+  padding: 0;
+  border-top: none;
+  border-right: none;
+  border-left: none;
+  border-radius: 0;
+  background-color: transparent;
+}
+
+.l-mes .el-input-group__append .el-button,
+.l-mes .el-input-group__prepend .el-button {
+  padding: 0;
+  width: 25px;
+  border: none !important;
+  line-height: 28px;
+  color: #c0c4cc;
+  margin: -1px 0;
+}
+
+.l-mes .el-input-group__append .el-button i,
+.l-mes .el-input-group__prepend .el-button i {
+  vertical-align: middle;
+}
 </style>
 <script>
-import { addObj } from '@/api/plan/customer'
+import { saveOrUpdate } from '@/api/plan/customer'
+import { getCustomerMainAndOrderBycNo } from '@/api/plan/customerorder'
 import { remote } from '@/api/admin/dict'
 import PartDialog from '@/views/common/part.vue'
 import {dateFormat} from '@/util/date'
@@ -440,18 +270,19 @@
       currentSelectRow: 0,
       option: tableOption,
       tableData: [{
-          "$cellEdit": true,
-          "$index": 0,
-          "partNo": "",
-          "customerPartSpec": "",
-          "manufactureAttr": "",
-          "productName": "",
-          "productType": "",
-          "otcUnit": "",
-          "buyQtyDue": "",
-          "shippingAddress": "",
-          "remark": "",
-          "isTrusted": true
+          id: null,
+          $cellEdit: true,
+          $index: 0,
+          partNo: "",
+          customerPartSpec: "",
+          manufactureAttr: "",
+          productName: "",
+          productType: "",
+          otcUnit: "",
+          buyQtyDue: "",
+          shippingAddress: "",
+          remark: "",
+          isTrusted: true
       }],
       staffOptions: [],
       title: '',
@@ -460,6 +291,7 @@
       buttonDisable: false,
       showPart: false,
       dataForm: {
+        id: null,
         contractNo: null,
         customerName: null,
         customerNo: null,
@@ -500,12 +332,46 @@
         this.staffOptions = response.data.data
       })
     },
-    init(id) {
-      this.initDataForm()
-      this.visible = true
-      this.$nextTick(() => {
-        this.title = '鏂板'
-      })
+    init(contractNo) {
+      if(contractNo){
+        getCustomerMainAndOrderBycNo(contractNo).then(res=>{
+            if(res.status===200){
+                let data = res.data.data
+                this.dataForm.id = data.id
+                this.dataForm.contractNo = data.contractNo
+                this.dataForm.customerName = data.customerName
+                this.dataForm.entityName = data.entityName
+                this.dataForm.province = data.province
+                this.salesSelectData = data.salesMan
+                this.dataForm.salesMan = data.salesMan
+                this.dataForm.originalContractStatus = data.originalContractStatus
+                this.dataForm.isCp = data.isCp
+                this.dataForm.customerNo = data.customerNo
+                this.dataForm.returnStatus = data.returnStatus
+                this.dataForm.placeOrderDate = data.placeOrderDate
+                this.dataForm.factoryPlaceOrderDate = data.factoryPlaceOrderDate
+                this.dataForm.deliveryDate = data.deliveryDate
+                this.dataForm.comment = data.comment
+                data.customerOrderVOList.forEach(e=>{
+                    e.$cellEdit = true
+                })
+                this.tableData = data.customerOrderVOList
+                console.log(this.dataForm);
+            }
+        }).catch(error=>{
+            console.error(error)
+        })
+        this.visible = true
+        this.$nextTick(() => {
+            this.title = '缂栬緫'
+        })
+      }else{
+        this.initDataForm()
+        this.visible = true
+        this.$nextTick(() => {
+            this.title = '鏂板'
+        })
+      }
     },
     initDataForm() {
       this.dataForm.contractNo = null
@@ -522,18 +388,19 @@
       this.dataForm.deliveryDate = null
       this.dataForm.comment = null
       this.dataForm.customerOrderVOList = [{
-          "$cellEdit": true,
-          "$index": 0,
-          "partNo": "",
-          "customerPartSpec": "",
-          "manufactureAttr": "",
-          "productName": "",
-          "productType": "",
-          "otcUnit": "",
-          "buyQtyDue": "",
-          "shippingAddress": "",
-          "remark": "",
-          "isTrusted": true
+          id: null,
+          $cellEdit: true,
+          $index: 0,
+          partNo: "",
+          customerPartSpec: "",
+          manufactureAttr: "",
+          productName: "",
+          productType: "",
+          otcUnit: "",
+          buyQtyDue: "",
+          shippingAddress: "",
+          remark: "",
+          isTrusted: true
       }]
     },
     // 琛ㄥ崟鎻愪氦
@@ -542,6 +409,10 @@
       let isError = false
       _than.buttonDisable = true
       _than.tableData.forEach(ele=>{
+        if(ele.productType==null || ele.productType=='' || ele.productType==undefined){
+          _than.$message.error("浜у搧鐨勯毝灞炲搧鐗屼笉鑳戒负绌�!")
+          isError = true
+        }
         if(ele.buyQtyDue==null || ele.buyQtyDue=='' || ele.buyQtyDue==undefined){
           _than.$message.error("闆朵欢鏁伴噺涓嶈兘涓虹┖!")
           isError = true
@@ -560,12 +431,18 @@
       _than.$refs.dataForm.validate((valid) => {
         if (valid) {
           _than.dataForm.customerOrderVOList = _than.tableData
-          addObj(_than.dataForm).then((data) => {
-              _than.$message.success('娣诲姞鎴愬姛')
-              _than.initDataForm();
-              _than.visible = false
-              _than.buttonDisable = false
-              _than.$emit('refreshDataList', 1)
+          saveOrUpdate(_than.dataForm).then((res) => {
+            if(res.status===200){
+                if(_than.dataForm.id){
+                    _than.$message.success('鏇存柊鎴愬姛')
+                }else{
+                    _than.$message.success('娣诲姞鎴愬姛')
+                }
+                _than.initDataForm();
+                _than.visible = false
+                _than.buttonDisable = false
+                _than.$emit('refreshDataList', 1)
+            }
             }).catch((error) => {
               _than.buttonDisable = false
             })
@@ -583,8 +460,8 @@
       const index = this.currentSelectRow
       if (part) {
         this.tableData[index].partNo = part.partNo
-        this.tableData[index].customerPartSpec = part.specs
-        this.tableData[index].productName = part.partName
+        // this.tableData[index].customerPartSpec = part.specs
+        // this.tableData[index].productName = part.partName
       }
     },
     // 鍏ㄥ睆

--
Gitblit v1.9.3