|
@@ -1,6 +1,10 @@
|
|
<template>
|
|
<template>
|
|
<div class="listData">
|
|
<div class="listData">
|
|
- <div class="listData_title">{{ title }}</div>
|
|
|
|
|
|
+ <div class="listData_title" v-if="type=='entintel'">
|
|
|
|
+ <strong style="font-weight:bold;font-size: 18px;color: #1d1d1d">企业列表</strong>
|
|
|
|
+ <span style="font-size:14px;color:#686868;">(可关注 {{myDataObj.maxCount}} 个企业,已关注 <em style="color:#2CB7CA;">{{myDataObj.total}}</em> 个)</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="listData_title" v-else>{{ title }}</div>
|
|
<!-- 中标企业预测-->
|
|
<!-- 中标企业预测-->
|
|
<ul class="listData_ul" v-if="type=='bidfor'">
|
|
<ul class="listData_ul" v-if="type=='bidfor'">
|
|
<li class="list_li" v-for="(item, index) in listState.list.slice((listState.pageNum - 1) * listState.pageSize, listState.pageNum * listState.pageSize)" :key="index" @click="goBidForcast(item)">
|
|
<li class="list_li" v-for="(item, index) in listState.list.slice((listState.pageNum - 1) * listState.pageSize, listState.pageNum * listState.pageSize)" :key="index" @click="goBidForcast(item)">
|
|
@@ -62,29 +66,58 @@
|
|
</li>
|
|
</li>
|
|
</ul>
|
|
</ul>
|
|
<!-- 企业情报 -->
|
|
<!-- 企业情报 -->
|
|
- <ul class="listData_ul" v-if="type=='entintel'">
|
|
|
|
- <li class="list_li" v-for="(item, index) in getMyData.listState.list" :key="index" @click="goViewEnt(item.s_entId)">
|
|
|
|
- <div class="list_name ent_li_name">{{item.s_entname}}<span class="red_point" v-if="item.i_apppushunread!==0&&item.i_apppushunread"></span></div>
|
|
|
|
- <div class="list_unit">
|
|
|
|
- <div class="pur_unit">
|
|
|
|
- <span class="unit_label">成立日期:</span>
|
|
|
|
- <span class="unit_name entname">{{item.l_establishdate?dateFormatter(item.l_establishdate*1000, 'yyyy-MM-dd'):'--'}}</span>
|
|
|
|
|
|
+ <div v-if="type=='entintel'" style="padding:0 40px;">
|
|
|
|
+ <div class="entintel-thead">
|
|
|
|
+ <span style="width:830px;">企业</span>
|
|
|
|
+ <span style="width:100px;" class="thead-flex">
|
|
|
|
+ <em>项目<br>更新时间</em>
|
|
|
|
+ <el-tooltip class="item" effect="dark" placement="top">
|
|
|
|
+ <div slot="content" style="text-align:center;font-size:13px;line-height:20px;">
|
|
|
|
+ 初始值为关注企业的时间,<br> 关注后,企业下项目动态如有更新, <br>则为项目更新时间
|
|
|
|
+ </div>
|
|
|
|
+ <i class="icon-quesion"></i>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </span>
|
|
|
|
+ <span style="width:100px;">分组</span>
|
|
|
|
+ <span style="width:100px;">操作</span>
|
|
|
|
+ </div>
|
|
|
|
+ <ul class="listData_ul">
|
|
|
|
+ <li class="list_li" style="padding:24px 0 26px;display:flex;align-items: center;cursor: default;" v-for="(item, index) in getMyData.listState.list" :key="index">
|
|
|
|
+ <div style="padding: 0 12px;width:830px;cursor: pointer" @click="goViewEnt(item.s_entId)">
|
|
|
|
+ <div class="list_name ent_li_name">{{item.s_entname}}<span class="red_point" v-if="item.i_apppushunread!==0&&item.i_apppushunread"></span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="list_unit">
|
|
|
|
+ <div class="pur_unit">
|
|
|
|
+ <span class="unit_label">成立日期:</span>
|
|
|
|
+ <span class="unit_name entname">{{item.l_establishdate?dateFormatter(item.l_establishdate*1000, 'yyyy-MM-dd'):'--'}}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="pur_unit">
|
|
|
|
+ <span class="unit_label">注册资本:</span>
|
|
|
|
+ <span class="unit_name entname">{{item.f_capital?moneyUnit(item.f_capital*10000):'--'}}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="pur_unit">
|
|
|
|
+ <span class="unit_label">企业地址:</span>
|
|
|
|
+ <span class="unit_name entname">{{item.s_area?item.s_area:'--'}}{{item.s_city?item.s_city:''}}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="pur_unit">
|
|
|
|
+ <span class="unit_label">企业联系方式:</span>
|
|
|
|
+ <span class="unit_name entname">{{item.s_phone?item.s_phone:'--'}}</span>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
- <div class="pur_unit">
|
|
|
|
- <span class="unit_label">注册资本:</span>
|
|
|
|
- <span class="unit_name entname">{{item.f_capital?moneyUnit(item.f_capital*10000):'--'}}</span>
|
|
|
|
|
|
+ <div class="list_li_item">
|
|
|
|
+ {{item.l_lastpushtime ? dateFormatter(item.l_lastpushtime*1000, 'yyyy-MM-dd') : '--'}}
|
|
</div>
|
|
</div>
|
|
- <div class="pur_unit">
|
|
|
|
- <span class="unit_label">企业地址:</span>
|
|
|
|
- <span class="unit_name entname">{{item.s_area?item.s_area:'--'}}{{item.s_city?item.s_city:''}}</span>
|
|
|
|
|
|
+ <div class="list_li_item item-flex-column">
|
|
|
|
+ <span v-for="(s,j) in formatGroup(item.s_group)" :key="'00' + j">{{s}}</span>
|
|
</div>
|
|
</div>
|
|
- <div class="pur_unit">
|
|
|
|
- <span class="unit_label">企业联系方式:</span>
|
|
|
|
- <span class="unit_name entname">{{item.s_phone?item.s_phone:'--'}}</span>
|
|
|
|
|
|
+ <div class="list_li_item entintel-handle">
|
|
|
|
+ <span @click="editGroup(item)">编辑分组</span>
|
|
|
|
+ <span @click="cancelFollow(item)">取消关注</span>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
- </li>
|
|
|
|
- </ul>
|
|
|
|
|
|
+ </li>
|
|
|
|
+ </ul>
|
|
|
|
+ </div>
|
|
<!-- 企业情报搜索结果组件 -->
|
|
<!-- 企业情报搜索结果组件 -->
|
|
<ul class="listData_ul" v-if="type=='entintelRes'">
|
|
<ul class="listData_ul" v-if="type=='entintelRes'">
|
|
<li class="list_li res_li" v-for="(item, index) in listState.list" :key="index">
|
|
<li class="list_li res_li" v-for="(item, index) in listState.list" :key="index">
|
|
@@ -179,7 +212,17 @@
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</li>
|
|
</ul>
|
|
</ul>
|
|
- <Empty v-if="showEmpty&&potenCode!=1" :tip="getTipText"></Empty>
|
|
|
|
|
|
+ <Empty v-if="showEmpty&&potenCode!=1" :tip="getTipText">
|
|
|
|
+ <el-button
|
|
|
|
+ v-if="tips === '暂无企业情报信息,前往企业搜索关注企业'"
|
|
|
|
+ class="add-btn"
|
|
|
|
+ type="primary"
|
|
|
|
+ slot="button"
|
|
|
|
+ @click="goSearchEnt"
|
|
|
|
+ >
|
|
|
|
+ 添加关注企业
|
|
|
|
+ </el-button>
|
|
|
|
+ </Empty>
|
|
<Empty v-else-if="showEmpty&&potenCode==1">
|
|
<Empty v-else-if="showEmpty&&potenCode==1">
|
|
<div name="default">
|
|
<div name="default">
|
|
<div class="poten_tip">暂未设置订阅关键词,无法进行预测</div>
|
|
<div class="poten_tip">暂未设置订阅关键词,无法进行预测</div>
|
|
@@ -200,16 +243,36 @@
|
|
>
|
|
>
|
|
</el-pagination>
|
|
</el-pagination>
|
|
</div>
|
|
</div>
|
|
|
|
+ <!-- 分组dialog -->
|
|
|
|
+ <el-dialog
|
|
|
|
+ custom-class="sub-dialog"
|
|
|
|
+ :visible.sync="dialog.group"
|
|
|
|
+ :close-on-click-modal="false"
|
|
|
|
+ :show-close="false"
|
|
|
|
+ :destroy-on-close="true"
|
|
|
|
+ :lock-scroll="false"
|
|
|
|
+ center
|
|
|
|
+ width="460px"
|
|
|
|
+ >
|
|
|
|
+ <GroupCard
|
|
|
|
+ :initGroupInfo="this.cur.group"
|
|
|
|
+ @onCancel="dialog.group = false"
|
|
|
|
+ @onConfirm="saveGroupData"
|
|
|
|
+ >
|
|
|
|
+ <div slot="header">编辑分组</div>
|
|
|
|
+ </GroupCard>
|
|
|
|
+ </el-dialog>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
-import { Pagination, Progress, Message } from 'element-ui'
|
|
|
|
|
|
+import { Pagination, Progress, Message, Tooltip, Dialog, Button } from 'element-ui'
|
|
import { mapState } from 'vuex'
|
|
import { mapState } from 'vuex'
|
|
// import { getPushList } from '@/api/modules/'
|
|
// import { getPushList } from '@/api/modules/'
|
|
import Empty from '@/components/common/Empty.vue'
|
|
import Empty from '@/components/common/Empty.vue'
|
|
|
|
+import GroupCard from '@/components/selector/GroupSelector.vue'
|
|
import { moneyUnit, dateFormatter } from '@/utils'
|
|
import { moneyUnit, dateFormatter } from '@/utils'
|
|
-import { setFollowEnt, setCancelEnt } from '@/api/modules'
|
|
|
|
|
|
+import { setFollowEnt, setCancelEnt, changeEntGroup } from '@/api/modules'
|
|
export default {
|
|
export default {
|
|
props: ['type', 'title', 'mydata', 'myDataObj', 'resData', 'myPolicydata', 'potenObj', 'potenResult', 'entSearch', 'entSearchRes'],
|
|
props: ['type', 'title', 'mydata', 'myDataObj', 'resData', 'myPolicydata', 'potenObj', 'potenResult', 'entSearch', 'entSearchRes'],
|
|
name: 'listData',
|
|
name: 'listData',
|
|
@@ -217,7 +280,11 @@ export default {
|
|
[Pagination.name]: Pagination,
|
|
[Pagination.name]: Pagination,
|
|
[Progress.name]: Progress,
|
|
[Progress.name]: Progress,
|
|
[Message.name]: Message,
|
|
[Message.name]: Message,
|
|
- Empty
|
|
|
|
|
|
+ [Tooltip.name]: Tooltip,
|
|
|
|
+ [Dialog.name]: Dialog,
|
|
|
|
+ [Button.name]: Button,
|
|
|
|
+ Empty,
|
|
|
|
+ GroupCard
|
|
},
|
|
},
|
|
data () {
|
|
data () {
|
|
return {
|
|
return {
|
|
@@ -225,13 +292,20 @@ export default {
|
|
loaded: true, // 是否已经搜索过
|
|
loaded: true, // 是否已经搜索过
|
|
loading: false,
|
|
loading: false,
|
|
pageNum: 1, // 当前页
|
|
pageNum: 1, // 当前页
|
|
- pageSize: 10, // 每页多少条数据
|
|
|
|
|
|
+ pageSize: this.type === 'entintel' ? 25 : 10, // 每页多少条数据
|
|
total: 0, // 一共多少条数据
|
|
total: 0, // 一共多少条数据
|
|
list: [] // 查询请求返回的数据
|
|
list: [] // 查询请求返回的数据
|
|
},
|
|
},
|
|
isFollow: '1',
|
|
isFollow: '1',
|
|
potenCode: 0,
|
|
potenCode: 0,
|
|
- tips: '' // 空状态提示
|
|
|
|
|
|
+ tips: '', // 空状态提示
|
|
|
|
+ dialog: {
|
|
|
|
+ group: false
|
|
|
|
+ },
|
|
|
|
+ cur: {
|
|
|
|
+ group: '', // 当前点击编辑的分组信息
|
|
|
|
+ fid: ''
|
|
|
|
+ }
|
|
}
|
|
}
|
|
},
|
|
},
|
|
created () {
|
|
created () {
|
|
@@ -306,7 +380,7 @@ export default {
|
|
},
|
|
},
|
|
getMyData () {
|
|
getMyData () {
|
|
// eslint-disable-next-line vue/no-side-effects-in-computed-properties
|
|
// eslint-disable-next-line vue/no-side-effects-in-computed-properties
|
|
- this.tips = '您还没有关注企业'
|
|
|
|
|
|
+ this.tips = '暂无企业情报信息,前往企业搜索关注企业'
|
|
return this
|
|
return this
|
|
},
|
|
},
|
|
activeColor () {
|
|
activeColor () {
|
|
@@ -421,7 +495,7 @@ export default {
|
|
} else {
|
|
} else {
|
|
this.listState.list = []
|
|
this.listState.list = []
|
|
this.listState.total = 0
|
|
this.listState.total = 0
|
|
- this.tips = '您还没有关注企业'
|
|
|
|
|
|
+ this.tips = '暂无企业情报信息,前往企业搜索关注企业'
|
|
}
|
|
}
|
|
},
|
|
},
|
|
// 企业查询
|
|
// 企业查询
|
|
@@ -546,6 +620,71 @@ export default {
|
|
onPageChange (p) {
|
|
onPageChange (p) {
|
|
this.listState.pageNum = p
|
|
this.listState.pageNum = p
|
|
this.$emit('onPageChange', p)
|
|
this.$emit('onPageChange', p)
|
|
|
|
+ },
|
|
|
|
+ // 处理显示分组
|
|
|
|
+ formatGroup (data) {
|
|
|
|
+ if (!data) return
|
|
|
|
+ let val
|
|
|
|
+ switch (data) {
|
|
|
|
+ case 'A':
|
|
|
|
+ val = '默认分组'
|
|
|
|
+ break
|
|
|
|
+ case 'B':
|
|
|
|
+ val = '竞争对手'
|
|
|
|
+ break
|
|
|
|
+ case 'C':
|
|
|
|
+ val = '合作伙伴'
|
|
|
|
+ break
|
|
|
|
+ case 'B,C' || 'C,B':
|
|
|
|
+ val = '竞争对手,合作伙伴'
|
|
|
|
+ break
|
|
|
|
+ default:
|
|
|
|
+ val = '默认分组'
|
|
|
|
+ break
|
|
|
|
+ }
|
|
|
|
+ const arr = val.split(',')
|
|
|
|
+ return arr
|
|
|
|
+ },
|
|
|
|
+ // 企业情报监控 编辑分组
|
|
|
|
+ editGroup (item) {
|
|
|
|
+ this.dialog.group = true
|
|
|
|
+ this.cur.group = item.s_group ? item.s_group : 'A'
|
|
|
|
+ this.cur.fid = item.fid
|
|
|
|
+ },
|
|
|
|
+ // 企业情报监控 取消关注
|
|
|
|
+ cancelFollow (item) {
|
|
|
|
+ setCancelEnt({
|
|
|
|
+ entId: item.s_entId,
|
|
|
|
+ fid: item.fid
|
|
|
|
+ }).then(res => {
|
|
|
|
+ if (res.data === 'success') {
|
|
|
|
+ this.$toast('取消关注成功')
|
|
|
|
+ this.$emit('onPageChange', this.listState.pageNum)
|
|
|
|
+ } else {
|
|
|
|
+ this.$toast(res.error_msg)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ saveGroupData (data) {
|
|
|
|
+ console.log(data, '保存分组')
|
|
|
|
+ const params = {
|
|
|
|
+ fid: this.cur.fid,
|
|
|
|
+ group: data
|
|
|
|
+ }
|
|
|
|
+ const defaultParams = {
|
|
|
|
+ fid: this.cur.fid
|
|
|
|
+ }
|
|
|
|
+ changeEntGroup(data === 'A' ? defaultParams : params).then(res => {
|
|
|
|
+ if (res.data === 'success') {
|
|
|
|
+ this.dialog.group = false
|
|
|
|
+ this.$emit('onPageChange', this.listState.pageNum)
|
|
|
|
+ } else {
|
|
|
|
+ this.$toast(res.error_msg)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ goSearchEnt () {
|
|
|
|
+ location.href = '/jylab/entSearch/index.html'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -566,6 +705,58 @@ export default {
|
|
color: #1d1d1d;
|
|
color: #1d1d1d;
|
|
line-height: 28px;
|
|
line-height: 28px;
|
|
}
|
|
}
|
|
|
|
+ .entintel-thead{
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ margin-top: 26px;
|
|
|
|
+ height:48px;
|
|
|
|
+ background:#f7f9fc;
|
|
|
|
+ color: #1D1D1D;
|
|
|
|
+ text-align: center;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ .thead-flex{
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ }
|
|
|
|
+ .icon-quesion{
|
|
|
|
+ display: inline-block;
|
|
|
|
+ width: 18px;
|
|
|
|
+ height: 18px;
|
|
|
|
+ margin-left: 2px;
|
|
|
|
+ background: url('~@/assets/images/icon/help.png') no-repeat center center;
|
|
|
|
+ background-size: contain;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .list_li_item{
|
|
|
|
+ width: 100px;
|
|
|
|
+ text-align: center;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ &.item-flex-column{
|
|
|
|
+ display:flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ align-items: center;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .add-btn{
|
|
|
|
+ margin: 16px 0;
|
|
|
|
+ background: #2cb7ca;
|
|
|
|
+ border-radius: 6px;
|
|
|
|
+ border: 0;
|
|
|
|
+ }
|
|
|
|
+ .entintel-handle{
|
|
|
|
+ width:100px;
|
|
|
|
+ display:flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ align-items: center;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ color: #2CB7CA;
|
|
|
|
+ line-height: 22px;
|
|
|
|
+ span{
|
|
|
|
+ cursor: pointer
|
|
|
|
+ }
|
|
|
|
+ }
|
|
.listData_ul{
|
|
.listData_ul{
|
|
content: '';
|
|
content: '';
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
@@ -598,7 +789,7 @@ export default {
|
|
display: flex;
|
|
display: flex;
|
|
margin-top: 12px;
|
|
margin-top: 12px;
|
|
.pur_unit{
|
|
.pur_unit{
|
|
- margin-right: 40px;
|
|
|
|
|
|
+ margin-right: 28px;
|
|
font-size: 14px;
|
|
font-size: 14px;
|
|
color: #2CB7CA;
|
|
color: #2CB7CA;
|
|
font-weight: 400;
|
|
font-weight: 400;
|