فهرست منبع

feat:月报周报修改

tsz 2 سال پیش
والد
کامیت
619775c59d

+ 47 - 29
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/report_detail_month.js

@@ -151,7 +151,8 @@ var vNode = {
           keywordsList: [],
         },
         filterData: {},
-        stickyOffset: 0
+        stickyOffset: 0,
+        confirmSwitch: false
     },
     computed: {
         showCurMonthCount: function () {
@@ -183,6 +184,13 @@ var vNode = {
           return this.power.indexOf(10)  > -1 // power == 10
         },
     },
+    watch: {
+      tabActive (newVal) {
+        if (newVal === '1') {
+          this.confirmSwitch = true
+        }
+      }
+    },
     created () {
         var startTime = new Date(parseInt(utils.getParam('start')*1000)).pattern('yyyy/MM/dd');
         var endTime = new Date(parseInt(utils.getParam('end')*1000)).pattern('yyyy/MM/dd')
@@ -190,14 +198,12 @@ var vNode = {
         this.getPowerInfo()
     },
     mounted() {
-      const recover = this.reStoreState()
-      if(!recover) {
-        this.getAllChartsData()
-        if (this.$refs['chartRegCount']) {
-          this.$refs['chartRegCount'].echarts.resize()
-        }
+      this.reStoreState()
+      this.getAllChartsData()
+      if (this.$refs['chartRegCount']) {
+        this.$refs['chartRegCount'].echarts.resize()
       }
-      // utils.iosBackRefresh()
+      utils.iosBackRefresh()
       const observer = new IntersectionObserver(this.handleIntersection, {
         root: null, // 默认为浏览器视窗
         threshold: 0, // 交叉比例,0为完全进入视窗
@@ -242,15 +248,21 @@ var vNode = {
       // 查询项目明细
       confirm (data) {
         this.filterData = data
-        const { area, buyerclass, industry, items, buyer, winner } = data
+        const { area, buyerclass, industry, industryDetail, items, buyer, winner, selectKeysArr } = data
         this.filters.area = area
         this.filters.buyerclass = buyerclass
-        this.filters.industryDetail = industry
+        this.filters.industryDetail = industryDetail
         this.filters.industry = industry
         this.filters.keys = items
-        this.filters.selectKeysArr = items
+        this.filters.selectKeysArr = selectKeysArr
         this.filters.buyer = buyer
         this.filters.winner = winner
+        data.items = data.items.map((v) => {
+          return v.s_item
+        })
+        data.industry = industryDetail
+        delete data.industryDetail
+        delete data.selectKeysArr
         const params = {
           ...this.listParams,
           ...data
@@ -336,6 +348,7 @@ var vNode = {
           Object.assign(this.vanlistParams, $data.vanlistParams)
           Object.assign(this.filterData, $data.filterData)
           Object.assign(this.detailInfo, $data.detailInfo)
+          this.setFilterData(this.detailInfo)
           Object.assign(this.projectInfo, $data.projectInfo)
           Object.assign(this.filters, $data.filters)
           this.tabActive = $data.tabActive,
@@ -528,24 +541,8 @@ var vNode = {
                     if(res.error_code == 0 && res.data) {
                         // 关键词组
                         that.detailInfo = res.data
-                        if(res.data.item && res.data.item.length > 0 && res.data.item.toString() != '') {
-                            that.filters.keywords = res.data.item.join('、')
-                            that.filters.keywordsList = res.data.item
-                            that.filters.selectKeysArr = res.data.item
-                        } else {
-                            that.filters.keywords = '--'
-                        }
-                        // 地区
-                        if (res.data.area) {
-                          that.filters.area = res.data.area
-                        }
-                        // 采购单位类型
-                        if(res.data.buyerClass) {
-                          that.filters.buyerclass = res.data.buyerClass
-                        }
-                        // 行业
-                        if(res.data.industry) {
-                          that.filters.industry = res.data.industry
+                        if(!that.reStoreState()) {
+                          that.setFilterData(res.data)
                         }
                         // 项目数量 1
                         if (res.data.project_count && res.data.project_count.length > 0) {
@@ -739,6 +736,27 @@ var vNode = {
                 }
             })
         },
+        setFilterData (res) {
+          var that = this
+          if(res.item && res.item.length > 0 && res.item.toString() != '') {
+              that.filters.keywords = res.item.join('、')
+              that.filters.keywordsList = res.item
+          } else {
+              that.filters.keywords = '--'
+          }
+          // 地区
+          if (res.area) {
+            that.filters.area = res.area
+          }
+          // 采购单位类型
+          if(res.buyerClass) {
+            that.filters.buyerclass = res.buyerClass
+          }
+          // 行业
+          if(res.industry) {
+            that.filters.industry = res.industry
+          }
+        },
         // 颜色值转换
         rgbToHex(val){  //RGB(A)颜色转换为HEX十六进制的颜色值
           var r, g, b, a,

+ 46 - 31
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/report_detail_week.js

@@ -10,9 +10,6 @@ var vNode = {
     data: {
         sessStorageKey: "$data-report_week",
         barChart: barChart,
-        keywordsList: [],
-        keywords: '',
-        area: {},
         keyTip: '',
         dateVal: '',
         addCountSettings:{
@@ -82,13 +79,21 @@ var vNode = {
           keywordsList: [],
         },
         filterData: {},
-        stickyOffset: 0
+        stickyOffset: 0,
+        confirmSwitch: false // 为true开始查询项目明细
     },
     computed: {
         amountWinArr: function () {
             return this.itemAmount.showAll ? this.itemAmount.list : this.itemAmount.list.slice(0,3)
         },
     },
+    watch: {
+      tabActive (newVal) {
+        if (newVal === '1') {
+          this.confirmSwitch = true
+        }
+      }
+    },
     created () {
         var startTime = new Date(parseInt(utils.getParam('start')*1000)).pattern('yyyy/MM/dd');
         var endTime = new Date(parseInt(utils.getParam('end')*1000)).pattern('yyyy/MM/dd')
@@ -96,10 +101,10 @@ var vNode = {
     },
     mounted() {
       const recover = this.reStoreState()
-      if(!recover) {
-        this.getUserPower()
-        this.getAllChartsData()
-      }
+      // if(!recover) {
+      // }
+      this.getUserPower()
+      this.getAllChartsData()
       const observer = new IntersectionObserver(this.handleIntersection, {
         root: null, // 默认为浏览器视窗
         threshold: 0, // 交叉比例,0为完全进入视窗
@@ -129,6 +134,7 @@ var vNode = {
           Object.assign(this.vanlistParams, $data.vanlistParams)
           Object.assign(this.filterData, $data.filterData)
           Object.assign(this.detailInfo, $data.detailInfo)
+          this.setFilterData(this.detailInfo)
           Object.assign(this.projectInfo, $data.projectInfo)
           Object.assign(this.filters, $data.filters)
           this.tabActive = $data.tabActive
@@ -203,15 +209,21 @@ var vNode = {
       // 查询项目明细
       confirm (data) {
         this.filterData = data
-        const { area, buyerclass, industry, items, buyer, winner } = data
+        const { area, buyerclass, industry, items, buyer, winner, industryDetail, selectKeysArr } = data
         this.filters.area = area
         this.filters.buyerclass = buyerclass
-        this.filters.industryDetail = industry
+        this.filters.industryDetail = industryDetail
         this.filters.industry = industry
         this.filters.keys = items
-        this.filters.selectKeysArr = items
+        this.filters.selectKeysArr = selectKeysArr
         this.filters.buyer = buyer
         this.filters.winner = winner
+        data.items = data.items.map((v) => {
+          return v.s_item
+        })
+        data.industry = industryDetail
+        delete data.industryDetail
+        delete data.selectKeysArr
         const params = {
           ...this.listParams,
           ...data
@@ -313,24 +325,8 @@ var vNode = {
                     // console.log(res)
                     if(res.error_code == 0 && res.data) {
                         that.detailInfo = res.data
-                        if(res.data.item && res.data.item.length > 0 && res.data.item.toString() != '') {
-                            that.filters.keywords = res.data.item.join('、')
-                            that.filters.keywordsList = res.data.item
-                            that.filters.selectKeysArr = res.data.item
-                        } else {
-                            that.filters.keywords = '--'
-                        }
-                        // 地区
-                        if (res.data.area) {
-                          that.filters.area = res.data.area
-                        }
-                        // 采购单位类型
-                        if(res.data.buyerClass) {
-                          that.filters.buyerclass = res.data.buyerClass
-                        }
-                        // 行业
-                        if(res.data.industry) {
-                          that.filters.industry = res.data.industry
+                        if(!that.reStoreState()) {
+                          that.setFilterData(res.data)
                         }
                         // 本周新增招标项目数量
                         if(res.data.zhao_matchitem && res.data.zhao_matchitem.length > 0){
@@ -431,8 +427,27 @@ var vNode = {
                     console.log(err)
                 }
             })
-            
-            
+        },
+        setFilterData (data) {
+          var that = this
+          if(data.item && data.item.length > 0 && data.item.toString() != '') {
+              that.filters.keywords = data.item.join('、')
+              that.filters.keywordsList = data.item
+          } else {
+              that.filters.keywords = '--'
+          }
+          // 地区
+          if (data.area) {
+            that.filters.area = data.area
+          }
+          // 采购单位类型
+          if(data.buyerClass) {
+            that.filters.buyerclass = data.buyerClass
+          }
+          // 行业
+          if(data.industry) {
+            that.filters.industry = data.industry
+          }
         },
         /* 以下为配置项部分 */
         // 本周新增招标项目数量

+ 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 :show-tip="false" :show-select="false" :filters="filters"  @confirm="confirm"></filter-component>
+      <filter-component :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

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

@@ -891,7 +891,7 @@
             </div>
           </van-tab>
           <van-tab name="1" title="本月项目明细">
-            <filter-component :show-tip="false" :show-select="false" :filters="filters" :keyphraseslist="filters.keywordsList" keyformat="phrases" @confirm="confirm"></filter-component>
+            <filter-component :switch="confirmSwitch" :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

@@ -520,7 +520,7 @@
             </div>
           </van-tab>
           <van-tab name="1" title="本周项目明细">
-            <filter-component :show-tip="false" :show-select="false" :filters="filters" :keyphraseslist="filters.keywordsList" keyformat="phrases" @confirm="confirm"></filter-component>
+            <filter-component :switch="confirmSwitch" :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

+ 4 - 1
src/web/staticres/common-module/collection/js/keyword-mobile.js

@@ -361,10 +361,13 @@ var keywordComponent = {
         v[Object.keys(v)[0]].push(ownKey)
       })
     },
-    setState: function() {
+    setState: function(data) {
       var _this = this
       let bool = true
       let keyArr = this.selectkeywordlist
+      if(data) {
+        keyArr = data
+      }
       this.tablist.forEach(function(item) {
         item[Object.keys(item)[0]].forEach(function(data) {
           if (keyArr.indexOf(data.text) !== -1) {

+ 51 - 34
src/web/staticres/common-module/filter/js/filter_limit.js

@@ -130,6 +130,10 @@ var filterComponent = {
     cateComponent: cateComponent
   },
   props: {
+    switch: {
+      type: Boolean,
+      default: false
+    },
     // phrases: 只显示关键词组,all:显示所有关键词
     keyformat: {
       type: String,
@@ -173,21 +177,21 @@ var filterComponent = {
       default: true
     },
     // 筛选条件回显
-    filters: {
+    filtersdata: {
       type: Object,
       default () {
         return {
-          selectKeysArr: [], // 关键词简单数组,用于恢复选择状态
-          keys: [], // 关键词详细数组,用于提交数据
-          area: {},
-          industry: [],
-          industryDetail: {},
-          buyerclass: [],
-          rangeTime: {
-            start: '',
-            end: '',
-            exact: 'sinceYearBeforeLast',
-          }
+          // selectKeysArr: [], // 关键词简单数组,用于恢复选择状态
+          // keys: [], // 关键词详细数组,用于提交数据
+          // area: {},
+          // industry: [],
+          // industryDetail: {},
+          // buyerclass: [],
+          // rangeTime: {
+          //   start: '',
+          //   end: '',
+          //   exact: 'sinceYearBeforeLast',
+          // }
         }
       }
     },
@@ -224,21 +228,32 @@ var filterComponent = {
     }
   },
   watch: {
+    switch: {
+      handler (newval) {
+        if(newval) {
+          setTimeout(() => {
+            this.startAnalysis()
+          }, 200)
+        }
+      },
+      immediate: true
+    },
     'filters.industry': {
       handler (newVal) {
-        if (!newVal) {
-          if (newVal && newVal !== '{}') {
-            var industry = []
-            for (var key in this.filters.industryDetail) {
-              this.filters.industryDetail[key].forEach(function (item) {
-                industry.push(key + '_' + item)
-              })
-            }
-            newVal = industry
+        if (newVal && newVal !== '{}') {
+          var industry = []
+          for (var key in this.filters.industryDetail) {
+            this.filters.industryDetail[key].forEach(function (item) {
+              industry.push(key + '_' + item)
+            })
           }
+          newVal = industry
         }
       },
       immediate: true
+    },
+    keyphraseslist (newval) {
+      console.log(newval)
     }
   },
   data () {
@@ -265,7 +280,7 @@ var filterComponent = {
         buyerclass: false,
         rangeTime: false
       },
-      activeNames: ['0'],
+      activeNames: ['1'],
       colorEdit: {
         keys: false,
         area: false,
@@ -275,7 +290,8 @@ var filterComponent = {
     }
   },
   mounted () {
-    console.log(this.keyphraseslist)
+    console.log(this.switch)
+    Object.assign(this.filters, this.filtersdata)
     if (Object.keys(this.arealist).length > 0) {
       this.$refs.areaCitySelector.getData(this.arealist)
     }
@@ -347,6 +363,9 @@ var filterComponent = {
         if (this.notSetKey) {
           return this.setKeyTip()
         }
+        if(this.filters.selectKeysArr.length > 0) {
+          _this.$refs.keywordSelector.setState(this.filters.selectKeysArr.join(','))
+        }
       } else if (key === 'area') {
         setTimeout(function () {
           _this.$refs.areaCitySelector.setState(_this.filters.area)
@@ -447,8 +466,12 @@ var filterComponent = {
       if (Array.isArray(keys) && keys.length) {
         return keys
       } else {
-        var allKeys = this.$refs.keywordSelector.keywordGroupList
-        return allKeys
+        if(this.$refs.keywordSelector) {
+          var allKeys = this.$refs.keywordSelector.keywordGroupList
+          return allKeys
+        } else {
+          return []
+        }
       }
     },
     startAnalysis: function () {
@@ -456,20 +479,14 @@ var filterComponent = {
 
       const query = {
         items: this.getSelectedKeys(),
+        selectKeysArr: this.filters.selectKeysArr,
         area: this.filters.area,
-        industry: this.filters.industryDetail,
+        industry: this.filters.industry,
+        industryDetail: this.filters.industryDetail,
         buyerclass: this.filters.buyerclass,
         winner: this.filters.winnerUnit,
         buyer: this.filters.buyerUnit
       }
-      if (this.keyformat == 'phrases') {
-        query.items = this.filters.selectKeysArr
-        if(!this.filters.industryDetail) {
-          this.filters.industryDetail = []
-        }
-        const result = Object.values(this.filters.industryDetail).reduce((acc, val) => acc.concat(val), [])
-        query.industry = result
-      }
       this.$emit('confirm', query)
     },
     // 重置

+ 9 - 2
src/web/staticres/common-module/report-analysis/js/report_analysis_pro_list.js

@@ -33,7 +33,8 @@ var vm = new Vue({
       pageNum: 1
     },
     filterData: {},
-    projectInfo: {}
+    projectInfo: {},
+    confirmSwitch: false
   },
   computed: {
   },
@@ -102,6 +103,7 @@ var vm = new Vue({
         success: function(res) {
           if (res.error_code === 0) {
             this.sortReportFilters(res.data)
+            // this.confirmSwitch = true
           } else {
             this.$toast(res.error_msg)
           }
@@ -188,9 +190,11 @@ var vm = new Vue({
     // 查询项目明细
     confirm (data) {
       this.filterData = data
-      const { items, area, industry, buyerclass, buyer, winner } = data
+      const { items, area, industry, industryDetail, buyerclass, buyer, winner, selectKeysArr } = data
       this.filters.keys = items
+      this.filters.selectKeysArr = selectKeysArr
       this.filters.area = area
+      this.filters.industryDetail = industryDetail
       this.filters.industry = industry
       this.filters.buyerclass = buyerclass
       this.filters.buyer = buyer
@@ -199,6 +203,9 @@ var vm = new Vue({
       if(buyerclass.length > 0) {
         strBuyerClass = buyerclass.join(',')
       }
+      data.industry = industryDetail
+      delete data.industryDetail
+      delete data.selectKeysArr
       const params = {
         ...this.listParams,
         keysItems: JSON.stringify(items),

+ 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" :filters="filters"  @confirm="confirm"></filter-component>
+      <filter-component :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