Commit f7d66b4e5a9799ee4cf3aab633134a1c6b32757d

Authored by xp.Huang
2 parents 885b10be 0e3921d2

Merge branch 'perf/ota/06-28' into 'main_dev'

perf: 云端环境中,OTA升级包新增时,产品总共18条,pagesize为10只显示了10条,应该显示所有的产品

See merge request yunteng/thingskit-front!1395
@@ -3,7 +3,12 @@ @@ -3,7 +3,12 @@
3 import { BasicForm, useForm } from '/@/components/Form'; 3 import { BasicForm, useForm } from '/@/components/Form';
4 import { ALG, formSchema, PackageField } from '../config/packageDetail.config'; 4 import { ALG, formSchema, PackageField } from '../config/packageDetail.config';
5 import { ref } from 'vue'; 5 import { ref } from 'vue';
6 - import { createOtaPackage, uploadOtaPackages, deleteOtaPackage } from '/@/api/ota'; 6 + import {
  7 + createOtaPackage,
  8 + uploadOtaPackages,
  9 + deleteOtaPackage,
  10 + getDeviceProfileInfo,
  11 + } from '/@/api/ota';
7 import { CreateOtaPackageParams } from '/@/api/ota/model'; 12 import { CreateOtaPackageParams } from '/@/api/ota/model';
8 13
9 interface FieldsValue extends CreateOtaPackageParams { 14 interface FieldsValue extends CreateOtaPackageParams {
@@ -14,6 +19,8 @@ @@ -14,6 +19,8 @@
14 19
15 const emit = defineEmits(['register', 'update:list']); 20 const emit = defineEmits(['register', 'update:list']);
16 21
  22 + const defaultDeviceProfile = 'default';
  23 +
17 const loading = ref(false); 24 const loading = ref(false);
18 25
19 const [registerModal, { changeLoading, closeModal }] = useModalInner(); 26 const [registerModal, { changeLoading, closeModal }] = useModalInner();
@@ -72,6 +79,10 @@ @@ -72,6 +79,10 @@
72 try { 79 try {
73 await validate(); 80 await validate();
74 const value = getFieldsValue(); 81 const value = getFieldsValue();
  82 + if (value[PackageField.DEVICE_PROFILE_INFO] === defaultDeviceProfile) {
  83 + const data = await getDeviceProfileInfo(defaultDeviceProfile);
  84 + value[PackageField.DEVICE_PROFILE_INFO] = data.id.id;
  85 + }
75 value[PackageField.DEVICE_PROFILE_INFO] = { 86 value[PackageField.DEVICE_PROFILE_INFO] = {
76 id: value[PackageField.DEVICE_PROFILE_INFO], 87 id: value[PackageField.DEVICE_PROFILE_INFO],
77 entityType: 'DEVICE_PROFILE', 88 entityType: 'DEVICE_PROFILE',
1 -import { getDeviceProfileInfo, getDeviceProfileInfos } from '/@/api/ota'; 1 +import { getDeviceProfileInfos } from '/@/api/ota';
2 2
3 import { FormSchema } from '/@/components/Form'; 3 import { FormSchema } from '/@/components/Form';
4 import { FileItem } from '/@/components/Form/src/components/ApiUpload.vue'; 4 import { FileItem } from '/@/components/Form/src/components/ApiUpload.vue';
  5 +import { createPickerSearch } from '/@/utils/pickerSearch';
5 6
6 export enum PackageField { 7 export enum PackageField {
7 TITLE = 'title', 8 TITLE = 'title',
@@ -107,39 +108,25 @@ export const formSchema: FormSchema[] = [ @@ -107,39 +108,25 @@ export const formSchema: FormSchema[] = [
107 { 108 {
108 field: PackageField.DEVICE_PROFILE_INFO, 109 field: PackageField.DEVICE_PROFILE_INFO,
109 label: '所属产品', 110 label: '所属产品',
110 - component: 'ApiSearchSelect', 111 + component: 'ApiSelectScrollLoad',
111 helpMessage: ['上传的包仅适用于具有所选配置文件的设备'], 112 helpMessage: ['上传的包仅适用于具有所选配置文件的设备'],
112 rules: [{ required: true, message: '所属产品为必填项' }], 113 rules: [{ required: true, message: '所属产品为必填项' }],
113 defaultValue: 'default', 114 defaultValue: 'default',
114 - componentProps: ({ formModel, formActionType }) => { 115 + componentProps: () => {
115 return { 116 return {
116 placeholder: '请选择所属产品', 117 placeholder: '请选择所属产品',
117 - showSearch: true,  
118 labelField: 'name', 118 labelField: 'name',
119 valueField: 'id', 119 valueField: 'id',
  120 + pagination: { page: 0, pageSize: 10 },
120 api: async (params: Recordable) => { 121 api: async (params: Recordable) => {
121 - const data = await getDeviceProfileInfos(params);  
122 - return data.data.map((item) => ({ 122 + const { totalElements, data } = await getDeviceProfileInfos(params);
  123 + const dataList = data.map((item) => ({
123 ...item, 124 ...item,
124 id: item.id.id, 125 id: item.id.id,
125 })); 126 }));
  127 + return { items: dataList, total: totalElements };
126 }, 128 },
127 - params: (textSearch: string) => {  
128 - return {  
129 - page: 0,  
130 - pageSize: 10,  
131 - textSearch,  
132 - };  
133 - },  
134 - queryApi: async (id = 'default') => {  
135 - const data = await getDeviceProfileInfo(id);  
136 -  
137 - if (formModel[PackageField.DEVICE_PROFILE_INFO] === 'default' && id === 'default') {  
138 - formActionType.setFieldsValue({ [PackageField.DEVICE_PROFILE_INFO]: data.id.id });  
139 - }  
140 -  
141 - return { ...data, id: data.id.id };  
142 - }, 129 + ...createPickerSearch(),
143 }; 130 };
144 }, 131 },
145 }, 132 },