|
|
@ -41,9 +41,11 @@ |
|
|
<el-option label="原材料" value="Purchased (raw)"></el-option> |
|
|
<el-option label="原材料" value="Purchased (raw)"></el-option> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="模板(新增)"> |
|
|
|
|
|
<span style="cursor: pointer" slot="label" @click="handleTemplateAdd"><a herf="#">模板(新增)</a></span> |
|
|
|
|
|
<el-select v-model="modalData.tempNo" @change="chooseTemplate" style="width: 105px"> |
|
|
|
|
|
|
|
|
<el-form-item> |
|
|
|
|
|
<span slot="label"> |
|
|
|
|
|
模板(<span style="color: #409EFF;cursor: pointer;" @click="handleTemplateAdd">{{ modalData.tempNo ? '编辑' : '新增' }}</span>) |
|
|
|
|
|
</span> |
|
|
|
|
|
<el-select v-model="modalData.tempNo" clearable @change="chooseTemplate" style="width: 150px"> |
|
|
<el-option |
|
|
<el-option |
|
|
v-for="option in templateList" |
|
|
v-for="option in templateList" |
|
|
:key="option.templateNo" |
|
|
:key="option.templateNo" |
|
|
@ -766,7 +768,7 @@ |
|
|
</el-footer> |
|
|
</el-footer> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
<el-dialog :title="'模板新增'" top="18vh" :close-on-click-modal="false" v-drag :visible.sync="templateAddFlag" width="850px"> |
|
|
|
|
|
|
|
|
<el-dialog :title="templateEditMode ? '模板编辑' : '模板新增'" top="18vh" :close-on-click-modal="false" v-drag :visible.sync="templateAddFlag" width="850px"> |
|
|
<el-form :inline="true" :rules="tempRules" label-position="top" :model="tempData" style="margin-top: -5px;"> |
|
|
<el-form :inline="true" :rules="tempRules" label-position="top" :model="tempData" style="margin-top: -5px;"> |
|
|
<el-form-item label="BU" prop="bu"> |
|
|
<el-form-item label="BU" prop="bu"> |
|
|
<el-select v-model="tempData.bu" placeholder="请选择" @change="getPreviousPartNo" style="width: 380px"> |
|
|
<el-select v-model="tempData.bu" placeholder="请选择" @change="getPreviousPartNo" style="width: 380px"> |
|
|
@ -883,7 +885,7 @@ import partUploadFile from "./part_upload_file" |
|
|
import {updateInquiryDetailStatusAndPart} from "../../../api/inquiry/inquiryDetail"; |
|
|
import {updateInquiryDetailStatusAndPart} from "../../../api/inquiry/inquiryDetail"; |
|
|
import {EventBus} from "../../../main"; |
|
|
import {EventBus} from "../../../main"; |
|
|
import {getChooselist1} from "../../../api/chooselist/chooselist"; |
|
|
import {getChooselist1} from "../../../api/chooselist/chooselist"; |
|
|
import {chooseTemplate, getTemplateList, templateAdd} from "../../../api/part/quicklyCreateBom"; |
|
|
|
|
|
|
|
|
import {chooseTemplate, getTemplateList, templateAdd, templateUpdate} from "../../../api/part/quicklyCreateBom"; |
|
|
export default { |
|
|
export default { |
|
|
name: 'partCreate', |
|
|
name: 'partCreate', |
|
|
components: { |
|
|
components: { |
|
|
@ -1106,6 +1108,7 @@ export default { |
|
|
copyAttributeList: [], |
|
|
copyAttributeList: [], |
|
|
fileList: [], |
|
|
fileList: [], |
|
|
templateList: [], |
|
|
templateList: [], |
|
|
|
|
|
templateEditMode: false, // 模板编辑模式标记(true=编辑, false=新增) |
|
|
// ======== 列表表头 ======== |
|
|
// ======== 列表表头 ======== |
|
|
columnList: [ |
|
|
columnList: [ |
|
|
{ |
|
|
{ |
|
|
@ -3470,12 +3473,31 @@ export default { |
|
|
this.$message.warning("请填写模板名称!") |
|
|
this.$message.warning("请填写模板名称!") |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
templateAdd(this.tempData).then(({data}) => { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 确保 buNo 字段正确填充(可能需要从 bu 中提取) |
|
|
|
|
|
if (!this.tempData.buNo || this.tempData.buNo === '') { |
|
|
|
|
|
// 如果 bu 是 "site_buNo" 格式,提取 buNo |
|
|
|
|
|
if (this.tempData.bu && this.tempData.bu.includes('_')) { |
|
|
|
|
|
this.tempData.buNo = this.tempData.bu.split('_')[1] |
|
|
|
|
|
} else { |
|
|
|
|
|
// 否则 bu 本身就是 buNo |
|
|
|
|
|
this.tempData.buNo = this.tempData.bu |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
console.log('保存模板数据:', this.tempData) |
|
|
|
|
|
console.log('保存模式:', this.templateEditMode ? '编辑' : '新增') |
|
|
|
|
|
|
|
|
|
|
|
// 根据模式选择调用新增还是更新API |
|
|
|
|
|
const apiMethod = this.templateEditMode ? templateUpdate : templateAdd |
|
|
|
|
|
const actionText = this.templateEditMode ? '更新' : '新增' |
|
|
|
|
|
|
|
|
|
|
|
apiMethod(this.tempData).then(({data}) => { |
|
|
if (data&&data.code===0){ |
|
|
if (data&&data.code===0){ |
|
|
this.getTemplateList() |
|
|
this.getTemplateList() |
|
|
this.templateAddFlag = false |
|
|
this.templateAddFlag = false |
|
|
this.$message({ |
|
|
this.$message({ |
|
|
message: '操作成功', |
|
|
|
|
|
|
|
|
message: actionText + '成功', |
|
|
type: 'success', |
|
|
type: 'success', |
|
|
duration: 1500, |
|
|
duration: 1500, |
|
|
onClose: () => {} |
|
|
onClose: () => {} |
|
|
@ -3485,6 +3507,8 @@ export default { |
|
|
confirmButtonText: '确定' |
|
|
confirmButtonText: '确定' |
|
|
}) |
|
|
}) |
|
|
} |
|
|
} |
|
|
|
|
|
}).catch(error => { |
|
|
|
|
|
this.$message.error(actionText + '失败: ' + error.message) |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
@ -3498,10 +3522,14 @@ export default { |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
chooseTemplate(){ |
|
|
chooseTemplate(){ |
|
|
|
|
|
// 保存当前选中的模板编号,防止被覆盖 |
|
|
|
|
|
const selectedTempNo = this.modalData.tempNo |
|
|
|
|
|
|
|
|
chooseTemplate(this.modalData).then(({data}) => { |
|
|
chooseTemplate(this.modalData).then(({data}) => { |
|
|
if (data&&data.code===0) { |
|
|
if (data&&data.code===0) { |
|
|
Object.keys(data.data).forEach(key => { |
|
|
Object.keys(data.data).forEach(key => { |
|
|
if (key !== 'templateNo') { |
|
|
|
|
|
|
|
|
// 跳过 templateNo 和 tempNo,避免覆盖用户选择的模板 |
|
|
|
|
|
if (key !== 'templateNo' && key !== 'tempNo') { |
|
|
this.modalData[key] = data.data[key]; |
|
|
this.modalData[key] = data.data[key]; |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
@ -3511,6 +3539,9 @@ export default { |
|
|
this.modalData.templateNo = data.data.bomTemplateNo |
|
|
this.modalData.templateNo = data.data.bomTemplateNo |
|
|
this.modalData.templateName = data.data.bomTemplateName |
|
|
this.modalData.templateName = data.data.bomTemplateName |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 恢复用户选择的模板编号 |
|
|
|
|
|
this.modalData.tempNo = selectedTempNo |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
@ -3536,9 +3567,89 @@ export default { |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
handleTemplateAdd() { |
|
|
handleTemplateAdd() { |
|
|
this.tempData.templateNo = 'TEMPLATE' + Date.now() |
|
|
|
|
|
|
|
|
// 判断是否选择了模板 |
|
|
|
|
|
if (this.modalData.tempNo && this.modalData.tempNo !== '') { |
|
|
|
|
|
// 编辑模式:加载选中模板的数据 |
|
|
|
|
|
this.templateEditMode = true |
|
|
|
|
|
|
|
|
|
|
|
// 从 templateList 中找到对应的模板名称 |
|
|
|
|
|
const selectedTemplate = this.templateList.find(t => t.templateNo === this.modalData.tempNo) |
|
|
|
|
|
const templateName = selectedTemplate ? selectedTemplate.templateName : '' |
|
|
|
|
|
|
|
|
|
|
|
// 调用API获取模板详情(传递整个 modalData 对象) |
|
|
|
|
|
chooseTemplate(this.modalData).then(({data}) => { |
|
|
|
|
|
console.log('获取模板数据返回:', data) |
|
|
|
|
|
if (data && data.code === 0 && data.data) { |
|
|
|
|
|
console.log('模板详情数据:', data.data) |
|
|
|
|
|
|
|
|
|
|
|
// 处理 BU 数据 |
|
|
|
|
|
let buValue = data.data.buNo || this.modalData.buNo || '' |
|
|
|
|
|
let buNoValue = buValue |
|
|
|
|
|
|
|
|
|
|
|
// 如果 buValue 包含下划线,说明是 "site_buNo" 格式,需要提取 |
|
|
|
|
|
if (buValue && buValue.includes('_')) { |
|
|
|
|
|
buNoValue = buValue.split('_')[1] |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 将模板数据填充到 tempData |
|
|
|
|
|
this.tempData = { |
|
|
|
|
|
site: this.$store.state.user.site, |
|
|
|
|
|
bu: buValue, |
|
|
|
|
|
buNo: buNoValue, |
|
|
|
|
|
templateNo: this.modalData.tempNo, |
|
|
|
|
|
templateName: templateName || data.data.templateName || '', |
|
|
|
|
|
umId: data.data.umId || '', |
|
|
|
|
|
umName: data.data.umName || '', |
|
|
|
|
|
familyId: data.data.familyId || '', |
|
|
|
|
|
familyName: data.data.familyName || '', |
|
|
|
|
|
productGroupId1: data.data.productGroupId1 || '', |
|
|
|
|
|
productGroupName1: data.data.productGroupName1 || '', |
|
|
|
|
|
productGroupId2: data.data.productGroupId2 || '', |
|
|
|
|
|
productGroupName2: data.data.productGroupName2 || '', |
|
|
|
|
|
productGroupId3: data.data.productGroupId3 || '', |
|
|
|
|
|
productGroupName3: data.data.productGroupName3 || '', |
|
|
|
|
|
codeNo: data.data.codeNo || '', |
|
|
|
|
|
codeDesc: data.data.codeDesc || '', |
|
|
|
|
|
bomTemplateNo: data.data.bomTemplateNo || '', |
|
|
|
|
|
bomTemplateName: data.data.bomTemplateName || '', |
|
|
|
|
|
} |
|
|
|
|
|
console.log('填充到 tempData 的数据:', this.tempData) |
|
|
|
|
|
this.templateAddFlag = true |
|
|
|
|
|
} else { |
|
|
|
|
|
console.error('获取模板数据失败,返回数据:', data) |
|
|
|
|
|
this.$message.error('获取模板数据失败: ' + (data ? data.msg : '未知错误')) |
|
|
|
|
|
} |
|
|
|
|
|
}).catch(error => { |
|
|
|
|
|
console.error('获取模板数据异常:', error) |
|
|
|
|
|
this.$message.error('获取模板数据异常: ' + error.message) |
|
|
|
|
|
}) |
|
|
|
|
|
} else { |
|
|
|
|
|
// 新增模式:清空数据并生成新编码 |
|
|
|
|
|
this.templateEditMode = false |
|
|
|
|
|
this.tempData = { |
|
|
|
|
|
site: this.$store.state.user.site, |
|
|
|
|
|
bu: '', |
|
|
|
|
|
buNo: '', |
|
|
|
|
|
templateNo: 'TEMPLATE' + Date.now(), |
|
|
|
|
|
templateName: '', |
|
|
|
|
|
umId: '', |
|
|
|
|
|
umName: '', |
|
|
|
|
|
familyId: '', |
|
|
|
|
|
familyName: '', |
|
|
|
|
|
productGroupId1: '', |
|
|
|
|
|
productGroupName1: '', |
|
|
|
|
|
productGroupId2: '', |
|
|
|
|
|
productGroupName2: '', |
|
|
|
|
|
productGroupId3: '', |
|
|
|
|
|
productGroupName3: '', |
|
|
|
|
|
codeNo: '', |
|
|
|
|
|
codeDesc: '', |
|
|
|
|
|
bomTemplateNo: '', |
|
|
|
|
|
bomTemplateName: '', |
|
|
|
|
|
} |
|
|
this.templateAddFlag = true |
|
|
this.templateAddFlag = true |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
</script> |
|
|
</script> |