From 6675c7c9342d115b4f4ac6a043ab8cdd36c9dd3a Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 14 十一月 2023 16:14:17 +0800
Subject: [PATCH] 	modified:   src/views/plan/customerorder/confirm-pull-customerorder.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

---
 src/views/plan/customerorder/other-customer-order-line.vue  |    4 
 src/views/plan/customerorder/confirm-pull-customerorder.vue |    2 
 src/views/plan/customerorder/index.vue                      |   84 ++++++----
 src/views/plan/customerorder/sample-customerorder-form.vue  |  362 +++++++++++++++++++++++++++++++++++---------
 4 files changed, 337 insertions(+), 115 deletions(-)

diff --git a/src/views/plan/customerorder/confirm-pull-customerorder.vue b/src/views/plan/customerorder/confirm-pull-customerorder.vue
index 2f3c9ae..063efb7 100644
--- a/src/views/plan/customerorder/confirm-pull-customerorder.vue
+++ b/src/views/plan/customerorder/confirm-pull-customerorder.vue
@@ -53,7 +53,7 @@
       if (this.dataForm.selectTime != null && this.dataForm.selectTime != '') {
         otcCustomerOrderSync({
           selectTime: this.dataForm.selectTime,
-          pathCode: '0'
+          orderNo: ''
         })
           .then((response) => {
             const resData = response.data
diff --git a/src/views/plan/customerorder/index.vue b/src/views/plan/customerorder/index.vue
index 2adf766..9c4423c 100644
--- a/src/views/plan/customerorder/index.vue
+++ b/src/views/plan/customerorder/index.vue
@@ -250,18 +250,18 @@
       </el-dialog>
     </basic-container>
 
-    <el-dialog title="閫夋嫨鍚屾鏃ユ湡" :visible.sync="syncDateVisible" width="30%">
+    <el-dialog title="閫夋嫨鍚屾鏃ユ湡" :visible.sync="syncDateVisible" width="20%">
       <div style="display: flex;justify-content: center">
-        <el-date-picker
-          v-model="syncDate"
-          type="daterange"
-          value-format="yyyy-MM-dd"
-          range-separator="鑷�"
-          start-placeholder="寮�濮嬫棩鏈�"
-          end-placeholder="缁撴潫鏃ユ湡"
-          :picker-options="pickerOptions"
-        >
-        </el-date-picker>
+        <el-form :model="dataForm" :inline="true" :rules="dataRule" ref="dataForm" class="l-mes">
+          <el-form-item label="鏃ユ湡" prop="selectTime">
+            <el-date-picker
+              v-model="dataForm.selectTime"
+              type="datetime"
+              placeholder="閫夋嫨鏃ユ湡鏃堕棿"
+              value-format="yyyy-MM-dd HH:mm:ss">
+            </el-date-picker>
+          </el-form-item>
+        </el-form>
       </div>
       <span slot="footer" class="dialog-footer">
         <el-button @click="syncDateVisible = false">鍙� 娑�</el-button>
@@ -283,6 +283,7 @@
 import MpsRequirements from './mps-requirements'
 import SalesPartBatchDialog from './sales-part-batch.vue'
 import CustomerorderReturnDialog from './customerorder-return.vue'
+import { otcCustomerOrderSync } from '@/api/plan/customerorder'
 import {
   delCustomerOrder,
   fetchListCustomerOrder,
@@ -310,6 +311,14 @@
 export default {
   data() {
     return {
+      dataForm: {
+        selectTime: null,
+        exportTime: null
+      },
+      dataRule: {
+        exportTime:[{required:true,message:'瀵煎嚭鏃ユ湡涓嶈兘涓虹┖',trigger:'change'}],
+        selectTime:[{required:true,message:'鏃ユ湡涓嶈兘涓虹┖',trigger:'change'}]
+      },
       pickerOptions: {
         onPick: ({ maxDate, minDate }) => {
           if (minDate && this.pickerMinDate) {
@@ -819,7 +828,7 @@
       this.table.toolbar.push({
         text: '鑾峰彇閿�鍞鍗�',
         type: 'primary',
-        fun: this.pullCustomerOrder,
+        fun: this.syncERP,
         disabled: false,
         permitArr: []
       })
@@ -1534,28 +1543,37 @@
       this.syncDateVisible = false
       this.table.toolbar.find((e) => e.text === '鑾峰彇閿�鍞鍗�').loading = true
 
-      syncOrder({
-        startTime: this.syncDate[0],
-        endTime: this.syncDate[1]
-      })
-        .then((res) => {
-          this.table.toolbar.find(
-            (e) => e.text === '鑾峰彇閿�鍞鍗�'
-          ).loading = false
-          const resData = res.data
-          if (resData.code === 0) {
-            this.$message.success(resData.data)
-            this.getData()
-          } else {
-            this.$message.error('鍚屾澶辫触')
-          }
+      if (this.dataForm.selectTime != null && this.dataForm.selectTime != '') {
+        otcCustomerOrderSync({
+          selectTime: this.dataForm.selectTime,
+          orderNo: ''
         })
-        .catch((e) => {
-          this.table.toolbar.find(
-            (e) => e.text === '鑾峰彇閿�鍞鍗�'
-          ).loading = false
-          this.$forceUpdate()
-        })
+          .then((response) => {
+            this.table.toolbar.find(
+              (e) => e.text === '鑾峰彇閿�鍞鍗�'
+            ).loading = false
+            const resData = response.data
+            if (resData.code === 0) {
+              this.$message.success('鑾峰彇閿�鍞鍗曟垚鍔燂紱' + resData.msg)
+              this.dataForm.selectTime = null
+              this.$emit('refreshDataList')
+              this.getData()
+            } else {
+              this.$message.success('鎷夊彇閿�鍞鍗曞け璐�')
+            }
+          })
+          .catch((e) => {
+            this.table.toolbar.find(
+              (e) => e.text === '鑾峰彇閿�鍞鍗�'
+            ).loading = false
+            this.$forceUpdate()
+          })
+      } else {
+        this.table.toolbar.find(
+          (e) => e.text === '鑾峰彇閿�鍞鍗�'
+        ).loading = false
+        this.$message.error('璇峰厛閫夋嫨鏃ユ湡')
+      }
     }
   }
 }
diff --git a/src/views/plan/customerorder/other-customer-order-line.vue b/src/views/plan/customerorder/other-customer-order-line.vue
index 2663c3a..0af2b9d 100644
--- a/src/views/plan/customerorder/other-customer-order-line.vue
+++ b/src/views/plan/customerorder/other-customer-order-line.vue
@@ -111,8 +111,8 @@
       }
     },
     customerOrderId: {
-      type: Number,
-      default: 0
+      type: String,
+      default: ''
     },
     otherCustomerOrderLineList: {
       type: Array,
diff --git a/src/views/plan/customerorder/sample-customerorder-form.vue b/src/views/plan/customerorder/sample-customerorder-form.vue
index 85f9d64..6c11ee7 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"
@@ -51,30 +51,40 @@
               <el-input v-model="dataForm.entityName" placeholder=""></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="6">
+          <!-- <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-row>
-        <el-row>
+          </el-col> -->
           <el-col :span="6">
             <el-form-item label="鐪佷唤" prop="province">
               <el-input v-model="dataForm.province" placeholder=""></el-input>
             </el-form-item>
           </el-col>
+        </el-row>
+        <el-row>
           <el-col :span="6">
             <el-form-item label="涓氬姟鍛�" prop="salesMan">
-              <el-input v-model="dataForm.salesMan" placeholder=""></el-input>
+              <el-select @change="selsctionSales" v-model="salesSelectData" style="width:100%">
+                <el-option v-for="(item,index) in staffOptions" :key="index" :value="item" :label="item.staffName"/>
+              </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item label="姝f湰鐘舵��" prop="originalContractStatus">
               <el-input
                 v-model="dataForm.originalContractStatus"
+                placeholder=""
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="鍚堝悓姝f湰鐘舵��" prop="returnStatus">
+              <el-input
+                v-model="dataForm.returnStatus"
                 placeholder=""
               ></el-input>
             </el-form-item>
@@ -89,14 +99,6 @@
           <el-col :span="6">
             <el-form-item label="瀹㈡埛缂栫爜" prop="customerNo">
               <el-input v-model="dataForm.customerNo" placeholder=""></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="鍚堝悓姝f湰鐘舵��" prop="returnStatus">
-              <el-input
-                v-model="dataForm.returnStatus"
-                placeholder=""
-              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
@@ -121,6 +123,30 @@
               </el-date-picker>
             </el-form-item>
           </el-col>
+          <el-col :span="6">
+            <el-form-item label="浜よ揣鏃ユ湡" prop="deliveryDate">
+              <el-date-picker
+                v-model="dataForm.deliveryDate"
+                style="width: 100%"
+                type="datetime"
+                value-format="yyyy-MM-dd HH:mm:ss"
+              >
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="璁㈠崟澶囨敞" prop="comment">
+              <el-input
+                v-model="dataForm.comment"
+                style="width: 100%"
+                type="textarea"
+                :rows="2"
+              >
+              </el-input>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
     </div>
@@ -128,7 +154,7 @@
     <el-divider>
       <span style="font-weight:bold;font-size:16px;">璁㈠崟琛�</span>
     </el-divider>
-    <div class="l-mes normal-form">
+    <div>
       <avue-crud ref="crud"
         show-hide="false"
         :option="option"
@@ -147,12 +173,198 @@
                 :value="item.value" />
             </el-select>
           </template>
-          <template slot="menu" slot-scope="scope">
-            <el-button :disabled="tableData.length<2" @click="delRow(scope.row,scope.$index)" 
-            icon="el-icon-circle-close" type="text" size="small">鍙栨秷</el-button>
-          </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>
@@ -195,6 +407,8 @@
 import { remote } from '@/api/admin/dict'
 import PartDialog from '@/views/common/part.vue'
 import { validateSixDecimal } from '@/util/validate'
+import {dateFormat} from '@/util/date'
+// import { chooseStaff } from '@/api/admin/productType'
 import { tableOption } from '@/const/crud/customerOrder/customerOrderForm'
 
 export default {
@@ -203,7 +417,8 @@
   },
   data() {
     return {
-      currentSelectRow: null,
+      salesSelectData: null,
+      currentSelectRow: 0,
       option: tableOption,
       tableData: [{
           "$cellEdit": true,
@@ -219,45 +434,29 @@
           "remark": "",
           "isTrusted": true
       }],
+      staffOptions: [],
       title: '',
       isFullScreen: false,
       visible: false,
       buttonDisable: false,
       showPart: false,
       dataForm: {
-        id: 0,
         contractNo: null,
         customerName: null,
-        entityName: null,
-        salesDepartment: null,
-        province: null,
-        salesMan: null,
-        originalContractStatus: null,
-        isCp: null,
         customerNo: null,
-        returnStatus: null,
-        placeOrderDate: null,
+        customerOrderVOList: [],
+        deliveryDate: null,
+        entityName: null,
         factoryPlaceOrderDate: null,
-        customerOrder: {
-          partNo: null,
-          unit: null,
-          buyQtyDue: null,
-          voltAgeClass: null,
-          productName: null,
-          manufactureAttr: 'S',
-          outerColor: null,
-          customerPartSpec: null,
-          printType: null,
-          printingRequirements: null,
-          packageRequire: null,
-          qualityRequire: null,
-          otherProductRequire: null,
-          divisionSystem: null,
-          shippingAddress: null,
-          salesmanName: null,
-          lengthRequirement: null,
-          remark: null
-        }
+        salesDepartment: null,
+        isCp: null,
+        originalContractStatus: null,
+        placeOrderDate: null,
+        province: null,
+        returnStatus: null,
+        salesMan: null,
+        salerWorkCode: null,
+        comment: null
       },
       dataRule: {},
       units: [],
@@ -267,10 +466,17 @@
   mounted: function() {
     this.getDicUnit('unit') // 鑾峰彇鍗曚綅
     this.getManufactureAttrs('manufacture_attr_type')
+    this.getStaffOptions();
   },
   methods: {
-    delRow(row,index) {
-      this.tableData.splice(index,1)
+    selsctionSales(data){
+        this.dataForm.salesMan =  data.staffName
+        this.dataForm.salerWorkCode = data.staffNo
+    },
+    getStaffOptions(){
+      // chooseStaff().then((response)=>{
+      //   this.staffOptions = response.data.data
+      // })
     },
     init(id) {
       this.initDataForm()
@@ -280,46 +486,44 @@
       })
     },
     initDataForm() {
-      this.dataForm.id = 0
       this.dataForm.contractNo = null
       this.dataForm.customerName = null
       this.dataForm.entityName = null
-      this.dataForm.salesDepartment = null
       this.dataForm.province = null
       this.dataForm.salesMan = null
       this.dataForm.originalContractStatus = null
       this.dataForm.isCp = null
       this.dataForm.customerNo = null
       this.dataForm.returnStatus = null
-      this.dataForm.placeOrderDate = null
-      this.dataForm.factoryPlaceOrderDate = null
-      this.dataForm.customerOrder.partNo = null
-      this.dataForm.customerOrder.unit = null
-      this.dataForm.customerOrder.buyQtyDue = null
-      this.dataForm.customerOrder.voltAgeClass = null
-      this.dataForm.customerOrder.productName = null
-      this.dataForm.customerOrder.manufactureAttr = 'S'
-      this.dataForm.customerOrder.outerColor = null
-      this.dataForm.customerOrder.customerPartSpec = null
-      this.dataForm.customerOrder.printType = null
-      this.dataForm.customerOrder.printingRequirements = null
-      this.dataForm.customerOrder.packageRequire = null
-      this.dataForm.customerOrder.qualityRequire = null
-      this.dataForm.customerOrder.otherProductRequire = null
-      this.dataForm.customerOrder.divisionSystem = null
-      this.dataForm.customerOrder.shippingAddress = null
-      this.dataForm.customerOrder.salesmanName = null
-      this.dataForm.customerOrder.lengthRequirement = null
-      this.dataForm.customerOrder.remark = null
+      this.dataForm.placeOrderDate = dateFormat(new Date(),'yyyy-MM-dd hh:mm:ss')
+      this.dataForm.factoryPlaceOrderDate = dateFormat(new Date(),'yyyy-MM-dd hh:mm:ss')
+      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
+      }]
     },
     // 琛ㄥ崟鎻愪氦
     dataFormSubmit() {
       this.buttonDisable = true
       this.$refs.dataForm.validate((valid) => {
+        this.dataForm.customerOrderVOList = this.tableData
         if (valid) {
           addObj(this.dataForm)
             .then((data) => {
               this.$message.success('娣诲姞鎴愬姛')
+              this.initDataForm();
               this.visible = false
               this.buttonDisable = false
               this.$emit('refreshDataList', 1)
@@ -338,12 +542,12 @@
       this.showPart = true
     },
     selectPart(part) {
+      console.log(part);
+      const index = this.currentSelectRow
       if (part) {
-        this.dataForm.customerOrder.partNo = part.partNo
-        const index = this.currentSelectRow
-          this.tableData[index].partNo = part.partNo
-          this.tableData[index].customerPartSpec = part.specs
-          this.tableData[index].productName = part.partName
+        this.tableData[index].partNo = part.partNo
+        this.tableData[index].customerPartSpec = part.specs
+        this.tableData[index].productName = part.partName
       }
     },
     // 鍏ㄥ睆
@@ -371,4 +575,4 @@
     }
   }
 }
-</script>
+</script>
\ No newline at end of file

--
Gitblit v1.9.3