zouyu
2023-10-12 d541cc1adf43277932f9367356c0fdba99e8b34a
	modified:   src/views/admin/productType/index.vue
modified: src/views/plan/customerorder/sample-customerorder-form.vue
modified: src/views/plan/manufacturingorder/index.vue
已修改3个文件
已添加1个文件
260 ■■■■■ 文件已修改
src/const/crud/customerOrder/customerOrderForm.js 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/admin/productType/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/customerorder/sample-customerorder-form.vue 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/manufacturingorder/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/const/crud/customerOrder/customerOrderForm.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
/*
 *    Copyright (c) 2018-2025, ztt All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the pig4cloud.com developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: ztt
 */
export const tableOption = {
  border: true,
  index: true,
  height: '292px',
  indexLabel: '序号',
  menuAlign: 'center',
  menuWidth: 100,
  editBtn: false,
  delBtn: false,
  align: 'center',
  addBtn: false,
  addRowBtn: true,
  column: [{
    label: '零件号',
    slot: true,
    formSlot: true,
    cell: true,
    prop: 'partNo',
    span: 24
  }, {
    label: '零件规格',
    prop: 'customerPartSpec',
    type: 'input',
    cell: true,
    span: 24
  }, {
    label: '制造属性',
    prop: 'manufactureAttr',
    cell: true,
    type: 'input',
    span: 24,
  }, {
    label: '产品名称',
    prop: 'productName',
    cell: true,
    type: 'input',
    span: 24
  }, {
    label: '产品类型',
    prop: 'productType',
    cell: true,
    type: 'input',
    span: 24
  }, {
    label: '单位',
    prop: 'otcUnit',
    slot: true,
    formSlot: true,
    cell: true,
    type: 'input',
    span: 24
  }, {
    label: '数量',
    prop: 'buyQtyDue',
    cell: true,
    type: 'input',
    dataType: 'number',
    span: 24,
    rules:[{message:'类型必须是数字',trigger:'blur'}]
  }, {
    label: '收货地址',
    prop: 'shippingAddress',
    cell: true,
    type: 'input',
    span: 24
  }, {
    label: '备注',
    prop: 'remark',
    cell: true,
    type: 'input',
    span: 24
  }, ]
}
src/views/admin/productType/index.vue
@@ -155,8 +155,9 @@
                staffId: this.prodForm.staffName,
                productType: this.prodForm.type
              }).then(response => {
                this.dialogAddVisible = false
                this.$message.success("添加成功")
                this.refreshChange();
                this.refreshChange()
              }).catch(() => {
                this.$message.error("添加失败")
              })
src/views/plan/customerorder/sample-customerorder-form.vue
@@ -68,8 +68,8 @@
        <el-row>
          <el-col :span="6">
            <el-form-item label="业务员" prop="salesMan">
              <el-select v-model="dataForm.salesMan" style="width:100%">
                <el-option v-for="(item,index) in staffOptions" :key="index" :value="item.staff_no" :label="item.staffName"/>
              <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>
@@ -138,50 +138,29 @@
      </el-form>
    </div>
    <el-divider
      ><span style="font-weight:bold;font-size:16px;">订单行</span></el-divider
    >
    <el-table
      :data="tableData"
      border
      style="width: 100%">
      <el-table-column
        prop="date"
        label="零件号">
      </el-table-column>
      <el-table-column
        prop="name"
        label="零件规格">
      </el-table-column>
      <el-table-column
        prop="address"
        label="产品名称">
      </el-table-column>
      <el-table-column
        prop="address"
        label="产品类型">
      </el-table-column>
      <el-table-column
        prop="address"
        label="制造属性">
      </el-table-column>
      <el-table-column
        prop="address"
        label="收货地址">
      </el-table-column>
      <el-table-column
        prop="address"
        label="数量">
      </el-table-column>
      <el-table-column
        prop="address"
        label="单位">
      </el-table-column>
      <el-table-column
        prop="address"
        label="备注">
      </el-table-column>
    </el-table>
    <el-divider>
      <span style="font-weight:bold;font-size:16px;">订单行</span>
    </el-divider>
    <div>
      <avue-crud ref="crud"
        :option="option"
        :data="tableData">
          <template slot="partNo" slot-scope="scope">
            <el-input v-model="scope.row.partNo" placeholder="" readonly>
                <el-button slot="append" icon="el-icon-search" @click="openPartDialog(scope.row.$index)"></el-button>
            </el-input>
          </template>
          <template slot="otcUnit" slot-scope="scope">
            <el-select v-model="scope.row.otcUnit" placeholder="" style="width: 100%">
              <el-option
                v-for="item in units"
                :key="item.value"
                :label="item.label"
                :value="item.value" />
            </el-select>
          </template>
      </avue-crud>
    </div>
    <!-- <div class="l-mes normal-form">
      <el-row :gutter="20">
        <el-col :span="2">
