|
|
|
@ -216,15 +216,15 @@ |
|
|
|
|
|
|
|
<!-- 打样模态框 --> |
|
|
|
<el-dialog :title="modalData.title" @close="closeModalDiaLog" @open="openModalDialog" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" top="5vh" width="1200px"> |
|
|
|
<el-form label-position="top" ref="modalForm" :model="modalData" :rules="rules"> |
|
|
|
<el-form label-position="top" ref="modalForm" :model="modalData" :rules="rules" :key="editFormKey"> |
|
|
|
<el-row :gutter="15"> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-row :gutter="10"> |
|
|
|
<el-col :span="10"> |
|
|
|
<el-form-item prop="customerNo" label="客户编码" :show-message="false"> |
|
|
|
<span style="cursor: pointer" slot="label" v-if="modalData.flag === '1'" |
|
|
|
<span style="cursor: pointer" slot="label" v-if="!headerFieldDisabled('customerNo')" |
|
|
|
@click="getBaseList(102,1)"><a herf="#">客户编码</a></span> |
|
|
|
<el-input :disabled="(modalData.flag !== '1' && columnFlagByHeader('customerNo')) || detailVisible" |
|
|
|
<el-input :disabled="headerFieldDisabled('customerNo')" |
|
|
|
v-model="modalData.customerNo" @blur="handleQueryCustomer"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
@ -237,17 +237,17 @@ |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item label="打样数量" prop="proofingNumber" :show-message="false"> |
|
|
|
<el-input-number :controls="false" :disabled="detailVisible" :min="0" v-model="modalData.proofingNumber" :step="0" style="width: 100%"></el-input-number> |
|
|
|
<el-input-number :controls="false" :disabled="headerFieldDisabled('proofingNumber')" :min="0" v-model="modalData.proofingNumber" :step="0" style="width: 100%"></el-input-number> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item label="打样金额" prop="proofingAmount" :show-message="false"> |
|
|
|
<el-input-number :controls="false" :disabled="detailVisible" v-model="modalData.proofingAmount" :step="0" style="width: 100%"></el-input-number> |
|
|
|
<el-input-number :controls="false" :disabled="headerFieldDisabled('proofingAmount')" v-model="modalData.proofingAmount" :step="0" style="width: 100%"></el-input-number> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item label="优先等级" :show-message="false"> |
|
|
|
<dict-data-select v-if="modalFlag" :disabled="columnFlagByHeader('priorityLevel') || detailVisible" |
|
|
|
<dict-data-select v-if="modalFlag" :disabled="headerFieldDisabled('priorityLevel')" |
|
|
|
v-model="modalData.priorityLevel" |
|
|
|
dict-type="priority_Level"></dict-data-select> |
|
|
|
</el-form-item> |
|
|
|
@ -256,7 +256,7 @@ |
|
|
|
<el-form-item label="要求交付日期" prop="requiredDeliveryDate" :show-message="false"> |
|
|
|
<el-date-picker v-model="modalData.requiredDeliveryDate" style="width: 100%" type="date" |
|
|
|
value-format="yyyy-MM-dd" placeholder="选择日期" |
|
|
|
:disabled="columnFlagByHeader('requiredDeliveryDate') || detailVisible"></el-date-picker> |
|
|
|
:disabled="headerFieldDisabled('requiredDeliveryDate')"></el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
@ -265,9 +265,9 @@ |
|
|
|
<el-row :gutter="10"> |
|
|
|
<el-col :span="10"> |
|
|
|
<el-form-item prop="projectId" label="项目号" :show-message="false"> |
|
|
|
<span slot="label" v-if="modalData.customerNo && modalData.flag === '1'" |
|
|
|
<span slot="label" v-if="modalData.customerNo && !headerFieldDisabled('projectId')" |
|
|
|
@click="chooseProjectListFlag = true"><a herf="#">项目号</a></span> |
|
|
|
<el-input :disabled="(!modalData.customerNo || modalData.flag !== '1')" |
|
|
|
<el-input :disabled="headerFieldDisabled('projectId') || !modalData.customerNo" |
|
|
|
v-model="modalData.projectId" @blur="handleQueryProjectByCustomer"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
@ -280,37 +280,37 @@ |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item :show-message="false" prop="trackerName"> |
|
|
|
<label v-if="columnFlagByHeader('tracker') || detailVisible" slot="label">CS</label> |
|
|
|
<label v-if="headerFieldDisabled('tracker')" slot="label">CS</label> |
|
|
|
<span v-else style="cursor: pointer" slot="label" @click="getBaseList(2051)"><a herf="#">CS</a></span> |
|
|
|
<el-input v-model="modalData.trackerName" :disabled="columnFlagByHeader('tracker') || detailVisible" readonly> |
|
|
|
<span slot="suffix" v-show="modalData.trackerName && !detailVisible" @click="clearModalData('tracker')"><i class="el-icon-circle-close" style="margin-left: 5px;cursor: pointer;"></i></span> |
|
|
|
<el-input v-model="modalData.trackerName" :disabled="headerFieldDisabled('tracker')" readonly> |
|
|
|
<span slot="suffix" v-show="modalData.trackerName && !headerFieldDisabled('tracker')" @click="clearModalData('tracker')"><i class="el-icon-circle-close" style="margin-left: 5px;cursor: pointer;"></i></span> |
|
|
|
</el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item :show-message="false"> |
|
|
|
<label v-if="columnFlagByHeader('engineer') || detailVisible" slot="label">NPI工程师</label> |
|
|
|
<label v-if="headerFieldDisabled('engineer')" slot="label">NPI工程师</label> |
|
|
|
<span v-else style="cursor: pointer" slot="label" @click="getBaseList(2052)"><a>NPI工程师</a></span> |
|
|
|
<el-input v-model="modalData.engineerName" :disabled="columnFlagByHeader('engineer') || detailVisible" readonly> |
|
|
|
<span slot="suffix" v-show="modalData.engineerName && !detailVisible" @click="clearModalData('engineer')"><i class="el-icon-circle-close" style="margin-left: 5px;cursor: pointer;"></i></span> |
|
|
|
<el-input v-model="modalData.engineerName" :disabled="headerFieldDisabled('engineer')" readonly> |
|
|
|
<span slot="suffix" v-show="modalData.engineerName && !headerFieldDisabled('engineer')" @click="clearModalData('engineer')"><i class="el-icon-circle-close" style="margin-left: 5px;cursor: pointer;"></i></span> |
|
|
|
</el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item> |
|
|
|
<label v-if="columnFlagByHeader('approver') || detailVisible" slot="label">Approver</label> |
|
|
|
<label v-if="headerFieldDisabled('approver')" slot="label">Approver</label> |
|
|
|
<span v-else style="cursor: pointer" slot="label" @click="getBaseList(2053)"><a herf="#">Approver</a></span> |
|
|
|
<el-input v-model="modalData.approverName" :disabled="columnFlagByHeader('approver') || detailVisible" readonly> |
|
|
|
<span slot="suffix" v-show="modalData.approverName && !detailVisible" @click="clearModalData('approver')"><i class="el-icon-circle-close" style="margin-left: 5px;cursor: pointer;"></i></span> |
|
|
|
<el-input v-model="modalData.approverName" :disabled="headerFieldDisabled('approver')" readonly> |
|
|
|
<span slot="suffix" v-show="modalData.approverName && !headerFieldDisabled('approver')" @click="clearModalData('approver')"><i class="el-icon-circle-close" style="margin-left: 5px;cursor: pointer;"></i></span> |
|
|
|
</el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item> |
|
|
|
<label v-if="columnFlagByDelegateAccess('delegateAccess') || detailVisible" slot="label">DelegateAccess</label> |
|
|
|
<label v-if="delegateFieldDisabled('delegateAccess')" slot="label">DelegateAccess</label> |
|
|
|
<span v-else style="cursor: pointer" slot="label" @click="delegateAccessVisible = true"><a herf="#">DelegateAccess</a></span> |
|
|
|
<el-input v-model="delegateAccessName" :disabled="columnFlagByDelegateAccess('delegateAccess') || detailVisible" readonly> |
|
|
|
<span slot="suffix" v-show="delegateAccessName && !detailVisible" @click="selectionDelegateAccess = []"><i class="el-icon-circle-close" style="margin-left: 5px;cursor: pointer;"></i></span> |
|
|
|
<el-input v-model="delegateAccessName" :disabled="delegateFieldDisabled('delegateAccess')" readonly> |
|
|
|
<span slot="suffix" v-show="delegateAccessName && !delegateFieldDisabled('delegateAccess')" @click="selectionDelegateAccess = []"><i class="el-icon-circle-close" style="margin-left: 5px;cursor: pointer;"></i></span> |
|
|
|
</el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
@ -318,21 +318,21 @@ |
|
|
|
<el-row :gutter="15"> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-form-item label="样品用途" class="auto" prop="sendSamplesUsage" :show-message="false"> |
|
|
|
<el-input v-model="modalData.sendSamplesUsage" :disabled="detailVisible" clearable></el-input> |
|
|
|
<el-input v-model="modalData.sendSamplesUsage" :disabled="headerFieldDisabled('sendSamplesUsage')" clearable></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row :gutter="15"> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-form-item label="样品寄送地址" class="auto"> |
|
|
|
<el-input type="textarea" v-model="modalData.sendSamplesAddress" :disabled="detailVisible" :rows="3" resize='none' show-word-limit></el-input> |
|
|
|
<el-input type="textarea" v-model="modalData.sendSamplesAddress" :disabled="headerFieldDisabled('sendSamplesAddress')" :rows="3" resize='none' show-word-limit></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row :gutter="15"> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-form-item label="备注" style="height: 90px"> |
|
|
|
<el-input type="textarea" v-model="modalData.technicalConsiderations" :disabled="detailVisible" :rows="3" resize='none' show-word-limit></el-input> |
|
|
|
<el-input type="textarea" v-model="modalData.technicalConsiderations" :disabled="headerFieldDisabled('technicalConsiderations')" :rows="3" resize='none' show-word-limit></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
@ -968,40 +968,11 @@ export default { |
|
|
|
|
|
|
|
} |
|
|
|
}, |
|
|
|
columnFlagByHeader() { |
|
|
|
return (value) => { |
|
|
|
if (this.modalData.flag === '1') { |
|
|
|
return false |
|
|
|
} |
|
|
|
if (!this.columnFieldList1) { |
|
|
|
return true |
|
|
|
} |
|
|
|
let arr = this.columnFieldList1.filter(a => a.fieldId === value) |
|
|
|
if (arr.length > 0) { |
|
|
|
return arr[0].updateFlag === 'N' |
|
|
|
} |
|
|
|
return true |
|
|
|
} |
|
|
|
}, |
|
|
|
columnFlagByDelegateAccess() { |
|
|
|
return (value) => { |
|
|
|
if (this.modalData.flag === '1') { |
|
|
|
return false |
|
|
|
} |
|
|
|
if (!this.columnFieldList2) { |
|
|
|
return true |
|
|
|
} |
|
|
|
let arr = this.columnFieldList2.filter(a => a.fieldId === value) |
|
|
|
if (arr.length > 0) { |
|
|
|
return arr[0].updateFlag === 'N' |
|
|
|
} |
|
|
|
return true |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
data() { |
|
|
|
return { |
|
|
|
issuingSet: {}, |
|
|
|
editFormKey: 0, |
|
|
|
approvalList: [], |
|
|
|
selectionDelegateAccess: [], |
|
|
|
selectionDelegateAccess2: [], |
|
|
|
@ -2301,6 +2272,26 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
methods: { |
|
|
|
headerFieldDisabled(fieldId) { |
|
|
|
return this.detailVisible || this.columnFlagByHeader(fieldId) |
|
|
|
}, |
|
|
|
delegateFieldDisabled(fieldId) { |
|
|
|
return this.detailVisible || this.columnFlagByDelegateAccess(fieldId) |
|
|
|
}, |
|
|
|
// 新增都可填。编辑只有当前节点明确勾选可编辑(updateFlag 为 Y)的字段才能改。 |
|
|
|
columnFlagByHeader(value) { |
|
|
|
return !this.fieldEditable(this.columnFieldList1, value) |
|
|
|
}, |
|
|
|
columnFlagByDelegateAccess(value) { |
|
|
|
return !this.fieldEditable(this.columnFieldList2, value) |
|
|
|
}, |
|
|
|
fieldEditable(list, fieldId) { |
|
|
|
if (this.modalData.flag === '1') { |
|
|
|
return true |
|
|
|
} |
|
|
|
const rows = (list || []).filter(item => item.fieldId === fieldId) |
|
|
|
return rows.length > 0 && rows.every(item => item.updateFlag === 'Y') |
|
|
|
}, |
|
|
|
|
|
|
|
fetchNodeOptions() { |
|
|
|
getNodeList(this.searchData).then(({ data }) => { |
|
|
|
@ -2588,6 +2579,9 @@ export default { |
|
|
|
addModal() { |
|
|
|
this.searchDelegateAccessByUser(); |
|
|
|
this.modalData.createBy = this.$store.state.user.name |
|
|
|
this.columnFieldList1 = [] |
|
|
|
this.columnFieldList2 = [] |
|
|
|
this.editFormKey += 1 |
|
|
|
this.modalDisableFlag = false |
|
|
|
this.modalFlag = true |
|
|
|
}, |
|
|
|
@ -2648,6 +2642,7 @@ export default { |
|
|
|
sendSamplesUsage: row.sendSamplesUsage |
|
|
|
} |
|
|
|
this.searchDelegateAccessByUser(); |
|
|
|
this.editFormKey += 1 |
|
|
|
this.modalDisableFlag = true |
|
|
|
this.modalFlag = true |
|
|
|
}, |
|
|
|
@ -2704,6 +2699,7 @@ export default { |
|
|
|
sendSamplesUsage: row.sendSamplesUsage |
|
|
|
} |
|
|
|
this.searchDelegateAccessByUser(); |
|
|
|
this.editFormKey += 1 |
|
|
|
this.modalDisableFlag = true |
|
|
|
this.modalFlag = true |
|
|
|
}, |
|
|
|
@ -2774,7 +2770,7 @@ export default { |
|
|
|
* 客户信息新增/编辑 |
|
|
|
*/ |
|
|
|
saveData() { |
|
|
|
this.$refs.modalForm.validate((valid, obj) => { |
|
|
|
this.$refs.modalForm.validate(async (valid, obj) => { |
|
|
|
if (!valid) { |
|
|
|
let i = 1; |
|
|
|
for (let key in obj) { |
|
|
|
@ -2785,6 +2781,9 @@ export default { |
|
|
|
i++; |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (!(await this.validateCustomerAndProject())) { |
|
|
|
return |
|
|
|
} |
|
|
|
if (this.projectPartListSelections.length <= 0) { |
|
|
|
this.$message.warning('请选择项目料号') |
|
|
|
return |
|
|
|
@ -3647,7 +3646,11 @@ export default { |
|
|
|
return s |
|
|
|
}, |
|
|
|
closeModalDiaLog() { |
|
|
|
this.$refs.modalForm.resetFields(); |
|
|
|
this.columnFieldList1 = [] |
|
|
|
this.columnFieldList2 = [] |
|
|
|
if (this.$refs.modalForm) { |
|
|
|
this.$refs.modalForm.resetFields(); |
|
|
|
} |
|
|
|
this.modalData = { |
|
|
|
flag: '1', |
|
|
|
title: '打样新增', |
|
|
|
@ -3988,57 +3991,136 @@ export default { |
|
|
|
|
|
|
|
// 获取流程的配置权限 |
|
|
|
async getNodeAuthority(row) { |
|
|
|
this.columnFieldList1 = [] |
|
|
|
this.columnFieldList2 = [] |
|
|
|
let tempData = { |
|
|
|
site: row.site, |
|
|
|
stepId: row.stepId, |
|
|
|
menuId: this.$route.meta.menuId |
|
|
|
menuId: this.$route.meta.menuId, |
|
|
|
currentNodeOnly: true |
|
|
|
} |
|
|
|
await getNodeAuthority(tempData).then(({data}) => { |
|
|
|
if (data && data.code === 0) { |
|
|
|
this.columnFieldList1 = data.rows.plm_proofing_information |
|
|
|
this.columnFieldList2 = data.rows.plm_proofing_delegate_access |
|
|
|
this.columnFieldList1 = (data.rows && data.rows.plm_proofing_information) || [] |
|
|
|
this.columnFieldList2 = (data.rows && data.rows.plm_proofing_delegate_access) || [] |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
handleQueryCustomer() { |
|
|
|
let params = { |
|
|
|
site: this.$store.state.user.site, |
|
|
|
customerNo: this.modalData.customerNo |
|
|
|
const customerNo = (this.modalData.customerNo || '').trim() |
|
|
|
if (!customerNo) { |
|
|
|
this.modalData.customerDesc = '' |
|
|
|
return |
|
|
|
} |
|
|
|
queryCustomer(params).then(({data}) => { |
|
|
|
if (data && data.code === 0) { |
|
|
|
if (data.rows && data.rows.length === 1) { |
|
|
|
this.modalData.customerDesc = data.rows[0].customerDesc |
|
|
|
} else { |
|
|
|
this.modalData.customerDesc = '' |
|
|
|
} |
|
|
|
} else { |
|
|
|
this.lookupCustomer().then(ok => { |
|
|
|
if (ok === false) { |
|
|
|
this.$message.warning('客户编码不存在或已失效') |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
handleQueryProjectByCustomer() { |
|
|
|
const projectId = (this.modalData.projectId || '').trim() |
|
|
|
if (!projectId) { |
|
|
|
this.modalData.projectName = '' |
|
|
|
return |
|
|
|
} |
|
|
|
if (!(this.modalData.customerNo || '').trim()) { |
|
|
|
this.modalData.projectName = '' |
|
|
|
this.$message.warning('请先填写客户编码') |
|
|
|
return |
|
|
|
} |
|
|
|
this.lookupProject().then(ok => { |
|
|
|
if (ok === false) { |
|
|
|
this.$message.warning('项目号不存在,或不属于该客户') |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
lookupCustomer() { |
|
|
|
const customerNo = (this.modalData.customerNo || '').trim() |
|
|
|
if (!customerNo) { |
|
|
|
this.modalData.customerDesc = '' |
|
|
|
return Promise.resolve(false) |
|
|
|
} |
|
|
|
return queryCustomer({ |
|
|
|
site: this.$store.state.user.site, |
|
|
|
customerNo |
|
|
|
}).then(({data}) => { |
|
|
|
if (data && data.code !== 0) { |
|
|
|
this.$message.warning(data.msg) |
|
|
|
this.modalData.customerDesc = '' |
|
|
|
return 'error' |
|
|
|
} |
|
|
|
const site = this.$store.state.user.site |
|
|
|
const rows = ((data && data.rows) || []).filter(row => !row.site || row.site === site) |
|
|
|
if (rows.length === 1) { |
|
|
|
this.modalData.customerDesc = rows[0].customerDesc |
|
|
|
return true |
|
|
|
} |
|
|
|
this.modalData.customerDesc = '' |
|
|
|
return false |
|
|
|
}).catch((error) => { |
|
|
|
this.$message.error(error) |
|
|
|
this.modalData.customerDesc = '' |
|
|
|
return 'error' |
|
|
|
}) |
|
|
|
}, |
|
|
|
handleQueryProjectByCustomer() { |
|
|
|
let params = { |
|
|
|
site: this.$store.state.user.site, |
|
|
|
customerId: this.modalData.customerNo, |
|
|
|
projectId: this.modalData.projectId |
|
|
|
lookupProject() { |
|
|
|
const customerNo = (this.modalData.customerNo || '').trim() |
|
|
|
const projectId = (this.modalData.projectId || '').trim() |
|
|
|
if (!customerNo || !projectId) { |
|
|
|
this.modalData.projectName = '' |
|
|
|
return Promise.resolve(false) |
|
|
|
} |
|
|
|
queryProjectByCustomer(params).then(({data}) => { |
|
|
|
if (data && data.code === 0) { |
|
|
|
if (data.rows && data.rows.length === 1) { |
|
|
|
this.modalData.projectName = data.rows[0].projectName |
|
|
|
} else { |
|
|
|
this.modalData.projectName = '' |
|
|
|
} |
|
|
|
} else { |
|
|
|
return queryProjectByCustomer({ |
|
|
|
site: this.$store.state.user.site, |
|
|
|
customerId: customerNo, |
|
|
|
projectId |
|
|
|
}).then(({data}) => { |
|
|
|
if (data && data.code !== 0) { |
|
|
|
this.$message.warning(data.msg) |
|
|
|
this.modalData.projectName = '' |
|
|
|
return 'error' |
|
|
|
} |
|
|
|
const rows = (data && data.rows) || [] |
|
|
|
if (rows.length === 1) { |
|
|
|
this.modalData.projectName = rows[0].projectName |
|
|
|
return true |
|
|
|
} |
|
|
|
this.modalData.projectName = '' |
|
|
|
return false |
|
|
|
}).catch((error) => { |
|
|
|
this.$message.error(error) |
|
|
|
this.modalData.projectName = '' |
|
|
|
return 'error' |
|
|
|
}) |
|
|
|
}, |
|
|
|
async validateCustomerAndProject() { |
|
|
|
const customerNo = (this.modalData.customerNo || '').trim() |
|
|
|
if (!customerNo) { |
|
|
|
this.$message.warning('请选择客户编码!') |
|
|
|
return false |
|
|
|
} |
|
|
|
const customerOk = await this.lookupCustomer() |
|
|
|
if (customerOk !== true) { |
|
|
|
if (customerOk === false) { |
|
|
|
this.$message.warning('客户编码不存在或已失效') |
|
|
|
} |
|
|
|
return false |
|
|
|
} |
|
|
|
const projectId = (this.modalData.projectId || '').trim() |
|
|
|
if (!projectId) { |
|
|
|
this.$message.warning('请选择项目号!') |
|
|
|
return false |
|
|
|
} |
|
|
|
const projectOk = await this.lookupProject() |
|
|
|
if (projectOk !== true) { |
|
|
|
if (projectOk === false) { |
|
|
|
this.$message.warning('项目号不存在,或不属于该客户') |
|
|
|
} |
|
|
|
return false |
|
|
|
} |
|
|
|
return true |
|
|
|
}, |
|
|
|
// 查询审批信息 |
|
|
|
getApprovalList() { |
|
|
|
let tempData = { |
|
|
|
|