Commit e307339ed3651e89407483b246a8759fff52e931
Merge branch 'f-dev' into 'main'
fix:修改teambition的问题 See merge request huang/yun-teng-iot-front!232
Showing
7 changed files
with
37 additions
and
11 deletions
| @@ -110,6 +110,7 @@ export const usePermissionStore = defineStore({ | @@ -110,6 +110,7 @@ export const usePermissionStore = defineStore({ | ||
| 110 | * 否则不是超级管理员-获取对应角色的权限列表 | 110 | * 否则不是超级管理员-获取对应角色的权限列表 |
| 111 | */ | 111 | */ |
| 112 | const codeList = await getPermCode(); | 112 | const codeList = await getPermCode(); |
| 113 | + // console.log('codeList', codeList); | ||
| 113 | this.setPermCodeList(codeList); | 114 | this.setPermCodeList(codeList); |
| 114 | /** | 115 | /** |
| 115 | * 如果是超级管理员则获取对应权限列表 | 116 | * 如果是超级管理员则获取对应权限列表 |
| @@ -16,7 +16,7 @@ | @@ -16,7 +16,7 @@ | ||
| 16 | type="primary" | 16 | type="primary" |
| 17 | color="error" | 17 | color="error" |
| 18 | @click="handleDeleteOrBatchDelete(null)" | 18 | @click="handleDeleteOrBatchDelete(null)" |
| 19 | - :disabled="hasBatchDelete" | 19 | + :disabled="singleStopDeleteStatus || hasBatchDelete" |
| 20 | > | 20 | > |
| 21 | 批量删除 | 21 | 批量删除 |
| 22 | </a-button> | 22 | </a-button> |
| @@ -117,6 +117,7 @@ | @@ -117,6 +117,7 @@ | ||
| 117 | convertIds: [], | 117 | convertIds: [], |
| 118 | status: 0, | 118 | status: 0, |
| 119 | }); | 119 | }); |
| 120 | + const singleStopDeleteStatus = ref(false); | ||
| 120 | const disabledStatus1 = ref(true); | 121 | const disabledStatus1 = ref(true); |
| 121 | const disabledStatus2 = ref(true); | 122 | const disabledStatus2 = ref(true); |
| 122 | const disabledStatus3 = ref(true); | 123 | const disabledStatus3 = ref(true); |
| @@ -314,6 +315,7 @@ | @@ -314,6 +315,7 @@ | ||
| 314 | setLoading(false); | 315 | setLoading(false); |
| 315 | reload(); | 316 | reload(); |
| 316 | disabledStatus1.value = true; | 317 | disabledStatus1.value = true; |
| 318 | + singleStopDeleteStatus.value = true; | ||
| 317 | } else { | 319 | } else { |
| 318 | createMessage.error('流转配置多项启用失败'); | 320 | createMessage.error('流转配置多项启用失败'); |
| 319 | } | 321 | } |
| @@ -342,6 +344,7 @@ | @@ -342,6 +344,7 @@ | ||
| 342 | handleDisable, | 344 | handleDisable, |
| 343 | hasBatchDelete, | 345 | hasBatchDelete, |
| 344 | handleDeleteOrBatchDelete, | 346 | handleDeleteOrBatchDelete, |
| 347 | + singleStopDeleteStatus, | ||
| 345 | }; | 348 | }; |
| 346 | }, | 349 | }, |
| 347 | }); | 350 | }); |
| @@ -212,7 +212,7 @@ | @@ -212,7 +212,7 @@ | ||
| 212 | unref(skipUnwrap.triggerItemRefs)[index].isUpdate = true; | 212 | unref(skipUnwrap.triggerItemRefs)[index].isUpdate = true; |
| 213 | unref(skipUnwrap.triggerItemRefs)[index].alarmScheduleRef.scheduleData = | 213 | unref(skipUnwrap.triggerItemRefs)[index].alarmScheduleRef.scheduleData = |
| 214 | trigger.triggerCondition.schedule; | 214 | trigger.triggerCondition.schedule; |
| 215 | - const getAttrKeyOption = trigger?.triggerCondition?.condition?.condition.map( | 215 | + const getAttrKeyOption = trigger?.triggerCondition?.condition?.condition?.map( |
| 216 | (m) => m.key.key | 216 | (m) => m.key.key |
| 217 | ); | 217 | ); |
| 218 | unref(skipUnwrap.triggerItemRefs)[index].setFieldsFormValueFun({ | 218 | unref(skipUnwrap.triggerItemRefs)[index].setFieldsFormValueFun({ |
| @@ -287,7 +287,7 @@ | @@ -287,7 +287,7 @@ | ||
| 287 | unref(skipUnwrap.conditionItemRefs)[index].isUpdate = true; | 287 | unref(skipUnwrap.conditionItemRefs)[index].isUpdate = true; |
| 288 | unref(skipUnwrap.conditionItemRefs)[index].alarmScheduleRef.scheduleData = | 288 | unref(skipUnwrap.conditionItemRefs)[index].alarmScheduleRef.scheduleData = |
| 289 | condition.triggerCondition.schedule; | 289 | condition.triggerCondition.schedule; |
| 290 | - const getAttrKeyOption = condition?.triggerCondition?.condition?.condition.map( | 290 | + const getAttrKeyOption = condition?.triggerCondition?.condition?.condition?.map( |
| 291 | (m) => m.key.key | 291 | (m) => m.key.key |
| 292 | ); | 292 | ); |
| 293 | unref(skipUnwrap.conditionItemRefs)[index].setFieldsFormValueFun({ | 293 | unref(skipUnwrap.conditionItemRefs)[index].setFieldsFormValueFun({ |
| @@ -521,7 +521,7 @@ | @@ -521,7 +521,7 @@ | ||
| 521 | unref(linkAge).map((item) => { | 521 | unref(linkAge).map((item) => { |
| 522 | isOrganizationChange && item.resetFieldsValueFunc(); | 522 | isOrganizationChange && item.resetFieldsValueFunc(); |
| 523 | item.updateFieldDeviceId(deviceList); | 523 | item.updateFieldDeviceId(deviceList); |
| 524 | - item.updateFieldAttr(watchAttrList); | 524 | + // item.updateFieldAttr(watchAttrList); |
| 525 | }); | 525 | }); |
| 526 | } | 526 | } |
| 527 | function setAlarmConfig(linkAge, isOrganizationChange = false) { | 527 | function setAlarmConfig(linkAge, isOrganizationChange = false) { |
| @@ -123,7 +123,7 @@ export const schemas: FormSchema[] = [ | @@ -123,7 +123,7 @@ export const schemas: FormSchema[] = [ | ||
| 123 | field: 'prov', | 123 | field: 'prov', |
| 124 | label: '所在城市', | 124 | label: '所在城市', |
| 125 | required: true, | 125 | required: true, |
| 126 | - component: 'Input', | 126 | + component: 'Select', |
| 127 | colProps: { | 127 | colProps: { |
| 128 | span: 24, | 128 | span: 24, |
| 129 | }, | 129 | }, |
| @@ -172,7 +172,7 @@ export const schemas: FormSchema[] = [ | @@ -172,7 +172,7 @@ export const schemas: FormSchema[] = [ | ||
| 172 | field: 'qrcode', | 172 | field: 'qrcode', |
| 173 | label: '联系我们', | 173 | label: '联系我们', |
| 174 | required: true, | 174 | required: true, |
| 175 | - component: 'Input', | 175 | + component: 'Select', |
| 176 | colProps: { | 176 | colProps: { |
| 177 | span: 24, | 177 | span: 24, |
| 178 | }, | 178 | }, |
| @@ -62,6 +62,7 @@ | @@ -62,6 +62,7 @@ | ||
| 62 | @preview="handlePreview" | 62 | @preview="handlePreview" |
| 63 | :customRequest="customUploadHomeSwiper" | 63 | :customRequest="customUploadHomeSwiper" |
| 64 | :before-upload="beforeUploadHomeSwiper" | 64 | :before-upload="beforeUploadHomeSwiper" |
| 65 | + @change="handleChange" | ||
| 65 | > | 66 | > |
| 66 | <div v-if="fileList.length < 5"> | 67 | <div v-if="fileList.length < 5"> |
| 67 | <div style="margin-top: 1.875rem"> | 68 | <div style="margin-top: 1.875rem"> |
| @@ -147,9 +148,6 @@ | @@ -147,9 +148,6 @@ | ||
| 147 | previewImage.value = file.url || file.preview; | 148 | previewImage.value = file.url || file.preview; |
| 148 | previewVisible.value = true; | 149 | previewVisible.value = true; |
| 149 | }; | 150 | }; |
| 150 | - const handleChange = ({ fileList: newFileList }: FileInfo) => { | ||
| 151 | - fileList.value = newFileList; | ||
| 152 | - }; | ||
| 153 | 151 | ||
| 154 | // logo图片上传 | 152 | // logo图片上传 |
| 155 | const logoPic = ref(); | 153 | const logoPic = ref(); |
| @@ -232,6 +230,11 @@ | @@ -232,6 +230,11 @@ | ||
| 232 | } | 230 | } |
| 233 | return isJpgOrPng && isLt2M; | 231 | return isJpgOrPng && isLt2M; |
| 234 | }; | 232 | }; |
| 233 | + const handleChange = (info: FileInfo) => { | ||
| 234 | + if (info.file.status !== 'uploading') { | ||
| 235 | + fileList.value = info.fileList.filter((f: any) => !f.size); | ||
| 236 | + } | ||
| 237 | + }; | ||
| 235 | 238 | ||
| 236 | const handleUpdateInfo = async () => { | 239 | const handleUpdateInfo = async () => { |
| 237 | try { | 240 | try { |
| @@ -10,10 +10,10 @@ | @@ -10,10 +10,10 @@ | ||
| 10 | <BasicForm @register="registerForm"> | 10 | <BasicForm @register="registerForm"> |
| 11 | <template #menu> | 11 | <template #menu> |
| 12 | <BasicTree | 12 | <BasicTree |
| 13 | + v-if="treeData.length" | ||
| 13 | checkable | 14 | checkable |
| 14 | toolbar | 15 | toolbar |
| 15 | - defaultExpandAll | ||
| 16 | - v-if="treeData.length" | 16 | + autoExpandParent |
| 17 | ref="treeRef" | 17 | ref="treeRef" |
| 18 | :treeData="treeData" | 18 | :treeData="treeData" |
| 19 | :replaceFields="{ title: 'menuName' }" | 19 | :replaceFields="{ title: 'menuName' }" |
| @@ -69,8 +69,16 @@ | @@ -69,8 +69,16 @@ | ||
| 69 | } | 69 | } |
| 70 | }); | 70 | }); |
| 71 | } | 71 | } |
| 72 | + // function lookForAllId(data = [], arr = []) { | ||
| 73 | + // for (const item of data) { | ||
| 74 | + // arr.push(item.parentId); | ||
| 75 | + // if (item.children && item.children.length > 0) lookForAllId(item.children, arr); | ||
| 76 | + // } | ||
| 77 | + // return arr; | ||
| 78 | + // } | ||
| 72 | const originMenus = ref(); | 79 | const originMenus = ref(); |
| 73 | const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => { | 80 | const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => { |
| 81 | + allCheckedKeys.value = []; | ||
| 74 | resetFields(); | 82 | resetFields(); |
| 75 | roleId.value = ''; | 83 | roleId.value = ''; |
| 76 | // 在打开弹窗时清除所有选择的菜单 | 84 | // 在打开弹窗时清除所有选择的菜单 |
| @@ -85,6 +93,7 @@ | @@ -85,6 +93,7 @@ | ||
| 85 | } | 93 | } |
| 86 | // 更新 | 94 | // 更新 |
| 87 | if (unref(isUpdate)) { | 95 | if (unref(isUpdate)) { |
| 96 | + allCheckedKeys.value = []; | ||
| 88 | checked.value = []; | 97 | checked.value = []; |
| 89 | //通过角色id去获取角色对应的菜单的ids | 98 | //通过角色id去获取角色对应的菜单的ids |
| 90 | roleMenus.value = await getMenusIdsByRoleId(data.record.id); | 99 | roleMenus.value = await getMenusIdsByRoleId(data.record.id); |
| @@ -107,6 +116,8 @@ | @@ -107,6 +116,8 @@ | ||
| 107 | } | 116 | } |
| 108 | nextTick(() => { | 117 | nextTick(() => { |
| 109 | treeRef.value.setCheckedKeys(checked.value); | 118 | treeRef.value.setCheckedKeys(checked.value); |
| 119 | + // const expandTreeIds = lookForAllId(treeData.value); | ||
| 120 | + // treeRef.value.setExpandedKeys(expandTreeIds); | ||
| 110 | }); | 121 | }); |
| 111 | roleId.value = data.record.id; | 122 | roleId.value = data.record.id; |
| 112 | setFieldsValue(data.record); | 123 | setFieldsValue(data.record); |
| @@ -127,6 +138,9 @@ | @@ -127,6 +138,9 @@ | ||
| 127 | status: values.status, | 138 | status: values.status, |
| 128 | menu: allCheckedKeys.value.length ? allCheckedKeys.value : originMenus.value, | 139 | menu: allCheckedKeys.value.length ? allCheckedKeys.value : originMenus.value, |
| 129 | }; | 140 | }; |
| 141 | + console.log(allCheckedKeys.value); | ||
| 142 | + if (allCheckedKeys.value.length == 0) return createMessage.error('请勾选权限菜单'); | ||
| 143 | + if (req.menu == undefined) return createMessage.error('请勾选权限菜单'); | ||
| 130 | saveOrUpdateRoleInfoWithMenu(req).then(() => { | 144 | saveOrUpdateRoleInfoWithMenu(req).then(() => { |
| 131 | closeDrawer(); | 145 | closeDrawer(); |
| 132 | emit('success'); | 146 | emit('success'); |
| @@ -12,6 +12,7 @@ | @@ -12,6 +12,7 @@ | ||
| 12 | <BasicTree | 12 | <BasicTree |
| 13 | v-if="treeData.length > 0" | 13 | v-if="treeData.length > 0" |
| 14 | :treeData="treeData" | 14 | :treeData="treeData" |
| 15 | + autoExpandParent | ||
| 15 | :replaceFields="{ title: 'menuName' }" | 16 | :replaceFields="{ title: 'menuName' }" |
| 16 | :checkedKeys="roleMenus" | 17 | :checkedKeys="roleMenus" |
| 17 | @check="handleCheckClick" | 18 | @check="handleCheckClick" |
| @@ -74,6 +75,7 @@ | @@ -74,6 +75,7 @@ | ||
| 74 | const originMenus = ref(); | 75 | const originMenus = ref(); |
| 75 | const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => { | 76 | const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => { |
| 76 | setDrawerProps({ confirmLoading: false }); | 77 | setDrawerProps({ confirmLoading: false }); |
| 78 | + allCheckedKeys.value = []; | ||
| 77 | resetFields(); | 79 | resetFields(); |
| 78 | roleId.value = ''; | 80 | roleId.value = ''; |
| 79 | // 在打开弹窗时清除所有选择的菜单 | 81 | // 在打开弹窗时清除所有选择的菜单 |
| @@ -88,6 +90,7 @@ | @@ -88,6 +90,7 @@ | ||
| 88 | } | 90 | } |
| 89 | // 更新 | 91 | // 更新 |
| 90 | if (unref(isUpdate)) { | 92 | if (unref(isUpdate)) { |
| 93 | + allCheckedKeys.value = []; | ||
| 91 | checked.value = []; | 94 | checked.value = []; |
| 92 | //通过角色id去获取角色对应的菜单的ids | 95 | //通过角色id去获取角色对应的菜单的ids |
| 93 | roleMenus.value = await getMenusIdsByRoleId(data.record.id); | 96 | roleMenus.value = await getMenusIdsByRoleId(data.record.id); |
| @@ -131,6 +134,8 @@ | @@ -131,6 +134,8 @@ | ||
| 131 | roleType: RoleEnum.TENANT_ADMIN, | 134 | roleType: RoleEnum.TENANT_ADMIN, |
| 132 | menu: allCheckedKeys.value.length ? allCheckedKeys.value : originMenus.value, | 135 | menu: allCheckedKeys.value.length ? allCheckedKeys.value : originMenus.value, |
| 133 | }; | 136 | }; |
| 137 | + if (allCheckedKeys.value.length == 0) return createMessage.error('请勾选权限菜单'); | ||
| 138 | + if (req.menu == undefined) return createMessage.error('请勾选权限菜单'); | ||
| 134 | saveOrUpdateRoleInfoWithMenu(req).then(() => { | 139 | saveOrUpdateRoleInfoWithMenu(req).then(() => { |
| 135 | closeDrawer(); | 140 | closeDrawer(); |
| 136 | emit('success'); | 141 | emit('success'); |