Browse Source

修改bug

chenrui 9 months ago
parent
commit
3ff78aea68

+ 9 - 0
src/api/shopPromo.js

@@ -128,3 +128,12 @@ export const delChooseProduct = (params) => {
     method: 'post'
   })
 }
+
+// 产品选择 清空已选产品
+export const clearByPromoSn = (params) => {
+  return axios({
+    url: '/shopPromoProduct/clearByPromoSn',
+    data: params,
+    method: 'post'
+  })
+}

+ 46 - 60
src/views/easyPassManagement/homepageCarouselImg/edit.vue

@@ -1,17 +1,17 @@
 <template>
-  <div class="promotionEdit-wrap">
+  <div class="carouselImageEdit-wrap">
     <a-spin :spinning="spinning" tip="Loading...">
-      <a-page-header :ghost="false" :backIcon="false" class="promotionEdit-cont" >
+      <a-page-header :ghost="false" :backIcon="false" class="carouselImageEdit-cont" >
         <!-- 自定义的二级文字标题 -->
         <template slot="subTitle">
-          <a id="promotionEdit-back-btn" href="javascript:;" @click="handleBack"><a-icon type="left" />返回列表</a>
+          <a id="carouselImageEdit-back-btn" href="javascript:;" @click="handleBack"><a-icon type="left" />返回列表</a>
           <span v-if="$route.params.sn" style="margin: 0 10px 0 20px;color: #666;font-size: 14px;font-weight: 600;">促销名称:{{ form.bannerName||'--' }}</span>
         </template>
       </a-page-header>
       <!-- 表单 -->
-      <a-card :bordered="false" class="promotionEdit-cont">
+      <a-card :bordered="false" class="carouselImageEdit-cont">
         <a-form-model
-          id="promotionEdit-form"
+          id="carouselImageEdit-form"
           ref="ruleForm"
           :model="form"
           :rules="rules"
@@ -22,8 +22,9 @@
             <a-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
               <a-form-model-item label="轮播图名称" prop="bannerName" :label-col="{span:4}" :wrapper-col="{span:16}">
                 <a-input
-                  id="promotionEdit-bannerName"
+                  id="carouselImageEdit-bannerName"
                   :maxLength="30"
+                  :disabled="isDisabled"
                   v-model.trim="form.bannerName"
                   placeholder="请输入轮播图名称(最多30个字符)"
                   allowClear/>
@@ -35,9 +36,9 @@
                   v-model="form.time"
                   style="width:100%"
                   :format="dateFormat"
-                  id="promotionEdit-time"
+                  id="carouselImageEdit-time"
                   @change="dateChange"
-                  :disabled="$route.params.sn"
+                  :disabled="isDisabled"
                   :disabled-date="disabledDate"
                   :placeholder="['开始时间', '结束时间']" />
               </a-form-model-item>
@@ -46,7 +47,7 @@
               <a-form-model-item label="轮播图排序" prop="sort">
                 <a-input-number
                   style="width:40%"
-                  id="promotionEdit-sort"
+                  id="carouselImageEdit-sort"
                   allowClear
                   placeholder="请输入轮播图排序数字(数字越大越靠后)"
                   v-model="form.sort"
@@ -60,25 +61,25 @@
                   <a-col :md="10" :sm="24">
                     <a-select
                       style="width:98%;"
-                      id="promotionList-allDealerFlag"
+                      id="carouselImageEdit-allDealerFlag"
                       v-model="form.allDealerFlag"
                       placeholder="请选择参与经销商"
                       @change="changeDealerScope"
-                      :disabled="$route.params.sn"
+                      :disabled="isDisabled"
                       allowClear>
                       <a-select-option id="promotionList-dealerScope-all" value="1">全部经销商</a-select-option>
                       <a-select-option id="promotionList-dealerScope-some" value="0">部分经销商</a-select-option>
                     </a-select>
                   </a-col>
                   <a-col :md="2" :sm="24" v-show="form.allDealerFlag && form.allDealerFlag!='1' ">
-                    <a-button id="promotionList-basicInfo-dealerScope" type="primary" :loading="spinning" :disabled="$route.params.sn" @click="handleDealerModal">选择</a-button>
+                    <a-button id="promotionList-basicInfo-dealerScope" type="primary" :loading="spinning" :disabled="isDisabled" @click="handleDealerModal">选择</a-button>
                   </a-col>
                   <a-col :md="5" :sm="24" v-show="chooseDealerList && chooseDealerList.length>0">
                     已{{ chooseDealerList.length }}选项
                   </a-col>
                   <a-col :md="24" :sm="24" v-show="chooseDealerList && chooseDealerList.length>0">
                     <div class="buyerBox">