@@ -415,6 +394,7 @@
import PartDialog from '@/views/common/part.vue'
import { validateSixDecimal } from '@/util/validate'
import { chooseStaff } from '@/api/admin/productType'
import { tableOption } from '@/const/crud/customerOrder/customerOrderForm'
export default {
  components: {
@@ -422,7 +402,23 @@
  },
  data() {
    return {
      tableData: [],
      salesSelectData: null,
      currentSelectRow: 0,
      option: tableOption,
      tableData: [{
          "$cellEdit": true,
          "$index": 0,
          "partNo": "",
          "customerPartSpec": "",
          "manufactureAttr": "",
          "productName": "",
          "productType": "",
          "otcUnit": "",
          "buyQtyDue": "",
          "shippingAddress": "",
          "remark": "",
          "isTrusted": true
      }],
      staffOptions: [],
      title: '',
      isFullScreen: false,
@@ -430,41 +426,21 @@
      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,
        factoryPlaceOrderDate: null,
        customerOrderVOList: [],
        deliveryDate: 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,
          productType: null
        }
        entityName: null,
        factoryPlaceOrderDate: null,
        salesDepartment: null,
        isCp: null,
        originalContractStatus: null,
        placeOrderDate: null,
        province: null,
        returnStatus: null,
        salesMan: null,
        salerWorkCode: null,
      },
      dataRule: {},
      units: [],
@@ -477,6 +453,10 @@
    this.getStaffOptions();
  },
  methods: {
    selsctionSales(data){
        this.dataForm.salesMan =  data.staffName
        this.dataForm.salerWorkCode = data.staffNo
    },
    getStaffOptions(){
      chooseStaff().then((response)=>{
        this.staffOptions = response.data.data
@@ -490,11 +470,9 @@
      })
    },
    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
@@ -504,29 +482,12 @@
      this.dataForm.placeOrderDate = null
      this.dataForm.factoryPlaceOrderDate = null
      this.dataForm.deliveryDate = 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
    },
    // è¡¨å•提交
    dataFormSubmit() {
      this.buttonDisable = true
      this.$refs.dataForm.validate((valid) => {
        this.dataForm.customerOrderVOList = this.tableData
        if (valid) {
          addObj(this.dataForm)
            .then((data) => {
@@ -544,12 +505,17 @@
      })
    },
    // é›¶ä»¶é€‰æ‹©
    openPartDialog() {
    openPartDialog(index) {
      this.currentSelectRow = index
      this.showPart = true
    },
    selectPart(part) {
      console.log(part);
      const index = this.currentSelectRow
      if (part) {
        this.dataForm.customerOrder.partNo = part.partNo
        this.tableData[index].partNo = part.partNo
        this.tableData[index].customerPartSpec = part.specs
        this.tableData[index].productName = part.partName
      }
    },
    // å…¨å±
src/views/plan/manufacturingorder/index.vue
@@ -324,7 +324,7 @@
            sort: true,
            isTrue: true,
            formatter: this.formatState,
            propVal: '01planned',
            propVal: '',
            isSearch: true,
            searchInfoType: 'select',
            optList: () => {