Commit 66c7bc77 authored by liuChang's avatar liuChang

Merge branch 'master' of 192.168.60.201:root/dsk-operate-sys

parents acf38fc8 0a4e2edc
...@@ -77,11 +77,14 @@ public class BusinessFileController extends BaseController { ...@@ -77,11 +77,14 @@ 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;
......
...@@ -50,6 +50,8 @@ public class CompanySearchController { ...@@ -50,6 +50,8 @@ public class CompanySearchController {
} }
compose.getPage().setPage(compose.getPageNum()); compose.getPage().setPage(compose.getPageNum());
compose.getPage().setLimit(compose.getPageSize()); compose.getPage().setLimit(compose.getPageSize());
compose.getPage().setField(compose.getField());
compose.getPage().setOrder(compose.getOrder());
return opportunityRadarService.enterprisePage(compose); return opportunityRadarService.enterprisePage(compose);
} }
} }
...@@ -74,7 +74,6 @@ public class RegionalEconomicDataController { ...@@ -74,7 +74,6 @@ public class RegionalEconomicDataController {
public AjaxResult location(@RequestBody OpRegionalLocalDto vo, HttpServletRequest request){ public AjaxResult location(@RequestBody OpRegionalLocalDto vo, HttpServletRequest request){
String ip = IpUtil.getIpAddr(request); String ip = IpUtil.getIpAddr(request);
vo.setIp(ip); vo.setIp(ip);
log.info("location====================================>" +ip);
return economicService.location(vo); return economicService.location(vo);
} }
...@@ -115,4 +114,16 @@ public class RegionalEconomicDataController { ...@@ -115,4 +114,16 @@ public class RegionalEconomicDataController {
return economicService.regionalCompare(dto); return economicService.regionalCompare(dto);
} }
/***
*@Description: 地区经济-对比
*@Param:
*@return: com.dsk.acc.security.common.msg.RestResponse
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/regional/multipleCompare")
public AjaxResult regionalMultipleCompare(@RequestBody OpRegionalEconomicRegionalCompareDto compareDto) {
return economicService.regionalMultipleCompare(compareDto);
}
} }
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
* *
......
...@@ -34,6 +34,10 @@ public class BasePage { ...@@ -34,6 +34,10 @@ public class BasePage {
*/ */
private Integer pageMaxSize; private Integer pageMaxSize;
private String field;
private String order;
public Integer getPageIndex() { public Integer getPageIndex() {
return pageNum; return pageNum;
...@@ -74,6 +78,22 @@ public class BasePage { ...@@ -74,6 +78,22 @@ public class BasePage {
this.pageIndex = pageNum; this.pageIndex = pageNum;
} }
public String getField() {
return field;
}
public void setField(String field) {
this.field = field;
}
public String getOrder() {
return order;
}
public void setOrder(String order) {
this.order = order;
}
@Override @Override
public String toString() { public String toString() {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
......
...@@ -6,7 +6,7 @@ import javax.validation.constraints.NotNull; ...@@ -6,7 +6,7 @@ import javax.validation.constraints.NotNull;
/** /**
* @ClassName OpRegionalEconomicDataV1Dto * @ClassName OpRegionalEconomicDataV1Dto
* @Description 专项债-项目类别统计 * @Description 地区经济
* @Author Dgm * @Author Dgm
* @Date 2023/5/23 14:05 * @Date 2023/5/23 14:05
* @Version * @Version
......
package com.dsk.common.dtos;
import lombok.Data;
import java.util.List;
/**
* @ClassName OpRegionalEconomicRegionalCompareDto
* @Description 地区经济-对比
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public class OpRegionalEconomicRegionalCompareDto {
/**
* 年份
*/
private Integer year;
private List<OpRegionalEconomicDataStatisticsRegionalDto> compareList;
}
...@@ -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;
}
} }
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -343,6 +343,11 @@ ul, li { ...@@ -343,6 +343,11 @@ ul, li {
} }
} }
} }
.el-table__fixed{
tr:nth-child(2n){
background-color: #F8FBFF;
}
}
} }
} }
......
...@@ -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;
......
...@@ -58,7 +58,7 @@ export default { ...@@ -58,7 +58,7 @@ export default {
}, },
methods: { methods: {
async logout() { async logout() {
this.$confirm('确定注销并退出系统吗?', '提示', { this.$confirm('确定退出系统吗?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
......
...@@ -99,7 +99,7 @@ export const constantRoutes = [ ...@@ -99,7 +99,7 @@ export const constantRoutes = [
path: '/enterprise/:id', path: '/enterprise/:id',
component: () => import('@/views/detail/party-a/index'), component: () => import('@/views/detail/party-a/index'),
name: 'PartyA', name: 'PartyA',
meta: { title: '甲方详情' }, meta: { title: '甲方详情', icon: 'enterprise' },
} }
] ]
}, },
...@@ -113,7 +113,7 @@ export const constantRoutes = [ ...@@ -113,7 +113,7 @@ export const constantRoutes = [
path: '/company/:id', path: '/company/:id',
component: () => import('@/views/detail/party-b/index'), component: () => import('@/views/detail/party-b/index'),
name: 'Company', name: 'Company',
meta: { title: '方详情' } meta: { title: '方详情' }
} }
] ]
}, },
......
<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,6 +471,9 @@ export default { ...@@ -463,6 +471,9 @@ export default {
}, },
//输入数字 //输入数字
number(value){ number(value){
if(value == '')
this.queryParam.registerCapital = value
else
this.queryParam.registerCapital = value.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1')//输入6位小数 this.queryParam.registerCapital = value.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1')//输入6位小数
} }
} }
......
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
<!-- 输入框 --> <!-- 输入框 -->
<template v-if="form.type==3"> <template v-if="form.type==3">
<div class="cooperate-name"> <div class="cooperate-name">
<el-input @focus="clickFocus('detailFocus'+i)" @blur="clickFocus('detailFocus'+i)" v-model="form.value" :placeholder="form.placeholder"></el-input> <el-input @focus="clickFocus('detailFocus'+i)" @blur="clickFocus('detailFocus'+i)" v-model="form.value" :placeholder="form.placeholder" :style="form.width?'width:'+form.width+'px':'width:180px'"></el-input>
<span :id="'detailFocus'+i" @click="changeSelect">搜索</span> <span :id="'detailFocus'+i" @click="changeSelect">搜索</span>
</div> </div>
</template> </template>
...@@ -197,7 +197,6 @@ export default { ...@@ -197,7 +197,6 @@ export default {
::v-deep .el-input__inner { ::v-deep .el-input__inner {
border-right: 0; border-right: 0;
border-radius: 2px 0 2px 0; border-radius: 2px 0 2px 0;
width: 180px;
} }
} }
.fromTime{ .fromTime{
......
...@@ -28,14 +28,14 @@ ...@@ -28,14 +28,14 @@
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>
<!-- 输入框 --> <!-- 输入框 -->
<template v-if="form.type==3"> <template v-if="form.type==3">
<div class="cooperate-name"> <div class="cooperate-name">
<el-input clearable @clear="changeSelect" @focus="clickFocus('focus'+i)" @blur="clickFocus('focus'+i)" v-model="form.value" :placeholder="form.placeholder"></el-input> <el-input clearable @clear="changeSelect" @focus="clickFocus('focus'+i)" @blur="clickFocus('focus'+i)" v-model="form.value" :placeholder="form.placeholder" :style="form.width?'width:'+form.width+'px':'width:180px'"></el-input>
<span :id="'focus'+i" @click="changeSelect">搜索</span> <span :id="'focus'+i" @click="changeSelect">搜索</span>
</div> </div>
</template> </template>
...@@ -230,7 +230,6 @@ export default { ...@@ -230,7 +230,6 @@ export default {
} }
::v-deep .el-input__inner { ::v-deep .el-input__inner {
border-radius: 2px 0 2px 0; border-radius: 2px 0 2px 0;
width: 180px;
border: 1px solid #D9D9D9; border: 1px solid #D9D9D9;
border-right: 0; border-right: 0;
} }
......
...@@ -2,8 +2,9 @@ ...@@ -2,8 +2,9 @@
<div class="header-container"> <div class="header-container">
<div class="bread-crumb"> <div class="bread-crumb">
<el-breadcrumb separator="/"> <el-breadcrumb separator="/">
<el-breadcrumb-item :to="{ path: '/enterpriseData' }">企业数据</el-breadcrumb-item> <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
<el-breadcrumb-item :to="{ path: '/enterpriseData?tag=1' }">查企业</el-breadcrumb-item> <el-breadcrumb-item :to="{ path: fromPath }" v-if="fromName">{{fromName}}</el-breadcrumb-item>
<!-- <el-breadcrumb-item :to="{ path: '/enterpriseData?tag=1' }">查企业</el-breadcrumb-item>-->
<el-breadcrumb-item>{{companyInfo.simpleName || companyInfo.companyName || '--'}}</el-breadcrumb-item> <el-breadcrumb-item>{{companyInfo.simpleName || companyInfo.companyName || '--'}}</el-breadcrumb-item>
</el-breadcrumb> </el-breadcrumb>
</div> </div>
...@@ -17,7 +18,7 @@ ...@@ -17,7 +18,7 @@
<script> <script>
export default { export default {
name: 'Header', name: 'Header',
props: ['companyId', 'companyInfo'], props: ['companyId', 'companyInfo', 'fromPath', 'fromName'],
data() { data() {
return { return {
} }
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<el-table-column <el-table-column
v-if="isIndex" v-if="isIndex"
label="序号" label="序号"
width="50" :width="flexWidth(tableData)"
align="left" align="left"
:fixed="indexFixed" :fixed="indexFixed"
:resizable="false"> :resizable="false">
...@@ -112,7 +112,6 @@ export default { ...@@ -112,7 +112,6 @@ export default {
}, },
data() { data() {
return { return {
} }
}, },
methods:{ methods:{
...@@ -124,6 +123,14 @@ export default { ...@@ -124,6 +123,14 @@ export default {
}, },
sortChange(e){ sortChange(e){
this.$emit('sort-change',e) this.$emit('sort-change',e)
},
flexWidth(tableData) {
let currentMax = this.queryParams.pageNum*this.queryParams.pageSize - this.queryParams.pageSize + tableData.length, wdth = 50
// return currentMax.toString().length*25 + 'px'
if(currentMax.toString().length>3){
wdth = wdth + (currentMax.toString().length-3)*10
}
return wdth+'px'
} }
} }
} }
...@@ -136,4 +143,43 @@ export default { ...@@ -136,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){
......
...@@ -63,7 +63,7 @@ export default { ...@@ -63,7 +63,7 @@ export default {
pageSize: 20 pageSize: 20
}, },
formData: [ formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入合作项目/工程名称查询', options: []}, { type: 3, fieldName: 'keys', value: '', placeholder: '输入合作项目/工程名称查询', options: [], width: 260},
], ],
forData: [ forData: [
{label: '合作项目/工程名称', prop: 'dealTitle', width: '720', slot: true}, {label: '合作项目/工程名称', prop: 'dealTitle', width: '720', slot: true},
......
...@@ -68,7 +68,7 @@ export default { ...@@ -68,7 +68,7 @@ export default {
pageSize: 20 pageSize: 20
}, },
formData: [ formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入合作项目/工程名称查询', options: []}, { type: 3, fieldName: 'keys', value: '', placeholder: '输入合作项目/工程名称查询', options: [], width: 260},
], ],
forData: [ forData: [
{label: '合作项目/工程名称', prop: 'projectAllName', width: '720', fixed: true, slot: true}, {label: '合作项目/工程名称', prop: 'projectAllName', width: '720', fixed: true, slot: true},
......
<template> <template>
<div class="app-container part-container"> <div class="app-container part-container">
<Header :company-id="companyId" :companyInfo="companyInfo" v-if="companyId" /> <Header :company-id="companyId" :companyInfo="companyInfo" :fromPath="fromPath" :fromName="fromName" v-if="companyId" />
<div class="flex-box part-main"> <div class="flex-box part-main">
<div class="part-left"> <div class="part-left">
<side-bar @currentPath="showPartPage" :pathName="currentPath.pathName" :partBoxHeight="partBoxHeight" :customerId="customerId" /> <side-bar @currentPath="showPartPage" :pathName="currentPath.pathName" :partBoxHeight="partBoxHeight" :customerId="customerId" />
...@@ -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" />
<!-- 跟进记录 --> <!-- 跟进记录 -->
...@@ -147,9 +147,17 @@ export default { ...@@ -147,9 +147,17 @@ export default {
currentPath: { currentPath: {
pathName: 'overview' //默认展示页 pathName: 'overview' //默认展示页
}, },
partBoxHeight: null partBoxHeight: null,
fromPath: '',
fromName: ''
} }
}, },
beforeRouteEnter(to, from, next) {
next(vm => {
vm.fromPath = from.path
vm.fromName = from.meta.title
})
},
created() { created() {
if (this.$route.params.id) { // 获取companyId if (this.$route.params.id) { // 获取companyId
let companyId = this.$route.params.id let companyId = this.$route.params.id
......
...@@ -54,7 +54,7 @@ export default { ...@@ -54,7 +54,7 @@ export default {
{label: '专项债用作资本金(亿元)', prop: 'specialBondCapital', sortable: 'custom', descending: '19', ascending: '20', width: '200'} {label: '专项债用作资本金(亿元)', prop: 'specialBondCapital', sortable: 'custom', descending: '19', ascending: '20', width: '200'}
], ],
formData: [ formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: []}, { type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: [], width: 220},
], ],
//列表 //列表
tableLoading:false, tableLoading:false,
......
...@@ -60,7 +60,7 @@ export default { ...@@ -60,7 +60,7 @@ export default {
], ],
formData: [ formData: [
{ type: 4, fieldName: 'landUse', value: '', placeholder: '土地用途', options: []}, { type: 4, fieldName: 'landUse', value: '', placeholder: '土地用途', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: []} { type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: [], width: 220}
], ],
//列表 //列表
tableLoading:false, tableLoading:false,
......
...@@ -60,7 +60,7 @@ export default { ...@@ -60,7 +60,7 @@ export default {
{label: '是否为民间推介项目', prop: 'isProjcet', width: '150', slot: true} {label: '是否为民间推介项目', prop: 'isProjcet', width: '150', slot: true}
], ],
formData: [ formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: []}, { type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: [], width: 220},
], ],
//列表 //列表
tableLoading:false, tableLoading:false,
......
...@@ -56,6 +56,7 @@ export default { ...@@ -56,6 +56,7 @@ export default {
}, },
forData: [ forData: [
{label: '项目名称', prop: 'projectName', minWidth: '320', slot: true}, {label: '项目名称', prop: 'projectName', minWidth: '320', slot: true},
{label: '发布日期', prop: 'pubdate', width: '110'},
{label: '金额(万元)', prop: '', children: [ {label: '金额(万元)', prop: '', children: [
{ label: '建安费暂估', prop: 'projectSafeAmount', width: '88px'}, { label: '建安费暂估', prop: 'projectSafeAmount', width: '88px'},
{ label: '勘察费暂估', prop: 'projectSurveyAmount', width: '88px'}, { label: '勘察费暂估', prop: 'projectSurveyAmount', width: '88px'},
...@@ -74,8 +75,7 @@ export default { ...@@ -74,8 +75,7 @@ export default {
{label: '分部分项', prop: 'projectSub', width: '130'}, {label: '分部分项', prop: 'projectSub', width: '130'},
{label: '项目级别', prop: 'projectLevel', width: '130'}, {label: '项目级别', prop: 'projectLevel', width: '130'},
{label: '评标办法', prop: 'bidAssessmentWay', width: '130'}, {label: '评标办法', prop: 'bidAssessmentWay', width: '130'},
{label: '项目属地', prop: 'province', width: '130', slot: true}, {label: '项目属地', prop: 'province', width: '130', slot: true}
{label: '发布日期', prop: 'pubdate', width: '130'}
], ],
formData: [ formData: [
{ type: 1, fieldName: 'projectType', value: '', placeholder: '项目类别', options: []}, { type: 1, fieldName: 'projectType', value: '', placeholder: '项目类别', options: []},
...@@ -131,6 +131,13 @@ export default { ...@@ -131,6 +131,13 @@ export default {
this.tableLoading = false this.tableLoading = false
if(res.code==200){ if(res.code==200){
this.tableData = res.rows this.tableData = res.rows
if(this.tableData&&this.tableData.length>0){
this.tableData.forEach(item => {
item.projectSafeAmount ? item.projectSafeAmount = parseFloat(parseFloat(item.projectSafeAmount).toFixed(4)) : ''
item.projectSurveyAmount ? item.projectSurveyAmount = parseFloat(parseFloat(item.projectSurveyAmount).toFixed(4)) : ''
item.projectEnsureAmount ? item.projectEnsureAmount = parseFloat(parseFloat(item.projectEnsureAmount).toFixed(4)) : ''
})
}
} }
this.tableDataTotal = res.total this.tableDataTotal = res.total
} }
......
<template> <template xmlns="http://www.w3.org/1999/html">
<div class="app-container detail-container"> <div class="app-container detail-container">
<el-tabs v-model="activeName" @tab-click="handleClick" class="detail-tab"> <el-tabs v-model="activeName" @tab-click="handleClick" class="detail-tab">
<el-tab-pane label="工商信息" name="first"></el-tab-pane> <el-tab-pane label="工商信息" name="first"></el-tab-pane>
...@@ -10,6 +10,22 @@ ...@@ -10,6 +10,22 @@
<template slot="provinceCode" slot-scope="scope"> <template slot="provinceCode" slot-scope="scope">
<span>{{showRegion(scope.data.provinceCode)}}</span> <span>{{showRegion(scope.data.provinceCode)}}</span>
</template> </template>
<template slot="term" slot-scope="scope">
<span v-if="scope.data.termStart&&scope.data.termEnd">{{ scope.data.termStart }} ~ {{ scope.data.termEnd }}</span>
<span v-else-if="scope.data.termStart&&!scope.data.termEnd">{{ scope.data.termStart }}</span>
<span v-else-if="!scope.data.termStart&&scope.data.termEnd">{{ scope.data.termEnd }}</span>
<span v-else>--</span>
</template>
<template slot="actualCapi" slot-scope="scope">
<span>
{{ scope.data.actualCapi?scope.data.actualCapi+'万元人民币':'--' }}
</span>
</template>
<template slot="colleguesNum" slot-scope="scope">
<span>
{{ scope.data.colleguesNum?scope.data.colleguesNum+'人':'--' }}
</span>
</template>
</info-table> </info-table>
<tables <tables
:tableLoading="tableLoading" :tableLoading="tableLoading"
...@@ -53,18 +69,18 @@ export default { ...@@ -53,18 +69,18 @@ export default {
{ name: '登记状态', prop: 'status' }, { name: '登记状态', prop: 'status' },
{ name: '成立日期', prop: 'startDate' }, { name: '成立日期', prop: 'startDate' },
{ name: '注册资本', prop: 'registCapi' }, { name: '注册资本', prop: 'registCapi' },
{ name: '实缴资本', prop: 'actualCapi' }, { name: '实缴资本', prop: 'actualCapi', slot: true },
{ name: '核准日期', prop: 'checkDate' }, { name: '核准日期', prop: 'checkDate' },
{ name: '组织机构代码', prop: 'orgNo' }, { name: '组织机构代码', prop: 'orgNo' },
{ name: '工商注册号', prop: 'regNo' }, { name: '工商注册号', prop: 'regNo' },
{ name: '纳税人识别号', prop: 'creditNo' }, { name: '纳税人识别号', prop: 'creditNo' },
{ name: '企业类型', prop: 'econKind' }, { name: '企业类型', prop: 'econKind' },
{ name: '营业期限', prop: 'termEnd' }, { name: '营业期限', prop: 'term', slot: true },
{ name: '纳税人资质', prop: 'qualification' }, { name: '纳税人资质', prop: 'qualification' },
{ name: '所属地区', prop: 'provinceCode', slot: true }, { name: '所属地区', prop: 'provinceCode', slot: true },
{ name: '登记机关', prop: 'belongOrg' }, { name: '登记机关', prop: 'belongOrg' },
{ name: '人员规模', prop: 'colleguesNum' }, { name: '人员规模', prop: 'colleguesNum', slot: true },
{ name: '参保人数', prop: 'colleguesNum' }, { name: '参保人数', prop: 'colleguesNum', slot: true },
{ name: '经营范围', prop: 'scope', style: true } { name: '经营范围', prop: 'scope', style: true }
], ],
forData: [ forData: [
......
...@@ -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>
......
...@@ -13,10 +13,11 @@ export default { ...@@ -13,10 +13,11 @@ export default {
data() { data() {
return { return {
loading: false, // 是否加载中 loading: false, // 是否加载中
navHeight: 68, // iframe距离顶部距离px
iframeHight: window.innerHeight, // iframe高度 iframeHight: window.innerHeight, // iframe高度
scrollTop: 0, // 滚动条距离内部页面顶部距离 scrollTop: 0, // 滚动条距离内部页面顶部距离
// domain: 'https://pre-plug.jiansheku.com', domain: 'https://pre-plug.jiansheku.com',
domain: 'http://192.168.60.30:3300', // domain: 'http://192.168.60.30:3300',
ak: 'aec7b3ff2y2q8x6t49a7e2c463ce21912' // 需要携带的sdkId ak: 'aec7b3ff2y2q8x6t49a7e2c463ce21912' // 需要携带的sdkId
} }
}, },
...@@ -28,7 +29,7 @@ export default { ...@@ -28,7 +29,7 @@ export default {
this.src = `${this.domain}/enterprise/${this.$route.params.id}?ak=${this.ak}` this.src = `${this.domain}/enterprise/${this.$route.params.id}?ak=${this.ak}`
} }
if(this.$route.name=='Personnel'){ //人员详情 if(this.$route.name=='Personnel'){ //人员详情
this.src = `${this.domain}/personnel/${this.$route.params.id}.html?ak=${this.ak}&referrer=true` this.src = `${this.domain}/personnel/${this.$route.params.id}.html?ak=${this.ak}`
} }
} }
}, },
...@@ -53,7 +54,7 @@ export default { ...@@ -53,7 +54,7 @@ export default {
} }
// 点击栏目名及子标签动态设置滚动高度 // 点击栏目名及子标签动态设置滚动高度
if (data.scrollHeight) { if (data.scrollHeight) {
window.scrollTo(sc, parseInt(data.scrollHeight) + 83) window.scrollTo(sc, parseInt(data.scrollHeight) + _this.navHeight + 15)
} }
// 点击下拉子标签动态设置滚动高度 // 点击下拉子标签动态设置滚动高度
if (data.clientHeight) { if (data.clientHeight) {
...@@ -69,7 +70,7 @@ export default { ...@@ -69,7 +70,7 @@ export default {
// 准备传值 // 准备传值
this.$nextTick(() => { this.$nextTick(() => {
const ifa = this.$refs.companyIframe const ifa = this.$refs.companyIframe
ifa.contentWindow.postMessage({ 'scrollTop': this.scrollTop }, '*') ifa.contentWindow.postMessage({ 'scrollTop': this.scrollTop, 'navHeight': this.navHeight }, '*')
}) })
} }
} }
......
...@@ -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 => {
if(res.data){
this.tableData.splice(index-1,1,res.data) this.tableData.splice(index-1,1,res.data)
this.$forceUpdate(); 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({}).then(res => {
this.province=res.data.currentProvince.regionName; this.province=res.data.province;
this.provinceId=res.data.currentProvince.id;
if(!this.dataQuery.provinceId){ if(!this.dataQuery.provinceId){
this.dataQuery.provinceId=this.provinceId this.dataQuery.provinceId=res.data.provinceId
this.dataQuery.province=this.province this.dataQuery.province=this.province;
this.provinceId.push(res.data.provinceId)
}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 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" /> <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;
}
}
} }
} }
} }
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
border border
:summary-method="getSummaries" :summary-method="getSummaries"
show-summary show-summary
height="360" height="400"
fit fit
@sort-change="sortChange" @sort-change="sortChange"
highlight-current-row highlight-current-row
...@@ -170,13 +170,15 @@ export default { ...@@ -170,13 +170,15 @@ export default {
orient: 'horizontal', orient: 'horizontal',
bottom: 0, bottom: 0,
data: data, data: data,
itemHeight:8,
itemWidth:12,
pageButtonPosition: 'end', pageButtonPosition: 'end',
}, },
series: [ series: [
{ {
type: 'pie', type: 'pie',
radius: '55%', radius: '55%',
center: ['50%', '40%'], center: ['50%', '50%'],
data: data, data: data,
emphasis: { emphasis: {
itemStyle: { itemStyle: {
...@@ -318,6 +320,11 @@ export default { ...@@ -318,6 +320,11 @@ export default {
} }
.table-item{ .table-item{
margin-top: 22px; margin-top: 22px;
::v-deep .el-table{
td.el-table__cell{
border-bottom: 0;
}
}
} }
} }
</style> </style>
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<span class="common-title">全国经济大全</span> <span class="common-title">全国经济大全</span>
<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="请选择年度" @change="handleSearch"> <el-select v-model="queryParams.year" filterable class="form-content-width" placeholder="请选择" @change="handleSearch">
<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" />
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -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() {
...@@ -310,6 +316,9 @@ ...@@ -310,6 +316,9 @@
.el-form{ .el-form{
margin-left: 24px; margin-left: 24px;
} }
.form-content-width{
width: 110px;
}
::v-deep .el-cascader{ ::v-deep .el-cascader{
.el-cascader__tags{ .el-cascader__tags{
flex-wrap: inherit; flex-wrap: inherit;
...@@ -324,7 +333,34 @@ ...@@ -324,7 +333,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;
...@@ -333,18 +369,12 @@ ...@@ -333,18 +369,12 @@
.el-table__fixed-header-wrapper th{ .el-table__fixed-header-wrapper th{
background: #F0F3FA; background: #F0F3FA;
} }
td.el-table__cell{
border-bottom: 0;
}
.caret-wrapper{ .caret-wrapper{
width: 10px; width: 10px;
/*<!--position: absolute;-->*/ }
/*<!--right: 12px;-->*/
/*<!--top: -3px;-->*/
}
/*.sort-caret{*/
/*position: initial;*/
/*}*/
/*.ascending{*/
/*margin-bottom: 3px;*/
/*}*/
} }
} }
} }
......
...@@ -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()
}) })
}, },
...@@ -377,7 +377,7 @@ export default { ...@@ -377,7 +377,7 @@ export default {
let option ={ let option ={
legend: { legend: {
x:'right', x:'right',
padding:[0,120,0,0], padding:[0,30,0,0],
}, },
tooltip: { tooltip: {
trigger: 'axis', trigger: 'axis',
......
...@@ -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"
...@@ -161,7 +162,7 @@ ...@@ -161,7 +162,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="city" label="区域" :formatter="formatStatus" width="150"> <el-table-column prop="city" label="区域" :formatter="formatStatus" width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<router-link :to="{path:'/macro/economies',query:{id:scope.row.id,provinceId:scope.row.provinceId}}" tag="a" class="a-link"> <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}} {{ scope.row.province}}{{scope.row.city ? '-': ''}}{{ scope.row.city}}{{scope.row.area ? '-': ''}}{{ scope.row.area}}
</router-link> </router-link>
<!--<span v-else>-</span>--> <!--<span v-else>-</span>-->
...@@ -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 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" /> <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">
...@@ -146,6 +146,7 @@ ...@@ -146,6 +146,7 @@
//添加客户 //添加客户
submitForm(formName) { submitForm(formName) {
this.queryParam.userId = this.$store.state.user.userId this.queryParam.userId = this.$store.state.user.userId
this.queryParam.investmentAmount = parseFloat(this.queryParam.investmentAmount)
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (valid) {
addProject(this.queryParam).then(result=>{ addProject(this.queryParam).then(result=>{
...@@ -178,7 +179,7 @@ ...@@ -178,7 +179,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
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<div class="cardtitles" v-if="showtype != 'projectgjdt'">跟进记录</div> <div class="cardtitles" v-if="showtype != 'projectgjdt'">跟进记录</div>
<div style="height: 24px" v-if="showtype == 'projectgjdt'"></div> <div style="height: 24px" v-if="showtype == 'projectgjdt'"></div>
<div class="records"> <div class="records">
<div class="writeIn"> <div class="writeIn" v-if="isDisabled == false">
<div class="default" v-if="isEdit == false" @click="getEdit"> <div class="default" v-if="isEdit == false" @click="getEdit">
<img src="@/assets/images/project/add_3.png"> <img src="@/assets/images/project/add_3.png">
<div>新建一条跟进记录,如:周五上午预约客户上门拜访</div> <div>新建一条跟进记录,如:周五上午预约客户上门拜访</div>
...@@ -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>
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
</el-input> </el-input>
</div> </div>
<div class="times"><img src="@/assets/images/project/ico_4.png"> <div class="times"><img src="@/assets/images/project/ico_4.png">
<el-date-picker class="w128" <el-date-picker class="w128" value-format="yyyy-MM-dd"
v-model="addParam.nextVisitTime" v-model="addParam.nextVisitTime"
type="date" type="date"
placeholder="下次拜访时间"> placeholder="下次拜访时间">
...@@ -91,7 +91,7 @@ ...@@ -91,7 +91,7 @@
<div class="rec_time"> <div class="rec_time">
<i class="el-icon-time"></i> <i class="el-icon-time"></i>
<div>{{item.creatTime}}</div> <div>{{item.creatTime}}</div>
<div class="operate"> <div class="operate" v-if="isDisabled == false">
<!--<img src="@/assets/images/edit.png">第一期不做编辑--> <!--<img src="@/assets/images/edit.png">第一期不做编辑-->
<img @click="delRecord(item.id)" src="@/assets/images/delete.png"> <img @click="delRecord(item.id)" src="@/assets/images/delete.png">
</div> </div>
...@@ -145,6 +145,7 @@ ...@@ -145,6 +145,7 @@
default: 0 default: 0
}, },
datas:[],//数据源 datas:[],//数据源
isDisabled:false,
}, },
name: 'gjjl', name: 'gjjl',
data(){ data(){
...@@ -171,11 +172,13 @@ ...@@ -171,11 +172,13 @@
projectId:this.detailId ? this.detailId : parseInt(this.$route.query.id),//项目详情id projectId:this.detailId ? this.detailId : parseInt(this.$route.query.id),//项目详情id
userId:this.$store.state.user.userId,//当前用户id userId:this.$store.state.user.userId,//当前用户id
projectList:[],//关联项目 projectList:[],//关联项目
isDisabled:this.isDisabled,
} }
}, },
computed: { computed: {
}, },
created(){ created(){
console.log(this.isDisabled)
//获取拜访方式 //获取拜访方式
getDictType('visit_mode_type').then(result=>{ getDictType('visit_mode_type').then(result=>{
this.bffslist = result.code == 200 ? result.data:[] this.bffslist = result.code == 200 ? result.data:[]
...@@ -183,6 +186,7 @@ ...@@ -183,6 +186,7 @@
this.showtype = this.types this.showtype = this.types
//客户管理跟进动态 //客户管理跟进动态
if(this.showtype == 'gjdt'){ if(this.showtype == 'gjdt'){
this.isDisabled = false
getUserList().then(result=>{ getUserList().then(result=>{
this.glqylist = result.data this.glqylist = result.data
}) })
...@@ -194,6 +198,7 @@ ...@@ -194,6 +198,7 @@
} }
//项目管理跟进动态 //项目管理跟进动态
if(this.showtype == 'projectgjdt'){ if(this.showtype == 'projectgjdt'){
this.isDisabled = false
this.projectId = null//项目id暂时清空,必须手选id this.projectId = null//项目id暂时清空,必须手选id
relateProject(this.userId).then(res=>{ relateProject(this.userId).then(res=>{
this.projectList = res.data this.projectList = res.data
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<el-card class="box-card noborder"> <el-card class="box-card noborder">
<div class="cardtitles">工作待办</div> <div class="cardtitles">工作待办</div>
<div class="records"> <div class="records">
<div class="writeIn"> <div class="writeIn" v-if="isDisabled == false">
<div class="default" v-if="isEdit == false" @click="getEdit"> <div class="default" v-if="isEdit == false" @click="getEdit">
<img src="@/assets/images/project/add_3.png"> <img src="@/assets/images/project/add_3.png">
<div>新建一条工作代办,如:周五上午预约客户上门拜访</div> <div>新建一条工作代办,如:周五上午预约客户上门拜访</div>
...@@ -15,15 +15,17 @@ ...@@ -15,15 +15,17 @@
</div> </div>
<div class="wr_bot"> <div class="wr_bot">
<div class="times"><img src="@/assets/images/project/ico_4.png"> <div class="times"><img src="@/assets/images/project/ico_4.png">
<el-date-picker <el-date-picker value-format="yyyy-MM-dd"
v-model="queryParam.finishTime" v-model="queryParam.finishTime"
type="date" type="date"
placeholder="完成时间"> placeholder="完成时间">
</el-date-picker> </el-date-picker>
</div> </div>
<div class="sels">
<img src="@/assets/images/project/ico_2.png">
<el-input v-model="queryParam.target" placeholder="拜访对象" style="width: 100px;"> <el-input v-model="queryParam.target" placeholder="拜访对象" style="width: 100px;">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_2.png"></i>
</el-input> </el-input>
</div>
<div class="btn btn_primary h32 wc" @click="add" :disabled="queryParam.task == ''" :class="{'btn_disabled':queryParam.task == ''}">完成</div> <div class="btn btn_primary h32 wc" @click="add" :disabled="queryParam.task == ''" :class="{'btn_disabled':queryParam.task == ''}">完成</div>
</div> </div>
</div> </div>
...@@ -34,11 +36,11 @@ ...@@ -34,11 +36,11 @@
<div class="task_con"><span>发起时间:{{item.createTime}}</span><span v-if="item.target">关联客户:<font class="wordprimary">{{item.target}}</font></span><span v-if="item.finishTime">完成时间:{{item.finishTime}}</span></div> <div class="task_con"><span>发起时间:{{item.createTime}}</span><span v-if="item.target">关联客户:<font class="wordprimary">{{item.target}}</font></span><span v-if="item.finishTime">完成时间:{{item.finishTime}}</span></div>
<div class="select" :class="{'on':item.state == 2}"> <div class="select" :class="{'on':item.state == 2}">
<div class="select-popper"> <div class="select-popper">
<span class="color_text"> <span>
{{item.state == 2?"已完成":"未完成"}} {{item.state == 2?"已完成":"未完成"}}
<i class="el-icon-caret-bottom"></i> <i class="el-icon-caret-bottom"></i>
</span> </span>
<el-select placeholder="请选择" v-model="item.state" class="select-multiple" @change="changes(item.id,$event)"> <el-select v-if="isDisabled == false" placeholder="请选择" v-model="item.state" class="select-multiple" @change="changes(item.id,$event)">
<el-option label="未完成" value="1"></el-option> <el-option label="未完成" value="1"></el-option>
<el-option label="已完成" value="2"></el-option> <el-option label="已完成" value="2"></el-option>
</el-select> </el-select>
...@@ -73,7 +75,8 @@ ...@@ -73,7 +75,8 @@
detailId: { //从企业详情跳转过来ID detailId: { //从企业详情跳转过来ID
type: Number, type: Number,
default: 0 default: 0
} },
isDisabled:false,
}, },
data(){ data(){
return{ return{
...@@ -94,6 +97,7 @@ ...@@ -94,6 +97,7 @@
}, },
datalist:[], datalist:[],
yqnum:0,//已逾期数量 yqnum:0,//已逾期数量
isDisabled:this.isDisabled,
} }
}, },
created(){ created(){
...@@ -109,6 +113,9 @@ ...@@ -109,6 +113,9 @@
if(result.code == 200){ if(result.code == 200){
this.$message.success("添加成功!") this.$message.success("添加成功!")
this.getList() this.getList()
this.queryParam.target = ''
this.queryParam.task = ''
this.queryParam.finishTime = ''
}else{ }else{
this.$message.error(result.msg) this.$message.error(result.msg)
} }
...@@ -162,4 +169,7 @@ ...@@ -162,4 +169,7 @@
width: 100px; width: 100px;
margin-right: 12px; margin-right: 12px;
} }
.times .el-input__icon >img{
width: 16px;
}
</style> </style>
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<div class="con"> <div class="con">
<span>总投资额(万元) :</span> <span>总投资额(万元) :</span>
<div class="inputxt" id="inputxt1"> <div class="inputxt" id="inputxt1">
<div class="flex" v-if="nowedit == 1"> <div class="flex" v-if="nowedit == 1 && isDisabled == false">
<el-input placeholder="待添加" v-model="investmentAmount" @input="number"></el-input> <el-input placeholder="待添加" v-model="investmentAmount" @input="number"></el-input>
<div class="flex"> <div class="flex">
<div class="btnsmall btn_primary h28" style="width: 56px" @click="changes({'investmentAmount':investmentAmount})">确定</div> <div class="btnsmall btn_primary h28" style="width: 56px" @click="changes({'investmentAmount':investmentAmount})">确定</div>
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<div class="con i"> <div class="con i">
<span>资金来源 :</span> <span>资金来源 :</span>
<div class="inputxt" id="inputxt2"> <div class="inputxt" id="inputxt2">
<div class="flex" v-if="nowedit == 2"> <div class="flex" v-if="nowedit == 2 && isDisabled == false">
<el-input placeholder="待添加" v-model="amountSource"></el-input> <el-input placeholder="待添加" v-model="amountSource"></el-input>
<div class="flex"> <div class="flex">
<div class="btnsmall btn_primary h28" @click="changes({'amountSource':amountSource})" style="width: 56px">确定</div> <div class="btnsmall btn_primary h28" @click="changes({'amountSource':amountSource})" style="width: 56px">确定</div>
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
<div class="con"> <div class="con">
<span>建设性质 :</span> <span>建设性质 :</span>
<div class="inputxt" id="inputxt3"> <div class="inputxt" id="inputxt3">
<div class="flex" v-if="nowedit == 3"> <div class="flex" v-if="nowedit == 3 && isDisabled == false">
<el-input placeholder="待添加" v-model="buildProperty"></el-input> <el-input placeholder="待添加" v-model="buildProperty"></el-input>
<div class="flex"> <div class="flex">
<div class="btnsmall btn_primary h28" @click="changes({'buildProperty':buildProperty})" style="width: 56px">确定</div> <div class="btnsmall btn_primary h28" @click="changes({'buildProperty':buildProperty})" style="width: 56px">确定</div>
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
<span>计划招标 :</span> <span>计划招标 :</span>
<div class="inputime"> <div class="inputime">
<div class="flex" style=""> <div class="flex" style="">
<el-date-picker class="timeinput" <el-date-picker class="timeinput" v-if="isDisabled == false"
v-model="planBidTime" v-model="planBidTime"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
<span>计划开工 :</span> <span>计划开工 :</span>
<div class="inputime"> <div class="inputime">
<div class="flex" style="opacity: 0;height: 0"> <div class="flex" style="opacity: 0;height: 0">
<el-date-picker class="timeinput" <el-date-picker class="timeinput" v-if="isDisabled == false"
v-model="planStartTime" v-model="planStartTime"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
...@@ -80,7 +80,7 @@ ...@@ -80,7 +80,7 @@
<span>计划竣工 :</span> <span>计划竣工 :</span>
<div class="inputime"> <div class="inputime">
<div class="flex" style="opacity: 0;height: 0"> <div class="flex" style="opacity: 0;height: 0">
<el-date-picker class="timeinput" <el-date-picker class="timeinput" v-if="isDisabled == false"
v-model="planCompleteTime" v-model="planCompleteTime"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
...@@ -96,7 +96,7 @@ ...@@ -96,7 +96,7 @@
<el-card class="box-card noborder"> <el-card class="box-card noborder">
<div class="cardtitles">项目概况与建设规模</div> <div class="cardtitles">项目概况与建设规模</div>
<div class="baseinfo" > <div class="baseinfo" >
<el-input id="inputxt9" v-model="projectDetails" @focus="nowedit = 9" class="textarea" type="textarea" placeholder="请输入项目概况与建设规模详细信息" maxlength="500" :show-word-limit="true" ></el-input> <el-input id="inputxt9" :disabled="isDisabled" v-model="projectDetails" @focus="nowedit = 9" class="textarea" type="textarea" placeholder="请输入项目概况与建设规模详细信息" maxlength="500" :show-word-limit="true" ></el-input>
<div class="flex btns" v-if="nowedit == 9"> <div class="flex btns" v-if="nowedit == 9">
<div class="flex"> <div class="flex">
<div class="btnsmall btn_primary h28" @click="changes({'projectDetails':projectDetails})" style="width: 56px">确定</div> <div class="btnsmall btn_primary h28" @click="changes({'projectDetails':projectDetails})" style="width: 56px">确定</div>
...@@ -112,7 +112,7 @@ ...@@ -112,7 +112,7 @@
<div class="con"> <div class="con">
<span>评标办法 :</span> <span>评标办法 :</span>
<div class="inputxt" id="inputxt4"> <div class="inputxt" id="inputxt4">
<div class="flex" v-if="nowedit == 4"> <div class="flex" v-if="nowedit == 4 && isDisabled == false">
<el-input placeholder="待添加" v-model="evaluationBidWay"></el-input> <el-input placeholder="待添加" v-model="evaluationBidWay"></el-input>
<div class="flex"> <div class="flex">
<div class="btnsmall btn_primary h28" @click="changes({'evaluationBidWay':evaluationBidWay})" style="width: 56px">确定</div> <div class="btnsmall btn_primary h28" @click="changes({'evaluationBidWay':evaluationBidWay})" style="width: 56px">确定</div>
...@@ -126,7 +126,7 @@ ...@@ -126,7 +126,7 @@
<span>开标时间 :</span> <span>开标时间 :</span>
<div class="inputime"> <div class="inputime">
<div class="flex" style="opacity: 0;height: 0"> <div class="flex" style="opacity: 0;height: 0">
<el-date-picker class="timeinput" <el-date-picker class="timeinput" v-if="isDisabled == false"
v-model="bidOpenTime" v-model="bidOpenTime"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
...@@ -141,7 +141,7 @@ ...@@ -141,7 +141,7 @@
<div class="con"> <div class="con">
<span>保证金缴纳 :</span> <span>保证金缴纳 :</span>
<div class="inputxt" id="inputxt5"> <div class="inputxt" id="inputxt5">
<div class="flex" v-if="nowedit == 5"> <div class="flex" v-if="nowedit == 5 && isDisabled == false">
<el-input placeholder="待添加" v-model="earnestMoneyPay"></el-input> <el-input placeholder="待添加" v-model="earnestMoneyPay"></el-input>
<div class="flex"> <div class="flex">
<div class="btnsmall btn_primary h28" @click="changes({'earnestMoneyPay':earnestMoneyPay})" style="width: 56px">确定</div> <div class="btnsmall btn_primary h28" @click="changes({'earnestMoneyPay':earnestMoneyPay})" style="width: 56px">确定</div>
...@@ -154,7 +154,7 @@ ...@@ -154,7 +154,7 @@
<div class="con i"> <div class="con i">
<span>保证金金额(万元) :</span> <span>保证金金额(万元) :</span>
<div class="inputxt" id="inputxt6"> <div class="inputxt" id="inputxt6">
<div class="flex" v-if="nowedit == 6"> <div class="flex" v-if="nowedit == 6 && isDisabled == false">
<el-input placeholder="待添加" v-model="earnestMoney"></el-input> <el-input placeholder="待添加" v-model="earnestMoney"></el-input>
<div class="flex"> <div class="flex">
<div class="btnsmall btn_primary h28" @click="changes({'earnestMoney':earnestMoney})" style="width: 56px">确定</div> <div class="btnsmall btn_primary h28" @click="changes({'earnestMoney':earnestMoney})" style="width: 56px">确定</div>
...@@ -169,7 +169,7 @@ ...@@ -169,7 +169,7 @@
<div class="con"> <div class="con">
<span>开标地点 :</span> <span>开标地点 :</span>
<div class="inputxt" id="inputxt7"> <div class="inputxt" id="inputxt7">
<div class="flex" v-if="nowedit == 7"> <div class="flex" v-if="nowedit == 7 && isDisabled == false">
<el-input placeholder="待添加" v-model="bidOpenPlace"></el-input> <el-input placeholder="待添加" v-model="bidOpenPlace"></el-input>
<div class="flex"> <div class="flex">
<div class="btnsmall btn_primary h28" @click="changes({'bidOpenPlace':bidOpenPlace})" style="width: 56px">确定</div> <div class="btnsmall btn_primary h28" @click="changes({'bidOpenPlace':bidOpenPlace})" style="width: 56px">确定</div>
...@@ -182,7 +182,7 @@ ...@@ -182,7 +182,7 @@
<div class="con i"> <div class="con i">
<span>评标委员会 :</span> <span>评标委员会 :</span>
<div class="inputxt" id="inputxt8"> <div class="inputxt" id="inputxt8">
<div class="flex" v-if="nowedit == 8"> <div class="flex" v-if="nowedit == 8 && isDisabled == false">
<el-input placeholder="待添加" v-model="evaluationBidCouncil"></el-input> <el-input placeholder="待添加" v-model="evaluationBidCouncil"></el-input>
<div class="flex"> <div class="flex">
<div class="btnsmall btn_primary h28" @click="changes({'evaluationBidCouncil':evaluationBidCouncil})" style="width: 56px">确定</div> <div class="btnsmall btn_primary h28" @click="changes({'evaluationBidCouncil':evaluationBidCouncil})" style="width: 56px">确定</div>
...@@ -207,7 +207,8 @@ ...@@ -207,7 +207,8 @@
detailId: { //从企业详情跳转过来ID detailId: { //从企业详情跳转过来ID
type: Number, type: Number,
default: 0 default: 0
} },
isDisabled:false,
}, },
data(){ data(){
return{ return{
...@@ -226,12 +227,15 @@ ...@@ -226,12 +227,15 @@
earnestMoney: '',//保证金金额 earnestMoney: '',//保证金金额
earnestMoneyPay: '',//保证金缴纳 earnestMoneyPay: '',//保证金缴纳
evaluationBidCouncil: '',//评标委员会 evaluationBidCouncil: '',//评标委员会
isDisabled:this.isDisabled,
} }
}, },
watch:{ watch:{
}, },
mounted(){ mounted(){
document.addEventListener('mouseup',(e) => { document.addEventListener('mouseup',(e) => {
if(this.isDisabled == true)
return false
let j = 0 let j = 0
for(var i=1;i<=9;i++){ for(var i=1;i<=9;i++){
let isSelf = document.getElementById('inputxt'+i).contains(event.target) // 这个是自己的区域 let isSelf = document.getElementById('inputxt'+i).contains(event.target) // 这个是自己的区域
...@@ -242,6 +246,39 @@ ...@@ -242,6 +246,39 @@
} }
} }
if(j == 9){ if(j == 9){
if(this.nowedit !=-1){
let param = {}
switch (this.nowedit) {
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
} }
}) })
...@@ -271,6 +308,8 @@ ...@@ -271,6 +308,8 @@
this.nowedit = -1 this.nowedit = -1
let param = str let param = str
param.id = this.id param.id = this.id
if(this.isDisabled == true)
return false
editXMNR(param).then(result=>{ editXMNR(param).then(result=>{
if(result.code == 200) if(result.code == 200)
this.$message.success('修改成功!') this.$message.success('修改成功!')
...@@ -282,8 +321,7 @@ ...@@ -282,8 +321,7 @@
}, },
//输入数字 //输入数字
number(value){ number(value){
console.log(value) this.investmentAmount = value.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1')//输入6位小数
this.investmentAmount = this.investmentAmount == ""||this.investmentAmount == null? value.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1'):null//输入6位小数
}, },
} }
} }
......
...@@ -14,13 +14,16 @@ ...@@ -14,13 +14,16 @@
<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" v-if="isDisabled==false">新增联系人</div>
</div> </div>
</template> </template>
<el-table-column <el-table-column
prop="name" prop="name"
label="姓名" label="姓名"
width="113"> width="113">
<template slot-scope="scope">
{{scope.row.name || '--'}}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="name"
...@@ -38,20 +41,32 @@ ...@@ -38,20 +41,32 @@
label="角色" label="角色"
sortable sortable
width="146"> width="146">
<template slot-scope="scope">
{{scope.row.role || '--'}}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="office" prop="office"
label="公司/机关"> label="关联企业">
<template slot-scope="scope">
{{scope.row.office || '--'}}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="position" prop="position"
label="职位" label="职位"
width="125"> width="125">
<template slot-scope="scope">
{{scope.row.position || '--'}}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="phone" prop="phone"
label="联系方式" label="联系方式"
width="175"> width="175">
<template slot-scope="scope">
{{scope.row.phone || '--'}}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="accendant" prop="accendant"
...@@ -86,18 +101,24 @@ ...@@ -86,18 +101,24 @@
<el-form-item label="联系人姓名:" class="row"> <el-form-item label="联系人姓名:" class="row">
<el-input type="text" v-model="queryParam.name" placeholder="请输入"></el-input> <el-input type="text" v-model="queryParam.name" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="联系人性别:" class="row">
<el-radio-group v-model="queryParam.sex">
<el-radio label=1></el-radio>
<el-radio label=0></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="联系人角色:" class="row"> <el-form-item label="联系人角色:" class="row">
<el-input type="text" v-model="queryParam.role" placeholder="请输入"></el-input> <el-input type="text" v-model="queryParam.role" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="联系人职位:" class="row"> <el-form-item label="关联企业:" class="row">
<el-input type="text" v-model="queryParam.position" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="联系人公司/机关:" class="row">
<el-input type="text" v-model="queryParam.office" placeholder="请输入"></el-input> <el-input type="text" v-model="queryParam.office" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="内部维护人:" class="row"> <el-form-item label="联系人职位:" class="row">
<el-input type="text" v-model="queryParam.accendant" placeholder="请输入"></el-input> <el-input type="text" v-model="queryParam.position" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<!--<el-form-item label="内部维护人:" class="row">-->
<!--<el-input type="text" v-model="queryParam.accendant" placeholder="请输入"></el-input>-->
<!--</el-form-item>-->
<el-form-item label="联系方式:" class="row"> <el-form-item label="联系方式:" class="row">
<el-input type="text" v-model="queryParam.phone" placeholder="请输入"></el-input> <el-input type="text" v-model="queryParam.phone" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
...@@ -120,7 +141,8 @@ ...@@ -120,7 +141,8 @@
detailId: { //从企业详情跳转过来ID detailId: { //从企业详情跳转过来ID
type: Number, type: Number,
default: 0 default: 0
} },
isDisabled:false,
}, },
data(){ data(){
return{ return{
...@@ -140,6 +162,7 @@ ...@@ -140,6 +162,7 @@
total:0, total:0,
projectname:this.$route.query.projectname, projectname:this.$route.query.projectname,
queryParam:[], queryParam:[],
isDisabled:this.isDisabled,
} }
}, },
created(){ created(){
...@@ -148,6 +171,7 @@ ...@@ -148,6 +171,7 @@
methods:{ methods:{
getDetail(item){ getDetail(item){
this.dialogVisible = true this.dialogVisible = true
item.sex = item.sex.toString()
this.queryParam = item this.queryParam = item
this.isnew = false this.isnew = false
}, },
...@@ -158,8 +182,10 @@ ...@@ -158,8 +182,10 @@
}) })
}, },
save(){ save(){
let param = JSON.parse(JSON.stringify(this.queryParam))
param.sex = parseInt(param.sex)
if(this.isnew == false){ if(this.isnew == false){
editLXR(this.queryParam).then(result=>{ editLXR(param).then(result=>{
if(result.code == 200){ if(result.code == 200){
this.$message.success('保存成功!') this.$message.success('保存成功!')
this.getList() this.getList()
...@@ -168,7 +194,7 @@ ...@@ -168,7 +194,7 @@
}) })
} }
if(this.isnew == true){ if(this.isnew == true){
addLXR(this.queryParam).then(result=>{ addLXR(param).then(result=>{
if(result.code == 200){ if(result.code == 200){
this.$message.success('新增成功!') this.$message.success('新增成功!')
this.getList() this.getList()
...@@ -192,11 +218,12 @@ ...@@ -192,11 +218,12 @@
this.queryParam = { this.queryParam = {
businessId:this.id, businessId:this.id,
name:"", name:"",
sex:"1",
role:"", role:"",
office:"", office:"",
position:"", position:"",
phone:"", phone:"",
accendant:"", // accendant:"",
} }
}, },
} }
......
...@@ -3,15 +3,15 @@ ...@@ -3,15 +3,15 @@
<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 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">
<el-input type="text" placeholder="输入关键词查询" v-model="searchParam.companyName"></el-input> <el-input type="text" placeholder="输入关键词查询" clearable v-model="searchParam.companyName"></el-input>
<div class="btn" @click="handleCurrentChange(1)">搜索</div> <div class="btn" @click="handleCurrentChange(1)">搜索</div>
</div> </div>
<div class="btn btn_primary h32 b3" @click="opennew"><div class="img img1"></div>添加相关企业</div> <div class="btn btn_primary h32 b3" @click="opennew" v-if="isDisabled == false"><div class="img img1"></div>添加相关企业</div>
</div> </div>
<div class="document tables"> <div class="document tables">
<el-table <el-table
...@@ -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" v-if="isDisabled==false">新增相关企业</div>
</div> </div>
</template> </template>
<el-table-column <el-table-column
...@@ -36,13 +36,13 @@ ...@@ -36,13 +36,13 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="depth" prop="depth"
sortable
label="对接深度/竞争力度" label="对接深度/竞争力度"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="companyRole" prop="companyRole"
label="企业角色" label="企业角色"
sortable
width=""> width="">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
label="负责人" label="负责人"
width=""> width="">
</el-table-column> </el-table-column>
<el-table-column <el-table-column v-if="isDisabled == false"
prop="name" prop="name"
label="" label=""
align="right" align="right"
...@@ -143,7 +143,8 @@ ...@@ -143,7 +143,8 @@
detailId: { //从企业详情跳转过来ID detailId: { //从企业详情跳转过来ID
type: Number, type: Number,
default: 0 default: 0
} },
isDisabled:false,
}, },
data(){ data(){
return{ return{
...@@ -179,6 +180,7 @@ ...@@ -179,6 +180,7 @@
companyName:'', companyName:'',
}, },
ondel:-1, ondel:-1,
isDisabled:this.isDisabled,
} }
}, },
created(){ created(){
...@@ -266,6 +268,9 @@ ...@@ -266,6 +268,9 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.searchInput .el-input{
width: 68%;
}
.w102{ .w102{
width: 102px; width: 102px;
} }
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<div class="con"> <div class="con">
<span>项目级别 :</span> <span>项目级别 :</span>
<div class="inputxt" id="inputxt1"> <div class="inputxt" id="inputxt1">
<div class="flex" v-if="nowedit == 1"> <div class="flex" v-if="nowedit == 1 && isDisabled == false" >
<el-input placeholder="待添加" v-model="xmsldata.projectLevel"></el-input> <el-input placeholder="待添加" v-model="xmsldata.projectLevel"></el-input>
<div class="flex"> <div class="flex">
<div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL({projectLevel:xmsldata.projectLevel})">确定</div> <div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL({projectLevel:xmsldata.projectLevel})">确定</div>
...@@ -22,11 +22,11 @@ ...@@ -22,11 +22,11 @@
<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>
<el-select v-model="xmjd" class="select-multiple" placeholder="请选择" @change="editXMSL({projectStage:xmjd})"> <el-select v-if="isDisabled==false" v-model="xmjd" class="select-multiple" placeholder="请选择" @change="editXMSL({projectStage:xmjd})">
<el-option v-for="(item,index) in projectStage" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option> <el-option v-for="(item,index) in projectStage" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select> </el-select>
</div> </div>
...@@ -38,9 +38,9 @@ ...@@ -38,9 +38,9 @@
<div class="flex tipinput"> <div class="flex tipinput">
<div class="tips" v-for="(item,index) in tipslit">{{item}}<img @click="deltip(item)" src="@/assets/images/project/del.png"></div> <div class="tips" v-for="(item,index) in tipslit">{{item}}<img @click="deltip(item)" src="@/assets/images/project/del.png"></div>
<div style="position: relative"> <div style="position: relative">
<el-input placeholder="待添加" v-model="tipsvalue" @input="getValue" :style="spanWidth"></el-input><span class="spanText">{{ tipsvalue }}</span> <el-input placeholder="待添加" :disabled="isDisabled" v-model="tipsvalue" @input="getValue" :style="spanWidth"></el-input><span class="spanText">{{ tipsvalue }}</span>
</div> </div>
<div class="addbtn" @click="addtips"></div> <div class="addbtn" v-if="isDisabled == false" @click="addtips"></div>
</div> </div>
</div> </div>
</div> </div>
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
<div class="con"> <div class="con">
<span>主管单位 :</span> <span>主管单位 :</span>
<div class="inputxt" id="inputxt2"> <div class="inputxt" id="inputxt2">
<div class="flex" v-if="nowedit == 2"> <div class="flex" v-if="nowedit == 2 && isDisabled == false">
<el-input placeholder="待添加" v-model="xmsldata.supervisorUnit"></el-input> <el-input placeholder="待添加" v-model="xmsldata.supervisorUnit"></el-input>
<div class="flex"> <div class="flex">
<div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL({supervisorUnit:xmsldata.supervisorUnit})">确定</div> <div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL({supervisorUnit:xmsldata.supervisorUnit})">确定</div>
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
<div class="con i"> <div class="con i">
<span>建设单位 :</span> <span>建设单位 :</span>
<div class="inputxt" id="inputxt3" :style="{width:rig1}"> <div class="inputxt" id="inputxt3" :style="{width:rig1}">
<div class="flex" v-if="nowedit == 3"> <div class="flex" v-if="nowedit == 3 && isDisabled == false">
<el-input placeholder="待添加" v-model="xmsldata.constructionUnit"></el-input> <el-input placeholder="待添加" v-model="xmsldata.constructionUnit"></el-input>
<div class="flex"> <div class="flex">
<div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL({constructionUnit:xmsldata.constructionUnit})">确定</div> <div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL({constructionUnit:xmsldata.constructionUnit})">确定</div>
...@@ -82,7 +82,7 @@ ...@@ -82,7 +82,7 @@
<div class="con"> <div class="con">
<span>主管单位负责人 :</span> <span>主管单位负责人 :</span>
<div class="inputxt" id="inputxt4"> <div class="inputxt" id="inputxt4">
<div class="flex" v-if="nowedit == 4"> <div class="flex" v-if="nowedit == 4 && isDisabled == false">
<el-input placeholder="待添加" v-model="xmsldata.supervisorPrincipal"></el-input> <el-input placeholder="待添加" v-model="xmsldata.supervisorPrincipal"></el-input>
<div class="flex"> <div class="flex">
<div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL({supervisorPrincipal:xmsldata.supervisorPrincipal})">确定</div> <div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL({supervisorPrincipal:xmsldata.supervisorPrincipal})">确定</div>
...@@ -95,7 +95,7 @@ ...@@ -95,7 +95,7 @@
<div class="con i"> <div class="con i">
<span>建设单位负责人 :</span> <span>建设单位负责人 :</span>
<div class="inputxt" id="inputxt5"> <div class="inputxt" id="inputxt5">
<div class="flex" v-if="nowedit == 5"> <div class="flex" v-if="nowedit == 5 && isDisabled == false">
<el-input placeholder="待添加" v-model="xmsldata.constructionPrincipal"></el-input> <el-input placeholder="待添加" v-model="xmsldata.constructionPrincipal"></el-input>
<div class="flex"> <div class="flex">
<div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL({constructionPrincipal:xmsldata.constructionPrincipal})">确定</div> <div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL({constructionPrincipal:xmsldata.constructionPrincipal})">确定</div>
...@@ -110,7 +110,7 @@ ...@@ -110,7 +110,7 @@
<div class="con"> <div class="con">
<span>主管单位联系电话 :</span> <span>主管单位联系电话 :</span>
<div class="inputxt" id="inputxt6"> <div class="inputxt" id="inputxt6">
<div class="flex" v-if="nowedit == 6"> <div class="flex" v-if="nowedit == 6 && isDisabled == false">
<el-input placeholder="待添加" v-model="xmsldata.supervisorPhone"></el-input> <el-input placeholder="待添加" v-model="xmsldata.supervisorPhone"></el-input>
<div class="flex"> <div class="flex">
<div class="btnsmall btn_primary h28" @click="isphone(1,xmsldata.supervisorPhone)" style="width: 56px">确定</div> <div class="btnsmall btn_primary h28" @click="isphone(1,xmsldata.supervisorPhone)" style="width: 56px">确定</div>
...@@ -123,7 +123,7 @@ ...@@ -123,7 +123,7 @@
<div class="con i"> <div class="con i">
<span>建设单位联系电话 :</span> <span>建设单位联系电话 :</span>
<div class="inputxt" id="inputxt7"> <div class="inputxt" id="inputxt7">
<div class="flex" v-if="nowedit == 7"> <div class="flex" v-if="nowedit == 7 && isDisabled == false">
<el-input placeholder="待添加" v-model="xmsldata.constructionPhone"></el-input> <el-input placeholder="待添加" v-model="xmsldata.constructionPhone"></el-input>
<div class="flex"> <div class="flex">
<div class="btnsmall btn_primary h28" @click="isphone(2,xmsldata.constructionPhone)" style="width: 56px">确定</div> <div class="btnsmall btn_primary h28" @click="isphone(2,xmsldata.constructionPhone)" style="width: 56px">确定</div>
...@@ -177,7 +177,6 @@ ...@@ -177,7 +177,6 @@
export default { export default {
name: 'xmsl', name: 'xmsl',
props:{ props:{
datas:'',
detailId: { //从企业详情跳转过来ID detailId: { //从企业详情跳转过来ID
type: Number, type: Number,
default: 0 default: 0
...@@ -191,9 +190,10 @@ ...@@ -191,9 +190,10 @@
xmjd:'待添加', xmjd:'待添加',
projectStage:[],//项目阶段 projectStage:[],//项目阶段
id: this.detailId ? this.detailId : this.$route.query.id, id: this.detailId ? this.detailId : this.$route.query.id,
xmsldata:this.datas, xmsldata:[],
spanWidth:'width: 70px', spanWidth:'width: 70px',
rig1:'184px', rig1:'184px',
isDisabled:false,
} }
}, },
created(){ created(){
...@@ -205,6 +205,8 @@ ...@@ -205,6 +205,8 @@
}, },
mounted(){ mounted(){
document.addEventListener('mouseup',(e) => { document.addEventListener('mouseup',(e) => {
if(this.isDisabled == true)
return false
let j = 0 let j = 0
for(var i=1;i<=7;i++){ for(var i=1;i<=7;i++){
let isSelf = document.getElementById('inputxt'+i).contains(event.target) // 这个是自己的区域 let isSelf = document.getElementById('inputxt'+i).contains(event.target) // 这个是自己的区域
...@@ -215,6 +217,33 @@ ...@@ -215,6 +217,33 @@
} }
} }
if(j == 7){ if(j == 7){
if(this.nowedit != -1){
let param = {}
switch (this.nowedit) {
case 1:
param = {'projectLevel':this.xmsldata.projectLevel}
break;
case 2 :
param = {'supervisorUnit':this.xmsldata.supervisorUnit}
break;
case 3 :
param = {'constructionUnit':this.xmsldata.constructionUnit}
break;
case 4 :
param = {'supervisorPrincipal':this.xmsldata.supervisorPrincipal}
break;
case 5 :
param = {'constructionPrincipal':this.xmsldata.constructionPrincipal}
break;
case 6 :
param = {'supervisorPhone':this.xmsldata.supervisorPhone}
break;
case 7 :
param = {'constructionPhone':this.xmsldata.constructionPhone}
break;
}
this.editXMSL(param)
}
this.nowedit = -1 this.nowedit = -1
} }
}) })
...@@ -232,17 +261,26 @@ ...@@ -232,17 +261,26 @@
}); });
}, },
editXMSL(param){ editXMSL(param){
this.nowedit = -1
if(this.isDisabled == true)
return false
if(param.projectStage){//修改项目阶段
this.$emit('Refreshs',param)
this.xmjd = param.projectStage
}else{
let params = param let params = param
params.id = this.id params.id = this.id
editXMNR(JSON.stringify(params)).then(res=>{ editXMNR(JSON.stringify(params)).then(res=>{
if (res.code == 200){ if (res.code == 200){
if(!param.projectStage){
this.$message.success('修改成功!') this.$message.success('修改成功!')
}
}else{ }else{
this.$message.error(res.msg) this.$message.error(res.msg)
this.getXMSL() this.getXMSL()
} }
}) })
this.nowedit = -1 }
}, },
//验证电话号码 //验证电话号码
isphone(type,value){ isphone(type,value){
...@@ -302,8 +340,7 @@ ...@@ -302,8 +340,7 @@
this.xmjd = result.data.projectStage this.xmjd = result.data.projectStage
this.tipslit = result.data.labelList this.tipslit = result.data.labelList
this.xmsldata = result.data this.xmsldata = result.data
this.isDisabled = result.data.isFounder == 1 ? false:true
const spanStyle = document.querySelector(".rig1"); const spanStyle = document.querySelector(".rig1");
this.$nextTick(() => { // 如果不用$nextTick的话页面并不会更新,它是在下次dom更新后再渲染到页面上 this.$nextTick(() => { // 如果不用$nextTick的话页面并不会更新,它是在下次dom更新后再渲染到页面上
this.rig1 = this.rig1 =
......
...@@ -3,9 +3,10 @@ ...@@ -3,9 +3,10 @@
<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" clearable placeholder="输入关键词查询"></el-input>
<div class="btn" @click="handleCurrentChange(1)">搜索</div> <div class="btn" @click="handleCurrentChange(1)">搜索</div>
</div> </div>
<div class="btn btn_primary h32 b2" @click="getUP"><div class="img img2"></div>上传</div> <div class="btn btn_primary h32 b2" @click="getUP"><div class="img img2"></div>上传</div>
...@@ -50,9 +51,9 @@ ...@@ -50,9 +51,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="getUP">上传文档</div> <div v-if="isDisabled==false" class="btn btn_primary h36 w102" @click="getUP">上传文档</div>
</div> </div>
</template> </template>
<el-table-column <el-table-column
...@@ -88,7 +89,7 @@ ...@@ -88,7 +89,7 @@
<template slot-scope="scope"> <template slot-scope="scope">
<div class="hoverbtn"> <div class="hoverbtn">
<div class="xz" @click="downnlod(scope.row)">下载</div> <div class="xz" @click="downnlod(scope.row)">下载</div>
<div class="sc" @click="del(scope.row.filePath)">删除</div> <div class="sc" v-if="isDisabled == false" @click="del(scope.row.filePath)">删除</div>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
...@@ -127,7 +128,8 @@ ...@@ -127,7 +128,8 @@
detailId: { //从企业详情跳转过来ID detailId: { //从企业详情跳转过来ID
type: Number, type: Number,
default: 0 default: 0
} },
isDisabled:false,
}, },
data(){ data(){
return{ return{
...@@ -149,6 +151,7 @@ ...@@ -149,6 +151,7 @@
fileDatas:[], fileDatas:[],
filename:'', filename:'',
ondel:"", ondel:"",
isDisabled:this.isDisabled,
} }
}, },
created(){ created(){
...@@ -191,6 +194,8 @@ ...@@ -191,6 +194,8 @@
} }
}, },
getUP(){ getUP(){
if(this.isDisabled==true)
return false
this.isupload=true this.isupload=true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.uploadFile.$children[0].$refs.input.webkitdirectory = true this.$refs.uploadFile.$children[0].$refs.input.webkitdirectory = true
...@@ -344,4 +349,7 @@ ...@@ -344,4 +349,7 @@
} }
} }
} }
.searchInput .el-input{
width: 68%;
}
</style> </style>
...@@ -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">
...@@ -29,15 +29,15 @@ ...@@ -29,15 +29,15 @@
</div> </div>
</div> </div>
</div> </div>
<div class="contets row"> <div class="contets row" readonly>
<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>
<el-select v-model="xmlx" class="select-multiple" placeholder="请选择" @change="editXMSL({projectType:xmlx})"> <el-select v-if="isDisabled == false" v-model="xmlx" class="select-multiple" placeholder="请选择" @change="editXMSL({projectType:xmlx})">
<el-option v-for="(item,index) in projectType" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option> <el-option v-for="(item,index) in projectType" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select> </el-select>
</div> </div>
...@@ -46,11 +46,11 @@ ...@@ -46,11 +46,11 @@
<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>
<el-select v-model="xmlb" class="select-multiple" placeholder="请选择" @change="editXMSL({projectCategory:xmlb})"> <el-select v-if="isDisabled==false" v-model="xmlb" class="select-multiple" placeholder="请选择" @change="editXMSL({projectCategory:xmlb})">
<el-option v-for="(item,index) in projectCategory" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option> <el-option v-for="(item,index) in projectCategory" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select> </el-select>
</div> </div>
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
<div class="det-con con" id="inputxt"> <div class="det-con con" id="inputxt">
<span>投资估算(万元):</span> <span>投资估算(万元):</span>
<div class="inputxt i" :class="{'nomar':nowedit != 3}"> <div class="inputxt i" :class="{'nomar':nowedit != 3}">
<div class="flex" v-if="nowedit == 3"> <div class="flex" v-if="nowedit == 3 && isDisabled == false">
<el-input v-model="ProjectData.investmentAmount" placeholder="待添加" @input="number"></el-input> <el-input v-model="ProjectData.investmentAmount" placeholder="待添加" @input="number"></el-input>
<div class="flex"> <div class="flex">
<div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL({investmentAmount:ProjectData.investmentAmount})">确定</div> <div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL({investmentAmount:ProjectData.investmentAmount})">确定</div>
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
{{addresstxt}} {{addresstxt}}
<i class="el-icon-caret-bottom"></i> <i class="el-icon-caret-bottom"></i>
</span> </span>
<el-cascader class="cascader-region select-location" v-model="ProjectData.address" <el-cascader :disabled="isDisabled" class="cascader-region select-location" v-model="ProjectData.address"
ref="myCascader" :props="props" ref="myCascader" :props="props"
:options="addressList" :options="addressList"
@change="handleChange"></el-cascader> @change="handleChange"></el-cascader>
...@@ -106,20 +106,20 @@ ...@@ -106,20 +106,20 @@
</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" :detailId="detailId"></xmsl>
<!--建设内容--> <!--建设内容-->
<jsnr v-if="thistag == 'jsnr'" :detailId="detailId"></jsnr> <jsnr v-if="thistag == 'jsnr'" :isDisabled='isDisabled' :detailId="detailId"></jsnr>
<!--联系人--> <!--联系人-->
<lxr v-if="thistag == 'lxr'" :detailId="detailId"></lxr> <lxr v-if="thistag == 'lxr'" :isDisabled='isDisabled' :detailId="detailId"></lxr>
<!--跟进记录--> <!--跟进记录-->
<gjjl v-if="thistag == 'gjjl'" types="gjjl" :detailId="detailId"></gjjl> <gjjl v-if="thistag == 'gjjl'" :isDisabled='isDisabled' types="gjjl" :detailId="detailId"></gjjl>
<!--工作待办--> <!--工作待办-->
<gzdb v-if="thistag == 'gzdb'" :detailId="detailId"></gzdb> <gzdb v-if="thistag == 'gzdb'" :isDisabled='isDisabled' :detailId="detailId"></gzdb>
<!--资料文档--> <!--资料文档-->
<zlwd v-if="thistag == 'zlwd'" :detailId="detailId"></zlwd> <zlwd v-if="thistag == 'zlwd'" :isDisabled='isDisabled' :detailId="detailId"></zlwd>
<!--相关企业--> <!--相关企业-->
<xgqy v-if="thistag == 'xgqy'" :detailId="detailId"></xgqy> <xgqy v-if="thistag == 'xgqy'" :isDisabled='isDisabled' :detailId="detailId"></xgqy>
</div> </div>
</div> </div>
</template> </template>
...@@ -175,6 +175,8 @@ ...@@ -175,6 +175,8 @@
props:{ checkStrictly: true, expandTrigger: 'hover' }, props:{ checkStrictly: true, expandTrigger: 'hover' },
id:'', id:'',
ProjectData:{}, ProjectData:{},
isDisabled:false,
keys:1,
} }
}, },
created(){ created(){
...@@ -197,10 +199,18 @@ ...@@ -197,10 +199,18 @@
this.getXMSL() this.getXMSL()
}, },
methods: { methods: {
getsl(data){
this.choose(data.projectStage)
},
handleALL(event){ handleALL(event){
if(this.isDisabled == true)
return false
var one = document.getElementById("inputxt"); var one = document.getElementById("inputxt");
if(one){ if(one){
if(!one.contains(event.target)){ if(!one.contains(event.target)){
if(this.nowedit != -1){
this.editXMSL({investmentAmount:this.ProjectData.investmentAmount})
}
this.nowedit = -1 this.nowedit = -1
}else{ }else{
this.nowedit = 3 this.nowedit = 3
...@@ -211,6 +221,7 @@ ...@@ -211,6 +221,7 @@
getXMSL(this.id).then(result=>{ getXMSL(this.id).then(result=>{
this.ProjectData = result.code==200?result.data:{} this.ProjectData = result.code==200?result.data:{}
this.$route.query.projectname = result.data.projectName this.$route.query.projectname = result.data.projectName
this.isDisabled = result.data.isFounder == 1 ? false:true
this.xmlx = result.data.projectType==""||result.data.projectType==null?"请选择":result.data.projectType this.xmlx = result.data.projectType==""||result.data.projectType==null?"请选择":result.data.projectType
this.xmlb = result.data.projectCategory==""||result.data.projectCategory==null?"请选择":result.data.projectCategory this.xmlb = result.data.projectCategory==""||result.data.projectCategory==null?"请选择":result.data.projectCategory
this.thisindex = result.data.projectStage this.thisindex = result.data.projectStage
...@@ -237,7 +248,6 @@ ...@@ -237,7 +248,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
...@@ -246,6 +256,8 @@ ...@@ -246,6 +256,8 @@
this.ProjectData.isPrivate = isPrivate this.ProjectData.isPrivate = isPrivate
}, },
editXMSL(param){ editXMSL(param){
if(this.isDisabled == true)
return false
let params = param let params = param
params.id = this.id params.id = this.id
editXMNR(JSON.stringify(params)).then(res=>{ editXMNR(JSON.stringify(params)).then(res=>{
...@@ -291,8 +303,14 @@ ...@@ -291,8 +303,14 @@
this.lastindex = value this.lastindex = value
}, },
choose(value){ choose(value){
if(this.isDisabled == true)
return false
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 +318,7 @@ ...@@ -300,7 +318,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) {
......
...@@ -99,7 +99,9 @@ ...@@ -99,7 +99,9 @@
<div class="titles">项目明细 <div class="titles">项目明细
<div class="dc"> <div class="dc">
<div class="total">{{total}}</div> <div class="total">{{total}}</div>
<el-tooltip class="item" effect="dark" content="功能正在开发中" placement="top">
<div class="btn-export"><img src="@/assets/images/EXCEL.png">导出EXCEL</div> <div class="btn-export"><img src="@/assets/images/EXCEL.png">导出EXCEL</div>
</el-tooltip>
</div> </div>
</div> </div>
<div class="tables" v-if="total == 0"> <div class="tables" v-if="total == 0">
...@@ -113,7 +115,10 @@ ...@@ -113,7 +115,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 +243,8 @@ export default { ...@@ -238,6 +243,8 @@ export default {
} }
}, },
created() { created() {
},
mounted(){
this.prvinceTree() this.prvinceTree()
this.getList(1) this.getList(1)
//项目阶段 //项目阶段
...@@ -308,6 +315,10 @@ export default { ...@@ -308,6 +315,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:'',//项目名称
...@@ -443,6 +454,9 @@ export default { ...@@ -443,6 +454,9 @@ export default {
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.btn_primary{
margin-top: 16px;
}
.jabph_popper_box{ .jabph_popper_box{
left: 110px; left: 110px;
} }
......
...@@ -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>
<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> <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,7 +1563,16 @@ ...@@ -1561,7 +1563,16 @@
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){
......
...@@ -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.init();
},
methods: {
init(){
this.addressListfn(); this.addressListfn();
this.searchDic(); this.searchDic();
this.search(); this.search();
}, },
methods: {
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);
} }
...@@ -79,4 +79,13 @@ public interface EconomicService { ...@@ -79,4 +79,13 @@ public interface EconomicService {
*/ */
AjaxResult regionalCompare(OpRegionalEconomicDataStatisticsRegionalDto dto); AjaxResult regionalCompare(OpRegionalEconomicDataStatisticsRegionalDto dto);
/***
*@Description: 地区经济-对比
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult regionalMultipleCompare (OpRegionalEconomicRegionalCompareDto dto);
} }
package com.dsk.system.service.impl; package com.dsk.system.service.impl;
import java.util.List; import cn.hutool.core.util.ObjectUtil;
import com.dsk.common.core.domain.entity.BusinessContacts; import com.dsk.common.core.domain.entity.BusinessContacts;
import com.dsk.common.core.domain.model.LoginUser;
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;
import com.dsk.common.utils.DateUtils; import com.dsk.common.utils.DateUtils;
import com.dsk.common.utils.SecurityUtils;
import com.dsk.system.mapper.BusinessContactsMapper; import com.dsk.system.mapper.BusinessContactsMapper;
import com.dsk.system.service.IBusinessContactsService; import com.dsk.system.service.IBusinessContactsService;
import org.springframework.beans.factory.annotation.Autowired; 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 +61,11 @@ public class BusinessContactsServiceImpl implements IBusinessContactsService ...@@ -58,7 +61,11 @@ 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","请输入正确的电话号码");
LoginUser loginUser = SecurityUtils.getLoginUser();
if (ObjectUtil.isEmpty(loginUser)) throw new BaseException("请登录");
//维护人员为当前登录用户
businessContacts.setAccendant(loginUser.getUsername());
return businessContactsMapper.insertBusinessContacts(businessContacts); return businessContactsMapper.insertBusinessContacts(businessContacts);
} }
...@@ -72,7 +79,7 @@ public class BusinessContactsServiceImpl implements IBusinessContactsService ...@@ -72,7 +79,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);
} }
......
...@@ -51,16 +51,17 @@ public class CustomerServiceImpl implements ICustomerService { ...@@ -51,16 +51,17 @@ public class CustomerServiceImpl implements ICustomerService {
@Override @Override
public List<CustomerListVo> selectList(CustomerSearchDto dto) { public List<CustomerListVo> selectList(CustomerSearchDto dto) {
dto.setUserId(SecurityUtils.getUserId()); dto.setUserId(SecurityUtils.getUserId());
List<CustomerListVo> vos = baseMapper.selectList(dto); // List<CustomerListVo> vos = baseMapper.selectList(dto);
vos.parallelStream().forEach(vo -> { // vos.parallelStream().forEach(vo -> {
//合作项目 // //合作项目
vo.setCooperationProject(businessInfoService.selectCountByStatusAndCustomerId(2, vo.getCustomerId())); // vo.setCooperationProject(businessInfoService.selectCountByStatusAndCustomerId(2, vo.getCustomerId()));
//跟进项目 // //跟进项目
vo.setFollowProject(businessInfoService.selectCountByStatusAndCustomerId(1, vo.getCustomerId())); // vo.setFollowProject(businessInfoService.selectCountByStatusAndCustomerId(1, vo.getCustomerId()));
//储备项目 // //储备项目
vo.setReserveProject(businessInfoService.selectCountByStatusAndCustomerId(0, vo.getCustomerId())); // vo.setReserveProject(businessInfoService.selectCountByStatusAndCustomerId(0, vo.getCustomerId()));
}); // });
return vos; // return vos;
return baseMapper.selectList(dto);
} }
@Override @Override
......
...@@ -70,4 +70,10 @@ public class EconomicServiceImpl implements EconomicService { ...@@ -70,4 +70,10 @@ public class EconomicServiceImpl implements EconomicService {
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
@Override
public AjaxResult regionalMultipleCompare(OpRegionalEconomicRegionalCompareDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/economic/regional/multipleCompare", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
} }
...@@ -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>
......
...@@ -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
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
ct.performance_characteristic, ct.other_ms_characteistic, ct.create_id, ct.create_time, ct.update_id, ct.update_time ct.performance_characteristic, ct.other_ms_characteistic, ct.create_id, ct.create_time, ct.update_id, ct.update_time
</sql> </sql>
<select id="selectList" resultType="com.dsk.system.domain.customer.vo.CustomerListVo"> <select id="selectList1" resultType="com.dsk.system.domain.customer.vo.CustomerListVo">
select select
u.nick_name followUser, u.nick_name followUser,
<include refid="Base_Bean"></include> <include refid="Base_Bean"></include>
...@@ -21,6 +21,26 @@ ...@@ -21,6 +21,26 @@
<if test="dto.companyName != null and dto.companyName != '' "> and ct.company_name like concat('%',#{dto.companyName},'%')</if> <if test="dto.companyName != null and dto.companyName != '' "> and ct.company_name like concat('%',#{dto.companyName},'%')</if>
</select> </select>
<select id="selectList" resultType="com.dsk.system.domain.customer.vo.CustomerListVo">
select
u.nick_name followUser, bi1.num reserveProject, bi2.num followProject, bi3.num cooperationProject,
<include refid="Base_Bean"></include>
from customer ct
join customer_user ctu on ct.customer_id = ctu.customer_id
join sys_user u on ctu.user_id = u.user_id
left join (
select count(status) num,customer_id from business_info where `status` = 0 group by customer_id
) bi1 on bi1.customer_id = ct.customer_id
left join (
select count(status) num,customer_id from business_info where `status` = 1 group by customer_id
) bi2 on bi2.customer_id = ct.customer_id
left join (
select count(status) num,customer_id from business_info where `status` = 2 group by customer_id
) bi3 on bi3.customer_id = ct.customer_id
where ctu.user_id = #{dto.userId}
<if test="dto.companyName != null and dto.companyName != '' "> and ct.company_name like concat('%',#{dto.companyName},'%')</if>
</select>
<select id="selectUserList" resultType="com.dsk.system.domain.customer.Customer"> <select id="selectUserList" resultType="com.dsk.system.domain.customer.Customer">
select select
ct.customer_id, ct.company_name ct.customer_id, ct.company_name
......
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