-                      <a-tag :closable="$route.params.sn" v-for="con in chooseDealerList" id="promotionList-dealerSn" :key="con.dealerSn" @close="delBuyerName(con)">
+                      <a-tag :closable="isDisabled" v-for="con in chooseDealerList" id="promotionList-dealerSn" :key="con.dealerSn" @close="delBuyerName(con)">
                         {{ con.dealerName }}
                       </a-tag>
                     </div>
@@ -90,7 +91,7 @@
               <a-form-model-item label="封面图片" prop="imageUrl">
                 <Upload
                   class="upload"
-                  id="promotionEdit-imageUrl"
+                  id="carouselImageEdit-imageUrl"
                   v-model="form.imageUrl"
                   ref="imageSet"
                   :fileSize="10"
@@ -104,10 +105,11 @@
               <a-form-model-item label="内容类型" prop="contentType">
                 <v-select
                   v-model="form.contentType"
-                  id="promotion-contentType"
+                  id="carouselImageEdit-contentType"
                   code="PROMO_CONTENT_TYPE"
                   showType="radio"
-                  :disabled="$route.params.sn"
+                  :notIn="notShowSel"
+                  :disabled="isDisabled"
                   allowClear></v-select>
               </a-form-model-item>
             </a-col>
@@ -115,9 +117,9 @@
               <a-form-model-item label="内容" prop="content" v-show="form.contentType =='IMAGE_CONTENT'">
                 <editor
                   v-show="!$route.params.sn"
-                  id="promotionEdit-editor"
+                  id="carouselImageEdit-editor"
                   ref="editor"
-                  class="promotionEdit-editor"
+                  class="carouselImageEdit-editor"
                   @on-change="editorChange"
                   :cache="false"></editor>
                 <div style="border:1px solid #efefef;border-radius:8px;padding:10px 20px;" v-if="$route.params.sn" v-html="form.content"></div>
@@ -125,11 +127,11 @@
               <a-form-model-item label="上传视频" prop="content" v-show="form.contentType =='VIDEO'">
                 <Upload
                   class="upload"
-                  id="promotionEdit-videoSet"
+                  id="carouselImageEdit-videoSet"
                   v-model="form.content"
                   fileType="video/mp4"
                   ref="videoSet"
-                  :disabled="$route.params.sn"
+                  :disabled="isDisabled"
                   :fileSize="100"
                   :maxNums="1"
                   @change="changeVideo"
@@ -139,12 +141,11 @@
               <a-form-model-item label="跳转链接" prop="contentLink" v-if="form.contentType =='LINK'">
                 <a-input
                   style="width:50%;"
-                  :disabled="$route.params.sn"
-                  id="promotionEdit-contentLink"
+                  :disabled="isDisabled"
+                  id="carouselImageEdit-contentLink"
                   :maxLength="100"
                   v-model.trim="form.contentLink"
                   placeholder="请输入跳转链接"
-                  @blur="handleLink"
                   allowClear />
               </a-form-model-item>
             </a-col>
@@ -157,7 +158,7 @@
         type="primary"
         class="button-primary"
         :disabled="spinning"
-        id="productInfoEdit-submit-btn"
+        id="carouselImageEdit-submit-btn"
         size="large"
         @click="handleSave('all')"
         style="padding: 0 60px;">保存</a-button>
