| | |
| | | ref="customerOrderTable" |
| | | > |
| | | <template #toolbar> |
| | | <el-dropdown |
| | | <!-- <el-dropdown |
| | | v-if="permissions.customerorder_state_change" |
| | | @command="handleCommand" |
| | | > |
| | |
| | | {{ item.label }} |
| | | </el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </el-dropdown> |
| | | </el-dropdown> --> |
| | | <el-dropdown |
| | | v-if="permissions.customerorder_doc_relate" |
| | | @command="documentHandle" |
| | |
| | | @click="pushOtc" |
| | | >推送ERP</el-button |
| | | > --> |
| | | <el-button |
| | | <!-- <el-button |
| | | style="margin-left:10px;" |
| | | type="primary" |
| | | @click="importOutPutBatch" |
| | | >导入产出批次</el-button |
| | | > |
| | | > --> |
| | | <el-button |
| | | style="margin-left:10px;" |
| | | type="primary" |
| | |
| | | { |
| | | minWidth: '100', |
| | | width: '100px', |
| | | prop: 'customerOrderNo', |
| | | prop: 'contractNo', |
| | | label: '合同编号', |
| | | // label: '订单号', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | |
| | | { |
| | | minWidth: '120', |
| | | prop: 'entityName', |
| | | label: '合同主题', |
| | | sort: false, |
| | | label: '工程名称', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | |
| | | 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', |
| | |
| | | { |
| | | 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', |
| | |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'customerContractNo', |
| | | // label: '客户订单号', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text' |
| | | // }, |
| | | |
| | | { |
| | | minWidth: '120', |
| | | prop: 'coState', |
| | |
| | | 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, |
| | |
| | | { |
| | | minWidth: '120', |
| | | width: '100px', |
| | | prop: 'customerPartName', |
| | | label: '零件名称', |
| | | prop: 'productName', |
| | | label: '产品名称', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | |
| | | minWidth: '120', |
| | | width: '100px', |
| | | prop: 'productType', |
| | | label: '型号', |
| | | label: '产品类型', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | |
| | | minWidth: '120', |
| | | width: '100px', |
| | | prop: 'otcUnit', |
| | | label: '零件属性', |
| | | label: '单位', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | |
| | | }, |
| | | { |
| | | 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, |
| | |
| | | }, |
| | | { |
| | | 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, |
| | |
| | | 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: [ |
| | |
| | | operatorConfig: { |
| | | fixed: 'right', |
| | | label: '操作', |
| | | width: 260, |
| | | width: 100, |
| | | minWidth: 100 |
| | | } |
| | | }, |
| | |
| | | label: '订单编辑' |
| | | } |
| | | ], |
| | | manufactureAttrList: [{ |
| | | label: '普通', |
| | | value: 'N' |
| | | },{ |
| | | label: '样品', |
| | | value: 'S' |
| | | },{ |
| | | label: '研发', |
| | | value: 'D' |
| | | }], |
| | | isAuditList: [ |
| | | { |
| | | value: '01draft', |
| | |
| | | label: '退回' |
| | | } |
| | | ], |
| | | sourceIdList: [{ |
| | | label: '同步', |
| | | value: '0' |
| | | },{ |
| | | label: '手动', |
| | | value: '1' |
| | | }], |
| | | stockVisible: false, |
| | | partName: null, |
| | | showPullCustomerOrderVisible: false, |
| | |
| | | this.initQueryParams() |
| | | }, |
| | | created() { |
| | | this.getManufactureAttrs() |
| | | // this.getManufactureAttrs() |
| | | this.getTitles() |
| | | /** |
| | | * { |
| | |
| | | // }) |
| | | // } |
| | | if (this.permissions.customerorder_submit_oa) { |
| | | this.table.toolbar.push({ |
| | | text: '提交审核', |
| | | type: 'primary', |
| | | fun: this.auditCustomerOrder, |
| | | disabled: false, |
| | | permitArr: [], |
| | | loading: false |
| | | }) |
| | | // this.table.toolbar.push({ |
| | | // text: '提交审核', |
| | | // type: 'primary', |
| | | // fun: this.auditCustomerOrder, |
| | | // disabled: false, |
| | | // permitArr: [], |
| | | // loading: false |
| | | // }) |
| | | } |
| | | if (this.permissions.customerorder_set_salesparts) { |
| | | this.table.toolbar.push({ |
| | |
| | | }, |
| | | // 创建主生产计划 |
| | | masterPlanHandle() { |
| | | console.log(this.multipleSelection); |
| | | if (this.multipleSelection && this.multipleSelection.length > 0) { |
| | | if (this.judgeCoState(this.multipleSelection)) { |
| | | // 判断一下剩余数量是否大于0 |
| | | for (let i = 0, len = this.multipleSelection.length; i < len; i++) { |
| | | if ( |
| | | this.multipleSelection[i].buyQtyDue - |
| | | this.multipleSelection[i].requireNumber <= |
| | | 0 |
| | | ) { |
| | | this.$message.error('请选库存数量大于已下发数量的销售订单') |
| | | return |
| | | } |
| | | // if ( |
| | | // this.multipleSelection[i].buyQtyDue - |
| | | // this.multipleSelection[i].requireNumber <= |
| | | // 0 |
| | | // ) { |
| | | // this.$message.error('请选库存数量大于已下发数量的销售订单') |
| | | // return |
| | | // } |
| | | if ( |
| | | !( |
| | | this.multipleSelection[i].isAudit != null && |
| | |
| | | }) |
| | | return cellValue |
| | | }, |
| | | getManufactureAttr(row, column, cellValue) { |
| | | this.manufactureAttrs.forEach((obj) => { |
| | | getSourceId(row, column, cellValue) { |
| | | this.sourceIdList.forEach((obj) => { |
| | | if (obj.value === cellValue) { |
| | | cellValue = obj.label |
| | | } |
| | | }) |
| | | return cellValue |
| | | }, |
| | | getManufactureAttrs() { |
| | | remote('manufacture_attr_type').then((response) => { |
| | | if (response.data.code === 0) { |
| | | this.manufactureAttrs = response.data.data |
| | | } else { |
| | | this.manufactureAttrs = [] |
| | | getManufactureAttr(row, column, cellValue) { |
| | | this.manufactureAttrList.forEach((obj) => { |
| | | if (obj.value === cellValue) { |
| | | cellValue = obj.label |
| | | } |
| | | }) |
| | | return cellValue |
| | | }, |
| | | // getManufactureAttrs() { |
| | | // remote('manufacture_attr_type').then((response) => { |
| | | // if (response.data.code === 0) { |
| | | // this.manufactureAttrs = response.data.data |
| | | // } else { |
| | | // this.manufactureAttrs = [] |
| | | // } |
| | | // }) |
| | | // }, |
| | | getTitles() { |
| | | remote('order_export_title_type').then((response) => { |
| | | if (response.data.code === 0) { |
| | |
| | | '存在销售订单已关联工艺文件,如需更改,请先解除关联' |
| | | ) |
| | | } |
| | | if (item.salesPartNo == null || item.salesPartNo === '') { |
| | | if (item.partNo == null || item.partNo === '') { |
| | | status = true |
| | | this.$message.error('存在销售订单未绑定销售件,请先绑定') |
| | | } |