Przeglądaj źródła

1、后台查看语音
2、后台修复语音

huangmp 2 lat temu
rodzic
commit
9778f54e31

+ 11 - 1
src/components/order-card-item/index.vue

@@ -50,6 +50,7 @@
           <span v-if="showFlagBtn">
           <el-button v-if="item.flag==0 && mode=='view'" type="success" size="mini" style="margin-right: 20px" @click="handleFlag(item, index)">待标记</el-button>
           <el-button v-if="item.flag==1 && mode=='view'" type="warning" size="mini" style="margin-right: 5px" @click="handleFlag(item, index)">已标记</el-button>
+          <el-button v-if="item.prodName.indexOf('语音') !== -1 && mode=='view'" type="text" size="mini" style="margin-right: 5px" @click="openYYForm(item, index)">查看语音</el-button>
           <el-button v-if="mode==='edit'" type="primary" size="mini" style="margin-right: 5px" @click="addOrUpdateCardItem(item)">保存</el-button>
           <el-button v-if="mode==='edit' && item.cardItemId" type="danger" size="mini" style="margin-right: 5px" @click="deleteCardItem(item, index)">删除</el-button>
         </span>
@@ -73,13 +74,16 @@
       </div>
     </div>
     <CanvasPreview v-if= "previewPicDialogVisible" ref="canvasPreviewRef"></CanvasPreview>
+    <YuyinPreview ref="yuYinPreviewRef"></YuyinPreview>
+
   </div>
 </template>
 
 <script>
   import CanvasPreview from "../canvas-preview/index";
+  import YuyinPreview from "../yuyin-preview/index";
   export default {
-    components: {CanvasPreview},
+    components: {CanvasPreview, YuyinPreview},
     data () {
       return {
         lang: localStorage.getItem('lang') || 'zh_CN',
@@ -87,6 +91,7 @@
         previewPicUrl: null,
         prodType: null,
         previewPicDialogVisible: false,
+        previewYuyinDialogVisible: false,
         side:null,
         resourcesUrl: process.env.VUE_APP_RESOURCES_URL,
         mode: 'view',
@@ -111,6 +116,11 @@
       })
     },
     methods: {
+      openYYForm(item, index){
+        this.$nextTick(() =>{
+          this.$refs.yuYinPreviewRef.init(item)
+        })
+      },
       previewLoad(event){
         this.previewWidth = event.srcElement.clientWidth;
         this.previewHeight = event.srcElement.clientHeight;

+ 143 - 0
src/components/yuyin-preview/index.vue

@@ -0,0 +1,143 @@
+<template>
+  <el-dialog
+    :visible.sync="visible"
+    :append-to-body="false"
+    :close-on-click-modal="false"
+    :modal="false"
+    title="语音预览"
+    top="5vh"
+    width="40%"
+    @close="closeDialog"
+    v-if="visible">
+    <el-form
+      :model="dataForm"
+      size="small">
+      <el-form-item label="昵称">
+        <el-input v-model="dataForm.cardNote.authorName" :disabled="true"></el-input>
+      </el-form-item>
+      <el-form-item label="祝福的话语">
+        <el-input v-model="dataForm.cardNote.personalSign" type="textarea" :disabled="true"></el-input>
+      </el-form-item>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="二维码">
+            <el-image
+              style="width: 300px; height: 300px"
+              :src="resourcesUrl + dataForm.qrNoteMapping.qrCodeUrl"
+              v-if="dataForm.qrNoteMapping.qrCodeUrl"/>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="语音内容">
+            <br/>
+            <video
+              style="width: 200px; height: 300px"
+              :src="resourcesUrl + dataForm.cardNote.audioUrl"
+              controls="controls"/>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8" v-if="newAudioUrl">
+          <el-form-item label="新语音内容">
+            <br/>
+            <video
+              style="width: 200px; height: 300px"
+              :src="resourcesUrl + newAudioUrl"
+              controls="controls"/>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-form-item>
+        <div style="width: 100%; text-align: center;">
+          <el-button type="primary" size="large" @click="repairVideo">转换语音</el-button>
+          <el-button type="success" size="large" @click="confirmChangeVideo">确认修改</el-button>
+        </div>
+      </el-form-item>
+    </el-form>
+  </el-dialog>
+
+</template>
+
+<script>
+  export default {
+    name: "YuyinPreview",
+    data() {
+      return {
+        visible: false,
+        dataForm:{cardNote:{}, qrNoteMapping:{}},
+        newAudioUrl: null,
+        resourcesUrl: process.env.VUE_APP_RESOURCES_URL,
+      };
+    },
+    mounted() {
+    },
+    methods: {
+      openCanvas(){
+        this.initCanvas();
+        this.drawImage();
+        this.addMouseListeners();
+      },
+      init(cardItem){
+        this.getQrInfo(cardItem);
+        this.visible = true;
+      },
+      getQrInfo(cardItem) {
+        this.$http({
+          url: this.$http.adornUrl('/qrNoteMapping/getYuyinInfoByCardItemId/' + cardItem.cardItemId),
+          method: 'GET',
+        }).then(({ data }) =>{
+          if(data){
+            this.dataForm = data
+          }else{
+
+          }
+        })
+      },
+      repairVideo() {
+        this.$confirm('确定要修复语音吗?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.$http({
+            url: this.$http.adornUrl('/qrNoteMapping/repairVideo'),
+            method: 'POST',
+            data: this.dataForm.cardNote
+          }).then(({ data }) =>{
+            if(data){
+              this.newAudioUrl = data.newAudioUrl
+            }
+          })
+        });
+      },
+      confirmChangeVideo(){
+        this.$confirm('确定要保存新语音吗?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.dataForm.cardNote.newAudioUrl = this.newAudioUrl;
+          this.$http({
+            url: this.$http.adornUrl('/qrNoteMapping/changeVideo'),
+            method: 'POST',
+            data: this.dataForm.cardNote
+          }).then(({ data }) =>{
+            if(data){
+              this.$message.success("转换成功")
+            }else{
+              this.$message.error("转换失败")
+            }
+          })
+        });
+      },
+      closeDialog(){
+        this.visible = false
+        this.dataForm = {cardNote:{}, qrNoteMapping:{}}
+        this.newAudioUrl = null
+      }
+    },
+  }
+</script>
+
+<style scoped>
+
+</style>

