Преглед на файлове

卓美公开课 第三次点播优化

yuhongqi преди 16 часа
родител
ревизия
6df2ef2b13

+ 25 - 0
src/api/course/publicCourseCourseLink.js

@@ -0,0 +1,25 @@
+import request from '@/utils/request'
+
+export function listPublicCourseSearchKeywordStat(query) {
+  return request({
+    url: '/course/publicCourse/courseLink/list',
+    method: 'get',
+    params: query
+  })
+}
+
+export function exportPublicCourseSearchKeywordStat(query) {
+  return request({
+    url: '/course/publicCourse/courseLink/export',
+    method: 'get',
+    params: query
+  })
+}
+
+/** 手动刷新搜索统计聚合数据 */
+export function refreshPublicCourseSearchKeywordStat() {
+  return request({
+    url: '/course/publicCourse/courseLink/refresh',
+    method: 'post'
+  })
+}

+ 16 - 0
src/api/course/userCourseCategory.js

@@ -84,6 +84,22 @@ export function getCateListByPid(pid) {
   })
 }
 
+/** 公域课一级分类(cateType=1) */
+export function getPublicCatePidList() {
+  return request({
+    url: '/course/userCourseCategory/getPublicCatePidList',
+    method: 'get'
+  })
+}
+
+/** 公域课二级分类 */
+export function getPublicCateListByPid(pid) {
+  return request({
+    url: '/course/userCourseCategory/getPublicCateListByPid/' + pid,
+    method: 'get'
+  })
+}
+
 
 // 下载模板
 export function importTemplate() {

+ 9 - 0
src/api/course/userCourseVideo.js

@@ -67,6 +67,15 @@ export function updateUserCourseVideo(data) {
   })
 }
 
