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
¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * 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 |
| | | }, ] |
| | | } |
| | |
| | | <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]) |
| | |
| | | </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 |
| | | > |
| | |
| | | </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 }} |
| | |
| | | <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;" |
| | |
| | | { |
| | | 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: [ |
| | |
| | | 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', |
| | |
| | | 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: 'è·åéå®è®¢å', |
| | |
| | | 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) { |
| | |
| | | </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"> |
| | |
| | | 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: { |
| | |
| | | }, |
| | | 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, |
| | |
| | | this.getManufactureAttrs('manufacture_attr_type') |
| | | }, |
| | | methods: { |
| | | delRow(row,index) { |
| | | this.tableData.splice(index,1) |
| | | }, |
| | | init(id) { |
| | | this.initDataForm() |
| | | this.visible = true |
| | |
| | | }) |
| | | }, |
| | | // é¶ä»¶éæ© |
| | | 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 |
| | | } |
| | | }, |
| | | // å
¨å± |