完善分类属性
parent
eb450b5c75
commit
6ee1941db5
|
|
@ -11,7 +11,7 @@
|
||||||
<el-form-item label="类别" prop="productCategoryId">
|
<el-form-item label="类别" prop="productCategoryId">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="queryParams.productCategoryId"
|
v-model="queryParams.productCategoryId"
|
||||||
placeholder="请选择故障部位"
|
placeholder="请选择类别"
|
||||||
clearable
|
clearable
|
||||||
class="!w-240px"
|
class="!w-240px"
|
||||||
>
|
>
|
||||||
|
|
|
||||||
|
|
@ -9,48 +9,60 @@
|
||||||
>
|
>
|
||||||
<el-form-item label="所属分类" prop="productCategoryId">
|
<el-form-item label="所属分类" prop="productCategoryId">
|
||||||
<el-select v-model="formData.productCategoryId" placeholder="请选择所属分类">
|
<el-select v-model="formData.productCategoryId" placeholder="请选择所属分类">
|
||||||
<el-option label="请选择字典生成" value="" />
|
|
||||||
|
<el-option
|
||||||
|
v-for="dict in productCategoryList"
|
||||||
|
:key="dict.id"
|
||||||
|
:label="dict.name"
|
||||||
|
:value="dict.id"
|
||||||
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="单数属性" prop="ifSingleProperty">
|
<el-form-item label="单数属性" prop="ifSingleProperty">
|
||||||
<el-checkbox-group v-model="formData.ifSingleProperty">
|
<el-radio-group v-model="formData.ifSingleProperty">
|
||||||
<el-checkbox
|
<el-radio
|
||||||
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
|
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
|
||||||
:key="dict.value"
|
:key="dict.value"
|
||||||
:label="dict.label"
|
:label="dict.label"
|
||||||
:value="dict.value"
|
:value="dict.value"
|
||||||
/>
|
/>
|
||||||
</el-checkbox-group>
|
</el-radio-group>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="设备属性英文" prop="productPropertiesEn">
|
<el-form-item label="属性英文" prop="productPropertiesEn">
|
||||||
<el-input v-model="formData.productPropertiesEn" placeholder="请输入设备属性英文" />
|
<el-input v-model="formData.productPropertiesEn" placeholder="请输入设备属性英文" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="设备属性中文" prop="productPropertiesCn">
|
<el-form-item label="属性中文" prop="productPropertiesCn">
|
||||||
<el-input v-model="formData.productPropertiesCn" placeholder="请输入设备属性中文" />
|
<el-input v-model="formData.productPropertiesCn" placeholder="请输入设备属性中文" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="必填" prop="ifRequired">
|
<el-form-item label="必填" prop="ifRequired">
|
||||||
<el-select v-model="formData.ifRequired" placeholder="请选择是否必填">
|
<el-radio-group v-model="formData.ifRequired">
|
||||||
<el-option
|
<el-radio
|
||||||
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
|
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
|
||||||
:key="dict.value"
|
:key="dict.value"
|
||||||
:label="dict.label"
|
:label="dict.label"
|
||||||
:value="dict.value"
|
:value="dict.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="配件" prop="ifAttachment">
|
<el-form-item label="配件" prop="ifAttachment">
|
||||||
<el-select v-model="formData.ifAttachment" placeholder="请选择是否配件">
|
<el-radio-group v-model="formData.ifAttachment">
|
||||||
<el-option
|
<el-radio
|
||||||
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
|
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
|
||||||
:key="dict.value"
|
:key="dict.value"
|
||||||
:label="dict.label"
|
:label="dict.label"
|
||||||
:value="dict.value"
|
:value="dict.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="记录sn" prop="ifSn">
|
<el-form-item label="记录sn" prop="ifSn">
|
||||||
<el-radio-group v-model="formData.ifSn">
|
<el-radio-group v-model="formData.ifSn">
|
||||||
<el-radio value="1">请选择字典生成</el-radio>
|
<el-radio
|
||||||
|
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
@ -61,9 +73,16 @@
|
||||||
</Dialog>
|
</Dialog>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { defineProps } from 'vue';
|
||||||
import { getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
|
import { getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
|
||||||
import { ProductCategoryPropertiesApi, ProductCategoryPropertiesVO } from '@/api/erp/product/category/productcategoryproperties'
|
import { ProductCategoryPropertiesApi, ProductCategoryPropertiesVO } from '@/api/erp/product/category/productcategoryproperties'
|
||||||
|
import { ProductCategoryVO } from '@/api/erp/product/category'
|
||||||
|
|
||||||
|
/** 从父组件取productCategoryList数组*/
|
||||||
|
defineProps<{
|
||||||
|
productCategoryList: ProductCategoryVO[]
|
||||||
|
}
|
||||||
|
>();
|
||||||
/** ERP 产品分类属性 表单 */
|
/** ERP 产品分类属性 表单 */
|
||||||
defineOptions({ name: 'ProductCategoryPropertiesForm' })
|
defineOptions({ name: 'ProductCategoryPropertiesForm' })
|
||||||
|
|
||||||
|
|
@ -89,7 +108,9 @@ const formRules = reactive({
|
||||||
ifSingleProperty: [{ required: true, message: '单数属性不能为空', trigger: 'blur' }],
|
ifSingleProperty: [{ required: true, message: '单数属性不能为空', trigger: 'blur' }],
|
||||||
ifRequired: [{ required: true, message: '必填不能为空', trigger: 'change' }],
|
ifRequired: [{ required: true, message: '必填不能为空', trigger: 'change' }],
|
||||||
ifAttachment: [{ required: true, message: '配件不能为空', trigger: 'change' }],
|
ifAttachment: [{ required: true, message: '配件不能为空', trigger: 'change' }],
|
||||||
ifSn: [{ required: true, message: '记录sn不能为空', trigger: 'blur' }]
|
ifSn: [{ required: true, message: '记录sn不能为空', trigger: 'blur' }],
|
||||||
|
productPropertiesCn : [{ required: true, message: '属性中文不能为空', trigger: 'blur' }],
|
||||||
|
productPropertiesEn : [{ required: true, message: '属性英文不能为空', trigger: 'blur' }]
|
||||||
})
|
})
|
||||||
const formRef = ref() // 表单 Ref
|
const formRef = ref() // 表单 Ref
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,14 +8,19 @@
|
||||||
:inline="true"
|
:inline="true"
|
||||||
label-width="68px"
|
label-width="68px"
|
||||||
>
|
>
|
||||||
<el-form-item label="所属分类" prop="productCategoryId">
|
<el-form-item label="类别" prop="productCategoryId">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="queryParams.productCategoryId"
|
v-model="queryParams.productCategoryId"
|
||||||
placeholder="请选择所属分类"
|
placeholder="请选择类别"
|
||||||
clearable
|
clearable
|
||||||
class="!w-240px"
|
class="!w-240px"
|
||||||
>
|
>
|
||||||
<el-option label="请选择字典生成" value="" />
|
<el-option
|
||||||
|
v-for="dict in productCategoryList"
|
||||||
|
:key="dict.id"
|
||||||
|
:label="dict.name"
|
||||||
|
:value="dict.id"
|
||||||
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="属性英文" prop="productPropertiesEn">
|
<el-form-item label="属性英文" prop="productPropertiesEn">
|
||||||
|
|
@ -27,6 +32,21 @@
|
||||||
class="!w-240px"
|
class="!w-240px"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="单数属性" prop="ifSingleProperty">
|
||||||
|
<el-select
|
||||||
|
v-model="queryParams.ifSingleProperty"
|
||||||
|
placeholder="请选择单身属性"
|
||||||
|
clearable
|
||||||
|
class="!w-240px"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="属性中文" prop="productPropertiesCn">
|
<el-form-item label="属性中文" prop="productPropertiesCn">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.productPropertiesCn"
|
v-model="queryParams.productPropertiesCn"
|
||||||
|
|
@ -73,7 +93,12 @@
|
||||||
clearable
|
clearable
|
||||||
class="!w-240px"
|
class="!w-240px"
|
||||||
>
|
>
|
||||||
<el-option label="请选择字典生成" value="" />
|
<el-option
|
||||||
|
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="创建时间" prop="createTime">
|
<el-form-item label="创建时间" prop="createTime">
|
||||||
|
|
@ -114,8 +139,12 @@
|
||||||
<!-- 列表 -->
|
<!-- 列表 -->
|
||||||
<ContentWrap>
|
<ContentWrap>
|
||||||
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
|
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
|
||||||
<el-table-column label="分类属性编号" align="center" prop="id" />
|
<el-table-column label="编号" align="center" prop="id" />
|
||||||
<el-table-column label="所属分类" align="center" prop="productCategoryId" />
|
<el-table-column label="所属分类" align="center" prop="productCategoryId">
|
||||||
|
<template #default="scope">
|
||||||
|
{{ getCategoryName(scope.row.productCategoryId) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="单数属性" align="center" prop="ifSingleProperty">
|
<el-table-column label="单数属性" align="center" prop="ifSingleProperty">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.ifSingleProperty" />
|
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.ifSingleProperty" />
|
||||||
|
|
@ -133,7 +162,11 @@
|
||||||
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.ifAttachment" />
|
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.ifAttachment" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="记录sn" align="center" prop="ifSn" />
|
<el-table-column label="记录sn" align="center" prop="ifSn">
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.ifRequired" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="创建时间"
|
label="创建时间"
|
||||||
align="center"
|
align="center"
|
||||||
|
|
@ -172,7 +205,7 @@
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
|
|
||||||
<!-- 表单弹窗:添加/修改 -->
|
<!-- 表单弹窗:添加/修改 -->
|
||||||
<ProductCategoryPropertiesForm ref="formRef" @success="getList" />
|
<ProductCategoryPropertiesForm ref="formRef" @success="getList" :product-category-list="productCategoryList" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
|
@ -181,7 +214,10 @@ import { dateFormatter } from '@/utils/formatTime'
|
||||||
import download from '@/utils/download'
|
import download from '@/utils/download'
|
||||||
import { ProductCategoryPropertiesApi, ProductCategoryPropertiesVO } from '@/api/erp/product/category/productcategoryproperties'
|
import { ProductCategoryPropertiesApi, ProductCategoryPropertiesVO } from '@/api/erp/product/category/productcategoryproperties'
|
||||||
import ProductCategoryPropertiesForm from './ProductCategoryPropertiesForm.vue'
|
import ProductCategoryPropertiesForm from './ProductCategoryPropertiesForm.vue'
|
||||||
|
import { ProductCategoryApi , ProductCategoryVO } from '@/api/erp/product/category'
|
||||||
|
|
||||||
|
/** ERP 产品分类的数组 */
|
||||||
|
const productCategoryList = ref<ProductCategoryVO[]>([])
|
||||||
/** ERP 产品分类属性 列表 */
|
/** ERP 产品分类属性 列表 */
|
||||||
defineOptions({ name: 'ProductCategoryProperties' })
|
defineOptions({ name: 'ProductCategoryProperties' })
|
||||||
|
|
||||||
|
|
@ -264,8 +300,30 @@ const handleExport = async () => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 根据用户输入搜索类别 */
|
||||||
|
const searchProductCategory = async () => {
|
||||||
|
//构建param对象
|
||||||
|
const params = {
|
||||||
|
status: 0
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
productCategoryList.value = await ProductCategoryApi.getProductCategoryList(params)
|
||||||
|
} catch (error) {
|
||||||
|
productCategoryList.value = []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 根据 productCategoryId 获取类别名称 */
|
||||||
|
const getCategoryName = (id: number | undefined) => {
|
||||||
|
if (!id) return ''
|
||||||
|
const category = productCategoryList.value.find(item => item.id === id)
|
||||||
|
return category ? category.name : '' // 假设类别名称字段为 name
|
||||||
|
}
|
||||||
|
|
||||||
/** 初始化 **/
|
/** 初始化 **/
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getList()
|
getList()
|
||||||
|
searchProductCategory()
|
||||||
|
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
Loading…
Reference in New Issue