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