Forráskód Böngészése

一键反馈修改

yanym 3 hete
szülő
commit
149a21a174
4 módosított fájl, 64 hozzáadás és 12 törlés
  1. 11 2
      src/api/indexAI.js
  2. 4 2
      src/main.ts
  3. 17 2
      src/views/AIDesign/feedback.vue
  4. 32 6
      src/views/AIDesign/result.vue

+ 11 - 2
src/api/indexAI.js

@@ -334,8 +334,8 @@ export function GetProductInfo(query) {
     })
 }
 
-// 提交反馈信息
-export function UpdateFeedBack(query) {
+// 外墙提交反馈信息
+export function outsideUpdateFeedBack(query) {
     return request({
         url: '/aidesign/outside/UpdateFeedBack',
         method: 'post',
@@ -343,6 +343,15 @@ export function UpdateFeedBack(query) {
     })
 }
 
+// 内墙提交反馈信息
+export function insideUpdateFeedBack(query) {
+    return request({
+        url: '/aidesign/inside/UpdateFeedBack',
+        method: 'post',
+        data: query
+    })
+}
+
 //获取确认下单地址
 export function GetOrderAddress() {
     const formData = new FormData();

+ 4 - 2
src/main.ts

@@ -84,7 +84,8 @@ import {
   CheckboxGroup,
   ActionSheet,
   Search,
-  Overlay,
+    ImagePreview,
+    Overlay,
   Lazyload
 } from "vant";
 
@@ -122,7 +123,8 @@ import {
   CheckboxGroup,
   ActionSheet,
   Search,
-  Overlay,
+    ImagePreview,
+    Overlay,
   Lazyload
 ].forEach(x => Vue.use(x));
 

+ 17 - 2
src/views/AIDesign/feedback.vue

@@ -39,7 +39,7 @@
 
 <script lang="ts">
     import { Component, Vue } from "vue-property-decorator";
-    import { UpdateFeedBack } from "@/api/indexAI";
+    import { outsideUpdateFeedBack, insideUpdateFeedBack } from "@/api/indexAI";
     import { toLBHome } from '@/utils/index';
     @Component
     export default class extends Vue {
@@ -47,9 +47,24 @@
         private isBtnDisabled = true;
         private feedbackMessage = '';
         private feedbackResult = 0;
+        private wallType: '';
+
+        // 处理内外墙api
+        private applyFeedbackApi = {
+            outside: outsideUpdateFeedBack,
+            inside: insideUpdateFeedBack
+        };
 
         activated(){
+            this.wallType = this.$route.query.wallType;
             this.feedbackResult =  this.$route.query.feedbackResult;
+            this.initialize();
+        }
+
+        //初始化页面数据
+        private initialize() {
+            this.feedbackMessage = '';
+            this.isBtnDisabled = true;
         }
         
         applyFeedback(){
@@ -58,7 +73,7 @@
             const formData = new FormData();
             formData.append('F_id', F_ID);
             formData.append('Feedback', that.feedbackMessage);
-            UpdateFeedBack(formData).then(response => {
+            that.applyFeedbackApi[that.wallType](formData).then(response => {
                 if (response.StatusCode == 200) {
                     that.feedbackResult = 1;
                 }

+ 32 - 6
src/views/AIDesign/result.vue

@@ -1,4 +1,4 @@
-<template>
+<template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
   <div class="resout-container AI-Design-container">
     <div class="header">
       <van-nav-bar title="生成结果" left-arrow @click-left="returnPage" @click-right="toHome">
@@ -49,7 +49,7 @@
             '生成失败,\n' + StateInfo :
             '正在为您加速生成中,先喝杯茶吧~\n退出本页不影响生成')) : '加载中...' }}</p>
         </div>
-        <div class="feedback" @click="toFeedback">
+        <div v-if="imageUrl" class="feedback" @click="toFeedback">
           <img src="@/assets/AIDesign/feedback_icon.png" class="feedback-icon" />
           <span v-if="F_Feedback == null">一键反馈</span>
           <span v-if="F_Feedback != null">查看反馈</span>
@@ -101,8 +101,20 @@
           <!--<span v-if="!readState" class="badge-dot"></span>-->
         <!--</button>-->
       <!--</div>-->
-
     </div>
+    <van-image-preview
+            v-model="showImagePreview"
+            :images="imagePreviewArray"
+            :loop="false"
+            :start-position="imagePreviewIndex"
+            @change="imagePreviewOnChange">
+      <template v-slot:index>
+        <div class="image-preview-header">
+          <div>{{imagePreviewIndex+1}}/{{imagePreviewArray.length}}</div>
+          <div>{{imagePreviewIndex == 0 ? '原图' : '效果图'}}</div>
+        </div>
+      </template>
+    </van-image-preview>
   </div>
 </template>
 <script lang="ts">
@@ -132,6 +144,9 @@ export default class extends Vue {
   private F_Feedback = null;
   private defaultImg = require('@/assets/AIDesign/imgErrIcon.jpg'); // 替换为实际图片路径
   private imgHasErr = false;
+  private showImagePreview = false;
+  private imagePreviewArray = [];
+  private imagePreviewIndex = 0
   // 处理内外墙api
   private GetEntityToApi = {
     outside: GetEntity,
@@ -329,8 +344,13 @@ export default class extends Vue {
     toLBHome()
   }
   imgClick(index) {
-    ImagePreview([this.UserFilePathUrl,this.imageUrl],index);
+      this.showImagePreview = true;
+      this.imagePreviewIndex = index;
+    // ImagePreview([this.UserFilePathUrl,this.imageUrl],index);
   }
+    imagePreviewOnChange(index){
+      this.imagePreviewIndex = index;
+    }
   private startPolling(): void {
     // 立即执行一次检查
     this.GetEntityData();
@@ -395,6 +415,7 @@ export default class extends Vue {
             that.imageUrl = response.Data.BaseUrl + high_Definition_img;
             that.imageUrlSmall = response.Data.BaseUrl + response.Data.F_ResultSmallFilePath;
             that.UserFilePathUrl = response.Data.BaseUrl + response.Data.F_UserFilePath;
+            that.imagePreviewArray = [that.UserFilePathUrl,that.imageUrl];
           }
           if (response.Data.StateCode == 1) {
             let createTime = new Date(response.Data.CreateDate);
@@ -455,6 +476,7 @@ export default class extends Vue {
             that.imageUrl = response.Data.BaseUrl + high_Definition_img;
             that.imageUrlSmall = response.Data.BaseUrl + response.Data.F_ResultSmallFilePath;
             that.UserFilePathUrl = response.Data.BaseUrl + response.Data.F_UserFilePath;
+            that.imagePreviewArray = [that.UserFilePathUrl,that.imageUrl];
           }
           if (response.Data.StateCode == 2 || response.Data.StateCode == 3 || response.Data.StateCode == 4) {
             that.regenerateDisable = false;
@@ -567,7 +589,7 @@ export default class extends Vue {
   private toFeedback(){
       let that = this;
       const F_ID = this.$route.query.F_id || "";
-      this.$router.push({ path: '/AIDesign/feedback', query: { F_id: F_ID, feedbackResult: that.F_Feedback == null ? 0 : 1 } });
+      this.$router.push({ path: '/AIDesign/feedback', query: { F_id: F_ID, feedbackResult: that.F_Feedback == null ? 0 : 1, wallType: this.wallType } });
   }
 
   private viewHistory(): void {
@@ -956,7 +978,11 @@ export default class extends Vue {
   }
 }
 
-
+.image-preview-header{
+  flex-direction: column;
+  display: flex;
+  align-items: center;
+}
 .van-nav-bar__title {
   font-size: 20px;
   color: #333;