@@ -178,7 +179,7 @@ import chooseDealer from './chooseDealer'
 import { saveShopBanner, shopBannerDetail } from '@/api/shopBanner'
 
 export default {
-  name: 'ProductBrandEditModal',
+  name: 'CarouselImageEdit',
   mixins: [commonMixin],
   components: { VSelect, Upload, Editor, chooseDealer },
   data () {
@@ -189,9 +190,8 @@ export default {
         labelCol: { span: 2 },
         wrapperCol: { span: 20 }
       },
-      productRangeList: [], // 产品范围列表
-      chooseDealerList: [],
-      openDealerModal: false,
+      chooseDealerList: [], // 已选经销商数据
+      openDealerModal: false, // 打开选择经销商弹窗
       // 链接配置内容
       form: {
         bannerSn: undefined, // 轮播图sn
@@ -205,19 +205,11 @@ export default {
         imageUrl: '', // 图片
         contentType: 'LINK', // 内容类型
         content: '', // 内容
-        contentLink: '',
-        state: 'UNPUBLISH'
+        contentLink: '', // 内容链接
+        state: 'UNPUBLISH'// 发布状态
       },
-
       dateFormat: 'YYYY-MM-DD', // 有效期时间格式
-      promotionName: '', // 促销名称
-      pageType: undefined, // 页面类型
-      showProModal: false, // 打开产品弹窗
-      isShowNextStep: false, // 是否显示下一步 并提交一半配置产品
-      isDisabled: false, // 控制页面是否能编辑
-      chooseTypeList: [], // 已选中产品范围
-      imageSet: [], // 回显显示图片数据
-      productTypeList: [], // 产品范围    列表数据
+      notShowSel: ['PROMO_LINK'], // 是否显示促销活动选择按钮
       // 表单验证规则
       rules: {
         bannerName: [{ required: true, message: '请输入轮播图名称', trigger: 'blur' }],
@@ -254,14 +246,15 @@ export default {
         this.form.bannerEndDate = dateString[1] + ' 23:59:59'
       }
     },
-    // 关闭 选择经销商弹窗
-    closeDealerModal () {
-      this.openDealerModal = false
-    },
     // 打开 选择经销商弹窗
     handleDealerModal () {
       this.openDealerModal = true
     },
+    // 关闭 选择经销商弹窗
+    closeDealerModal () {
+      this.openDealerModal = false
+    },
+    // 参与经销商 change
     changeDealerScope () {},
     // 返回列表
     handleBack () {
@@ -279,9 +272,11 @@ export default {
           } else if (res.data.contentType == 'LINK') {
             _this.form.contentLink = res.data.content
           }
+
           _this.$refs.imageSet.setFileList(res.data.imageUrl)
           _this.form = res.data
           _this.form.time = [res.data.bannerStartDate, res.data.bannerEndDate]
+          _this.notShowSel = _this.form.bizType ? _this.form.bizType != 'SHOP_PROMO' ? ['PROMO_LINK'] : [] : []
         }
       })
     },
