Commit a112ab76 authored by MyName's avatar MyName
parents 3e8f3217 8c5faadb
......@@ -16,7 +16,6 @@ import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto;
import com.dsk.system.domain.customer.dto.CustomerSearchDto;
import com.dsk.system.service.ICustomerService;
import com.dsk.web.controller.search.service.BusinessOpportunityRadarService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.ObjectUtils;
......@@ -68,6 +67,23 @@ public class CustomerController extends BaseController {
@PostMapping()
@RepeatSubmit
public AjaxResult add(@RequestBody Customer customer) {
dealWithcustomerData(customer);
return AjaxResult.success(baseService.add(customer));
}
/**
* 认领客户
*/
// @PreAuthorize("@ss.hasPermi('customer:claim')")
@PostMapping("/claim")
@RepeatSubmit
public AjaxResult claim(@RequestBody Customer customer) {
if (ObjectUtils.isEmpty(customer.getUipId())) throw new BeanException("城投uipId不能为空");
dealWithcustomerData(customer);
return AjaxResult.success(baseService.add(customer));
}
private void dealWithcustomerData(Customer customer){
if (ObjectUtils.isEmpty(customer.getCompanyName())) throw new BeanException("企业名称不能为空");
if (ObjectUtils.isEmpty(customer.getCompanyId())) {
try {
......@@ -79,7 +95,6 @@ public class CustomerController extends BaseController {
logger.debug("获取企业id错误!error:{}", e.getMessage());
}
}
return AjaxResult.success(baseService.add(customer));
}
/**
......
package com.dsk.web.controller.search.macroMarket;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.OpRegionalEconomicDataV1Dto;
import com.dsk.common.dtos.OpRegionalEconomicDataRegionalListDto;
import com.dsk.common.dtos.OpRegionalEconomicDataStatisticsRegionalDto;
import com.dsk.common.dtos.OpRegionalEconomicDataV1PageDto;
import com.dsk.system.service.EconomicService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
* @ClassName RegionalEconomicDataController
......@@ -30,7 +33,7 @@ public class RegionalEconomicDataController {
*@date: 2023/5/18 10:29
*/
@PostMapping("/national/nationalPage")
public AjaxResult nationalPage(@RequestBody OpRegionalEconomicDataV1PageDto dto) {
public AjaxResult nationalPage(@RequestBody @Valid OpRegionalEconomicDataV1PageDto dto) {
return economicService.nationalPage(dto);
}
......@@ -55,7 +58,7 @@ public class RegionalEconomicDataController {
*@date: 2023/5/18 10:29
*/
@PostMapping("/statistics/regional")
public AjaxResult statisticsRegional(@RequestBody OpRegionalEconomicDataV1Dto dto) {
public AjaxResult statisticsRegional(@RequestBody OpRegionalEconomicDataStatisticsRegionalDto dto) {
return economicService.statisticsRegional(dto);
}
......@@ -67,7 +70,7 @@ public class RegionalEconomicDataController {
*@date: 2023/5/18 10:29
*/
@PostMapping("/regional/list")
public AjaxResult regionalList(@RequestBody OpRegionalEconomicDataV1Dto dto) {
public AjaxResult regionalList(@RequestBody OpRegionalEconomicDataRegionalListDto dto) {
return economicService.regionalList(dto);
}
......
package com.dsk.common.dtos;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @ClassName OpRegionalEconomicDataV1Dto
* @Description 专项债-项目类别统计
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public class OpRegionalEconomicDataRegionalListDto {
/**
* 省Id
*/
@NotNull(message = "provinceId 不能为空")
private Integer provinceId;
/**
* 市Id
*/
private Integer cityId;
/**
* 区Id
*/
private Integer areaId;
}
package com.dsk.common.dtos;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @ClassName OpRegionalEconomicDataV1Dto
* @Description 专项债-项目类别统计
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public class OpRegionalEconomicDataStatisticsRegionalDto {
/**
* id
*/
@NotNull(message = "id 不能为空")
private Integer id;
/**
* 年份
*/
private Integer year;
/**
* 省Id
*/
private Integer provinceId;
/**
* 市Id
*/
private Integer cityId;
/**
* 区Id
*/
private Integer areaId;
}
......@@ -3,6 +3,7 @@ package com.dsk.common.dtos;
import com.dsk.common.core.domain.model.BasePage;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
......@@ -18,6 +19,7 @@ public class OpRegionalEconomicDataV1PageDto extends BasePage {
/**
* 年份
*/
@NotNull(message = "year 不能为空")
private Integer year;
/**
* 省
......
......@@ -3,6 +3,8 @@ package com.dsk.common.dtos;
import com.dsk.common.core.domain.model.BasePage;
import lombok.Data;
import java.util.List;
/**
* @ClassName UrbanInvestmentPlatformDto
......@@ -21,41 +23,41 @@ public class UrbanInvestmentPlatformDto extends BasePage {
/**
* 城投业务类型
*/
private String uipBusinessType;
private List<String> uipBusinessType;
/**
* 主体评级
*/
private String bratingSubjectLevel;
private List<String> bratingSubjectLevel;
/**
* 股东背景
*/
private String shareholderBg;
private List<String> shareholderBg;
/**
* 股权关系
*/
private String equityRelationship;
private List<String> equityRelationship;
/**
* 平台重要性
*/
private String platformImportance;
private List<String> platformImportance;
/**
* 所属开发区
*/
private String developmentZone;
private List<String> developmentZone;
/**
* 省
*/
private Integer provinceId;
private List<Integer> provinceIds;
/**
* 市
*/
private Integer cityId;
private List<Integer> cityIds;
/**
* 区
*/
private Integer areaId;
private List<Integer> areaIds;
/**
* 关键词
......
......@@ -50,8 +50,18 @@
<span class="common-title">跟进记录</span>
</div>
<div class="flex-box query-ability">
<div class="area">西南地区<i class="el-icon-caret-bottom"></i></div>
<div class="month">不限<i class="el-icon-caret-bottom"></i></div>
<div class="select-popper">
<div class="area">{{area}}<i class="sjx"></i></div>
<el-select v-model="area" class="select-multiple" placeholder="请选择">
<el-option v-for="(item,index) in areaList" :key="index" :label="item.name" :value="item.name"></el-option>
</el-select>
</div>
<div class="select-popper">
<div class="month">{{date}}<i class="sjx"></i></div>
<el-select v-model="date" class="select-multiple" placeholder="请选择">
<el-option v-for="(item,index) in dateList" :key="index" :label="item" :value="item"></el-option>
</el-select>
</div>
</div>
</div>
<div class="list">
......@@ -73,8 +83,18 @@
<span class="common-title">业绩排名</span>
</div>
<div class="flex-box query-ability">
<div class="area">西南地区<i class="el-icon-caret-bottom"></i></div>
<div class="month">不限<i class="el-icon-caret-bottom"></i></div>
<div class="select-popper">
<div class="area">{{area}}<i class="sjx"></i></div>
<el-select v-model="area" class="select-multiple" placeholder="请选择">
<el-option v-for="(item,index) in areaList" :key="index" :label="item.name" :value="item.name"></el-option>
</el-select>
</div>
<div class="select-popper">
<div class="month">{{date}}<i class="sjx"></i></div>
<el-select v-model="date" class="select-multiple" placeholder="请选择">
<el-option v-for="(item,index) in dateList" :key="index" :label="item" :value="item"></el-option>
</el-select>
</div>
</div>
</div>
<div class="main">
......@@ -103,9 +123,14 @@
</div>
<div class="flex-box query-ability">
<div class="tabs">
<div class="label" v-for="(item,index) in typeList" :class="typeIndex === index ? 'color':''" @click="handleClick(index)">{{item.name}}</div>
<!--<div class="label" v-for="(item,index) in typeList" :class="typeIndex === index ? 'color':''" @click="handleClick(index)">{{item.name}}</div>-->
</div>
<div class="select-popper">
<div class="area">{{area}}<i class="sjx"></i></div>
<el-select v-model="area" class="select-multiple" placeholder="请选择">
<el-option v-for="(item,index) in areaList" :key="index" :label="item.name" :value="item.name"></el-option>
</el-select>
</div>
<div class="area">西南地区<i class="el-icon-caret-bottom"></i></div>
</div>
</div>
<div>
......@@ -135,24 +160,42 @@
<div v-if="user === 2" class="trends">
<el-tabs v-model="activeName" @tab-click="handleClickTab">
<el-tab-pane label="甲方舆情" name="first">
<el-timeline>
<el-timeline-item
v-for="(item, index) in trendsList"
:key="index"
icon="el-icon-time">
{{item.main}}
</el-timeline-item>
</el-timeline>
<div class="main-box">
<el-timeline>
<el-timeline-item
v-for="(item, index) in trendsList"
:key="index"
icon="el-icon-time">
<div class="time">{{item.time}}<span class="company">{{item.name}}</span></div>
<div class="cont">{{item.main}}</div>
</el-timeline-item>
</el-timeline>
</div>
<!--<div class="check">全部甲方舆情 ></div>-->
</el-tab-pane>
<el-tab-pane label="监控动态" name="second">
<div class="main-box">
<el-timeline>
<el-timeline-item
v-for="(item, index) in trendsList"
:key="index"
icon="el-icon-time">
<div class="time">{{item.time}}<span class="company">{{item.name}}</span></div>
<div class="cont">{{item.main}}</div>
</el-timeline-item>
</el-timeline>
</div>
<!--<div class="check">全部监控动态 ></div>-->
</el-tab-pane>
<el-tab-pane label="监控动态" name="second">监控动态</el-tab-pane>
</el-tabs>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="content-right">
<div class="user">
<h3>刘毅<span>总经理</span></h3>
<div class="user" @click="handleChange">
<h3 v-if="user === 1">刘毅<span>总经理</span></h3>
<h3 v-if="user === 2">李婷婷<span>营销员</span></h3>
<p>您好,祝您工作顺利每一天</p>
</div>
<div class="search">
......@@ -160,8 +203,8 @@
<el-input placeholder="找客户/找项目/找甲方">
<i slot="prefix" class="el-icon-search"></i>
</el-input>
<span class="common-title" style="margin-bottom: 10px;">储备项目类</span>
<div class="list">
<span class="common-title">储备项目类</span>
<div class="list" style="margin-top: 8px;">
<div class="item">
<img src="@/assets/images/index/cb_icon1.png"/>
<p>EPC项目</p>
......@@ -190,8 +233,8 @@
</div>
</div>
</div>
<div class="zbgg">
<span class="common-title">标公告</span>
<div class="zbgg" v-if="user === 1">
<span class="common-title">标公告</span>
<div class="list">
<div class="item">
<h3>太原市万柏林区2023年兴华街道老旧小区改造项目</h3>
......@@ -230,6 +273,41 @@
</div>
</div>
</div>
<div v-if="user === 2" class="zbhxr">
<span class="common-title">竞争对手中标候选人公告</span>
<div class="list">
<div class="item">
<h3>太原市万柏林区2023年兴华街道老旧小区改造项目</h3>
<p>
<span>中标金额:4754.34</span>
</p>
</div>
<div class="item">
<h3>太原市万柏林区2023年兴华街道老旧小区改造项目</h3>
<p>
<span>中标金额:4754.34</span>
</p>
</div>
<div class="item">
<h3>太原市万柏林区2023年兴华街道老旧小区改造项目</h3>
<p>
<span>中标金额:4754.34</span>
</p>
</div>
<div class="item">
<h3>太原市万柏林区2023年兴华街道老旧小区改造项目</h3>
<p>
<span>中标金额:4754.34</span>
</p>
</div>
<div class="item">
<h3>太原市万柏林区2023年兴华街道老旧小区改造项目</h3>
<p>
<span>中标金额:4754.34</span>
</p>
</div>
</div>
</div>
</div>
</el-col>
</el-row>
......@@ -238,6 +316,7 @@
<script>
import * as echarts from 'echarts';
import "@/assets/styles/public.css";
export default {
name: "Index",
data() {
......@@ -254,7 +333,57 @@ export default {
],
typeIndex:0,
jyfxData:['1月','2月','3月','4月','5月','6月'],
jyfxData1:[103,256,132,186,210,95],
jyfxData1:[
{
dcjxm:'103',
dcjzje:'123',
cjxmje:'153',
cjxmzs:'113',
cbxmzs:'93',
cbxmzje:'193',
},
{
dcjxm:'256',
dcjzje:'223',
cjxmje:'113',
cjxmzs:'163',
cbxmzs:'193',
cbxmzje:'123',
},
{
dcjxm:'103',
dcjzje:'123',
cjxmje:'153',
cjxmzs:'113',
cbxmzs:'93',
cbxmzje:'193',
},
{
dcjxm:'256',
dcjzje:'223',
cjxmje:'113',
cjxmzs:'163',
cbxmzs:'193',
cbxmzje:'123',
},
{
dcjxm:'103',
dcjzje:'123',
cjxmje:'153',
cjxmzs:'113',
cbxmzs:'93',
cbxmzje:'193',
},
{
dcjxm:'256',
dcjzje:'223',
cjxmje:'113',
cjxmzs:'163',
cbxmzs:'193',
cbxmzje:'123',
},
],
gjjlData:[
{
title:'今天拜访了重庆交通局杨科长,洽谈比较愉快,预计下月有项目招标,希望能有机会合作。',
......@@ -351,7 +480,53 @@ export default {
name:'重庆轨道交通集团有限公司',
main:'发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
},
]
{
time:'2018-04-03 10:20',
name:'重庆轨道交通集团有限公司',
main:'发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
},
{
time:'2018-04-03 10:20',
name:'重庆轨道交通集团有限公司',
main:'发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
},
{
time:'2018-04-03 10:20',
name:'重庆轨道交通集团有限公司',
main:'发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
},
{
time:'2018-04-03 10:20',
name:'重庆轨道交通集团有限公司',
main:'发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
},
],
area:'西南地区',
areaList:[
{
name:'西南地区'
},
{
name:'华中地区'
},
{
name:'华南地区'
},
{
name:'华东地区'
},
{
name:'华北地区'
},
{
name:'东北地区'
},
{
name:'西北地区'
},
],
date:'不限',
dateList:['不限','今日','昨日','近三天','近七天']
};
},
created() {
......@@ -370,8 +545,18 @@ export default {
initChart() {
let myChart = echarts.init(document.getElementById("fx-echarts"))
let option ={
legend: {
x:'right',
padding:[0,120,0,0],
},
tooltip: {
show:false
trigger: 'axis',
axisPointer: {
type: 'line',
label: {
backgroundColor: '#FFFFFF'
}
}
},
xAxis: {
type: 'category',
......@@ -382,14 +567,21 @@ export default {
type: 'value',
},
grid: {
top:20,
top:35,
left:30,
right:10,
bottom:20,
},
// dcjxm:'256',
// dcjzje:'223',
// cjxmje:'113',
// cjxmzs:'163',
// cbxmzs:'193',
// cbxmzje:'123',
series: [
{
data: this.jyfxData1,
data: this.jyfxData1.map(item => item.dcjxm),
name:'待成交项目数',
type: 'line',
smooth: true,
emphasis: {
......@@ -398,7 +590,39 @@ export default {
},
//设置折线颜色和粗细
lineStyle: {
width: 1,
width: 2,
color: "#0CBC6D",
},
itemStyle:{
color: "#0CBC6D",
},
//设置面积区域为渐变效果
areaStyle: {
opacity:0.8,
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0.2,
color: "#EFFAF6",
},
{
offset: 1,
color: "#0CBC6D",
},
]),
},
},
{
data: this.jyfxData1.map(item => item.dcjzje),
name:'待成交总金额',
type: 'line',
smooth: true,
emphasis: {
disabled: true,
focus: 'none'
},
//设置折线颜色和粗细
lineStyle: {
width: 2,
color: "#0081FF",
},
itemStyle:{
......@@ -406,7 +630,8 @@ export default {
},
//设置面积区域为渐变效果
areaStyle: {
color: echarts.graphic.LinearGradient(0, 1, 0, 0, [
opacity:0.8,
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0.2,
color: "#DFEAFF",
......@@ -417,13 +642,149 @@ export default {
},
]),
},
}
},
{
data: this.jyfxData1.map(item => item.cjxmje),
name:'成交项目金额',
type: 'line',
smooth: true,
emphasis: {
disabled: true,
focus: 'none'
},
//设置折线颜色和粗细
lineStyle: {
width: 2,
color: "#8077F2",
},
itemStyle:{
color: "#8077F2",
},
//设置面积区域为渐变效果
areaStyle: {
opacity:0.8,
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0.2,
color: "#ECE8FF",
},
{
offset: 1,
color: "#BCC0FF",
},
]),
},
},
{
data: this.jyfxData1.map(item => item.cjxmzs),
name:'成交项目总数',
type: 'line',
smooth: true,
emphasis: {
disabled: true,
focus: 'none'
},
//设置折线颜色和粗细
lineStyle: {
width: 2,
color: "#FA6C6C",
},
itemStyle:{
color: "#FA6C6C",
},
//设置面积区域为渐变效果
areaStyle: {
opacity:0.8,
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0.2,
color: "#FDEAE8",
},
{
offset: 1,
color: "#FDB2AE",
},
]),
},
},
{
data: this.jyfxData1.map(item => item.cbxmzs),
name:'储备项目总数',
type: 'line',
smooth: true,
emphasis: {
disabled: true,
focus: 'none'
},
//设置折线颜色和粗细
lineStyle: {
width: 2,
color: "#FA936C",
},
itemStyle:{
color: "#FA936C",
},
//设置面积区域为渐变效果
areaStyle: {
opacity:0.8,
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0.2,
color: "#FCE8E0",
},
{
offset: 1,
color: "#FBC4AF",
},
]),
},
},
{
data: this.jyfxData1.map(item => item.cbxmzje),
name:'储备项目总金额',
type: 'line',
smooth: true,
emphasis: {
disabled: true,
focus: 'none'
},
//设置折线颜色和粗细
lineStyle: {
width: 2,
color: "#FDD85E",
},
itemStyle:{
color: "#FDD85E",
},
//设置面积区域为渐变效果
areaStyle: {
opacity:0.8,
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0.2,
color: "#FCF8EF",
},
{
offset: 1,
color: "#FEEBAA",
},
]),
},
},
]
}
myChart.setOption(option);
},
initChart1(){
var rankPic = [
require('@/assets/images/index/1.png'),
require('@/assets/images/index/2.png'),
require('@/assets/images/index/3.png'),
require('@/assets/images/index/4.png'),
require('@/assets/images/index/5.png'),
]
let myChart = echarts.init(document.getElementById("pm-echarts"))
let option ={
legend: {
show: true,
......@@ -448,56 +809,63 @@ export default {
}
},
axisLabel: {
color: '#232323',
margin: 50,
// formatter必须,配合rich使用
margin: 80,
textStyle: {
align:'left',
align: 'left',
},
formatter: function (value,index) {
let idx=index+1;
return '{' + idx + '|} {s|' + value + '}'
},
rich: {
a1: {
backgroundColor: {image: this.rankIcons[0]},
width: this.rankIconsSize,
height: this.rankIconsSize,
align: "left",
// padding: [0, 0, 50, 100]
1: {
height: 24,
width: 24,
align: 'center',
backgroundColor: {
image: rankPic[0]
},
},
a2: {
backgroundColor: { image: this.rankIcons[1] },
width: this.rankIconsSize,
height: this.rankIconsSize,
align: "center",
2: {
height: 24,
width: 24,
align: 'center',
backgroundColor: {
image: rankPic[1]
}
},
a3: {
backgroundColor: { image: this.rankIcons[2] },
width: this.rankIconsSize,
height: this.rankIconsSize,
align: "center",
3: {
height: 24,
width: 24,
align: 'center',
backgroundColor: {
image: rankPic[2]
}
},
a4: {
backgroundColor: { image: this.rankIcons[3] },
width: this.rankIconsSize,
height: this.rankIconsSize,
align: "center",
4: {
height: 24,
width: 24,
align: 'center',
backgroundColor: {
image: rankPic[3]
}
},
a5: {
backgroundColor: { image: this.rankIcons[4] },
width: this.rankIconsSize,
height: this.rankIconsSize,
align: "center",
5: {
height: 24,
width: 24,
align: 'center',
backgroundColor: {
image: rankPic[4]
}
},
},
formatter: (params, index) => {
return [`{a${index + 1}|} ${params}`].join('\n')
},
}
},
},
xAxis: {
type: 'value',
},
grid: {
left: '22%',
left: '16%',
top: 20,
right: 20,
bottom: 60,
......@@ -545,6 +913,15 @@ export default {
},
handleClickTab(){
},
handleChange(){
this.user = this.user === 1 ? 2 : 1;
if(this.user === 1){
this.$nextTick(()=>{
this.initChart()
this.initChart1()
})
}
}
}
};
......@@ -585,6 +962,7 @@ export default {
margin-top: 14px;
margin-bottom: 14px;
border-right: 1px solid #EFEFEF;
cursor: pointer;
.left{
width: 48px;
height: 48px;
......@@ -625,6 +1003,16 @@ export default {
.item:last-child{
border-right: 0;
}
.item:hover{
.right{
.title{
color: #0081FF;
}
.number{
color: #0081FF;
}
}
}
.add{
padding-left: 0;
.yd{
......@@ -654,11 +1042,17 @@ export default {
margin-right: 4px;
}
}
.btn:hover{
background: #F6F9FC;
}
}
}
.content-wrap{
margin-bottom: 12px;
height: 460px;
.select-popper{
margin-right:0;
}
.record{
height: 460px;
background: #FFFFFF;
......@@ -749,23 +1143,54 @@ export default {
}
}
.area{
font-size: 14px;
color: #232323;
cursor: pointer;
i{
color:#A7A7A7;
.select-popper{
.area{
font-size: 14px;
color: #232323;
cursor: pointer;
i{
background: url("../assets/images/index/sjx.png");
background-size: 100% 100%;
width: 10px;
height: 6px;
display: inline-block;
margin-bottom: 2px;
margin-left: 4px;
}
}
.month{
font-size: 14px;
color: #232323;
margin-left: 16px;
cursor: pointer;
i{
background: url("../assets/images/index/sjx.png");
background-size: 100% 100%;
width: 10px;
height: 6px;
display: inline-block;
margin-bottom: 2px;
margin-left: 4px;
}
}
.color{
color: #0081FF;
i{
background: url("../assets/images/index/sjx2.png");
background-size: 100% 100%;
}
}
}
.month{
font-size: 14px;
color: #232323;
margin-left: 16px;
cursor: pointer;
i{
color:#A7A7A7;
.select-popper:hover{
.area,.month{
color: #0081FF;
i{
background: url("../assets/images/index/sjx1.png");
background-size: 100% 100%;
}
}
}
}
.content-db{
height: 263px;
......@@ -830,6 +1255,7 @@ export default {
background: #FFFFFF;
border-radius: 4px;
padding: 16px;
position: relative;
.tabs{
.label{
display: inline-block;
......@@ -855,13 +1281,34 @@ export default {
color: #FFFFFF;
}
}
.area{
font-size: 14px;
color: #232323;
margin-left: 16px;
cursor: pointer;
i{
color:#A7A7A7;
.select-popper{
position: absolute;
right: 0;
top: 27px;
z-index: 99;
.area{
font-size: 14px;
color: #232323;
margin-left: 16px;
cursor: pointer;
i{
background: url("../assets/images/index/sjx.png");
background-size: 100% 100%;
width: 10px;
height: 6px;
display: inline-block;
margin-bottom: 2px;
margin-left: 4px;
}
}
}
.select-popper:hover{
.area,.month{
color: #0081FF;
i{
background: url("../assets/images/index/sjx1.png");
background-size: 100% 100%;
}
}
}
}
......@@ -870,6 +1317,66 @@ export default {
border-radius: 4px;
padding: 16px;
height: 440px;
overflow: hidden;
position: relative;
::v-deep .el-tabs__header{
margin: 0 0 18px;
}
::v-deep .el-tabs__content{
overflow-y: auto;
height: 368px;
}
::v-deep .el-timeline{
.el-timeline-item{
padding-bottom: 18px;
}
.el-timeline-item__tail{
left: 7px;
border-left: 2px dotted rgba(0,129,255,0.5);
}
.el-timeline-item__node{
background-color:#ffffff;
.el-timeline-item__icon{
color:#0081FF;
font-size: 14px;
}
}
.el-timeline-item__node--normal{
left: 0px;
width: 16px;
height: 16px;
}
}
.time{
font-size: 14px;
color: rgba(35,35,35,0.8);
.company{
color: #0081FF;
margin-left: 16px;
}
}
.cont{
background: #F6F9FD;
border-radius: 6px;
padding: 16px;
margin-top: 8px;
font-size: 14px;
color: rgba(35,35,35,0.8);
margin-right: 16px;
}
.check{
height: 60px;
background: linear-gradient(360deg, #FFFFFF 0%, #FFFFFF 17%, rgba(255,255,255,0.6) 100%);
font-size: 16px;
color: #0CBC6D;
line-height: 60px;
text-align: center;
width: 100%;
position: absolute;
bottom: 46px;
cursor: pointer;
}
}
}
.content-right{
......@@ -915,8 +1422,8 @@ export default {
::v-deep .el-input{
height: 32px;
border-radius: 2px;
margin-bottom: 22px;
margin-top: 16px;
margin-bottom: 20px;
margin-top: 14px;
.el-input__inner{
height: 32px;
line-height: 32px;
......@@ -936,8 +1443,10 @@ export default {
justify-content: space-between;
.item{
margin: 0 auto;
width: 33.3%;
height: 94px;
text-align: center;
cursor: pointer;
img{
width: 40px;
height: 40px;
......@@ -948,6 +1457,9 @@ export default {
font-size: 12px;
}
}
.item:hover{
background: #F6F9FC;
}
}
}
.zbgg{
......@@ -986,6 +1498,42 @@ export default {
border-bottom: 0;
}
}
.zbhxr{
height: 382px;
background: #FFFFFF;
border-radius: 4px;
padding: 16px;
.list{
margin-top: 16px;
}
.item{
border-bottom: 1px solid #EEEEEE;
padding: 10px 0;
h3{
font-weight: 400;
color: rgba(35,35,35,0.8);
font-size: 14px;
padding-bottom: 8px;
margin: 0;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
p{
color: rgba(35,35,35,0.4);
font-size: 14px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
span{
margin-right: 15px;
}
}
}
.item:last-child{
border-bottom: 0;
}
}
}
}
</style>
......
<template>
<div class="login">
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
<h3 class="title"><img src="../assets/images/title_icon.png"/>欢迎登录系统</h3>
<el-form-item prop="username">
<el-input
v-model="loginForm.username"
type="text"
auto-complete="off"
placeholder="请输入登录账号"
>
<img class="img" slot="prefix" src="../assets/images/user.png"/>
</el-input>
</el-form-item>
<el-form-item prop="password">
<el-input
v-model="loginForm.password"
type="password"
auto-complete="off"
placeholder="请输入账号密码"
@keyup.enter.native="handleLogin"
>
<img class="img" slot="prefix" src="../assets/images/password.png"/>
</el-input>
</el-form-item>
<el-form-item prop="code" v-if="captchaEnabled">
<el-input
v-model="loginForm.code"
auto-complete="off"
placeholder="请输入验证码"
style="width: 56%;float: left;"
@keyup.enter.native="handleLogin"
>
<img class="img" slot="prefix" src="../assets/images/validCode.png"/>
</el-input>
<div class="login-code">
<img :src="codeUrl" @click="getCode" class="login-code-img"/>
</div>
</el-form-item>
<el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 48px;">记住密码</el-checkbox>
<el-form-item style="width:100%;">
<el-button
:loading="loading"
size="medium"
type="primary"
style="width:100%;height: 48px;border-radius: 4px;font-size: 16px;"
@click.native.prevent="handleLogin"
>
<span v-if="!loading">登 录</span>
<span v-else>登 录 中...</span>
</el-button>
<div style="float: right;" v-if="register">
<router-link class="link-type" :to="'/register'">立即注册</router-link>
</div>
</el-form-item>
</el-form>
<div class="content">
<div class="left">
<img class="logo" src="../assets/images/logo1.png" />
<img class="img" src="../assets/images/login/img.png" />
</div>
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
<h3 class="title"><img src="../assets/images/title_icon.png"/>欢迎登录系统</h3>
<el-form-item prop="username">
<el-input
v-model="loginForm.username"
type="text"
auto-complete="off"
placeholder="请输入登录账号"
>
<img class="img" slot="prefix" src="../assets/images/user.png"/>
</el-input>
</el-form-item>
<el-form-item prop="password">
<el-input
v-model="loginForm.password"
type="password"
auto-complete="off"
placeholder="请输入账号密码"
@keyup.enter.native="handleLogin"
>
<img class="img" slot="prefix" src="../assets/images/password.png"/>
</el-input>
</el-form-item>
<el-form-item prop="code" v-if="captchaEnabled">
<el-input
v-model="loginForm.code"
auto-complete="off"
placeholder="请输入验证码"
style="width: 56%;float: left;"
@keyup.enter.native="handleLogin"
>
<img class="img" slot="prefix" src="../assets/images/validCode.png"/>
</el-input>
<div class="login-code">
<img :src="codeUrl" @click="getCode" class="login-code-img"/>
</div>
</el-form-item>
<el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 48px;">记住密码</el-checkbox>
<el-form-item style="width:100%;">
<el-button
:loading="loading"
size="medium"
type="primary"
style="width:100%;height: 48px;border-radius: 4px;font-size: 16px;"
@click.native.prevent="handleLogin"
>
<span v-if="!loading">登 录</span>
<span v-else>登 录 中...</span>
</el-button>
<div style="float: right;" v-if="register">
<router-link class="link-type" :to="'/register'">立即注册</router-link>
</div>
</el-form-item>
</el-form>
</div>
</div>
</template>
......@@ -153,12 +159,32 @@ export default {
<style rel="stylesheet/scss" lang="scss">
.login {
display: flex;
/*display: flex;*/
justify-content: center;
align-items: center;
height: 100%;
background-image: url("../assets/images/login_bg.png");
background-size: cover;
overflow-y: hidden;
.content{
width: 1320px;
margin: 0 auto;
padding-top: 160px;
}
.left{
float: left;
width: 730px;
margin-right: 170px;
}
.logo{
width: 317px;
height: 69px;
margin-bottom: 58px;
}
.img{
width: 730px;
height: 624px;
}
}
.title {
padding: 46px 0 32px 48px;
......@@ -177,6 +203,8 @@ export default {
border-radius: 6px;
background: #ffffff;
width: 420px;
float: right;
margin-top: 70px;
/*padding: 25px 25px 5px 25px;*/
.el-form-item{
padding: 0 48px;
......
package com.dsk.system.service;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.OpRegionalEconomicDataRegionalListDto;
import com.dsk.common.dtos.OpRegionalEconomicDataStatisticsRegionalDto;
import com.dsk.common.dtos.OpRegionalEconomicDataV1Dto;
import com.dsk.common.dtos.OpRegionalEconomicDataV1PageDto;
......@@ -39,7 +41,7 @@ public interface EconomicService {
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult statisticsRegional(OpRegionalEconomicDataV1Dto dto);
AjaxResult statisticsRegional(OpRegionalEconomicDataStatisticsRegionalDto dto);
/***
*@Description: 地区经济-分页列表
......@@ -48,7 +50,7 @@ public interface EconomicService {
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult regionalList(OpRegionalEconomicDataV1Dto dto);
AjaxResult regionalList(OpRegionalEconomicDataRegionalListDto dto);
/***
*@Description: 地区经济-分页列表
......
......@@ -76,15 +76,16 @@ public class CustomerServiceImpl implements ICustomerService {
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(Customer customer) {
try {
R res = enterpriseService.getUipId(customer.getCompanyName());
if (!ObjectUtils.isEmpty(res.getData())) {
customer.setUipId(MapUtil.getStr(BeanUtil.beanToMap(res.getData()), "uipId"));
if (ObjectUtils.isEmpty(customer.getUipId())) {
try {
R res = enterpriseService.getUipId(customer.getCompanyName());
if (!ObjectUtils.isEmpty(res.getData())) {
customer.setUipId(MapUtil.getStr(BeanUtil.beanToMap(res.getData()), "uipId"));
}
} catch (Exception e) {
log.error("获取城投平台企业id错误!error:{}", e.getMessage());
}
} catch (Exception e) {
log.error("获取城投平台企业id错误!error:{}", e.getMessage());
}
Long userId = SecurityUtils.getUserId();
customer.setCreateId(userId);
customer.setUpdateId(userId);
......
......@@ -2,6 +2,8 @@ package com.dsk.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.OpRegionalEconomicDataRegionalListDto;
import com.dsk.common.dtos.OpRegionalEconomicDataStatisticsRegionalDto;
import com.dsk.common.dtos.OpRegionalEconomicDataV1Dto;
import com.dsk.common.dtos.OpRegionalEconomicDataV1PageDto;
import com.dsk.common.utils.DskOpenApiUtil;
......@@ -40,13 +42,13 @@ public class EconomicServiceImpl implements EconomicService {
}
@Override
public AjaxResult statisticsRegional(OpRegionalEconomicDataV1Dto dto) {
public AjaxResult statisticsRegional(OpRegionalEconomicDataStatisticsRegionalDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/economic/statistics/regional", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult regionalList(OpRegionalEconomicDataV1Dto dto) {
public AjaxResult regionalList(OpRegionalEconomicDataRegionalListDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/economic/regional/list", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
......
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