|
|
@@ -207,16 +207,16 @@ const state = reactive({
|
|
|
const modulesList = ref([]);
|
|
|
const moduleMap = computed(() => {
|
|
|
const map = {};
|
|
|
- modulesList.value.forEach(item => {
|
|
|
- map[item.id] = item;
|
|
|
+ (modulesList.value || []).forEach(item => {
|
|
|
+ if (item == null || item.id == null) return;
|
|
|
+ map[String(item.id)] = item;
|
|
|
});
|
|
|
return map;
|
|
|
});
|
|
|
|
|
|
const getModulePermission = (itemId) => {
|
|
|
- const module = moduleMap.value[itemId];
|
|
|
- if (!module) return 1;
|
|
|
- return module.isSelect;
|
|
|
+ const module = moduleMap.value[String(itemId)];
|
|
|
+ return module && module.isSelect == 1 ? 1 : 0;
|
|
|
};
|
|
|
|
|
|
const largeCard = computed(() => systemItems.value.find(item => item.isLarge));
|
|
|
@@ -367,14 +367,50 @@ onMounted(() => {
|
|
|
onShow(() => {
|
|
|
pageInit();
|
|
|
});
|
|
|
+const getSchoolsList = () => {
|
|
|
+ const list = store.state.userStore.schoolsList || uni.getStorageSync('schoolsList') || [];
|
|
|
+ return Array.isArray(list) ? list : [];
|
|
|
+};
|
|
|
+const getLoginSchoolModules = () => {
|
|
|
+ const schools = getSchoolsList();
|
|
|
+ const schoolId = store.state.userStore.userInfo?.schoolId || state.schoolId;
|
|
|
+ const currentSchool = schools.find(item => item && item.schoolId == schoolId);
|
|
|
+ const school = currentSchool || schools[0];
|
|
|
+ if (school && school.modules != null) {
|
|
|
+ return Array.isArray(school.modules) ? school.modules : [];
|
|
|
+ }
|
|
|
+ const schoolWithModules = schools.find(item => item && item.modules != null);
|
|
|
+ if (schoolWithModules) {
|
|
|
+ return Array.isArray(schoolWithModules.modules) ? schoolWithModules.modules : [];
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+};
|
|
|
+const resolveModulesList = () => {
|
|
|
+ const loginModules = getLoginSchoolModules();
|
|
|
+ if (loginModules != null) {
|
|
|
+ return loginModules;
|
|
|
+ }
|
|
|
+ const fromStore = store.state.userStore.modulesList;
|
|
|
+ if (Array.isArray(fromStore) && fromStore.length) {
|
|
|
+ return fromStore;
|
|
|
+ }
|
|
|
+ const fromStorage = uni.getStorageSync('modulesList');
|
|
|
+ if (Array.isArray(fromStorage) && fromStorage.length) {
|
|
|
+ return fromStorage;
|
|
|
+ }
|
|
|
+ return [];
|
|
|
+};
|
|
|
const pageInit = () => {
|
|
|
- modulesList.value = store.state.userStore.modulesList || uni.getStorageSync('modulesList') || [];
|
|
|
+ const modules = resolveModulesList();
|
|
|
+ modulesList.value = modules;
|
|
|
+ store.dispatch('setModulesList', modules);
|
|
|
+ uni.setStorageSync('modulesList', modules);
|
|
|
fetchScheduleList();
|
|
|
}
|
|
|
const handleSystemClick = (item) => {
|
|
|
console.log(item,9888)
|
|
|
const isSelect = getModulePermission(item.id);
|
|
|
- if (isSelect == 0) {
|
|
|
+ if (isSelect != 1) {
|
|
|
uni.showToast({ title: '暂无权限,敬请期待!', icon: 'none' });
|
|
|
return;
|
|
|
}
|