Browse Source

Merge branch 'dev-frontend' of http://gitlab.pubdata.cn/liangyibo/CameraMachine into dev-frontend

DESKTOP-1OI7FFK\WZTX 8 months ago
parent
commit
cd0164d2cd

+ 3 - 3
electron/controller/camera.js

@@ -120,11 +120,11 @@ class CameraController extends Controller {
   async connect() {
     const win = this.app.electron.mainWindow;
     try {
-      win.setAlwaysOnTop(true); // 置顶
+  //    win.setAlwaysOnTop(true); // 置顶
       console.log('aaaa')
        await checkCameraControlCmdExists()
       await  CMD('All_Minimize')
-      win.setAlwaysOnTop(false); // 置顶
+  //    win.setAlwaysOnTop(false); // 置顶
 
       const res = await getParams('iso')
       if(res  === '未将对象引用设置到对象的实例。'){
@@ -139,7 +139,7 @@ class CameraController extends Controller {
       }
       return true;
     } catch (error) {
-      win.setAlwaysOnTop(false); // 置顶
+   //   win.setAlwaysOnTop(false); // 置顶
       return {
         status:-1,
         msg:"请安装digiCamControl软件,并打开digiCamControl软件的web服务,端口为5513",

+ 9 - 1
frontend/src/styles/index.scss

@@ -10,8 +10,16 @@
   border-radius: 4px;
   &.disabled{
     pointer-events:none;
-    opacity: .6;
+    background: #909399 !important;
+    cursor: not-allowed;
   }
+
+  &.is-disabled{
+    pointer-events:none;
+    background: #909399 !important;
+    cursor: not-allowed;
+  }
+
 }
 
 .button--white{

+ 2 - 2
frontend/src/views/Photography/components/LoadingDialog.vue

@@ -28,7 +28,7 @@
         class="action-button   button--primary1  mar-top-20"
         @click="handleButtonClick"
       >
-        {{ buttonText }}
+        {{ buttonText }} 
       </el-button>
     </div>
   </el-dialog>
@@ -48,7 +48,7 @@ interface Props {
 const props = withDefaults(defineProps<Props>(), {
   progress: 0,
   message: '正在为您处理,请稍后',
-  showButton: false,
+  showButton: true,
   buttonText: '全部处理完毕,点击打开最终图片目录'
 })
 

+ 28 - 42
frontend/src/views/Photography/detail.vue

@@ -7,14 +7,14 @@
           <img src="@/assets/images/Photography/zhuangshi.png" style="width: 32px; height: 32px;" />
           主图LOGO:
         </div>
-        <upload :value="queryParams.logoImage" @input="onInput"></upload>
+        <upload :value="form.logoImage" @input="onInput"></upload>
         <router-link class="mar-left-20 " :to="{
           name: 'PhotographySeniorDetail'
         }">
-        <button class="generate-button button--primary1 mar-left-20" @click="generate">去高级详情</button>
-      </router-link>
+          <button class="generate-button button--primary1 mar-left-20" @click="generate">去高级详情</button>
+        </router-link>
       </div>
-      
+
       <el-divider />
       <!-- 选择详情模板部分 -->
       <div class="template-section ">
@@ -32,13 +32,13 @@
 
         <div class="template-list">
           <div v-for="(template, index) in visibleTemplates" :key="index" class="template-item"
-            @click="queryParams.templateId = template.id">
+            @click="form.templateId = template.id">
             <el-image :src="ossResize(test_image_url, {
               m: 'lfit',
               h: 360,
               w: 500
             })" fit="contain" class="cur-p" style="width: 100%; display: block;" />
-            <div class="select-warp" :class="queryParams.templateId == template.id ? 'active' : ''">
+            <div class="select-warp" :class="form.templateId == template.id ? 'active' : ''">
               <el-icon color="#FFFFFF">
                 <Select />
               </el-icon>
@@ -62,24 +62,21 @@
         </div>
 
         <div class="flex-item left">
-          <el-radio-group v-model="queryParams.radio1" class="ml-4">
+          <el-radio-group v-model="form.dataType" class="ml-4">
             <el-radio label="1" size="large">EXCEL文件选择</el-radio>
             <el-radio label="2" size="large">系统对接(和业务员联系)</el-radio>
           </el-radio-group>
         </div>
-        <div v-if="queryParams.radio1 == '1'" class="excel-upload">
-          <el-row :gutter="20">
-            <el-col :span="1"></el-col>
-            <el-col :span="4">商品基础资料EXCEL文件选择:</el-col>
-            <el-col :span="18">
-              <div class="flex bottom">
-                <el-input type="textarea" v-model="excelFilePath" />
-                <el-button class="select-button button--primary1 mar-left-20" type="primary" @click="selectExcel">
-                  <img src="@/assets/images/Photography/wenjian.png" style="width: 16px; margin-right: 4px;" />
-                  选择</el-button>
-              </div>
-            </el-col>
-          </el-row>
+        <div v-if="form.dataType == '1'" class="excel-upload">
+          <div class="flex bottom between">
+            <div style="max-width: 160px;" class="mar-left-20">商品基础资料EXCEL文件选择:</div>
+            <div class="flex bottom mar-left-20" style="flex-grow: 1;">
+              <el-input type="textarea" v-model="form.excelFilePath" />
+            </div>
+            <el-button class="select-button button--primary1  mar-left-20" type="primary" @click="selectExcel">
+              <img src="@/assets/images/Photography/wenjian.png" style="width: 16px; margin-right: 4px;" />
+              选择</el-button>
+          </div>
         </div>
       </div>
 
@@ -98,19 +95,12 @@
 import { ref, computed, reactive } from 'vue';
 import { Select } from '@element-plus/icons-vue'
 import { ossResize } from '@/utils/appfun'
-
-
-
 import upload from '@/components/upload'
-
-
 import client from "@/stores/modules/client";
 import icpList from '@/utils/ipc'
 const clientStore = client();
 const test_image_url = ref('https://ossimg.valimart.net/uploads/vali_ai/20230927/169580582298394.png')
 
-
-
 // 模拟数据
 const templates = [
   { id: 1101, templateId: '某某模版编号1', preview: '...' },
@@ -125,24 +115,23 @@ const templates = [
   { id: 1110, templateId: '某某模版编号10', preview: '...' },
   { id: 1111, templateId: '某某模版编号11', preview: '...' },
   { id: 1112, templateId: '某某模版编号12', preview: '...' },
-  // 更多模板...
 ];
-const itemsPerPage = 4; // 每页显示的模板数量
 // 状态变量
-const dataPrepOption = ref('excel');
-const excelFilePath = ref('D:\\MyDocuments\\PythonCode\\MyPython\\red_dragonfly\\deal_pics\\auto_capture_V2\\auto_photo');
 const totalPage = ref(3);
+const itemsPerPage = 4; // 每页显示的模板数量
 const dialogVisible = ref(false);
 const dialogImageUrl = ref('');
-
-const queryParams = reactive({
-  logoImage: '',
+const queryParams = reactive({ // 分页查询参数
   size: 1,
   current: 1,
-  templateId: 1101,
-  radio1: 1
 })
+const form = reactive({
+  dataType: '1', // 1: 选择excel文件 2: 系统对接
+  logoImage: '', // 主图LOGO
+  templateId: 1101,
+  excelFilePath: 'D:\\MyDocuments\\PythonCode\\MyPython\\red_dragonfly\\deal_pics\\auto_capture_V2\\auto_photo', // 商品基础资料EXCEL文件选择
 
+})
 // 计算属性,获取当前页可见的模板
 const visibleTemplates = computed(() => {
   const startIndex = (queryParams.current - 1) * itemsPerPage;
@@ -164,14 +153,11 @@ const onSizeChange = (data) => {
 };
 // 开始生成操作
 const generate = () => {
-  console.log('开始生成');
   // 这里添加实际生成主图和详情的逻辑
-  console.log('queryParams', queryParams)
-  console.log('excelFilePath', excelFilePath)
+  console.log('queryParams', form)
 };
 const onInput = (value) => {
-  console.log('value', value)
-  queryParams.logoImage = value
+  form.logoImage = value
 }
 
 function selectExcel() {
@@ -183,7 +169,7 @@ function selectExcel() {
     title: "选择基础文件资料"
   });
   clientStore.ipc.on(icpList.utils.openFile, async (event, result) => {
-    excelFilePath.value = result
+    form.excelFilePath = result
     clientStore.ipc.removeAllListeners(icpList.utils.openFile);
   })
 }

+ 21 - 16
frontend/src/views/Photography/seniorDetail.vue

@@ -1,16 +1,16 @@
 <template>
   <div class="image-config">
     <div class="config-card">
-      <!-- 图片图与货号图生成 -->
+      <!-- 图片图与货号图生成 -->
       <div class="section">
         <div class="section-title">
           <img src="@/assets/images/Photography/zhuangshi.png" style="width: 32px; height: 32px;" />
-          图片图与货号图生成
+          图片图与货号图生成
         </div>
         <div class="section-content">
 
 
-          <div class="instruction-out flex top left">
+          <div v-if="showTips" class="instruction-out flex top left">
             <img style="fill: #000" src="@/assets/images/xinxi.svg" />
             <ol class="instruction-list">
               <li>请在下方确认图片拍摄过程中的顺序,确保所有拍摄的图片的顺序一致。</li>
@@ -18,7 +18,7 @@
               <li>图片的名称不能随意修改,否则无法正常生成详情页。</li>
               <li>现有图片名称有:俯视、侧视、后视、鞋底、内里</li>
             </ol>
-            <el-icon class="close-icon">
+            <el-icon @click="showTips = false" class="close-icon">
               <Close />
             </el-icon>
           </div>
@@ -41,12 +41,12 @@
             </div>
           </div>
 
-          <!-- 图模式 -->
+          <!-- 图模式 -->
           <div class="form-item">
             <div class="label">抠图模式:</div>
             <el-radio-group v-model="reportMode">
               <el-radio label="normal">普通模式</el-radio>
-              <el-radio label="optimized">精细化图</el-radio>
+              <el-radio label="optimized">精细化图</el-radio>
             </el-radio-group>
           </div>
         </div>
@@ -113,22 +113,24 @@ import client from "@/stores/modules/client";
 import icpList from '@/utils/ipc'
 const clientStore = client();
 
-const folderPath = ref('')
-const reportMode = ref('normal')
-const checkSimilar = ref(false)
-const specificPage = ref('')
-const imageOrder = ref('俯视、侧视、后跟、鞋底、内里、组合、组合2、组合3')
+const showTips = ref(true)
+
+const folderPath = ref('') //货号文件夹
+const reportMode = ref('normal') // 抠图模式
+const imageOrder = ref('俯视、侧视、后跟、鞋底、内里、组合、组合2、组合3') // 图片顺序
+const checkSimilar = ref(false) // 同款检验
+const specificPage = ref('')  // 可指定页面独修改
 
 
 const dialogVisible = ref(false)
 const progress = ref(0)
 const message = ref('正在为您处理,请稍后')
-const showButton = ref(false)
+const showButton = ref(true)
+
 const startProcess = () => {
   dialogVisible.value = true
   progress.value = 0
-  showButton.value = false
-
+  showButton.value = true
   // 模拟进度更新
   const interval = setInterval(() => {
     if (progress.value < 100) {
@@ -136,7 +138,7 @@ const startProcess = () => {
     } else {
       clearInterval(interval)
       message.value = '全部处理完毕'
-      showButton.value = true
+      showButton.value = false
     }
   }, 500)
 }
@@ -164,6 +166,7 @@ const selectFolder = () => {
   .config-card {
     background: #EAECED;
     padding: 20px;
+    overflow: hidden;
 
     .card-header {
       display: flex;
@@ -205,6 +208,8 @@ const selectFolder = () => {
     .instruction-list {
       margin: 0px 0 0 10px;
       padding-left: 20px;
+      padding-right: 40px;
+      width: 100%;
 
       li {
         margin-bottom: 4px;
@@ -215,7 +220,7 @@ const selectFolder = () => {
 
     .close-icon {
       position: absolute;
-      top: 19px;
+      top: 12px;
       right: 19px;
     }
   }

+ 2 - 1
package.json

@@ -51,7 +51,7 @@
     "electron": "21.4.4",
     "electron-builder": "23.6.0",
     "eslint": "5.13.0",
-    "eslint-plugin-prettier": " -3.0.1",
+    "eslint-plugin-prettier": "3.0.1",
     "nodemon": "2.0.16"
   },
   "dependencies": {
@@ -59,6 +59,7 @@
     "dayjs": "1.10.7",
     "ee-core": "2.12.0",
     "electron-updater": "5.3.0",
+    "electron-window-manager": "^1.0.6",
     "lodash": "4.17.21",
     "ws": "8.18.1"
   }