Bläddra i källkod

修改活动作品搜索逻辑

silent 4 år sedan
förälder
incheckning
fcd34040f3
1 ändrade filer med 43 tillägg och 10 borttagningar
  1. 43 10
      src/views/sing_active/activeproductrecord.vue

+ 43 - 10
src/views/sing_active/activeproductrecord.vue

@@ -18,6 +18,22 @@
                @size-change="sizeChange"
                @refresh-change="refreshChange"
                @on-load="onLoad">
+      <template slot-scope="{type,size}" slot="activeIdSearch">
+        <el-select @change="searchStateChange" v-model="query.activeId"
+                   :loading="loading"
+                   filterable
+                   remote
+                   reserve-keyword
+                   placeholder="请输入关键词"
+                   :remote-method="searchActiveList">
+          <el-option
+            v-for="item in searchActiveOption"
+            :key="item.id"
+            :label="item.title"
+            :value="item.id">
+          </el-option>
+        </el-select>
+      </template>
       <template slot-scope="{type,size}" slot="createTimeSearch">
         <el-radio-group v-model="query.createTime" :size="size" style="float: left">
           <el-radio-button @click="searchStateChange" :label="-1">全部</el-radio-button>
@@ -71,7 +87,8 @@
 </template>
 
 <script>
-import {add, getDetail, getList, remove, update, generateList} from "@/api/sing_active/activeproductrecord";
+import {add, generateList, getDetail, getList, remove, update} from "@/api/sing_active/activeproductrecord";
+import {getList as getActiveList,getDetail as getActiveRecordDetail} from "@/api/sing_active/activerecord";
 import {mapGetters} from "vuex";
 import moment from "moment";
 import IconFontComp from "@/views/base/iconfont";
@@ -82,6 +99,7 @@ export default {
   data() {
     return {
       form: {},
+      searchActiveOption:[],
       query: {
         createTime: -1,
         createTimeRange: [],
@@ -131,9 +149,9 @@ export default {
             label: "活动",
             prop: "activeId",
             search: true,
-            change: (val)=>{
-              this.query.activeId = val.value;
-              this.searchStateChange();
+            searchslot: true,
+            control:(val,form)=>{
+              return this.controlActiveField(val,form);
             },
             searchSpan: 12,
             searchOrder: 0,
@@ -157,6 +175,7 @@ export default {
             prop: "type",
             type: "select",
             hide: true,
+            disabled: true,
             control:(value)=>{
               const result = {
                 videoUrl:{
@@ -419,7 +438,25 @@ export default {
       return ids.join(",");
     }
   },
+  created() {
+    this.searchActiveList();
+  },
   methods: {
+    searchActiveList(value){
+      getActiveList(1,999,{
+        title: value,
+      }).then(res=>{
+        this.searchActiveOption = res.data.data.records;
+      });
+    },
+    controlActiveField(value,form){
+      if(value){
+        getActiveRecordDetail(value).then(res=>{
+          form.type = res.data.data.type;
+        });
+      }
+      return {};
+    },
     rowSave(row, done, loading) {
       row.content = encodeURIComponent(row.content);
       if (row.videoUrl && row.videoUrl.constructor == Array){
@@ -495,11 +532,6 @@ export default {
         getDetail(this.form.id).then(res => {
           res.data.data.content = decodeURIComponent(res.data.data.content);
           this.form = res.data.data;
-          if(this.form.videoUrl){
-            this.form.type = "VIDEO_TEXT";
-          }else{
-            this.form.type = "IMAGE_TEXT";
-          }
         });
       }
       done();
@@ -531,8 +563,9 @@ export default {
     },
     onLoad(page, params = {}) {
       let values = {};
+      Object.assign(params,this.query)
       for (const item in params) {
-        if (params[item] !== undefined && params[item] !== -1) {
+        if (params[item] && params[item] !== -1) {
           values[item] = params[item];
         }
       }