Compare commits

...

55 Commits

Author SHA1 Message Date
吕天方 6ebc70e99d +1
5 months ago
吕天方 3b311a7687 注意点
5 months ago
吕天方 b2c99eab5d 工作台近三年资金拨付情况bugfix
6 months ago
吕天方 df49b2fa3b bugfix
6 months ago
吕天方 7eeefbfa2c 企业端修改信息维护查询条件
6 months ago
吕天方 8194c39cad 企业端开始填报新增校验 是否过期 是否未开始
6 months ago
吕天方 89009bb344 打包下载名称修改
6 months ago
吕天方 7d0b6ad439 填写表单查看文件及图片
6 months ago
吕天方 ef597aea0e 请求超时时间修改、联络电话修改
6 months ago
吕天方 13789bd958 平台问卷摸底模板---样式修改
7 months ago
吕天方 4c90355d20 企业库-企业详情-新增常用联系人的邮箱校验修改
7 months ago
吕天方 dfc7d661e1 不同环境登录页不同
7 months ago
吕天方 3ffc4127aa 默认联系人,企业库企业规模增加选项
7 months ago
吕天方 09baa7820c 审批意见改为非必穿
7 months ago
吕天方 668e794a17 审批意见去除校验
7 months ago
吕天方 1867c4d015 企业规模筛选新增
7 months ago
吕天方 342913fb40 模板详情展示修改
7 months ago
吕天方 867d91b66f 跳转企业通详情
7 months ago
吕天方 ca7a5d04a5 数据云图总部企业数量替换接口请求,全部改为总部
8 months ago
吕天方 1948b31604 修改字
8 months ago
吕天方 c3ada92397 平台企业摸底问卷模板详情页与众不同
8 months ago
吕天方 fdc447b1f7 脱敏加密方式修改
8 months ago
吕天方 cd9046f7a6 脱敏环境地址修改
8 months ago
吕天方 ac96880b32 安全监测问题修改⌈ 不知道对不对 ⌋
8 months ago
吕天方 4e88a68f8d bugfix
9 months ago
吕天方 bafa5f71bc 登录密码加密
9 months ago
吕天方 cbf7b95050 注释打印的日志
9 months ago
吕天方 2f9789dbf2 脱敏提示用户修改密码
9 months ago
吕天方 a0531deade 脱敏环境密码加密显示
9 months ago
吕天方 7d7798188c +1
9 months ago
吕天方 058205efc7 权限修改问题
9 months ago
吕天方 e2c0251d17 项目库新增导出、备忘录新增按钮只有不是游客身份
9 months ago
吕天方 9dc6e90092 区分+1
10 months ago
吕天方 a6e3e05503 模板更换、智能提醒alertType字段更换
10 months ago
吕天方 f833c4e8f0 数据云图不同环境不同展示
10 months ago
吕天方 d946acd5fa +1
10 months ago
吕天方 60db50f594 正式环境工作台样式修改
10 months ago
吕天方 0b4de5ce10 +1
10 months ago
吕天方 877520b880 模板修改、bug修复
10 months ago
吕天方 7fc8d0c10e 专项类型、摘要
10 months ago
吕天方 fbf28d97c3 +1
10 months ago
吕天方 e27751fdcc 近三年资金拨付对接
10 months ago
吕天方 24396a880c 正式环境备忘录跳转、去除多余展示、拨付类型更改
10 months ago
吕天方 5ca400fd27 企业信息维护搜索去除禁用、企业名称搜索框修改宽度
10 months ago
吕天方 9edf466df5 正式环境拨付时间修改
10 months ago
吕天方 1a8e079823 脱敏单独展示
10 months ago
吕天方 f3d0cf7315 工作台弹框
10 months ago
吕天方 0ed06a2545 +1
10 months ago
吕天方 dad0034760 生产环境工作台样式+1
10 months ago
吕天方 8586c7b41d 合并代码
10 months ago
吕天方 fd8d96315f +1
10 months ago
李劲龙 bf790ba234 饼状图
10 months ago
李劲龙 81c1be1ce5 新增echarts
10 months ago
吕天方 139b39fe12 工作台样式
10 months ago
李劲龙 d8147a02c8 服务发展总览
10 months ago

@ -5,9 +5,9 @@ VUE_APP_TITLE = 金鸡湖现代服务业品牌管理系统
ENV = 'development' ENV = 'development'
# 金鸡湖现代服务业品牌管理系统/开发环境 # 金鸡湖现代服务业品牌管理系统/开发环境
VUE_APP_BASE_API = 'http://192.168.0.110:9040' # VUE_APP_BASE_API = 'http://192.168.0.116:9040'
# 测试环境数据库 # 测试环境数据库
# VUE_APP_BASE_API = 'http://39.101.188.84:9040' VUE_APP_BASE_API = 'http://39.101.188.84:9040'
# 脱敏三方测试用数据库 # 脱敏三方测试用数据库
# VUE_APP_BASE_API = 'http://39.101.188.84:9031' # VUE_APP_BASE_API = 'http://39.101.188.84:9031'
# 正式环境数据库 # 正式环境数据库
@ -15,3 +15,13 @@ VUE_APP_BASE_API = 'http://192.168.0.110:9040'
# 路由懒加载 # 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true VUE_CLI_BABEL_TRANSPILE_MODULES = true
#吕天方项目对接注意点 —— 金鸡湖PC端   总结人:许宏杰
#0.脱敏环境已关闭
#1.本地运行地址http://localhost/#/login。
#2.项目中存在不同环境的下载路径,全局搜素"/demo/JinJiHu",对应位置有各个环境下载路径代码注释。
#3.测试与正式环境的登录页不同需要到router.js对应的登录页组件位置根据环境不同注释掉对应组件。
#4.部署环境
# 堡垒机地址https://58.209.81.144:9443/  用户名admin47   密码Jinjihu@123456
# 登录后选择IP地址为192.114.0.197:22  用户名root   密码Cloud@1234
# 登录IP地址后进入部署/var/www/html文件夹

@ -7,9 +7,9 @@ ENV = 'production'
# 金鸡湖现代服务业品牌管理系统/生产环境 # 金鸡湖现代服务业品牌管理系统/生产环境
# VUE_APP_BASE_API = '/prod-api' # VUE_APP_BASE_API = '/prod-api'
# 测试环境数据库 # 测试环境数据库
VUE_APP_BASE_API = 'http://39.101.188.84:9040' # VUE_APP_BASE_API = 'http://39.101.188.84:9040'
# 脱敏三方测试用数据库 # 脱敏三方测试用数据库
# VUE_APP_BASE_API = 'http://39.101.188.84:9031' # VUE_APP_BASE_API = 'http://39.101.188.84:9031'
# VUE_APP_BASE_API = 'http://192.114.0.197/api' # VUE_APP_BASE_API = 'http://192.114.0.197/api'
# 正式环境数据库 # 正式环境数据库
# VUE_APP_BASE_API = 'https://idp.sipac.gov.cn/api' VUE_APP_BASE_API = 'https://idp.sipac.gov.cn/api'

@ -24,9 +24,9 @@ if (process.env.npm_config_preview || rawArgv.includes('--preview')) {
) )
app.listen(port, function () { app.listen(port, function () {
console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`)) // console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`))
if (report) { if (report) {
console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`)) // console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`))
} }
}) })

@ -1,6 +1,6 @@
{ {
"name": "ruoyi", "name": "ruoyi",
"version": "1.0.202408290906", "version": "1.0.202501061704",
"description": "金鸡湖现代服务业品牌管理系统", "description": "金鸡湖现代服务业品牌管理系统",
"author": "若依", "author": "若依",
"license": "MIT", "license": "MIT",
@ -41,6 +41,7 @@
"@wangeditor/editor-for-vue": "^1.0.2", "@wangeditor/editor-for-vue": "^1.0.2",
"autofit.js": "^3.1.0", "autofit.js": "^3.1.0",
"axios": "0.24.0", "axios": "0.24.0",
"bpmn-js-token-simulation": "0.10.0",
"clipboard": "2.0.8", "clipboard": "2.0.8",
"core-js": "3.25.3", "core-js": "3.25.3",
"echarts": "5.4.0", "echarts": "5.4.0",
@ -54,6 +55,7 @@
"jsencrypt": "3.0.0-rc.1", "jsencrypt": "3.0.0-rc.1",
"jspdf": "^2.5.1", "jspdf": "^2.5.1",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"node-forge": "^1.3.1",
"nprogress": "0.2.0", "nprogress": "0.2.0",
"quill": "1.3.7", "quill": "1.3.7",
"screenfull": "5.0.2", "screenfull": "5.0.2",
@ -66,8 +68,7 @@
"vuedraggable": "2.24.3", "vuedraggable": "2.24.3",
"vuex": "3.6.0", "vuex": "3.6.0",
"xlsx": "^0.18.5", "xlsx": "^0.18.5",
"xml-js": "1.6.11", "xml-js": "1.6.11"
"bpmn-js-token-simulation": "0.10.0"
}, },
"devDependencies": { "devDependencies": {
"@vue/cli-plugin-babel": "4.4.6", "@vue/cli-plugin-babel": "4.4.6",

@ -17,3 +17,11 @@ export function workSearch(params) {
params params
}) })
} }
// 提示用户修改密码
export function getNewSysLogininfor() {
return request({
url: "/monitor/logininfor/getNewSysLogininfor",
method: "get",
})
}

@ -27,6 +27,15 @@ export function governmentGetInfo(params) {
}) })
} }
// 企业详情查看
export function returnUrl(params){
return request({
url: "/system/chief/returnUrl",
method: "get",
params
})
}
// // 政务端退出登录 // // 政务端退出登录
// export function enterpriseLogout(params) { // export function enterpriseLogout(params) {
// return request({ // return request({

@ -41,6 +41,14 @@ export function fundStatistics() {
}) })
} }
// 正式环境政务端工作台 --> 服务业发展总览
export function servicesDevelop(){
return request({
url: "/jjh/chiefWork/servicesDevelop" ,
method: "get",
})
}
// 正式环境政务端工作台 --> 企业获得资金拨付排名TOP5 // 正式环境政务端工作台 --> 企业获得资金拨付排名TOP5
export function top5Fund(params){ export function top5Fund(params){
return request({ return request({
@ -49,3 +57,35 @@ export function top5Fund(params){
params params
}) })
} }
// 正式环境政务端工作台 --> 当年已申报完成的项目
export function currentYearFinish(){
return request({
url: "/jjh/chiefWork/currentYearFinish" ,
method: "get",
})
}
// 正式环境政务端工作台 --> 项目追踪情况
export function projectTrace(){
return request({
url: "/jjh/chiefWork/projectTrace" ,
method: "get",
})
}
// 正式环境政务端工作台 --> 备忘录更新情况
export function memorandum(){
return request({
url: "/jjh/chiefWork/memorandum" ,
method: "get",
})
}
// 正式环境政务端工作台 --> 近三年资金拨付情况
export function threeYearsFund(year){
return request({
url: "/jjh/chiefWork/threeYearsFund/" + year,
method: "get",
})
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

@ -170,6 +170,18 @@
.import-btn-export { .import-btn-export {
padding: 8px 20px; padding: 8px 20px;
} }
.el-form {
.el-form-item {
.el-form-item__content {
.xinxiweihu {
width: 230px;
}
}
}
}
} }
section { section {
@ -2507,12 +2519,14 @@
.promoteProject-bottom { .promoteProject-bottom {
margin-top: 16px; margin-top: 16px;
display: flex; display: flex;
justify-content: space-between; // justify-content: space-between;
align-items: center;
width: 85%; width: 85%;
.promoteProject-bottom-left { .promoteProject-bottom-left {
font-family: AlibabaPuHuiTiR; font-family: AlibabaPuHuiTiR;
font-size: 14px; font-size: 14px;
color: #666666; color: #666666;
width: 67%;
display: flex; display: flex;
.span-two { .span-two {
font-family: AlibabaPuHuiTiM; font-family: AlibabaPuHuiTiM;
@ -2563,6 +2577,9 @@
// text-transform: none; // text-transform: none;
cursor: pointer; cursor: pointer;
} }
.project-trace-table-gray {
color: #747474;
}
} }
} }
// //
@ -3590,12 +3607,12 @@
background-color: #F6F9FD; background-color: #F6F9FD;
} }
// .project-trace-table-number { .project-trace-table-number {
// font-family: DINCondensed, DINCondensed; font-family: DINCondensed, DINCondensed;
// // font-weight: bold; // font-weight: bold;
// font-size: 20px; font-size: 20px;
// color: #FF844D; color: #FF844D;
// } }
.remind-info { .remind-info {
width: 11em; width: 11em;
overflow: hidden; overflow: hidden;
@ -4311,6 +4328,63 @@
} }
} }
//
.chanyehuodongxiangqing-dialog {
.el-dialog__body {
padding: 20px 50px;
}
.el-dialog__header {
border-bottom: 1px solid #F0F0F0;
.el-dialog__title {
font-family: PingFang-SC-Heavy;
font-weight: 800;
font-size: 16px;
color: #000000;
}
}
.el-dialog__footer {
.chanyehuodongxiangqing-footer {
.el-form-item {
margin-bottom: 0;
.el-button--primary.is-active,
.el-button--primary:active {
background: oklab(0.7 -0.3 -0.4);
border-color: #1890FF;
color: #FFFEFE;
}
.el-button--primary {
background: #1890FF;
border-color: #1890FF;
color: #FFFEFE;
}
.el-button--primary:focus,
.el-button--primary:hover {
background: oklab(0.7 -0.3 -0.4);
border-color: #1890FF;
color: #FFFEFE;
}
.el-button--default:hover,
.el-button--primary:hover {
background-color: oklab(0.65 -0.06 -0.18);
border-color: #1890FF;
color: #FFFEFE;
}
.el-button--default {
border-color: #1890FF;
color: #000000;
}
}
}
}
}
#echarts { #echarts {
width: 100%; width: 100%;
height: calc(100% - 110px); height: calc(100% - 110px);

