|
|
|
|
@ -7,6 +7,17 @@
|
|
|
|
|
label-width="120px"
|
|
|
|
|
v-loading="formLoading"
|
|
|
|
|
>
|
|
|
|
|
<el-form-item :label="t('FactoryModeling.ProductCategory.dialogTypeLabel')" prop="type">
|
|
|
|
|
<el-radio-group v-model="formData.type" @change="handleTypeChange">
|
|
|
|
|
<el-radio
|
|
|
|
|
v-for="dict in getIntDictOptions(DICT_TYPE.MATERIAL_CLASSIFICATION_TYPE)"
|
|
|
|
|
:key="dict.value"
|
|
|
|
|
:label="dict.value"
|
|
|
|
|
>
|
|
|
|
|
{{ dict.label }}
|
|
|
|
|
</el-radio>
|
|
|
|
|
</el-radio-group>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item :label="t('FactoryModeling.ProductCategory.dialogParentLabel')" prop="parentId">
|
|
|
|
|
<el-tree-select
|
|
|
|
|
v-model="formData.parentId"
|
|
|
|
|
@ -22,7 +33,7 @@
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item :label="t('FactoryModeling.ProductCategory.dialogNameLabel')" prop="name">
|
|
|
|
|
<el-input v-model="formData.name" :placeholder="t('FactoryModeling.ProductCategory.dialogNamePlaceholder')" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item :label="t('FactoryModeling.ProductCategory.dialogSortLabel')" prop="sort">
|
|
|
|
|
<el-input-number v-model="formData.sort" :placeholder="t('FactoryModeling.ProductCategory.dialogSortPlaceholder')" class="!w-full" :min="0"/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
@ -66,14 +77,16 @@ const formData = ref({
|
|
|
|
|
name: undefined,
|
|
|
|
|
code: undefined,
|
|
|
|
|
sort: undefined,
|
|
|
|
|
status: CommonStatusEnum.ENABLE
|
|
|
|
|
status: CommonStatusEnum.ENABLE,
|
|
|
|
|
type: undefined
|
|
|
|
|
})
|
|
|
|
|
const formRules = reactive({
|
|
|
|
|
parentId: [{ required: true, message: t('FactoryModeling.ProductCategory.validatorParentRequired'), trigger: 'blur' }],
|
|
|
|
|
name: [{ required: true, message: t('FactoryModeling.ProductCategory.validatorNameRequired'), trigger: 'blur' }],
|
|
|
|
|
code: [{ required: true, message: t('FactoryModeling.ProductCategory.validatorCodeRequired'), trigger: 'blur' }],
|
|
|
|
|
sort: [{ required: true, message: t('FactoryModeling.ProductCategory.validatorSortRequired'), trigger: 'blur' }],
|
|
|
|
|
status: [{ required: true, message: t('FactoryModeling.ProductCategory.validatorStatusRequired'), trigger: 'blur' }]
|
|
|
|
|
status: [{ required: true, message: t('FactoryModeling.ProductCategory.validatorStatusRequired'), trigger: 'blur' }],
|
|
|
|
|
type: [{ required: true, message: t('FactoryModeling.ProductCategory.validatorTypeRequired'), trigger: 'change' }]
|
|
|
|
|
})
|
|
|
|
|
const formRef = ref() // 表单 Ref
|
|
|
|
|
const productCategoryTree = ref() // 树形结构
|
|
|
|
|
@ -84,6 +97,12 @@ const open = async (type: string, id?: number) => {
|
|
|
|
|
dialogTitle.value = t('action.' + type)
|
|
|
|
|
formType.value = type
|
|
|
|
|
resetForm()
|
|
|
|
|
if (!id) {
|
|
|
|
|
const typeOptions = getIntDictOptions(DICT_TYPE.MATERIAL_CLASSIFICATION_TYPE)
|
|
|
|
|
if (typeOptions.length > 0) {
|
|
|
|
|
formData.value.type = typeOptions[0].value
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 修改时,设置数据
|
|
|
|
|
if (id) {
|
|
|
|
|
formLoading.value = true
|
|
|
|
|
@ -129,7 +148,8 @@ const resetForm = () => {
|
|
|
|
|
name: undefined,
|
|
|
|
|
code: undefined,
|
|
|
|
|
sort: undefined,
|
|
|
|
|
status: CommonStatusEnum.ENABLE
|
|
|
|
|
status: CommonStatusEnum.ENABLE,
|
|
|
|
|
type: undefined
|
|
|
|
|
}
|
|
|
|
|
formRef.value?.resetFields()
|
|
|
|
|
}
|
|
|
|
|
@ -137,9 +157,15 @@ const resetForm = () => {
|
|
|
|
|
/** 获得产品分类树 */
|
|
|
|
|
const getProductCategoryTree = async () => {
|
|
|
|
|
productCategoryTree.value = []
|
|
|
|
|
const data = await ProductCategoryApi.getProductCategoryList()
|
|
|
|
|
const data = await ProductCategoryApi.getProductCategoryList(formData.value.type)
|
|
|
|
|
const root: Tree = { id: 0, name: t('FactoryModeling.ProductCategory.treeRootName'), children: [] }
|
|
|
|
|
root.children = handleTree(data, 'id', 'parentId')
|
|
|
|
|
productCategoryTree.value.push(root)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** 类型变更时刷新上级编号树 */
|
|
|
|
|
const handleTypeChange = async () => {
|
|
|
|
|
formData.value.parentId = undefined
|
|
|
|
|
await getProductCategoryTree()
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|