Commit c378175feced2c40e4a59b30828a2c48c4628453

Authored by ww
1 parent d918d635

fix: DEFECT-853 ota list not exist edit button

... ... @@ -23,31 +23,40 @@
23 23
24 24 const loading = ref(false);
25 25
  26 + const isUpdate = ref(false);
  27 +
26 28 const otaRecord = ref<OtaRecordDatum>({} as unknown as OtaRecordDatum);
27 29
28 30 const deviceProfileInfo = ref<DeviceProfileRecord>({} as unknown as DeviceProfileRecord);
29 31
30 32 const { createConfirm, createMessage } = useMessage();
31 33
32   - const [registerForm, { setFieldsValue, getFieldsValue }] = useForm({
  34 + const [registerForm, { setFieldsValue, getFieldsValue, updateSchema }] = useForm({
33 35 schemas: formSchema,
34 36 showActionButtonGroup: false,
35 37 disabled: true,
36 38 });
37 39
38   - const [register, { closeDrawer, changeLoading }] = useDrawerInner(async (id: string) => {
39   - try {
40   - const record = await getOtaPackageInfo(id);
41   - const deviceInfo = await getDeviceProfileInfoById(record.deviceProfileId.id);
42   - setFieldsValue({
43   - ...record,
44   - [PackageField.DESCRIPTION]: record.additionalInfo.description,
45   - [PackageField.DEVICE_PROFILE_INFO]: deviceInfo.name,
46   - });
47   - deviceProfileInfo.value = deviceInfo;
48   - otaRecord.value = record;
49   - } catch (error) {}
50   - });
  40 + const [register, { closeDrawer, changeLoading }] = useDrawerInner(
  41 + async (params: { id: string; isUpdate: boolean }) => {
  42 + try {
  43 + const { id, isUpdate: flag } = params;
  44 + isUpdate.value = flag;
  45 + const record = await getOtaPackageInfo(id);
  46 + const deviceInfo = await getDeviceProfileInfoById(record.deviceProfileId.id);
  47 + setFieldsValue({
  48 + ...record,
  49 + [PackageField.DESCRIPTION]: record.additionalInfo.description,
  50 + [PackageField.DEVICE_PROFILE_INFO]: deviceInfo.name,
  51 + });
  52 + deviceProfileInfo.value = deviceInfo;
  53 + otaRecord.value = record;
  54 + if (unref(isUpdate)) {
  55 + updateSchema({ field: PackageField.DESCRIPTION, dynamicDisabled: false });
  56 + }
  57 + } catch (error) {}
  58 + }
  59 + );
51 60
52 61 // const [registerTBDrawer, TBDrawerMethod] = useDrawer();
53 62
... ... @@ -146,7 +155,9 @@
146 155 >
147 156 <Button class="mr-2" @click="closeDrawer">取消</Button>
148 157 <Authority :value="OtaPermissionKey.UPDATE">
149   - <Button type="primary" :loading="loading" @click="handleSubmit">保存</Button>
  158 + <Button v-if="isUpdate" type="primary" :loading="loading" @click="handleSubmit">
  159 + 保存
  160 + </Button>
150 161 </Authority>
151 162 </div>
152 163 </template>
... ...
... ... @@ -13,6 +13,7 @@ export enum OtaPermissionKey {
13 13 UPDATE = 'api:operation:ota:update',
14 14 DELETE = 'api:operation:ota:delete',
15 15 DOWNLOAD = 'api:operation:ota:download',
  16 + DETAIL = 'api:operation:ota:detail',
16 17 }
17 18
18 19 export const columns: BasicColumn[] = [
... ... @@ -80,6 +81,7 @@ export const columns: BasicColumn[] = [
80 81 dataIndex: 'action',
81 82 flag: 'ACTION',
82 83 fixed: 'right',
  84 + width: 200,
83 85 slots: {
84 86 customRender: 'action',
85 87 },
... ...
... ... @@ -113,6 +113,5 @@ export const formSchema: FormSchema[] = [
113 113 field: PackageField.DESCRIPTION,
114 114 label: '描述',
115 115 component: 'Input',
116   - dynamicDisabled: false,
117 116 },
118 117 ];
... ...
... ... @@ -57,8 +57,8 @@
57 57 openModal(true, { isUpdate: false } as ModalPassRecord);
58 58 };
59 59
60   - const handleOpenDetailDrawer = (record: OtaRecordDatum) => {
61   - openDrawer(true, record.id.id);
  60 + const handleOpenDetailDrawer = (record: OtaRecordDatum, isUpdate: boolean) => {
  61 + openDrawer(true, { id: record.id.id, isUpdate });
62 62 };
63 63
64 64 const downloadFile = async (record: OtaRecordDatum) => {
... ... @@ -117,6 +117,20 @@
117 117 @click.stop
118 118 :actions="[
119 119 {
  120 + label: '详情',
  121 + icon: 'ant-design:eye-outlined',
  122 + auth: OtaPermissionKey.DETAIL,
  123 + onClick: handleOpenDetailDrawer.bind(null, record, false),
  124 + },
  125 + {
  126 + label: '编辑',
  127 + icon: 'clarity:note-edit-line',
  128 + auth: OtaPermissionKey.UPDATE,
  129 + onClick: handleOpenDetailDrawer.bind(null, record, true),
  130 + },
  131 + ]"
  132 + :drop-down-actions="[
  133 + {
120 134 label: '下载',
121 135 icon: 'ant-design:download-outlined',
122 136 auth: OtaPermissionKey.DOWNLOAD,
... ...