Commit d3f77e86 authored by tanyang's avatar tanyang

Merge remote-tracking branch 'origin/dev20230707'

parents c608c1fa bb6eab16
...@@ -8,13 +8,11 @@ import com.dsk.system.domain.business.dto.BusinessSearchDto; ...@@ -8,13 +8,11 @@ import com.dsk.system.domain.business.dto.BusinessSearchDto;
import com.dsk.system.service.IBusinessOverviewService; import com.dsk.system.service.IBusinessOverviewService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/** /**
* 项目概览 * 项目概览
*
* @author lcl * @author lcl
* @create 2023/8/14 * @create 2023/8/14
*/ */
...@@ -30,40 +28,51 @@ public class BusinessOverviewController extends BaseController { ...@@ -30,40 +28,51 @@ public class BusinessOverviewController extends BaseController {
* 项目状态统计 * 项目状态统计
*/ */
@GetMapping("/status/statistics") @GetMapping("/status/statistics")
public AjaxResult statusStatistics(){ public AjaxResult statusStatistics() {
return AjaxResult.success(baseService.statusStatistics(new BusinessSearchDto(SecurityUtils.getUserId()))); return AjaxResult.success(baseService.statusStatistics(new BusinessSearchDto(SecurityUtils.getUserId())));
} }
/** /**
* 项目资金分析 * 项目资金分析
*/ */
@GetMapping("/amount/analyze") @GetMapping("/amount/analyze")
public AjaxResult amountAnalyze(){ public AjaxResult amountAnalyze() {
return AjaxResult.success(baseService.amountAnalyze(new BusinessSearchDto(SecurityUtils.getUserId(),0))); return AjaxResult.success(baseService.amountAnalyze(new BusinessSearchDto(SecurityUtils.getUserId(), 0)));
} }
/** /**
* 项目类型分析 * 项目类型分析
*/ */
@GetMapping("/type/analyze") @GetMapping("/type/analyze/{status}")
public AjaxResult typeAnalyze(){ public AjaxResult typeAnalyze(@PathVariable Integer status) {
return AjaxResult.success(baseService.typeAnalyze(new BusinessSearchDto(SecurityUtils.getUserId(),2))); return AjaxResult.success(baseService.typeAnalyze(new BusinessSearchDto(SecurityUtils.getUserId(), status)));
}
/**
* 项目类别分析
*/
@GetMapping("/category/analyze/{status}")
public AjaxResult categoryAnalyze(@PathVariable Integer status) {
return AjaxResult.success(baseService.categoryAnalyze(new BusinessSearchDto(SecurityUtils.getUserId(), status)));
} }
/** /**
* 公招项目地区统计 * 公招项目地区统计
*
* @return * @return
*/ */
@GetMapping("/countGroupByProvince") @RequestMapping("/countGroupByProvince")
public AjaxResult countGroupByProvince(@RequestBody JSONObject object){ public AjaxResult countGroupByProvince(@RequestBody JSONObject object) {
return baseService.countGroupByProvince(object); return baseService.countGroupByProvince(object);
} }
/** /**
* 公招项目投资金额统计 * 公招项目投资金额统计
*
* @return * @return
*/ */
@GetMapping("/rangByMoney") @RequestMapping("/rangByMoney")
public AjaxResult rangByMoney(@RequestBody JSONObject object){ public AjaxResult rangByMoney(@RequestBody JSONObject object) {
return baseService.rangByMoney(object); return baseService.rangByMoney(object);
} }
} }
package com.dsk.web.controller.dsk; package com.dsk.web.controller.dsk;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.core.domain.model.*; import com.dsk.common.core.domain.model.*;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
...@@ -30,36 +32,27 @@ public class IndexController { ...@@ -30,36 +32,27 @@ public class IndexController {
@Autowired @Autowired
private IndexService enterpriseService; private IndexService enterpriseService;
@ApiOperation(value = "企业中标排行榜")
@PostMapping("/winningBidsRanking")
public R winningBidsRanking(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseService.winningBidsRanking(paramMap);
}
@ApiOperation(value = "企业中标排行-项目类型")
@PostMapping("/rankingProjectType")
public R rankingProjectType(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseService.rankingProjectType(paramMap);
}
@ApiOperation(value = "大项目最新中标") @ApiOperation(value = "大项目最新中标")
@PostMapping(value = "bigWinningBidsPage") @PostMapping(value = "bigWinningBidsPage")
public TableDataInfo bigWinningBidsPage(@RequestBody IndexBigWinningBidsPageBody vo) throws Exception { public AjaxResult bigWinningBidsPage(@RequestBody JSONObject object) throws Exception {
return enterpriseService.bigWinningBidsPage(vo); return enterpriseService.bigWinningBidsPage(object);
} }
@ApiOperation(value = "大项目最新招标") @ApiOperation(value = "大项目最新招标")
@PostMapping(value = "bigBidPage") @PostMapping(value = "bigBidPage")
public TableDataInfo bigBidPage(@RequestBody IndexBigBidPageBody vo) throws Exception { public AjaxResult bigBidPage(@RequestBody JSONObject object) throws Exception {
return enterpriseService.bigBidPage(vo); return enterpriseService.bigBidPage(object);
} }
@ApiOperation(value = "企业中标排行-项目类型") @ApiOperation(value = "集团中标统计")
@PostMapping("/bigBidProjectType") @PostMapping("/countByCompany")
public R bigBidProjectType(@RequestBody Map<String, Object> paramMap) throws Exception { public AjaxResult countByCompany(@RequestBody JSONObject object) {
return enterpriseService.bigBidProjectType(paramMap); return enterpriseService.countByCompany(object);
} }
@ApiOperation(value = "建筑企业中标排行榜")
@PostMapping("/bidRank")
public AjaxResult bidRank(@RequestBody JSONObject object) {
return enterpriseService.bidRank(object);
}
} }
...@@ -7,6 +7,7 @@ import lombok.ToString; ...@@ -7,6 +7,7 @@ import lombok.ToString;
import javax.validation.constraints.AssertFalse; import javax.validation.constraints.AssertFalse;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List;
@Data @Data
@ToString @ToString
...@@ -20,10 +21,16 @@ public class EnterpriseBussinessClientProjectPageBody extends BasePage { ...@@ -20,10 +21,16 @@ public class EnterpriseBussinessClientProjectPageBody extends BasePage {
private Integer cid; private Integer cid;
/** /**
* 企业id * 客户企业Id
*/ */
@NotNull(message = "企业id不能为空") @NotNull(message = "企业id不能为空")
private Integer unitId; private Integer companyId;
/**
* 客户企业
*/
@NotNull(message = "企业不能为空")
private String companyName;
/** /**
* 查询关键字 * 查询关键字
...@@ -32,7 +39,34 @@ public class EnterpriseBussinessClientProjectPageBody extends BasePage { ...@@ -32,7 +39,34 @@ public class EnterpriseBussinessClientProjectPageBody extends BasePage {
public boolean isVaildCid() { public boolean isVaildCid() {
return 0 == cid || 0 == unitId; return 0 == cid;
} }
/**
* 来源
*/
private List<String> sources;
/**
* 项目类型
*/
private List<String> projects;
/**
* 金额起
*/
private Double amountStart;
/**
* 金额止
*/
private Double amountEnd;
/*
* 排序字段:1金额倒序,2金额正序,3时间倒序,4时间正序,5次数倒序,6次数正序
*/
private Integer sort = 3;
} }
...@@ -7,6 +7,7 @@ import lombok.ToString; ...@@ -7,6 +7,7 @@ import lombok.ToString;
import javax.validation.constraints.AssertFalse; import javax.validation.constraints.AssertFalse;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List;
@Data @Data
@ToString @ToString
...@@ -20,10 +21,16 @@ public class EnterpriseBussinessSupplierProjectPageBody extends BasePage { ...@@ -20,10 +21,16 @@ public class EnterpriseBussinessSupplierProjectPageBody extends BasePage {
private Integer cid; private Integer cid;
/** /**
* 企业id * 供应商企业Id
*/ */
@NotNull(message = "企业id不能为空") @NotNull(message = "企业id不能为空")
private Integer unitId; private Integer companyId;
/**
* 供应商企业
*/
@NotNull(message = "企业不能为空")
private String companyName;
/** /**
* 查询关键字 * 查询关键字
...@@ -32,8 +39,34 @@ public class EnterpriseBussinessSupplierProjectPageBody extends BasePage { ...@@ -32,8 +39,34 @@ public class EnterpriseBussinessSupplierProjectPageBody extends BasePage {
public boolean isVaildCid() { public boolean isVaildCid() {
return 0 == cid || 0 == unitId; return 0 == cid;
} }
/**
* 来源
*/
private List<String> sources;
/**
* 项目类型
*/
private List<String> projects;
/**
* 金额起
*/
private Double amountStart;
/**
* 金额止
*/
private Double amountEnd;
/*
* 排序字段:1金额倒序,2金额正序,3时间倒序,4时间正序,5次数倒序,6次数正序
*/
private Integer sort = 3;
} }
...@@ -18,11 +18,11 @@ public class IndexBigBidPageBody extends BasePage ...@@ -18,11 +18,11 @@ public class IndexBigBidPageBody extends BasePage
/** /**
* 开始时间 * 开始时间
*/ */
private Date timeStart = DateUtils.addDays(new Date(), -7); private String timeStart = DateUtils.dateTime(DateUtils.addDays(new Date(), -6));
/** /**
* 截止时间 * 截止时间
*/ */
private Date timeEnd = new Date(); private String timeEnd = DateUtils.getDate();
/** /**
* 金额起 默认2亿 * 金额起 默认2亿
*/ */
......
...@@ -17,11 +17,11 @@ public class IndexBigWinningBidsPageBody extends BasePage { ...@@ -17,11 +17,11 @@ public class IndexBigWinningBidsPageBody extends BasePage {
/** /**
* 开始时间 * 开始时间
*/ */
private Date timeStart = DateUtils.addDays(new Date(), -7); private String timeStart = DateUtils.dateTime(DateUtils.addDays(new Date(), -6));
/** /**
* 截止时间 * 截止时间
*/ */
private Date timeEnd = new Date(); private String timeEnd = DateUtils.getDate();
/** /**
* 金额起 默认2亿 * 金额起 默认2亿
*/ */
......
...@@ -40,7 +40,8 @@ ...@@ -40,7 +40,8 @@
"axios": "0.24.0", "axios": "0.24.0",
"clipboard": "2.0.8", "clipboard": "2.0.8",
"core-js": "3.25.3", "core-js": "3.25.3",
"echarts": "^5.4.0", "echarts": "^5.0.0",
"el-table-horizontal-scroll": "^1.2.5",
"element-resize-detector": "^1.2.4", "element-resize-detector": "^1.2.4",
"element-ui": "2.15.12", "element-ui": "2.15.12",
"file-saver": "2.0.5", "file-saver": "2.0.5",
......
import request from '@/utils/request' import request from '@/utils/request'
// 客户概览-客户统计
export function statistics() {
return request({
url: '/customer/overview/statistics',
method: 'get',
})
}
// 客户概览-客户合作情况
export function cooperationTop() {
return request({
url: '/customer/overview/cooperation/top',
method: 'get',
})
}
// 客户概览-客户信资评级
export function creditLevel() {
return request({
url: '/customer/overview/credit/level',
method: 'get',
})
}
// 导入客户列表 // 导入客户列表
export function importData(param) { export function importData(param) {
return request({ return request({
......
...@@ -80,3 +80,35 @@ export function tenderPage(data) { ...@@ -80,3 +80,35 @@ export function tenderPage(data) {
data: data data: data
}) })
} }
// 客户-供应商下拉框
export function getSelect(data) {
return request({
url: '/enterpriseBussiness/select',
method: 'post',
data: data
})
}
// 中标公示来源链接
export function bidWinMergeDetail(data) {
return request({
url: '/enterpriseBussiness/bidWinMergeDetail',
method: 'post',
data: data
})
}
// 四库业绩来源链接
export function skyProjectDetail(data) {
return request({
url: '/enterpriseBussiness/skyProjectDetail',
method: 'post',
data: data
})
}
// 荣誉奖项来源链接
export function awardDetail(data) {
return request({
url: '/enterpriseBussiness/awardDetail',
method: 'post',
data: data
})
}
...@@ -147,7 +147,7 @@ let centralEnterprselocalPage= function centralEnterprselocalPage(param) { ...@@ -147,7 +147,7 @@ let centralEnterprselocalPage= function centralEnterprselocalPage(param) {
data: param data: param
}) })
} }
// 民营集团 // 其他集团
let centralEnterprsesocial= function centralEnterprsesocial(param) { let centralEnterprsesocial= function centralEnterprsesocial(param) {
return request({ return request({
url: '/combine/info/centralEnterprse/social', url: '/combine/info/centralEnterprse/social',
...@@ -155,7 +155,7 @@ let centralEnterprsesocial= function centralEnterprsesocial(param) { ...@@ -155,7 +155,7 @@ let centralEnterprsesocial= function centralEnterprsesocial(param) {
data: param data: param
}) })
} }
// 民营集团更多 // 其他集团更多
let centralEnterprsesocialPage= function centralEnterprsesocialPage(param) { let centralEnterprsesocialPage= function centralEnterprsesocialPage(param) {
return request({ return request({
url: '/combine/info/centralEnterprse/social/page', url: '/combine/info/centralEnterprse/social/page',
......
import request from "@/utils/request"; import request from "@/utils/request";
// 集团中标统计
export function countByCompany(data) {
return request({
url: '/index/countByCompany',
method: 'post',
data: data
})
}
// 企业中标排行榜
export function bidRank(data) {
return request({
url: '/index/bidRank',
method: 'post',
data: data
})
}
// 大项目最新中标 // 大项目最新中标
export function bigWinningBidsPage(data) { export function bigWinningBidsPage(data) {
return request({ return request({
......
...@@ -219,3 +219,52 @@ export function allRecord(param) { ...@@ -219,3 +219,52 @@ export function allRecord(param) {
params:param, params:param,
}) })
} }
//项目状态统计
export function getStatistics(param) {
return request({
url: '/business/overview/status/statistics',
method: 'get',
params:param,
})
}
//储备项目统计
export function getCount(param) {
return request({
url: '/business/overview/category/analyze/'+param,
method: 'get',
params:param,
})
}
//储备项目资金
export function getAmount(param) {
return request({
url: '/business/overview/amount/analyze',
method: 'get',
params:param,
})
}
//跟进动态
export function getAllRecord(param) {
return request({
url: '/business/record/all/list',
method: 'get',
params:param,
})
}
//公招项目地区统计
export function countGroupByProvince(param) {
return request({
url: '/business/overview/countGroupByProvince',
method: 'post',
data:param
})
}
//公招项目投资金额统计
export function rangByMoney(param) {
return request({
url: '/business/overview/rangByMoney',
method: 'post',
data:param
})
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -407,6 +407,18 @@ ul, li { ...@@ -407,6 +407,18 @@ ul, li {
background: #566380; background: #566380;
} }
} }
.el-scrollbar{
height: 16px;
.el-scrollbar__bar.is-horizontal{
height: 8px;
}
.el-scrollbar__thumb{
background: rgba(98,110,126,0.4);
&:hover{
background: #566380;
}
}
}
} }
} }
......
...@@ -977,6 +977,11 @@ ...@@ -977,6 +977,11 @@
font-size: 12px; font-size: 12px;
} }
} }
.el-form {
.el-form-item--small.el-form-item {
margin-bottom: 0;
}
}
} }
.p10{ .p10{
padding: 0 10px; padding: 0 10px;
......
...@@ -1200,4 +1200,21 @@ select { ...@@ -1200,4 +1200,21 @@ select {
line-height: 18px; line-height: 18px;
padding-bottom: 48px; padding-bottom: 48px;
text-align: center; text-align: center;
}
.title_wrap{
padding: 20px;
background-color: #FFFFFF;
border-bottom: 1px solid #e0e0e0;
}
.enterprise_title{
border-left: 2px solid #445781;
padding-left: 8px;
font-size: 16px;
height: 16px;
line-height: 16px;
font-weight: 700;
color: #232323;
}
.enterprise_contatiner{
padding: 0;
} }
\ No newline at end of file
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
</ul> </ul>
<div class="alltags" v-if="visitedViews.length > 0"> <div class="alltags" v-if="visitedViews.length > 0">
<div class="" @click="closeall"><i class="el-icon-arrow-down" v-if="!showall"></i> <i class="el-icon-arrow-up" v-if="showall"></i></div> <div class="" @click="closeall"><i class="el-icon-arrow-down" v-if="!showall"></i> <i class="el-icon-arrow-up" v-if="showall"></i></div>
<div class="tagslist" v-if="showall"> <div class="tagslist" v-show="showall">
<!--<div v-for="(tag, index) in visitedViews"--> <!--<div v-for="(tag, index) in visitedViews"-->
<!--:key="tag.path"--> <!--:key="tag.path"-->
<!--:class="isActive(tag)?'active':''"--> <!--:class="isActive(tag)?'active':''"-->
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
> >
<div @click="changetags"> <div @click="changetags">
<i class="el-icon-check"></i> <i class="el-icon-check"></i>
<span :id="isActive(tag)?'tagTitle':''">{{ tag.title }}</span> <span :id="isActive(tag)?'tagTitles':''">{{ tag.title }}</span>
</div> </div>
</router-link> </router-link>
<div class="clasall" @click="closeAllTag(selectedTag)">关闭全部标签</div> <div class="clasall" @click="closeAllTag(selectedTag)">关闭全部标签</div>
...@@ -120,7 +120,6 @@ export default { ...@@ -120,7 +120,6 @@ export default {
}, },
methods: { methods: {
changetags(){ changetags(){
console.log(88)
this.showall = false this.showall = false
}, },
closeall(){ closeall(){
......
...@@ -128,4 +128,7 @@ export default { ...@@ -128,4 +128,7 @@ export default {
.mobile .fixed-header { .mobile .fixed-header {
width: 100%; width: 100%;
} }
.EnterpriseData{
min-width: 1648px;
}
</style> </style>
...@@ -13,7 +13,7 @@ import router from './router' ...@@ -13,7 +13,7 @@ import router from './router'
import directive from './directive' // directive import directive from './directive' // directive
import plugins from './plugins' // plugins import plugins from './plugins' // plugins
import { download } from '@/utils/request' import { download } from '@/utils/request'
import horizontalScroll from 'el-table-horizontal-scroll'
import './assets/icons' // icon import './assets/icons' // icon
import './permission' // permission control import './permission' // permission control
...@@ -59,6 +59,7 @@ Vue.component('FileUpload', FileUpload) ...@@ -59,6 +59,7 @@ Vue.component('FileUpload', FileUpload)
Vue.component('ImageUpload', ImageUpload) Vue.component('ImageUpload', ImageUpload)
Vue.component('ImagePreview', ImagePreview) Vue.component('ImagePreview', ImagePreview)
Vue.use(horizontalScroll)
Vue.use(directive) Vue.use(directive)
Vue.use(plugins) Vue.use(plugins)
Vue.use(VueMeta) Vue.use(VueMeta)
......
...@@ -70,7 +70,7 @@ export const constantRoutes = [ ...@@ -70,7 +70,7 @@ export const constantRoutes = [
path: 'index', path: 'index',
component: () => import('@/views/index'), component: () => import('@/views/index'),
name: 'Index', name: 'Index',
meta: { title: '首页', icon: 'index', } meta: { title: '首页', icon: 'index',noCache: false }
} }
] ]
}, },
...@@ -88,6 +88,34 @@ export const constantRoutes = [ ...@@ -88,6 +88,34 @@ export const constantRoutes = [
} }
] ]
}, },
// {
// path: '',
// component: Layout,
// hidden: true,
// redirect: 'economies',
// children: [
// {
// path: '/macro/economies',
// component: () => import('@/views/macro/economies'),
// name: 'Economies',
// meta: { title: '区域经济', icon: 'macro' }
// }
// ]
// },
{
path: '',
component: Layout,
hidden: true,
redirect: 'urban',
children: [
{
path: '/macro/urban',
component: () => import('@/views/macro/urban'),
name: 'Urban',
meta: { title: '城投平台', icon: 'macro' }
}
]
},
{ {
path: '/user', path: '/user',
component: Layout, component: Layout,
...@@ -127,7 +155,7 @@ export const constantRoutes = [ ...@@ -127,7 +155,7 @@ export const constantRoutes = [
path: '/enterprise/:id', path: '/enterprise/:id',
component: () => import('@/views/detail/party-a/index'), component: () => import('@/views/detail/party-a/index'),
name: 'PartyA', name: 'PartyA',
meta: { title: '企业详情', icon: 'enterprise', noCache: false }, meta: { title: '甲方详情', icon: 'enterprise', noCache: false },
} }
] ]
}, },
......
...@@ -51,6 +51,10 @@ export default { ...@@ -51,6 +51,10 @@ export default {
type: String, type: String,
default: '请选择' default: '请选择'
}, },
'moneyValue': {
type: String,
default: ''
},
'ref-str': { 'ref-str': {
type: String, type: String,
default: `timeselect${String(Math.random(0, 100)).slice(2)}`, default: `timeselect${String(Math.random(0, 100)).slice(2)}`,
...@@ -92,6 +96,9 @@ export default { ...@@ -92,6 +96,9 @@ export default {
if(this.moneyList&&this.moneyList.length>0){ if(this.moneyList&&this.moneyList.length>0){
this.options = this.moneyList this.options = this.moneyList
} }
if(this.moneyValue){
this.value = this.moneyValue
}
}, },
destroyed() { destroyed() {
const app = document.getElementById('app') const app = document.getElementById('app')
...@@ -278,7 +285,7 @@ export default { ...@@ -278,7 +285,7 @@ export default {
.options-block { .options-block {
position: absolute; position: absolute;
margin-top: 12px; margin-top: 3px;
min-width: 120px; min-width: 120px;
font-size: 14px; font-size: 14px;
color: #666666; color: #666666;
...@@ -411,20 +418,20 @@ export default { ...@@ -411,20 +418,20 @@ export default {
width: 186px; width: 186px;
color: #606266; color: #606266;
text-indent: 0; text-indent: 0;
padding: 16px; padding: 14px;
padding-top: 0px; padding-top: 0px;
border: 1px solid #e0e0e0; border: 1px solid #e0e0e0;
.popper_wrap { .popper_wrap {
margin-top: 16px; margin-top: 16px;
display: inline-block; display: inline-block;
.popper_input { .popper_input {
width: 100px; width: 90px;
display: inline-block; display: inline-block;
margin: 0px 8px; margin: 0px 8px;
line-height: 34px; line-height: 34px;
} }
.el-input__inner { .el-input__inner {
width: 100px; width: 90px;
} }
} }
input::-webkit-outer-spin-button, input::-webkit-outer-spin-button,
......
...@@ -46,6 +46,10 @@ export default { ...@@ -46,6 +46,10 @@ export default {
type: String, type: String,
default: '请选择', default: '请选择',
}, },
'timeValue': {
type: String,
default: '',
},
'ref-str': { 'ref-str': {
type: String, type: String,
default: `timeselect${String(Math.random(0, 100)).slice(2)}`, default: `timeselect${String(Math.random(0, 100)).slice(2)}`,
...@@ -61,7 +65,7 @@ export default { ...@@ -61,7 +65,7 @@ export default {
timeList: { timeList: {
type: Array, type: Array,
default: () => [], default: () => [],
} },
}, },
computed: { computed: {
isClear() { isClear() {
...@@ -106,6 +110,9 @@ export default { ...@@ -106,6 +110,9 @@ export default {
if(this.dateTo){ if(this.dateTo){
this.defaultValue = new Date(this.dateTo) this.defaultValue = new Date(this.dateTo)
} }
if(this.timeValue){
this.value = this.timeValue
}
this.handleAppClick() this.handleAppClick()
if(this.timeList&&this.timeList.length>0){ if(this.timeList&&this.timeList.length>0){
this.options = this.timeList this.options = this.timeList
...@@ -319,6 +326,9 @@ export default { ...@@ -319,6 +326,9 @@ export default {
left: -400px; left: -400px;
} }
} }
.el-date-editor{
left: -400px;
}
} }
.picker-block { .picker-block {
......
<template>
<div class="no-data">
<div class="no-data-box">
<img :src="noData" alt="抱歉,没找到相关数据" />
<div>抱歉,没找到相关数据</div>
<span v-if="condition">建议调整关键词或筛选条件,重新搜索</span>
</div>
</div>
</template>
<script>
export default {
name: "NoData",
props: {
condition: {
type: Boolean,
default: false
}
},
data() {
return {
noData: require("@/assets/images/detail/noData.png")
}
},
methods:{
}
}
</script>
<style lang="scss" scoped>
.no-data {
font-size: 14px;
color: #999999;
width: 100%;
height: 100%;
min-height: 120px;
display: flex;
justify-content: center;
align-items: center;
background: #ffffff;
//border: 1px solid #eeeeee;
.no-data-box {
display: flex;
flex-direction: column;
align-items: center;
img {
width: 108px;
height: 109px;
margin-bottom: 22px;
}
div{
font-size: 16px;
line-height: 1;
color: #333333;
}
span{
margin-top: 4px;
}
}
}
</style>
<template>
<div>
<el-dialog
class="popups"
:visible.sync="dialogVisible"
width="534px"
:close-on-click-modal="false"
@close="resetForm('ruleForm')"
>
<div class="poptitle">
<img src="@/assets/images/economies/icon.png">
<span>添加客户</span>
</div>
<el-form class="popform j" :model="queryParam" :rules="rules" ref="ruleForm" label-width="130px">
<el-form-item label="企业名称:" class="row" prop="companyName">
<el-input type="text" placeholder="请输入" v-model="queryParam.companyName" @input="getCompany(1)"></el-input>
<div class="resultlist infinite-list" v-if="showlist" id="box" v-infinite-scroll="load" style="overflow:auto">
<div class="infinite-list-item" v-for="(item,index) in companData" @click="selCompany(item)"><span v-html="item.name" :key="companypage"></span></div>
</div>
</el-form-item>
<el-form-item label="客户等级:" class="row">
<el-select placeholder="请选择" v-model="queryParam.customerLevel">
<el-option v-for="(item,index) in customerLevel" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
<el-form-item label="法定代表人:" class="row">
<el-input type="text" placeholder="请输入" v-model="queryParam.legalPerson"></el-input>
</el-form-item>
<el-form-item label="注册资本(万):" class="row">
<el-input type="text" placeholder="请输入" v-model="queryParam.registerCapital" @input='number'></el-input>
</el-form-item>
<el-form-item label="企业注册地:" class="row">
<el-cascader :props="props" @change="getAddr($event)" ref="address" v-model="queryParam.address" :options="addressList" clearable></el-cascader>
</el-form-item>
<el-form-item label="统一社会信用代码:" class="row">
<el-input type="text" placeholder="请输入" v-model="queryParam.creditCode"></el-input>
</el-form-item>
<div class="popbot">
<div class="wordprimary" @click="toct">前往城投平台寻找客户线索></div>
<div class="btn btn_cancel h32" @click="resetForm('ruleForm')">返回</div>
<div class="btn btn_primary h32" @click="submitForm('ruleForm')">添加</div>
</div>
</el-form>
</el-dialog>
</div>
</template>
<script>
import { getDictType, getEnterprise } from '@/api/main'
import { addCustomer, getCustomerList, importData } from '@/api/custom/custom'
import prvinceTree from '@/assets/json/provinceTree'
export default {
name: '',
components: {
},
props: {
data:{}
},
data() {
return {
props:{ checkStrictly: true, expandTrigger: 'hover' },
dialogVisible: this.data.open,
//添加客户
queryParam:{
companyId:'',//jsk企业id
companyName:'',//客户名称(企业名称
customerLevel:'',//客户等级
legalPerson:'',//法定代表人
registerCapital:'',//注册资本
registerAddress:'',//企业注册地址
creditCode:'',//社会统一信用代码
address:'',//选择的地址
provinceId:'',
cityId:'',
districtId:'',
},
rules:{
companyName:[{ required: true, message: '请输入非空格字符!', trigger: 'blur' },]
},
showlist:false,
customerLevel:[]
}
},
created() {
this.prvinceTree()
this.getDictType()
console.log(this.dialogVisible)
console.log('1111111111')
},
computed: {},
methods:{
async prvinceTree() {
this.addressList = prvinceTree;
this.getadd(this.addressList)
},
getDictType(){
//获取客户等级
getDictType('customer_level_type').then(result=>{
this.customerLevel = result.code == 200 ? result.data:[]
})
},
open() {
// this.dialogVisible = true;
},
resetForm(formName) {
this.queryParam = {
companyId:'',//jsk企业id
companyName:'',//客户名称(企业名称
customerLevel:'',//客户等级
legalPerson:'',//法定代表人
registerCapital:'',//注册资本
registerAddress:'',//企业注册地址
creditCode:'',//社会统一信用代码
address:'',//选择的地址
provinceId:'',
cityId:'',
districtId:'',
},
this.dialogVisible = false
this.showlist = false
},
getAddr(obj){
if(obj.length == 0){
this.queryParam.provinceId = ''
this.queryParam.cityId = ''
this.queryParam.districtId = ''
return false
}
let labelString = this.$refs.address.getCheckedNodes()[0].pathLabels.join("-");
this.queryParam.registerAddress = labelString
this.queryParam.provinceId = obj[0]
this.queryParam.cityId = obj.length>=1 ? obj[1]:''
this.queryParam.districtId = obj.length>=2 ? obj[2]:''
},
//获取建设库客户
getCompany(value){
this.queryParam.companyId = null
if(value == 1){
this.companData = []
this.companypage = 1
}
if (this.queryParam.companyName.length>=2){
let param = {
keyword:this.queryParam.companyName,
page:{
limit:20,
page:this.companypage
}
}
getEnterprise(JSON.stringify(param)).then(result=>{
if(result.code != 200){
return false
}
if(result.data.list != null && result.data.list.length>0){
this.isscroll = true
if (this.companData.length===0) {
this.companData = result.data.list
} else {
let arr2 = result.data.list
arr2.unshift(2, 0);
Array.prototype.splice.apply(this.companData, arr2);
}
if(this.companData.length===0) {
this.showlist = false
}else{
this.showlist = true
}
this.companypage += 1
}else{
this.isscroll = false
}
})
}
},
load(){
if(this.isscroll){
this.getCompany(2)
}
},
selCompany(item){
this.queryParam.companyId = item.jskEid
this.queryParam.companyName = item.name.replace(/<[^>]+>/g, '')
this.queryParam.legalPerson = item.legalPerson
let registeredCapitalStr = ""
if(item.registeredCapitalStr == "0" || item.registeredCapitalStr == 0){
registeredCapitalStr = ''
}else{
registeredCapitalStr = item.registeredCapitalStr
}
this.queryParam.registerCapital = registeredCapitalStr
this.queryParam.creditCode = item.creditCode
this.queryParam.provinceId = item.provinceId
this.queryParam.cityId = item.cityId
this.queryParam.districtId = item.cityId
let list = []
if(item.provinceId != null && item.provinceId != "")
list.push(item.provinceId)
if(item.cityId != null && item.cityId != "")
list.push(item.cityId)
if(item.districtId != null && item.districtId != "")
list.push(item.districtId)
this.$nextTick(()=>{
this.queryParam.address = list
let _this = this
setTimeout(function() {
if(_this.$refs.address){
_this.queryParam.registerAddress = _this.$refs.address.getCheckedNodes()[0].pathLabels.join("-")
}
},1000)
})
this.showlist = false
},
//添加客户
submitForm(formName) {
// if(this.queryParam.companyId=="" || this.queryParam.companyId == null){
// this.$message.error({message:'请选择企业!',showClose:true})
//
// return;
// }
this.$refs[formName].validate((valid) => {
if (valid) {
addCustomer(this.queryParam).then(result=>{
if(result.code == 200){
this.$message.success('添加成功!')
this.dialogVisible = false
this.resetForm('ruleForm')
}else{
this.$message.error(result.msg)
}
})
} else {
}
});
},
toct(){
this.$router.push({path:'/macro/urban'})
},
//输入数字
number(value){
if(value == '')
this.queryParam.registerCapital = value
else
this.queryParam.registerCapital = value.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1')//输入6位小数
},
//处理注册地数据
getadd(row) {
this.addrcallback(row,this.getadd)
},
addrcallback(row,callback){
if(row){
row.forEach(item => {
item.value = item.id
callback && callback(item.children)
})
}
},
},
}
</script>
<style scoped>
</style>
...@@ -15,10 +15,44 @@ ...@@ -15,10 +15,44 @@
<div class="btn btn_primary btn_shallow h36 w88" @click="pldrs">批量导入</div> <div class="btn btn_primary btn_shallow h36 w88" @click="pldrs">批量导入</div>
</div> </div>
<div class="table_search"> <div class="table_search">
<div class="searchInput"> <div>
<el-input type="text" clearable v-model="searchParam.companyName" @change="clearname" placeholder="输入企业名称查询"></el-input> <el-form ref="queryForm" :model="searchParam" :inline="true" size="small">
<div class="btn" @click="handleCurrentChange(1)">搜索</div> <el-form-item prop="companyName">
<div class="searchInput">
<el-input type="text" clearable v-model="searchParam.companyName" @change="clearname" placeholder="输入企业名称查询"></el-input>
<div class="btn" @click="handleCurrentChange(1)">搜索</div>
</div>
</el-form-item>
<el-form-item>
<el-cascader
ref="address1"
:options="addressList"
:props="addressProps"
v-model="address"
@change="handleSearch"
placeholder="地区选择"
collapse-tags
style="width: 200px;"
clearable></el-cascader>
</el-form-item>
<el-form-item prop="companyNatures">
<el-select v-model="searchParam.companyNatures" style="width: 175px;" @change="handleSearch" filterable collapse-tags multiple class="form-content-width" placeholder="客户性质">
<el-option v-for="(item, index) in companyNaturelist" :key="index" :label="item.dictLabel" :value="item.dictValue" />
</el-select>
</el-form-item>
<el-form-item prop="isOn">
<el-select v-model="searchParam.isOn" filterable clearable style="width: 175px;" @change="handleSearch" class="form-content-width" placeholder="上市公司">
<el-option v-for="(item, index) in isMajorlist" :key="index" :label="item.dictLabel" :value="item.dictValue" />
</el-select>
</el-form-item>
<el-form-item prop="creditLevels">
<el-select v-model="searchParam.creditLevels" style="width: 175px;" @change="handleSearch" multiple filterable collapse-tags class="form-content-width" placeholder="资信评级">
<el-option v-for="(item, index) in creditLevellist" :key="index" :label="item.dictLabel" :value="item.dictValue" />
</el-select>
</el-form-item>
</el-form>
</div> </div>
<div class="dc"> <div class="dc">
<div class="total">{{tableData.total}}</div> <div class="total">{{tableData.total}}</div>
<div class="btn-export" @click="pldrs"><img src="@/assets/images/project/import.png">批量导入</div> <div class="btn-export" @click="pldrs"><img src="@/assets/images/project/import.png">批量导入</div>
...@@ -259,7 +293,6 @@ ...@@ -259,7 +293,6 @@
import batchimport from '../../project/projectList/component/batchImport' import batchimport from '../../project/projectList/component/batchImport'
import skeleton from '../../project/projectList/component/skeleton' import skeleton from '../../project/projectList/component/skeleton'
import { encodeStr } from '@/assets/js/common' import { encodeStr } from '@/assets/js/common'
export default { export default {
name: 'CustomList', name: 'CustomList',
components:{batchimport,skeleton}, components:{batchimport,skeleton},
...@@ -273,6 +306,7 @@ ...@@ -273,6 +306,7 @@
pageNum:1, pageNum:1,
pageSize:20 pageSize:20
}, },
address:'',
props:{ checkStrictly: true, expandTrigger: 'hover' }, props:{ checkStrictly: true, expandTrigger: 'hover' },
dialogVisible:false, dialogVisible:false,
textarea:"", textarea:"",
...@@ -281,7 +315,23 @@ ...@@ -281,7 +315,23 @@
tipsvalue:"",//标签填写内容 tipsvalue:"",//标签填写内容
tableData: [],//列表 tableData: [],//列表
companData:[],//联想企业列表 companData:[],//联想企业列表
addressProps: {
multiple: true,
expandTrigger: 'hover'
},
//上市公司
isMajorlist:[
{
dictValue: 0,
dictLabel:'否',
},
{
dictValue: 1,
dictLabel:'是',
}
],
companyNaturelist:[], //客户性质
creditLevellist:[], //资信评级
customerLevel:[],//客户等级 customerLevel:[],//客户等级
addressList:[],//地区 addressList:[],//地区
//添加客户 //添加客户
...@@ -316,12 +366,23 @@ ...@@ -316,12 +366,23 @@
} }
}, },
created() { created() {
this.$watch( if(this.$route.query.key){
() => this.$route.params, this.searchParam.companyName=this.$route.query.key;
() => { }
if(this.$route.query.type === '1'){
this.searchParam.companyNatures=['国有企业']
}
if(this.$route.query.type === '2'){
this.searchParam.companyNatures=['央企']
}
if(this.$route.query.type ==='3'){
this.searchParam.companyNatures=['事业单位','机关单位']
}
this.$watch(() => this.$route.params,() => {
this.getCustomerList() this.getCustomerList()
this.getDictType() this.getDictType()
this.prvinceTree() this.prvinceTree()
this.handleQuery()
this.searchParam.companyName='' this.searchParam.companyName=''
}, },
// 组件创建完后获取数据, // 组件创建完后获取数据,
...@@ -330,6 +391,22 @@ ...@@ -330,6 +391,22 @@
) )
}, },
methods:{ methods:{
async handleQuery() {
let [type1,type2] = await Promise.all([
getDictType('company_nature_type'),
getDictType('credit_level_type'),
])
if(type1.code==200){
type1.data.forEach(item => {
this.companyNaturelist.push({dictLabel:item.dictLabel,dictValue:item.dictLabel})
})
}
if(type2.code==200){
type2.data.forEach(item => {
this.creditLevellist.push({dictLabel:item.dictLabel,dictValue:item.dictLabel})
})
}
},
sq1(item,sq){ sq1(item,sq){
this.$nextTick(()=>{ this.$nextTick(()=>{
item.sq1 = sq item.sq1 = sq
...@@ -367,7 +444,42 @@ ...@@ -367,7 +444,42 @@
}, },
//获取客户列表 //获取客户列表
getCustomerList(){ getCustomerList(){
getCustomerList(this.searchParam).then(result=>{ let params=this.searchParam
if(this.address.length > 0){
let arr = this.$refs.address1.getCheckedNodes();
let provinceCode = [],cityCode = [],countyCode = [];
for (var i in arr) {
if (arr[i].parent) {
if (!arr[i].parent.checked) {
arr[i].hasChildren && cityCode.push(arr[i].value);
!arr[i].hasChildren && countyCode.push(arr[i].value);
}
} else {
provinceCode.push(arr[i].value)
}
}
if(provinceCode.length > 0){
params.provinceIds=provinceCode
}
if(cityCode.length > 0){
params.cityIds=cityCode
}
if(countyCode.length > 0){
params.areaIds=countyCode
}
}else {
if(params.provinceIds){
delete params.provinceIds
}
if(params.cityIds){
delete params.cityIds
}
if(params.areaIds){
delete params.areaIds
}
}
getCustomerList(params).then(result=>{
this.isSkeleton = false this.isSkeleton = false
this.tableData = result this.tableData = result
this.tableData.rows.forEach(item=>{ this.tableData.rows.forEach(item=>{
...@@ -398,6 +510,12 @@ ...@@ -398,6 +510,12 @@
// } // }
this.$router.push({path:'/enterprise/'+encodeStr(companyId),query:{customerId:customerId,path:path}}) this.$router.push({path:'/enterprise/'+encodeStr(companyId),query:{customerId:customerId,path:path}})
}, },
handleSearch(){
this.$nextTick(() => {
this.searchParam.pageNum = 1
this.getCustomerList()
})
},
clearname(value){ clearname(value){
if(value == ""){ if(value == ""){
this.handleCurrentChange(1) this.handleCurrentChange(1)
...@@ -650,6 +768,27 @@ ...@@ -650,6 +768,27 @@
margin-top: 16px; margin-top: 16px;
} }
} }
.table_search{
::v-deep .el-cascader{
height: 32px;
line-height: 32px;
.el-input{
input{
height: 32px !important;
}
}
.el-cascader__tags{
flex-wrap: inherit;
margin-top: 1px;
.el-tag{
max-width: 120px;
}
}
.el-input__suffix{
top: 1px;
}
}
}
} }
.ps1{ .ps1{
display: flex; display: flex;
...@@ -696,8 +835,9 @@ ...@@ -696,8 +835,9 @@
height: auto; height: auto;
} }
.searchInput{ .searchInput{
width: 240px;
.el-input{ .el-input{
width: 260px; /*width: 260px;*/
} }
} }
</style> </style>
...@@ -54,17 +54,24 @@ ...@@ -54,17 +54,24 @@
<label class="label">建设性质</label> <label class="label">建设性质</label>
<span>{{info.projectNature||"--"}}</span> <span>{{info.projectNature||"--"}}</span>
</p> </p>
<p>
<label class="label">招标公告</label>
<span class="span2">
<router-link :to="`/radar/Notice/details/${info.bId}`" tag="a" class="a-link" v-if="info.bId" >查看招标公告</router-link>
<span v-else>--</span>
</span>
</p>
</div> </div>
<div class="biddetail-title">招标信息</div> <div class="biddetail-title">招标信息</div>
<div class="main31-box"> <div class="main31-box">
<p> <p>
<label class="label">招标单位</label> <label class="label">招标单位</label>
<span class="span1"> <span class="span1">
<router-link v-if="info.projectUnit" :to="info.uipId?'/enterprise/' + encodeStr(info.projectUnitId) :'/company/' + encodeStr(info.projectUnitId) " tag="a" class="list-titel-a blue" v-html="info.projectUnit"></router-link> <router-link v-if="info.projectUnit" :to="info.uipId?'/enterprise/' + encodeStr(info.projectUnitId) :'/company/' + encodeStr(info.projectUnitId) " tag="a" class="list-titel-a blue" v-html="info.projectUnit"></router-link>
<span v-else>--</span> <span v-else>--</span>
</span> </span>
<label class="label label1">招标代理机构</label> <label class="label label1">招标代理机构</label>
<span class="span1">{{info.agency||"--"}}</span> <span class="span1">{{info.agency||"--"}}</span>
</p> </p>
</div> </div>
...@@ -409,9 +416,12 @@ export default { ...@@ -409,9 +416,12 @@ export default {
font-size: 12px; font-size: 12px;
background: #fff; background: #fff;
} }
.span1{ .span1{
width: 40%; width: 40%;
} }
.span2{
width: 88.9%;
}
.span-one { .span-one {
width: 90%; width: 90%;
} }
......
<template> <template>
<div class="headForm"> <div class="headForm">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params" :class="flag?'box1':''">
<div class="flex-box headForm-text"> <div class="flex-box headForm-text">
<!-- <img v-if="title" src="@/assets/images/detail/ico_title.png" /> --> <template v-if="flag">
<!-- <span class="drawer-title" v-if="title">{{ title }}</span> --> <img v-if="title" src="@/assets/images/detail/ico_title.png" />
<span class="drawer-title" v-if="title">{{ title }}</span>
</template>
<template v-if="slots"> <template v-if="slots">
<slot name="slot"></slot> <slot name="slot"></slot>
</template> </template>
<!-- <div v-else> <div v-if="flag">
<span class="ability-total" v-if="isTotal">{{ total }}条数据</span> <span class="ability-total" v-if="isTotal">{{ total }}条数据</span>
<span class="ability-total" v-if="amountTotal">,共计合作总金额:<i>{{ amountTotal }}</i>万元</span> <span class="ability-total" v-if="amountTotal">,共计合作总金额:<i>{{ amountTotal }}</i>万元</span>
</div> --> </div>
</div> </div>
<div class="headForm-from"> <div class="headForm-from">
<div class="from-item" :key="i" v-for="(form, i) in formData"> <div class="from-item" :key="i" v-for="(form, i) in formData">
...@@ -45,7 +47,7 @@ ...@@ -45,7 +47,7 @@
<!-- 输入框 --> <!-- 输入框 -->
<template v-if="form.type==3"> <template v-if="form.type==3">
<div class="cooperate-name" :id="'detailFocus'+i"> <div class="cooperate-name" :id="'detailFocus'+i">
<el-input clearable @focus="clickFocus('detailFocus'+i)" @blur="clickFocus('detailFocus'+i)" v-model="form.value" :placeholder="form.placeholder" :style="form.width?'width:'+form.width+'px':'width:180px'"></el-input> <el-input clearable @clear="changeSelect" @focus="clickFocus('detailFocus'+i)" @blur="clickFocus('detailFocus'+i)" v-model="form.value" :placeholder="form.placeholder" :style="form.width?'width:'+form.width+'px':'width:180px'"></el-input>
<span @click="changeSelect">搜索</span> <span @click="changeSelect">搜索</span>
</div> </div>
</template> </template>
...@@ -96,6 +98,10 @@ export default { ...@@ -96,6 +98,10 @@ export default {
type: String, type: String,
default: '' default: ''
}, },
flag: {
type: Boolean,
default: false
},
queryParams: { queryParams: {
type: Object, type: Object,
default: {} default: {}
...@@ -143,11 +149,26 @@ export default { ...@@ -143,11 +149,26 @@ export default {
width: 100%; width: 100%;
padding: 8px 17px 8px 0; padding: 8px 17px 8px 0;
} }
.box1{
padding: 8px 17px 8px 13px;
justify-content: space-between;
border-bottom: 1px solid #E1E1E1;
}
::v-deep .el-input__inner{ ::v-deep .el-input__inner{
border: 0; border: 0;
height: 32px; height: 32px;
line-height: 32px; line-height: 32px;
} }
::v-deep .el-select .el-input__inner{
border: 1px solid #D9D9D9;
height: 34px;
line-height: 34px;
padding-right: 27px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
border-radius: 4px;
}
::v-deep .custom-money-select{ ::v-deep .custom-money-select{
.el-input__inner{ .el-input__inner{
border: 1px solid #D9D9D9; border: 1px solid #D9D9D9;
...@@ -161,6 +182,12 @@ export default { ...@@ -161,6 +182,12 @@ export default {
line-height: 32px; line-height: 32px;
} }
.headForm-text{ .headForm-text{
.drawer-title{
font-size: 16px;
color: #232323;
font-weight: bold;
margin-right: 4px;
}
img{ img{
width: 17px; width: 17px;
height: 17px; height: 17px;
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
</template> </template>
<script> <script>
import { financial } from '@/api/detail/party-a/financial'
export default { export default {
name: 'Sidebar', name: 'Sidebar',
props: { props: {
...@@ -146,7 +146,7 @@ export default { ...@@ -146,7 +146,7 @@ export default {
} }
}, },
created() { created() {
this.defaultRoute = JSON.parse(JSON.stringify(this.sideRoute)) this.defaultRoute = JSON.parse(JSON.stringify(this.sideRoute))
}, },
watch:{ watch:{
statisticObj:{ statisticObj:{
...@@ -284,14 +284,18 @@ export default { ...@@ -284,14 +284,18 @@ export default {
} }
}, },
methods: { methods: {
financial(id){
financial({cid:String(id)}).then(res=>{
if(res.code==200&&!res.data){
this.sideRoute[1].disabled = true
}
})
},
handleOpen(key, keyPath) { handleOpen(key, keyPath) {
}, },
handleItem(item){ handleItem(item){
if(item.title=='企业速览'){ this.sideRoute = this.defaultRoute
item.pathName = 'overview'
}
console.log(item)
this.$emit("currentPath", item) this.$emit("currentPath", item)
}, },
handleSearch(flag){ handleSearch(flag){
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
:min-width="item.minWidth" :min-width="item.minWidth"
:align="item.align?item.align:'left'" :align="item.align?item.align:'left'"
:fixed="item.fixed" :fixed="item.fixed"
:sortable="item.sortable ? 'custom' : false" :sortable="item.sortable ?item.sortable=='custom'? 'custom':true : false"
:resizable="false"> :resizable="false">
<template v-if="item.children&&item.children.length"> <template v-if="item.children&&item.children.length">
<el-table-column <el-table-column
...@@ -216,5 +216,4 @@ export default { ...@@ -216,5 +216,4 @@ export default {
::v-deep .el-table--enable-row-hover .el-table__body tr:hover > td { ::v-deep .el-table--enable-row-hover .el-table__body tr:hover > td {
background-color: #DCEBFF; background-color: #DCEBFF;
} }
</style> </style>
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
> >
<template slot="slot"> <template slot="slot">
<div class="flex-box query-add"> <div class="flex-box query-add">
<el-button type="primary" icon="el-icon-plus" @click="drawer = true">添加商务信息</el-button> <el-button type="primary" icon="el-icon-plus" @click="drawer = true">添加合作情况</el-button>
</div> </div>
</template> </template>
</head-form> </head-form>
......
...@@ -82,7 +82,6 @@ export default { ...@@ -82,7 +82,6 @@ export default {
}, },
methods: { methods: {
async handleQuery(params) { async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
let res = await oftenAgencyPage(param) let res = await oftenAgencyPage(param)
......
...@@ -71,7 +71,6 @@ export default { ...@@ -71,7 +71,6 @@ export default {
}, },
methods: { methods: {
async handleQuery(params) { async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
let res = await tenderPage(param) let res = await tenderPage(param)
......
...@@ -8,13 +8,16 @@ ...@@ -8,13 +8,16 @@
@closed="cancel"> @closed="cancel">
<head-detail-form <head-detail-form
:title="title" :title="title"
:flag="true"
:form-data="formData" :form-data="formData"
:query-params="queryParams" :query-params="queryParams"
:total="tableDataTotal" :total="tableDataTotal"
:amountTotal="amountTotal" :amountTotal="amountTotal"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables <tables
v-else
:indexFixed="true" :indexFixed="true"
:tableLoading="tableLoading" :tableLoading="tableLoading"
:tableData="tableData" :tableData="tableData"
...@@ -27,7 +30,7 @@ ...@@ -27,7 +30,7 @@
<template slot="dealTitle" slot-scope="scope"> <template slot="dealTitle" slot-scope="scope">
<div class="flex-box"> <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)"/> <img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.fileUrlL" @click="handlePic(scope.row.fileUrlL)"/>
<router-link :to="`/radar/Notice/details/${scope.row.bid}`" tag="a" class="a-link" v-if="scope.row.bid&&scope.row.dealTitle" v-html="scope.row.dealTitle"></router-link> <div class="a-link" @click="linkTo(scope.row.bid)" v-if="scope.row.bid&&scope.row.dealTitle" v-html="scope.row.dealTitle" style="cursor: pointer"></div>
<span v-else v-html="scope.row.dealTitle || '--'"></span> <span v-else v-html="scope.row.dealTitle || '--'"></span>
</div> </div>
</template> </template>
...@@ -43,18 +46,19 @@ ...@@ -43,18 +46,19 @@
import mixin from '../../mixins/mixin' import mixin from '../../mixins/mixin'
import {bidCooperatePage} from '@/api/detail/party-a/dealings' import {bidCooperatePage} from '@/api/detail/party-a/dealings'
import HeadDetailForm from "../../component/HeadDetailForm" import HeadDetailForm from "../../component/HeadDetailForm"
import skeleton from '@/views/project/projectList/component/skeleton'
export default { export default {
props: [ props: [
'data', 'data',
'title' 'title'
], ],
components: { components: {
HeadDetailForm HeadDetailForm,skeleton
}, },
mixins: [mixin], mixins: [mixin],
data() { data() {
return { return {
isSkeleton:true,
drawer: false, drawer: false,
queryParams: { queryParams: {
tendereeId: this.data.tendereeId, tendereeId: this.data.tendereeId,
...@@ -84,6 +88,10 @@ export default { ...@@ -84,6 +88,10 @@ export default {
this.handleQuery() this.handleQuery()
}, },
methods: { methods: {
linkTo(id){
this.drawer = false
this.$router.push(`/radar/Notice/details/${id}`)
},
async handleQuery(params) { async handleQuery(params) {
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
...@@ -92,6 +100,7 @@ export default { ...@@ -92,6 +100,7 @@ export default {
if(res.code==200){ if(res.code==200){
this.tableData = res.rows this.tableData = res.rows
} }
this.isSkeleton = false;
this.tableDataTotal = res.total this.tableDataTotal = res.total
this.amountTotal = res.totalAmount this.amountTotal = res.totalAmount
}, },
......
<template> <template>
<div class="client-details"> <div class="client-details">
<el-drawer <el-dialog
:visible.sync="drawer" :visible.sync="drawer"
size="60%" size="80%"
custom-class="client-drawer" :title="title"
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"
:amountTotal="amountTotal" :amountTotal="amountTotal"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables <tables
v-else
:indexFixed="true" :indexFixed="true"
:tableLoading="tableLoading" :tableLoading="tableLoading"
:tableData="tableData" :tableData="tableData"
:forData="forData" :forData="forData"
:tableDataTotal="tableDataTotal" :tableDataTotal="tableDataTotal"
@sort-change="sortChange"
:queryParams="queryParams" :queryParams="queryParams"
@handle-current-change="handleCurrentChange" @handle-current-change="handleCurrentChange"
style="margin: 12px;"
> >
<template slot="projectAllName" slot-scope="scope"> <template slot="projectName" slot-scope="scope">
<span v-html="scope.row.projectName"></span>
</template>
<template slot="sourceType" slot-scope="scope">
<div class="flex-box"> <div class="flex-box">
<img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.snapshootPic" @click="handlePic(scope.row.snapshootPic, true)"/> <div class="a-link" @click="linkTo(scope)" v-if="scope.row.sourceId&&scope.row.sourceType=='中标业绩'" v-html="scope.row.sourceType" style="cursor: pointer"></div>
<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-if="scope.row.sourceId&&(scope.row.sourceType=='中标公示'||scope.row.sourceType=='四库业绩'||scope.row.sourceType=='荣誉奖项')" @click="linkTo1(scope)" class="a-link" style="cursor: pointer" v-html="scope.row.sourceType"></span>
<span v-else v-html="scope.row.projectAllName || '--'"></span> <span v-else v-html="scope.row.sourceType || '--'"></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-drawer> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import mixin from '../../mixins/mixin' import mixin from '../../mixins/mixin'
import {clientProjectPage} from '@/api/detail/party-a/dealings' import {clientProjectPage,getSelect,bidWinMergeDetail,skyProjectDetail,awardDetail} from '@/api/detail/party-a/dealings'
import HeadDetailForm from "../../component/HeadDetailForm" import HeadDetailForm from "../../component/HeadDetailForm"
import skeleton from '@/views/project/projectList/component/skeleton'
export default { export default {
props: [ props: [
...@@ -54,29 +54,32 @@ export default { ...@@ -54,29 +54,32 @@ export default {
'title' 'title'
], ],
components: { components: {
HeadDetailForm HeadDetailForm,skeleton
}, },
mixins: [mixin], mixins: [mixin],
data() { data() {
return { return {
drawer: false, drawer: false,
isSkeleton:true,
queryParams: { queryParams: {
cid: this.companyId, cid: this.companyId,
unitId: this.data.projectUnitId, companyId: this.data.companyId,
companyName: this.data.companyName.replace(/<font color='red'>/g,'').replace(/<\/font>/g,''),
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 20
}, },
formData: [ formData: [
{ type: 4, fieldName: 'projects', value: '', placeholder: '合作项目类型', options: []},
{ type: 4, fieldName: 'sources', value: '', placeholder: '数据来源', options: []},
{ type: 6, fieldName: 'money', value: '', placeholder: '合同金额', startMoney: 'amountStart', endMoney: 'amountEnd' },
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目/工程名称查询', options: []}, { type: 3, fieldName: 'keys', value: '', placeholder: '输入项目/工程名称查询', options: []},
], ],
forData: [ forData: [
{label: '合作项目/工程名称', prop: 'projectAllName', width: '720', fixed: true, slot: true}, {label: '项目名称', prop: 'projectName', fixed: true,slot: true},
{label: '项目/工程金额(万元)', prop: 'winBidAmount', width: '160'}, {label: '公布时间', prop: 'time', width: '120',sortable:'custom',descending: '3', ascending: '4'},
{label: '合作时间', prop: 'winBidTime', width: '100'}, {label: '本次合同金额(万元)', prop: 'amount', width: '180',sortable:'custom',descending: '1', ascending: '2'},
{label: '项目地区', prop: 'province', width: '160', slot: true}, {label: '项目类型', prop: 'projectTtype', width: '130'},
{label: '项目类型', prop: 'boundType', width: '130'}, {label: '数据来源', prop: 'sourceType', width: '90', slot: true}
{label: '工期(天)', prop: 'period', width: '90'},
{label: '下浮率', prop: 'lowerRate', width: '90', slot: true}
], ],
//列表 //列表
tableLoading:false, tableLoading:false,
...@@ -88,8 +91,28 @@ export default { ...@@ -88,8 +91,28 @@ export default {
created() { created() {
this.drawer = true this.drawer = true
this.handleQuery() this.handleQuery()
this.handleOption()
}, },
methods: { methods: {
async handleOption(){
let res = await getSelect({})
if(res.code==200){
let data = res.data.projects
for (var i=0;i<data.length;i++){
this.formData[0].options.push({
name: data[i],
value: data[i],
})
}
let data1 = res.data.sources
for (var i=0;i<data1.length;i++){
this.formData[1].options.push({
name: data1[i],
value: data1[i],
})
}
}
},
async handleQuery(params) { async handleQuery(params) {
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
...@@ -98,6 +121,7 @@ export default { ...@@ -98,6 +121,7 @@ export default {
if(res.code==200){ if(res.code==200){
this.tableData = res.rows this.tableData = res.rows
} }
this.isSkeleton = false;
this.tableDataTotal = res.total this.tableDataTotal = res.total
this.amountTotal = res.totalAmount this.amountTotal = res.totalAmount
}, },
...@@ -109,7 +133,38 @@ export default { ...@@ -109,7 +133,38 @@ export default {
}, },
linkTo(scope){ linkTo(scope){
this.drawer = false this.drawer = false
this.$router.push(`/biddetail/${scope.row.id}`) this.$router.push(`/biddetail/${scope.row.sourceId}`)
},
linkTo1(scope){
let url = ""
switch (scope.row.sourceType) {
case '中标公示':
bidWinMergeDetail({sourceId:scope.row.sourceId}).then(res=>{
if(res.data&&res.data.sourceUrl){
url = res.data.sourceUrl
window.open(url, "_blank")
}
})
break;
case '荣誉奖项':
awardDetail({sourceId:scope.row.sourceId}).then(res=>{
if(res.data&&res.data.sourceUrl){
url = res.data.sourceUrl
window.open(url, "_blank")
}
})
break;
case '四库业绩':
skyProjectDetail({sourceId:scope.row.sourceId}).then(res=>{
if(res.data&&res.data.sourceUrl){
url = res.data.sourceUrl
window.open(url, "_blank")
}
})
break;
default:
break;
}
}, },
cancel() { cancel() {
this.$emit('cancel') this.$emit('cancel')
...@@ -120,8 +175,27 @@ export default { ...@@ -120,8 +175,27 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.client-details { .client-details {
::v-deep .client-drawer{ ::v-deep .client-dialog{
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;
......
<template> <template>
<div class="client-details"> <div class="client-details">
<el-drawer <el-dialog
:visible.sync="drawer" :visible.sync="drawer"
size="60%" size="80%"
custom-class="client-drawer" :title="title"
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"
:amountTotal="amountTotal" :amountTotal="amountTotal"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables <tables
v-else
:indexFixed="true" :indexFixed="true"
:tableLoading="tableLoading" :tableLoading="tableLoading"
:tableData="tableData" :tableData="tableData"
:forData="forData" :forData="forData"
:tableDataTotal="tableDataTotal" :tableDataTotal="tableDataTotal"
:queryParams="queryParams" :queryParams="queryParams"
@sort-change="sortChange"
@handle-current-change="handleCurrentChange" @handle-current-change="handleCurrentChange"
style="margin: 12px;"
> >
<template slot="projectAllName" slot-scope="scope"> <template slot="projectName" slot-scope="scope">
<span v-html="scope.row.projectName"></span>
</template>
<template slot="sourceType" slot-scope="scope">
<div class="flex-box"> <div class="flex-box">
<img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.snapshootPic" @click="handlePic(scope.row.snapshootPic, true)"/> <div class="a-link" @click="linkTo(scope)" v-if="scope.row.sourceId&&scope.row.sourceType=='中标业绩'" v-html="scope.row.sourceType" style="cursor: pointer"></div>
<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> <span v-else-if="scope.row.sourceId&&(scope.row.sourceType=='中标公示'||scope.row.sourceType=='四库业绩'||scope.row.sourceType=='荣誉奖项')" @click="linkTo1(scope)" class="a-link" style="cursor: pointer" v-html="scope.row.sourceType"></span>
<span v-else v-html="scope.row.sourceType || '--'"></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-drawer> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import mixin from '../../mixins/mixin' import mixin from '../../mixins/mixin'
import { supplierProjectPage } from '@/api/detail/party-a/dealings' import { supplierProjectPage,getSelect,bidWinMergeDetail,skyProjectDetail,awardDetail } from '@/api/detail/party-a/dealings'
import HeadDetailForm from "../../component/HeadDetailForm" import HeadDetailForm from "../../component/HeadDetailForm"
import skeleton from '@/views/project/projectList/component/skeleton'
export default { export default {
props: [ props: [
...@@ -53,29 +54,32 @@ export default { ...@@ -53,29 +54,32 @@ export default {
'title' 'title'
], ],
components: { components: {
HeadDetailForm HeadDetailForm,skeleton
}, },
mixins: [mixin], mixins: [mixin],
data() { data() {
return { return {
isSkeleton:true,
drawer: false, drawer: false,
queryParams: { queryParams: {
cid: this.data.companyId, companyId: this.data.companyId,
unitId: this.companyId, companyName: this.data.companyName.replace(/<font color='red'>/g,'').replace(/<\/font>/g,''),
cid: this.companyId,
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 20
}, },
formData: [ formData: [
{ type: 4, fieldName: 'projects', value: '', placeholder: '合作项目类型', options: []},
{ type: 4, fieldName: 'sources', value: '', placeholder: '数据来源', options: []},
{ type: 6, fieldName: 'money', value: '', placeholder: '合同金额', startMoney: 'amountStart', endMoney: 'amountEnd' },
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入合作项目/工程名称查询', options: [], width: 260}, { type: 3, fieldName: 'keys', value: '', placeholder: '输入合作项目/工程名称查询', options: [], width: 260},
], ],
forData: [ forData: [
{label: '合作项目/工程名称', prop: 'projectAllName', width: '720', fixed: true, slot: true}, {label: '项目名称', prop: 'projectName', fixed: true,slot: true},
{label: '项目/工程金额(万元)', prop: 'winBidAmount', width: '160'}, {label: '公布时间', prop: 'time', width: '120',sortable:'custom',descending: '3', ascending: '4'},
{label: '合作时间', prop: 'winBidTime', width: '100'}, {label: '本次合同金额(万元)', prop: 'amount', width: '180',sortable:'custom',descending: '1', ascending: '2'},
{label: '项目地区', prop: 'province', width: '160', slot: true}, {label: '项目类型', prop: 'projectType', width: '130'},
{label: '项目类型', prop: 'boundType', width: '130'}, {label: '数据来源', prop: 'sourceType', width: '90', slot: true}
{label: '工期(天)', prop: 'period', width: '90'},
{label: '下浮率', prop: 'lowerRate', width: '90', slot: true}
], ],
//列表 //列表
tableLoading:false, tableLoading:false,
...@@ -87,8 +91,28 @@ export default { ...@@ -87,8 +91,28 @@ export default {
created() { created() {
this.drawer = true this.drawer = true
this.handleQuery() this.handleQuery()
this.handleOption()
}, },
methods: { methods: {
async handleOption(){
let res = await getSelect({})
if(res.code==200){
let data = res.data.projects
for (var i=0;i<data.length;i++){
this.formData[0].options.push({
name: data[i],
value: data[i],
})
}
let data1 = res.data.sources
for (var i=0;i<data1.length;i++){
this.formData[1].options.push({
name: data1[i],
value: data1[i],
})
}
}
},
async handleQuery(params) { async handleQuery(params) {
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
...@@ -97,6 +121,7 @@ export default { ...@@ -97,6 +121,7 @@ export default {
if(res.code==200){ if(res.code==200){
this.tableData = res.rows this.tableData = res.rows
} }
this.isSkeleton = false;
this.tableDataTotal = res.total this.tableDataTotal = res.total
this.amountTotal = res.totalAmount this.amountTotal = res.totalAmount
}, },
...@@ -108,7 +133,38 @@ export default { ...@@ -108,7 +133,38 @@ export default {
}, },
linkTo(scope){ linkTo(scope){
this.drawer = false this.drawer = false
this.$router.push(`/biddetail/${scope.row.id}`) this.$router.push(`/biddetail/${scope.row.sourceId}`)
},
linkTo1(scope){
let url = ""
switch (scope.row.sourceType) {
case '中标公示':
bidWinMergeDetail({sourceId:scope.row.sourceId}).then(res=>{
if(res.data&&res.data.sourceUrl){
url = res.data.sourceUrl
window.open(url, "_blank")
}
})
break;
case '荣誉奖项':
awardDetail({sourceId:scope.row.sourceId}).then(res=>{
if(res.data&&res.data.sourceUrl){
url = res.data.sourceUrl
window.open(url, "_blank")
}
})
break;
case '四库业绩':
skyProjectDetail({sourceId:scope.row.sourceId}).then(res=>{
if(res.data&&res.data.sourceUrl){
url = res.data.sourceUrl
window.open(url, "_blank")
}
})
break;
default:
break;
}
}, },
cancel() { cancel() {
this.$emit('cancel') this.$emit('cancel')
...@@ -119,8 +175,27 @@ export default { ...@@ -119,8 +175,27 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.client-details { .client-details {
::v-deep .client-drawer{ ::v-deep .client-dialog{
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;
......
...@@ -22,19 +22,22 @@ ...@@ -22,19 +22,22 @@
@sort-change="sortChange" @sort-change="sortChange"
> >
<template slot="companyName" slot-scope="scope"> <template slot="companyName" slot-scope="scope">
<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.companyId)}`:`/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="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>
...@@ -42,7 +45,7 @@ ...@@ -42,7 +45,7 @@
<script> <script>
import mixin from '../mixins/mixin' import mixin from '../mixins/mixin'
import { clientPage } from '@/api/detail/party-a/dealings' import { clientPage,getSelect } from '@/api/detail/party-a/dealings'
import ClientDetail from './component/customDetail' import ClientDetail from './component/customDetail'
export default { export default {
name: 'Custom', name: 'Custom',
...@@ -53,21 +56,25 @@ export default { ...@@ -53,21 +56,25 @@ export default {
}, },
data() { data() {
return { return {
title:'',
queryParams: { queryParams: {
cid: this.companyId, cid: this.companyId,
sort: 3, sort: 5,
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 20
}, },
defaultSort: {prop: 'time', order: 'descending'}, defaultSort: {prop: 'count', 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: 'time', minWidth: '140', sortable: 'custom', descending: '3', ascending: '4'} {label: '合作次数', prop: 'count', minWidth: '150', sortable: 'custom',slot: true, descending: '5', ascending: '6'},
], ],
formData: [ formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询', options: []}, { type: 4, fieldName: 'projects', value: '', placeholder: '合作项目类型', options: []},
{ type: 4, fieldName: 'sources', value: '', placeholder: '数据来源', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '搜索客户名称', options: []},
], ],
//列表 //列表
tableLoading:false, tableLoading:false,
...@@ -81,8 +88,28 @@ export default { ...@@ -81,8 +88,28 @@ export default {
}, },
created() { created() {
this.handleQuery() this.handleQuery()
this.handleOption()
}, },
methods: { methods: {
async handleOption(){
let res = await getSelect({})
if(res.code==200){
let data = res.data.projects
for (var i=0;i<data.length;i++){
this.formData[0].options.push({
name: data[i],
value: data[i],
})
}
let data1 = res.data.sources
for (var i=0;i<data1.length;i++){
this.formData[1].options.push({
name: data1[i],
value: data1[i],
})
}
}
},
async handleQuery(params) { async handleQuery(params) {
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
...@@ -102,7 +129,8 @@ export default { ...@@ -102,7 +129,8 @@ export default {
}, },
handleClick(e, data) { handleClick(e, data) {
this.rowData = data this.rowData = data
this.isDetails = true this.isDetails = true;
this.title = '与客户'+data.companyName.replace(/<font color='red'>/g,'').replace(/<\/font>/g,'')+'合作记录'
}, },
handleDetail(row){ handleDetail(row){
if(row.sourceUrl){ if(row.sourceUrl){
......
...@@ -94,7 +94,6 @@ export default { ...@@ -94,7 +94,6 @@ export default {
}, },
async handleQuery(params) { async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
let res = await historySendPage(param) let res = await historySendPage(param)
this.tableLoading = false this.tableLoading = false
......
...@@ -25,16 +25,14 @@ ...@@ -25,16 +25,14 @@
<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="projectAllName" slot-scope="scope"> <template slot="count" 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> <div v-if="scope.row.count>0" class="a-link" style="cursor: pointer;" @click="handleClick($event, scope.row)" >{{scope.row.count}}</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>
</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>
...@@ -42,7 +40,7 @@ ...@@ -42,7 +40,7 @@
<script> <script>
import mixin from '../mixins/mixin' import mixin from '../mixins/mixin'
import { supplierPage } from '@/api/detail/party-a/dealings' import { supplierPage,getSelect } from '@/api/detail/party-a/dealings'
import ClientDetail from './component/supplierDetail' import ClientDetail from './component/supplierDetail'
export default { export default {
name: 'Supplier', name: 'Supplier',
...@@ -53,21 +51,24 @@ export default { ...@@ -53,21 +51,24 @@ export default {
}, },
data() { data() {
return { return {
title:'',
queryParams: { queryParams: {
cid: this.companyId, cid: this.companyId,
sort: 3, sort: 5,
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 20
}, },
defaultSort: {prop: 'time', order: 'descending'}, defaultSort: {},
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: '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: 'time', minWidth: '140', sortable: 'custom', descending: '3', ascending: '4'} {label: '合作次数', prop: 'count', minWidth: '150', sortable: 'custom',slot: true, descending: '5', ascending: '6'},
], ],
formData: [ formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询', options: []}, { type: 4, fieldName: 'projects', value: '', placeholder: '合作项目类型', options: []},
{ type: 4, fieldName: 'sources', value: '', placeholder: '数据来源', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '搜索供应商名称', options: []},
], ],
//列表 //列表
tableLoading:false, tableLoading:false,
...@@ -81,8 +82,28 @@ export default { ...@@ -81,8 +82,28 @@ export default {
}, },
created() { created() {
this.handleQuery() this.handleQuery()
this.handleOption()
}, },
methods: { methods: {
async handleOption(){
let res = await getSelect({})
if(res.code==200){
let data = res.data.projects
for (var i=0;i<data.length;i++){
this.formData[0].options.push({
name: data[i],
value: data[i],
})
}
let data1 = res.data.sources
for (var i=0;i<data1.length;i++){
this.formData[1].options.push({
name: data1[i],
value: data1[i],
})
}
}
},
async handleQuery(params) { async handleQuery(params) {
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
...@@ -103,6 +124,7 @@ export default { ...@@ -103,6 +124,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.replace(/<font color='red'>/g,'').replace(/<\/font>/g,'')+'合作记录'
}, },
handleDetail(row){ handleDetail(row){
if(row.sourceUrl){ if(row.sourceUrl){
......
...@@ -188,6 +188,15 @@ export default { ...@@ -188,6 +188,15 @@ export default {
companyName: this.customerInfo.companyName companyName: this.customerInfo.companyName
} }
document.getElementById('tagTitle').innerText = this.customerInfo.companyName document.getElementById('tagTitle').innerText = this.customerInfo.companyName
// let lists = this.$store.state.tagsView.visitedViews
// lists.forEach(item=>{
// if(item.fullPath == this.$route.fullPath){
let titlename = document.getElementById('tagTitles')
if(titlename){
titlename.innerText = this.customerInfo.companyName
}
// }
// })
}) })
} }
} }
...@@ -242,6 +251,7 @@ export default { ...@@ -242,6 +251,7 @@ export default {
this.getStatistic(); this.getStatistic();
this.handleQuery(); this.handleQuery();
this.association(this.$route.query.customerId) this.association(this.$route.query.customerId)
this.$refs.sidebar.financial(data);
} }
}, },
async getStatistic(){ async getStatistic(){
...@@ -272,6 +282,15 @@ export default { ...@@ -272,6 +282,15 @@ export default {
if(this.companyInfo && this.companyInfo.companyName){ if(this.companyInfo && this.companyInfo.companyName){
this.$nextTick(()=>{ this.$nextTick(()=>{
document.getElementById('tagTitle').innerText = this.companyInfo.companyName document.getElementById('tagTitle').innerText = this.companyInfo.companyName
// let lists = this.$store.state.tagsView.visitedViews
// lists.forEach(item=>{
// if(item.fullPath == this.$route.fullPath){
let titlename = document.getElementById('tagTitles')
if(titlename){
titlename.innerText = this.companyInfo.companyName
}
// }
// })
}) })
} }
} }
...@@ -312,6 +331,15 @@ export default { ...@@ -312,6 +331,15 @@ export default {
companyName: this.customerInfo.companyName companyName: this.customerInfo.companyName
} }
document.getElementById('tagTitle').innerText = this.customerInfo.companyName document.getElementById('tagTitle').innerText = this.customerInfo.companyName
// let lists = this.$store.state.tagsView.visitedViews
// lists.forEach(item=>{
// if(item.fullPath == this.$route.fullPath){
let titlename = document.getElementById('tagTitles')
if(titlename){
titlename.innerText = this.customerInfo.companyName
}
// }
// })
}) })
} }
} else { } else {
......
...@@ -15,7 +15,7 @@ export default { ...@@ -15,7 +15,7 @@ export default {
} }
}, },
mounted() { mounted() {
}, },
methods: { methods: {
// 设置下拉选项数据源 // 设置下拉选项数据源
......
...@@ -101,9 +101,12 @@ ...@@ -101,9 +101,12 @@
<div class="flex-box" @click="linkTo(statistic.combineMember)"> <div class="flex-box" @click="linkTo(statistic.combineMember)">
<img src="@/assets/images/detail/overview/company_ssjt.png" alt="所属集团" title="所属集团" class="swiper-img"> <img src="@/assets/images/detail/overview/company_ssjt.png" alt="所属集团" title="所属集团" class="swiper-img">
<div class="swiper-item"> <div class="swiper-item">
<span class="swiper-name"> <el-popover v-if="statistic.combineMember.companyName.length>9" trigger="hover" :content="'所属集团-'+statistic.combineMember.companyName">
所属集团-{{statistic.combineMember.companyName}} <span class="swiper-name" slot="reference">
</span> 所属集团-{{ statistic.combineMember.companyName }}
</span>
</el-popover>
<span v-else class="swiper-name">所属集团-{{statistic.combineMember.companyName}}</span>
<div > <div >
<span >集团成员:</span><i class="num" >{{statistic.combineMember.memberNum}}</i> <span >集团成员:</span><i class="num" >{{statistic.combineMember.memberNum}}</i>
</div> </div>
......
...@@ -59,7 +59,11 @@ ...@@ -59,7 +59,11 @@
</el-table-column> </el-table-column>
<el-table-column prop="investStartDate" label="成立日期"></el-table-column> <el-table-column prop="investStartDate" label="成立日期"></el-table-column>
<el-table-column prop="stockPercentage" label="股权占比"></el-table-column> <el-table-column prop="stockPercentage" label="股权占比"></el-table-column>
<el-table-column prop="shouldCapi" label="认缴出资额(万元)"></el-table-column> <el-table-column prop="shouldCapi" label="认缴出资额(万元)">
<template slot-scope="scope">
<span>{{scope.row.shouldCapi>0?scope.row.shouldCapi:'--'}}</span>
</template>
</el-table-column>
</el-table> </el-table>
<no-data v-if="activeName=='second'&&shipData.length<1"/> <no-data v-if="activeName=='second'&&shipData.length<1"/>
<el-table :data="affiliatesData" border style="width: 100%" v-show="activeName=='third'"> <el-table :data="affiliatesData" border style="width: 100%" v-show="activeName=='third'">
......
...@@ -33,6 +33,9 @@ ...@@ -33,6 +33,9 @@
<template slot="stockPercent" slot-scope="scope"> <template slot="stockPercent" slot-scope="scope">
<span>{{scope.row.stockPercent?parseFloat(Number(scope.row.stockPercent*100).toFixed(4))+'%':'--'}}</span> <span>{{scope.row.stockPercent?parseFloat(Number(scope.row.stockPercent*100).toFixed(4))+'%':'--'}}</span>
</template> </template>
<template slot="shouldCapiConv" slot-scope="scope">
<span>{{scope.row.shouldCapiConv === '0.00万元人民币'? '--':scope.row.shouldCapiConv}}</span>
</template>
</tables> </tables>
</div> </div>
</template> </template>
...@@ -56,7 +59,7 @@ export default { ...@@ -56,7 +59,7 @@ export default {
forData: [ forData: [
{label: '发起人/股东', prop: 'stockName', minWidth: '230', slot: true}, {label: '发起人/股东', prop: 'stockName', minWidth: '230', slot: true},
{label: '持股比例', prop: 'stockPercent', slot: true}, {label: '持股比例', prop: 'stockPercent', slot: true},
{label: '认缴出资', prop: 'shouldCapiConv'}, {label: '认缴出资', prop: 'shouldCapiConv', slot: true},
{label: '实缴出资额', prop: 'realCapi'}, {label: '实缴出资额', prop: 'realCapi'},
{label: '认缴出资日期', prop: 'conDate'}, {label: '认缴出资日期', prop: 'conDate'},
{label: '参股日期', prop: 'realCapiDate', width: '150'} {label: '参股日期', prop: 'realCapiDate', width: '150'}
......
...@@ -22,6 +22,9 @@ ...@@ -22,6 +22,9 @@
<router-link :to="`/radar/Land/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link> <router-link :to="`/radar/Land/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div> <div v-else v-html="scope.row.projectName || '--'"></div>
</template> </template>
<template slot="transactionPrice" slot-scope="scope">
<div v-html="scope.row.transactionPrice =='0.00' ? '--' : scope.row.transactionPrice"></div>
</template>
</tables> </tables>
</div> </div>
...@@ -55,7 +58,7 @@ export default { ...@@ -55,7 +58,7 @@ export default {
{label: '行业分类', prop: 'industry', width: '120'}, {label: '行业分类', prop: 'industry', width: '120'},
{label: '供地方式', prop: 'supplyLandWay', width: '120'}, {label: '供地方式', prop: 'supplyLandWay', width: '120'},
{label: '土地坐落', prop: 'landAddr', width: '150'}, {label: '土地坐落', prop: 'landAddr', width: '150'},
{label: '成交金额(万元)', prop: 'transactionPrice', width: '130'}, {label: '成交金额(万元)', prop: 'transactionPrice', width: '130',slot: true},
{label: '总面积(㎡)', prop: 'acreage', width: '120'}, {label: '总面积(㎡)', prop: 'acreage', width: '120'},
{label: '批准单位', prop: 'authority', width: '120'}, {label: '批准单位', prop: 'authority', width: '120'},
{label: '签订日期', prop: 'contractSignTime', width: '120'} {label: '签订日期', prop: 'contractSignTime', width: '120'}
......
<template> <template>
<div > <div class="app-container enterprise_contatiner">
<div class="title_wrap">
<div class="enterprise_title">
查城投平台
</div>
</div>
<div class="content"> <div class="content">
<div class="content_item"> <div class="content_item">
<div class="content_right item_ckquery_list"> <div class="content_right item_ckquery_list">
...@@ -495,6 +500,7 @@ import {encodeStr} from "@/assets/js/common.js" ...@@ -495,6 +500,7 @@ import {encodeStr} from "@/assets/js/common.js"
import jsk_data from '../../../../../public/jsk.json'; import jsk_data from '../../../../../public/jsk.json';
import skeleton from '@/views/project/projectList/component/skeleton' import skeleton from '@/views/project/projectList/component/skeleton'
import api from '@/api/enterpriseData/enterpriseData.js'; import api from '@/api/enterpriseData/enterpriseData.js';
import "@/assets/styles/public.css";
export default { export default {
name: 'Owner', name: 'Owner',
components:{skeleton}, components:{skeleton},
......
<template> <template>
<div > <div class="app-container enterprise_contatiner">
<div class="title_wrap">
<div class="enterprise_title">
查企业
<img style="position: relative;top:-10px;width:80px;height:16px;" src="@/assets/images/owner/tip.png" alt="">
</div>
</div>
<div class="content"> <div class="content">
<div class="content_item content_item_padding0"> <div class="content_item content_item_padding0">
<div class="content_right item_ckquery_list"> <div class="content_right item_ckquery_list">
...@@ -585,6 +592,8 @@ ...@@ -585,6 +592,8 @@
import api from '@/api/enterpriseData/enterpriseData.js'; import api from '@/api/enterpriseData/enterpriseData.js';
import {encodeStr} from "@/assets/js/common.js" import {encodeStr} from "@/assets/js/common.js"
import skeleton from '@/views/project/projectList/component/skeleton' import skeleton from '@/views/project/projectList/component/skeleton'
import "@/assets/styles/public.css";
export default { export default {
name: 'EnterpriseQuery', name: 'EnterpriseQuery',
components:{skeleton}, components:{skeleton},
...@@ -800,6 +809,10 @@ ...@@ -800,6 +809,10 @@
label: '不限' label: '不限'
}, },
{
value: '2022',
label: '2022A级纳税人'
},
{ {
value: '2021', value: '2021',
label: '2021A级纳税人' label: '2021A级纳税人'
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
<Owner v-if="personnelHerf=='Owner'" /> <Owner v-if="personnelHerf=='Owner'" />
<!-- 查企业 --> <!-- 查企业 -->
<SearchEnterprise v-if="personnelHerf=='SearchEnterprise'" /> <SearchEnterprise v-if="personnelHerf=='SearchEnterprise'" />
<!-- 查企业 --> <!-- 查集团户 -->
<Group v-if="personnelHerf=='Group'" /> <Group v-if="personnelHerf=='Group'" />
...@@ -77,9 +77,14 @@ ...@@ -77,9 +77,14 @@
personnelHerf:'Owner' personnelHerf:'Owner'
} }
}, },
created() {}, created() {
if(this.$route.query.type==2){
this.personnelHerf='Group';
this.personnelList[0].status = false;
this.personnelList[2].status = true;
}
},
methods: { methods: {
handleClick(){},
personnelListbtn(index) { personnelListbtn(index) {
for (var i = 0; i < this.personnelList.length; i++) { for (var i = 0; i < this.personnelList.length; i++) {
this.personnelList[i].status = false; this.personnelList[i].status = false;
......
This diff is collapsed.
...@@ -5,7 +5,11 @@ ...@@ -5,7 +5,11 @@
<span class="province">{{province}}</span> <span class="province">{{province}}</span>
<span class="icon"> <span class="icon">
<i class="el-icon-location"></i>切换 <i class="el-icon-location"></i>切换
<el-cascader ref="address" class="cascader-region" popper-class='cascader-region-addd' <el-select v-if="key =='5'" v-model="address" class="cascader-region" @change="addressListbtn1">
<el-option v-for="(item,index) in addressList" :key="index" :label="item.label" :value="item.id"></el-option>
</el-select>
<el-cascader v-else ref="address" class="cascader-region" popper-class='cascader-region-addd'
@change="addressListbtn" v-model="address" :options="addressList" :props="props" collapse-tags></el-cascader> @change="addressListbtn" v-model="address" :options="addressList" :props="props" collapse-tags></el-cascader>
</span> </span>
</div> </div>
...@@ -17,7 +21,7 @@ ...@@ -17,7 +21,7 @@
import dataRegion from '@/assets/json/dataRegion' import dataRegion from '@/assets/json/dataRegion'
export default { export default {
name:'region', name:'region',
props:['province','dataQuery'], props:['province','dataQuery','type'],
data(){ data(){
return { return {
props: { props: {
...@@ -28,7 +32,8 @@ ...@@ -28,7 +32,8 @@
addressList: [], addressList: [],
address:'', address:'',
provinceId:[], provinceId:[],
location:'' location:'',
key:'',
} }
}, },
watch: { watch: {
...@@ -39,10 +44,12 @@ ...@@ -39,10 +44,12 @@
created(){ created(){
this.dataRegion() this.dataRegion()
this.location=this.province this.location=this.province
this.key=this.type;
}, },
methods:{ methods:{
addressListbtn() { addressListbtn() {
let nodesObj = this.$refs.address.getCheckedNodes()[0]; let nodesObj = this.$refs.address.getCheckedNodes()[0];
this.location=nodesObj.pathLabels[nodesObj.pathLabels.length-1]; this.location=nodesObj.pathLabels[nodesObj.pathLabels.length-1];
this.provinceId=nodesObj.path; this.provinceId=nodesObj.path;
let data={} let data={}
...@@ -52,6 +59,18 @@ ...@@ -52,6 +59,18 @@
this.$parent.addressListbtn(data) this.$parent.addressListbtn(data)
localStorage.setItem('location', true) localStorage.setItem('location', true)
}, },
addressListbtn1() {
let obj = this.addressList.find((option) => option.id === this.address);
this.location=obj.label;
this.provinceId=[obj.id];
let data={}
data.province=this.location
data.provinceId=this.provinceId
data.provinces=[this.location]
console.log(data,"|||||||")
this.$parent.addressListbtn(data)
localStorage.setItem('location', true)
},
//地区 //地区
async dataRegion() { async dataRegion() {
// await axios.post("https://files.jiansheku.com/file/json/common/dataRegion.json", {}, { // await axios.post("https://files.jiansheku.com/file/json/common/dataRegion.json", {}, {
......
...@@ -111,10 +111,10 @@ export default { ...@@ -111,10 +111,10 @@ export default {
params.provinceIds=[this.provinceId[0]] params.provinceIds=[this.provinceId[0]]
} }
if(this.provinceId.length > 1){ if(this.provinceId.length > 1){
params.cityId=[this.provinceId[1]] params.cityIds=[this.provinceId[1]]
} }
if(this.provinceId.length > 2){ if(this.provinceId.length > 2){
params.areaId=[this.provinceId[2]] params.areaIds=[this.provinceId[2]]
} }
// params.provinceIds=[this.dataQuery.provinceId] // params.provinceIds=[this.dataQuery.provinceId]
// this.isSkeleton = true // this.isSkeleton = true
......
...@@ -333,9 +333,9 @@ export default { ...@@ -333,9 +333,9 @@ export default {
getData(){ getData(){
this.isSkeleton = true this.isSkeleton = true
let params={} let params={}
if(this.dataQuery.id){ // if(this.dataQuery.id){
params.id=this.dataQuery.id // params.id=this.dataQuery.id
} // }
if(this.provinceId.length >= 0){ if(this.provinceId.length >= 0){
params.provinceId=this.provinceId[0] params.provinceId=this.provinceId[0]
} }
...@@ -732,16 +732,6 @@ export default { ...@@ -732,16 +732,6 @@ export default {
this.$parent.handleClick('second', data); this.$parent.handleClick('second', data);
break; break;
case 2: case 2:
// this.$router.push({
// path: '/macro/urban',
// query:{
// provinceId:this.dataQuery.provinceId,
// province:this.dataQuery.province,
// }
// })
console.log(this.dataQuery.provinceId)
console.log(this.dataQuery.province)
// return
this.$router.push({name: 'Urban', this.$router.push({name: 'Urban',
params: { params: {
provinceId: this.dataQuery.provinceId, provinceId: this.dataQuery.provinceId,
......
...@@ -76,7 +76,13 @@ export default { ...@@ -76,7 +76,13 @@ export default {
if(Array.isArray(this.dataQuery.provinceId)){ if(Array.isArray(this.dataQuery.provinceId)){
this.provinceId=this.dataQuery.provinceId this.provinceId=this.dataQuery.provinceId
}else { }else {
this.provinceId.push(this.dataQuery.provinceId) if(this.dataQuery.cityId){
this.provinceId=[this.dataQuery.provinceId,this.dataQuery.cityId,this.dataQuery.areaId]
}else if(this.dataQuery.cityId){
this.provinceId=[this.dataQuery.provinceId,this.dataQuery.cityId]
}else {
this.provinceId=[this.dataQuery.provinceId]
}
} }
}else { }else {
location({}).then(res => { location({}).then(res => {
......
<template> <template>
<div class="app-container enterprises"> <div class="app-container enterprises">
<Region v-if="province" :province="province" :dataQuery="dataQuery" @addressListbtn="addressListbtn"></Region> <Region v-if="province" :province="province" :dataQuery="dataQuery" @addressListbtn="addressListbtn" :type="5"></Region>
<div class="flex-box eco-header"> <div class="flex-box eco-header">
<el-tabs v-model="activeName" @tab-click="handleClick"> <el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="本地企业" name="first"></el-tab-pane> <el-tab-pane label="本地企业" name="first"></el-tab-pane>
...@@ -291,17 +291,8 @@ export default { ...@@ -291,17 +291,8 @@ export default {
this.dataQuery.province=data.provinces; this.dataQuery.province=data.provinces;
let params={} let params={}
if(data){ if(data){
if(this.provinceId.length > 0){ params.provinceId=this.provinceId
params.provinceId=this.provinceId[0]
}
if(this.provinceId.length > 1){
params.cityId=this.provinceId[1]
}
if(this.provinceId.length > 2){
params.areaId=this.provinceId[2]
}
} }
this.querySubmit() this.querySubmit()
location(params).then(res => { location(params).then(res => {
console.log(res.data) console.log(res.data)
......
<template>
<div class="BIfx">
<el-tabs v-model="activeName">
<el-tab-pane label="宏观市场分析" name="first">
<img class="img" src="@/assets/images/BI/hgscfx.png"/>
</el-tab-pane>
<el-tab-pane label="立项设计" name="second">
<img class="img" src="@/assets/images/BI/lxsj.png"/>
</el-tab-pane>
<el-tab-pane label="专项债项目" name="third">
<img class="img" src="@/assets/images/BI/zxz.png"/>
</el-tab-pane>
<el-tab-pane label="中标公告" name="fourth">
<img class="img" src="@/assets/images/BI/zbgg.png"/>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
export default {
name: 'BI',
data() {
return {
activeName:'first'
}
}
}
</script>
<style lang="scss" scoped>
.BIfx{
background: #ffffff;
padding: 16px;
margin-top: 12px;
::v-deep .el-tabs{
.el-tabs__nav-wrap::after {
position: static !important;
}
.el-tabs__header{
margin: 0;
.el-tabs__item{
padding: 0 16px;
font-size: 16px;
}
.is-active{
font-weight: bold;
}
}
.el-tabs__content{
width: 100%;
}
}
.img{
width: 100%;
margin-top: 30px;
}
}
</style>
...@@ -29,14 +29,15 @@ ...@@ -29,14 +29,15 @@
</div> </div>
</div> </div>
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton> <skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<!--v-horizontal-scroll="'always'"-->
<div class="table-item"> <div class="table-item">
<el-table <el-table
class="fixed-table" class="fixed-table"
:data="tableData" :data="tableData"
element-loading-text="Loading" element-loading-text="Loading"
@sort-change="sortChange" @sort-change="sortChange"
border
max-height="640" max-height="640"
border
highlight-current-row highlight-current-row
v-if="tableDataTotal > 0 && !isSkeleton" v-if="tableDataTotal > 0 && !isSkeleton"
:default-sort = "{prop: 'gdp', order: 'descending'}" :default-sort = "{prop: 'gdp', order: 'descending'}"
...@@ -46,7 +47,7 @@ ...@@ -46,7 +47,7 @@
</el-table-column> </el-table-column>
<el-table-column label="地区" min-width="150" align="left" fixed> <el-table-column label="地区" min-width="150" align="left" fixed>
<template slot-scope="scope"> <template slot-scope="scope">
<router-link :to="{path:'/macro/economies',query:{id:scope.row.id,provinceId:scope.row.provinceId,province:scope.row.province}}" tag="a" class="a-link">{{ scope.row.province}}{{scope.row.city ? '-': ''}}{{ scope.row.city}}{{scope.row.area ? '-': ''}}{{ scope.row.area}}</router-link> <span @click="clickTo(scope.row)" style="cursor: pointer;" class="a-link">{{ scope.row.province}}{{scope.row.city ? '-': ''}}{{ scope.row.city}}{{scope.row.area ? '-': ''}}{{ scope.row.area}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="年度明细" prop="id" width="90" align="center" fixed> <el-table-column label="年度明细" prop="id" width="90" align="center" fixed>
...@@ -324,6 +325,26 @@ ...@@ -324,6 +325,26 @@
message: '功能正在开发中', message: '功能正在开发中',
type: 'warning' type: 'warning'
}); });
},
clickTo(item){
let params={
// id:item.id,
province:item.area ? item.area : item.city ? item.city : item.province,
}
if(item.areaId){
params.provinceId=item.provinceId
params.cityId=item.cityId
params.areaId=item.areaId
}else if(item.cityId !=0){
params.provinceId=item.provinceId
params.cityId=item.cityId
}else {
params.provinceId=item.provinceId
}
this.$router.push({
path: '/macro/economies',
query:params
})
} }
} }
} }
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box" v-if="gyflState"> <div class="content_box" v-if="gyfsList.length > 0 && !isSkeleton">
<div class="box-left"> <div class="box-left">
<div id="echarts1" style="height: 280px"></div> <div id="echarts1" style="height: 280px"></div>
</div> </div>
...@@ -36,12 +36,12 @@ ...@@ -36,12 +36,12 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="!gyflState"> <div class="empty" v-if="gyfsList.length === 0 && !isSkeleton">
<img class="img" src="@/assets/images/project/empty.png"> <img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div> <div class="p1">抱歉,暂无数据展示</div>
</div> </div>
</div> </div>
<div v-if="!isSkeleton" class="td_content"> <div v-if="!tdytState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">全国土地交易项目土地用途</span> <span class="common-title">全国土地交易项目土地用途</span>
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box" v-if="tdytState"> <div class="content_box" v-if="tdytList.length > 0 && !tdytState">
<div class="box-left"> <div class="box-left">
<div id="echarts2" style="height: 280px"></div> <div id="echarts2" style="height: 280px"></div>
</div> </div>
...@@ -75,12 +75,12 @@ ...@@ -75,12 +75,12 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="!tdytState"> <div class="empty" v-if="tdytList.length === 0 && !tdytState">
<img class="img" src="@/assets/images/project/empty.png"> <img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div> <div class="p1">抱歉,暂无数据展示</div>
</div> </div>
</div> </div>
<div v-if="!isSkeleton" class="td_content"> <div v-if="!topState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">全国土地交易项目地区Top10</span> <span class="common-title">全国土地交易项目地区Top10</span>
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box" v-if="topList.length > 0 && !isSkeleton"> <div class="content_box" v-if="topList.length > 0 && !topState">
<div class="box-left" style="width: 60%;"> <div class="box-left" style="width: 60%;">
<div id="echarts3" style="height: 300px"></div> <div id="echarts3" style="height: 300px"></div>
</div> </div>
...@@ -117,18 +117,18 @@ ...@@ -117,18 +117,18 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="topList.length === 0 && !isSkeleton"> <div class="empty" v-if="topList.length === 0 && !topState">
<img class="img" src="@/assets/images/project/empty.png"> <img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div> <div class="p1">抱歉,暂无数据展示</div>
</div> </div>
</div> </div>
<div v-if="!isSkeleton" class="td_content"> <div v-if="!nftjState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">全国土地交易项目年份统计</span> <span class="common-title">全国土地交易项目年份统计</span>
</div> </div>
</div> </div>
<div class="content_box"> <div class="content_box" v-if="nftjList.length > 0 && !nftjState">
<div class="box-left" style="width: 60%;"> <div class="box-left" style="width: 60%;">
<div id="echarts4" style="height: 300px"></div> <div id="echarts4" style="height: 300px"></div>
</div> </div>
...@@ -187,6 +187,7 @@ export default { ...@@ -187,6 +187,7 @@ export default {
gyflState:true, gyflState:true,
tdytState:true, tdytState:true,
topState:true, topState:true,
nftjState:true,
// typeName:['住宅用地','工业用地','城镇住宅用地','其他商服用地','公共设施用地','公路用地','城镇村道路用地','公园与绿地', // typeName:['住宅用地','工业用地','城镇住宅用地','其他商服用地','公共设施用地','公路用地','城镇村道路用地','公园与绿地',
// '工矿仓储用地','零售商业用地','科研用地','街巷用地','机关团体用地','商服用地','商务金融用地'] // '工矿仓储用地','零售商业用地','科研用地','街巷用地','机关团体用地','商服用地','商务金融用地']
} }
...@@ -194,15 +195,16 @@ export default { ...@@ -194,15 +195,16 @@ export default {
created() { created() {
this.dataRegion() this.dataRegion()
this.yearsData() this.yearsData()
setTimeout(() => {
},
mounted() {
this.$nextTick(()=>{
this.getCountLandMarketByType() this.getCountLandMarketByType()
this.getCountLandMarketByTypeTd() this.getCountLandMarketByTypeTd()
this.getCountLandMarketByProvince() this.getCountLandMarketByProvince()
this.getCountLandMarketByYear() this.getCountLandMarketByYear()
this.isSkeleton=false; })
}, 1500);
},
mounted() {
}, },
beforeDestroy(){ beforeDestroy(){
...@@ -211,7 +213,8 @@ export default { ...@@ -211,7 +213,8 @@ export default {
getCountLandMarketByType(){ getCountLandMarketByType(){
// this.isSkeleton = true // this.isSkeleton = true
countLandMarketByType({type:'供应方式',yearStr:this.years.join(",")}).then(res => { countLandMarketByType({type:'供应方式',yearStr:this.years.join(",")}).then(res => {
// this.isSkeleton = false this.isSkeleton = false
this.gyflState = false
this.gyfsList=res.data.provinceDate; this.gyfsList=res.data.provinceDate;
var list=[]; var list=[];
for(var i=0;i<res.data.provinceDate.length;i++){ for(var i=0;i<res.data.provinceDate.length;i++){
...@@ -222,12 +225,9 @@ export default { ...@@ -222,12 +225,9 @@ export default {
list.push(obj) list.push(obj)
} }
if(list.length > 0){ if(list.length > 0){
this.gyflState=true
this.$nextTick(() => { this.$nextTick(() => {
this.initChart1(list) this.initChart1(list)
}) })
}else {
this.gyflState=false;
} }
}) })
}, },
...@@ -235,9 +235,9 @@ export default { ...@@ -235,9 +235,9 @@ export default {
// this.isSkeleton = true // this.isSkeleton = true
countLandMarketByType({type:'土地用途',yearStr:this.years1.join(",")}).then(res => { countLandMarketByType({type:'土地用途',yearStr:this.years1.join(",")}).then(res => {
// this.isSkeleton = false // this.isSkeleton = false
this.tdytState=false;
this.tdytList=res.data.provinceDate; this.tdytList=res.data.provinceDate;
if(res.data.provinceDate.length > 0){ if(res.data.provinceDate.length > 0){
this.tdytState=true
var list=[]; var list=[];
for(var i=0;i<10;i++){ for(var i=0;i<10;i++){
var obj={}; var obj={};
...@@ -251,10 +251,7 @@ export default { ...@@ -251,10 +251,7 @@ export default {
this.initChart2(list) this.initChart2(list)
}) })
} }
}else {
this.tdytState=false;
} }
}) })
}, },
getCountLandMarketByProvince(){ getCountLandMarketByProvince(){
...@@ -264,9 +261,8 @@ export default { ...@@ -264,9 +261,8 @@ export default {
if(this.address.length > 0){ if(this.address.length > 0){
params.provinceId=this.address.join(",") params.provinceId=this.address.join(",")
} }
// this.isSkeleton = true
countLandMarketByProvince(params).then(res => { countLandMarketByProvince(params).then(res => {
// this.isSkeleton = false this.topState = false
this.topList=res.data.provinceDate; this.topList=res.data.provinceDate;
var list=[]; var list=[];
if(res.data.provinceDate){ if(res.data.provinceDate){
...@@ -288,10 +284,10 @@ export default { ...@@ -288,10 +284,10 @@ export default {
}, },
getCountLandMarketByYear(){ getCountLandMarketByYear(){
countLandMarketByYear().then(res => { countLandMarketByYear().then(res => {
this.nftjState=false;
this.nftjList=res.data.yearDate; this.nftjList=res.data.yearDate;
var list=[]; var list=[];
if(res.data.yearDate){ if(res.data.yearDate){
this.topState=true
for(var i=0;i<res.data.yearDate.length;i++){ for(var i=0;i<res.data.yearDate.length;i++){
var obj={}; var obj={};
obj.type=res.data.yearDate[i].type; obj.type=res.data.yearDate[i].type;
...@@ -300,11 +296,11 @@ export default { ...@@ -300,11 +296,11 @@ export default {
obj.typeList=res.data.yearDate[i].typeList obj.typeList=res.data.yearDate[i].typeList
list.push(obj) list.push(obj)
} }
this.$nextTick(() => { if(list.length > 0){
this.initChart4(list) this.$nextTick(() => {
}) this.initChart4(list)
}else { })
this.topState=false; }
} }
}) })
}, },
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box"> <div class="content_box" v-if="xmtjList.length > 0 && !isSkeleton">
<div class="box-left"> <div class="box-left">
<div id="echarts1" style="height: 280px"></div> <div id="echarts1" style="height: 280px"></div>
</div> </div>
...@@ -38,10 +38,10 @@ ...@@ -38,10 +38,10 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<!--<div class="empty">--> <div class="empty" v-if="xmtjList.length === 0 && !isSkeleton">
<!--<img class="img" src="@/assets/images/project/empty.png">--> <img class="img" src="@/assets/images/project/empty.png">
<!--<div class="p1">抱歉,暂无数据展示</div>--> <div class="p1">抱歉,暂无数据展示</div>
<!--</div>--> </div>
</div> </div>
<div v-if="!zbtjState" class="td_content"> <div v-if="!zbtjState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box"> <div class="content_box" v-if="topList.length > 0 && !zbtjState">
<div class="box-left"> <div class="box-left">
<div id="echarts2" style="height: 280px"></div> <div id="echarts2" style="height: 280px"></div>
</div> </div>
...@@ -79,10 +79,10 @@ ...@@ -79,10 +79,10 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<!--<div class="empty" v-if="!zbtjState">--> <div class="empty" v-if="topList.length === 0 && !zbtjState">
<!--<img class="img" src="@/assets/images/project/empty.png">--> <img class="img" src="@/assets/images/project/empty.png">
<!--<div class="p1">抱歉,暂无数据展示</div>--> <div class="p1">抱歉,暂无数据展示</div>
<!--</div>--> </div>
</div> </div>
<div v-if="!jefxState" class="td_content"> <div v-if="!jefxState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box"> <div class="content_box" v-if="zbjeList.length > 0 && !jefxState">
<div class="box-left"> <div class="box-left">
<div id="echarts3" style="height: 280px"></div> <div id="echarts3" style="height: 280px"></div>
</div> </div>
...@@ -118,10 +118,10 @@ ...@@ -118,10 +118,10 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<!--<div class="empty" v-if="!jefxState">--> <div class="empty" v-if="zbjeList.length === 0 && !jefxState">
<!--<img class="img" src="@/assets/images/project/empty.png">--> <img class="img" src="@/assets/images/project/empty.png">
<!--<div class="p1">抱歉,暂无数据展示</div>--> <div class="p1">抱歉,暂无数据展示</div>
<!--</div>--> </div>
</div> </div>
<div v-if="!qsfxState" class="td_content"> <div v-if="!qsfxState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
...@@ -129,7 +129,7 @@ ...@@ -129,7 +129,7 @@
<span class="common-title">全国中标趋势分析</span> <span class="common-title">全国中标趋势分析</span>
</div> </div>
</div> </div>
<div class="content_box"> <div class="content_box" v-if="zbqsList.length > 0 && !qsfxState">
<div class="box-left"> <div class="box-left">
<div id="echarts4" style="height: 300px"></div> <div id="echarts4" style="height: 300px"></div>
</div> </div>
...@@ -154,6 +154,10 @@ ...@@ -154,6 +154,10 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="zbqsList.length === 0 && !qsfxState">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div>
</div>
</div> </div>
<div v-if="!xflState" class="td_content"> <div v-if="!xflState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
...@@ -164,7 +168,7 @@ ...@@ -164,7 +168,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box"> <div class="content_box" v-if="xflList.length > 0 && !xflState">
<div class="box-left"> <div class="box-left">
<div id="echarts5" style="height: 280px"></div> <div id="echarts5" style="height: 280px"></div>
</div> </div>
...@@ -189,17 +193,17 @@ ...@@ -189,17 +193,17 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<!--<div class="empty" v-if="!xflState">--> <div class="empty" v-if="xflList.length === 0 && !xflState">
<!--<img class="img" src="@/assets/images/project/empty.png">--> <img class="img" src="@/assets/images/project/empty.png">
<!--<div class="p1">抱歉,暂无数据展示</div>--> <div class="p1">抱歉,暂无数据展示</div>
<!--</div>--> </div>
</div> </div>
<div v-if="!xmlxState" class="td_content"> <div v-if="!xmlxState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">全国中标业绩项目类型下浮率</span> <span class="common-title">全国中标业绩项目类型下浮率</span>
<el-select @change="handleYears(6)" style="margin-right: 8px" v-model="address" collapse-tags filterable class="form-content-width" placeholder="地区筛选" :popper-append-to-body='false' size="small"> <el-select @change="handleYears(6)" style="margin-right: 8px" v-model="address" clearable collapse-tags filterable class="form-content-width" placeholder="地区筛选" :popper-append-to-body='false' size="small">
<el-option v-for="(item, index) in addressList" :key="index" :label="item.label" :value="item.id" /> <el-option v-for="(item, index) in addressList" :key="index" :label="item.label" :value="item.id" />
</el-select> </el-select>
<el-select v-model="years4" @change="handleYears(6)" collapse-tags filterable class="form-content-width" placeholder="请选择" :popper-append-to-body='false' size="small"> <el-select v-model="years4" @change="handleYears(6)" collapse-tags filterable class="form-content-width" placeholder="请选择" :popper-append-to-body='false' size="small">
...@@ -207,7 +211,7 @@ ...@@ -207,7 +211,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box"> <div class="content_box" v-if="xmxflList.length > 0 && !isSkeleton">
<div class="box-left"> <div class="box-left">
<div id="echarts6" style="height: 300px"></div> <div id="echarts6" style="height: 300px"></div>
</div> </div>
...@@ -233,10 +237,10 @@ ...@@ -233,10 +237,10 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<!--<div class="empty">--> <div class="empty" v-if="xmxflList.length === 0 && !xmlxState">
<!--<img class="img" src="@/assets/images/project/empty.png">--> <img class="img" src="@/assets/images/project/empty.png">
<!--<div class="p1">抱歉,暂无数据展示</div>--> <div class="p1">抱歉,暂无数据展示</div>
<!--</div>--> </div>
</div> </div>
</div> </div>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
<el-tab-pane label="全国商机项目分析" name="second"></el-tab-pane> <el-tab-pane label="全国商机项目分析" name="second"></el-tab-pane>
<el-tab-pane label="全国中标市场分析" name="third"></el-tab-pane> <el-tab-pane label="全国中标市场分析" name="third"></el-tab-pane>
<el-tab-pane label="全国建筑企业分析" name="fourth"></el-tab-pane> <el-tab-pane label="全国建筑企业分析" name="fourth"></el-tab-pane>
<el-tab-pane label="BI统计分析" name="five"></el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
...@@ -13,6 +14,7 @@ ...@@ -13,6 +14,7 @@
<Sjxmfx v-if="activeName === 'second'"></Sjxmfx> <Sjxmfx v-if="activeName === 'second'"></Sjxmfx>
<Zhongbiao v-if="activeName === 'third'"></Zhongbiao> <Zhongbiao v-if="activeName === 'third'"></Zhongbiao>
<Jzqyfx v-if="activeName === 'fourth'"></Jzqyfx> <Jzqyfx v-if="activeName === 'fourth'"></Jzqyfx>
<BI v-if="activeName === 'five'"></BI>
</div> </div>
</template> </template>
...@@ -21,10 +23,11 @@ ...@@ -21,10 +23,11 @@
import Sjxmfx from './component/sjxmfx' import Sjxmfx from './component/sjxmfx'
import Jzqyfx from './component/jzqyfx' import Jzqyfx from './component/jzqyfx'
import Zhongbiao from './component/zhongbiao' import Zhongbiao from './component/zhongbiao'
import BI from './component/BI'
export default { export default {
name: 'NationalEconomies', name: 'NationalEconomies',
components: { components: {
Economic,Sjxmfx,Jzqyfx,Zhongbiao Economic,Sjxmfx,Jzqyfx,Zhongbiao,BI
}, },
data() { data() {
return { return {
......
...@@ -217,9 +217,9 @@ ...@@ -217,9 +217,9 @@
<el-table-column prop="econData002" label="有息债务/总负债(%)" :formatter="formatStatus" width="160" align="right"/> <el-table-column prop="econData002" label="有息债务/总负债(%)" :formatter="formatStatus" width="160" align="right"/>
<el-table-column prop="tdr" label="资产负债率(%)" :formatter="formatStatus" width="140" align="right"/> <el-table-column prop="tdr" label="资产负债率(%)" :formatter="formatStatus" width="140" align="right"/>
<el-table-column prop="ofcb" label="综合融资成本(%)" :formatter="formatStatus" width="150" align="right"/> <el-table-column prop="ofcb" label="综合融资成本(%)" :formatter="formatStatus" width="150" align="right"/>
<el-table-column prop="cashRatio" label="现金比率" :formatter="formatStatus" width="110" align="right"/> <el-table-column prop="cashRatio" label="现金比率(%)" :formatter="formatStatus" width="110" align="right"/>
<el-table-column prop="cashFlowRatio" label="现金流量比率" :formatter="formatStatus" width="120" align="right"/> <el-table-column prop="cashFlowRatio" label="现金流量比率(%)" :formatter="formatStatus" width="120" align="right"/>
<el-table-column prop="cashDebtRatio" label="现金到期债务比" :formatter="formatStatus" width="120" align="right"/> <el-table-column prop="cashDebtRatio" label="现金到期债务比(%)" :formatter="formatStatus" width="120" align="right"/>
<el-table-column prop="creditBalance" label="授信余额(亿元)" :formatter="formatStatus" width="130" align="right"/> <el-table-column prop="creditBalance" label="授信余额(亿元)" :formatter="formatStatus" width="130" align="right"/>
<el-table-column prop="econData003" label="授信余额/全部债务(%)" :formatter="formatStatus" width="160" align="right"/> <el-table-column prop="econData003" label="授信余额/全部债务(%)" :formatter="formatStatus" width="160" align="right"/>
<el-table-column prop="ebitdaIcr" label="EBITDA保障倍数" :formatter="formatStatus" width="150" align="right"/> <el-table-column prop="ebitdaIcr" label="EBITDA保障倍数" :formatter="formatStatus" width="150" align="right"/>
......
...@@ -20,13 +20,16 @@ ...@@ -20,13 +20,16 @@
</div> </div>
<div class="con i"> <div class="con i">
<span>资金来源 :</span> <span>资金来源 :</span>
<div class="inputxt" id="inputxt2"> <div class="inputxt22" id="inputxt2">
<div class="flex" v-if="nowedit == 2 && isDisableds == false"> <div class="flex" v-if="nowedit == 2 && isDisableds == false">
<el-input placeholder="待添加" v-model="amountSource"></el-input> <!-- <el-input placeholder="待添加" v-model="amountSource"></el-input> -->
<div class="flex"> <el-select placeholder="请选择" v-model="amountSource" @change="changes({'amountSource':amountSource})">
<el-option v-for="(item,index) in amountSourceList" :key="index" :label="item" :value="item"></el-option>
</el-select>
<!-- <div class="flex">
<div class="btnsmall btn_primary h28" @click="changes({'amountSource':amountSource})" style="width: 56px">确定</div> <div class="btnsmall btn_primary h28" @click="changes({'amountSource':amountSource})" style="width: 56px">确定</div>
<div class="cancels h28" @click="nowedit = -1" style="">取消</div> <div class="cancels h28" @click="nowedit = -1" style="">取消</div>
</div> </div> -->
</div> </div>
<span :class="{'txt':!amountSource}" v-else @click="nowedit = 2">{{amountSource||'待添加'}}</span> <span :class="{'txt':!amountSource}" v-else @click="nowedit = 2">{{amountSource||'待添加'}}</span>
</div> </div>
...@@ -214,6 +217,7 @@ ...@@ -214,6 +217,7 @@
}, },
data(){ data(){
return{ return{
amountSourceList:['财政资金','自筹资金','债券资金','投资资金','贷款资金','其他'],
nowedit:-1,//当前正在编辑的文本 nowedit:-1,//当前正在编辑的文本
id:this.detailId ? this.detailId : parseInt(this.$route.query.id), id:this.detailId ? this.detailId : parseInt(this.$route.query.id),
investmentAmount: '',//总投资额 investmentAmount: '',//总投资额
...@@ -336,6 +340,14 @@ ...@@ -336,6 +340,14 @@
} }
</script> </script>
<style scoped> <style scoped>
.baseinfo .row .con .inputxt22{
line-height: 36px;
margin-top: -5px;
display: inline-block;
width: 184px;
height: 28px;
border-radius: 2px;
cursor: pointer;
}
</style> </style>
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<div class="empty" v-if="total==0"> <div class="empty" v-if="total==0">
<img src="@/assets/images/project/empty.png"> <img src="@/assets/images/project/empty.png">
<div class="p1">暂无数据展示</div> <div class="p1">暂无数据展示</div>
<div class="p2">抱歉,你还未添加相关数据,快去添加吧</div> <div class="p2" v-if="isDisabled==false">抱歉,你还未添加相关数据,快去添加吧</div>
<div class="btn btn_primary h36 w102" @click="opennew" v-if="isDisableds == false">新增联系人</div> <div class="btn btn_primary h36 w102" @click="opennew" v-if="isDisableds == false">新增联系人</div>
</div> </div>
<el-table class="fixed-table" v-else max-height="640" <el-table class="fixed-table" v-else max-height="640"
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
label="姓名" label="姓名"
width="113"> width="113">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="wordprimary"><span @click="getDetail(scope.row)">{{scope.row.name || '--'}} </span><img v-if="isDisabled == false" @click="deltip(scope.row.id)" src="@/assets/images/delete.png"></div> <div :class="isDisabled==false?'wordprimary':''"><span @click="getDetail(scope.row)">{{scope.row.name || '--'}} </span><img v-if="isDisabled == false" @click="deltip(scope.row.id)" src="@/assets/images/delete.png"></div>
</template> </template>
</el-table-column> </el-table-column>
<!--<el-table-column--> <!--<el-table-column-->
......
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