|
@@ -2,46 +2,74 @@
|
|
|
<div class="report-download-record">
|
|
|
<div class="page-header">
|
|
|
<h1>报告下载记录</h1>
|
|
|
- <em>注:请在有效期内使用,过期清零,不可转赠。</em>
|
|
|
</div>
|
|
|
<section class="box-container balance-box">
|
|
|
- <div class="box-title">报告下载余额</div>
|
|
|
+ <div class="box-title">
|
|
|
+ 报告下载余额<em class="balance-tips"
|
|
|
+ >注:请在有效期内使用,过期清零,不可转赠。</em
|
|
|
+ >
|
|
|
+ </div>
|
|
|
<div class="card-row">
|
|
|
<div class="card-col" v-for="item in cardList">
|
|
|
<p class="title">{{ item.title }}</p>
|
|
|
<div class="num">
|
|
|
- <span><strong>{{ item.total }}</strong>份</span>
|
|
|
- <el-button class="recharge-button" type="primary" @click="goRecharge(item)">立即充值</el-button>
|
|
|
+ <span
|
|
|
+ ><strong>{{ item.total }}</strong
|
|
|
+ >份</span
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ class="recharge-button"
|
|
|
+ type="primary"
|
|
|
+ @click="goRecharge(item)"
|
|
|
+ >立即充值</el-button
|
|
|
+ >
|
|
|
</div>
|
|
|
<p class="date">
|
|
|
<span v-if="item.total">最近有效期至:{{ item.minEndTime }}</span>
|
|
|
- <span class="text-button" @click="goBalance(item)">查明细<i class="iconfont icon-more"></i></span>
|
|
|
+ <span class="text-button" @click="goBalance(item)"
|
|
|
+ >查明细<i class="iconfont icon-more"></i
|
|
|
+ ></span>
|
|
|
</p>
|
|
|
</div>
|
|
|
</div>
|
|
|
</section>
|
|
|
+ <section class="flex flex-(justify-between items-center) credit-report-box">
|
|
|
+ <div class="flex flex-items-center credit-report-content">
|
|
|
+ <p class="credit-report-title">投标企业信用报告</p>
|
|
|
+ <p class="credit-report-desc">
|
|
|
+ 信用报告通过信用背书、风险预警、政策适配,三大核心作用,成为投标企业参与市场竞争的关键工具
|
|
|
+ </p>
|
|
|
+ <img
|
|
|
+ class="credit-report-icon"
|
|
|
+ src="@/assets/images/credit-report-icon.png"
|
|
|
+ alt="信用报告"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="flex flex-items-center report-action">
|
|
|
+ <span class="view-report-sample" @click="goViewSample"
|
|
|
+ >查看报告样例</span
|
|
|
+ >
|
|
|
+ <button class="report-to-buy" @click="goBuyCreditReport">去购买</button>
|
|
|
+ </div>
|
|
|
+ </section>
|
|
|
<section class="box-container record-box">
|
|
|
<p class="box-title">报告下载记录</p>
|
|
|
- <el-table
|
|
|
- :data="listState.list"
|
|
|
- v-show="!showEmpty"
|
|
|
- >
|
|
|
+ <el-table :data="listState.list" v-show="!showEmpty">
|
|
|
<el-table-column label="下载时间" width="170" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
<span class="max-line-3">{{
|
|
|
- (scope.row.l_createTime * 1000) | formatTime('yyyy-MM-dd HH:mm')
|
|
|
- }}</span>
|
|
|
+ (scope.row.l_createTime * 1000) | formatTime('yyyy-MM-dd HH:mm')
|
|
|
+ }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="报告类型" width="230" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- {{scope.row.type | formatType}}
|
|
|
+ {{ scope.row.type | formatType }}
|
|
|
</template>
|
|
|
-
|
|
|
</el-table-column>
|
|
|
<el-table-column label="报告说明" min-width="400">
|
|
|
<template slot-scope="scope">
|
|
|
- <!-- 市场分析报告-->
|
|
|
+ <!-- 市场分析报告-->
|
|
|
<el-tooltip
|
|
|
v-if="scope.row.type === '3'"
|
|
|
effect="dark"
|
|
@@ -67,24 +95,30 @@
|
|
|
<div>
|
|
|
<span>成交时间:</span
|
|
|
><span
|
|
|
- >{{
|
|
|
- scope.row.rangeTimeStart | formatTime('yyyy-MM-dd')
|
|
|
- }}至{{
|
|
|
- scope.row.rangeTimeEnd | formatTime('yyyy-MM-dd')
|
|
|
- }}</span
|
|
|
- >
|
|
|
+ >{{
|
|
|
+ scope.row.rangeTimeStart | formatTime('yyyy-MM-dd')
|
|
|
+ }}至{{
|
|
|
+ scope.row.rangeTimeEnd | formatTime('yyyy-MM-dd')
|
|
|
+ }}</span
|
|
|
+ >
|
|
|
</div>
|
|
|
<div v-if="scope.row.s_area && scope.row.s_area !== '{}'">
|
|
|
<span>项目地区:</span
|
|
|
><span>{{ scope.row.s_area | formatArea }}</span>
|
|
|
</div>
|
|
|
- <div v-if="scope.row.s_industry && scope.row.s_industry !== '{}'">
|
|
|
+ <div
|
|
|
+ v-if="scope.row.s_industry && scope.row.s_industry !== '{}'"
|
|
|
+ >
|
|
|
<span>行业:</span
|
|
|
- ><span>{{ scope.row.s_industry | formatMarketIndustry }}</span>
|
|
|
+ ><span>{{
|
|
|
+ scope.row.s_industry | formatMarketIndustry
|
|
|
+ }}</span>
|
|
|
</div>
|
|
|
<div v-if="scope.row.s_buyerClass">
|
|
|
<span>采购单位类型:</span
|
|
|
- ><span>{{ getFormatBuyerClass(scope.row.s_buyerClass) }}</span>
|
|
|
+ ><span>{{
|
|
|
+ getFormatBuyerClass(scope.row.s_buyerClass)
|
|
|
+ }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div>
|
|
@@ -100,128 +134,190 @@
|
|
|
<div>
|
|
|
<span>成交时间:</span
|
|
|
><span
|
|
|
- >{{
|
|
|
- scope.row.rangeTimeStart | formatTime('yyyy-MM-dd')
|
|
|
- }}至{{
|
|
|
- scope.row.rangeTimeEnd | formatTime('yyyy-MM-dd')
|
|
|
- }}</span
|
|
|
- >
|
|
|
+ >{{
|
|
|
+ scope.row.rangeTimeStart | formatTime('yyyy-MM-dd')
|
|
|
+ }}至{{
|
|
|
+ scope.row.rangeTimeEnd | formatTime('yyyy-MM-dd')
|
|
|
+ }}</span
|
|
|
+ >
|
|
|
</div>
|
|
|
- <div class="ellipsis-1" v-if="scope.row.s_area && scope.row.s_area !== '{}'">
|
|
|
+ <div
|
|
|
+ class="ellipsis-1"
|
|
|
+ v-if="scope.row.s_area && scope.row.s_area !== '{}'"
|
|
|
+ >
|
|
|
<span>项目地区:</span
|
|
|
><span>{{ scope.row.s_area | formatArea }}</span>
|
|
|
</div>
|
|
|
- <div class="ellipsis-1" v-if="scope.row.s_industry && scope.row.s_industry !== '{}'">
|
|
|
+ <div
|
|
|
+ class="ellipsis-1"
|
|
|
+ v-if="scope.row.s_industry && scope.row.s_industry !== '{}'"
|
|
|
+ >
|
|
|
<span>行业:</span
|
|
|
- ><span>{{ scope.row.s_industry | formatMarketIndustry }}</span>
|
|
|
+ ><span>{{
|
|
|
+ scope.row.s_industry | formatMarketIndustry
|
|
|
+ }}</span>
|
|
|
</div>
|
|
|
- <div class="ellipsis-1" v-if="scope.row.s_buyerClass">
|
|
|
+ <div class="ellipsis-1" v-if="scope.row.s_buyerClass">
|
|
|
<span>采购单位类型:</span
|
|
|
- ><span>{{ getFormatBuyerClass(scope.row.s_buyerClass) }}</span>
|
|
|
+ ><span>{{
|
|
|
+ getFormatBuyerClass(scope.row.s_buyerClass)
|
|
|
+ }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-tooltip>
|
|
|
+ <div v-else-if="scope.row.type === '4'" class="">
|
|
|
+ <div>
|
|
|
+ <span>投标企业名称:</span>
|
|
|
+ <span>{{ scope.row.ent }}</span>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <span>招标单位名称:</span>
|
|
|
+ <span>{{ scope.row.buyer }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
<!-- 业主采购、企业中标分析报告-->
|
|
|
<el-tooltip
|
|
|
- v-else
|
|
|
- effect="dark"
|
|
|
- placement="right"
|
|
|
- popper-class="analyse-condition-tooltip"
|
|
|
- >
|
|
|
- <div
|
|
|
- slot="content"
|
|
|
- style="
|
|
|
+ v-else
|
|
|
+ effect="dark"
|
|
|
+ placement="right"
|
|
|
+ popper-class="analyse-condition-tooltip"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ slot="content"
|
|
|
+ style="
|
|
|
max-width: 300px !important;
|
|
|
font-size: 12px;
|
|
|
line-height: 22px;
|
|
|
"
|
|
|
- >
|
|
|
+ >
|
|
|
+ <div v-if="scope.row.type === '1'">
|
|
|
+ <span>目标企业:</span>
|
|
|
+ <span
|
|
|
+ class="highlight-name"
|
|
|
+ @click="goEntPortrayal(scope.row.ent)"
|
|
|
+ >{{ scope.row.entName }}</span
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <div v-if="scope.row.type === '2'">
|
|
|
+ <span>目标业主:</span>
|
|
|
+ <span
|
|
|
+ class="highlight-name"
|
|
|
+ @click="goUnitPortrayal(scope.row.ent)"
|
|
|
+ >{{ scope.row.entName }}</span
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <span>成交时间:</span
|
|
|
+ ><span
|
|
|
+ >{{ scope.row.rangeTimeStart }}至{{
|
|
|
+ scope.row.rangeTimeEnd
|
|
|
+ }}</span
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <div v-if="scope.row.match">
|
|
|
+ <span>关键词:</span>
|
|
|
+ <span>{{
|
|
|
+ scope.row.match +
|
|
|
+ (scope.row.exactMatch === '1' ? '(精准)' : '(模糊)')
|
|
|
+ }}</span>
|
|
|
+ </div>
|
|
|
+ <div v-if="scope.row.matchRange">
|
|
|
+ <span>搜索范围:</span
|
|
|
+ ><span>{{ scope.row.matchRange | formatSelectType }}</span>
|
|
|
+ </div>
|
|
|
+ <div v-if="scope.row.area">
|
|
|
+ <span>项目地区:</span><span>{{ scope.row.area }}</span>
|
|
|
+ </div>
|
|
|
+ <div v-if="scope.row.scopeClass">
|
|
|
+ <span>行业:</span
|
|
|
+ ><span>{{ getFormatIndustry(scope.row.scopeClass) }}</span>
|
|
|
+ </div>
|
|
|
+ <div v-if="scope.row.buyerClass && scope.row.type === '1'">
|
|
|
+ <span>采购单位类型:</span
|
|
|
+ ><span>{{ getFormatBuyerClass(scope.row.buyerClass) }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <div class="analyse-condition">
|
|
|
<div v-if="scope.row.type === '1'">
|
|
|
<span>目标企业:</span>
|
|
|
- <span class="highlight-name" @click="goEntPortrayal(scope.row.ent)">{{scope.row.entName}}</span>
|
|
|
+ <span
|
|
|
+ class="highlight-name"
|
|
|
+ @click="goEntPortrayal(scope.row.ent)"
|
|
|
+ >{{ scope.row.entName }}</span
|
|
|
+ >
|
|
|
</div>
|
|
|
<div v-if="scope.row.type === '2'">
|
|
|
<span>目标业主:</span>
|
|
|
- <span class="highlight-name" @click="goUnitPortrayal(scope.row.ent)">{{scope.row.entName}}</span>
|
|
|
+ <span
|
|
|
+ class="highlight-name"
|
|
|
+ @click="goUnitPortrayal(scope.row.ent)"
|
|
|
+ >{{ scope.row.entName }}</span
|
|
|
+ >
|
|
|
</div>
|
|
|
<div>
|
|
|
<span>成交时间:</span
|
|
|
><span
|
|
|
- >{{scope.row.rangeTimeStart }}至{{scope.row.rangeTimeEnd }}</span>
|
|
|
+ >{{ scope.row.rangeTimeStart }}至{{
|
|
|
+ scope.row.rangeTimeEnd
|
|
|
+ }}</span
|
|
|
+ >
|
|
|
</div>
|
|
|
- <div v-if="scope.row.match">
|
|
|
+ <div class="ellipsis-1" v-if="scope.row.match">
|
|
|
<span>关键词:</span>
|
|
|
- <span>{{ scope.row.match + (scope.row.exactMatch === '1' ? '(精准)': '(模糊)')}}</span>
|
|
|
+ <span>{{
|
|
|
+ scope.row.match +
|
|
|
+ (scope.row.exactMatch === '1' ? '(精准)' : '(模糊)')
|
|
|
+ }}</span>
|
|
|
</div>
|
|
|
- <div v-if="scope.row.matchRange">
|
|
|
+ <div class="ellipsis-1" v-if="scope.row.matchRange">
|
|
|
<span>搜索范围:</span
|
|
|
><span>{{ scope.row.matchRange | formatSelectType }}</span>
|
|
|
</div>
|
|
|
- <div v-if="scope.row.area">
|
|
|
- <span>项目地区:</span
|
|
|
- ><span>{{ scope.row.area }}</span>
|
|
|
+ <div class="ellipsis-1" v-if="scope.row.area">
|
|
|
+ <span>项目地区:</span><span>{{ scope.row.area }}</span>
|
|
|
</div>
|
|
|
- <div v-if="scope.row.scopeClass">
|
|
|
+ <div class="ellipsis-1" v-if="scope.row.scopeClass">
|
|
|
<span>行业:</span
|
|
|
><span>{{ getFormatIndustry(scope.row.scopeClass) }}</span>
|
|
|
</div>
|
|
|
- <div v-if="scope.row.buyerClass && scope.row.type === '1'">
|
|
|
- <span>采购单位类型:</span
|
|
|
- ><span>{{ getFormatBuyerClass(scope.row.buyerClass)}}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- <div class="analyse-condition">
|
|
|
- <div v-if="scope.row.type === '1'">
|
|
|
- <span>目标企业:</span>
|
|
|
- <span class="highlight-name" @click="goEntPortrayal(scope.row.ent)">{{scope.row.entName}}</span>
|
|
|
- </div>
|
|
|
- <div v-if="scope.row.type === '2'">
|
|
|
- <span>目标业主:</span>
|
|
|
- <span class="highlight-name" @click="goUnitPortrayal(scope.row.ent)">{{scope.row.entName}}</span>
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- <span>成交时间:</span
|
|
|
- ><span
|
|
|
- >{{scope.row.rangeTimeStart }}至{{scope.row.rangeTimeEnd }}</span>
|
|
|
- </div>
|
|
|
- <div class="ellipsis-1" v-if="scope.row.match" >
|
|
|
- <span>关键词:</span>
|
|
|
- <span>{{ scope.row.match + (scope.row.exactMatch === '1' ? '(精准)': '(模糊)')}}</span>
|
|
|
- </div>
|
|
|
- <div class="ellipsis-1" v-if="scope.row.matchRange">
|
|
|
- <span>搜索范围:</span
|
|
|
- ><span>{{ scope.row.matchRange | formatSelectType }}</span>
|
|
|
- </div>
|
|
|
- <div class="ellipsis-1" v-if="scope.row.area">
|
|
|
- <span>项目地区:</span
|
|
|
- ><span>{{ scope.row.area }}</span>
|
|
|
- </div>
|
|
|
- <div class="ellipsis-1" v-if="scope.row.scopeClass">
|
|
|
- <span>行业:</span
|
|
|
- ><span>{{ getFormatIndustry(scope.row.scopeClass)}}</span>
|
|
|
- </div>
|
|
|
- <div class="ellipsis-1" v-if="scope.row.buyerClass && scope.row.type === '1'">
|
|
|
+ <div
|
|
|
+ class="ellipsis-1"
|
|
|
+ v-if="scope.row.buyerClass && scope.row.type === '1'"
|
|
|
+ >
|
|
|
<span>采购单位类型:</span
|
|
|
- ><span>{{ getFormatBuyerClass(scope.row.buyerClass)}}</span>
|
|
|
- </div>
|
|
|
+ ><span>{{
|
|
|
+ getFormatBuyerClass(scope.row.buyerClass)
|
|
|
+ }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </el-tooltip>
|
|
|
+ </div>
|
|
|
+ </el-tooltip>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column min-width="100" label="操作" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <a v-if="scope.row.s_pdfUrl" class="text-button" :download="scope.row.fileName + '.pdf'" :href="scope.row.s_pdfUrl" target="_blank">下载</a>
|
|
|
+ <a
|
|
|
+ v-if="scope.row.s_pdfUrl"
|
|
|
+ class="text-button"
|
|
|
+ :download="scope.row.fileName + '.pdf'"
|
|
|
+ :href="scope.row.s_pdfUrl"
|
|
|
+ target="_blank"
|
|
|
+ >下载</a
|
|
|
+ >
|
|
|
<span v-else>--</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
- <empty v-show="showEmpty">
|
|
|
+ <empty v-show="showEmpty">
|
|
|
<div class="flex-c-c center">
|
|
|
- <div style="width:310px;text-align: center">暂无下载记录,您可前往查看市场分析定制报告,精准分析客户、竞对、市场</div>
|
|
|
- <el-button class="view-report-btn" type="primary" @click="viewReport">查看报告</el-button>
|
|
|
+ <div style="width: 310px; text-align: center">
|
|
|
+ 暂无下载记录,您可前往查看市场分析定制报告,精准分析客户、竞对、市场
|
|
|
+ </div>
|
|
|
+ <el-button class="view-report-btn" type="primary" @click="viewReport"
|
|
|
+ >查看报告</el-button
|
|
|
+ >
|
|
|
</div>
|
|
|
</empty>
|
|
|
|
|
@@ -241,7 +337,6 @@
|
|
|
</el-pagination>
|
|
|
</div>
|
|
|
</section>
|
|
|
-
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -255,7 +350,7 @@ export default {
|
|
|
components: {
|
|
|
Empty
|
|
|
},
|
|
|
- data () {
|
|
|
+ data() {
|
|
|
return {
|
|
|
listState: {
|
|
|
loaded: true, // 是否已经搜索过
|
|
@@ -292,9 +387,10 @@ export default {
|
|
|
}
|
|
|
],
|
|
|
typeObj: {
|
|
|
- '1': '企业中标分析报告',
|
|
|
- '2': '业主采购分析报告',
|
|
|
- '3': '市场分析定制报告'
|
|
|
+ 1: '企业中标分析报告',
|
|
|
+ 2: '业主采购分析报告',
|
|
|
+ 3: '市场分析定制报告',
|
|
|
+ 4: '投标企业信用报告'
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -344,7 +440,7 @@ export default {
|
|
|
if (!value[key].length) {
|
|
|
keyArr.push(key)
|
|
|
} else {
|
|
|
- for(const item of value[key]) {
|
|
|
+ for (const item of value[key]) {
|
|
|
valueArr.push(key + '_' + item)
|
|
|
}
|
|
|
}
|
|
@@ -354,17 +450,17 @@ export default {
|
|
|
return obj.industryText
|
|
|
},
|
|
|
FormatKeys: function (keys) {
|
|
|
- if(!keys) return '-'
|
|
|
+ if (!keys) return '-'
|
|
|
let tempStr = '-'
|
|
|
const tempResult = []
|
|
|
const tempList = JSON.parse(keys)
|
|
|
tempList.forEach(function (v) {
|
|
|
v.a_key.forEach(function (k) {
|
|
|
let key = []
|
|
|
- if(k.key) {
|
|
|
+ if (k.key) {
|
|
|
key = key.concat(k.key)
|
|
|
}
|
|
|
- if(k.appendkey) {
|
|
|
+ if (k.appendkey) {
|
|
|
key = key.concat(k.appendkey)
|
|
|
}
|
|
|
tempResult.push({
|
|
@@ -376,11 +472,12 @@ export default {
|
|
|
tempStr = tempResult
|
|
|
.map(function (v) {
|
|
|
return v.key.join(' ') + '(' + v.type + ')'
|
|
|
- }).join(',')
|
|
|
+ })
|
|
|
+ .join(',')
|
|
|
return tempStr
|
|
|
},
|
|
|
formatSelectType: function (value) {
|
|
|
- if(!value) return '-'
|
|
|
+ if (!value) return '-'
|
|
|
const arr = value.split(',')
|
|
|
const strArr = []
|
|
|
const str = ''
|
|
@@ -390,15 +487,15 @@ export default {
|
|
|
winner: '中标企业',
|
|
|
agency: '招标代理机构'
|
|
|
}
|
|
|
- for(let item of arr) {
|
|
|
+ for (let item of arr) {
|
|
|
strArr.push(obj[item])
|
|
|
}
|
|
|
return strArr.join(',')
|
|
|
},
|
|
|
formatType: function (value) {
|
|
|
- if(!value) return '-'
|
|
|
+ if (!value) return '-'
|
|
|
let result = ''
|
|
|
- switch(Number(value)) {
|
|
|
+ switch (Number(value)) {
|
|
|
case 1:
|
|
|
result = '企业中标分析报告'
|
|
|
break
|
|
@@ -408,14 +505,15 @@ export default {
|
|
|
case 3:
|
|
|
result = '市场分析定制报告'
|
|
|
break
|
|
|
+ case 4:
|
|
|
+ result = '投标企业信用报告'
|
|
|
+ break
|
|
|
}
|
|
|
return result
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
|
- ...mapGetters('user', [
|
|
|
- 'isMember'
|
|
|
- ]),
|
|
|
+ ...mapGetters('user', ['isMember']),
|
|
|
showEmpty() {
|
|
|
return this.listState.list.length === 0 && this.listState.loaded
|
|
|
}
|
|
@@ -431,7 +529,7 @@ export default {
|
|
|
return obj.industryText
|
|
|
},
|
|
|
// 格式化采购单位
|
|
|
- getFormatBuyerClass (val) {
|
|
|
+ getFormatBuyerClass(val) {
|
|
|
const obj = formatBuyerClass(val)
|
|
|
return obj.buyerClassText
|
|
|
},
|
|
@@ -443,7 +541,7 @@ export default {
|
|
|
const text = map[m] || map.content
|
|
|
return text
|
|
|
},
|
|
|
- async getList () {
|
|
|
+ async getList() {
|
|
|
try {
|
|
|
const query = {
|
|
|
page: this.listState.pageNum,
|
|
@@ -458,21 +556,30 @@ export default {
|
|
|
if (this.listState.pageNum === 1) {
|
|
|
this.listState.total = data.count
|
|
|
}
|
|
|
- const list = data.list?.map((v) => {
|
|
|
- if (v.s_rangeTime) {
|
|
|
- const rangeTimeArr = v.s_rangeTime.split('-')
|
|
|
- v.rangeTimeStart = new Date(rangeTimeArr[0] * 1000).getTime()
|
|
|
- v.rangeTimeEnd = new Date(rangeTimeArr[1] * 1000).getTime()
|
|
|
- } else if(v.timeRange) {
|
|
|
- const rangeTimeArr = v.timeRange.split('_')
|
|
|
- v.rangeTimeStart = rangeTimeArr[0]
|
|
|
- v.rangeTimeEnd = rangeTimeArr[1]
|
|
|
- }
|
|
|
- const creatTime = v.l_createTime ? new Date(v.l_createTime * 1000).pattern('yyyyMMdd') : new Date().pattern('yyyyMMdd')
|
|
|
- const typeName = v.type ? this.typeObj[v.type.toString()] : '分析报告'
|
|
|
- v.fileName = `剑鱼标讯-${typeName}-${creatTime}`
|
|
|
- return v
|
|
|
- }) || []
|
|
|
+ const list =
|
|
|
+ data.list?.map((v) => {
|
|
|
+ if (v.s_rangeTime) {
|
|
|
+ const rangeTimeArr = v.s_rangeTime.split('-')
|
|
|
+ v.rangeTimeStart = new Date(rangeTimeArr[0] * 1000).getTime()
|
|
|
+ v.rangeTimeEnd = new Date(rangeTimeArr[1] * 1000).getTime()
|
|
|
+ } else if (v.timeRange) {
|
|
|
+ const rangeTimeArr = v.timeRange.split('_')
|
|
|
+ v.rangeTimeStart = rangeTimeArr[0]
|
|
|
+ v.rangeTimeEnd = rangeTimeArr[1]
|
|
|
+ }
|
|
|
+ const creatTime = v.l_createTime
|
|
|
+ ? new Date(v.l_createTime * 1000).pattern('yyyyMMdd')
|
|
|
+ : new Date().pattern('yyyyMMdd')
|
|
|
+ if (v.type === '4') {
|
|
|
+ v.fileName = v.ent
|
|
|
+ } else {
|
|
|
+ const typeName = v.type
|
|
|
+ ? this.typeObj[v.type.toString()]
|
|
|
+ : '分析报告'
|
|
|
+ v.fileName = `剑鱼标讯-${typeName}-${creatTime}`
|
|
|
+ }
|
|
|
+ return v
|
|
|
+ }) || []
|
|
|
this.listState.list = list || []
|
|
|
} else {
|
|
|
throw new Error(code)
|
|
@@ -493,11 +600,11 @@ export default {
|
|
|
this.listState.pageSize = size
|
|
|
this.getList()
|
|
|
},
|
|
|
- async getBalanceList () {
|
|
|
+ async getBalanceList() {
|
|
|
const { data = {}, error_code: code } = await getPDFPackBalance()
|
|
|
- if(code === 0 && data) {
|
|
|
- for(let item of this.cardList) {
|
|
|
- if(data[item.type]) {
|
|
|
+ if (code === 0 && data) {
|
|
|
+ for (let item of this.cardList) {
|
|
|
+ if (data[item.type]) {
|
|
|
item.total = data[item.type].total
|
|
|
item.minEndTime = data[item.type].minEndTime
|
|
|
}
|
|
@@ -505,11 +612,14 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
// 立即充值
|
|
|
- goRecharge (item) {
|
|
|
- window.open(`/swordfish/page_big_pc/order/download-pack/${item.flag}`, '_self')
|
|
|
+ goRecharge(item) {
|
|
|
+ window.open(
|
|
|
+ `/swordfish/page_big_pc/order/download-pack/${item.flag}`,
|
|
|
+ '_self'
|
|
|
+ )
|
|
|
},
|
|
|
// 查看余额明细页面
|
|
|
- goBalance (item) {
|
|
|
+ goBalance(item) {
|
|
|
this.$router.push({
|
|
|
path: '/report/download_record',
|
|
|
query: {
|
|
@@ -519,184 +629,256 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
// 查看报告
|
|
|
- viewReport () {
|
|
|
+ viewReport() {
|
|
|
this.$router.push('/desktop/report_analysis')
|
|
|
},
|
|
|
// 跳转企业画像
|
|
|
- goEntPortrayal (id) {
|
|
|
- if(this.isMember) {
|
|
|
+ goEntPortrayal(id) {
|
|
|
+ if (this.isMember) {
|
|
|
// 大会员
|
|
|
window.open(`/swordfish/page_big_pc/ent_portrait/${id}`, '_blank')
|
|
|
} else {
|
|
|
// 非大会员
|
|
|
- window.open(`/swordfish/page_big_pc/svip/ent_ser_portrait/${id}`, '_blank')
|
|
|
+ window.open(
|
|
|
+ `/swordfish/page_big_pc/svip/ent_ser_portrait/${id}`,
|
|
|
+ '_blank'
|
|
|
+ )
|
|
|
}
|
|
|
},
|
|
|
// 进入采购单位画像
|
|
|
- goUnitPortrayal (name) {
|
|
|
+ goUnitPortrayal(name) {
|
|
|
window.open(`/swordfish/page_big_pc/unit_portrayal/${name}`, '_blank')
|
|
|
+ },
|
|
|
+ goViewSample() {
|
|
|
+ // const link = this.$router.resolve({
|
|
|
+ // path: '/free/report/preview',
|
|
|
+ // query: {
|
|
|
+ // source: 'bidCreditReportPreview'
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ // window.open(link.href, '_blank')
|
|
|
+ window.open(
|
|
|
+ '/swordfish/page_big_pc/free/report/preview?source=bidCreditReportPreview',
|
|
|
+ '_blank'
|
|
|
+ )
|
|
|
+ },
|
|
|
+ goBuyCreditReport() {
|
|
|
+ window.open('/swordfish/page_big_pc/order/credit-report', '_blank')
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
- $char_color: #1d1d1d;
|
|
|
- .in-app {
|
|
|
- .report-download-record {
|
|
|
- padding: 24px;
|
|
|
- }
|
|
|
+$char_color: #1d1d1d;
|
|
|
+.in-app {
|
|
|
+ .report-download-record {
|
|
|
+ padding: 24px;
|
|
|
}
|
|
|
+}
|
|
|
|
|
|
- .report-download-record{
|
|
|
- margin: 0 auto;
|
|
|
- .page-header{
|
|
|
- height: 40px;
|
|
|
- line-height:40px;
|
|
|
- vertical-align: text-bottom;
|
|
|
- h1{
|
|
|
- display: inline-block;
|
|
|
- font-size: 24px;
|
|
|
- line-height:38px;
|
|
|
- color: $char_color;
|
|
|
- margin-right: 12px;
|
|
|
- }
|
|
|
- em{
|
|
|
- font-size:12px;
|
|
|
- color: #999;
|
|
|
- line-height:18px;
|
|
|
- }
|
|
|
+.report-download-record {
|
|
|
+ margin: 0 auto;
|
|
|
+ .page-header {
|
|
|
+ height: 40px;
|
|
|
+ line-height: 40px;
|
|
|
+ vertical-align: text-bottom;
|
|
|
+ h1 {
|
|
|
+ display: inline-block;
|
|
|
+ font-size: 24px;
|
|
|
+ line-height: 38px;
|
|
|
+ color: $char_color;
|
|
|
+ margin-right: 12px;
|
|
|
}
|
|
|
- .box-container{
|
|
|
- border-radius: 4px;
|
|
|
- background: #fff;
|
|
|
- .box-title{
|
|
|
- font-size:16px;
|
|
|
- color: $char_color;
|
|
|
- line-height:24px;
|
|
|
- margin-bottom: 12px;
|
|
|
- }
|
|
|
+ }
|
|
|
+ .box-container {
|
|
|
+ border-radius: 4px;
|
|
|
+ background: #fff;
|
|
|
+ .box-title {
|
|
|
+ font-size: 16px;
|
|
|
+ color: $char_color;
|
|
|
+ line-height: 24px;
|
|
|
+ margin-bottom: 12px;
|
|
|
}
|
|
|
- .balance-box{
|
|
|
- margin: 24px 0 16px;
|
|
|
- padding: 12px 24px 32px;
|
|
|
- .card-row{
|
|
|
- display: grid;
|
|
|
- grid-template-columns: 1fr 1fr 1fr;
|
|
|
- grid-column-gap: 24px;
|
|
|
- }
|
|
|
- .card-col{
|
|
|
- background: url(~@/assets/images/report/balance-bg.png) no-repeat center;
|
|
|
- background-size: cover;
|
|
|
- padding: 24px 32px;
|
|
|
- border-radius: 8px;
|
|
|
- box-shadow: 0 4px 8px rgba(0,0,0, 0.08);
|
|
|
- font-size: 16px;
|
|
|
- color: $char_color;
|
|
|
- .num{
|
|
|
- margin: 14px 0 20px;
|
|
|
- display: flex;
|
|
|
- align-items: flex-end;
|
|
|
- strong {
|
|
|
- font-size:40px;
|
|
|
- }
|
|
|
- >span{
|
|
|
- margin-right: 11px;
|
|
|
- }
|
|
|
+ .balance-tips {
|
|
|
+ margin-left: 12px;
|
|
|
+ font-size: 12px;
|
|
|
+ color: #999;
|
|
|
+ line-height: 18px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .balance-box {
|
|
|
+ margin: 24px 0 16px;
|
|
|
+ padding: 12px 24px 32px;
|
|
|
+ .card-row {
|
|
|
+ display: grid;
|
|
|
+ grid-template-columns: 1fr 1fr 1fr;
|
|
|
+ grid-column-gap: 24px;
|
|
|
+ }
|
|
|
+ .card-col {
|
|
|
+ background: url(~@/assets/images/report/balance-bg.png) no-repeat center;
|
|
|
+ background-size: cover;
|
|
|
+ padding: 24px 32px;
|
|
|
+ border-radius: 8px;
|
|
|
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08);
|
|
|
+ font-size: 16px;
|
|
|
+ color: $char_color;
|
|
|
+ .num {
|
|
|
+ margin: 14px 0 20px;
|
|
|
+ display: flex;
|
|
|
+ align-items: flex-end;
|
|
|
+ strong {
|
|
|
+ font-size: 40px;
|
|
|
}
|
|
|
+ > span {
|
|
|
+ margin-right: 11px;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- .date{
|
|
|
- font-size:14px;
|
|
|
- color: #999;
|
|
|
- line-height:22px;
|
|
|
+ .date {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #999;
|
|
|
+ line-height: 22px;
|
|
|
|
|
|
- span:nth-of-type(1) {
|
|
|
- margin-right: 12px;
|
|
|
- }
|
|
|
+ span:nth-of-type(1) {
|
|
|
+ margin-right: 12px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- .record-box{
|
|
|
- padding: 12px 20px 24px;
|
|
|
- }
|
|
|
- .recharge-button{
|
|
|
- padding: 4px 17px;
|
|
|
- font-size: 14px;
|
|
|
- line-height: 22px;
|
|
|
+ }
|
|
|
+ .record-box {
|
|
|
+ padding: 12px 20px 24px;
|
|
|
+ }
|
|
|
+ .recharge-button {
|
|
|
+ padding: 4px 17px;
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 22px;
|
|
|
+ }
|
|
|
+ .text-button {
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 22px;
|
|
|
+ color: #2abed1;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ .highlight-name {
|
|
|
+ color: #2abed1;
|
|
|
+ cursor: pointer;
|
|
|
+ text-decoration: underline;
|
|
|
+ }
|
|
|
+ .icon-more {
|
|
|
+ font-size: 14px;
|
|
|
+ margin-left: 4px;
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+ .max-line-6 {
|
|
|
+ display: -webkit-box;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ -webkit-line-clamp: 6;
|
|
|
+ line-clamp: 6;
|
|
|
+ -webkit-box-orient: vertical;
|
|
|
+ box-orient: vertical;
|
|
|
+ }
|
|
|
+ .ellipsis-1 {
|
|
|
+ display: -webkit-box;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ -webkit-line-clamp: 1;
|
|
|
+ line-clamp: 1;
|
|
|
+ -webkit-box-orient: vertical;
|
|
|
+ box-orient: vertical;
|
|
|
+ }
|
|
|
+ .analyse-condition {
|
|
|
+ color: #1d1d1d;
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 22px;
|
|
|
+ &:hover {
|
|
|
+ color: #2abed1;
|
|
|
}
|
|
|
- .text-button{
|
|
|
+ }
|
|
|
+ .el-pagination-container {
|
|
|
+ margin-right: 0;
|
|
|
+ margin-top: 24px;
|
|
|
+ padding-bottom: 18px;
|
|
|
+ }
|
|
|
+ .view-report-btn {
|
|
|
+ font-size: 16px;
|
|
|
+ line-height: 24px;
|
|
|
+ padding: 6px 34px;
|
|
|
+ margin-top: 56px;
|
|
|
+ border-radius: 6px;
|
|
|
+ }
|
|
|
+ ::v-deep {
|
|
|
+ .el-table .cell {
|
|
|
font-size: 14px;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #1d1d1d;
|
|
|
line-height: 22px;
|
|
|
- color: #2abed1;
|
|
|
- cursor: pointer;
|
|
|
+ border-bottom-color: rgba(255, 255, 255, 0.5);
|
|
|
}
|
|
|
- .highlight-name{
|
|
|
- color: #2abed1;
|
|
|
- cursor: pointer;
|
|
|
- text-decoration: underline;
|
|
|
- }
|
|
|
- .icon-more{
|
|
|
- font-size:14px;
|
|
|
- margin-left: 4px;
|
|
|
- font-weight:bold;
|
|
|
+ .el-table th.is-leaf {
|
|
|
+ line-height: 18px;
|
|
|
+ background: #f7f9fc;
|
|
|
+ border-bottom-color: transparent;
|
|
|
}
|
|
|
- .max-line-6 {
|
|
|
- display: -webkit-box;
|
|
|
- overflow: hidden;
|
|
|
- text-overflow: ellipsis;
|
|
|
- -webkit-line-clamp: 6;
|
|
|
- line-clamp: 6;
|
|
|
- -webkit-box-orient: vertical;
|
|
|
- box-orient: vertical;
|
|
|
+ .empty-content-position.v-column .empty-main {
|
|
|
+ margin-top: 0;
|
|
|
}
|
|
|
- .ellipsis-1 {
|
|
|
- display: -webkit-box;
|
|
|
- overflow: hidden;
|
|
|
- text-overflow: ellipsis;
|
|
|
- -webkit-line-clamp: 1;
|
|
|
- line-clamp: 1;
|
|
|
- -webkit-box-orient: vertical;
|
|
|
- box-orient: vertical;
|
|
|
+ }
|
|
|
+ .credit-report-box {
|
|
|
+ height: 60px;
|
|
|
+ padding: 0 24px;
|
|
|
+ margin-bottom: 16px;
|
|
|
+ background: linear-gradient(90deg, #e3fcff 0%, #ffffff 100%);
|
|
|
+ border-radius: 4px;
|
|
|
+ border: 1px solid #87dfea;
|
|
|
+ overflow: hidden;
|
|
|
+ .credit-report-content {
|
|
|
+ position: relative;
|
|
|
}
|
|
|
- .analyse-condition {
|
|
|
+ .credit-report-title {
|
|
|
+ margin-right: 12px;
|
|
|
color: #1d1d1d;
|
|
|
+ font-size: 16px;
|
|
|
+ line-height: 24px;
|
|
|
+ white-space: nowrap;
|
|
|
+ }
|
|
|
+ .credit-report-desc {
|
|
|
+ position: relative;
|
|
|
+ color: #686868;
|
|
|
font-size: 14px;
|
|
|
line-height: 22px;
|
|
|
- &:hover {
|
|
|
- color: #2abed1;
|
|
|
- }
|
|
|
+ z-index: 10;
|
|
|
}
|
|
|
- .el-pagination-container {
|
|
|
- margin-right: 0;
|
|
|
- margin-top:24px;
|
|
|
- padding-bottom: 18px;
|
|
|
+ .report-action {
|
|
|
+ position: relative;
|
|
|
+ z-index: 10;
|
|
|
+ white-space: nowrap;
|
|
|
}
|
|
|
- .view-report-btn{
|
|
|
- font-size:16px;
|
|
|
- line-height: 24px;
|
|
|
- padding: 6px 34px;
|
|
|
- margin-top:56px;
|
|
|
- border-radius: 6px;
|
|
|
+ .view-report-sample {
|
|
|
+ color: $color_main;
|
|
|
+ cursor: pointer;
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 22px;
|
|
|
}
|
|
|
- ::v-deep {
|
|
|
- .el-table .cell {
|
|
|
- font-size: 14px;
|
|
|
- font-weight: 400;
|
|
|
- color: #1d1d1d;
|
|
|
- line-height: 22px;
|
|
|
- border-bottom-color: rgba(255, 255, 255, 0.5);
|
|
|
- }
|
|
|
- .el-table th.is-leaf {
|
|
|
- line-height: 18px;
|
|
|
- background: #f7f9fc;
|
|
|
- border-bottom-color: transparent;
|
|
|
- }
|
|
|
- .empty-content-position.v-column .empty-main {
|
|
|
- margin-top:0;
|
|
|
- }
|
|
|
+ .report-to-buy {
|
|
|
+ margin-left: 20px;
|
|
|
+ background: $color_main;
|
|
|
+ color: #fff;
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 22px;
|
|
|
+ padding: 4px 24px;
|
|
|
+ border-radius: 4px;
|
|
|
+ }
|
|
|
+ .credit-report-icon {
|
|
|
+ position: absolute;
|
|
|
+ top: 50%;
|
|
|
+ right: -80px;
|
|
|
+ width: 112px;
|
|
|
+ height: 60px;
|
|
|
+ transform: translateY(-50%);
|
|
|
+ z-index: 9;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+}
|
|
|
</style>
|