Commit 336f573396dabce760f4dde555c1d7e41f942a5c

Authored by xp.Huang
2 parents 43f1eaa5 23628383

Merge branch 'fix/category-class-role' into 'main_dev'

fix: 修复产品品类权限接口问题

See merge request yunteng/thingskit-front!1391
... ... @@ -48,7 +48,10 @@
48 48 rowSelection: {
49 49 type: 'checkbox',
50 50 getCheckboxProps: (record: any) => {
51   - return { disabled: !!record.status };
  51 + return {
  52 + disabled:
  53 + getAuthCache(USER_INFO_KEY).tenantId === record.tenantId ? !!record.status : true,
  54 + };
52 55 },
53 56 },
54 57 });
... ... @@ -86,12 +89,14 @@
86 89
87 90 // 详情
88 91 const registerDetailRecord = ref<any>({});
  92 + const isCurrentTenant = ref<Boolean>(false);
89 93 const handleDetail = (record?: any) => {
90 94 openDrawer(true);
91 95 registerDetailRecord.value = {
92 96 ...record,
93 97 ifShowClass: true,
94 98 };
  99 + isCurrentTenant.value = getAuthCache(USER_INFO_KEY).tenantId === record.tenantId;
95 100 };
96 101
97 102 // 状态->编辑
... ... @@ -145,6 +150,7 @@
145 150 <Switch
146 151 @click="(e) => handleSwitch(e, record)"
147 152 :loading="switchLoading"
  153 + :disabled="getAuthCache(USER_INFO_KEY).tenantId !== record.tenantId"
148 154 v-model:checked="record.status"
149 155 checked-children="启用"
150 156 un-checked-children="禁用"
... ... @@ -165,14 +171,17 @@
165 171 label: '编辑',
166 172 auth: 'api:yt:product:category:update',
167 173 icon: 'clarity:note-edit-line',
168   - ifShow: authBtn(role),
  174 + ifShow: authBtn(role) && getAuthCache(USER_INFO_KEY).tenantId === record.tenantId,
169 175 onClick: handleEdit.bind(null, record),
170 176 },
171 177 {
172 178 label: '删除',
173 179 auth: 'api:yt:product:category:delete',
174 180 icon: 'ant-design:delete-outlined',
175   - ifShow: authBtn(role) && !record.status,
  181 + ifShow:
  182 + authBtn(role) &&
  183 + !record.status &&
  184 + getAuthCache(USER_INFO_KEY).tenantId === record.tenantId,
176 185 color: 'error',
177 186 popConfirm: {
178 187 title: '是否确认删除',
... ... @@ -185,7 +194,10 @@
185 194 </BasicTable>
186 195 <classModal @register="registerModal" @handleReload="handleReload" />
187 196 <BasicDrawer title="物模型" @register="registerDetailDrawer" width="60%" destroy-on-close>
188   - <PhysicalModelManagementStep :record="registerDetailRecord" />
  197 + <PhysicalModelManagementStep
  198 + :isCurrentTenant="isCurrentTenant"
  199 + :record="registerDetailRecord"
  200 + />
189 201 </BasicDrawer>
190 202 </div>
191 203 </template>
... ...
... ... @@ -20,7 +20,7 @@
20 20 key="modelOfMatter"
21 21 tab="物模型管理"
22 22 >
23   - <PhysicalModelManagementStep :record="record" />
  23 + <PhysicalModelManagementStep :record="record" :isCurrentTenant="true" />
24 24 </Tabs.TabPane>
25 25 </Tabs>
26 26 </BasicDrawer>
... ...
... ... @@ -8,7 +8,7 @@
8 8 >
9 9 <template #toolbar>
10 10 <div class="flex-auto">
11   - <div class="mb-2">
  11 + <div class="mb-2" v-if="isCurrentTenant">
12 12 <Alert type="info" show-icon>
13 13 <template #message>
14 14 <span v-if="!isShowBtn">
... ... @@ -39,6 +39,7 @@
39 39 <Button type="primary" @click="handleExport" :loading="loading">导出物模型</Button>
40 40 </Authority>
41 41 <Authority
  42 + v-if="isCurrentTenant"
42 43 :value="[
43 44 'api:yt:things_model:import',
44 45 'api:yt:things_model:category:import',
... ... @@ -47,7 +48,10 @@
47 48 >
48 49 <Button type="primary" @click="handleSelectImport">导入物模型</Button>
49 50 </Authority>
50   - <Button type="primary" v-if="!isShowBtn" @click="handleEditPhysicalModel"
  51 + <Button
  52 + type="primary"
  53 + v-if="!isShowBtn && isCurrentTenant"
  54 + @click="handleEditPhysicalModel"
51 55 >编辑物模型</Button
52 56 >
53 57 </div>
... ... @@ -159,11 +163,12 @@
159 163 import { DataActionModeEnum } from '/@/enums/toolEnum';
160 164 import { DeviceProfileDetail } from '/@/api/device/model/deviceConfigModel';
161 165
162   - const { isPlatformAdmin, isSysadmin } = useRole();
  166 + const { isPlatformAdmin, isSysadmin, isTenantAdmin } = useRole();
163 167 defineEmits(['register']);
164 168
165 169 const props = defineProps<{
166 170 record: DeviceProfileDetail;
  171 + isCurrentTenant: Boolean;
167 172 }>();
168 173
169 174 const { createMessage } = useMessage();
... ... @@ -224,7 +229,8 @@
224 229
225 230 const handleDeleteOrBatchDelete = async (record?: ModelOfMatterItemRecordType) => {
226 231 const deleteFn =
227   - props.record.ifShowClass && (unref(isPlatformAdmin) || unref(isSysadmin))
  232 + (props.record.ifShowClass && (unref(isPlatformAdmin) || unref(isSysadmin))) ||
  233 + unref(isTenantAdmin)
228 234 ? deleteModelCategory
229 235 : deleteModel;
230 236
... ... @@ -265,7 +271,10 @@
265 271 const handleSelectImport = () => {
266 272 openModalSelect(true, {
267 273 id: props.record.id,
268   - isCateGory: (unref(isPlatformAdmin) || unref(isSysadmin)) && props.record.ifShowClass,
  274 + isCateGory:
  275 + unref(isPlatformAdmin) ||
  276 + unref(isSysadmin) ||
  277 + (unref(isTenantAdmin) && props.record.ifShowClass),
269 278 });
270 279 };
271 280
... ...
... ... @@ -31,7 +31,7 @@
31 31 import { DataActionModeEnum, DataActionModeNameEnum } from '/@/enums/toolEnum';
32 32 import { DeviceProfileDetail } from '/@/api/device/model/deviceConfigModel';
33 33
34   - const { isPlatformAdmin, isSysadmin } = useRole();
  34 + const { isPlatformAdmin, isSysadmin, isTenantAdmin } = useRole();
35 35
36 36 const emit = defineEmits(['register', 'success']);
37 37
... ... @@ -77,7 +77,9 @@
77 77 const value = unref(objectModelElRef)!.getFieldsValue();
78 78
79 79 const isCategoryAction =
80   - (unref(isSysadmin) || unref(isPlatformAdmin)) && props.record.ifShowClass;
  80 + unref(isSysadmin) ||
  81 + unref(isPlatformAdmin) ||
  82 + (unref(isTenantAdmin) && props.record.ifShowClass);
81 83
82 84 const submitFn =
83 85 unref(openModalMode) === DataActionModeEnum.CREATE
... ...