Commit 84505e98 authored by yht15023815643's avatar yht15023815643

企业标签、业务往来

parent ae6a8eeb
<template> <template>
<div class="client-details"> <div class="client-details">
<el-dialog <el-drawer
:visible.sync="drawer" :visible.sync="drawer"
size="80%" size="60%"
:title="title" custom-class="client-drawer"
custom-class="client-dialog"
:with-header="false" :with-header="false"
@closed="cancel"> @closed="cancel">
<head-detail-form <head-detail-form
:title="title"
:form-data="formData" :form-data="formData"
:query-params="queryParams" :query-params="queryParams"
:total="tableDataTotal" :total="tableDataTotal"
...@@ -22,15 +22,23 @@ ...@@ -22,15 +22,23 @@
:tableDataTotal="tableDataTotal" :tableDataTotal="tableDataTotal"
:queryParams="queryParams" :queryParams="queryParams"
@handle-current-change="handleCurrentChange" @handle-current-change="handleCurrentChange"
style="margin: 12px;"
> >
<template slot="sourceType" slot-scope="scope"> <template slot="projectAllName" slot-scope="scope">
<div class="flex-box"> <div class="flex-box">
<div class="a-link" @click="linkTo(scope)" v-if="scope.row.sourceId&&scope.row.sourceType=='中标业绩'" v-html="scope.row.sourceType" style="cursor: pointer"></div> <img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.snapshootPic" @click="handlePic(scope.row.snapshootPic, true)"/>
<span v-else v-html="scope.row.sourceType || '--'"></span> <div class="a-link" @click="linkTo(scope)" v-if="scope.row.id&&scope.row.projectAllName" v-html="scope.row.projectAllName" style="cursor: pointer"></div>
<span v-else v-html="scope.row.projectAllName || '--'"></span>
</div> </div>
</template> </template>
<template slot="province" slot-scope="scope">
{{scope.row.province}}{{`${scope.row.city?'-'+scope.row.city:''}`}}
</template>
<template slot="lowerRate" slot-scope="scope">
<span>{{scope.row.lowerRate ? scope.row.lowerRate+'%' : '--'}}</span>
</template>
</tables> </tables>
</el-dialog> </el-drawer>
</div> </div>
</template> </template>
...@@ -54,20 +62,21 @@ export default { ...@@ -54,20 +62,21 @@ export default {
drawer: false, drawer: false,
queryParams: { queryParams: {
cid: this.companyId, cid: this.companyId,
companyId: this.data.companyId, unitId: this.data.projectUnitId,
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 20
}, },
formData: [ formData: [
{ type: 6, fieldName: 'money', value: '', placeholder: '合同金额', startMoney: 'amountMin', endMoney: 'amountMax' },
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目/工程名称查询', options: []}, { type: 3, fieldName: 'keys', value: '', placeholder: '输入项目/工程名称查询', options: []},
], ],
forData: [ forData: [
{label: '项目名称', prop: 'projectName', fixed: true}, {label: '合作项目/工程名称', prop: 'projectAllName', width: '720', fixed: true, slot: true},
{label: '公布时间', prop: 'time', width: '100'}, {label: '项目/工程金额(万元)', prop: 'winBidAmount', width: '160'},
{label: '本次合同金额(万元)', prop: 'amount', width: '160'}, {label: '合作时间', prop: 'winBidTime', width: '100'},
{label: '项目类型', prop: 'projectTtype', width: '130'}, {label: '项目地区', prop: 'province', width: '160', slot: true},
{label: '数据来源', prop: 'sourceType', width: '90', slot: true} {label: '项目类型', prop: 'boundType', width: '130'},
{label: '工期(天)', prop: 'period', width: '90'},
{label: '下浮率', prop: 'lowerRate', width: '90', slot: true}
], ],
//列表 //列表
tableLoading:false, tableLoading:false,
...@@ -100,7 +109,7 @@ export default { ...@@ -100,7 +109,7 @@ export default {
}, },
linkTo(scope){ linkTo(scope){
this.drawer = false this.drawer = false
this.$router.push(`/biddetail/${scope.row.sourceId}`) this.$router.push(`/biddetail/${scope.row.id}`)
}, },
cancel() { cancel() {
this.$emit('cancel') this.$emit('cancel')
...@@ -111,27 +120,8 @@ export default { ...@@ -111,27 +120,8 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.client-details { .client-details {
::v-deep .client-dialog{ ::v-deep .client-drawer{
width: 80%;
min-width: 900px;
background: #FFFFFF; background: #FFFFFF;
.el-dialog__body{
padding-top: 0;
}
.fixed-table{
.el-table__header-wrapper,.el-table__fixed-header-wrapper{
top: 0;
}
}
.el-dialog__header{
border-bottom: 1px solid #E1E1E1;
}
.el-dialog__title{
font-size: 16px;
color: #232323;
font-weight: bold;
margin-right: 4px;
}
} }
.tip-img{ .tip-img{
width: 14px; width: 14px;
......
...@@ -25,19 +25,16 @@ ...@@ -25,19 +25,16 @@
<router-link :to="scope.row.uipId?`/enterprise/${encodeStr(scope.row.projectUnitId)}`:`/company/${encodeStr(scope.row.projectUnitId)}`" tag="a" class="a-link" v-if="scope.row.projectUnitId&&scope.row.companyName" v-html="scope.row.companyName"></router-link> <router-link :to="scope.row.uipId?`/enterprise/${encodeStr(scope.row.projectUnitId)}`:`/company/${encodeStr(scope.row.projectUnitId)}`" tag="a" class="a-link" v-if="scope.row.projectUnitId&&scope.row.companyName" v-html="scope.row.companyName"></router-link>
<div v-else v-html="scope.row.companyName || '--'"></div> <div v-else v-html="scope.row.companyName || '--'"></div>
</template> </template>
<!-- <template slot="projectAllName" slot-scope="scope"> <template slot="projectAllName" slot-scope="scope">
<router-link :to="`/biddetail/${scope.row.projectInfo.projectId}`" tag="a" class="a-link" v-if="scope.row.projectInfo.projectId&&scope.row.projectInfo.projectAllName" >{{ scope.row.projectInfo.projectAllName }}</router-link> <router-link :to="`/biddetail/${scope.row.projectInfo.projectId}`" tag="a" class="a-link" v-if="scope.row.projectInfo.projectId&&scope.row.projectInfo.projectAllName" >{{ scope.row.projectInfo.projectAllName }}</router-link>
<div v-else v-html="scope.row.projectInfo&&scope.row.projectInfo.projectAllName || '--'"></div> <div v-else v-html="scope.row.projectInfo&&scope.row.projectInfo.projectAllName || '--'"></div>
<div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 ></div> <div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 ></div>
</template> -->
<template slot="count" slot-scope="scope">
<div v-if="scope.row.count>0" class="a-link" style="cursor: pointer;" @click="handleClick($event, scope.row)" >{{scope.row.count}}</div>
</template> </template>
</tables> </tables>
<client-detail <client-detail
v-if="isDetails" v-if="isDetails"
:data="rowData" :data="rowData"
:title="title" :title="'合作项目/工程明细'"
:company-id="companyId" :company-id="companyId"
@cancel="isDetails=false" /> @cancel="isDetails=false" />
</div> </div>
...@@ -56,23 +53,21 @@ export default { ...@@ -56,23 +53,21 @@ export default {
}, },
data() { data() {
return { return {
title:'',
queryParams: { queryParams: {
cid: this.companyId, cid: this.companyId,
sort: 3, sort: 3,
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 20
}, },
defaultSort: {}, defaultSort: {prop: 'time', order: 'descending'},
forData: [ forData: [
{label: '客户名称', prop: 'companyName', minWidth: '350', slot: true}, {label: '客户名称', prop: 'companyName', minWidth: '350', slot: true},
// {label: '合作项目/工程名称', prop: 'projectAllName', minWidth: '400', slot: true, sortable: 'custom', descending: '5', ascending: '6'}, {label: '合作项目/工程名称', prop: 'projectAllName', minWidth: '400', slot: true, sortable: 'custom', descending: '5', ascending: '6'},
{label: '最近合作时间', prop: 'time', minWidth: '140', sortable: 'custom', descending: '3', ascending: '4'},
{label: '合作总金额(万元)', prop: 'amount', minWidth: '150', sortable: 'custom', descending: '1', ascending: '2'}, {label: '合作总金额(万元)', prop: 'amount', minWidth: '150', sortable: 'custom', descending: '1', ascending: '2'},
{label: '合作次数', prop: 'count', minWidth: '150', sortable: 'custom',slot: true, descending: '5', ascending: '6'}, {label: '最近一次合作时间', prop: 'time', minWidth: '140', sortable: 'custom', descending: '3', ascending: '4'}
], ],
formData: [ formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '搜索客户名称', options: []}, { type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询', options: []},
], ],
//列表 //列表
tableLoading:false, tableLoading:false,
...@@ -108,8 +103,7 @@ export default { ...@@ -108,8 +103,7 @@ export default {
}, },
handleClick(e, data) { handleClick(e, data) {
this.rowData = data this.rowData = data
this.isDetails = true; this.isDetails = true
this.title = '与客户'+data.companyName+'合作记录'
}, },
handleDetail(row){ handleDetail(row){
if(row.sourceUrl){ if(row.sourceUrl){
......
...@@ -25,14 +25,16 @@ ...@@ -25,14 +25,16 @@
<router-link :to="`/company/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName" v-html="scope.row.companyName"></router-link> <router-link :to="`/company/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName" v-html="scope.row.companyName"></router-link>
<div v-else v-html="scope.row.companyName || '--'"></div> <div v-else v-html="scope.row.companyName || '--'"></div>
</template> </template>
<template slot="count" slot-scope="scope"> <template slot="projectAllName" slot-scope="scope">
<div v-if="scope.row.count>0" class="a-link" style="cursor: pointer;" @click="handleClick($event, scope.row)" >{{scope.row.count}}</div> <router-link :to="`/biddetail/${scope.row.projectInfo.projectId}`" tag="a" class="a-link" v-if="scope.row.projectInfo.projectId&&scope.row.projectInfo.projectAllName" >{{ scope.row.projectInfo.projectAllName }}</router-link>
<div v-else v-html="scope.row.projectInfo&&scope.row.projectInfo.projectAllName || '--'"></div>
<div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 ></div>
</template> </template>
</tables> </tables>
<client-detail <client-detail
v-if="isDetails" v-if="isDetails"
:data="rowData" :data="rowData"
:title="title" :title="'合作项目/工程明细'"
:company-id="companyId" :company-id="companyId"
@cancel="isDetails=false" /> @cancel="isDetails=false" />
</div> </div>
...@@ -51,22 +53,21 @@ export default { ...@@ -51,22 +53,21 @@ export default {
}, },
data() { data() {
return { return {
title:'',
queryParams: { queryParams: {
cid: this.companyId, cid: this.companyId,
sort: 5, sort: 3,
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 20
}, },
defaultSort: {}, defaultSort: {prop: 'time', order: 'descending'},
forData: [ forData: [
{label: '供应商', prop: 'companyName', minWidth: '350', slot: true}, {label: '供应商', prop: 'companyName', minWidth: '350', slot: true},
{label: '最近合作时间', prop: 'time', minWidth: '140', sortable: 'custom', descending: '3', ascending: '4'}, {label: '合作项目/工程名称', prop: 'projectAllName', minWidth: '400', slot: true, sortable: 'custom', descending: '5', ascending: '6'},
{label: '合作总金额(万元)', prop: 'amount', minWidth: '150', sortable: 'custom', descending: '1', ascending: '2'}, {label: '合作总金额(万元)', prop: 'amount', minWidth: '150', sortable: 'custom', descending: '1', ascending: '2'},
{label: '合作次数', prop: 'count', minWidth: '150', sortable: 'custom',slot: true, descending: '5', ascending: '6'}, {label: '最近一次合作时间', prop: 'time', minWidth: '140', sortable: 'custom', descending: '3', ascending: '4'}
], ],
formData: [ formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '搜索供应商名称', options: []}, { type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询', options: []},
], ],
//列表 //列表
tableLoading:false, tableLoading:false,
...@@ -103,7 +104,6 @@ export default { ...@@ -103,7 +104,6 @@ export default {
handleClick(e, data) { handleClick(e, data) {
this.rowData = data this.rowData = data
this.isDetails = true this.isDetails = true
this.title = '与供应商'+data.companyName+'合作记录'
}, },
handleDetail(row){ handleDetail(row){
if(row.sourceUrl){ if(row.sourceUrl){
......
...@@ -28,19 +28,18 @@ ...@@ -28,19 +28,18 @@
</el-popover> </el-popover>
</div> </div>
<span style="float: left;" :class="!labelArr.includes(companyInfo.businessStatus)?'label-bg1':'label-bg3'" v-if="companyInfo.businessStatus">{{companyInfo.businessStatus}}</span> <span style="float: left;" :class="!labelArr.includes(companyInfo.businessStatus)?'label-bg1':'label-bg3'" v-if="companyInfo.businessStatus">{{companyInfo.businessStatus}}</span>
<span style="float: left;" :style="'background:'+item.bgColor+';color:'+item.fontColor" v-for="(item, index) in labelList" :key="index">{{item.labelName}}</span> <!-- <span style="float: left;" :style="'background:'+item.bgColor+';color:'+item.fontColor" v-for="(item, index) in labelList" :key="index">{{item.labelName}}</span> -->
<template v-if="enterpriseLabel.length > 0"> <template v-if="enterpriseLabel.length > 0">
<template v-for="(item,index) in enterpriseLabel"> <template v-for="(item,index) in enterpriseLabel">
<template v-if="item.children.length > 0"> <template v-if="item.children.length > 0">
<div class="enterpriseLabel-highTech company-highTech"> <div class="enterpriseLabel-highTech company-highTech">
<el-popover <el-popover
width="280"
placement="bottom-start" placement="bottom-start"
popper-class="enterpriseLabel-item" popper-class="enterpriseLabel-item"
trigger="hover"> trigger="hover">
<el-button slot="reference" :style="'background:'+item.bgColor+';color:'+item.fontColor+';border:1px solid '+item.bgColor+';margin: 0;'">{{item.labelName}} <span>{{ item.children.length }}</span><i class="el-icon-arrow-right"></i></el-button> <el-button slot="reference" :style="'background:'+item.bgColor+';color:'+item.fontColor+';border:1px solid '+item.bgColor+';margin: 0;'">{{item.labelName}} <span>{{ item.children.length }}</span><i class="el-icon-arrow-right"></i></el-button>
<p class="highTech-item"> <p class="highTech-item">
<span v-for="(v,i) in item.children" class="enterpriseLabel-children-span" :style="v.linkUri ? 'cursor:pointer;' : ''">{{ v.labelName }}</span> <span v-for="(v,i) in item.children" :key="i" class="enterpriseLabel-children-span" :style="i==item.children.length-1?'':'border-right: 1px solid #E1E1E1;padding-right: 8px;margin-right: 8px;'">{{ v.labelName }}</span>
</p> </p>
</el-popover> </el-popover>
</div> </div>
...@@ -218,7 +217,7 @@ export default { ...@@ -218,7 +217,7 @@ export default {
this.companySwiper() //swiper滚动板块 this.companySwiper() //swiper滚动板块
api.label({companyId:this.companyId}).then(res=>{ api.label({companyId:this.companyId}).then(res=>{
if(res.code==200){ if(res.code==200){
this.labelList = res.data this.enterpriseLabel = res.data
} }
}) })
}, },
...@@ -576,6 +575,30 @@ export default { ...@@ -576,6 +575,30 @@ export default {
overflow: hidden; overflow: hidden;
font-size: 12px; font-size: 12px;
padding: 2px 0 10px 0; padding: 2px 0 10px 0;
::v-deep .enterpriseLabel-item{
padding: 0;
//width: 100%;
max-width: 276px;
margin-top: 8px !important;
.highTech-item{
padding: 10px 12px 0;
font-size: 12px;
color: #333333;
.enterpriseLabel-children-span{
display: inline-block;
padding-right: 8px;
margin-right: 8px;
margin-bottom: 8px;
border-right: 1px solid #E1E1E1;
//cursor:pointer;
}
.enterpriseLabel-children-span:last-child{
padding-right: 0;
margin-right: 0;
border-right: 0;
}
}
}
.company-history, .company-highTech{ .company-history, .company-highTech{
display: inline-block; display: inline-block;
height: 22px; height: 22px;
...@@ -755,28 +778,12 @@ export default { ...@@ -755,28 +778,12 @@ export default {
max-width: 276px; max-width: 276px;
margin-top: 8px !important; margin-top: 8px !important;
} }
.highTech-item{
padding: 10px 12px 0;
font-size: 12px;
color: #333333;
.enterpriseLabel-children-span{
display: inline-block;
padding-right: 8px;
margin-right: 8px;
margin-bottom: 8px;
border-right: 1px solid #E1E1E1;
//cursor:pointer;
}
.enterpriseLabel-children-span:last-child{
padding-right: 0;
margin-right: 0;
border-right: 0;
}
}
.ml-4{ .ml-4{
margin-left: 4px; margin-left: 4px;
} }
} }
::v-deep .dialog-renlin{ ::v-deep .dialog-renlin{
margin-top:40vh !important; margin-top:40vh !important;
.el-dialog__body{ .el-dialog__body{
......
...@@ -131,7 +131,7 @@ ...@@ -131,7 +131,7 @@
<div class="anchor_wrap"> <div class="anchor_wrap">
<div class="anchor_item" v-for="(item,i) in childList" <div class="anchor_item" v-for="(item,i) in childList"
:class="anchorIndex==i?'active_anchor_item':''" :key="i" @click="anchorClick(i)"> :class="anchorIndex==i?'active_anchor_item':''" :key="i" @click="anchorClick(i)">
{{item.type||item.address=='管国企'?provinceId=='110000'||provinceId=='120000'||provinceId=='500000'||provinceId=='310000'?'市管国企':'省管国企':item.address}} {{item.type||(item.address=='管国企'?provinceId=='110000'||provinceId=='120000'||provinceId=='500000'||provinceId=='310000'?'市管国企':'省管国企':item.address)}}
</div> </div>
</div> </div>
</div> </div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment