Răsfoiți Sursa

中标预测修改

TANGSHIZHE 4 ani în urmă
părinte
comite
b92249e4ec

+ 2 - 1
src/components/forecast/ForLayout.vue

@@ -91,7 +91,8 @@ export default {
             if (data.events === 'select') {
               // 联想跳转
               if (this.bidnum !== 0) {
-                const result = data.data.list
+                // const result = data.data.list
+                const result = [data.data.list]
                 this.$store.commit('forcast/setHistoryList', result)
                 this.$router.push({
                   path: '/ai_add',

+ 39 - 3
src/components/forecast/ForLimit.vue

@@ -1,7 +1,8 @@
 <template>
   <div class="forlimit">
     <div class="limit_head">
-      {{baseInfo.projectname}}
+      <span>{{baseInfo.projectname}}</span>
+      <div class="action-button" type="primary" v-if="actionShow"  @click="toPolicy"><span class="icon_toubiao"></span><span>投标决策分析</span></div>
     </div>
     <div class="limit_main">
       <!-- 采购内容 -->
@@ -57,13 +58,15 @@
 
 <script>
 import AreaSelector from '@/components/selector/AreaSelector.vue'
+import { Button } from 'element-ui'
 import { getBidAssociation } from '@/api/modules/'
 import { moneyUnit } from '@/utils'
 export default {
   props: ['baseInfo', 'setDisabled'],
   name: 'forlimit',
   components: {
-    AreaSelector
+    AreaSelector,
+    [Button.name]: Button
   },
   data () {
     return {
@@ -78,7 +81,8 @@ export default {
       AssoList: [],
       ptid: '', // 项目加密id
       sourceinfoid: '', // 信息加密id
-      backArea: {}
+      backArea: {},
+      actionShow: false
     }
   },
   created () {
@@ -113,6 +117,10 @@ export default {
     }
   },
   methods: {
+    // 投标决策分析
+    toPolicy () {
+      this.$router.push(`/analysis_result/${this.baseInfo.id}/${this.baseInfo.infoid}`)
+    },
     // 判断省市
     getAreaInfo (name) {
       const info = {
@@ -217,6 +225,8 @@ export default {
     startFore () {
       this.isClick = true
       this.area = this.baseInfo.area
+      this.area = this.getCitys()
+      console.log(this.area)
       const limitparams = {
         buyerContent: this.content,
         buyer: this.unitValue,
@@ -260,6 +270,8 @@ export default {
       line-height: 24px;
     }
     .limit_head{
+      display: flex;
+      justify-content: space-between;
       padding-bottom: 20px;
       width: 100%;
       font-size: 18px;
@@ -267,6 +279,30 @@ export default {
       color: #1d1d1d;
       line-height: 28px;
       border-bottom: 1px solid #ececec;
+      .action-button{
+        cursor: pointer;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        width: 144px;
+        height: 32px;
+        background: #2cb7ca;
+        border-radius: 4px;
+        font-size: 14px;
+        font-family: Microsoft YaHei, Microsoft YaHei-Regular;
+        font-weight: 400;
+        text-align: CENTER;
+        color: #ffffff;
+        line-height: 22px;
+        .icon_toubiao{
+          margin-right: 4px;
+          display: flex;
+          width: 16px;
+          height: 16px;
+          background: url('~@/assets/images/icon/toubiaojuece.png') no-repeat;
+          background-size: contain;
+        }
+      }
     }
     .limit_main{
       ::v-deep .selector-card.s-line{

+ 37 - 7
src/components/forecast/ForeCast.vue

@@ -106,7 +106,7 @@
     </ul>
     <!-- 潜在项目预测 -->
     <ul class="listData_ul" v-if="type=='potential'">
-      <li class="list_li poten_li" v-for="(item, index) in listState.list" :key="index" @click="goPotenSimiLar(item.id, item.results)">
+      <li class="list_li poten_li" v-for="(item, index) in listStatePoten.list" :key="index" @click="goPotenSimiLar(item.id, item.results)">
         <div class="list_name">
           <div class="list_name_left">
             <span class="pur_company">采购单位</span>
@@ -123,7 +123,11 @@
           </div>
           <div class="pur_unit poten_unit poten_margin">
             <span class="unit_label poten_label"><span class="point"></span>预测采购内容</span>
-            <span class="unit_name poten_name">该单位将<span v-for="(data, i) in item.results" :key="i">{{data.purchasing}}</span></span>
+            <span class="unit_name poten_name">
+              <span v-for="(data, i) in item.results" :key="i">
+                <span v-for="(sum, index) in data.keys" :key="index">{{sum}}</span>
+              </span>
+            </span>
           </div>
         </div>
       </li>
@@ -172,6 +176,18 @@
       >
       </el-pagination>
     </div>
+    <div class="el-pagination-container" type="potential">
+      <el-pagination
+        background
+        layout="prev, pager, next, ->"
+        :hide-on-single-page="true"
+        :current-page="listStatePoten.pageNum"
+        :page-size="listStatePoten.pageSize"
+        :total="listStatePoten.total"
+        @current-change="onPageChangePoten"
+      >
+      </el-pagination>
+    </div>
   </div>
 </template>
 
@@ -201,6 +217,14 @@ export default {
         total: 0, // 一共多少条数据
         list: [] // 查询请求返回的数据
       },
+      listStatePoten: {
+        loaded: true, // 是否已经搜索过
+        loading: false,
+        pageNum: 1, // 当前页
+        pageSize: 10, // 每页多少条数据
+        total: 0, // 一共多少条数据
+        list: [] // 查询请求返回的数据
+      },
       isFollow: '1',
       potenCode: 0,
       tips: '' // 空状态提示
@@ -218,6 +242,7 @@ export default {
     // 潜在项目预测列表
     if (this.type === 'potential') {
       this.potenInitData(this.potenObj)
+      this.listStatePoten.total = this.potenObj.total
     }
     // 潜在项目近似列表
     if (this.type === 'potensimilar') {
@@ -256,7 +281,7 @@ export default {
       bidnum: state => state.forcast.bidForeCastNum
     }),
     showEmpty () {
-      return !this.listState.list.length
+      return !this.listState.list.length && !this.listStatePoten.list.length
     },
     getTipText () {
       return this.tips
@@ -283,6 +308,7 @@ export default {
     dateFormatter,
     moneyUnit,
     initData (list, type) {
+      console.log(list)
       if (list.length !== 0) {
         this.listState.list = this.unique(list)
         this.listState.total = list.length
@@ -325,11 +351,11 @@ export default {
     potenInitData (obj) {
       console.log(obj)
       if (obj.list && obj.list.length !== 0) {
-        this.listState.list = obj.list
-        this.listState.total = obj.count
+        this.listStatePoten.list = obj.list
+        this.listStatePoten.total = obj.total
       } else {
-        this.listState.list = []
-        this.listState.total = 0
+        this.listStatePoten.list = []
+        this.listStatePoten.total = 0
         console.log(obj.code)
         if (obj.code === 2) {
           this.potenCode = 2
@@ -467,6 +493,10 @@ export default {
     },
     onPageChange (p) {
       this.listState.pageNum = p
+    },
+    onPageChangePoten (p) {
+      this.listStatePoten.pageNum = p
+      this.$emit('pagenum', p)
     }
   }
 }

+ 2 - 1
src/views/bid-forecast/BidForecast.vue

@@ -1,6 +1,7 @@
 <template>
   <div class="bid-forcast"
   v-loading="loading"
+  style="font-size:30px"
   :element-loading-text="pronametip"
   element-loading-spinner="el-icon-loading"
   element-loading-background="rgba(0, 0, 0, 0.8)"
@@ -154,7 +155,7 @@ export default {
                 this.loading = false
               }
             } else {
-              // this.$message.error('您填写的信息内容不够完善,暂无法为您精准预测。')
+              this.$message.error('您填写的信息内容不够完善,暂无法为您精准预测。')
               console.log(this)
               clearInterval(timers)
               clearInterval(this.timer)

+ 4 - 5
src/views/bid-forecast/BidForecastLimit.vue

@@ -140,7 +140,6 @@ export default {
       if (res.error_code === 0 && res.data) {
         console.log(res.data)
         if (res.data.buyerContent && res.data.buyerContent.length > 0) {
-          debugger
           const newKeyArr = []
           res.data.buyerContent.forEach(function (item, i) {
             console.log(item)
@@ -258,12 +257,12 @@ export default {
               if (res.data.id !== '') {
                 this.fid = res.data.id
                 this.getProForWResult(res.data.id)
-                clearInterval(timer)
+                clearInterval(this.timer)
                 this.loading = false
                 this.$refs.forlimits.isClick = false
               }
             } else {
-              clearInterval(timer)
+              clearInterval(this.timer)
               this.isperfect = true
               this.loading = false
               this.proShow = false
@@ -282,6 +281,7 @@ export default {
             this.resData = res.data.responseData
             this.loading = false
             this.$refs.forlimits.isClick = false
+            this.$refs.forlimits.actionShow = true
           }
         }
       })
@@ -297,8 +297,7 @@ export default {
       const routeUrl = this.$router.resolve({
         path: '/pro_follow_detail',
         query: {
-          sid: this.baseInfo.infoid,
-          fid: this.baseInfo.id
+          sid: this.baseInfo.infoid
         }
       })
       return window.open(routeUrl.href, '_blank')

+ 4 - 0
src/views/bid-policy/AnalysisResult.vue

@@ -213,6 +213,10 @@ export default {
     // 获取分析结果
     async getResult (item) {
       // this.proShow = true
+      if (item.scope.length === 0) {
+        this.$message.error('采购内容不能为全部')
+        return
+      }
       this.loading = true
       const data = {
         appVersion: '',

+ 13 - 1
src/views/portrayal/components/ProActive.vue

@@ -5,7 +5,7 @@
     </div>
     <div class="pro_ul" v-if="!isShow">
       <div class="pro_list" v-for="(item, index) in listState.list.slice((listState.pageNum - 1) * listState.pageSize, listState.pageNum * listState.pageSize)" :key="index">
-        <div class="pro_li_title">{{item.projectname}}</div>
+        <div class="pro_li_title" @click="setLink(item)">{{item.projectname}}</div>
         <div class="pro_li_info">
           <div class="li_left">
             <span class="tags">{{item.area}}</span>
@@ -82,6 +82,17 @@ export default {
         this.isShow = true
       }
     },
+    setLink (data) {
+      console.log(data)
+      const routeUrl = this.$router.resolve({
+        path: '/pro_follow_detail/',
+        query: {
+          sid: data.infoid
+          // fid: data._id
+        }
+      })
+      return window.open(routeUrl.href, '_blank')
+    },
     onPageChange (p) {
       this.listState.pageNum = p
     }
@@ -120,6 +131,7 @@ export default {
         color: #1d1d1d;
         line-height: 24px;
         text-shadow: 0px -1px 0px 0px rgba(0,0,0,0.05) inset;
+        cursor: pointer;
       }
       .pro_li_info{
         display: flex;

+ 11 - 4
src/views/potential-for/PotenTial.vue

@@ -4,14 +4,15 @@
       <span class="icon_qianzai" slot="icon"></span>
       <span class="bidfor_text" slot="proname">潜在项目预测</span>
       <img class="bidfor_img" src="@/assets/images/item_4.png" alt="" slot="bidImg">
-      <ForeCast type="potential" ref="myList" :potenObj="potenObj" title="潜在项目预测" slot="main"></ForeCast>
+      <ForeCast type="potential" @pagenum="pagenum" ref="myList" :potenObj="potenObj" title="潜在项目预测" slot="main"></ForeCast>
     </forLayOut>
   </div>
 </template>
 
 <script>
 import forLayOut from '@/components/forecast/ForLayout.vue'
-import ForeCast from '@/components/forecast/ForeCast.vue'
+// import PotenList from './components/potenList'
+import ForeCast from '@/components/forecast/ForeCast'
 import { getPotenList } from '@/api/modules'
 import { mapState } from 'vuex'
 export default {
@@ -24,9 +25,10 @@ export default {
     return {
       potenObj: {
         list: [], // 查询请求返回的数据
-        count: 12,
+        total: 0,
         code: 0
       },
+      pageNum: 1,
       isSubCount: true
     }
   },
@@ -40,8 +42,12 @@ export default {
     this.getnewList()
   },
   methods: {
+    pagenum (num) {
+      this.pageNum = num
+      this.getnewList()
+    },
     getnewList () {
-      getPotenList({ pageNum: 1 }).then(res => {
+      getPotenList({ pageNum: this.pageNum }).then(res => {
         console.log(res)
         if (res.error_code === 0) {
           console.log(res.data.code)
@@ -56,6 +62,7 @@ export default {
                 v.createtime = v.createtime.replace(/-/g, '/')
               })
               this.potenObj.list = res.data.list
+              this.potenObj.total = res.data.count
             }
           }
         }

+ 1 - 1
src/views/reportData/pageWeek.vue

@@ -218,7 +218,7 @@ export default {
     // 选择周报
     selectWeek (index, item) {
       if (this.$refs.weekitempoint && this.$refs.weekitempoint.length > 0) {
-        this.$refs.weekitempoint[index].style.display = 'none'
+        // this.$refs.weekitempoint[index].style.display = 'none'
       }
       this.isWeekIndex = index
       this.clickindex = index