zouyu
2023-11-14 6675c7c9342d115b4f4ac6a043ab8cdd36c9dd3a
	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
已修改4个文件
452 ■■■■ 文件已修改
src/views/plan/customerorder/confirm-pull-customerorder.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/customerorder/index.vue 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/customerorder/other-customer-order-line.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/customerorder/sample-customerorder-form.vue 362 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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
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('请先选择日期')
      }
    }
  }
}
src/views/plan/customerorder/other-customer-order-line.vue
@@ -111,8 +111,8 @@
      }
    },
    customerOrderId: {
      type: Number,
      default: 0
      type: String,
      default: ''
    },
    otherCustomerOrderLineList: {
      type: Array,
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="正本状态" prop="originalContractStatus">
              <el-input
                v-model="dataForm.originalContractStatus"
                placeholder=""
              ></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item label="合同正本状态" 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="合同正本状态" 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>