Commit c500b404 authored by caixingbing's avatar caixingbing

*

parent b9beb501
import request from "@/utils/request";
// 客户信息列表
export function clientPage(data) {
return request({
url: '/enterpriseBussiness/clientPage',
method: 'post',
data: data
})
}
// 客户项目列表
export function clientProjectPage(data) {
return request({
url: '/enterpriseBussiness/clientProjectPage',
method: 'post',
data: data
})
}
// 供应商列表
export function supplierPage(data) {
return request({
url: '/enterpriseBussiness/supplierPage',
method: 'post',
data: data
})
}
// 供应商项目列表
export function supplierProjectPage(data) {
return request({
url: '/enterpriseBussiness/supplierProjectPage',
method: 'post',
data: data
})
}
// 招标-常合作代理机构列表
export function oftenAgencyPage(data) {
return request({
url: '/enterpriseBussiness/oftenAgencyPage',
method: 'post',
data: data
})
}
// 招标-合作明细列表
export function bidCooperatePage(data) {
return request({
url: '/enterpriseBussiness/bidCooperatePage',
method: 'post',
data: data
})
}
// 历史发包列表
export function historySendPage(data) {
return request({
url: '/enterpriseBussiness/historySendPage',
method: 'post',
data: data
})
}
// 历史发包省份
export function historySendProvince(data) {
return request({
url: '/enterpriseBussiness/historySendProvince',
method: 'post',
data: data
})
}
import request from "@/utils/request";
// 获取页面数据
export function getList(data) {
// 财务简析
export function financial(data) {
return request({
url: '/getInfo',
method: 'get'
url: '/enterprise/financial',
method: 'post',
data: data
})
}
import request from "@/utils/request";
// 获取查询下拉选项
export function getOption() {
// 招标公告列表
export function bidNoticePage(data) {
return request({
url: '/getInfo',
method: 'get'
url: '/enterpriseProject/bidNoticePage',
method: 'post',
data: data
})
}
// 获取列表数据
export function getList(data) {
// 招标公告招标类别
export function bidNoticeTenderStage(data) {
return request({
url: '/getInfo',
method: 'get'
url: '/enterpriseProject/bidNoticeTenderStage',
method: 'post',
data: data
})
}
// 招标公告地区
export function bidNoticeArea(data) {
return request({
url: '/enterpriseProject/bidNoticeArea',
method: 'post',
data: data
})
}
// 土地交易列表
export function landTransactionPage(data) {
return request({
url: '/enterpriseProject/landTransactionPage',
method: 'post',
data: data
})
}
// 土地交易用途
export function landUse(data) {
return request({
url: '/enterpriseProject/landUse',
method: 'post',
data: data
})
}
// 拟建项目列表
export function approvalProjectPage(data) {
return request({
url: '/enterpriseProject/approvalProjectPage',
method: 'post',
data: data
})
}
// 拟建项目立项审批列表
export function approvalExaminePage(data) {
return request({
url: '/enterpriseProject/approvalExaminePage',
method: 'post',
data: data
})
}
// 拟建项目民间推介列表
export function approvalMarketingPage(data) {
return request({
url: '/enterpriseProject/approvalMarketingPage',
method: 'post',
data: data
})
}
// 标讯PRO招标公告列表
export function bidNoticeProPage(data) {
return request({
url: '/enterpriseProject/bidNoticeProPage',
method: 'post',
data: data
})
}
// 标讯PRO招标公告项目类别
export function bidNoticeProProjectType(data) {
return request({
url: '/enterpriseProject/bidNoticeProProjectType',
method: 'post',
data: data
})
}
// 标讯PRO招标公告工程类别
export function bidNoticeProProjectPurposes(data) {
return request({
url: '/enterpriseProject/bidNoticeProProjectPurposes',
method: 'post',
data: data
})
}
// 标讯PRO招标公告评标办法
export function bidNoticeProAssessmentWay(data) {
return request({
url: '/enterpriseProject/bidNoticeProAssessmentWay',
method: 'post',
data: data
})
}
// 行政许可列表
export function creditXzxkPage(data) {
return request({
url: '/enterpriseProject/creditXzxkPage',
method: 'post',
data: data
})
}
// 专项债项目列表
export function specialDebtProjectPage(data) {
return request({
url: '/enterpriseProject/specialDebtProjectPage',
method: 'post',
data: data
})
}
// 专项债列表
export function specialDebtPage(data) {
return request({
url: '/enterpriseProject/specialDebtPage',
method: 'post',
data: data
})
}
import request from "@/utils/request";
// 获取查询下拉选项
export function getOption() {
// 甲方详情-公司概要
export function infoHeader(data) {
return request({
url: '/getInfo',
method: 'get'
url: '/enterprise/infoHeader',
method: 'post',
data: data
})
}
// 获取列表数据
export function getList(data) {
// 企业数据统计
export function statistic(data) {
return request({
url: '/getInfo',
method: 'get'
url: '/enterprise/statistic',
method: 'post',
data: data
})
}
// 招标偏好信息
export function bidDataGroup(data) {
return request({
url: '/enterprise/bidDataGroup',
method: 'post',
data: data
})
}
// 供应商列表
export function supplierPage(data) {
return request({
url: '/enterpriseBussiness/supplierPage',
method: 'post',
data: data
})
}
// 甲方业绩数据
export function projectTenderDataGroup(data) {
return request({
url: '/enterprise/projectTenderDataGroup',
method: 'post',
data: data
})
}
// 关系企业-股东信息
export function yyy(data) {
return request({
url: 'xxx',
method: 'post',
data: data
})
}
// 关系企业-对外投资
export function testinvestment(data) {
return request({
url: '/enterprise/investment',
method: 'post',
data: data
})
}
// 关系企业-分支机构
export function testaffiliates(data) {
return request({
url: '/enterprise/affiliates',
method: 'post',
data: data
})
}
// 招标公告
export function bidNoticePage(data) {
return request({
url: '/enterpriseProject/bidNoticePage',
method: 'post',
data: data
})
}
// 企业动态
export function dynamicPage(data) {
return request({
url: '/enterprise/dynamicPage',
method: 'post',
data: data
})
}
// 工商基础信息
export function icInfo(data) {
return request({
url: '/enterprise/icInfo',
method: 'post',
data: data
})
}
// 工商变更信息
export function changeInfo(data) {
return request({
url: '/enterprise/changeInfo',
method: 'post',
data: data
})
}
// 工商股东信息列表
export function bestStockPage(data) {
return request({
url: '/enterprise/bestStockPage',
method: 'post',
data: data
})
}
// 工商高管信息
export function keymembers(data) {
return request({
url: '/enterprise/keymembers',
method: 'post',
data: data
})
}
// 工商对外投资
export function investment(data) {
return request({
url: '/enterprise/investment',
method: 'post',
data: data
})
}
// 工商分支机构
export function affiliates(data) {
return request({
url: '/enterprise/affiliates',
method: 'post',
data: data
})
}
<template>
<div class="headForm">
<div class="flex-box query-box">
<div class="flex-box query-params">
<div class="flex-box headForm-text">
<img v-if="title" src="@/assets/images/detail/ico_title.png" />
<span class="drawer-title" v-if="title">{{ title }}</span>
<template v-if="slots">
<slot name="slot"></slot>
</template>
<div v-else>
<span class="ability-total" v-if="isTotal">{{ total }}条数据</span>
<span class="ability-total" v-if="amountTotal">,共计合作总金额:<i>{{ amountTotal }}</i>万元</span>
</div>
</div>
<div class="headForm-from">
<div class="from-item" :key="i" v-for="(form, i) in formData">
<!-- 单选 -->
<template v-if="form.type==1">
<el-select
v-model="form.value"
clearable
class="form-content-width"
style="max-width: 110px"
:placeholder="form.placeholder"
@change="changeSelect">
<el-option v-for="(item, index) in form.options" :key="index" :label="item.name" :value="item.value" />
</el-select>
</template>
<!-- 年月日 -->
<template v-if="form.type==2">
<el-date-picker
@change="changeSelect"
class="fromTime"
style="width: 210px"
v-model="form.value"
type="daterange"
prefix-icon="fromTime-icon"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始月份"
end-placeholder="结束月份">
</el-date-picker>
</template>
<!-- 输入框 -->
<template v-if="form.type==3">
<div class="cooperate-name">
<el-input v-model="form.value" :placeholder="form.placeholder"></el-input>
<span @click="changeSelect">搜索</span>
</div>
</template>
<!-- 多选 -->
<template v-if="form.type==4">
<el-select
class="form-content-width"
v-model="form.value"
multiple
collapse-tags
clearable
style="max-width: 170px"
:placeholder="form.placeholder"
@change="changeSelect">
<el-option v-for="(item, index) in form.options" :key="index" :label="item.name" :value="item.value" />
</el-select>
</template>
<!-- 自定义 -->
<template v-if="form.type==0">
<slot name="slot"></slot>
</template>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "HeadDetailForm",
props: {
title: {
type: String,
default: ''
},
queryParams: {
type: Object,
default: {}
},
formData: {
type: Array,
default: []
},
isTotal: {
type: Boolean,
default: true
},
total: {
type: Number,
default: 0
},
amountTotal: {
type: Number,
default: 0
},
slots: {
type: Boolean,
default: false
}
},
data() {
return {
}
},
methods: {
changeSelect(){
this.$emit('handle-search')
}
}
}
</script>
<style lang="scss" scoped>
.headForm{
.query-params{
width: 100%;
padding: 8px 17px 8px 13px;
justify-content: space-between;
border-bottom: 1px solid #E1E1E1;
}
::v-deep .el-input__inner{
border: 1px solid #EFEFEF;
height: 32px;
line-height: 32px;
}
::v-deep .el-form-item{
margin-right: 8px !important;
}
::v-deep .el-input--medium .el-input__icon{
line-height: 32px;
}
.headForm-text{
img{
width: 17px;
height: 17px;
margin-right: 8px;
}
.drawer-title{
font-size: 16px;
color: #232323;
font-weight: bold;
margin-right: 4px;
}
.ability-total{
font-size: 12px;
color: rgba(35,35,35,0.8);
position: relative;
i{
color: #FF3C3C;
}
}
}
.headForm-from {
display: flex;
.from-item{
margin-right: 8px;
&:last-child{
margin-right: 0;
}
.cooperate-name {
display: flex;
span {
width: 60px;
height: 32px;
line-height: 32px;
font-size: 14px;
background: #F5F5F5;
text-align: center;
color: #0081FF;
border: 1px solid #EFEFEF;
border-left: 0;
cursor: pointer;
}
::v-deep .el-input{
flex: 1;
}
::v-deep .el-input__inner {
border-right: 0;
border-radius: 2px 0 2px 0;
width: 259px;
}
}
.fromTime{
::v-deep .el-range-input{
width: 100%;
}
::v-deep .el-range-separator, ::v-deep .el-range__close-icon{
line-height: 24px;
width: 20px;
}
}
.fromTime-icon {
display: none;
}
}
::v-deep .form-content-width{
width: 170px;
}
}
}
</style>
......@@ -59,11 +59,11 @@ export default {
{title: '行政许可', pathName: 'administrative'}
]},
{title: '业务往来', pathName: '', children: [
{title: '客户', pathName: ''},
{title: '供应商', pathName: ''},
{title: '招标代理', pathName: ''},
{title: '历史发包', pathName: ''},
{title: '开标记录', pathName: ''}
{title: '客户', pathName: 'custom'},
{title: '供应商', pathName: 'supplier'},
{title: '招标代理', pathName: 'bidagency'},
{title: '历史发包', pathName: 'hiscontract'},
{title: '开标记录', pathName: 'bidrecords'}
]},
{title: '城投分析', pathName: '', children: [
{title: '区域经济', pathName: 'regionalEconomies'},
......
......@@ -25,7 +25,7 @@
:prop="item.prop"
:width="item.width"
:min-width="item.minWidth"
align="left"
:align="item.align?item.align:'left'"
:fixed="item.fixed"
:sortable="item.sortable"
:resizable="false">
......@@ -35,7 +35,7 @@
<template slot-scope="scope">
<slot v-if="item.slot" :name="item.prop" :row="scope.row" :index="scope.$index" :data="item"></slot>
<span v-else>
{{ scope.row[item.prop] }}
{{ scope.row[item.prop] || '--' }}
</span>
</template>
</el-table-column>
......
<template>
<div class="detail-container">
<head-form
title="常合作招标代理单位"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<tables
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
@sort-change="sortChange"
>
<template slot="agency" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.agencyId&&scope.row.agency" v-html="scope.row.agency"></router-link>
<div v-else v-html="scope.row.agency || '--'"></div>
</template>
<template slot="projectInfo" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.projectInfo.bid&&scope.row.projectInfo.dealTitle" v-html="scope.row.projectInfo.dealTitle"></router-link>
<div v-else v-html="scope.row.projectInfo.dealTitle || '--'"></div>
<div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 ></div>
</template>
</tables>
<client-detail
v-if="isDetails"
:data="rowData"
:title="'合作项目/工程明细'"
@cancel="isDetails=false" />
</div>
</template>
<script>
import mixin from '../mixins/mixin'
import {oftenAgencyPage} from '@/api/detail/party-a/dealings'
import ClientDetail from './component/bidagencyDetail'
export default {
name: 'Bidagency',
props: ['companyId'],
mixins: [mixin],
components: {
ClientDetail
},
data() {
return {
queryParams: {
cid: this.companyId,
sort: 3,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '招标代理单位名称', prop: 'agency', minWidth: '350', slot: true},
{label: '合作项目/工程名称', prop: 'projectInfo', minWidth: '400', sortable: true, slot: true},
{label: '最近一次合作时间', prop: 'issueTime', minWidth: '140', sortable: true}
],
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询', options: []},
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
isDetails: false,
rowData: {}
}
},
computed: {
},
created() {
this.handleQuery()
},
methods: {
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
let res = await oftenAgencyPage(param)
this.tableLoading = false
if(res.code==200){
this.tableData = res.rows.map((item)=>{
item.projectInfo = typeof item.projectInfo == 'string' ? JSON.parse(item.projectInfo) : item.projectInfo
return item
})
}
this.tableDataTotal = res.total
},
handleClick(e, data) {
this.rowData = data
this.isDetails = true
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
background: #ffffff;
border-radius: 4px;
padding: 16px;
}
</style>
<template>
<div class="detail-container">
<head-form
title="开标记录"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
/>
<tables
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
>
<template slot="customName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.customId&&scope.row.customName">{{ scope.row.customName }}</router-link>
<div v-else>{{ scope.row.customName || '--' }}</div>
</template>
<template slot="use" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.useId&&scope.row.use">{{ scope.row.use }}</router-link>
<div v-else>{{ scope.row.use || '--' }}</div>
</template>
</tables>
</div>
</template>
<script>
import mixin from '../mixins/mixin'
import { getList } from '@/api/detail/party-a/dealings'
export default {
name: 'Bidrecords',
props: ['companyId'],
mixins: [mixin],
components: {
},
data() {
return {
queryParams: {
cid: this.companyId,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '招标代理单位名称', prop: 'customName', minWidth: '320', slot: true},
{label: '本企业投标报价(万元)', prop: 'way', minWidth: '160'},
{label: '发布日期', prop: 'way', minWidth: '100'},
{label: '中标地区', prop: 'way', minWidth: '160'},
{label: '信息来源', prop: 'use', minWidth: '280', slot: true}
],
formData: [],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0
}
},
computed: {
},
created() {
this.handleQuery()
},
methods: {
handleQuery() {
this.tableLoading = true
getList(this.queryParams).then((res) => {
this.tableLoading = false
this.tableData = [
{
customId: '1',
customName:'滨州医学院口腔医学大楼铝合金门窗供货及安装',
use:'城镇住宅用地',
type:'房地产业',
way:'挂牌出让',
count:4
}
]
this.tableDataTotal = 100
})
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
background: #ffffff;
border-radius: 4px;
padding: 16px;
}
</style>
<template>
<div class="client-details">
<el-drawer
:visible.sync="drawer"
size="60%"
custom-class="client-drawer"
:with-header="false"
@closed="cancel">
<head-detail-form
:title="title"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:amountTotal="amountTotal"
@handle-search="handleSearch"
/>
<tables
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
style="margin: 12px;"
>
<template slot="dealTitle" slot-scope="scope">
<div class="flex-box">
<img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.fileUrlL" @click="handlePic(scope.row.fileUrlL)"/>
<router-link to="" tag="a" class="a-link" v-if="scope.row.bid&&scope.row.dealTitle" v-html="scope.row.dealTitle"></router-link>
<span v-else v-html="scope.row.dealTitle || '--'"></span>
</div>
</template>
<template slot="province" slot-scope="scope">
{{scope.row.province}}{{`${scope.row.city?'-'+scope.row.city:''}`}}{{`${scope.row.area?'-'+scope.row.area:''}`}}
</template>
</tables>
</el-drawer>
</div>
</template>
<script>
import mixin from '../../mixins/mixin'
import {bidCooperatePage} from '@/api/detail/party-a/dealings'
import HeadDetailForm from "../../component/HeadDetailForm"
export default {
props: {
'data': {
type: Object,
default: () => {
return {}
}
},
'title': {
type: String,
default: () => {
return ''
}
}
},
components: {
HeadDetailForm
},
mixins: [mixin],
data() {
return {
drawer: false,
queryParams: {
tendereeId: this.data.tendereeId,
agencyId: this.data.agencyId,
pageNum: 1,
pageSize: 10
},
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询', options: []},
],
forData: [
{label: '合作项目/工程名称', prop: 'dealTitle', width: '720', slot: true},
{label: '项目/工程金额(万元)', prop: 'projectAmount', width: '160'},
{label: '合作时间', prop: 'issueTime', width: '100'},
{label: '项目地区', prop: 'province', width: '160', slot: true},
{label: '项目类型', prop: 'projectCategory', width: '130'}
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
amountTotal: 0
}
},
created() {
this.drawer = true
this.handleQuery()
},
methods: {
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
let res = await bidCooperatePage(param)
this.tableLoading = false
if(res.code==200){
this.tableData = res.rows
}
this.tableDataTotal = res.total
this.amountTotal = res.totalAmount
},
handlePic(url){
window.open(url, "_blank")
},
cancel() {
this.$emit('cancel')
}
}
}
</script>
<style lang="scss" scoped>
.client-details {
::v-deep .client-drawer{
background: #FFFFFF;
}
}
</style>
<template>
<div class="client-details">
<el-drawer
:visible.sync="drawer"
size="60%"
custom-class="client-drawer"
:with-header="false"
@closed="cancel">
<head-detail-form
:title="title"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:amountTotal="amountTotal"
@handle-search="handleSearch"
/>
<tables
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
style="margin: 12px;"
>
<template slot="projectAllName" slot-scope="scope">
<div class="flex-box">
<img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.sourceUrl" @click="handlePic(scope.row.sourceUrl)"/>
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectAllName" v-html="scope.row.projectAllName"></router-link>
<span v-else v-html="scope.row.projectAllName || '--'"></span>
</div>
</template>
<template slot="province" slot-scope="scope">
{{scope.row.province}}{{`${scope.row.city?'-'+scope.row.city:''}`}}
</template>
</tables>
</el-drawer>
</div>
</template>
<script>
import mixin from '../../mixins/mixin'
import {clientProjectPage} from '@/api/detail/party-a/dealings'
import HeadDetailForm from "../../component/HeadDetailForm"
export default {
props: {
'data': {
type: Object,
default: () => {
return {}
}
},
'company-id': {
type: Number,
default: () => {
return 0
}
},
'title': {
type: String,
default: () => {
return ''
}
}
},
components: {
HeadDetailForm
},
mixins: [mixin],
data() {
return {
drawer: false,
queryParams: {
cid: this.companyId,
unitId: this.data.projectUnitId,
pageNum: 1,
pageSize: 10
},
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询', options: []},
],
forData: [
{label: '合作项目/工程名称', prop: 'projectAllName', width: '720', slot: true},
{label: '项目/工程金额(万元)', prop: 'winBidAmount', width: '160'},
{label: '合作时间', prop: 'winBidTime', width: '100'},
{label: '项目地区', prop: 'province', width: '160', slot: true},
{label: '项目类型', prop: 'boundType', width: '130'},
{label: '工期(天)', prop: 'period', width: '90'},
{label: '下浮率', prop: 'lowerRate', width: '90'}
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
amountTotal: 0
}
},
created() {
this.drawer = true
this.handleQuery()
},
methods: {
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
let res = await clientProjectPage(param)
this.tableLoading = false
if(res.code==200){
this.tableData = res.rows
}
this.tableDataTotal = res.total
this.amountTotal = res.totalAmount
},
handlePic(url){
window.open(url, "_blank")
},
cancel() {
this.$emit('cancel')
}
}
}
</script>
<style lang="scss" scoped>
.client-details {
::v-deep .client-drawer{
background: #FFFFFF;
}
.tip-img{
width: 14px;
height: 14px;
margin-right: 4px;
cursor: pointer;
}
}
</style>
<template>
<div class="client-details">
<el-drawer
:visible.sync="drawer"
size="60%"
custom-class="client-drawer"
:with-header="false"
@closed="cancel">
<head-detail-form
:title="title"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:amountTotal="amountTotal"
@handle-search="handleSearch"
/>
<tables
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
style="margin: 12px;"
>
<template slot="projectAllName" slot-scope="scope">
<div class="flex-box">
<img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.sourceUrl" @click="handlePic(scope.row.sourceUrl)"/>
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectAllName" v-html="scope.row.projectAllName"></router-link>
<span v-else v-html="scope.row.projectAllName || '--'"></span>
</div>
</template>
<template slot="province" slot-scope="scope">
{{scope.row.province}}{{`${scope.row.city?'-'+scope.row.city:''}`}}
</template>
</tables>
</el-drawer>
</div>
</template>
<script>
import mixin from '../../mixins/mixin'
import { supplierProjectPage } from '@/api/detail/party-a/dealings'
import HeadDetailForm from "../../component/HeadDetailForm"
export default {
props: {
'data': {
type: Object,
default: () => {
return {}
}
},
'company-id': {
type: Number,
default: () => {
return 0
}
},
'title': {
type: String,
default: () => {
return ''
}
}
},
components: {
HeadDetailForm
},
mixins: [mixin],
data() {
return {
drawer: false,
queryParams: {
cid: this.data.companyId,
unitId: this.companyId,
pageNum: 1,
pageSize: 10
},
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询', options: []},
],
forData: [
{label: '合作项目/工程名称', prop: 'projectAllName', width: '720', slot: true},
{label: '项目/工程金额(万元)', prop: 'winBidAmount', width: '160'},
{label: '合作时间', prop: 'winBidTime', width: '100'},
{label: '项目地区', prop: 'province', width: '160', slot: true},
{label: '项目类型', prop: 'boundType', width: '130'},
{label: '工期(天)', prop: 'period', width: '90'},
{label: '下浮率', prop: 'lowerRate', width: '90'}
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
amountTotal: 0
}
},
created() {
this.drawer = true
this.handleQuery()
},
methods: {
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
let res = await supplierProjectPage(param)
this.tableLoading = false
if(res.code==200){
this.tableData = res.rows
}
this.tableDataTotal = res.total
this.amountTotal = res.totalAmount
},
handlePic(url){
window.open(url, "_blank")
},
cancel() {
this.$emit('cancel')
}
}
}
</script>
<style lang="scss" scoped>
.client-details {
::v-deep .client-drawer{
background: #FFFFFF;
}
.tip-img{
width: 14px;
height: 14px;
margin-right: 4px;
cursor: pointer;
}
}
</style>
<template>
<div class="detail-container">
<head-form
title="客户"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<tables
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
@sort-change="sortChange"
>
<template slot="companyName" slot-scope="scope">
<router-link to="" 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>
</template>
<template slot="projectAllName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.projectId&&scope.row.projectAllName" v-html="scope.row.projectAllName"></router-link>
<div v-else v-html="scope.row.projectAllName || '--'"></div>
<div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 ></div>
</template>
</tables>
<client-detail
v-if="isDetails"
:data="rowData"
:title="'合作项目/工程明细'"
:company-id="companyId"
@cancel="isDetails=false" />
</div>
</template>
<script>
import mixin from '../mixins/mixin'
import { clientPage } from '@/api/detail/party-a/dealings'
import ClientDetail from './component/customDetail'
export default {
name: 'Custom',
props: ['companyId'],
mixins: [mixin],
components: {
ClientDetail
},
data() {
return {
queryParams: {
cid: this.companyId,
sort: 3,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '客户名称', prop: 'companyName', minWidth: '350', slot: true},
{label: '合作项目/工程名称', prop: 'projectAllName', minWidth: '400', sortable: true, slot: true},
{label: '合作总金额(万元)', prop: 'amount', minWidth: '150', sortable: true},
{label: '最近一次合作时间', prop: 'time', minWidth: '140', sortable: true}
],
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询', options: []},
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
isDetails: false,
rowData: {}
}
},
computed: {
},
created() {
this.handleQuery()
},
methods: {
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
let res = await clientPage(param)
this.tableLoading = false
if(res.code==200){
this.tableData = res.rows
}
this.tableDataTotal = res.total
},
//排序-测试
sortChange(e){
this.tableData = []
let sortRule = e.prop+','+e.order
switch (sortRule){
case 'amount,descending':
this.queryParams.sort = 1
break
case 'amount,ascending':
this.queryParams.sort = 2
break
case 'time,descending':
this.queryParams.sort = 3
break
case 'time,ascending':
this.queryParams.sort = 4
break
case 'projectAllName,descending':
this.queryParams.sort = 5
break
case 'projectAllName,ascending':
this.queryParams.sort = 6
break
}
this.handleSearch()
},
handleClick(e, data) {
this.rowData = data
this.isDetails = true
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
background: #ffffff;
border-radius: 4px;
padding: 16px;
}
</style>
<template>
<div class="detail-container">
<head-form
title="历史发包"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<tables
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
@sort-change="sortChange"
>
<template slot="customName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.customId&&scope.row.customName">{{ scope.row.customName }}</router-link>
<div v-else>{{ scope.row.customName || '--' }}</div>
</template>
<template slot="use" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.useId&&scope.row.use">{{ scope.row.use }}</router-link>
<div v-else>{{ scope.row.use || '--' }}</div>
</template>
</tables>
</div>
</template>
<script>
import mixin from '../mixins/mixin'
import { getOption, getList } from '@/api/detail/party-a/dealings'
export default {
name: 'Hiscontract',
props: ['companyId'],
mixins: [mixin],
components: {
},
data() {
return {
queryParams: {
cid: this.companyId,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '项目名称', prop: 'customName', minWidth: '560', slot: true},
{label: '中标时间', prop: 'way', minWidth: '100', sortable: true},
{label: '中标企业', prop: 'use', minWidth: '320', slot: true},
{label: '中标金额(万元)', prop: 'way', minWidth: '140', sortable: true},
{label: '下浮率(%)', prop: 'way', minWidth: '120', sortable: true},
{label: '项目经理 / 负责人', prop: 'way', minWidth: '130'},
{label: '中标地区', prop: 'way', minWidth: '160'},
{label: '工期(天)', prop: 'way', minWidth: '110', sortable: true},
{label: '业绩类别', prop: 'way', minWidth: '110'}
],
formData: [
{ type: 1, fieldName: 'region', value: '', placeholder: '项目地区', options: []},
{ type: 1, fieldName: 'time', value: '', placeholder: '中标时间', options: []},
{ type: 1, fieldName: 'amount', value: '', placeholder: '中标金额', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入关键词查询', options: []},
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0
}
},
computed: {
},
created() {
this.handleOption()
this.handleQuery()
},
methods: {
handleOption(){
getOption().then((res) => {
this.setFormData('region', [
{ name: '类别1', value: '1' },
{ name: '类别2', value: '2' },
{ name: '类别3', value: '3' },
{ name: '类别4', value: '4' }
])
this.setFormData('time', [
{ name: '类别1', value: '1' },
{ name: '类别2', value: '2' },
{ name: '类别3', value: '3' },
{ name: '类别4', value: '4' }
])
this.setFormData('amount', [
{ name: '类别1', value: '1' },
{ name: '类别2', value: '2' },
{ name: '类别3', value: '3' },
{ name: '类别4', value: '4' }
])
})
},
handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
getList(param).then((res) => {
this.tableLoading = false
this.tableData = [
{
customId: '1',
customName:'滨州医学院口腔医学大楼铝合金门窗供货及安装',
use:'城镇住宅用地',
type:'房地产业',
way:'挂牌出让',
count:4
}
]
this.tableDataTotal = 100
})
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
background: #ffffff;
border-radius: 4px;
padding: 16px;
}
</style>
<template>
<div class="detail-container">
<head-form
title="供应商"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<tables
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
@sort-change="sortChange"
>
<template slot="companyName" slot-scope="scope">
<router-link to="" 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>
</template>
<template slot="projectAllName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.projectId&&scope.row.projectAllName" v-html="scope.row.projectAllName"></router-link>
<div v-else v-html="scope.row.projectAllName || '--'"></div>
<div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 ></div>
</template>
</tables>
<client-detail
v-if="isDetails"
:data="rowData"
:title="'合作项目/工程明细'"
:company-id="companyId"
@cancel="isDetails=false" />
</div>
</template>
<script>
import mixin from '../mixins/mixin'
import { supplierPage } from '@/api/detail/party-a/dealings'
import ClientDetail from './component/supplierDetail'
export default {
name: 'Supplier',
props: ['companyId'],
mixins: [mixin],
components: {
ClientDetail
},
data() {
return {
queryParams: {
cid: this.companyId,
sort: 3,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '供应商', prop: 'companyName', minWidth: '350', slot: true},
{label: '合作项目/工程名称', prop: 'projectAllName', minWidth: '400', sortable: true, slot: true},
{label: '合作总金额(万元)', prop: 'amount', minWidth: '150', sortable: true},
{label: '最近一次合作时间', prop: 'time', minWidth: '140', sortable: true}
],
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询', options: []},
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
isDetails: false,
rowData: {}
}
},
computed: {
},
created() {
this.handleQuery()
},
methods: {
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
let res = await supplierPage(param)
this.tableLoading = false
if(res.code==200){
this.tableData = res.rows
}
this.tableDataTotal = res.total
},
handleClick(e, data) {
this.rowData = data
this.isDetails = true
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
background: #ffffff;
border-radius: 4px;
padding: 16px;
}
</style>
......@@ -24,6 +24,12 @@
<Announcement v-if="currentPath.pathName=='announcement'" :company-id="companyId" />
<Tencent v-if="currentPath.pathName=='tencent'" :company-id="companyId" />
<Administrative v-if="currentPath.pathName=='administrative'" :company-id="companyId" />
<!-- 业务往来 -->
<Custom v-if="currentPath.pathName=='custom'" :company-id="companyId" />
<Supplier v-if="currentPath.pathName=='supplier'" :company-id="companyId" />
<Bidagency v-if="currentPath.pathName=='bidagency'" :company-id="companyId" />
<Hiscontract v-if="currentPath.pathName=='hiscontract'" :company-id="companyId" />
<Bidrecords v-if="currentPath.pathName=='bidrecords'" :company-id="companyId" />
<!-- 投诚分析 -->
<LandAcquisition v-if="currentPath.pathName=='landAcquisition'" :company-id="companyId" />
<RegionalEconomies v-if="currentPath.pathName=='regionalEconomies'" :company-id="companyId" />
......@@ -70,6 +76,11 @@ import Biddingplan from "./opport/biddingplan" //项目商机-招标计划
import Announcement from "./opport/announcement" //项目商机-招标公告
import Tencent from "./opport/tencent" //项目商机-标讯Pro
import Administrative from "./opport/administrative" //项目商机-行政许可
import Custom from "./dealings/custom" //业务往来-客户
import Supplier from "./dealings/supplier" //业务往来-供应商
import Bidagency from "./dealings/bidagency" //业务往来-招标代理
import Hiscontract from "./dealings/hiscontract" //业务往来-历史发包
import Bidrecords from "./dealings/bidrecords" //业务往来-开标记录
import LandAcquisition from "./urbanLnvestment/landAcquisition" //投诚分析-城投拿地
import RegionalEconomies from "./urbanLnvestment/regionalEconomies" //投诚分析-区域经济
import SameRegion from "./urbanLnvestment/sameRegion" //投诚分析-同地区城投
......@@ -104,6 +115,11 @@ export default {
Announcement,
Tencent,
Administrative,
Custom,
Supplier,
Bidagency,
Hiscontract,
Bidrecords,
LandAcquisition,
RegionalEconomies,
SameRegion,
......
......@@ -40,7 +40,7 @@ export default {
data() {
return {
queryParams: {
companyId: this.companyId,
cid: this.companyId,
pageNum: 1,
pageSize: 10
},
......
......@@ -38,7 +38,7 @@ export default {
data() {
return {
queryParams: {
companyId: this.companyId,
cid: this.companyId,
pageNum: 1,
pageSize: 10
},
......
......@@ -38,7 +38,7 @@ export default {
data() {
return {
queryParams: {
companyId: this.companyId,
cid: this.companyId,
pageNum: 1,
pageSize: 10
},
......
......@@ -38,7 +38,7 @@ export default {
data() {
return {
queryParams: {
companyId: this.companyId,
cid: this.companyId,
pageNum: 1,
pageSize: 10
},
......
......@@ -38,7 +38,7 @@ export default {
data() {
return {
queryParams: {
companyId: this.companyId,
cid: this.companyId,
pageNum: 1,
pageSize: 10
},
......
......@@ -38,7 +38,7 @@ export default {
data() {
return {
queryParams: {
companyId: this.companyId,
cid: this.companyId,
pageNum: 1,
pageSize: 10
},
......
......@@ -35,7 +35,7 @@ export default {
return {
activeName: 'first',
queryParams: {
companyId: this.companyId,
cid: this.companyId,
pageNum: 1,
pageSize: 10
},
......
......@@ -27,7 +27,7 @@ export default {
data() {
return {
queryParams: {
companyId: this.companyId,
cid: this.companyId,
pageNum: 1,
pageSize: 10
},
......
......@@ -40,7 +40,7 @@ export default {
return {
activeName: 'first',
queryParams: {
companyId: this.companyId,
cid: this.companyId,
pageNum: 1,
pageSize: 10
},
......
......@@ -47,7 +47,7 @@ export default {
data() {
return {
queryParams: {
companyId: this.companyId,
cid: this.companyId,
pageNum: 1,
pageSize: 10
},
......
......@@ -15,13 +15,13 @@ export default {
loading: false, // 是否加载中
iframeHight: window.innerHeight, // iframe高度
scrollTop: 0, // 滚动条距离内部页面顶部距离
secretid: '' // 需要携带的sdkId
secretId: '' // 需要携带的sdkId
}
},
created() {
if (this.$route.query.companyId) { // 获取companyId
this.loading = true
this.src = `https://pre-plug.jiansheku.com/enterprise/${this.$route.query.companyId}?secretid=${this.secretid}`
this.src = `https://pre-plug.jiansheku.com/enterprise/${this.$route.query.companyId}?secretId=${this.secretId}`
}
},
mounted() {
......
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