Przeglądaj źródła

feat: EK-736: 前端 -【AE】会员端Promo和banner图增加分国家设置

tyler 1 miesiąc temu
rodzic
commit
b4c0054bcb

+ 1 - 4
src/api/ad.js

@@ -11,10 +11,7 @@ export function fetchAdList(query) {
   return request({
     url: '/v1/ad/list/' + query.adId.ID,
     method: 'get',
-    params: {
-      page: query.page,
-      pageSize: query.pageSize
-    }
+    params: query
   })
 }
 

+ 15 - 3
src/views/ad/edit.vue

@@ -31,12 +31,13 @@
           <span class="note" /> <!-- 注:外链请明确输入 http://或https://,文章则不需要输入 -->
         </el-form-item>
         <el-form-item :label="$t('ad.article')">
-          <el-select v-model="article" placeholder="Select A rticle"> <!-- 请选择广告类型 -->
+          <el-select v-model="article" placeholder="Select Article"> <!-- 请选择广告类型 -->
             <el-option
               v-for="item in allArticle"
               :key="item.ID"
               :label="item.TITLE"
               :value="item.ID"
+              v-show="item.COUNTRY_ID === form.countryId"
             />
           </el-select>
         </el-form-item>
@@ -148,7 +149,12 @@ export default {
           })
           this.$router.go(-1)
        }).catch((error) => {
-           ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
+          this.$message({
+            message: error.message,
+            type: 'error',
+            showClose: true
+          })
+          this.submitButtonStat = false
        })
       } else {
         //console.log(this.form)
@@ -160,7 +166,12 @@ export default {
           })
           this.$router.go(-1)
         }).catch((error) => {
-            ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
+          this.$message({
+            message: error.message,
+            type: 'error',
+            showClose: true
+          })
+          this.submitButtonStat = false
         })
       }
     },
@@ -173,6 +184,7 @@ export default {
       console.log('countryChange--->'+row)
       this.$nextTick(() => {
         this.$refs.countryId.blur()
+        this.article = ''
       });
 
     },

+ 26 - 14
src/views/ad/list.vue

@@ -46,10 +46,10 @@
         <el-table-column :label="$t('ad.content')" prop="id" align="center" :class-name="getSortClass('id')">
           <template slot-scope="{row}">
             <div v-if="row.TYPE === '1'">
-              <el-link type="primary" target="_blank" :href="getHref(row.CONTENT)">{{ row.CONTENT }}</el-link>
+              <el-link type="primary" target="_blank" :href="getHref(row.CONTENT.value)">{{ row.CONTENT.value }}</el-link>
             </div><!-- 链接 -->
             <div v-else-if="row.TYPE === '2'">
-              <router-link :to="`/article/detail/${row.CONTENT}`" target="_blank" style="cursor: pointer;">{{ getContent(row.CONTENT) }}</router-link>
+              <router-link :to="`/article/detail/${row.CONTENT.value}`" target="_blank" style="cursor: pointer;">{{ getContent(row.CONTENT.value) }}</router-link>
             </div><!-- 文章 -->
           </template>
         </el-table-column>
@@ -120,7 +120,7 @@
 <!--          </el-dropdown-menu>-->
 <!--        </el-dropdown>-->
         <el-button v-if="permission.hasPermission(`ad/ad-delete`)" type="primary" size="small" icon="el-icon-plus" @click="handleAdd">{{ $t('ad.add') }}</el-button>
-        <pagination v-show="total>0" :total="total" @size-change="handleSizeChange" @current-change="handleCurrentChange" :page.sync="listQuery.page" :limit.sync="listQuery.pageSize" @pagination="getList" />
+        <pagination v-show="total>0" :total="total" @size-change="handleSizeChange" @current-change="handleCurrentChange" :page.sync="listQuery.page" :limit.sync="listQuery.pageSize" @pagination="getData" />
       </div>
       </div>
   </div>
@@ -135,6 +135,7 @@ import permission from '@/utils/permission'
 import Pagination from '@/components/Pagination' // secondary package based on el-pagination
 import ElementUI from 'element-ui'
 import FilterUser from "@/components/FilterUser.vue";
