From 41d7be9f68c423012e2688fd45301300e9bb3dab Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期二, 11 三月 2025 11:27:18 +0800 Subject: [PATCH] Merge branch 'master' of http://47.115.28.255:8110/r/TigerClouds-Tech/BS/TigerAdmin_2024 --- src/layouts/default/header/index.vue | 78 ++++++++++++++++++++++++++++++++++----- 1 files changed, 68 insertions(+), 10 deletions(-) diff --git a/src/layouts/default/header/index.vue b/src/layouts/default/header/index.vue index 9885ee6..532f425 100644 --- a/src/layouts/default/header/index.vue +++ b/src/layouts/default/header/index.vue @@ -49,6 +49,18 @@ /> <div style="width: 120px"> <ApiSelect + v-if="byOrg" + :api="getOrgTree" + style="width: 100%" + :params="{ userId: useUserStore().getUserInfo.userId }" + v-model:value="factory" + labelField="deptName" + valueField="deptCode" + placeholder="璇烽�夋嫨宸ュ巶" + @change="changeProd" + /> + <ApiSelect + v-if="byProd" :api="getProdTree" style="width: 100%" :params="{ userId: useUserStore().getUserInfo.userId }" @@ -57,7 +69,8 @@ valueField="deptCode" placeholder="璇烽�夋嫨宸ュ巶" @change="changeProd" - /></div> + /> + </div> <UserDropDown :theme="getHeaderTheme" /> <SettingDrawer v-if="getShowSetting" :class="`${prefixCls}-action__item`" /> @@ -66,7 +79,7 @@ </template> <script lang="ts" setup> import { Layout } from 'ant-design-vue'; - import { computed, onMounted, ref, unref } from 'vue'; + import { computed, nextTick, onMounted, ref, unref, watch } from 'vue'; import { ApiSelect } from '/@/components/Form/index'; import { useUserStore } from '/@/store/modules/user'; import { AppLocalePicker, AppLogo, AppSearch } from '@/components/Application'; @@ -81,12 +94,15 @@ import { createAsyncComponent } from '@/utils/factory/createAsyncComponent'; import { propTypes } from '@/utils/propTypes'; import { ApiTreeSelect } from '@/components/Form'; - import { getProdTree } from '/@/api/tigerapi/dept'; + import { getProdTree, getOrgTree } from '/@/api/tigerapi/dept'; import LayoutMenu from '../menu/index.vue'; import LayoutTrigger from '../trigger/index.vue'; import { ErrorAction, FullScreen, LayoutBreadcrumb, Notify, UserDropDown } from './components'; import { SwitchOrgCode } from '/@/api/sys/user'; + import { getSysParam } from '/@/api/tigerapi/system'; + import { treeParamsListItem } from '/@/api/tigerapi/model/systemModel'; + import { isNullOrEmpty } from '/@/utils/is'; const SettingDrawer = createAsyncComponent(() => import('@/layouts/default/setting/index.vue'), { loading: true, @@ -106,7 +122,10 @@ getIsMixSidebar, } = useMenuSetting(); const { getUseErrorHandle, getShowSettingButton, getSettingButtonPosition } = useRootSetting(); - const factory = ref(useUserStore().getUserInfo.prodCode); + const factory = ref(''); // ref(useUserStore().getUserInfo.prodCode); + const byOrg = ref(false); + const byProd = ref(false); + const params = ref<treeParamsListItem[]>([]); const { getHeaderTheme, getShowFullScreen, @@ -133,6 +152,25 @@ }, ]; }); + + watch( + [() => byOrg.value, () => byProd.value], + (newVal, oldVal) => { + nextTick(() => { + if (!isNullOrEmpty(newVal[0])) { + if (newVal[0]) { + factory.value = useUserStore().getUserInfo.orgCode; + } + } + if (!isNullOrEmpty(newVal[1])) { + if (byProd.value) { + factory.value = useUserStore().getUserInfo.prodCode; + } + } + }); + }, + { deep: true, immediate: true }, + ); const getShowSetting = computed(() => { if (!unref(getShowSettingButton)) { @@ -162,14 +200,34 @@ return unref(getSplit) ? MenuModeEnum.HORIZONTAL : null; }); + onMounted(async () => { + var action = await getSysParam({ group: 'ByAuthActive' }); + if (action.IsSuccessed) { + params.value = action.Data; + if (action.Data.filter((x) => x.PARAM_CODE == 'ByOrgActive')[0].PARAM_VALUE == 'Y') { + byOrg.value = true; + } + if (action.Data.filter((x) => x.PARAM_CODE == 'ByProdActive')[0].PARAM_VALUE == 'Y') { + byProd.value = true; + } + } + }); + function changeProd(e) { const userInfo = useUserStore().getToken; - const org = useUserStore().getUserInfo.prodCode; - // globSetting.useOrg == 'Y' - // ? useUserStore().getUserInfo.orgCode - // : useUserStore().getUserInfo.prodCode; - SwitchOrgCode(userInfo, '', e).then(() => { - if (org != e) { + let code = ''; + let orgCode = ''; + let prodCode = ''; + if (params.value.filter((x) => x.PARAM_CODE == 'ByOrgActive')[0].PARAM_VALUE == 'Y') { + code = useUserStore().getUserInfo.orgCode; + orgCode = e; + } + if (params.value.filter((x) => x.PARAM_CODE == 'ByProdActive')[0].PARAM_VALUE == 'Y') { + code = useUserStore().getUserInfo.prodCode; + prodCode = e; + } + SwitchOrgCode(userInfo, orgCode, prodCode).then(() => { + if (code != e) { location.reload(); } }); -- Gitblit v1.9.3