+ 14 - 2
src/views/modules/order/order.vue

@@ -27,6 +27,7 @@
                 size="small"
                 clearable
                 placeholder="产品名称">
+                <el-option key="yxj" label="影像级" value="影像级"></el-option>
                 <el-option key="wxyj" label="无双圆角小卡" value="无双圆角小卡"></el-option>
                 <el-option key="wxzj" label="无双直角小卡" value="无双直角小卡"></el-option>
                 <el-option key="yjxk" label="典藏圆角小卡" value="典藏圆角小卡"></el-option>
@@ -281,6 +282,14 @@
               <el-option key="ZEROBASEONE" label="ZEROBASEONE" value="ZEROBASEONE"></el-option>
             </el-select>
           </el-form-item>
+          <el-form-item label="客服备注"  :label-width=" lang === 'en' ? '145px' : '85px'">
+            <el-input
+              v-model="dataForm.remarks"
+              placeholder="请输入客服备注"
+              clearable
+              size="small"
+            ></el-input>
+          </el-form-item>
         </div>
       </el-form>
     </div>
@@ -1680,7 +1689,8 @@ export default {
           'dvyFlowId': this.dataForm.dvyFlowId, //快递单号
           'skuName': this.dataForm.skuName,
           'isPromotion': this.dataForm.isPromotion,
-          'prodZone': this.dataForm.prodZone
+          'prodZone': this.dataForm.prodZone,
+          'remarks': this.dataForm.remarks
         }
       } else {
         this.theData.current = page == null ? this.page.currentPage : page.currentPage
@@ -1727,7 +1737,8 @@ export default {
           'prodName': this.dataForm.prodName, // 产品名称
           'skuName': this.dataForm.skuName, // 产品名称,
           'isPromotion': this.dataForm.isPromotion,
-          'prodZone': this.dataForm.prodZone
+          'prodZone': this.dataForm.prodZone,
+          'remarks': this.dataForm.remarks
         }
       } else {
         this.theData.current = page == null ? this.page.currentPage : page.currentPage
@@ -1809,6 +1820,7 @@ export default {
           'startTime': this.dateRange === null ? null : this.dateRange[0], // 开始时间
           'endTime': this.dateRange === null ? null : this.dateRange[1], // 结束时间,
           'prodZone': this.dataForm.prodZone,
+          'remarks': this.dataForm.remarks
         }
       } else {
         this.theData.current = page == null ? this.page.currentPage : page.currentPage

+ 1 - 1
src/views/modules/resource/audio-store/audio-store.vue

@@ -532,7 +532,7 @@ export default {
     createGroup () {
       this.groupVisible = true
       this.$nextTick(() => {
-        this.$refs.groupAddOrUpdate.show(2)
+        this.$refs.groupAddOrUpdate.show(4)
       })
     },
     deleteGroup (id) {