Browse Source

feat(frontend): 添加高级生成功能并优化相关功能

- 在 shot.vue 中添加高级生成按钮和相关功能
- 更新 generate.ts 文件,支持传入配置参数
- 修改 appfun.ts 中的参数处理逻辑
panqiuyao 5 months ago
parent
commit
d49df279eb

+ 1 - 1
frontend/src/utils/appfun.ts

@@ -23,9 +23,9 @@ export  function getWebUrlrUrl (config:{
     query:Object
 }){
 
-    console.log(config);
     let params = '?source=camera&token=' + tokenInfoStore.getToken
     if(config.query){
+        params +=  '&'
         params += Object.keys(config.query).map(key => {
             return encodeURIComponent(key) + '=' + encodeURIComponent(config.query[key])
         }).join('&')

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

@@ -13,20 +13,21 @@ const generate =
             children:[
                 {
                     name:'模特图',
-                    click(){
-                        openGaenrate('onFeetImage')
+                    click(configs){
+                        console.log(configs);
+                        openGaenrate('onFeetImage',configs)
                     },
                 },
                 {
                     name:'场景图',
-                    click(){
-                        openGaenrate('attachScenarios')
+                    click(configs){
+                        openGaenrate('attachScenarios',configs)
                     },
                 },
                 {
                     name:'生成视频',
-                    click(){
-                        openGaenrate('生成视频')
+                    click(configs){
+                        openGaenrate('生成视频',configs)
                     },
                 },
             ]
@@ -36,7 +37,7 @@ const generate =
 
 
 
-export function openGaenrate(type) {
+export function openGaenrate(type,configs) {
 
     const config= {
         "onFeetImage":{
@@ -50,8 +51,14 @@ export function openGaenrate(type) {
         }
     }
 
+    let urlParams = config[type]
+    if(configs){
+        urlParams = {
+            ... config[type],
+            ...configs
+        }
+    }
 
-    console.log(getWebUrlrUrl(config[type]));
 
     clientStore.ipc.removeAllListeners(icpList.utils.openMain)
     let params = {
@@ -60,7 +67,7 @@ export function openGaenrate(type) {
         height: 900,
         frame: true,
         id: 'generate',
-        url: getWebUrlrUrl(config[type])
+        url: getWebUrlrUrl(urlParams)
     }
     clientStore.ipc.send(icpList.utils.openMain, params)
 }

+ 36 - 1
frontend/src/views/Photography/shot.vue

@@ -93,7 +93,21 @@
                 <div class="flex  between flex-item  c-333">
                   <div class="chaochu flex-item flex left">货号:{{ item.goods_art_no }}</div>
                   <div >
+<!--
                     <el-button :disabled="runLoading || takePictureLoading" size="small"  plain >高级生成</el-button>
+-->
+
+                    <el-dropdown @command="handleGenerateCommand" :disabled="runLoading || takePictureLoading" >
+                      <el-button :disabled="runLoading || takePictureLoading" size="small"  plain >高级生成</el-button>
+                      <template #dropdown>
+                        <el-dropdown-menu>
+                          <el-dropdown-item
+                              v-for="menu in generate.children"
+                              @click.native="onGenerateCLick(menu,item)">{{ menu.name }}</el-dropdown-item>
+                        </el-dropdown-menu>
+                      </template>
+                    </el-dropdown>
+
                     <el-button size="small" :disabled="runLoading || takePictureLoading"  type="primary"  @click="reTakePictureNos(item.goods_art_no,item)" plain v-if="configInfoStore.appModel === 1">重拍</el-button>
                     <el-button size="small" :disabled="runLoading || takePictureLoading" @click="delGoods({goods_art_nos:[item.goods_art_no]})">删除</el-button>
                   </div>
@@ -186,7 +200,7 @@ import {useRouter} from "vue-router";
 import HardwareCheck from '@/components/check/index.vue'
 import checkInfo from "@/stores/modules/check";
 import RemoteControl from '@/views/RemoteControl/index'
-import  generate  from '@/utils/menus/generate'
+import  generate,{openGaenrate}  from '@/utils/menus/generate'
 
 
 const loading = ref(false)
@@ -802,6 +816,27 @@ function openPhotographyDetail() {
   clientStore.ipc.send(icpList.utils.openMain, params);
 }
 
+
+
+/*高级生成*/
+const onGenerateCLick = (menu,item)=>{
+  const firstWithImagePath = item.items.find(
+      (image) => image.PhotoRecord.image_path
+  );
+
+  console.log(firstWithImagePath.PhotoRecord.image_path);
+  if (firstWithImagePath) {
+    menu.click({
+      query:{
+        image_path:firstWithImagePath.PhotoRecord.image_path
+      }
+    })
+  } else {
+    menu.click()
+  }
+
+}
+
 </script>