Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-cr20g
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
dsk-cr20g
Commits
d15e0f0b
Commit
d15e0f0b
authored
Jun 09, 2023
by
zhangyi
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
262c6240
4c00c164
Changes
44
Hide whitespace changes
Inline
Side-by-side
Showing
44 changed files
with
2003 additions
and
593 deletions
+2003
-593
CompanySearchController.java
...controller/search/controller/CompanySearchController.java
+1
-1
BizConstant.java
...om/dsk/web/controller/search/macroMarket/BizConstant.java
+392
-0
IpUtil.java
...ava/com/dsk/web/controller/search/macroMarket/IpUtil.java
+281
-0
RegionalEconomicDataController.java
...er/search/macroMarket/RegionalEconomicDataController.java
+5
-1
RegionalEnterprisesController.java
...ler/search/macroMarket/RegionalEnterprisesController.java
+2
-2
OpRegionalLocalDto.java
...src/main/java/com/dsk/common/dtos/OpRegionalLocalDto.java
+2
-0
SecurityConfig.java
...rc/main/java/com/dsk/framework/config/SecurityConfig.java
+1
-1
common.js
dsk-operate-ui/src/api/common.js
+1
-1
index.js
dsk-operate-ui/src/api/detail/party-a/index.js
+2
-2
overview.js
dsk-operate-ui/src/api/detail/party-a/overview.js
+0
-9
macro.js
dsk-operate-ui/src/api/macro/macro.js
+82
-0
project.js
dsk-operate-ui/src/api/project/project.js
+18
-2
project.scss
dsk-operate-ui/src/assets/styles/project.scss
+3
-2
download.js
dsk-operate-ui/src/plugins/download.js
+15
-1
index.js
dsk-operate-ui/src/router/index.js
+4
-4
HeadForm.vue
...perate-ui/src/views/detail/party-a/component/HeadForm.vue
+11
-3
index.vue
dsk-operate-ui/src/views/detail/party-a/cooperate/index.vue
+127
-112
index.vue
dsk-operate-ui/src/views/detail/party-a/index.vue
+9
-0
businfo.vue
dsk-operate-ui/src/views/detail/party-a/overview/businfo.vue
+53
-47
overview.vue
...operate-ui/src/views/detail/party-a/overview/overview.vue
+1
-1
regionalEconomies.vue
...iews/detail/party-a/urbanLnvestment/regionalEconomies.vue
+8
-8
sameRegion.vue
...i/src/views/detail/party-a/urbanLnvestment/sameRegion.vue
+1
-1
comparison.vue
...ate-ui/src/views/macro/economies/component/comparison.vue
+83
-44
industrialStructure.vue
...c/views/macro/economies/component/industrialStructure.vue
+70
-55
localEconomy.vue
...e-ui/src/views/macro/economies/component/localEconomy.vue
+4
-1
regionalEconomy.vue
...i/src/views/macro/economies/component/regionalEconomy.vue
+86
-41
index.vue
dsk-operate-ui/src/views/macro/economies/index.vue
+17
-8
localEnterprises.vue
...rc/views/macro/enterprises/component/localEnterprises.vue
+190
-0
offsite.vue
...rate-ui/src/views/macro/enterprises/component/offsite.vue
+176
-0
index.vue
dsk-operate-ui/src/views/macro/enterprises/index.vue
+43
-11
index.vue
dsk-operate-ui/src/views/macro/financing/index.vue
+133
-116
qgjjdq.vue
...ui/src/views/macro/nationalEconomies/component/qgjjdq.vue
+6
-5
zhongbiao.vue
...src/views/macro/nationalEconomies/component/zhongbiao.vue
+0
-63
gjjl.vue
...erate-ui/src/views/project/projectList/component/gjjl.vue
+52
-7
gzdb.vue
...erate-ui/src/views/project/projectList/component/gzdb.vue
+8
-2
jsnr.vue
...erate-ui/src/views/project/projectList/component/jsnr.vue
+7
-1
lxr.vue
...perate-ui/src/views/project/projectList/component/lxr.vue
+8
-2
xgqy.vue
...erate-ui/src/views/project/projectList/component/xgqy.vue
+10
-4
xmsl.vue
...erate-ui/src/views/project/projectList/component/xmsl.vue
+5
-1
zlwd.vue
...erate-ui/src/views/project/projectList/component/zlwd.vue
+54
-18
detail.vue
dsk-operate-ui/src/views/project/projectList/detail.vue
+24
-10
index.vue
dsk-operate-ui/src/views/project/trends/index.vue
+3
-1
RegionalEnterprisesService.java
...va/com/dsk/system/service/RegionalEnterprisesService.java
+2
-2
RegionalEnterprisesServiceImpl.java
...k/system/service/impl/RegionalEnterprisesServiceImpl.java
+3
-3
No files found.
dsk-admin/src/main/java/com/dsk/web/controller/search/controller/CompanySearchController.java
View file @
d15e0f0b
...
@@ -40,7 +40,7 @@ public class CompanySearchController {
...
@@ -40,7 +40,7 @@ public class CompanySearchController {
/*
/*
* 完全匹配企业名称
* 完全匹配企业名称
*/
*/
@
Ge
tMapping
(
"/page"
)
@
Pos
tMapping
(
"/page"
)
public
AjaxResult
page
(
@RequestBody
ComposeQueryDto
compose
)
{
public
AjaxResult
page
(
@RequestBody
ComposeQueryDto
compose
)
{
return
opportunityRadarService
.
enterprisePage
(
compose
);
return
opportunityRadarService
.
enterprisePage
(
compose
);
}
}
...
...
dsk-admin/src/main/java/com/dsk/web/controller/search/macroMarket/BizConstant.java
0 → 100644
View file @
d15e0f0b
/**
*
*/
package
com
.
dsk
.
web
.
controller
.
search
.
macroMarket
;
import
java.util.Arrays
;
import
java.util.List
;
/**
* 常量类
* @author xiaofei.qin
*
*/
public
final
class
BizConstant
{
/**
* http header里的常量
*/
public
final
static
String
HEADER_KEY_TOKEN
=
"token"
;
/**
* 中国的省份编码
*/
public
final
static
int
PROVINCE_CHINA
=
100000
;
public
static
final
Integer
BASE_CERTIFICATE_PARENT_ID
=
0
;
public
final
static
String
PROJECT_DATE_GROUP
=
"project_date_group"
;
public
final
static
String
FEEDBACK_GROUP
=
"feedback_group"
;
public
final
static
String
PROJECT_AMOUNT
=
"project_amount"
;
public
final
static
String
PROJECT_AMOUNT_2
=
"project_amount2"
;
public
final
static
String
SPLIT_CHAR
=
","
;
public
final
static
String
SIKUYI
=
"全国建筑市场监管公共服务平台"
;
public
final
static
String
OTHER
=
"其他建筑市场平台"
;
public
final
static
Integer
PAGE_ROW
=
10
;
//权限表基础保存功能
public
final
static
String
basicsave
=
"ROLE_SYS_PERMISSION_SAVE"
;
//权限表基础修改功能
public
final
static
String
basicupdate
=
"ROLE_SYS_PERMISSION_UPDATE"
;
//权限表基础删除功能
public
final
static
String
basicdelete
=
"ROLE_SYS_PERMISSION_DEL"
;
public
final
static
List
<
String
>
SPECIAL_CHARACTER
=
Arrays
.
asList
(
"有限"
,
"限公"
,
"公司"
,
"限责"
,
"责任"
,
"任公"
,
"股份"
,
"份有"
,
"有限公"
,
"限公司"
,
"有限责"
,
"有限公司"
,
"有限责任"
,
"责任公司"
,
"有限公司"
,
"有限责任公司"
,
"股份有限公司"
,
"监理"
,
"工程"
,
"建筑"
,
"建设"
);
public
final
static
List
<
String
>
COMPANY_NOT_CHARACTER
=
Arrays
.
asList
(
"日期"
,
"时间"
,
"公告"
,
"中标"
,
"候选人"
,
"公示"
,
"联合体"
,
"公开"
);
public
final
static
List
<
String
>
CONSTRUCTION
=
Arrays
.
asList
(
"建设"
,
"安装"
,
"总承包"
,
"EPC"
,
"施工"
,
"工程"
,
"项目"
,
"升级"
,
"改造"
,
"拆除"
,
"绿化"
,
"楼"
,
"路"
,
"桥"
,
"水"
,
"建"
,
"工程"
,
"测"
,
"房"
,
"改造"
,
"路"
,
"道"
,
"施"
,
"建"
,
"处理"
,
"地"
,
"坡"
,
"沟"
,
"池"
,
"场"
,
"修"
,
"设"
,
"舍"
,
"标段"
,
"城"
,
"治"
,
"期"
,
"堂"
,
"消防"
,
"小区"
,
"饰"
,
"景观"
,
"园"
,
"栋"
,
"馆"
,
"站"
,
"中心"
,
"座"
,
"规划"
,
"殿"
,
"厅"
,
"库"
,
"公寓"
,
"厦"
,
"车间"
,
"院"
,
"屋"
,
"水利"
,
"厕所"
,
"宅"
,
"管网"
,
"学"
,
"砖"
,
"所"
,
"点"
,
"家"
,
"EPC"
,
"PMC"
,
"DB"
,
"DBB"
,
"CM"
,
"BOT"
,
"PPP"
);
public
final
static
List
<
String
>
SUPERVISION
=
Arrays
.
asList
(
"监理"
);
public
final
static
List
<
String
>
SURVEY
=
Arrays
.
asList
(
"勘察"
,
"设计"
,
"测绘"
);
public
final
static
List
<
String
>
CONSULTATION
=
Arrays
.
asList
(
"咨询"
,
"管理"
);
public
final
static
List
<
String
>
OTHERBID
=
Arrays
.
asList
(
"采购"
);
public
final
static
int
CONSTRUCTIONNO
=
1
;
public
final
static
int
SUPERVISIONNO
=
2
;
public
final
static
int
SURVEYNO
=
3
;
public
final
static
int
CONSULTATIONNO
=
4
;
public
final
static
int
OTHERBIDNO
=
5
;
/**
* 中标项目名不包含字符
*/
public
final
static
List
<
String
>
PROJECT_NOT_CHARACTER
=
Arrays
.
asList
(
"报价"
,
"联合"
,
"日期"
,
"时间"
,
"公告"
,
"投标"
,
"公开"
,
"公布"
,
"如下"
,
"中标"
,
"编号"
,
"建造师"
,
"元"
,
"唱标"
);
public
final
static
List
<
String
>
COMPANY_CHARACTER
=
Arrays
.
asList
(
"公司"
,
"局"
,
"院"
,
"集团"
,
"所"
,
"中心"
,
"处"
,
"厂"
,
"大学"
,
"队"
,
"部"
,
"站"
,
"室"
,
"场"
,
"合作社"
);
public
final
static
List
<
String
>
COMPANY_BUILD_CHARACTER
=
Arrays
.
asList
(
"施工"
,
"工程"
,
"实业"
,
"建筑"
,
"建设"
,
"安装"
,
"勘察"
,
"设计"
,
"监理"
,
"技术"
,
"科技"
);
public
final
static
List
<
String
>
PROVINCE
=
Arrays
.
asList
(
"北京"
,
"天津"
,
"河北"
,
"山西"
,
"内蒙古"
,
"辽宁"
,
"吉林"
,
"黑龙江"
,
"上海"
,
"江苏"
,
"浙江"
,
"安徽"
,
"福建"
,
"江西"
,
"山东"
,
"河南"
,
"湖北"
,
"湖南"
,
"广东"
,
"广西"
,
"海南"
,
"重庆"
,
"四川"
,
"贵州"
,
"云南"
,
"西藏"
,
"陕西"
,
"甘肃"
,
"青海"
,
"宁夏"
,
"新疆"
);
public
final
static
List
<
String
>
SPIDER
=
Arrays
.
asList
(
"baidu.com"
,
"google"
,
"google.com"
,
"googlebot"
,
"YisouSpider"
,
"Bytespider"
,
"bytedance.com"
,
"so"
,
"so.com"
,
"360spider"
,
"sogou"
,
"sogou.com"
,
"msn"
,
"msn.com"
,
"bing"
,
"bing.com"
,
"sm.cn"
,
"youdao"
);
public
final
static
String
PROVINCE_CODE
=
"[{\"Code\":\"CN\",\"ProvinceName\":\"全国\"},{\"Code\":\"BJ\",\"ProvinceName\":\"北京\"},{\"Code\":\"TJ\",\"ProvinceName\":\"天津\"},{\"Code\":\"HB\",\"ProvinceName\":\"河北\"},{\"Code\":\"SX\",\"ProvinceName\":\"山西\"},{\"Code\":\"NMG\",\"ProvinceName\":\"内蒙古\"},{\"Code\":\"LN\",\"ProvinceName\":\"辽宁\"},{\"Code\":\"JL\",\"ProvinceName\":\"吉林\"},{\"Code\":\"HLJ\",\"ProvinceName\":\"黑龙江\"},{\"Code\":\"SH\",\"ProvinceName\":\"上海\"},{\"Code\":\"JS\",\"ProvinceName\":\"江苏\"},{\"Code\":\"ZJ\",\"ProvinceName\":\"浙江\"},{\"Code\":\"AH\",\"ProvinceName\":\"安徽\"},{\"Code\":\"FJ\",\"ProvinceName\":\"福建\"},{\"Code\":\"JX\",\"ProvinceName\":\"江西\"},{\"Code\":\"SD\",\"ProvinceName\":\"山东\"},{\"Code\":\"HEN\",\"ProvinceName\":\"河南\"},{\"Code\":\"HUB\",\"ProvinceName\":\"湖北\"},{\"Code\":\"HUN\",\"ProvinceName\":\"湖南\"},{\"Code\":\"GD\",\"ProvinceName\":\"广东\"},{\"Code\":\"GX\",\"ProvinceName\":\"广西\"},{\"Code\":\"HAIN\",\"ProvinceName\":\"海南\"},{\"Code\":\"CQ\",\"ProvinceName\":\"重庆\"},{\"Code\":\"SC\",\"ProvinceName\":\"四川\"},{\"Code\":\"GZ\",\"ProvinceName\":\"贵州\"},{\"Code\":\"YN\",\"ProvinceName\":\"云南\"},{\"Code\":\"XZ\",\"ProvinceName\":\"西藏\"},{\"Code\":\"SAX\",\"ProvinceName\":\"陕西\"},{\"Code\":\"GS\",\"ProvinceName\":\"甘肃\"},{\"Code\":\"QH\",\"ProvinceName\":\"青海\"},{\"Code\":\"NX\",\"ProvinceName\":\"宁夏\"},{\"Code\":\"XJ\",\"ProvinceName\":\"新疆\"}]"
;
public
final
static
String
PROVINCE_SIMPLE_CODE
=
"{\"CN\":\"全国\",\"BJ\":\"北京\",\"TJ\":\"天津\",\"HB\":\"河北\",\"SX\":\"山西\",\"NMG\":\"内蒙古\",\"LN\":\"辽宁\",\"JL\":\"吉林\",\"HLJ\":\"黑龙江\",\"SH\":\"上海\",\"JS\":\"江苏\",\"ZJ\":\"浙江\",\"AH\":\"安徽\",\"FJ\":\"福建\",\"JX\":\"江西\",\"SD\":\"山东\",\"HEN\":\"河南\",\"HUB\":\"湖北\",\"HUN\":\"湖南\",\"GD\":\"广东\",\"GX\":\"广西\",\"HAIN\":\"海南\",\"CQ\":\"重庆\",\"SC\":\"四川\",\"GZ\":\"贵州\",\"YN\":\"云南\",\"XZ\":\"西藏\",\"SAX\":\"陕西\",\"GS\":\"甘肃\",\"QH\":\"青海\",\"NX\":\"宁夏\",\"XJ\":\"新疆\"}"
;
public
final
static
List
<
String
>
MESSY_CODE
=
Arrays
.
asList
(
"Ð"
,
"Ï"
,
"¹"
,
"Ê"
,
"Õ"
,
"¡"
,
"Ö"
,
"±"
,
"¾"
,
"µ"
,
"½"
,
"�"
);
public
final
static
String
accessToken
=
"token"
;
/**
* 冻结
*/
public
final
static
String
FROZEN
=
"frozen"
;
/**
* 启用
*/
public
final
static
String
DEFROST
=
"defrost"
;
/**
* 验证码短信模板: 您的注册校验码是${code},10分钟内有效,请勿将校验码泄漏给他人。如非本人操作,请忽略本条消息。
*/
public
final
static
String
SMS_181860796
=
"SMS_181860796"
;
/**
* 密码短信模板: 感谢您注册建设库平台!您的初始密码为“${name}”请您尽快修改密码,提高账号安全性。
*/
public
final
static
String
SMS_145500857
=
"SMS_145500857"
;
/**
* 注册成功
*/
public
final
static
String
SMS_174024045
=
"SMS_174024045"
;
/**
* vip赠送
*/
public
final
static
String
SMS_174024049
=
"SMS_174024049"
;
/**
* 活动手机验证码
*/
public
final
static
String
SMS_174029192
=
"SMS_174029192"
;
/**
* H5引流页注册成功提示下载
*/
public
final
static
String
SMS_176528768
=
"SMS_176528768"
;
/**
* H5引流页短信验证码
*/
public
final
static
String
SMS_176936886
=
"SMS_176936886"
;
/**
* 密码登录提醒
*/
public
final
static
String
SMS_176938027
=
"SMS_176938027"
;
/**
* 向好友推送招标公告
*/
public
final
static
String
SMS_182541746
=
"SMS_182541746"
;
/**
* 用户订阅招标公告推送
*/
public
final
static
String
SMS_182541747
=
"SMS_182541747"
;
public
final
static
String
SMS_136390617
=
"SMS_136390617"
;
public
final
static
String
PROJECT_SOURCE
=
"project_source"
;
public
final
static
int
china
=
100000
;
public
final
static
String
China
=
"全国"
;
/**
* 最大页数
*/
public
final
static
int
MAX_PAGE_INDEX
=
100
;
/**
* 每页条数
*/
public
final
static
int
MAX_PAGE_SIZE
=
20
;
/**
* 每页条数
*/
public
final
static
int
MOBILE_MAX_PAGE_SIZE
=
20
;
/**
* 游客及普通用户显示条数
*/
public
final
static
int
VISITOR_ACCOUNT_PAGE_SIZE
=
10
;
/**
* 最大记录数
*/
public
final
static
int
MAX_RECORD_SIZE
=
2000
;
/**
* 生成账号
*/
public
static
final
Integer
USER_ACOUNT_BASE
=
10000
;
public
static
final
Integer
SVIP_MAX_EXPORT_COUNT
=
20000
;
public
static
final
Integer
MAX_EXPORT_COUNT
=
2000
;
/**
* 最大标签数
*/
public
final
static
int
MAX_LEBEL_SIZE
=
200
;
public
final
static
int
MAX_PAGE_SIZE_PC
=
201
;
/**
* 水滴信用信息更新时间
*/
public
static
final
Integer
SHUIDI_DATA_UPDATE_TIME
=
2
;
/**
* 水滴信用信息更新时间
*/
public
static
final
Integer
SHUIDI_DATA_UPDATE_TIME_ONE
=
1
;
public
final
static
String
CLIENT_IOS
=
"IOS"
;
public
final
static
String
CLIENT_MP
=
"mp"
;
public
final
static
String
CLIENT_NODEJS
=
"nodejs"
;
public
final
static
String
CLIENT_WRAP
=
"wrap"
;
public
final
static
String
CLIENT_ANDROID
=
"ANDROID"
;
public
static
final
String
MUNICIPALITY
=
"北京上海重庆天津"
;
public
static
final
String
NORTHCHINA
=
"北京市天津市河北省山西省内蒙古自治区"
;
public
static
final
String
SOUTHCHINA
=
"广东省海南省广西壮族自治区"
;
public
static
final
String
EASTCHINA
=
"上海市江苏省浙江省安徽省福建省江西省山东省"
;
public
static
final
String
MIDCHINA
=
"河南省湖北省湖南省"
;
public
static
final
String
WESTSOUTH
=
"重庆市四川省贵州省云南省西藏自治区"
;
public
static
final
String
EASTNORTH
=
"黑龙江省辽宁省吉林省"
;
public
static
final
String
WESTNORTH
=
"陕西省甘肃省青海省宁夏回族自治区新疆维吾尔自治区"
;
public
final
static
String
SERVICE_TYPE_VIP_CODE
=
"VIP"
;
public
final
static
String
SERVICE_TYPE_BZ
=
"BZ"
;
public
final
static
String
SERVICE_TYPE_PT
=
"PT"
;
public
final
static
String
SERVICE_TYPE_SD
=
"SD"
;
public
final
static
String
VIP_MVIP
=
"MVIP"
;
public
final
static
String
VIP_QVIP
=
"QVIP"
;
public
final
static
String
VIP_HYVIP
=
"HYVIP"
;
public
final
static
String
VIP_YVIP
=
"YVIP"
;
public
final
static
String
ONE_YEAR_VIP
=
"1YVIP"
;
public
final
static
String
TWO_YEAR_VIP
=
"2YVIP"
;
public
final
static
String
THREE_YEAR_VIP
=
"3YVIP"
;
public
final
static
String
STORE_NEW_CODE
=
"storeNew"
;
public
final
static
String
STORE_NEW_GROUP
=
"store"
;
public
final
static
String
SERVICE_TYPE_VIP
=
"2"
;
public
final
static
String
SERVICE_TYPE_BG
=
"1"
;
public
final
static
String
VIP
=
"vip"
;
public
final
static
String
START_TIME
=
"startTime"
;
public
final
static
String
END_TIME
=
"endTime"
;
public
final
static
String
VIP_TYPE_3_HOUR
=
"HOURVIP"
;
// 信用报告类型
public
final
static
String
GROUP_SERVICE_TYPE
=
"serviceType"
;
public
final
static
String
CODE_PT
=
"PT"
;
public
final
static
String
CODE_BZ
=
"BZ"
;
public
final
static
String
PT_USER
=
"pt_user"
;
public
final
static
String
VIP_USER
=
"vip_user"
;
/**
* 支付宝正式环境网关地址
*/
public
static
final
String
PAY_ALI_GATEURL
=
"https://openapi.alipay.com/gateway.do"
;
/**
* 支付宝正式环境APPID
*/
public
static
final
String
PAY_ALI_APPID
=
"2018103161911828"
;
public
static
final
String
RSA_PRIVATE_KEY
=
"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDbCQx2tczOecOJ4weztxnamFkNDX2ng0t/UKNwZzi2huEh621cN772ck2yO72/rfyioCSHPAg86XPCtjxaAbIKVRR+w1AC5oG6foUl9H+Mu2lvd9d6hIUzl0mSH4MaHgT21BO6oYE9E4IvDcy5kWfdor46tqDd4Md6gXle79/pgIP2P/xV106mZ1DP8V4G0yopa1DZ1xmMyrJZryy/oRs44u2j75l6Xz551K/lGyh96GPW8X46Ar7iLTajx8tf3H1ssgxudEqYYBlFtwryPWwoQdWawK9uJmFKw73BplhpStQSHokmVwFsXPPLyT/GtWTVUd7dyvEKGXs86B7jkhXtAgMBAAECggEAB83Put8JWAXwmJYVLSsF6crpyVREuNYtt3CJEjUrSR2PIeVAdTurOx6hdAs63Hx3dtfb1VGnPXxX2oUhq1dKH6IeY9HTpPbPgnSFi++lJ795pzYO4FeeY1MtlN44jpKpPJ4bwdeFQkbSqZiFRctPdw8YVgExxBYBJXU9fMtxH+GacV0koZmI4DGxo4fv0LhT2M+8rG6584vP8mly0jji/rCVzh6LapTPNV1QHRWx5d4r6aAghQ4DxBx+WaFhq1j9NV2NgLhfflt+2NNlmJ4xD3sGAXrzPqolS3cGb4BR9jq2v6v1Qs1F7nsp0DzSI3FLuht0VluiIWj7e3fR2Bt1hQKBgQDx26A/dU2yLF8nRbG69XrHteL0ATYa6nrNa3EPze2vyLMLRTfA0Ocao8u7FyuhQA0mA0DIzT6mwvnEIKlGKC3/XRqqKZw5GdVq0BpDjvLhPg3cOVHxefogcM0AiBJzEgmXG8gUxgpUCL2mKpZO9HeEF3h9yay5m1uam/rjG5MISwKBgQDn18qbIy2TE+X5YptdRGuCOwGRH70hB6RCiQFZY8EZsjvj0+FzBAD9HZHy5aNVS6m1ynn8ArB9MUMvLp6K1rDz/YcQAxN3tF/KmcP7dpxBtsZI68xKqLNUTLe1mjGce3hjLtUXbmJOCGUN4yFbk+u98VuwCXyPPwml0HnAqwTnpwKBgQCbfc3avnnDMQ/D2eTYA/Z56xAMO7MjPtjQtGCt/oDvYKLrfgbIKgZKdEAI+m6MbveFFtZRwtKit/uIAk+R0UcxRBRejf3oIBm7YCtif8ba1OBoU1nBW+BZduv1iYYDAPe1dKD/6gq92BjFed/ExxsHi2dlx4EKmz0be2ijFhlDXQKBgAgYEIq5/61S1ISQXLw010wEo1ldskyk56crAVENmoA7KLwbeZN6YE516dKBEeK4cYRXPUr/DQpR3faXuhE+zY63GzAD63oSYgXAuIbe7TWeG+4PzWIN4bTfuMouR+0eomVUDTx0LhprUJvbgh6gW2qWMo1Cx4Z4vO19CcMgNVuhAoGAfJfl0gWBtc4rJ/mLz1YD08X0oEcTUvw+HSQTjtG4BHa1aI1jHXe9h1+uZm9eacxzqdJ03zfWThV66SAsKjXrbIrb9e2x2OcT9DdXoqF9R5aSQzpTdvK3NMmnE4AKbb32xrGlBgINCFvxcCRRlkPK0jwl8D3IrWE/+YAXhGGAcC8="
;
public
static
final
String
RSA_PUBLIC_KEY
=
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2wkMdrXMznnDieMHs7cZ2phZDQ19p4NLf1CjcGc4tobhIettXDe+9nJNsju9v638oqAkhzwIPOlzwrY8WgGyClUUfsNQAuaBun6FJfR/jLtpb3fXeoSFM5dJkh+DGh4E9tQTuqGBPROCLw3MuZFn3aK+Orag3eDHeoF5Xu/f6YCD9j/8VddOpmdQz/FeBtMqKWtQ2dcZjMqyWa8sv6EbOOLto++Zel8+edSv5Rsofehj1vF+OgK+4i02o8fLX9x9bLIMbnRKmGAZRbcK8j1sKEHVmsCvbiZhSsO9waZYaUrUEh6JJlcBbFzzy8k/xrVk1VHe3crxChl7POge45IV7QIDAQAB"
;
/**
* 微信支付分配的商户号
*/
public
static
final
String
PAY_WX_MCHID
=
"1555277781"
;
/**
* trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义。
*/
public
static
final
String
PAY_WX_PRODUCTID
=
"69641265"
;
/**
* 微信公众号appID
*/
public
static
final
String
WX_APPID
=
"wx3516e7f1706ef4f2"
;
/**
* 微信公众号appSecret
*/
public
static
final
String
WX_APPSECRET
=
"577265a4db8549fb275d84380ac782f9"
;
/**
* 微信分配的APP账号ID
*/
public
static
final
String
PAY_WX_APPID
=
"wx0bb7f3c347631215"
;
/**
* 微信分配的小程序账号ID
*/
public
static
final
String
PAY_WX_XCX_APPID
=
"wx34e8004a2b6c8f4b"
;
/**
* 微信分配的小程序商户号
*/
public
static
final
String
PAY_WX_XCX_MCHID
=
"wx34e8004a2b6c8f4b"
;
/**
* https://open.weixin.qq.com/
* 开发者平台app应用得secret:APP_SECRET
*/
public
static
final
String
PAY_WX_APP_SECRET
=
"daddb90bd88cb56e437ae2cecf0e8dd7"
;
/**
* 微信支付相关
* <p>
* 财付通商户号对应的密钥 <br/>
* 具体获得途径如下:<br/>
* 微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置
* </p>
*/
public
static
final
String
PAY_WX_SECRET
=
"hhFbrSQQ9W6rDxfn75C52zjTLjdFrYTg"
;
/**
* 微信支付网关地址
*/
public
static
final
String
PAY_WX_GATEURL
=
"https://api.mch.weixin.qq.com/pay/unifiedorder"
;
/**
* 调用微信PC端的交易类型
*/
public
static
final
String
PAY_WX_PC_TRADETYPE
=
"NATIVE"
;
/**
* 调用微信Wrap端的交易类型
*/
public
static
final
String
PAY_WX_WRAP_TRADETYPE
=
"MWEB"
;
/**
* 调用微信Wrap端的交易类型
*/
public
static
final
String
PAY_WX_JSAPI_TRADETYPE
=
"JSAPI"
;
/**
* 调用微信APP端的交易类型
*/
public
static
final
String
PAY_WX_APP_TRADETYPE
=
"APP"
;
}
dsk-admin/src/main/java/com/dsk/web/controller/search/macroMarket/IpUtil.java
0 → 100644
View file @
d15e0f0b
package
com
.
dsk
.
web
.
controller
.
search
.
macroMarket
;
import
org.apache.commons.lang3.StringUtils
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.BufferedReader
;
import
java.io.Closeable
;
import
java.io.File
;
import
java.io.InputStreamReader
;
import
java.util.Arrays
;
import
java.util.List
;
/**
* IP校验
*/
public
class
IpUtil
{
public
final
static
List
<
String
>
qihooSpider
=
Arrays
.
asList
(
"180.153.232"
,
"180.153.234"
,
"180.153.236"
,
"180.163.220"
,
"42.236.101"
,
"42.236.102"
,
"42.236.103"
,
"42.236.10"
,
"42.236.12"
,
"42.236.13"
,
"42.236.14"
,
"42.236.15"
,
"42.236.16"
,
"42.236.17"
,
"42.236.46"
,
"42.236.48"
,
"42.236.49"
,
"42.236.50"
,
"42.236.51"
,
"42.236.52"
,
"42.236.53"
,
"42.236.54"
,
"42.236.55"
,
"42.236.99"
);
public
final
static
List
<
String
>
YisouSpider
=
Arrays
.
asList
(
"106.11.152"
,
"106.11.153"
,
"106.11.154"
,
"106.11.155"
,
"106.11.156"
,
"106.11.157"
,
"106.11.158"
,
"106.11.159"
,
"42.120.160"
,
"42.120.161"
,
"42.156.136"
,
"42.156.137"
,
"42.156.138"
,
"42.156.139"
,
"42.156.254"
);
public
final
static
List
<
String
>
ByteSpider
=
Arrays
.
asList
(
"110.249.201"
,
"110.249.202"
,
"111.225.147"
,
"111.225.148"
,
"111.225.149"
,
"220.243.135"
,
"220.243.136"
,
"60.8.165"
,
"60.8.9"
);
/**获取访问用户的客户端IP(适用于公网与局域网)*/
public
static
final
String
getIpAddr
(
final
HttpServletRequest
request
){
try
{
if
(
request
==
null
)
return
null
;
String
ipString
=
request
.
getHeader
(
"ali-cdn-real-ip"
);
if
(
StringUtils
.
isBlank
(
ipString
)
||
"unknown"
.
equalsIgnoreCase
(
ipString
))
{
ipString
=
request
.
getHeader
(
"x-forwarded-for"
);
}
if
(
StringUtils
.
isBlank
(
ipString
)
||
"unknown"
.
equalsIgnoreCase
(
ipString
))
{
ipString
=
request
.
getHeader
(
"Proxy-Client-IP"
);
}
if
(
StringUtils
.
isBlank
(
ipString
)
||
"unknown"
.
equalsIgnoreCase
(
ipString
))
{
ipString
=
request
.
getHeader
(
"X-Forwarded-For"
);
}
if
(
StringUtils
.
isBlank
(
ipString
)
||
"unknown"
.
equalsIgnoreCase
(
ipString
))
{
ipString
=
request
.
getHeader
(
"WL-Proxy-Client-IP"
);
}
if
(
StringUtils
.
isBlank
(
ipString
)
||
"unknown"
.
equalsIgnoreCase
(
ipString
))
{
ipString
=
request
.
getHeader
(
"X-Real-IP"
);
}
if
(
StringUtils
.
isBlank
(
ipString
)
||
"unknown"
.
equalsIgnoreCase
(
ipString
))
{
ipString
=
request
.
getRemoteAddr
();
}
// 多个路由时,取第一个非unknown的ip
final
String
[]
arr
=
ipString
.
split
(
","
);
for
(
final
String
str
:
arr
)
{
if
(!
"unknown"
.
equalsIgnoreCase
(
str
))
{
ipString
=
str
;
break
;
}
}
return
ipString
;
}
catch
(
Exception
e
){
return
null
;
}
}
/**
* write specfield bytes to a byte array start from offset
*
* @param b
* @param offset
* @param v
* @param bytes
*/
public
static
void
write
(
byte
[]
b
,
int
offset
,
long
v
,
int
bytes
)
{
for
(
int
i
=
0
;
i
<
bytes
;
i
++
)
{
b
[
offset
++]
=
(
byte
)((
v
>>>
(
8
*
i
))
&
0xFF
);
}
}
/**
* write a int to a byte array
*
* @param b
* @param offset
* @param v
*/
public
static
void
writeIntLong
(
byte
[]
b
,
int
offset
,
long
v
)
{
b
[
offset
++]
=
(
byte
)((
v
>>
0
)
&
0xFF
);
b
[
offset
++]
=
(
byte
)((
v
>>
8
)
&
0xFF
);
b
[
offset
++]
=
(
byte
)((
v
>>
16
)
&
0xFF
);
b
[
offset
]
=
(
byte
)((
v
>>
24
)
&
0xFF
);
}
/**
* get a int from a byte array start from the specifiled offset
*
* @param b
* @param offset
*/
public
static
long
getIntLong
(
byte
[]
b
,
int
offset
)
{
return
(
((
b
[
offset
++]
&
0x000000FF
L
))
|
((
b
[
offset
++]
<<
8
)
&
0x0000FF00
L
)
|
((
b
[
offset
++]
<<
16
)
&
0x00FF0000
L
)
|
((
b
[
offset
]
<<
24
)
&
0xFF000000
L
)
);
}
/**
* get a int from a byte array start from the specifield offset
*
* @param b
* @param offset
*/
public
static
int
getInt3
(
byte
[]
b
,
int
offset
)
{
return
(
(
b
[
offset
++]
&
0x000000FF
)
|
(
b
[
offset
++]
&
0x0000FF00
)
|
(
b
[
offset
]
&
0x00FF0000
)
);
}
public
static
int
getInt2
(
byte
[]
b
,
int
offset
)
{
return
(
(
b
[
offset
++]
&
0x000000FF
)
|
(
b
[
offset
]
&
0x0000FF00
)
);
}
public
static
int
getInt1
(
byte
[]
b
,
int
offset
)
{
return
(
(
b
[
offset
]
&
0x000000FF
)
);
}
/**
* string ip to long ip
*
* @param ip
* @return long
*/
public
static
long
ip2long
(
String
ip
)
{
String
[]
p
=
ip
.
split
(
"\\."
);
if
(
p
.
length
!=
4
)
return
0
;
int
p1
=
((
Integer
.
valueOf
(
p
[
0
])
<<
24
)
&
0xFF000000
);
int
p2
=
((
Integer
.
valueOf
(
p
[
1
])
<<
16
)
&
0x00FF0000
);
int
p3
=
((
Integer
.
valueOf
(
p
[
2
])
<<
8
)
&
0x0000FF00
);
int
p4
=
((
Integer
.
valueOf
(
p
[
3
])
<<
0
)
&
0x000000FF
);
return
((
p1
|
p2
|
p3
|
p4
)
&
0xFFFFFFFF
L
);
}
/**
* int to ip string
*
* @param ip
* @return string
*/
public
static
String
long2ip
(
long
ip
)
{
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
((
ip
>>
24
)
&
0xFF
).
append
(
'.'
)
.
append
((
ip
>>
16
)
&
0xFF
).
append
(
'.'
)
.
append
((
ip
>>
8
)
&
0xFF
).
append
(
'.'
)
.
append
((
ip
>>
0
)
&
0xFF
);
return
sb
.
toString
();
}
/**
* check the validate of the specifeld ip address
*
* @param ip
* @return boolean
*/
public
static
boolean
isIpAddress
(
String
ip
)
{
String
[]
p
=
ip
.
split
(
"\\."
);
if
(
p
.
length
!=
4
)
return
false
;
for
(
String
pp
:
p
)
{
if
(
pp
.
length
()
>
3
)
return
false
;
int
val
=
Integer
.
valueOf
(
pp
);
if
(
val
>
255
)
return
false
;
}
return
true
;
}
public
static
String
execHostCmd
(
String
ip
)
throws
Exception
{
return
execCmd
(
"host "
+
ip
,
null
);
}
public
static
String
isSpider
(
String
ip
)
throws
Exception
{
String
result
=
execCmd
(
"host "
+
ip
,
null
);
if
(
StringUtils
.
isNotBlank
(
ip
)&&!
isSpiderUa
(
result
)){
for
(
String
s
:
qihooSpider
)
{
if
(
ip
.
startsWith
(
s
)){
return
"so.com"
;
}
}
for
(
String
s
:
YisouSpider
)
{
if
(
ip
.
startsWith
(
s
)){
return
"sm.cn"
;
}
}
for
(
String
s
:
ByteSpider
)
{
if
(
ip
.
startsWith
(
s
)){
return
"bytedance.com"
;
}
}
}
return
result
;
}
/**
* 执行系统命令, 返回执行结果
*
* @param cmd 需要执行的命令
* @param dir 执行命令的子进程的工作目录, null 表示和当前主进程工作目录相同
*/
private
static
String
execCmd
(
String
cmd
,
File
dir
)
throws
Exception
{
StringBuilder
result
=
new
StringBuilder
();
Process
process
=
null
;
BufferedReader
bufrIn
=
null
;
BufferedReader
bufrError
=
null
;
try
{
// 执行命令, 返回一个子进程对象(命令在子进程中执行)
process
=
Runtime
.
getRuntime
().
exec
(
cmd
,
null
,
dir
);
// 方法阻塞, 等待命令执行完成(成功会返回0)
process
.
waitFor
();
// 获取命令执行结果, 有两个结果: 正常的输出 和 错误的输出(PS: 子进程的输出就是主进程的输入)
bufrIn
=
new
BufferedReader
(
new
InputStreamReader
(
process
.
getInputStream
(),
"UTF-8"
));
bufrError
=
new
BufferedReader
(
new
InputStreamReader
(
process
.
getErrorStream
(),
"UTF-8"
));
// 读取输出
String
line
=
null
;
while
((
line
=
bufrIn
.
readLine
())
!=
null
)
{
result
.
append
(
line
).
append
(
'n'
);
}
while
((
line
=
bufrError
.
readLine
())
!=
null
)
{
result
.
append
(
line
).
append
(
'n'
);
}
}
finally
{
closeStream
(
bufrIn
);
closeStream
(
bufrError
);
// 销毁子进程
if
(
process
!=
null
)
{
process
.
destroy
();
}
}
// 返回执行结果
return
result
.
toString
();
}
private
static
void
closeStream
(
Closeable
stream
)
{
if
(
stream
!=
null
)
{
try
{
stream
.
close
();
}
catch
(
Exception
e
)
{
// nothing
}
}
}
private
static
boolean
isSpiderUa
(
String
hostname
){
List
<
String
>
spiders
=
BizConstant
.
SPIDER
;
for
(
String
spider
:
spiders
)
{
if
(
hostname
.
toLowerCase
().
contains
(
spider
)){
return
true
;
}
}
return
false
;
}
}
dsk-admin/src/main/java/com/dsk/web/controller/search/macroMarket/RegionalEconomicDataController.java
View file @
d15e0f0b
...
@@ -3,6 +3,7 @@ package com.dsk.web.controller.search.macroMarket;
...
@@ -3,6 +3,7 @@ package com.dsk.web.controller.search.macroMarket;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.dtos.*
;
import
com.dsk.common.dtos.*
;
import
com.dsk.system.service.EconomicService
;
import
com.dsk.system.service.EconomicService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
...
@@ -17,6 +18,7 @@ import javax.validation.Valid;
...
@@ -17,6 +18,7 @@ import javax.validation.Valid;
* @Date 2023/5/18 10:09
* @Date 2023/5/18 10:09
* @Version 1.0.0
* @Version 1.0.0
*/
*/
@Slf4j
@RestController
@RestController
@RequestMapping
(
value
=
"/economic"
)
@RequestMapping
(
value
=
"/economic"
)
public
class
RegionalEconomicDataController
{
public
class
RegionalEconomicDataController
{
...
@@ -70,7 +72,9 @@ public class RegionalEconomicDataController {
...
@@ -70,7 +72,9 @@ public class RegionalEconomicDataController {
*/
*/
@PostMapping
(
value
=
"location"
)
@PostMapping
(
value
=
"location"
)
public
AjaxResult
location
(
@RequestBody
OpRegionalLocalDto
vo
,
HttpServletRequest
request
){
public
AjaxResult
location
(
@RequestBody
OpRegionalLocalDto
vo
,
HttpServletRequest
request
){
// String ip = IpUtil.getIpAddr(request);
String
ip
=
IpUtil
.
getIpAddr
(
request
);
vo
.
setIp
(
ip
);
log
.
info
(
"location====================================>"
+
ip
);
return
economicService
.
location
(
vo
);
return
economicService
.
location
(
vo
);
}
}
...
...
dsk-admin/src/main/java/com/dsk/web/controller/search/macroMarket/RegionalEnterprisesController.java
View file @
d15e0f0b
package
com
.
dsk
.
web
.
controller
.
search
.
macroMarket
;
package
com
.
dsk
.
web
.
controller
.
search
.
macroMarket
;
import
com.dsk.common.core.
domain.AjaxResult
;
import
com.dsk.common.core.
page.TableDataInfo
;
import
com.dsk.common.dtos.ComposeQueryDto
;
import
com.dsk.common.dtos.ComposeQueryDto
;
import
com.dsk.system.service.RegionalEnterprisesService
;
import
com.dsk.system.service.RegionalEnterprisesService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -24,7 +24,7 @@ public class RegionalEnterprisesController {
...
@@ -24,7 +24,7 @@ public class RegionalEnterprisesController {
private
RegionalEnterprisesService
regionalEnterprisesService
;
private
RegionalEnterprisesService
regionalEnterprisesService
;
@PostMapping
(
"regional/page"
)
@PostMapping
(
"regional/page"
)
public
AjaxResult
page
(
@RequestBody
ComposeQueryDto
compose
)
{
public
TableDataInfo
page
(
@RequestBody
ComposeQueryDto
compose
)
throws
Exception
{
return
regionalEnterprisesService
.
page
(
compose
);
return
regionalEnterprisesService
.
page
(
compose
);
}
}
}
}
dsk-common/src/main/java/com/dsk/common/dtos/OpRegionalLocalDto.java
View file @
d15e0f0b
...
@@ -15,4 +15,6 @@ public class OpRegionalLocalDto {
...
@@ -15,4 +15,6 @@ public class OpRegionalLocalDto {
* 省Id
* 省Id
*/
*/
private
Integer
provinceId
;
private
Integer
provinceId
;
private
String
ip
;
}
}
dsk-framework/src/main/java/com/dsk/framework/config/SecurityConfig.java
View file @
d15e0f0b
...
@@ -111,7 +111,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
...
@@ -111,7 +111,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
// 过滤请求
// 过滤请求
.
authorizeRequests
()
.
authorizeRequests
()
// 对于登录login 注册register 验证码captchaImage 允许匿名访问
// 对于登录login 注册register 验证码captchaImage 允许匿名访问
.
antMatchers
(
"/login"
,
"/register"
,
"/captchaImage"
,
"/economic/**"
,
"/enterprises/**"
,
"/specialPurposeBonds/**"
,
"/urbanInvestment/**"
).
permitAll
()
.
antMatchers
(
"/login"
,
"/register"
,
"/captchaImage"
,
"/economic/**"
,
"/enterprises/**"
,
"/specialPurposeBonds/**"
,
"/urbanInvestment/**"
,
"/enterprise/**"
).
permitAll
()
// 静态资源,可匿名访问
// 静态资源,可匿名访问
.
antMatchers
(
HttpMethod
.
GET
,
"/"
,
"/*.html"
,
"/**/*.html"
,
"/**/*.css"
,
"/**/*.js"
,
"/profile/**"
).
permitAll
()
.
antMatchers
(
HttpMethod
.
GET
,
"/"
,
"/*.html"
,
"/**/*.html"
,
"/**/*.css"
,
"/**/*.js"
,
"/profile/**"
).
permitAll
()
.
antMatchers
(
"/swagger-ui.html"
,
"/swagger-resources/**"
,
"/webjars/**"
,
"/*/api-docs"
,
"/druid/**"
).
permitAll
()
.
antMatchers
(
"/swagger-ui.html"
,
"/swagger-resources/**"
,
"/webjars/**"
,
"/*/api-docs"
,
"/druid/**"
).
permitAll
()
...
...
dsk-operate-ui/src/api/common.js
View file @
d15e0f0b
...
@@ -3,7 +3,7 @@ import request from '@/utils/request'
...
@@ -3,7 +3,7 @@ import request from '@/utils/request'
// id解密
// id解密
export
const
idRemark
=
(
data
)
=>
{
export
const
idRemark
=
(
data
)
=>
{
return
request
({
return
request
({
url
:
'/
user/jsk/chang
e/remark'
,
url
:
'/
enterpris
e/remark'
,
method
:
'post'
,
method
:
'post'
,
data
:
data
data
:
data
})
})
...
...
dsk-operate-ui/src/api/detail/party-a/index.js
View file @
d15e0f0b
import
request
from
"@/utils/request"
;
import
request
from
"@/utils/request"
;
//
企业头部信息
//
甲方详情-公司概要
export
function
infoHeader
(
data
)
{
export
function
infoHeader
(
data
)
{
return
request
({
return
request
({
url
:
'/
api-module-data/
enterprise/infoHeader'
,
url
:
'/enterprise/infoHeader'
,
method
:
'post'
,
method
:
'post'
,
data
:
data
data
:
data
})
})
...
...
dsk-operate-ui/src/api/detail/party-a/overview.js
View file @
d15e0f0b
import
request
from
"@/utils/request"
;
import
request
from
"@/utils/request"
;
// 甲方详情-公司概要
export
function
infoHeader
(
data
)
{
return
request
({
url
:
'/enterprise/infoHeader'
,
method
:
'post'
,
data
:
data
})
}
// 企业数据统计
// 企业数据统计
export
function
statistic
(
data
)
{
export
function
statistic
(
data
)
{
return
request
({
return
request
({
...
...
dsk-operate-ui/src/api/macro/macro.js
View file @
d15e0f0b
...
@@ -85,6 +85,14 @@ export function regional(param) {
...
@@ -85,6 +85,14 @@ export function regional(param) {
data
:
param
data
:
param
})
})
}
}
//地区经济-获取当前位置
export
function
location
(
param
)
{
return
request
({
url
:
'/economic/location'
,
method
:
'POST'
,
data
:
param
})
}
//地区经济-主要指标列表
//地区经济-主要指标列表
export
function
regionalList
(
param
)
{
export
function
regionalList
(
param
)
{
return
request
({
return
request
({
...
@@ -94,5 +102,79 @@ export function regionalList(param) {
...
@@ -94,5 +102,79 @@ export function regionalList(param) {
})
})
}
}
//产业结构-按年份选择 各个项目类型项目总数
export
function
bidGroupCountByProjectType
(
param
)
{
return
request
({
url
:
'/marketAnalysis/bidGroupCountByProjectType'
,
method
:
'POST'
,
data
:
param
})
}
//产业结构-近两年各个项目类型项目总数及金额占比
export
function
bidMoneyGroupByProjectType
(
param
)
{
return
request
({
url
:
'/marketAnalysis/bidMoneyGroupByProjectType'
,
method
:
'POST'
,
data
:
param
})
}
//对比经济
export
function
regionalCompare
(
param
)
{
return
request
({
url
:
'/economic/regional/compare'
,
method
:
'POST'
,
data
:
param
})
}
//区域专项债-项目类别统计
export
function
statistics
(
param
)
{
return
request
({
url
:
'/specialPurposeBonds/bond/statistics'
,
method
:
'POST'
,
data
:
param
})
}
//区域专项债-专项债项目分页列表
export
function
projectsPage
(
param
)
{
return
request
({
url
:
'/specialPurposeBonds/projects/page'
,
method
:
'POST'
,
data
:
param
})
}
//区域专项债-专项债项目详情
export
function
details
(
param
)
{
return
request
({
url
:
'/specialPurposeBonds/details'
,
method
:
'POST'
,
data
:
param
})
}
//区域专项债-专项债项目详情-专项债分页列表
export
function
bondPage
(
param
)
{
return
request
({
url
:
'/specialPurposeBonds/bond/page'
,
method
:
'POST'
,
data
:
param
})
}
//区域企业
export
function
enterprise
(
param
)
{
return
request
({
url
:
'/enterprise/page'
,
method
:
'POST'
,
data
:
param
})
}
dsk-operate-ui/src/api/project/project.js
View file @
d15e0f0b
...
@@ -108,9 +108,8 @@ export function addGJJL(param) {
...
@@ -108,9 +108,8 @@ export function addGJJL(param) {
//删除跟进记录
//删除跟进记录
export
function
delGJJL
(
param
)
{
export
function
delGJJL
(
param
)
{
return
request
({
return
request
({
url
:
'/business/record/remove/'
,
url
:
'/business/record/remove/'
+
param
,
method
:
'DELETE'
,
method
:
'DELETE'
,
params
:
param
})
})
}
}
...
@@ -183,3 +182,20 @@ export function delZLWD(param) {
...
@@ -183,3 +182,20 @@ export function delZLWD(param) {
data
:
param
data
:
param
})
})
}
}
//查询关联项目
export
function
relateProject
(
param
)
{
return
request
({
url
:
'/business/record/relate/project/'
+
param
,
method
:
'get'
,
})
}
//查询跟进动态
export
function
allRecord
(
param
)
{
return
request
({
url
:
'/business/record/all/list'
,
method
:
'get'
,
params
:
param
,
})
}
dsk-operate-ui/src/assets/styles/project.scss
View file @
d15e0f0b
...
@@ -579,8 +579,8 @@
...
@@ -579,8 +579,8 @@
}
}
}
}
.el-input__prefix
{
.el-input__prefix
.el-input__icon
{
left
:
8px
;
//
left: 8px;
top
:
-2px
;
top
:
-2px
;
position
:
absolute
;
position
:
absolute
;
}
}
...
@@ -869,6 +869,7 @@
...
@@ -869,6 +869,7 @@
.img
{
.img
{
float
:
left
;
float
:
left
;
margin-right
:
8px
;
margin-right
:
8px
;
margin-top
:
-2px
;
}
}
}
}
}
}
...
...
dsk-operate-ui/src/plugins/download.js
View file @
d15e0f0b
...
@@ -62,11 +62,25 @@ export default {
...
@@ -62,11 +62,25 @@ export default {
saveAs
(
text
,
name
,
opts
)
{
saveAs
(
text
,
name
,
opts
)
{
saveAs
(
text
,
name
,
opts
);
saveAs
(
text
,
name
,
opts
);
},
},
exportByPost
(
url
,
params
){
var
url
=
baseURL
+
url
axios
({
method
:
'post'
,
url
:
url
,
responseType
:
'blob'
,
data
:
params
,
headers
:
{
'Authorization'
:
'Bearer '
+
getToken
()
}
}).
then
(
res
=>
{
const
blob
=
new
Blob
([
res
.
data
],
{
type
:
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
})
this
.
saveAs
(
blob
,
decodeURI
(
res
.
headers
[
'download-filename'
]))
})
},
async
printErrMsg
(
data
)
{
async
printErrMsg
(
data
)
{
const
resText
=
await
data
.
text
();
const
resText
=
await
data
.
text
();
const
rspObj
=
JSON
.
parse
(
resText
);
const
rspObj
=
JSON
.
parse
(
resText
);
const
errMsg
=
errorCode
[
rspObj
.
code
]
||
rspObj
.
msg
||
errorCode
[
'default'
]
const
errMsg
=
errorCode
[
rspObj
.
code
]
||
rspObj
.
msg
||
errorCode
[
'default'
]
Message
.
error
(
errMsg
);
Message
.
error
(
errMsg
);
}
}
,
}
}
dsk-operate-ui/src/router/index.js
View file @
d15e0f0b
...
@@ -116,7 +116,7 @@ export const constantRoutes = [
...
@@ -116,7 +116,7 @@ export const constantRoutes = [
]
]
},
},
{
{
path
:
'/financing'
,
path
:
'/financing
Details
'
,
component
:
Layout
,
component
:
Layout
,
hidden
:
true
,
hidden
:
true
,
redirect
:
'noredirect'
,
redirect
:
'noredirect'
,
...
@@ -227,9 +227,9 @@ export const constantRoutes = [
...
@@ -227,9 +227,9 @@ export const constantRoutes = [
}
}
]
]
},
},
]
]
// 动态路由,基于用户权限动态去加载
// 动态路由,基于用户权限动态去加载
...
...
dsk-operate-ui/src/views/detail/party-a/component/HeadForm.vue
View file @
d15e0f0b
...
@@ -35,8 +35,8 @@
...
@@ -35,8 +35,8 @@
<!-- 输入框 -->
<!-- 输入框 -->
<
template
v-if=
"form.type==3"
>
<
template
v-if=
"form.type==3"
>
<div
class=
"cooperate-name"
>
<div
class=
"cooperate-name"
>
<el-input
v-model=
"form.value"
:placeholder=
"form.placeholder"
></el-input>
<el-input
@
focus=
"clickFocus('focus'+i)"
@
blur=
"clickFocus('focus'+i)"
v-model=
"form.value"
:placeholder=
"form.placeholder"
></el-input>
<span
@
click=
"changeSelect"
>
搜索
</span>
<span
:id=
"'focus'+i"
@
click=
"changeSelect"
>
搜索
</span>
</div>
</div>
</
template
>
</
template
>
<!-- 多选 -->
<!-- 多选 -->
...
@@ -155,6 +155,9 @@ export default {
...
@@ -155,6 +155,9 @@ export default {
message
:
'功能正在开发中'
,
message
:
'功能正在开发中'
,
type
:
'warning'
type
:
'warning'
});
});
},
clickFocus
(
e
){
document
.
getElementById
(
e
).
classList
.
toggle
(
'span-ba'
)
}
}
}
}
}
}
...
@@ -214,13 +217,18 @@ export default {
...
@@ -214,13 +217,18 @@ export default {
border-left
:
0
;
border-left
:
0
;
cursor
:
pointer
;
cursor
:
pointer
;
}
}
.span-ba
{
color
:
#ffffff
;
background
:
#0081FF
;
border
:
1px
solid
#0081FF
;
}
::v-deep
.el-input
{
::v-deep
.el-input
{
flex
:
1
;
flex
:
1
;
}
}
::v-deep
.el-input__inner
{
::v-deep
.el-input__inner
{
border-right
:
0
;
border-right
:
0
;
border-radius
:
2px
0
2px
0
;
border-radius
:
2px
0
2px
0
;
width
:
259
px
;
width
:
180
px
;
}
}
}
}
.fromTime
{
.fromTime
{
...
...
dsk-operate-ui/src/views/detail/party-a/cooperate/index.vue
View file @
d15e0f0b
<
template
>
<
template
>
<div
class=
"cooperate"
>
<div>
<template
v-if=
"ifEmpty"
>
<template
v-if=
"!isDetailId"
>
<head-form
<div
class=
"cooperate"
>
:form-data=
"formData"
<template
v-if=
"ifEmpty"
>
:query-params=
"queryParams"
<head-form
:total=
"tableDataTotal"
:form-data=
"formData"
:isExcel=
"true"
:query-params=
"queryParams"
:slots=
"true"
:total=
"tableDataTotal"
@
handle-search=
"handleSearch"
:isExcel=
"true"
>
:slots=
"true"
<template
slot=
"slot"
>
@
handle-search=
"handleSearch"
<div
class=
"flex-box query-add"
>
>
<el-button
type=
"primary"
icon=
"el-icon-plus"
@
click=
"drawer = true"
>
添加商务信息
</el-button>
<template
slot=
"slot"
>
</div>
<div
class=
"flex-box query-add"
>
</
template
>
<el-button
type=
"primary"
icon=
"el-icon-plus"
@
click=
"drawer = true"
>
添加商务信息
</el-button>
</head-form>
</div>
</
template
>
</head-form>
<tables
<tables
:tableLoading=
"tableLoading"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:tableData=
"tableData"
:forData=
"forData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
handle-current-change=
"handleCurrentChange"
>
>
<
template
slot=
"projectName"
slot-scope=
"scope"
>
<
template
slot=
"projectName"
slot-scope=
"scope"
>
<span
class=
"link-type"
@
click=
"clickDetail(scope.row.id)"
>
<span
class=
"link-type"
@
click=
"clickDetail(scope.row.id)"
>
{{
scope
.
row
.
projectName
}}
{{
scope
.
row
.
projectName
}}
</span>
</span>
<!--
<router-link
:to=
"'' + scope.row.dictId"
class=
"link-type"
>
-->
</
template
>
<!--
<span>
{{
scope
.
row
.
dictType
}}
</span>
-->
</tables>
<!--
</router-link>
-->
</
template
>
</tables>
</template>
</template>
<
template
v-else
>
<
template
v-else
>
<div
class=
"cooperate_empty"
>
<div
class=
"cooperate_empty"
>
<img
src=
"@/assets/images/project/empty.png"
/>
<img
src=
"@/assets/images/project/empty.png"
/>
<div
class=
"empty-t"
>
暂无合作情况数据
</div>
<div
class=
"empty-t"
>
暂无合作情况数据
</div>
<div
class=
"empty-d"
>
抱歉,你还未合作情况数据,快去添加吧
</div>
<div
class=
"empty-d"
>
抱歉,你还未合作情况数据,快去添加吧
</div>
<el-button
type=
"primary"
class=
"empty-b"
@
click=
"drawer = true"
>
添加合作情况
</el-button>
<el-button
type=
"primary"
class=
"empty-b"
@
click=
"drawer = true"
>
添加合作情况
</el-button>
</div>
</
template
>
<!-- 弹窗关联项目 -->
<el-drawer
title=
"添加合作情况"
size=
"40%"
:visible
.
sync=
"drawer"
:direction=
"direction"
:with-header=
"false"
:before-close=
"handleClose"
>
<div
class=
"cooperate_addhzqk"
>
<div
class=
"addhzqk_top"
>
<div
class=
"addhzqk_top_t"
>
<div
class=
"top_t_h1"
>
<img
src=
"@/assets/images/economies/icon.png"
/>
{{ info.companyName }}
</div>
<div
class=
"top_t_close"
><i
class=
"el-icon-close"
@
click=
"handleClose"
></i></div>
</div>
<div
class=
"addhzqk_top_d"
>
<div
class=
"top_d_item"
>
法定代表人:
<span>
{{ info.legalPerson }}
</span>
</div>
<div
class=
"top_d_item"
>
注册资本:
<span>
{{ info.registerCapital }}万
</span>
</div>
<div
class=
"top_d_item"
>
注册地址:
<span>
{{ info.registerAddress }}
</span>
</div>
</div>
</div>
</div>
</
template
>
<div
class=
"addhzqk_from"
>
<!-- 弹窗关联项目 -->
<el-form
:model=
"addParam"
:rules=
"rules"
ref=
"addParam"
size=
"small"
label-width=
"126px"
>
<el-drawer
<el-form-item
label=
"项目名称:"
prop=
"projectName"
>
title=
"添加合作情况"
<el-input
v-model=
"addParam.projectName"
placeholder=
"请输入项目名称"
@
input=
"getCompany1"
></el-input>
size=
"40%"
<div
class=
"resultlist"
v-if=
"showlist1"
>
:visible
.
sync=
"drawer"
<div
v-for=
"(item,index) in companData1"
@
click=
"selCompany1(item)"
><span
v-html=
"item"
></span></div>
:direction=
"direction"
:with-header=
"false"
:before-close=
"handleClose"
>
<div
class=
"cooperate_addhzqk"
>
<div
class=
"addhzqk_top"
>
<div
class=
"addhzqk_top_t"
>
<div
class=
"top_t_h1"
>
<img
src=
"@/assets/images/economies/icon.png"
/>
{{ info.companyName }}
</div>
<div
class=
"top_t_close"
><i
class=
"el-icon-close"
@
click=
"handleClose"
></i></div>
</div>
</div>
</el-form-item>
<div
class=
"addhzqk_top_d"
>
<el-form-item
label=
"业主单位:"
prop=
"ownerCompany"
>
<div
class=
"top_d_item"
>
<el-input
v-model=
"addParam.ownerCompany"
placeholder=
"请输入业主单位"
@
input=
"getCompany"
></el-input>
法定代表人:
<span>
{{ info.legalPerson }}
</span>
<div
class=
"resultlist"
v-if=
"showlist"
>
</div>
<div
v-for=
"(item,index) in companData"
@
click=
"selCompany(item)"
><span
v-html=
"item.name"
></span></div>
<div
class=
"top_d_item"
>
注册资本:
<span>
{{ info.registerCapital }}万
</span>
</div>
<div
class=
"top_d_item"
>
注册地址:
<span>
{{ info.registerAddress }}
</span>
</div>
</div>
</div>
</el-form-item>
</div>
<el-form-item
label=
"项目阶段:"
prop=
"projectStage"
>
<div
class=
"addhzqk_from"
>
<el-select
v-model=
"addParam.projectStage"
style=
"width: 100%"
class=
"form-content-width"
placeholder=
"请选择项目状态"
>
<el-form
:model=
"addParam"
:rules=
"rules"
ref=
"addParam"
size=
"small"
label-width=
"126px"
>
<el-option
v-for=
"(item, index) in projectStage"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
/>
<el-form-item
label=
"项目名称:"
prop=
"projectName"
>
</el-select>
<el-input
v-model=
"addParam.projectName"
placeholder=
"请输入项目名称"
@
input=
"getCompany1"
></el-input>
</el-form-item>
<div
class=
"resultlist"
v-if=
"showlist1"
>
<el-form-item
label=
"项目类型:"
prop=
"projectType"
>
<div
v-for=
"(item,index) in companData1"
@
click=
"selCompany1(item)"
><span
v-html=
"item"
></span></div>
<el-select
v-model=
"addParam.projectType"
style=
"width: 100%"
class=
"form-content-width"
placeholder=
"请选择项目阶段"
>
</div>
<el-option
v-for=
"(item, index) in projectType"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
/>
</el-form-item>
</el-select>
<el-form-item
label=
"业主单位:"
prop=
"ownerCompany"
>
</el-form-item>
<el-input
v-model=
"addParam.ownerCompany"
placeholder=
"请输入业主单位"
@
input=
"getCompany"
></el-input>
<el-form-item
label=
"项目类别:"
prop=
"projectCategory"
>
<div
class=
"resultlist"
v-if=
"showlist"
>
<el-select
v-model=
"addParam.projectCategory"
style=
"width: 100%"
class=
"form-content-width"
placeholder=
"请选择项目阶段"
>
<div
v-for=
"(item,index) in companData"
@
click=
"selCompany(item)"
><span
v-html=
"item.name"
></span></div>
<el-option
v-for=
"(item, index) in projectCategory"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
/>
</div>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"项目阶段:"
prop=
"projectStage"
>
<el-form-item
label=
"投资估算(万):"
prop=
"investmentAmount"
>
<el-select
v-model=
"addParam.projectStage"
style=
"width: 100%"
class=
"form-content-width"
placeholder=
"请选择项目状态"
>
<el-input
v-model=
"addParam.investmentAmount"
placeholder=
"请输入投资估算"
@
input=
"number"
></el-input>
<el-option
v-for=
"(item, index) in projectStage"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
/>
</el-form-item>
</el-select>
<el-form-item
label=
"可见范围:"
prop=
"isPrivate"
>
</el-form-item>
<el-select
v-model=
"addParam.isPrivate"
style=
"width: 100%"
class=
"form-content-width"
placeholder=
"请选择"
>
<el-form-item
label=
"项目类型:"
prop=
"projectType"
>
<el-option
v-for=
"(item, index) in isPrivate"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
/>
<el-select
v-model=
"addParam.projectType"
style=
"width: 100%"
class=
"form-content-width"
placeholder=
"请选择项目阶段"
>
</el-select>
<el-option
v-for=
"(item, index) in projectType"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
/>
</el-form-item>
</el-select>
<el-form-item
style=
"text-align: right;"
>
</el-form-item>
<el-button
@
click=
"handleClose"
>
关闭
</el-button>
<el-form-item
label=
"项目类别:"
prop=
"projectCategory"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
添加
</el-button>
<el-select
v-model=
"addParam.projectCategory"
style=
"width: 100%"
class=
"form-content-width"
placeholder=
"请选择项目阶段"
>
</el-form-item>
<el-option
v-for=
"(item, index) in projectCategory"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"投资估算(万):"
prop=
"investmentAmount"
>
<el-input
v-model=
"addParam.investmentAmount"
placeholder=
"请输入投资估算"
@
input=
"number"
></el-input>
</el-form-item>
<el-form-item
label=
"可见范围:"
prop=
"isPrivate"
>
<el-select
v-model=
"addParam.isPrivate"
style=
"width: 100%"
class=
"form-content-width"
placeholder=
"请选择"
>
<el-option
v-for=
"(item, index) in isPrivate"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
/>
</el-select>
</el-form-item>
<el-form-item
style=
"text-align: right;"
>
<el-button
@
click=
"handleClose"
>
关闭
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm"
>
添加
</el-button>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
</div>
</el-drawer>
</div>
</div>
</
el-drawer
>
</
template
>
<!-- <Detail :detailId="detailId" v-if="isDetailId" />-->
<div
v-else
class=
"cooperate-detail"
>
<Detail
:detailId=
"detailId"
@
close-detail=
"closeDetail"
/>
</div>
</div>
</div>
</template>
</template>
...
@@ -360,7 +363,13 @@ export default {
...
@@ -360,7 +363,13 @@ export default {
clickDetail
(
id
){
clickDetail
(
id
){
this
.
detailId
=
id
this
.
detailId
=
id
this
.
isDetailId
=
true
this
.
isDetailId
=
true
},
//关闭详情
closeDetail
(){
this
.
isDetailId
=
false
this
.
detailId
=
''
}
}
}
}
}
}
</
script
>
</
script
>
...
@@ -511,4 +520,10 @@ export default {
...
@@ -511,4 +520,10 @@ export default {
}
}
}
}
::v-deep
.cooperate-detail
{
.miantitle
,
.app-container
{
margin
:
12px
0
;
}
}
</
style
>
</
style
>
dsk-operate-ui/src/views/detail/party-a/index.vue
View file @
d15e0f0b
...
@@ -61,6 +61,7 @@
...
@@ -61,6 +61,7 @@
<
script
>
<
script
>
import
{
idRemark
}
from
'@/api/common'
import
{
idRemark
}
from
'@/api/common'
import
{
infoHeader
}
from
'@/api/detail/party-a/index'
import
elementResizeDetectorMaker
from
"element-resize-detector"
import
elementResizeDetectorMaker
from
"element-resize-detector"
import
Header
from
"./component/Header"
import
Header
from
"./component/Header"
import
SideBar
from
"./component/Sidebar"
import
SideBar
from
"./component/Sidebar"
...
@@ -140,6 +141,7 @@ export default {
...
@@ -140,6 +141,7 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
companyInfo
:
{},
companyId
:
10361319
,
//企业Id(测试默认3068)
companyId
:
10361319
,
//企业Id(测试默认3068)
customerId
:
''
,
//企业Id(测试默认'a00d582a6041f32c16aac804e4924736')
customerId
:
''
,
//企业Id(测试默认'a00d582a6041f32c16aac804e4924736')
currentPath
:
{
currentPath
:
{
...
@@ -177,6 +179,13 @@ export default {
...
@@ -177,6 +179,13 @@ export default {
let
{
data
}
=
await
idRemark
({
companyId
})
let
{
data
}
=
await
idRemark
({
companyId
})
if
(
data
.
code
==
200
){
if
(
data
.
code
==
200
){
this
.
companyId
=
data
.
data
this
.
companyId
=
data
.
data
this
.
handleQuery
()
}
},
async
handleQuery
()
{
let
res
=
await
infoHeader
({
companyId
:
this
.
companyId
})
if
(
res
.
code
==
200
){
this
.
companyInfo
=
res
.
data
}
}
}
}
}
}
...
...
dsk-operate-ui/src/views/detail/party-a/overview/businfo.vue
View file @
d15e0f0b
...
@@ -7,14 +7,15 @@
...
@@ -7,14 +7,15 @@
<info-table
class=
"info-tab"
:list=
"defaultList"
:obj=
"forInfo"
:labelWidth=
"labelWidth"
v-if=
"activeName=='first'"
>
<info-table
class=
"info-tab"
:list=
"defaultList"
:obj=
"forInfo"
:labelWidth=
"labelWidth"
v-if=
"activeName=='first'"
>
<template
slot=
"provinceCode"
slot-scope=
"scope"
>
<span>
{{
showRegion
(
scope
.
data
.
provinceCode
)
}}
</span>
</
template
>
</info-table>
</info-table>
<tables
<tables
:tableLoading=
"tableLoading"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:tableData=
"tableData"
:forData=
"forData"
:forData=
"forData"
:queryParams=
"queryParams"
:queryParams=
"queryParams"
:paging=
"false"
v-if=
"activeName=='second'"
v-if=
"activeName=='second'"
/>
/>
</div>
</div>
...
@@ -22,8 +23,9 @@
...
@@ -22,8 +23,9 @@
<
script
>
<
script
>
import
mixin
from
'../mixins/mixin'
import
mixin
from
'../mixins/mixin'
import
dataRegion
from
'@/assets/json/dataRegion'
import
InfoTable
from
'../component/infoTable'
import
InfoTable
from
'../component/infoTable'
import
{
getList
}
from
"@/api/detail/party-a/overview"
;
import
{
icInfo
,
changeInfo
}
from
"@/api/detail/party-a/overview"
export
default
{
export
default
{
name
:
'Businfo'
,
name
:
'Businfo'
,
props
:
[
'companyId'
],
props
:
[
'companyId'
],
...
@@ -34,39 +36,42 @@ export default {
...
@@ -34,39 +36,42 @@ export default {
data
()
{
data
()
{
return
{
return
{
activeName
:
'first'
,
activeName
:
'first'
,
baseParams
:
{
cid
:
this
.
companyId
},
queryParams
:
{
queryParams
:
{
cid
:
this
.
companyId
,
cid
:
this
.
companyId
,
pageNum
:
1
,
pageNum
:
1
,
pageSize
:
20
pageSize
:
20
},
},
labelWidth
:
250
,
labelWidth
:
250
,
forInfo
:
{
projectType
:
'aaa'
,
projectPurposes
:
'222'
,
projectInvestmentAmounts
:
'222'
},
forInfo
:
{},
defaultList
:
[
defaultList
:
[
{
name
:
'企业名称'
,
prop
:
'
projectTypes
'
},
{
name
:
'企业名称'
,
prop
:
'
name
'
},
{
name
:
'社会信用代码'
,
prop
:
'
projectPurposes
'
},
{
name
:
'社会信用代码'
,
prop
:
'
creditNo
'
},
{
name
:
'法定代表人'
,
prop
:
'
projectInvestmentAmounts
'
},
{
name
:
'法定代表人'
,
prop
:
'
operName
'
},
{
name
:
'登记状态'
,
prop
:
'
projectInvestmentAmount
s'
},
{
name
:
'登记状态'
,
prop
:
'
statu
s'
},
{
name
:
'成立日期'
,
prop
:
'
projectInvestmentAmounts
'
},
{
name
:
'成立日期'
,
prop
:
'
startDate
'
},
{
name
:
'注册资本'
,
prop
:
'
projectInvestmentAmounts
'
},
{
name
:
'注册资本'
,
prop
:
'
registCapi
'
},
{
name
:
'实缴资本'
,
prop
:
'
projectInvestmentAmounts
'
},
{
name
:
'实缴资本'
,
prop
:
'
actualCapi
'
},
{
name
:
'核准日期'
,
prop
:
'
projectInvestmentAmounts
'
},
{
name
:
'核准日期'
,
prop
:
'
checkDate
'
},
{
name
:
'组织机构代码'
,
prop
:
'
projectInvestmentAmounts
'
},
{
name
:
'组织机构代码'
,
prop
:
'
orgNo
'
},
{
name
:
'工商注册号'
,
prop
:
'
projectInvestmentAmounts
'
},
{
name
:
'工商注册号'
,
prop
:
'
regNo
'
},
{
name
:
'纳税人识别号'
,
prop
:
'
projectInvestmentAmounts
'
},
{
name
:
'纳税人识别号'
,
prop
:
'
creditNo
'
},
{
name
:
'企业类型'
,
prop
:
'
projectInvestmentAmounts
'
},
{
name
:
'企业类型'
,
prop
:
'
econKind
'
},
{
name
:
'营业期限'
,
prop
:
'
projectInvestmentAmounts
'
},
{
name
:
'营业期限'
,
prop
:
'
termEnd
'
},
{
name
:
'纳税人资质'
,
prop
:
'
projectInvestmentAmounts
'
},
{
name
:
'纳税人资质'
,
prop
:
'
qualification
'
},
{
name
:
'所属地区'
,
prop
:
'pro
jectInvestmentAmounts'
},
{
name
:
'所属地区'
,
prop
:
'pro
vinceCode'
,
slot
:
true
},
{
name
:
'登记机关'
,
prop
:
'
projectInvestmentAmounts
'
},
{
name
:
'登记机关'
,
prop
:
'
belongOrg
'
},
{
name
:
'人员规模'
,
prop
:
'
projectInvestmentAmounts
'
},
{
name
:
'人员规模'
,
prop
:
'
colleguesNum
'
},
{
name
:
'参保人数'
,
prop
:
'
projectInvestmentAmounts
'
},
{
name
:
'参保人数'
,
prop
:
'
colleguesNum
'
},
{
name
:
'经营范围'
,
prop
:
'
projectInvestmentAmounts
'
,
style
:
true
}
{
name
:
'经营范围'
,
prop
:
'
scope
'
,
style
:
true
}
],
],
forData
:
[
forData
:
[
{
label
:
'变更日期'
,
prop
:
'
inReason'
,
width
:
'90'
,
slot
:
true
},
{
label
:
'变更日期'
,
prop
:
'
changeDate'
,
width
:
'90'
},
{
label
:
'变更事项'
,
prop
:
'
inDat
e'
},
{
label
:
'变更事项'
,
prop
:
'
typ
e'
},
{
label
:
'变更前'
,
prop
:
'
departm
ent'
},
{
label
:
'变更前'
,
prop
:
'
beforeCont
ent'
},
{
label
:
'变更后'
,
prop
:
'
departm
ent'
}
{
label
:
'变更后'
,
prop
:
'
afterCont
ent'
}
],
],
//列表
//列表
tableLoading
:
false
,
tableLoading
:
false
,
...
@@ -80,28 +85,29 @@ export default {
...
@@ -80,28 +85,29 @@ export default {
handleClick
(){
handleClick
(){
this
.
handleQuery
()
this
.
handleQuery
()
},
},
handleQuery
()
{
async
handleQuery
()
{
console
.
log
(
'索引:'
,
this
.
activeName
)
this
.
tableLoading
=
true
this
.
tableLoading
=
true
getList
(
this
.
queryParams
).
then
((
res
)
=>
{
let
param
=
this
.
activeName
==
'first'
?
this
.
baseParams
:
this
.
queryParams
this
.
tableLoading
=
false
let
res
=
this
.
activeName
==
'first'
?
await
icInfo
(
param
)
:
await
changeInfo
(
param
)
this
.
tableData
=
[
this
.
tableLoading
=
false
{
if
(
res
.
code
==
200
)
{
projectId
:
'1'
,
this
.
activeName
==
'first'
?
this
.
forInfo
=
res
.
data
:
this
.
tableData
=
res
.
rows
tag
:
'在业'
,
}
projectName
:
'滨州医学院口腔医学大楼铝合金门窗供货及安装'
,
this
.
activeName
==
'first'
?
''
:
this
.
tableDataTotal
=
res
.
total
use
:
'城镇住宅用地'
,
}
,
type
:
'房地产业'
,
showRegion
(
region
){
way
:
'挂牌出让'
,
if
(
region
)
{
state
:
'重庆'
,
let
list
=
dataRegion
money
:
'11234万元'
,
let
areaText
=
''
scale
:
'222平米'
,
list
.
forEach
(
item
=>
{
unit
:
'江苏省住房和城乡建设厅'
,
if
(
item
.
id
==
region
)
{
date
:
'2015-08-06'
,
areaText
=
item
.
regionName
}
}
]
})
this
.
tableDataTotal
=
100
return
areaText
})
}
else
{
return
'--'
}
}
}
}
}
}
}
...
...
dsk-operate-ui/src/views/detail/party-a/overview/overview.vue
View file @
d15e0f0b
...
@@ -49,7 +49,7 @@ export default {
...
@@ -49,7 +49,7 @@ export default {
margin
:
0
;
margin
:
0
;
padding
:
0
;
padding
:
0
;
.view-content
{
.view-content
{
margin-top
:
12px
;
//
margin-top: 12px;
}
}
}
}
</
style
>
</
style
>
dsk-operate-ui/src/views/detail/party-a/urbanLnvestment/regionalEconomies.vue
View file @
d15e0f0b
...
@@ -32,7 +32,7 @@ import {
...
@@ -32,7 +32,7 @@ import {
}
from
'@/api/detail/party-a/urbanLnvestment'
}
from
'@/api/detail/party-a/urbanLnvestment'
import
{
import
{
infoHeader
infoHeader
}
from
'@/api/detail/party-a/
overview
'
}
from
'@/api/detail/party-a/
index
'
export
default
{
export
default
{
name
:
'regionalEconomies'
,
name
:
'regionalEconomies'
,
components
:
{
components
:
{
...
@@ -72,7 +72,7 @@ export default {
...
@@ -72,7 +72,7 @@ export default {
},
},
{
{
prop
:
'gdpGrowth'
,
prop
:
'gdpGrowth'
,
label
:
'GDP增速'
,
label
:
'GDP增速
(%)
'
,
},
},
{
{
prop
:
'gdpPerCapita'
,
prop
:
'gdpPerCapita'
,
...
@@ -128,7 +128,7 @@ export default {
...
@@ -128,7 +128,7 @@ export default {
},
},
{
{
prop
:
'gbrGrowth'
,
prop
:
'gbrGrowth'
,
label
:
'一般公共预算收入增速'
,
label
:
'一般公共预算收入增速
(%)
'
,
},
},
{
{
prop
:
'taxIncome'
,
prop
:
'taxIncome'
,
...
@@ -192,23 +192,23 @@ export default {
...
@@ -192,23 +192,23 @@ export default {
},
},
{
{
prop
:
'fiscalSelfSufficiencyRate'
,
prop
:
'fiscalSelfSufficiencyRate'
,
label
:
'财政自给率'
,
label
:
'财政自给率
(%)
'
,
},
},
{
{
prop
:
'govDebtToGdpRate'
,
prop
:
'govDebtToGdpRate'
,
label
:
'负债率'
,
label
:
'负债率
(%)
'
,
},
},
{
{
prop
:
'govDebtToGdpRateWild'
,
prop
:
'govDebtToGdpRateWild'
,
label
:
'负债率-宽口径'
,
label
:
'负债率-宽口径
(%)
'
,
},
},
{
{
prop
:
'govDebtRate'
,
prop
:
'govDebtRate'
,
label
:
'债务率'
,
label
:
'债务率
(%)
'
,
},
},
{
{
prop
:
'govDebtRateWild'
,
prop
:
'govDebtRateWild'
,
label
:
'债务率-宽口径'
,
label
:
'债务率-宽口径
(%)
'
,
},
},
],
],
tableLoading
:
true
tableLoading
:
true
...
...
dsk-operate-ui/src/views/detail/party-a/urbanLnvestment/sameRegion.vue
View file @
d15e0f0b
...
@@ -114,7 +114,7 @@ import {
...
@@ -114,7 +114,7 @@ import {
}
from
'@/api/detail/party-a/urbanLnvestment'
}
from
'@/api/detail/party-a/urbanLnvestment'
import
{
import
{
infoHeader
infoHeader
}
from
'@/api/detail/party-a/
overview
'
}
from
'@/api/detail/party-a/
index
'
export
default
{
export
default
{
name
:
'SameRegion'
,
name
:
'SameRegion'
,
mixins
:
[
mixin
],
mixins
:
[
mixin
],
...
...
dsk-operate-ui/src/views/macro/economies/component/comparison.vue
View file @
d15e0f0b
...
@@ -83,6 +83,7 @@
...
@@ -83,6 +83,7 @@
<el-table
<el-table
:data=
"getValues"
:data=
"getValues"
:show-header=
"false"
:show-header=
"false"
:cell-style=
"rowStyle"
border
border
>
>
<el-table-column
<el-table-column
...
@@ -100,7 +101,7 @@
...
@@ -100,7 +101,7 @@
<
script
>
<
script
>
import
dataRegion
from
'@/assets/json/dataRegion'
import
dataRegion
from
'@/assets/json/dataRegion'
import
{
nationalPag
e
,
getYears
}
from
'@/api/macro/macro'
import
{
regionalCompar
e
,
getYears
}
from
'@/api/macro/macro'
export
default
{
export
default
{
name
:
'comparison'
,
name
:
'comparison'
,
props
:{
props
:{
...
@@ -112,18 +113,8 @@ export default {
...
@@ -112,18 +113,8 @@ export default {
year
:
''
,
year
:
''
,
},
},
yearOptions
:
[],
yearOptions
:
[],
tableData
:
[
tableData
:
[{},{},{},{},{}],
{
index
:
0
},
{
index
:
1
},
{
index
:
2
},
{
index
:
3
},
{
index
:
4
},
],
headers
:
[
headers
:
[
{
prop
:
'year'
,
label
:
'指标'
,
},
{
{
prop
:
'name'
,
prop
:
'name'
,
label
:
'经济'
,
label
:
'经济'
,
...
@@ -190,7 +181,7 @@ export default {
...
@@ -190,7 +181,7 @@ export default {
},
},
{
{
prop
:
'gbrGrowth'
,
prop
:
'gbrGrowth'
,
label
:
'
般公共预算收入增速
'
,
label
:
'
一般公共预算收入增速(%)
'
,
},
},
{
{
prop
:
'taxIncome'
,
prop
:
'taxIncome'
,
...
@@ -254,23 +245,23 @@ export default {
...
@@ -254,23 +245,23 @@ export default {
},
},
{
{
prop
:
'fiscalSelfSufficiencyRate'
,
prop
:
'fiscalSelfSufficiencyRate'
,
label
:
'财政自给率'
,
label
:
'财政自给率
(%)
'
,
},
},
{
{
prop
:
'govDebtToGdpRate'
,
prop
:
'govDebtToGdpRate'
,
label
:
'负债率'
,
label
:
'负债率
(%)
'
,
},
},
{
{
prop
:
'govDebtToGdpRateWild'
,
prop
:
'govDebtToGdpRateWild'
,
label
:
'负债率
-宽口径
'
,
label
:
'负债率
(宽口径)(%)
'
,
},
},
{
{
prop
:
'govDebtRate'
,
prop
:
'govDebtRate'
,
label
:
'债务率'
,
label
:
'债务率
(%)
'
,
},
},
{
{
prop
:
'govDebtRateWild'
,
prop
:
'govDebtRateWild'
,
label
:
'债务率
-宽口径
'
,
label
:
'债务率
(宽口径)(%)
'
,
},
},
],
],
props
:
{
props
:
{
...
@@ -293,6 +284,7 @@ export default {
...
@@ -293,6 +284,7 @@ export default {
value3Flag
:
false
,
value3Flag
:
false
,
value4Flag
:
false
,
value4Flag
:
false
,
value5Flag
:
false
,
value5Flag
:
false
,
regionData
:[]
}
}
},
},
created
()
{
created
()
{
...
@@ -314,10 +306,13 @@ export default {
...
@@ -314,10 +306,13 @@ export default {
}
}
},
},
methods
:
{
methods
:
{
getData
(
params
){
getData
(
params
,
index
){
nationalPage
(
params
).
then
(
res
=>
{
if
(
this
.
dataQuery
.
id
){
console
.
log
(
res
.
data
)
params
.
id
=
this
.
dataQuery
.
id
// this.tableData = res.data.list
}
regionalCompare
(
params
).
then
(
res
=>
{
this
.
tableData
.
splice
(
index
-
1
,
1
,
res
.
data
)
this
.
$forceUpdate
();
})
})
},
},
//地区
//地区
...
@@ -392,7 +387,22 @@ export default {
...
@@ -392,7 +387,22 @@ export default {
this
.
value5Flag
=
true
this
.
value5Flag
=
true
break
;
break
;
}
}
const
params
=
{
pageNum
:
this
.
pageIndex
,
pageSize
:
this
.
pageSize
,
year
:
this
.
queryParams
.
year
,
type
:
3
}
let
code
=
[];
for
(
var
i
in
this
.
regionData
)
{
code
=
this
.
regionData
[
i
].
path
}
if
(
code
.
length
>=
1
){
params
.
provinceId
=
code
[
0
]
}
if
(
code
.
length
>=
2
){
params
.
cityId
=
code
[
1
]
}
if
(
code
.
length
>=
3
){
params
.
areaId
=
code
[
2
]
}
this
.
getData
(
params
,
index
)
}
}
},
},
handleChange
(
index
)
{
handleChange
(
index
)
{
...
@@ -435,29 +445,42 @@ export default {
...
@@ -435,29 +445,42 @@ export default {
}
}
}
}
const
params
=
{
pageNum
:
this
.
pageIndex
,
pageSize
:
this
.
pageSize
,
year
:
this
.
queryParams
.
year
,
type
:
3
}
this
.
regionData
=
arr
;
let
provinceCode
=
[],
cityCode
=
[],
countyCode
=
[];
for
(
var
i
in
arr
)
{
// const params = { pageNum: this.pageIndex, pageSize: this.pageSize, year: this.queryParams.year,type:3 }
if
(
arr
[
i
].
parent
)
{
// let provinceCode = [],cityCode = [],countyCode = [];
if
(
!
arr
[
i
].
parent
.
checked
)
{
// let code=[];
arr
[
i
].
hasChildren
&&
cityCode
.
push
(
arr
[
i
].
value
);
// for (var i in arr) {
!
arr
[
i
].
hasChildren
&&
countyCode
.
push
(
arr
[
i
].
value
);
// code=arr[i].path
}
// if (arr[i].parent) {
}
else
{
// if (!arr[i].parent.checked) {
provinceCode
.
push
(
arr
[
i
].
value
)
// arr[i].hasChildren && cityCode.push(arr[i].value);
}
// !arr[i].hasChildren && countyCode.push(arr[i].value);
}
// }
if
(
provinceCode
.
length
>
0
){
// } else {
params
.
provinceIds
=
provinceCode
// provinceCode.push(arr[i].value)
}
// }
if
(
cityCode
.
length
>
0
){
// }
params
.
cityIds
=
cityCode
// if(provinceCode.length > 0){
}
// params.provinceIds=provinceCode
if
(
countyCode
.
length
>
0
){
// }
params
.
areaIds
=
countyCode
// if(cityCode.length > 0){
}
// params.cityIds=cityCode
// }
// if(countyCode.length > 0){
// params.areaIds=countyCode
// }
// if(code.length >= 1){
// params.provinceId=code[0]
// }
// if(code.length >= 2){
// params.cityId=code[1]
// }
// if(code.length >= 3){
// params.areaId=code[2]
// }
this
.
getData
(
params
)
//
this.getData(params)
},
},
handleDelete
(
index
){
handleDelete
(
index
){
...
@@ -479,6 +502,22 @@ export default {
...
@@ -479,6 +502,22 @@ export default {
break
;
break
;
}
}
},
},
formatStatus
:
function
(
row
,
column
,
cellValue
)
{
if
(
row
.
title
===
'经济'
||
row
.
title
===
'财政'
||
row
.
title
===
'债务'
){
return
cellValue
}
else
{
return
cellValue
?
cellValue
:
'-'
}
},
rowStyle
(
row
){
if
(
row
.
row
.
title
===
'经济'
||
row
.
row
.
title
===
'财政'
||
row
.
row
.
title
===
'债务'
){
return
{
// background: '#FAF5EB',
color
:
'#232323'
,
fontWeight
:
'bold'
}
}
}
}
}
}
}
</
script
>
</
script
>
...
...
dsk-operate-ui/src/views/macro/economies/component/industrialStructure.vue
View file @
d15e0f0b
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
<span
class=
"common-title"
>
主要指标
</span>
<span
class=
"common-title"
>
主要指标
</span>
<el-form
ref=
"queryForm"
:model=
"queryParams"
:inline=
"true"
size=
"small"
>
<el-form
ref=
"queryForm"
:model=
"queryParams"
:inline=
"true"
size=
"small"
>
<el-form-item
prop=
"year"
>
<el-form-item
prop=
"year"
>
<el-select
v-model=
"queryParams.year"
filterable
class=
"form-content-width"
placeholder=
"请选择年度"
>
<el-select
v-model=
"queryParams.year"
filterable
class=
"form-content-width"
placeholder=
"请选择年度"
@
change=
"getGroupCount"
>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item.year"
:value=
"item.year"
/>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item.year"
:value=
"item.year"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
...
@@ -29,16 +29,16 @@
...
@@ -29,16 +29,16 @@
highlight-current-row
highlight-current-row
>
>
<el-table-column
label=
"序号"
width=
"60"
align=
"left"
>
<el-table-column
label=
"序号"
width=
"60"
align=
"left"
>
<template
slot-scope=
"scope"
>
{{
pageIndex
*
pageSize
-
pageSize
+
scope
.
$index
+
1
}}
</
template
>
<template
slot-scope=
"scope"
>
{{
scope
.
$index
+
1
}}
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"产业类型"
prop=
"
t
ype"
></el-table-column>
<el-table-column
label=
"产业类型"
prop=
"
projectT
ype"
></el-table-column>
<el-table-column
label=
"2022年
"
>
<el-table-column
:label=
"oneYear
"
>
<el-table-column
prop=
"
je
"
label=
"金额(亿元)"
>
</el-table-column>
<el-table-column
prop=
"
money
"
label=
"金额(亿元)"
>
</el-table-column>
<el-table-column
prop=
"
zb"
label=
"占比"
sortable
>
</el-table-column>
<el-table-column
prop=
"
rate"
label=
"占比"
>
</el-table-column>
</el-table-column>
</el-table-column>
<el-table-column
label=
"2021年
"
>
<el-table-column
:label=
"twoYear
"
>
<el-table-column
prop=
"
province"
label=
"金额(亿元)"
sortable
>
</el-table-column>
<el-table-column
prop=
"
lastMoney"
label=
"金额(亿元)"
>
</el-table-column>
<el-table-column
prop=
"
province"
label=
"占比"
sortable
>
</el-table-column>
<el-table-column
prop=
"
lastRate"
label=
"占比"
>
</el-table-column>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
</div>
</div>
...
@@ -48,11 +48,14 @@
...
@@ -48,11 +48,14 @@
<
script
>
<
script
>
import
*
as
echarts
from
'echarts'
;
import
*
as
echarts
from
'echarts'
;
import
{
nationalPag
e
,
getYears
}
from
'@/api/macro/macro'
import
{
bidGroupCountByProjectType
,
bidMoneyGroupByProjectTyp
e
,
getYears
}
from
'@/api/macro/macro'
export
default
{
export
default
{
name
:
'industrialStructure'
,
name
:
'industrialStructure'
,
props
:{
props
:{
dataQuery
:{}
dataQuery
:
{
type
:
Object
,
default
:
{}
},
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -61,46 +64,11 @@ export default {
...
@@ -61,46 +64,11 @@ export default {
address
:
''
address
:
''
},
},
yearOptions
:
[],
yearOptions
:
[],
tableData
:[
tableData
:[],
{
type
:
'房建工程'
,
je
:
'29,175.61'
,
zb
:
'26%'
},
{
type
:
'市政工程'
,
je
:
'29,175.61'
,
zb
:
'26%'
},
{
type
:
'公路工程'
,
je
:
'29,175.61'
,
zb
:
'26%'
},
{
type
:
'机电工程'
,
je
:
'29,175.61'
,
zb
:
'26%'
},
],
tableLoading
:
false
,
tableLoading
:
false
,
pageIndex
:
1
,
data
:[],
pageSize
:
10
,
oneYear
:
''
,
tableDataTotal
:
0
,
twoYear
:
''
,
data
:[
{
name
:
'房建工程'
,
value
:
11
},
{
name
:
'市政工程'
,
value
:
22
},
{
name
:
'公路工程'
,
value
:
33
}
]
}
}
},
},
created
()
{
created
()
{
...
@@ -108,14 +76,60 @@ export default {
...
@@ -108,14 +76,60 @@ export default {
this
.
yearOptions
=
res
.
data
.
reverse
();
this
.
yearOptions
=
res
.
data
.
reverse
();
this
.
queryParams
.
year
=
this
.
yearOptions
[
0
].
year
;
this
.
queryParams
.
year
=
this
.
yearOptions
[
0
].
year
;
})
})
this
.
getData
()
this
.
getGroupCount
()
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
initChart
()
})
})
},
},
methods
:
{
methods
:
{
handleClick
()
{
getData
(){
let
mydate
=
new
Date
();
var
startTime
,
endTime
,
Year
Year
=
mydate
.
getFullYear
();
startTime
=
mydate
.
getFullYear
()
-
2
+
'-01-01'
;
endTime
=
mydate
.
getFullYear
()
-
1
+
'-12-31'
;
this
.
oneYear
=
mydate
.
getFullYear
()
-
1
+
'年'
;
this
.
twoYear
=
mydate
.
getFullYear
()
-
2
+
'年'
;
let
params
=
{
startDate
:
startTime
,
endDate
:
endTime
,
province
:
this
.
dataQuery
.
provinceId
}
bidMoneyGroupByProjectType
(
params
).
then
(
res
=>
{
let
list
=
res
.
data
[
1
].
type
for
(
let
i
=
0
;
i
<
res
.
data
[
0
].
type
.
length
;
i
++
){
for
(
let
j
=
0
;
j
<
list
.
length
;
j
++
){
if
(
res
.
data
[
0
].
type
[
i
].
projectType
===
list
[
j
].
projectType
){
list
[
j
].
lastMoney
=
res
.
data
[
0
].
type
[
i
].
money
;
list
[
j
].
lastRate
=
res
.
data
[
0
].
type
[
i
].
rate
;
}
}
}
this
.
tableData
=
list
.
reverse
()
})
},
getGroupCount
(){
let
mydate
=
new
Date
();
let
startTime
=
''
let
endTime
=
''
if
(
!
this
.
queryParams
.
year
){
startTime
=
mydate
.
getFullYear
()
-
1
+
'-01-01'
;
endTime
=
mydate
.
getFullYear
()
-
1
+
'-12-31'
;
}
else
{
startTime
=
this
.
queryParams
.
year
+
'-01-01'
;
endTime
=
this
.
queryParams
.
year
+
'-12-31'
;
}
bidGroupCountByProjectType
({
startDate
:
startTime
,
endDate
:
endTime
}).
then
(
res
=>
{
let
list
=
[]
for
(
let
i
=
0
;
i
<
res
.
data
.
length
;
i
++
){
let
item
=
{};
item
.
name
=
res
.
data
[
i
].
type
item
.
value
=
res
.
data
[
i
].
count
list
.
push
(
item
);
}
this
.
data
=
list
;
this
.
initChart
()
})
},
},
initChart
()
{
initChart
()
{
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"echarts"
))
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"echarts"
))
let
option
=
{
let
option
=
{
...
@@ -134,7 +148,7 @@ export default {
...
@@ -134,7 +148,7 @@ export default {
},
},
//鼠标悬停时显示的样式
//鼠标悬停时显示的样式
tooltip
:
{
tooltip
:
{
extraCssText
:
'width:1
0
0px!important;'
,
extraCssText
:
'width:1
2
0px!important;'
,
formatter
:
function
(
params
){
formatter
:
function
(
params
){
var
result
=
''
var
result
=
''
result
+=
'<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'
+
params
.
name
+
'</p>'
result
+=
'<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'
+
params
.
name
+
'</p>'
...
@@ -157,7 +171,8 @@ export default {
...
@@ -157,7 +171,8 @@ export default {
]
]
}
}
myChart
.
setOption
(
option
);
myChart
.
setOption
(
option
);
}
},
}
}
}
}
</
script
>
</
script
>
...
...
dsk-operate-ui/src/views/macro/economies/component/localEconomy.vue
View file @
d15e0f0b
...
@@ -52,7 +52,10 @@
...
@@ -52,7 +52,10 @@
export
default
{
export
default
{
name
:
'localEconomy'
,
name
:
'localEconomy'
,
props
:{
props
:{
dataQuery
:{}
dataQuery
:
{
type
:
Object
,
default
:
{}
},
},
},
data
()
{
data
()
{
return
{
return
{
...
...
dsk-operate-ui/src/views/macro/economies/component/regionalEconomy.vue
View file @
d15e0f0b
...
@@ -4,45 +4,71 @@
...
@@ -4,45 +4,71 @@
<div
class=
"common-title"
>
经济数据
</div>
<div
class=
"common-title"
>
经济数据
</div>
<div
class=
"content-box"
>
<div
class=
"content-box"
>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"item-title"
><i
style=
"background: #4E8EFF;"
></i>
2022年GDP
</div>
<div
class=
"item-title"
><i
style=
"background: #4E8EFF;"
></i>
{{
recentlyYear
.
year
}}
年GDP
</div>
<div
class=
"item-count"
><span>
29,129.03
</span>
亿
<img
src=
"@/assets/images/economies/icon_up.png"
></div>
<div
class=
"item-count"
>
<span>
{{
recentlyYear
.
gdp
}}
</span>
亿
<img
v-if=
"recentlyYear.gdpGrowth > 0"
src=
"@/assets/images/economies/icon_up.png"
>
<img
v-else
src=
"@/assets/images/economies/icon_down.png"
>
</div>
<div
id=
"echartsGDP"
style=
"height: 75px;"
></div>
<div
id=
"echartsGDP"
style=
"height: 75px;"
></div>
<div
class=
"item-text up"
>
较2021年上升
<span>
26.7%
</span></div>
<div
class=
"item-text up"
v-if=
"recentlyYear.gdpGrowth > 0"
>
较
{{
nextYearMap
.
year
}}
年上升
<span>
{{
recentlyYear
.
gdpGrowth
}}
%
</span></div>
<div
class=
"item-text down"
v-else
>
较
{{
nextYearMap
.
year
}}
年下降
<span>
{{
Number
(
recentlyYear
.
gdpGrowth
).
toString
().
substring
(
1
)
}}
%
</span></div>
</div>
</div>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"item-title"
><i
style=
"background: #718AFF;"
></i>
2022年GDP增速
</div>
<div
class=
"item-title"
><i
style=
"background: #718AFF;"
></i>
{{
recentlyYear
.
year
}}
年GDP增速
</div>
<div
class=
"item-count"
><span>
29,129.03
</span>
亿
<img
src=
"@/assets/images/economies/icon_down.png"
></div>
<div
class=
"item-count"
>
<span>
{{
recentlyYear
.
gdpGrowth
}}
</span>
%
<img
v-if=
"(recentlyYear.gdpGrowth-nextYearMap.gdpGrowth) > 0"
src=
"@/assets/images/economies/icon_up.png"
>
<img
v-else
src=
"@/assets/images/economies/icon_down.png"
>
</div>
<div
id=
"echartsZS"
style=
"height: 75px;"
></div>
<div
id=
"echartsZS"
style=
"height: 75px;"
></div>
<div
class=
"item-text down"
>
较2021年下降
<span>
26.7%
</span></div>
<div
class=
"item-text up"
v-if=
"(recentlyYear.gdpGrowth-nextYearMap.gdpGrowth) > 0"
>
较
{{
nextYearMap
.
year
}}
年上升
<span>
{{
recentlyYear
.
gdpGrowth
-
nextYearMap
.
gdpGrowth
}}
%
</span></div>
<div
class=
"item-text down"
v-else
>
较
{{
nextYearMap
.
year
}}
年下降
<span>
{{
(
this
.
recentlyYear
.
gdpGrowth
-
this
.
nextYearMap
.
gdpGrowth
).
toFixed
(
2
).
toString
().
substring
(
1
)
}}
%
</span></div>
</div>
</div>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"item-title"
><i
style=
"background: #3AD0D1;"
></i>
2022年人口
</div>
<div
class=
"item-title"
><i
style=
"background: #3AD0D1;"
></i>
{{
recentlyYear
.
year
}}
年人口
</div>
<div
class=
"item-count"
><span>
29,129.03
</span>
亿
<img
src=
"@/assets/images/economies/icon_down.png"
></div>
<div
class=
"item-count"
>
<span>
{{
recentlyYear
.
population
}}
</span>
万
<img
v-if=
"recentlyYear.populationGrowthRate > 0"
src=
"@/assets/images/economies/icon_up.png"
>
<img
v-else
src=
"@/assets/images/economies/icon_down.png"
>
</div>
<div
id=
"echartsRK"
style=
"height: 75px;"
></div>
<div
id=
"echartsRK"
style=
"height: 75px;"
></div>
<div
class=
"item-text down"
>
较2021年下降
<span>
26.7%
</span></div>
<div
class=
"item-text up"
v-if=
"recentlyYear.populationGrowthRate > 0"
>
较
{{
nextYearMap
.
year
}}
年上升
<span>
{{
recentlyYear
.
populationGrowthRate
}}
%
</span></div>
<div
class=
"item-text down"
v-else
>
较
{{
nextYearMap
.
year
}}
年下降
<span>
{{
recentlyYear
.
populationGrowthRate
}}
%
</span></div>
</div>
</div>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"item-title"
><i
style=
"background: #FFBE5D;"
></i>
2022年一般公共预算收入
</div>
<div
class=
"item-title"
><i
style=
"background: #FFBE5D;"
></i>
{{
recentlyYear
.
year
}}
年一般公共预算收入
</div>
<div
class=
"item-count"
><span>
29,129.03
</span>
亿
<img
src=
"@/assets/images/economies/icon_up.png"
></div>
<div
class=
"item-count"
>
<span>
{{
recentlyYear
.
gbr
}}
</span>
亿
<img
v-if=
"recentlyYear.gbrGrowth > 0"
src=
"@/assets/images/economies/icon_up.png"
>
<img
v-else
src=
"@/assets/images/economies/icon_down.png"
>
</div>
<div
id=
"echartsSR"
style=
"height: 75px;"
></div>
<div
id=
"echartsSR"
style=
"height: 75px;"
></div>
<div
class=
"item-text up"
>
较2021年上升
<span>
26.7%
</span></div>
<div
class=
"item-text up"
v-if=
"recentlyYear.gbrGrowth > 0"
>
较
{{
nextYearMap
.
year
}}
年上升
<span>
{{
recentlyYear
.
gbrGrowth
}}
%
</span></div>
<div
class=
"item-text down"
v-else
>
较
{{
nextYearMap
.
year
}}
年下降
<span>
{{
Number
(
recentlyYear
.
gbrGrowth
).
toString
().
substring
(
1
)
}}
%
</span></div>
</div>
</div>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"item-title"
><i
style=
"background: #FF8935;"
></i>
2000年地方政府债务余额
</div>
<div
class=
"item-title"
><i
style=
"background: #FF8935;"
></i>
{{
recentlyYear
.
year
}}
年地方政府债务余额
</div>
<div
class=
"item-count"
><span>
29,129.03
</span>
亿
<img
src=
"@/assets/images/economies/icon_up.png"
></div>
<div
class=
"item-count"
>
<span>
{{
recentlyYear
.
govDebtBalance
}}
</span>
亿
<img
v-if=
"recentlyYear.govDebtBalance > nextYearMap.govDebtBalance"
src=
"@/assets/images/economies/icon_up.png"
>
<img
v-else
src=
"@/assets/images/economies/icon_down.png"
>
</div>
<div
id=
"echartsYE"
style=
"height: 75px;"
></div>
<div
id=
"echartsYE"
style=
"height: 75px;"
></div>
<div
class=
"item-text up"
>
较2021年上升
<span>
26.7%
</span></div>
<div
class=
"item-text up"
v-if=
"recentlyYear.govDebtBalance > nextYearMap.govDebtBalance"
>
较
{{
nextYearMap
.
year
}}
年上升
<span>
{{
((
recentlyYear
.
govDebtBalance
-
nextYearMap
.
govDebtBalance
)
/
nextYearMap
.
govDebtBalance
*
100
).
toFixed
(
2
)
}}
%
</span></div>
<div
class=
"item-text down"
v-else
>
较
{{
nextYearMap
.
year
}}
年下降
<span>
{{
((
recentlyYear
.
govDebtBalance
-
nextYearMap
.
govDebtBalance
)
/
nextYearMap
.
govDebtBalance
*
100
).
toFixed
(
2
).
toString
().
substring
(
1
)
}}
%
</span></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"content content2"
>
<div
class=
"content content2"
>
<div
class=
"common-title"
>
经济信息
</div>
<div
class=
"common-title"
>
经济信息
</div>
<div
class=
"content-box"
>
<div
class=
"content-box"
>
<span><img
src=
"@/assets/images/economies/icon_1.png"
>
下属辖区
<label>
38
</label><i>
个
</i
></span>
<span><img
src=
"@/assets/images/economies/icon_1.png"
>
下属辖区
<label>
{{
recentlyYear
.
subordinateJurisdiction
}}
<i>
个
</i></label
></span>
<span><img
src=
"@/assets/images/economies/icon_2.png"
>
地方债余额
<label>
10,567.32
</label><i>
亿
</i
></span>
<span><img
src=
"@/assets/images/economies/icon_2.png"
>
城投平台
<label>
{{
recentlyYear
.
urbanInvestmentPlatform
}}
<i>
亿
</i></label
></span>
<span><img
src=
"@/assets/images/economies/icon_3.png"
>
专项债项目
<label>
10
</label><i>
个
</i
></span>
<span><img
src=
"@/assets/images/economies/icon_3.png"
>
城投平台授信余额
<label>
{{
recentlyYear
.
creditBalance
}}
<i>
个
</i></label
></span>
<span><img
src=
"@/assets/images/economies/icon_4.png"
>
城投平台
<label>
17
</label><i>
家
</i
></span>
<span><img
src=
"@/assets/images/economies/icon_4.png"
>
城投平台
营收账款
<label>
{{
recentlyYear
.
accountsReceivable
}}
<i>
家
</i></label
></span>
<span><img
src=
"@/assets/images/economies/icon_5.png"
>
城投平台有息债务
<label>
17,710.19
</label><i>
亿
</i
></span>
<span><img
src=
"@/assets/images/economies/icon_5.png"
>
城投平台有息债务
<label>
{{
recentlyYear
.
uipInterestBearingDebt
}}
<i>
亿
</i></label
></span>
</div>
</div>
</div>
</div>
<div
class=
"content content3"
>
<div
class=
"content content3"
>
...
@@ -77,15 +103,17 @@
...
@@ -77,15 +103,17 @@
<
script
>
<
script
>
import
*
as
echarts
from
'echarts'
;
import
*
as
echarts
from
'echarts'
;
import
{
regional
,
regionalList
}
from
'@/api/macro/macro'
import
{
regional
,
regionalList
,
location
}
from
'@/api/macro/macro'
export
default
{
export
default
{
name
:
'regionalEconomy'
,
name
:
'regionalEconomy'
,
props
:{
props
:{
dataQuery
:{}
dataQuery
:
{
type
:
Object
,
default
:
{}
},
},
},
data
()
{
data
()
{
return
{
return
{
activeName
:
'first'
,
tableData
:
[],
tableData
:
[],
headers
:
[
headers
:
[
{
{
...
@@ -158,7 +186,7 @@ export default {
...
@@ -158,7 +186,7 @@ export default {
},
},
{
{
prop
:
'gbrGrowth'
,
prop
:
'gbrGrowth'
,
label
:
'
般公共预算收入增速
'
,
label
:
'
一般公共预算收入增速(%)
'
,
},
},
{
{
prop
:
'taxIncome'
,
prop
:
'taxIncome'
,
...
@@ -222,23 +250,23 @@ export default {
...
@@ -222,23 +250,23 @@ export default {
},
},
{
{
prop
:
'fiscalSelfSufficiencyRate'
,
prop
:
'fiscalSelfSufficiencyRate'
,
label
:
'财政自给率'
,
label
:
'财政自给率
(%)
'
,
},
},
{
{
prop
:
'govDebtToGdpRate'
,
prop
:
'govDebtToGdpRate'
,
label
:
'负债率'
,
label
:
'负债率
(%)
'
,
},
},
{
{
prop
:
'govDebtToGdpRateWild'
,
prop
:
'govDebtToGdpRateWild'
,
label
:
'负债率
-宽口径
'
,
label
:
'负债率
(宽口径)(%)
'
,
},
},
{
{
prop
:
'govDebtRate'
,
prop
:
'govDebtRate'
,
label
:
'债务率'
,
label
:
'债务率
(%)
'
,
},
},
{
{
prop
:
'govDebtRateWild'
,
prop
:
'govDebtRateWild'
,
label
:
'债务率
-宽口径
'
,
label
:
'债务率
(宽口径)(%)
'
,
},
},
],
],
tableLoading
:
false
,
tableLoading
:
false
,
...
@@ -246,18 +274,19 @@ export default {
...
@@ -246,18 +274,19 @@ export default {
pageSize
:
10
,
pageSize
:
10
,
tableDataTotal
:
0
,
tableDataTotal
:
0
,
labelData
:[
2021
,
2022
],
labelData
:[
2021
,
2022
],
valData
:[
23201
,
35201
]
valData
:[],
valData1
:[],
valData2
:[],
valData3
:[],
valData4
:[],
recentlyYear
:{},
nextYearMap
:{},
}
}
},
},
created
()
{
created
()
{
console
.
log
(
this
.
dataQuery
)
this
.
getData
()
this
.
getData
()
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
initChart
()
this
.
initChart1
()
this
.
initChart2
()
this
.
initChart3
()
this
.
initChart4
()
})
})
},
},
computed
:
{
computed
:
{
...
@@ -280,7 +309,18 @@ export default {
...
@@ -280,7 +309,18 @@ export default {
params
.
provinceId
=
this
.
dataQuery
.
provinceId
params
.
provinceId
=
this
.
dataQuery
.
provinceId
}
}
regional
(
params
).
then
(
res
=>
{
regional
(
params
).
then
(
res
=>
{
console
.
log
(
res
.
data
)
this
.
recentlyYear
=
res
.
data
[
0
].
recentlyYear
;
this
.
nextYearMap
=
res
.
data
[
0
].
nextYearMap
;
this
.
valData
=
[
this
.
nextYearMap
.
gdp
,
this
.
recentlyYear
.
gdp
]
this
.
valData1
=
[
this
.
nextYearMap
.
gdpGrowth
,
this
.
recentlyYear
.
gdpGrowth
]
this
.
valData2
=
[
this
.
nextYearMap
.
population
,
this
.
recentlyYear
.
population
]
this
.
valData3
=
[
this
.
nextYearMap
.
gbr
,
this
.
recentlyYear
.
gbr
]
this
.
valData4
=
[
this
.
nextYearMap
.
govDebtBalance
,
this
.
recentlyYear
.
govDebtBalance
]
this
.
initChart
()
this
.
initChart1
()
this
.
initChart2
()
this
.
initChart3
()
this
.
initChart4
()
})
})
regionalList
(
params
).
then
(
res
=>
{
regionalList
(
params
).
then
(
res
=>
{
this
.
tableData
=
res
.
data
;
this
.
tableData
=
res
.
data
;
...
@@ -369,7 +409,7 @@ export default {
...
@@ -369,7 +409,7 @@ export default {
},
},
series
:
[
series
:
[
{
{
data
:
this
.
valData
,
data
:
this
.
valData
1
,
type
:
'line'
,
type
:
'line'
,
smooth
:
true
,
smooth
:
true
,
emphasis
:
{
emphasis
:
{
...
@@ -428,7 +468,7 @@ export default {
...
@@ -428,7 +468,7 @@ export default {
},
},
series
:
[
series
:
[
{
{
data
:
this
.
valData
,
data
:
this
.
valData
2
,
type
:
'line'
,
type
:
'line'
,
smooth
:
true
,
smooth
:
true
,
emphasis
:
{
emphasis
:
{
...
@@ -487,7 +527,7 @@ export default {
...
@@ -487,7 +527,7 @@ export default {
},
},
series
:
[
series
:
[
{
{
data
:
this
.
valData
,
data
:
this
.
valData
3
,
type
:
'line'
,
type
:
'line'
,
smooth
:
true
,
smooth
:
true
,
emphasis
:
{
emphasis
:
{
...
@@ -546,7 +586,7 @@ export default {
...
@@ -546,7 +586,7 @@ export default {
},
},
series
:
[
series
:
[
{
{
data
:
this
.
valData
,
data
:
this
.
valData
4
,
type
:
'line'
,
type
:
'line'
,
smooth
:
true
,
smooth
:
true
,
emphasis
:
{
emphasis
:
{
...
@@ -671,6 +711,8 @@ export default {
...
@@ -671,6 +711,8 @@ export default {
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
font-size
:
12px
;
font-size
:
12px
;
padding-left
:
16px
;
padding-left
:
16px
;
width
:
20%
;
line-height
:
26px
;
img
{
img
{
width
:
12px
;
width
:
12px
;
height
:
12px
;
height
:
12px
;
...
@@ -682,12 +724,15 @@ export default {
...
@@ -682,12 +724,15 @@ export default {
color
:
#232323
;
color
:
#232323
;
font-size
:
20px
;
font-size
:
20px
;
margin-left
:
12px
;
margin-left
:
12px
;
float
:
right
;
}
}
i
{
i
{
color
:
#232323
;
color
:
#232323
;
margin-right
:
16px
;
margin-right
:
16px
;
font-style
:
normal
;
font-style
:
normal
;
margin-left
:
4px
;
margin-left
:
4px
;
font-weight
:
400
;
font-size
:
12px
;
}
}
}
}
span
:last-child
{
span
:last-child
{
...
...
dsk-operate-ui/src/views/macro/economies/index.vue
View file @
d15e0f0b
...
@@ -7,12 +7,12 @@
...
@@ -7,12 +7,12 @@
<el-tab-pane
label=
"产业结构"
name=
"third"
></el-tab-pane>
<el-tab-pane
label=
"产业结构"
name=
"third"
></el-tab-pane>
<el-tab-pane
label=
"地区经济对比"
name=
"four"
></el-tab-pane>
<el-tab-pane
label=
"地区经济对比"
name=
"four"
></el-tab-pane>
</el-tabs>
</el-tabs>
<div
class=
"location"
><i
class=
"el-icon-location"
></i>
重庆市
</div>
<div
class=
"location"
><i
class=
"el-icon-location"
></i>
{{
province
}}
</div>
</div>
</div>
<RegionalEconomy
v-if=
"activeName === 'first'"
:dataQuery=
"dataQuery"
></RegionalEconomy>
<RegionalEconomy
v-if=
"activeName === 'first'
&& province
"
:dataQuery=
"dataQuery"
></RegionalEconomy>
<LocalEconomy
v-if=
"activeName === 'second'"
:dataQuery=
"dataQuery"
></LocalEconomy>
<LocalEconomy
v-if=
"activeName === 'second'
&& province
"
:dataQuery=
"dataQuery"
></LocalEconomy>
<IndustrialStructure
v-if=
"activeName === 'third'"
:dataQuery=
"dataQuery"
></IndustrialStructure>
<IndustrialStructure
v-if=
"activeName === 'third'
&& province
"
:dataQuery=
"dataQuery"
></IndustrialStructure>
<Comparison
v-if=
"activeName === 'four'"
:dataQuery=
"dataQuery"
></Comparison>
<Comparison
v-if=
"activeName === 'four'
&& province
"
:dataQuery=
"dataQuery"
></Comparison>
</div>
</div>
</
template
>
</
template
>
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
import
LocalEconomy
from
'./component/localEconomy'
import
LocalEconomy
from
'./component/localEconomy'
import
Comparison
from
'./component/comparison'
import
Comparison
from
'./component/comparison'
import
IndustrialStructure
from
'./component/industrialStructure'
import
IndustrialStructure
from
'./component/industrialStructure'
import
{
location
}
from
'@/api/macro/macro'
export
default
{
export
default
{
name
:
'Economies'
,
name
:
'Economies'
,
components
:
{
components
:
{
...
@@ -31,12 +32,20 @@ export default {
...
@@ -31,12 +32,20 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
activeName
:
'third'
,
activeName
:
'four'
,
dataQuery
:{}
dataQuery
:{},
province
:
''
}
}
},
},
created
()
{
created
()
{
this
.
dataQuery
=
this
.
$route
.
query
this
.
dataQuery
=
this
.
$route
.
query
;
location
({
provinceId
:
'500000'
}).
then
(
res
=>
{
this
.
province
=
res
.
data
.
currentProvince
.
regionName
;
this
.
provinceId
=
res
.
data
.
currentProvince
.
id
;
if
(
!
this
.
dataQuery
.
provinceId
){
this
.
dataQuery
.
provinceId
=
this
.
provinceId
}
})
// let name = sessionStorage.getItem('currentTab')
// let name = sessionStorage.getItem('currentTab')
// if (name != "undefined" && name){
// if (name != "undefined" && name){
// this.activeName = name;
// this.activeName = name;
...
...
dsk-operate-ui/src/views/macro/enterprises/component/localEnterprises.vue
0 → 100644
View file @
d15e0f0b
<
template
>
<div
class=
"localEnterprises"
>
<div
class=
"content"
>
<div
class=
"search"
>
<el-cascader
ref=
"address"
:options=
"aptitudeCodeList"
:props=
"props"
v-model=
"queryParams.codeStr"
placeholder=
"资质资格"
collapse-tags
clearable
></el-cascader>
<el-input
placeholder=
"输入企业名称关键词"
v-model=
"queryParams.key"
>
<el-button
slot=
"append"
>
搜索
</el-button>
</el-input>
<span
class=
"total"
>
共
{{
tableDataTotal
}}
条
</span>
</div>
<div
class=
"table-item"
>
<el-table
v-loading=
"tableLoading"
:data=
"tableData"
element-loading-text=
"Loading"
border
fit
highlight-current-row
>
<el-table-column
label=
"序号"
width=
"50"
align=
"left"
fixed
>
<template
slot-scope=
"scope"
>
{{
pageIndex
*
pageSize
-
pageSize
+
scope
.
$index
+
1
}}
</
template
>
</el-table-column>
<el-table-column
label=
"公司名称"
align=
"left"
width=
"300"
>
<
template
slot-scope=
"scope"
>
<router-link
to=
""
tag=
"a"
class=
"a-link"
>
{{
scope
.
row
.
name
}}
</router-link>
</
template
>
</el-table-column>
<el-table-column
label=
"注册地区"
prop=
"address"
width=
"80"
/>
<el-table-column
label=
"资质资格"
prop=
"aptitudeCountNew"
sortable
width=
"120"
align=
"right"
/>
<el-table-column
label=
"专业人员"
prop=
"persionCount"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"中标业绩"
prop=
"recentlyCount"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"最大中标金额(万元)"
prop=
"cgfs"
sortable
width=
"160"
align=
"right"
/>
<el-table-column
label=
"中标总金额(万元)"
prop=
"cgfs"
sortable
width=
"160"
align=
"right"
/>
<el-table-column
label=
"四库业绩"
prop=
"skyCount"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"公路业绩"
prop=
"cgfs"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"水利业绩"
prop=
"cgfs"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"常合作业主"
prop=
"cgfs"
width=
"280"
align=
"right"
/>
<el-table-column
label=
"客户(个)"
prop=
"customerCount"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"供应商(个)"
prop=
"supplierCount"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"常合作供应商"
prop=
"cgfs"
width=
"280"
align=
"right"
/>
</el-table>
</div>
<div
class=
"pagination-box"
>
<el-pagination
background
:current-page=
"pageIndex"
:page-size=
"pageSize"
:total=
"tableDataTotal"
layout=
"prev, pager, next, jumper"
@
current-change=
"handleCurrentChange"
@
size-change=
"handleSizeChange"
/>
</div>
</div>
</div>
</template>
<
script
>
import
*
as
echarts
from
'echarts'
;
import
aptitudeCode
from
'@/assets/json/aptitudeCode'
import
{
countGroupByMonth
,
countGroupByProvince
,
getYear
}
from
'@/api/macro/macro'
export
default
{
name
:
'localEnterprises'
,
data
()
{
return
{
queryParams
:{
key
:
''
,
codeStr
:
''
},
props
:
{
value
:
'id'
,
multiple
:
true
,
// checkStrictly:true,
label
:
'name'
,
children
:
'list'
,
expandTrigger
:
'hover'
},
tableData
:
[
{
dataId
:
'1'
,
cgrssqy
:
'100'
,
cgfs
:
'200'
,
address
:
'江北区'
,
name
:
'重庆市江北区国有资本投资运营管理集团有限公司'
}
],
tableLoading
:
false
,
pageIndex
:
1
,
pageSize
:
10
,
tableDataTotal
:
1
,
aptitudeCodeList
:[],
}
},
created
()
{
this
.
aptitudeCode
()
this
.
querySubmit
()
},
methods
:
{
//资质Json
async
aptitudeCode
()
{
// await axios.post("https://files.jiansheku.com/file/json/common/aptitudeCode.json", {}, {
// headers: {
// 'Content-Type': 'application/json'
// }
// }).then(res => {
// if (res.data.code == 200) {
// console.log(res.data.data)
// }
// })
this
.
aptitudeCodeList
=
aptitudeCode
},
async
querySubmit
(){
const
params
=
{
pageNum
:
this
.
pageIndex
,
pageSize
:
this
.
pageSize
}
if
(
this
.
queryParams
.
field
){
params
.
field
=
this
.
queryParams
.
field
}
if
(
this
.
queryParams
.
order
){
params
.
order
=
this
.
queryParams
.
order
}
enterprise
(
params
).
then
(
res
=>
{
console
.
log
(
res
.
data
)
})
},
// 重置页数
handleSizeChange
(
val
)
{
this
.
pageIndex
=
1
this
.
pageSize
=
val
this
.
querySubmit
()
},
// 跳转指定页数
handleCurrentChange
(
val
)
{
this
.
pageIndex
=
val
this
.
querySubmit
()
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.localEnterprises
{
.content
{
background
:
#FFFFFF
;
border-radius
:
4px
;
margin-top
:
12px
;
padding
:
16px
;
.search
{
::v-deep
.el-cascader
{
width
:
180px
;
margin-right
:
12px
;
height
:
32px
;
.el-input
{
width
:
100%
;
height
:
32px
;
.el-input__inner
{
height
:
32px
!
important
;
}
}
.el-cascader__tags
{
flex-wrap
:
inherit
;
.el-tag
{
max-width
:
100px
;
margin
:
5px
0
2px
6px
;
}
}
}
::v-deep
.el-input
{
width
:
250px
;
height
:
32px
;
.el-input__inner
{
height
:
32px
;
}
.el-input-group__append
{
width
:
59px
;
background
:
#F5F5F5
;
color
:
#0081FF
;
border-left
:
0
;
}
}
.total
{
float
:
right
;
color
:
#3D3D3D
;
font-size
:
12px
;
line-height
:
36px
;
}
}
.table-item
{
margin-top
:
14px
;
}
}
}
</
style
>
dsk-operate-ui/src/views/macro/enterprises/component/offsite.vue
0 → 100644
View file @
d15e0f0b
<
template
>
<div
class=
"offsite"
>
<div
class=
"content"
>
<div
class=
"search"
>
<el-cascader
ref=
"address"
:options=
"aptitudeCodeList"
:props=
"props"
v-model=
"queryParams.codeStr"
placeholder=
"资质资格"
collapse-tags
clearable
></el-cascader>
<el-input
placeholder=
"输入企业名称关键词"
v-model=
"queryParams.key"
>
<el-button
slot=
"append"
>
搜索
</el-button>
</el-input>
<span
class=
"total"
>
共
{{
tableDataTotal
}}
条
</span>
</div>
<div
class=
"table-item"
>
<el-table
v-loading=
"tableLoading"
:data=
"tableData"
element-loading-text=
"Loading"
border
fit
highlight-current-row
>
<el-table-column
label=
"序号"
width=
"50"
align=
"left"
fixed
>
<template
slot-scope=
"scope"
>
{{
pageIndex
*
pageSize
-
pageSize
+
scope
.
$index
+
1
}}
</
template
>
</el-table-column>
<el-table-column
label=
"公司名称"
align=
"left"
width=
"300"
>
<
template
slot-scope=
"scope"
>
<router-link
to=
""
tag=
"a"
class=
"a-link"
>
{{
scope
.
row
.
name
}}
</router-link>
</
template
>
</el-table-column>
<el-table-column
label=
"注册地区"
prop=
"address"
width=
"80"
/>
<el-table-column
label=
"资质资格"
prop=
"aptitudeCountNew"
sortable
width=
"120"
align=
"right"
/>
<el-table-column
label=
"专业人员"
prop=
"persionCount"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"中标业绩"
prop=
"recentlyCount"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"最大中标金额(万元)"
prop=
"cgfs"
sortable
width=
"160"
align=
"right"
/>
<el-table-column
label=
"中标总金额(万元)"
prop=
"cgfs"
sortable
width=
"160"
align=
"right"
/>
<el-table-column
label=
"四库业绩"
prop=
"skyCount"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"公路业绩"
prop=
"cgfs"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"水利业绩"
prop=
"cgfs"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"常合作业主"
prop=
"cgfs"
width=
"280"
align=
"right"
/>
<el-table-column
label=
"客户(个)"
prop=
"customerCount"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"供应商(个)"
prop=
"supplierCount"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"常合作供应商"
prop=
"cgfs"
width=
"280"
align=
"right"
/>
</el-table>
</div>
</div>
</div>
</template>
<
script
>
import
*
as
echarts
from
'echarts'
;
import
aptitudeCode
from
'@/assets/json/aptitudeCode'
import
{
countGroupByMonth
,
countGroupByProvince
,
getYear
}
from
'@/api/macro/macro'
export
default
{
name
:
'offsite'
,
data
()
{
return
{
queryParams
:{
key
:
''
,
codeStr
:
''
},
props
:
{
value
:
'id'
,
multiple
:
true
,
// checkStrictly:true,
label
:
'name'
,
children
:
'list'
,
expandTrigger
:
'hover'
},
tableData
:
[
{
dataId
:
'1'
,
cgrssqy
:
'100'
,
cgfs
:
'200'
,
address
:
'江北区'
,
name
:
'重庆市江北区国有资本投资运营管理集团有限公司'
}
],
tableLoading
:
false
,
pageIndex
:
1
,
pageSize
:
10
,
tableDataTotal
:
1
,
aptitudeCodeList
:[],
}
},
created
()
{
this
.
aptitudeCode
()
this
.
querySubmit
()
},
methods
:
{
//资质Json
async
aptitudeCode
()
{
// await axios.post("https://files.jiansheku.com/file/json/common/aptitudeCode.json", {}, {
// headers: {
// 'Content-Type': 'application/json'
// }
// }).then(res => {
// if (res.data.code == 200) {
// console.log(res.data.data)
// }
// })
this
.
aptitudeCodeList
=
aptitudeCode
},
async
querySubmit
(){
const
params
=
{
pageNum
:
this
.
pageIndex
,
pageSize
:
this
.
pageSize
}
if
(
this
.
queryParams
.
field
){
params
.
field
=
this
.
queryParams
.
field
}
if
(
this
.
queryParams
.
order
){
params
.
order
=
this
.
queryParams
.
order
}
enterprise
(
params
).
then
(
res
=>
{
console
.
log
(
res
.
data
)
})
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.offsite
{
.content
{
background
:
#FFFFFF
;
border-radius
:
4px
;
margin-top
:
12px
;
padding
:
16px
;
.search
{
::v-deep
.el-cascader
{
width
:
180px
;
margin-right
:
12px
;
height
:
32px
;
.el-input
{
width
:
100%
;
height
:
32px
;
.el-input__inner
{
height
:
32px
!
important
;
}
}
.el-cascader__tags
{
flex-wrap
:
inherit
;
.el-tag
{
max-width
:
100px
;
margin
:
5px
0
2px
6px
;
}
}
}
::v-deep
.el-input
{
width
:
250px
;
height
:
32px
;
.el-input__inner
{
height
:
32px
;
}
.el-input-group__append
{
width
:
59px
;
background
:
#F5F5F5
;
color
:
#0081FF
;
border-left
:
0
;
}
}
.total
{
float
:
right
;
color
:
#3D3D3D
;
font-size
:
12px
;
line-height
:
36px
;
}
}
.table-item
{
margin-top
:
14px
;
}
}
}
</
style
>
dsk-operate-ui/src/views/macro/enterprises/index.vue
View file @
d15e0f0b
...
@@ -40,28 +40,38 @@
...
@@ -40,28 +40,38 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"注册地区"
prop=
"address"
width=
"80"
/>
<el-table-column
label=
"注册地区"
prop=
"address"
width=
"80"
/>
<el-table-column
label=
"资质资格"
prop=
"
cgfs
"
sortable
width=
"120"
align=
"right"
/>
<el-table-column
label=
"资质资格"
prop=
"
aptitudeCountNew
"
sortable
width=
"120"
align=
"right"
/>
<el-table-column
label=
"专业人员"
prop=
"
cgfs
"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"专业人员"
prop=
"
persionCount
"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"中标业绩"
prop=
"
cgfs
"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"中标业绩"
prop=
"
recentlyCount
"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"最大中标金额(万元)"
prop=
"cgfs"
sortable
width=
"160"
align=
"right"
/>
<el-table-column
label=
"最大中标金额(万元)"
prop=
"cgfs"
sortable
width=
"160"
align=
"right"
/>
<el-table-column
label=
"中标总金额(万元)"
prop=
"cgfs"
sortable
width=
"160"
align=
"right"
/>
<el-table-column
label=
"中标总金额(万元)"
prop=
"cgfs"
sortable
width=
"160"
align=
"right"
/>
<el-table-column
label=
"四库业绩"
prop=
"
cgfs
"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"四库业绩"
prop=
"
skyCount
"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"公路业绩"
prop=
"cgfs"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"公路业绩"
prop=
"cgfs"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"水利业绩"
prop=
"cgfs"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"水利业绩"
prop=
"cgfs"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"常合作业主"
prop=
"cgfs"
width=
"280"
align=
"right"
/>
<el-table-column
label=
"常合作业主"
prop=
"cgfs"
width=
"280"
align=
"right"
/>
<el-table-column
label=
"客户(个)"
prop=
"c
gfs
"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"客户(个)"
prop=
"c
ustomerCount
"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"供应商(个)"
prop=
"
cgfs
"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"供应商(个)"
prop=
"
supplierCount
"
sortable
width=
"130"
align=
"right"
/>
<el-table-column
label=
"常合作供应商"
prop=
"cgfs"
width=
"280"
align=
"right"
/>
<el-table-column
label=
"常合作供应商"
prop=
"cgfs"
width=
"280"
align=
"right"
/>
</el-table>
</el-table>
</div>
</div>
<div
class=
"pagination-box"
>
<el-pagination
background
:current-page=
"pageIndex"
:page-size=
"pageSize"
:total=
"tableDataTotal"
layout=
"prev, pager, next, jumper"
@
current-change=
"handleCurrentChange"
@
size-change=
"handleSizeChange"
/>
</div>
</div>
</div>
<!--<LocalEnterprises v-if="activeName === 'first'"></LocalEnterprises>-->
<!--<Offsite v-if="activeName === 'second'"></Offsite>-->
</div>
</div>
</template>
</template>
<
script
>
<
script
>
// import LocalEnterprises from './component/localEnterprises'
// import Offsite from './component/offsite'
import
aptitudeCode
from
'@/assets/json/aptitudeCode'
import
aptitudeCode
from
'@/assets/json/aptitudeCode'
import
{
countGroupByMonth
,
countGroupByProvince
,
getYear
}
from
'@/api/macro/macro'
export
default
{
export
default
{
name
:
'Enterprises'
,
name
:
'Enterprises'
,
// components: {LocalEnterprises,Offsite},
data
()
{
data
()
{
return
{
return
{
activeName
:
'first'
,
activeName
:
'first'
,
...
@@ -72,7 +82,7 @@ export default {
...
@@ -72,7 +82,7 @@ export default {
props
:
{
props
:
{
value
:
'id'
,
value
:
'id'
,
multiple
:
true
,
multiple
:
true
,
checkStrictly
:
true
,
//
checkStrictly:true,
label
:
'name'
,
label
:
'name'
,
children
:
'list'
,
children
:
'list'
,
expandTrigger
:
'hover'
expandTrigger
:
'hover'
...
@@ -90,14 +100,15 @@ export default {
...
@@ -90,14 +100,15 @@ export default {
pageIndex
:
1
,
pageIndex
:
1
,
pageSize
:
10
,
pageSize
:
10
,
tableDataTotal
:
1
,
tableDataTotal
:
1
,
aptitudeCodeList
:[]
aptitudeCodeList
:[]
,
}
}
},
},
created
()
{
created
()
{
this
.
aptitudeCode
()
this
.
aptitudeCode
()
this
.
querySubmit
()
},
},
methods
:
{
methods
:
{
//资质Json
//资质Json
async
aptitudeCode
()
{
async
aptitudeCode
()
{
// await axios.post("https://files.jiansheku.com/file/json/common/aptitudeCode.json", {}, {
// await axios.post("https://files.jiansheku.com/file/json/common/aptitudeCode.json", {}, {
// headers: {
// headers: {
...
@@ -108,9 +119,30 @@ export default {
...
@@ -108,9 +119,30 @@ export default {
// console.log(res.data.data)
// console.log(res.data.data)
// }
// }
// })
// })
console
.
log
(
aptitudeCode
)
this
.
aptitudeCodeList
=
aptitudeCode
this
.
aptitudeCodeList
=
aptitudeCode
},
async
querySubmit
(){
const
params
=
{
pageNum
:
this
.
pageIndex
,
pageSize
:
this
.
pageSize
}
if
(
this
.
queryParams
.
field
){
params
.
field
=
this
.
queryParams
.
field
}
if
(
this
.
queryParams
.
order
){
params
.
order
=
this
.
queryParams
.
order
}
enterprise
(
params
).
then
(
res
=>
{
console
.
log
(
res
.
data
)
})
},
// 重置页数
handleSizeChange
(
val
)
{
this
.
pageIndex
=
1
this
.
pageSize
=
val
this
.
querySubmit
()
},
// 跳转指定页数
handleCurrentChange
(
val
)
{
this
.
pageIndex
=
val
this
.
querySubmit
()
},
},
}
}
}
}
...
...
dsk-operate-ui/src/views/macro/financing/index.vue
View file @
d15e0f0b
...
@@ -13,12 +13,13 @@
...
@@ -13,12 +13,13 @@
border
border
height=
"360"
height=
"360"
fit
fit
@
sort-change=
"sortChange"
highlight-current-row
highlight-current-row
>
>
<el-table-column
prop=
"name"
label=
"项目
关系
"
width=
"150"
/>
<el-table-column
prop=
"name"
label=
"项目
类型
"
width=
"150"
/>
<el-table-column
prop=
"value"
label=
"项目个数"
width=
"140"
/>
<el-table-column
prop=
"value"
label=
"项目个数"
sortable=
"custom"
width=
"140"
/>
<el-table-column
prop=
"t
z"
label=
"投资额(亿元)"
width=
"140"
/>
<el-table-column
prop=
"t
otalInvestment"
label=
"投资额(亿元)"
sortable=
"custom"
width=
"140"
/>
<el-table-column
prop=
"
bl"
label=
"比例"
width=
"140
"
/>
<el-table-column
prop=
"
proportion"
label=
"比例"
width=
"140"
sortable=
"custom
"
/>
</el-table>
</el-table>
</div>
</div>
</div>
</div>
...
@@ -33,6 +34,7 @@
...
@@ -33,6 +34,7 @@
</div>
</div>
<div
class=
"table-item"
>
<div
class=
"table-item"
>
<el-table
<el-table
v-loading=
"tableLoading"
:data=
"listData"
:data=
"listData"
element-loading-text=
"Loading"
element-loading-text=
"Loading"
border
border
...
@@ -42,138 +44,108 @@
...
@@ -42,138 +44,108 @@
<el-table-column
label=
"序号"
width=
"55"
align=
"left"
fixed
>
<el-table-column
label=
"序号"
width=
"55"
align=
"left"
fixed
>
<template
slot-scope=
"scope"
>
{{
pageIndex
*
pageSize
-
pageSize
+
scope
.
$index
+
1
}}
</
template
>
<template
slot-scope=
"scope"
>
{{
pageIndex
*
pageSize
-
pageSize
+
scope
.
$index
+
1
}}
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"
name"
label=
"项目名称"
width=
"290
"
>
<el-table-column
prop=
"
projectName"
label=
"项目名称
"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<router-link
:to=
"'/macro/financing/details/'+ scope.row.id"
tag=
"a"
class=
"a-link"
>
{{
scope
.
row
.
n
ame
}}
</router-link>
<router-link
:to=
"'/macro/financing/details/'+ scope.row.id"
tag=
"a"
class=
"a-link"
>
{{
scope
.
row
.
projectN
ame
}}
</router-link>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"
tz
"
label=
"项目总投资(亿)"
sortable
width=
"155"
/>
<el-table-column
prop=
"
projectTotalInvestment
"
label=
"项目总投资(亿)"
sortable
width=
"155"
/>
<el-table-column
prop=
"
bj
"
label=
"项目资本金(亿)"
sortable
width=
"155"
/>
<el-table-column
prop=
"
projectCapital
"
label=
"项目资本金(亿)"
sortable
width=
"155"
/>
<el-table-column
prop=
"
sy
"
label=
"项目收益倍数(倍)"
width=
"150"
/>
<el-table-column
prop=
"
econData007
"
label=
"项目收益倍数(倍)"
width=
"150"
/>
<el-table-column
prop=
"zxz"
label=
"专项债金额(亿)"
width=
"150"
/>
<el-table-column
prop=
"zxz"
label=
"专项债金额(亿)"
width=
"150"
/>
<el-table-column
prop=
"zxzzj"
label=
"专项债用作资本金(亿)"
width=
"170"
/>
<el-table-column
prop=
"specialCapital"
label=
"专项债用作资本金(亿)"
width=
"170"
/>
<el-table-column
prop=
"xmzt"
label=
"项目主体"
/>
<el-table-column
prop=
"projectEntity"
label=
"项目主体"
>
<!--<template slot-scope="scope">-->
<!--<router-link :to="'/macro/financing/details/'+ scope.row.projectEntityId" tag="a" class="a-link">{{ scope.row.projectEntity}}</router-link>-->
<!--</template>-->
</el-table-column>
</el-table>
</el-table>
</div>
</div>
<div
class=
"pagination-box"
>
<el-pagination
background
:current-page=
"pageIndex"
:page-size=
"pageSize"
:total=
"tableDataTotal"
layout=
"prev, pager, next, jumper"
@
current-change=
"handleCurrentChange"
@
size-change=
"handleSizeChange"
/>
</div>
</div>
</div>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
*
as
echarts
from
'echarts'
;
import
*
as
echarts
from
'echarts'
;
import
{
statistics
,
projectsPage
}
from
'@/api/macro/macro'
export
default
{
export
default
{
name
:
'Financing'
,
name
:
'Financing'
,
data
()
{
data
()
{
return
{
return
{
tableData
:[
queryParams
:{},
{
tableParams
:{},
name
:
'农业农村'
,
tableData
:[],
value
:
'2'
,
listData
:[],
tz
:
'50.01'
,
bl
:
'0.19%'
},
{
name
:
'乡村振兴'
,
value
:
'2'
,
tz
:
'50.01'
,
bl
:
'0.19%'
},
{
name
:
'农林水利'
,
value
:
'2'
,
tz
:
'50.01'
,
bl
:
'0.19%'
},
{
name
:
'交通'
,
value
:
'2'
,
tz
:
'50.01'
,
bl
:
'0.19%'
},
{
name
:
'轨道交通'
,
value
:
'2'
,
tz
:
'50.01'
,
bl
:
'0.19%'
},
{
name
:
'政府收费公路'
,
value
:
'2'
,
tz
:
'50.01'
,
bl
:
'0.19%'
},
{
name
:
'其他交通基础设施'
,
value
:
'2'
,
tz
:
'50.01'
,
bl
:
'0.19%'
},
{
name
:
'铁路'
,
value
:
'2'
,
tz
:
'50.01'
,
bl
:
'0.19%'
},
{
name
:
'养老'
,
value
:
'2'
,
tz
:
'50.01'
,
bl
:
'0.19%'
},
{
name
:
'生态环保'
,
value
:
'2'
,
tz
:
'50.01'
,
bl
:
'0.19%'
},
{
name
:
'职业教育'
,
value
:
'2'
,
tz
:
'50.01'
,
bl
:
'0.19%'
},
{
name
:
'能源'
,
value
:
'2'
,
tz
:
'50.01'
,
bl
:
'0.19%'
},
],
listData
:[
{
id
:
1
,
name
:
'涪陵高新产业园区总和配套项目'
,
tz
:
'535.00'
,
bj
:
'235.00'
,
sy
:
'3'
,
zxz
:
'230'
,
zxzzj
:
'423'
,
xmzt
:
'重庆市涪陵区新城区开发 (集团) 有限公司'
,
},
{
id
:
2
,
name
:
'涪陵高新产业园区总和配套项目'
,
tz
:
'235.00'
,
bj
:
'435.00'
,
sy
:
'6'
,
zxz
:
'530'
,
zxzzj
:
'323'
,
xmzt
:
'重庆市涪陵区新城区开发 (集团) 有限公司'
,
}
],
tableLoading
:
false
,
tableLoading
:
false
,
pageIndex
:
1
,
pageIndex
:
1
,
pageSize
:
10
,
pageSize
:
10
,
tableDataTotal
:
12
0
tableDataTotal
:
0
}
}
},
},
created
()
{
created
()
{
this
.
getStatistics
()
this
.
getData
()
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
initChart
()
})
})
},
},
methods
:
{
methods
:
{
initChart
()
{
getData
(){
this
.
tableLoading
=
true
let
params
=
{
pageNum
:
this
.
pageIndex
,
pageSize
:
this
.
pageSize
}
if
(
this
.
tableParams
.
field
){
params
.
field
=
this
.
tableParams
.
field
}
if
(
this
.
tableParams
.
order
){
params
.
order
=
this
.
tableParams
.
order
}
projectsPage
(
params
).
then
(
res
=>
{
this
.
tableLoading
=
false
this
.
listData
=
res
.
data
.
list
;
this
.
tableDataTotal
=
res
.
data
.
totalCount
})
// 延迟关闭加载效果
// setTimeout(() => {
// this.tableLoading = false
// }, 200)
},
getStatistics
(){
let
params
=
{};
if
(
this
.
queryParams
.
field
){
params
.
field
=
this
.
queryParams
.
field
}
if
(
this
.
queryParams
.
order
){
params
.
order
=
this
.
queryParams
.
order
}
statistics
(
params
).
then
(
res
=>
{
var
list
=
[];
for
(
var
i
=
0
;
i
<
res
.
data
.
length
;
i
++
){
var
obj
=
{};
obj
.
name
=
res
.
data
[
i
].
projectType
;
obj
.
value
=
res
.
data
[
i
].
count
;
obj
.
totalInvestment
=
res
.
data
[
i
].
totalInvestment
;
obj
.
proportion
=
res
.
data
[
i
].
proportion
;
list
.
push
(
obj
)
}
this
.
tableData
=
list
;
let
arr
=
this
.
tableData
.
sort
((
old
,
New
)
=>
{
return
New
.
value
-
old
.
value
})
let
data
=
[]
for
(
let
i
=
0
;
i
<
10
;
i
++
){
data
.
push
(
arr
[
i
])
}
console
.
log
(
arr
)
console
.
log
(
data
)
this
.
initChart
(
data
)
})
},
initChart
(
data
)
{
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"echarts"
))
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"echarts"
))
let
option
=
{
let
option
=
{
...
@@ -185,8 +157,8 @@ export default {
...
@@ -185,8 +157,8 @@ export default {
var
result
=
''
var
result
=
''
result
+=
'<h3 style="color: #232226;padding: 0 0 5px 0;margin: 0;">'
+
params
.
data
.
name
+
'</h3>'
result
+=
'<h3 style="color: #232226;padding: 0 0 5px 0;margin: 0;">'
+
params
.
data
.
name
+
'</h3>'
result
+=
'<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'
+
params
.
data
.
value
+
'个</p>'
result
+=
'<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'
+
params
.
data
.
value
+
'个</p>'
result
+=
'<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'
+
params
.
data
.
t
z
+
'亿元</p>'
result
+=
'<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'
+
params
.
data
.
t
otalInvestment
+
'亿元</p>'
result
+=
'<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'
+
params
.
data
.
bl
+
'%</p>'
result
+=
'<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'
+
params
.
data
.
proportion
+
'%</p>'
return
result
;
return
result
;
},
},
extraCssText
:
'width:150px!important;'
,
extraCssText
:
'width:150px!important;'
,
...
@@ -194,8 +166,8 @@ export default {
...
@@ -194,8 +166,8 @@ export default {
legend
:
{
legend
:
{
type
:
'scroll'
,
type
:
'scroll'
,
orient
:
'horizontal'
,
orient
:
'horizontal'
,
bottom
:
2
0
,
bottom
:
0
,
data
:
this
.
tableD
ata
,
data
:
d
ata
,
pageButtonPosition
:
'end'
,
pageButtonPosition
:
'end'
,
},
},
series
:
[
series
:
[
...
@@ -203,7 +175,7 @@ export default {
...
@@ -203,7 +175,7 @@ export default {
type
:
'pie'
,
type
:
'pie'
,
radius
:
'55%'
,
radius
:
'55%'
,
center
:
[
'50%'
,
'40%'
],
center
:
[
'50%'
,
'40%'
],
data
:
this
.
tableD
ata
,
data
:
d
ata
,
emphasis
:
{
emphasis
:
{
itemStyle
:
{
itemStyle
:
{
shadowBlur
:
10
,
shadowBlur
:
10
,
...
@@ -215,7 +187,52 @@ export default {
...
@@ -215,7 +187,52 @@ export default {
]
]
}
}
myChart
.
setOption
(
option
);
myChart
.
setOption
(
option
);
}
},
sortChange
({
column
,
prop
,
order
}){
if
(
prop
===
'value'
){
this
.
queryParams
.
field
=
'count'
}
else
{
this
.
queryParams
.
field
=
prop
}
if
(
column
.
order
===
"ascending"
){
this
.
queryParams
.
order
=
'asc'
}
else
if
(
column
.
order
===
"descending"
){
this
.
queryParams
.
order
=
'desc'
}
else
{
this
.
queryParams
.
order
=
''
this
.
queryParams
.
field
=
''
}
let
params
=
{
field
:
this
.
queryParams
.
field
,
order
:
this
.
queryParams
.
order
};
statistics
(
params
).
then
(
res
=>
{
var
list
=
[];
for
(
var
i
=
0
;
i
<
res
.
data
.
length
;
i
++
){
var
obj
=
{};
obj
.
name
=
res
.
data
[
i
].
projectType
;
obj
.
value
=
res
.
data
[
i
].
count
;
obj
.
totalInvestment
=
res
.
data
[
i
].
totalInvestment
;
obj
.
proportion
=
res
.
data
[
i
].
proportion
;
list
.
push
(
obj
)
}
this
.
tableData
=
list
;
})
},
// 重置页数
handleSizeChange
(
val
)
{
this
.
pageIndex
=
1
this
.
pageSize
=
val
this
.
getData
()
},
// 跳转指定页数
handleCurrentChange
(
val
)
{
this
.
pageIndex
=
val
this
.
getData
()
},
}
}
}
}
</
script
>
</
script
>
...
...
dsk-operate-ui/src/views/macro/nationalEconomies/component/qgjjdq.vue
View file @
d15e0f0b
...
@@ -201,7 +201,7 @@
...
@@ -201,7 +201,7 @@
},
},
// 查询提交
// 查询提交
async
querySubmit
()
{
async
querySubmit
()
{
//
this.tableLoading = true
this
.
tableLoading
=
true
const
params
=
{
pageNum
:
this
.
pageIndex
,
pageSize
:
this
.
pageSize
,
year
:
this
.
queryParams
.
year
,
type
:
1
}
const
params
=
{
pageNum
:
this
.
pageIndex
,
pageSize
:
this
.
pageSize
,
year
:
this
.
queryParams
.
year
,
type
:
1
}
if
(
this
.
queryParams
.
address
){
if
(
this
.
queryParams
.
address
){
let
arr
=
this
.
$refs
.
address
.
getCheckedNodes
();
let
arr
=
this
.
$refs
.
address
.
getCheckedNodes
();
...
@@ -235,13 +235,14 @@
...
@@ -235,13 +235,14 @@
}
}
nationalPage
(
params
).
then
(
res
=>
{
nationalPage
(
params
).
then
(
res
=>
{
this
.
tableData
=
res
.
data
.
list
this
.
tableLoading
=
false
this
.
tableData
=
res
.
data
.
list
;
this
.
tableDataTotal
=
res
.
data
.
totalCount
this
.
tableDataTotal
=
res
.
data
.
totalCount
})
})
// 延迟关闭加载效果
// 延迟关闭加载效果
setTimeout
(()
=>
{
//
setTimeout(() => {
this
.
tableLoading
=
false
//
this.tableLoading = false
},
200
)
//
}, 200)
},
},
// 明细
// 明细
handleDetail
(
row
)
{
handleDetail
(
row
)
{
...
...
dsk-operate-ui/src/views/macro/nationalEconomies/component/zhongbiao.vue
View file @
d15e0f0b
...
@@ -139,69 +139,6 @@ export default {
...
@@ -139,69 +139,6 @@ export default {
name
:
'NationalEconomies'
,
name
:
'NationalEconomies'
,
data
()
{
data
()
{
return
{
return
{
tableData
:[
{
area
:
'1月'
,
number
:
'123'
,
zb
:
'0.19%'
},
{
area
:
'2月'
,
number
:
'156'
,
zb
:
'0.29%'
},
{
area
:
'3月'
,
number
:
'236'
,
zb
:
'0.34%'
},
{
area
:
'4月'
,
number
:
'426'
,
zb
:
'0.34%'
},
{
area
:
'5月'
,
number
:
'412'
,
zb
:
'0.34%'
},
{
area
:
'6月'
,
number
:
'231'
,
zb
:
'0.34%'
},
{
area
:
'7月'
,
number
:
'96'
,
zb
:
'0.34%'
},
{
area
:
'8月'
,
number
:
'105'
,
zb
:
'0.34%'
},
{
area
:
'9月'
,
number
:
'210'
,
zb
:
'0.34%'
},
{
area
:
'10月'
,
number
:
'420'
,
zb
:
'0.34%'
},
{
area
:
'11月'
,
number
:
'213'
,
zb
:
'0.34%'
},
{
area
:
'12月'
,
number
:
'213'
,
zb
:
'0.34%'
},
],
typeIndex
:
0
,
typeIndex
:
0
,
glData
:[],
glData
:[],
jzglData
:[],
jzglData
:[],
...
...
dsk-operate-ui/src/views/project/projectList/component/gjjl.vue
View file @
d15e0f0b
<
template
>
<
template
>
<div>
<div>
<el-card
class=
"box-card noborder"
>
<el-card
class=
"box-card noborder"
>
<div
class=
"cardtitles"
>
跟进记录
</div>
<div
class=
"cardtitles"
v-if=
"showtype != 'projectgjdt'"
>
跟进记录
</div>
<div
style=
"height: 24px"
v-if=
"showtype == 'projectgjdt'"
></div>
<div
class=
"records"
>
<div
class=
"records"
>
<div
class=
"writeIn"
>
<div
class=
"writeIn"
>
<div
class=
"default"
v-if=
"isEdit == false"
@
click=
"getEdit"
>
<div
class=
"default"
v-if=
"isEdit == false"
@
click=
"getEdit"
>
...
@@ -24,6 +25,10 @@
...
@@ -24,6 +25,10 @@
<el-option
v-for=
"(item,index) in glqylist"
:key=
"index"
:label=
"item.companyName"
:value=
"item.customerId"
></el-option>
<el-option
v-for=
"(item,index) in glqylist"
:key=
"index"
:label=
"item.companyName"
:value=
"item.customerId"
></el-option>
</el-select>
</el-select>
</
template
>
</
template
>
<el-select
v-if=
"showtype == 'projectgjdt'"
v-model=
"projectId"
class=
"w128"
placeholder=
"关联项目"
>
<i
slot=
"prefix"
class=
"el-input__icon"
><img
src=
"@/assets/images/project/ico_1.png"
></i>
<el-option
v-for=
"(item,index) in projectList"
:key=
"index"
:label=
"item.projectName"
:value=
"item.id"
></el-option>
</el-select>
<el-input
v-model=
"addParam.name"
placeholder=
"拜访对象"
style=
"width: 100px;"
>
<el-input
v-model=
"addParam.name"
placeholder=
"拜访对象"
style=
"width: 100px;"
>
<i
slot=
"prefix"
class=
"el-input__icon"
><img
src=
"@/assets/images/project/ico_2.png"
></i>
<i
slot=
"prefix"
class=
"el-input__icon"
><img
src=
"@/assets/images/project/ico_2.png"
></i>
</el-input>
</el-input>
...
@@ -65,7 +70,7 @@
...
@@ -65,7 +70,7 @@
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"recordlist"
v-if=
"showtype=='gjjl' && recordlist.total>0"
>
<div
class=
"recordlist"
v-if=
"showtype=='gjjl'
|| showtype == 'projectgjdt'
&& recordlist.total>0"
>
<div
class=
"rec_detail"
v-for=
"(item,index) in recordlist.rows"
>
<div
class=
"rec_detail"
v-for=
"(item,index) in recordlist.rows"
>
<div
class=
"rec_time"
>
<div
class=
"rec_time"
>
...
@@ -116,7 +121,7 @@
...
@@ -116,7 +121,7 @@
<
script
>
<
script
>
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
{
getGJJL
,
addGJJL
,
delGJJL
}
from
'@/api/project/project'
import
{
getGJJL
,
addGJJL
,
delGJJL
,
relateProject
,
allRecord
}
from
'@/api/project/project'
import
{
getEnterprise
,
getDictType
,}
from
'@/api/main'
import
{
getEnterprise
,
getDictType
,}
from
'@/api/main'
export
default
{
export
default
{
props
:{
props
:{
...
@@ -128,6 +133,10 @@
...
@@ -128,6 +133,10 @@
type
:
String
,
type
:
String
,
default
:
""
default
:
""
},
},
detailId
:
{
//从企业详情跳转过来ID
type
:
Number
,
default
:
0
},
datas
:[],
//数据源
datas
:[],
//数据源
},
},
name
:
'gjjl'
,
name
:
'gjjl'
,
...
@@ -152,7 +161,9 @@
...
@@ -152,7 +161,9 @@
recordlist
:[],
//列表数据源
recordlist
:[],
//列表数据源
isdel
:
false
,
isdel
:
false
,
delID
:
''
,
//删除记录的ID
delID
:
''
,
//删除记录的ID
projectId
:
parseInt
(
this
.
$route
.
query
.
id
),
//项目详情id
projectId
:
this
.
detailId
?
this
.
detailId
:
parseInt
(
this
.
$route
.
query
.
id
),
//项目详情id
userId
:
this
.
$store
.
state
.
user
.
userId
,
//当前用户id
projectList
:[],
//关联项目
}
}
},
},
computed
:
{
computed
:
{
...
@@ -174,11 +185,25 @@
...
@@ -174,11 +185,25 @@
if
(
this
.
showtype
==
'gjjl'
){
if
(
this
.
showtype
==
'gjjl'
){
this
.
getGJJL
()
this
.
getGJJL
()
}
}
//项目管理跟进动态
if
(
this
.
showtype
==
'projectgjdt'
){
this
.
projectId
=
null
//项目id暂时清空,必须手选id
relateProject
(
this
.
userId
).
then
(
res
=>
{
this
.
projectList
=
res
.
data
})
this
.
getGJDT
()
}
console
.
log
(
this
.
types
)
console
.
log
(
this
.
types
)
},
},
methods
:{
methods
:{
//添加跟进动态
//添加跟进动态
addFollow
(){
addFollow
(){
if
(
this
.
types
==
'projectgjdt'
){
if
(
this
.
projectId
==
""
||
this
.
projectId
==
null
){
this
.
$message
.
error
(
'请选择关联项目!'
)
return
false
}
}
if
(
this
.
types
==
'gjdt'
){
if
(
this
.
types
==
'gjdt'
){
if
(
this
.
customerIds
){
if
(
this
.
customerIds
){
this
.
addParam
.
customerId
=
this
.
customerIds
this
.
addParam
.
customerId
=
this
.
customerIds
...
@@ -193,7 +218,7 @@
...
@@ -193,7 +218,7 @@
}
}
})
})
}
}
if
(
this
.
types
==
'gjjl'
){
if
(
this
.
types
==
'gjjl'
||
this
.
types
==
'projectgjdt'
){
let
param
=
{
let
param
=
{
businessId
:
this
.
projectId
,
businessId
:
this
.
projectId
,
userId
:
this
.
$store
.
state
.
user
.
userId
,
userId
:
this
.
$store
.
state
.
user
.
userId
,
...
@@ -229,7 +254,7 @@
...
@@ -229,7 +254,7 @@
}
}
})
})
}
}
if
(
this
.
types
==
'gjjl'
)
{
if
(
this
.
types
==
'gjjl'
||
this
.
types
==
'projectgjdt'
)
{
delGJJL
(
this
.
delID
).
then
(
result
=>
{
delGJJL
(
this
.
delID
).
then
(
result
=>
{
if
(
result
.
code
==
200
)
{
if
(
result
.
code
==
200
)
{
this
.
handleCurrentChange
(
1
)
this
.
handleCurrentChange
(
1
)
...
@@ -240,6 +265,7 @@
...
@@ -240,6 +265,7 @@
}
}
},
},
//跟进动态列表
//跟进动态列表
//客户管理跟进动态
getGJDTlist
(){
getGJDTlist
(){
let
param
=
{
let
param
=
{
pageNum
:
this
.
pageNum
,
//页码
pageNum
:
this
.
pageNum
,
//页码
...
@@ -256,6 +282,22 @@
...
@@ -256,6 +282,22 @@
})
})
})
})
},
},
//项目管理跟进动态
getGJDT
(){
let
param
=
{
pageNum
:
this
.
pageNum
,
//页码
pageSize
:
this
.
pageSize
,
userId
:
this
.
userId
}
allRecord
(
param
).
then
(
result
=>
{
this
.
recordlist
=
result
.
code
==
200
?
result
:[]
// this.recordlist.rows.forEach(item=>{
// item.createTime = this.gettime(item.createTime)
// item.nextVisitTime = this.gettime(item.nextVisitTime)
// })
})
},
//项目管理项目详情跟进记录
getGJJL
(){
getGJJL
(){
let
param
=
{
let
param
=
{
pageNum
:
this
.
pageNum
,
//页码
pageNum
:
this
.
pageNum
,
//页码
...
@@ -274,12 +316,15 @@
...
@@ -274,12 +316,15 @@
if
(
this
.
showtype
==
'gjjl'
){
if
(
this
.
showtype
==
'gjjl'
){
this
.
getGJJL
()
this
.
getGJJL
()
}
}
if
(
this
.
showtype
==
'projectgjdt'
){
this
.
getGJDT
()
}
},
},
getEdit
(){
getEdit
(){
this
.
isEdit
=
true
;
this
.
isEdit
=
true
;
this
.
value
=
""
this
.
value
=
""
this
.
addParam
=
{
this
.
addParam
=
{
customerId
:
''
,
//客户id
customerId
:
''
,
//客户id
visitMode
:
''
,
//拜访方式
visitMode
:
''
,
//拜访方式
nextVisitTime
:
''
,
//下次拜访时间
nextVisitTime
:
''
,
//下次拜访时间
name
:
''
,
//拜访对象姓名
name
:
''
,
//拜访对象姓名
...
...
dsk-operate-ui/src/views/project/projectList/component/gzdb.vue
View file @
d15e0f0b
...
@@ -70,19 +70,25 @@
...
@@ -70,19 +70,25 @@
export
default
{
export
default
{
name
:
'gjjl'
,
name
:
'gjjl'
,
props
:
{
detailId
:
{
//从企业详情跳转过来ID
type
:
Number
,
default
:
0
}
},
data
(){
data
(){
return
{
return
{
isEdit
:
false
,
isEdit
:
false
,
value
:
''
,
value
:
''
,
status
:
0
,
status
:
0
,
queryParam
:{
queryParam
:{
businessId
:
parseInt
(
this
.
$route
.
query
.
id
),
//项目详情id
businessId
:
this
.
detailId
?
this
.
detailId
:
parseInt
(
this
.
$route
.
query
.
id
),
//项目详情id
target
:
''
,
target
:
''
,
task
:
''
,
task
:
''
,
finishTime
:
''
,
finishTime
:
''
,
},
},
searchPram
:{
searchPram
:{
businessId
:
parseInt
(
this
.
$route
.
query
.
id
),
businessId
:
this
.
detailId
?
this
.
detailId
:
parseInt
(
this
.
$route
.
query
.
id
),
pageSize
:
10
,
pageSize
:
10
,
pageNum
:
1
,
pageNum
:
1
,
state
:
null
,
state
:
null
,
...
...
dsk-operate-ui/src/views/project/projectList/component/jsnr.vue
View file @
d15e0f0b
...
@@ -203,10 +203,16 @@
...
@@ -203,10 +203,16 @@
import
{
getJSNR
,
editXMNR
}
from
'@/api/project/project'
import
{
getJSNR
,
editXMNR
}
from
'@/api/project/project'
export
default
{
export
default
{
name
:
'jsnr'
,
name
:
'jsnr'
,
props
:
{
detailId
:
{
//从企业详情跳转过来ID
type
:
Number
,
default
:
0
}
},
data
(){
data
(){
return
{
return
{
nowedit
:
-
1
,
//当前正在编辑的文本
nowedit
:
-
1
,
//当前正在编辑的文本
id
:
parseInt
(
this
.
$route
.
query
.
id
),
id
:
this
.
detailId
?
this
.
detailId
:
parseInt
(
this
.
$route
.
query
.
id
),
investmentAmount
:
''
,
//总投资额
investmentAmount
:
''
,
//总投资额
amountSource
:
''
,
//资金来源
amountSource
:
''
,
//资金来源
buildProperty
:
''
,
//建设性质
buildProperty
:
''
,
//建设性质
...
...
dsk-operate-ui/src/views/project/projectList/component/lxr.vue
View file @
d15e0f0b
...
@@ -113,6 +113,12 @@
...
@@ -113,6 +113,12 @@
import
{
getLXR
,
editLXR
,
addLXR
}
from
'@/api/project/project'
import
{
getLXR
,
editLXR
,
addLXR
}
from
'@/api/project/project'
export
default
{
export
default
{
name
:
'lxr'
,
name
:
'lxr'
,
props
:
{
detailId
:
{
//从企业详情跳转过来ID
type
:
Number
,
default
:
0
}
},
data
(){
data
(){
return
{
return
{
dialogVisible
:
false
,
dialogVisible
:
false
,
...
@@ -125,9 +131,9 @@
...
@@ -125,9 +131,9 @@
searchParam
:{
searchParam
:{
pageNum
:
1
,
pageNum
:
1
,
pageSize
:
20
,
pageSize
:
20
,
businessId
:
this
.
$route
.
query
.
id
businessId
:
this
.
detailId
?
this
.
detailId
:
this
.
$route
.
query
.
id
},
},
id
:
this
.
$route
.
query
.
id
,
id
:
this
.
detailId
?
this
.
detailId
:
this
.
$route
.
query
.
id
,
total
:
0
,
total
:
0
,
projectname
:
this
.
$route
.
query
.
projectname
,
projectname
:
this
.
$route
.
query
.
projectname
,
queryParam
:[],
queryParam
:[],
...
...
dsk-operate-ui/src/views/project/projectList/component/xgqy.vue
View file @
d15e0f0b
...
@@ -139,6 +139,12 @@
...
@@ -139,6 +139,12 @@
import
{
getDictType
}
from
'@/api/main'
import
{
getDictType
}
from
'@/api/main'
export
default
{
export
default
{
name
:
'xgqy'
,
name
:
'xgqy'
,
props
:
{
detailId
:
{
//从企业详情跳转过来ID
type
:
Number
,
default
:
0
}
},
data
(){
data
(){
return
{
return
{
types
:
1
,
types
:
1
,
...
@@ -175,7 +181,7 @@
...
@@ -175,7 +181,7 @@
companytype
:[],
companytype
:[],
companyrole
:[],
companyrole
:[],
queryParam
:{
queryParam
:{
businessId
:
this
.
$route
.
query
.
id
,
businessId
:
this
.
detailId
?
this
.
detailId
:
this
.
$route
.
query
.
id
,
companyId
:
''
,
companyId
:
''
,
companyName
:
''
,
companyName
:
''
,
companyRole
:
''
,
companyRole
:
''
,
...
@@ -186,7 +192,7 @@
...
@@ -186,7 +192,7 @@
searchParam
:{
searchParam
:{
pageSize
:
20
,
pageSize
:
20
,
pageNum
:
1
,
pageNum
:
1
,
businessId
:
this
.
$route
.
query
.
id
,
businessId
:
this
.
detailId
?
this
.
detailId
:
this
.
$route
.
query
.
id
,
companyType
:
""
,
companyType
:
""
,
companyName
:
''
,
companyName
:
''
,
},
},
...
@@ -212,7 +218,7 @@
...
@@ -212,7 +218,7 @@
if
(
res
.
code
==
200
){
if
(
res
.
code
==
200
){
this
.
$message
.
success
(
'删除成功'
)
this
.
$message
.
success
(
'删除成功'
)
this
.
ondel
=
-
1
this
.
ondel
=
-
1
this
.
getlist
(
)
this
.
handleCurrentChange
(
1
)
}
}
})
})
},
},
...
@@ -259,7 +265,7 @@
...
@@ -259,7 +265,7 @@
opennew
(){
opennew
(){
this
.
dialogVisible
=
true
this
.
dialogVisible
=
true
this
.
queryParam
=
{
this
.
queryParam
=
{
businessId
:
this
.
$route
.
query
.
id
,
businessId
:
this
.
detailId
?
this
.
detailId
:
this
.
$route
.
query
.
id
,
companyId
:
''
,
companyId
:
''
,
companyName
:
''
,
companyName
:
''
,
companyRole
:
''
,
companyRole
:
''
,
...
...
dsk-operate-ui/src/views/project/projectList/component/xmsl.vue
View file @
d15e0f0b
...
@@ -175,6 +175,10 @@
...
@@ -175,6 +175,10 @@
name
:
'xmsl'
,
name
:
'xmsl'
,
props
:{
props
:{
datas
:
''
,
datas
:
''
,
detailId
:
{
//从企业详情跳转过来ID
type
:
Number
,
default
:
0
}
},
},
data
(){
data
(){
return
{
return
{
...
@@ -183,7 +187,7 @@
...
@@ -183,7 +187,7 @@
tipsvalue
:
""
,
//标签填写内容
tipsvalue
:
""
,
//标签填写内容
xmjd
:
'待添加'
,
xmjd
:
'待添加'
,
projectStage
:[],
//项目阶段
projectStage
:[],
//项目阶段
id
:
this
.
$route
.
query
.
id
,
id
:
this
.
detailId
?
this
.
detailId
:
this
.
$route
.
query
.
id
,
xmsldata
:
this
.
datas
,
xmsldata
:
this
.
datas
,
}
}
},
},
...
...
dsk-operate-ui/src/views/project/projectList/component/zlwd.vue
View file @
d15e0f0b
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
<div
class=
"cardtitles"
>
资料文档
</div>
<div
class=
"cardtitles"
>
资料文档
</div>
<div
class=
"searchbtns"
>
<div
class=
"searchbtns"
>
<div
class=
"searchInput"
>
<div
class=
"searchInput"
>
<el-input
type=
"text"
placeholder=
"输入关键词查询"
></el-input>
<el-input
type=
"text"
v-model=
"param.keyword"
placeholder=
"输入关键词查询"
></el-input>
<div
class=
"btn"
@
click=
"handleCurrentChange(1)"
>
搜索
</div>
<div
class=
"btn"
@
click=
"handleCurrentChange(1)"
>
搜索
</div>
</div>
</div>
<div
class=
"btn btn_primary h32 b2"
@
click=
"getUP"
><div
class=
"img img2"
></div>
上传
</div>
<div
class=
"btn btn_primary h32 b2"
@
click=
"getUP"
><div
class=
"img img2"
></div>
上传
</div>
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
:multiple=
"false"
:multiple=
"false"
ref=
"upload"
ref=
"upload"
:file-list=
"fileList"
:file-list=
"fileList"
accept=
".word,.pdf.excel,.xlsx"
accept=
".word,.pdf.excel,.xlsx
,.doc,.docx
"
:headers=
"headers"
:headers=
"headers"
:show-file-list=
"false"
:show-file-list=
"false"
:on-success=
"onSuccess"
>
:on-success=
"onSuccess"
>
...
@@ -105,6 +105,13 @@
...
@@ -105,6 +105,13 @@
</el-pagination>
</el-pagination>
</div>
</div>
</div>
</div>
<div
class=
"delform"
v-if=
"ondel != ''"
>
<div
class=
"words"
>
是否将文档删除
</div>
<div>
<div
class=
"btnsmall btn_primary h28"
@
click=
"delQY()"
>
确定
</div>
<div
class=
"btnsmall btn_cancel h28"
@
click=
"ondel = ''"
>
取消
</div>
</div>
</div>
</div>
</div>
</el-card>
</el-card>
</div>
</div>
...
@@ -116,6 +123,12 @@
...
@@ -116,6 +123,12 @@
import
{
getZLWD
,
delZLWD
}
from
"@/api/project/project"
;
import
{
getZLWD
,
delZLWD
}
from
"@/api/project/project"
;
export
default
{
export
default
{
name
:
'zlwd'
,
name
:
'zlwd'
,
props
:
{
detailId
:
{
//从企业详情跳转过来ID
type
:
Number
,
default
:
0
}
},
data
(){
data
(){
return
{
return
{
isupload
:
false
,
isupload
:
false
,
...
@@ -125,15 +138,17 @@
...
@@ -125,15 +138,17 @@
fileList
:
[],
fileList
:
[],
headers
:
{
headers
:
{
Authorization
:
"Bearer "
+
getToken
(),
Authorization
:
"Bearer "
+
getToken
(),
filePath
:
this
.
$route
.
query
.
id
,
filePath
:
this
.
detailId
?
this
.
detailId
:
this
.
$route
.
query
.
id
,
},
},
param
:{
param
:{
pageNum
:
1
,
pageNum
:
1
,
pagesize
:
20
,
pagesize
:
20
,
filePath
:
this
.
$route
.
query
.
id
,
filePath
:
this
.
detailId
?
this
.
detailId
:
this
.
$route
.
query
.
id
,
keyword
:
''
,
},
},
fileDatas
:[],
fileDatas
:[],
filename
:
''
,
filename
:
''
,
ondel
:
""
,
}
}
},
},
created
(){
created
(){
...
@@ -142,20 +157,24 @@
...
@@ -142,20 +157,24 @@
},
},
methods
:{
methods
:{
getall
(){
getall
(){
this
.
param
.
filePath
=
this
.
$route
.
query
.
id
this
.
param
.
filePath
=
this
.
detailId
?
this
.
detailId
:
this
.
$route
.
query
.
id
this
.
filename
=
''
this
.
filename
=
''
this
.
headers
.
filePath
=
this
.
$route
.
query
.
id
this
.
headers
.
filePath
=
this
.
detailId
?
this
.
detailId
:
this
.
$route
.
query
.
id
this
.
handleCurrentChange
(
1
)
this
.
handleCurrentChange
(
1
)
},
},
getList
(){
getList
(){
getZLWD
(
this
.
param
).
then
(
res
=>
{
getZLWD
(
this
.
param
).
then
(
res
=>
{
this
.
fileDatas
=
res
this
.
fileDatas
=
res
if
(
this
.
fileDatas
.
rows
!=
null
&&
this
.
fileDatas
.
length
>
0
){
if
(
this
.
fileDatas
.
rows
!=
null
&&
this
.
fileDatas
.
rows
.
length
>
0
){
this
.
fileDatas
.
forEach
(
item
=>
{
this
.
fileDatas
.
rows
.
forEach
(
item
=>
{
let
names
=
item
.
filePath
.
split
(
'
\
\
'
)
let
names
=
item
.
filePath
.
split
(
'
/
'
)
item
.
name
=
names
[
names
.
length
-
1
]
item
.
name
=
names
[
names
.
length
-
1
]
let
types
=
item
.
name
.
split
(
'.'
)
let
types
=
item
.
name
.
split
(
'.'
)
item
.
type
=
types
.
length
>
1
?
types
[
1
]:
'file'
item
.
type
=
types
.
length
>
1
?
types
[
1
]:
'file'
if
(
item
.
type
==
'xls'
||
item
.
type
==
'xlsx'
)
item
.
type
=
'excel'
if
(
item
.
type
==
'doc'
||
item
.
type
==
'docx'
)
item
.
type
=
'word'
})
})
}
}
})
})
...
@@ -163,7 +182,7 @@
...
@@ -163,7 +182,7 @@
getFile
(
row
){
getFile
(
row
){
if
(
row
.
type
==
'file'
){
if
(
row
.
type
==
'file'
){
this
.
filename
=
row
.
name
this
.
filename
=
row
.
name
this.headers.filePath = this.
$route.query.id+'
\\
'+row.name
this
.
headers
.
filePath
=
this
.
detailId
?
this
.
detailId
:
this
.
$route
.
query
.
id
+
'/
'
+
row
.
name
this
.
param
.
filePath
=
row
.
filePath
this
.
param
.
filePath
=
row
.
filePath
this
.
handleCurrentChange
(
1
)
this
.
handleCurrentChange
(
1
)
...
@@ -178,20 +197,33 @@
...
@@ -178,20 +197,33 @@
})
})
},
},
downnlod
(
row
){
downnlod
(
row
){
let a = document.createElement("a");
let
param
=
{
filePath
:
row
.
filePath
}
a.setAttribute("href", row.filePath);
// this.$download.saveAs(row.filePath,row.name);
a.setAttribute("download", row.name);
this
.
$download
.
exportByPost
(
'/business/file/download'
,
param
);
document.body.appendChild(a);
// // this.$download()
a.click();
// let a = document.createElement("a");
// a.setAttribute("href", row.filePath);
// a.setAttribute("download", row.name);
// document.body.appendChild(a);
// a.click();
},
},
del(path){
delZLWD(path).then(res=>{
delQY
(){
let
param
=
{
filePath
:
this
.
ondel
}
delZLWD
(
JSON
.
stringify
(
param
)).
then
(
res
=>
{
if
(
res
.
code
==
200
){
if
(
res
.
code
==
200
){
this
.
$message
.
success
(
'删除成功!'
)
this
.
$message
.
success
(
'删除成功!'
)
this
.
handleCurrentChange
(
1
)
this
.
handleCurrentChange
(
1
)
this
.
ondel
=
''
}
}
})
})
},
},
del
(
path
){
this
.
ondel
=
path
},
handleFileListChange
(
file
,
fileList
)
{
handleFileListChange
(
file
,
fileList
)
{
if
(
fileList
.
length
>
0
)
{
if
(
fileList
.
length
>
0
)
{
this
.
fileList
=
[
fileList
[
fileList
.
length
-
1
]];
this
.
fileList
=
[
fileList
[
fileList
.
length
-
1
]];
...
@@ -225,7 +257,7 @@
...
@@ -225,7 +257,7 @@
//翻页
//翻页
handleCurrentChange
(
val
)
{
handleCurrentChange
(
val
)
{
this.param.pageNum
(1)
this
.
param
.
pageNum
=
val
this
.
getList
()
this
.
getList
()
},
},
cancel
(){
cancel
(){
...
@@ -240,6 +272,10 @@
...
@@ -240,6 +272,10 @@
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.delform
{
position
:
fixed
;
left
:
50%
;
top
:
50%
;
transform
:translate
(
-50
%
,
-50
%
)
}
.filepath
{
.filepath
{
font-size
:
12px
;
font-size
:
12px
;
height
:
30px
;
height
:
30px
;
...
...
dsk-operate-ui/src/views/project/projectList/detail.vue
View file @
d15e0f0b
<
template
>
<
template
>
<div>
<div>
<div
class=
"miantitle"
>
<div
class=
"miantitle"
>
<span>
项目管理
</span>
<template
v-if=
"!detailId"
>
<span>
/ 商机列表
</span>
<span>
项目管理
</span>
<span>
/ 商机列表
</span>
</
template
>
<span
v-else
@
click=
"cooperateList"
>
合作情况
</span>
<span>
/ 项目详情
</span>
<span>
/ 项目详情
</span>
</div>
</div>
<div
class=
"app-container"
v-if=
"ProjectData"
>
<div
class=
"app-container"
v-if=
"ProjectData"
>
...
@@ -105,19 +108,19 @@
...
@@ -105,19 +108,19 @@
</div>
</div>
</el-card>
</el-card>
<!--项目概览-->
<!--项目概览-->
<xmsl
v-if=
"thistag == 'xmsl'"
:datas=
"ProjectData"
></xmsl>
<xmsl
v-if=
"thistag == 'xmsl'"
:datas=
"ProjectData"
:detailId=
"detailId"
></xmsl>
<!--建设内容-->
<!--建设内容-->
<jsnr
v-if=
"thistag == 'jsnr'"
></jsnr>
<jsnr
v-if=
"thistag == 'jsnr'"
:detailId=
"detailId"
></jsnr>
<!--联系人-->
<!--联系人-->
<lxr
v-if=
"thistag == 'lxr'"
></lxr>
<lxr
v-if=
"thistag == 'lxr'"
:detailId=
"detailId"
></lxr>
<!--跟进记录-->
<!--跟进记录-->
<gjjl
v-if=
"thistag == 'gjjl'"
types=
"gjjl"
></gjjl>
<gjjl
v-if=
"thistag == 'gjjl'"
types=
"gjjl"
:detailId=
"detailId"
></gjjl>
<!--工作待办-->
<!--工作待办-->
<gzdb
v-if=
"thistag == 'gzdb'"
></gzdb>
<gzdb
v-if=
"thistag == 'gzdb'"
:detailId=
"detailId"
></gzdb>
<!--资料文档-->
<!--资料文档-->
<zlwd
v-if=
"thistag == 'zlwd'"
></zlwd>
<zlwd
v-if=
"thistag == 'zlwd'"
:detailId=
"detailId"
></zlwd>
<!--相关企业-->
<!--相关企业-->
<xgqy
v-if=
"thistag == 'xgqy'"
></xgqy>
<xgqy
v-if=
"thistag == 'xgqy'"
:detailId=
"detailId"
></xgqy>
</div>
</div>
</div>
</div>
</template>
</template>
...
@@ -138,6 +141,12 @@
...
@@ -138,6 +141,12 @@
export
default
{
export
default
{
name
:
'detail'
,
name
:
'detail'
,
components
:
{
xmsl
,
jsnr
,
lxr
,
gjjl
,
gzdb
,
zlwd
,
xgqy
},
components
:
{
xmsl
,
jsnr
,
lxr
,
gjjl
,
gzdb
,
zlwd
,
xgqy
},
props
:
{
detailId
:
{
//从企业详情跳转过来ID
type
:
Number
,
default
:
0
}
},
data
(){
data
(){
return
{
return
{
lastindex
:
0
,
//上一个点击步骤
lastindex
:
0
,
//上一个点击步骤
...
@@ -171,7 +180,7 @@
...
@@ -171,7 +180,7 @@
},
},
created
(){
created
(){
this
.
prvinceTree
()
this
.
prvinceTree
()
this
.
id
=
this
.
$route
.
query
.
id
this
.
id
=
this
.
detailId
?
this
.
detailId
:
this
.
$route
.
query
.
id
//项目阶段
//项目阶段
getDictType
(
'project_stage_type'
).
then
(
result
=>
{
getDictType
(
'project_stage_type'
).
then
(
result
=>
{
this
.
projectStage
=
result
.
code
==
200
?
result
.
data
:[]
this
.
projectStage
=
result
.
code
==
200
?
result
.
data
:[]
...
@@ -324,6 +333,11 @@
...
@@ -324,6 +333,11 @@
})
})
this
.
editXMSL
(
param
)
this
.
editXMSL
(
param
)
},
},
// 跳转到企业详情合作情况
cooperateList
(){
this
.
$emit
(
'close-detail'
)
}
}
}
}
}
</
script
>
</
script
>
...
...
dsk-operate-ui/src/views/project/trends/index.vue
View file @
d15e0f0b
<
template
>
<
template
>
<div
class=
"app-container"
>
<div
class=
"app-container"
>
跟进动态
<gjjl
types=
"projectgjdt"
></gjjl>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
gjjl
from
'../projectList/component/gjjl.vue'
export
default
{
export
default
{
name
:
'Trends'
,
name
:
'Trends'
,
components
:
{
gjjl
,},
data
()
{
data
()
{
return
{
return
{
}
}
...
...
dsk-system/src/main/java/com/dsk/system/service/RegionalEnterprisesService.java
View file @
d15e0f0b
package
com
.
dsk
.
system
.
service
;
package
com
.
dsk
.
system
.
service
;
import
com.dsk.common.core.
domain.AjaxResult
;
import
com.dsk.common.core.
page.TableDataInfo
;
import
com.dsk.common.dtos.ComposeQueryDto
;
import
com.dsk.common.dtos.ComposeQueryDto
;
/**
/**
...
@@ -19,5 +19,5 @@ public interface RegionalEnterprisesService {
...
@@ -19,5 +19,5 @@ public interface RegionalEnterprisesService {
*@Author: Dgm
*@Author: Dgm
*@date: 2023/5/18 10:25
*@date: 2023/5/18 10:25
*/
*/
AjaxResult
page
(
ComposeQueryDto
compose
)
;
TableDataInfo
page
(
ComposeQueryDto
compose
)
throws
Exception
;
}
}
dsk-system/src/main/java/com/dsk/system/service/impl/RegionalEnterprisesServiceImpl.java
View file @
d15e0f0b
package
com
.
dsk
.
system
.
service
.
impl
;
package
com
.
dsk
.
system
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.dsk.common.core.
domain.AjaxResult
;
import
com.dsk.common.core.
page.TableDataInfo
;
import
com.dsk.common.dtos.ComposeQueryDto
;
import
com.dsk.common.dtos.ComposeQueryDto
;
import
com.dsk.common.utils.DskOpenApiUtil
;
import
com.dsk.common.utils.DskOpenApiUtil
;
import
com.dsk.system.service.RegionalEnterprisesService
;
import
com.dsk.system.service.RegionalEnterprisesService
;
...
@@ -24,8 +24,8 @@ public class RegionalEnterprisesServiceImpl implements RegionalEnterprisesServic
...
@@ -24,8 +24,8 @@ public class RegionalEnterprisesServiceImpl implements RegionalEnterprisesServic
private
DskOpenApiUtil
dskOpenApiUtil
;
private
DskOpenApiUtil
dskOpenApiUtil
;
@Override
@Override
public
AjaxResult
page
(
ComposeQueryDto
compose
)
{
public
TableDataInfo
page
(
ComposeQueryDto
compose
)
throws
Exception
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/enterprice/page"
,
BeanUtil
.
beanToMap
(
compose
,
false
,
false
));
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/enterprice/page"
,
BeanUtil
.
beanToMap
(
compose
,
false
,
false
));
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
return
dskOpenApiUtil
.
responsePage
(
map
);
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment