Commit 781e85c0 authored by 远方不远's avatar 远方不远
parents bfc60023 fc5b8dd8
...@@ -2,6 +2,7 @@ package com.dsk.web.controller.dsk; ...@@ -2,6 +2,7 @@ package com.dsk.web.controller.dsk;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.core.domain.model.*;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.system.dskService.EnterpriseBussinessService; import com.dsk.system.dskService.EnterpriseBussinessService;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -28,67 +29,67 @@ public class EnterpriseBussinessController { ...@@ -28,67 +29,67 @@ public class EnterpriseBussinessController {
@ApiOperation(value = "客户信息列表(openApi)") @ApiOperation(value = "客户信息列表(openApi)")
@RequestMapping(value = "/clientPage", method = RequestMethod.POST) @RequestMapping(value = "/clientPage", method = RequestMethod.POST)
public TableDataInfo clientPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo clientPage(@RequestBody EnterpriseBussinessClientPageBody paramMap) throws Exception {
return enterpriseBussinessService.clientPage(paramMap); return enterpriseBussinessService.clientPage(paramMap);
} }
@ApiOperation(value = "客户项目列表(openApi)") @ApiOperation(value = "客户项目列表(openApi)")
@RequestMapping(value = "/clientProjectPage", method = RequestMethod.POST) @RequestMapping(value = "/clientProjectPage", method = RequestMethod.POST)
public TableDataInfo clientProjectPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo clientProjectPage(@RequestBody EnterpriseBussinessClientProjectPageBody paramMap) throws Exception {
return enterpriseBussinessService.clientProjectPage(paramMap); return enterpriseBussinessService.clientProjectPage(paramMap);
} }
@ApiOperation(value = "投标记录列表(开标记录)(openApi)") @ApiOperation(value = "投标记录列表(开标记录)(openApi)")
@RequestMapping(value = "/tenderPage",method = RequestMethod.POST) @RequestMapping(value = "/tenderPage",method = RequestMethod.POST)
public TableDataInfo tenderPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo tenderPage(@RequestBody EnterpriseBussinessTenderPageBody paramMap) throws Exception {
return enterpriseBussinessService.tenderPage(paramMap); return enterpriseBussinessService.tenderPage(paramMap);
} }
@ApiOperation(value = "投标记录详情(开标记录)(openApi)") @ApiOperation(value = "投标记录详情(开标记录)(openApi)")
@RequestMapping(value = "/tenderDetail",method = RequestMethod.POST) @RequestMapping(value = "/tenderDetail",method = RequestMethod.POST)
public R tenderDetail(@RequestBody Map<String, Object> paramMap) throws Exception { public R tenderDetail(@RequestBody EnterpriseBussinessTenderDetailBody paramMap) throws Exception {
return enterpriseBussinessService.tenderDetail(paramMap); return enterpriseBussinessService.tenderDetail(paramMap);
} }
@ApiOperation(value = "供应商列表(openApi)") @ApiOperation(value = "供应商列表(openApi)")
@RequestMapping(value = "/supplierPage",method = RequestMethod.POST) @RequestMapping(value = "/supplierPage",method = RequestMethod.POST)
public TableDataInfo supplierPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo supplierPage(@RequestBody EnterpriseBussinessSupplierPageBody paramMap) throws Exception {
return enterpriseBussinessService.supplierPage(paramMap); return enterpriseBussinessService.supplierPage(paramMap);
} }
@ApiOperation(value = "供应商项目列表(openApi)") @ApiOperation(value = "供应商项目列表(openApi)")
@RequestMapping(value = "/supplierProjectPage",method = RequestMethod.POST) @RequestMapping(value = "/supplierProjectPage",method = RequestMethod.POST)
public TableDataInfo supplierProjectPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo supplierProjectPage(@RequestBody EnterpriseBussinessSupplierProjectPageBody paramMap) throws Exception {
return enterpriseBussinessService.supplierProjectPage(paramMap); return enterpriseBussinessService.supplierProjectPage(paramMap);
} }
@ApiOperation(value = "中标项目详情(openApi)") @ApiOperation(value = "中标项目详情(openApi)")
@RequestMapping(value = "/projectDetail", method = RequestMethod.POST) @RequestMapping(value = "/projectDetail", method = RequestMethod.POST)
public R projectDetail(@RequestBody Map<String, Object> paramMap) throws Exception { public R projectDetail(@RequestBody EnterpriseBussinessProjectDetailBody paramMap) throws Exception {
return enterpriseBussinessService.projectDetail(paramMap); return enterpriseBussinessService.projectDetail(paramMap);
} }
@ApiOperation(value = "招标代理常合作代理机构列表(openApi)") @ApiOperation(value = "招标代理常合作代理机构列表(openApi)")
@RequestMapping(value = "/oftenAgencyPage",method = RequestMethod.POST) @RequestMapping(value = "/oftenAgencyPage",method = RequestMethod.POST)
public TableDataInfo oftenAgencyPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo oftenAgencyPage(@RequestBody EnterpriseBussinessOftenAgencyPageBody paramMap) throws Exception {
return enterpriseBussinessService.oftenAgencyPage(paramMap); return enterpriseBussinessService.oftenAgencyPage(paramMap);
} }
@ApiOperation(value = "招标合作明细列表(openApi)") @ApiOperation(value = "招标合作明细列表(openApi)")
@RequestMapping(value = "/bidCooperatePage", method = RequestMethod.POST) @RequestMapping(value = "/bidCooperatePage", method = RequestMethod.POST)
public TableDataInfo bidCooperatePage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo bidCooperatePage(@RequestBody EnterpriseBussinessBidCooperatePageBody paramMap) throws Exception {
return enterpriseBussinessService.bidCooperatePage(paramMap); return enterpriseBussinessService.bidCooperatePage(paramMap);
} }
@ApiOperation(value = "历史发包列表(openApi)") @ApiOperation(value = "历史发包列表(openApi)")
@RequestMapping(value = "/historySendPage", method = RequestMethod.POST) @RequestMapping(value = "/historySendPage", method = RequestMethod.POST)
public TableDataInfo historySendPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo historySendPage(@RequestBody EnterpriseBussinessHistorySendPageBody paramMap) throws Exception {
return enterpriseBussinessService.historySendPage(paramMap); return enterpriseBussinessService.historySendPage(paramMap);
} }
@ApiOperation(value = "历史发包省份(openApi)") @ApiOperation(value = "历史发包省份(openApi)")
@RequestMapping(value = "/historySendProvince", method = RequestMethod.POST) @RequestMapping(value = "/historySendProvince", method = RequestMethod.POST)
public R historySendProvince(@RequestBody Map<String, Object> paramMap) throws Exception { public R historySendProvince(@RequestBody EnterpriseBussinessHistorySendProvinceBody paramMap) throws Exception {
return enterpriseBussinessService.historySendProvince(paramMap); return enterpriseBussinessService.historySendProvince(paramMap);
} }
......
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseBussinessBidCooperatePageBody extends BasePage {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer tendereeId;
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer agencyId;
/**
* 查询关键字
*/
private String keys;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseBussinessClientPageBody extends BasePage {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
/**
* 查询关键字
*/
private String keys;
/*
* 排序字段:1金额倒序,2金额正序,3时间倒序,4时间正序,5次数倒序,6次数正序
*/
private Integer sort;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseBussinessClientProjectPageBody extends BasePage {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer unitId;
/**
* 查询关键字
*/
private String keys;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseBussinessHistorySendPageBody extends BasePage {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
/*
* 排序条件:1金额倒序,2金额正序,3时间倒序,4时间正序,7下浮率倒序,8下浮率正序,9工期倒序,10工期正序
*/
private Integer sort;
/**
* 开始时间(年月日)
*/
private String dateFrom;
/**
* 截止时间(年月日)
*/
private String dateTo;
/**
* 省份id(年月日)
*/
private String provinceId;
/**
* 最小金额
*/
private Double amountMin;
/**
* 最大金额
*/
private Double amountMax;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseBussinessHistorySendProvinceBody {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseBussinessOftenAgencyPageBody extends BasePage {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
/**
* 查询关键字
*/
private String keys;
/*
* 排序字段:3时间倒序,4时间正序,5次数倒序,6次数正序
*/
private Integer sort;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseBussinessProjectDetailBody {
/**
* id
*/
@NotNull(message = "id不能为空")
private Integer id;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseBussinessSupplierPageBody extends BasePage {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
/**
* 查询关键字
*/
private String keys;
/*
* 排序字段:1金额倒序,2金额正序,3时间倒序,4时间正序,5次数倒序,6次数正序
*/
private Integer sort;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseBussinessSupplierProjectPageBody extends BasePage {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer unitId;
/**
* 查询关键字
*/
private String keys;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseBussinessTenderDetailBody {
/**
* id
*/
@NotNull(message = "id不能为空")
private Integer id;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseBussinessTenderPageBody extends BasePage {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
/**
* 查询关键字
*/
private String keys;
}
...@@ -46,6 +46,7 @@ ...@@ -46,6 +46,7 @@
"file-saver": "2.0.5", "file-saver": "2.0.5",
"fuse.js": "6.4.3", "fuse.js": "6.4.3",
"highlight.js": "9.18.5", "highlight.js": "9.18.5",
"jquery": "^3.7.0",
"js-beautify": "1.13.0", "js-beautify": "1.13.0",
"js-cookie": "3.0.1", "js-cookie": "3.0.1",
"js-md5": "^0.7.3", "js-md5": "^0.7.3",
......
...@@ -86,6 +86,14 @@ ...@@ -86,6 +86,14 @@
border-radius: 2px; border-radius: 2px;
line-height: 28px; line-height: 28px;
cursor: pointer; cursor: pointer;
.rig {
position: absolute;
left: 0;
padding: 0;
white-space: nowrap;
visibility: hidden;
height: 0;
}
&:hover{ &:hover{
background: #F3F4F5; background: #F3F4F5;
} }
...@@ -155,18 +163,26 @@ ...@@ -155,18 +163,26 @@
display: inline-block; display: inline-block;
margin-top: 1px; margin-top: 1px;
width: calc(100% - 116px); width: calc(100% - 116px);
.spanText {
position: absolute;
left: 0;
padding: 0;
white-space: nowrap;
visibility: hidden;
height: 0;
}
.el-input{ .el-input{
float: left; float: left;
margin-right: 8px; margin-right: 8px;
width: 70px; min-width: 70px;
width: auto;
margin-bottom: 10px; margin-bottom: 10px;
.el-input__inner{ .el-input__inner{
width: 70px; min-width: 70px;
padding: 0 14px;
height: 24px; height: 24px;
background: #F3F4F5; background: #F3F4F5;
border-radius: 2px; border-radius: 2px;
padding: 0;
text-indent: 14px;
border: 0; border: 0;
} }
} }
...@@ -472,7 +488,7 @@ ...@@ -472,7 +488,7 @@
padding-top: 8px; padding-top: 8px;
padding-right: 0; padding-right: 0;
.btn{ .btn{
border-radius: 0; border-radius: 2px;
width: 80px; width: 80px;
} }
} }
...@@ -569,6 +585,7 @@ ...@@ -569,6 +585,7 @@
border: 0; border: 0;
padding: 0; padding: 0;
text-indent: 8px; text-indent: 8px;
float: left;
} }
} }
.wr_bot{ .wr_bot{
...@@ -1105,3 +1122,6 @@ ...@@ -1105,3 +1122,6 @@
} }
.none{display: none} .none{display: none}
.el-popper[x-placement^=bottom]{
margin-top: 0 !important;
}
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
width="441"> width="441">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="ps1"> <div class="ps1">
<div class="wordprimary ps2" @click="toDetail(scope.row.companyId,'')">{{scope.row.companyName}}</div> <div class="wordprimary ps2" @click="toDetail(scope.row,'')">{{scope.row.companyName}}</div>
<div class="ps3"> <div class="ps3">
<div @click="toDetail(scope.row,'gjjl')">写跟进<img src="@/assets/images/project/edit_1.png"></div> <div @click="toDetail(scope.row,'gjjl')">写跟进<img src="@/assets/images/project/edit_1.png"></div>
<div @click="toDetail(scope.row,'preference')">编辑信息<img src="@/assets/images/project/edit_2.png"></div> <div @click="toDetail(scope.row,'preference')">编辑信息<img src="@/assets/images/project/edit_2.png"></div>
...@@ -239,11 +239,13 @@ ...@@ -239,11 +239,13 @@
import prvinceTree from '@/assets/json/provinceTree' import prvinceTree from '@/assets/json/provinceTree'
import batchimport from '../../project/projectList/component/batchImport' import batchimport from '../../project/projectList/component/batchImport'
import axios from 'axios' import axios from 'axios'
import {encodeStr} from "@/assets/js/common"
export default { export default {
name: 'CustomList', name: 'CustomList',
components:{batchimport}, components:{batchimport},
data() { data() {
return{ return{
encodeStr,
pldr: false, pldr: false,
types:'custom', types:'custom',
searchParam:{ searchParam:{
...@@ -318,7 +320,7 @@ export default { ...@@ -318,7 +320,7 @@ export default {
let customerId = row.customerId let customerId = row.customerId
let companyId = row.companyId let companyId = row.companyId
let path = type let path = type
this.$router.push({path:'/party/party-a',query:{customerId:customerId,companyId:companyId,path:path}}) this.$router.push({path:'/enterprise/'+encodeStr(companyId),query:{customerId:customerId,path:path}})
}, },
//翻页 //翻页
handleCurrentChange(val) { handleCurrentChange(val) {
......
...@@ -223,13 +223,19 @@ export default { ...@@ -223,13 +223,19 @@ export default {
type: 'category', type: 'category',
data: ['地方单位', '事业单位', '政府机关', '中央企业', '上市公司', '军队', '民营企业','其他'], data: ['地方单位', '事业单位', '政府机关', '中央企业', '上市公司', '军队', '民营企业','其他'],
axisTick: { axisTick: {
alignWithLabel: true alignWithLabel: true,
show: false
} }
} }
], ],
yAxis: [ yAxis: [
{ {
type: 'value' type: 'value',
splitLine : { //网格线
lineStyle: {
type: 'dashed' //设置网格线类型 dotted:虚线 solid:实线
},
}
} }
], ],
series: [ series: [
...@@ -267,13 +273,19 @@ export default { ...@@ -267,13 +273,19 @@ export default {
type: 'category', type: 'category',
data: ['AA', 'AA+', 'AA-', 'A', 'A+', 'A', 'A-','其他'], data: ['AA', 'AA+', 'AA-', 'A', 'A+', 'A', 'A-','其他'],
axisTick: { axisTick: {
alignWithLabel: true alignWithLabel: true,
show: false
} }
} }
], ],
yAxis: [ yAxis: [
{ {
type: 'value' type: 'value',
splitLine : { //网格线
lineStyle: {
type: 'dashed' //设置网格线类型 dotted:虚线 solid:实线
},
}
} }
], ],
series: [ series: [
...@@ -301,10 +313,18 @@ export default { ...@@ -301,10 +313,18 @@ export default {
this.option1 = { this.option1 = {
xAxis: { xAxis: {
type: 'category', type: 'category',
data: labels data: labels,
axisTick: {
show: false
},
}, },
yAxis: { yAxis: {
type: 'value' type: 'value',
splitLine : { //网格线
lineStyle: {
type: 'dashed' //设置网格线类型 dotted:虚线 solid:实线
},
}
}, },
grid:{ grid:{
left:'8%', left:'8%',
...@@ -349,6 +369,7 @@ export default { ...@@ -349,6 +369,7 @@ export default {
global: false global: false
} }
}, },
symbolSize:8,
} }
] ]
} }
...@@ -509,6 +530,7 @@ export default { ...@@ -509,6 +530,7 @@ export default {
&.on{ &.on{
background: #0081FF; background: #0081FF;
color: #FFFFFF; color: #FFFFFF;
border-color: #0081FF;
} }
&:first-child{ &:first-child{
border-radius: 2px 0px 0px 2px; border-radius: 2px 0px 0px 2px;
......
...@@ -18,8 +18,8 @@ ...@@ -18,8 +18,8 @@
</div> </div>
<div class="table-item"> <div class="table-item">
<div class="table-title"> <div class="table-title">
<span class="title">指标</span> <span class="span-tit">指标</span>
<span class="title"> <span class="span-tit">
<span class="address" v-if="value1Flag">{{addressValue1}}<i class="el-icon-circle-close" @click="handleDelete(1)"></i></span> <span class="address" v-if="value1Flag">{{addressValue1}}<i class="el-icon-circle-close" @click="handleDelete(1)"></i></span>
<el-cascader <el-cascader
v-else v-else
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
@change="handleChange(1)" @change="handleChange(1)"
placeholder="添加地区"></el-cascader> placeholder="添加地区"></el-cascader>
</span> </span>
<span class="title"> <span class="span-tit">
<span class="address" v-if="value2Flag">{{addressValue2}}<i class="el-icon-circle-close" @click="handleDelete(2)"></i></span> <span class="address" v-if="value2Flag">{{addressValue2}}<i class="el-icon-circle-close" @click="handleDelete(2)"></i></span>
<el-cascader <el-cascader
v-else v-else
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
@change="handleChange(2)" @change="handleChange(2)"
placeholder="添加地区"></el-cascader> placeholder="添加地区"></el-cascader>
</span> </span>
<span class="title"> <span class="span-tit">
<span class="address" v-if="value3Flag">{{addressValue3}}<i class="el-icon-circle-close" @click="handleDelete(3)"></i></span> <span class="address" v-if="value3Flag">{{addressValue3}}<i class="el-icon-circle-close" @click="handleDelete(3)"></i></span>
<el-cascader <el-cascader
v-else v-else
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
@change="handleChange(3)" @change="handleChange(3)"
placeholder="添加地区"></el-cascader> placeholder="添加地区"></el-cascader>
</span> </span>
<span class="title"> <span class="span-tit">
<span class="address" v-if="value4Flag">{{addressValue4}}<i class="el-icon-circle-close" @click="handleDelete(4)"></i></span> <span class="address" v-if="value4Flag">{{addressValue4}}<i class="el-icon-circle-close" @click="handleDelete(4)"></i></span>
<el-cascader <el-cascader
v-else v-else
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
@change="handleChange(4)" @change="handleChange(4)"
placeholder="添加地区"></el-cascader> placeholder="添加地区"></el-cascader>
</span> </span>
<span class="title"> <span class="span-tit">
<span class="address" v-if="value5Flag">{{addressValue5}}<i class="el-icon-circle-close" @click="handleDelete(5)"></i></span> <span class="address" v-if="value5Flag">{{addressValue5}}<i class="el-icon-circle-close" @click="handleDelete(5)"></i></span>
<el-cascader <el-cascader
v-else v-else
...@@ -377,39 +377,40 @@ export default { ...@@ -377,39 +377,40 @@ export default {
}, },
handleVisibleChange(flag,index){ handleVisibleChange(flag,index){
if(!flag){ if(!flag){
switch (index) { if(this.value1 || this.value2 || this.value3 || this.value4 || this.value5){
case 1: switch (index) {
this.value1Flag=true case 1:
break; this.value1Flag=true
case 2: break;
this.value2Flag=true case 2:
break; this.value2Flag=true
case 3: break;
this.value3Flag=true case 3:
break; this.value3Flag=true
case 4: break;
this.value4Flag=true case 4:
break; this.value4Flag=true
case 5: break;
this.value5Flag=true case 5:
break; this.value5Flag=true
} break;
const params = { year: this.queryParams.year,type:3 } }
let code=[]; const params = { year: this.queryParams.year,type:3 }
for (var i in this.regionData) { let code=[];
code=this.regionData[i].path for (var i in this.regionData) {
} code=this.regionData[i].path
if(code.length >= 1){ }
params.provinceId=code[0] if(code.length >= 1){
} params.provinceId=code[0]
if(code.length >= 2){ }
params.cityId=code[1] if(code.length >= 2){
} params.cityId=code[1]
if(code.length >= 3){ }
params.areaId=code[2] if(code.length >= 3){
params.areaId=code[2]
}
this.getData(params,index)
} }
this.getData(params,index)
} }
}, },
handleChange(index) { handleChange(index) {
...@@ -494,20 +495,33 @@ export default { ...@@ -494,20 +495,33 @@ export default {
switch (index) { switch (index) {
case 1: case 1:
this.addressValue1=''; this.addressValue1='';
this.value1='';
this.value1Flag=false
break; break;
case 2: case 2:
this.addressValue2=''; this.addressValue2='';
this.value2='';
this.value2Flag=false
break; break;
case 3: case 3:
this.addressValue3=''; this.addressValue3='';
this.value3='';
this.value3Flag=false
break; break;
case 4: case 4:
this.addressValue4=''; this.addressValue4='';
this.value4='';
this.value4Flag=false
break; break;
case 5: case 5:
this.addressValue5=''; this.addressValue5='';
this.value5='';
this.value5Flag=false
break; break;
} }
this.tableData.splice(index-1,1,{})
this.$forceUpdate();
}, },
formatStatus: function(row, column, cellValue) { formatStatus: function(row, column, cellValue) {
if(row.title === '经济'||row.title === '财政'||row.title === '债务'){ if(row.title === '经济'||row.title === '财政'||row.title === '债务'){
...@@ -570,7 +584,7 @@ export default { ...@@ -570,7 +584,7 @@ export default {
/*justify-content:space-around;*/ /*justify-content:space-around;*/
border: 1px solid #E6EAF1; border: 1px solid #E6EAF1;
border-bottom: 0; border-bottom: 0;
.title{ .span-tit{
display: inline-block; display: inline-block;
width: 16.7%; width: 16.7%;
height: 50px; height: 50px;
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<span class="common-title">全国建筑企业概览</span> <span class="common-title">全国建筑企业概览</span>
</div> </div>
</div> </div>
<div class="text">截止{{currentdate}},全国共有建筑工程施工总承包资质的企业{{total}}家,其中特级资质企业{{glDetail.tjCount}}家,占比{{glDetail.tjRate}}%;一级资质企业{{glDetail.tjCount}}家,占比{{glDetail.oneRate}}%;二级资质企业{{glDetail.twoCount}}家,占比{{glDetail.twoRate}}%;三级资质企业{{glDetail.threeCount}}家,占比{{glDetail.threeRate}}%</div> <div class="text">截止{{currentdate}},全国共有{{glDetail.major}}资质的企业{{total}}家,其中特级资质企业{{glDetail.tjCount}}家,占比{{glDetail.tjRate}}%;一级资质企业{{glDetail.tjCount}}家,占比{{glDetail.oneRate}}%;二级资质企业{{glDetail.twoCount}}家,占比{{glDetail.twoRate}}%;三级资质企业{{glDetail.threeCount}}家,占比{{glDetail.threeRate}}%</div>
<div class="main1"> <div class="main1">
<div style="height: 300px;"> <div style="height: 300px;">
<div class="left"> <div class="left">
......
...@@ -305,10 +305,19 @@ export default { ...@@ -305,10 +305,19 @@ export default {
this.option = { this.option = {
xAxis: { xAxis: {
type: 'category', type: 'category',
data: labels data: labels,
axisTick: {
show: false
},
}, },
yAxis: { yAxis: {
type: 'value' type: 'value',
splitNumber: 5,
splitLine : { //网格线
lineStyle: {
type: 'dashed' //设置网格线类型 dotted:虚线 solid:实线
},
}
}, },
grid:{ grid:{
left:'4%', left:'4%',
...@@ -325,7 +334,10 @@ export default { ...@@ -325,7 +334,10 @@ export default {
legend: { legend: {
left: '12px', left: '12px',
top:"15px", top:"15px",
data: ['成交金额', '储备项目', '跟进动态'] data: ['成交金额', '储备项目', '跟进动态'],
itemHeight: 8, // 修改icon图形大小
itemGap: 20
}, },
series: [ series: [
{ {
...@@ -349,7 +361,7 @@ export default { ...@@ -349,7 +361,7 @@ export default {
}, },
itemStyle: { itemStyle: {
normal:{ normal:{
color:'#0081FF' color:'#0081FF',
} }
}, },
label:{ label:{
...@@ -357,6 +369,7 @@ export default { ...@@ -357,6 +369,7 @@ export default {
show:false show:false
} }
}, },
symbolSize:8,
}, },
{ {
name: '储备项目', name: '储备项目',
...@@ -387,6 +400,7 @@ export default { ...@@ -387,6 +400,7 @@ export default {
show:false show:false
} }
}, },
symbolSize:8,
}, },
{ {
name: '跟进动态', name: '跟进动态',
...@@ -417,6 +431,7 @@ export default { ...@@ -417,6 +431,7 @@ export default {
show:false show:false
} }
}, },
symbolSize:8,
}, },
] ]
} }
...@@ -504,17 +519,23 @@ export default { ...@@ -504,17 +519,23 @@ export default {
.ss{ .ss{
color: #0CBC6D; color: #0CBC6D;
padding-left: 3px; padding-left: 3px;
position: relative;
>img{ >img{
width: 8px; width: 8px;
margin-top: -3px; margin-top: 0px;
position: absolute;
margin-left: 8px;
} }
} }
.xj{ .xj{
color: #FF3C3C; color: #FF3C3C;
padding-left: 3px; padding-left: 3px;
position: relative;
>img{ >img{
width: 8px; width: 8px;
margin-top: -3px; margin-top: 1px;
position: absolute;
margin-left: 8px;
} }
} }
} }
...@@ -580,12 +601,15 @@ export default { ...@@ -580,12 +601,15 @@ export default {
height: auto; height: auto;
width: calc(100% - 369px); width: calc(100% - 369px);
.records{ .records{
margin-top: -17px; margin-top: 2px;
height: 627px; height: 627px;
overflow-y: auto; overflow-y: auto;
width: 100%; width: 100%;
padding-right: 47px; padding-right: 47px;
box-sizing: border-box; box-sizing: border-box;
.recordlist{
padding-top: 0;
}
} }
} }
} }
...@@ -616,6 +640,7 @@ export default { ...@@ -616,6 +640,7 @@ export default {
&.on{ &.on{
background: #0081FF; background: #0081FF;
color: #FFFFFF; color: #FFFFFF;
border-color: #0081FF;
} }
&:first-child{ &:first-child{
border-radius: 2px 0px 0px 2px; border-radius: 2px 0px 0px 2px;
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
:visible.sync="isshow" :visible.sync="isshow"
@close="resetForm('ruleForm')" @close="resetForm('ruleForm')"
> >
<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>
...@@ -15,7 +16,7 @@ ...@@ -15,7 +16,7 @@
</el-form-item> </el-form-item>
<el-form-item label="业主单位:" class="row" prop="ownerCompany"> <el-form-item label="业主单位:" class="row" prop="ownerCompany">
<el-input type="text" placeholder="请输入" v-model="queryParam.ownerCompany" @input="getCompany"></el-input> <el-input type="text" placeholder="请输入" v-model="queryParam.ownerCompany" @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>
...@@ -48,6 +49,7 @@ ...@@ -48,6 +49,7 @@
<div class="btn btn_primary h32" @click="submitForm('ruleForm')">新建商机</div> <div class="btn btn_primary h32" @click="submitForm('ruleForm')">新建商机</div>
</div> </div>
</el-form> </el-form>
</div>
</el-dialog> </el-dialog>
</template> </template>
...@@ -107,6 +109,14 @@ ...@@ -107,6 +109,14 @@
}) })
}, },
methods:{ methods:{
handleALL(event){
var one = document.getElementById("box");
if(one){
if(!one.contains(event.target)){
this.showlist = false
}
}
},
//获取建设库客户 //获取建设库客户
getCompany(value){ getCompany(value){
if (value.length>=2){ if (value.length>=2){
......
...@@ -16,10 +16,10 @@ ...@@ -16,10 +16,10 @@
:headers="headers" :headers="headers"
:on-success="onSuccess"> :on-success="onSuccess">
<img class="up_img" src="@/assets/images/project/upload.png"> <img class="up_img" src="@/assets/images/project/upload.png">
<div class="up_text">点击选择或将文件(xls,xlsx)拖拽至此上传成员名录</div> <div class="up_text">点击选择或将文件(xls,xlsx)拖拽至此上传项目表格</div>
<div class="up_tip">导入的文件内容必须依照下载模板的要求填写</div> <div class="up_tip">导入的文件内容必须依照下载模板的要求填写</div>
<div class="up_tip">上传文件最大为2M,仅支持Excel表格文件(xls,xlsx)</div> <div class="up_tip">上传文件最大为2M,仅支持Excel表格文件(xls,xlsx)</div>
<div class="up_tip">导入已存在的客户将自动跳过</div> <div class="up_tip">导入已存在的{{titletext}}将自动跳过</div>
</el-upload> </el-upload>
<div class="up_success" v-if="isUpload == true"> <div class="up_success" v-if="isUpload == true">
<img src="@/assets/images/project/success.png">上传成功 <img src="@/assets/images/project/success.png">上传成功
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
<div class="p3"> <div class="p3">
<img src="@/assets/images/project/success.png">查询成功 <img src="@/assets/images/project/success.png">查询成功
</div> </div>
<div class="p2">成功导入{{successCount}}{{titletext}}信息</div> <div class="p2">导入成功,已为您去掉重复{{titletext}}{{successCount}}</div>
<div class="btns"> <div class="btns">
<div class="btn btn_primary h32" @click="getmsg">查看</div> <div class="btn btn_primary h32" @click="getmsg">查看</div>
</div> </div>
...@@ -79,12 +79,12 @@ ...@@ -79,12 +79,12 @@
created(){ created(){
if(this.importtype == 'project'){//项目管理 if(this.importtype == 'project'){//项目管理
this.downloadhref = '/file/projectTemplate.xlsx' this.downloadhref = '/file/projectTemplate.xlsx'
this.titletext = '商机' this.titletext = '项目'
this.action = process.env.VUE_APP_BASE_API + '/business/info/upload' this.action = process.env.VUE_APP_BASE_API + '/business/info/upload'
} }
if(this.importtype == 'custom'){//客户管理 if(this.importtype == 'custom'){//客户管理
this.downloadhref = '/file/Template.xlsx' this.downloadhref = '/file/Template.xlsx'
this.titletext = '客户' this.titletext = '企业'
this.action = process.env.VUE_APP_BASE_API + "/customer/importData" this.action = process.env.VUE_APP_BASE_API + "/customer/importData"
} }
}, },
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<div class="row"> <div class="row">
<div class="con"> <div class="con">
<span>总投资额(万元) :</span> <span>总投资额(万元) :</span>
<div class="inputxt"> <div class="inputxt" id="inputxt1">
<div class="flex" v-if="nowedit == 1"> <div class="flex" v-if="nowedit == 1">
<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">
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
</div> </div>
<div class="con i"> <div class="con i">
<span>资金来源 :</span> <span>资金来源 :</span>
<div class="inputxt"> <div class="inputxt" id="inputxt2">
<div class="flex" v-if="nowedit == 2"> <div class="flex" v-if="nowedit == 2">
<el-input placeholder="待添加" v-model="amountSource"></el-input> <el-input placeholder="待添加" v-model="amountSource"></el-input>
<div class="flex"> <div class="flex">
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<div class="row"> <div class="row">
<div class="con"> <div class="con">
<span>建设性质 :</span> <span>建设性质 :</span>
<div class="inputxt"> <div class="inputxt" id="inputxt3">
<div class="flex" v-if="nowedit == 3"> <div class="flex" v-if="nowedit == 3">
<el-input placeholder="待添加" v-model="buildProperty"></el-input> <el-input placeholder="待添加" v-model="buildProperty"></el-input>
<div class="flex"> <div class="flex">
...@@ -95,8 +95,8 @@ ...@@ -95,8 +95,8 @@
</el-card> </el-card>
<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 v-model="projectDetails" @focus="nowedit = 9" class="textarea" type="textarea" placeholder="请输入项目概况与建设规模详细信息" maxlength="500" :show-word-limit="true" ></el-input> <el-input id="inputxt9" 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>
...@@ -111,7 +111,7 @@ ...@@ -111,7 +111,7 @@
<div class="row"> <div class="row">
<div class="con"> <div class="con">
<span>评标办法 :</span> <span>评标办法 :</span>
<div class="inputxt"> <div class="inputxt" id="inputxt4">
<div class="flex" v-if="nowedit == 4"> <div class="flex" v-if="nowedit == 4">
<el-input placeholder="待添加" v-model="evaluationBidWay"></el-input> <el-input placeholder="待添加" v-model="evaluationBidWay"></el-input>
<div class="flex"> <div class="flex">
...@@ -140,7 +140,7 @@ ...@@ -140,7 +140,7 @@
<div class="row"> <div class="row">
<div class="con"> <div class="con">
<span>保证金缴纳 :</span> <span>保证金缴纳 :</span>
<div class="inputxt"> <div class="inputxt" id="inputxt5">
<div class="flex" v-if="nowedit == 5"> <div class="flex" v-if="nowedit == 5">
<el-input placeholder="待添加" v-model="earnestMoneyPay"></el-input> <el-input placeholder="待添加" v-model="earnestMoneyPay"></el-input>
<div class="flex"> <div class="flex">
...@@ -153,7 +153,7 @@ ...@@ -153,7 +153,7 @@
</div> </div>
<div class="con i"> <div class="con i">
<span>保证金金额(万元) :</span> <span>保证金金额(万元) :</span>
<div class="inputxt"> <div class="inputxt" id="inputxt6">
<div class="flex" v-if="nowedit == 6"> <div class="flex" v-if="nowedit == 6">
<el-input placeholder="待添加" v-model="earnestMoney"></el-input> <el-input placeholder="待添加" v-model="earnestMoney"></el-input>
<div class="flex"> <div class="flex">
...@@ -168,7 +168,7 @@ ...@@ -168,7 +168,7 @@
<div class="row"> <div class="row">
<div class="con"> <div class="con">
<span>开标地点 :</span> <span>开标地点 :</span>
<div class="inputxt"> <div class="inputxt" id="inputxt7">
<div class="flex" v-if="nowedit == 7"> <div class="flex" v-if="nowedit == 7">
<el-input placeholder="待添加" v-model="bidOpenPlace"></el-input> <el-input placeholder="待添加" v-model="bidOpenPlace"></el-input>
<div class="flex"> <div class="flex">
...@@ -181,7 +181,7 @@ ...@@ -181,7 +181,7 @@
</div> </div>
<div class="con i"> <div class="con i">
<span>评标委员会 :</span> <span>评标委员会 :</span>
<div class="inputxt"> <div class="inputxt" id="inputxt8">
<div class="flex" v-if="nowedit == 8"> <div class="flex" v-if="nowedit == 8">
<el-input placeholder="待添加" v-model="evaluationBidCouncil"></el-input> <el-input placeholder="待添加" v-model="evaluationBidCouncil"></el-input>
<div class="flex"> <div class="flex">
...@@ -230,6 +230,22 @@ ...@@ -230,6 +230,22 @@
}, },
watch:{ watch:{
}, },
mounted(){
document.addEventListener('mouseup',(e) => {
let j = 0
for(var i=1;i<=9;i++){
let isSelf = document.getElementById('inputxt'+i).contains(event.target) // 这个是自己的区域
if(isSelf) {
this.nowedit = i
}else {
j++;
}
}
if(j == 9){
this.nowedit = -1
}
})
},
created(){ created(){
this.getJSNR() this.getJSNR()
}, },
......
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="bottems"> <div class="bottems">
<div class="btn btn_primary h28" @click="opennew"><div class="img img1"></div>新增联系人</div> <div class="btn btn_primary h28" @click="opennew" v-if="total>0"><div class="img img1"></div>新增联系人</div>
<el-pagination v-if="total>searchParam.pageSize" <el-pagination v-if="total>searchParam.pageSize"
background background
:page-size="searchParam.pageSize" :page-size="searchParam.pageSize"
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<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"> <div class="searchbtns" v-if="tableData.total>0">
<el-select class="select" placeholder="企业类型" v-model="searchParam.companyType" @change="handleCurrentChange(1)"> <el-select class="select" placeholder="企业类型" 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>
...@@ -230,8 +230,10 @@ ...@@ -230,8 +230,10 @@
cancel(type){ cancel(type){
if(type == 0) if(type == 0)
this.dialogVisible = false this.dialogVisible = false
else else{
this.dialogVisible = true
this.hzhbVisible = false this.hzhbVisible = false
}
}, },
totype(value){ totype(value){
this.types = value this.types = value
...@@ -243,7 +245,8 @@ ...@@ -243,7 +245,8 @@
this.typename = this.typelist[index] this.typename = this.typelist[index]
} }
}) })
this.hzhbVisible=true this.hzhbVisible = true
this.dialogVisible = false
}, },
//打开新建窗口 //打开新建窗口
opennew(){ opennew(){
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<div class="row"> <div class="row">
<div class="con"> <div class="con">
<span>项目级别 :</span> <span>项目级别 :</span>
<div class="inputxt"> <div class="inputxt" id="inputxt1">
<div class="flex" v-if="nowedit == 1"> <div class="flex" v-if="nowedit == 1">
<el-input placeholder="待添加" v-model="xmsldata.projectLevel"></el-input> <el-input placeholder="待添加" v-model="xmsldata.projectLevel"></el-input>
<div class="flex"> <div class="flex">
...@@ -37,7 +37,9 @@ ...@@ -37,7 +37,9 @@
<span style="float: left;margin-top: 2px">项目标签 :</span> <span style="float: left;margin-top: 2px">项目标签 :</span>
<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>
<el-input placeholder="待添加" v-model="tipsvalue"></el-input> <div style="position: relative">
<el-input placeholder="待添加" v-model="tipsvalue" @input="getValue" :style="spanWidth"></el-input><span class="spanText">{{ tipsvalue }}</span>
</div>
<div class="addbtn" @click="addtips"></div> <div class="addbtn" @click="addtips"></div>
</div> </div>
</div> </div>
...@@ -50,7 +52,7 @@ ...@@ -50,7 +52,7 @@
<div class="row"> <div class="row">
<div class="con"> <div class="con">
<span>主管单位 :</span> <span>主管单位 :</span>
<div class="inputxt"> <div class="inputxt" id="inputxt2">
<div class="flex" v-if="nowedit == 2"> <div class="flex" v-if="nowedit == 2">
<el-input placeholder="待添加" v-model="xmsldata.supervisorUnit"></el-input> <el-input placeholder="待添加" v-model="xmsldata.supervisorUnit"></el-input>
<div class="flex"> <div class="flex">
...@@ -63,7 +65,7 @@ ...@@ -63,7 +65,7 @@
</div> </div>
<div class="con i"> <div class="con i">
<span>建设单位 :</span> <span>建设单位 :</span>
<div class="inputxt"> <div class="inputxt" id="inputxt3" :style="{width:rig1}">
<div class="flex" v-if="nowedit == 3"> <div class="flex" v-if="nowedit == 3">
<el-input placeholder="待添加" v-model="xmsldata.constructionUnit"></el-input> <el-input placeholder="待添加" v-model="xmsldata.constructionUnit"></el-input>
<div class="flex"> <div class="flex">
...@@ -72,13 +74,14 @@ ...@@ -72,13 +74,14 @@
</div> </div>
</div> </div>
<span :class="{txt:!xmsldata.constructionUnit}" v-else @click="nowedit = 3">{{xmsldata.constructionUnit||'待添加'}}</span> <span :class="{txt:!xmsldata.constructionUnit}" v-else @click="nowedit = 3">{{xmsldata.constructionUnit||'待添加'}}</span>
<span class="rig rig1">{{xmsldata.constructionUnit}}</span>
</div> </div>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="con"> <div class="con">
<span>主管单位负责人 :</span> <span>主管单位负责人 :</span>
<div class="inputxt"> <div class="inputxt" id="inputxt4">
<div class="flex" v-if="nowedit == 4"> <div class="flex" v-if="nowedit == 4">
<el-input placeholder="待添加" v-model="xmsldata.supervisorPrincipal"></el-input> <el-input placeholder="待添加" v-model="xmsldata.supervisorPrincipal"></el-input>
<div class="flex"> <div class="flex">
...@@ -91,7 +94,7 @@ ...@@ -91,7 +94,7 @@
</div> </div>
<div class="con i"> <div class="con i">
<span>建设单位负责人 :</span> <span>建设单位负责人 :</span>
<div class="inputxt"> <div class="inputxt" id="inputxt5">
<div class="flex" v-if="nowedit == 5"> <div class="flex" v-if="nowedit == 5">
<el-input placeholder="待添加" v-model="xmsldata.constructionPrincipal"></el-input> <el-input placeholder="待添加" v-model="xmsldata.constructionPrincipal"></el-input>
<div class="flex"> <div class="flex">
...@@ -106,7 +109,7 @@ ...@@ -106,7 +109,7 @@
<div class="row"> <div class="row">
<div class="con"> <div class="con">
<span>主管单位联系电话 :</span> <span>主管单位联系电话 :</span>
<div class="inputxt"> <div class="inputxt" id="inputxt6">
<div class="flex" v-if="nowedit == 6"> <div class="flex" v-if="nowedit == 6">
<el-input placeholder="待添加" v-model="xmsldata.supervisorPhone"></el-input> <el-input placeholder="待添加" v-model="xmsldata.supervisorPhone"></el-input>
<div class="flex"> <div class="flex">
...@@ -119,7 +122,7 @@ ...@@ -119,7 +122,7 @@
</div> </div>
<div class="con i"> <div class="con i">
<span>建设单位联系电话 :</span> <span>建设单位联系电话 :</span>
<div class="inputxt"> <div class="inputxt" id="inputxt7">
<div class="flex" v-if="nowedit == 7"> <div class="flex" v-if="nowedit == 7">
<el-input placeholder="待添加" v-model="xmsldata.constructionPhone"></el-input> <el-input placeholder="待添加" v-model="xmsldata.constructionPhone"></el-input>
<div class="flex"> <div class="flex">
...@@ -189,6 +192,8 @@ ...@@ -189,6 +192,8 @@
projectStage:[],//项目阶段 projectStage:[],//项目阶段
id: this.detailId ? this.detailId : this.$route.query.id, id: this.detailId ? this.detailId : this.$route.query.id,
xmsldata:this.datas, xmsldata:this.datas,
spanWidth:'width: 70px',
rig1:'184px',
} }
}, },
created(){ created(){
...@@ -198,7 +203,34 @@ ...@@ -198,7 +203,34 @@
}) })
this.getXMSL() this.getXMSL()
}, },
mounted(){
document.addEventListener('mouseup',(e) => {
let j = 0
for(var i=1;i<=7;i++){
let isSelf = document.getElementById('inputxt'+i).contains(event.target) // 这个是自己的区域
if(isSelf) {
this.nowedit = i
}else {
j++;
}
}
if(j == 7){
this.nowedit = -1
}
})
},
methods:{ methods:{
getValue(){
const spanStyle = document.querySelector(".spanText");
this.$nextTick(() => { // 如果不用$nextTick的话页面并不会更新,它是在下次dom更新后再渲染到页面上
let wid =
spanStyle.offsetWidth <= 70
? "70px"
: spanStyle.offsetWidth + 28 + "px";
this.spanWidth = 'width:'+wid
});
},
editXMSL(param){ editXMSL(param){
let params = param let params = param
params.id = this.id params.id = this.id
...@@ -270,6 +302,15 @@ ...@@ -270,6 +302,15 @@
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
const spanStyle = document.querySelector(".rig1");
this.$nextTick(() => { // 如果不用$nextTick的话页面并不会更新,它是在下次dom更新后再渲染到页面上
this.rig1 =
spanStyle.offsetWidth <= 184
? "184px"
: spanStyle.offsetWidth + "px";
});
}) })
}, },
} }
...@@ -280,4 +321,7 @@ ...@@ -280,4 +321,7 @@
.select-popper{ .select-popper{
top: 3px; top: 3px;
} }
.inputxt .flex{
background: #fff;
}
</style> </style>
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<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"> <div class="searchbtns" v-if="fileDatas.rows != null && fileDatas.rows.length>0">
<div class="searchInput"> <div class="searchInput">
<el-input type="text" v-model="param.keyword" placeholder="输入关键词查询"></el-input> <el-input type="text" v-model="param.keyword" placeholder="输入关键词查询"></el-input>
<div class="btn" @click="handleCurrentChange(1)">搜索</div> <div class="btn" @click="handleCurrentChange(1)">搜索</div>
...@@ -199,12 +199,6 @@ ...@@ -199,12 +199,6 @@
downnlod(row){ downnlod(row){
let param = {filePath:row.filePath} let param = {filePath:row.filePath}
this.$download.exportByPost('/business/file/download',param); this.$download.exportByPost('/business/file/download',param);
// let a = document.createElement("a");
// a.setAttribute("href", row.filePath);
// a.setAttribute("download", row.name);
// document.body.appendChild(a);
// a.click();
}, },
delQY(){ delQY(){
......
<template> <template>
<div> <div @click="handleALL">
<div class="miantitle"> <div class="miantitle">
<template v-if="!detailId"> <template v-if="!detailId">
<span>项目管理</span> <span>项目管理</span>
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
</div> </div>
</span> </span>
</div> </div>
<div class="det-con con" > <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">
...@@ -197,6 +197,16 @@ ...@@ -197,6 +197,16 @@
this.getXMSL() this.getXMSL()
}, },
methods: { methods: {
handleALL(event){
var one = document.getElementById("inputxt");
if(one){
if(!one.contains(event.target)){
this.nowedit = -1
}else{
this.nowedit = 3
}
}
},
getXMSL(){ getXMSL(){
getXMSL(this.id).then(result=>{ getXMSL(this.id).then(result=>{
this.ProjectData = result.code==200?result.data:{} this.ProjectData = result.code==200?result.data:{}
......
...@@ -114,29 +114,31 @@ ...@@ -114,29 +114,31 @@
<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>{{item.nickName}} <font color="#FA8A00">正在跟进</font></span></div>
<div class="det-tips"><span class="tips tip1" v-if="item.label">{{item.label}}</span><span v-if="item.address" class="tips tip2">{{item.address}}</span></div> <div class="det-tips">
<span class="tips tip1" v-for="label in item.labels">{{label}}</span>
<span v-if="item.address" class="tips tip2">{{item.address}}</span></div>
<div class="det-contets"> <div class="det-contets">
<div class="det-con"> <div class="det-con" v-if="item.projectType">
<span>项目类型:</span> <span>项目类型:</span>
<span>{{item.projectType || '--'}}</span> <span>{{item.projectType}}</span>
</div> </div>
<div class="det-con"> <div class="det-con" v-if="item.investmentAmount">
<span>投资估算(万元):</span> <span>投资估算(万元):</span>
<span>{{item.investmentAmount || '--'}}</span> <span>{{item.investmentAmount}}</span>
</div> </div>
<div class="det-con"> <div class="det-con" v-if="item.followTime">
<span>最后跟进时间:</span> <span>最后跟进时间:</span>
<span>{{item.followTime || '--'}}</span> <span>{{item.followTime}}</span>
</div> </div>
<div class="det-con"> <div class="det-con" v-if="item.ownerCompany ">
<span>业主单位:</span> <span>业主单位:</span>
<span class="wordprimary">{{item.ownerCompany || '--'}}</span> <span class="wordprimary">{{item.ownerCompany}}</span>
</div> </div>
</div> </div>
<el-divider v-if="index != datalist.length-1"></el-divider> <el-divider v-if="index != datalist.length-1"></el-divider>
<div class="operates" v-if="activeName=='first'"> <div class="operates" v-if="activeName=='first'">
<div class="i1"><img src="@/assets/images/follow.png" @click="toDetail(item.id,'gjjl')">跟进</div> <div class="i1" @click="toDetail(item.id,'gjjl')"><img src="@/assets/images/follow.png">跟进</div>
<div class="i2"><img src="@/assets/images/edit1.png" @click="toDetail(item.id,'xmsl')">编辑</div> <div class="i2" @click="toDetail(item.id,'xmsl')"><img src="@/assets/images/edit1.png">编辑</div>
<div class="i3" @click="deldetail(index)"><img src="@/assets/images/delete.png">删除</div> <div class="i3" @click="deldetail(index)"><img src="@/assets/images/delete.png">删除</div>
</div> </div>
<div class="delform" v-if="activeName=='first' && ondel == index"> <div class="delform" v-if="activeName=='first' && ondel == index">
...@@ -296,6 +298,11 @@ export default { ...@@ -296,6 +298,11 @@ export default {
str += '-' +item.districtName str += '-' +item.districtName
item.address = str item.address = str
item.nickName1 = item.nickName?item.nickName.slice(0,1):'' item.nickName1 = item.nickName?item.nickName.slice(0,1):''
item.labels=[]
if(item.label!=null && item.label !=""){
item.labels = item.label.split(',')
}
}) })
} }
}) })
......
...@@ -2,6 +2,7 @@ package com.dsk.system.dskService; ...@@ -2,6 +2,7 @@ package com.dsk.system.dskService;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.core.domain.model.*;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.DskOpenApiUtil; import com.dsk.common.utils.DskOpenApiUtil;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -20,67 +21,67 @@ public class EnterpriseBussinessService { ...@@ -20,67 +21,67 @@ public class EnterpriseBussinessService {
private DskOpenApiUtil dskOpenApiUtil; private DskOpenApiUtil dskOpenApiUtil;
public TableDataInfo clientPage(Map<String, Object> body) throws Exception { public TableDataInfo clientPage(EnterpriseBussinessClientPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/clientPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/clientPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public TableDataInfo clientProjectPage(Map<String, Object> body) throws Exception { public TableDataInfo clientProjectPage(EnterpriseBussinessClientProjectPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/clientProjectPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/clientProjectPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public TableDataInfo tenderPage(Map<String, Object> body) throws Exception { public TableDataInfo tenderPage(EnterpriseBussinessTenderPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/tenderPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/tenderPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R tenderDetail(Map<String, Object> body) throws Exception { public R tenderDetail(EnterpriseBussinessTenderDetailBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/tenderDetail", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/tenderDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public TableDataInfo supplierPage(Map<String, Object> body) throws Exception { public TableDataInfo supplierPage(EnterpriseBussinessSupplierPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/supplierPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/supplierPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public TableDataInfo supplierProjectPage(Map<String, Object> body) throws Exception { public TableDataInfo supplierProjectPage(EnterpriseBussinessSupplierProjectPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/supplierProjectPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/supplierProjectPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R projectDetail(Map<String, Object> body) throws Exception { public R projectDetail(EnterpriseBussinessProjectDetailBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/projectDetail", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/projectDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public TableDataInfo oftenAgencyPage(Map<String, Object> body) throws Exception { public TableDataInfo oftenAgencyPage(EnterpriseBussinessOftenAgencyPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/oftenAgencyPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/oftenAgencyPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public TableDataInfo bidCooperatePage(Map<String, Object> body) throws Exception { public TableDataInfo bidCooperatePage(EnterpriseBussinessBidCooperatePageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/bidCooperatePage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/bidCooperatePage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public TableDataInfo historySendPage(Map<String, Object> body) throws Exception { public TableDataInfo historySendPage(EnterpriseBussinessHistorySendPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/historySendPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/historySendPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R historySendProvince(Map<String, Object> body) throws Exception { public R historySendProvince(EnterpriseBussinessHistorySendProvinceBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/historySendProvince", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/historySendProvince", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
......
...@@ -2,6 +2,7 @@ package com.dsk.system.dskService; ...@@ -2,6 +2,7 @@ package com.dsk.system.dskService;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.dsk.acc.openapi.client.util.CommonUtils; import com.dsk.acc.openapi.client.util.CommonUtils;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
...@@ -42,8 +43,31 @@ public class EnterpriseService { ...@@ -42,8 +43,31 @@ public class EnterpriseService {
ICustomerService iCustomerService; ICustomerService iCustomerService;
public R infoHeader(EnterpriseInfoHeaderBody body) throws Exception { public R infoHeader(EnterpriseInfoHeaderBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/api/jsk/enterprise/infoHeader", BeanUtil.beanToMap(body, false, false)); Map<String, Object> companyMap = dskOpenApiUtil.requestBody("/api/jsk/enterprise/infoHeader", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); Integer companyCode = MapUtils.getInteger(companyMap, "code", 300);
if (200 != companyCode) throw new RuntimeException();
Map companyData = MapUtils.getMap(companyMap, "data", null);
companyData.put("claimStatus", 0);
Map<String, Object> uipMap = dskOpenApiUtil.requestBody("/operate/enterprise/financial", BeanUtil.beanToMap(body, false, false));
Integer uipCode = MapUtils.getInteger(uipMap, "code", 300);
if (200 != uipCode) return R.ok(companyData);
Map uipData = MapUtils.getMap(uipMap, "data", new HashMap<>());
String uipId = MapUtils.getString(uipData, "uipId", null);
if (ObjectUtil.isEmpty(uipId)) {
return R.ok(companyData);
}
ArrayList<String> uipIds = new ArrayList<>();
uipIds.add(uipId);
List<CustomerStatusListVo> claimStatusList = iCustomerService.selectStatusList(uipIds);
if (CollectionUtils.isNotEmpty(claimStatusList)) {
companyMap.put("claimStatus", 1);
}
return R.ok(companyData);
} }
public R statistic(EnterpriseStatisticBody body) throws Exception { public R statistic(EnterpriseStatisticBody body) throws Exception {
......
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