zouyu
2023-11-14 e2c3d91242be8953c5d73ddddc04839b22a9f1e1
	new file:   src/const/crud/customerOrder/customerOrderForm.js
modified: src/views/common/ztt-table.vue
modified: src/views/plan/customerorder/index.vue
modified: src/views/plan/customerorder/sample-customerorder-form.vue
已修改3个文件
已添加1个文件
946 ■■■■ 文件已修改
src/const/crud/customerOrder/customerOrderForm.js 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/common/ztt-table.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/customerorder/index.vue 576 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/customerorder/sample-customerorder-form.vue 254 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/const/crud/customerOrder/customerOrderForm.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,113 @@
/*
 *    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,
  cancelBtn: false,
  refreshBtn: false, // æ˜¯å¦æ˜¾ç¤ºåˆ·æ–°æŒ‰é’®
  columnBtn: false, // æ˜¯å¦æ˜¾ç¤ºæ˜¾å½±æŒ‰é’®H
  column: [{
    label: '零件号',
    slot: true,
    formSlot: true,
    cell: true,
    prop: 'partNo',
    minWidth: 200,
    span: 24
  }, {
    label: '零件规格',
    prop: 'customerPartSpec',
    type: 'input',
    cell: true,
    minWidth: 200,
    span: 24
  }, {
    label: '制造属性',
    prop: 'manufactureAttr',
    cell: true,
    type: 'select',
    minWidth: 200,
    span: 24,
    dicData:[{
        label: '普通',
        value: 'N'
    },{
        label: '样品',
        value: 'S'
    },{
        label: '研发',
        value: 'D'
    }]
  }, {
    label: '产品名称',
    prop: 'productName',
    cell: true,
    type: 'input',
    minWidth: 200,
    span: 24
  }, {
    label: '隶属品牌',
    prop: 'productType',
    cell: true,
    type: 'input',
    minWidth: 200,
    span: 24
  }, {
    label: '单位',
    prop: 'otcUnit',
    slot: true,
    formSlot: true,
    cell: true,
    type: 'input',
    minWidth: 200,
    span: 24
  }, {
    label: '数量',
    prop: 'buyQtyDue',
    cell: true,
    type: 'input',
    dataType: 'number',
    minWidth: 200,
    span: 24,
    rules:[{message:'类型必须是数字',trigger:'blur'}]
  }, {
    label: '收货地址',
    prop: 'shippingAddress',
    cell: true,
    type: 'input',
    minWidth: 200,
    span: 24
  }, {
    label: '产品备注',
    prop: 'remark',
    cell: true,
    type: 'textarea',
    minWidth: 200,
    span: 24,
    minRows: 1,
    maxRows: 3
  }, ]
}
src/views/common/ztt-table.vue
@@ -327,6 +327,9 @@
              <template v-else>
                <template v-if="!item.render">
                  <template v-if="item.formatter">
                    <span v-if="item.isTag">
                      <el-tag type="success">aaa</el-tag>
                    </span>
                    <span
                      v-html="
                        item.formatter(scope.row, item, scope.row[item.prop])
src/views/plan/customerorder/index.vue
@@ -21,8 +21,9 @@
            </el-button>
            <el-dropdown-menu slot="dropdown">
              <el-dropdown-item
                :key="index"
                :command="item.command"
                v-for="item in stateTagArr"
                v-for="(item,index) in stateTagArr"
                :disabled="item.disabled"
                >{{ item.label }}</el-dropdown-item
              >
@@ -38,8 +39,9 @@
            </el-button>
            <el-dropdown-menu slot="dropdown">
              <el-dropdown-item
                :key="index"
                :command="item.command"
                v-for="item in documentTagArr"
                v-for="(item,index) in documentTagArr"
                :disabled="item.disabled"
              >
                {{ item.label }}
@@ -58,12 +60,20 @@
            <el-dropdown-menu slot="dropdown">
              <el-dropdown-item
                :command="item.command"
                v-for="item in commitStateTagArr"
                :key="index"
                v-for="(item,index) in commitStateTagArr"
                :disabled="item.disabled"
                >{{ item.label }}</el-dropdown-item
              >
            </el-dropdown-menu>
          </el-dropdown>
          <el-button
            v-if="permissions.customerorder_ifs_line"
            style="margin-left:10px;"
            type="primary"
            @click="pullIfsLineNo"
            >获取OTC行号</el-button
          >
          <el-button
            v-if="permissions.customerorder_push_otc"
            style="margin-left:10px;"
@@ -419,9 +429,8 @@
          {
            minWidth: '100',
            width: '100px',
            prop: 'customerOrderNo',
            prop: 'contractNo',
            label: '合同编号',
            // label: '订单号',
            sort: true,
            isTrue: true,
            isSearch: true,
@@ -431,8 +440,7 @@
          {
            minWidth: '120',
            prop: 'entityName',
            label: '合同主题',
            sort: false,
            label: '工程名称',
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
@@ -445,6 +453,19 @@
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '120',
            prop: 'sourceId',
            label: '添加来源',
            isTag: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'select',
            formatter: this.getSourceId,
            optList: () => {
              return this.sourceIdList
            }
          },
          {
            minWidth: '200',
@@ -460,42 +481,13 @@
          {
            minWidth: '120',
            prop: 'placeOrderDate',
            label: '签订日期',
            label: '下单日期',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text',
            formatter: this.formatDutyDate
          },
          {
            minWidth: '120',
            prop: 'factoryPlaceOrderDate',
            label: '开始日期',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text',
            formatter: this.formatDutyDate
          },
          {
            minWidth: '120',
            prop: 'endTime',
            label: '终止日期',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text',
            formatter: this.formatDutyDate
          },
          // {
          //   minWidth: '120',
          //   prop: 'customerNo',
          //   label: '客户编号',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'text'
          // },
          {
            minWidth: '120',
            prop: 'customerName',
@@ -505,16 +497,6 @@
            isSearch: true,
            searchInfoType: 'text'
          },
          // {
          //   minWidth: '120',
          //   prop: 'customerContractNo',
          //   label: '客户订单号',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'text'
          // },
          {
            minWidth: '120',
            prop: 'coState',
@@ -541,108 +523,20 @@
              return this.isAuditList
            }
          },
          {
            minWidth: '80',
            prop: 'ifsDeliveryNo',
            label: '合同分类',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '80',
            prop: 'ifsLineItemNo',
            label: '合同来源',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '80',
            prop: 'returnStatus',
            label: '合同状态',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '80',
            prop: 'originalContractStatus',
            label: '出库状态',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '120',
            prop: 'ifsSalesUnit',
            label: '启用状态',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          // {
          //   minWidth: '120',
          //   prop: 'coLineNo',
          //   label: 'GSM行号',
          //   minWidth: '80',
          //   prop: 'sourceId',
          //   label: '订单来源',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'text'
          // },
          // {
          //   minWidth: '120',
          //   prop: 'otcLineNo',
          //   label: 'OTC行号',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'text'
          // },
          // // çŠ¶æ€
          // {
          //   minWidth: '120',
          //   prop: 'otcPartSync',
          //   label: 'OTC推送状态',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'select',
          //   optList: () => {
          //     return this.getOtcPartSyncOptionList()
          //   },
          //   formatter: (row, column, cellValue) => {
          //     var formatVal
          //     if (cellValue == null) {
          //       formatVal = ''
          //     } else if (cellValue) {
          //       formatVal = '已同步'
          //     } else {
          //       formatVal = '未同步'
          //     }
          //     return formatVal
          //   }
          // },
          // {
          //   minWidth: '120',
          //   prop: 'verifyDate',
          //   label: 'OTC审核时间',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'datetimerange'
          // },
          {
            minWidth: '120',
            width: '100px',
            prop: 'partNo',
            label: '零件号',
            label: '产品编号',
            sort: true,
            isTrue: true,
            isSearch: true,
@@ -651,8 +545,8 @@
          {
            minWidth: '120',
            width: '100px',
            prop: 'customerPartName',
            label: '零件名称',
            prop: 'productName',
            label: '产品名称',
            sort: true,
            isTrue: true,
            isSearch: true,
@@ -662,7 +556,7 @@
            minWidth: '120',
            width: '100px',
            prop: 'productType',
            label: '型号',
            label: '隶属品牌',
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
@@ -671,7 +565,7 @@
            minWidth: '120',
            width: '100px',
            prop: 'otcUnit',
            label: '零件属性',
            label: '单位',
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
@@ -688,45 +582,8 @@
          },
          {
            minWidth: '120',
            width: '100px',
            prop: 'outerColor',
            label: '外护颜色',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '120',
            prop: 'otcQuantity',
            label: '销售数量',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '80',
            prop: 'otcUnit',
            label: '销售单位',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '120',
            prop: 'buyQtyDue',
            label: '库存数量',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '80',
            prop: 'unit',
            label: '零件单位',
            label: '数量',
            sort: true,
            isTrue: true,
            isSearch: true,
@@ -734,253 +591,6 @@
          },
          {
            minWidth: '140',
            prop: 'requireNumber',
            label: '已下发数量',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'customerPartSpec',
            label: '客户零件规格',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'finalCustomerName',
            label: '最终客户名称',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'productGroup',
            label: '产品分组',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'productType',
            label: '产品类型',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'centralizedMiningProperty',
            label: '采集性质',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'orderDescription',
            label: '订单说明',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'division',
            label: '事业部',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'printType',
            label: '印字方式',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'printingRequirements',
            label: '印字要求',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'printContent',
            label: '印字内容',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'packageRequire',
            label: '包装要求',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'qualityRequire',
            label: '质量要求',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'otherProductRequire',
            label: '生产需求说明',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'divisionSystem',
            label: '系统',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'shippingAddress',
            label: '收货地址',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'salesmanName',
            label: '业务员',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'lengthRequirement',
            label: '盘长要求',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'remark',
            label: '订单行备注',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'comment',
            label: '订单头备注',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          // {
          //   minWidth: '80',
          //   prop: 'ifsLineNo',
          //   label: 'IFS行号',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'text'
          // },
          // {
          //   minWidth: '80',
          //   prop: 'ifsDeliveryNo',
          //   label: 'IFS交货号',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'text'
          // },
          // {
          //   minWidth: '80',
          //   prop: 'ifsLineItemNo',
          //   label: 'IFS行项号',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'text'
          // },
          {
            minWidth: '80',
            prop: 'salesPartNo',
            label: '销售件号',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '80',
            prop: 'salesPartName',
            label: '销售件描述',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            width: '120',
            prop: 'wantedDeliveryDate',
            label: '期望交货时间',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'datetimerange',
            formatter: this.formatDutyDate
          },
          {
            minWidth: '200',
            width: '120',
            prop: 'plannedDeliveryDate',
            label: '计划交货时间',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'datetimerange',
            formatter: this.formatDutyDate
          },
          {
            minWidth: '120',
            prop: 'manufactureAttr',
            label: '制造属性',
            sort: true,
@@ -989,20 +599,56 @@
            searchInfoType: 'select',
            formatter: this.getManufactureAttr,
            optList: () => {
              return this.manufactureAttrs
              return this.manufactureAttrList
            }
          }
          // {
          //   minWidth: '200',
          //   width: '120',
          //   prop: 'createTime',
          //   label: '创建时间',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'datetimerange',
          //   formatter: this.formatDutyDate
          // }
          },
          {
            minWidth: '140',
            prop: 'customerPartSpec',
            label: '规格型号',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'returnStatus',
            label: '合同正本状态',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'originalContractStatus',
            label: '正本状态',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'salesMan',
            label: '业务员',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            width: '120',
            prop: 'deliveryDate',
            label: '交货时间',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'datetimerange',
            formatter: this.formatDutyDate
          },
        ],
        toolbar: [],
        operator: [
@@ -1162,36 +808,6 @@
  created() {
    this.getManufactureAttrs()
    this.getTitles()
    /**
     * {
            text: '获取销售订单',
            type: 'primary',
            fun: this.pullCustomerOrder,
            disabled: false,
            permitArr: []
          },
          {
            text: '获取IFS行号',
            type: 'primary',
            fun: this.pullIfsLineNo,
            disabled: false,
            permitArr: [],
            loading: false
          },
          {
            text: '提交审核',
            type: 'primary',
            fun: this.auditCustomerOrder,
            disabled: false,
            permitArr: [],
            loading: false
          },
          {
            text: '主生产计划',
            disabled: false,
            fun: this.masterPlanHandle
          }
     */
    this.table.toolbar.push({
      text: '新增销售订单',
      type: 'primary',
@@ -1199,14 +815,6 @@
      disabled: false,
      permitArr: []
    })
    // this.table.toolbar.push({
    //   text: '同步ERP',
    //   type: 'primary',
    //   fun: this.syncERP,
    //   loading: false,
    //   disabled: false,
    //   permitArr: []
    // })
    if (this.permissions.customerorder_from_otc) {
      this.table.toolbar.push({
        text: '获取销售订单',
@@ -1214,16 +822,6 @@
        fun: this.syncERP,
        disabled: false,
        permitArr: []
      })
    }
    if (this.permissions.customerorder_ifs_line) {
      this.table.toolbar.push({
        text: '获取OTC行号',
        type: 'primary',
        fun: this.pullIfsLineNo,
        disabled: false,
        permitArr: [],
        loading: false
      })
    }
    if (this.permissions.customerorder_submit_oa) {
src/views/plan/customerorder/sample-customerorder-form.vue
@@ -125,208 +125,33 @@
      </el-form>
    </div>
    <el-divider
      ><span style="font-weight:bold;font-size:16px;">订单行</span></el-divider
    >
    <el-divider>
      <span style="font-weight:bold;font-size:16px;">订单行</span>
    </el-divider>
    <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.printType"
            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.printingRequirements"
            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-col :span="2">
          <span>质量要求</span>
        </el-col>
        <el-col :span="6">
          <el-input
            v-model="dataForm.customerOrder.qualityRequire"
            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.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-col :span="2">
          <span>收货地址</span>
        </el-col>
        <el-col :span="6">
          <el-input
            v-model="dataForm.customerOrder.shippingAddress"
            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.salesmanName"
            placeholder=""
          ></el-input>
        </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-col :span="2">
          <span>备注</span>
        </el-col>
        <el-col :span="6">
          <el-input
            v-model="dataForm.customerOrder.remark"
            placeholder=""
          ></el-input>
        </el-col>
      </el-row>
      <avue-crud ref="crud"
        show-hide="false"
        :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>
          <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>
    <span slot="footer" class="dialog-footer">
@@ -370,6 +195,7 @@
import { remote } from '@/api/admin/dict'
import PartDialog from '@/views/common/part.vue'
import { validateSixDecimal } from '@/util/validate'
import { tableOption } from '@/const/crud/customerOrder/customerOrderForm'
export default {
  components: {
@@ -377,6 +203,22 @@
  },
  data() {
    return {
      currentSelectRow: null,
      option: tableOption,
      tableData: [{
          "$cellEdit": true,
          "$index": 0,
          "partNo": "",
          "customerPartSpec": "",
          "manufactureAttr": "",
          "productName": "",
          "productType": "",
          "otcUnit": "",
          "buyQtyDue": "",
          "shippingAddress": "",
          "remark": "",
          "isTrusted": true
      }],
      title: '',
      isFullScreen: false,
      visible: false,
@@ -427,6 +269,9 @@
    this.getManufactureAttrs('manufacture_attr_type')
  },
  methods: {
    delRow(row,index) {
      this.tableData.splice(index,1)
    },
    init(id) {
      this.initDataForm()
      this.visible = true
@@ -488,12 +333,17 @@
      })
    },
    // é›¶ä»¶é€‰æ‹©
    openPartDialog() {
    openPartDialog(index) {
      this.currentSelectRow = index
      this.showPart = true
    },
    selectPart(part) {
      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
      }
    },
    // å…¨å±