@@ -340,15 +335,11 @@ export default {
     },
     // 重置
     resetSearchForm () {
-      if (this.pageType == 'add' || (this.pageType == 'edit' && !this.isDisabled)) {
-        if (this.$refs.imageSet) {
-          this.$refs.imageSet.setFileList('')
-        }
-        if (this.$refs.videoSet) {
-          this.$refs.videoSet.setFileList('')
-        }
+      this.$refs.imageSet.setFileList('')
+      if (this.contentType === 'VIDEO') {
+        this.$refs.videoSet.setFileList('')
       }
-      if (this.$refs.editor) {
+      if (this.contentType === 'IMAGE_CONTENT') {
         this.$refs.editor.setHtml('')
       }
       this.form = {
@@ -366,11 +357,6 @@ export default {
         contentLink: '',
         state: 'UNPUBLISH'
       }
-      this.isShowNextStep = false
-      this.isDisabled = false
-      if (this.$refs.ruleForm) {
-        this.$refs.ruleForm.resetFields()
-      }
       if (this.$refs.ruleForm) {
         this.$refs.ruleForm.resetFields()
       }
@@ -404,7 +390,7 @@ export default {
 </script>
 
 <style lang="less" scoped>
-.promotionEdit-wrap{
+.carouselImageEdit-wrap{
     position: relative;
     height: 100%;
     box-sizing: border-box;
@@ -416,14 +402,14 @@ export default {
     /deep/.ant-form-item{
       margin-bottom:8px;
     }
-    .promotionEdit-cont{
+    .carouselImageEdit-cont{
       margin-bottom: 10px;
     }
     .upload{
       width: 100%!important;
     }
     //  文本编辑器  工具栏样式换行
-    .promotionEdit-editor{
+    .carouselImageEdit-editor{
       .w-e-toolbar{
         flex-wrap: wrap;
         z-index: 0;
@@ -441,7 +427,7 @@ export default {
       font-size: 12px;
       color: #808695;
     }
-    #promotionEdit-attachList{
+    #carouselImageEdit-attachList{
       height: auto;
     }
     .box{

+ 43 - 61
src/views/easyPassManagement/homepageCarouselImg/list.vue

@@ -18,9 +18,9 @@
             <a-col :md="6" :sm="24">
               <a-form-item label="轮播图状态">
                 <v-select
-                  v-model="queryParam.stateDictValue"
+                  v-model="queryParam.state"
                   ref="stateDictValue"
-                  id="carouselImage-stateDictValue"
+                  id="carouselImage-state"
                   code="SHOP_BANNER_STATE"
                   placeholder="请选择轮播图状态"
                   allowClear></v-select>
@@ -54,77 +54,60 @@
           :scroll="{ y: tableHeight }"
           :defaultLoadData="false"
           bordered>
-          <!-- 促销状态 -->
-          <template slot="stateVal" slot-scope="text, record">
-            <span>{{ record.publishState==='UNPUBLISH'?'未发布':record.publishState==='PUBLISH'?'已发布':record.publishState==='CLOSE'?'已关闭':'已结束' }}</span>
-          </template>
           <!-- 促销时间 -->
           <template slot="promotionTime" slot-scope="text, record">
             <span>{{ record.bannerStartDate }}至{{ record.bannerEndDate }}</span>
           </template>
-          <!-- 参与客户 -->
+          <!-- 参与经销商 -->
           <template slot="joinCustomers" slot-scope="text, record">
             <span class="customerBox" @click="handleCustomers(record)" :id="'carouselImage-seeDealerInfo-'+record.id" v-if="record.allDealerFlag&&record.allDealerFlag=='0'">共有<span class="link-bule">{{ record.dealerQty }}</span>个客户</span>
             <span v-else>全部经销商</span>
           </template>
-          <!-- 促销描述 -->
-          <template slot="salesDesc" slot-scope="text, record">
-            <a-tooltip placement="rightBottom" v-if="record.description&&record.description.length>14">
-              <template slot="title">
-                <span>{{ record.description }}</span>
-              </template>
-              <div @click="promotionDesc(record)" :id="'carouselImage-description-'+record.id" class="link-bule">{{ record.description }}</div>
-            </a-tooltip>
-            <div v-else-if="!record.description">--</div>
-            <div v-else @click="promotionDesc(record)" :id="'carouselImage-description-'+record.id" class="link-bule">{{ record.description }}</div>
-          </template>
-          <!-- 促销展示 -->
+          <!-- 封面展示 -->
           <template slot="salesShow" slot-scope="text, record">
-            <div @click="handleCheckImg(record)" :id="'carouselImage-seeImgInfo-'+record.id">
+            <div v-if="record.imageUrl" @click="handleCheckImg(record)" :id="'carouselImage-seeImgInfo-'+record.id">
               <img :src="record.imageUrl" alt="图片走丢啦" width="60"/>
             </div>
-            <!-- <span v-else>--</span> -->
+            <span v-else>--</span>
           </template>
           <!-- 操作 -->
           <!-- state状态 END已结束    CLOSE已关闭    PUBLISH  已发布    UNPUBLISH  未发布 -->
           <template slot="action" slot-scope="text, record">
-            <div>
-              <a-button
-                size="small"
-                type="link"
-                class="button-warning"
-                :id="'carouselImage-edit-btn-'+record.id"
-                @click="handleAddOrEdit(record)"
-                v-if="(record.state=='UNPUBLISH' || record.state=='CLOSE') && $hasPermissions('B_promotionManagementEdit')">编辑</a-button>
-              <a-button
-                size="small"
-                type="link"
-                class="button-success"
-                @click="handleSee(record)"
-                v-if="(record.state=='PUBLISH' || record.state=='END')&&$hasPermissions('B_promotionManagementDetail')"
-                :id="'carouselImage-seeDetail-btn-'+record.id">查看</a-button>
-              <a-button
-                size="small"
-                type="link"
-                class="button-info"
-                @click="closeReleaseDel(record,'PUBLISH')"
-                v-if="record.state=='UNPUBLISH'&&$hasPermissions('B_promotionManagementContent')"
-                :id="'carouselImage-release-btn-'+record.id">发布</a-button>
-              <a-button
-                size="small"
-                type="link"
-                class="button-info"
-                @click="closeReleaseDel(record,'CLOSE')"
-                v-if="(record.state=='PUBLISH')&&$hasPermissions('B_promotionManagementContent')"
-                :id="'carouselImage-release-btn-'+record.id">关闭</a-button>
-              <a-button
-                size="small"
-                type="link"
-                class="button-error"
-                v-if="record.state=='UNPUBLISH'&&$hasPermissions('B_promotionManagementDel')"
-                @click="closeReleaseDel(record,'1')"
-                :id="'carouselImage-del-btn-'+record.id">删除</a-button>
-            </div>
+            <a-button
+              size="small"
+              type="link"
+              class="button-warning"
+              :id="'carouselImage-edit-btn-'+record.id"
+              @click="handleAddOrEdit(record)"
+              v-if="(record.state=='UNPUBLISH' || record.state=='CLOSE') && $hasPermissions('B_promotionManagementEdit')">编辑</a-button>
+            <a-button
+              size="small"
+              type="link"
+              class="button-success"
+              @click="handleSee(record)"
+              v-if="(record.state=='PUBLISH' || record.state=='END')&&$hasPermissions('B_promotionManagementDetail')"
+              :id="'carouselImage-seeDetail-btn-'+record.id">查看</a-button>
+            <a-button
+              size="small"
+              type="link"
+              class="button-info"
+              @click="closeReleaseDel(record,'PUBLISH')"
+              v-if="(record.state=='UNPUBLISH'||record.state=='CLOSE')&&$hasPermissions('B_promotionManagementContent')"
+              :id="'carouselImage-release-btn-'+record.id">发布</a-button>
+            <a-button
+              size="small"
+              type="link"
+              class="button-info"
+              @click="closeReleaseDel(record,'CLOSE')"
+              v-if="(record.state=='PUBLISH')&&$hasPermissions('B_promotionManagementContent')"
+              :id="'carouselImage-release-btn-'+record.id">关闭</a-button>
+            <a-button
+              size="small"
+              type="link"
+              class="button-error"
+              v-if="(record.state=='UNPUBLISH'||record.state=='CLOSE')&&$hasPermissions('B_promotionManagementDel')"
+              @click="closeReleaseDel(record,'1')"
+              :id="'carouselImage-del-btn-'+record.id">删除</a-button>
           </template>
         </s-table>
       </a-spin>
@@ -160,7 +143,6 @@ export default {
       openCustomerModal: false, // 打开参与经销商弹窗
       openCheckedImgModal: false, // 查看封面图弹窗
       openDetailModal: false, // 打开详情弹窗
-      pageType: '', // 发布类型  add  促销发布  edit 发布修改
       itemId: '', // 当前活动sn
       createDate: [], //  创建时间
       // 查询参数
@@ -196,7 +178,6 @@ export default {
         { title: '轮播时间', scopedSlots: { customRender: 'promotionTime' }, width: '13%', align: 'center' },
         { title: '参与经销商', scopedSlots: { customRender: 'joinCustomers' }, width: '8%', align: 'center' },
         { title: '封面展示', scopedSlots: { customRender: 'salesShow' }, width: '6%', align: 'center' },
-        // { slots: { title: 'arrowFalgTitle' }, scopedSlots: { customRender: 'arrowFalg' }, width: '6%', align: 'center' },
         { title: '轮播图状态', dataIndex: 'stateDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }
       ]
@@ -233,7 +214,8 @@ export default {
     },
     // 重置
     resetSearchForm () {
-      this.$refs.rangeCreateDate.resetDate(this.createDate)
+      this.createDate = []
+      this.$refs.rangeCreateDate.resetDate([])
       this.queryParam.beginDate = undefined
       this.queryParam.endDate = undefined
       this.queryParam.bannerName = ''

+ 6 - 2
src/views/easyPassManagement/promotionalActivities/edit.vue

@@ -337,7 +337,7 @@ import chooseDealer from '@/views/easyPassManagement/homepageCarouselImg/chooseD
 import productTable from './productTable'
 import chooseProduct from './chooseProductsModal.vue'
 // 接口
-import { saveChooseProduct, saveShopPromo, shopPromoDetail } from '@/api/shopPromo'
+import { saveChooseProduct, saveShopPromo, shopPromoDetail, clearByPromoSn } from '@/api/shopPromo'
 export default {
   name: 'ProductBrandEditModal',
   mixins: [commonMixin],
@@ -452,9 +452,13 @@ export default {
       }
       this.showProModal = true
     },
-    handleDiscountType (val) {
+    async handleDiscountType (val) {
       this.form.discountType = val
       this.resultValue = undefined
+      const res = await clearByPromoSn({ promoSn: this.$route.params.sn })
+      if (res.status == '200') {
+        this.$refs.chooseProductList.pageInit()
+      }
     },
     // 关闭产品弹窗
     closeProductModal () {