|
|
@@ -290,9 +290,12 @@
|
|
|
<div class="progress-messages" v-if="progressMessages.length">
|
|
|
<div class="message-header">
|
|
|
<span>处理进度</span>
|
|
|
- <el-button type="text" @click="showMessageHistory = !showMessageHistory" v-log="{ describe: { action: '点击查看进度详情' } }">
|
|
|
- {{ showMessageHistory ? '收起' : '查看详情' }}
|
|
|
- </el-button>
|
|
|
+ <div class="flex right" style="gap:8px; align-items:center;">
|
|
|
+ <el-button type="text" @click="openOutputDir" v-log="{ describe: { action: '点击打开输出目录' } }">打开目录</el-button>
|
|
|
+ <el-button type="text" @click="showMessageHistory = !showMessageHistory" v-log="{ describe: { action: '点击查看进度详情' } }">
|
|
|
+ {{ showMessageHistory ? '收起' : '查看详情' }}
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div class="message-list" v-if="showMessageHistory" ref="messageListRef">
|
|
|
<div v-for="(msg, index) in progressMessages" :key="index" class="message-item flex left">
|
|
|
@@ -358,6 +361,12 @@ import { Close, Warning } from '@element-plus/icons-vue'
|
|
|
import LoadingDialog from '@/views/Photography/components/LoadingDialog.vue'
|
|
|
|
|
|
|
|
|
+import configInfo from "@/stores/modules/config";
|
|
|
+
|
|
|
+const useConfigInfoStore = configInfo();
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
import { useCheckInfo } from '@/composables/userCheck';
|
|
|
useCheckInfo();
|
|
|
|
|
|
@@ -452,6 +461,7 @@ onBeforeUnmount(() => {
|
|
|
clientStore.ipc.removeAllListeners(icpList.socket.message + '_segment_progress');
|
|
|
clientStore.ipc.removeAllListeners(icpList.socket.message + '_upper_footer_progress');
|
|
|
clientStore.ipc.removeAllListeners(icpList.socket.message + '_scene_progress');
|
|
|
+ clientStore.ipc.removeAllListeners(icpList.socket.message + '_upload_goods_progress');
|
|
|
clientStore.ipc.removeAllListeners(icpList.generate.generatePhotoDetail);
|
|
|
clearInterval(INTERVAL.value);
|
|
|
})
|
|
|
@@ -627,6 +637,44 @@ const handleSceneProgressMessage = (data: any) => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// 处理商品上传进度
|
|
|
+const handleUploadGoodsProgressMessage = (data: any) => {
|
|
|
+ console.log("upload_goods_progress", data);
|
|
|
+ if (data.code === 0 && data.msg_type === 'upload_goods_progress') {
|
|
|
+ const messageData = {
|
|
|
+ goods_no: '',
|
|
|
+ temp_name: '',
|
|
|
+ status: data.data?.status || '',
|
|
|
+ goods_art_nos: data.data?.goods_art_nos || [],
|
|
|
+ msg: data.msg,
|
|
|
+ timestamp: Date.now()
|
|
|
+ }
|
|
|
+ progressMessages.value.push(messageData)
|
|
|
+ message.value = `货号${(data.data?.goods_art_nos || []).join(', ')}:${data.msg}`
|
|
|
+ scrollMessageListToBottom()
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 打开输出目录:appConfig.appPath + '/build/extraResources/py/output'
|
|
|
+const openOutputDir = () => {
|
|
|
+ try {
|
|
|
+ const appPath = useConfigInfoStore?.appConfig?.appPath || ''
|
|
|
+ if (!appPath) {
|
|
|
+ ElMessage.error('未获取到应用目录 appPath')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ const fullPath = `${appPath}/build/extraResources/py/output`
|
|
|
+ clientStore.ipc.removeAllListeners(icpList.utils.shellFun);
|
|
|
+ clientStore.ipc.send(icpList.utils.shellFun, {
|
|
|
+ action: 'openPath',
|
|
|
+ params: fullPath.replaceAll('/', '\\')
|
|
|
+ });
|
|
|
+ } catch (e) {
|
|
|
+ console.error(e)
|
|
|
+ ElMessage.error('打开目录失败')
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// 开始生成操作
|
|
|
const generate = async function () {
|
|
|
|
|
|
@@ -647,7 +695,7 @@ const generate = async function () {
|
|
|
}, route);
|
|
|
|
|
|
// 必填验证
|
|
|
- if (form.services.includes('is_upper_footer') && !selectedModels.value) {
|
|
|
+ if (form.services.includes('is_upper_footer') && !( selectedModels.value && selectedModels.value.male?.id && selectedModels.value.female?.id)) {
|
|
|
openModelDialog();
|
|
|
setTimeout(()=>{
|
|
|
ElMessage.error('请选择模特')
|
|
|
@@ -669,6 +717,13 @@ const generate = async function () {
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ const useConfigInfoStore = configInfo();
|
|
|
+ console.log(useConfigInfoStore.appConfig);
|
|
|
+
|
|
|
+
|
|
|
const tokenInfoStore = tokenInfo();
|
|
|
const token = tokenInfoStore.getToken; // 使用 getToken() 获取 token
|
|
|
let temp_list = []
|
|
|
@@ -727,18 +782,27 @@ const generate = async function () {
|
|
|
// 监听抠图进度消息
|
|
|
clientStore.ipc.removeAllListeners(icpList.socket.message + '_segment_progress');
|
|
|
clientStore.ipc.on(icpList.socket.message + '_segment_progress', (event, data) => {
|
|
|
+ console.log('_segment_progress',data);
|
|
|
handleSegmentProgressMessage(data)
|
|
|
});
|
|
|
// 监听上脚图进度消息
|
|
|
clientStore.ipc.removeAllListeners(icpList.socket.message + '_upper_footer_progress');
|
|
|
clientStore.ipc.on(icpList.socket.message + '_upper_footer_progress', (event, data) => {
|
|
|
+ console.log('_upper_footer_progress',data);
|
|
|
handleUpperFooterProgressMessage(data)
|
|
|
});
|
|
|
// 监听场景图进度消息
|
|
|
clientStore.ipc.removeAllListeners(icpList.socket.message + '_scene_progress');
|
|
|
clientStore.ipc.on(icpList.socket.message + '_scene_progress', (event, data) => {
|
|
|
+ console.log('_scene_progress',data);
|
|
|
handleSceneProgressMessage(data)
|
|
|
});
|
|
|
+ // 监听商品上传进度消息
|
|
|
+ clientStore.ipc.removeAllListeners(icpList.socket.message + '_upload_goods_progress');
|
|
|
+ clientStore.ipc.on(icpList.socket.message + '_upload_goods_progress', (event, data) => {
|
|
|
+ console.log('_upload_goods_progress',data);
|
|
|
+ handleUploadGoodsProgressMessage(data)
|
|
|
+ });
|
|
|
clientStore.ipc.on(icpList.generate.generatePhotoDetail, (event, result) => {
|
|
|
if(result.code !== 0 ){
|
|
|
if(result.msg){
|
|
|
@@ -758,7 +822,8 @@ const generate = async function () {
|
|
|
clientStore.ipc.removeAllListeners(icpList.socket.message + '_segment_progress');
|
|
|
clientStore.ipc.removeAllListeners(icpList.socket.message + '_upper_footer_progress');
|
|
|
clientStore.ipc.removeAllListeners(icpList.socket.message + '_scene_progress');
|
|
|
- }, 500)
|
|
|
+ clientStore.ipc.removeAllListeners(icpList.socket.message + '_upload_goods_progress');
|
|
|
+ }, 10000)
|
|
|
clearInterval(INTERVAL.value)
|
|
|
if (result.code === 0) {
|
|
|
const { output_folder, list } = result.data
|