Browse Source

feat(photography): 添加品牌公司ID过滤功能

- 在菜单生成工具中添加品牌ID过滤逻辑
- 实现getGenerateChildren函数支持条件筛选
- 在processImage.vue中替换原菜单数据源
- 在shot.vue中更新菜单渲染数据绑定
- 优化usePhotography组件中的菜单配置方式
- 统一菜单子项的数据获取入口点
panqiuyao 4 tuần trước cách đây
mục cha
commit
d6fc46bd66

+ 9 - 0
frontend/src/utils/menus/generate.ts

@@ -4,6 +4,7 @@ import { getRouterUrl } from '@/utils/appfun'
 import client from '@/stores/modules/client'
 import {useRouter} from "vue-router";
 import { getWebUrlrUrl } from '@/utils/appfun'
+import useUserInfo from '@/stores/modules/user'
 const Router = useRouter()
 
 const clientStore = client()
@@ -101,4 +102,12 @@ export function openPosterGenerate() {
 
 
 
+export function getGenerateChildren() {
+    const brandId = Number((useUserInfo().userInfo as any)?.brand_company_id)
+    return generate.children.filter((item) => {
+        if (item.name === '湛江场景图') return brandId === 9
+        return true
+    })
+}
+
 export default generate;

+ 5 - 2
frontend/src/views/Photography/mixin/usePhotography.ts

@@ -6,7 +6,7 @@ import { ElMessage, ElMessageBox } from 'element-plus'
 import { getFilePath, getRouterUrl } from '@/utils/appfun'
 import { useRouter, useRoute } from "vue-router";
 import checkInfo from "@/stores/modules/check";
-import generate from '@/utils/menus/generate'
+import generate, { getGenerateChildren } from '@/utils/menus/generate'
 import { clickLog, setLogInfo } from '@/utils/log'
 import { useUuidStore } from '@/stores/modules/uuid'
 import useUserInfo from "@/stores/modules/user";
@@ -57,6 +57,7 @@ export default function usePhotography() {
     const Router = useRouter()
     const route = useRoute();
     const useUserInfoStore = useUserInfo();
+    const generateChildren = computed(() => getGenerateChildren())
     const configInfoStore = configInfo();
     const tokenInfoStore = tokenInfo();
     const checkInfoStore = checkInfo()
@@ -652,7 +653,8 @@ export default function usePhotography() {
 
       // 一级导航:高级生成下拉
       const generateMenu = {
-        ...generate
+        ...generate,
+        children: getGenerateChildren()
       }
 
       if (configInfoStore.appModel === 2) {
@@ -1229,6 +1231,7 @@ const onRemoteControl = async (type) => {
       oneClickStop,
       onRemoteControl,
       openPhotographyDetail,
+      generateChildren,
       onGenerateCLick,
       initEventListeners,
       cleanupEventListeners,

+ 2 - 2
frontend/src/views/Photography/processImage.vue

@@ -61,7 +61,7 @@
                     <template #dropdown>
                       <el-dropdown-menu>
                         <el-dropdown-item
-                            v-for="menu in generate.children"
+                            v-for="menu in generateChildren"
                             @click.native="onGenerateCLick(menu,item)">{{ menu.name }}</el-dropdown-item>
                       </el-dropdown-menu>
                     </template>
@@ -166,7 +166,6 @@ import HardwareCheck from '@/components/check/index.vue'
 import usePhotography from './mixin/usePhotography'
 import { useThumbnails } from './composables/useThumbnails'
 import ImagePreview, { PreviewItem } from '@/components/PreviewImage/index.vue'
-import generate from '@/utils/menus/generate'
 import { ElMessageBox } from 'element-plus'
 import client from "@/stores/modules/client";
 import icpList from '@/utils/ipc'
@@ -188,6 +187,7 @@ const {
   del,
   openPhotographyDetail,
   onGenerateCLick,
+  generateChildren,
   initEventListeners,
   cleanupEventListeners,
   pageSize,

+ 2 - 2
frontend/src/views/Photography/shot.vue

@@ -174,7 +174,7 @@
                     <template #dropdown>
                       <el-dropdown-menu>
                         <el-dropdown-item
-                            v-for="menu in generate.children"
+                            v-for="menu in generateChildren"
                             @click.native="onGenerateCLick(menu,item)">{{ menu.name }}</el-dropdown-item>
                       </el-dropdown-menu>
                     </template>
@@ -328,7 +328,6 @@ import RemoteControl from '@/views/RemoteControl/index.vue'
 import usePhotography from './mixin/usePhotography'
 import { useThumbnails } from './composables/useThumbnails'
 import ImagePreview, { PreviewItem } from '@/components/PreviewImage/index.vue'
-import generate from '@/utils/menus/generate'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import useUserInfo from '@/stores/modules/user'
 import socket from '@/stores/modules/socket'
@@ -362,6 +361,7 @@ const {
   onRemoteControl,
   openPhotographyDetail,
   onGenerateCLick,
+  generateChildren,
   initEventListeners,
   cleanupEventListeners,
   resetStatus,