修改BOM信息

master
夜笙歌 5 months ago
parent 78afb37e9d
commit c12f5503bc

@ -1,6 +1,21 @@
import request from '@/utils/request'; import request from '@/utils/request';
import { AxiosPromise } from 'axios'; import {AxiosPromise} from 'axios';
import { MasterDataDetailVO, MasterDataDetailForm, MasterDataDetailQuery } from '@/api/system/masterDataDetail/types'; import {MasterDataDetailVO, MasterDataDetailForm, MasterDataDetailQuery} from '@/api/system/masterDataDetail/types';
/**
*
* @param query
* @returns {*}
*/
export const listMasterData = (query) => {
return request({
url: '/system/masterData/list',
method: 'get',
params: query
});
};
/** /**
* *

@ -134,6 +134,7 @@
<el-form-item label="物料类型" prop="materialTypeId"> <el-form-item label="物料类型" prop="materialTypeId">
<!-- <el-input v-model="form.materialTypeId" placeholder="请输入物料类型ID" />--> <!-- <el-input v-model="form.materialTypeId" placeholder="请输入物料类型ID" />-->
<el-tree-select <el-tree-select
@current-change="currentChange"
v-model="form.materialTypeId" v-model="form.materialTypeId"
:data="baseMaterialTypeOptions" :data="baseMaterialTypeOptions"
:props="{ value: 'matrialTypeId', label: 'matrialTypeName', children: 'children' }" :props="{ value: 'matrialTypeId', label: 'matrialTypeName', children: 'children' }"
@ -385,20 +386,10 @@ const getbaseMaterialTypeOptions = async () => {
} }
} }
const currentChange = (e)=>{
// form.materialTypeId const selectedMaterial = e.matrialTypeName
watch(() => form.value.materialTypeId, (newValue) => { form.value.materialTypeName = e.matrialTypeName || ''
// baseMaterialTypeOptions materialTypeName }
const selectedMaterial = baseMaterialTypeOptions.value.find(
(item) => item.matrialTypeId == newValue
);
console.log("selectedMaterial:",newValue,selectedMaterial);
if (selectedMaterial) {
form.value.materialTypeName = selectedMaterial.matrialTypeName;
} else {
form.value.materialTypeName = undefined;
}
});
onMounted(() => { onMounted(() => {

@ -5,56 +5,25 @@
<div v-show='showSearch' class='mb-[10px]'> <div v-show='showSearch' class='mb-[10px]'>
<el-card shadow='hover'> <el-card shadow='hover'>
<el-form ref='queryFormRef' :model='queryParams' :inline='true'> <el-form ref='queryFormRef' :model='queryParams' :inline='true'>
<el-form-item label='主键标识' prop='masterDataDetailId'> <!-- <el-form-item label='主键标识' prop='masterDataDetailId'>-->
<el-input v-model='queryParams.masterDataDetailId' placeholder='请输入主键标识' clearable <!-- <el-input v-model='queryParams.masterDataDetailId' placeholder='请输入主键标识' clearable-->
@keyup.enter='handleQuery' /> <!-- @keyup.enter='handleQuery'/>-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label='主数据ID' prop='masterDataId'> <!-- <el-form-item label='主数据ID' prop='masterDataId'>-->
<el-input v-model='queryParams.masterDataId' placeholder='请输入主数据ID' clearable <!-- <el-input v-model='queryParams.masterDataId' placeholder='请输入主数据ID' clearable-->
@keyup.enter='handleQuery' /> <!-- @keyup.enter='handleQuery'/>-->
</el-form-item> <!-- </el-form-item>-->
<!-- <el-form-item label='父级标识' prop='parentId'>--> <!-- <el-form-item label='父级标识' prop='parentId'>-->
<!-- <el-input v-model='queryParams.parentId' placeholder='请输入父级标识' clearable @keyup.enter='handleQuery' />--> <!-- <el-input v-model='queryParams.parentId' placeholder='请输入父级标识' clearable @keyup.enter='handleQuery'/>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<!-- <el-form-item label='祖级列表' prop='ancestors'>--> <el-form-item v-for="i in reservedFieldList" :label='i.label' :prop='i.tableKey'>
<!-- <el-input v-model='queryParams.ancestors' placeholder='请输入祖级列表' clearable @keyup.enter='handleQuery' />--> <el-input v-model='queryParams[i.tableKey]' :placeholder='`请输入${i.label}`' clearable @keyup.enter='handleQuery'/>
<!-- </el-form-item>-->
<!-- <el-form-item label='主数据明细编号' prop='dataDetailCode'>-->
<!-- <el-input v-model='queryParams.dataDetailCode' placeholder='请输入主数据明细编号' clearable-->
<!-- @keyup.enter='handleQuery' />-->
<!-- </el-form-item>-->
<!-- <el-form-item label='主数据明细名称' prop='dataDetailName'>-->
<!-- <el-input v-model='queryParams.dataDetailName' placeholder='请输入主数据明细名称' clearable-->
<!-- @keyup.enter='handleQuery' />-->
<!-- </el-form-item>-->
<!-- <el-form-item label='预留字段1数据' prop='fieldData1'>-->
<!-- <el-input v-model='queryParams.fieldData1' placeholder='请输入预留字段1数据' clearable-->
<!-- @keyup.enter='handleQuery' />-->
<!-- </el-form-item>-->
<!-- <el-form-item label='预留字段2数据' prop='fieldData2'>-->
<!-- <el-input v-model='queryParams.fieldData2' placeholder='请输入预留字段2数据' clearable-->
<!-- @keyup.enter='handleQuery' />-->
<!-- </el-form-item>-->
<!-- <el-form-item label='预留字段3数据' prop='fieldData3'>-->
<!-- <el-input v-model='queryParams.fieldData3' placeholder='请输入预留字段3数据' clearable-->
<!-- @keyup.enter='handleQuery' />-->
<!-- </el-form-item>-->
<!-- <el-form-item label='预留字段4数据' prop='fieldData4'>-->
<!-- <el-input v-model='queryParams.fieldData4' placeholder='请输入预留字段4数据' clearable-->
<!-- @keyup.enter='handleQuery' />-->
<!-- </el-form-item>-->
<!-- <el-form-item label='预留字段5数据' prop='fieldData5'>-->
<!-- <el-input v-model='queryParams.fieldData5' placeholder='请输入预留字段5数据' clearable-->
<!-- @keyup.enter='handleQuery' />-->
<!-- </el-form-item>-->
<!-- <el-form-item label='显示排序' prop='displaySort'>-->
<!-- <el-input v-model='queryParams.displaySort' placeholder='请输入显示排序' clearable @keyup.enter='handleQuery' />-->
<!-- </el-form-item>-->
<el-form-item label='激活标识' prop='activeFlag'>
<el-select v-model='queryParams.activeFlag' placeholder='请选择激活标识' clearable>
<el-option v-for='dict in active_flag' :key='dict.value' :label='dict.label' :value='dict.value' />
</el-select>
</el-form-item> </el-form-item>
<!-- <el-form-item label='激活标识' prop='activeFlag'>-->
<!-- <el-select v-model='queryParams.activeFlag' placeholder='请选择激活标识' clearable>-->
<!-- <el-option v-for='dict in active_flag' :key='dict.value' :label='dict.label' :value='dict.value'/>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item> <el-form-item>
<el-button type='primary' icon='Search' @click='handleQuery'>搜索</el-button> <el-button type='primary' icon='Search' @click='handleQuery'>搜索</el-button>
<el-button icon='Refresh' @click='resetQuery'>重置</el-button> <el-button icon='Refresh' @click='resetQuery'>重置</el-button>
@ -87,31 +56,27 @@
v-hasPermi="['system:masterDataDetail:export']">导出 v-hasPermi="['system:masterDataDetail:export']">导出
</el-button> </el-button>
</el-col> </el-col>
<right-toolbar v-model:showSearch='showSearch' :columns='columns' :search='true' <right-toolbar v-model:showSearch='showSearch' :search='true'
@queryTable='getList'></right-toolbar> @queryTable='getList'></right-toolbar>
</el-row> </el-row>
</template> </template>
<el-table v-loading='loading' :data='masterDataDetailList' @selection-change='handleSelectionChange'> <el-table v-loading='loading' :data='masterDataDetailList' @selection-change='handleSelectionChange'>
<el-table-column type='selection' width='55' align='center' /> <el-table-column type='selection' width='55' align='center'/>
<el-table-column label='主键标识' align='center' prop='masterDataDetailId' v-if='columns[0].visible' /> <!-- <el-table-column label='主键标识' align='center' prop='masterDataDetailId' />-->
<el-table-column label='主数据ID' align='center' prop='masterDataId' v-if='columns[1].visible' /> <!-- <el-table-column label='主数据ID' align='center' prop='masterDataId' />-->
<el-table-column label='父级标识' align='center' prop='parentId' v-if='columns[2].visible' /> <!-- <el-table-column label='父级标识' align='center' prop='parentId' />-->
<el-table-column label='祖级列表' align='center' prop='ancestors' v-if='columns[3].visible' /> <!-- <el-table-column label='祖级列表' align='center' prop='ancestors' />-->
<el-table-column label='主数据明细编号' align='center' prop='dataDetailCode' v-if='columns[4].visible' /> <el-table-column label='主数据明细编号' align='center' prop='dataDetailCode' />
<el-table-column label='主数据明细名称' align='center' prop='dataDetailName' v-if='columns[5].visible' /> <el-table-column label='主数据明细名称' align='center' prop='dataDetailName' />
<el-table-column label='预留字段1数据' align='center' prop='fieldData1' v-if='columns[6].visible' /> <el-table-column v-for="i in reservedFieldList" :label='i.label' align='center' :prop='i.tableKey' />
<el-table-column label='预留字段2数据' align='center' prop='fieldData2' v-if='columns[7].visible' /> <!-- <el-table-column label='显示排序' align='center' prop='displaySort' />-->
<el-table-column label='预留字段3数据' align='center' prop='fieldData3' v-if='columns[8].visible' /> <el-table-column label='备注' align='center' prop='remark' />
<el-table-column label='预留字段4数据' align='center' prop='fieldData4' v-if='columns[9].visible' /> <!-- <el-table-column label='激活标识' align='center' prop='activeFlag' >-->
<el-table-column label='预留字段5数据' align='center' prop='fieldData5' v-if='columns[10].visible' /> <!-- <template #default='scope'>-->
<el-table-column label='显示排序' align='center' prop='displaySort' v-if='columns[11].visible' /> <!-- <dict-tag :options='active_flag' :value='scope.row.activeFlag'/>-->
<el-table-column label='备注' align='center' prop='remark' v-if='columns[12].visible' /> <!-- </template>-->
<el-table-column label='激活标识' align='center' prop='activeFlag' v-if='columns[13].visible'> <!-- </el-table-column>-->
<template #default='scope'>
<dict-tag :options='active_flag' :value='scope.row.activeFlag' />
</template>
</el-table-column>
<el-table-column label='操作' align='center' class-name='small-padding fixed-width'> <el-table-column label='操作' align='center' class-name='small-padding fixed-width'>
<template #default='scope'> <template #default='scope'>
<el-tooltip content='修改' placement='top'> <el-tooltip content='修改' placement='top'>
@ -127,60 +92,48 @@
</el-table> </el-table>
<pagination v-show='total > 0' :total='total' v-model:page='queryParams.pageNum' <pagination v-show='total > 0' :total='total' v-model:page='queryParams.pageNum'
v-model:limit='queryParams.pageSize' @pagination='getList' /> v-model:limit='queryParams.pageSize' @pagination='getList'/>
</el-card> </el-card>
<!-- 添加或修改主数据维护明细对话框 --> <!-- 添加或修改主数据维护明细对话框 -->
<el-dialog :title='dialog.title' v-model='dialog.visible' width='500px' append-to-body> <el-dialog :title='dialog.title' v-model='dialog.visible' width='500px' append-to-body>
<el-form ref='masterDataDetailFormRef' :model='form' :rules='rules' label-width='80px'> <el-form ref='masterDataDetailFormRef' :model='form' :rules='rules' label-width='120px'>
<el-form-item label='主键标识' prop='masterDataDetailId'> <el-form-item label='主键标识' prop='masterDataDetailId' v-if="false">
<el-input v-model='form.masterDataDetailId' placeholder='请输入主键标识' /> <el-input v-model='form.masterDataDetailId' placeholder='请输入主键标识'/>
</el-form-item>
<el-form-item label='主数据ID' prop='masterDataId'>
<el-input v-model='form.masterDataId' placeholder='请输入主数据ID' />
</el-form-item>
<el-form-item label='父级标识' prop='parentId'>
<el-input v-model='form.parentId' placeholder='请输入父级标识' />
</el-form-item>
<el-form-item label='祖级列表' prop='ancestors'>
<el-input v-model='form.ancestors' placeholder='请输入祖级列表' />
</el-form-item> </el-form-item>
<!-- <el-form-item label='主数据ID' prop='masterDataId'>-->
<!-- <el-input v-model='form.masterDataId' placeholder='请输入主数据ID'/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label='父级标识' prop='parentId'>-->
<!-- <el-input v-model='form.parentId' placeholder='请输入父级标识'/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label='祖级列表' prop='ancestors'>-->
<!-- <el-input v-model='form.ancestors' placeholder='请输入祖级列表'/>-->
<!-- </el-form-item>-->
<el-form-item label='主数据明细编号' prop='dataDetailCode'> <el-form-item label='主数据明细编号' prop='dataDetailCode'>
<el-input v-model='form.dataDetailCode' placeholder='请输入主数据明细编号' /> <el-input v-model='form.dataDetailCode' placeholder='请输入主数据明细编号'/>
</el-form-item> </el-form-item>
<el-form-item label='主数据明细名称' prop='dataDetailName'> <el-form-item label='主数据明细名称' prop='dataDetailName'>
<el-input v-model='form.dataDetailName' placeholder='请输入主数据明细名称' /> <el-input v-model='form.dataDetailName' placeholder='请输入主数据明细名称'/>
</el-form-item> </el-form-item>
<el-form-item label='预留字段1数据' prop='fieldData1'> <el-form-item :label='i.label' :prop='i.tableKey' v-for="i in reservedFieldList">
<el-input v-model='form.fieldData1' placeholder='请输入预留字段1数据' /> <el-input v-model='form[i.tableKey]' placeholder='请输入预留字段1数据'/>
</el-form-item>
<el-form-item label='预留字段2数据' prop='fieldData2'>
<el-input v-model='form.fieldData2' placeholder='请输入预留字段2数据' />
</el-form-item>
<el-form-item label='预留字段3数据' prop='fieldData3'>
<el-input v-model='form.fieldData3' placeholder='请输入预留字段3数据' />
</el-form-item>
<el-form-item label='预留字段4数据' prop='fieldData4'>
<el-input v-model='form.fieldData4' placeholder='请输入预留字段4数据' />
</el-form-item>
<el-form-item label='预留字段5数据' prop='fieldData5'>
<el-input v-model='form.fieldData5' placeholder='请输入预留字段5数据' />
</el-form-item>
<el-form-item label='显示排序' prop='displaySort'>
<el-input v-model='form.displaySort' placeholder='请输入显示排序' />
</el-form-item> </el-form-item>
<!-- <el-form-item label='显示排序' prop='displaySort'>-->
<!-- <el-input v-model='form.displaySort' placeholder='请输入显示排序'/>-->
<!-- </el-form-item>-->
<el-form-item label='备注' prop='remark'> <el-form-item label='备注' prop='remark'>
<el-input v-model='form.remark' placeholder='请输入备注' /> <el-input v-model='form.remark' placeholder='请输入备注'/>
</el-form-item>
<el-form-item label='激活标识' prop='activeFlag'>
<el-radio-group v-model='form.activeFlag'>
<el-radio
v-for='dict in active_flag'
:key='dict.value'
:value='dict.value'
>{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item> </el-form-item>
<!-- <el-form-item label='激活标识' prop='activeFlag'>-->
<!-- <el-radio-group v-model='form.activeFlag'>-->
<!-- <el-radio-->
<!-- v-for='dict in active_flag'-->
<!-- :key='dict.value'-->
<!-- :value='dict.value'-->
<!-- >{{ dict.label }}-->
<!-- </el-radio>-->
<!-- </el-radio-group>-->
<!-- </el-form-item>-->
</el-form> </el-form>
<template #footer> <template #footer>
<div class='dialog-footer'> <div class='dialog-footer'>
@ -198,12 +151,13 @@ import {
getMasterDataDetail, getMasterDataDetail,
delMasterDataDetail, delMasterDataDetail,
addMasterDataDetail, addMasterDataDetail,
updateMasterDataDetail updateMasterDataDetail,
listMasterData
} from '@/api/system/masterDataDetail'; } from '@/api/system/masterDataDetail';
import { MasterDataDetailVO, MasterDataDetailQuery, MasterDataDetailForm } from '@/api/system/masterDataDetail/types'; import {MasterDataDetailVO, MasterDataDetailQuery, MasterDataDetailForm} from '@/api/system/masterDataDetail/types';
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const {proxy} = getCurrentInstance() as ComponentInternalInstance;
const { active_flag } = toRefs<any>(proxy?.useDict('active_flag')); const {active_flag} = toRefs<any>(proxy?.useDict('active_flag'));
const masterDataDetailList = ref<MasterDataDetailVO[]>([]); const masterDataDetailList = ref<MasterDataDetailVO[]>([]);
const buttonLoading = ref(false); const buttonLoading = ref(false);
@ -223,27 +177,27 @@ const dialog = reactive<DialogOption>({
}); });
// //
const columns = ref<FieldOption[]>([ // const columns = ref<FieldOption[]>([
{ key: 0, label: `主键标识`, visible: true }, // {key: 0, label: ``, visible: true},
{ key: 1, label: `主数据ID`, visible: true }, // {key: 1, label: `ID`, visible: true},
{ key: 2, label: `父级标识`, visible: true }, // {key: 2, label: ``, visible: true},
{ key: 3, label: `祖级列表`, visible: true }, // {key: 3, label: ``, visible: true},
{ key: 4, label: `主数据明细编号`, visible: true }, // {key: 4, label: ``, visible: true},
{ key: 5, label: `主数据明细名称`, visible: true }, // {key: 5, label: ``, visible: true},
{ key: 6, label: `预留字段1数据`, visible: true }, // {key: 6, label: `1`, visible: true},
{ key: 7, label: `预留字段2数据`, visible: true }, // {key: 7, label: `2`, visible: true},
{ key: 8, label: `预留字段3数据`, visible: true }, // {key: 8, label: `3`, visible: true},
{ key: 9, label: `预留字段4数据`, visible: true }, // {key: 9, label: `4`, visible: true},
{ key: 10, label: `预留字段5数据`, visible: true }, // {key: 10, label: `5`, visible: true},
{ key: 11, label: `显示排序`, visible: true }, // {key: 11, label: ``, visible: true},
{ key: 12, label: `备注`, visible: true }, // {key: 12, label: ``, visible: true},
{ key: 13, label: `激活标识`, visible: true }, // {key: 13, label: ``, visible: true},
{ key: 14, label: `创建部门`, visible: true }, // {key: 14, label: ``, visible: true},
{ key: 15, label: `创建人`, visible: true }, // {key: 15, label: ``, visible: true},
{ key: 16, label: `创建时间`, visible: true }, // {key: 16, label: ``, visible: true},
{ key: 17, label: `更新人`, visible: true }, // {key: 17, label: ``, visible: true},
{ key: 18, label: `更新时间`, visible: true } // {key: 18, label: ``, visible: true}
]); // ]);
const initFormData: MasterDataDetailForm = { const initFormData: MasterDataDetailForm = {
masterDataDetailId: undefined, masterDataDetailId: undefined,
@ -262,7 +216,7 @@ const initFormData: MasterDataDetailForm = {
activeFlag: undefined activeFlag: undefined
}; };
const data = reactive<PageData<MasterDataDetailForm, MasterDataDetailQuery>>({ const data = reactive<PageData<MasterDataDetailForm, MasterDataDetailQuery>>({
form: { ...initFormData }, form: {...initFormData},
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
@ -283,23 +237,49 @@ const data = reactive<PageData<MasterDataDetailForm, MasterDataDetailQuery>>({
}, },
rules: { rules: {
dataDetailCode: [ dataDetailCode: [
{ required: true, message: '主数据明细编号不能为空', trigger: 'blur' } {required: true, message: '主数据明细编号不能为空', trigger: 'blur'}
], ],
dataDetailName: [ dataDetailName: [
{ required: true, message: '主数据明细名称不能为空', trigger: 'blur' } {required: true, message: '主数据明细名称不能为空', trigger: 'blur'}
], ],
activeFlag: [ activeFlag: [
{ required: true, message: '激活标识不能为空', trigger: 'change' } {required: true, message: '激活标识不能为空', trigger: 'change'}
] ]
} }
}); });
const { queryParams, form, rules } = toRefs(data); const {queryParams, form, rules} = toRefs(data);
const routeParam = ref({queryParam:'{"router": "brand"}'})
const masterDataTitle = ref()
const tableTh = ref([])
const masterDataId = ref()
const reservedFieldList = ref([])
//
listMasterData(routeParam.value).then(e => {
let data = e.rows?.[0] ||{}
masterDataId.value = data.masterDataId
masterDataTitle.value = data.masterDataTitle
let fieldNameList = ['1','2','3','4','5']
reservedFieldList.value = fieldNameList.map((v)=>{
if(data['displayFlag' + v]==='1'){
return {
label:data['fieldName' + v],
tableKey:'fieldData'+v
}
}else{
return null
}
}).filter(ee=>!!ee)
console.log(reservedFieldList.value)
getList()
})
/** 查询主数据维护明细列表 */ /** 查询主数据维护明细列表 */
const getList = async () => { const getList = async () => {
loading.value = true; loading.value = true;
const res = await listMasterDataDetail(queryParams.value); const res = await listMasterDataDetail({...queryParams.value,masterDataId:masterDataId.value});
masterDataDetailList.value = res.rows; masterDataDetailList.value = res.rows;
total.value = res.total; total.value = res.total;
loading.value = false; loading.value = false;
@ -313,7 +293,7 @@ const cancel = () => {
/** 表单重置 */ /** 表单重置 */
const reset = () => { const reset = () => {
form.value = { ...initFormData }; form.value = {...initFormData};
masterDataDetailFormRef.value?.resetFields(); masterDataDetailFormRef.value?.resetFields();
}; };
@ -359,9 +339,9 @@ const submitForm = () => {
if (valid) { if (valid) {
buttonLoading.value = true; buttonLoading.value = true;
if (form.value.masterDataDetailId) { if (form.value.masterDataDetailId) {
await updateMasterDataDetail(form.value).finally(() => buttonLoading.value = false); await updateMasterDataDetail({...form.value,masterDataId:masterDataId.value,activeFlag:'1'}).finally(() => buttonLoading.value = false);
} else { } else {
await addMasterDataDetail(form.value).finally(() => buttonLoading.value = false); await addMasterDataDetail({...form.value,masterDataId:masterDataId.value,activeFlag:'1'}).finally(() => buttonLoading.value = false);
} }
proxy?.$modal.msgSuccess('操作成功'); proxy?.$modal.msgSuccess('操作成功');
dialog.visible = false; dialog.visible = false;
@ -387,6 +367,6 @@ const handleExport = () => {
}; };
onMounted(() => { onMounted(() => {
getList(); // getList();
}); });
</script> </script>

Loading…
Cancel
Save