@ -4,14 +4,22 @@
width: 100%; width: 100%;
header { header {
background: url("../images/workbench.png"); background: url("../images/workbenchPro.png");
// background-size: cover;
// background-size: contain; /* 按图片比例缩放到容器内完全显示 */
// background-repeat: no-repeat;
/* 防止重复 */
// background-position: 0px -50px;
/* 背景图相对于容器的左上角偏移 20px 水平和 30px 垂直 */
background-size: 100% 100%; background-size: 100% 100%;
padding: 20px 0; padding: 20px 0;
display: flex; display: flex;
align-items: center; align-items: center;
.workbench-serch { .workbench-serch {
padding-left: 200px; padding-left: 40px;
width: 100%;
display: flex;
.workbench-title { .workbench-title {
display: flex; display: flex;
@ -19,11 +27,14 @@
.title-item { .title-item {
cursor: pointer; cursor: pointer;
padding: 10px 60px 10px 40px; padding: 10px 30px 10px 20px;
border-top-right-radius: 30% 100%; border-radius: 5px;
border-top-right-radius: 20% 50%;
margin-right: 15px; margin-right: 15px;
background: #FFFFFF; background: #FFFFFF;
box-shadow: 2px 0 3px 0px #ccc; box-shadow: 2px 0 3px 0px #ccc;
color: #0086FF;
font-weight: 600;
} }
.checked-item { .checked-item {
@ -43,14 +54,23 @@
.el-input { .el-input {
width: 100%; width: 100%;
height: 100%; height: 100%;
position: relative;
input { input {
height: 100%; height: 100%;
border-radius: 30px;
} }
.el-input-group__append { .el-input-group__append {
width: 80px; position: absolute;
text-align: center; right: 5px;
top: 5px;
bottom: 5px;
width: 100px;
border-radius: 30px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer; cursor: pointer;
// background: radial-gradient( farthest-side at 40px 40px, #1B84D2 20%, #30CEF5 100%); // background: radial-gradient( farthest-side at 40px 40px, #1B84D2 20%, #30CEF5 100%);
background: linear-gradient(to right, #1B84D2, #30CEF5); background: linear-gradient(to right, #1B84D2, #30CEF5);
@ -60,6 +80,7 @@
color: #FFFFFF; color: #FFFFFF;
} }
} }
} }
} }
} }
@ -68,9 +89,10 @@
.home-main { .home-main {
width: 100%; width: 100%;
padding: 10px; padding: 10px;
height: calc(100% - 132px); height: calc(100% - 91px);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
.main-row { .main-row {
height: 100%; height: 100%;
box-sizing: border-box; box-sizing: border-box;
@ -130,6 +152,7 @@
background-color: #F5F8FA; background-color: #F5F8FA;
border: none; border: none;
margin-bottom: 10px; margin-bottom: 10px;
.el-card__body { .el-card__body {
padding: 10px 20px; padding: 10px 20px;
} }
@ -159,29 +182,36 @@
.warn-main-content { .warn-main-content {
flex: 1; flex: 1;
.content-title,.content-title-type {
.content-title,
.content-title-type {
font-weight: bold; font-weight: bold;
font-size: 15px; font-size: 15px;
color: #333333; color: #333333;
} }
.content-title-type { .content-title-type {
margin-top: 5px; margin-top: 5px;
} }
.content-middle { .content-middle {
font-weight: bold; font-weight: bold;
font-size: 15px; font-size: 15px;
color: #333333; color: #333333;
margin: 10px 0; margin: 10px 0;
} }
.tixing-duanxin { .tixing-duanxin {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.content-time { .content-time {
font-weight: 500; font-weight: 500;
font-size: 14px; font-size: 14px;
color: #737373; color: #737373;
} }
.content-time-two { .content-time-two {
margin-left: 10px; margin-left: 10px;
} }
@ -233,29 +263,302 @@
} }
.service-left { .service-left {
padding: 10px 20px; padding: 10px;
.home-mainPro-top,.home-mainPro-middle,.home-mainPro-bottom { height: 100%;
overflow: hidden;
display: flex;
flex-direction: column;
.home-mainPro-top {
height: 32%;
// height: 250px;
display: flex; display: flex;
align-items: center; align-items: center;
.pro-left-box, .pro-right-box {
width: 50%; .pro-left-box,
.pro-right-box {
height: 100%;
padding: 10px; padding: 10px;
background-color: #F5F8FA; background-color: #F5F8FA;
border-radius: 10px; border-radius: 10px;
display: flex;
flex-direction: column;
} }
.pro-left-box {
width: 55%;
}
.pro-right-box {
width: 45%;
}
.home-mainPro-top-box {
width: 100%;
height: 100%;
overflow: hidden;
}
//
.AFuwufazhanzonglan-box {
flex: 1;
.AFuwufazhanzonglan {
width: 100%;
height: 100%;
display: grid;
grid-template-columns: 1fr;
grid-gap: 10px;
padding-top: 10px;
.AFuwufazhanzonglan-listbox {
width: 100%;
background: #FFFFFF;
border-radius: 10px;
// margin: 2% 0;
// padding: 5px 5px;
display: flex;
align-items: center;
.AFuwufazhanzonglan-niandu {
width: 5%;
writing-mode: vertical-rl;
/* 竖直显示,文字从上到下 */
text-align: center;
font-size: 12px;
font-family: PingFang-SC;
font-weight: bold;
color: #666666;
line-height: 20px;
}
.AFuwufazhanzonglan-neirongBox {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.AFuwufazhanzonglan-item {
// width: 95%;
display: flex;
align-items: center;
margin: 0 10px;
// flex: 1;
.AFuwufazhanzonglan-img-box {
width: 50px;
height: 50px;
border-radius: 50%;
background-size: cover;
background-repeat: no-repeat;
background-position: top left;
/* 背景图位置从左上角开始 */
margin-right: 10px;
}
.img-box_0 {
background-image: url("../images/mapIconOne.png");
}
.img-box_1 {
background-image: url("../images/mapIconTwo.png");
}
.img-box_2 {
background-image: url("../images/mapIconThree.png");
} }
.home-mainPro-top {
.AFuwufazhanzonglan-item-top {
div:nth-child(1) {
font-size: 20px;
font-weight: bold;
font-family: DINCondensed, DINCondensed;
font-weight: bold;
line-height: 30px;
margin-right: 5px;
color: #333333;
span {
font-family: PingFang-SC, PingFang-SC;
font-weight: bold;
font-size: 12px;
line-height: 18px;
color: #666666;
}
}
div:nth-child(2) {
// font-size: 14px;
// margin-bottom: 5px;
// font-size: 14px;
// max-width: 100px;
// white-space: nowrap;
// overflow: hidden;
// text-overflow: ellipsis;
font-family: PingFang-SC;
font-weight: 500;
font-size: 12px;
color: #666666;
}
div:nth-child(3) {
font-family: PingFang-SC;
font-weight: 500;
font-size: 12px;
color: #666666;
}
}
}
}
}
}
}
//
.BJinsannianzijin-box {
width: 100%;
height: calc(100% - 25px);
.BJinsannianzijin {
width: 100%;
height: 100%;
padding-top: 10px;
display: flex;
.echart_boxs {
width: 50%;
height: 100%;
// display: grid;
// grid-template-columns: 1fr;
// grid-gap: 10px;
display: flex;
flex-direction: column;
justify-content: space-between;
.echart_boxs_top {
.echart_boxs_title {
text-align: center;
font-family: PingFang-SC;
font-weight: bold;
font-size: 14px;
color: #666666;
margin-bottom: 5px;
}
// .echart_boxs_btn {
// display: flex;
// align-items: center;
// justify-content: space-between;
// padding: 0 25px;
// span {
// padding: 3px 10px;
// border: 1px solid #ccc;
// background-color: #fff;
// border-radius: 3px;
// display: flex;
// align-items: center;
// justify-content: center;
// font-family: ArialB;
// font-weight: normal;
// font-size: 14px;
// color: #999999;
// cursor: pointer;
// }
// .changeFuwuyeYear_span {
// background: #0086FF;
// color: #FEFEFE;
// border: 1px solid #0086FF;
// }
// }
}
.echart_boxs_middle {
width: 100%;
height: calc(100% - 94px);
// flex: 1;
margin: 10px 0;
display: flex;
.BJinsannianzijinchart-left, .zongbuzhuanxing-box{
width: 59%;
height: 100%;
}
.BJinsannianzijinchart-right {
padding: 5px 0;
display: flex;
flex-direction: column;
justify-content: center;
.yushuan {
span {
font-family: PingFang-SC;
font-weight: bold;
font-size: 12px;
color: #666666;
}
.number-box {
font-family: DINCondensed;
font-weight: bold;
font-size: 28px;
color: #00AEFF;
line-height: 25px;
.number-unit-box {
font-family: PingFang-SC;
font-weight: bold;
font-size: 12px;
color: #666666;
line-height: 25px;
}
}
.bottom_number {
color: #FFA42B ;
}
}
}
}
.echart_boxs_bottom {
text-align: center;
font-family: PingFang-SC;
font-weight: bold;
font-size: 14px;
color: #666666;
// margin-top: 10px;
span {
font-family: DINCondensed;
font-size: 20px;
color: #333;
}
}
}
.echart_boxs_right {
margin-right: 0px;
}
}
}
} }
.home-mainPro-middle { .home-mainPro-middle {
margin: 10px 0; margin: 10px 0;
.capitalConditionTOP5-box { height: 40%;
padding: 10px 0; display: flex;
align-items: center;
// overflow: hidden;
.pro-left-box,
.pro-right-box {
height: 100%;
padding: 10px;
background-color: #F5F8FA;
border-radius: 10px;
display: flex;
flex-direction: column;
}
.pro-left-box {
width: 55%;
}
.pro-right-box {
width: 45%;
}
// flex: 2;
// TOP5
.capitalConditionTOP5-box,.wancheng-project {
flex: 1;
section { section {
margin-top: 10px; margin-top: 10px;
// .el-table--border { .el-table--border {
// border: 1px solid #dfe6ec; border: 1px solid #dfe6ec;
// } }
.el-table { .el-table {
.project-trace-table-ranking { .project-trace-table-ranking {
// padding: 1px 0px; // padding: 1px 0px;
@ -268,26 +571,129 @@
font-family: ArialB; font-family: ArialB;
color: #FFFFFF; color: #FFFFFF;
} }
.project-table-Info { .project-trace-table-name {
color: #0086FF;
cursor: pointer;
}
.project-trace-table-number {
font-weight: bold;
font-size: 14px;
text-align: center;
font-family: PingFang-SC;
color: #333333;
}
th {
font-weight: bold;
font-size: 14px;
text-align: center;
font-family: PingFang-SC;
color: #333333;
padding: 0;
.Table-header {
// font-family: AlibabaPuHuiTiM;
font-size: 14px;
color: #333333;
}
.Table-unit {
font-family: AlibabaPuHuiTiR; font-family: AlibabaPuHuiTiR;
font-weight: 500; font-size: 12px;
font-weight: 400;
color: #333333;
}
}
td {
font-weight: bold;
font-size: 14px; font-size: 14px;
color: #1890FF; text-align: center;
// font-style: normal; font-family: PingFang-SC;
// text-decoration-line: underline; color: #333333;
// text-transform: none; }
}
}
}
}
.home-mainPro-bottom {
height: 25.5%;
// flex: 1.3;
display: flex;
align-items: center;
.pro-left-box,
.pro-right-box {
height: 100%;
padding: 10px;
background-color: #F5F8FA;
border-radius: 10px;
display: flex;
flex-direction: column;
}
.pro-left-box {
width: 55%;
}
.pro-right-box {
width: 45%;
}
.wancheng-project {
flex: 1;
section {
margin-top: 10px;
.el-table--border {
border: 1px solid #dfe6ec;
}
.el-table {
.project-trace-table-name {
color: #0086FF;
cursor: pointer; cursor: pointer;
} }
.orange {
color: #ff8929;
}
.green {
color: #5cbc69;
}
.red {
color: #ff6349;
}
.project-trace-table {
width: 11em;
overflow: hidden;
/* 显示省略符号来代表被修剪的文本。 */
text-overflow:ellipsis;
/* 文本不换行 */
white-space:nowrap;
}
.project-trace-table-number {
font-weight: bold;
font-size: 14px;
text-align: center;
font-family: PingFang-SC;
color: #333333;
}
th { th {
font-weight: bold; font-weight: bold;
font-size: 14px; font-size: 14px;
color: #000;
text-align: center; text-align: center;
font-family: PingFang-SC;
color: #333333;
padding: 0;
.Table-header { .Table-header {
// font-family: AlibabaPuHuiTiM; // font-family: AlibabaPuHuiTiM;
font-size: 14px; font-size: 14px;
color: #333333; color: #333333;
} }
.Table-unit { .Table-unit {
font-family: AlibabaPuHuiTiR; font-family: AlibabaPuHuiTiR;
font-size: 12px; font-size: 12px;
@ -295,17 +701,22 @@
color: #333333; color: #333333;
} }
} }
td { td {
font-weight: 500; font-weight: bold;
font-size: 14px; font-size: 14px;
color: #666666; text-align: center;
font-family: PingFang-SC;
color: #333333;
} }
} }
} }
} }
} }
} }
.work-main-right { .work-main-right {
background-color: #fff; background-color: #fff;
border-radius: 10px; border-radius: 10px;
@ -314,6 +725,7 @@
.main-right { .main-right {
padding: 10px 20px; padding: 10px 20px;
height: 100%; height: 100%;
.right-header { .right-header {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@ -352,6 +764,7 @@
.right-main { .right-main {
height: calc(100% - 55px); height: calc(100% - 55px);
overflow-y: scroll; overflow-y: scroll;
.main-items { .main-items {
display: flex; display: flex;
align-items: center; align-items: center;
@ -410,6 +823,7 @@
.box-header { .box-header {
display: flex; display: flex;
align-items: center; align-items: center;
.garden { .garden {
width: 10px; width: 10px;
height: 10px; height: 10px;
@ -417,20 +831,67 @@
background-color: #0086FF; background-color: #0086FF;
margin-right: 10px; margin-right: 10px;
} }
.box-header-title { .box-header-title {
font-family: AlibabaPuHuiTiB; font-family: AlibabaPuHuiTiB;
font-size: 16px; font-size: 16px;
color: #383838; color: #383838;
} }
// TOP5
.left-box-select { .left-box-select {
flex: 1; flex: 1;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
align-items: center; align-items: center;
.el-select { .el-select {
width: 100px; width: 130px;
.el-input__inner { .el-input__inner {
text-align: center; text-align: center;
height: 30px;
line-height: 30px;
border-color: #0086FF;
color: #0086FF;
}
.el-input--medium .el-input__icon {
line-height: 30px;
color: #0086FF;
}
}
.el-radio-group {
.el-radio-button {
.el-radio-button__inner {
padding: 5px 15px;
}
}
}
.years-select {
margin-right: 10px;
}
.echart_boxs_btn {
display: flex;
align-items: center;
padding: 0 25px;
.changeFuwuyeYear_span {
padding: 3px 10px;
border: 1px solid #ccc;
background-color: #fff;
border-radius: 3px;
display: flex;
align-items: center;
justify-content: center;
font-family: ArialB;
font-weight: normal;
font-size: 14px;
color: #999999;
cursor: pointer;
margin-right: 10px;
}
.changeFuwuyeYear_span_change {
background: #0086FF;
color: #FEFEFE;
border: 1px solid #0086FF;
} }
} }
} }

@ -182,7 +182,7 @@ export default {
"updateCrontabValue", name, value, from; "updateCrontabValue", name, value, from;
this.crontabValueObj[name] = value; this.crontabValueObj[name] = value;
if (from && from !== name) { if (from && from !== name) {
console.log(`来自组件 ${from} 改变了 ${name} ${value}`); // console.log(` ${from} ${name} ${value}`);
this.changeRadio(name, value); this.changeRadio(name, value);
} }
}, },

@ -81,6 +81,15 @@ if (!localVersion || version !== localVersion) {
localStorage.clear() // 清除缓存 localStorage.clear() // 清除缓存
localStorage.setItem('projectVersion', version) localStorage.setItem('projectVersion', version)
} }
Vue.directive('removeAriaHiddent', {
bind(el, binding) {
let ariaEls = el.querySelectorAll('.el-radio__original');
ariaEls.forEach(element => {
element.removeAttribute('aria-hidden')
});
}
})
// var docEl = document.documentElement; // var docEl = document.documentElement;
// function setRemUnit () { // function setRemUnit () {
// var rem = docEl.clientWidth / 19.2; // 可根据不同电脑分辨率进行手动修改如1920*1080 为19.2 // var rem = docEl.clientWidth / 19.2; // 可根据不同电脑分辨率进行手动修改如1920*1080 为19.2

@ -84,6 +84,7 @@ router.beforeEach((to, from, next) => {
const timespan = queryOne && queryOne[1]; // 时间戳 const timespan = queryOne && queryOne[1]; // 时间戳
const signature = queryTwo && queryTwo[1]; // 签名 const signature = queryTwo && queryTwo[1]; // 签名
const userToken = queryThree && queryThree[1]; // 用户令牌 const userToken = queryThree && queryThree[1]; // 用户令牌
localStorage.setItem("otherToken",userToken)
let info = { let info = {
userToken, userToken,
signature, signature,
@ -119,7 +120,7 @@ router.beforeEach((to, from, next) => {
}); });
} }
}).catch((err) => { }).catch((err) => {
console.log(err); // console.log(err);
// store.dispatch("LogOut").then(() => { // store.dispatch("LogOut").then(() => {
// Message.error(err); // Message.error(err);
// location.href = "https://qyt.sipac.gov.cn/sipsg-enterprise-mobile-manage/#/login" // location.href = "https://qyt.sipac.gov.cn/sipsg-enterprise-mobile-manage/#/login"

@ -14,13 +14,13 @@ export function initListenerForm(listener) {
if (listener.eventDefinitions.length) { if (listener.eventDefinitions.length) {
let k = ""; let k = "";
for (let key in listener.eventDefinitions[0]) { for (let key in listener.eventDefinitions[0]) {
console.log(listener.eventDefinitions, key); // console.log(listener.eventDefinitions, key);
if (key.indexOf("time") !== -1) { if (key.indexOf("time") !== -1) {
k = key; k = key;
self.eventDefinitionType = key.replace("time", "").toLowerCase(); self.eventDefinitionType = key.replace("time", "").toLowerCase();
} }
} }
console.log(k); // console.log(k);
self.eventTimeDefinitions = listener.eventDefinitions[0][k].body; self.eventTimeDefinitions = listener.eventDefinitions[0][k].body;
} }
} }

@ -43,8 +43,8 @@ export const constantRoutes = [
}, },
{ {
path: "/login", path: "/login",
component: () => import("@/views/login"), // component: () => import("@/views/login"), // 测试环境登录页
// component: () => import("@/views/login_v1"), // 三方测试脱敏登录页 component: () => import("@/views/login_v1"), // 正式环境登录页
hidden: true, hidden: true,
}, },
{ {

@ -122,7 +122,7 @@ const user = {
commit('SET_TOKEN', res.data.token) commit('SET_TOKEN', res.data.token)
resolve() resolve()
}).catch(error => { }).catch(error => {
console.log(error); // console.log(error);
// reject(error) // reject(error)
}) })
}) })

@ -8,7 +8,7 @@ export const options = {
* 字典请求方法签名为function(dictMeta: DictMeta): Promise * 字典请求方法签名为function(dictMeta: DictMeta): Promise
*/ */
request: (dictMeta) => { request: (dictMeta) => {
console.log(`load dict ${dictMeta.type}`) // console.log(`load dict ${dictMeta.type}`)
return Promise.resolve([]) return Promise.resolve([])
}, },
/** /**

@ -2,8 +2,7 @@ import JSEncrypt from 'jsencrypt/bin/jsencrypt.min'
// 密钥对生成 http://web.chacuo.net/netrsakeypair // 密钥对生成 http://web.chacuo.net/netrsakeypair
const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdH\n' + const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOEI/QLz9WM0NvGeS44KpR5dbVrvJTTfLu5x3u10CwENqmHEafYPMz4SfBn99//vkLKxO0cRKM3MS+lb/1oSVqsCAwEAAQ=='
'nzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ=='
const privateKey = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY\n' + const privateKey = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY\n' +
'7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKN\n' + '7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKN\n' +

@ -18,7 +18,7 @@ const service = axios.create({
// axios中请求配置有baseURL选项表示请求URL公共部分 // axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: process.env.VUE_APP_BASE_API, baseURL: process.env.VUE_APP_BASE_API,
// 超时 // 超时
timeout: 10000 timeout: 20000
}) })
// request拦截器 // request拦截器
@ -68,7 +68,7 @@ service.interceptors.request.use(config => {
} }
return config return config
}, error => { }, error => {
console.log(error) // console.log(error)
Promise.reject(error) Promise.reject(error)
}) })
@ -110,7 +110,7 @@ service.interceptors.response.use(res => {
} }
}, },
error => { error => {
console.log('err' + error) // console.log('err' + error)
let { message } = error; let { message } = error;
if (message == "Network Error") { if (message == "Network Error") {
message = "后端接口连接异常"; message = "后端接口连接异常";

@ -243,7 +243,7 @@ export default {
this.loading = false; this.loading = false;
}) })
.catch((err) => { .catch((err) => {
console.log(err); // console.log(err);
}); });
} else { } else {
this.$message({ this.$message({

@ -44,10 +44,10 @@
<my-pagination <my-pagination
id="L-pagination" id="L-pagination"
:total="total" :total="total"
:page="pagination.current" :page="pagination.pageNum"
:limit="pagination.size" :limit="pagination.pageSize"
@pagination="getPagination" @pagination="getPagination"
:current-page.sync="pagination.current" :current-page.sync="pagination.pageNum"
></my-pagination> ></my-pagination>
</section> </section>
</div> </div>
@ -64,8 +64,8 @@ export default {
deptId: this.$store.state.user.deptId, deptId: this.$store.state.user.deptId,
total:0, total:0,
pagination: { pagination: {
current:1, pageNum:1,
size:10, pageSize:10,
orderChange:1, orderChange:1,
}, },
loading:false, loading:false,
@ -101,15 +101,15 @@ export default {
}, },
// //
getPagination(pages) { getPagination(pages) {
this.pagination.current = pages.page; this.pagination.pageNum = pages.page;
this.pagination.size = pages.limit; this.pagination.pageSize = pages.limit;
this.getList(); this.getList();
}, },
// //
handleQuery() { handleQuery() {
this.pagination = { this.pagination = {
current: 1, pageNum: 1,
size: 10 pageSize: 10
} }
this.pagination = { ...this.pagination,...this.formInline }; this.pagination = { ...this.pagination,...this.formInline };
this.getList(); this.getList();
@ -118,8 +118,8 @@ export default {
resetQuery(formName){ resetQuery(formName){
this.$refs[formName].resetFields(); this.$refs[formName].resetFields();
this.pagination = { this.pagination = {
current: 1, pageNum: 1,
size: 10 pageSize: 10
} }
this.getList(); this.getList();
}, },

@ -59,7 +59,7 @@ export default {
// console.log("=======customInsert======="); // console.log("=======customInsert=======");
}, },
onBeforeUpload(file){ onBeforeUpload(file){
console.log(this.Loading); // console.log(this.Loading);
// console.log("=======onBeforeUpload======="); // console.log("=======onBeforeUpload=======");
}, },
// onSuccess(file,res){ // onSuccess(file,res){

@ -39,7 +39,7 @@
<!-- <el-row class="radio_btn"> --> <!-- <el-row class="radio_btn"> -->
<el-col class="radio_btn"> <el-col class="radio_btn">
<el-radio-group v-model="projectSmallType" @change="toggleOptionsEnter" fill="#134EE6"> <el-radio-group v-model="projectSmallType" @change="toggleOptionsEnter" fill="#134EE6">
<el-radio-button label="">全部({{ countData.count1 + countData.count2 + countData.count3 }})</el-radio-button> <el-radio-button label="">总部({{ countData.allCount }})</el-radio-button>
<el-radio-button label="1">省级总部({{ countData.count1 }})</el-radio-button> <el-radio-button label="1">省级总部({{ countData.count1 }})</el-radio-button>
<el-radio-button label="2">市级总部({{ countData.count2 }})</el-radio-button> <el-radio-button label="2">市级总部({{ countData.count2 }})</el-radio-button>
<el-radio-button label="3">区级总部({{ countData.count3 }})</el-radio-button> <el-radio-button label="3">区级总部({{ countData.count3 }})</el-radio-button>
@ -120,6 +120,7 @@ export default {
}, },
total:40, total:40,
countData: { countData: {
allCount:0,
count1:0, count1:0,
count2:0, count2:0,
count3:0, count3:0,
@ -132,10 +133,22 @@ export default {
selectZbCount().then(res=>{ selectZbCount().then(res=>{
this.countData = res.data; this.countData = res.data;
}) })
this.pagination = {
current: 1,
size: 10
}
this.pagination = { ...this.pagination,...this.formInline };
this.getList(); this.getList();
}, },
infoClose(){ infoClose(){
this.infoVisible = false; this.infoVisible = false;
this.formInline = {
qymc:"",
tyshxydm:"",
type:"",
projectSmallType:""
}
this.projectSmallType = "";
}, },
getList(){ getList(){
this.loading = true; this.loading = true;

@ -98,7 +98,9 @@
<!-- 第一个卡片 --> <!-- 第一个卡片 -->
<el-card shadow="always" v-for="(item,index) in cardData" :key="index"> <el-card shadow="always" v-for="(item,index) in cardData" :key="index">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<!-- 脱敏 -->
<!-- <span>{{ item.servicesType == 1 ? '生产性服务业' : item.servicesType == 2 ? '生活性服务业' : item.servicesType == 3 ? '新兴服务业' : item.servicesType == 4 ? '限上批零住餐' : '' }}</span> --> <!-- <span>{{ item.servicesType == 1 ? '生产性服务业' : item.servicesType == 2 ? '生活性服务业' : item.servicesType == 3 ? '新兴服务业' : item.servicesType == 4 ? '限上批零住餐' : '' }}</span> -->
<!-- 正式/测试 -->
<span>{{ item.servicesType == 1 ? '生产性服务业' : item.servicesType == 2 ? '生活性服务业' : item.servicesType == 3 ? '规上服务业' : item.servicesType == 4 ? '限上批零住餐' : '' }}</span> <span>{{ item.servicesType == 1 ? '生产性服务业' : item.servicesType == 2 ? '生活性服务业' : item.servicesType == 3 ? '规上服务业' : item.servicesType == 4 ? '限上批零住餐' : '' }}</span>
</div> </div>
<div class="card-items"> <div class="card-items">
@ -121,6 +123,7 @@
<div class="card-unit unit-two">亿</div> <div class="card-unit unit-two">亿</div>
</div> </div>
</div> </div>
<!-- 正式/测试环境加上 v-if="item.servicesType !== 3" -->
<div class="card-items" v-if="item.servicesType !== 3"> <div class="card-items" v-if="item.servicesType !== 3">
<div class="card-item-left"> <div class="card-item-left">
<div class="card-img card-img-three"></div> <div class="card-img card-img-three"></div>
@ -262,7 +265,10 @@
<div class="right-bottom-title"> <div class="right-bottom-title">
<div class="L-title-left"> <div class="L-title-left">
<span class="dataCloudMap-birght"></span> <span class="dataCloudMap-birght"></span>
<!-- 正式/测试 -->
<span class="dataCloudMap-title">持续关注项目</span> <span class="dataCloudMap-title">持续关注项目</span>
<!-- 脱敏 -->
<!-- <span class="dataCloudMap-title">项目追踪情况</span> -->
</div> </div>
<span class="dataCloudMap-data">统计数据截至{{ time }}</span> <span class="dataCloudMap-data">统计数据截至{{ time }}</span>
</div> </div>
@ -270,24 +276,35 @@
</div> </div>
<section> <section>
<el-table v-loading="loadingTwo" class="dataMap-two-table" :data="tableTwoData" :row-class-name="tableRowClassName" :height="tabHeader" :header-cell-style="{background:'#E8F3FC'}"> <!-- :max-height="tabHeader" --> <el-table v-loading="loadingTwo" class="dataMap-two-table" :data="tableTwoData" :row-class-name="tableRowClassName" :height="tabHeader" :header-cell-style="{background:'#E8F3FC'}"> <!-- :max-height="tabHeader" -->
<!-- 正式/测试 提醒时间的 正式环境/测试环境去除样式 class="project-trace-table-number"-->
<el-table-column label="项目名称" prop="projectSmallType" width="400" align="center"> <el-table-column label="项目名称" prop="projectSmallType" width="400" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <div>{{ scope.row.enterpriseDirectory }}</div> -->
<dict-tag :options="dict.type.project_small_type" :value="scope.row.projectSmallType"/> <dict-tag :options="dict.type.project_small_type" :value="scope.row.projectSmallType"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="提醒内容" prop="alertContent" align="center" width="200"> <el-table-column label="提醒内容" prop="alertContent" align="center" width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <div v-if="scope.row.startTime && scope.row.endTime">{{ scope.row.startTime }}~{{ scope.row.endTime }}</div>
<div v-else></div> -->
<div class="remind-info">{{ scope.row.alertContent }}</div> <div class="remind-info">{{ scope.row.alertContent }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="提醒时间" prop="alertTime" align="center"> <el-table-column label="提醒时间" prop="alertTime" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="project-trace-table-number">{{ scope.row.alertTime }}</div> <div>{{ scope.row.alertTime }}</div>
</template> </template>
</el-table-column> </el-table-column>
<!-- 脱敏 -->
<!-- <el-table-column label="申报任务名称" prop="enterpriseDirectory" width="500" align="center"/>
<el-table-column label="填报时间" prop="time" align="center">
<template slot-scope="scope">
<div v-if="scope.row.startTime && scope.row.endTime">{{ scope.row.startTime }}~{{ scope.row.endTime }}</div>
<div v-else></div>
</template>
</el-table-column>
<el-table-column label="已填报企业数" prop="count" align="center">
<template slot-scope="scope">
<div class="project-trace-table-number">{{ scope.row.count }}</div>
</template>
</el-table-column> -->
</el-table> </el-table>
</section> </section>
</div> </div>

@ -6,7 +6,7 @@
<el-col :span="9"> <el-col :span="9">
<div class="project-info-top"> <div class="project-info-top">
<div class="project-info">备忘录</div> <div class="project-info">备忘录</div>
<el-button type="primary" icon="icon iconfont icon-jc-xinjian" size="mini" @click="newMemo"></el-button> <el-button type="primary" icon="icon iconfont icon-jc-xinjian" size="mini" @click="newMemo" v-if="!roles.includes('sightseer')"></el-button>
<el-button type="primary" icon="icon iconfont icon-jc-daoru" size="mini" @click="exportMemo" :loading="exportLoading">一键导出</el-button> <el-button type="primary" icon="icon iconfont icon-jc-daoru" size="mini" @click="exportMemo" :loading="exportLoading">一键导出</el-button>
</div> </div>
</el-col> </el-col>
@ -46,7 +46,7 @@
<span>{{ item.name }}</span> <span>{{ item.name }}</span>
<span>{{ item.createTime }}</span> <span>{{ item.createTime }}</span>
</div> </div>
<div class="clearfix-right"> <div class="clearfix-right" v-if="!roles.includes('sightseer')">
<div class="clearfix-bianji" @click="putMemo(item)"> <div class="clearfix-bianji" @click="putMemo(item)">
<i class="icon iconfont icon-jc-bianji-copy"></i> <i class="icon iconfont icon-jc-bianji-copy"></i>
编辑 编辑
@ -124,6 +124,7 @@ export default {
name:"tabFour", name:"tabFour",
data() { data() {
return { return {
roles: this.$store.state.user.roles,
formInline:{ formInline:{
startTime:"", startTime:"",
endTime:"", endTime:"",

@ -11,6 +11,12 @@
<el-table-column label="联络人编号" prop="llrbh" /> <el-table-column label="联络人编号" prop="llrbh" />
<el-table-column label="入库时间" prop="dwTimestamp" /> <el-table-column label="入库时间" prop="dwTimestamp" />
<el-table-column label="来源机构" prop="dwLyjg" /> <el-table-column label="来源机构" prop="dwLyjg" />
<el-table-column label="是否默认联系人" prop="defaultcontact">
<template slot-scope="scope">
<span v-if="scope.row.defaultcontact == 1"></span>
<span v-else></span>
</template>
</el-table-column>
</el-table> </el-table>
</section> </section>
<el-row> <el-row>
@ -99,7 +105,8 @@ export default {
// //
var checkEmail = (rule,value,cb) => { var checkEmail = (rule,value,cb) => {
// //
const regEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/; // const regEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
const regEmail = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,})$/
if(regEmail.test(value)){ if(regEmail.test(value)){
// //
return cb(); return cb();
@ -150,6 +157,7 @@ export default {
], ],
contactEmail:[ contactEmail:[
{ required: true, message: '请填写常用联系人邮箱', trigger: 'blur' }, { required: true, message: '请填写常用联系人邮箱', trigger: 'blur' },
// { type:"email", message: '', trigger: 'blur'}
{validator: checkEmail, trigger: 'blur'} {validator: checkEmail, trigger: 'blur'}
], ],
}, },
@ -218,7 +226,7 @@ export default {
// } // }
this.addFrom.enterpriseCode = this.detailedInfo.tyshxydm; this.addFrom.enterpriseCode = this.detailedInfo.tyshxydm;
this.addFrom.enterpriseName = this.detailedInfo.qymc; this.addFrom.enterpriseName = this.detailedInfo.qymc;
console.log(this.detailedInfo); // console.log(this.detailedInfo);
this.$refs.importProject.open(); this.$refs.importProject.open();
}, },
// //

@ -5,7 +5,7 @@
<div class="left-info enter-left-info" id="L-header"> <div class="left-info enter-left-info" id="L-header">
<div class="project-info-title">企业信息</div> <div class="project-info-title">企业信息</div>
<el-descriptions class="margin-top" :column="2" size="medium" border v-loading="loading"> <el-descriptions class="margin-top" :column="2" size="medium" border v-loading="loading">
<el-descriptions-item label="企业名称">{{ info.qymc }}</el-descriptions-item> <el-descriptions-item label="企业名称"><span v-if="isZhengwu" @click="goGov(info.tyshxydm)" style="color: #134EE6;text-decoration: underline;cursor: pointer;">{{ info.qymc }}</span><span v-else>{{ info.qymc }}</span></el-descriptions-item>
<el-descriptions-item label="法定代表人" contentClassName="info-link">{{ info.fddbrxm }}</el-descriptions-item> <el-descriptions-item label="法定代表人" contentClassName="info-link">{{ info.fddbrxm }}</el-descriptions-item>
<el-descriptions-item label="统一社会信用代码" contentClassName="info-link">{{ info.tyshxydm }}</el-descriptions-item> <el-descriptions-item label="统一社会信用代码" contentClassName="info-link">{{ info.tyshxydm }}</el-descriptions-item>
<el-descriptions-item label="企业类型">{{ info.qylxmc }}</el-descriptions-item> <el-descriptions-item label="企业类型">{{ info.qylxmc }}</el-descriptions-item>
@ -114,6 +114,7 @@
<script> <script>
import { tabOne, tabTwo, tabThree, tabFour, projectProgress } from "./components" import { tabOne, tabTwo, tabThree, tabFour, projectProgress } from "./components"
import { enterpriseBasicInfoId, enterpriseBasicInfoChange } from "@/api/jin_ji_hu/enterList" import { enterpriseBasicInfoId, enterpriseBasicInfoChange } from "@/api/jin_ji_hu/enterList"
import { returnUrl } from "@/api/jin_ji_hu/login"
import myDialog from "@/views/components/myDialog/index.vue" import myDialog from "@/views/components/myDialog/index.vue"
export default { export default {
dicts: ['jjh_project_type','jjh_status'], dicts: ['jjh_project_type','jjh_status'],
@ -172,6 +173,7 @@ export default {
enrollType:"", enrollType:"",
business:"", business:"",
}, },
isZhengwu:false,
rules:{ rules:{
enterpriseName:[ enterpriseName:[
{ required: true, message: '请填写企业名称', trigger: 'blur' } { required: true, message: '请填写企业名称', trigger: 'blur' }
@ -210,6 +212,15 @@ export default {
{ required: true, message: '请填写经营范围', trigger: 'blur' } { required: true, message: '请填写经营范围', trigger: 'blur' }
], ],
}, },
userToken:null,
}
},
created(){
this.userToken = localStorage.getItem('otherToken');
if(this.userToken) {
this.isZhengwu = true;
} else {
this.isZhengwu = false;
} }
}, },
mounted(){ mounted(){
@ -227,6 +238,22 @@ export default {
window.removeEventListener('resize', this.cancalDebounce); window.removeEventListener('resize', this.cancalDebounce);
}, },
methods:{ methods:{
//
goGov(tyshxydm){
returnUrl({code:tyshxydm,userToken:this.userToken}).then(res => {
if(res.code == 200) {
const url = res.msg
var signature = new RegExp(/[?&]signature=([^&#]+)/);
var s = url.match(signature);
const Signaturec = s && s[1];
const endUrl = encodeURIComponent(Signaturec);
const newUrl = url.replace(/signature=(.*?)&/, `signature=${endUrl}&`);
// console.log(newUrl,"newUrl");
window.open(newUrl);
}
})
},
//
getInfo(id){ getInfo(id){
this.loading = true; this.loading = true;
enterpriseBasicInfoId(id).then(res=>{ enterpriseBasicInfoId(id).then(res=>{

@ -17,6 +17,26 @@
label="规上服务业" label="规上服务业"
value="1"> value="1">
</el-option> </el-option>
<el-option
label="规上工业"
value="3">
</el-option>
<el-option
label="总部企业"
value="4">
</el-option>
<el-option
label="生产性服务业"
value="5">
</el-option>
<el-option
label="限上批零住餐"
value="6">
</el-option>
<el-option
label="生活性服务业"
value="7">
</el-option>
<el-option <el-option
label="其他" label="其他"
value="2"> value="2">
@ -338,11 +358,11 @@ export default {
frontDownload() { frontDownload() {
var a = document.createElement("a"); //<a></a> var a = document.createElement("a"); //<a></a>
// //
a.href = "/demo/JinJiHu/static/企业库数据模板.xlsx"; // a.href = "/demo/JinJiHu/static/.xlsx";
// //
// a.href = "/demo/JinJiHuTest/static/.xlsx"; // a.href = "/test/JinJiHuTest/static/.xlsx";
// //
// a.href = "./static/.xlsx"; a.href = "./static/企业库数据模板.xlsx";
//ahref . //ahref .
a.download ="企业库模板.xlsx"; a.download ="企业库模板.xlsx";
//.xlsxpdf.fpd //.xlsxpdf.fpd

@ -56,7 +56,7 @@
</div> </div>
<div class="promoteProject-bottom-right"> <div class="promoteProject-bottom-right">
申报时间 申报时间
<span class="span-three">{{ formatYear(item.createTime) }}</span> <span class="span-three">{{ formatYear(item) }}</span>
</div> </div>
</div> </div>
</div> </div>
@ -110,7 +110,7 @@
</div> </div>
<div class="promoteProject-bottom-right"> <div class="promoteProject-bottom-right">
申报时间 申报时间
<span class="span-three">{{ formatYear(item.createTime) }}</span> <span class="span-three">{{ formatYear(item) }}</span>
</div> </div>
</div> </div>
<div class="promoteProject-position" :class="(item.status == 0 || item.status == 1 || item.status == 2 || item.status == 3) ? 'orange' : (item.status == 6) ? 'green' : (item.status == 7 || item.status == 8 || item.status == 9 || item.status == 10) ? 'red' : ''"> <div class="promoteProject-position" :class="(item.status == 0 || item.status == 1 || item.status == 2 || item.status == 3) ? 'orange' : (item.status == 6) ? 'green' : (item.status == 7 || item.status == 8 || item.status == 9 || item.status == 10) ? 'red' : ''">
@ -335,7 +335,7 @@ export default {
}, },
// //
goProjectInfoLeft(item){ goProjectInfoLeft(item){
console.log(item,"item"); // console.log(item,"item");
if(item.projectName == "区级总部" || item.projectName == "市级服务业领军") { if(item.projectName == "区级总部" || item.projectName == "市级服务业领军") {
if(item.projectId) { if(item.projectId) {
this.$router.push({ this.$router.push({
@ -394,13 +394,10 @@ export default {
} }
}, },
formatYear(time){ formatYear(time){
const year = time.slice(0, 4); if(time.fileJson) {
let date = new Date(); return this.parseTime(time.createTime, '{y}-{m}-{d}')
const currentYear = date.getFullYear(); //(4)
if(Number(year) < Number(currentYear)) {
return year;
} else { } else {
return this.parseTime(time, '{y}-{m}-{d}') return time.projectYear
} }
}, },
formatDate(dateString,id) { formatDate(dateString,id) {

@ -10,7 +10,7 @@
<el-col :span="12" class="enterprise-honor" id="one-table" style="margin-right: 10px;"> <el-col :span="12" class="enterprise-honor" id="one-table" style="margin-right: 10px;">
<div class="box-header" id="one-table-header"> <div class="box-header" id="one-table-header">
<span class="garden"></span> <span class="garden"></span>
<span class="box-header-title">企业荣誉资质5</span> <span class="box-header-title">企业荣誉资质</span>
</div> </div>
<div class="two-tables" :style="{height : tabOneHeader + 'px'}" v-if="enterpriseHonor.length > 0"> <div class="two-tables" :style="{height : tabOneHeader + 'px'}" v-if="enterpriseHonor.length > 0">
<div class="table-items" v-for="item in enterpriseHonor" :key="item.id"> <div class="table-items" v-for="item in enterpriseHonor" :key="item.id">
@ -24,7 +24,7 @@
</div> </div>
<div class="promoteProject-bottom-right"> <div class="promoteProject-bottom-right">
申报时间 申报时间
<span class="span-three">{{ formatYear(item.createTime) }}</span> <span class="span-three">{{ formatYear(item) }}</span>
</div> </div>
</div> </div>
</div> </div>
@ -34,7 +34,7 @@
<el-col :span="12" class="relevancy-project"> <el-col :span="12" class="relevancy-project">
<div class="box-header"> <div class="box-header">
<span class="garden"></span> <span class="garden"></span>
<span class="box-header-title">关联项目进展3</span> <span class="box-header-title">关联项目进展</span>
</div> </div>
<div class="promoteProject-box-wai-box" :style="{height:tableTwoHeight + 'px'}" v-if="tableTwoData.length > 0"> <div class="promoteProject-box-wai-box" :style="{height:tableTwoHeight + 'px'}" v-if="tableTwoData.length > 0">
<div class="promoteProject-box-div" v-for="(item,index) in tableTwoData" :key="index"> <div class="promoteProject-box-div" v-for="(item,index) in tableTwoData" :key="index">
@ -48,7 +48,7 @@
</div> </div>
<div class="promoteProject-bottom-right"> <div class="promoteProject-bottom-right">
申报时间 申报时间
<span class="span-three">{{ formatYear(item.createTime) }}</span> <span class="span-three">{{ formatYear(item) }}</span>
</div> </div>
</div> </div>
<div class="promoteProject-position" :class="(item.status == 0 || item.status == 1 || item.status == 2 || item.status == 3) ? 'orange' : (item.status == 6) ? 'green' : (item.status == 7 || item.status == 8 || item.status == 9 || item.status == 10) ? 'red' : ''"> <div class="promoteProject-position" :class="(item.status == 0 || item.status == 1 || item.status == 2 || item.status == 3) ? 'orange' : (item.status == 6) ? 'green' : (item.status == 7 || item.status == 8 || item.status == 9 || item.status == 10) ? 'red' : ''">
@ -69,7 +69,7 @@
<el-table v-loading="loadingTab" class="dataMap-two-table" :data="tableData" :height="tableTwoHeight" border :header-cell-style="{background:'#E8F3FC'}"> <el-table v-loading="loadingTab" class="dataMap-two-table" :data="tableData" :height="tableTwoHeight" border :header-cell-style="{background:'#E8F3FC'}">
<el-table-column label="项目名称" prop="projectName" align="center"> <el-table-column label="项目名称" prop="projectName" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="project-trace-table" @click="goProjectInfoLeft(scope.row)">{{ scope.row.projectName }}</div> <div class="project-trace-table" :class="(scope.row.projectName == '区级总部' || scope.row.projectName == '市级服务业领军') ? '' : 'project-trace-table-gray'" @click="goProjectInfoLeft(scope.row)">{{ scope.row.projectName }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="项目类别" prop="projectType" align="center"> <el-table-column label="项目类别" prop="projectType" align="center">
@ -87,7 +87,8 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="企业名称" prop="qymc" align="center" /> <el-table-column label="企业名称" prop="qymc" align="center" />
<el-table-column label="摘要" prop="zaiyao" align="center" /> <el-table-column label="专项类型" prop="specialType" align="center" />
<el-table-column label="摘要" prop="summary" align="center" />
</el-table> </el-table>
</section> </section>
</el-col> </el-col>
@ -302,7 +303,7 @@ export default {
}, },
// //
goProjectInfoLeft(item){ goProjectInfoLeft(item){
console.log(item,"item"); // console.log(item,"item");
if(item.projectName == "区级总部" || item.projectName == "市级服务业领军") { if(item.projectName == "区级总部" || item.projectName == "市级服务业领军") {
if(item.projectId) { if(item.projectId) {
this.$router.push({ this.$router.push({
@ -361,13 +362,10 @@ export default {
} }
}, },
formatYear(time){ formatYear(time){
const year = time.slice(0, 4); if(time.fileJson) {
let date = new Date(); return this.parseTime(time.createTime, '{y}-{m}-{d}')
const currentYear = date.getFullYear(); //(4)
if(Number(year) < Number(currentYear)) {
return year;
} else { } else {
return this.parseTime(time, '{y}-{m}-{d}') return time.projectYear
} }
}, },
formatDate(dateString,id) { formatDate(dateString,id) {

@ -4,11 +4,17 @@
<header id="L-header"> <header id="L-header">
<el-form :inline="true" :model="formInline" size="small" class="demo-form-inline" ref="queryFrom"> <el-form :inline="true" :model="formInline" size="small" class="demo-form-inline" ref="queryFrom">
<el-col :span="22"> <el-col :span="22">
<el-form-item label="企业名称:" prop="enterpriseName"> <!-- <el-form-item label="企业名称:" prop="enterpriseName">
<el-input v-model.trim="formInline.enterpriseName" placeholder="请输入内容" :disabled="userType == '01' ? true : false"></el-input> <el-input v-model.trim="formInline.enterpriseName" placeholder="请输入内容" class="xinxiweihu"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="统一社会信用代码:" prop="enterpriseCode"> <el-form-item label="统一社会信用代码:" prop="enterpriseCode">
<el-input v-model.trim="formInline.enterpriseCode" placeholder="请输入内容" :disabled="userType == '01' ? true : false"></el-input> <el-input v-model.trim="formInline.enterpriseCode" placeholder="请输入内容"></el-input>
</el-form-item> -->
<el-form-item label="常用联系人姓名:" prop="contactName">
<el-input v-model.trim="formInline.contactName" placeholder="请输入内容" class="xinxiweihu"></el-input>
</el-form-item>
<el-form-item label="常用联系人手机号码:" prop="contactPhone">
<el-input v-model.trim="formInline.contactPhone" placeholder="请输入内容"></el-input>
</el-form-item> </el-form-item>
<!-- <el-form-item label="政策等级:" prop="policyLevel"> <!-- <el-form-item label="政策等级:" prop="policyLevel">
<el-select class="ignoreElement" v-model="formInline.policyLevel" placeholder="请选择"> <el-select class="ignoreElement" v-model="formInline.policyLevel" placeholder="请选择">
@ -23,8 +29,8 @@
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item> <el-form-item>
<el-button size="mini" @click="resetQuery('queryFrom')" :disabled="userType == '01' ? true : false">重置</el-button> <el-button size="mini" @click="resetQuery('queryFrom')"></el-button>
<el-button size="mini" type="primary" @click="handleQuery('queryFrom')" :disabled="userType == '01' ? true : false">查询</el-button> <el-button size="mini" type="primary" @click="handleQuery('queryFrom')"></el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="2"> <el-col :span="2">
@ -140,8 +146,10 @@ export default {
}, },
loading:false, loading:false,
formInline: { formInline: {
enterpriseName: '', // enterpriseName: '',
enterpriseCode:"", // enterpriseCode:"",
contactName:"",
contactPhone:"",
}, },
tableData:[], tableData:[],
tabHeader: undefined, tabHeader: undefined,
@ -176,12 +184,12 @@ export default {
mounted() { mounted() {
this.cancalDebounce(); this.cancalDebounce();
window.addEventListener('resize', this.cancalDebounce); window.addEventListener('resize', this.cancalDebounce);
if(this.userType == "01") { // if(this.userType == "01") {
this.pagination.enterpriseCode = this.name; // this.pagination.enterpriseCode = this.name;
this.pagination.enterpriseName = this.nickName; // this.pagination.enterpriseName = this.nickName;
this.formInline.enterpriseCode = this.name; // this.formInline.enterpriseCode = this.name;
this.formInline.enterpriseName = this.nickName; // this.formInline.enterpriseName = this.nickName;
} // }
this.getList(); this.getList();
}, },
destroyed() { destroyed() {

@ -146,8 +146,8 @@
> >
<div class="intelligentReminder_radio"> <div class="intelligentReminder_radio">
<el-radio-group v-model="addFrom.alertType" disabled> <el-radio-group v-model="addFrom.alertType" disabled>
<el-radio :label="1">申报任务即将结束企业</el-radio> <el-radio :label="2">申报任务即将结束企业</el-radio>
<el-radio :label="2">项目即将建设完成政府</el-radio> <el-radio :label="3">项目即将建设完成政府</el-radio>
</el-radio-group> </el-radio-group>
<div class="intelligentReminder_text"><span>*</span>提前<el-input-number v-model="addFrom.daysAdvance" :min="1" :controls="false"></el-input-number>天提醒</div> <div class="intelligentReminder_text"><span>*</span>提前<el-input-number v-model="addFrom.daysAdvance" :min="1" :controls="false"></el-input-number>天提醒</div>
</div> </div>
@ -228,7 +228,7 @@ export default {
alertTime:"", alertTime:"",
alertContent:"", alertContent:"",
daysAdvance: null, daysAdvance: null,
alertType: 1, alertType: 2,
}, },
rules:{ rules:{
rulesName:[ rulesName:[
@ -331,7 +331,7 @@ export default {
alertTime:"", alertTime:"",
alertContent:"", alertContent:"",
daysAdvance: null, daysAdvance: null,
alertType: 1, alertType: 2,
} }
}) })
}, },

@ -26,9 +26,9 @@
/> />
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="password"> <el-form-item prop="mima">
<el-input <el-input
v-model="loginForm.password" v-model="loginForm.mima"
type="password" type="password"
auto-complete="off" auto-complete="off"
placeholder="密码" placeholder="密码"
@ -121,7 +121,7 @@
<!-- 正式环境部署命令 unzip /var/www/html/dist.zip -d /var/www/html/bms --> <!-- 正式环境部署命令 unzip /var/www/html/dist.zip -d /var/www/html/bms -->
<!-- process.env.VUE_APP_BASE_API 替换 location.origin + '/api' publicPath /dome/JinJiHu 更换为./ --> <!-- publicPath /dome/JinJiHu 更换为./ -->
</div> </div>
</template> </template>
@ -129,6 +129,7 @@
import { getCodeImg } from "@/api/login"; import { getCodeImg } from "@/api/login";
import Cookies from "js-cookie"; import Cookies from "js-cookie";
import { encrypt, decrypt } from "@/utils/jsencrypt"; import { encrypt, decrypt } from "@/utils/jsencrypt";
import forge from 'node-forge'
export default { export default {
name: "Login", name: "Login",
@ -137,7 +138,7 @@ export default {
codeUrl: "", codeUrl: "",
loginForm: { loginForm: {
username: "", // admin username: "", // admin
password: "", // admin123 mima: "", // admin123
rememberMe: false, rememberMe: false,
code: "", code: "",
uuid: "", uuid: "",
@ -146,7 +147,7 @@ export default {
username: [ username: [
{ required: true, trigger: "blur", message: "请输入您的账号" }, { required: true, trigger: "blur", message: "请输入您的账号" },
], ],
password: [ mima: [
{ required: true, trigger: "blur", message: "请输入您的密码" }, { required: true, trigger: "blur", message: "请输入您的密码" },
], ],
code: [{ required: true, trigger: "change", message: "请输入验证码" }], code: [{ required: true, trigger: "change", message: "请输入验证码" }],
@ -158,6 +159,7 @@ export default {
register: false, register: false,
redirect: undefined, redirect: undefined,
userType:"01", userType:"01",
publicKey:`MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl8bS1kYTiMhIS5MZU253bc0ukaxrA1lfCziABFxQrC2c09tMrQGjuH6V1x2ofNBMGhOD9uWN/qkAQy/HwOe/NKUqCw6N0ov6guSrqMDW/BdZ3Bl0rmM1/95jTC1xffFFvej7xWNffIbaPI+bJ4WLX9NViNi9HmT0BRNzJ4d2R86LPPCa+bxLaPjsh2R2tBkbLkUot9769aJaPPiwPCZHMkuQenjHSmpWL0okleqMH8EGX7j6A5A/4IUXPMNKMMzkiSRpsIJ65GJmDAbnR3ZXRfC8MzVBBJB6zr5N0F4N9xZfF+JS/Yx726tCu+rA6GDCyTxtQ/wnKpPdwFP5nUWCWQIDAQAB`
}; };
}, },
watch: { watch: {
@ -190,12 +192,12 @@ export default {
}, },
getCookie() { getCookie() {
const username = Cookies.get("username"); const username = Cookies.get("username");
const password = Cookies.get("password"); const password = Cookies.get("mima");
const rememberMe = Cookies.get("rememberMe"); const rememberMe = Cookies.get("rememberMe");
this.loginForm = { this.loginForm = {
username: username === undefined ? this.loginForm.username : username, username: username === undefined ? this.loginForm.username : username,
password: password:
password === undefined ? this.loginForm.password : decrypt(password), password === undefined ? this.loginForm.mima : decrypt(password),
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe), rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
}; };
}, },
@ -205,7 +207,7 @@ export default {
this.loading = true; this.loading = true;
if (this.loginForm.rememberMe) { if (this.loginForm.rememberMe) {
Cookies.set("username", this.loginForm.username, { expires: 30 }); Cookies.set("username", this.loginForm.username, { expires: 30 });
Cookies.set("password", encrypt(this.loginForm.password), { Cookies.set("mima", encrypt(this.loginForm.mima), {
expires: 30, expires: 30,
}); });
Cookies.set("rememberMe", this.loginForm.rememberMe, { Cookies.set("rememberMe", this.loginForm.rememberMe, {
@ -213,11 +215,31 @@ export default {
}); });
} else { } else {
Cookies.remove("username"); Cookies.remove("username");
Cookies.remove("password"); Cookies.remove("mima");
Cookies.remove("rememberMe"); Cookies.remove("rememberMe");
} }
// 2048 RSA
const lines = [];
lines.push('-----BEGIN PUBLIC KEY-----');
for (let i = 0; i < this.publicKey.length; i += 64) {
lines.push(this.publicKey.slice(i, i + 64));
}
lines.push('-----END PUBLIC KEY-----');
lines.join('\n')
const publicKey = forge.pki.publicKeyFromPem(lines.join('\n'));
//
var dataBytes = forge.util.encodeUtf8(this.loginForm.mima);
//
var encryptedBytes = publicKey.encrypt(dataBytes, 'RSA-OAEP', {
md: forge.md.sha256.create(),
mgf1: {
md: forge.md.sha1.create()
}
});
// Base64
var encryptedBase64 = forge.util.encode64(encryptedBytes);
this.$store this.$store
.dispatch("Login", {...this.loginForm,userType:this.userType}) .dispatch("Login", {...this.loginForm,userType:this.userType, password: encryptedBase64})
.then(() => { .then(() => {
this.$router.push({ path: this.redirect || "/" }).catch(() => {}); this.$router.push({ path: this.redirect || "/" }).catch(() => {});
}) })
@ -272,6 +294,7 @@ export default {
border-radius: 6px; border-radius: 6px;
background: #ffffff; background: #ffffff;
width: 400px; width: 400px;
// height: 200px;
height: 420px; height: 420px;
padding: 25px 25px 5px 25px; padding: 25px 25px 5px 25px;
box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.15); box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.15);

@ -11,7 +11,8 @@
<el-tab-pane label="企业用户登录" name="01"></el-tab-pane> <el-tab-pane label="企业用户登录" name="01"></el-tab-pane>
<el-tab-pane label="政务用户登录" name="02"></el-tab-pane> <el-tab-pane label="政务用户登录" name="02"></el-tab-pane>
</el-tabs> </el-tabs>
<el-form-item prop="username"> <!-- v-show="userType == '02'" -->
<!-- <el-form-item prop="username">
<el-input <el-input
v-model="loginForm.username" v-model="loginForm.username"
type="text" type="text"
@ -25,9 +26,9 @@
/> />
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="password"> <el-form-item prop="mima">
<el-input <el-input
v-model="loginForm.password" v-model="loginForm.mima"
type="password" type="password"
auto-complete="off" auto-complete="off"
placeholder="密码" placeholder="密码"
@ -40,7 +41,7 @@
/> />
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="code" v-if="false"> <el-form-item prop="code" v-if="captchaEnabled">
<el-input <el-input
v-model="loginForm.code" v-model="loginForm.code"
auto-complete="off" auto-complete="off"
@ -57,14 +58,14 @@
<div class="login-code"> <div class="login-code">
<img :src="codeUrl" @click="getCode" class="login-code-img" /> <img :src="codeUrl" @click="getCode" class="login-code-img" />
</div> </div>
</el-form-item> </el-form-item> -->
<el-checkbox <!-- <el-checkbox
v-model="loginForm.rememberMe" v-model="loginForm.rememberMe"
style="margin: 0px 0px 25px 0px" style="margin: 0px 0px 25px 0px"
>记住密码</el-checkbox >记住密码</el-checkbox
> > -->
<el-form-item style="width: 100%"> <el-form-item style="width: 100%">
<el-button <!-- <el-button
:loading="loading" :loading="loading"
size="medium" size="medium"
type="primary" type="primary"
@ -73,21 +74,45 @@
> >
<span v-if="!loading"> </span> <span v-if="!loading"> </span>
<span v-else> ...</span> <span v-else> ...</span>
</el-button> </el-button> -->
<!-- <el-button <el-button
size="medium" size="medium"
type="primary" type="primary"
v-if="userType == '02'"
style="width: 100%;margin-left: 0;margin-top: 20px;" style="width: 100%;margin-left: 0;margin-top: 20px;"
@click.native.prevent="changeHttp" @click.native.prevent="changeHttp"
> >
<span>政务通统一身份认证登录</span> <span>政务通统一身份认证登录</span>
</el-button> --> </el-button>
<el-button
size="medium"
type="primary"
v-if="userType == '01'"
style="width: 100%;margin-left: 0;margin-top: 20px;"
@click.native.prevent="changeHttp"
>
<span>企业统一身份认证登录</span>
</el-button>
<div style="float: right" v-if="register"> <div style="float: right" v-if="register">
<router-link class="link-type" :to="'/register'" <router-link class="link-type" :to="'/register'"
>立即注册</router-link >立即注册</router-link
> >
</div> </div>
</el-form-item> </el-form-item>
<!-- <el-form-item style="width: 100%" class="enterBtnLogin">
<div class="wai-box">
<el-button
:loading="loading"
size="medium"
type="primary"
style="width: 100%"
@click.native.prevent="handleLogin"
>
<span v-if="!loading"></span>
<span v-else> ...</span>
</el-button>
</div>
</el-form-item> -->
</el-form> </el-form>
<!-- 底部 --> <!-- 底部 -->
<!-- <div class="el-login-footer"> <!-- <div class="el-login-footer">
@ -96,7 +121,7 @@
<!-- 正式环境部署命令 unzip /var/www/html/dist.zip -d /var/www/html/bms --> <!-- 正式环境部署命令 unzip /var/www/html/dist.zip -d /var/www/html/bms -->
<!-- process.env.VUE_APP_BASE_API 替换 location.origin + '/api' publicPath /dome/JinJiHu 更换为./ --> <!-- publicPath /dome/JinJiHu 更换为./ -->
</div> </div>
</template> </template>
@ -104,6 +129,7 @@
import { getCodeImg } from "@/api/login"; import { getCodeImg } from "@/api/login";
import Cookies from "js-cookie"; import Cookies from "js-cookie";
import { encrypt, decrypt } from "@/utils/jsencrypt"; import { encrypt, decrypt } from "@/utils/jsencrypt";
import forge from 'node-forge'
export default { export default {
name: "Login", name: "Login",
@ -112,7 +138,7 @@ export default {
codeUrl: "", codeUrl: "",
loginForm: { loginForm: {
username: "", // admin username: "", // admin
password: "", // admin123 mima: "", // admin123
rememberMe: false, rememberMe: false,
code: "", code: "",
uuid: "", uuid: "",
@ -121,7 +147,7 @@ export default {
username: [ username: [
{ required: true, trigger: "blur", message: "请输入您的账号" }, { required: true, trigger: "blur", message: "请输入您的账号" },
], ],
password: [ mima: [
{ required: true, trigger: "blur", message: "请输入您的密码" }, { required: true, trigger: "blur", message: "请输入您的密码" },
], ],
code: [{ required: true, trigger: "change", message: "请输入验证码" }], code: [{ required: true, trigger: "change", message: "请输入验证码" }],
@ -133,6 +159,7 @@ export default {
register: false, register: false,
redirect: undefined, redirect: undefined,
userType:"01", userType:"01",
publicKey:`MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl8bS1kYTiMhIS5MZU253bc0ukaxrA1lfCziABFxQrC2c09tMrQGjuH6V1x2ofNBMGhOD9uWN/qkAQy/HwOe/NKUqCw6N0ov6guSrqMDW/BdZ3Bl0rmM1/95jTC1xffFFvej7xWNffIbaPI+bJ4WLX9NViNi9HmT0BRNzJ4d2R86LPPCa+bxLaPjsh2R2tBkbLkUot9769aJaPPiwPCZHMkuQenjHSmpWL0okleqMH8EGX7j6A5A/4IUXPMNKMMzkiSRpsIJ65GJmDAbnR3ZXRfC8MzVBBJB6zr5N0F4N9xZfF+JS/Yx726tCu+rA6GDCyTxtQ/wnKpPdwFP5nUWCWQIDAQAB`
}; };
}, },
watch: { watch: {
@ -165,12 +192,12 @@ export default {
}, },
getCookie() { getCookie() {
const username = Cookies.get("username"); const username = Cookies.get("username");
const password = Cookies.get("password"); const password = Cookies.get("mima");
const rememberMe = Cookies.get("rememberMe"); const rememberMe = Cookies.get("rememberMe");
this.loginForm = { this.loginForm = {
username: username === undefined ? this.loginForm.username : username, username: username === undefined ? this.loginForm.username : username,
password: password:
password === undefined ? this.loginForm.password : decrypt(password), password === undefined ? this.loginForm.mima : decrypt(password),
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe), rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
}; };
}, },
@ -180,7 +207,7 @@ export default {
this.loading = true; this.loading = true;
if (this.loginForm.rememberMe) { if (this.loginForm.rememberMe) {
Cookies.set("username", this.loginForm.username, { expires: 30 }); Cookies.set("username", this.loginForm.username, { expires: 30 });
Cookies.set("password", encrypt(this.loginForm.password), { Cookies.set("mima", encrypt(this.loginForm.mima), {
expires: 30, expires: 30,
}); });
Cookies.set("rememberMe", this.loginForm.rememberMe, { Cookies.set("rememberMe", this.loginForm.rememberMe, {
@ -188,25 +215,51 @@ export default {
}); });
} else { } else {
Cookies.remove("username"); Cookies.remove("username");
Cookies.remove("password"); Cookies.remove("mima");
Cookies.remove("rememberMe"); Cookies.remove("rememberMe");
} }
// 2048 RSA
const lines = [];
lines.push('-----BEGIN PUBLIC KEY-----');
for (let i = 0; i < this.publicKey.length; i += 64) {
lines.push(this.publicKey.slice(i, i + 64));
}
lines.push('-----END PUBLIC KEY-----');
lines.join('\n')
const publicKey = forge.pki.publicKeyFromPem(lines.join('\n'));
//
var dataBytes = forge.util.encodeUtf8(this.loginForm.mima);
//
var encryptedBytes = publicKey.encrypt(dataBytes, 'RSA-OAEP', {
md: forge.md.sha256.create(),
mgf1: {
md: forge.md.sha1.create()
}
});
// Base64
var encryptedBase64 = forge.util.encode64(encryptedBytes);
this.$store this.$store
.dispatch("Login", {...this.loginForm,userType:this.userType}) .dispatch("Login", {...this.loginForm,userType:this.userType, password: encryptedBase64})
.then(() => { .then(() => {
this.$router.push({ path: this.redirect || "/" }).catch(() => {}); this.$router.push({ path: this.redirect || "/" }).catch(() => {});
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false;
// if (this.captchaEnabled) { if (this.captchaEnabled) {
// this.getCode(); // if(this.userType == "02") {
this.getCode();
// } // }
}
}); });
} }
}); });
}, },
changeHttp(){ changeHttp(){
if(this.userType == '01') {
location.href = process.env.VUE_APP_BASE_API + "/system/singlelogin/login"
} else {
location.href = "https://qyt.sipac.gov.cn/sipsg-enterprise-mobile-manage/#/login" location.href = "https://qyt.sipac.gov.cn/sipsg-enterprise-mobile-manage/#/login"
}
}, },
}, },
}; };
@ -241,7 +294,8 @@ export default {
border-radius: 6px; border-radius: 6px;
background: #ffffff; background: #ffffff;
width: 400px; width: 400px;
height: 330px; height: 200px;
// height: 420px;
padding: 25px 25px 5px 25px; padding: 25px 25px 5px 25px;
box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.15); box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.15);
.el-input { .el-input {

@ -77,7 +77,7 @@
<template slot="label"> <template slot="label">
联络电话 联络电话
</template> </template>
{{ baseInfo.fddbrzjhm }} <!-- contactsNumber --> {{ baseInfo.lxdh }} <!-- contactsNumber -->
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
@ -88,7 +88,7 @@
</el-descriptions> </el-descriptions>
<div class="table-content"> <div class="table-content">
<el-descriptions class="margin-top" title="【项目投资计划】" :column="3" :size="size" border :label-style="LS"> <el-descriptions class="margin-top" title="【项目投资计划】" :column="3" :size="size" border :label-style="LS" v-if="templateInfo.templateName !== '平台问卷摸底'">
</el-descriptions> </el-descriptions>
<ismybuild ref="ismybuild" :templateJson="templateInfo.templateJson"></ismybuild> <ismybuild ref="ismybuild" :templateJson="templateInfo.templateJson"></ismybuild>
</div> </div>
@ -341,7 +341,14 @@ export default {
this.templateRecordId = templateRecordId this.templateRecordId = templateRecordId
let { data } = await getTemplateInfo({ templateId: templateId }) let { data } = await getTemplateInfo({ templateId: templateId })
this.templateInfo = data this.templateInfo = data
// console.log(7777, this.templateInfo); this.$nextTick(()=>{
if(this.templateInfo.templateName == '平台问卷摸底') {
// console.log(document.querySelectorAll(".el-upload__tip"));
document.querySelectorAll(".el-upload__tip")[0].innerHTML = "doc docx格式不少于500字限1个文件不超过10MB"
document.querySelectorAll(".el-upload__tip")[1].innerHTML = "jpg jpeg png格式限3张照片限高清图片不超过10MB"
}
})
// console.log(7777, this.templateInfo);el-upload__tip
this.$refs.ismybuild.jsonOpen(this.templateInfo.templateJson) this.$refs.ismybuild.jsonOpen(this.templateInfo.templateJson)
switch (this.templateId) { switch (this.templateId) {
case '2': case '2':

@ -1660,7 +1660,7 @@ export default {
params.evidence += `${item.url},` params.evidence += `${item.url},`
} }
}) })
console.log('11', params); // console.log('11', params);
addBrandingAward(params).then((response) => { addBrandingAward(params).then((response) => {
this.$message.success("上传成功"); this.$message.success("上传成功");
this.$router.go(-1) this.$router.go(-1)

@ -157,14 +157,14 @@ export default {
}, },
activeFormItem() { activeFormItem() {
console.log("activeFormItem"); // console.log("activeFormItem");
}, },
drawingItemCopy() { drawingItemCopy() {
console.log("drawingItemCopy"); // console.log("drawingItemCopy");
}, },
drawingItemDelete() { drawingItemDelete() {
console.log("drawingItemDelete"); // console.log("drawingItemDelete");
}, },

@ -4547,7 +4547,7 @@ export default {
data.url = response.fileName; data.url = response.fileName;
this.uploadListThree.push(data); this.uploadListThree.push(data);
this.form.fileListThree = this.fileListThree; this.form.fileListThree = this.fileListThree;
console.log("this.fileListThree: ", this.fileListThree); // console.log("this.fileListThree: ", this.fileListThree);
}); });
}, },
/* 上传四 */ /* 上传四 */
@ -4794,7 +4794,7 @@ export default {
let imgHeight = 592.28 / contentWidth * contentHeight let imgHeight = 592.28 / contentWidth * contentHeight
let pageData = canvas.toDataURL('image/jpeg', 1.0) let pageData = canvas.toDataURL('image/jpeg', 1.0)
let PDF = new JsPDF('p', 'pt', 'a4') // [592.28 * 841.89] let PDF = new JsPDF('p', 'pt', 'a4') // [592.28 * 841.89]
console.log(pageData); // console.log(pageData);
if (leftHeight < pageHeight) { if (leftHeight < pageHeight) {
PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight) PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)
} else { } else {

@ -79,7 +79,7 @@
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> 联络电话 </template> <template slot="label"> 联络电话 </template>
{{ baseInfo.fddbrzjhm }} {{ baseInfo.lxdh }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> 企业地址 </template> <template slot="label"> 企业地址 </template>
@ -128,6 +128,7 @@
</span> </span>
<div class="contain_main"> <div class="contain_main">
<div v-if="item.approvalByName && item.approvalStatus == 1">{{ item.approvalByName }}</div> <div v-if="item.approvalByName && item.approvalStatus == 1">{{ item.approvalByName }}</div>
<div v-if="item.approvalByName && item.approvalStatus == 2">{{ item.approvalByName }}</div>
<div v-show="item.approvalOpinions"> <div v-show="item.approvalOpinions">
审核意见{{ item.approvalOpinions }} 审核意见{{ item.approvalOpinions }}
</div> </div>
@ -141,7 +142,7 @@
</div> </div>
<div class="attach_right" v-if="item.approvalAttachment"> <div class="attach_right" v-if="item.approvalAttachment">
<div v-for="(attachment, index) in item.children" :key="index" class="attach_item"> <div v-for="(attachment, index) in item.children" :key="index" class="attach_item">
<a :href="VUE_APP_BASE_API + item.url" target="_blank"> <a :href="VUE_APP_BASE_API + item.approvalAttachment" target="_blank">
<img src="../../../assets/images/uploadBgc.jpg" class="li_img" alt="" /> <img src="../../../assets/images/uploadBgc.jpg" class="li_img" alt="" />
<span class="icon_name">{{ <span class="icon_name">{{
attachment | dealURL attachment | dealURL
@ -499,6 +500,7 @@ export default {
item.children = item.approvalAttachment.split(","); item.children = item.approvalAttachment.split(",");
} }
this.approvalInfoList.push(item); this.approvalInfoList.push(item);
// console.log(this.approvalInfoList,"this.approvalInfoList");
return item; return item;
}); });
if (this.templateId == "1") { if (this.templateId == "1") {

@ -80,18 +80,18 @@
</template> </template>
</el-table-column> --> </el-table-column> -->
<!-- <el-table-column align="center" label="开放时间" :show-overflow-tooltip="true" min-width="180" > --> <!-- <el-table-column align="center" label="开放时间" :show-overflow-tooltip="true" min-width="180" > -->
<el-table-column align="center" label="任务填报时间" :show-overflow-tooltip="true" min-width="180" > <el-table-column label="任务填报时间" :show-overflow-tooltip="true" min-width="180" >
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.startTime && scope.row.endTime">{{ scope.row.startTime }}~{{ scope.row.endTime }}</span> <span v-if="scope.row.startTime && scope.row.endTime">{{ scope.row.startTime }}~{{ scope.row.endTime }}</span>
<span v-else></span> <span v-else></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="status" label="责任单位" min-width="80"> <el-table-column prop="status" label="责任单位" min-width="160">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.bms_responsibility_unit" :value="scope.row.responsibilityUnit"/> <dict-tag :options="dict.type.bms_responsibility_unit" :value="scope.row.responsibilityUnit"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="notes" label="说明" min-width="80" :show-overflow-tooltip="true"></el-table-column> <el-table-column prop="notes" label="说明" min-width="160" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" min-width="160"> <el-table-column label="创建时间" align="center" prop="createTime" min-width="160">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
@ -207,16 +207,16 @@
<el-col :span="24"> <el-col :span="24">
<el-form-item label="是否限时" prop="isTime"> <el-form-item label="是否限时" prop="isTime">
<el-radio-group v-model="form.isTime" :disabled="isReplace"> <el-radio-group v-model="form.isTime" :disabled="isReplace">
<el-radio :label="0">限时</el-radio> <el-radio v-removeAriaHiddent :label="0">限时</el-radio>
<el-radio :label="1">不限时</el-radio> <el-radio v-removeAriaHiddent :label="1">不限时</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="是否审批" prop="isApproval"> <el-form-item label="是否审批" prop="isApproval">
<el-radio-group v-model="form.isApproval" :disabled="isApprovalDisabled"> <el-radio-group v-model="form.isApproval" :disabled="isApprovalDisabled">
<el-radio :label="0">不需要审批</el-radio> <el-radio v-removeAriaHiddent :label="0">不需要审批</el-radio>
<el-radio :label="1">需要审批</el-radio> <el-radio v-removeAriaHiddent :label="1">需要审批</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -262,8 +262,8 @@
<el-radio label="0">Excel批量导入</el-radio> <el-radio label="0">Excel批量导入</el-radio>
</el-radio-group> --> </el-radio-group> -->
<el-radio-group v-model="form.isFrame"> <el-radio-group v-model="form.isFrame">
<el-radio :label="0">所有企业</el-radio> <el-radio v-removeAriaHiddent :label="0">所有企业</el-radio>
<el-radio :label="1">部分企业</el-radio> <el-radio v-removeAriaHiddent :label="1">部分企业</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -343,8 +343,9 @@ export default {
dicts: ['bms_responsibility_unit', 'bms_declaration_channels', 'bms_level', 'jjh_project_type', "project_small_type"], dicts: ['bms_responsibility_unit', 'bms_declaration_channels', 'bms_level', 'jjh_project_type', "project_small_type"],
data() { data() {
let validateTime = (rule, value, callback) => { let validateTime = (rule, value, callback) => {
if (new Date(value[1]) < new Date()) { let now = new Date();
callback(new Error('选择结束时间需大于当前时间')) if (new Date(value[1]) < new Date(now.getFullYear(), now.getMonth(), now.getDate(), 8, 0, 0, 0)) {
callback(new Error('选择结束时间需大于或等于当前时间'))
} else { } else {
callback() callback()
} }
@ -847,11 +848,11 @@ export default {
frontDownload() { frontDownload() {
var a = document.createElement("a"); //<a></a> var a = document.createElement("a"); //<a></a>
// //
a.href = "/demo/JinJiHu/static/企业名录模板.xlsx"; // a.href = "/demo/JinJiHu/static/.xlsx";
// //
// a.href = "/demo/JinJiHuTest/static/.xlsx"; // a.href = "/test/JinJiHuTest/static/.xlsx";
// //
// a.href = "./static/.xlsx"; a.href = "./static/企业名录模板.xlsx";
//ahref . //ahref .
a.download ="企业名录模板.xlsx"; a.download ="企业名录模板.xlsx";
//.xlsxpdf.fpd //.xlsxpdf.fpd

@ -174,10 +174,11 @@
<el-col :span="24" v-if="deptId == '103'"> <el-col :span="24" v-if="deptId == '103'">
<el-form-item <el-form-item
label="审批意见" label="审批意见"
prop="approvalOpinions"
:rules="deptId == '103' ? rules.approvalOpinions : [
{required: false, message: '请导入所需的文件', trigger: 'blur' }]"
> >
<!-- prop="approvalOpinions" :rules="deptId == '103' ? rules.approvalOpinions : [
{required: false, message: '请导入所需的文件', trigger: 'blur' }]" -->
<el-input v-model="form.approvalOpinions" type="textarea" placeholder="请输入审批意见" maxlength="200"></el-input> <el-input v-model="form.approvalOpinions" type="textarea" placeholder="请输入审批意见" maxlength="200"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>

@ -4,7 +4,7 @@
<el-form-item label="申报任务标题" prop="enterpriseDirectory"> <el-form-item label="申报任务标题" prop="enterpriseDirectory">
<el-input <el-input
v-model="queryParams.enterpriseDirectory" v-model="queryParams.enterpriseDirectory"
placeholder="请输入模版名称" placeholder="请输入申报任务标题"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
@ -537,7 +537,7 @@ export default {
let enterpriseName = []; let enterpriseName = [];
this.multipleSelection.map((item)=>{ this.multipleSelection.map((item)=>{
id.push(Number(item.id)) id.push(Number(item.id))
name.push(item.projectName) name.push(item.enterpriseDirectory)
enterpriseName.push(item.enterpriseName) enterpriseName.push(item.enterpriseName)
}) })
exportZip({list:id.join(",")}).then((response) => { exportZip({list:id.join(",")}).then((response) => {
@ -546,7 +546,7 @@ export default {
const link = document.createElement("a"); // a const link = document.createElement("a"); // a
link.href = url; link.href = url;
if(this.multipleSelection.length == 1){ if(this.multipleSelection.length == 1){
link.download = name[0] + enterpriseName[0]; link.download = enterpriseName[0] + '-' + name[0];
} else { } else {
link.download = "申报表单"; // link.download = "申报表单"; //
} }
@ -580,13 +580,20 @@ export default {
// }, // },
/** 开始填报按钮操作 */ /** 开始填报按钮操作 */
handleAdd(row){ handleAdd(row){
// console.log(row); if(row.templateRecordStatus == 0) {
this.$message.error('该申请未开始');
return;
} else if(row.templateRecordStatus == 1) {
this.$message.error('该申请已过期');
return;
} else {
this.$router.push({name: 'onlineDeclareAdd',query: { this.$router.push({name: 'onlineDeclareAdd',query: {
templateId: row.templateId, templateId: row.templateId,
templateRecordId: row.templateRecordId, templateRecordId: row.templateRecordId,
declarationId: row.id, declarationId: row.id,
pageType: "add", pageType: "add",
}}) }})
}
}, },
/** 查看审核详情操作 */ /** 查看审核详情操作 */
handleDetail(row){ handleDetail(row){

@ -1348,7 +1348,7 @@ export default {
async mounted(){}, async mounted(){},
methods: { methods: {
inputSocialCode(valid) { inputSocialCode(valid) {
console.log('valid: ', valid); // console.log('valid: ', valid);
if(valid) { if(valid) {
getEnterpriseInfo({socialCode: valid}).then((response) => { getEnterpriseInfo({socialCode: valid}).then((response) => {
this.baseInfo = response.data.enterpriseBasicList[0] this.baseInfo = response.data.enterpriseBasicList[0]
@ -1465,7 +1465,7 @@ export default {
detailList.push({amount: this.form.revenueNowYear,detailId: '',illustrate: '预计营收', templateRecordId: this.templateRecordId,type: this.templateId,vmodel: 'revenueNowYear',year: Number(this.openInterfaceInfo.year)+1}) detailList.push({amount: this.form.revenueNowYear,detailId: '',illustrate: '预计营收', templateRecordId: this.templateRecordId,type: this.templateId,vmodel: 'revenueNowYear',year: Number(this.openInterfaceInfo.year)+1})
detailList.push({amount: this.form.taxationNowYear,detailId: '',illustrate: '预计税收', templateRecordId: this.templateRecordId,type: this.templateId,vmodel: 'taxationNowYear',year: Number(this.openInterfaceInfo.year)+1}) detailList.push({amount: this.form.taxationNowYear,detailId: '',illustrate: '预计税收', templateRecordId: this.templateRecordId,type: this.templateId,vmodel: 'taxationNowYear',year: Number(this.openInterfaceInfo.year)+1})
params.fundingDetailList = detailList params.fundingDetailList = detailList
console.log('11', params); // console.log('11', params);
unifyReport({ unifyReport({
bmsProjectSettlementAwardAddDto: params, bmsProjectSettlementAwardAddDto: params,
declarationTemplateType: this.openInterfaceInfo.declarationTemplateType declarationTemplateType: this.openInterfaceInfo.declarationTemplateType
@ -1499,7 +1499,7 @@ export default {
detailList.push({amount: this.form.revenueNowYear,detailId: '',illustrate: '预计营收', templateRecordId: this.templateRecordId,type: this.templateId,vmodel: 'revenueNowYear',year: Number(this.openInterfaceInfo.year)+3}) detailList.push({amount: this.form.revenueNowYear,detailId: '',illustrate: '预计营收', templateRecordId: this.templateRecordId,type: this.templateId,vmodel: 'revenueNowYear',year: Number(this.openInterfaceInfo.year)+3})
detailList.push({amount: this.form.taxationNowYear,detailId: '',illustrate: '预计营收', templateRecordId: this.templateRecordId,type: this.templateId,vmodel: 'taxationNowYear',year: Number(this.openInterfaceInfo.year)+3}) detailList.push({amount: this.form.taxationNowYear,detailId: '',illustrate: '预计营收', templateRecordId: this.templateRecordId,type: this.templateId,vmodel: 'taxationNowYear',year: Number(this.openInterfaceInfo.year)+3})
params.fundingDetailList = detailList params.fundingDetailList = detailList
console.log('11', params); // console.log('11', params);
unifyReport({ unifyReport({
bmsBigStrongAwardAddDto: params, bmsBigStrongAwardAddDto: params,
declarationTemplateType: this.openInterfaceInfo.declarationTemplateType declarationTemplateType: this.openInterfaceInfo.declarationTemplateType
@ -1536,7 +1536,7 @@ export default {
params.fireReport+=`${item.url},` params.fireReport+=`${item.url},`
} }
}) })
console.log('11', params); // console.log('11', params);
unifyReport({ unifyReport({
bmsCarrierConstructionAwardAddDto: params, bmsCarrierConstructionAwardAddDto: params,
declarationTemplateType: this.openInterfaceInfo.declarationTemplateType declarationTemplateType: this.openInterfaceInfo.declarationTemplateType
@ -1558,7 +1558,7 @@ export default {
params.agreement+=`${item.url},` params.agreement+=`${item.url},`
} }
}) })
console.log('11', params); // console.log('11', params);
unifyReport({ unifyReport({
bmsPlatformConstructionAwardAddDto: params, bmsPlatformConstructionAwardAddDto: params,
declarationTemplateType: this.openInterfaceInfo.declarationTemplateType declarationTemplateType: this.openInterfaceInfo.declarationTemplateType
@ -1579,7 +1579,7 @@ export default {
params.evidence+=`${item.url},` params.evidence+=`${item.url},`
} }
}) })
console.log('11', params); // console.log('11', params);
unifyReport({ unifyReport({
bmsBrandingAwardAddDto: params, bmsBrandingAwardAddDto: params,
declarationTemplateType: this.openInterfaceInfo.declarationTemplateType declarationTemplateType: this.openInterfaceInfo.declarationTemplateType
@ -1600,7 +1600,7 @@ export default {
params.material+=`${item.url},` params.material+=`${item.url},`
} }
}) })
console.log('11', params); // console.log('11', params);
unifyReport({ unifyReport({
bmsSceneOpeningAwardAddDto: params, bmsSceneOpeningAwardAddDto: params,
declarationTemplateType: this.openInterfaceInfo.declarationTemplateType declarationTemplateType: this.openInterfaceInfo.declarationTemplateType
@ -1634,7 +1634,7 @@ export default {
params.auditReport+=`${item.url},` params.auditReport+=`${item.url},`
} }
}) })
console.log('11', params); // console.log('11', params);
unifyReport({ unifyReport({
bmsCreditManagementAddDto: params, bmsCreditManagementAddDto: params,
declarationTemplateType: this.openInterfaceInfo.declarationTemplateType declarationTemplateType: this.openInterfaceInfo.declarationTemplateType
@ -1655,7 +1655,7 @@ export default {
params.material+=`${item.url},` params.material+=`${item.url},`
} }
}) })
console.log('11', params); // console.log('11', params);
unifyReport({ unifyReport({
bmsIndustrialInternetAwardAddDto: params, bmsIndustrialInternetAwardAddDto: params,
declarationTemplateType: this.openInterfaceInfo.declarationTemplateType declarationTemplateType: this.openInterfaceInfo.declarationTemplateType
@ -1696,7 +1696,7 @@ export default {
params.financialStatements+=`${item.url},` params.financialStatements+=`${item.url},`
} }
}) })
console.log('11', params); // console.log('11', params);
unifyReport({ unifyReport({
bmsManufacturingServicesAwardAddDto: params, bmsManufacturingServicesAwardAddDto: params,
declarationTemplateType: this.openInterfaceInfo.declarationTemplateType declarationTemplateType: this.openInterfaceInfo.declarationTemplateType
@ -1737,7 +1737,7 @@ export default {
params.auditReport+=`${item.url},` params.auditReport+=`${item.url},`
} }
}) })
console.log('11', params); // console.log('11', params);
unifyReport({ unifyReport({
bmsLogisticsDevelopmentAwardAddDto: params, bmsLogisticsDevelopmentAwardAddDto: params,
declarationTemplateType: this.openInterfaceInfo.declarationTemplateType declarationTemplateType: this.openInterfaceInfo.declarationTemplateType
@ -1814,7 +1814,7 @@ export default {
params.otherEvidence+=`${item.url},` params.otherEvidence+=`${item.url},`
} }
}) })
console.log('11', params); // console.log('11', params);
unifyReport({ unifyReport({
bmsIntegrationIndustriesAddDto: params, bmsIntegrationIndustriesAddDto: params,
declarationTemplateType: this.openInterfaceInfo.declarationTemplateType declarationTemplateType: this.openInterfaceInfo.declarationTemplateType
@ -1839,7 +1839,7 @@ export default {
this.fileList = fileList this.fileList = fileList
}, },
handleFileUpload(params) { handleFileUpload(params) {
console.log('params: ', params); // console.log('params: ', params);
this.form.fileName = params.file.name this.form.fileName = params.file.name
const file = params.file const file = params.file
let form = new FormData() let form = new FormData()
@ -1852,7 +1852,7 @@ export default {
data.url = response.fileName; data.url = response.fileName;
this.uploadList.push(data) this.uploadList.push(data)
this.form.fileList = this.fileList this.form.fileList = this.fileList
console.log('this.fileList: ', this.fileList); // console.log('this.fileList: ', this.fileList);
}) })
}, },
deleteUpload(value) { deleteUpload(value) {
@ -1862,7 +1862,7 @@ export default {
}, },
/* 上传一 */ /* 上传一 */
handleFileUploadOne(params) { handleFileUploadOne(params) {
console.log('params: ', params); // console.log('params: ', params);
this.form.fileName = params.file.name this.form.fileName = params.file.name
const file = params.file const file = params.file
let form = new FormData() let form = new FormData()
@ -1881,7 +1881,7 @@ export default {
}, },
/* 上传二 */ /* 上传二 */
handleFileUploadTwo(params) { handleFileUploadTwo(params) {
console.log('params: ', params); // console.log('params: ', params);
this.form.fileName = params.file.name this.form.fileName = params.file.name
const file = params.file const file = params.file
let form = new FormData() let form = new FormData()
@ -1900,7 +1900,7 @@ export default {
}, },
/* 上传三 */ /* 上传三 */
handleFileUploadThree(params) { handleFileUploadThree(params) {
console.log('params: ', params); // console.log('params: ', params);
this.form.fileName = params.file.name this.form.fileName = params.file.name
const file = params.file const file = params.file
let form = new FormData() let form = new FormData()
@ -1919,7 +1919,7 @@ export default {
}, },
/* 上传四 */ /* 上传四 */
handleFileUploadFour(params) { handleFileUploadFour(params) {
console.log('params: ', params); // console.log('params: ', params);
this.form.fileName = params.file.name this.form.fileName = params.file.name
const file = params.file const file = params.file
let form = new FormData() let form = new FormData()
@ -1938,7 +1938,7 @@ export default {
}, },
/* 上传五 */ /* 上传五 */
handleFileUploadFive(params) { handleFileUploadFive(params) {
console.log('params: ', params); // console.log('params: ', params);
this.form.fileName = params.file.name this.form.fileName = params.file.name
const file = params.file const file = params.file
let form = new FormData() let form = new FormData()
@ -1957,7 +1957,7 @@ export default {
}, },
/* 上传六 */ /* 上传六 */
handleFileUploadSix(params) { handleFileUploadSix(params) {
console.log('params: ', params); // console.log('params: ', params);
this.form.fileName = params.file.name this.form.fileName = params.file.name
const file = params.file const file = params.file
let form = new FormData() let form = new FormData()
@ -1976,7 +1976,7 @@ export default {
}, },
/* 上传七 */ /* 上传七 */
handleFileUploadSeven(params) { handleFileUploadSeven(params) {
console.log('params: ', params); // console.log('params: ', params);
this.form.fileName = params.file.name this.form.fileName = params.file.name
const file = params.file const file = params.file
let form = new FormData() let form = new FormData()
@ -1995,7 +1995,7 @@ export default {
}, },
/* 上传八 */ /* 上传八 */
handleFileUploadEight(params) { handleFileUploadEight(params) {
console.log('params: ', params); // console.log('params: ', params);
this.form.fileName = params.file.name this.form.fileName = params.file.name
const file = params.file const file = params.file
let form = new FormData() let form = new FormData()
@ -2014,7 +2014,7 @@ export default {
}, },
/* 上传九 */ /* 上传九 */
handleFileUploadNine(params) { handleFileUploadNine(params) {
console.log('params: ', params); // console.log('params: ', params);
this.form.fileName = params.file.name this.form.fileName = params.file.name
const file = params.file const file = params.file
let form = new FormData() let form = new FormData()

@ -361,6 +361,8 @@ export default {
this.$router.push({name: 'onlineDeclareDetail',query: { this.$router.push({name: 'onlineDeclareDetail',query: {
templateId: row.id, templateId: row.id,
pageType: "template", pageType: "template",
projectSmallType: row.projectSmallType,
templateName: row.templateName,
}}) }})
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */

@ -36,7 +36,7 @@
级别{{ info.level == 0 ? '本级' : info.level == 1 ? '省级' : '' }} 级别{{ info.level == 0 ? '本级' : info.level == 1 ? '省级' : '' }}
</el-col> </el-col>
</el-row> </el-row>
<el-descriptions class="margin-top" title="【申报企业信息】" :column="3" :size="size" border :label-style="LS"> <el-descriptions class="margin-top" title="【申报企业信息】" :column="3" :size="size" border :label-style="LS" v-if="projectSmallType !== 26 && templateName !== '企业调研问卷' && templateId !== 53">
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
申报企业名称 申报企业名称
@ -63,7 +63,29 @@
</template> </template>
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<div class="table-content"> <el-descriptions class="margin-top" title="【企业调研问卷】" :column="2" :size="size" border :label-style="LS" v-if="projectSmallType == 26 && templateName == '企业调研问卷'">
<el-descriptions-item>
<template slot="label">
公司名称
</template>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
成立时间
</template>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
联络人
</template>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
联络电话
</template>
</el-descriptions-item>
</el-descriptions>
<div class="table-content" v-if="templateName !== '企业问卷调查' && templateName !== '企业调研问卷' && templateName !== '平台问卷摸底'">
<el-descriptions class="margin-top" title="【项目投资计划】" :column="2" :size="size" border :label-style="LS"> <el-descriptions class="margin-top" title="【项目投资计划】" :column="2" :size="size" border :label-style="LS">
<el-descriptions-item v-for="(item,index) in templateJson.fields" :key="index" v-if="!item.action"> <el-descriptions-item v-for="(item,index) in templateJson.fields" :key="index" v-if="!item.action">
<template slot="label"> <template slot="label">
@ -72,7 +94,571 @@
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
<!-- 上传文件列表 --> <div class="table-content" v-if="templateName == '平台问卷摸底'">
<el-descriptions class="margin-top" title="【项目投资计划】" :column="2" :size="size" border :label-style="LS">
<el-descriptions-item v-for="(item,index) in templateJson.fields" :key="index" v-if="!item.action" :span="2">
<template slot="label">
{{ item.label }}
</template>
</el-descriptions-item>
</el-descriptions>
</div>
<div class="table-content" v-if="projectSmallType == 26 && templateName == '企业问卷调查'">
<el-descriptions title="1、基本情况" :column="3" :size="size" border :label-style="LS" style="margin-bottom: 10px;">
<el-descriptions-item label="主营业务">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
主营业务
</template>
</el-descriptions-item>
<el-descriptions-item label="股权情况">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
股权情况
</template>
</el-descriptions-item>
<el-descriptions-item label="资产总额">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
资产总额
</template>
</el-descriptions-item>
<el-descriptions-item label="运营平台">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
运营平台
</template>
</el-descriptions-item>
<el-descriptions-item label="总部和分支机构分布">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
总部和分支机构分布
</template>
</el-descriptions-item>
</el-descriptions>
<el-descriptions title="2、经营情况万元" :column="4" :size="size" border :label-style="LS" style="margin-bottom: 10px;">
<el-descriptions-item label="21年省内营业收入"></el-descriptions-item>
<el-descriptions-item label="21年省外营业收入"></el-descriptions-item>
<el-descriptions-item label="21年省内纳税额"></el-descriptions-item>
<el-descriptions-item label="21年省外纳税额"></el-descriptions-item>
<el-descriptions-item label="22年省内营业收入"></el-descriptions-item>
<el-descriptions-item label="22年省外营业收入"></el-descriptions-item>
<el-descriptions-item label="22年省内纳税额"></el-descriptions-item>
<el-descriptions-item label="22年省外纳税额"></el-descriptions-item>
<el-descriptions-item label="23年省内营业收入"></el-descriptions-item>
<el-descriptions-item label="23年省外营业收入"></el-descriptions-item>
<el-descriptions-item label="23年省内纳税额"></el-descriptions-item>
<el-descriptions-item label="23年省外纳税额"></el-descriptions-item>
<el-descriptions-item label="21年平台利润总额"></el-descriptions-item>
<el-descriptions-item label="22年平台利润总额"></el-descriptions-item>
<el-descriptions-item label="23年平台利润总额"></el-descriptions-item>
</el-descriptions>
<el-descriptions title="3、平台规模个、万元" :column="3" :size="size" border :label-style="LS" style="margin-bottom: 10px;">
<el-descriptions-item label="21年企业数量"></el-descriptions-item>
<el-descriptions-item label="22年企业数量"></el-descriptions-item>
<el-descriptions-item label="23年企业数量"></el-descriptions-item>
<el-descriptions-item label="21年注册用户数量"></el-descriptions-item>
<el-descriptions-item label="22年注册用户数量"></el-descriptions-item>
<el-descriptions-item label="23年注册用户数量"></el-descriptions-item>
<el-descriptions-item label="21年撮合交易额"></el-descriptions-item>
<el-descriptions-item label="22年撮合交易额"></el-descriptions-item>
<el-descriptions-item label="23年撮合交易额"></el-descriptions-item>
<el-descriptions-item label="21年占比或排名"></el-descriptions-item>
<el-descriptions-item label="22年占比或排名"></el-descriptions-item>
<el-descriptions-item label="23年占比或排名"></el-descriptions-item>
<el-descriptions-item label="21年就业人数"></el-descriptions-item>
<el-descriptions-item label="22年就业人数"></el-descriptions-item>
<el-descriptions-item label="23年就业人数"></el-descriptions-item>
</el-descriptions>
<el-descriptions title="4、研发创新万元、个" :column="3" :size="size" border :label-style="LS" style="margin-bottom: 10px;">
<el-descriptions-item label="21年投入额"></el-descriptions-item>
<el-descriptions-item label="22年投入额"></el-descriptions-item>
<el-descriptions-item label="23年投入额"></el-descriptions-item>
<el-descriptions-item label="21年知识产权数"></el-descriptions-item>
<el-descriptions-item label="22年知识产权数"></el-descriptions-item>
<el-descriptions-item label="23年知识产权数"></el-descriptions-item>
</el-descriptions>
<el-descriptions title="5、融资情况万元" :column="3" :size="size" border :label-style="LS">
<el-descriptions-item label="21年融资规模"></el-descriptions-item>
<el-descriptions-item label="22年融资规模"></el-descriptions-item>
<el-descriptions-item label="23年融资规模"></el-descriptions-item>
<el-descriptions-item label="21年融资来源"></el-descriptions-item>
<el-descriptions-item label="22年融资来源"></el-descriptions-item>
<el-descriptions-item label="23年融资来源"></el-descriptions-item>
<el-descriptions-item label="21年负债规模"></el-descriptions-item>
<el-descriptions-item label="22年负债规模"></el-descriptions-item>
<el-descriptions-item label="23年负债规模"></el-descriptions-item>
<el-descriptions-item label="21年债务来源"></el-descriptions-item>
<el-descriptions-item label="22年债务来源"></el-descriptions-item>
<el-descriptions-item label="23年债务来源"></el-descriptions-item>
<el-descriptions-item label="政策建议和诉求" :span="3">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
政策建议和诉求
</template>
</el-descriptions-item>
</el-descriptions>
</div>
<div class="table-content" v-if="projectSmallType == 26 && templateName == '企业调研问卷'">
<!--
-->
<el-descriptions title="(一)企业基本情况" :column="1" :size="size" border :label-style="LSZ" style="margin-bottom: 10px;">
<el-descriptions-item label="贵公司的企业类型">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
1. 贵公司的企业类型
</template>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="国有企业"></el-checkbox>
<el-checkbox label="民营企业"></el-checkbox>
<el-checkbox label="港、澳、台"></el-checkbox>
<el-checkbox label="外资企业(含中外合资,合作企业)"></el-checkbox>
</el-checkbox-group>
</el-descriptions-item>
<el-descriptions-item label="贵公司那一年入住园区(年)">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
2. 贵公司那一年入住园区
</template>
</el-descriptions-item>
<el-descriptions-item label="贵公司入驻园区的主要因素(最多选两项)">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
3. 贵公司入驻园区的主要因素最多选两项
</template>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="区位和交通条件"></el-checkbox>
<el-checkbox label="人才资源"></el-checkbox>
<el-checkbox label="生活环境"></el-checkbox>
<el-checkbox label="政策优惠"></el-checkbox>
<el-checkbox label="产业聚集与配套"></el-checkbox>
<el-checkbox label="市场客户"></el-checkbox>
<el-checkbox label="公司领导与园区有历史渊源"></el-checkbox>
<el-checkbox label="可进一步解释"></el-checkbox>
</el-checkbox-group>
</el-descriptions-item>
</el-descriptions>
<!--
-->
<el-descriptions title="(二)企业经营" :column="1" :size="size" border :label-style="LSZ" style="margin-bottom: 10px;">
<el-descriptions-item label="贵公司在产业链所处环节是(最多选两项)">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
4. 贵公司在产业链所处环节是最多选两项
</template>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="上游:通用材料/部件供应商"></el-checkbox>
<el-checkbox label="上游:核心材料/部件供应商"></el-checkbox>
<el-checkbox label="上游:产品研发设计商"></el-checkbox>
<el-checkbox label="中游:系统集成商"></el-checkbox>
<el-checkbox label="中游:产品一般组装商"></el-checkbox>
<el-checkbox label="下游终端客户toC客户"></el-checkbox>
<el-checkbox label="历史渊源"></el-checkbox>
<el-checkbox label="配套商务"></el-checkbox>
<el-checkbox label="其他"></el-checkbox>
</el-checkbox-group>
</el-descriptions-item>
<el-descriptions-item label="贵公司预计未来三年规模变化">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
5. 贵公司预计未来三年规模变化
</template>
<div style="display: flex;align-items: center;">
<div style="display: flex;align-items: center;margin-right: 20px;">
<span style="margin-right: 20px;">产值</span>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="增加"></el-checkbox>
<el-checkbox label="持平"></el-checkbox>
<el-checkbox label="减少"></el-checkbox>
</el-checkbox-group>
</div>
<div style="margin-right: 20px;display: flex;align-items: center;">
<span style="margin-right: 20px;">营收</span>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="增加"></el-checkbox>
<el-checkbox label="持平"></el-checkbox>
<el-checkbox label="减少"></el-checkbox>
</el-checkbox-group>
</div>
<div style="margin-right: 20px;display: flex;align-items: center;">
<span style="margin-right: 20px;">固定资产规模</span>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="增加"></el-checkbox>
<el-checkbox label="持平"></el-checkbox>
<el-checkbox label="减少"></el-checkbox>
</el-checkbox-group>
</div>
</div>
</el-descriptions-item>
<el-descriptions-item label="贵公司近三年是否有计划/正在进行新项目建设)">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
6. 贵公司近三年是否有计划/正在进行新项目建设
</template>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="计划新建生产产能"></el-checkbox>
<el-checkbox label="计划新设研发中心"></el-checkbox>
<el-checkbox label="计划新设销售中心"></el-checkbox>
<el-checkbox label="无相关计划"></el-checkbox>
<el-checkbox label="其他"></el-checkbox>
</el-checkbox-group>
</el-descriptions-item>
<el-descriptions-item label="近三年,计划或正在建设的新增项目金额为">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
7. 近三年计划或正在建设的新增项目金额为
</template>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="1000万元及以下"></el-checkbox>
<el-checkbox label="1000万-5000万元不包括"></el-checkbox>
<el-checkbox label="5000万-1亿元不包括"></el-checkbox>
<el-checkbox label="1亿元-5亿元不包括"></el-checkbox>
<el-checkbox label="5亿元-10亿元不包括"></el-checkbox>
<el-checkbox label="10亿元及以上"></el-checkbox>
<el-checkbox label="无相关计划"></el-checkbox>
</el-checkbox-group>
</el-descriptions-item>
<el-descriptions-item label="贵公司若有计划/正在进行新增项目建设,主要考虑的项目地点在哪里">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
8. 贵公司若有计划/正在进行新增项目建设主要考虑的项目地点在哪里
</template>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="园区"></el-checkbox>
<el-checkbox label="苏相合作区、独墅湖东区等园区合作区"></el-checkbox>
<el-checkbox label="苏州其他地区"></el-checkbox>
<el-checkbox label="江苏省其他城市"></el-checkbox>
<el-checkbox label="上海"></el-checkbox>
<el-checkbox label="长三角其他地区"></el-checkbox>
<el-checkbox label="珠三角地区"></el-checkbox>
<el-checkbox label="国内其他地区"></el-checkbox>
<el-checkbox label="没有相应计划"></el-checkbox>
</el-checkbox-group>
</el-descriptions-item>
<el-descriptions-item label="贵公司认为现阶段发展的核心阻力在于(最多选三项)">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
9. 贵公司认为现阶段发展的核心阻力在于最多选三项
</template>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="人员:生产行员工成本高"></el-checkbox>
<el-checkbox label="人员:基层员工能力待提升"></el-checkbox>
<el-checkbox label="人员:缺乏核心高管"></el-checkbox>
<el-checkbox label="人员:缺乏技术带头人"></el-checkbox>
<el-checkbox label="资金:缺乏现金储备"></el-checkbox>
<el-checkbox label="资金:资金成本较高(融资、借贷等)"></el-checkbox>
<el-checkbox label="资金:资金链有较高断裂风险"></el-checkbox>
<el-checkbox label="产品:研发技术待突破"></el-checkbox>
<el-checkbox label="产品:产能有待增加"></el-checkbox>
<el-checkbox label="产品:品牌能力不足"></el-checkbox>
<el-checkbox label="市场:成本较高,价格没优势"></el-checkbox>
<el-checkbox label="市场:缺乏信息渠道开拓客户"></el-checkbox>
<el-checkbox label="市场:缺乏平台宣传企业"></el-checkbox>
<el-checkbox label="市场:大客户供应链已稳定,新产品难进入"></el-checkbox>
<el-checkbox label="其他"></el-checkbox>
</el-checkbox-group>
</el-descriptions-item>
<el-descriptions-item label="未来三年是否有以下计划(可多选)">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
10. 未来三年是否有以下计划可多选
</template>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="产品出海"></el-checkbox>
<el-checkbox label="产业股权投资"></el-checkbox>
<el-checkbox label="横向并购(收并购产品/服务相识的企业,扩大规模、扩充技术等"></el-checkbox>
<el-checkbox label="纵向收购(收并购上下游企业)"></el-checkbox>
<el-checkbox label="海外供应链建设"></el-checkbox>
<el-checkbox label="战略收缩(裁员、降低产能、裁撤组织机构等)"></el-checkbox>
<el-checkbox label="其他"></el-checkbox>
</el-checkbox-group>
</el-descriptions-item>
<el-descriptions-item label="贵公司是否有以下发展考虑 ">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
11. 贵公司是否有以下发展考虑
</template>
<div style="display: flex;align-items: center;flex-wrap: wrap;">
<div style="display: flex;align-items: center;margin-right: 20px;">
<span style="margin-right: 20px;">产业园建设/招商</span>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="正在开展"></el-checkbox>
<el-checkbox label="打算开展"></el-checkbox>
<el-checkbox label="否"></el-checkbox>
</el-checkbox-group>
</div>
<div style="margin-right: 20px;display: flex;align-items: center;">
<span style="margin-right: 20px;">产业联盟/协会商会建设</span>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="正在开展"></el-checkbox>
<el-checkbox label="打算开展"></el-checkbox>
<el-checkbox label="否"></el-checkbox>
</el-checkbox-group>
</div>
<div style="margin-right: 20px;display: flex;align-items: center;">
<span style="margin-right: 20px;">公共服务平台建设</span>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="正在开展"></el-checkbox>
<el-checkbox label="打算开展"></el-checkbox>
<el-checkbox label="否"></el-checkbox>
</el-checkbox-group>
</div>
<div style="margin-right: 20px;display: flex;align-items: center;">
<span style="margin-right: 20px;">服务外溢</span>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="正在开展"></el-checkbox>
<el-checkbox label="打算开展"></el-checkbox>
<el-checkbox label="否"></el-checkbox>
</el-checkbox-group>
</div>
</div>
</el-descriptions-item>
</el-descriptions>
<!--
-->
<el-descriptions title="(三)本地产业生态" :column="1" :size="size" border :label-style="LSZ" style="margin-bottom: 10px;">
<el-descriptions-item label="贵公司主要上游供应商来源区域(可多选)">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
12. 贵公司主要上游供应商来源区域可多选
</template>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="苏州工业园区内"></el-checkbox>
<el-checkbox label="苏州市其他板块"></el-checkbox>
<el-checkbox label="省内其他城市"></el-checkbox>
<el-checkbox label="其他长三角地区"></el-checkbox>
<el-checkbox label="国内其他地区"></el-checkbox>
<el-checkbox label="国外"></el-checkbox>
</el-checkbox-group>
</el-descriptions-item>
<el-descriptions-item label="贵公司向主要上游供应商采购的核心产品、服务为">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
13. 贵公司向主要上游供应商采购的核心产品服务为
</template>
</el-descriptions-item>
<el-descriptions-item label="在苏州工业园区内的原材料、设备、服务等采购项目占全部采购金额比重?">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
14. 在苏州工业园区内的原材料设备服务等采购项目占全部采购金额比重
</template>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="小于10%"></el-checkbox>
<el-checkbox label="10%-30%"></el-checkbox>
<el-checkbox label="30%-50%"></el-checkbox>
<el-checkbox label="50%-80%"></el-checkbox>
<el-checkbox label="80%以上"></el-checkbox>
</el-checkbox-group>
</el-descriptions-item>
<el-descriptions-item label="近三年,在苏州工业园区内采购的原材料、设备、服务等占全部采购金额比例的变化情况">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
15. 近三年在苏州工业园区内采购的原材料设备服务等占全部采购金额比例的变化情况
</template>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="持续增加"></el-checkbox>
<el-checkbox label="持续减少"></el-checkbox>
<el-checkbox label="基本维持不变"></el-checkbox>
</el-checkbox-group>
</el-descriptions-item>
<el-descriptions-item label="贵公司主要上游供应商来源区域(可多选)">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
16. 没有在苏州工业园区开展采购的主要原因
</template>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="产品技术性能不能满足要求"></el-checkbox>
<el-checkbox label="区外企业产品价格更低"></el-checkbox>
<el-checkbox label="区外企业服务更好"></el-checkbox>
<el-checkbox label="采购方有品牌要求/供应商名录要求"></el-checkbox>
<el-checkbox label="其他"></el-checkbox>
</el-checkbox-group>
</el-descriptions-item>
<el-descriptions-item label="贵公司直接客户主要分布在(可多选)">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
17.贵公司直接客户主要分布在可多选
</template>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="苏州工业园区内"></el-checkbox>
<el-checkbox label="苏州市其他板块"></el-checkbox>
<el-checkbox label="省内其他城市"></el-checkbox>
<el-checkbox label="其他长三角地区"></el-checkbox>
<el-checkbox label="国内其他地区"></el-checkbox>
<el-checkbox label="国外"></el-checkbox>
</el-checkbox-group>
</el-descriptions-item>
<el-descriptions-item label="来自苏州工业园区内客户的营收占总营收比例?">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
18.来自苏州工业园区内客户的营收占总营收比例
</template>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="小于10%"></el-checkbox>
<el-checkbox label="10%-30%"></el-checkbox>
<el-checkbox label="30%-50%"></el-checkbox>
<el-checkbox label="50%-80%"></el-checkbox>
<el-checkbox label="80%以上"></el-checkbox>
</el-checkbox-group>
</el-descriptions-item>
<el-descriptions-item label="近三年,苏州工业园区内客户营业收入占全部营收比重的变化情况">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
19. 近三年苏州工业园区内客户营业收入占全部营收比重的变化情况
</template>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="持续增加"></el-checkbox>
<el-checkbox label="持续减少"></el-checkbox>
<el-checkbox label="基本维持不变"></el-checkbox>
</el-checkbox-group>
</el-descriptions-item>
<el-descriptions-item label="来自苏州工业园区内客户的营收比例低的主要原因是?">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
20. 来自苏州工业园区内客户的营收比例低的主要原因是
</template>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="区内没有相应产品需求"></el-checkbox>
<el-checkbox label="区内企业生产产品的技术指标、产品质量难以满足要求"></el-checkbox>
<el-checkbox label="区内企业提供的服务难以满足要求"></el-checkbox>
<el-checkbox label="区内企业产品价格没有优势"></el-checkbox>
<el-checkbox label="区内企业产品品牌没有优势"></el-checkbox>
<el-checkbox label="其他"></el-checkbox>
</el-checkbox-group>
</el-descriptions-item>
<el-descriptions-item label="您觉得产业链中具有强话语权和带动作用的“链主”企业在哪一环节?">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
21.您觉得产业链中具有强话语权和带动作用的链主企业在哪一环节
</template>
</el-descriptions-item>
</el-descriptions>
<!--
-->
<el-descriptions title="(四)政府服务" :column="1" :size="size" border :label-style="LSZ" style="margin-bottom: 10px;">
<el-descriptions-item label="贵公司过去三年中对以下方面支持的感受和满意情况">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
22.贵公司过去三年中对以下方面支持的感受和满意情况
</template>
<div style="display: flex;align-items: center;flex-wrap: wrap;">
<div style="display: flex;align-items: center;margin-right: 20px;">
<span style="margin-right: 20px;">1人才引进的支持</span>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="没有获得"></el-checkbox>
<el-checkbox label="力度偏弱"></el-checkbox>
<el-checkbox label="满意"></el-checkbox>
</el-checkbox-group>
</div>
<div style="margin-right: 20px;display: flex;align-items: center;">
<span style="margin-right: 20px;">2研发费用支持</span>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="正在开展"></el-checkbox>
<el-checkbox label="打算开展"></el-checkbox>
<el-checkbox label="否"></el-checkbox>
</el-checkbox-group>
</div>
<div style="margin-right: 20px;display: flex;align-items: center;">
<span style="margin-right: 20px;">3项目投入支持</span>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="正在开展"></el-checkbox>
<el-checkbox label="打算开展"></el-checkbox>
<el-checkbox label="否"></el-checkbox>
</el-checkbox-group>
</div>
<div style="margin-right: 20px;display: flex;align-items: center;">
<span style="margin-right: 20px;">4租金优惠 </span>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="正在开展"></el-checkbox>
<el-checkbox label="打算开展"></el-checkbox>
<el-checkbox label="否"></el-checkbox>
</el-checkbox-group>
</div>
<div style="margin-right: 20px;display: flex;align-items: center;">
<span style="margin-right: 20px;">5投融资渠道对接</span>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="正在开展"></el-checkbox>
<el-checkbox label="打算开展"></el-checkbox>
<el-checkbox label="否"></el-checkbox>
</el-checkbox-group>
</div>
<div style="margin-right: 20px;display: flex;align-items: center;">
<span style="margin-right: 20px;">6银行贷款保障</span>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="正在开展"></el-checkbox>
<el-checkbox label="打算开展"></el-checkbox>
<el-checkbox label="否"></el-checkbox>
</el-checkbox-group>
</div>
<div style="margin-right: 20px;display: flex;align-items: center;">
<span style="margin-right: 20px;">7电等基础保障</span>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="正在开展"></el-checkbox>
<el-checkbox label="打算开展"></el-checkbox>
<el-checkbox label="否"></el-checkbox>
</el-checkbox-group>
</div>
<div style="margin-right: 20px;display: flex;align-items: center;">
<span style="margin-right: 20px;">8产业链对接 </span>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="正在开展"></el-checkbox>
<el-checkbox label="打算开展"></el-checkbox>
<el-checkbox label="否"></el-checkbox>
</el-checkbox-group>
</div>
<div style="margin-right: 20px;display: flex;align-items: center;">
<span style="margin-right: 20px;">9良好的政府服务法治环境 </span>
<el-checkbox-group v-model="checkList" disabled>
<el-checkbox label="正在开展"></el-checkbox>
<el-checkbox label="打算开展"></el-checkbox>
<el-checkbox label="否"></el-checkbox>
</el-checkbox-group>
</div>
<el-checkbox label="其他" disabled></el-checkbox>
</div>
</el-descriptions-item>
<el-descriptions-item label="您认为,园区亟待提升的是(按优先级顺序选择三项)">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
23. 您认为园区亟待提升的是按优先级顺序选择三项
</template>
<div style="padding: 0 10px">
<span style="margin-right: 10px;">1人才引进的支持</span>
<span style="margin-right: 10px;">2研发费用支持</span>
<span style="margin-right: 10px;">3项目投入支持</span>
<span style="margin-right: 10px;">4租金优惠</span>
<span style="margin-right: 10px;">5投融资渠道对接</span>
<span style="margin-right: 10px;">6银行贷款保障</span>
<span style="margin-right: 10px;">7电等基础保障</span>
<span style="margin-right: 10px;">8产业链对接</span>
<span style="margin-right: 10px;">9良好的政府服务法治环境</span>
<span style="margin-right: 10px;">最优先</span>
<span style="margin-right: 10px;">第二优先</span>
<span style="margin-right: 10px;">第三优先</span>
</div>
</el-descriptions-item>
<el-descriptions-item label="贵公司目前在园区发展面临的最需要政府帮助解决的问题是什么?有何建议?(开放性问题)">
<template slot="label">
<span class="specialType-descriptions-label" style="color: red;">*</span>
24.贵公司目前在园区发展面临的最需要政府帮助解决的问题是什么有何建议开放性问题
</template>
</el-descriptions-item>
</el-descriptions>
</div>
<!-- 上传文件列表 v-if="isMaterials"-->
<div class="table-content last_upload"> <div class="table-content last_upload">
<p>上传材料</p> <p>上传材料</p>
<div> <div>
@ -110,19 +696,37 @@ export default {
'width': '135px', 'width': '135px',
'work-break': 'break-all' 'work-break': 'break-all'
}, },
LSZ: {
'width': '200px',
'work-break': 'break-all'
},
info:{}, info:{},
templateJson:{}, templateJson:{},
specialType:false,
templateName:"",
projectSmallType:null,
isMaterials:false,
}; };
}, },
async mounted(){ async mounted(){
let { templateId, pageType} = this.$route.query; let { templateId, pageType, projectSmallType, templateName } = this.$route.query;
this.templateId = templateId this.templateId = templateId
// console.log('this.templateId: ', this.templateId); this.templateName = templateName;
this.projectSmallType = projectSmallType;
getInfo(this.templateId).then(res=>{ getInfo(this.templateId).then(res=>{
// console.log(res); // console.log(res);
this.info = res.data this.info = res.data
this.templateJson = res.data.templateJson ? JSON.parse(res.data.templateJson) : {}; this.templateJson = res.data.templateJson ? JSON.parse(res.data.templateJson) : {};
// console.log(this.templateJson); // console.log(this.templateJson);
// let arr = []
// this.templateJson.map(item=>{
// if(item.action) {
// arr.push(item)
// }
// })
// if(arr.length > 0) {
// this.isMaterials = true;
// }
}) })
}, },
methods: { methods: {
@ -151,7 +755,7 @@ export default {
let imgHeight = 592.28 / contentWidth * contentHeight let imgHeight = 592.28 / contentWidth * contentHeight
let pageData = canvas.toDataURL('image/jpeg', 1.0) let pageData = canvas.toDataURL('image/jpeg', 1.0)
let PDF = new JsPDF('p', 'pt', 'a4') // [592.28 * 841.89] let PDF = new JsPDF('p', 'pt', 'a4') // [592.28 * 841.89]
console.log(pageData); // console.log(pageData);
if (leftHeight < pageHeight) { if (leftHeight < pageHeight) {
PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight) PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)
} else { } else {

@ -3,7 +3,7 @@
<div class="L-main"> <div class="L-main">
<header id="L-header"> <header id="L-header">
<el-form :inline="true" :model="formInline" size="small" class="demo-form-inline" ref="queryFrom"> <el-form :inline="true" :model="formInline" size="small" class="demo-form-inline" ref="queryFrom">
<el-col :span="22"> <el-col :span="20">
<el-form-item label="年份:"> <el-form-item label="年份:">
<el-date-picker <el-date-picker
class="ignoreElement" class="ignoreElement"
@ -53,8 +53,12 @@
<el-button size="mini" type="primary" @click="handleQuery('queryFrom')"></el-button> <el-button size="mini" type="primary" @click="handleQuery('queryFrom')"></el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="2"> <el-col :span="4">
<el-button type="primary" class="import-btn" icon="icon iconfont icon-jc-daoru" size="mini" @click="importBtn" v-if="roles.includes('other-gov')"></el-button> <!-- <el-button type="primary" class="import-btn" icon="icon iconfont icon-jc-daoru" size="mini" @click="importBtn" v-if="roles.includes('other-gov')"></el-button> -->
<div class="btnss">
<el-button type="primary" class="import-btn" icon="icon iconfont icon-jc-daoru" size="mini" v-if="roles.includes('other-gov')" @click="importBtn"></el-button>
<el-button type="primary" class="import-btn import-btn-export" size="mini" @click="deriveBtn" :loading="exportLoading">导出</el-button>
</div>
</el-col> </el-col>
</el-form> </el-form>
</header> </header>
@ -264,7 +268,7 @@ export default {
projectName:[], projectName:[],
declareUnit:"", declareUnit:"",
projectYear:"", projectYear:"",
status: '' status: '5'
}, },
options: [], options: [],
optionsTwo: [], optionsTwo: [],
@ -342,6 +346,7 @@ export default {
url: process.env.VUE_APP_BASE_API + "/jjh/jProject/importTemplateProject" url: process.env.VUE_APP_BASE_API + "/jjh/jProject/importTemplateProject"
}, },
tabHeader: undefined, tabHeader: undefined,
exportLoading:false,
}; };
}, },
mounted() { mounted() {
@ -387,6 +392,7 @@ export default {
this.cancalDebounce(); this.cancalDebounce();
window.addEventListener('resize', this.cancalDebounce); window.addEventListener('resize', this.cancalDebounce);
this.pagination.status = '5'
this.getList(); this.getList();
}, },
destroyed() { destroyed() {
@ -536,11 +542,37 @@ export default {
// this.$refs.uploadRef.click() // this.$refs.uploadRef.click()
this.$refs['upload'].$refs['upload-inner'].handleClick() this.$refs['upload'].$refs['upload-inner'].handleClick()
} else { } else {
console.log('error submit!!'); // console.log('error submit!!');
return false; return false;
} }
}); });
}, },
//
deriveBtn(){
this.$confirm("是否确认导出项目库数据项?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.exportLoading = true;
if(this.formInline.projectClassify) {
this.formInline.projectBigType = this.formInline.projectClassify[0]
this.formInline.projectMiddleType = this.formInline.projectClassify[1]
this.formInline.projectSmallType = this.formInline.projectClassify[2]
}
// console.log(this.formInline);
this.download(
"/jjh/jProject/exportProject",
{
...this.formInline
},
"项目库数据" + new Date().getTime() + ".xlsx"
);
this.exportLoading = false;
})
.catch(() => { });
},
/** 下载模板操作 */ /** 下载模板操作 */
importTemplate() { importTemplate() {
this.download('/jjh/jProject/updateProjectTemplate', { this.download('/jjh/jProject/updateProjectTemplate', {

@ -25,6 +25,7 @@
<div class="schedule-content"> <div class="schedule-content">
<div class="card-content-left"> <div class="card-content-left">
<div class="schedule-card-title" v-if="activity.approvalByName && activity.approvalStatus == 1">{{ activity.approvalByName }}</div> <div class="schedule-card-title" v-if="activity.approvalByName && activity.approvalStatus == 1">{{ activity.approvalByName }}</div>
<div class="schedule-card-title" v-if="activity.approvalByName && activity.approvalStatus == 2">{{ activity.approvalByName }}</div>
<!-- <div class="schedule-card-title" v-if="false"></div> --> <!-- <div class="schedule-card-title" v-if="false"></div> -->
<!-- <div class="schedule-card-title" v-if="activity.sort == 1 && activity.approvalStatus == 0"></div> <!-- <div class="schedule-card-title" v-if="activity.sort == 1 && activity.approvalStatus == 0"></div>
<div class="schedule-card-title" v-if="activity.sort == 1 && activity.approvalStatus == 1"></div> <div class="schedule-card-title" v-if="activity.sort == 1 && activity.approvalStatus == 1"></div>

@ -3,7 +3,7 @@
<el-row> <el-row>
<div class="remind-top"> <div class="remind-top">
<div class="remind-title">智能提醒</div> <div class="remind-title">智能提醒</div>
<el-button type="primary" icon="icon iconfont icon-jc-xinjian" size="mini" @click="newRemind"></el-button> <el-button type="primary" icon="icon iconfont icon-jc-xinjian" size="mini" @click="newRemind" v-if="!roles.includes('sightseer')"></el-button>
</div> </div>
<div class="remind-timeline" v-loading="loading"> <div class="remind-timeline" v-loading="loading">
<el-card shadow="never" v-for="(item,index) in remindList" :key="index" :class="item.isRead == 1 ? 'el-card-border' : ''"> <el-card shadow="never" v-for="(item,index) in remindList" :key="index" :class="item.isRead == 1 ? 'el-card-border' : ''">
@ -119,6 +119,7 @@ export default {
}, },
data() { data() {
return { return {
roles: this.$store.state.user.roles,
remindData:{ remindData:{
rulesName: "", rulesName: "",
alertRecipients: 2, alertRecipients: 2,

@ -6,7 +6,7 @@
<el-col :span="9"> <el-col :span="9">
<div class="project-info-top"> <div class="project-info-top">
<div class="project-info">备忘录</div> <div class="project-info">备忘录</div>
<el-button type="primary" icon="icon iconfont icon-jc-xinjian" size="mini" @click="newMemo"></el-button> <el-button type="primary" icon="icon iconfont icon-jc-xinjian" size="mini" @click="newMemo" v-if="!roles.includes('sightseer')"></el-button>
<el-button type="primary" icon="icon iconfont icon-jc-daoru" size="mini" @click="exportMemo" :loading="exportLoading">一键导出</el-button> <el-button type="primary" icon="icon iconfont icon-jc-daoru" size="mini" @click="exportMemo" :loading="exportLoading">一键导出</el-button>
</div> </div>
</el-col> </el-col>
@ -46,7 +46,7 @@
<span>{{ item.name }}</span> <span>{{ item.name }}</span>
<span>{{ item.createTime }}</span> <span>{{ item.createTime }}</span>
</div> </div>
<div class="clearfix-right"> <div class="clearfix-right" v-if="!roles.includes('sightseer')">
<div class="clearfix-bianji" @click="putMemo(item)"> <div class="clearfix-bianji" @click="putMemo(item)">
<i class="icon iconfont icon-jc-bianji-copy"></i> <i class="icon iconfont icon-jc-bianji-copy"></i>
编辑 编辑
@ -124,6 +124,7 @@ export default {
name:"tabFour", name:"tabFour",
data() { data() {
return { return {
roles: this.$store.state.user.roles,
formInline:{ formInline:{
startTime:"", startTime:"",
endTime:"", endTime:"",

@ -3,7 +3,7 @@
<div class="promoteProject-box-wai-box"> <div class="promoteProject-box-wai-box">
<div class="promoteProject-box-div" v-for="(item,index) in tableData" :key="index"> <div class="promoteProject-box-div" v-for="(item,index) in tableData" :key="index">
<div class="promoteProject-top"> <div class="promoteProject-top">
<span class="span-one">{{ item.projectName }}</span> <span class="span-one" @click="huodongClick(item)">{{ item.projectName }}</span>
</div> </div>
<div class="promoteProject-bottom"> <div class="promoteProject-bottom">
<div class="promoteProject-bottom-left"> <div class="promoteProject-bottom-left">
@ -16,6 +16,33 @@
</div> </div>
</div> </div>
</div> </div>
<el-dialog
title="产业活动详情"
:visible.sync="infoVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
@close="infoClose"
custom-class="chanyehuodongxiangqing-dialog"
append-to-body
width="30%"
>
<div>
<el-descriptions :column="1">
<el-descriptions-item label="活动名称">{{ itemInfo.projectName }}</el-descriptions-item>
<el-descriptions-item label="活动时间">{{ itemInfo.time }}</el-descriptions-item>
<el-descriptions-item label="活动级别">{{ itemInfo.enterprice }}</el-descriptions-item>
<el-descriptions-item label="活动内容">这里是活动内容这里是活动内容这里是活动内容这里是活动内容这里是活动内容这里是活动内容这里是活动内容这里是活动内容这里是活动内容这里是活动内容这里是活动内容</el-descriptions-item>
</el-descriptions>
</div>
<div slot="footer" class="chanyehuodongxiangqing-footer">
<el-form size="small">
<el-form-item class="dialog-from-item">
<el-button size="mini" @click="infoVisible = false">取消</el-button>
<el-button type="primary" size="mini" @click="infoVisible = false">确定</el-button>
</el-form-item>
</el-form>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
@ -48,13 +75,22 @@ export default {
enterprice:"省级", enterprice:"省级",
time:"2023-02-11", time:"2023-02-11",
}, },
] ],
infoVisible: false,
itemInfo:{}
} }
}, },
methods:{ methods:{
huodongClick(item){
this.itemInfo = item;
this.infoVisible = true;
},
infoClose(){},
}, },
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .chanyehuodongxiangqing-dialog {
margin-top: 20vh !important;
}
</style> </style>

@ -65,7 +65,7 @@ export default {
}) })
}, },
ProjectInfo(item){ ProjectInfo(item){
console.log(item,"item"); // console.log(item,"item");
if((item.projectName == "区级总部" || item.projectName == "市级服务业领军") && item.projectId) { if((item.projectName == "区级总部" || item.projectName == "市级服务业领军") && item.projectId) {
this.$router.push({ this.$router.push({
name: 'projectInfo', name: 'projectInfo',

@ -252,7 +252,8 @@
<div class="appropriate-analyse-box"> <div class="appropriate-analyse-box">
<div class="box-header"> <div class="box-header">
<span class="garden"></span> <span class="garden"></span>
<span class="box-header-title">资金拨付情况分析</span> <!-- <span class="box-header-title">资金引导-拨付情况分析</span> -->
<span class="box-header-title">资金引导</span>
</div> </div>
<div class="capital-appropriate-analyse-box"> <div class="capital-appropriate-analyse-box">
<echartDataFour></echartDataFour> <echartDataFour></echartDataFour>
@ -347,8 +348,9 @@
<homeIndex v-else-if="userType == '01'" /> <homeIndex v-else-if="userType == '01'" />
</template> </template>
<script> <script>
import Cookies from "js-cookie";
import { approvalList, uploadFile } from "@/api/onlineDeclartion/pendingReview" import { approvalList, uploadFile } from "@/api/onlineDeclartion/pendingReview"
import { selectAll, workSearch } from "@/api/jin_ji_hu/home" import { selectAll, workSearch, getNewSysLogininfor } from "@/api/jin_ji_hu/home"
import { chiefAll, changeIsRead } from "@/api/jin_ji_hu/intelligentReminder" import { chiefAll, changeIsRead } from "@/api/jin_ji_hu/intelligentReminder"
import homeIndex from "@/views/home/index.vue" import homeIndex from "@/views/home/index.vue"
import echartData from '@/views/dataCloudMap/components/echartData.vue' import echartData from '@/views/dataCloudMap/components/echartData.vue'
@ -424,6 +426,19 @@ export default {
this.govRemind(); this.govRemind();
this.time = this.getNowFormatDate(); this.time = this.getNowFormatDate();
} }
getNewSysLogininfor().then(res=>{
if(res.data && Cookies.get("newSysLogininfor") == 1) {
this.$confirm(`您上次登录时间为${res.data.accessTime},建议修改密码`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
Cookies.set("newSysLogininfor", 2);
}).catch(() => {
Cookies.set("newSysLogininfor", 2);
});
}
})
}, },
methods:{ methods:{
// //

@ -0,0 +1,103 @@
<!-- 拨付资金企业申请情况TOP5 -->
<template>
<div class="AFuwufazhanzonglan">
<div class="AFuwufazhanzonglan-listbox">
<div class="AFuwufazhanzonglan-niandu">
上一年度
</div>
<div class="AFuwufazhanzonglan-neirongBox">
<div class="AFuwufazhanzonglan-item">
<div class=" AFuwufazhanzonglan-img-box img-box_0"></div>
<div class="AFuwufazhanzonglan-item-top">
<div>{{ objYear.valueAdded }} <span>亿元</span></div>
<div>服务业增加值</div>
<div>[{{ objYear.developYear }}]</div>
</div>
</div>
<div class="AFuwufazhanzonglan-item">
<div class=" AFuwufazhanzonglan-img-box img-box_1"></div>
<div class="AFuwufazhanzonglan-item-top">
<div>{{ objYear.increaseSpeed }} <span>%</span></div>
<div>服务业增速</div>
<div>[{{ objYear.developYear }}]</div>
</div>
</div>
<div class="AFuwufazhanzonglan-item">
<div class=" AFuwufazhanzonglan-img-box img-box_2"></div>
<div class="AFuwufazhanzonglan-item-top">
<div>{{ objYear.gdpProportion }} <span>%</span></div>
<div>服务业增加值GDP比重</div>
<div>[{{ objYear.developYear }}]</div>
</div>
</div>
</div>
</div>
<div class="AFuwufazhanzonglan-listbox">
<div class="AFuwufazhanzonglan-niandu">
上一季度
</div>
<div class="AFuwufazhanzonglan-neirongBox">
<div class="AFuwufazhanzonglan-item">
<div class=" AFuwufazhanzonglan-img-box img-box_0"></div>
<div class="AFuwufazhanzonglan-item-top">
<div>{{ objQuarter.valueAdded }} <span>亿元</span></div>
<div>服务业增加值</div>
<div>[{{ objQuarter.developYear + '-' +objQuarter.quarterly}}季度]</div>
</div>
</div>
<div class="AFuwufazhanzonglan-item">
<div class=" AFuwufazhanzonglan-img-box img-box_1"></div>
<div class="AFuwufazhanzonglan-item-top">
<div>{{ objQuarter.increaseSpeed }} <span>%</span></div>
<div>服务业增速</div>
<div>[{{ objQuarter.developYear + '-' +objQuarter.quarterly}}季度]</div>
</div>
</div>
<div class="AFuwufazhanzonglan-item">
<div class=" AFuwufazhanzonglan-img-box img-box_2"></div>
<div class="AFuwufazhanzonglan-item-top">
<div>{{ objQuarter.gdpProportion }} <span>%</span></div>
<div>服务业增加值GDP比重</div>
<div>[{{ objQuarter.developYear + '-' +objQuarter.quarterly}}季度]</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { servicesDevelop } from "@/api/jin_ji_hu/zijinbiao"
export default {
data() {
return {
loading: false,
objYear:{
developYear:"",
valueAdded:"",
increaseSpeed:"",
gdpProportion:"",
},
objQuarter:{
developYear:"",
quarterly:"",
valueAdded:"",
increaseSpeed:"",
gdpProportion:"",
},
}
},
mounted() {
this.getServicesDevelop();
},
methods: {
// top5
getServicesDevelop(){
servicesDevelop().then(res=>{
this.objYear = {...res.data[0]}
this.objQuarter = {...res.data[1]}
})
}
},
}
</script>
<style lang="scss"></style>

@ -0,0 +1,290 @@
<template>
<div class="BJinsannianzijin">
<div class="echart_boxs">
<div class="echart_boxs_top">
<div class="echart_boxs_title">服务业专项资金</div>
<!-- <div class="echart_boxs_btn">
<span v-for="item,index in fuwuyeYear" :class="changeFuwuyeYear == index ? 'changeFuwuyeYear_span': ''" @click="changeFuwuyeYear = index">{{ item.year }}</span>
</div> -->
</div>
<div class="echart_boxs_middle">
<div class="BJinsannianzijinchart-left" id="BJinsannianzijinchart-left"></div>
<div class="BJinsannianzijinchart-right">
<div class="yushuan">
<span>资金预算</span>
<div class="number-box">{{ obj.fundBudget ? obj.fundBudget : 0 }} <span class="number-unit-box">万元</span></div>
</div>
<div class="yushuan">
<span>追加预算</span>
<div class="bottom_number number-box">{{ obj.additionBudget ? obj.additionBudget : 0 }} <span class="number-unit-box">万元</span></div>
</div>
</div>
</div>
<div class="echart_boxs_bottom">拨付资金 <span>{{ obj.appropriationFund ? obj.appropriationFund : 0 }}</span>万元 (执行率 <span>{{ obj.implementationRate ? obj.implementationRate : 0 }}</span>% )</div>
</div>
<div class="echart_boxs echart_boxs_right">
<div class="echart_boxs_top">
<div class="echart_boxs_title">总部专项资金</div>
<!-- <div class="echart_boxs_btn">
<span v-for="item,index in fuwuyeYear" :class="changeFuwuyeYear == index ? 'changeFuwuyeYear_span': ''" @click="changeFuwuyeYear = index">{{ item.year }}</span>
</div> -->
</div>
<div class="echart_boxs_middle">
<div class="zongbuzhuanxing-box" id="zongbuzhuanxing-box"></div>
<div class="BJinsannianzijinchart-right">
<div class="yushuan">
<span>资金预算</span>
<div class="number-box">{{ objTwo.fundBudget ? objTwo.fundBudget : 0 }} <span class="number-unit-box">万元</span></div>
</div>
<div class="yushuan">
<span>追加预算</span>
<div class="bottom_number number-box">{{ objTwo.additionBudget ? objTwo.additionBudget : 0 }} <span class="number-unit-box">万元</span></div>
</div>
</div>
</div>
<div class="echart_boxs_bottom">拨付资金 <span>{{ objTwo.appropriationFund ? objTwo.appropriationFund : 0 }}</span>万元 (执行率 <span>{{ objTwo.implementationRate ? objTwo.implementationRate : 0 }}</span>% )</div>
</div>
</div>
</template>
<script>
import * as echarts from 'echarts'
// import resize from './mixins/resize'
import { threeYearsFund } from "@/api/jin_ji_hu/zijinbiao"
const animationDuration = 6000
export default {
// mixins: [resize],
props: {
className: {
type: String,
default: 'chart'
},
width: {
type: String,
default: '50%'
},
height: {
type: String,
default: '200px'
}
},
data() {
let date = new Date();
const currentYear = date.getFullYear();
return {
chart: null,
chartTwo:null,
changeFuwuyeYear: currentYear,
fuwuyeYear:[
{
year: currentYear - 1,
},{
year: currentYear - 2,
},{
year: currentYear - 3,
},
],
obj:{},
objTwo:{}
}
},
mounted() {
this.$nextTick(() => {
this.initChart(this.changeFuwuyeYear)
window.addEventListener('resize', this.cancalDebounce);
})
},
beforeDestroy() {
// if (!this.chart) {
// return
// }
// this.chart.dispose()
// this.chart = null
window.removeEventListener('resize', this.cancalDebounce);
},
methods: {
cancalDebounce(){
// console.log("11111");
window.onresize = this.chart.resize();
window.onresize = this.chartTwo.resize();
},
initChart(Year) {
this.chart = echarts.init(document.getElementById('BJinsannianzijinchart-left'))
this.chartTwo = echarts.init(document.getElementById('zongbuzhuanxing-box'))
let option = {
series: [
{
type: 'gauge',
splitNumber: 3,
radius: 70,
center: ["45%", "95%"],
startAngle: 180,
endAngle: 0,
min: 0,
max: 100,
pointer: {
show: true,
icon:"image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAVpJREFUWEftlr1KxEAURu9NsBLRDGJh7bqbpBJx3yCJ4KJgp4WFINjaCFZaCoIvIdrZKZhEn8AtFiFZ/AHBwkbMaiGuRXIlnUqWTMbVFZkp5975vsOpBuGb58Uqj/b7l/eiMSj6MH0XWcYqAlQ1P1wWzREGeJgtDyht9QYBRlQFpwdPAlcEQhigZeu7BLiWliJQXfOaU78G8GRXJhNQ6p8LaZ15zZ2iEEIGIsc8AqKZj2UI8EYJjLPT8K4IRGGAyDEXgWg/s4Rwj/nB0s8C2MY1AIx1LEGqMbd5zAtRyMCjbWwhwGZOeIN54UTXAZ4tvRQjXnEGbzAv3ObZ5TYQOfoBEC7whAJQrEBfaci7uM3b5wKI7EoNUZ3LCNPSOyJsI9Lr17nmBitdAegUEtkGpbMkxurwWXCeV5Y15zLwZwFajnlIRPM9MyABpAFpQBqQBqQBaaDnBv7Fj+gdzkcMMPGkRt0AAAAASUVORK5CYII=",
width: 20,
length: "80%",
},
axisLine: {
show: true,
lineStyle: {
width: 10,
color: [
[0.6, '#00AEFF'], //
[0.63, '#F5F8FA'],
[1, '#FFA42B '] //
],
},
},
axisLabel: {
show: false,
color: "#666",
fontSize: 16,
formatter: function (value) {
return value.toFixed(0);
},
},
axisTick: {
show: false,
},
splitLine: {
show: false,
length: "28%",
lineStyle: {
color: "#fff",
width: 2,
},
},
detail: {
show: false
},
title: {
show: false
},
data: [
{
value: 61.5,
name: '决策层国际化导向'
}
],
}
]
};
let optionTwo = {
series: [
{
type: 'gauge',
splitNumber: 3,
radius: 70,
center: ["45%", "95%"],
startAngle: 180,
endAngle: 0,
min: 0,
max: 100,
pointer: {
show: true,
icon:"image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAVpJREFUWEftlr1KxEAURu9NsBLRDGJh7bqbpBJx3yCJ4KJgp4WFINjaCFZaCoIvIdrZKZhEn8AtFiFZ/AHBwkbMaiGuRXIlnUqWTMbVFZkp5975vsOpBuGb58Uqj/b7l/eiMSj6MH0XWcYqAlQ1P1wWzREGeJgtDyht9QYBRlQFpwdPAlcEQhigZeu7BLiWliJQXfOaU78G8GRXJhNQ6p8LaZ15zZ2iEEIGIsc8AqKZj2UI8EYJjLPT8K4IRGGAyDEXgWg/s4Rwj/nB0s8C2MY1AIx1LEGqMbd5zAtRyMCjbWwhwGZOeIN54UTXAZ4tvRQjXnEGbzAv3ObZ5TYQOfoBEC7whAJQrEBfaci7uM3b5wKI7EoNUZ3LCNPSOyJsI9Lr17nmBitdAegUEtkGpbMkxurwWXCeV5Y15zLwZwFajnlIRPM9MyABpAFpQBqQBqQBaaDnBv7Fj+gdzkcMMPGkRt0AAAAASUVORK5CYII=",
width: 20,
length: "80%",
},
axisLine: {
show: true,
lineStyle: {
width: 10,
color: [
[0.6, '#00AEFF'], //
[0.63, '#F5F8FA'],
[1, '#FFA42B '] //
],
},
},
axisLabel: {
show: false,
color: "#666",
fontSize: 16,
formatter: function (value) {
return value.toFixed(0);
},
},
axisTick: {
show: false,
},
splitLine: {
show: false,
length: "28%",
lineStyle: {
color: "#fff",
width: 2,
},
},
detail: {
show: false
},
title: {
show: false
},
data: [
{
value: 61.5,
name: '决策层国际化导向'
}
],
}
]
};
threeYearsFund(Year).then(res=>{
if(res.data.length == 0) {
let color = [ [1, '#00AEFF']] //
option.series[0].axisLine.lineStyle.color = color
optionTwo.series[0].axisLine.lineStyle.color = color
option.series[0].data[0].value = 0
optionTwo.series[0].data[0].value = 0
this.obj = {}
this.objTwo = {}
} else {
res.data.map(item=>{
if(item.serviceType == "1") {
this.obj = item;
option.series[0].data[0].value = item.implementationRate
// fundBudget additionBudget
if(item.fundBudget <= 0) {
let color = [ [0, '#00AEFF'], [1, '#FFA42B ']] //
option.series[0].axisLine.lineStyle.color = color
} else if(item.additionBudget <= 0) {
let color = [ [1, '#00AEFF'], [1, '#FFA42B ']] //
option.series[0].axisLine.lineStyle.color = color
} else {
let count = item.fundBudget + item.additionBudget;
const percentage = (item.fundBudget / count);
let color = [ [Number(percentage.toFixed(1)), '#00AEFF'], [Number(percentage.toFixed(1)) + 0.03, '#F5F8FA'], [1, '#FFA42B ']]
option.series[0].axisLine.lineStyle.color = color;
}
} else {
this.objTwo = item;
optionTwo.series[0].data[0].value = item.implementationRate
if(item.fundBudget <= 0) {
let color = [ [0, '#00AEFF'], [1, '#FFA42B ']] //
optionTwo.series[0].axisLine.lineStyle.color = color
} else if(item.additionBudget <= 0) {
let color = [ [1, '#00AEFF'], [1, '#FFA42B ']] //
optionTwo.series[0].axisLine.lineStyle.color = color
} else {
let count = item.fundBudget + item.additionBudget;
const percentage = (item.fundBudget / count);
let color = [ [Number(percentage.toFixed(1)), '#00AEFF'], [Number(percentage.toFixed(1)) + 0.03, '#F5F8FA'], [1, '#FFA42B ']]
optionTwo.series[0].axisLine.lineStyle.color = color;
}
}
})
}
this.chart.setOption(option)
this.chartTwo.setOption(optionTwo)
})
}
}
}
</script>

@ -0,0 +1,57 @@
import { debounce } from '@/utils'
export default {
data() {
return {
$_sidebarElm: null,
$_resizeHandler: null
}
},
mounted() {
this.initListener()
},
activated() {
if (!this.$_resizeHandler) {
// avoid duplication init
this.initListener()
}
// when keep-alive chart activated, auto resize
this.resize()
},
beforeDestroy() {
this.destroyListener()
},
deactivated() {
this.destroyListener()
},
methods: {
// use $_ for mixins properties
// https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential
$_sidebarResizeHandler(e) {
if (e.propertyName === 'width') {
this.$_resizeHandler()
}
},
initListener() {
this.$_resizeHandler = debounce(() => {
this.resize()
}, 100)
window.addEventListener('resize', this.$_resizeHandler)
this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0]
this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler)
},
destroyListener() {
window.removeEventListener('resize', this.$_resizeHandler)
this.$_resizeHandler = null
this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler)
},
resize() {
const { chart, chartTwo } = this
chart && chart.resize()
chartTwo && chartTwo.resize()
}
}
}

@ -1,7 +1,7 @@
<!-- 拨付资金企业申请情况TOP5 --> <!-- 拨付资金企业申请情况TOP5 -->
<template> <template>
<section> <section>
<el-table v-loading="loading" :data="tableData" :height="tabHeader" border :header-cell-style="{background:'#E8F3FC'}"> <el-table v-loading="loading" :data="tableData" :height="height" border :header-cell-style="{background:'#E8F3FC'}">
<el-table-column label="排名" key="type" prop="type" align="center" width="80"> <el-table-column label="排名" key="type" prop="type" align="center" width="80">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="project-trace-table-ranking" :style="{backgroundColor: scope.row.rankingBg}">{{ scope.row.ranking }}</div> <div class="project-trace-table-ranking" :style="{backgroundColor: scope.row.rankingBg}">{{ scope.row.ranking }}</div>
@ -16,10 +16,14 @@
<div class="project-trace-table-number">{{ scope.row.fundAmount }}</div> <div class="project-trace-table-number">{{ scope.row.fundAmount }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="所属项目" align="center" width="130"> <el-table-column label="拨付时间" key="appropriationTime" prop="appropriationTime" align="center" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="project-table-Info" @click="ProjectInfo(scope.row)">{{ scope.row.projectName }}</div> <div class="project-trace-table-number">{{ scope.row.appropriationTime ? scope.row.appropriationTime : '' }}</div>
<!-- <el-button type="text" class="project-table-Info" @click="charu(scope.row)" :disabled="!scope.row.projectId">{{ scope.row.projectName }}</el-button> --> </template>
</el-table-column>
<el-table-column label="拨付类型" key="projectName" prop="projectName" align="center" width="130">
<template slot-scope="scope">
<div >{{ scope.row.projectName == "区级总部" ? '总部专项' : '服务业专项'}}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="所属企业" key="qymc" prop="qymc" align="center" /> <el-table-column label="所属企业" key="qymc" prop="qymc" align="center" />
@ -33,15 +37,19 @@ export default {
return { return {
loading:false, loading:false,
tableData:[], tableData:[],
tabHeader: 288, tabHeader: null,
} }
}, },
props:{ props:{
typeValue:{ typeValue:{
type:Number, type:Number,
default:1, default:2,
},
height:{
type:Number,
default:0,
}, },
yearsChange:{ yearsValue:{
type:Number, type:Number,
default:1, default:1,
}, },
@ -49,25 +57,25 @@ export default {
watch:{ watch:{
typeValue:{ typeValue:{
handler(newVAlue){ handler(newVAlue){
console.log(newVAlue); this.getList();
}, },
}, },
yearsChange:{ yearsValue:{
handler(newVAlue){ handler(newVAlue){
console.log(newVAlue); this.getList();
}, },
}, },
}, },
mounted() { mounted() {
// this.cancalDebounce(); // this.cancalDebounce();
window.addEventListener('resize', this.cancalDebounce); // window.addEventListener('resize', this.cancalDebounce);
this.getList(); this.getList();
}, },
methods:{ methods:{
// top5 // top5
getList(){ getList(){
this.loading = true; this.loading = true;
top5Fund().then(res=>{ top5Fund({type:this.typeValue,yearsChange:this.yearsValue}).then(res=>{
let arr = []; let arr = [];
let bgc = ['#EE462A','#FF8929','#ffbb00','#5CBC69','#00AEFF'] let bgc = ['#EE462A','#FF8929','#ffbb00','#5CBC69','#00AEFF']
res.data.forEach((element,index) => { res.data.forEach((element,index) => {
@ -77,6 +85,7 @@ export default {
obj.fundAmount = element.fundAmount; obj.fundAmount = element.fundAmount;
obj.projectName = element.projectName; obj.projectName = element.projectName;
obj.qymc = element.qymc; obj.qymc = element.qymc;
obj.appropriationTime = element.appropriationTime;
obj.projectId = element.projectId; obj.projectId = element.projectId;
arr.push(obj); arr.push(obj);
}); });
@ -87,7 +96,6 @@ export default {
}) })
}, },
ProjectInfo(item){ ProjectInfo(item){
console.log(item,"item");
if((item.projectName == "区级总部" || item.projectName == "市级服务业领军") && item.projectId) { if((item.projectName == "区级总部" || item.projectName == "市级服务业领军") && item.projectId) {
this.$router.push({ this.$router.push({
name: 'projectInfo', name: 'projectInfo',
@ -95,15 +103,25 @@ export default {
}) })
} }
}, },
// formatDate(dateString,id) {
cancalDebounce(){ const year = dateString.slice(0, 4);
const element = document.getElementById('zhijinbofu-qingkaung'); // ID const month = dateString.slice(4, 6);
const header = document.getElementById('zhijinbofu-header-id'); // ID const day = dateString.slice(6, 8);
const elementHeight = element.offsetHeight; if(id == 1) {
const headerHeight = header.offsetHeight; return `${year}${month}${day}`;
this.tabHeader = elementHeight - headerHeight - 35; } else {
return `${year}-${month}-${day}`;
} }
}, },
//
// cancalDebounce(){
// const element = document.getElementById('home-mainPro-middle-id'); // ID
// const header = document.getElementById('TOP-header-id'); // ID
// const elementHeight = element.offsetHeight;
// const headerHeight = header.offsetHeight;
// this.tabHeader = elementHeight - headerHeight - 20;
// }
},
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>

@ -32,21 +32,32 @@
<span class="garden"></span> <span class="garden"></span>
<span class="box-header-title">服务业发展总览</span> <span class="box-header-title">服务业发展总览</span>
</div> </div>
<div class="AFuwufazhanzonglan-box home-mainPro-top-box">
<AFuwufazhanzonglan></AFuwufazhanzonglan>
</div>
</div> </div>
<div class="pro-right-box"> <div class="pro-right-box">
<div class="box-header" id="zhongdian-header-id"> <div class="box-header" id="zhongdian-header-id">
<span class="garden"></span> <span class="garden"></span>
<span class="box-header-title">近三年资金拨付情况</span> <span class="box-header-title">近三年资金拨付情况</span>
<div class="left-box-select">
<div class="echart_boxs_btn">
<span class="changeFuwuyeYear_span" v-for="item in fuwuyeYear" :class="changeFuwuyeYear == item.year ? 'changeFuwuyeYear_span_change': ''" @click="changeEchart(item)">{{ item.year }}</span>
</div>
</div>
</div>
<div class="BJinsannianzijin-box home-mainPro-top-box">
<BJinsannianzijin ref="BJinsannian"></BJinsannianzijin>
</div> </div>
</div> </div>
</div> </div>
<div class="home-mainPro-middle"> <div class="home-mainPro-middle">
<div class="pro-left-box" style="margin-right: 10px;"> <div class="pro-left-box" style="margin-right: 10px;" id="home-mainPro-middle-id">
<div class="box-header" id="zhongdian-header-id"> <div class="box-header" id="TOP-header-id">
<span class="garden"></span> <span class="garden"></span>
<span class="box-header-title">企业获得资金拨付排名TOP5</span> <span class="box-header-title">企业获得资金拨付排名TOP5</span>
<div class="left-box-select"> <div class="left-box-select">
<el-select v-model="yearsChange" placeholder="请选择"> <!-- <el-select v-model="yearsChange" class="years-select" placeholder="请选择">
<el-option <el-option
label="当年" label="当年"
:value="1"> :value="1">
@ -55,8 +66,16 @@
label="近三年" label="近三年"
:value="2"> :value="2">
</el-option> </el-option>
</el-select> </el-select> -->
<el-select v-model="typeValue" placeholder="请选择"> <el-radio-group v-model="yearsChange" class="years-select" size="small" fill="#1890FF">
<el-radio-button :label="1">当年</el-radio-button>
<el-radio-button :label="2">近三年</el-radio-button>
</el-radio-group>
<el-radio-group v-model="typeValue" size="small" fill="#1890FF">
<el-radio-button :label="2">服务业专项</el-radio-button>
<el-radio-button :label="1">总部专项</el-radio-button>
</el-radio-group>
<!-- <el-select v-model="typeValue" placeholder="请选择">
<el-option <el-option
label="总部专项" label="总部专项"
:value="1"> :value="1">
@ -65,32 +84,97 @@
label="服务业专项" label="服务业专项"
:value="2"> :value="2">
</el-option> </el-option>
</el-select> </el-select> -->
</div> </div>
</div> </div>
<div class="capitalConditionTOP5-box"> <div class="capitalConditionTOP5-box">
<table-three :typeValue="typeValue" :yearsChange="yearsChange"></table-three> <table-three :typeValue="typeValue" :yearsValue="yearsChange" :height="tabHeaderOne"></table-three>
</div> </div>
</div> </div>
<div class="pro-right-box"> <div class="pro-right-box">
<div class="box-header" id="zhongdian-header-id"> <div class="box-header">
<span class="garden"></span> <span class="garden"></span>
<span class="box-header-title">当年已申报完成的项目</span> <span class="box-header-title">当年已申报完成的项目</span>
</div> </div>
<div class="wancheng-project">
<section>
<el-table v-loading="loadingProject" :data="tableData" :height="tabHeaderOne" border :header-cell-style="{background:'#E8F3FC'}">
<el-table-column label="项目名称" key="type" prop="type" align="center" width="180">
<template slot-scope="scope">
<div class="project-trace-table-name" @click="goProjectInfo(scope.row.id,1)"><dict-tag :options="dict.type.project_small_type" :value="scope.row.projectSmallType"/></div>
</template>
</el-table-column>
<el-table-column label="企业名称" key="declareUnit" prop="declareUnit" align="center">
</el-table-column>
<el-table-column label="申报时间" key="createTime" prop="createTime" align="center" width="120">
<template slot-scope="scope">
<div class="project-trace-table-number">{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</div>
</template>
</el-table-column>
</el-table>
</section>
</div>
</div> </div>
</div> </div>
<div class="home-mainPro-bottom"> <div class="home-mainPro-bottom">
<div class="pro-left-box" style="margin-right: 10px;"> <div class="pro-left-box" style="margin-right: 10px;" id="bottom-box-id">
<div class="box-header" id="zhongdian-header-id"> <div class="box-header" id="bottom-header-id">
<span class="garden"></span> <span class="garden"></span>
<span class="box-header-title">项目追踪情况</span> <span class="box-header-title">项目追踪情况</span>
</div> </div>
<div class="wancheng-project">
<section>
<el-table v-loading="loadingTwo" :data="tableDataTWo" :height="tabHeaderTwo" border :header-cell-style="{background:'#E8F3FC'}">
<el-table-column label="项目名称" key="type" prop="type" align="center" width="180">
<template slot-scope="scope">
<div class="project-trace-table-name" @click="goProjectInfo(scope.row.id,1)"><dict-tag :options="dict.type.project_small_type" :value="scope.row.projectSmallType"/></div>
</template>
</el-table-column>
<el-table-column label="申报时间" key="createTime" prop="createTime" align="center" width="120">
<template slot-scope="scope">
<div class="project-trace-table-number">{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</div>
</template>
</el-table-column>
<el-table-column label="企业名称" key="declareUnit" prop="declareUnit" align="center" />
<el-table-column label="当前状态" key="status" prop="status" align="center" width="120">
<template slot-scope="scope">
<div class="project-status" :class="(scope.row.status == 0 || scope.row.status == 1 || scope.row.status == 2 || scope.row.status == 3) ? 'orange' : (scope.row.status == 6) ? 'green' : (scope.row.status == 7 || scope.row.status == 8 || scope.row.status == 9 || scope.row.status == 10) ? 'red' : ''">
{{scope.row.status == 0 ? '待填报' : scope.row.status == 1 ? '初审中' : scope.row.status == 2 ? '复审中' : scope.row.status == 3 ? '终审中' : scope.row.status == 6 ? '已填报' : scope.row.status == 7 ? '复审不通过' : scope.row.status == 8 ? '初审不通过' : scope.row.status == 9 ? '终审不通过' : scope.row.status == 10 ? '初审驳回' : ''}}
</div>
</template>
</el-table-column>
</el-table>
</section>
</div>
</div> </div>
<div class="pro-right-box"> <div class="pro-right-box">
<div class="box-header" id="zhongdian-header-id"> <div class="box-header" id="zhongdian-header-id">
<span class="garden"></span> <span class="garden"></span>
<span class="box-header-title">备忘录更新情况</span> <span class="box-header-title">备忘录更新情况</span>
</div> </div>
<div class="wancheng-project">
<section>
<el-table v-loading="loadingThree" :data="tableDataThree" :height="tabHeaderTwo" border :header-cell-style="{background:'#E8F3FC'}">
<el-table-column label="备忘录内容" key="content" prop="content" align="center" width="200">
<template slot-scope="scope">
<div class="project-trace-table">{{ scope.row.content }}</div>
</template>
</el-table-column>
<el-table-column label="备忘录类型" key="type" prop="type" align="center" width="100">
<template slot-scope="scope">
<div class="project-trace-table-name" @click="goProjectInfo(scope.row,2)">{{ scope.row.type == 1 ? '' : scope.row.type == 2 ? '' : '' }}</div>
</template>
</el-table-column>
<el-table-column label="添加时间" key="createTime" prop="createTime" align="center" width="120">
<template slot-scope="scope">
<div class="project-trace-table-number">{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</div>
</template>
</el-table-column>
<el-table-column label="添加人" key="createBy" prop="createBy" align="center" />
</el-table>
</section>
</div>
</div> </div>
</div> </div>
</el-col> </el-col>
@ -223,15 +307,22 @@ import { chiefAll, changeIsRead } from "@/api/jin_ji_hu/intelligentReminder"
import hometwoIndex from "@/views/homeTwo/index.vue" import hometwoIndex from "@/views/homeTwo/index.vue"
import { zhinengtixing, daibanrenwu } from "@/views/workbench/components" import { zhinengtixing, daibanrenwu } from "@/views/workbench/components"
import TableThree from "./components/capitalConditionTOP5" import TableThree from "./components/capitalConditionTOP5"
import AFuwufazhanzonglan from "./components/AFuwufazhanzonglan"
import BJinsannianzijin from "./components/BJinsannianzijin"
import { currentYearFinish, projectTrace, memorandum } from "@/api/jin_ji_hu/zijinbiao"
export default { export default {
dicts: ["project_small_type"], dicts: ["project_small_type"],
components:{ components:{
hometwoIndex, hometwoIndex,
zhinengtixing, zhinengtixing,
daibanrenwu, daibanrenwu,
TableThree TableThree,
AFuwufazhanzonglan,
BJinsannianzijin
}, },
data() { data() {
let date = new Date();
const currentYear = date.getFullYear();
return { return {
// 01 02 // 01 02
userType: this.$store.state.user.userType, userType: this.$store.state.user.userType,
@ -253,13 +344,33 @@ export default {
value:"查荣誉" value:"查荣誉"
}, },
], ],
fuwuyeYear:[
{
year: currentYear,
},{
year: currentYear - 1,
},{
year: currentYear - 2,
},{
year: currentYear - 3,
},
],
changeFuwuyeYear: currentYear,
checked: 0, checked: 0,
loading:false, loading:false,
loadingProject:false,
loadingTwo:false,
loadingThree:false,
remindList: [], remindList: [],
info:{}, info:{},
time:"", time:"",
yearsChange: 1, yearsChange: 1,
typeValue: 1 typeValue: 2,
tableData:[],
tabHeaderOne:null,
tableDataTWo:[],
tableDataThree:[],
tabHeaderTwo:null,
} }
}, },
mounted(){ mounted(){
@ -267,9 +378,18 @@ export default {
this.getList(); this.getList();
this.govRemind(); this.govRemind();
this.time = this.getNowFormatDate(); this.time = this.getNowFormatDate();
this.getCurrentYearFinish();
this.getProjectTrace();
this.cancalDebounce();
this.getMemorandum();
window.addEventListener('resize', this.cancalDebounce);
} }
}, },
methods:{ methods:{
changeEchart(item){
this.changeFuwuyeYear = item.year;
this.$refs.BJinsannian.initChart(item.year)
},
// //
getNowFormatDate() { getNowFormatDate() {
let date = new Date(), let date = new Date(),
@ -284,6 +404,56 @@ export default {
industryBtn(){ industryBtn(){
this.$refs.collectDialog.open(); this.$refs.collectDialog.open();
}, },
//
getCurrentYearFinish(){
this.loadingProject = true;
currentYearFinish().then(res=>{
this.tableData = res.data;
this.loadingProject = false;
}).catch(err=>{
this.loadingProject = false;
})
},
//
getProjectTrace(){
this.loadingTwo = true;
projectTrace().then(res=>{
this.tableDataTWo = res.data;
this.loadingTwo = false;
}).catch(err=>{
this.loadingTwo = false;
})
},
goProjectInfo(item,id){
if(id == 1) {
this.$router.push({
name: 'projectInfo',
query: { userId: Number(item) }
})
} else {
if(item.type == '1') {
this.$router.push({
name: 'enterpriselibraryInfo',
query: { userId: Number(item.projectId) }
})
} else if(item.type == '2'){
this.$router.push({
name: 'projectInfo',
query: { userId: Number(item.projectId) }
})
}
}
},
//
getMemorandum(){
this.loadingThree = true;
memorandum().then(res=>{
this.tableDataThree = [...res.data];
this.loadingThree = false;
}).catch(err=>{
this.loadingThree = false;
})
},
// //
zhinengtixingBtn(){ zhinengtixingBtn(){
this.$refs.zhinengtixing.open(); this.$refs.zhinengtixing.open();
@ -425,6 +595,19 @@ export default {
}) })
} }
}, },
//
cancalDebounce(){
const element = document.getElementById('home-mainPro-middle-id'); // ID
const header = document.getElementById('TOP-header-id'); // ID
const elementTwo = document.getElementById('bottom-box-id'); // ID
const headerTwo = document.getElementById('bottom-header-id'); // ID
const elementHeight = element.offsetHeight;
const headerHeight = header.offsetHeight;
const elementHeightTwo = elementTwo.offsetHeight;
const headerHeightTwo = headerTwo.offsetHeight;
this.tabHeaderOne = elementHeight - headerHeight - 28;
this.tabHeaderTwo = elementHeightTwo - headerHeightTwo - 28;
}
}, },
} }
</script> </script>

@ -19,11 +19,11 @@ module.exports = {
// 默认情况下Vue CLI 会假设你的应用是被部署在一个域名的根路径上 // 默认情况下Vue CLI 会假设你的应用是被部署在一个域名的根路径上
// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。 // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
// 测试环境部署地址 // 测试环境部署地址
publicPath: process.env.NODE_ENV === "production" ? "/demo/JinJiHu" : "/", // publicPath: process.env.NODE_ENV === "production" ? "/demo/JinJiHu" : "/",
// 第三方测试脱敏部署地址 // 第三方测试脱敏部署地址(暂停用)
// publicPath: process.env.NODE_ENV === "production" ? "/demo/JinJiHuTest" : "/", // publicPath: process.env.NODE_ENV === "production" ? "/test/JinJiHuTest" : "/",
// 正式环境部署地址 // 正式环境部署地址
// publicPath: process.env.NODE_ENV === "production" ? "./" : "/", publicPath: process.env.NODE_ENV === "production" ? "./" : "/",
// 在npm run build 或 yarn build 时 生成文件的目录名称要和baseUrl的生产环境路径一致默认dist // 在npm run build 或 yarn build 时 生成文件的目录名称要和baseUrl的生产环境路径一致默认dist
outputDir: "dist", outputDir: "dist",
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下) // 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)

Loading…
Cancel
Save