+/** 批量修改观看时长(分钟)、积分奖励 */
+export function batchUpdateWatchIntegral(data) {
+  return request({
+    url: '/course/userCourseVideo/batchUpdateWatchIntegral',
+    method: 'post',
+    data: data
+  })
+}
+
 // 删除课堂视频
 export function delUserCourseVideo(videoId) {
   return request({

+ 9 - 0
src/api/course/videoResource.js

@@ -9,6 +9,15 @@ export function listVideoResource(query) {
   })
 }
 
+/** 公域视频素材(仅打标在公域分类上的素材,与 list 条件相同、数据范围不同) */
+export function listPublicVideoResource(query) {
+  return request({
+    url: '/course/videoResource/publicList',
+    method: 'get',
+    params: query
+  })
+}
+
 // 查询视频资源详细
 export function getVideoResource(resourceId) {
   return request({

+ 9 - 0
src/api/hisStore/storeOrder.js

@@ -419,3 +419,12 @@ export function editPayDelivery(data) {
     data: data
   })
 }
+
+// 待支付订单修改运费
+export function editPayPostage(data) {
+  return request({
+    url: '/store/store/storeOrder/editPayPostage',
+    method: 'put',
+    data: data
+  })
+}

+ 13 - 5
src/components/VideoUpload/index.vue

@@ -148,8 +148,8 @@ import TcVod from "vod-js-sdk-v6";
 import { uploadObject } from "@/utils/cos.js";
 import { uploadToOBS } from "@/utils/obs.js";
 import Pagination from "@/components/Pagination";
-import { listVideoResource } from '@/api/course/videoResource';
-import { getCateListByPid, getCatePidList } from '@/api/course/userCourseCategory'
+import { listVideoResource, listPublicVideoResource } from '@/api/course/videoResource';
+import { getCateListByPid, getCatePidList, getPublicCateListByPid, getPublicCatePidList } from '@/api/course/userCourseCategory'
 
 export default {
   components: {
@@ -213,6 +213,11 @@ export default {
     showControl: {
       type: Boolean,
       default: true,
+    },
+    /** true:视频库选取走公域分类 + /course/videoResource/publicList;false:原接口 */
+    usePublicVideoLibrary: {
+      type: Boolean,
+      default: false
     }
   },
   data() {
@@ -269,7 +274,8 @@ export default {
       this.getLibraryList();
     },
     getRootTypeList() {
-      getCatePidList().then(response => {
+      const req = this.usePublicVideoLibrary ? getPublicCatePidList() : getCatePidList()
+      req.then(response => {
         this.typeOptions = response.data
       });
     },
@@ -279,7 +285,8 @@ export default {
       if (!val) {
         return
       }
-      await getCateListByPid(val).then(response => {
+      const subReq = this.usePublicVideoLibrary ? getPublicCateListByPid(val) : getCateListByPid(val)
+      await subReq.then(response => {
         this.typeSubOptions = response.data
       })
     },
@@ -385,7 +392,8 @@ export default {
     /** 查询视频库列表 */
     getLibraryList() {
       this.libraryLoading = true;
-      listVideoResource(this.libraryQueryParams).then(response => {
+      const api = this.usePublicVideoLibrary ? listPublicVideoResource : listVideoResource
+      api(this.libraryQueryParams).then(response => {
         this.libraryList = response.rows;
         this.libraryTotal = response.total;
         this.libraryLoading = false;

+ 145 - 6
src/views/components/course/userCourseCatalogDetails.vue

@@ -33,6 +33,16 @@
                    v-hasPermi="['course:userCourseVideo:batchAdd']">批量添加
         </el-button>
       </el-col>
+      <el-col v-if="usePublicVideoLibrary" :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          size="mini"
+          :disabled="!ids || ids.length <= 0"
+          v-hasPermi="['course:userCourseVideo:edit']"
+          @click="openBatchWatchIntegralDialog"
+        >批量修改</el-button>
+      </el-col>
       <el-col :span="1.5">
         <el-button type="primary" plain size="mini" @click="updateRedPageckeOpen"
                    v-hasPermi="['course:userCourseVideo:updateRed']">修改红包
@@ -100,6 +110,8 @@
       </el-table-column>
       <el-table-column label="红包金额" align="center" prop="redPacketMoney"/>
       <el-table-column label="排序" align="center" prop="courseSort"/>
+      <el-table-column v-if="usePublicVideoLibrary" label="观看时长(分钟)" align="center" width="120" prop="watchDurationMinutes"/>
+      <el-table-column v-if="usePublicVideoLibrary" label="积分奖励" align="center" width="100" prop="integralReward"/>
       <el-table-column label="上传时间" align="center" prop="createTime"/>
       <el-table-column label="是否上架" align="center" prop="isOnPut">
         <template slot-scope="{ row }">
@@ -139,6 +151,7 @@
         <el-form-item label="课程排序" prop="courseSort">
           <el-input-number v-model="form.courseSort" :min="1"></el-input-number>
         </el-form-item>
+        
 
         <el-form-item label="视频缩略图" prop="thumbnail">
           <el-upload v-model="form.thumbnail" class="avatar-uploader" :action="uploadUrl" :show-file-list="false"
@@ -147,7 +160,7 @@
             <i v-else class="el-icon-plus avatar-uploader-icon"></i>
           </el-upload>
         </el-form-item>
-        <video-upload :type="1" :isPrivate="isPrivate" :fileKey.sync="form.fileKey" :fileSize.sync="form.fileSize"
+        <video-upload :type="1" :isPrivate="isPrivate" :use-public-video-library="usePublicVideoLibrary" :fileKey.sync="form.fileKey" :fileSize.sync="form.fileSize"
                       :videoUrl.sync="videoUrl" :fileName.sync="form.fileName" :line_1.sync="form.lineOne"
                       :line_2.sync="form.lineTwo" :line_3.sync="form.lineThree" :thumbnail.sync="form.thumbnail"
                       :uploadType.sync="form.uploadType" :isTranscode.sync="form.isTranscode"
@@ -359,6 +372,32 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-form-item v-if="usePublicVideoLibrary" label="观看时长" prop="watchDurationMinutes">
+          <el-input-number
+            v-model="form.watchDurationMinutes"
+            :min="0"
+            :precision="0"
+            :step="1"
+            controls-position="right"
+            placeholder="请输入"
+            class="input-num-fixed"
+            style="width: 200px"
+          />
+          <span class="form-unit">分钟</span>
+          <span class="form-hint">注释:用户在页面的停留时间</span>
+        </el-form-item>
+        <el-form-item v-if="usePublicVideoLibrary" label="积分奖励" prop="integralReward">
+          <el-input-number
+            v-model="form.integralReward"
+            :min="0"
+            :precision="0"
+            :step="1"
+            controls-position="right"
+            placeholder="请输入"
+            class="input-num-fixed"
+            style="width: 200px"
+          />
+        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -385,6 +424,38 @@
         <el-button @click="updateBatchData.open = false">取 消</el-button>
       </div>
     </el-dialog>
+
+    <el-dialog title="批量修改观看时长与积分" :visible.sync="batchWatchIntegral.open" width="520px" append-to-body>
+      <p class="batch-watch-tip">已选 <strong>{{ ids.length }}</strong> 条课节,将统一更新为下方数值(仅本课程下已选中的记录)。</p>
+      <el-form label-width="120px">
+        <el-form-item label="观看时长">
+          <el-input-number
+            v-model="batchWatchIntegral.form.watchDurationMinutes"
+            :min="0"
+            :precision="0"
+            :step="1"
+            controls-position="right"
+            style="width: 200px"
+          />
+          <span class="form-unit">分钟</span>
+        </el-form-item>
+        <el-form-item label="积分奖励">
+          <el-input-number
+            v-model="batchWatchIntegral.form.integralReward"
+            :min="0"
+            :precision="0"
+            :step="1"
+            controls-position="right"
+            style="width: 200px"
+          />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="batchWatchIntegral.open = false">取 消</el-button>
+        <el-button type="primary" @click="submitBatchWatchIntegral">确 定</el-button>
+      </div>
+    </el-dialog>
+
     <el-dialog :title="questionBank.title" :visible.sync="questionBank.open" width="1000px" append-to-body>
       <question-bank ref="questionBank" @questionBankResult="questionBankResult"></question-bank>
     </el-dialog>
@@ -557,22 +628,30 @@ import {
   sortCourseVideo,
   updates,
   updateUserCourseVideo,
+  batchUpdateWatchIntegral,
   syncTemplate, batchDownUserCourseVideo, batchEditCover, batchUpUserCourseVideo
 } from '@/api/course/userCourseVideo'
 // import {syncTemplate} from '@/api/course/userCourse'
 import QuestionBank from "@/views/course/courseQuestionBank/QuestionBank.vue";
 import CourseProduct from "@/views/course/fsCourseProduct/CourseProduct.vue";
 import VideoUpload from "@/components/VideoUpload/index.vue";
-import {listVideoResource} from '@/api/course/videoResource';
+import {listVideoResource, listPublicVideoResource} from '@/api/course/videoResource';
 import {getByIds} from '@/api/course/courseQuestionBank'
 import CourseWatchComment from "./courseWatchComment.vue";
-import {getCateListByPid, getCatePidList} from '@/api/course/userCourseCategory'
+import {getCateListByPid, getCatePidList, getPublicCateListByPid, getPublicCatePidList} from '@/api/course/userCourseCategory'
 import draggable from 'vuedraggable'
 import { getConfigByKey } from '@/api/system/config'
 
 export default {
   name: "userCourseCatalog",
   components: {VideoUpload, QuestionBank, CourseWatchComment, CourseProduct, draggable},
+  props: {
+    /** 为 true 时「视频库选择」使用公域分类 + 公域素材接口;默认 false 走原 list / 原分类下拉 */
+    usePublicVideoLibrary: {
+      type: Boolean,
+      default: false
+    }
+  },
   watch:{
     // 深度监听 rules 数组的变化,以更新总权重
     "form.randomRedPacketRulesArr": {
@@ -695,6 +774,13 @@ export default {
         open: false,
         form: {}
       },
+      batchWatchIntegral: {
+        open: false,
+        form: {
+          watchDurationMinutes: 0,
+          integralReward: 0
+        }
+      },
       // 表单校验
       rules: {
         title: [
@@ -996,6 +1082,8 @@ export default {
         isOnPut: 0,
         listingStartTime: null,
         listingEndTime: null,
+        watchDurationMinutes: null,
+        integralReward: null,
         randomRedPacketRules:null,
         randomRedPacketRulesArr:[
           {
@@ -1248,8 +1336,43 @@ export default {
       this.addBatchData.select = [];
       this.resourceList();
     },
+    openBatchWatchIntegralDialog() {
+      if (!this.ids || this.ids.length === 0) {
+        this.$message.warning('请先勾选要修改的课节');
+        return;
+      }
+      this.batchWatchIntegral.form = {
+        watchDurationMinutes: 0,
+        integralReward: 0
+      };
+      this.batchWatchIntegral.open = true;
+    },
+    submitBatchWatchIntegral() {
+      const w = this.batchWatchIntegral.form.watchDurationMinutes;
+      const i = this.batchWatchIntegral.form.integralReward;
+      if (w === null || w === undefined || i === null || i === undefined) {
+        this.$message.warning('请填写观看时长与积分奖励');
+        return;
+      }
+      const videoIds = (this.ids || []).map(id => (typeof id === 'string' ? parseInt(id, 10) : id));
+      batchUpdateWatchIntegral({
+        courseId: this.courseId,
+        videoIds: videoIds,
+        watchDurationMinutes: w,
+        integralReward: i
+      }).then(response => {
+        if (response.code === 200) {
+          this.msgSuccess('修改成功');
+          this.batchWatchIntegral.open = false;
+          this.getList();
+        } else {
+          this.$message.error(response.msg || '修改失败');
+        }
+      });
+    },
     getRootTypeList() {
-      getCatePidList().then(response => {
+      const req = this.usePublicVideoLibrary ? getPublicCatePidList() : getCatePidList()
+      req.then(response => {
         this.addBatchData.typeOptions = response.data
       });
     },
@@ -1259,13 +1382,15 @@ export default {
       if (!val) {
         return
       }
-      await getCateListByPid(val).then(response => {
+      const subReq = this.usePublicVideoLibrary ? getPublicCateListByPid(val) : getCateListByPid(val)
+      await subReq.then(response => {
         this.addBatchData.typeSubOptions = response.data
       })
     },
     resourceList() {
       this.addBatchData.loading = true;
-      listVideoResource(this.addBatchData.queryParams).then(response => {
+      const api = this.usePublicVideoLibrary ? listPublicVideoResource : listVideoResource
+      api(this.addBatchData.queryParams).then(response => {
         this.addBatchData.loading = false;
         this.addBatchData.list = response.rows;
         this.addBatchData.total = response.total;
@@ -1531,6 +1656,20 @@ export default {
 }
 </script>
 <style scoped>
+.form-unit {
+  margin-left: 8px;
+  color: #606266;
+}
+.form-hint {
+  margin-left: 12px;
+  color: #909399;
+  font-size: 12px;
+}
+.batch-watch-tip {
+  margin: 0 0 16px 0;
+  color: #606266;
+  font-size: 13px;
+}
 .avatar-uploader-icon {
   display: flex;
   align-items: center;

+ 149 - 0
src/views/course/publiccourse/courseLink/index.vue

@@ -0,0 +1,149 @@
+<template>
+  <div class="app-container">
+    <div class="page-section-title">课程搜索结果</div>
+
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
+      <el-form-item label="内容名称" prop="keyword">
+        <el-input
+          v-model="queryParams.keyword"
+          placeholder="请输入内容名称"
+          clearable
+          size="small"
+          style="width: 260px;"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['course:publicCourseSearch:export']"
+        >导出</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-refresh"
+          size="mini"
+          :loading="refreshLoading"
+          @click="handleRefresh"
+          v-hasPermi="['course:publicCourseSearch:list']"
+        >刷新数据</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" />
+    </el-row>
+
+    <el-table v-loading="loading" border :data="dataList">
+      <el-table-column label="序号" align="center" width="70">
+        <template slot-scope="scope">
+          <span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="搜索词" align="center" prop="keyword" min-width="160" show-overflow-tooltip />
+      <el-table-column label="搜索次数" align="center" prop="searchPv" width="120" />
+      <el-table-column label="搜索人数" align="center" prop="searchUv" width="120" />
+      <el-table-column label="关联课程数量" align="center" prop="relatedCourseCount" width="130" />
+    </el-table>
+
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
+</template>
+
+<script>
+import {
+  listPublicCourseSearchKeywordStat,
+  exportPublicCourseSearchKeywordStat,
+  refreshPublicCourseSearchKeywordStat
+} from '@/api/course/publicCourseCourseLink'
+
+export default {
+  name: 'PublicCourseCourseLink',
+  data() {
+    return {
+      loading: true,
+      exportLoading: false,
+      refreshLoading: false,
+      showSearch: true,
+      total: 0,
+      dataList: [],
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        keyword: null
+      }
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    getList() {
+      this.loading = true
+      listPublicCourseSearchKeywordStat(this.queryParams).then(response => {
+        this.dataList = response.rows || []
+        this.total = response.total || 0
+        this.loading = false
+      }).catch(() => {
+        this.loading = false
+      })
+    },
+    handleQuery() {
+      this.queryParams.pageNum = 1
+      this.getList()
+    },
+    resetQuery() {
+      this.resetForm('queryForm')
+      this.handleQuery()
+    },
+    handleExport() {
+      this.exportLoading = true
+      exportPublicCourseSearchKeywordStat(this.queryParams).then(response => {
+        this.download(response.msg)
+        this.exportLoading = false
+      }).catch(() => {
+        this.exportLoading = false
+      })
+    },
+    handleRefresh() {
+      this.refreshLoading = true
+      refreshPublicCourseSearchKeywordStat().then(response => {
+        this.msgSuccess(response.msg || '刷新成功')
+        this.getList()
+        this.refreshLoading = false
+      }).catch(() => {
+        this.refreshLoading = false
+      })
+    }
+  }
+}
+</script>
+
+<style scoped>
+.page-section-title {
+  font-size: 16px;
+  font-weight: 600;
+  color: #303133;
+  padding-left: 10px;
+  border-left: 4px solid #409eff;
+  margin-bottom: 18px;
+  line-height: 1.4;
+}
+</style>

+ 1 - 1
src/views/course/publiccourse/usercourse/index.vue

@@ -466,7 +466,7 @@
       :with-header="false"
       size="75%"
       :title="show.title" :visible.sync="show.open" append-to-body>
-      <userCourseCatalogDetails ref="userCourseCatalogDetails"/>
+      <userCourseCatalogDetails ref="userCourseCatalogDetails" :use-public-video-library="true"/>
     </el-drawer>
   </div>
 </template>

+ 3 - 3
src/views/course/publiccourse/videoResource/index.vue

@@ -829,7 +829,7 @@ import {
   batchAddVideoResource,
   batchUpdateVideoResource
 } from '@/api/course/videoResource'
-import {listUserCourseCategory,getCatePidList,getCateListByPid} from '@/api/course/userCourseCategory'
+import {listUserCourseCategory,getPublicCatePidList,getPublicCateListByPid} from '@/api/course/userCourseCategory'
 import {getByIds, listCourseQuestionBank} from '@/api/course/courseQuestionBank'
 import {getThumbnail} from "@/api/course/userVideo";
 import {uploadObject} from "@/utils/cos.js";
@@ -1235,7 +1235,7 @@ export default {
       });
     },
     getRootTypeList() {
-      getCatePidList().then(response => {
+      getPublicCatePidList().then(response => {
         this.rootTypeList = response.data;
         this.originalRootTypeList = [...response.data]; // 保存原始数据
         this.filteredRootTypeList = [...response.data]; // 初始化过滤列表
@@ -1300,7 +1300,7 @@ export default {
       if (!val) {
         return
       }
-      await getCateListByPid(val).then(response => {
+      await getPublicCateListByPid(val).then(response => {
         this.subTypeList = response.data
       })
     },

+ 62 - 1
src/views/hisStore/components/productOrder.vue

@@ -46,6 +46,9 @@
         <div class="operate-button-container" >
           <el-button size="mini" @click="editDelivery()"  v-hasPermi="['store:storeOrder:editDeliveryId']" >修改物流</el-button>
         </div>
+        <div class="operate-button-container" v-if="order.status===0" >
+          <el-button size="mini" @click="editPayPostageOpen()"  v-hasPermi="['store:storeOrder:edit']" >修改运费</el-button>
+        </div>
         <div class="operate-button-container" v-if="order.status >=1 && order.extendOrderId == null && order.deliveryId == null"  v-hasPermi="['store:storeOrder:createErpOrder']"  >
           <el-button size="mini" @click="addErpOrder()" >创建ERP订单信息</el-button>
         </div>
@@ -804,6 +807,28 @@
       </div>
     </el-dialog>
 
+    <!--  待支付:修改运费  -->
+    <el-dialog :title="editPayPostageDialog.title" :visible.sync="editPayPostageDialog.open" width="500px" append-to-body>
+      <el-form ref="payPostageForm" :model="payPostageForm" :rules="payPostageRules" label-width="120px">
+        <el-form-item label="运费(元)" prop="payPostage">
+          <el-input-number
+            v-model="payPostageForm.payPostage"
+            :min="0.00"
+            :precision="2"
+            :step="0.01"
+            size="small"
+            style="width: 150px"
+          >
+          </el-input-number>
+        </el-form-item>
+      </el-form>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="editPayPostageDialog.open = false">取 消</el-button>
+        <el-button type="primary" @click="submitPayPostageForm">确 定</el-button>
+      </div>
+    </el-dialog>
+
   </div>
 </template>
 
@@ -826,7 +851,8 @@ import {
   updateExpress,
   updateStoreOrder,
   updateStoreOrderItemJson,
-  editPayDelivery
+  editPayDelivery,
+  editPayPostage
 } from "@/api/hisStore/storeOrder";
 import {listStoreProduct} from "@/api/hisStore/storeProduct";
 import {getTcmScheduleList} from "@/api/company/schedule";
@@ -1018,6 +1044,19 @@ export default {
           { required: true, message: "代收金额不能为空", trigger: "blur" },
         ]
       },
+      editPayPostageDialog: {
+        title: "修改运费",
+        open: false
+      },
+      payPostageForm: {
+        id: null,
+        payPostage: 0.00
+      },
+      payPostageRules: {
+        payPostage: [
+          { required: true, message: "运费不能为空", trigger: "blur" }
+        ]
+      },
       // 删除商品相关
       removeProductLoading: false
     };
@@ -1597,6 +1636,28 @@ export default {
         }
       });
     },
+    editPayPostageOpen() {
+      this.payPostageForm.id = this.orderId;
+      this.payPostageForm.payPostage = this.order.payPostage != null ? Number(this.order.payPostage) : 0;
+      this.editPayPostageDialog.open = true;
+    },
+    submitPayPostageForm() {
+      this.$refs["payPostageForm"].validate(valid => {
+        if (valid) {
+          editPayPostage(this.payPostageForm).then(response => {
+            if (response.code === 200) {
+              this.msgSuccess("修改成功");
+              this.editPayPostageDialog.open = false;
+              this.getOrder(this.order.id);
+            } else {
+              this.msgError(response.msg || response.message);
+            }
+          }).catch(error => {
+            this.$message.error("请求失败: " + (error.message || ""));
+          });
+        }
+      });
+    },
     checkProjectName() {
       getSignProjectName().then(r=>{
         this.isBeiJingZhuoMei = r.signProjectName === '北京卓美';

+ 0 - 5
src/views/hisStore/storeProduct/indexZm.vue

@@ -1486,11 +1486,6 @@ export default {
           this.form.header = res.header;
           let header = res.header;
           header.pop();
-          this.oneFormValidate.map((item) => {
-            if(this.imageArr.length>0){
-              item.image = this.imageArr[0]
-            }
-          });
         }else if(this.form.specType === 1) {
           this.manyFormValidate = res.value;
           let headerdel = {