Commit f94ecc67 authored by dengguangman's avatar dengguangman

Merge remote-tracking branch 'origin/master'

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