Commit f94ecc67 authored by dengguangman's avatar dengguangman

Merge remote-tracking branch 'origin/master'

parents fb49350c 844cfbb0
...@@ -77,12 +77,15 @@ public class BusinessFileController extends BaseController { ...@@ -77,12 +77,15 @@ public class BusinessFileController extends BaseController {
* @return * @return
*/ */
@PostMapping("/upload") @PostMapping("/upload")
public AjaxResult uploadFolder(@RequestPart("file") MultipartFile file, HttpServletRequest request){ public AjaxResult uploadFolder(@RequestPart("file") MultipartFile file, HttpServletRequest request) {
try { try {
//获取文件名
String filename = file.getOriginalFilename();
//TODO 校验是否上传同名文件
String businessFileName = request.getHeader("FilePath"); String businessFileName = request.getHeader("FilePath");
// 上传文件路径 // 上传文件路径
String filePath = RuoYiConfig.getUploadPath()+businessFileName+"/"; String filePath = RuoYiConfig.getUploadPath() + businessFileName + "/";
// 上传并返回文件全路径 // 上传并返回文件全路径
String fileName = FileUploadUtils.upload(filePath, file); String fileName = FileUploadUtils.upload(filePath, file);
String url = serverConfig.getUrl() + fileName; String url = serverConfig.getUrl() + fileName;
AjaxResult ajax = AjaxResult.success(); AjaxResult ajax = AjaxResult.success();
......
package com.dsk.common.core.domain.entity; package com.dsk.common.core.domain.entity;
import java.util.Date;
import com.dsk.common.core.domain.BaseEntity;
import com.dsk.common.utils.CheckUtils;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.dsk.common.annotation.Excel; import com.dsk.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
import javax.validation.constraints.Pattern; import java.util.Date;
/** /**
* 项目联系人对象 business_contacts * 项目联系人对象 business_contacts
...@@ -17,7 +13,7 @@ import javax.validation.constraints.Pattern; ...@@ -17,7 +13,7 @@ import javax.validation.constraints.Pattern;
* @author lxl * @author lxl
* @date 2023-05-17 * @date 2023-05-17
*/ */
public class BusinessContacts extends BaseEntity public class BusinessContacts
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -52,10 +48,21 @@ public class BusinessContacts extends BaseEntity ...@@ -52,10 +48,21 @@ public class BusinessContacts extends BaseEntity
@Excel(name = "维护人员") @Excel(name = "维护人员")
private String accendant; private String accendant;
/** 性别(1.男 2.女 0.未知) */
@Excel(name = "性别")
private Integer sex;
/** 创建时间 */ /** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date creatTime; private Date createTime;
/** 修改时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
public void setId(Integer id) public void setId(Integer id)
{ {
...@@ -129,14 +136,29 @@ public class BusinessContacts extends BaseEntity ...@@ -129,14 +136,29 @@ public class BusinessContacts extends BaseEntity
{ {
return accendant; return accendant;
} }
public void setCreatTime(Date creatTime)
{ public Date getCreateTime() {
this.creatTime = creatTime; return createTime;
} }
public Date getCreatTime() public void setCreateTime(Date createTime) {
{ this.createTime = createTime;
return creatTime; }
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
} }
@Override @Override
...@@ -150,8 +172,9 @@ public class BusinessContacts extends BaseEntity ...@@ -150,8 +172,9 @@ public class BusinessContacts extends BaseEntity
.append("position", getPosition()) .append("position", getPosition())
.append("phone", getPhone()) .append("phone", getPhone())
.append("accendant", getAccendant()) .append("accendant", getAccendant())
.append("creatTime", getCreatTime()) .append("createTime", getCreateTime())
.append("updateTime", getUpdateTime()) .append("updateTime", getUpdateTime())
.append("sex", getSex())
.toString(); .toString();
} }
} }
package com.dsk.common.core.domain.entity; package com.dsk.common.core.domain.entity;
import java.util.Date; import com.dsk.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableField;
import com.dsk.common.core.domain.BaseEntity; import com.dsk.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.dsk.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
/** /**
* 项目详情对象 business_info * 项目详情对象 business_info
* *
......
...@@ -8,7 +8,8 @@ import java.util.regex.Pattern; ...@@ -8,7 +8,8 @@ import java.util.regex.Pattern;
*/ */
public class CheckUtils { public class CheckUtils {
public static final String REG_Moblie = "^((13[0-9])|(14(0|[5-7]|9))|(15([0-3]|[5-9]))|(16(2|[5-7]))|(17[0-8])|(18[0-9])|(19([0-3]|[5-9])))\\d{8}$"; public static final String REG_Moblie = "^((13[0-9])|(14(0|[5-7]|9))|(15([0-3]|[5-9]))|(16(2|[5-7]))|(17[0-8])|(18[0-9])|(19([0-3]|[5-9])))\\d{8}$";//手机号
public static final String REG_Landline = "(\\(\\d{3,4}\\)|\\d{3,4}-|\\s)?\\d{8}";//座机号
public static final String REG_EMAIL = "[a-zA-Z0-9]+@[a-zA-Z0-9]+\\.[a-zA-Z0-9]+"; public static final String REG_EMAIL = "[a-zA-Z0-9]+@[a-zA-Z0-9]+\\.[a-zA-Z0-9]+";
...@@ -35,10 +36,42 @@ public class CheckUtils { ...@@ -35,10 +36,42 @@ public class CheckUtils {
if (phone == null){ if (phone == null){
return false; return false;
}else { }else {
Pattern p = Pattern.compile(REG_Moblie); Pattern mobilePattern = Pattern.compile(REG_Moblie);
Matcher m = p.matcher(phone); Pattern landlinePattern = Pattern.compile(REG_Landline);
return m.matches(); Matcher mobileMatcher = mobilePattern.matcher(phone);
Matcher landlineMatcher = landlinePattern.matcher(phone);
return mobileMatcher.matches() || landlineMatcher.matches();
} }
} }
/**
* Double小数点前的位数
* @param number
* @return
*/
public static int checkIntegerPlaces(Double number) {
String strNumber = Double.toString(Math.abs(number));
int integerPlaces = strNumber.indexOf('.');
if (integerPlaces == -1) {
return strNumber.length();
} else {
return integerPlaces;
}
}
/**
* Double小数点后的位数
* @param number
* @return
*/
public static int checkDecimalPlaces(Double number) {
String strNumber = Double.toString(Math.abs(number));
int decimalPlaces = 0;
int index = strNumber.indexOf('.');
if (index != -1) {
decimalPlaces = strNumber.length() - index - 1;
}
return decimalPlaces;
}
} }
...@@ -512,7 +512,7 @@ ...@@ -512,7 +512,7 @@
.types{ .types{
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
padding: 8px 0 24px; padding: 24px 0;
>div{ >div{
cursor: pointer; cursor: pointer;
>i{ >i{
...@@ -872,6 +872,10 @@ ...@@ -872,6 +872,10 @@
.el-table--enable-row-hover .el-table__body tr:hover > td.el-table__cell{ .el-table--enable-row-hover .el-table__body tr:hover > td.el-table__cell{
background: #F6F9FC;; background: #F6F9FC;;
} }
.el-table__header-wrapper th, th.el-table__cell.is-leaf{
background: #fff;
}
.hoverbtn{ .hoverbtn{
display: none; display: none;
>div{ >div{
...@@ -968,7 +972,7 @@ ...@@ -968,7 +972,7 @@
position: fixed; position: fixed;
top: 0; top: 0;
left: 0; left: 0;
z-index: 2; z-index: 3;
.upload{ .upload{
width: 528px; width: 528px;
height: 430px; height: 430px;
...@@ -1073,7 +1077,8 @@ ...@@ -1073,7 +1077,8 @@
} }
} }
.success{ .success{
width: 240px; min-width: 240px;
padding: 0 24px;
height: 175px; height: 175px;
background: #FFFFFF; background: #FFFFFF;
border-radius: 4px; border-radius: 4px;
...@@ -1163,3 +1168,7 @@ ...@@ -1163,3 +1168,7 @@
} }
} }
} }
.select-multiple,.select-popper .el-input{
//top: 10px !important;
line-height: 34px !important;
}
...@@ -270,6 +270,9 @@ select { ...@@ -270,6 +270,9 @@ select {
cursor: pointer; cursor: pointer;
position: relative; position: relative;
} }
.select-popper .select-active{
color: #0381fa;
}
.content_item .select-popper:hover .select-caret { .content_item .select-popper:hover .select-caret {
color: #0074E5; color: #0074E5;
......
<template> <template>
<div> <div @click = 'handleALL'>
<div class="miantitle"> <div class="miantitle">
<span>客户管理</span> <span>客户管理</span>
<span> / 客户列表</span> <span> / 客户列表</span>
...@@ -202,7 +202,7 @@ ...@@ -202,7 +202,7 @@
<el-form class="popform j" :model="queryParam" :rules="rules" ref="ruleForm" label-width="130px"> <el-form class="popform j" :model="queryParam" :rules="rules" ref="ruleForm" label-width="130px">
<el-form-item label="企业名称:" class="row" prop="companyName"> <el-form-item label="企业名称:" class="row" prop="companyName">
<el-input type="text" placeholder="请输入" v-model="queryParam.companyName" @input="getCompany"></el-input> <el-input type="text" placeholder="请输入" v-model="queryParam.companyName" @input="getCompany"></el-input>
<div class="resultlist" v-if="showlist"> <div class="resultlist" v-if="showlist" id="box">
<div v-for="(item,index) in companData" @click="selCompany(item)"><span v-html="item.name"></span></div> <div v-for="(item,index) in companData" @click="selCompany(item)"><span v-html="item.name"></span></div>
</div> </div>
</el-form-item> </el-form-item>
...@@ -302,6 +302,14 @@ export default { ...@@ -302,6 +302,14 @@ export default {
this.prvinceTree() this.prvinceTree()
}, },
methods:{ methods:{
handleALL(event){
var one = document.getElementById("box");
if(one){
if(!one.contains(event.target)){
this.showlist = false
}
}
},
toct(){ toct(){
this.$router.push({path:'/macro/urban'}) this.$router.push({path:'/macro/urban'})
}, },
...@@ -463,7 +471,10 @@ export default { ...@@ -463,7 +471,10 @@ export default {
}, },
//输入数字 //输入数字
number(value){ number(value){
this.queryParam.registerCapital = value.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1')//输入6位小数 if(value == '')
this.queryParam.registerCapital = value
else
this.queryParam.registerCapital = value.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1')//输入6位小数
} }
} }
} }
......
...@@ -28,8 +28,8 @@ ...@@ -28,8 +28,8 @@
prefix-icon="fromTime-icon" prefix-icon="fromTime-icon"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
range-separator="至" range-separator="至"
start-placeholder="开始月份" start-placeholder="开始日期"
end-placeholder="结束月份"> end-placeholder="结束日期">
</el-date-picker> </el-date-picker>
</template> </template>
<!-- 输入框 --> <!-- 输入框 -->
......
...@@ -143,4 +143,43 @@ export default { ...@@ -143,4 +143,43 @@ export default {
/*::v-deep .el-table__fixed{ /*::v-deep .el-table__fixed{
height: calc(100% - 16px) !important; height: calc(100% - 16px) !important;
}*/ }*/
::v-deep .el-table__row{
&:nth-child(even){
background-color: #F9FCFF;
.more{
background: #F8FBFF;
span{
color: #0081FF;
}
}
}
&:nth-child(odd){
.more{
span{
color: #0081FF;
}
}
}
}
::v-deep .el-table th.el-table__cell.is-leaf,::v-deep .el-table td.el-table__cell {
border-bottom: 1px solid #E6EAF1;
}
::v-deep .el-table--border .el-table__cell {
border-right: 1px solid #E6EAF1;
}
::v-deep .el-table__body tr.hover-row.current-row>td,
::v-deep .el-table__body tr.hover-row.el-table__row--striped.current-row>td,
::v-deep .el-table__body tr.hover-row.el-table__row--striped>td,
::v-deep .el-table__body tr.hover-row>td{
background-color:#DCEBFF !important;
.more{
background: #DCEBFF;
}
}
::v-deep .el-table--enable-row-hover .el-table__body tr:hover > td {
background-color: #DCEBFF;
}
</style> </style>
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
<!-- 弹窗关联项目 --> <!-- 弹窗关联项目 -->
<el-drawer <el-drawer
title="添加合作情况" title="添加合作情况"
size="40%" size="45%"
:visible.sync="drawer" :visible.sync="drawer"
:direction="direction" :direction="direction"
:with-header="false" :with-header="false"
...@@ -55,19 +55,19 @@ ...@@ -55,19 +55,19 @@
<div class="addhzqk_top"> <div class="addhzqk_top">
<div class="addhzqk_top_t"> <div class="addhzqk_top_t">
<div class="top_t_h1"> <div class="top_t_h1">
<img src="@/assets/images/economies/icon.png" />{{ info.companyName }} <img src="@/assets/images/economies/icon.png" />{{ companyInfo.companyName }}
</div> </div>
<div class="top_t_close"><i class="el-icon-close" @click="handleClose"></i></div> <div class="top_t_close"><i class="el-icon-close" @click="handleClose"></i></div>
</div> </div>
<div class="addhzqk_top_d"> <div class="addhzqk_top_d">
<div class="top_d_item"> <div class="top_d_item">
法定代表人:<span>{{ info.legalPerson }}</span> 法定代表人:<span>{{ companyInfo.corporatePerson }}</span>
</div> </div>
<div class="top_d_item"> <div class="top_d_item">
注册资本:<span>{{ info.registerCapital }}万</span> 注册资本:<span>{{ companyInfo.regCapital }}</span>
</div> </div>
<div class="top_d_item"> <div class="top_d_item">
注册地址:<span>{{ info.registerAddress }}</span> 注册地址:<span>{{ companyInfo.addressDetail }}</span>
</div> </div>
</div> </div>
</div> </div>
...@@ -143,7 +143,7 @@ export default { ...@@ -143,7 +143,7 @@ export default {
components: { components: {
Detail Detail
}, },
props: ['customerIds'], props: ['customerIds','companyInfo'],
data() { data() {
return { return {
ifEmpty:false, ifEmpty:false,
...@@ -161,7 +161,7 @@ export default { ...@@ -161,7 +161,7 @@ export default {
formData: [ formData: [
{ type: 1, fieldName: 'projectStage', value: '', placeholder: '项目阶段', options: []}, { type: 1, fieldName: 'projectStage', value: '', placeholder: '项目阶段', options: []},
{ type: 1, fieldName: 'status', value: '', placeholder: '项目状态', options: []}, { type: 1, fieldName: 'status', value: '', placeholder: '项目状态', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询'}, { type: 3, fieldName: 'projectName', value: '', placeholder: '输入项目名称关键字搜索'},
], ],
stageOptions:[], stageOptions:[],
statusOptions:[], statusOptions:[],
...@@ -352,7 +352,7 @@ export default { ...@@ -352,7 +352,7 @@ export default {
}, },
//输入数字 //输入数字
number(value){ number(value){
this.addParam.investmentAmount = value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')//输入2位小数 this.addParam.investmentAmount = value.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1')//输入2位小数
}, },
//打开详情 //打开详情
clickDetail(id){ clickDetail(id){
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
<!-- 招标偏好 --> <!-- 招标偏好 -->
<Preference v-if="currentPath.pathName=='preference'" :customer-ids="customerId" /> <Preference v-if="currentPath.pathName=='preference'" :customer-ids="customerId" />
<!-- 合作情况 --> <!-- 合作情况 -->
<Cooperate v-if="currentPath.pathName=='cooperate'" :customer-ids="customerId" /> <Cooperate v-if="currentPath.pathName=='cooperate'" :customer-ids="customerId" :companyInfo="companyInfo" />
<!-- 决策链条 --> <!-- 决策链条 -->
<DecisionMaking v-if="currentPath.pathName=='decisionMaking'" :customer-ids="customerId" :companyInfo="companyInfo" /> <DecisionMaking v-if="currentPath.pathName=='decisionMaking'" :customer-ids="customerId" :companyInfo="companyInfo" />
<!-- 跟进记录 --> <!-- 跟进记录 -->
......
...@@ -185,7 +185,7 @@ export default { ...@@ -185,7 +185,7 @@ export default {
this.tableLoading = false this.tableLoading = false
if(res.code==200){ if(res.code==200){
this.dialogVisible=true this.dialogVisible=true
this.ifClaim = true this.ifClaim = 1
} }
}else{ }else{
this.$message.warning('对不起,当前不能认领') this.$message.warning('对不起,当前不能认领')
...@@ -226,7 +226,7 @@ export default { ...@@ -226,7 +226,7 @@ export default {
}, },
//获取认领状态 //获取认领状态
getClaimStatus(){ getClaimStatus(){
this.ifClaim = this.companyInfo.regCapital this.ifClaim = this.companyInfo.claimStatus
}, },
handleWidth(){ handleWidth(){
if(this.companyInfo.introduction){ if(this.companyInfo.introduction){
......
...@@ -11,7 +11,12 @@ ...@@ -11,7 +11,12 @@
<el-table-column label="序号" width="55" align="left" fixed> <el-table-column label="序号" width="55" align="left" fixed>
<template slot-scope="scope">{{ holderParams.pageNum * holderParams.pageSize - holderParams.pageSize + scope.$index + 1 }}</template> <template slot-scope="scope">{{ holderParams.pageNum * holderParams.pageSize - holderParams.pageSize + scope.$index + 1 }}</template>
</el-table-column> </el-table-column>
<el-table-column prop="stockName" min-width="140" label="股东名称"></el-table-column> <el-table-column min-width="140" label="股东名称">
<template slot-scope="scope">
<router-link :to="`/enterprise/${encodeStr(scope.row.stockId)}`" tag="a" class="a-link" v-if="scope.row.stockId&&scope.row.stockName" v-html="scope.row.stockName"></router-link>
<div v-else v-html="scope.row.stockName || '--'"></div>
</template>
</el-table-column>
<el-table-column prop="shouldCapiConv" label="应缴金额"></el-table-column> <el-table-column prop="shouldCapiConv" label="应缴金额"></el-table-column>
<el-table-column prop="stockPercent" label="持股比例"></el-table-column> <el-table-column prop="stockPercent" label="持股比例"></el-table-column>
<el-table-column prop="" label="法定代表人"> <el-table-column prop="" label="法定代表人">
......
...@@ -46,8 +46,8 @@ export default { ...@@ -46,8 +46,8 @@ export default {
{label: '列入日期', prop: 'inDate', width: '95'}, {label: '列入日期', prop: 'inDate', width: '95'},
{label: '做出决定机关(移入)', prop: 'department', width: '264'}, {label: '做出决定机关(移入)', prop: 'department', width: '264'},
{label: '移出经营异常名录原因', prop: 'outReason', width: '320'}, {label: '移出经营异常名录原因', prop: 'outReason', width: '320'},
{label: '移日期', prop: 'outDate', width: '95'}, {label: '移日期', prop: 'outDate', width: '95'},
{label: '做出决定机关(移)', prop: 'outDepartment', width: '264'} {label: '做出决定机关(移)', prop: 'outDepartment', width: '264'}
], ],
formData: [ formData: [
{ type: 4, fieldName: 'years', value: '', placeholder: '列入时间', options: []} { type: 4, fieldName: 'years', value: '', placeholder: '列入时间', options: []}
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<template slot="punishReason" slot-scope="scope"> <template slot="punishReason" slot-scope="scope">
<span :class="[isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.punishReason)?'cell-span':'']" :style="{'-webkit-line-clamp': 5}"> <span :class="[isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.punishReason)?'cell-span':'']" :style="{'-webkit-line-clamp': 5}">
<div v-html="scope.row.punishReason"></div> <div v-html="scope.row.punishReason"></div>
<span v-if="isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.punishReason)" @click="changeShowAll(scope.index, 0)">...<span style="color: #0081FF;">更多</span></span> <span v-if="isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.punishReason)" @click="changeShowAll(scope.index, 0)" class="more">...<span>更多</span></span>
</span> </span>
</template> </template>
</tables> </tables>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small"> <el-form ref="queryForm" :model="queryParams" :inline="true" size="small">
<el-form-item prop="year"> <el-form-item prop="year">
<el-select v-model="queryParams.year" filterable class="form-content-width" placeholder="请选择"> <el-select v-model="queryParams.year" filterable class="form-content-width" placeholder="请选择">
<el-option v-for="(item, index) in yearOptions" :key="index" :label="item.year" :value="item.year" /> <el-option v-for="(item, index) in yearOptions" :key="index" :label="item.year" :value="item.year" @click.native='handleSelect(item.year)'/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -92,6 +92,7 @@ ...@@ -92,6 +92,7 @@
:prop="item" :prop="item"
:label="item" :label="item"
width="16.7%" width="16.7%"
:formatter="formatStatus"
> >
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -104,9 +105,7 @@ ...@@ -104,9 +105,7 @@
import { regionalCompare,getYears } from '@/api/macro/macro' import { regionalCompare,getYears } from '@/api/macro/macro'
export default { export default {
name: 'comparison', name: 'comparison',
props:{ props:['dataQuery','provinceId'],
dataQuery:{}
},
data() { data() {
return { return {
queryParams: { queryParams: {
...@@ -155,6 +154,10 @@ export default { ...@@ -155,6 +154,10 @@ export default {
prop: 'industryTotalValue', prop: 'industryTotalValue',
label: '工业总产值(亿元)', label: '工业总产值(亿元)',
}, },
{
prop: 'fixedInvestment',
label: '固定资产投资(亿元)',
},
{ {
prop: 'realEstateInvestment', prop: 'realEstateInvestment',
label: '房地产开发投资(亿元)', label: '房地产开发投资(亿元)',
...@@ -287,17 +290,30 @@ export default { ...@@ -287,17 +290,30 @@ export default {
regionData:[] regionData:[]
} }
}, },
watch: {
provinceId(newValue, oldValue){
console.log(newValue)
}
},
created() { created() {
this.dataRegion(); this.dataRegion();
console.log(this.dataQuery)
// this.getData(); // this.getData();
getYears({}).then(res => { getYears({}).then(res => {
this.yearOptions=res.data.reverse(); this.yearOptions=res.data.reverse();
this.queryParams.year = this.yearOptions[0].year; this.queryParams.year = this.yearOptions[0].year;
if(this.dataQuery.pId){ if(this.dataQuery.pId){
const params = { year: this.queryParams.year,type:3,provinceId:this.dataQuery.provinceId } const params = { year: this.queryParams.year,type:3}
if(this.provinceId.length >= 0){
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.value1Flag=true this.value1Flag=true
this.addressValue1=this.dataQuery.province this.addressValue1=this.dataQuery.province.join('-')
this.getData(params,1) this.getData(params,1)
} }
}) })
...@@ -318,8 +334,10 @@ export default { ...@@ -318,8 +334,10 @@ export default {
params.id=this.dataQuery.id params.id=this.dataQuery.id
} }
regionalCompare(params).then(res => { regionalCompare(params).then(res => {
this.tableData.splice(index-1,1,res.data) if(res.data){
this.$forceUpdate(); this.tableData.splice(index-1,1,res.data)
this.$forceUpdate();
}
}) })
}, },
//地区 //地区
...@@ -377,7 +395,7 @@ export default { ...@@ -377,7 +395,7 @@ export default {
}, },
handleVisibleChange(flag,index){ handleVisibleChange(flag,index){
if(!flag){ if(!flag){
if(this.value1 || this.value2 || this.value3 || this.value4 || this.value5){ if((index === 1 && this.value1) || (index === 2 && this.value2) || (index === 3 && this.value3) || (index === 4 && this.value4) || (index === 5 && this.value5)){
switch (index) { switch (index) {
case 1: case 1:
this.value1Flag=true this.value1Flag=true
...@@ -523,11 +541,16 @@ export default { ...@@ -523,11 +541,16 @@ export default {
this.$forceUpdate(); this.$forceUpdate();
}, },
handleSelect(val){
const params = { year: this.queryParams.year,type:3 }
},
formatStatus: function(row, column, cellValue) { formatStatus: function(row, column, cellValue) {
if(row.title === '经济'||row.title === '财政'||row.title === '债务'){ if(row.title === '经济'||row.title === '财政'||row.title === '债务'){
return cellValue return cellValue
}else { }else {
return cellValue? cellValue : '-' // return cellValue? cellValue : '-'
return cellValue
} }
}, },
rowStyle(row){ rowStyle(row){
......
...@@ -24,16 +24,18 @@ ...@@ -24,16 +24,18 @@
<el-table <el-table
v-loading="tableLoading" v-loading="tableLoading"
:data="tableData" :data="tableData"
height="440"
border border
height="440px"
highlight-current-row highlight-current-row
:summary-method="getSummaries"
show-summary
> >
<el-table-column label="序号" width="60" align="left"> <el-table-column label="序号" width="60" align="left">
<template slot-scope="scope">{{ scope.$index + 1 }}</template> <template slot-scope="scope">{{ scope.$index + 2 }}</template>
</el-table-column> </el-table-column>
<el-table-column label="产业类型" prop="projectType"></el-table-column> <el-table-column label="产业类型" prop="projectType"></el-table-column>
<el-table-column :label="oneYear"> <el-table-column :label="oneYear">
<el-table-column prop="money" label="金额(亿元)"> </el-table-column> <el-table-column prop="money" label="金额(亿元)" sortable> </el-table-column>
<el-table-column prop="rate" label="占比"> </el-table-column> <el-table-column prop="rate" label="占比"> </el-table-column>
</el-table-column> </el-table-column>
<el-table-column :label="twoYear"> <el-table-column :label="twoYear">
...@@ -51,12 +53,7 @@ ...@@ -51,12 +53,7 @@
import { bidGroupCountByProjectType,bidMoneyGroupByProjectType,getYears } from '@/api/macro/macro' import { bidGroupCountByProjectType,bidMoneyGroupByProjectType,getYears } from '@/api/macro/macro'
export default { export default {
name: 'industrialStructure', name: 'industrialStructure',
props:{ props:['dataQuery','provinceId'],
dataQuery: {
type: Object,
default: {}
},
},
data() { data() {
return { return {
queryParams: { queryParams: {
...@@ -71,6 +68,11 @@ export default { ...@@ -71,6 +68,11 @@ export default {
twoYear:'', twoYear:'',
} }
}, },
watch: {
provinceId(newValue, oldValue){
this.getData()
}
},
created() { created() {
getYears({}).then(res => { getYears({}).then(res => {
this.yearOptions=res.data.reverse(); this.yearOptions=res.data.reverse();
...@@ -92,7 +94,16 @@ export default { ...@@ -92,7 +94,16 @@ export default {
endTime=mydate.getFullYear()-1+'-12-31'; endTime=mydate.getFullYear()-1+'-12-31';
this.oneYear=mydate.getFullYear()-1+'年'; this.oneYear=mydate.getFullYear()-1+'年';
this.twoYear=mydate.getFullYear()-2+'年'; this.twoYear=mydate.getFullYear()-2+'年';
let params={startDate:startTime,endDate:endTime,province:this.dataQuery.provinceId} let params={startDate:startTime,endDate:endTime}
if(this.provinceId.length >= 0){
params.province=this.provinceId[0]
}
if(this.provinceId.length >= 1){
params.city=this.provinceId[1]
}
if(this.provinceId.length >= 2){
params.county=this.provinceId[2]
}
bidMoneyGroupByProjectType(params).then(res => { bidMoneyGroupByProjectType(params).then(res => {
let list=res.data[1].type let list=res.data[1].type
for (let i=0; i<res.data[0].type.length; i++){ for (let i=0; i<res.data[0].type.length; i++){
...@@ -170,13 +181,54 @@ export default { ...@@ -170,13 +181,54 @@ export default {
] ]
} }
myChart.setOption(option); myChart.setOption(option);
window.addEventListener("resize", function () {
myChart.resize();//图表跟随页面大小变化宽度
});
}, },
handleMessage(){ handleMessage(){
this.$message({ this.$message({
message: '功能正在开发中', message: '功能正在开发中',
type: 'warning' type: 'warning'
}); });
} },
getSummaries(param){
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '1';
return;
}
if (index === 1) {
sums[index] = '合计';
return;
}
if (index === 3) {
sums[index] = '100';
return;
}
if (index === 5) {
sums[index] = '100';
return;
}
const values = data.map(item => Number(item[column.property]));
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return Number(Number(prev) + Number(curr)).toFixed(3)
} else {
return prev;
}
}, 0);
// if (index === 1) {
// sums[index] = Number(sums[index]).toFixed(0);
// return;
// }
});
console.log(sums)
return sums;
},
} }
} }
...@@ -211,6 +263,17 @@ export default { ...@@ -211,6 +263,17 @@ export default {
} }
.content-right{ .content-right{
width: 50%; width: 50%;
::v-deep .el-table{
display: flex;
flex-direction: column;
.el-table__body-wrapper {
order: 1;
}
.el-table__fixed-footer-wrapper {
z-index: 0;
top: 46px;
}
}
} }
} }
} }
......
...@@ -24,10 +24,14 @@ ...@@ -24,10 +24,14 @@
highlight-current-row highlight-current-row
@sort-change="sortChange" @sort-change="sortChange"
> >
<el-table-column prop="province" label="下辖区" width="170" :formatter="formatStatus"> <el-table-column prop="province" label="下辖区" width="170" :formatter="formatStatus" fixed>
<!--<template slot-scope="scope">-->
<!--{{ scope.row.province}}{{scope.row.city ? '-': ''}}{{ scope.row.city}}{{scope.row.area ? '-': ''}}{{ scope.row.area}}-->
<!--</template>-->
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.province}}{{scope.row.city ? '-': ''}}{{ scope.row.city}}{{scope.row.area ? '-': ''}}{{ scope.row.area}} <router-link :to="{path:'/macro/economies',query:{provinceId:scope.row.provinceId}}" tag="a" class="a-link">{{ scope.row.province}}{{scope.row.city ? '-': ''}}{{ scope.row.city}}{{scope.row.area ? '-': ''}}{{ scope.row.area}}</router-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="gdp" label="GDP(亿元)" sortable width="120" :formatter="formatStatus"/> <el-table-column prop="gdp" label="GDP(亿元)" sortable width="120" :formatter="formatStatus"/>
<el-table-column prop="gdpGrowth" label="GDP增速" sortable width="100" :formatter="formatStatus"/> <el-table-column prop="gdpGrowth" label="GDP增速" sortable width="100" :formatter="formatStatus"/>
...@@ -39,8 +43,8 @@ ...@@ -39,8 +43,8 @@
<el-table-column prop="govFundIncome" label="政府性基金收入(亿元)" sortable width="180" :formatter="formatStatus"/> <el-table-column prop="govFundIncome" label="政府性基金收入(亿元)" sortable width="180" :formatter="formatStatus"/>
<el-table-column prop="govDebtBalance" label="地方政府债务余额(亿元)" sortable width="180" :formatter="formatStatus"/> <el-table-column prop="govDebtBalance" label="地方政府债务余额(亿元)" sortable width="180" :formatter="formatStatus"/>
<el-table-column prop="uipInterestBearingDebt" label="城投平台有息债务(亿元)" sortable width="180" :formatter="formatStatus"/> <el-table-column prop="uipInterestBearingDebt" label="城投平台有息债务(亿元)" sortable width="180" :formatter="formatStatus"/>
<el-table-column prop="fiscalSelfSufficiencyRate" label="财政自给率" sortable width="120":formatter="formatStatus"/> <el-table-column prop="fiscalSelfSufficiencyRate" label="财政自给率(%)" sortable width="120":formatter="formatStatus"/>
<el-table-column prop="govDebtRateWild" label="债务率-宽口径" sortable width="130" :formatter="formatStatus"/> <el-table-column prop="govDebtRateWild" label="债务率-宽口径(%)" sortable :formatter="formatStatus"/>
</el-table> </el-table>
</div> </div>
<div class="pagination-box"> <div class="pagination-box">
...@@ -55,12 +59,7 @@ ...@@ -55,12 +59,7 @@
import { nationalPage,getYears } from '@/api/macro/macro' import { nationalPage,getYears } from '@/api/macro/macro'
export default { export default {
name: 'localEconomy', name: 'localEconomy',
props:{ props:['dataQuery','provinceId'],
dataQuery: {
type: Object,
default: {}
},
},
data() { data() {
return { return {
queryParams: { queryParams: {
...@@ -72,7 +71,17 @@ export default { ...@@ -72,7 +71,17 @@ export default {
tableLoading: false, tableLoading: false,
pageIndex: 1, pageIndex: 1,
pageSize: 10, pageSize: 10,
tableDataTotal: 0 tableDataTotal: 0,
}
},
watch: {
dataQuery: {
handler(newValue, oldValue) {
},
deep: true
},
provinceId(newValue, oldValue){
this.getData()
} }
}, },
created() { created() {
...@@ -91,7 +100,16 @@ export default { ...@@ -91,7 +100,16 @@ export default {
params.order=this.queryParams.order params.order=this.queryParams.order
} }
params.provinceIds=[this.dataQuery.provinceId] if(this.provinceId.length >= 0){
params.provinceIds=[this.provinceId[0]]
}
if(this.provinceId.length >= 1){
params.cityId=[this.provinceId[1]]
}
if(this.provinceId.length >= 2){
params.areaId=[this.provinceId[2]]
}
// params.provinceIds=[this.dataQuery.provinceId]
nationalPage(params).then(res => { nationalPage(params).then(res => {
this.tableData = res.data.list this.tableData = res.data.list
this.tableDataTotal = res.data.totalCount this.tableDataTotal = res.data.totalCount
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<img v-else src="@/assets/images/economies/icon_down.png"> <img v-else src="@/assets/images/economies/icon_down.png">
</div> </div>
<div id="echartsZS" style="height: 75px;"></div> <div id="echartsZS" style="height: 75px;"></div>
<div class="item-text up" v-if="(recentlyYear.gdpGrowth-nextYearMap.gdpGrowth) > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.gdpGrowth-nextYearMap.gdpGrowth}}%</span></div> <div class="item-text up" v-if="(recentlyYear.gdpGrowth-nextYearMap.gdpGrowth) > 0">{{nextYearMap.year}}年上升<span>{{(recentlyYear.gdpGrowth-nextYearMap.gdpGrowth).toFixed(2).toString()}}%</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{(this.recentlyYear.gdpGrowth-this.nextYearMap.gdpGrowth).toFixed(2).toString().substring(1)}}%</span></div> <div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{(this.recentlyYear.gdpGrowth-this.nextYearMap.gdpGrowth).toFixed(2).toString().substring(1)}}%</span></div>
</div> </div>
<div class="item"> <div class="item">
...@@ -106,12 +106,7 @@ ...@@ -106,12 +106,7 @@
import { regional,regionalList,location } from '@/api/macro/macro' import { regional,regionalList,location } from '@/api/macro/macro'
export default { export default {
name: 'regionalEconomy', name: 'regionalEconomy',
props:{ props:['dataQuery','provinceId'],
dataQuery: {
type: Object,
default: {}
},
},
data() { data() {
return { return {
tableData: [], tableData: [],
...@@ -286,7 +281,7 @@ export default { ...@@ -286,7 +281,7 @@ export default {
created() { created() {
this.getData() this.getData()
this.$nextTick(()=>{ this.$nextTick(()=>{
// console.log(this.dataQuery)
}) })
}, },
computed: { computed: {
...@@ -297,6 +292,19 @@ export default { ...@@ -297,6 +292,19 @@ export default {
return this.headers.map(item => { return this.headers.map(item => {
return this.tableData.reduce((pre, cur, index) => Object.assign(pre, {['value' + index]: cur[item.prop]}), {'title': item.label,}); return this.tableData.reduce((pre, cur, index) => Object.assign(pre, {['value' + index]: cur[item.prop]}), {'title': item.label,});
}); });
},
// provinceId() {
// return this.dataQuery.provinceId
// }
},
watch: {
dataQuery: {
handler(newValue, oldValue) {
},
deep: true
},
provinceId(newValue, oldValue){
this.getData()
} }
}, },
methods: { methods: {
...@@ -305,8 +313,14 @@ export default { ...@@ -305,8 +313,14 @@ export default {
if(this.dataQuery.id){ if(this.dataQuery.id){
params.id=this.dataQuery.id params.id=this.dataQuery.id
} }
if(this.dataQuery.provinceId){ if(this.provinceId.length >= 0){
params.provinceId=this.dataQuery.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]
} }
regional(params).then(res => { regional(params).then(res => {
this.recentlyYear=res.data[0].recentlyYear; this.recentlyYear=res.data[0].recentlyYear;
...@@ -386,6 +400,9 @@ export default { ...@@ -386,6 +400,9 @@ export default {
] ]
} }
myChart.setOption(option); myChart.setOption(option);
window.addEventListener("resize", function () {
myChart.resize();//图表跟随页面大小变化宽度
});
}, },
initChart1(){ initChart1(){
let myChartZS = echarts.init(document.getElementById("echartsZS")) let myChartZS = echarts.init(document.getElementById("echartsZS"))
...@@ -445,6 +462,9 @@ export default { ...@@ -445,6 +462,9 @@ export default {
] ]
} }
myChartZS.setOption(option); myChartZS.setOption(option);
window.addEventListener("resize", function () {
myChartZS.resize();//图表跟随页面大小变化宽度
});
}, },
initChart2(){ initChart2(){
let myChartRK = echarts.init(document.getElementById("echartsRK")) let myChartRK = echarts.init(document.getElementById("echartsRK"))
...@@ -504,6 +524,9 @@ export default { ...@@ -504,6 +524,9 @@ export default {
] ]
} }
myChartRK.setOption(option); myChartRK.setOption(option);
window.addEventListener("resize", function () {
myChartRK.resize();//图表跟随页面大小变化宽度
});
}, },
initChart3(){ initChart3(){
let myChartSR = echarts.init(document.getElementById("echartsSR")) let myChartSR = echarts.init(document.getElementById("echartsSR"))
...@@ -563,6 +586,9 @@ export default { ...@@ -563,6 +586,9 @@ export default {
] ]
} }
myChartSR.setOption(option); myChartSR.setOption(option);
window.addEventListener("resize", function () {
myChartSR.resize();//图表跟随页面大小变化宽度
});
}, },
initChart4(){ initChart4(){
let myChartYE = echarts.init(document.getElementById("echartsYE")) let myChartYE = echarts.init(document.getElementById("echartsYE"))
...@@ -622,6 +648,9 @@ export default { ...@@ -622,6 +648,9 @@ export default {
] ]
} }
myChartYE.setOption(option); myChartYE.setOption(option);
window.addEventListener("resize", function () {
myChartYE.resize();//图表跟随页面大小变化宽度
});
}, },
formatStatus: function(row, column, cellValue) { formatStatus: function(row, column, cellValue) {
if(row.title === '经济'||row.title === '财政'||row.title === '债务'){ if(row.title === '经济'||row.title === '财政'||row.title === '债务'){
......
...@@ -10,13 +10,22 @@ ...@@ -10,13 +10,22 @@
<div class="location"> <div class="location">
<span><i class="el-icon-location"></i>{{province}}</span> <span><i class="el-icon-location"></i>{{province}}</span>
<el-cascader ref="address" class="cascader-region" popper-class='cascader-region-addd' <el-cascader ref="address" class="cascader-region" popper-class='cascader-region-addd'
@input="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>
<!--<el-select v-model="provinceId" class="cascader-region">-->
<!--<el-option-->
<!--v-for="(item,index) in addressList"-->
<!--:key="index"-->
<!--:label="item.label"-->
<!--:value="item.id"-->
<!--@click.native="addressListbtn(item.label,item.id)"-->
<!--&gt;</el-option>-->
<!--</el-select>-->
</div> </div>
</div> </div>
<RegionalEconomy v-if="activeName === 'first' && province" :dataQuery="dataQuery"></RegionalEconomy> <RegionalEconomy v-if="activeName === 'first' && province" :dataQuery="dataQuery" :provinceId="provinceId"></RegionalEconomy>
<LocalEconomy v-if="activeName === 'second' && province" :dataQuery="dataQuery"></LocalEconomy> <LocalEconomy v-if="activeName === 'second' && province" :dataQuery="dataQuery" :provinceId="provinceId"></LocalEconomy>
<IndustrialStructure v-if="activeName === 'third' && province" :dataQuery="dataQuery"></IndustrialStructure> <IndustrialStructure v-if="activeName === 'third' && province" :dataQuery="dataQuery" :provinceId="provinceId"></IndustrialStructure>
<Comparison v-if="activeName === 'four' && province" :dataQuery="dataQuery"></Comparison> <Comparison v-if="activeName === 'four' && province" :dataQuery="dataQuery" :provinceId="provinceId"></Comparison>
</div> </div>
</template> </template>
...@@ -46,17 +55,20 @@ export default { ...@@ -46,17 +55,20 @@ export default {
checkStrictly: true checkStrictly: true
}, },
addressList: [], addressList: [],
address:'' address:'',
provinceId:[]
} }
}, },
created() { created() {
this.dataQuery=this.$route.query; this.dataQuery=this.$route.query;
location({provinceId:'500000'}).then(res => { location({provinceId:'500000'}).then(res => {
this.province=res.data.currentProvince.regionName; this.province=res.data.currentProvince.regionName;
this.provinceId=res.data.currentProvince.id;
if(!this.dataQuery.provinceId){ if(!this.dataQuery.provinceId){
this.dataQuery.provinceId=this.provinceId this.dataQuery.provinceId=res.data.currentProvince.id
this.dataQuery.province=this.province this.dataQuery.province=this.province;
this.provinceId.push(res.data.currentProvince.id)
}else {
this.provinceId.push(this.dataQuery.provinceId)
} }
}) })
if(this.dataQuery.activeName){ if(this.dataQuery.activeName){
...@@ -71,7 +83,6 @@ export default { ...@@ -71,7 +83,6 @@ export default {
}, },
methods: { methods: {
handleClick(key,item) { handleClick(key,item) {
console.log(item)
if(key === 'four'){ if(key === 'four'){
this.activeName='four' this.activeName='four'
} }
...@@ -99,7 +110,7 @@ export default { ...@@ -99,7 +110,7 @@ export default {
"value": dataRegion[i].parentId, "value": dataRegion[i].parentId,
"children": [] "children": []
}); });
} else if (dataRegion[i].regionLevel == x + 1 && x + 1 == 2) { }else if (dataRegion[i].regionLevel == x + 1 && x + 1 == 2) {
for (let j = 0; j < str.length; j++) { for (let j = 0; j < str.length; j++) {
if (str[j].id == dataRegion[i].parentId) { if (str[j].id == dataRegion[i].parentId) {
str[j].children.push({ str[j].children.push({
...@@ -111,7 +122,7 @@ export default { ...@@ -111,7 +122,7 @@ export default {
}); });
} }
} }
} else if (dataRegion[i].regionLevel == x + 1 && x + 1 == 3) { }else if (dataRegion[i].regionLevel == x + 1 && x + 1 == 3) {
for (let j = 0; j < str.length; j++) { for (let j = 0; j < str.length; j++) {
for (let k = 0; k < str[j].children.length; k++) { for (let k = 0; k < str[j].children.length; k++) {
if (str[j].children[k].id == dataRegion[i].parentId) { if (str[j].children[k].id == dataRegion[i].parentId) {
...@@ -131,9 +142,19 @@ export default { ...@@ -131,9 +142,19 @@ export default {
this.addressList = str; this.addressList = str;
}, },
addressListbtn() { addressListbtn() {
let nodesObj = this.$refs.address.getCheckedNodes(); let nodesObj = this.$refs.address.getCheckedNodes()[0];
console.log(nodesObj ) // console.log(nodesObj)
console.log(this.address) this.province=nodesObj.pathLabels[nodesObj.pathLabels.length-1];
this.provinceId=nodesObj.path;
this.dataQuery.province=nodesObj.pathLabels;
// this.dataQuery.provinceId=nodesObj.path[nodesObj.path.length-1];
// console.log(this.dataQuery)
// this.province=label;
// this.provinceId=id;
// this.dataQuery.provinceId=id;
// this.dataQuery.province=label;
} }
} }
} }
......
...@@ -18,8 +18,8 @@ ...@@ -18,8 +18,8 @@
placeholder="资质资格" placeholder="资质资格"
collapse-tags collapse-tags
clearable></el-cascader> clearable></el-cascader>
<el-input placeholder="输入企业名称关键词" v-model="queryParams.ename"> <el-input placeholder="输入企业名称关键词" v-model="queryParams.ename" clearable @clear="handleSearch()">
<el-button slot="append" @click="querySubmit()">搜索</el-button> <el-button slot="append" @click="handleSearch()">搜索</el-button>
</el-input> </el-input>
<span class="total">{{tableDataTotal}}</span> <span class="total">{{tableDataTotal}}</span>
</div> </div>
...@@ -30,7 +30,9 @@ ...@@ -30,7 +30,9 @@
element-loading-text="Loading" element-loading-text="Loading"
border border
fit fit
@sort-change="sortChange"
highlight-current-row highlight-current-row
v-if="tableDataTotal > 0"
> >
<el-table-column label="序号" width="50" align="left" fixed> <el-table-column label="序号" width="50" align="left" fixed>
<template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template> <template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template>
...@@ -41,22 +43,27 @@ ...@@ -41,22 +43,27 @@
<span v-else v-html="scope.row.name" ></span> <span v-else v-html="scope.row.name" ></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="注册地址" prop="domicile" width="150"/> <el-table-column label="注册地址" prop="domicile" width="150" :formatter="formatStatus"/>
<el-table-column label="资质资格" prop="aptitudeCountNew" sortable width="100"/> <el-table-column label="资质资格" prop="aptitudeCountNew" sortable="custom" width="100" :formatter="formatStatus"/>
<el-table-column label="专业人员" prop="persionCount" sortable width="100"/> <el-table-column label="专业人员" prop="persionCount" sortable="custom" width="100" :formatter="formatStatus"/>
<el-table-column label="中标业绩" prop="recentlyCount" sortable width="100"/> <el-table-column label="中标业绩" prop="recentlyCount" sortable="custom" width="100" :formatter="formatStatus"/>
<el-table-column label="最大中标金额(万元)" prop="cgfs" sortable width="160"/> <el-table-column label="最大中标金额(万元)" prop="cgfs" sortable="custom" width="160" :formatter="formatStatus"/>
<el-table-column label="中标总金额(万元)" prop="cgfs" sortable width="160"/> <el-table-column label="中标总金额(万元)" prop="cgfs" sortable="custom" width="160" :formatter="formatStatus"/>
<el-table-column label="四库业绩" prop="skyCount" sortable width="100"/> <el-table-column label="四库业绩" prop="skyCount" sortable="custom" width="100" :formatter="formatStatus"/>
<el-table-column label="公路业绩" prop="cgfs" sortable width="100"/> <el-table-column label="公路业绩" prop="cgfs" sortable="custom" width="100" :formatter="formatStatus"/>
<el-table-column label="水利业绩" prop="cgfs" sortable width="100"/> <el-table-column label="水利业绩" prop="cgfs" sortable="custom" width="100" :formatter="formatStatus"/>
<el-table-column label="常合作业主" prop="cgfs" width="130"/> <el-table-column label="常合作业主" prop="cgfs" width="130" :formatter="formatStatus"/>
<el-table-column label="客户(个)" prop="customerCount" sortable width="100"/> <el-table-column label="客户(个)" prop="customerCount" sortable="custom" width="100" :formatter="formatStatus"/>
<el-table-column label="供应商(个)" prop="supplierCount" sortable width="130" /> <el-table-column label="供应商(个)" prop="supplierCount" sortable="custom" width="130" :formatter="formatStatus"/>
<el-table-column label="常合作供应商" prop="supplierCount" width="120"/> <el-table-column label="常合作供应商" prop="gys" width="120" :formatter="formatStatus"/>
</el-table> </el-table>
<div class="empty" v-if="tableDataTotal === 0">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div>
<div class="p2">建议调整关键词或筛选条件,重新搜索</div>
</div>
</div> </div>
<div class="pagination-box"> <div class="pagination-box" v-if="tableDataTotal>pageSize">
<el-pagination background :current-page="pageIndex" :page-size="pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" /> <el-pagination background :current-page="pageIndex" :page-size="pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
</div> </div>
</div> </div>
...@@ -95,7 +102,7 @@ export default { ...@@ -95,7 +102,7 @@ export default {
tableLoading: false, tableLoading: false,
pageIndex: 1, pageIndex: 1,
pageSize: 10, pageSize: 10,
tableDataTotal: 1, tableDataTotal: null,
aptitudeCodeList:[], aptitudeCodeList:[],
aptitudeType:'', aptitudeType:'',
province:'', province:'',
...@@ -175,8 +182,8 @@ export default { ...@@ -175,8 +182,8 @@ export default {
arr.push(codeStr[i][codeStr[i].length - 1]) arr.push(codeStr[i][codeStr[i].length - 1])
} }
this.aptitudeType=arr.join(',') this.aptitudeType=arr.join(',')
console.log(this.aptitudeType)
this.$refs.aptitudeCode.toggleDropDownVisible(false) this.$refs.aptitudeCode.toggleDropDownVisible(false)
this.pageIndex=1;
this.querySubmit() this.querySubmit()
}, },
handleClick(){ handleClick(){
...@@ -188,7 +195,31 @@ export default { ...@@ -188,7 +195,31 @@ export default {
} }
this.pageIndex=1; this.pageIndex=1;
this.querySubmit() this.querySubmit()
} },
handleSearch(){
this.pageIndex=1;
this.querySubmit()
},
formatStatus: function(row, column, cellValue) {
return cellValue? cellValue : '-'
},
sortChange({ column, prop, order }){
if(prop === 'aptitudeCountNew'){
this.queryParams.field ='aptitudeCountNew'
}else {
this.queryParams.field = prop
}
if(column.order === "ascending"){
this.queryParams.order = 'asc'
}else if(column.order === "descending"){
this.queryParams.order = 'desc'
}else {
this.queryParams.order=''
this.queryParams.field=''
}
this.pageIndex = 1;
this.querySubmit()
},
} }
} }
</script> </script>
...@@ -281,6 +312,27 @@ export default { ...@@ -281,6 +312,27 @@ export default {
} }
.table-item{ .table-item{
margin-top: 14px; margin-top: 14px;
.empty{
margin: 0 auto;
height: 600px;
text-align: center;
border-top: 1px solid #EFEFEF;
.img{
width: 108px;
height: 108px;
margin-bottom: 24px;
margin-top: 150px;
}
.p1{
color: #333333;
font-size: 16px;
}
.p2{
color: #999999;
font-size: 14px;
margin-top: 8px;
}
}
} }
} }
} }
......
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
border border
fit fit
highlight-current-row highlight-current-row
v-if="tableDataTotal > 0"
> >
<el-table-column label="序号" width="50" align="left" fixed> <el-table-column label="序号" width="50" align="left" fixed>
<template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template> <template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template>
...@@ -55,9 +56,9 @@ ...@@ -55,9 +56,9 @@
<el-table-column label="GDP增速(%)" prop="gdpGrowth" :formatter="formatStatus" sortable="custom" min-width="120" align="right"></el-table-column> <el-table-column label="GDP增速(%)" prop="gdpGrowth" :formatter="formatStatus" sortable="custom" min-width="120" align="right"></el-table-column>
<el-table-column label="人均GDP(元)" prop="gdpPerCapita" :formatter="formatStatus" sortable="custom" width="125" align="right"></el-table-column> <el-table-column label="人均GDP(元)" prop="gdpPerCapita" :formatter="formatStatus" sortable="custom" width="125" align="right"></el-table-column>
<el-table-column label="人口(万人)" prop="population" :formatter="formatStatus" sortable="custom" width="120" align="right"></el-table-column> <el-table-column label="人口(万人)" prop="population" :formatter="formatStatus" sortable="custom" width="120" align="right"></el-table-column>
<el-table-column label="一般公共预算收入 (亿元)" prop="gbr" sortable="custom" width="170" align="right"></el-table-column> <el-table-column label="一般公共预算收入(亿元)" prop="gbr" sortable="custom" width="170" align="right"></el-table-column>
<el-table-column label="一般公共预算收入增速(%)" prop="gbrGrowth" :formatter="formatStatus" sortable="custom" min-width="140" align="right"></el-table-column> <el-table-column label="一般公共预算收入增速(%)" prop="gbrGrowth" :formatter="formatStatus" sortable="custom" min-width="140" align="right"></el-table-column>
<el-table-column label="一般公共预算收入:税收收入" prop="taxIncome" :formatter="formatStatus" sortable="custom" min-width="140" align="right"></el-table-column> <el-table-column label="一般公共预算收入:税收收入(亿元)" prop="taxIncome" :formatter="formatStatus" sortable="custom" min-width="140" align="right"></el-table-column>
<el-table-column label="一般公共预算支出(亿元)" prop="gbe" :formatter="formatStatus" sortable="custom" width="140" align="right"></el-table-column> <el-table-column label="一般公共预算支出(亿元)" prop="gbe" :formatter="formatStatus" sortable="custom" width="140" align="right"></el-table-column>
<el-table-column label="政府性基金收入(亿元)" width="140" prop="govFundIncome" :formatter="formatStatus" sortable="custom" align="right"></el-table-column> <el-table-column label="政府性基金收入(亿元)" width="140" prop="govFundIncome" :formatter="formatStatus" sortable="custom" align="right"></el-table-column>
<el-table-column label="政府性基金收入:土地出让收入(亿元)" prop="landTransferIncome" sortable="custom" width="150" align="right"></el-table-column> <el-table-column label="政府性基金收入:土地出让收入(亿元)" prop="landTransferIncome" sortable="custom" width="150" align="right"></el-table-column>
...@@ -94,11 +95,16 @@ ...@@ -94,11 +95,16 @@
<el-table-column label="社会消费品零售总额(亿元)" prop="trscg" :formatter="formatStatus" width="160" align="right"></el-table-column> <el-table-column label="社会消费品零售总额(亿元)" prop="trscg" :formatter="formatStatus" width="160" align="right"></el-table-column>
<el-table-column label="城镇居民人均可支配收入(元)" prop="urbanPcdi" :formatter="formatStatus" width="160" align="right"></el-table-column> <el-table-column label="城镇居民人均可支配收入(元)" prop="urbanPcdi" :formatter="formatStatus" width="160" align="right"></el-table-column>
</el-table> </el-table>
<div class="empty" v-if="tableDataTotal === 0">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div>
<div class="p2">建议调整关键词或筛选条件,重新搜索</div>
</div>
</div> </div>
<!--<template slot-scope="scope">--> <!--<template slot-scope="scope">-->
<!--<router-link to="/purchaserDetail" target="_blank" tag="a" class="a-link">{{ scope.row.zbwj }}</router-link>--> <!--<router-link to="/purchaserDetail" target="_blank" tag="a" class="a-link">{{ scope.row.zbwj }}</router-link>-->
<!--</template>--> <!--</template>-->
<div class="pagination-box"> <div class="pagination-box" v-if="tableDataTotal>pageSize">
<el-pagination background :current-page="pageIndex" :page-size="pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" /> <el-pagination background :current-page="pageIndex" :page-size="pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
</div> </div>
<economies-detail ref="economiesDetail" /> <economies-detail ref="economiesDetail" />
...@@ -132,7 +138,7 @@ ...@@ -132,7 +138,7 @@
tableLoading: false, tableLoading: false,
pageIndex: 1, pageIndex: 1,
pageSize: 10, pageSize: 10,
tableDataTotal: 0, tableDataTotal: null,
} }
}, },
created() { created() {
...@@ -324,7 +330,34 @@ ...@@ -324,7 +330,34 @@
background: #ffffff; background: #ffffff;
padding: 16px; padding: 16px;
margin-top: 12px; margin-top: 12px;
/*height: calc(100vh - 300px);*/
.table-item{ .table-item{
position: relative;
.empty{
/*position: absolute;*/
/*top: 50%;*/
/*left: 50%;*/
/*transform: translate(-50%,-50%);*/
margin: 0 auto;
height: 600px;
text-align: center;
border-top: 1px solid #EFEFEF;
.img{
width: 108px;
height: 108px;
margin-bottom: 24px;
margin-top: 150px;
}
.p1{
color: #333333;
font-size: 16px;
}
.p2{
color: #999999;
font-size: 14px;
margin-top: 8px;
}
}
::v-deep .el-table{ ::v-deep .el-table{
th{ th{
font-size: 12px !important; font-size: 12px !important;
......
...@@ -80,10 +80,10 @@ ...@@ -80,10 +80,10 @@
<span class="common-title">全国招标项目概览</span> <span class="common-title">全国招标项目概览</span>
</div> </div>
</div> </div>
<div class="text">通过对{{year}}年全国招标数据进行分析,发现该企业主要集中在{{dataSort[0].label}}({{dataSort[0].count}}个)、{{dataSort[1].label}}({{dataSort[1].count}}个)进行招标。</div> <div class="text">通过对{{year}}年全国招标数据进行分析,发现该企业主要集中在{{dataSort[0].label}}({{dataSort[0].count}}个)、{{dataSort[1].label}}({{dataSort[1].count}}个)进行招标。</div>
<div class="main1"> <div class="main1">
<div id="gl-echarts" style="height: 250px"></div> <div id="gl-echarts" style="height: 250px"></div>
<p class="tips"><i class="el-icon-info"></i>数据来源大司空建筑大数据平台,统计范围为{{year}}年全国公开的招标项目,未公开的不含在内</p> <p class="tips"><i class="el-icon-info"></i>数据来源大司空建筑大数据平台,统计范围为{{year}}年全国公开的招标项目,未公开的不含在内</p>
</div> </div>
<div class="main2"> <div class="main2">
<div class="selectYear"> <div class="selectYear">
......
...@@ -299,7 +299,7 @@ export default { ...@@ -299,7 +299,7 @@ export default {
areaGroupByProvince().then(res => { areaGroupByProvince().then(res => {
this.zbData=res.data; this.zbData=res.data;
//定义一个变量 保存数据 因为sort方法排序会改变原数组 使用JSON方法深拷贝 将原数值暂存 //定义一个变量 保存数据 因为sort方法排序会改变原数组 使用JSON方法深拷贝 将原数值暂存
let dataArr = JSON.parse(JSON.stringify(res.data)) // let dataArr = JSON.parse(JSON.stringify(res.data))
let arr=res.data.sort((old,New)=>{ let arr=res.data.sort((old,New)=>{
return New.count - old.count return New.count - old.count
}) })
...@@ -309,7 +309,7 @@ export default { ...@@ -309,7 +309,7 @@ export default {
} }
this.rankList=data; this.rankList=data;
//将原数组数据赋值回去 保持数据不变 //将原数组数据赋值回去 保持数据不变
this.zbData = JSON.parse(JSON.stringify(dataArr)) // this.zbData = JSON.parse(JSON.stringify(dataArr))
this.initChart2() this.initChart2()
}) })
}, },
......
...@@ -87,7 +87,7 @@ ...@@ -87,7 +87,7 @@
</div> </div>
</div> </div>
</div> </div>
<el-input class="search-input" placeholder="输入企业名称关键词" v-model="queryParams.keyword"> <el-input class="search-input" placeholder="输入企业名称关键词" v-model="queryParams.keyword" clearable @clear="handleKeyword()">
<template slot="prepend"><i class="el-icon-search"></i></template> <template slot="prepend"><i class="el-icon-search"></i></template>
<el-button slot="append" @click="handleKeyword">搜索</el-button> <el-button slot="append" @click="handleKeyword">搜索</el-button>
</el-input> </el-input>
...@@ -141,6 +141,7 @@ ...@@ -141,6 +141,7 @@
</div> </div>
<div class="table-item"> <div class="table-item">
<el-table <el-table
v-if="tableDataTotal > 0"
v-loading="tableLoading" v-loading="tableLoading"
:data="tableData" :data="tableData"
element-loading-text="Loading" element-loading-text="Loading"
...@@ -227,8 +228,13 @@ ...@@ -227,8 +228,13 @@
<el-table-column prop="developmentZone" label="所属开发区" :formatter="formatStatus" width="160" /> <el-table-column prop="developmentZone" label="所属开发区" :formatter="formatStatus" width="160" />
<!--<el-table-column prop="bl" label="开发区类别" width="160" />--> <!--<el-table-column prop="bl" label="开发区类别" width="160" />-->
</el-table> </el-table>
<div class="empty" v-if="tableDataTotal === 0">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div>
<div class="p2">建议调整关键词或筛选条件,重新搜索</div>
</div>
</div> </div>
<div class="pagination-box"> <div class="pagination-box" v-if="tableDataTotal>pageSize">
<el-pagination background :current-page="pageIndex" :page-size="pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" /> <el-pagination background :current-page="pageIndex" :page-size="pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
</div> </div>
</div> </div>
...@@ -259,7 +265,7 @@ export default { ...@@ -259,7 +265,7 @@ export default {
tableLoading: false, tableLoading: false,
pageIndex: 1, pageIndex: 1,
pageSize: 10, pageSize: 10,
tableDataTotal: 120, tableDataTotal: null,
selected:[], selected:[],
xzdjCalss:'', xzdjCalss:'',
props: { props: {
...@@ -651,7 +657,7 @@ export default { ...@@ -651,7 +657,7 @@ export default {
} }
::v-deep .search-input{ ::v-deep .search-input{
/*::v-deep .el-input{*/ /*::v-deep .el-input{*/
width: 250px; width: 260px;
height: 32px; height: 32px;
.el-input-group__prepend:first-child{ .el-input-group__prepend:first-child{
padding: 0; padding: 0;
...@@ -681,6 +687,27 @@ export default { ...@@ -681,6 +687,27 @@ export default {
} }
.table-item{ .table-item{
margin-top: 22px; margin-top: 22px;
.empty{
margin: 0 auto;
height: 550px;
text-align: center;
border-top: 1px solid #EFEFEF;
.img{
width: 108px;
height: 108px;
margin-bottom: 24px;
margin-top: 150px;
}
.p1{
color: #333333;
font-size: 16px;
}
.p2{
color: #999999;
font-size: 14px;
margin-top: 8px;
}
}
} }
.companyName{ .companyName{
width: 200px; width: 200px;
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<div @click = 'handleALL'> <div @click = 'handleALL'>
<div class="poptitle"> <div class="poptitle">
<img src="@/assets/images/economies/icon.png"> <img src="@/assets/images/economies/icon.png">
<span>添加项目</span> <span>新建商机</span>
</div> </div>
<el-form class="popform j" :model="queryParam" :rules="rules" ref="ruleForm" label-width="130px"> <el-form class="popform j" :model="queryParam" :rules="rules" ref="ruleForm" label-width="130px">
<el-form-item label="项目名称:" class="row" prop="projectName"> <el-form-item label="项目名称:" class="row" prop="projectName">
...@@ -178,7 +178,7 @@ ...@@ -178,7 +178,7 @@
//输入数字 //输入数字
number(value){ number(value){
this.queryParam.investmentAmount = value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')//输入2位小数 this.queryParam.investmentAmount = value.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1')//输入6位小数
} }
} }
} }
......
...@@ -92,6 +92,7 @@ ...@@ -92,6 +92,7 @@
}, },
methods:{ methods:{
getmsg(){ getmsg(){
this.importCancel()
this.$emit('getdatas') this.$emit('getdatas')
}, },
handleFileListChange(file, fileList) { handleFileListChange(file, fileList) {
...@@ -127,7 +128,8 @@ ...@@ -127,7 +128,8 @@
this.messages = res.msg this.messages = res.msg
} }
if(this.importtype == 'custom'){//客户管理 if(this.importtype == 'custom'){//客户管理
let str = '成功导入客户条数'+res.successCount+',客户去重条数'+res.data?res.data.length:0 let num = res.data?res.data.length:0
let str = '成功导入客户条数'+res.successCount+',客户去重条数'+ num
this.messages = str this.messages = str
} }
this.addsuccess = true this.addsuccess = true
......
...@@ -15,9 +15,9 @@ ...@@ -15,9 +15,9 @@
<el-input v-model="addParam.content" placeholder="新建一条跟进记录,如:周五上午预约客户上门拜访"></el-input> <el-input v-model="addParam.content" placeholder="新建一条跟进记录,如:周五上午预约客户上门拜访"></el-input>
</div> </div>
<div class="wr_bot"> <div class="wr_bot">
<div class="sels" v-model="addParam.visitMode"> <div class="sels">
<img src="@/assets/images/project/ico_1.png"> <img src="@/assets/images/project/ico_1.png">
<el-select class="w128" placeholder="拜访方式"> <el-select class="w128" placeholder="拜访方式" v-model="addParam.visitMode">
<el-option v-for="(item,index) in bffslist" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option> <el-option v-for="(item,index) in bffslist" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select> </el-select>
</div> </div>
......
...@@ -242,6 +242,38 @@ ...@@ -242,6 +242,38 @@
} }
} }
if(j == 9){ if(j == 9){
// let param = {}
// switch (i) {
// case 1:
// param = {'investmentAmount':this.investmentAmount}
// break;
// case 2 :
// param = {'amountSource':this.amountSource}
// break;
// case 3 :
// param = {'buildProperty':this.buildProperty}
// break;
// case 4 :
// param = {'evaluationBidWay':this.evaluationBidWay}
// break;
// case 5 :
// param = {'earnestMoneyPay':this.earnestMoneyPay}
// break;
// case 6 :
// param = {'earnestMoney':this.earnestMoney}
// break;
// case 7 :
// param = {'bidOpenPlace':this.bidOpenPlace}
// break;
// case 8 :
// param = {'evaluationBidCouncil':this.evaluationBidCouncil}
// break;
// case 9 :
// param = {'projectDetails':this.projectDetails}
// break;
// }
// this.changes(param)
this.nowedit = -1 this.nowedit = -1
} }
}) })
...@@ -282,7 +314,6 @@ ...@@ -282,7 +314,6 @@
}, },
//输入数字 //输入数字
number(value){ number(value){
console.log(value)
this.investmentAmount = this.investmentAmount == ""||this.investmentAmount == null? value.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1'):null//输入6位小数 this.investmentAmount = this.investmentAmount == ""||this.investmentAmount == null? value.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1'):null//输入6位小数
}, },
} }
......
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
<div> <div>
<el-card class="box-card noborder"> <el-card class="box-card noborder">
<div class="cardtitles">相关企业</div> <div class="cardtitles">相关企业</div>
<div class="searchbtns" v-if="tableData.total>0"> <div class="searchbtns">
<el-select class="select" placeholder="企业类型" v-model="searchParam.companyType" @change="handleCurrentChange(1)"> <el-select class="select" placeholder="企业类型" clearable="true" v-model="searchParam.companyType" @change="handleCurrentChange(1)">
<el-option v-for="(item,index) in companytype" :label="item.dictLabel" :value="item.dictValue"></el-option> <el-option v-for="(item,index) in companytype" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select> </el-select>
<div class="searchInput"> <div class="searchInput">
...@@ -21,9 +21,9 @@ ...@@ -21,9 +21,9 @@
<template slot="empty"> <template slot="empty">
<div class="empty"> <div class="empty">
<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">建议调整关键词或添加相关企业,重新搜索</div>
<div class="btn btn_primary h36 w102" @click="opennew">新增相关企业</div> <!--<div class="btn btn_primary h36 w102" @click="opennew">新增相关企业</div>-->
</div> </div>
</template> </template>
<el-table-column <el-table-column
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<span>项目阶段 :</span> <span>项目阶段 :</span>
<div class="select-popper " > <div class="select-popper " >
<span class="color_text" :class="{'txt':xmjd == '待添加'}"> <span :class="{'txt':xmjd == '待添加'}">
{{xmjd}} {{xmjd}}
<i class="el-icon-caret-bottom"></i> <i class="el-icon-caret-bottom"></i>
</span> </span>
...@@ -232,17 +232,22 @@ ...@@ -232,17 +232,22 @@
}); });
}, },
editXMSL(param){ editXMSL(param){
let params = param if(param.projectStage){//修改项目阶段
params.id = this.id this.$emit('Refreshs',param)
editXMNR(JSON.stringify(params)).then(res=>{ this.xmjd = param.projectStage
if (res.code == 200){ }else{
this.$message.success('修改成功!') let params = param
}else{ params.id = this.id
this.$message.error(res.msg) editXMNR(JSON.stringify(params)).then(res=>{
this.getXMSL() if (res.code == 200){
} this.$message.success('修改成功!')
}) }else{
this.nowedit = -1 this.$message.error(res.msg)
this.getXMSL()
}
})
this.nowedit = -1
}
}, },
//验证电话号码 //验证电话号码
isphone(type,value){ isphone(type,value){
......
...@@ -3,7 +3,8 @@ ...@@ -3,7 +3,8 @@
<div> <div>
<el-card class="box-card noborder"> <el-card class="box-card noborder">
<div class="cardtitles">资料文档</div> <div class="cardtitles">资料文档</div>
<div class="searchbtns" v-if="fileDatas.rows != null && fileDatas.rows.length>0"> <div class="searchbtns">
<!--<div class="searchbtns" v-if="fileDatas.rows != null && fileDatas.rows.length>0">-->
<div class="searchInput"> <div class="searchInput">
<el-input type="text" v-model="param.keyword" placeholder="输入关键词查询"></el-input> <el-input type="text" v-model="param.keyword" placeholder="输入关键词查询"></el-input>
<div class="btn" @click="handleCurrentChange(1)">搜索</div> <div class="btn" @click="handleCurrentChange(1)">搜索</div>
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<div class="titles"> <div class="titles">
<img src="@/assets/images/project/headimg.png" class="headimg"> <img src="@/assets/images/project/headimg.png" class="headimg">
<strong class="text">{{ProjectData.projectName}}</strong> <strong class="text">{{ProjectData.projectName}}</strong>
<div class="locks"> <div class="locks" v-if="ProjectData.isFounder == 1">
<div @click="islock=true"> <div @click="islock=true">
<img v-if="ProjectData.isPrivate == 0" src="@/assets/images/project/lock.png"> <img v-if="ProjectData.isPrivate == 0" src="@/assets/images/project/lock.png">
<img v-else src="@/assets/images/project/lockopen.png"> <img v-else src="@/assets/images/project/lockopen.png">
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
<div class="det-con"> <div class="det-con">
<span>项目类型:</span> <span>项目类型:</span>
<div class="select-popper" > <div class="select-popper" >
<span class="color_text" :class="{'txt':xmlx == '请选择'}"> <span :class="{'txt':xmlx == '请选择'}">
{{xmlx}} {{xmlx}}
<i class="el-icon-caret-bottom"></i> <i class="el-icon-caret-bottom"></i>
</span> </span>
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
<span>项目类别:</span> <span>项目类别:</span>
<span> <span>
<div class="select-popper" > <div class="select-popper" >
<span class="color_text" :class="{'txt':xmlb == '请选择'}"> <span :class="{'txt':xmlb == '请选择'}">
{{xmlb}} {{xmlb}}
<i class="el-icon-caret-bottom"></i> <i class="el-icon-caret-bottom"></i>
</span> </span>
...@@ -106,8 +106,8 @@ ...@@ -106,8 +106,8 @@
</div> </div>
</div> </div>
</el-card> </el-card>
<!--项目览--> <!--项目览-->
<xmsl v-if="thistag == 'xmsl'" :datas="ProjectData" :detailId="detailId"></xmsl> <xmsl v-if="thistag == 'xmsl'" :key="keys" @Refreshs="getsl" :datas="ProjectData" :detailId="detailId"></xmsl>
<!--建设内容--> <!--建设内容-->
<jsnr v-if="thistag == 'jsnr'" :detailId="detailId"></jsnr> <jsnr v-if="thistag == 'jsnr'" :detailId="detailId"></jsnr>
<!--联系人--> <!--联系人-->
...@@ -175,6 +175,7 @@ ...@@ -175,6 +175,7 @@
props:{ checkStrictly: true, expandTrigger: 'hover' }, props:{ checkStrictly: true, expandTrigger: 'hover' },
id:'', id:'',
ProjectData:{}, ProjectData:{},
keys:1,
} }
}, },
created(){ created(){
...@@ -197,6 +198,9 @@ ...@@ -197,6 +198,9 @@
this.getXMSL() this.getXMSL()
}, },
methods: { methods: {
getsl(data){
this.choose(data.projectStage)
},
handleALL(event){ handleALL(event){
var one = document.getElementById("inputxt"); var one = document.getElementById("inputxt");
if(one){ if(one){
...@@ -237,7 +241,6 @@ ...@@ -237,7 +241,6 @@
this.address = list.length>0?list:"待添加" this.address = list.length>0?list:"待添加"
this.addresstxt = txt == "" ? "待添加":txt this.addresstxt = txt == "" ? "待添加":txt
}) })
}, },
locks(isPrivate){ locks(isPrivate){
isPrivate = isPrivate==0?1:0 isPrivate = isPrivate==0?1:0
...@@ -293,6 +296,10 @@ ...@@ -293,6 +296,10 @@
choose(value){ choose(value){
this.thisindex = value this.thisindex = value
this.editXMSL({projectStage:value}) this.editXMSL({projectStage:value})
let _this = this
setTimeout(function() {
_this.keys++;
},1000)
}, },
//内容组件切换 //内容组件切换
getCom(tag){ getCom(tag){
...@@ -300,7 +307,7 @@ ...@@ -300,7 +307,7 @@
}, },
//输入数字 //输入数字
number(value){ number(value){
this.queryParam.registerCapital = value.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1')//输入6位小数 this.ProjectData.investmentAmount = value == ""?"": value.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1')//输入6位小数
}, },
handleChange(value) { handleChange(value) {
......
...@@ -113,7 +113,10 @@ ...@@ -113,7 +113,10 @@
</div> </div>
<div class="datalist"> <div class="datalist">
<div class="datali" v-for="(item,index) in datalist"> <div class="datali" v-for="(item,index) in datalist">
<div class="det-title" @click="toDetail(item.id,'xmsl')">{{item.projectName}}<span v-if="activeName!='first' && item.followTime" class="people"><i>{{item.nickName1}}</i>{{item.nickName}} <font color="#FA8A00">正在跟进</font></span></div> <div class="det-title" @click="toDetail(item.id,'xmsl')">
{{item.projectName}}<span v-if="activeName!='first' && item.followTime" class="people"><i>{{item.nickName1}}</i>
<span v-if="item.provinceName != '' && item.provinceName!==null">{{item.provinceName}}-</span>
{{item.nickName}} <font color="#FA8A00">正在跟进</font></span></div>
<div class="det-tips"> <div class="det-tips">
<span class="tips tip1" v-for="label in item.labels">{{label}}</span> <span class="tips tip1" v-for="label in item.labels">{{label}}</span>
<span v-if="item.address" class="tips tip2">{{item.address}}</span></div> <span v-if="item.address" class="tips tip2">{{item.address}}</span></div>
...@@ -238,6 +241,8 @@ export default { ...@@ -238,6 +241,8 @@ export default {
} }
}, },
created() { created() {
},
mounted(){
this.prvinceTree() this.prvinceTree()
this.getList(1) this.getList(1)
//项目阶段 //项目阶段
...@@ -308,6 +313,10 @@ export default { ...@@ -308,6 +313,10 @@ export default {
}) })
}, },
reset(){ reset(){
this.$nextTick(() => {
this.$refs.myCascader.$refs.panel.clearCheckedNodes()
this.$refs.myCascader.$refs.panel.activePath = []
})
this.searchParam ={ this.searchParam ={
userId:null, userId:null,
projectName:'',//项目名称 projectName:'',//项目名称
......
...@@ -185,11 +185,11 @@ ...@@ -185,11 +185,11 @@
</p> </p>
<p class="list-content-text"> <p class="list-content-text">
<span>预计招标时间:</span> <span>预计招标时间:</span>
<span>{{item.issueTimestamp||'--'}}</span> <span>{{item.planTenderDateStart||'--'}}</span>
</p> </p>
<p class="list-content-text"> <p class="list-content-text">
<span>来源网站:</span> <span>来源网站:</span>
<span >{{item.issueTimestamp||'--'}}</span> <span >{{item.sourceName||'--'}}</span>
</p> </p>
......
...@@ -1057,8 +1057,6 @@ ...@@ -1057,8 +1057,6 @@
reset() { reset() {
Object.assign(this.$data, this.$options.data.call(this)); //重置data Object.assign(this.$data, this.$options.data.call(this)); //重置data
this.init(); this.init();
this.$emit("reset");
this.token = getCookie("tokenNew");
}, },
init() { init() {
this.search(); this.search();
......
...@@ -234,15 +234,19 @@ ...@@ -234,15 +234,19 @@
<div class="list-content"> <div class="list-content">
<p class="list-content-text"> <p class="list-content-text">
<span>受让人:</span> <span>受让人:</span>
<router-link :to="'/company/' + encodeStr(item.id) + '/?index=true'" tag="a" class="list-titel-a blue" v-html="item.companyName"></router-link> <span v-if="item.companyName">
<router-link :to="'/company/' + encodeStr(item.id) + '/?index=true'" tag="a" class="list-titel-a blue" v-html="item.companyName"></router-link>
</span>
<span v-else>--</span>
</p> </p>
<p class="list-content-text"> <p class="list-content-text">
<span>成交金额:</span> <span>成交金额:</span>
<span>{{item.transactionPrice||'--'}}</span> <span>{{item.transactionPrice||'--'}}万元</span>
</p> </p>
<p class="list-content-text"> <p class="list-content-text">
<span>总面积:</span> <span>总面积:</span>
<span>{{item.acreage||'--'}}</span> <span>{{item.acreage||'--'}}</span>
</p> </p>
<p class="list-content-text"> <p class="list-content-text">
<span>合同签订:</span> <span>合同签订:</span>
...@@ -254,6 +258,10 @@ ...@@ -254,6 +258,10 @@
<span>土地用途:</span> <span>土地用途:</span>
<span >{{item.landUse||'--'}}</span> <span >{{item.landUse||'--'}}</span>
</p> </p>
<p class="list-content-text">
<span>行业分类:</span>
<span >{{item.industry||'--'}}</span>
</p>
<p class="list-content-text"> <p class="list-content-text">
<span>供应方式:</span> <span>供应方式:</span>
<span >{{item.supplyLandWay||'--'}}</span> <span >{{item.supplyLandWay||'--'}}</span>
...@@ -275,7 +283,8 @@ ...@@ -275,7 +283,8 @@
</p> </p>
<p class="list-content-text"> <p class="list-content-text">
<span>土地坐落:</span> <span>土地坐落:</span>
<span >{{item.landAddr||'--'}}</span> <span v-if="item.landAddr" v-html="item.landAddr"></span>
<span v-else>--</span>
</p> </p>
</div> </div>
</li> </li>
...@@ -562,7 +571,7 @@ ...@@ -562,7 +571,7 @@
searchDic(){ searchDic(){
api.searchDic().then(res=>{ api.searchDic().then(res=>{
this.landMarketIndustryList = res.landMarketIndustry; this.landMarketIndustryList = res.landMarketIndustry;
this.landUseOptions = res.data.landUse this.landUseOptions = res.landUse
}).catch(error=>{ }).catch(error=>{
}); });
......
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
工程类型{{jskBidNewsDto.projectType.length? jskBidNewsDto.projectType.length + "项": ""}} 工程类型{{jskBidNewsDto.projectType.length? jskBidNewsDto.projectType.length + "项": ""}}
<i class="el-icon-caret-bottom"></i> <i class="el-icon-caret-bottom"></i>
</span> </span>
<el-select v-model="jskBidNewsDto.projectType" class="select-multiple" multipleplaceholder="请选择"> <el-select v-model="jskBidNewsDto.projectType" class="select-multiple" multiple placeholder="请选择">
<el-option v-for="(item, i) in projectTypeList" :key="i":label="item" :value="item"> <el-option v-for="(item, i) in projectTypeList" :key="i":label="item" :value="item">
</el-option> </el-option>
</el-select> </el-select>
...@@ -283,7 +283,7 @@ ...@@ -283,7 +283,7 @@
<div class="label">人员要求</div> <div class="label">人员要求</div>
<div class="content_right"> <div class="content_right">
<el-input class="ename_input" <el-input class="ename_input"
placeholder="请输入关键词句,如:建筑工程" v-model="jskBidNewsDto.personLimit" ></el-input> placeholder="请输入关键词句,如:一级建造师" v-model="jskBidNewsDto.personLimit" ></el-input>
<span class="land_content_wrap_label_tipspan"> <span class="land_content_wrap_label_tipspan">
<el-tooltip popper-class="explain_tooltip" content="根据输入的关键词全称进行匹配" <el-tooltip popper-class="explain_tooltip" content="根据输入的关键词全称进行匹配"
placement="bottom" effect="light"> placement="bottom" effect="light">
...@@ -882,7 +882,8 @@ ...@@ -882,7 +882,8 @@
created() { created() {
this.searchDic(); this.searchDic();
this.clickProvince(0,1); this.clickProvince(0,1);
this.bxproggSearch(); this.search();
this.changeDown(false)
}, },
mounted() { mounted() {
}, },
...@@ -1002,7 +1003,7 @@ ...@@ -1002,7 +1003,7 @@
} }
this.fieldText = this.fieldOptions[index].value; this.fieldText = this.fieldOptions[index].value;
this.fieldOptions[index].status = true; this.fieldOptions[index].status = true;
this.bxproggSearch(); this.search();
}, },
//项目级别 //项目级别
addressListfn() { addressListfn() {
...@@ -1431,12 +1432,12 @@ ...@@ -1431,12 +1432,12 @@
handleCurrentChange(e){ handleCurrentChange(e){
this.page = e; this.page = e;
this.jump1(); this.jump1();
this.bxproggSearch(e, this.limit); this.search(e, this.limit);
}, },
handleSizeChange(e){ handleSizeChange(e){
this.limit = e; this.limit = e;
this.jump1(); this.jump1();
this.bxproggSearch(this.page, e); this.search(this.page, e);
}, },
jump1() { jump1() {
// 用 class="d_jump" 添加锚点 // 用 class="d_jump" 添加锚点
...@@ -1489,10 +1490,10 @@ ...@@ -1489,10 +1490,10 @@
}, },
lowerRateClick() { lowerRateClick() {
this.bxproggSearch(); this.search();
}, },
bxproggSearch(page, limit,exportFlag){ search(page, limit,exportFlag){
// return false; // return false;
if (!page) { if (!page) {
this.page = 1; this.page = 1;
...@@ -1504,6 +1505,7 @@ ...@@ -1504,6 +1505,7 @@
this.reloadPage(); this.reloadPage();
} }
var data = JSON.parse(JSON.stringify(this.jskBidNewsDto)); var data = JSON.parse(JSON.stringify(this.jskBidNewsDto));
console.log(data);
if(this.projectTerritoryId.length >0){ if(this.projectTerritoryId.length >0){
for (var i=0;i<this.projectTerritoryId.length;i++){ for (var i=0;i<this.projectTerritoryId.length;i++){
...@@ -1561,8 +1563,17 @@ ...@@ -1561,8 +1563,17 @@
reset(){ reset(){
Object.assign(this.$data, this.$options.data.call(this)); //重置data Object.assign(this.$data, this.$options.data.call(this)); //重置data
// this.clickProvince(0,1); // this.clickProvince(0,1);
this.bxproggSearch(); this.search();
}, },
changeDown(isHeight){
if(isHeight){
this.isHeight = false
this.maxHeight = 'auto'
}else{
this.isHeight = true
this.maxHeight = '36px'
}
},
provinceChange(e){ provinceChange(e){
let obj='' let obj=''
......
...@@ -7,8 +7,8 @@ ...@@ -7,8 +7,8 @@
<el-input class="ename_input" <el-input class="ename_input"
placeholder="请输入项目名称关键字" v-model="projectName" ></el-input> placeholder="请输入项目名称关键字" v-model="projectName" ></el-input>
<template v-if="projectName"> <template v-if="projectName">
<span v-for=" (item,k) in enameQueryTypeList" :key="k" style="margin-right: 24px;"> <span v-for=" (item,k) in nameTypeList" :key="k" style="margin-right: 24px;">
<el-radio v-model="enameQueryType" :label="item.key">{{item.value}}</el-radio> <el-radio v-model="nameType" :label="item.key">{{item.value}}</el-radio>
</span> </span>
</template> </template>
</div> </div>
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
项目类型{{projectType.length? projectType.length + "项": ""}} 项目类型{{projectType.length? projectType.length + "项": ""}}
<i class="el-icon-caret-bottom"></i> <i class="el-icon-caret-bottom"></i>
</span> </span>
<el-select v-model="projectType" class="select-multiple" multipleplaceholder="请选择"> <el-select v-model="projectType" class="select-multiple" multiple placeholder="请选择">
<el-option v-for="(item, i) in specialBondProjectType" :key="i":label="item" :value="item"> <el-option v-for="(item, i) in specialBondProjectType" :key="i":label="item" :value="item">
</el-option> </el-option>
</el-select> </el-select>
...@@ -108,7 +108,7 @@ ...@@ -108,7 +108,7 @@
</div> </div>
<div class="list-content"> <div class="list-content">
<p class="list-content-text" v-if="item.projectType"> <p class="list-content-text" v-if="item.projectType&&item.projectType!='空白'">
<span>项目类型:</span> <span>项目类型:</span>
<span>{{item.projectType}}</span> <span>{{item.projectType}}</span>
</p> </p>
...@@ -116,27 +116,27 @@ ...@@ -116,27 +116,27 @@
<span>项目总投资(亿):</span> <span>项目总投资(亿):</span>
<span>{{item.projectTotalInvestment}}</span> <span>{{item.projectTotalInvestment}}</span>
</p> </p>
<p class="list-content-text" v-if="item.specialCapital"> <p class="list-content-text" v-if="item.projectCapital">
<span>项目资本金(亿):</span> <span>项目资本金(亿):</span>
<span>{{item.projectCapital}}</span> <span>{{item.projectCapital}}</span>
</p> </p>
<p class="list-content-text"> <p class="list-content-text" v-if="item.specialBondCapital">
<span>专项债金额(亿):</span> <span>专项债金额(亿):</span>
<span>{{item.specialCapital}}</span> <span>{{item.specialBondCapital}}</span>
</p> </p>
</div> </div>
<div class="list-content"> <div class="list-content">
<p class="list-content-text" v-if="item.specialCapital"> <p class="list-content-text" v-if="item.projectEntity">
<span>项目主体:</span> <span>项目主体:</span>
<span >{{item.projectEntity}}</span> <span v-html="item.projectEntity"></span>
</p> </p>
<p class="list-content-text" v-if="item.chargeDepartment"> <p class="list-content-text" v-if="item.chargeDepartment">
<span>主管部门:</span> <span>主管部门:</span>
<span >{{item.chargeDepartment}}</span> <span v-html="item.chargeDepartment"></span>
</p> </p>
<p class="list-content-text" v-if="item.piu"> <p class="list-content-text" v-if="item.piu">
<span>实施单位:</span> <span>实施单位:</span>
<span >{{item.piu}}</span> <span v-html="item.piu"></span>
</p> </p>
</div> </div>
</li> </li>
...@@ -171,20 +171,18 @@ ...@@ -171,20 +171,18 @@
return { return {
encodeStr, encodeStr,
projectName:'', projectName:'',
enameQueryTypeList: [{ nameTypeList: [{
key: 'and', key: 'like',
status: false, status: false,
value: '模糊搜索', value: '模糊搜索',
keyid: 'businessScope'
}, },
{ {
key: 'or', key: 'match',
status: true, status: true,
value: '精准匹配', value: '精准匹配',
keyid: 'businessScope'
}, },
], ],
enameQueryType: 'or', nameType: 'match',
projectEntity:'', projectEntity:'',
countTypelist: [{ countTypelist: [{
key: '1', key: '1',
...@@ -201,7 +199,7 @@ ...@@ -201,7 +199,7 @@
], ],
chargeDepartment: { chargeDepartment: {
key: '3', key: '3',
value: '实施单位' value: '项目主体'
}, },
addressList: [], addressList: [],
addressType: [], addressType: [],
...@@ -213,7 +211,7 @@ ...@@ -213,7 +211,7 @@
specialBondProjectType: [ specialBondProjectType: [
], ],
projectTypeText: ['不限'], projectTypeText: ['不限'],
projectType:['不限'], projectType:[],
arrList:[], arrList:[],
pageFlag:true, pageFlag:true,
...@@ -226,11 +224,14 @@ ...@@ -226,11 +224,14 @@
} }
}, },
created() { created() {
this.addressListfn(); this.init();
this.searchDic();
this.search();
}, },
methods: { methods: {
init(){
this.addressListfn();
this.searchDic();
this.search();
},
searchDic(){ searchDic(){
api.searchDic().then(res=>{ api.searchDic().then(res=>{
this.specialBondProjectType=res.specialBondProjectType; this.specialBondProjectType=res.specialBondProjectType;
...@@ -444,7 +445,7 @@ ...@@ -444,7 +445,7 @@
if(this.projectName){ if(this.projectName){
params.specialBondProjectDto['projectName']=this.projectName; params.specialBondProjectDto['projectName']=this.projectName;
params.specialBondProjectDto['enameQueryType']=this.enameQueryType; params.specialBondProjectDto['nameType']=this.nameType;
} }
if(this.projectEntity){ if(this.projectEntity){
...@@ -534,7 +535,8 @@ ...@@ -534,7 +535,8 @@
return this.hasValue; return this.hasValue;
}, },
reset(){ reset(){
Object.assign(this.$data, this.$options.data.call(this)); //重置data
this.init();
} }
} }
} }
......
package com.dsk.system.domain; package com.dsk.system.domain;
import com.dsk.common.utils.StringUtils;
import lombok.Data; import lombok.Data;
/** /**
...@@ -34,7 +33,7 @@ public class BusinessAddDto { ...@@ -34,7 +33,7 @@ public class BusinessAddDto {
/** /**
* 投资估算 * 投资估算
*/ */
private String investmentAmount; private Double investmentAmount;
/** /**
* 项目阶段 * 项目阶段
...@@ -59,8 +58,4 @@ public class BusinessAddDto { ...@@ -59,8 +58,4 @@ public class BusinessAddDto {
* 客户id * 客户id
*/ */
private String customerId; private String customerId;
public Double getInvestmentAmount() {
return StringUtils.isEmpty(investmentAmount) ? null :Double.parseDouble(investmentAmount);
}
} }
...@@ -19,6 +19,10 @@ public class CustomerBusinessSearchDto implements Serializable { ...@@ -19,6 +19,10 @@ public class CustomerBusinessSearchDto implements Serializable {
* 企业id * 企业id
*/ */
private Long userId; private Long userId;
/**
* 项目名称
*/
private String projectName;
/** /**
* 项目阶段 * 项目阶段
*/ */
......
...@@ -130,5 +130,10 @@ public class BusinessBrowseVo { ...@@ -130,5 +130,10 @@ public class BusinessBrowseVo {
*/ */
private Integer fileCount; private Integer fileCount;
/**
* 是否创建人(1 是,0 否)
*/
private Integer isFounder;
} }
...@@ -56,7 +56,10 @@ public class EnterpriseService { ...@@ -56,7 +56,10 @@ public class EnterpriseService {
companyData.put("claimStatus", 0); companyData.put("claimStatus", 0);
companyData.put("uipId", null); companyData.put("uipId", null);
Map<String, Object> uipMap = dskOpenApiUtil.requestBody("/operate/enterprise/financial", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = BeanUtil.beanToMap(body, false, false);
map.put("cid", body.getCompanyId());
Map<String, Object> uipMap = dskOpenApiUtil.requestBody("/operate/enterprise/financial", map);
Integer uipCode = MapUtils.getInteger(uipMap, "code", 300); Integer uipCode = MapUtils.getInteger(uipMap, "code", 300);
if (200 != uipCode) return R.ok(companyData); if (200 != uipCode) return R.ok(companyData);
......
package com.dsk.system.mapper; package com.dsk.system.mapper;
import com.dsk.common.core.domain.entity.BusinessUser; import com.dsk.common.core.domain.entity.BusinessUser;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
/** /**
...@@ -65,4 +67,11 @@ public interface BusinessUserMapper ...@@ -65,4 +67,11 @@ public interface BusinessUserMapper
* @return * @return
*/ */
String selectCreatorByBusinessId(Integer businessId); String selectCreatorByBusinessId(Integer businessId);
/**
* 查询是否为项目的创建人
* @param businessId
* @return
*/
Integer selectFounder(@Param("businessId") Integer businessId,@Param("userId") Long userId);
} }
package com.dsk.system.service.impl; package com.dsk.system.service.impl;
import java.util.List;
import com.dsk.common.core.domain.entity.BusinessContacts; import com.dsk.common.core.domain.entity.BusinessContacts;
import com.dsk.common.exception.base.BaseException; import com.dsk.common.exception.base.BaseException;
import com.dsk.common.utils.CheckUtils; import com.dsk.common.utils.CheckUtils;
...@@ -12,6 +10,8 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -12,6 +10,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/** /**
* 项目联系人Service业务层处理 * 项目联系人Service业务层处理
* *
...@@ -58,7 +58,7 @@ public class BusinessContactsServiceImpl implements IBusinessContactsService ...@@ -58,7 +58,7 @@ public class BusinessContactsServiceImpl implements IBusinessContactsService
@Transactional @Transactional
public int insertBusinessContacts(BusinessContacts businessContacts) public int insertBusinessContacts(BusinessContacts businessContacts)
{ {
if(!CheckUtils.isPhone(businessContacts.getPhone())) throw new BaseException("500","请输入正确的手机号码"); if(!CheckUtils.isPhone(businessContacts.getPhone())) throw new BaseException("500","请输入正确的电话号码");
return businessContactsMapper.insertBusinessContacts(businessContacts); return businessContactsMapper.insertBusinessContacts(businessContacts);
} }
...@@ -72,7 +72,7 @@ public class BusinessContactsServiceImpl implements IBusinessContactsService ...@@ -72,7 +72,7 @@ public class BusinessContactsServiceImpl implements IBusinessContactsService
@Transactional @Transactional
public int updateBusinessContacts(BusinessContacts businessContacts) public int updateBusinessContacts(BusinessContacts businessContacts)
{ {
if(!CheckUtils.isPhone(businessContacts.getPhone())) throw new BaseException("500","请输入正确的手机号码"); if(!CheckUtils.isPhone(businessContacts.getPhone())) throw new BaseException("500","请输入正确的电话号码");
businessContacts.setUpdateTime(DateUtils.getNowDate()); businessContacts.setUpdateTime(DateUtils.getNowDate());
return businessContactsMapper.updateBusinessContacts(businessContacts); return businessContactsMapper.updateBusinessContacts(businessContacts);
} }
......
...@@ -2,6 +2,7 @@ package com.dsk.system.service.impl; ...@@ -2,6 +2,7 @@ package com.dsk.system.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import com.dsk.common.config.RuoYiConfig; import com.dsk.common.config.RuoYiConfig;
import com.dsk.common.constant.HttpStatus; import com.dsk.common.constant.HttpStatus;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
...@@ -70,7 +71,8 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService { ...@@ -70,7 +71,8 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
@Override @Override
public BusinessInfo getConstruction(Integer id) { public BusinessInfo getConstruction(Integer id) {
return businessInfoMapper.getConstruction(id); BusinessInfo businessInfo =businessInfoMapper.getConstruction(id);
return ObjectUtil.isEmpty(businessInfo) ? new BusinessInfo() : businessInfo;
} }
/** /**
...@@ -89,7 +91,6 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService { ...@@ -89,7 +91,6 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
dto.setOthers(userId.intValue()); dto.setOthers(userId.intValue());
//查询他人可见项目 //查询他人可见项目
othersList = businessInfoMapper.selectBusinessInfoList(dto); othersList = businessInfoMapper.selectBusinessInfoList(dto);
} }
dto.setOthers(null); dto.setOthers(null);
//查询自己参与的项目 //查询自己参与的项目
...@@ -103,9 +104,14 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService { ...@@ -103,9 +104,14 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
BusinessBrowseVo businessBrowseVo = new BusinessBrowseVo(); BusinessBrowseVo businessBrowseVo = new BusinessBrowseVo();
//查询项目基本信息 //查询项目基本信息
BusinessInfo businessInfo = businessInfoMapper.selectBusinessInfoById(businessId); BusinessInfo businessInfo = businessInfoMapper.selectBusinessInfoById(businessId);
BeanUtil.copyProperties(businessInfo, businessBrowseVo); if(ObjectUtil.isNotEmpty(businessInfo)) BeanUtil.copyProperties(businessInfo, businessBrowseVo);
//商务团队 //商务团队
businessBrowseVo.setTeam(businessUserMapper.selectCreatorByBusinessId(businessId)); businessBrowseVo.setTeam(businessUserMapper.selectCreatorByBusinessId(businessId));
//查询是否是项目创建人
Long userId = SecurityUtils.getLoginUser().getUserId();
if (userId == null) throw new BaseException("请登录");
Integer founder = businessUserMapper.selectFounder(businessId, userId);
businessBrowseVo.setIsFounder(founder == null ? 0 : founder);
//查询项目标签 //查询项目标签
businessBrowseVo.setLabelList(businessLabelMapper.selectBusinessLabelList(new BusinessLabel(businessId)).stream().map(p -> p.getLabel()).collect(Collectors.toList())); businessBrowseVo.setLabelList(businessLabelMapper.selectBusinessLabelList(new BusinessLabel(businessId)).stream().map(p -> p.getLabel()).collect(Collectors.toList()));
//相关数据统计 //相关数据统计
...@@ -173,6 +179,13 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService { ...@@ -173,6 +179,13 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
//新增前查询是否已存在 //新增前查询是否已存在
int count = businessInfoMapper.isRepetitionProjectName(dto.getProjectName(), dto.getUserId()); int count = businessInfoMapper.isRepetitionProjectName(dto.getProjectName(), dto.getUserId());
if (count > 0) return AjaxResult.error("项目名称已存在"); if (count > 0) return AjaxResult.error("项目名称已存在");
//判断资金Double类型的位数
if (dto.getInvestmentAmount() != null) {
int front = CheckUtils.checkIntegerPlaces(dto.getInvestmentAmount());
int later = CheckUtils.checkDecimalPlaces(dto.getInvestmentAmount());
if (front > 9) return AjaxResult.error("小数点前最多支持9位");
if (later > 6) return AjaxResult.error("小数点后最多支持6位");
}
//新增项目主信息 //新增项目主信息
BusinessInfo businessInfo = new BusinessInfo(); BusinessInfo businessInfo = new BusinessInfo();
BeanUtil.copyProperties(dto, businessInfo); BeanUtil.copyProperties(dto, businessInfo);
...@@ -199,9 +212,16 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService { ...@@ -199,9 +212,16 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
@Override @Override
@Transactional @Transactional
public int updateBusinessInfo(BusinessInfo businessInfo) { public int updateBusinessInfo(BusinessInfo businessInfo) {
//判断资金Double类型的位数
if (businessInfo.getInvestmentAmount() != null) {
int front = CheckUtils.checkIntegerPlaces(businessInfo.getInvestmentAmount());
int later = CheckUtils.checkDecimalPlaces(businessInfo.getInvestmentAmount());
if (front > 9) throw new BaseException("500", "小数点前最多支持9位");
if (later > 6) throw new BaseException("500", "小数点后最多支持6位");
}
if (StringUtils.isNotEmpty(businessInfo.getConstructionPhone()) && StringUtils.isNotEmpty(businessInfo.getSupervisorPhone())) { if (StringUtils.isNotEmpty(businessInfo.getConstructionPhone()) && StringUtils.isNotEmpty(businessInfo.getSupervisorPhone())) {
if (!CheckUtils.isPhone(businessInfo.getConstructionPhone()) || !CheckUtils.isPhone(businessInfo.getSupervisorPhone())) if (!CheckUtils.isPhone(businessInfo.getConstructionPhone()) || !CheckUtils.isPhone(businessInfo.getSupervisorPhone()))
throw new BaseException("500", "请输入正确的手机号码"); throw new BaseException("500", "请输入正确的电话号码");
} }
businessInfo.setUpdateTime(DateUtils.getNowDate()); businessInfo.setUpdateTime(DateUtils.getNowDate());
return businessInfoMapper.updateBusinessInfo(businessInfo); return businessInfoMapper.updateBusinessInfo(businessInfo);
......
package com.dsk.system.service.impl; package com.dsk.system.service.impl;
import java.util.List;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.entity.BusinessRelateCompany; import com.dsk.common.core.domain.entity.BusinessRelateCompany;
import com.dsk.common.exception.base.BaseException;
import com.dsk.common.utils.CheckUtils;
import com.dsk.common.utils.DateUtils; import com.dsk.common.utils.DateUtils;
import com.dsk.system.domain.BusinessIdDto; import com.dsk.system.domain.BusinessIdDto;
import com.dsk.system.mapper.BusinessRelateCompanyMapper; import com.dsk.system.mapper.BusinessRelateCompanyMapper;
...@@ -16,6 +10,8 @@ import org.springframework.stereotype.Service; ...@@ -16,6 +10,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* 项目关联单位Service业务层处理 * 项目关联单位Service业务层处理
...@@ -63,7 +59,7 @@ public class BusinessRelateCompanyServiceImpl implements IBusinessRelateCompanyS ...@@ -63,7 +59,7 @@ public class BusinessRelateCompanyServiceImpl implements IBusinessRelateCompanyS
@Transactional @Transactional
public int insertBusinessRelateCompany(BusinessRelateCompany businessRelateCompany) public int insertBusinessRelateCompany(BusinessRelateCompany businessRelateCompany)
{ {
// if(!CheckUtils.isPhone(businessRelateCompany.getPhone())) throw new BaseException("500","请输入正确的手机号码"); // if(!CheckUtils.isPhone(businessRelateCompany.getPhone())) throw new BaseException("500","请输入正确的电话号码");
businessRelateCompany.setCreateTime(DateUtils.getNowDate()); businessRelateCompany.setCreateTime(DateUtils.getNowDate());
return businessRelateCompanyMapper.insertBusinessRelateCompany(businessRelateCompany); return businessRelateCompanyMapper.insertBusinessRelateCompany(businessRelateCompany);
} }
...@@ -78,7 +74,7 @@ public class BusinessRelateCompanyServiceImpl implements IBusinessRelateCompanyS ...@@ -78,7 +74,7 @@ public class BusinessRelateCompanyServiceImpl implements IBusinessRelateCompanyS
@Transactional @Transactional
public int updateBusinessRelateCompany(BusinessRelateCompany businessRelateCompany) public int updateBusinessRelateCompany(BusinessRelateCompany businessRelateCompany)
{ {
// if(!CheckUtils.isPhone(businessRelateCompany.getPhone())) throw new BaseException("500","请输入正确的手机号码"); // if(!CheckUtils.isPhone(businessRelateCompany.getPhone())) throw new BaseException("500","请输入正确的电话号码");
businessRelateCompany.setUpdateTime(DateUtils.getNowDate()); businessRelateCompany.setUpdateTime(DateUtils.getNowDate());
return businessRelateCompanyMapper.updateBusinessRelateCompany(businessRelateCompany); return businessRelateCompanyMapper.updateBusinessRelateCompany(businessRelateCompany);
} }
......
...@@ -12,8 +12,9 @@ ...@@ -12,8 +12,9 @@
<result property="office" column="office"/> <result property="office" column="office"/>
<result property="position" column="position"/> <result property="position" column="position"/>
<result property="phone" column="phone"/> <result property="phone" column="phone"/>
<result property="sex" column="sex"/>
<result property="accendant" column="accendant"/> <result property="accendant" column="accendant"/>
<result property="creatTime" column="creat_time"/> <result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/> <result property="updateTime" column="update_time"/>
</resultMap> </resultMap>
...@@ -26,7 +27,8 @@ ...@@ -26,7 +27,8 @@
position, position,
phone, phone,
accendant, accendant,
creat_time, sex,
create_time,
update_time update_time
from business_contacts from business_contacts
</sql> </sql>
...@@ -41,9 +43,10 @@ ...@@ -41,9 +43,10 @@
<if test="position != null and position != ''">and position = #{position}</if> <if test="position != null and position != ''">and position = #{position}</if>
<if test="phone != null and phone != ''">and phone = #{phone}</if> <if test="phone != null and phone != ''">and phone = #{phone}</if>
<if test="accendant != null and accendant != ''">and accendant = #{accendant}</if> <if test="accendant != null and accendant != ''">and accendant = #{accendant}</if>
<if test="creatTime != null ">and creat_time = #{creatTime}</if> <if test="createTime != null ">and create_time = #{createTime}</if>
<if test="sex != null ">and sex = #{sex}</if>
</where> </where>
order by creat_time desc order by update_time desc,id desc
</select> </select>
<select id="selectBusinessContactsById" parameterType="Long" resultMap="BusinessContactsResult"> <select id="selectBusinessContactsById" parameterType="Long" resultMap="BusinessContactsResult">
...@@ -61,8 +64,9 @@ ...@@ -61,8 +64,9 @@
<if test="position != null">position,</if> <if test="position != null">position,</if>
<if test="phone != null">phone,</if> <if test="phone != null">phone,</if>
<if test="accendant != null">accendant,</if> <if test="accendant != null">accendant,</if>
<if test="creatTime != null">creat_time,</if> <if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if> <if test="updateTime != null">update_time,</if>
<if test="sex != null">sex,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="businessId != null">#{businessId},</if> <if test="businessId != null">#{businessId},</if>
...@@ -72,8 +76,9 @@ ...@@ -72,8 +76,9 @@
<if test="position != null">#{position},</if> <if test="position != null">#{position},</if>
<if test="phone != null">#{phone},</if> <if test="phone != null">#{phone},</if>
<if test="accendant != null">#{accendant},</if> <if test="accendant != null">#{accendant},</if>
<if test="creatTime != null">#{creatTime},</if> <if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if> <if test="updateTime != null">#{updateTime},</if>
<if test="sex != null">#{sex},</if>
</trim> </trim>
</insert> </insert>
...@@ -87,8 +92,9 @@ ...@@ -87,8 +92,9 @@
<if test="position != null">position = #{position},</if> <if test="position != null">position = #{position},</if>
<if test="phone != null">phone = #{phone},</if> <if test="phone != null">phone = #{phone},</if>
<if test="accendant != null">accendant = #{accendant},</if> <if test="accendant != null">accendant = #{accendant},</if>
<if test="creatTime != null">creat_time = #{creatTime},</if> <if test="createTime != null">create_time = #{createTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="sex != null">sex = #{sex},</if>
</trim> </trim>
where id = #{id} where id = #{id}
</update> </update>
......
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
i.district_name districtName, i.district_name districtName,
i.investment_amount investmentAmount, i.investment_amount investmentAmount,
i.construction_unit ownerCompany, i.construction_unit ownerCompany,
MAX(f.creat_time) followTime, MAX(f.create_time) followTime,
u.nick_name nickName, u.nick_name nickName,
GROUP_CONCAT(DISTINCT l.label) label GROUP_CONCAT(DISTINCT l.label) label
FROM business_info i FROM business_info i
...@@ -356,7 +356,7 @@ ...@@ -356,7 +356,7 @@
<if test="constructionPhone != null">construction_phone = #{constructionPhone},</if> <if test="constructionPhone != null">construction_phone = #{constructionPhone},</if>
<if test="supervisorUnit != null">supervisor_unit = #{supervisorUnit},</if> <if test="supervisorUnit != null">supervisor_unit = #{supervisorUnit},</if>
<if test="supervisorPrincipal != null">supervisor_principal = #{supervisorPrincipal},</if> <if test="supervisorPrincipal != null">supervisor_principal = #{supervisorPrincipal},</if>
<if test="supervisorPhone != null">evaluation_bid_council = #{supervisorPhone},</if> <if test="supervisorPhone != null">supervisor_phone = #{supervisorPhone},</if>
</trim> </trim>
where id = #{id} where id = #{id}
</update> </update>
...@@ -388,6 +388,7 @@ ...@@ -388,6 +388,7 @@
from business_info bi from business_info bi
left join business_user bu on bi.id = bu.business_id left join business_user bu on bi.id = bu.business_id
where bi.customer_id = #{customerId} and (bu.user_id = #{userId} or bi.is_private = 1) where bi.customer_id = #{customerId} and (bu.user_id = #{userId} or bi.is_private = 1)
<if test="projectName != null and projectName != '' "> and bi.project_name like concat('%',#{projectName},'%') </if>
<if test="projectStage != null and projectStage != '' "> and bi.project_stage = #{projectStage}</if> <if test="projectStage != null and projectStage != '' "> and bi.project_stage = #{projectStage}</if>
<if test="status != null "> and bi.status = #{status}</if> <if test="status != null "> and bi.status = #{status}</if>
order by bi.create_time desc order by bi.create_time desc
......
...@@ -41,6 +41,12 @@ ...@@ -41,6 +41,12 @@
where bu.is_founder = 1 where bu.is_founder = 1
and i.id = #{BusinessId} and i.id = #{BusinessId}
</select> </select>
<select id="selectFounder" resultType="java.lang.Integer">
select is_founder
from business_user
where business_id = #{businessId}
and user_id = #{userId}
</select>
<insert id="insertBusinessUser" parameterType="com.dsk.common.core.domain.entity.BusinessUser" useGeneratedKeys="true" keyProperty="id"> <insert id="insertBusinessUser" parameterType="com.dsk.common.core.domain.entity.BusinessUser" useGeneratedKeys="true" keyProperty="id">
insert into business_user insert into business_user
......
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