Commit 057141bc authored by lixiaolei's avatar lixiaolei

Merge remote-tracking branch 'origin/master'

parents bee72f67 6c71d977
...@@ -45,12 +45,6 @@ public class EnterpriseController { ...@@ -45,12 +45,6 @@ public class EnterpriseController {
return enterpriseService.bidDataGroup(vo); return enterpriseService.bidDataGroup(vo);
} }
@ApiOperation(value = "供应商列表(建设库)")
@PostMapping(value = "supplierPage")
public R supplierPage(@RequestBody @Valid EnterpriseSupplierPageBody vo) throws Exception {
return enterpriseService.supplierPage(vo);
}
@ApiOperation(value = "甲方业绩数据(openApi)") @ApiOperation(value = "甲方业绩数据(openApi)")
@PostMapping(value = "projectTenderDataGroup") @PostMapping(value = "projectTenderDataGroup")
public R projectTenderDataGroup(@RequestBody @Valid EnterpriseProjectTenderDataGroupBody vo) throws Exception { public R projectTenderDataGroup(@RequestBody @Valid EnterpriseProjectTenderDataGroupBody vo) throws Exception {
...@@ -75,30 +69,6 @@ public class EnterpriseController { ...@@ -75,30 +69,6 @@ public class EnterpriseController {
return enterpriseService.affiliates(vo); return enterpriseService.affiliates(vo);
} }
@ApiOperation(value = "招标公告列表(建设库)")
@PostMapping(value = "bidNoticePage")
public R bidNoticePage(@RequestBody @Valid EnterpriseBidNoticePageBody vo) throws Exception {
return enterpriseService.bidNoticePage(vo);
}
@ApiOperation(value = "招标公告省份(建设库)")
@PostMapping(value = "bidNoticeProvince")
public R bidNoticeProvince(@RequestBody @Valid EnterpriseBidNoticePageBody vo) throws Exception {
return enterpriseService.bidNoticeProvince(vo);
}
@ApiOperation(value = "招标公告信息类型(建设库)")
@PostMapping(value = "bidNoticeTenderStage")
public R bidNoticeTenderStage(@RequestBody @Valid EnterpriseBidNoticePageBody vo) throws Exception {
return enterpriseService.bidNoticeTenderStage(vo);
}
@ApiOperation(value = "招标公告详情(建设库)")
@PostMapping(value = "bidNoticeDeatil")
public R bidNoticeDeatil(@RequestBody @Valid EnterpriseBidNoticeDetailBody vo) throws Exception {
return enterpriseService.bidNoticeDeatil(vo);
}
@ApiOperation(value = "企业动态列表(建设库)") @ApiOperation(value = "企业动态列表(建设库)")
@PostMapping(value = "dynamicPage") @PostMapping(value = "dynamicPage")
public TableDataInfo dynamicPage(@RequestBody @Valid EnterpriseDynamicPageBody vo) throws Exception { public TableDataInfo dynamicPage(@RequestBody @Valid EnterpriseDynamicPageBody vo) throws Exception {
...@@ -129,4 +99,10 @@ public class EnterpriseController { ...@@ -129,4 +99,10 @@ public class EnterpriseController {
return enterpriseService.bestStockPage(vo); return enterpriseService.bestStockPage(vo);
} }
@ApiOperation(value = "财务简析(openApi)")
@PostMapping(value = "financial")
public R financial(@RequestBody @Valid EnterpriseFinancialBody vo) throws Exception {
return enterpriseService.financial(vo);
}
} }
...@@ -83,6 +83,12 @@ public class EnterpriseProjectController { ...@@ -83,6 +83,12 @@ public class EnterpriseProjectController {
return enterpriseProjectService.specialDebtProjectDetail(body); return enterpriseProjectService.specialDebtProjectDetail(body);
} }
@ApiOperation(value = "专项债列表")
@RequestMapping(value = "/specialDebtPage", method = RequestMethod.POST)
public TableDataInfo specialDebtPage(@RequestBody @Valid Object body) throws Exception {
return enterpriseProjectService.specialDebtPage(body);
}
@ApiOperation(value = "招标公告列表") @ApiOperation(value = "招标公告列表")
@RequestMapping(value = "/bidNoticePage",method = RequestMethod.POST) @RequestMapping(value = "/bidNoticePage",method = RequestMethod.POST)
public TableDataInfo bidNoticePage(@RequestBody @Valid EnterpriseProjectBidNoticePageBody body) throws Exception { public TableDataInfo bidNoticePage(@RequestBody @Valid EnterpriseProjectBidNoticePageBody body) throws Exception {
......
...@@ -26,7 +26,7 @@ public class CompanySearchController { ...@@ -26,7 +26,7 @@ public class CompanySearchController {
*/ */
@RequestMapping("/index") @RequestMapping("/index")
public AjaxResult landMarketPage(@RequestBody ComposeQueryDto compose) { public AjaxResult landMarketPage(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.enterprisePage(compose); return opportunityRadarService.enterpriseIndex(compose);
} }
/* /*
...@@ -36,4 +36,12 @@ public class CompanySearchController { ...@@ -36,4 +36,12 @@ public class CompanySearchController {
public AjaxResult findByName(@PathVariable String keyword) { public AjaxResult findByName(@PathVariable String keyword) {
return opportunityRadarService.enterpriseByName(keyword); return opportunityRadarService.enterpriseByName(keyword);
} }
/*
* 完全匹配企业名称
*/
@GetMapping("/page")
public AjaxResult page(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.enterprisePage(compose);
}
} }
...@@ -18,10 +18,12 @@ public interface BusinessOpportunityRadarService { ...@@ -18,10 +18,12 @@ public interface BusinessOpportunityRadarService {
AjaxResult landMarketPage(ComposeQueryDto compose); AjaxResult landMarketPage(ComposeQueryDto compose);
AjaxResult establishmentPage(ComposeQueryDto compose); AjaxResult establishmentPage(ComposeQueryDto compose);
AjaxResult enterprisePage(ComposeQueryDto compose); AjaxResult enterpriseIndex(ComposeQueryDto compose);
AjaxResult enterpriseByName(String keyword); AjaxResult enterpriseByName(String keyword);
AjaxResult enterprisePage(ComposeQueryDto compose);
AjaxResult bondProjectPage(ComposeQueryDto compose); AjaxResult bondProjectPage(ComposeQueryDto compose);
AjaxResult jskBidPlanPage(ComposeQueryDto compose); AjaxResult jskBidPlanPage(ComposeQueryDto compose);
......
...@@ -51,11 +51,18 @@ public class BusinessOpportunityRadarServiceImpl implements BusinessOpportunityR ...@@ -51,11 +51,18 @@ public class BusinessOpportunityRadarServiceImpl implements BusinessOpportunityR
} }
@Override @Override
public AjaxResult enterprisePage(ComposeQueryDto compose) { public AjaxResult enterpriseIndex(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/index", BeanUtil.beanToMap(compose, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/index", BeanUtil.beanToMap(compose, false, false));
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
@Override
public AjaxResult enterprisePage(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/page", BeanUtil.beanToMap(compose, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override @Override
public AjaxResult enterpriseByName(String keyword){ public AjaxResult enterpriseByName(String keyword){
Map<String,Object> params = new HashMap<>(); Map<String,Object> params = new HashMap<>();
......
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 EnterpriseFinancialBody
{
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
}
...@@ -12,4 +12,9 @@ import lombok.Data; ...@@ -12,4 +12,9 @@ import lombok.Data;
*/ */
@Data @Data
public class SpecialBondInformationPageDto extends BasePage { public class SpecialBondInformationPageDto extends BasePage {
/**
* 专项债券唯一标识
*/
private String specialBondUuid;
} }
...@@ -56,4 +56,18 @@ public class UrbanInvestmentPlatformDto extends BasePage { ...@@ -56,4 +56,18 @@ public class UrbanInvestmentPlatformDto extends BasePage {
* 区 * 区
*/ */
private Integer areaId; private Integer areaId;
/**
* 关键词
*/
private String keyword;
/**
* 排序字段
*/
private String field;
/**
* 字段 desc asc
*/
private String order;
} }
...@@ -32,7 +32,8 @@ public class DskOpenApiUtil { ...@@ -32,7 +32,8 @@ public class DskOpenApiUtil {
} }
public Map<String,Object> requestBodyLocal(String path, Map<String, Object> bodyMap){ public Map<String,Object> requestBodyLocal(String path, Map<String, Object> bodyMap){
return JSONUtil.toBean(HttpUtil.post("http://127.0.0.1:8766"+path, JSONUtil.toJsonStr(bodyMap)), JSONConfig.create().setIgnoreNullValue(true), Map.class); String post = HttpUtil.post("http://127.0.0.1:8766" + path, JSONUtil.toJsonStr(bodyMap));
return CommonUtils.assertAsMap(CommonUtils.parseJSON(post));
} }
public Map<String,Object> requestBodyWithHeader(String path, Map<String, Object> bodyMap, Map<String, String> headerMap){ public Map<String,Object> requestBodyWithHeader(String path, Map<String, Object> bodyMap, Map<String, String> headerMap){
......
import request from '@/utils/request'
// 合作情况列表
export function getList(data) {
return request({
url: '/customer/business/list',
method: 'get',
params:data
})
}
...@@ -17,3 +17,4 @@ export function addChain(data) { ...@@ -17,3 +17,4 @@ export function addChain(data) {
data:data data:data
}) })
} }
import request from '@/utils/request'
//新增项目
export function addProject(param) {
return request({
url: '/business/info/add',
method: 'POST',
data: param
})
}
//商机列表
export function getProjectlist(param) {
return request({
url: '/business/info/list',
method: 'GET',
params: param
})
}
...@@ -306,7 +306,7 @@ select { ...@@ -306,7 +306,7 @@ select {
.el-dropdown-land .el-icon-caret-bottom { .el-dropdown-land .el-icon-caret-bottom {
color: #333333; color: #333333;
margin-left: 4px; margin-left: 2px;
} }
.land_date_picker { .land_date_picker {
......
...@@ -7,7 +7,8 @@ const user = { ...@@ -7,7 +7,8 @@ const user = {
name: '', name: '',
avatar: '', avatar: '',
roles: [], roles: [],
permissions: [] permissions: [],
userId:'',
}, },
mutations: { mutations: {
...@@ -25,6 +26,9 @@ const user = { ...@@ -25,6 +26,9 @@ const user = {
}, },
SET_PERMISSIONS: (state, permissions) => { SET_PERMISSIONS: (state, permissions) => {
state.permissions = permissions state.permissions = permissions
},
SET_USERID: (state, userId) => {
state.userId = userId
} }
}, },
...@@ -60,6 +64,7 @@ const user = { ...@@ -60,6 +64,7 @@ const user = {
} }
commit('SET_NAME', user.userName) commit('SET_NAME', user.userName)
commit('SET_AVATAR', avatar) commit('SET_AVATAR', avatar)
commit('SET_USERID', user.userId)
resolve(res) resolve(res)
}).catch(error => { }).catch(error => {
reject(error) reject(error)
......
...@@ -283,7 +283,7 @@ ...@@ -283,7 +283,7 @@
<script> <script>
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import "@/assets/styles/project.scss" import "@/assets/styles/project.scss"
import {getCustomerList,importData} from '@/api/custom/custom' import {getCustomerList,importData,addCustomer} from '@/api/custom/custom'
import {getEnterprise,getDictType,} from '@/api/main' import {getEnterprise,getDictType,} from '@/api/main'
import prvinceTree from '@/assets/json/provinceTree' import prvinceTree from '@/assets/json/provinceTree'
import axios from 'axios' import axios from 'axios'
...@@ -428,7 +428,7 @@ export default { ...@@ -428,7 +428,7 @@ export default {
list.push(item.cityId) list.push(item.cityId)
if(item.districtId != null && item.districtId != "") if(item.districtId != null && item.districtId != "")
list.push(item.districtId) list.push(item.districtId)
this.address = list this.queryParam.address = list
this.queryParam.registerAddress = item.registerAddress this.queryParam.registerAddress = item.registerAddress
this.showlist = false this.showlist = false
}, },
...@@ -441,7 +441,16 @@ export default { ...@@ -441,7 +441,16 @@ export default {
} }
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (valid) {
addCustomer(this.queryParam).then(result=>{
if(result.code == 200){
this.$message.success('添加成功!')
this.dialogVisible = false
this.handleCurrentChange(1)
this.resetForm('ruleForm')
}else{
this.$message.error(result.msg)
}
})
} else { } else {
} }
}); });
......
...@@ -149,8 +149,6 @@ export default { ...@@ -149,8 +149,6 @@ export default {
{name:'其他单位',sum:'44',point:'21%'}, {name:'其他单位',sum:'44',point:'21%'},
], ],
datatype:'1',//切换类型 datatype:'1',//切换类型
dtdata:[],//数据
dttime:[],//坐标
datalist:[ datalist:[
{name:'重庆市江北区国有资本投资运营管理集团有限公司',time:'2023-05-30',text:'新增招标公告:【江北房地产综合开发公司名下不动产鲤鱼池片区资产评估项目】 公开选取【资产评估】机构的公告',tip1:'正向',tip2:'招标公告'}, {name:'重庆市江北区国有资本投资运营管理集团有限公司',time:'2023-05-30',text:'新增招标公告:【江北房地产综合开发公司名下不动产鲤鱼池片区资产评估项目】 公开选取【资产评估】机构的公告',tip1:'正向',tip2:'招标公告'},
{name:'上海城投(集团)有限公司',time:'2023-05-29',text:'新增招标公告:北横通道新建工程——机电、装饰工程Ⅱ标段',tip1:'正向',tip2:'招标公告'}, {name:'上海城投(集团)有限公司',time:'2023-05-29',text:'新增招标公告:北横通道新建工程——机电、装饰工程Ⅱ标段',tip1:'正向',tip2:'招标公告'},
...@@ -404,8 +402,6 @@ export default { ...@@ -404,8 +402,6 @@ export default {
default: default:
break; break;
} }
this.dtdata = datas
this.dttime = labels
this.initDT(datas,labels) this.initDT(datas,labels)
}, },
handleCurrentChange(val) { handleCurrentChange(val) {
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
<div class="cooperate"> <div class="cooperate">
<template v-if="ifEmpty"> <template v-if="ifEmpty">
<head-form <head-form
:form-data="formData" :form-data="formData"
:query-params="queryParams" :query-params="queryParams"
...@@ -136,6 +135,10 @@ ...@@ -136,6 +135,10 @@
<script> <script>
import mixin from '../mixins/mixin' import mixin from '../mixins/mixin'
import {getDictType,} from '@/api/main'
import {
getList
} from '@/api/detail/party-a/cooperate'
export default { export default {
name: 'Cooperate', name: 'Cooperate',
mixins: [mixin], mixins: [mixin],
...@@ -146,7 +149,7 @@ export default { ...@@ -146,7 +149,7 @@ export default {
return { return {
ifEmpty:true, ifEmpty:true,
queryParams: { queryParams: {
cid: 6034, customerId: 6034,
pageNum: 1, pageNum: 1,
pageSize: 10 pageSize: 10
}, },
...@@ -157,23 +160,9 @@ export default { ...@@ -157,23 +160,9 @@ export default {
{label: '项目状态', prop: 'fileNum', width: '90'} {label: '项目状态', prop: 'fileNum', width: '90'}
], ],
formData: [ formData: [
{ type: 1, fieldName: 'penalizeReasonType', value: '', placeholder: '项目阶段', { type: 1, fieldName: 'projectStage', value: '', placeholder: '项目阶段', options: []},
options: [ { type: 1, fieldName: 'status', value: '', placeholder: '项目状态', options: []},
{ name: '项目阶段', value: '1' }, { type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询'},
{ name: '项目阶段', value: '2' },
{ name: '项目阶段', value: '3' },
{ name: '项目阶段', value: '4' }
]
},
{ type: 1, fieldName: 'penalizeReasonType', value: '', placeholder: '项目状态',
options: [
{ name: '项目状态', value: '1' },
{ name: '项目状态', value: '2' },
{ name: '项目状态', value: '3' },
{ name: '项目状态', value: '4' }
]
},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询', options: []},
], ],
stageOptions:[], stageOptions:[],
statusOptions:[], statusOptions:[],
...@@ -189,25 +178,40 @@ export default { ...@@ -189,25 +178,40 @@ export default {
} }
}, },
created() { created() {
this.list()
//项目阶段
this.handleOptions('project_stage_type',0)
//项目状态
this.handleOptions('project_status_type',1)
}, },
computed: { computed: {
}, },
methods: { methods: {
resetQuery() { handleQuery(params) {
this.list(params)
}, },
//分页 list(params){
handleCurrentChange(e){ let data = params ? params : this.queryParams
getList(data).then(res=>{
}, console.log(res)
handleSizeChange(e){ })
}, },
//弹窗 //弹窗
handleClose(done) { handleClose(done) {
this.drawer = false this.drawer = false
},
handleOptions(name,index){
getDictType(name).then(res=>{
if(res.code == 200 && res.data){
for(var i=0;i<res.data.length;i++){
this.formData[index].options.push({
name:res.data[i].dictLabel,
value:res.data[i].dictValue
})
}
}
})
} }
} }
} }
......
...@@ -33,44 +33,35 @@ ...@@ -33,44 +33,35 @@
<!-- 弹窗添加联系人 --> <!-- 弹窗添加联系人 -->
<el-dialog <el-dialog
class="popups" class="popups1"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="464px"> width="464px">
<div class="poptitle"> <div class="poptitle">
<img src="@/assets/images/economies/icon.png"> <img src="@/assets/images/economies/icon.png">
<span>重庆市轨道交通3号线二期工程4标段施工总承包</span> <span>重庆市轨道交通3号线二期工程4标段施工总承包</span>
</div> </div>
<el-form class="popform" label-width="137px"> <el-form :model="addRorm" :rules="addRules" ref="addRorm" class="popform" label-width="75px">
<div class="row"> <el-form-item label="姓名:" prop="name">
<span class="left">联系人姓名:</span> <el-input v-model="addRorm.name" placeholder="请输入"></el-input>
<el-input type="text" placeholder="请输入"></el-input> </el-form-item>
</div> <el-form-item label="角色:" prop="role">
<div class="row"> <el-input v-model="addRorm.role" placeholder="请输入"></el-input>
<span class="left">联系人角色:</span> </el-form-item>
<el-select placeholder="请选择"> <el-form-item label="职位:" prop="workUnit">
<el-option label="cccc" value="11"></el-option> <el-input v-model="addRorm.workUnit" placeholder="请输入"></el-input>
<el-option label="cccc" value="121"></el-option> </el-form-item>
</el-select> <el-form-item label="公司/机关:" prop="position">
</div> <el-input v-model="addRorm.position" placeholder="请输入"></el-input>
<div class="row"> </el-form-item>
<span class="left">联系人职位:</span> <el-form-item label="联系方式:" prop="contactInformation">
<el-input type="text" placeholder="请输入"></el-input> <el-input v-model="addRorm.contactInformation" placeholder="请输入"></el-input>
</div> </el-form-item>
<div class="row"> <el-form-item label="备注:" prop="remark">
<span class="left">联系人公司/机关:</span> <el-input v-model="addRorm.remark" placeholder="请输入"></el-input>
<el-input type="text" placeholder="请输入"></el-input> </el-form-item>
</div>
<div class="row">
<span class="left">内部维护人:</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<div class="row">
<span class="left">联系方式:</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<div class="popbot"> <div class="popbot">
<div class="btn btn_cancel h32" @click="cancel">返回</div> <div class="btn btn_cancel h32" @click="cancel('addRorm')">返回</div>
<div class="btn btn_primary h32">保存</div> <div class="btn btn_primary h32" @click="add('addRorm')">保存</div>
</div> </div>
</el-form> </el-form>
</el-dialog> </el-dialog>
...@@ -79,11 +70,11 @@ ...@@ -79,11 +70,11 @@
</template> </template>
<script> <script>
import Tables from "../component/Tables"
import { import {
getList, getList,
addChain addChain
} from '@/api/decisionMaking/decisionMaking' } from '@/api/detail/party-a/decisionMaking'
import Tables from "../component/Tables"
export default { export default {
name: 'DecisionMaking', name: 'DecisionMaking',
components: { components: {
...@@ -93,7 +84,7 @@ export default { ...@@ -93,7 +84,7 @@ export default {
return { return {
ifEmpty:true, ifEmpty:true,
queryParams:{ queryParams:{
customerId:null, customerId:6034,
pageNum:1, pageNum:1,
pageSize:10, pageSize:10,
}, },
...@@ -106,6 +97,20 @@ export default { ...@@ -106,6 +97,20 @@ export default {
{label: '内部维护人', prop: 'office', width: '88'}, {label: '内部维护人', prop: 'office', width: '88'},
{label: '备注', prop: 'dataId'}, {label: '备注', prop: 'dataId'},
], ],
addRorm: {
customerId:'',
name:'',
role:'',
workUnit:'',
position:'',
contactInformation:'',
remark:'',
},
addRules:{
name: [
{ required: true, message: '请输入姓名', trigger: 'blur' },
],
},
stageOptions:[], stageOptions:[],
statusOptions:[], statusOptions:[],
//列表 //列表
...@@ -129,18 +134,23 @@ export default { ...@@ -129,18 +134,23 @@ export default {
getList(this.queryParams).then((res) => { getList(this.queryParams).then((res) => {
console.log(res) console.log(res)
}) })
},
resetQuery() {
}, },
//分页 //分页
handleCurrentChange(e){ handleCurrentChange(e){
console.log(e) console.log(e)
}, },
handleSizeChange(e){ add(formName){
this.$refs[formName].validate((valid) => {
if (valid) {
this.addRorm.customerId = 11
addChain(this.addRorm).then((res) => {
console.log(res)
})
}
});
}, },
cancel(){ cancel(formName){
this.$refs[formName].resetFields();
this.dialogVisible = false this.dialogVisible = false
}, },
//打开新建窗口 //打开新建窗口
...@@ -159,7 +169,12 @@ export default { ...@@ -159,7 +169,12 @@ export default {
border: 1px solid #EFEFEF; border: 1px solid #EFEFEF;
} }
::v-deep .el-form-item{ ::v-deep .el-form-item{
margin-right: 8px !important; margin-bottom: 16px;
}
::v-deep .el-input__inner{
border-radius: 2px 0 2px 0;
height: 32px;
line-height: 32px;
} }
.cooperate-name{ .cooperate-name{
::v-deep .el-form-item__content{ ::v-deep .el-form-item__content{
...@@ -175,10 +190,7 @@ export default { ...@@ -175,10 +190,7 @@ export default {
cursor: pointer; cursor: pointer;
} }
} }
::v-deep .el-input__inner{
border-right: 0;
border-radius: 2px 0 2px 0;
}
} }
.query-add{ .query-add{
button{ button{
...@@ -231,7 +243,7 @@ export default { ...@@ -231,7 +243,7 @@ export default {
margin-top: 10px; margin-top: 10px;
} }
// 弹窗 // 弹窗
.popups{ .popups1{
.poptitle { .poptitle {
line-height: 48px; line-height: 48px;
border-bottom: 1px solid #E1E1E1; border-bottom: 1px solid #E1E1E1;
...@@ -257,8 +269,14 @@ export default { ...@@ -257,8 +269,14 @@ export default {
text-overflow: ellipsis; text-overflow: ellipsis;
} }
} }
::v-deep .el-dialog__body{
padding: 24px 24px 18px;
}
.popform { .popform {
padding-top: 24px; padding-top: 14px;
::v-deep .el-form-item__label{
padding:0;
}
.row { .row {
padding-bottom: 16px; padding-bottom: 16px;
.left { .left {
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
<!-- 决策链条 --> <!-- 决策链条 -->
<DecisionMaking v-if="currentPath.pathName=='decisionMaking'" /> <DecisionMaking v-if="currentPath.pathName=='decisionMaking'" />
<!-- 跟进记录 --> <!-- 跟进记录 -->
<Gjjl v-if="currentPath.pathName=='gjjl'" /> <Gjjl v-if="currentPath.pathName=='gjjl'" types="gjdt" />
</div> </div>
</div> </div>
</div> </div>
......
<template> <template>
<div class="app-container"> <div class="app-container">
项目概览 <div class="chart-top">
<div class="left">
<el-card class="box-card noborder">
<div class="flex">
<div class="top-icons">
<img class="top-img" src="@/assets/images/project/icon_6.png">
<div class="name">储备项目</div>
<div class="number">129</div>
<div class="compare">较上月<span class="ss">+3 <img src="@/assets/images/project/ss.png"></span></div>
</div>
<div class="top-icons">
<img class="top-img" src="@/assets/images/project/icon_7.png">
<div class="name">重点关注项目</div>
<div class="number">45</div>
<div class="compare">较上月<span class="xj">-1 <img src="@/assets/images/project/xj.png"></span></div>
</div>
<div class="top-icons">
<img class="top-img" src="@/assets/images/project/icon_8.png">
<div class="name">即将开始项目</div>
<div class="number">39</div>
<div class="compare">较上月<span class="ss">+3 <img src="@/assets/images/project/ss.png"></span></div>
</div>
<div class="top-icons">
<img class="top-img" src="@/assets/images/project/icon_9.png">
<div class="name">已签约项目数</div>
<div class="number">5</div>
<div class="compare">较上月<span class="ss">+1 <img src="@/assets/images/project/ss.png"></span></div>
</div>
</div>
</el-card>
<el-card class="box-card noborder">
<div class="cardtitles i">项目经营分析
<div class="labels">
<div :class="{'on':datatype==1}" @click="getDT(1)">周</div>
<div :class="{'on':datatype==2}" @click="getDT(2)">月</div>
<div :class="{'on':datatype==3}" @click="getDT(3)">年</div>
</div>
</div>
<div id="xmjyfx" class="chart2"></div>
</el-card>
</div>
<el-card class="box-card noborder right">
<div class="cardtitles i">最近关注</div>
<div class="gzlist">
<div>
<img src="@/assets/images/project/fjxm.png">
<div>房建项目</div>
</div>
<div>
<img src="@/assets/images/project/szxm.png">
<div>市政项目</div>
</div>
<div>
<img src="@/assets/images/project/slxm.png">
<div>水利项目</div>
</div>
</div>
<el-divider></el-divider>
<div class="cardtitles i">储备项目类</div>
<div class="gzlist">
<div>
<img src="@/assets/images/project/EPC.png">
<div>EPC项目</div>
</div>
<div>
<img src="@/assets/images/project/tzxm.png">
<div>投资项目</div>
</div>
<div>
<img src="@/assets/images/project/fjxm.png">
<div>房建项目</div>
</div>
<div>
<img src="@/assets/images/project/dlxm.png">
<div>电力项目</div>
</div>
<div>
<img src="@/assets/images/project/szxm.png">
<div>市政项目</div>
</div>
<div>
<img src="@/assets/images/project/slxm.png">
<div>水利项目</div>
</div>
</div>
<div class="addnew" @click="addNew(true)"><div class="img"></div>新建项目</div>
</el-card>
</div>
<div class="chart-bot">
<el-card class="box-card noborder left">
<div class="p1">目标完成率</div>
<div class="p2">78.09<span>%</span></div>
<div class="p3">较上月 +12.15 % <span></span> 较上月 +1542 亿 <span></span><!--<span class="xj"></span>--></div>
<div class="p4">年度目标总额 1500.00 亿元</div>
</el-card>
<el-card class="box-card noborder right">
<div class="cardtitles i">跟进记录</div>
<div class="records">
<div class="recordlist">
<div class="rec_detail" v-for="(item,index) in recordlist.rows">
<div class="rec_time">
<i class="el-icon-time"></i>
<div>{{item.createTime && item.createTime.slice(0, 16)}}</div>
</div>
<div class="rec_con">
<div><strong>{{item.nickName}}</strong> <span v-if="item.visitMode">({{item.visitMode}})</span></div>
<div><span>{{item.content}}</span></div>
<div class="rec_text">
<span>拜访对象:{{item.name||'--'}}</span>
<span>职位:{{item.position||'--'}}</span>
<span>拜访时间:{{item.createTime && item.createTime.slice(0, 10)}}</span>
<span>下次拜访时间:{{item.nextVisitTime == null?'--': item.createTime.slice(0, 10)}}</span>
</div>
</div>
</div>
</div>
</div>
</el-card>
</div>
<addproject v-if="isshow" @addproject="add" @cancel="addNew"></addproject>
</div> </div>
</template> </template>
<script> <script>
import "@/assets/styles/project.scss"
import * as echarts from 'echarts'
import addproject from '../projectList/component/addProject'
export default { export default {
name: 'Overview', name: 'Overview',
components:{addproject},
data() { data() {
return { return {
chartDom: '',
myChart: '',
option: '',
datatype:'1',//切换类型
recordlist:{rows:[
{
content:"测试拜访功能",
createTime:"2023-05-26T16:51:23.000+08:00",
customerId:"2b871d36f4e3ff71a4ea51f4c548f5fc",
id:5,
name:"李永佳",
nextVisitTime:"2023-05-27T00:00:00.000+08:00",
position:"产品",
userId:104,
visitMode:"线下拜访",
},
{
content:"测试拜访功能",
createTime:"2023-05-26T16:51:23.000+08:00",
customerId:"2b871d36f4e3ff71a4ea51f4c548f5fc",
id:5,
name:"李永佳",
nextVisitTime:"2023-05-27T00:00:00.000+08:00",
position:"产品",
userId:104,
visitMode:"线下拜访",
},
{
content:"测试拜访功能",
createTime:"2023-05-26T16:51:23.000+08:00",
customerId:"2b871d36f4e3ff71a4ea51f4c548f5fc",
id:5,
name:"李永佳",
nextVisitTime:"2023-05-27T00:00:00.000+08:00",
position:"产品",
userId:104,
visitMode:"线下拜访",
},
{
content:"测试拜访功能",
createTime:"2023-05-26T16:51:23.000+08:00",
customerId:"2b871d36f4e3ff71a4ea51f4c548f5fc",
id:5,
name:"李永佳",
nextVisitTime:"2023-05-27T00:00:00.000+08:00",
position:"产品",
userId:104,
visitMode:"线下拜访",
},
{
content:"测试拜访功能",
createTime:"2023-05-26T16:51:23.000+08:00",
customerId:"2b871d36f4e3ff71a4ea51f4c548f5fc",
id:5,
name:"李永佳",
nextVisitTime:"2023-05-27T00:00:00.000+08:00",
position:"产品",
userId:104,
visitMode:"线下拜访",
},
{
content:"测试拜访功能",
createTime:"2023-05-26T16:51:23.000+08:00",
customerId:"2b871d36f4e3ff71a4ea51f4c548f5fc",
id:5,
name:"李永佳",
nextVisitTime:"2023-05-27T00:00:00.000+08:00",
position:"产品",
userId:104,
visitMode:"线下拜访",
},
]},
isshow:false,
} }
}, },
created() { created() {
// this.$route.push({ path: "/projectList" })
},
mounted(){
this.$nextTick(()=>{
this.chartDom = document.getElementById("xmjyfx")
this.myChart = echarts.init(this.chartDom)
this.getDT(1)
})
this.recordlist.rows.forEach(item=>{
item.createTime = this.gettime(item.createTime)
item.nextVisitTime = this.gettime(item.nextVisitTime)
})
}, },
methods: { methods: {
getDT(type){
this.datatype = type
let time = new Date()
let week = ['周一','周二','周三','周四','周五','周六','周日']
let weekdata1 = [200,150,300,240,400,380,460]
let weekdata2 = [100,250,320,140,300,350,410]
let weekdata3 = [210,180,200,280,400,280,360]
let monthdata1 = [400,200,350,170,190,280,260,308,406,387,458,695,125,360,512,546,298,365,458,536,345,200,150,300,240,400,380,460,472,365,547]
let monthdata2 = [420,250,380,190,110,200,250,318,436,320,478,605,140,310,552,516,250,300,258,436,245,240,140,200,140,300,390,410,450,300,587]
let monthdata3 = [300,240,310,185,170,210,240,208,416,357,450,645,155,330,522,506,200,315,200,506,355,210,180,100,280,410,310,400,410,320,580]
let yeardata1 = [1908,1500,2300,1456,2354,2564,1254,1236,4561,4521,1236,4561,3521]
let yeardata2 = [1920,1700,2400,1556,2400,2500,1420,1520,3850,4520,1500,4600,4500]
let yeardata3 = [1980,1600,2500,1356,2200,2600,1300,1450,4560,3400,1400,1500,2500]
let datas = []
let labels = []
switch (type) {
case 1:
time = time.getDay()
// week.length = time
weekdata1.length = time
weekdata2.length = time
weekdata3.length = time
for(var i=0;i<7;i++){
if(i > time){
weekdata1.push('')
weekdata2.push('')
weekdata3.push('')
}
}
labels = week
datas.push(weekdata1)
datas.push(weekdata2)
datas.push(weekdata3)
break;
case 2:
let days = new Date(time.getFullYear(),time.getMonth()+1,0).getDate()//获取到本月天数
time = time.getDate()
monthdata1.length = time
monthdata2.length = time
monthdata3.length = time
for(var i=1;i<days;i++){
labels.push(i+'日')
if(i > time){
monthdata1.push("")
monthdata2.push("")
monthdata3.push("")
}
}
datas.push(monthdata1)
datas.push(monthdata2)
datas.push(monthdata3)
break;
case 3:
time = time.getMonth()+1
yeardata1.length = time
yeardata2.length = time
yeardata3.length = time
for(var i=1;i<12;i++){
labels.push(i+'月')
if(i>time){
yeardata1.push('')
yeardata2.push('')
yeardata2.push('')
}
}
datas.push(yeardata1)
datas.push(yeardata2)
datas.push(yeardata3)
break;
default:
break;
}
this.initDT(datas,labels)
},
initDT(datas,labels){
this.chartDom = document.getElementById("xmjyfx")
this.myChart = echarts.init(this.chartDom)
//客户跟进动态
this.option = {
xAxis: {
type: 'category',
data: labels
},
yAxis: {
type: 'value'
},
grid:{
left:'4%',
top:'20%',
right:'2%',
bottom:'15%',
},
tooltip:{
axisPointer:{ //悬浮于圆点展示标签
type:'axis'
},
// trigger: 'axis'
},
legend: {
right: '151px',
top:"0px",
data: ['成交金额', '储备项目', '跟进动态']
},
series: [
{
name: '成交金额',
data: datas[0],
type: 'line',
areaStyle: {
color: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0, color: 'rgba(0, 129, 255, 0.5)'
}, {
offset: 1, color: 'rgba(0, 129, 255, 0)'
} ],
global: false
}
},
itemStyle: {
normal:{
color:'#0081FF'
}
},
label:{
normal:{
show:false
}
},
},
{
name: '储备项目',
data: datas[1],
type: 'line',
areaStyle: {
color: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0, color: 'rgba(157, 220, 202, 1)'
}, {
offset: 1, color: 'rgba(157, 220, 202, 0)'
} ],
global: false
}
},
itemStyle: {
normal:{
color:'#79C8B1'
}
},
label:{
normal:{
show:false
}
},
},
{
name: '跟进动态',
data: datas[2],
type: 'line',
areaStyle: {
color: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0, color: 'rgba(168, 144, 255, 1)'
}, {
offset: 1, color: 'rgba(168, 144, 255, 0)'
} ],
global: false
}
},
itemStyle: {
normal:{
color:'#ACA5F7'
}
},
label:{
normal:{
show:false
}
},
},
]
}
this.option && this.myChart.setOption(this.option)
},
gettime(time){
if(time == null || time == "")
return null
let times = new Date(time)
let year = times.getFullYear()
let month = times.getMonth()+1
month = month<10?"0"+month:month
let day = times.getDate()
day = day<10?"0"+day:day
let hour = times.getHours()
let minute = times.getMinutes()
let second = times.getSeconds()
return year+'-'+month+'-'+day+' '+hour+":"+minute+":"+second
},
addNew(isshow){
this.isshow = isshow
},
add(){
this.isshow = false
this.$router.push({ path: '/project/projectList' })
}
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.chart-top{
height: 450px;
margin-bottom: 12px;
.left{
float: left;
width: calc(100% - 367px);
.box-card:first-child{
margin-bottom: 12px;
height: 124px;
padding: 16px;
}
.box-card:last-child{
height: 314px;
}
}
.right{
float: right;
height: 450px;
width: 353px;
}
.top-icons{
width: 33%;
height: 92px;
padding: 16px;
&::before{
content: ' ';
width: 1px;
height: 56px;
background: #EFEFEF;
float: left;
margin-left: -16px;
}
&:first-child:before{
width: 0;
}
.top-img{
float: left;
width: 48px;
margin: 0 8px 12px 0;
}
.name{
font-size: 12px;
line-height: 14px;
}
.number{
font-size: 18px;
font-weight: 700;
padding: 8px 0;
}
.compare{
font-size: 12px;
color: rgba(35, 35, 35, 0.40);
line-height: 12px;
.ss{
color: #0CBC6D;
padding-left: 3px;
}
.xj{
color: #FF3C3C;
padding-left: 3px;
}
}
}
}
.chart-bot{
height: 354px;
margin-bottom: 12px;
.left{
float: left;
width: 353px;
height: 100%;
background: url("../../../assets/images/project/glbj.png")no-repeat top center;
background-size: 100% 100%;
color: #FFFFFF;
padding-left: 32px;
.p1{
font-size: 18px;
font-weight: bold;
line-height: 18px;
padding-top: 56px;
}
.p2{
font-weight: bold;
font-size: 50px;
line-height: 40px;
margin-top: 24px;
height: 40px;
box-sizing: border-box;
font-family: Microsoft YaHei-Bold, Microsoft YaHei;
>span{
font-size: 16px;
font-weight: 400;
padding-left: 13px;
}
}
.p3{
margin-top: 24px;
font-size: 12px;
>span{
display: inline-block;
margin-right: 34px;
width: 8px;
height: 10px;
background: url("../../../assets/images/project/ss_1.png") no-repeat center center;
background-size: 100% 100%;
}
.xj{
transform: rotateX(180deg);
}
}
.p4{
font-size: 16px;
color: #2A72F3;
font-weight: bold;
padding-left: 28px;
margin-top: 30px;
font-family: Microsoft YaHei-Bold, Microsoft YaHei;
}
}
.right{
float: right;
height: 100%;
width: calc(100% - 369px);
.records{
margin-top: -17px;
height: 327px;
overflow-y: auto;
width: 100%;
padding-right: 47px;
box-sizing: border-box;
}
}
}
.cardtitles{
position: relative;
.labels{
width: 120px;
height: 22px;
position: absolute;
border-radius: 2px;
right: 24px;
top: 24px;
z-index: 2;
>div{
width: 40px;
height: 100%;
text-align: center;
line-height: 22px;
float: left;
opacity: 1;
border: 1px solid #EFEFEF;
margin-left: -1px;
font-weight: 400;
font-size: 12px;
color: rgba(35, 35, 35, 0.80);
cursor: pointer;
&.on{
background: #0081FF;
color: #FFFFFF;
}
&:first-child{
border-radius: 2px 0px 0px 2px;
}
&:last-child{
border-radius: 0px 2px 2px 0px;
}
}
}
}
.chart2{
width: 100%;
height: 285px;
margin-top: -20px;
}
.cardtitles.i{
line-height: 44px;
height: 44px;
&::after{
margin-top: 14px;
}
}
.gzlist{
padding: 0px 16px 10px;
margin-top: -06px;
>div{
display: inline-block;
height: 94px;
width: 33.3%;
text-align: center;
font-size: 12px;
padding-top: 16px;
>div{
line-height: 14px;
}
}
}
.el-divider{
margin: 0 16px;
color: #EFEFEF;
width: 320px;
}
.addnew{
width: 321px;
height: 40px;
background: #F4F6F9;
border-radius: 4px;
color: #0081FF;
line-height: 40px;
margin: auto;
font-size: 14px;
cursor: pointer;
.img{
float: left;
width: 16px;
height: 16px;
background: url("../../../assets/images/add.png") no-repeat center center;
display: inline-block;
margin: 12px 8px 0 114px;
}
&:hover{
background: #0081FF;
color: #FFFFFF;
.img{
background: url("../../../assets/images/project/add_2.png") no-repeat center center;
}
}
}
</style> </style>
<template>
<el-dialog
class="popups"
width="534px"
:visible.sync="isshow"
@close="resetForm('ruleForm')"
>
<div class="poptitle">
<img src="@/assets/images/economies/icon.png">
<span>添加客户</span>
</div>
<el-form class="popform j" :model="queryParam" :rules="rules" ref="ruleForm" label-width="130px">
<el-form-item label="项目名称:" class="row" prop="projectName">
<el-input type="text" placeholder="请输入" v-model="queryParam.projectName"></el-input>
</el-form-item>
<el-form-item label="业主单位:" class="row" prop="ownerCompany">
<el-input type="text" placeholder="请输入" v-model="queryParam.ownerCompany" @input="getCompany"></el-input>
<div class="resultlist" v-if="showlist">
<div v-for="(item,index) in companData" @click="selCompany(item)"><span v-html="item.name"></span></div>
</div>
</el-form-item>
<el-form-item label="项目阶段:" class="row">
<el-select placeholder="请选择" v-model="queryParam.projectStage">
<el-option v-for="(item,index) in projectStage" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
<el-form-item label="项目类型:" class="row">
<el-select placeholder="请选择" v-model="queryParam.projectType">
<el-option v-for="(item,index) in projectType" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
<el-form-item label="项目类别:" class="row">
<el-select placeholder="请选择" v-model="queryParam.projectCategory">
<el-option v-for="(item,index) in projectCategory" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
<el-form-item label="投资估算:" class="row">
<el-input type="text" placeholder="请输入金额" @input="number" v-model="queryParam.investmentAmount"></el-input>
</el-form-item>
<el-form-item label="可见范围:" class="row">
<el-select placeholder="请选择" v-model="queryParam.isPrivate">
<el-option v-for="(item,index) in Privatelist" :key="index" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<div class="popbot">
<div class="wordprimary">前往商机雷达寻找项目线索></div>
<div class="btn btn_cancel h32" @click="resetForm('ruleForm')">返回</div>
<div class="btn btn_primary h32" @click="submitForm('ruleForm')">新建商机</div>
</div>
</el-form>
</el-dialog>
</template>
<script>
import {getEnterprise,getDictType,} from '@/api/main'
import {addProject} from '@/api/project/project'
export default {
name: 'addProject',
data(){
return{
Privatelist:[
{
value:0,
label:'仅自己可见'
},{
value:1,
label:'他人可见'
}
],//可见范围
isshow:true,
queryParam:{
userId:'',//用户id
projectName:'',// 项目名称
companyId:'',//企业id
ownerCompany:'',//业主单位
projectStage:'',//项目阶段
projectType:'',//项目类型
projectCategory:'',//项目类别
investmentAmount:'',//投资估算
isPrivate:0,//可见范围(0 仅自己可见,1 他人可见)
},
rules:{
projectName:[{ required: true, message: '请输入非空格字符!', trigger: 'blur' },],
ownerCompany:[{ required: true, message: '请输入非空格字符!', trigger: 'blur' },],
},
showlist:false,
companData:[],//联想企业列表
projectStage:[],//项目阶段
projectType:[],//项目类型
projectCategory:[],//项目类别
}
},
mounted(){
},
created(){
//项目阶段
getDictType('project_stage_type').then(result=>{
this.projectStage = result.code == 200 ? result.data:[]
})
//项目类型
getDictType('project_type').then(result=>{
this.projectType = result.code == 200 ? result.data:[]
})
//项目类别
getDictType('project_category').then(result=>{
this.projectCategory = result.code == 200 ? result.data:[]
})
},
methods:{
//获取建设库客户
getCompany(value){
if (value.length>=2){
let param = {
keyword:value,
page:{
limit:20,
page:1
}
}
getEnterprise(JSON.stringify(param)).then(result=>{
if(result.code != 200)
return
this.showlist = true
this.companData = result.data.list
})
}
},
selCompany(item){
this.queryParam.companyId = item.jskEid
this.queryParam.ownerCompany = item.name.replace(/<[^>]+>/g, '')
this.showlist = false
},
//添加客户
submitForm(formName) {
this.queryParam.userId = this.$store.state.user.userId
this.$refs[formName].validate((valid) => {
if (valid) {
addProject(this.queryParam).then(result=>{
if(result.code == 200){
this.$message.success('添加成功!')
this.resetForm('ruleForm')
this.$emit('addproject')
}else{
this.$message.error(result.msg)
}
})
} else {
}
});
},
resetForm(formName) {
this.queryParam = {
projectName:'',// 项目名称
companyId:'',//企业id
ownerCompany:'',//业主单位
projectStage:'',//项目阶段
projectType:'',//项目类型
projectCategory:'',//项目类别
investmentAmount:'',//投资估算
isPrivate:0,//可见范围(0 仅自己可见,1 他人可见)
},
this.showlist = false
this.$emit("cancel",false)
},
//输入数字
number(value){
this.queryParam.investmentAmount = value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')//输入2位小数
}
}
}
</script>
<style scoped>
.wordprimary{
display: inline;
padding-right: 26px;
}
.btn_primary{
padding: 0;
}
</style>
...@@ -51,10 +51,11 @@ ...@@ -51,10 +51,11 @@
</div> </div>
</div> </div>
<div class="rec_con"> <div class="rec_con">
<div><strong>{{name}}</strong> <span v-if="item.visitMode">({{item.visitMode}})</span></div> <div><strong>{{item.nickName}}</strong> <span v-if="item.visitMode">({{item.visitMode}})</span></div>
<div><span>{{item.content}}</span></div> <div><span>{{item.content}}</span></div>
<div class="rec_text"> <div class="rec_text">
<span>拜访对象:{{item.name||'--'}}</span> <span>拜访对象:{{item.name||'--'}}</span>
<span v-if="showtype == 'gjdt'">关联企业:{{item.companyName||'--'}}</span>
<span>职位:{{item.position||'--'}}</span> <span>职位:{{item.position||'--'}}</span>
<span>拜访时间:{{item.createTime && item.createTime.slice(0, 10)}}</span> <span>拜访时间:{{item.createTime && item.createTime.slice(0, 10)}}</span>
<span>下次拜访时间:{{item.nextVisitTime == null?'--': item.createTime.slice(0, 10)}}</span> <span>下次拜访时间:{{item.nextVisitTime == null?'--': item.createTime.slice(0, 10)}}</span>
...@@ -89,7 +90,6 @@ ...@@ -89,7 +90,6 @@
</template> </template>
<script> <script>
import { mapGetters } from 'vuex'
import "@/assets/styles/project.scss" import "@/assets/styles/project.scss"
import {getFollowList,addFollowRecord,getUserList,delFollowRecord} from '@/api/custom/custom' import {getFollowList,addFollowRecord,getUserList,delFollowRecord} from '@/api/custom/custom'
import {getEnterprise,getDictType,} from '@/api/main' import {getEnterprise,getDictType,} from '@/api/main'
...@@ -126,9 +126,6 @@ ...@@ -126,9 +126,6 @@
} }
}, },
computed: { computed: {
...mapGetters([
'name'
])
}, },
created(){ created(){
//获取拜访方式 //获取拜访方式
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="app-container"> <div class="app-container">
<el-card class="box-card noborder"> <el-card class="box-card noborder">
<div class="btns"> <div class="btns">
<div class="btn btn_default h28" @click="showNew"><div class="img img1"></div>新建项目商机</div> <div class="btn btn_default h28" @click="addNew(true)"><div class="img img1"></div>新建项目商机</div>
<div class="btn btn_primary h28"><div class="img img2"></div>批量导入</div> <div class="btn btn_primary h28"><div class="img img2"></div>批量导入</div>
</div> </div>
<el-tabs v-model="activeName" @tab-click="handleClick" class="tabpane w100"> <el-tabs v-model="activeName" @tab-click="handleClick" class="tabpane w100">
...@@ -18,22 +18,79 @@ ...@@ -18,22 +18,79 @@
<span> <span>
地区团队 地区团队
</span> </span>
<div class="selectInput" @click="getxmdq"><span class="selecttext">{{xmdqlabel}}<i class="el-icon-caret-bottom"></i></span> <div class="select-popper">
<el-cascader class="input" <span :class="{ color_text:searchParam.province.length ||searchParam.city.length ||searchParam.area.length,}">
项目地区{{searchParam.province.length ||searchParam.city.length ||searchParam.area.length? searchParam.province.length +searchParam.city.length +searchParam.area.length +"项": ""}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-cascader class="cascader-region select-location"
ref="myCascader" ref="myCascader"
:props='props' :options="options" :props='props' :options="addressList"
@change="handleChange"></el-cascader> @change="handleChange"></el-cascader>
</div> </div>
</div> </div>
<div class="selli"> <div class="selli">
<span> <span>
项目信息 项目信息
</span>aaa </span>
<div class="select-popper">
<span class="color_text">
项目类型{{searchParam.projectType.length? searchParam.projectType.length + "项": ""}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-select placeholder="请选择" v-model="searchParam.projectType" multiple class="select-multiple">
<el-option v-for="(item,index) in projectType" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
</div>
<div class="select-popper">
<el-dropdown @command="transactionPricehandleCommand" trigger="click" ref="transactionPriceShowPopper" :hide-on-click="false">
<span class="el-dropdown-link" :class="searchParam.minAmount ||searchParam.maxAmount ? 'color_text': ''">
投资估算{{searchParam.minAmount ||searchParam.maxAmount? " 1项": ""}}<i class="el-icon-caret-bottom"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(item, i) in amountOptions" :class="searchParam.minAmount == item.value[0] &&searchParam.maxAmount == item.value[1] &&
!minAmount &&!maxAmount? 'color_text': '' " :key="i" :command="item.value">{{ item.label }}</el-dropdown-item>
<el-dropdown-item command="" style="padding: 0; text-indent: 20px">
<div @mouseenter="transactionPriceShowPopper = true" @mouseleave="transactionPriceShowPopper = false">
<span :class="(minAmount || maxAmount) &&searchParam.minAmount ==minAmount &&
searchParam.maxAmount == maxAmount? 'color_text': '' ">
自定义<i class="el-icon-arrow-right"></i>
</span>
<div class="jabph_popper_box" style="position: absolute" v-if="transactionPriceShowPopper">
<div class="jabph_popper_wrap">
<el-input class="jabph_popper_input" v-limit-num clearable v-model="minAmount"></el-input>
</div>
<div class="jabph_popper_wrap">
<el-input class="jabph_popper_input" v-limit-num clearable v-model="maxAmount"></el-input>
</div>
<div style="">
<el-button size="mini" @click="transactionPriceCancel">取消</el-button>
<el-button type="primary" size="mini" @click="transactionPricePopperConfirm">确定</el-button>
</div>
</div>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="select-popper">
<span class="color_text">
项目阶段{{searchParam.projectStage.length? searchParam.projectStage.length + "项": ""}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-select v-model="searchParam.projectStage" class="select-multiple" multiple placeholder="请选择">
<el-option v-for="(item,index) in projectStage" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
</div>
</div> </div>
</div> </div>
<div class="scbtns"> <div class="scbtns">
<div class="btn btn_primary h34">查询</div> <div class="btn btn_primary h34" @click="getList(1)">查询</div>
<div class="btn btn_cancel h34">重置</div> <div class="btn btn_cancel h34" @click="reset">重置</div>
</div> </div>
</el-tabs> </el-tabs>
</el-card> </el-card>
...@@ -82,287 +139,150 @@ ...@@ -82,287 +139,150 @@
</div> </div>
</div> </div>
</div> </div>
<el-dialog
class="popups"
:visible.sync="dialogVisible"
width="464px">
<div class="poptitle">
<img src="@/assets/images/economies/icon.png">
<span>新建商机</span>
</div>
<el-form class="popform i" label-width="85px">
<div class="row">
<span class="left"><i>*</i>项目名称:</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<div class="row">
<span class="left"><i>*</i>业主单位:</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<div class="row">
<span class="left">项目阶段:</span>
<el-select placeholder="请选择">
<el-option label="cccc" value="11"></el-option>
<el-option label="cccc" value="121"></el-option>
</el-select>
</div>
<div class="row">
<span class="left">项目类型:</span>
<el-select placeholder="请选择">
<el-option label="cccc" value="11"></el-option>
<el-option label="cccc" value="121"></el-option>
</el-select>
</div>
<div class="row">
<span class="left">项目类别:</span>
<el-select placeholder="请选择">
<el-option label="cccc" value="11"></el-option>
<el-option label="cccc" value="121"></el-option>
</el-select>
</div>
<div class="row">
<span class="left">投资估算:</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<div class="row">
<span class="left">可见范围:</span>
<el-select placeholder="请选择">
<el-option label="cccc" value="11"></el-option>
<el-option label="cccc" value="121"></el-option>
</el-select>
</div>
<div class="popbot">
<div class="wordprimary">前往商机雷达寻找项目线索></div>
<div class="btn btn_cancel h32" @click="cancel">取消</div>
<div class="btn btn_primary h32">新建商机</div>
</div>
</el-form>
</el-dialog>
</el-card> </el-card>
<addproject v-if="isshow" @addproject="add" @cancel="addNew"></addproject>
</div> </div>
</template> </template>
<script> <script>
import "@/assets/styles/project.scss" import "@/assets/styles/project.scss"
import prvinceTree from '@/assets/json/provinceTree'
import {getProjectlist} from '@/api/project/project'
import {getDictType,} from '@/api/main'
import addproject from './component/addProject'
export default { export default {
name: 'ProjectList', name: 'ProjectList',
components:{addproject},
data() { data() {
return { return {
props:{ props:{multiple: true},
multiple: true},
xmdq: [],
xmdqlabel:'项目地区',
activeName:'first', activeName:'first',
options: [ projectStage:[],//项目阶段
isshow:false,//新增商机
//项目地区
addressList:[],
addressType: [],
// 查询参数
minAmount:'',//投资估算最小值
maxAmount:'',//投资估算最大值
searchParam: {
projectName:'',//项目名称
ownerCompany:'',//业主单位
projectType:'',//项目类型
projectStage:'',//项目阶段
minAmount:'',//投资估算最小值
maxAmount:'',//投资估算最大值
Amount:'',//投资估算
province: [],
city: [],
area: [],
pageNum:1,
pageSize:10,
},
domicile:[],
projectType:[],//项目类型
projectCategory:[],//项目类别
amountOptions:[
{ {
value: 'zhinan', label: "5000万以下",
label: '指南', value: [0,5000],
children: [{ },
value: 'shejiyuanze', {
label: '设计原则', label: "5000万-1亿",
children: [{ value: [5000,10000],
value: 'yizhi', },
label: '一致' {
}, { label: "1亿-3亿",
value: 'fankui', value: [10000,30000],
label: '反馈' },
}, { {
value: 'xiaolv', label: "3亿以上",
label: '效率' value: [30000,''],
}, { },
value: 'kekong', ],
label: '可控' contractSignTimeValue: "",
}] transactionPriceShowPopper: false,
}, {
value: 'daohang',
label: '导航',
children: [{
value: 'cexiangdaohang',
label: '侧向导航'
}, {
value: 'dingbudaohang',
label: '顶部导航'
}]
}]
}, {
value: 'zujian',
label: '组件',
children: [{
value: 'basic',
label: 'Basic',
children: [{
value: 'layout',
label: 'Layout 布局'
}, {
value: 'color',
label: 'Color 色彩'
}, {
value: 'typography',
label: 'Typography 字体'
}, {
value: 'icon',
label: 'Icon 图标'
}, {
value: 'button',
label: 'Button 按钮'
}]
}, {
value: 'form',
label: 'Form',
children: [{
value: 'radio',
label: 'Radio 单选框'
}, {
value: 'checkbox',
label: 'Checkbox 多选框'
}, {
value: 'input',
label: 'Input 输入框'
}, {
value: 'input-number',
label: 'InputNumber 计数器'
}, {
value: 'select',
label: 'Select 选择器'
}, {
value: 'cascader',
label: 'Cascader 级联选择器'
}, {
value: 'switch',
label: 'Switch 开关'
}, {
value: 'slider',
label: 'Slider 滑块'
}, {
value: 'time-picker',
label: 'TimePicker 时间选择器'
}, {
value: 'date-picker',
label: 'DatePicker 日期选择器'
}, {
value: 'datetime-picker',
label: 'DateTimePicker 日期时间选择器'
}, {
value: 'upload',
label: 'Upload 上传'
}, {
value: 'rate',
label: 'Rate 评分'
}, {
value: 'form',
label: 'Form 表单'
}]
}, {
value: 'data',
label: 'Data',
children: [{
value: 'table',
label: 'Table 表格'
}, {
value: 'tag',
label: 'Tag 标签'
}, {
value: 'progress',
label: 'Progress 进度条'
}, {
value: 'tree',
label: 'Tree 树形控件'
}, {
value: 'pagination',
label: 'Pagination 分页'
}, {
value: 'badge',
label: 'Badge 标记'
}]
}, {
value: 'notice',
label: 'Notice',
children: [{
value: 'alert',
label: 'Alert 警告'
}, {
value: 'loading',
label: 'Loading 加载'
}, {
value: 'message',
label: 'Message 消息提示'
}, {
value: 'message-box',
label: 'MessageBox 弹框'
}, {
value: 'notification',
label: 'Notification 通知'
}]
}, {
value: 'navigation',
label: 'Navigation',
children: [{
value: 'menu',
label: 'NavMenu 导航菜单'
}, {
value: 'tabs',
label: 'Tabs 标签页'
}, {
value: 'breadcrumb',
label: 'Breadcrumb 面包屑'
}, {
value: 'dropdown',
label: 'Dropdown 下拉菜单'
}, {
value: 'steps',
label: 'Steps 步骤条'
}]
}, {
value: 'others',
label: 'Others',
children: [{
value: 'dialog',
label: 'Dialog 对话框'
}, {
value: 'tooltip',
label: 'Tooltip 文字提示'
}, {
value: 'popover',
label: 'Popover 弹出框'
}, {
value: 'card',
label: 'Card 卡片'
}, {
value: 'carousel',
label: 'Carousel 走马灯'
}, {
value: 'collapse',
label: 'Collapse 折叠面板'
}]
}]
}, {
value: 'ziyuan',
label: '资源',
children: [{
value: 'axure',
label: 'Axure Components'
}, {
value: 'sketch',
label: 'Sketch Templates'
}, {
value: 'jiaohu',
label: '组件交互文档'
}]
}],
dialogVisible:false,
} }
}, },
created() { created() {
this.prvinceTree()
// this.getList(1)
//项目阶段
getDictType('project_stage_type').then(result=>{
this.projectStage = result.code == 200 ? result.data:[]
})
//项目类型
getDictType('project_type').then(result=>{
this.projectType = result.code == 200 ? result.data:[]
})
//项目类别
getDictType('project_category').then(result=>{
this.projectCategory = result.code == 200 ? result.data:[]
})
}, },
methods: { methods: {
//获取商机列表
getList(pageNum){
this.searchParam.pageNum = pageNum
getProjectlist(this.searchParam).then(result=>{
console.log(result)
})
},
reset(){
this.searchParam ={
projectName:'',//项目名称
ownerCompany:'',//业主单位
projectType:'',//项目类型
projectStage:'',//项目阶段
minAmount:'',//投资估算最小值
maxAmount:'',//投资估算最大值
Amount:'',//投资估算
province: [],
city: [],
area: [],
pageNum:1,
pageSize:10,
}
},
//地区
async prvinceTree() {
// await axios.post("https://files.jiansheku.com/file/json/common/provinceTree.json", {}, {
// headers: {
// 'Content-Type': 'application/json'
// }
// }).then(res => {
// if (res.data.code == 200) {
// console.log(res.data.data)
// }
// })
// console.log(prvinceTree)
this.addressList = prvinceTree;
this.getadd(this.addressList)
},
//处理项目地区
getadd(row) {
this.addrcallback(row,this.getadd)
},
addrcallback(row,callback){
if(row){
row.forEach(item => {
item.value = item.id
callback && callback(item.children)
})
}
},
//新建项目 //新建项目
showNew(){ showNew(){
this.dialogVisible = true this.isshow = true
},
addNew(isshow){
this.isshow = isshow
}, },
cancel(){ add(){
this.dialogVisible = false this.isshow = false
this.getList(1)
}, },
toDetail(){ toDetail(){
let Id = '111' let Id = '111'
...@@ -375,27 +295,76 @@ export default { ...@@ -375,27 +295,76 @@ export default {
}, },
handleChange(value) { handleChange(value) {
console.log(value); // console.log(value);
this.xmdq = value // var labelString = this.$refs.myCascader.getCheckedNodes()[0].pathLabels;
var labelString = this.$refs.myCascader.getCheckedNodes()[0].pathLabels; let arr = this.$refs.myCascader.getCheckedNodes();
console.log(labelString) // console.log(arr)
if(labelString.length>0){ let province = [],
let dq = '' city = [],
labelString.forEach((item,index)=>{ area = [];
let str = ',' this.domicile = [];
if(index == 0) for (var i in arr) {
str = '' if (arr[i].parent) {
dq += str + item if (!arr[i].parent.checked) {
}) arr[i].hasChildren && city.push(arr[i].value);
this.xmdqlabel = dq arr[i].hasChildren && this.domicile.push(arr[i].label);
}else{ !arr[i].hasChildren && area.push(arr[i].value);
this.xmdqlabel = '项目地区' !arr[i].hasChildren && this.domicile.push(arr[i].label);
} }
} else {
province.push(arr[i].value);
this.domicile.push(arr[i].label);
}
}
var obj = JSON.parse(JSON.stringify(this.searchParam));
obj.province = province;
obj.city = city;
obj.area = area;
this.searchParam = obj;
},
transactionPricePopperConfirm() {
if (
this.minAmount &&
this.maxAmount &&
!(Number(this.maxAmount) > Number(this.minAmount))
) {
return this.$message.warning("最小值必须小于最大值,请重新输入!");
}
this.transactionPriceShowPopper = false;
var obj = JSON.parse(JSON.stringify(this.searchParam));
obj.minAmount = this.minAmount;
obj.maxAmount = this.maxAmount;
this.searchParam = obj;
this.$refs.transactionPriceShowPopper.hide();
},
transactionPriceCancel() {
this.transactionPriceShowPopper = false;
this.$refs.transactionPriceShowPopper.hide();
},
transactionPricehandleCommand(command) {
if (command) {
this.$refs.transactionPriceShowPopper.hide();
var obj = JSON.parse(JSON.stringify(this.searchParam));
this.minAmount = "";
this.maxAmount = "";
if (command == "不限") {
obj.minAmount = "";
obj.maxAmount = "";
} else {
obj.minAmount = command[0];
obj.maxAmount = command[1];
}
this.searchParam = obj;
} }
},
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.jabph_popper_box{
left: 110px;
}
.noborder{ .noborder{
position: relative; position: relative;
} }
...@@ -562,26 +531,6 @@ export default { ...@@ -562,26 +531,6 @@ export default {
} }
} }
} }
.selectInput{
position: relative;
display: inline-block;
&:hover{
.selecttext{color: #0081FF;
i{color: #0081FF;}}
}
.selecttext{
i{
margin-left: 5px;
color: #a7a7a7;
}
}
.input{
position: absolute;
left: 0;
opacity: 0;
height: 20px;
}
}
.popbot{ .popbot{
.wordprimary{ .wordprimary{
......
...@@ -519,7 +519,8 @@ ...@@ -519,7 +519,8 @@
padding-left: 12px; padding-left: 12px;
font-size: 12px; font-size: 12px;
} }
.span-one{
.span-one {
width: 90%; width: 90%;
} }
......
<template>
<div>
<div class="content">
<div class="content_item">
<div class="label">项目名称</div>
<div class="content_right">
<el-input class="ename_input"
placeholder="请输入项目名称关键字" v-model="establishmentDto.keyword" ></el-input>
</div>
</div>
<div class="content_item">
<div class="label">项目业主</div>
<div class="content_right">
<el-input class="ename_input"
placeholder="请输入招标采购单位名称" v-model="establishmentDto.companyName" ></el-input>
</div>
</div>
<div class="content_item">
<div class="label">审批部门</div>
<div class="content_right">
<el-input class="ename_input"
placeholder="请输入审批部门名称或关键词" v-model="establishmentDto.examineOffice" ></el-input>
</div>
</div>
<div class="content_item">
<div class="label">建设地点</div>
<div class="content_right">
<el-input class="ename_input"
placeholder="请输入审批部门名称或关键词" v-model="establishmentDto.buildAddre" ></el-input>
</div>
</div>
<div class="content_item">
<div class="label">建设规模</div>
<div class="content_right">
<el-input class="ename_input"
placeholder="请输入审批部门名称或关键词" v-model="establishmentDto.buildScale" ></el-input>
</div>
</div>
<div class="content_item">
<div class="label">土地信息</div>
<div class="content_right">
<div class="select-popper">
<span :class="{ color_text: establishmentDto.projectType.length }">
项目类型{{establishmentDto.projectType.length? establishmentDto.projectType.length + "项": ""}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-select v-model="establishmentDto.projectType" class="select-multiple" multiple placeholder="请选择">
<el-option v-for="(item, i) in projectTypeOptions" :key="i" :label="item" :value="item">
</el-option>
</el-select>
</div>
<div class="select-popper">
<span :class="{ color_text: establishmentDto.projectType.length }">
项目类型{{establishmentDto.projectType.length? establishmentDto.projectType.length + "项": ""}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-select v-model="establishmentDto.projectType" class="select-multiple" multiple placeholder="请选择">
<el-option v-for="(item, i) in projectTypeOptions" :key="i" :label="item" :value="item">
</el-option>
</el-select>
</div>
<div class="select-popper">
<span :class="{ color_text: establishmentDto.industry.length }">
所属行业{{establishmentDto.industry.length? establishmentDto.industry.length + "项": ""}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-select v-model="establishmentDto.industry" class="select-multiple" multiple placeholder="请选择">
<el-option v-for="(item, i) in industryOptions" :key="i" :label="item" :value="item">
</el-option>
</el-select>
</div>
<div class="select-popper">
<span :class="{color_text:establishmentDto.province.length ||establishmentDto.city.length ||establishmentDto.district.length,}">
项目属地{{establishmentDto.province.length ||establishmentDto.city.length ||establishmentDto.district.length
? establishmentDto.province.length +establishmentDto.city.length +establishmentDto.district.length +"项": ""}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-cascader ref="address" class="cascader-region" v-model="addressType" :options="addressList" :props="props" @change="domicileChange" collapse-tags clearable></el-cascader>
</div>
<el-dropdown @command="moneyhandleCommand" class="el-dropdown-land" trigger="click" ref="moneyShowPopper" :hide-on-click="false">
<span class="el-dropdown-link" :class=" establishmentDto.startMoney || establishmentDto.endMoney? 'color_text' : ''">
总投资{{establishmentDto.startMoney || establishmentDto.endMoney? " 1项": ""}}<i class="el-icon-caret-bottom"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(item, i) in moneyOptions" :class="establishmentDto.startMoney == item.value[0] &&establishmentDto.endMoney == item.value[1]
&&!startMoney &&!endMoney? 'color_text' : ''" :key="i" :command="item.value">{{ item.label }}</el-dropdown-item>
<el-dropdown-item command="" style="padding: 0; text-indent: 20px">
<div @mouseenter="moneyShowPopper = true" @mouseleave="moneyShowPopper = false">
<span :class="(startMoney || endMoney) &&establishmentDto.startMoney == startMoney &&establishmentDto.endMoney == endMoney? 'color_text' : '' ">
自定义<i class="el-icon-arrow-right"></i>
</span>
<div class="jabph_popper_box" style="position: absolute" v-if="moneyShowPopper">
<div class="jabph_popper_wrap">
<el-input class="jabph_popper_input" v-limit-num clearable v-model="startMoney"></el-input>
</div>
<div class="jabph_popper_wrap">
<el-input class="jabph_popper_input" v-limit-num clearable v-model="endMoney"></el-input>
</div>
<div style="">
<el-button size="mini" @click="moneyCancel">取消</el-button>
<el-button type="primary" size="mini" @click="moneyPopperConfirm">确定</el-button>
</div>
</div>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<div class="select-popper">
<span class="el-dropdown-link" :class="{ color_text: establishmentDto.isProject }">
是否为向民间推介项目{{ establishmentDto.isProject ? " 1项" : "" }}<i class="el-icon-caret-bottom"></i>
</span>
<el-select v-model="establishmentDto.isProject" class="select-multiple" placeholder="请选择">
<el-option v-for="(item, i) in isProjectOptions" :key="i" :label="item.label"
:value="item.value.toString()">
</el-option>
</el-select>
</div>
<el-dropdown @command="planStartTimehandleCommand" class="el-dropdown-land" trigger="click" ref="planStartTimeShowPopper":hide-on-click="false">
<span class="el-dropdown-link" :class="planStartTimeValue ? 'color_text' : ''">
计划开工时间{{ planStartTimeValue ? " 1项" : ""}}<i class="el-icon-caret-bottom"></i>
</span>
<div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(item, i) in handleTimeOptions" :class=" planStartTimeValue && planStartTimeValue == item.value? 'color_text': ''" :key="i" :command="item.value">
<div @mouseenter="hidePoper1">{{ item.label }}</div>
</el-dropdown-item>
<el-dropdown-item command="自定义" style="padding: 0; text-indent: 20px">
<div @mouseenter="mouseenter1">
<span :class="planStartTimeValue == '自定义' ? 'color_text' : ''">
自定义<i class="el-icon-arrow-right"></i>
</span>
<el-date-picker v-if="planStartTimeShowPopper" @change="changePlanStartTime" class="land_date_picker" v-model="planStartTime" ref="datePicker1"
value-format="yyyy-MM-dd" type="daterange" range-separator="至"start-placeholder="开始日期" end-placeholder="结束日期">
</el-date-picker>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</div>
</el-dropdown>
<el-dropdown @command="planEndTimehandleCommand" class="el-dropdown-land" trigger="click" ref="planEndTimeShowPopper" :hide-on-click="false">
<span class="el-dropdown-link" :class="planEndTimeValue ? 'color_text' : ''">
计划完工日期{{ planEndTimeValue ? " 1项" : ""}}<i class="el-icon-caret-bottom"></i>
</span>
<div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(item, i) in handleTimeOptions" :class="planEndTimeValue && planEndTimeValue == item.value? 'color_text': ''" :key="i" :command="item.value">
<div @mouseenter="hidePoper2">{{ item.label }}</div>
</el-dropdown-item>
<el-dropdown-item command="自定义" style="padding: 0; text-indent: 20px">
<div @mouseenter="mouseenter2">
<span :class="planEndTimeValue == '自定义' ? 'color_text' : ''">
自定义<i class="el-icon-arrow-right"></i>
</span>
<el-date-picker v-if="planEndTimeShowPopper" @change="changePlanEndTime"class="land_date_picker" v-model="planEndTime" ref="datePicker2"
value-format="yyyy-MM-dd" type="daterange" range-separator="至"tart-placeholder="开始日期" end-placeholder="结束日期">
</el-date-picker>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</div>
</el-dropdown>
</div>
</div>
<div class="content_item content_item_padding0">
<div class="geduan">
</div>
</div>
<div class="content_item content_item_padding0">
<div class="search-new">
<span @click="search()">查询</span>
<span @click="reset">重置</span>
</div>
</div>
</div>
<div class="bottomlist">
<div class="bottomlist-title">
<div></div>
<div class="title-right">
<p>共有{{total}}</p>
<p>
<img src="@/assets/images/EXCEL.png" alt="">
<span>导出EXCEL</span>
</p>
</div>
</div>
<ul class="bottomlist-content">
<li class="bottomlist-list" >
<p class="list-titel">
<router-link :to="'/radar/Land/details/'+ 1" tag="a" class="list-titel-a" >绿色节能型压缩机基础件、汽车零配件新建项目 (芜湖旭日机械制造有限公司)</router-link>
<!-- <div v-else-if="item.projectName" v-html="item.projectName"></div> -->
</p>
<div class="content-label">
<span class="list-label">市政工程</span>
</div>
<div class="list-content">
<p class="list-content-text">
<span>项目业主:</span>
<span class="blue">芜湖旭日机械制造有限公司</span>
</p>
<p class="list-content-text">
<span>审批部门:</span>
<span>芜湖旭日</span>
</p>
<p class="list-content-text">
<span>审批结果:</span>
<span>12345.62万</span>
</p>
<p class="list-content-text">
<span>审批结果:</span>
<span>2014-05-12</span>
</p>
<p class="list-content-text">
<span>总投资:</span>
<span>62654</span>
</p>
<p class="list-content-text">
<span>计划开工日期:</span>
<span>62654</span>
</p>
<p class="list-content-text">
<span>计划完工日期:</span>
<span>626</span>
</p>
<p class="list-content-text">
<span>是否为向民间推介项目:</span>
<span>62654</span>
</p>
</div>
<div class="list-content">
<p class="list-content-text">
<span>土地用途:</span>
<span >城镇村道路用地</span>
</p>
<p class="list-content-text">
<span>供应方式:</span>
<span >挂牌出让</span>
</p>
</div>
<div class="list-content ">
<p class="list-content-text">
<span>批准日期:</span>
<span>62654</span>
</p>
<p class="list-content-text">
<span>建设规模:</span>
<span >许巷路西</span>
</p>
</div>
</li>
</ul>
<div class="pagination clearfix" v-show="total>0">
<el-pagination
background
:page-size="pageSize"
:current-page="page"
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="total">
</el-pagination>
</div>
</div>
</div>
</template>
<script>
import jsk_data from '../../../../../public/jsk.json';
export default {
name: 'Establishment',
components: {
},
data() {
return {
//是否为向民间推介项目
isProjectOptions: [{
value: 0,
label: "否",
},
{
value: 1,
label: "是",
}
],
isShow: false,
openVip: {
open: false,
},
loginData: {
loginShow: false
},
token: "",
example: 'search-njxm',
selectedHeight: 64,
addressList: [],
addressType: [],
props: {
multiple: true,
expandTrigger: "hover",
value: "id",
},
field: "",
fieldOptions: [{
value: "",
label: "默认排序",
},
{
value: "money",
label: "总投资从大到小",
},
{
value: "acreage",
label: "出让面积从大到小",
},
],
page: 1,
limit: 20,
moneyOptions: [{
value: "不限",
label: "不限",
},
{
value: [0, 100],
label: "100万元以下",
},
{
value: [100, 1000],
label: "100万-1000万元",
},
{
value: [1000, 5000],
label: "1000万-5000万元",
},
{
value: [5000, 20000],
label: "5000万-2亿元",
},
{
value: [20000, ""],
label: "2亿元以上",
},
],
handleTimeOptions: [{
label: "不限",
value: "",
},
{
label: "近1个月",
value: "近1个月",
},
{
label: "近半年",
value: "近半年",
},
{
label: "近1年",
value: "近1年",
},
{
label: "近3年",
value: "近3年",
},
],
handleTimeValue: "",
planStartTimeValue: "",
planEndTimeValue: "",
industryOptions: [],
examineStatusOptions: [
"不通过",
"作废",
"变更",
"备案",
"审批",
"申报",
"退回",
"通过",
"其他"
],
projectTypeOptions: [
"房建工程",
"市政工程",
"公路工程",
"水利工程",
"铁路工程",
"通信工程",
"电力工程",
"机电工程",
"冶金工程",
"矿山工程",
"石油化工工程",
"港口与航道工程",
"其他",
"空白"
],
buildNatureOptions: [
"扩建",
"技改",
"技改及其他",
"改建",
"改扩建",
"新建",
"迁建",
"其他"
],
establishmentDto: {
examineStatus: [],
province: [],
city: [],
district: [],
projectType: [],
industry: [],
buildNature: [],
},
conditionTitles: {
keyword: "关键词:",
companyName: "项目业主:",
examineOffice: "审批部门:",
buildAddre: "建设地点:",
buildScale: "建设规模:",
},
domicile: [],
startMoney: "",
endMoney: "",
moneyShowPopper: false,
handleTime: "",
handleTimeShowPopper: false,
planStartTime: "",
planStartTimeShowPopper: false,
planEndTime: "",
planEndTimeShowPopper: false,
pageFlag: true,
conditionsArr: [],
tableData:[],
total:6000,
page:1,
pageSize:20
};
},
computed: {
checkEstablishmentDto() {
let arr = [];
let flag = false;
let data = {};
let keyid, value, title;
if (this.domicile.length > 0) {
data = {
title: "项目属地:",
keyid: "domicile",
value: this.domicile.join(","),
key: "domicile"
}
arr.push(data)
}
if (this.handleTimeValue == "自定义") {
data = {
title: "办结时间:",
keyid: "handleTime",
value: this.establishmentDto.handleTimeStart + "~" + this.establishmentDto.handleTimeEnd,
key: "handleTime"
}
arr.push(data)
}
if (this.handleTimeValue && this.handleTimeValue != "自定义") {
data = {
title: "办结时间:",
keyid: "handleTime",
value: this.handleTimeValue,
key: "handleTime"
}
arr.push(data)
}
if (this.planStartTimeValue && this.planStartTimeValue != "自定义") {
data = {
title: "计划开工时间:",
keyid: "planStartTime",
value: this.planStartTimeValue,
key: "planStartTime"
}
arr.push(data)
}
if (this.planStartTimeValue == "自定义") {
data = {
title: "计划开工时间:",
keyid: "planStartTime",
value: this.establishmentDto.planStartTimeStart + "~" + this.establishmentDto.planStartTimeEnd,
key: "planStartTime"
}
arr.push(data)
}
if (this.planEndTimeValue && this.planEndTimeValue != "自定义") {
data = {
title: "计划完工日期:",
keyid: "planEndTime",
value: this.planEndTimeValue,
key: "planEndTime"
}
arr.push(data)
}
if (this.planEndTimeValue == "自定义") {
data = {
title: "计划完工日期:",
keyid: "planEndTime",
value: this.establishmentDto.planEndTimeStart + "~" + this.establishmentDto.planEndTimeEnd,
key: "planEndTime"
}
arr.push(data)
}
for (var i in this.establishmentDto) {
if (this.establishmentDto[i]) {
keyid = i;
value = this.establishmentDto[i];
if (
Object.prototype.toString.call(this.establishmentDto[i]) ===
"[object Array]"
) {
if (this.establishmentDto[i].length > 0) {
flag = true;
switch (i) {
case 'examineStatus':
title = "审批结果:";
break;
case 'projectType':
title = "项目类型:";
break;
case 'industry':
title = "所属行业:";
break;
case 'buildNature':
title = "建设性质:";
break;
case 'isProject':
title = "是否为向民间推介项目:";
break;
default:
title = "";
break;
}
} else {
title = ""
}
} else {
title = this.conditionTitles[i];
flag = true;
}
if (title) {
data = {
keyid: keyid,
value: value,
title: title,
key: value
}
arr.push(data)
}
}
}
this.conditionsArr = arr
return flag;
},
},
mounted() {
if (this.$route.query.keyword) {
var obj = JSON.parse(JSON.stringify(this.establishmentDto));
obj.keyword = this.$route.query.keyword;
this.establishmentDto = obj;
}
// this.addressListfn();
// this.$axios.get('https://files.jiansheku.com/file/json/common/searchDic.json').then(res => {
// if (res && res.status == 200) {
// this.projectTypeOptions = res.data.projectType;
// this.industryOptions = res.data.establishmentIndustry
// }
// }).catch(error=>{
//   
// });
// if(this.industryOptions.length==0){
// this.$axios
// .post("/nationzj/project/recently/typeList", {
// timeout: "49999",
// headers: {
// "Content-Type": "application/json;charset=UTF-8",
// },
// })
// .then((res) => {
// if (res.data.code == 200) {
// this.industryOptions = res.data.data.establishmentIndustryList;
// }
// })
// .catch((err) => {});
// }
},
methods: {
refresh(value) {
if (value) {
this.$router.go(0)
}
},
search(page, limit, exportFlag) {
if (!page) {
this.page = 1;
}
if (!limit) {
this.limit = 20;
}
if (!page && !limit) {
this.reloadPage();
}
var data = JSON.parse(JSON.stringify(this.establishmentDto));
data.province = data.province.join(",");
data.city = data.city.join(",");
data.district = data.district.join(",");
data.projectType = data.projectType.join(",");
data.industry = data.industry.join(",");
if (data.isProject && data.isProject === 0) {
data.isProject = parseInt(data.isProject);
}
let params = {
page: {
page: this.page,
limit: this.limit,
field: this.field,
},
establishmentDto: data,
};
if (exportFlag) {
if (!this.goThrough('', this.permissions.export)) {
this.goThrough('', this.permissions.export);
} else {
this.$refs.ExportData.exportCount('BUSINESS_SEARCH_NIJIAN', params) //商机-拟建项目
}
} else {
this.$emit("search", params)
}
},
//关闭支付弹窗
cancelVipPay(val) {
this.openVip.open = false
if (val) {
this.resolve(val);
}
},
cancelLogin(val) {
this.loginData.loginShow = false;
if (val) {
this.resolve(val);
}
},
resolve(value) {
if (value) {
this.$router.go(0)
}
},
selectedHeightfn() {
if (this.selectedHeight == 64) {
this.selectedHeight = 'auto'
} else {
this.selectedHeight = 64;
}
},
copyText() {
var value = "";
if (this.establishmentDto.startMoney && !this.establishmentDto.endMoney) {
this.establishmentDto.startMoney > 9999 ?
value = this.establishmentDto.startMoney / 10000 + "亿元以上" :
value = this.establishmentDto.startMoney + "万元以上"
}
if (!this.establishmentDto.startMoney && this.establishmentDto.endMoney) {
this.establishmentDto.endMoney > 9999 ?
value = this.establishmentDto.endMoney / 10000 + "亿元以上" :
value = this.establishmentDto.endMoney + "万元以上"
}
if (this.establishmentDto.startMoney && this.establishmentDto.endMoney) {
value = (this.establishmentDto.startMoney > 9999 ? this.establishmentDto.startMoney / 10000 + "亿-" :
this.establishmentDto.startMoney + '万-') + (this.establishmentDto.endMoney > 9999 ? this
.establishmentDto.endMoney / 10000 + "亿" : this.establishmentDto.endMoney + '万')
}
if (value) {
var data = {
title: "总投资:",
keyid: "money",
value: value,
key: "money"
}
var arr1 = [];
arr1.push(data);
this.conditionsArr = this.conditionsArr.concat(arr1)
}
let arr = this.conditionsArr
let newArr = []
for (var i = 0; i < arr.length; i++) {
newArr.push(arr[i].title + (arr[i].value == 'yes' ? '' : arr[i].value))
}
let val = newArr.join(";")
let _this = this
_this.$copyText(val).then(function(e) {
_this.$message({
message: "已复制到剪切板,您可以粘贴至对话框!",
type: "success"
})
}, function(e) {
_this.$message({
message: "已复制到剪切板,您可以粘贴至对话框!",
type: "success"
})
}).catch(err => {
console.log(err)
})
},
reloadPage() {
this.pageFlag = false;
this.$nextTick(() => {
this.pageFlag = true;
});
},
handleCurrentChange(page) {
this.page = page;
this.search(page, this.limit);
},
handleSizeChange(limit) {
this.limit = limit;
this.search(this.page, limit);
},
deleteDomicile() {
this.$refs.address.handleClear();
},
domicileChange() {
let arr = this.$refs.address.getCheckedNodes();
let province = [],
city = [],
district = [];
this.domicile = [];
for (var i in arr) {
if (arr[i].parent) {
if (!arr[i].parent.checked) {
arr[i].hasChildren && city.push(arr[i].value);
arr[i].hasChildren && this.domicile.push(arr[i].label);
!arr[i].hasChildren && district.push(arr[i].value);
!arr[i].hasChildren && this.domicile.push(arr[i].label);
}
} else {
province.push(arr[i].value);
this.domicile.push(arr[i].label);
}
}
var obj = JSON.parse(JSON.stringify(this.establishmentDto));
obj.province = province;
obj.city = city;
obj.district = district;
this.establishmentDto = obj;
},
moneyPopperConfirm() {
if (
this.startMoney &&
this.endMoney &&
!(Number(this.endMoney) > Number(this.startMoney))
) {
return this.$message.warning("最小值必须小于最大值,请重新输入!");
}
this.moneyShowPopper = false;
var obj = JSON.parse(JSON.stringify(this.establishmentDto));
obj.startMoney = this.startMoney;
obj.endMoney = this.endMoney;
this.establishmentDto = obj;
this.$refs.moneyShowPopper.hide();
},
moneyCancel() {
this.moneyShowPopper = false;
this.$refs.moneyShowPopper.hide();
},
moneyhandleCommand(command) {
if (command) {
this.$refs.moneyShowPopper.hide();
var obj = JSON.parse(JSON.stringify(this.establishmentDto));
this.startMoney = "";
this.endMoney = "";
if (command == "不限") {
obj.startMoney = "";
obj.endMoney = "";
} else {
obj.startMoney = command[0];
obj.endMoney = command[1];
}
this.establishmentDto = obj;
}
},
handleTimehandleCommand(command) {
var obj = JSON.parse(JSON.stringify(this.establishmentDto));
if (command && command != "自定义") {
this.handleTimeValue = command;
this.$refs.handleTimeShowPopper.hide();
const datetime = new Date();
var startTime, endTime, Year, Month, Day;
Year = datetime.getFullYear();
Month = datetime.getMonth() + 1;
Day = datetime.getDate();
switch (command) {
case "近1个月":
if (Month > 1) {
startTime = Year + "-" + (Month - 1) + "-1";
} else {
startTime = Year - 1 + "-" + (12 + Month - 1) + "-1";
}
endTime = Year + "-" + Month + "-" + Day;
break;
case "近半年":
if (Month > 6) {
startTime = Year + "-" + (Month - 6) + "-1";
} else {
startTime = Year - 1 + "-" + (12 + Month - 6) + "-1";
}
endTime = Year + "-" + Month + "-" + Day;
break;
case "近1年":
startTime = Year - 1 + "-" + Month + "-" + Day;
endTime = Year + "-" + Month + "-" + Day;
break;
case "近3年":
startTime = Year - 3 + "-" + Month + "-" + Day;
endTime = Year + "-" + Month + "-" + Day;
break;
case "自定义":
if (!this.handleTime) {
this.handleTimeValue = "";
}
break;
}
if (startTime) {
var start = startTime.split('-');
startTime = start.map((item) => {
if (item.length == 1) {
return '0' + item
} else {
return item
}
})
startTime = startTime.join('-')
}
if (endTime) {
var end = endTime.split('-');
endTime = end.map((item) => {
if (item.length == 1) {
return '0' + item
} else {
return item
}
})
endTime = endTime.join('-')
}
obj.handleTimeStart = startTime;
obj.handleTimeEnd = endTime;
} else if (command == "自定义") {
this.$refs.datePicker.pickerVisible = true;
} else {
this.$refs.handleTimeShowPopper.hide();
this.handleTimeValue = "";
this.handleTime = "";
obj.handleTimeStart = "";
obj.handleTimeEnd = "";
}
this.establishmentDto = obj;
},
planStartTimehandleCommand(command) {
var obj = JSON.parse(JSON.stringify(this.establishmentDto));
if (command && command != "自定义") {
this.planStartTimeValue = command;
this.$refs.planStartTimeShowPopper.hide();
const datetime = new Date();
var startTime, endTime, Year, Month, Day;
Year = datetime.getFullYear();
Month = datetime.getMonth() + 1;
Day = datetime.getDate();
switch (command) {
case "近1个月":
if (Month > 1) {
startTime = Year + "-" + (Month - 1) + "-1";
} else {
startTime = Year - 1 + "-" + (12 + Month - 1) + "-1";
}
endTime = Year + "-" + Month + "-" + Day;
break;
case "近半年":
if (Month > 6) {
startTime = Year + "-" + (Month - 6) + "-1";
} else {
startTime = Year - 1 + "-" + (12 + Month - 6) + "-1";
}
endTime = Year + "-" + Month + "-" + Day;
break;
case "近1年":
startTime = Year - 1 + "-" + Month + "-" + Day;
endTime = Year + "-" + Month + "-" + Day;
break;
case "近3年":
startTime = Year - 3 + "-" + Month + "-" + Day;
endTime = Year + "-" + Month + "-" + Day;
break;
case "自定义":
if (!this.planStartTime) {
this.planStartTimeValue = "";
}
break;
}
if (startTime) {
var start = startTime.split('-');
startTime = start.map((item) => {
if (item.length == 1) {
return '0' + item
} else {
return item
}
})
startTime = startTime.join('-')
}
if (endTime) {
var end = endTime.split('-');
endTime = end.map((item) => {
if (item.length == 1) {
return '0' + item
} else {
return item
}
})
endTime = endTime.join('-')
}
obj.planStartTimeStart = startTime;
obj.planStartTimeEnd = endTime;
} else if (command == "自定义") {
this.$refs.datePicker1.pickerVisible = true;
} else {
this.$refs.planStartTimeShowPopper.hide();
this.planStartTimeValue = "";
this.planStartTime = "";
obj.planStartTimeStart = "";
obj.planStartTimeEnd = "";
}
this.establishmentDto = obj;
},
planEndTimehandleCommand(command) {
var obj = JSON.parse(JSON.stringify(this.establishmentDto));
if (command && command != "自定义") {
this.planEndTimeValue = command;
this.$refs.planEndTimeShowPopper.hide();
const datetime = new Date();
var startTime, endTime, Year, Month, Day;
Year = datetime.getFullYear();
Month = datetime.getMonth() + 1;
Day = datetime.getDate();
switch (command) {
case "近1个月":
if (Month > 1) {
startTime = Year + "-" + (Month - 1) + "-1";
} else {
startTime = Year - 1 + "-" + (12 + Month - 1) + "-1";
}
endTime = Year + "-" + Month + "-" + Day;
break;
case "近半年":
if (Month > 6) {
startTime = Year + "-" + (Month - 6) + "-1";
} else {
startTime = Year - 1 + "-" + (12 + Month - 6) + "-1";
}
endTime = Year + "-" + Month + "-" + Day;
break;
case "近1年":
startTime = Year - 1 + "-" + Month + "-" + Day;
endTime = Year + "-" + Month + "-" + Day;
break;
case "近3年":
startTime = Year - 3 + "-" + Month + "-" + Day;
endTime = Year + "-" + Month + "-" + Day;
break;
case "自定义":
if (!this.planEndTime) {
this.planEndTimeValue = "";
}
break;
}
if (startTime) {
var start = startTime.split('-');
startTime = start.map((item) => {
if (item.length == 1) {
return '0' + item
} else {
return item
}
})
startTime = startTime.join('-')
}
if (endTime) {
var end = endTime.split('-');
endTime = end.map((item) => {
if (item.length == 1) {
return '0' + item
} else {
return item
}
})
endTime = endTime.join('-')
}
obj.planEndTimeStart = startTime;
obj.planEndTimeEnd = endTime;
} else if (command == "自定义") {
this.$refs.datePicker2.pickerVisible = true;
} else {
this.$refs.planEndTimeShowPopper.hide();
this.planEndTimeValue = "";
this.planEndTime = "";
obj.planEndTimeStart = "";
obj.planEndTimeEnd = "";
}
this.establishmentDto = obj;
},
changeHandleTime() {
if (this.handleTime) {
this.handleTimeValue = "自定义";
var obj = JSON.parse(JSON.stringify(this.establishmentDto));
obj.handleTimeStart = this.handleTime[0];
obj.handleTimeEnd = this.handleTime[1];
this.establishmentDto = obj;
}
},
changePlanStartTime() {
if (this.planStartTime) {
this.planStartTimeValue = "自定义";
var obj = JSON.parse(JSON.stringify(this.establishmentDto));
obj.planStartTimeStart = this.planStartTime[0];
obj.planStartTimeEnd = this.planStartTime[1];
this.establishmentDto = obj;
}
},
changePlanEndTime() {
if (this.planEndTime) {
this.planEndTimeValue = "自定义";
var obj = JSON.parse(JSON.stringify(this.establishmentDto));
obj.planEndTimeStart = this.planEndTime[0];
obj.planEndTimeEnd = this.planEndTime[1];
this.establishmentDto = obj;
}
},
addressListfn() {
var str = [];
for (let x = 0; x < 3; x++) {
for (let i = 0; i < jsk_data.length; i++) {
if (jsk_data[i].regionLevel == x + 1 && x + 1 == 1) {
str.push({
id: jsk_data[i].id,
label: jsk_data[i].regionName,
short: jsk_data[i].short,
value: jsk_data[i].parentId,
children: jsk_data[i].id == 900000 ? undefined : [],
});
} else if (jsk_data[i].regionLevel == x + 1 && x + 1 == 2 && str) {
for (let j = 0; j < str.length; j++) {
if (str[j].id == jsk_data[i].parentId) {
str[j].children.push({
id: jsk_data[i].id,
label: jsk_data[i].regionName,
short: jsk_data[i].short,
value: jsk_data[i].parentId,
children: [],
});
}
}
} else if (jsk_data[i].regionLevel == x + 1 && x + 1 == 3) {
for (let j = 0; j < str.length; j++) {
if (str[j].children) {
for (let k = 0; k < str[j].children.length; k++) {
if (str[j].children[k].id == jsk_data[i].parentId) {
str[j].children[k].children.push({
id: jsk_data[i].id,
label: jsk_data[i].regionName,
short: jsk_data[i].short,
value: jsk_data[i].parentId,
});
}
}
}
}
}
}
}
this.addressList = str;
},
hidePoper() {
if (this.$refs.datePicker) {
this.$refs.datePicker.pickerVisible = false;
}
},
mouseenter() {
this.handleTimeShowPopper = true;
if (this.handleTimeValue == "自定义") {
this.$nextTick(() => {
this.$refs.datePicker.pickerVisible = true;
});
}
},
hidePoper1() {
if (this.$refs.datePicker1) {
this.$refs.datePicker1.pickerVisible = false;
}
},
mouseenter1() {
this.planStartTimeShowPopper = true;
if (this.planStartTimeValue == "自定义") {
this.$nextTick(() => {
this.$refs.datePicker1.pickerVisible = true;
});
}
},
hidePoper2() {
if (this.$refs.datePicker2) {
this.$refs.datePicker2.pickerVisible = false;
}
},
mouseenter2() {
this.planEndTimeShowPopper = true;
if (this.planEndTimeValue == "自定义") {
this.$nextTick(() => {
this.$refs.datePicker2.pickerVisible = true;
});
}
},
fieldCommand(command) {
this.field = command;
this.search();
},
clearHandleTime() {
this.handleTime = "";
this.handleTimeValue = "";
var obj = JSON.parse(JSON.stringify(this.establishmentDto));
obj.handleTimeStart = "";
obj.handleTimeEnd = "";
this.establishmentDto = obj;
},
clearPlanStartTime() {
this.planStartTime = "";
this.planStartTimeValue = "";
var obj = JSON.parse(JSON.stringify(this.establishmentDto));
obj.planStartTimeStart = "";
obj.planStartTimeEnd = "";
this.establishmentDto = obj;
},
clearPlanEndTime() {
this.planEndTime = "";
this.planEndTimeValue = "";
var obj = JSON.parse(JSON.stringify(this.establishmentDto));
obj.planEndTimeStart = "";
obj.planEndTimeEnd = "";
this.establishmentDto = obj;
},
reset() {
Object.assign(this.$data, this.$options.data.call(this)); //重置data
this.init();
this.$emit("reset");
this.token = getCookie("tokenNew");
},
init() {
this.search();
this.addressListfn();
this.$axios.get('https://files.jiansheku.com/file/json/common/searchDic.json').then(res => {
if (res && res.status == 200) {
this.projectTypeOptions = res.data.projectType;
this.industryOptions = res.data.establishmentIndustry
}
}).catch(error => {
});
if (this.industryOptions.length == 0) {
this.$axios
.post("/nationzj/project/recently/typeList", {
timeout: "49999",
headers: {
"Content-Type": "application/json;charset=UTF-8",
},
})
.then((res) => {
if (res.data.code == 200) {
this.industryOptions = res.data.data.establishmentIndustryList;
}
})
.catch((err) => {});
}
},
},
};
</script>
<style lang="scss" scoped>
.content{
padding: 0px 16px;
border-radius: 4px 4px 4px 4px;
background: #FFFFFF;
.content_item{
padding-top: 12px;
display: flex;
align-items: center;
.label{
width: 84px;
font-size: 14px;
font-weight: 400;
color: rgba(35,35,35,0.8);
}
.content_right{
.ename_input{
width: 640px;
margin-right: 20px;
}
.land_ipt_470 {
width: 640px;
}
}
.item_ckquery_list {
display: flex;
}
.item_ckquery_list .el-input__icon {
position: relative;
top: 1px;
}
.ckquery_list_right {
width: 640px;
}
.register_count_ipt{
margin-left: 0px;
}
.register_count_ipt .el-input__inner{
width: 174px;
}
::v-deep .el-input-group__prepend{
padding: 0 8px;
}
.content-projecttype{
display: flex;
align-items: center;
justify-content: center;
.projecttype{
font-weight: 400;
color: #232323;
padding: 1px 5px;
margin-right: 4px;
cursor: pointer;
border-radius: 3px 3px 3px 3px;
font-size: 14px;
}
.projecttype:first-child{
padding-left: 0px;
}
.projecttype:hover{
background: #F3F4F5;
padding: 1px 5px;
}
.activetype{
background: #F3F4F5;
padding: 1px 5px !important;
}
}
}
.content_item_padding0{
padding: 0;
}
}
.bottomlist{
width: 100%;
background-color: #FFFFFF;
border-radius: 4px 4px 4px 4px;
.bottomlist-title{
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 12px;
padding: 16px ;
border-bottom: 1px solid #EFEFEF;
.title-right{
display: flex;
align-items: center;
p:first-child{
font-size: 12px;
font-weight: 400;
color: #3D3D3D;
margin-right: 10px;
}
p:last-child{
display: flex;
align-items: center;
font-size: 14px;
font-weight: 400;
color: rgba(35,35,35,0.8);
}
img{
width: 18px;
height: 18px;
}
}
}
.bottomlist-content{
padding-bottom: 0px;
}
.bottomlist-list{
padding: 16px;
font-size: 14px;
border-bottom: 1px solid #EFEFEF;
padding-bottom: 14px;
.list-titel{
font-size: 16px;
font-weight: 700;
color: #3D3D3D;
line-height: 19px;
.list-titel-a{
text-decoration: none;
color:#3D3D3D;
}
a:hover, a:visited, a:link, a:active{
color:#3D3D3D;
}
}
.content-label{
margin-top: 7px;
.list-label{
background: #F3F3FF;
color: #8491E8;
border-radius: 1px 1px 1px 1px;
padding: 3px 7px;
font-size: 12px;
}
}
.list-content{
margin-top: 3px;
display: flex;
justify-content: start;
align-items: center;
.list-content-text{
margin-top: 7px;
display: flex;
justify-content: start;
align-items: center;
margin-right: 27px;
font-size: 14px;
span:first-child{
font-weight: 400;
color: rgba(35,35,35,0.4);
line-height: 15px
}
span:last-child{
font-weight: 400;
color: rgba(35,35,35,0.8);
line-height: 15px
}
.blue{
color: #0081FF !important;
cursor: pointer;
}
}
}
.list-addree{
width: auto;
background: #F3F4F5;
display: inline-flex;
margin-top: 7px;
.list-content-text{
margin-top: 0px;
span{
line-height: 30px!important;
}
}
img{
width: 14px;
margin: 0 8px;
}
}
}
.bottomlist-list:hover{
background: #F6F9FC;
cursor: pointer;
}
.pagination{
padding: 14px ;
.el-pagination{
float: right;
}
}
}
</style>
\ No newline at end of file
...@@ -13,8 +13,12 @@ ...@@ -13,8 +13,12 @@
</div> </div>
</div> </div>
</div> </div>
<!-- 企业专项债 -->
<debtProject v-if="personnelHerf=='debtProject'" /> <debtProject v-if="personnelHerf=='debtProject'" />
<!-- 土地交易 -->
<Land v-if="personnelHerf=='Land'" /> <Land v-if="personnelHerf=='Land'" />
<!-- 拟建项目 -->
<Establishment v-if="personnelHerf=='Establishment'" />
</div> </div>
...@@ -22,10 +26,11 @@ ...@@ -22,10 +26,11 @@
<script> <script>
import debtProject from "./components/debtProject/index.vue"; import debtProject from "./components/debtProject/index.vue";
import Land from "./components/Land/index.vue"; import Land from "./components/Land/index.vue";
import Establishment from "./components/Establishment/index.vue";
import "@/assets/styles/public.css"; import "@/assets/styles/public.css";
export default { export default {
name: 'radar', name: 'radar',
components: { debtProject,Land }, components: { debtProject,Land,Establishment },
data() { data() {
return { return {
// tablist // tablist
...@@ -42,7 +47,7 @@ ...@@ -42,7 +47,7 @@
}, },
{ {
key: 'KeyPersonnel', key: 'Establishment',
status: false, status: false,
value: '拟建项目', value: '拟建项目',
......
...@@ -28,97 +28,97 @@ public class EnterpriseCreditService { ...@@ -28,97 +28,97 @@ public class EnterpriseCreditService {
public TableDataInfo penalizePage(EnterpriseCreditPenalizePageBody body) throws Exception { public TableDataInfo penalizePage(EnterpriseCreditPenalizePageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/penalizePage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseCredit/penalizePage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R penalizeReasonType(EnterpriseCreditPenalizeReasonTypeBody body) throws Exception { public R penalizeReasonType(EnterpriseCreditPenalizeReasonTypeBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/penalizeReasonType", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseCredit/penalizeReasonType", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public TableDataInfo abnormalPage(EnterpriseCreditAbnormalPageBody body) throws Exception { public TableDataInfo abnormalPage(EnterpriseCreditAbnormalPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/abnormalPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseCredit/abnormalPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R abnormalYears(EnterpriseCreditAbnormalYearsBody body) throws Exception { public R abnormalYears(EnterpriseCreditAbnormalYearsBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/abnormalYears", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseCredit/abnormalYears", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public TableDataInfo executedPersonsPage(EnterpriseCreditExecutedPersonsPageBody body) throws Exception { public TableDataInfo executedPersonsPage(EnterpriseCreditExecutedPersonsPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/executedPersonsPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseCredit/executedPersonsPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public TableDataInfo executedPage(EnterpriseCreditExecutedPageBody body) throws Exception { public TableDataInfo executedPage(EnterpriseCreditExecutedPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/executedPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseCredit/executedPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public TableDataInfo lawsuitsPage(EnterpriseCreditLawsuitsPageBody body) throws Exception { public TableDataInfo lawsuitsPage(EnterpriseCreditLawsuitsPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/lawsuitsPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseCredit/lawsuitsPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R lawsuitsCauseAction(EnterpriseCreditLawsuitsCauseActionBody body) throws Exception { public R lawsuitsCauseAction(EnterpriseCreditLawsuitsCauseActionBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/lawsuitsCauseAction", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseCredit/lawsuitsCauseAction", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public R lawsuitsRole(EnterpriseCreditLawsuitsRoleBody body) throws Exception { public R lawsuitsRole(EnterpriseCreditLawsuitsRoleBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/lawsuitsRole", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseCredit/lawsuitsRole", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public TableDataInfo noticesPage(EnterpriseCreditNoticePageBody body) throws Exception { public TableDataInfo noticesPage(EnterpriseCreditNoticePageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/noticesPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseCredit/noticesPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R noticesType(EnterpriseCreditNoticeTypeBody body) throws Exception { public R noticesType(EnterpriseCreditNoticeTypeBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/noticesType", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseCredit/noticesType", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public R noticesRole(EnterpriseCreditNoticeRoleBody body) throws Exception { public R noticesRole(EnterpriseCreditNoticeRoleBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/noticesRole", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseCredit/noticesRole", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public R noticesCaseReason(EnterpriseCreditNoticeCaseReasonBody body) throws Exception { public R noticesCaseReason(EnterpriseCreditNoticeCaseReasonBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/noticesCaseReason", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseCredit/noticesCaseReason", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public TableDataInfo kaitingPage(EnterpriseCreditKaitingPageBody body) throws Exception { public TableDataInfo kaitingPage(EnterpriseCreditKaitingPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/kaitingPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseCredit/kaitingPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R kaitingCauseAction(EnterpriseCreditKaitingCauseActionBody body) throws Exception { public R kaitingCauseAction(EnterpriseCreditKaitingCauseActionBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/kaitingCauseAction", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseCredit/kaitingCauseAction", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public R kaitingPureRole(EnterpriseCreditKaitingPureRoleBody body) throws Exception { public R kaitingPureRole(EnterpriseCreditKaitingPureRoleBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/kaitingPureRole", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseCredit/kaitingPureRole", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
} }
package com.dsk.system.dskService; package com.dsk.system.dskService;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.core.domain.model.*; import com.dsk.common.core.domain.model.*;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.DskOpenApiUtil; import com.dsk.common.utils.DskOpenApiUtil;
import org.apache.commons.collections4.MapUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
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 java.util.HashMap;
import java.util.Map; import java.util.Map;
@Service @Service
...@@ -22,79 +25,83 @@ public class EnterpriseProjectService { ...@@ -22,79 +25,83 @@ public class EnterpriseProjectService {
public TableDataInfo landTransactionPage(EnterpriseProjectLandTransactionPageBody body) throws Exception { public TableDataInfo landTransactionPage(EnterpriseProjectLandTransactionPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/landTransactionPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/landTransactionPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R landUse(EnterpriseProjectLandUseBody body) throws Exception { public R landUse(EnterpriseProjectLandUseBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/landUse", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/landUse", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public R landDetail(EnterpriseProjectLandDetailBody body) throws Exception { public R landDetail(EnterpriseProjectLandDetailBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/landDetail", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/landDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public TableDataInfo approvalProjectPage(EnterpriseProjectApprovalProjectPageBody body) throws Exception { public TableDataInfo approvalProjectPage(EnterpriseProjectApprovalProjectPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/approvalProjectPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/approvalProjectPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R approvalInfoDetail(EnterpriseProjectApprovalInfoDetailBody body) throws Exception { public R approvalInfoDetail(EnterpriseProjectApprovalInfoDetailBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/approvalInfoDetail", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/approvalInfoDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public TableDataInfo approvalExaminePage(EnterpriseProjectApprovalExaminePageBody body) throws Exception { public TableDataInfo approvalExaminePage(EnterpriseProjectApprovalExaminePageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/approvalExaminePage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/approvalExaminePage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public TableDataInfo approvalMarketingPage(EnterpriseProjectApprovalMarketingPageBody body) throws Exception { public TableDataInfo approvalMarketingPage(EnterpriseProjectApprovalMarketingPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/approvalMarketingPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/approvalMarketingPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public TableDataInfo specialDebtProjectPage(Object body) throws Exception { public TableDataInfo specialDebtProjectPage(Object body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/specialDebtProjectPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/specialDebtProjectPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R specialDebtProjectDetail(Object body) throws Exception { public R specialDebtProjectDetail(Object body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/specialDebtProjectDetail", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/specialDebtProjectDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public TableDataInfo specialDebtPage(Object body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/specialDebtPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public TableDataInfo bidNoticePage(EnterpriseProjectBidNoticePageBody body) throws Exception { public TableDataInfo bidNoticePage(EnterpriseProjectBidNoticePageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidNoticePage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticePage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R bidNoticeTenderStage(EnterpriseProjectBidNoticeTenderStageBody body) throws Exception { public R bidNoticeTenderStage(EnterpriseProjectBidNoticeTenderStageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidNoticeTenderStage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeTenderStage", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public R bidNoticeArea(EnterpriseProjectBidNoticeAreaBody body) throws Exception { public R bidNoticeArea(EnterpriseProjectBidNoticeAreaBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidNoticeArea", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeArea", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public R bidNoticeDetail(EnterpriseProjectBidNoticeDetailBody body) throws Exception { public R bidNoticeDetail(EnterpriseProjectBidNoticeDetailBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidNoticeDetail", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
...@@ -107,39 +114,65 @@ public class EnterpriseProjectService { ...@@ -107,39 +114,65 @@ public class EnterpriseProjectService {
public R bidPlanDetail(Object body) throws Exception { public R bidPlanDetail(Object body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidPlanDetail", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidPlanDetail", BeanUtil.beanToMap(body, false, false));
Map data = MapUtils.getMap(map, "data", null);
String contentId = MapUtils.getString(data, "contentId");
if (ObjectUtil.isEmpty(contentId)) {
return BeanUtil.toBean(map, R.class);
}
// HashMap<String, Object> contentParam = new HashMap<>();
// contentParam.put("data_type", "bid_plan");
// contentParam.put("filter_type", 2);
// contentParam.put("strategy_id", contentId);
HashMap<String, Object> param = new HashMap<>();
param.put("data_type", "kaibiao");
param.put("filter_type", 2);
param.put("strategy_id", "647477d52ba0e4cb1410c7f6");
Map<String, Object> contentMap = dskOpenApiUtil.requestBody("/mongocontent/v1/cjb/mongo_content", BeanUtil.beanToMap(param, false, false));
Map contentData = MapUtils.getMap(contentMap, "data", null);
if (200 != MapUtils.getInteger(contentMap, "code", 300)) {
return BeanUtil.toBean(map, R.class);
}
String htmlContent = MapUtils.getString(contentData, "htmlContent");
map.put("content", htmlContent);
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public TableDataInfo bidNoticeProPage(EnterpriseProjectBidNoticeProPageBody body) throws Exception { public TableDataInfo bidNoticeProPage(EnterpriseProjectBidNoticeProPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidNoticeProPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeProPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R bidNoticeProProjectType(EnterpriseProjectBidNoticeProProjectTypeBody body) throws Exception { public R bidNoticeProProjectType(EnterpriseProjectBidNoticeProProjectTypeBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidNoticeProProjectType", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeProProjectType", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public R bidNoticeProProjectPurposes(EnterpriseProjectBidNoticeProProjectPurposesBody body) throws Exception { public R bidNoticeProProjectPurposes(EnterpriseProjectBidNoticeProProjectPurposesBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidNoticeProProjectPurposes", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeProProjectPurposes", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public R bidNoticeProAssessmentWay(EnterpriseProjectBidNoticeProAssessmentWayBody body) throws Exception { public R bidNoticeProAssessmentWay(EnterpriseProjectBidNoticeProAssessmentWayBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidNoticeProAssessmentWay", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeProAssessmentWay", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public R bidNoticeProDetail(EnterpriseProjectBidNoticeProDetailBody body) throws Exception { public R bidNoticeProDetail(EnterpriseProjectBidNoticeProDetailBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidNoticeProDetail", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeProDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public TableDataInfo creditXzxkPage(EnterpriseProjectCreditXzxkPageBody body) throws Exception { public TableDataInfo creditXzxkPage(EnterpriseProjectCreditXzxkPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/creditXzxkPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/creditXzxkPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
} }
...@@ -123,4 +123,9 @@ public class EnterpriseService { ...@@ -123,4 +123,9 @@ public class EnterpriseService {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/bestStockPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/bestStockPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R financial(EnterpriseFinancialBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/financial", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
} }
...@@ -262,10 +262,10 @@ ...@@ -262,10 +262,10 @@
<select id="selectCustomerBusinessList" resultType="com.dsk.system.domain.customer.vo.CustomerBusinessListVo"> <select id="selectCustomerBusinessList" resultType="com.dsk.system.domain.customer.vo.CustomerBusinessListVo">
select select
bi.id, bi.project_name, pi.investment_amount, pi.project_stage, pi.status bi.id, bi.project_name, pi.investment_amount, bi.project_stage, bi.status
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="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
......
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