diff --git a/src/api/system/company/model/index.ts b/src/api/system/company/model/index.ts index f8d4970..b950b3e 100644 --- a/src/api/system/company/model/index.ts +++ b/src/api/system/company/model/index.ts @@ -6,6 +6,7 @@ export interface Company { shortName?: string; companyName?: string; companyType?: number; + companyTypeMultiple?: string; companyLogo?: string; companyCode?: string; domain?: string; @@ -28,6 +29,7 @@ export interface Company { address?: string; latitude?: string; longitude?: string; + businessEntity?: string; comments?: string; authentication?: number; industryId?: number; diff --git a/src/api/tower/accessory/model/index.ts b/src/api/tower/accessory/model/index.ts index cc9f887..85e228b 100644 --- a/src/api/tower/accessory/model/index.ts +++ b/src/api/tower/accessory/model/index.ts @@ -4,8 +4,9 @@ export interface Accessory { accessoryId?: undefined; accessoryName?: string; accessoryNo?: string; - accessoryCategory?: string; + accessoryCategory?: object; accessoryModel?: string; + accessoryModelMultiple?: string[]; accessorySpecs?: string; accessoryPrice?: number; accessoryUnit?: string; diff --git a/src/api/tower/model/model/index.ts b/src/api/tower/model/model/index.ts index a74eddb..1f5c6d7 100644 --- a/src/api/tower/model/model/index.ts +++ b/src/api/tower/model/model/index.ts @@ -5,9 +5,11 @@ import type { PageParam } from '@/api'; */ export interface TowerModel { // 型号分类id - categoryId?: number; - // 型号分类 - title?: string; + modelId?: number; + // 设备名称 + name?: string; + // 设备型号 + model?: string; // 型号分类图片 image?: string; // 使用年限 @@ -37,8 +39,6 @@ export interface TowerModel { // merchantCode?: string; value?: number; - // 子菜单 - children?: TowerModel[]; } /** diff --git a/src/components/AccessoryCategory/index.vue b/src/components/AccessoryCategory/index.vue new file mode 100644 index 0000000..5a6ddfe --- /dev/null +++ b/src/components/AccessoryCategory/index.vue @@ -0,0 +1,81 @@ + + + + diff --git a/src/components/AccessoryCategory/types/index.ts b/src/components/AccessoryCategory/types/index.ts new file mode 100644 index 0000000..7c49435 --- /dev/null +++ b/src/components/AccessoryCategory/types/index.ts @@ -0,0 +1,15 @@ +/** + * 行业类型 + */ +export interface IndustryData { + label: string; + value: string; + children?: { + value: string; + label: string; + children?: { + value: string; + label: string; + }[]; + }[]; +} diff --git a/src/components/TowerSelectModel/components/select-data.vue b/src/components/TowerSelectModel/components/select-data.vue new file mode 100644 index 0000000..ab37c93 --- /dev/null +++ b/src/components/TowerSelectModel/components/select-data.vue @@ -0,0 +1,144 @@ + + + + diff --git a/src/components/TowerSelectModel/index.vue b/src/components/TowerSelectModel/index.vue new file mode 100644 index 0000000..0c3deb9 --- /dev/null +++ b/src/components/TowerSelectModel/index.vue @@ -0,0 +1,63 @@ + + + diff --git a/src/components/TowerSelectModelMultiple/components/select-data.vue b/src/components/TowerSelectModelMultiple/components/select-data.vue new file mode 100644 index 0000000..281be3a --- /dev/null +++ b/src/components/TowerSelectModelMultiple/components/select-data.vue @@ -0,0 +1,143 @@ + + + + diff --git a/src/components/TowerSelectModelMultiple/index.vue b/src/components/TowerSelectModelMultiple/index.vue new file mode 100644 index 0000000..554c353 --- /dev/null +++ b/src/components/TowerSelectModelMultiple/index.vue @@ -0,0 +1,62 @@ + + + diff --git a/src/views/tower/accessory/components/accessory-edit.vue b/src/views/tower/accessory/components/accessory-edit.vue index 381731b..7c7744b 100644 --- a/src/views/tower/accessory/components/accessory-edit.vue +++ b/src/views/tower/accessory/components/accessory-edit.vue @@ -24,10 +24,11 @@ v-bind="styleResponsive ? { md: 8, sm: 24, xs: 24 } : { span: 8 }" > - @@ -77,11 +78,10 @@ v-bind="styleResponsive ? { md: 8, sm: 24, xs: 24 } : { span: 8 }" > - @@ -114,11 +114,6 @@ :customer-type="`产权单位`" @done="chooseCompanyName" /> - - - - - - - + @@ -198,10 +193,7 @@ import { Accessory } from '@/api/tower/accessory/model'; import { useThemeStore } from '@/store/modules/theme'; import { storeToRefs } from 'pinia'; - import CategorySelect from './category-select.vue'; - import ModelSelect from './model-select.vue'; import { FormInstance } from 'ant-design-vue/es/form'; - import { Warehouse } from '@/api/tower/warehouse/model'; import { Customer } from '@/api/oa/customer/model'; import { Category } from '@/api/goods/category/model'; import { TowerModel } from '@/api/tower/model/model'; @@ -232,6 +224,7 @@ const loading = ref(false); // 是否显示最大化切换按钮 const maxable = ref(true); + // 表格选中数据 const formRef = ref(null); // 用户信息 @@ -239,8 +232,9 @@ accessoryId: undefined, accessoryName: '', accessoryNo: '', - accessoryCategory: '', + accessoryCategory: undefined, accessoryModel: '', + accessoryModelMultiple: [], accessorySpecs: '', accessoryPrice: 0, accessoryUnit: '', @@ -270,7 +264,7 @@ accessoryCategory: [ { required: true, - type: 'number', + type: 'array', message: '请输入配件分类', trigger: 'blur' } @@ -286,7 +280,7 @@ accessoryModel: [ { required: true, - type: 'number', + type: 'string', message: '请输入设备型号', trigger: 'blur' } @@ -318,22 +312,17 @@ }); const { resetFields } = useForm(form, rules); - - const chooseModel = (data: Warehouse) => { - form.accessoryModel = data.warehouseName; - }; - const chooseCompanyName = (data: Customer) => { form.companyName = data.customerName; }; - - const handleModel = (index) => { - props.modelList?.map((d) => { - console.log(index); - console.log(d.categoryId); - if (index == d.categoryId) { - form.lifeYear = Number(d.yearLife); - } + const chooseAccessoryModel = (data: TowerModel) => { + form.accessoryModel = data.name?.concat(String(data.model)); + form.lifeYear = data.yearLife; + }; + const chooseMultiple = (data) => { + form.accessoryModelMultiple = []; + data.map((d) => { + form.accessoryModelMultiple?.push(`${d.name}${d.model}`); }); }; @@ -346,8 +335,11 @@ .validate() .then(() => { loading.value = true; + console.log(form.accessoryCategory?.[0]); const formData = { - ...form + ...form, + accessoryCategory: `${form.accessoryCategory?.[0]} / ${form.accessoryCategory?.[1]}`, + accessoryModelMultiple: JSON.stringify(form.accessoryModelMultiple) }; const saveOrUpdate = isUpdate.value ? updateAccessory : addAccessory; saveOrUpdate(formData) @@ -371,6 +363,16 @@ if (visible) { if (props.data) { assignObject(form, props.data); + const accessoryCategory = String(props.data.accessoryCategory); + const split = accessoryCategory?.split(' / '); + if (typeof split == 'object') { + form.accessoryCategory = split; + } + if (props.data.accessoryModelMultiple) { + form.accessoryModelMultiple = JSON.parse( + String(form.accessoryModelMultiple) + ); + } isUpdate.value = true; } else { isUpdate.value = false; diff --git a/src/views/tower/accessory/index.vue b/src/views/tower/accessory/index.vue index 348ab50..93c7b3f 100644 --- a/src/views/tower/accessory/index.vue +++ b/src/views/tower/accessory/index.vue @@ -370,41 +370,6 @@ }); }; - /* 查询 */ - const query2 = () => { - loading.value = true; - listTowerModel() - .then((list) => { - loading.value = false; - data2List.value = list; - const eks: number[] = []; - list.forEach((d) => { - d.key = d.categoryId; - d.value = d.categoryId; - if (typeof d.categoryId === 'number') { - eks.push(d.categoryId); - } - }); - expandedRowKeys.value = eks; - data2.value = toTreeData({ - data: list, - idField: 'categoryId', - parentIdField: 'parentId' - }); - if (list.length) { - if (typeof list[0].categoryId === 'number') { - selectedRowKeys.value = [list[0].categoryId]; - } - } else { - selectedRowKeys.value = []; - } - }) - .catch((e) => { - loading.value = false; - message.error(e.message); - }); - }; - /* 自定义行属性 */ const customRow = (record: Accessory) => { return { @@ -420,7 +385,6 @@ }; query(); - query2(); + + diff --git a/src/views/tower/model/index.vue b/src/views/tower/model/index.vue index a58d873..1d52523 100644 --- a/src/views/tower/model/index.vue +++ b/src/views/tower/model/index.vue @@ -4,17 +4,14 @@ 新建 - - 展开全部 - - - 折叠全部 -