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

feat:市场分析报告筛选条件逻辑调整、重置逻辑调整

tsz преди 2 години
родител
ревизия
989045842c

+ 9 - 3
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/report_detail_month.js

@@ -526,7 +526,7 @@ var vNode = {
             return Math.max.apply(null,arr);
         },
         // 数据部分
-        getAllChartsData: function(){
+        getAllChartsData: function(str){
             var that = this
             $.ajax({
                 type:'POST',
@@ -542,7 +542,7 @@ var vNode = {
                         // 关键词组
                         that.detailInfo = res.data
                         if(!that.reStoreState()) {
-                          that.setFilterData(res.data)
+                          that.setFilterData(res.data, str)
                         }
                         // 项目数量 1
                         if (res.data.project_count && res.data.project_count.length > 0) {
@@ -736,11 +736,17 @@ var vNode = {
                 }
             })
         },
-        setFilterData (res) {
+        resetFilter () {
+          this.getAllChartsData('reset')
+        },
+        setFilterData (res, str) {
           var that = this
           if(res.item && res.item.length > 0 && res.item.toString() != '') {
               that.filters.keywords = res.item.join('、')
               that.filters.keywordsList = res.item
+              if(str) {
+                this.filters.keys = res.item
+              }
           } else {
               that.filters.keywords = '--'
           }

+ 18 - 3
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/report_detail_week.js

@@ -311,7 +311,7 @@ var vNode = {
 			this.changeForKeyTip()
         },
         // 数据部分
-        getAllChartsData: function(){
+        getAllChartsData: function(str){
             var that = this
             $.ajax({
                 type:'POST',
@@ -326,7 +326,7 @@ var vNode = {
                     if(res.error_code == 0 && res.data) {
                         that.detailInfo = res.data
                         if(!that.reStoreState()) {
-                          that.setFilterData(res.data)
+                          that.setFilterData(res.data, str)
                         }
                         // 本周新增招标项目数量
                         if(res.data.zhao_matchitem && res.data.zhao_matchitem.length > 0){
@@ -428,26 +428,41 @@ var vNode = {
                 }
             })
         },
-        setFilterData (data) {
+        resetFilter () {
+          this.getAllChartsData('reset')
+        },
+        setFilterData (data, str) {
           var that = this
           if(data.item && data.item.length > 0 && data.item.toString() != '') {
               that.filters.keywords = data.item.join('、')
               that.filters.keywordsList = data.item
+              if(str) {
+                this.filters.keys = data.item
+              }
           } else {
               that.filters.keywords = '--'
+              that.filters.selectKeysArr = []
           }
           // 地区
           if (data.area) {
             that.filters.area = data.area
+          } else {
+            that.filters.area = {}
           }
           // 采购单位类型
           if(data.buyerClass) {
             that.filters.buyerclass = data.buyerClass
+          } else {
+            that.filters.buyerclass = []
           }
           // 行业
           if(data.industry) {
             that.filters.industry = data.industry
+          } else {
+            that.filters.industry = []
+            that.filters.industryDetail = {}
           }
+          this.$forceUpdate()
         },
         /* 以下为配置项部分 */
         // 本周新增招标项目数量

+ 1 - 1
src/jfw/modules/app/src/web/templates/big-member/page_report_analysis_pro_list.html

@@ -18,7 +18,7 @@
 <div class="j-container">
     {{include "/big-member/header.html"}}
     <div class="j-main" id="analysisList" v-cloak>
-      <filter-component :switch="confirmSwitch" :show-tip="false" :show-select="false" :filtersdata="filters"  @confirm="confirm"></filter-component>
+      <filter-component @resetfilter="resetFilter" :switch="confirmSwitch" :show-tip="false" :show-select="false" :filtersdata="filters"  @confirm="confirm"></filter-component>
       <div class="project-detail-list" v-if="Object.keys(projectInfo).length != 0 && projectInfo.list.length > 0">
         <project-header :total="projectInfo.total"  @setsort="setsortType"></project-header>
         <van-list

+ 2 - 2
src/jfw/modules/app/src/web/templates/big-member/page_report_detail_month.html

@@ -771,7 +771,7 @@
                 <div class="progress-bar-container">
                     <div class="progress-bar-item" v-for="(item,index) in showEntWinTop" :key="index">
                         <div class="item-label">
-                            <span @click="setBuyerLink(item)" class="item-name addlink">${item.winner}</span>
+                            <span @click="setWinnerLink(item.id)" class="item-name addlink">${item.winner}</span>
                             <span class="item-count">${item.project_count}个</span>
                         </div>
                         <div class="item-progress">
@@ -891,7 +891,7 @@
             </div>
           </van-tab>
           <van-tab name="1" title="本月项目明细">
-            <filter-component :switch="confirmSwitch" :show-tip="false" :show-select="false" :filtersdata="filters" :keyphraseslist="filters.keywordsList" keyformat="phrases" @confirm="confirm"></filter-component>
+            <filter-component :switch="confirmSwitch" @resetfilter="resetFilter" :show-tip="false" :show-select="false" :filtersdata="filters" :keyphraseslist="filters.keywordsList" keyformat="phrases" @confirm="confirm"></filter-component>
             <div class="project-detail-list" v-if="Object.keys(projectInfo).length != 0 && projectInfo.list.length > 0">
               <project-header :total="projectInfo.total" @setsort="setsortType"></project-header>
               <van-list

+ 1 - 1
src/jfw/modules/app/src/web/templates/big-member/page_report_detail_week.html

@@ -548,7 +548,7 @@
             </div>
           </van-tab>
           <van-tab name="1" title="本周项目明细">
-            <filter-component :switch="confirmSwitch" :show-tip="false" :show-select="false" :filtersdata="filters" :keyphraseslist="filters.keywordsList" keyformat="phrases" @confirm="confirm"></filter-component>
+            <filter-component :switch="confirmSwitch" :show-tip="false" @resetfilter="resetFilter" :show-select="false" :filtersdata="filters" :keyphraseslist="filters.keywordsList" keyformat="phrases" @confirm="confirm"></filter-component>
             <div class="project-detail-list" v-if="Object.keys(projectInfo).length != 0 && projectInfo.list.length > 0">
               <project-header :total="projectInfo.total" @setsort="setsortType"></project-header>
               <van-list

+ 18 - 16
src/web/staticres/common-module/collection/js/industry-mobile.js

@@ -90,7 +90,7 @@ var industryComponent = {
       return 1
     }
   },
-  created () {
+  mounted () {
     this.getIndustryData()
     this.getbBtnClick()
   },
@@ -244,24 +244,26 @@ var industryComponent = {
         })
         this.canClick = bool
       } else {
-        indArr.forEach(function(sum) {
-          // newindArr.push(sum.split('_')[1])
-          newindArr.push({
-            key:sum.split('_')[0],
-            value:sum.split('_')[1]
+        if(JSON.stringify(indArr) !== "{}") {
+          indArr.forEach(function(sum) {
+            // newindArr.push(sum.split('_')[1])
+            newindArr.push({
+              key:sum.split('_')[0],
+              value:sum.split('_')[1]
+            })
           })
-        })
-        // console.log(newindArr)
-        this.tablist.forEach(function(item){
-          item[Object.keys(item)[0]].forEach(function(data) {
-            newindArr.forEach(function(sum) {
-              if(data.name == sum.value && Object.keys(item)[0] == sum.key) {
-                data.type = true
-                bool = false
-              }
+          // console.log(newindArr)
+          this.tablist.forEach(function(item){
+            item[Object.keys(item)[0]].forEach(function(data) {
+              newindArr.forEach(function(sum) {
+                if(data.name == sum.value && Object.keys(item)[0] == sum.key) {
+                  data.type = true
+                  bool = false
+                }
+              })
             })
           })
-        })
+        }
         this.canClick = bool
       }
       // this.checkSelectedAll()

+ 36 - 30
src/web/staticres/common-module/filter/js/filter_limit.js

@@ -162,7 +162,7 @@ var filterComponent = {
     },
     cancelText: {
       type: String,
-      default: '取消'
+      default: '重置'
     },
     confirmText: {
       type: String,
@@ -228,6 +228,13 @@ var filterComponent = {
     }
   },
   watch: {
+    filtersdata: {
+      handler (newval) {
+        Object.assign(this.filters, newval)
+      },
+      immediate: true,
+      deep: true
+    },
     switch: {
       handler (newval) {
         if(newval) {
@@ -280,7 +287,7 @@ var filterComponent = {
         buyerclass: false,
         rangeTime: false
       },
-      activeNames: ['1'],
+      activeNames: ['0'],
       colorEdit: {
         keys: false,
         area: false,
@@ -290,8 +297,6 @@ var filterComponent = {
     }
   },
   mounted () {
-    console.log(this.switch)
-    Object.assign(this.filters, this.filtersdata)
     if (Object.keys(this.arealist).length > 0) {
       this.$refs.areaCitySelector.getData(this.arealist)
     }
@@ -491,32 +496,33 @@ var filterComponent = {
     },
     // 重置
     resetFilter: function (type) {
-      var filters = this.filters
-      if (type === 'keys') {
-        filters.keys = []
-        filters.selectKeysArr = []
-        try {
-          this.$refs.keywordSelector.resetAllNoSelect()
-        } catch (error) {}
-      } else if (type === 'area') {
-        filters.area = {}
-      } else if (type === 'industry') {
-        filters.industry = []
-        filters.industryDetail = {}
-      } else if (type === 'buyerclass') {
-        filters.buyerclass = []
-      } else if (type === 'date') {
-        this.filters.rangeTime.start = ''
-        this.filters.rangeTime.edd = ''
-        this.filters.rangeTime.exact = 'sinceYearBeforeLast'
-        // this.initDateTimeSelector(this.filters.rangeTime.exact)
-      } else {
-        this.resetFilter('keys')
-        this.resetFilter('area')
-        this.resetFilter('industry')
-        this.resetFilter('buyerclass')
-        this.resetFilter('date')
-      }
+      // var filters = this.filters
+      // if (type === 'keys') {
+      //   filters.keys = []
+      //   filters.selectKeysArr = []
+      //   try {
+      //     this.$refs.keywordSelector.resetAllNoSelect()
+      //   } catch (error) {}
+      // } else if (type === 'area') {
+      //   filters.area = {}
+      // } else if (type === 'industry') {
+      //   filters.industry = []
+      //   filters.industryDetail = {}
+      // } else if (type === 'buyerclass') {
+      //   filters.buyerclass = []
+      // } else if (type === 'date') {
+      //   // this.filters.rangeTime.start = ''
+      //   // this.filters.rangeTime.edd = ''
+      //   // this.filters.rangeTime.exact = 'sinceYearBeforeLast'
+      //   // this.initDateTimeSelector(this.filters.rangeTime.exact)
+      // } else {
+      //   this.resetFilter('keys')
+      //   this.resetFilter('area')
+      //   this.resetFilter('industry')
+      //   this.resetFilter('buyerclass')
+      //   this.resetFilter('date')
+      // }
+      this.$emit('resetfilter')
     },
     toSubManageButtonClick: function () {
       if (this.isSubCount) {

+ 12 - 3
src/web/staticres/common-module/filter/js/project_cell.js

@@ -62,8 +62,15 @@ var projectCellComponent = {
     },
     setWinner () {
       if (this.item.winner) {
-        this.item.winner = this.item.winner.filter(str => str !== '')
-        this.item.winnerId = this.item.winnerId.filter(str => str !== '')
+        this.item.winner.forEach((v, i) => {
+          if(v == '') {
+            this.item.winner.splice(i, 1)
+          }
+        })
+        // this.item.winner = this.item.winner.filter(str => str.trim() !== '')
+        if(this.item.winnerId) {
+          this.item.winnerId = this.item.winnerId.filter(str => str.trim() !== '')
+        }
         if (this.item.winner.length > 0) {
           this.item.winner.map((v, i) => {
             this.item.winner[i] = `<span class="winnerText" winnerId="${this.item.winnerId[i]}">${v}</span>`
@@ -95,7 +102,9 @@ var projectCellComponent = {
     // 点击中标单位到企业画像
     setWinnerLink (e, item) {
       const winnerId = $(e.target).attr('winnerid')
-      this.$emit('set-winner-link', winnerId)
+      if(winnerId) {
+        this.$emit('set-winner-link', winnerId)
+      }
     }
   }
 }

+ 12 - 5
src/web/staticres/common-module/report-analysis/js/report_analysis_pro_list.js

@@ -18,14 +18,14 @@ var vm = new Vue({
       selectKeysArr: [], // 关键词简单数组,用于恢复选择状态
       keys: [], // 关键词详细数组,用于提交数据
       area: {},
-      industry: [],
+      industry: {},
       industryDetail: {},
       buyerclass: [],
       rangeTime: {
         start: '',
         end: '',
-        exact: 'sinceYearBeforeLast',
       },
+      rangeTimeExtra: 'sinceYearBeforeLast',
     },
     listParams: {
       sort: 0, // 项目明细排序方式
@@ -91,6 +91,9 @@ var vm = new Vue({
         this.vanlistParams.scrollTop = parseInt(wrapper.scrollTop)
       }
     },
+    resetFilter () {
+      this.getFilterData()
+    },
     // 获取筛选条件并回显
     getFilterData () {
       $.ajax({
@@ -103,7 +106,7 @@ var vm = new Vue({
         success: function(res) {
           if (res.error_code === 0) {
             this.sortReportFilters(res.data)
-            // this.confirmSwitch = true
+            this.confirmSwitch = true
           } else {
             this.$toast(res.error_msg)
           }
@@ -124,11 +127,14 @@ var vm = new Vue({
         })
         this.filters.selectKeysArr = keyArr
       }
+      if(data.s_rangeTimeExtra) {
+        this.filters.rangeTimeExtra = data.s_rangeTimeExtra
+      }
       if (data.rangeTime) {
         var arr = data.rangeTime.split('-')
         this.filters.rangeTime.start = arr[0] * 1000
         this.filters.rangeTime.end = arr[1] * 1000
-        if (this.filters.rangeTime.exact === 'exact') {
+        if (data.s_rangeTimeExtra === 'exact') {
           var date = new Date(this.filters.rangeTime.end)
           var timeString = date.pattern('yyyy/MM/dd')
           this.filters.rangeTime.end = new Date(timeString).getTime()
@@ -210,7 +216,7 @@ var vm = new Vue({
         ...this.listParams,
         keysItems: JSON.stringify(items),
         area: JSON.stringify(area),
-        industry: JSON.stringify(industry),
+        industry: JSON.stringify(data.industry),
         buyerclass: strBuyerClass,
         buyer: buyer,
         winner: winner,
@@ -231,6 +237,7 @@ var vm = new Vue({
           if (res && res.error_code === 0 && res.data) {
             if (!res.data.list) {
               this.projectInfo.list = []
+              this.$forceUpdate()
               if(loading) {
                 loading.clear()
               }

+ 1 - 1
src/web/templates/big-member/wx/page_report_analysis_pro_list.html

@@ -29,7 +29,7 @@
 <body>
   <div class="j-container">
     <div class="j-main" id="analysisList" v-cloak>
-      <filter-component :show-tip="false" :show-select="false" :filtersdata="filters"  @confirm="confirm"></filter-component>
+      <filter-component @resetfilter="resetFilter" :show-tip="false" :switch="confirmSwitch" :show-select="false" :filtersdata="filters"  @confirm="confirm"></filter-component>
       <div class="project-detail-list" v-if="Object.keys(projectInfo).length != 0 && projectInfo.list.length > 0">
         <project-header :total="projectInfo.total"  @setsort="setsortType"></project-header>
         <van-list