+import filterHelper from "@/utils/filterHelper";
 
 const calendarTypeOptions = [
   { key: 'CN', display_name: 'China' },
@@ -217,28 +218,35 @@ export default {
       allLocation: {
         LOCATION_NAME: null
       },
-      filterTypes: null
+      filterTypes: null,
+      filterModel: {},
     }
   },
   created() {
-    this.getList()
+    this.getData()
   },
   methods: {
     handleSelectionChange(val) {
       this.multipleSelection = val
     },
     handleSizeChange (pageSize) {
-      this.getList(this.currentPage, pageSize)
+      this.getData(this.currentPage, pageSize)
     },
     handleCurrentChange (page) {
-      this.getList(page, this.pageSize)
+      this.getData(page, this.pageSize)
     },
-    getList(page, pageSize) {
+    getData(page, pageSize) {
       this.listLoading = true
       this.listQuery.adId = this.$route.params
       this.listQuery.page = (page === null || page == undefined) ? 1 : page
       this.listQuery.pageSize = (pageSize === null || pageSize == undefined) ? this.pageSize : pageSize
-      fetchAdList(this.listQuery).then(response => {
+      const paramsData = Object.assign({
+        adId: this.$route.params,
+        page: (page === null || page == undefined) ? 1 : page,
+        pageSize: (pageSize === null || pageSize == undefined) ? this.pageSize : pageSize
+      }, this.filterModel)
+      // const paramsData = Object.assign(this.listQuery, this.filterModel)
+      fetchAdList(paramsData).then(response => {
         this.list = response.data.list
         this.total = response.data.totalCount
         this.allArticle = response.data.allArticle
@@ -255,7 +263,7 @@ export default {
     },
     handleFilter() {
       this.listQuery.page = 1
-      this.getList()
+      this.getData()
     },
     resetTemp() {
       this.temp = {
@@ -341,7 +349,7 @@ export default {
             message: response.data,
             type: 'success'
           })
-          obj.getList(obj.currentPage, obj.pageSize)
+          obj.getData(obj.currentPage, obj.pageSize)
         }).catch((error) => {
             ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
         })
@@ -367,7 +375,7 @@ export default {
             message: response.data,
             type: 'success'
           })
-          obj.getList(obj.currentPage, obj.pageSize)
+          obj.getData(obj.currentPage, obj.pageSize)
         }).catch((error) => {
             ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
         })
@@ -396,12 +404,16 @@ export default {
             message: response.data,
             type: 'success'
           })
-          obj.getList(obj.currentPage, obj.pageSize)
+          obj.getData(obj.currentPage, obj.pageSize)
        }).catch((error) => {
            ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
        })
       })
-    }
+    },
+    handleFilterUser(filterData) {
+      console.log(filterData)
+      filterHelper.handleFilterUser(this, filterData)
+    },
   }
 }
 </script>

+ 12 - 2
src/views/article/edit.vue

@@ -104,7 +104,12 @@ export default {
           })
           this.$router.go(-1)
           }).catch((error) => {
-            ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
+          this.$message({
+            message: error.message,
+            type: 'error',
+            showClose: true
+          })
+          this.submitButtonStat = false
         })
       } else {
         fetchArticleAdd(this.form).then(response => {
@@ -115,7 +120,12 @@ export default {
           })
           this.$router.go(-1)
         }).catch((error) => {
-          ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
+          this.$message({
+            message: error.message,
+            type: 'error',
+            showClose: true
+          })
+          this.submitButtonStat = false
         })
       }
     },

+ 21 - 5
src/views/article/index.vue

@@ -1,6 +1,10 @@
 <template>
   <div v-loading="loading">
     <div class="white-box">
+      <!-- 功能搜索 -->
+      <div class="filter-box">
+        <filter-user :filter-types="filterTypes" @select-value="handleFilterUser"></filter-user>
+      </div>
       <el-table :data="tableData" stripe style="width: 100%;" @selection-change="handleSelectionChange">
 <!--        <el-table-column type="selection" width="55" />-->
 <!--        <el-table-column :label="$t('article.id')" prop="ID">-->
@@ -90,6 +94,7 @@ import { fetchArticleIndex, fetchChangeArticleSort, fetchArticleHide, fetchArtic
 import tool from '@/utils/tool'
 import ElementUI from 'element-ui'
 import FilterUser from "@/components/FilterUser.vue";
+import filterHelper from "@/utils/filterHelper";
 
 export default {
   name: 'ArticleIndex',
@@ -104,7 +109,9 @@ export default {
       totalPages: 1,
       totalCount: 1,
       pageSize: 20,
-      tool: tool
+      tool: tool,
+      filterTypes: null,
+      filterModel: {},
     }
   },
   mounted() {
@@ -152,11 +159,16 @@ export default {
     },
     getData(page, pageSize) {
       this.loading = true
-      if (page === undefined) page = 1
-      if (pageSize === undefined) pageSize = 20
-      fetchArticleIndex({ page: page, pageSize: pageSize }).then(response => {
+      const paramsData = Object.assign({
+        page: (page === null || page == undefined) ? 1 : page,
+        pageSize: (pageSize === null || pageSize == undefined) ? this.pageSize : pageSize
+      }, this.filterModel)
+      fetchArticleIndex(paramsData).then(response => {
         this.allData = response.data
         this.tableData = response.data.list
+        this.filterTypes = response.data.filterTypes
+        this.totalCount = response.data.totalCount
+        this.pageSize = response.data.pageSize
         // Just to simulate the time of the request
       })
       setTimeout(() => {
@@ -240,7 +252,11 @@ export default {
            ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
        })
       })
-    }
+    },
+    handleFilterUser(filterData) {
+      console.log(filterData)
+      filterHelper.handleFilterUser(this, filterData)
+    },
   }
 }
 

+ 1 - 0
src/views/user/member-list.vue

@@ -356,6 +356,7 @@ export default {
 			this.getData(this.currentPage, pageSize)
 		},
 		handleFilterUser(filterData) {
+      console.log(filterData)
 			filterHelper.handleFilterUser(this, filterData)
 		},
 		handleFilter() {