Compare commits

...

61 Commits

Author SHA1 Message Date
许宏杰 53b14b7ff3 处理了数据云图中哥哥模块统计数据时间
3 months ago
许宏杰 f939ea9726 接口参数修改 current size
4 months ago
许宏杰 09cad209ad 处理企业规模多个显示问题
4 months ago
许宏杰 46c4dc6c39 修复选择企业回显记忆性问题
4 months ago
许宏杰 f7cc4264be 发布申报任务新增一个自选企业模块,短信内容模块
4 months ago
许宏杰 e76d4ea867 在线申报记录修改分页参数
5 months ago
吕天方 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'
# 金鸡湖现代服务业品牌管理系统/开发环境
VUE_APP_BASE_API = 'http://192.168.0.110:9040'
VUE_APP_BASE_API = 'http://192.168.0.123: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'
# 正式环境数据库
@ -15,3 +15,13 @@ VUE_APP_BASE_API = 'http://192.168.0.110:9040'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true
#吕天方项目对接注意点 —— 金鸡湖PC端   总结人:许宏杰
#0.脱敏环境已关闭
#1.本地运行地址http://localhost/#/login。
#2.项目中存在不同环境的下载路径,全局搜素"/demo/JinJiHu",对应位置有各个环境下载路径代码注释。
#3.测试与正式环境的登录页不同需要到router.js对应的登录页组件位置根据环境不同注释掉对应组件。W
#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 = '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://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 () {
console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`))
// console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`))
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",
"version": "1.0.202408290906",
"version": "1.0.202504021009",
"description": "金鸡湖现代服务业品牌管理系统",
"author": "若依",
"license": "MIT",
@ -39,8 +39,9 @@
"@riophae/vue-treeselect": "0.4.0",
"@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^1.0.2",
"autofit.js": "^3.1.0",
"autofit.js": "^3.2.1",
"axios": "0.24.0",
"bpmn-js-token-simulation": "0.10.0",
"clipboard": "2.0.8",
"core-js": "3.25.3",
"echarts": "5.4.0",
@ -54,6 +55,8 @@
"jsencrypt": "3.0.0-rc.1",
"jspdf": "^2.5.1",
"lodash": "^4.17.21",
"moment": "^2.30.1",
"node-forge": "^1.3.1",
"nprogress": "0.2.0",
"quill": "1.3.7",
"screenfull": "5.0.2",
@ -66,8 +69,7 @@
"vuedraggable": "2.24.3",
"vuex": "3.6.0",
"xlsx": "^0.18.5",
"xml-js": "1.6.11",
"bpmn-js-token-simulation": "0.10.0"
"xml-js": "1.6.11"
},
"devDependencies": {
"@vue/cli-plugin-babel": "4.4.6",

@ -1,21 +1,21 @@
import request from "@/utils/request"
import request from "@/utils/request";
// 分页查询企业基础信息
export function getEnterList(params) {
return request({
url: "/system/enterpriseBasicInfo/list",
method: "get",
params
})
params,
});
}
// 新增企业基础信息
// 新增企业基础信息
export function enterpriseBasicInfoNew(data) {
return request({
url: "/system/enterpriseBasicInfo",
method: "post",
data
})
data,
});
}
// 修改企业基础信息
@ -23,8 +23,8 @@ export function enterpriseBasicInfoChange(data) {
return request({
url: "/system/enterpriseBasicInfo/edit",
method: "post",
data
})
data,
});
}
// 根据主键查询企业基础信息
@ -32,7 +32,7 @@ export function enterpriseBasicInfoId(id) {
return request({
url: "/system/enterpriseBasicInfo/" + id,
method: "get",
})
});
}
// 删除企业基础信息
@ -40,8 +40,8 @@ export function enterpriseBasicInfoDel(params) {
return request({
url: "/system/enterpriseBasicInfo" + id,
method: "post",
params
})
params,
});
}
// 分页查询联络人列表
@ -49,6 +49,13 @@ export function getjContacts(params) {
return request({
url: "/jjh/jContacts",
method: "get",
params
})
params,
});
}
export function getenterpriseByName(data) {
return request({
url: "/system/templateRecord/searchEntCodeToInfo",
method: "post",
data,
});
}

@ -16,4 +16,12 @@ export function workSearch(params) {
method: "get",
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) {
// return request({

@ -41,6 +41,14 @@ export function fundStatistics() {
})
}
// 正式环境政务端工作台 --> 服务业发展总览
export function servicesDevelop(){
return request({
url: "/jjh/chiefWork/servicesDevelop" ,
method: "get",
})
}
// 正式环境政务端工作台 --> 企业获得资金拨付排名TOP5
export function top5Fund(params){
return request({
@ -48,4 +56,36 @@ export function top5Fund(params){
method: "get",
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",
})
}

@ -1,83 +1,91 @@
import request from '@/utils/request'
import request from "@/utils/request";
// 查询在线申报记录列表
export function listRecords(query) {
return request({
url: '/system/declarationRecords/list',
method: 'get',
params: query
})
url: "/system/declarationRecords/list",
method: "get",
params: query,
});
}
// 查询申报模版列表
export function templateList(query) {
return request({
url: '/system/templateRecord/templateNameList',
method: 'get',
params: query
})
url: "/system/templateRecord/templateNameList",
method: "get",
params: query,
});
}
// 导出
export function exportData(data) {
return request({
url: '/system/declarationRecords/export',
method: 'post',
responseType: 'blob',
data: data
})
url: "/system/declarationRecords/export",
method: "post",
responseType: "blob",
data: data,
});
}
// 新增企业名录
export function addTemplateRecord(data) {
return request({
url: '/system/templateRecord',
method: 'post',
data: data
})
url: "/system/templateRecord",
method: "post",
data: data,
});
}
// 下载需要评定数据
export function downloadData(data) {
return request({
url: '/system/declarationRecords/exportMunicipalBureauReview',
method: 'post',
responseType: 'blob',
data: data
})
url: "/system/declarationRecords/exportMunicipalBureauReview",
method: "post",
responseType: "blob",
data: data,
});
}
// 上传单个文件
export function uploadFile(data) {
return request({
url: '/common/upload',
method: 'post',
url: "/common/upload",
method: "post",
data: data,
// headers: {
// 'Content-type': 'multipart/form-data'
// }
})
});
}
// 上传评定数据
export function putMunicipalBureauReview(data) {
return request({
url: '/system/declarationRecords/municipalReviewNew',
method: 'post',
data: data
})
url: "/system/declarationRecords/municipalReviewNew",
method: "post",
data: data,
});
}
// 导出zip压缩包
export function exportZip(params) {
return request({
url: '/system/declarationRecords/fileList',
method: 'get',
responseType: 'blob',
url: "/system/declarationRecords/fileList",
method: "get",
responseType: "blob",
headers: {
"content-type": "application/json; charset=utf-8",
},
params
})
}
params,
});
}
export function exportXlsx(query) {
return request({
url: "/jjh/jPolicyFile/getYtb",
method: "get",
params: query,
responseType: "blob",
});
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

@ -216,7 +216,10 @@ section::-webkit-scrollbar {
// display: none;
// }
//
.honor-dialog,.collectDialog-dialog,.headquarterEnterprise-dialog,.serviceIndustry-dialog {
.honor-dialog,
.collectDialog-dialog,
.headquarterEnterprise-dialog,
.serviceIndustry-dialog {
section {
div::-webkit-scrollbar {
display: block;
@ -226,11 +229,11 @@ section::-webkit-scrollbar {
width: 6px;
height: 6px;
}
.el-table::-webkit-scrollbar-track {
background-color: #f1f1f1;
}
.el-table::-webkit-scrollbar-thumb {
background-color: #c0c0c0;
border-radius: 3px;
@ -314,7 +317,7 @@ section::-webkit-scrollbar {
box-shadow: 0 0 10px #ccc;
z-index: 2;
}
.out_drop_style {
position: absolute;
width: 6px;
@ -387,7 +390,7 @@ section::-webkit-scrollbar {
right: 20px;
display: flex;
align-items: center;
.approval_img {
width: 85px;
height: 80px;
@ -402,3 +405,7 @@ section::-webkit-scrollbar {
}
}
}
.tablecell .el-checkbox__label {
display: none !important;
}

@ -170,6 +170,18 @@
.import-btn-export {
padding: 8px 20px;
}
.el-form {
.el-form-item {
.el-form-item__content {
.xinxiweihu {
width: 230px;
}
}
}
}
}
section {
@ -2507,12 +2519,14 @@
.promoteProject-bottom {
margin-top: 16px;
display: flex;
justify-content: space-between;
// justify-content: space-between;
align-items: center;
width: 85%;
.promoteProject-bottom-left {
font-family: AlibabaPuHuiTiR;
font-size: 14px;
color: #666666;
width: 67%;
display: flex;
.span-two {
font-family: AlibabaPuHuiTiM;
@ -2563,6 +2577,9 @@
// text-transform: none;
cursor: pointer;
}
.project-trace-table-gray {
color: #747474;
}
}
}
//
@ -3590,12 +3607,12 @@
background-color: #F6F9FD;
}
// .project-trace-table-number {
// font-family: DINCondensed, DINCondensed;
// // font-weight: bold;
// font-size: 20px;
// color: #FF844D;
// }
.project-trace-table-number {
font-family: DINCondensed, DINCondensed;
// font-weight: bold;
font-size: 20px;
color: #FF844D;
}
.remind-info {
width: 11em;
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 {
width: 100%;
height: calc(100% - 110px);

@ -4,14 +4,22 @@
width: 100%;
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%;
padding: 20px 0;
display: flex;
align-items: center;
.workbench-serch {
padding-left: 200px;
padding-left: 40px;
width: 100%;
display: flex;
.workbench-title {
display: flex;
@ -19,11 +27,14 @@
.title-item {
cursor: pointer;
padding: 10px 60px 10px 40px;
border-top-right-radius: 30% 100%;
padding: 10px 30px 10px 20px;
border-radius: 5px;
border-top-right-radius: 20% 50%;
margin-right: 15px;
background: #FFFFFF;
box-shadow: 2px 0 3px 0px #ccc;
color: #0086FF;
font-weight: 600;
}
.checked-item {
@ -43,14 +54,23 @@
.el-input {
width: 100%;
height: 100%;
position: relative;
input {
height: 100%;
border-radius: 30px;
}
.el-input-group__append {
width: 80px;
text-align: center;
position: absolute;
right: 5px;
top: 5px;
bottom: 5px;
width: 100px;
border-radius: 30px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
// background: radial-gradient( farthest-side at 40px 40px, #1B84D2 20%, #30CEF5 100%);
background: linear-gradient(to right, #1B84D2, #30CEF5);
@ -60,6 +80,7 @@
color: #FFFFFF;
}
}
}
}
}
@ -68,9 +89,10 @@
.home-main {
width: 100%;
padding: 10px;
height: calc(100% - 132px);
height: calc(100% - 91px);
display: flex;
flex-direction: column;
.main-row {
height: 100%;
box-sizing: border-box;
@ -130,6 +152,7 @@
background-color: #F5F8FA;
border: none;
margin-bottom: 10px;
.el-card__body {
padding: 10px 20px;
}
@ -159,29 +182,36 @@
.warn-main-content {
flex: 1;
.content-title,.content-title-type {
.content-title,
.content-title-type {
font-weight: bold;
font-size: 15px;
color: #333333;
}
.content-title-type {
margin-top: 5px;
}
.content-middle {
font-weight: bold;
font-size: 15px;
color: #333333;
margin: 10px 0;
}
.tixing-duanxin {
display: flex;
align-items: center;
}
.content-time {
font-weight: 500;
font-size: 14px;
color: #737373;
}
.content-time-two {
margin-left: 10px;
}
@ -233,79 +263,460 @@
}
.service-left {
padding: 10px 20px;
.home-mainPro-top,.home-mainPro-middle,.home-mainPro-bottom {
padding: 10px;
height: 100%;
overflow: hidden;
display: flex;
flex-direction: column;
.home-mainPro-top {
height: 32%;
// height: 250px;
display: flex;
align-items: center;
.pro-left-box, .pro-right-box {
width: 50%;
.pro-left-box,
.pro-right-box {
height: 100%;
padding: 10px;
background-color: #F5F8FA;
border-radius: 10px;
display: flex;
flex-direction: column;
}
}
.home-mainPro-top {
}
.home-mainPro-middle {
margin: 10px 0;
.capitalConditionTOP5-box {
padding: 10px 0;
section {
margin-top: 10px;
// .el-table--border {
// border: 1px solid #dfe6ec;
// }
.el-table {
.project-trace-table-ranking {
// padding: 1px 0px;
.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;
justify-content: center;
border-radius: 5px;
font-weight: normal;
font-size: 12px;
font-family: ArialB;
color: #FFFFFF;
}
.project-table-Info {
font-family: AlibabaPuHuiTiR;
font-weight: 500;
font-size: 14px;
color: #1890FF;
// font-style: normal;
// text-decoration-line: underline;
// text-transform: none;
cursor: pointer;
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");
}
.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;
}
}
}
th {
}
}
}
}
//
.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: #000;
text-align: center;
.Table-header {
// font-family: AlibabaPuHuiTiM;
font-size: 14px;
color: #333333;
}
.Table-unit {
font-family: AlibabaPuHuiTiR;
font-size: 12px;
font-weight: 400;
color: #333333;
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 ;
}
}
}
td {
font-weight: 500;
}
.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 {
margin: 10px 0;
height: 40%;
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 {
margin-top: 10px;
.el-table--border {
border: 1px solid #dfe6ec;
}
.el-table {
.project-trace-table-ranking {
// padding: 1px 0px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 5px;
font-weight: normal;
font-size: 12px;
font-family: ArialB;
color: #FFFFFF;
}
.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: #666666;
color: #333333;
}
.Table-unit {
font-family: AlibabaPuHuiTiR;
font-size: 12px;
font-weight: 400;
color: #333333;
}
}
td {
font-weight: bold;
font-size: 14px;
text-align: center;
font-family: PingFang-SC;
color: #333333;
}
}
}
}
}
.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;
}
.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 {
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-size: 12px;
font-weight: 400;
color: #333333;
}
}
td {
font-weight: bold;
font-size: 14px;
text-align: center;
font-family: PingFang-SC;
color: #333333;
}
}
}
}
}
}
.work-main-right {
background-color: #fff;
border-radius: 10px;
@ -314,6 +725,7 @@
.main-right {
padding: 10px 20px;
height: 100%;
.right-header {
display: flex;
justify-content: space-between;
@ -352,6 +764,7 @@
.right-main {
height: calc(100% - 55px);
overflow-y: scroll;
.main-items {
display: flex;
align-items: center;
@ -410,6 +823,7 @@
.box-header {
display: flex;
align-items: center;
.garden {
width: 10px;
height: 10px;
@ -417,20 +831,67 @@
background-color: #0086FF;
margin-right: 10px;
}
.box-header-title {
font-family: AlibabaPuHuiTiB;
font-size: 16px;
color: #383838;
}
// TOP5
.left-box-select {
flex: 1;
display: flex;
justify-content: flex-end;
align-items: center;
.el-select {
width: 100px;
.el-select {
width: 130px;
.el-input__inner {
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;
this.crontabValueObj[name] = value;
if (from && from !== name) {
console.log(`来自组件 ${from} 改变了 ${name} ${value}`);
// console.log(` ${from} ${name} ${value}`);
this.changeRadio(name, value);
}
},

@ -81,6 +81,15 @@ if (!localVersion || version !== localVersion) {
localStorage.clear() // 清除缓存
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;
// function setRemUnit () {
// 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 signature = queryTwo && queryTwo[1]; // 签名
const userToken = queryThree && queryThree[1]; // 用户令牌
localStorage.setItem("otherToken",userToken)
let info = {
userToken,
signature,
@ -119,7 +120,7 @@ router.beforeEach((to, from, next) => {
});
}
}).catch((err) => {
console.log(err);
// console.log(err);
// store.dispatch("LogOut").then(() => {
// Message.error(err);
// location.href = "https://qyt.sipac.gov.cn/sipsg-enterprise-mobile-manage/#/login"

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

@ -43,8 +43,8 @@ export const constantRoutes = [
},
{
path: "/login",
component: () => import("@/views/login"),
// component: () => import("@/views/login_v1"), // 三方测试脱敏登录页
component: () => import("@/views/login"), // 测试环境登录页
// component: () => import("@/views/login_v1"), // 正式环境登录页
hidden: true,
},
{
@ -95,61 +95,65 @@ export const constantRoutes = [
// ],
// },
{
path: '/user',
path: "/user",
component: Layout,
hidden: true,
redirect: 'noredirect',
redirect: "noredirect",
children: [
{
path: 'profile',
component: () => import('@/views/system/user/profile/index'),
name: 'Profile',
meta: { title: '个人中心', icon: 'user' }
path: "profile",
component: () => import("@/views/system/user/profile/index"),
name: "Profile",
meta: { title: "个人中心", icon: "user" },
},
{
path: 'onlineDeclareAdd',
component: () => import('@/views/onlineDeclaration/declareAddContent/index'),
name: 'onlineDeclareAdd',
meta: { title: '新增申报', icon: 'user' }
path: "onlineDeclareAdd",
component: () =>
import("@/views/onlineDeclaration/declareAddContent/index"),
name: "onlineDeclareAdd",
meta: { title: "新增申报", icon: "user" },
},
{
path: 'onlineDeclareInfo',
component: () => import('@/views/onlineDeclaration/declareDetailContent/index'),
name: 'onlineDeclareInfo',
meta: { title: '申报详情', icon: 'user' }
path: "onlineDeclareInfo",
component: () =>
import("@/views/onlineDeclaration/declareDetailContent/index"),
name: "onlineDeclareInfo",
meta: { title: "申报详情", icon: "user" },
},
{
path: 'onlineDeclareDetail',
component: () => import('@/views/onlineDeclaration/templateDetail/index'),
name: 'onlineDeclareDetail',
meta: { title: '模版详情', icon: 'user' }
path: "onlineDeclareDetail",
component: () =>
import("@/views/onlineDeclaration/templateDetail/index"),
name: "onlineDeclareDetail",
meta: { title: "模版详情", icon: "user" },
},
{
path: 'onlineDeclareTInfo',
component: () => import('@/views/onlineDeclaration/supplementary/index'),
name: 'onlineDeclareTInfo',
meta: { title: '模版详情', icon: 'user' }
path: "onlineDeclareTInfo",
component: () =>
import("@/views/onlineDeclaration/supplementary/index"),
name: "onlineDeclareTInfo",
meta: { title: "模版详情", icon: "user" },
},
{
path: 'projectInfo',
component: () => import('@/views/project/projectInfo/index'),
name: 'projectInfo',
meta: { title: '项目详情', icon: 'user' }
path: "projectInfo",
component: () => import("@/views/project/projectInfo/index"),
name: "projectInfo",
meta: { title: "项目详情", icon: "user" },
},
{
path: 'enterpriselibraryInfo',
component: () => import('@/views/enterpriselibrary/enterInfo/index'),
name: 'enterpriselibraryInfo',
meta: { title: '企业详情', icon: 'user' }
path: "enterpriselibraryInfo",
component: () => import("@/views/enterpriselibrary/enterInfo/index"),
name: "enterpriselibraryInfo",
meta: { title: "企业详情", icon: "user" },
},
{
path: 'onlineDeclarebBuild',
component: () => import('@/views/tool/build/index'),
name: 'onlineDeclarebBuild',
meta: { title: '表单构建', icon: 'user' }
path: "onlineDeclarebBuild",
component: () => import("@/views/tool/build/index"),
name: "onlineDeclarebBuild",
meta: { title: "表单构建", icon: "user" },
},
]
}
],
},
];
// 动态路由,基于用户权限动态去加载

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

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

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

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

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

@ -3,83 +3,140 @@
<div class="L-public-main" id="L-size-main">
<div class="L-main">
<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="24">
<el-form-item label="待办任务标题:" prop="enterpriseDirectory">
<el-input v-model.trim="formInline.enterpriseDirectory" placeholder="请输入内容"></el-input>
<el-input
v-model.trim="formInline.enterpriseDirectory"
placeholder="请输入内容"
></el-input>
</el-form-item>
<el-form-item>
<el-button size="mini" @click="resetQuery('queryFrom')"></el-button>
<el-button size="mini" type="primary" @click="handleQuery('queryFrom')"></el-button>
<el-button size="mini" @click="resetQuery('queryFrom')"
>重置</el-button
>
<el-button
size="mini"
type="primary"
@click="handleQuery('queryFrom')"
>查询</el-button
>
</el-form-item>
</el-col>
</el-form>
</header>
<section>
<el-table v-loading="loading" :data="tableData" :row-class-name="tableRowClassName" :height="tabHeader" :max-height="tabHeader">
<el-table-column label="序号" type="index" align="center" width="50"/>
<el-table-column label="待办任务标题" align="center" prop="enterpriseDirectory" />
<el-table
v-loading="loading"
:data="tableData"
:row-class-name="tableRowClassName"
:height="tabHeader"
:max-height="tabHeader"
>
<el-table-column
label="序号"
type="index"
align="center"
width="50"
/>
<el-table-column
label="待办任务标题"
align="center"
prop="enterpriseDirectory"
/>
<el-table-column label="审核状态" align="center" prop="cylx">
<template slot-scope="scope">
<span v-if="scope.row.status == 5" class="approval_status5"></span>
<span v-if="scope.row.status == 5" class="approval_status5"
>评审通过</span
>
<!-- <span v-if="scope.row.status == 4" class="approval_status3"></span> -->
<span v-if="scope.row.status == 3" class="approval_status3"></span>
<span v-if="scope.row.status == 2" class="approval_status1"></span>
<span v-if="scope.row.status == 1" class="approval_status1"></span>
<span v-if="scope.row.status == 0" class="approval_status0"></span>
<span v-if="scope.row.status == 8" class="approval_status8"></span>
<span v-if="scope.row.status == 7" class="approval_status9"></span>
<span v-if="scope.row.status == 3" class="approval_status3"
>终审中</span
>
<span v-if="scope.row.status == 2" class="approval_status1"
>复审中</span
>
<span v-if="scope.row.status == 1" class="approval_status1"
>初审中</span
>
<span v-if="scope.row.status == 0" class="approval_status0"
>待填报</span
>
<span v-if="scope.row.status == 8" class="approval_status8"
>初审不通过</span
>
<span v-if="scope.row.status == 7" class="approval_status9"
>复审不通过</span
>
<!-- <span v-if="scope.row.status == 6" class="approval_status9">-</span> -->
<span v-if="scope.row.status == 6" class="approval_status5"></span>
<span v-if="scope.row.status == 9" class="approval_status9"></span>
<span v-if="scope.row.status == 10" class="approval_status9"></span>
<span v-if="scope.row.status == 6" class="approval_status5"
>已填报</span
>
<span v-if="scope.row.status == 9" class="approval_status9"
>终审不通过</span
>
<span v-if="scope.row.status == 10" class="approval_status9"
>初审驳回</span
>
</template>
</el-table-column>
<el-table-column label="操作" prop="userId" align="center" class-name="table-operation" width="120">
<el-table-column
label="操作"
prop="userId"
align="center"
class-name="table-operation"
width="120"
>
<template slot-scope="scope">
<span class="look-info" @click="goInfo(scope.row)"></span>
</template>
</el-table-column>
</el-table>
<my-pagination
<my-pagination
id="L-pagination"
:total="total"
:page="pagination.current"
:limit="pagination.size"
:page="pagination.pageNum"
:limit="pagination.pageSize"
@pagination="getPagination"
:current-page.sync="pagination.current"
:current-page.sync="pagination.pageNum"
></my-pagination>
</section>
</div>
</div>
</template>
<script>
import myPagination from "@/views/components/Pagination/index.vue"
import { listRecords } from "@/api/onlineDeclartion/records"
import myPagination from "@/views/components/Pagination/index.vue";
import { listRecords } from "@/api/onlineDeclartion/records";
export default {
components:{myPagination},
components: { myPagination },
data() {
return {
userType: this.$store.state.user.userType,
deptId: this.$store.state.user.deptId,
total:0,
total: 0,
pagination: {
current:1,
size:10,
orderChange:1,
current: 1,
size: 10,
orderChange: 1,
},
loading:false,
loading: false,
formInline: {
enterpriseDirectory: '',
enterpriseDirectory: "",
type: null,
},
tableData:[],
tableData: [],
tabHeader: undefined,
}
};
},
mounted() {
this.cancalDebounce();
window.addEventListener('resize', this.cancalDebounce);
window.addEventListener("resize", this.cancalDebounce);
// if(this.$route.params.enterpriseName) {
// this.formInline.enterpriseName = this.$route.params.enterpriseName;
// this.pagination = { ...this.pagination,...this.formInline };
@ -87,67 +144,67 @@ export default {
this.getList();
},
destroyed() {
window.removeEventListener('resize', this.cancalDebounce);
window.removeEventListener("resize", this.cancalDebounce);
},
methods:{
methods: {
//
getList(){
getList() {
this.loading = true;
listRecords(this.pagination).then(res=>{
listRecords(this.pagination).then((res) => {
this.loading = false;
this.total = res.total;
this.tableData = res.rows;
})
this.tableData = res.data.records;
});
},
//
getPagination(pages) {
this.pagination.current = pages.page;
this.pagination.size = pages.limit;
this.pagination.pageNum = pages.page;
this.pagination.pageSize = pages.limit;
this.getList();
},
//
handleQuery() {
this.pagination = {
current: 1,
size: 10
}
this.pagination = { ...this.pagination,...this.formInline };
pageNum: 1,
pageSize: 10,
};
this.pagination = { ...this.pagination, ...this.formInline };
this.getList();
},
//
resetQuery(formName){
resetQuery(formName) {
this.$refs[formName].resetFields();
this.pagination = {
current: 1,
size: 10
}
pageNum: 1,
pageSize: 10,
};
this.getList();
},
// table
tableRowClassName({row, rowIndex}){
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 !== 0) {
return 'evenNumber-row';
return "evenNumber-row";
}
return '';
return "";
},
//
goInfo(row){
goInfo(row) {
this.$router.push({
name: 'Online',
})
name: "Online",
});
},
//
cancalDebounce(){
const element = document.getElementById('L-size-main'); // ID
const header = document.getElementById('L-header'); // ID
const pagination = document.getElementById('L-pagination'); // ID
cancalDebounce() {
const element = document.getElementById("L-size-main"); // ID
const header = document.getElementById("L-header"); // ID
const pagination = document.getElementById("L-pagination"); // ID
const elementHeight = element.offsetHeight;
const headerHeight = header.offsetHeight;
const paginationtHeight = pagination.offsetHeight;
this.tabHeader = elementHeight - headerHeight - paginationtHeight - 140;
}
},
},
}
};
</script>
<style scoped lang="scss">
.approval_status5 {
@ -157,7 +214,7 @@ export default {
}
.approval_status5::after {
position: absolute;
content: '';
content: "";
width: 7px;
height: 7px;
border-radius: 50%;
@ -173,7 +230,7 @@ export default {
}
.approval_status3::after {
position: absolute;
content: '';
content: "";
width: 7px;
height: 7px;
border-radius: 50%;
@ -189,7 +246,7 @@ export default {
}
.approval_status1::after {
position: absolute;
content: '';
content: "";
width: 7px;
height: 7px;
border-radius: 50%;
@ -205,7 +262,7 @@ export default {
}
.approval_status0::after {
position: absolute;
content: '';
content: "";
width: 7px;
height: 7px;
border-radius: 50%;
@ -221,7 +278,7 @@ export default {
}
.approval_status8::after {
position: absolute;
content: '';
content: "";
width: 7px;
height: 7px;
border-radius: 50%;
@ -237,7 +294,7 @@ export default {
}
.approval_status9::after {
position: absolute;
content: '';
content: "";
width: 7px;
height: 7px;
border-radius: 50%;

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

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

@ -10,7 +10,7 @@
<span class="dataCloudMap-birght"></span>
<span class="dataCloudMap-title">服务业发展总览</span>
</div>
<span class="dataCloudMap-data">统计数据截至2024-01</span>
<span class="dataCloudMap-data">统计数据截至{{firstMonthOfYear}}</span>
</div>
<div class="rightBigNav">
<div class="right-nav">
@ -38,7 +38,7 @@
<span class="dataCloudMap-birght"></span>
<span class="dataCloudMap-title">行业纵深情况</span>
</div>
<span class="dataCloudMap-data">统计数据截至2024-01</span>
<span class="dataCloudMap-data">统计数据截至{{firstMonthOfYear}}</span>
</div>
<div class="rightBtn" @click="industryBtn">>></div>
</div>
@ -91,14 +91,16 @@
<span class="dataCloudMap-birght"></span>
<span class="dataCloudMap-title">企业情况</span>
</div>
<span class="dataCloudMap-data">统计数据截至2024-01</span>
<span class="dataCloudMap-data">统计数据截至{{firstMonthOfYear}}</span>
</div>
<div class="dataCloudMap-enterprise-bottom">
<div class="dataCloudMap-enterprise">
<!-- 第一个卡片 -->
<el-card shadow="always" v-for="(item,index) in cardData" :key="index">
<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>
</div>
<div class="card-items">
@ -121,6 +123,7 @@
<div class="card-unit unit-two">亿</div>
</div>
</div>
<!-- 正式/测试环境加上 v-if="item.servicesType !== 3" -->
<div class="card-items" v-if="item.servicesType !== 3">
<div class="card-item-left">
<div class="card-img card-img-three"></div>
@ -206,7 +209,7 @@
<span class="dataCloudMap-birght"></span>
<span class="dataCloudMap-title">荣誉情况</span>
</div>
<span class="dataCloudMap-data">统计数据截至2024-01</span>
<span class="dataCloudMap-data">统计数据截至{{firstMonthOfYear}}</span>
</div>
<div class="rightBtn" @click="honorBtn">>></div>
</div>
@ -262,7 +265,10 @@
<div class="right-bottom-title">
<div class="L-title-left">
<span class="dataCloudMap-birght"></span>
<!-- 正式/测试 -->
<span class="dataCloudMap-title">持续关注项目</span>
<!-- 脱敏 -->
<!-- <span class="dataCloudMap-title">项目追踪情况</span> -->
</div>
<span class="dataCloudMap-data">统计数据截至{{ time }}</span>
</div>
@ -270,24 +276,35 @@
</div>
<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" -->
<!-- 正式/测试 提醒时间的 正式环境/测试环境去除样式 class="project-trace-table-number"-->
<el-table-column label="项目名称" prop="projectSmallType" width="400" align="center">
<template slot-scope="scope">
<!-- <div>{{ scope.row.enterpriseDirectory }}</div> -->
<dict-tag :options="dict.type.project_small_type" :value="scope.row.projectSmallType"/>
</template>
</el-table-column>
<el-table-column label="提醒内容" prop="alertContent" align="center" width="200">
<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>
</template>
</el-table-column>
<el-table-column label="提醒时间" prop="alertTime" align="center">
<template slot-scope="scope">
<div class="project-trace-table-number">{{ scope.row.alertTime }}</div>
<div>{{ scope.row.alertTime }}</div>
</template>
</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>
</section>
</div>
@ -300,6 +317,7 @@
</div>
</template>
<script>
const moment = require('moment');
import honorDialogVue from './components/honorDialog.vue';
import headqEnterprise from './components/headquarterEnterprise.vue'
import serviceIndustry from './components/serviceIndustry.vue'
@ -311,6 +329,7 @@ export default {
dicts: ["project_small_type"],
data() {
return {
firstMonthOfYear:moment().startOf('year').format('YYYY-MM'),
activeIndex:1,
options1: [
{
@ -413,7 +432,7 @@ export default {
this.tableTwoData = res.data;
})
},
//
honorBtn(){
this.$refs.honorDialog.open(this.honorTableData);

@ -6,7 +6,7 @@
<el-col :span="9">
<div class="project-info-top">
<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>
</div>
</el-col>
@ -46,7 +46,7 @@
<span>{{ item.name }}</span>
<span>{{ item.createTime }}</span>
</div>
<div class="clearfix-right">
<div class="clearfix-right" v-if="!roles.includes('sightseer')">
<div class="clearfix-bianji" @click="putMemo(item)">
<i class="icon iconfont icon-jc-bianji-copy"></i>
编辑
@ -124,6 +124,7 @@ export default {
name:"tabFour",
data() {
return {
roles: this.$store.state.user.roles,
formInline:{
startTime:"",
endTime:"",

@ -11,6 +11,12 @@
<el-table-column label="联络人编号" prop="llrbh" />
<el-table-column label="入库时间" prop="dwTimestamp" />
<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>
</section>
<el-row>
@ -99,7 +105,8 @@ export default {
//
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)){
//
return cb();
@ -150,6 +157,7 @@ export default {
],
contactEmail:[
{ required: true, message: '请填写常用联系人邮箱', trigger: 'blur' },
// { type:"email", message: '', trigger: 'blur'}
{validator: checkEmail, trigger: 'blur'}
],
},
@ -218,7 +226,7 @@ export default {
// }
this.addFrom.enterpriseCode = this.detailedInfo.tyshxydm;
this.addFrom.enterpriseName = this.detailedInfo.qymc;
console.log(this.detailedInfo);
// console.log(this.detailedInfo);
this.$refs.importProject.open();
},
//

@ -5,7 +5,7 @@
<div class="left-info enter-left-info" id="L-header">
<div class="project-info-title">企业信息</div>
<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.tyshxydm }}</el-descriptions-item>
<el-descriptions-item label="企业类型">{{ info.qylxmc }}</el-descriptions-item>
@ -114,6 +114,7 @@
<script>
import { tabOne, tabTwo, tabThree, tabFour, projectProgress } from "./components"
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"
export default {
dicts: ['jjh_project_type','jjh_status'],
@ -172,6 +173,7 @@ export default {
enrollType:"",
business:"",
},
isZhengwu:false,
rules:{
enterpriseName:[
{ required: true, message: '请填写企业名称', trigger: 'blur' }
@ -210,6 +212,15 @@ export default {
{ required: true, message: '请填写经营范围', trigger: 'blur' }
],
},
userToken:null,
}
},
created(){
this.userToken = localStorage.getItem('otherToken');
if(this.userToken) {
this.isZhengwu = true;
} else {
this.isZhengwu = false;
}
},
mounted(){
@ -227,6 +238,22 @@ export default {
window.removeEventListener('resize', this.cancalDebounce);
},
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){
this.loading = true;
enterpriseBasicInfoId(id).then(res=>{

@ -2,24 +2,32 @@
<div class="L-public-main" id="L-size-main">
<div class="L-main">
<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="20">
<el-form-item label="企业名称:" prop="qymc">
<el-input v-model.trim="formInline.qymc" placeholder="请输入内容"></el-input>
<el-input
v-model.trim="formInline.qymc"
placeholder="请输入内容"
></el-input>
</el-form-item>
<el-form-item label="企业规模:" prop="type">
<el-select class="ignoreElement" v-model="formInline.type" placeholder="请选择">
<el-select
class="ignoreElement"
v-model="formInline.type"
placeholder="请选择"
>
<el-option
label="全部"
value="">
</el-option>
<el-option
label="规上服务业"
value="1">
</el-option>
<el-option
label="其他"
value="2">
:label="item.label"
:value="item.value"
v-for="item in selectList"
:key="item.value"
>
</el-option>
</el-select>
</el-form-item>
@ -39,20 +47,48 @@
</el-select>
</el-form-item> -->
<el-form-item>
<el-button size="mini" @click="resetQuery('queryFrom')"></el-button>
<el-button size="mini" type="primary" @click="handleQuery('queryFrom')"></el-button>
<el-button size="mini" @click="resetQuery('queryFrom')"
>重置</el-button
>
<el-button
size="mini"
type="primary"
@click="handleQuery('queryFrom')"
>查询</el-button
>
</el-form-item>
</el-col>
<el-col :span="4">
<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>
<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-form>
</header>
<section>
<el-table v-loading="loading" :data="tableData" :row-class-name="tableRowClassName" :height="tabHeader" :max-height="tabHeader">
<el-table
v-loading="loading"
:data="tableData"
:row-class-name="tableRowClassName"
:height="tabHeader"
:max-height="tabHeader"
>
<el-table-column label="企业名称" prop="qymc" />
<el-table-column label="统一社会信用代码" prop="tyshxydm" />
<!-- <el-table-column label="法定代表人" prop="policyLevel" />
@ -65,12 +101,12 @@
<el-table-column label="行业名称" prop="hymc" />
<el-table-column label="企业规模" prop="cylx">
<template slot-scope="scope">
<span>{{ scope.row.type == 1 ? "规上服务业" : scope.row.type == 2 ? "其他" : ""}}</span>
<span>{{ filterType(scope.row.type) }}</span>
</template>
</el-table-column>
<el-table-column label="成立日期" prop="clrq" width="200">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.clrq,"{y}-{m}-{d}") }}</span>
<span>{{ parseTime(scope.row.clrq, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="组织机构代码" prop="createTime" />
@ -79,7 +115,12 @@
<el-table-column label="注册地址" prop="createTime" />
<el-table-column label="注册类型" prop="createTime" />
<el-table-column label="经营范围" prop="createTime" /> -->
<el-table-column label="操作" prop="userId" class-name="table-operation" width="120">
<el-table-column
label="操作"
prop="userId"
class-name="table-operation"
width="120"
>
<template slot-scope="scope">
<span class="look-info" @click="goInfo(scope.row)"></span>
<!-- <span class="edit-info" @click="editInfo(scope.row)"></span>
@ -87,22 +128,36 @@
</template>
</el-table-column>
</el-table>
<my-pagination
<my-pagination
id="L-pagination"
:total="total"
:page="pagination.current"
:limit="pagination.size"
@pagination="getPagination"
:current-page.sync="pagination.current"
:current-page.sync="pagination.current"
></my-pagination>
</section>
</div>
<!-- :rules="rules" -->
<my-dialog :title="title" @close="importClose" @confirm="confirm" ref="importProject" closeText="关闭" :myclass="true">
<my-dialog
:title="title"
@close="importClose"
@confirm="confirm"
ref="importProject"
closeText="关闭"
:myclass="true"
>
<el-row>
<el-col :span="12">
<div class="btnsFlex">
<el-button type="primary" class="import-btn" icon="icon iconfont icon-jc-daoru" size="mini" @click="importExcel"></el-button>
<el-button
type="primary"
class="import-btn"
icon="icon iconfont icon-jc-daoru"
size="mini"
@click="importExcel"
>导入企业</el-button
>
<el-upload
ref="upload"
:limit="1"
@ -120,7 +175,14 @@
<i class="icon iconfont icon-jc-daoru"></i>
导入新项目
</div> -->
<el-button type="primary" class="import-btn" icon="icon iconfont icon-jc-daoru" size="mini" ref="uploadRef">导入企业</el-button>
<el-button
type="primary"
class="import-btn"
icon="icon iconfont icon-jc-daoru"
size="mini"
ref="uploadRef"
>导入企业</el-button
>
</template>
</el-upload>
</div>
@ -146,56 +208,72 @@
</div>
</template>
<script>
import myPagination from "@/views/components/Pagination/index.vue"
import myDialog from "@/views/components/myDialog/index.vue"
import { getEnterList, enterpriseBasicInfoNew, enterpriseBasicInfoChange, enterpriseBasicInfoId, enterpriseBasicInfoDel } from "@/api/jin_ji_hu/enterList"
import myPagination from "@/views/components/Pagination/index.vue";
import myDialog from "@/views/components/myDialog/index.vue";
import {
getEnterList,
enterpriseBasicInfoNew,
enterpriseBasicInfoChange,
enterpriseBasicInfoId,
enterpriseBasicInfoDel,
} from "@/api/jin_ji_hu/enterList";
import { getToken } from "@/utils/auth";
export default {
components:{myPagination, myDialog},
dicts: ['jjh_project_type'],
components: { myPagination, myDialog },
dicts: ["jjh_project_type"],
data() {
return {
selectList: [
{ label: "全部", value: "0" },
{ label: "规上服务业", value: "1" },
{ label: "规上工业", value: "3" },
{ label: "总部企业", value: "4" },
{ label: "生产性服务业", value: "5" },
{ label: "限上批零住餐", value: "6" },
{ label: "生活性服务业", value: "7" },
{ label: "其他", value: "2" },
],
userType: this.$store.state.user.userType,
roles: this.$store.state.user.roles,
deptId: this.$store.state.user.deptId,
total:0,
total: 0,
pagination: {
current:1,
size:10,
current: 1,
size: 10,
},
loading:false,
loading: false,
formInline: {
qymc: '',
qymc: "",
type: null,
},
tableData:[],
tableData: [],
tabHeader: undefined,
addFrom: {
name:"",
joinProject:"",
enterUnit:"",
policyLevel:"",
enterTime:"",
name: "",
joinProject: "",
enterUnit: "",
policyLevel: "",
enterTime: "",
},
rules:{
name:[
{ required: true, message: '请填写政策文件名称', trigger: 'blur' }
rules: {
name: [
{ required: true, message: "请填写政策文件名称", trigger: "blur" },
],
joinProject:[
{ required: true, message: '请填写政策等级', trigger: 'blur' }
joinProject: [
{ required: true, message: "请填写政策等级", trigger: "blur" },
],
enterUnit:[
{ required: true, message: '请填写发文单位', trigger: 'blur' }
enterUnit: [
{ required: true, message: "请填写发文单位", trigger: "blur" },
],
policyLevel:[
{ required: true, message: '请选择发文时间', trigger: 'change' }
policyLevel: [
{ required: true, message: "请选择发文时间", trigger: "change" },
],
enterTime:[
{ required: true, message: '请选择关联项目', trigger: 'change' }
enterTime: [
{ required: true, message: "请选择关联项目", trigger: "change" },
],
},
title:"导入企业",
infoVisible:false,
title: "导入企业",
infoVisible: false,
baseUrl: process.env.VUE_APP_BASE_API,
//
upload: {
@ -206,36 +284,53 @@ export default {
//
headers: { Authorization: "Bearer " + getToken() },
//
url: process.env.VUE_APP_BASE_API + "/system/enterpriseBasicInfo/importEnterprise"
url:
process.env.VUE_APP_BASE_API +
"/system/enterpriseBasicInfo/importEnterprise",
},
fileList: [],
number: 0,
uploadList: [],
//
exportLoading: false,
}
};
},
mounted() {
this.cancalDebounce();
window.addEventListener('resize', this.cancalDebounce);
if(this.$route.params.enterpriseName) {
window.addEventListener("resize", this.cancalDebounce);
if (this.$route.params.enterpriseName) {
this.formInline.qymc = this.$route.params.enterpriseName;
this.pagination = { ...this.pagination,...this.formInline };
this.pagination = { ...this.pagination, ...this.formInline };
}
this.getList();
},
destroyed() {
window.removeEventListener('resize', this.cancalDebounce);
window.removeEventListener("resize", this.cancalDebounce);
},
methods:{
methods: {
filterType(target) {
if (target) {
let list = target.split(",").map((item) => {
let index = this.selectList.findIndex((it) => it.value == item);
if (index > -1) {
item = this.selectList[index].label;
}
return item;
});
return list.toString();
} else {
return "";
}
},
//
getList(){
getList() {
this.loading = true;
getEnterList(this.pagination).then(res=>{
getEnterList(this.pagination).then((res) => {
this.loading = false;
this.total = res.data.total;
this.tableData = res.data.records;
})
});
},
//
getPagination(pages) {
@ -247,41 +342,40 @@ export default {
handleQuery() {
this.pagination = {
current: 1,
size: 10
}
this.pagination = { ...this.pagination,...this.formInline };
size: 10,
};
this.pagination = { ...this.pagination, ...this.formInline };
// console.log(this.pagination);
// console.log(this.formInline);
this.getList();
},
//
resetQuery(formName){
resetQuery(formName) {
this.$refs[formName].resetFields();
this.pagination = {
current: 1,
size: 10
}
size: 10,
};
this.getList();
},
// table
tableRowClassName({row, rowIndex}){
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 !== 0) {
return 'evenNumber-row';
return "evenNumber-row";
}
return '';
return "";
},
//
goInfo(row){
goInfo(row) {
this.$router.push({
name: 'enterpriselibraryInfo',
query: { userId: row.id, creditCode: row.tyshxydm }
})
name: "enterpriselibraryInfo",
query: { userId: row.id, creditCode: row.tyshxydm },
});
},
//
editInfo(row){
},
editInfo(row) {},
//
deriveBtn(){
deriveBtn() {
this.$confirm("是否确认导出企业库数据项?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
@ -292,31 +386,31 @@ export default {
this.download(
"/system/enterpriseBasicInfo/export",
{
...this.formInline
...this.formInline,
},
"企业库数据" + new Date().getTime() + ".xlsx"
);
this.exportLoading = false;
})
.catch(() => { });
.catch(() => {});
},
//
importBtn(){
importBtn() {
this.$refs.importProject.open();
},
//
importExcel(){
this.$refs['upload'].$refs['upload-inner'].handleClick()
importExcel() {
this.$refs["upload"].$refs["upload-inner"].handleClick();
},
//
handleBeforeUpload(file) {
this.$modal.loading("正在上传文件,请稍候...");
return true;
},
handleFileUploadProgress(){},
handleFileUploadProgress() {},
//
handleFileSuccess(response, file, fileList) {
if(response.code === 200) {
if (response.code === 200) {
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
@ -338,23 +432,23 @@ export default {
frontDownload() {
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";
//ahref .
a.download ="企业库模板.xlsx";
//.xlsxpdf.fpd
a.style.display = "none"; // a
document.body.appendChild(a);
// a
a.click(); //aahref
a.remove();
// a
a.href = "./static/企业库数据模板.xlsx";
//ahref .
a.download = "企业库模板.xlsx";
//.xlsxpdf.fpd
a.style.display = "none"; // a
document.body.appendChild(a);
// a
a.click(); //aahref
a.remove();
// a
},
//
importClose(){
importClose() {
this.$refs.importProject.close();
},
//
@ -372,19 +466,15 @@ export default {
}
},
//
confirm(){
},
confirm() {},
//
delInfo(row){
delInfo(row) {
this.$confirm("此操作将永久删除该数据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
})
.then(() => {})
.catch(() => {
this.$message({
type: "info",
@ -393,15 +483,15 @@ export default {
});
},
//
cancalDebounce(){
const element = document.getElementById('L-size-main'); // ID
const header = document.getElementById('L-header'); // ID
const pagination = document.getElementById('L-pagination'); // ID
cancalDebounce() {
const element = document.getElementById("L-size-main"); // ID
const header = document.getElementById("L-header"); // ID
const pagination = document.getElementById("L-pagination"); // ID
const elementHeight = element.offsetHeight;
const headerHeight = header.offsetHeight;
const paginationtHeight = pagination.offsetHeight;
this.tabHeader = elementHeight - headerHeight - paginationtHeight - 140;
}
},
},
}
};
</script>

@ -16,27 +16,52 @@
<div class="left-echart">
<echart></echart>
</div>
<div class="right-tables" :style="{height : tabOneHeader + 'px'}" v-if="tableData.length > 0">
<div class="table-items" v-for="item in tableData" :key="item.id">
<div class="project-name" @click="goProjectInfoLeft(item)">{{item.projectName}}</div>
<div
class="right-tables"
:style="{ height: tabOneHeader + 'px' }"
v-if="tableData.length > 0"
>
<div
class="table-items"
v-for="item in tableData"
:key="item.id"
>
<div class="project-name" @click="goProjectInfoLeft(item)">
{{ item.projectName }}
</div>
<div class="project-type">
<span class="left-title">项目类别</span>
<div class="project-type-box" v-if="item.projectBigType">
<dict-tag class="right-value" :options="dict.type.project_categories" :value="item.projectBigType"/>
<dict-tag
class="right-value"
:options="dict.type.project_categories"
:value="item.projectBigType"
/>
</div>
<span class="right-value" v-else></span>
</div>
<div class="declare-time">
<span class="left-title">拨付时间</span>
<span class="right-number">{{ item.appropriationTime ? formatDate(item.appropriationTime,2) : '' }}</span>
<span class="right-number">{{
item.appropriationTime
? formatDate(item.appropriationTime, 2)
: ""
}}</span>
</div>
<div class="appropriate">
<span class="left-title">拨付金额<span class="left-unit">()</span>:</span>
<span class="right-number">{{item.fundAmount}}</span>
<span class="left-title"
>拨付金额<span class="left-unit">()</span>:</span
>
<span class="right-number">{{ item.fundAmount }}</span>
</div>
</div>
</div>
<el-empty class="right-tables-Two" :style="{height : tabOneHeader + 'px'}" :image-size="160" v-else></el-empty>
<el-empty
class="right-tables-Two"
:style="{ height: tabOneHeader + 'px' }"
:image-size="160"
v-else
></el-empty>
</div>
</el-col>
<el-col :span="12" class="enterprise-honor">
@ -44,24 +69,44 @@
<span class="garden"></span>
<span class="box-header-title">企业荣誉资质5</span>
</div>
<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="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="promoteProject-top">
<span class="span-one" @click="goProjectInfo(item)"><dict-tag :options="dict.type.project_small_type" :value="item.projectSmallType"/></span>
<span class="span-one" @click="goProjectInfo(item)"
><dict-tag
:options="dict.type.project_small_type"
:value="item.projectSmallType"
/></span>
</div>
<div class="promoteProject-bottom">
<div class="promoteProject-bottom-left">
项目类别
<span class="span-two"><dict-tag :options="dict.type.project_categories" :value="item.projectBigType"/></span>
<span class="span-two"
><dict-tag
:options="dict.type.project_categories"
:value="item.projectBigType"
/></span>
</div>
<div class="promoteProject-bottom-right">
申报时间
<span class="span-three">{{ formatYear(item.createTime) }}</span>
<span class="span-three">{{ formatYear(item) }}</span>
</div>
</div>
</div>
</div>
<el-empty :style="{height : tabOneHeader + 'px'}" :image-size="160" v-else></el-empty>
<el-empty
:style="{ height: tabOneHeader + 'px' }"
:image-size="160"
v-else
></el-empty>
</el-col>
</el-row>
<el-row class="home-enterprise-bottom">
@ -71,23 +116,56 @@
<span class="box-header-title">往年专项资金申报10</span>
</div>
<section>
<el-table v-loading="loadingTab" class="dataMap-two-table" :data="tableData" :height="tableTwoHeight" border :header-cell-style="{background:'#E8F3FC'}">
<el-table-column label="项目类别" prop="projectType" align="center">
<el-table
v-loading="loadingTab"
class="dataMap-two-table"
:data="tableData"
:height="tableTwoHeight"
border
:header-cell-style="{ background: '#E8F3FC' }"
>
<el-table-column
label="项目类别"
prop="projectType"
align="center"
>
<template slot-scope="scope">
<div v-if="scope.row.projectBigType">
<dict-tag :options="dict.type.project_categories" :value="scope.row.projectBigType"/>
<dict-tag
:options="dict.type.project_categories"
:value="scope.row.projectBigType"
/>
</div>
<span v-else></span>
</template>
</el-table-column>
<el-table-column label="项目名称" prop="projectName" align="center">
<el-table-column
label="项目名称"
prop="projectName"
align="center"
>
<template slot-scope="scope">
<div class="project-trace-table" @click="goProjectInfoLeft(scope.row)">{{ scope.row.projectName }}</div>
<div
class="project-trace-table"
@click="goProjectInfoLeft(scope.row)"
>
{{ scope.row.projectName }}
</div>
</template>
</el-table-column>
<el-table-column label="专项资金拨付时间" prop="time" align="center">
<el-table-column
label="专项资金拨付时间"
prop="time"
align="center"
>
<template slot-scope="scope">
<div class="project-trace-table-number">{{ scope.row.appropriationTime ? formatDate(scope.row.appropriationTime,2) : '' }}</div>
<div class="project-trace-table-number">
{{
scope.row.appropriationTime
? formatDate(scope.row.appropriationTime, 2)
: ""
}}
</div>
</template>
</el-table-column>
</el-table>
@ -98,97 +176,217 @@
<span class="garden"></span>
<span class="box-header-title">关联项目进展3</span>
</div>
<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-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-top">
<span class="span-one" @click="goProjectInfo(item)"><dict-tag :options="dict.type.project_small_type" :value="item.projectSmallType"/></span>
<span class="span-one" @click="goProjectInfo(item)"
><dict-tag
:options="dict.type.project_small_type"
:value="item.projectSmallType"
/></span
>
</div>
<div class="promoteProject-bottom">
<div class="promoteProject-bottom-left">
项目类别
<span class="span-two"><dict-tag :options="dict.type.project_categories" :value="item.projectBigType"/></span>
<span class="span-two"
><dict-tag
:options="dict.type.project_categories"
:value="item.projectBigType"
/></span>
</div>
<div class="promoteProject-bottom-right">
申报时间
<span class="span-three">{{ formatYear(item.createTime) }}</span>
<span class="span-three">{{ formatYear(item) }}</span>
</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' : ''">
{{item.status == 0 ? '待填报' : item.status == 1 ? '初审中' : item.status == 2 ? '复审中' : item.status == 3 ? '终审中' : item.status == 6 ? '已填报' : item.status == 7 ? '复审不通过' : item.status == 8 ? '初审不通过' : item.status == 9 ? '终审不通过' : item.status == 10 ? '初审驳回' : ''}}
<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'
: ''
"
>
{{
item.status == 0
? "待填报"
: item.status == 1
? "初审中"
: item.status == 2
? "复审中"
: item.status == 3
? "终审中"
: item.status == 6
? "已填报"
: item.status == 7
? "复审不通过"
: item.status == 8
? "初审不通过"
: item.status == 9
? "终审不通过"
: item.status == 10
? "初审驳回"
: ""
}}
</div>
</div>
</div>
<el-empty :style="{height : tableTwoHeight + 'px'}" :image-size="160" v-else></el-empty>
<el-empty
:style="{ height: tableTwoHeight + 'px' }"
:image-size="160"
v-else
></el-empty>
</el-col>
</el-row>
</el-col>
<el-col :span="8" class="home-main-right">
<el-row type="flex" class="main-two-row">
<el-col :span="24" class="work-main-left" style="height: 49.5%;">
<el-col :span="24" class="work-main-left" style="height: 49.5%">
<div class="main-left">
<div class="left-header">
<div class="left-header-titleS">
<span class="dataCloudMap-birght"></span>
<div class="left-header-title">智能提醒</div>
</div>
<el-button @click="enterjump" type="text" v-if="remindList.length > 0">>> 更多记录</el-button>
<el-button
@click="enterjump"
type="text"
v-if="remindList.length > 0"
>>> 更多记录</el-button
>
</div>
<div class="left-main" v-if="remindList.length > 0">
<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' : ''"
>
<div class="warn-main">
<div class="warn-main-left" v-if="item.alertManner == 2">
<div class="warn-main-img"><img src="@/assets/images/warn-green.png" alt=""></div>
<div class="warn-main-img">
<img src="@/assets/images/warn-green.png" alt="" />
</div>
<div class="warn-main-content">
<div class="content-title">{{ item.declarationName }}预计{{ item.daysAdvance }}天后填报结束</div>
<div class="content-middle">{{ item.alertContent }}</div>
<div class="content-title">
{{ item.declarationName }}预计{{
item.daysAdvance
}}天后填报结束
</div>
<div class="content-middle">
{{ item.alertContent }}
</div>
<!-- <div class="content-time">{{ item.alertTime }}</div> -->
<div class="tixing-duanxin">
<div class="content-time">{{ item.alertTime }}</div>
<div class="content-time content-time-two">已发送短信</div>
<div class="content-time content-time-two">
已发送短信
</div>
</div>
</div>
</div>
<div class="warn-main-left" v-else-if="item.alertManner == 1 && item.qymc && item.alertRecipients == 2">
<div class="warn-main-img"><img src="@/assets/images/warn-orange.png" alt=""></div>
<div
class="warn-main-left"
v-else-if="
item.alertManner == 1 &&
item.qymc &&
item.alertRecipients == 2
"
>
<div class="warn-main-img">
<img src="@/assets/images/warn-orange.png" alt="" />
</div>
<div class="warn-main-content">
<div class="content-title" style="display: flex;">{{ item.qymc }}<dict-tag :options="dict.type.project_small_type" :value="item.declarationName"/></div>
<div class="content-middle">{{ item.alertContent }}</div>
<div class="content-title" style="display: flex">
{{ item.qymc }}<dict-tag
:options="dict.type.project_small_type"
:value="item.declarationName"
/>
</div>
<div class="content-middle">
{{ item.alertContent }}
</div>
<!-- <div class="content-time">{{ item.alertTime }}</div> -->
<div class="tixing-duanxin">
<div class="content-time">{{ item.alertTime }}</div>
<div class="content-time content-time-two">已发送短信</div>
<div class="content-time content-time-two">
已发送短信
</div>
</div>
</div>
</div>
<div class="warn-main-left" v-else-if="item.alertManner == 1 && item.projectId">
<div class="warn-main-img"><img src="@/assets/images/warn-orange.png" alt=""></div>
<div
class="warn-main-left"
v-else-if="item.alertManner == 1 && item.projectId"
>
<div class="warn-main-img">
<img src="@/assets/images/warn-orange.png" alt="" />
</div>
<div class="warn-main-content">
<div class="content-title">{{ item.declarationName }}</div>
<div class="content-middle">{{ item.alertContent }}</div>
<div class="content-title">
{{ item.declarationName }}
</div>
<div class="content-middle">
{{ item.alertContent }}
</div>
<!-- <div class="content-time">{{ item.alertTime }}</div> -->
<div class="tixing-duanxin">
<div class="content-time">{{ item.alertTime }}</div>
<div class="content-time content-time-two">已发送短信</div>
<div class="content-time content-time-two">
已发送短信
</div>
</div>
</div>
</div>
<div class="warn-main-left different-left" v-else-if="item.alertManner == 1 && !item.projectId">
<div class="warn-main-img"><img src="@/assets/images/warn-blue.png" alt=""></div>
<div
class="warn-main-left different-left"
v-else-if="item.alertManner == 1 && !item.projectId"
>
<div class="warn-main-img">
<img src="@/assets/images/warn-blue.png" alt="" />
</div>
<div class="warn-main-content">
<div class="content-title">{{ item.alertContent }}</div>
<!-- <div class="content-time">{{ item.alertTime }}</div> -->
<div class="tixing-duanxin">
<div class="content-time">{{ item.alertTime }}</div>
<div class="content-time content-time-two">已发送短信</div>
<div class="content-time content-time-two">
已发送短信
</div>
</div>
</div>
</div>
<div class="warn-main-right">
<div class="warn-main-right-chakan" @click="putMemo(item)">
<div
class="warn-main-right-chakan"
@click="putMemo(item)"
>
查看
</div>
<div class="warn-main-right-status" :class="item.isRead == 1 ? 'status-unread' : ''">
{{ item.isRead == 1 ? '未读' : '已读' }}
<div
class="warn-main-right-status"
:class="item.isRead == 1 ? 'status-unread' : ''"
>
{{ item.isRead == 1 ? "未读" : "已读" }}
</div>
</div>
</div>
@ -200,25 +398,86 @@
</div> -->
</div>
</el-col>
<el-col :span="24" class="work-main-right" style="height: 49.5%;">
<el-col :span="24" class="work-main-right" style="height: 49.5%">
<div class="main-right" id="task-box">
<div class="right-header" id="task-header">
<div class="right-header-box">
<span class="dataCloudMap-birght"></span>
<div class="right-header-title">待办任务</div>
</div>
<el-button @click="enterjumpTask" type="text" v-if="backlogArray.length > 0">>> 更多记录</el-button>
<el-button
@click="enterjumpTask"
type="text"
v-if="backlogArray.length > 0"
>>> 更多记录</el-button
>
</div>
<div class="right-main" :style="{height: tabHeader+'px'}" v-if="backlogArray.length > 0" v-loading="loading">
<div class="main-items" v-for="(item,index) in backlogArray" :key="index" :class="index % 2 == 0 ? '':'main-item'">
<div>{{ item.enterpriseDirectory}}</div>
<div
class="right-main"
:style="{ height: tabHeader + 'px' }"
v-if="backlogArray.length > 0"
v-loading="loading"
>
<div
class="main-items"
v-for="(item, index) in backlogArray"
:key="index"
:class="index % 2 == 0 ? '' : 'main-item'"
>
<div>{{ item.enterpriseDirectory }}</div>
<!-- <div>{{ item.enterpriseName }}</div> -->
<div>{{ (item.status == 0 ? "待填报" : item.status == 8 ? "初审不通过" : item.status == 10 ? "初审退回修改" : item.status == 7 ? "复审不通过" : item.status == 9 ? "终审不通过" : item.status == 5 ? "终审通过" : item.status == 1 ? "初审中" : item.status == 2 ? "复审中" : item.status == 3 ? "终审中" : item.status == 6 ? "已填报" : "") }}</div>
<div>
{{
item.status == 0
? "待填报"
: item.status == 8
? "初审不通过"
: item.status == 10
? "初审退回修改"
: item.status == 7
? "复审不通过"
: item.status == 9
? "终审不通过"
: item.status == 5
? "终审通过"
: item.status == 1
? "初审中"
: item.status == 2
? "复审中"
: item.status == 3
? "终审中"
: item.status == 6
? "已填报"
: ""
}}
</div>
<!-- <div>审批知识产权材料</div> -->
<div @click="MoreRecords(item.status)" class="last_child_item" :class="item.status == 0 ? 'tab-red' : item.status == 10 ? 'tab-red' : 'last_child_item'">{{ item.status == 0 ? "去填报" : item.status == 10 ? "去修改" : "去查看"}}</div>
<div
@click="MoreRecords(item.status)"
class="last_child_item"
:class="
item.status == 0
? 'tab-red'
: item.status == 10
? 'tab-red'
: 'last_child_item'
"
>
{{
item.status == 0
? "去填报"
: item.status == 10
? "去修改"
: "去查看"
}}
</div>
</div>
</div>
<el-empty :style="{height: tabHeader+'px'}" :image-size="160" v-else></el-empty>
<el-empty
:style="{ height: tabHeader + 'px' }"
:image-size="160"
v-else
></el-empty>
<!-- <div class="right-main" v-else>
<el-divider content-position="center">暂无</el-divider>
</div> -->
@ -227,61 +486,71 @@
</el-row>
</el-col>
</el-row>
<el-dialog title="详情" :visible.sync="open" width="400px" append-to-body :close-on-click-modal="false">
<el-dialog
title="详情"
:visible.sync="open"
width="400px"
append-to-body
:close-on-click-modal="false"
>
<div class="team-main">
<div>提醒时间:</div>
<div>{{ info.alertTime }}</div>
</div>
<div class="team-main">
<div>提醒内容:</div>
<div>{{ info.alertContent }}</div>
<div>{{ info.alertContent }}</div>
</div>
</el-dialog>
</div>
</template>
<script>
import { listRecords } from "@/api/onlineDeclartion/records"
import { chiefAll, enterpriseAll, changeIsRead } from "@/api/jin_ji_hu/intelligentReminder"
import { usualFund, enterpriseProject } from "@/api/jin_ji_hu/zijinbiao"
import echart from "./components/echartsPage"
import { listRecords } from "@/api/onlineDeclartion/records";
import {
chiefAll,
enterpriseAll,
changeIsRead,
} from "@/api/jin_ji_hu/intelligentReminder";
import { usualFund, enterpriseProject } from "@/api/jin_ji_hu/zijinbiao";
import echart from "./components/echartsPage";
export default {
dicts: ["project_small_type", "project_categories"],
components:{
echart
components: {
echart,
},
data() {
//
return {
// 01 02
// userType: this.$store.state.user.userType,
backlogArray:[],
backlogArray: [],
queryParams: {
pageNum: 1,
pageSize: 10,
current: 1,
size: 10,
creditCode: this.$store.state.user.name,
orderChange:1,
orderChange: 1,
// statusStr: [0, 5, 7, 8, 9, 10],
},
//
open: false,
fileList: [],
uploadList: [],
loading:false,
loadingTab:false,
loading: false,
loadingTab: false,
remindList: [],
info:{},
info: {},
tabHeader: 200,
tabOneHeader: 200,
tableTwoHeight:null,
tableData:[],
tableTwoData:[],
enterpriseHonor:[],
}
tableTwoHeight: null,
tableData: [],
tableTwoData: [],
enterpriseHonor: [],
};
},
mounted(){
mounted() {
this.getListTwo();
this.cancalDebounce();
window.addEventListener('resize', this.cancalDebounce);
window.addEventListener("resize", this.cancalDebounce);
this.entRemind();
//
this.getUsualFund();
@ -291,151 +560,150 @@ export default {
this.getEnterpriseProjectTwo();
},
beforeDestroy() {
window.removeEventListener('resize', this.cancalDebounce);
window.removeEventListener("resize", this.cancalDebounce);
},
methods:{
methods: {
//
getEnterpriseProjectOne(){
enterpriseProject({type:1}).then(res=>{
getEnterpriseProjectOne() {
enterpriseProject({ type: 1 }).then((res) => {
this.enterpriseHonor = res.data;
})
});
},
//
getEnterpriseProjectTwo(){
enterpriseProject({type:2}).then(res=>{
getEnterpriseProjectTwo() {
enterpriseProject({ type: 2 }).then((res) => {
this.tableTwoData = res.data;
})
});
},
//
getUsualFund(){
usualFund().then(res=>{
this.tableData = res.data
})
getUsualFund() {
usualFund().then((res) => {
this.tableData = res.data;
});
},
//
getListTwo(){
getListTwo() {
this.loading = true;
listRecords(this.queryParams).then(response => {
this.backlogArray = response.rows
listRecords(this.queryParams).then((response) => {
this.backlogArray = response.data.records;
this.loading = false;
});
},
//
entRemind(){
enterpriseAll({current:1,size:20}).then(res=>{
entRemind() {
enterpriseAll({ current: 1, size: 20 }).then((res) => {
this.remindList = res.data.records;
})
});
},
// /
goProjectInfo(item){
goProjectInfo(item) {
this.$router.push({
name: 'projectInfo',
query: { userId: Number(item.id) }
})
name: "projectInfo",
query: { userId: Number(item.id) },
});
},
//
goProjectInfoLeft(item){
console.log(item,"item");
if(item.projectName == "区级总部" || item.projectName == "市级服务业领军") {
if(item.projectId) {
goProjectInfoLeft(item) {
// console.log(item,"item");
if (
item.projectName == "区级总部" ||
item.projectName == "市级服务业领军"
) {
if (item.projectId) {
this.$router.push({
name: 'projectInfo',
query: { userId: Number(item.projectId) }
})
name: "projectInfo",
query: { userId: Number(item.projectId) },
});
}
}
},
//
enterjump(){
enterjump() {
this.$router.push({
name: 'WarningReminder',
})
name: "WarningReminder",
});
},
//
putMemo(item){
if(item.isRead == 1) {
changeIsRead({id:item.id}).then(res=>{
putMemo(item) {
if (item.isRead == 1) {
changeIsRead({ id: item.id }).then((res) => {
this.entRemind();
})
});
}
if(item.projectId) {
if (item.projectId) {
this.$router.push({
name: 'projectInfo',
query: { userId: Number(item.projectId) }
})
} else if(item.alertRecipients == 1 && item.alertManner == 2) {
name: "projectInfo",
query: { userId: Number(item.projectId) },
});
} else if (item.alertRecipients == 1 && item.alertManner == 2) {
this.$router.push({
name: 'Online',
params: { statusChange: "0" }
})
} else if(item.alertManner == 1) {
name: "Online",
params: { statusChange: "0" },
});
} else if (item.alertManner == 1) {
this.open = true;
this.info = item;
}
},
//
enterjumpTask(){
enterjumpTask() {
this.$router.push({
name: 'AbnormalRemind',
})
name: "AbnormalRemind",
});
},
//
MoreRecords(status){
if(status == 0 || status == 10) {
MoreRecords(status) {
if (status == 0 || status == 10) {
this.$router.push({
name: 'Online',
params: { statusChange: "0" }
})
name: "Online",
params: { statusChange: "0" },
});
} else {
this.$router.push({
name: 'Online',
params: { statusChange: "1" }
})
name: "Online",
params: { statusChange: "1" },
});
}
},
formatYear(time){
const year = time.slice(0, 4);
let date = new Date();
const currentYear = date.getFullYear(); //(4)
if(Number(year) < Number(currentYear)) {
return year;
formatYear(time) {
if (time.fileJson) {
return this.parseTime(time.createTime, "{y}-{m}-{d}");
} else {
return this.parseTime(time, '{y}-{m}-{d}')
return time.projectYear;
}
},
formatDate(dateString,id) {
formatDate(dateString, id) {
const year = dateString.slice(0, 4);
const month = dateString.slice(4, 6);
const day = dateString.slice(6, 8);
if(id == 1) {
if (id == 1) {
return `${year}${month}${day}`;
} else {
return `${year}-${month}-${day}`;
}
},
//
cancalDebounce(){
const element = document.getElementById('task-box'); // ID
const header = document.getElementById('task-header'); // ID
cancalDebounce() {
const element = document.getElementById("task-box"); // ID
const header = document.getElementById("task-header"); // ID
const elementHeight = element.offsetHeight;
const headerHeight = header.offsetHeight;
this.tabHeader = elementHeight - headerHeight - 30;
const oneTable = document.getElementById('one-table'); // ID
const oneHeader = document.getElementById('one-table-header'); // ID
const oneTable = document.getElementById("one-table"); // ID
const oneHeader = document.getElementById("one-table-header"); // ID
const oneTableHeight = oneTable.offsetHeight;
const oneHeaderHeight = oneHeader.offsetHeight;
this.tabOneHeader = oneTableHeight - oneHeaderHeight - 45;
const twoTable = document.getElementById('table-two'); // ID
const twoHeader = document.getElementById('table-two-title'); // ID
const twoTable = document.getElementById("table-two"); // ID
const twoHeader = document.getElementById("table-two-title"); // ID
const twoTableHeight = twoTable.offsetHeight;
const twoHeaderHeight = twoHeader.offsetHeight;
this.tableTwoHeight = twoTableHeight - twoHeaderHeight - 45;
}
},
},
}
};
</script>
<style lang="scss" scoped>
</style>
<style lang="scss" scoped></style>

@ -7,56 +7,139 @@
<div class="enterprise-header-title">专项资金荣誉投资等统计</div>
</div>
<el-row class="home-enterprise-top">
<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">
<span class="garden"></span>
<span class="box-header-title">企业荣誉资质5</span>
<span class="box-header-title">企业荣誉资质</span>
</div>
<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="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="promoteProject-top">
<span class="span-one" @click="goProjectInfo(item)"><dict-tag :options="dict.type.project_small_type" :value="item.projectSmallType"/></span>
<span class="span-one" @click="goProjectInfo(item)"
><dict-tag
:options="dict.type.project_small_type"
:value="item.projectSmallType"
/></span>
</div>
<div class="promoteProject-bottom">
<div class="promoteProject-bottom-left">
项目类别
<span class="span-two"><dict-tag :options="dict.type.project_categories" :value="item.projectBigType"/></span>
<span class="span-two"
><dict-tag
:options="dict.type.project_categories"
:value="item.projectBigType"
/></span>
</div>
<div class="promoteProject-bottom-right">
申报时间
<span class="span-three">{{ formatYear(item.createTime) }}</span>
<span class="span-three">{{ formatYear(item) }}</span>
</div>
</div>
</div>
</div>
<el-empty :style="{height : tabOneHeader + 'px'}" :image-size="160" v-else></el-empty>
<el-empty
:style="{ height: tabOneHeader + 'px' }"
:image-size="160"
v-else
></el-empty>
</el-col>
<el-col :span="12" class="relevancy-project">
<div class="box-header">
<span class="garden"></span>
<span class="box-header-title">关联项目进展3</span>
<span class="box-header-title">关联项目进展</span>
</div>
<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-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-top">
<span class="span-one" @click="goProjectInfo(item)"><dict-tag :options="dict.type.project_small_type" :value="item.projectSmallType"/></span>
<span class="span-one" @click="goProjectInfo(item)"
><dict-tag
:options="dict.type.project_small_type"
:value="item.projectSmallType"
/></span
>
</div>
<div class="promoteProject-bottom">
<div class="promoteProject-bottom-left">
项目类别
<span class="span-two"><dict-tag :options="dict.type.project_categories" :value="item.projectBigType"/></span>
<span class="span-two"
><dict-tag
:options="dict.type.project_categories"
:value="item.projectBigType"
/></span>
</div>
<div class="promoteProject-bottom-right">
申报时间
<span class="span-three">{{ formatYear(item.createTime) }}</span>
<span class="span-three">{{ formatYear(item) }}</span>
</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' : ''">
{{item.status == 0 ? '待填报' : item.status == 1 ? '初审中' : item.status == 2 ? '复审中' : item.status == 3 ? '终审中' : item.status == 6 ? '已填报' : item.status == 7 ? '复审不通过' : item.status == 8 ? '初审不通过' : item.status == 9 ? '终审不通过' : item.status == 10 ? '初审驳回' : ''}}
<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'
: ''
"
>
{{
item.status == 0
? "待填报"
: item.status == 1
? "初审中"
: item.status == 2
? "复审中"
: item.status == 3
? "终审中"
: item.status == 6
? "已填报"
: item.status == 7
? "复审不通过"
: item.status == 8
? "初审不通过"
: item.status == 9
? "终审不通过"
: item.status == 10
? "初审驳回"
: ""
}}
</div>
</div>
</div>
<el-empty :style="{height : tableTwoHeight + 'px'}" :image-size="160" v-else></el-empty>
<el-empty
:style="{ height: tableTwoHeight + 'px' }"
:image-size="160"
v-else
></el-empty>
</el-col>
</el-row>
<el-row class="home-enterprise-bottom">
@ -66,28 +149,76 @@
<span class="box-header-title">往年专项资金拨付情况</span>
</div>
<section>
<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
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"
>
<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>
</el-table-column>
<el-table-column label="项目类别" prop="projectType" align="center">
<el-table-column
label="项目类别"
prop="projectType"
align="center"
>
<template slot-scope="scope">
<div v-if="scope.row.projectBigType">
<dict-tag :options="dict.type.project_categories" :value="scope.row.projectBigType"/>
<dict-tag
:options="dict.type.project_categories"
:value="scope.row.projectBigType"
/>
</div>
<span v-else></span>
</template>
</el-table-column>
<el-table-column label="拨付金额(万元)" prop="fundAmount" align="center" />
<el-table-column label="专项资金拨付时间" prop="time" align="center">
<el-table-column
label="拨付金额(万元)"
prop="fundAmount"
align="center"
/>
<el-table-column
label="专项资金拨付时间"
prop="time"
align="center"
>
<template slot-scope="scope">
<div class="project-trace-table-number">{{ scope.row.appropriationTime ? formatDate(scope.row.appropriationTime,2) : '' }}</div>
<div class="project-trace-table-number">
{{
scope.row.appropriationTime
? formatDate(scope.row.appropriationTime, 2)
: ""
}}
</div>
</template>
</el-table-column>
<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>
</section>
</el-col>
@ -95,71 +226,133 @@
</el-col>
<el-col :span="8" class="home-main-right">
<el-row type="flex" class="main-two-row">
<el-col :span="24" class="work-main-left" style="height: 49.5%;">
<el-col :span="24" class="work-main-left" style="height: 49.5%">
<div class="main-left">
<div class="left-header">
<div class="left-header-titleS">
<span class="dataCloudMap-birght"></span>
<div class="left-header-title">智能提醒</div>
</div>
<el-button @click="enterjump" type="text" v-if="remindList.length > 0">>> 更多记录</el-button>
<el-button
@click="enterjump"
type="text"
v-if="remindList.length > 0"
>>> 更多记录</el-button
>
</div>
<div class="left-main" v-if="remindList.length > 0">
<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' : ''"
>
<div class="warn-main">
<div class="warn-main-left" v-if="item.alertManner == 2">
<div class="warn-main-img"><img src="@/assets/images/warn-green.png" alt=""></div>
<div class="warn-main-img">
<img src="@/assets/images/warn-green.png" alt="" />
</div>
<div class="warn-main-content">
<div class="content-title">{{ item.declarationName }}预计{{ item.daysAdvance }}天后填报结束</div>
<div class="content-middle">{{ item.alertContent }}</div>
<div class="content-title">
{{ item.declarationName }}预计{{
item.daysAdvance
}}天后填报结束
</div>
<div class="content-middle">
{{ item.alertContent }}
</div>
<!-- <div class="content-time">{{ item.alertTime }}</div> -->
<div class="tixing-duanxin">
<div class="content-time">{{ item.alertTime }}</div>
<div class="content-time content-time-two">已发送短信</div>
<div class="content-time content-time-two">
已发送短信
</div>
</div>
</div>
</div>
<div class="warn-main-left" v-else-if="item.alertManner == 1 && item.qymc && item.alertRecipients == 2">
<div class="warn-main-img"><img src="@/assets/images/warn-orange.png" alt=""></div>
<div
class="warn-main-left"
v-else-if="
item.alertManner == 1 &&
item.qymc &&
item.alertRecipients == 2
"
>
<div class="warn-main-img">
<img src="@/assets/images/warn-orange.png" alt="" />
</div>
<div class="warn-main-content">
<div class="content-title" style="display: flex;">{{ item.qymc }}<dict-tag :options="dict.type.project_small_type" :value="item.declarationName"/></div>
<div class="content-middle">{{ item.alertContent }}</div>
<div class="content-title" style="display: flex">
{{ item.qymc }}<dict-tag
:options="dict.type.project_small_type"
:value="item.declarationName"
/>
</div>
<div class="content-middle">
{{ item.alertContent }}
</div>
<!-- <div class="content-time">{{ item.alertTime }}</div> -->
<div class="tixing-duanxin">
<div class="content-time">{{ item.alertTime }}</div>
<div class="content-time content-time-two">已发送短信</div>
<div class="content-time content-time-two">
已发送短信
</div>
</div>
</div>
</div>
<div class="warn-main-left" v-else-if="item.alertManner == 1 && item.projectId">
<div class="warn-main-img"><img src="@/assets/images/warn-orange.png" alt=""></div>
<div
class="warn-main-left"
v-else-if="item.alertManner == 1 && item.projectId"
>
<div class="warn-main-img">
<img src="@/assets/images/warn-orange.png" alt="" />
</div>
<div class="warn-main-content">
<div class="content-title">{{ item.declarationName }}</div>
<div class="content-middle">{{ item.alertContent }}</div>
<div class="content-title">
{{ item.declarationName }}
</div>
<div class="content-middle">
{{ item.alertContent }}
</div>
<!-- <div class="content-time">{{ item.alertTime }}</div> -->
<div class="tixing-duanxin">
<div class="content-time">{{ item.alertTime }}</div>
<div class="content-time content-time-two">已发送短信</div>
<div class="content-time content-time-two">
已发送短信
</div>
</div>
</div>
</div>
<div class="warn-main-left different-left" v-else-if="item.alertManner == 1 && !item.projectId">
<div class="warn-main-img"><img src="@/assets/images/warn-blue.png" alt=""></div>
<div
class="warn-main-left different-left"
v-else-if="item.alertManner == 1 && !item.projectId"
>
<div class="warn-main-img">
<img src="@/assets/images/warn-blue.png" alt="" />
</div>
<div class="warn-main-content">
<div class="content-title">{{ item.alertContent }}</div>
<!-- <div class="content-time">{{ item.alertTime }}</div> -->
<div class="tixing-duanxin">
<div class="content-time">{{ item.alertTime }}</div>
<div class="content-time content-time-two">已发送短信</div>
<div class="content-time content-time-two">
已发送短信
</div>
</div>
</div>
</div>
<div class="warn-main-right">
<div class="warn-main-right-chakan" @click="putMemo(item)">
<div
class="warn-main-right-chakan"
@click="putMemo(item)"
>
查看
</div>
<div class="warn-main-right-status" :class="item.isRead == 1 ? 'status-unread' : ''">
{{ item.isRead == 1 ? '未读' : '已读' }}
<div
class="warn-main-right-status"
:class="item.isRead == 1 ? 'status-unread' : ''"
>
{{ item.isRead == 1 ? "未读" : "已读" }}
</div>
</div>
</div>
@ -171,25 +364,86 @@
</div> -->
</div>
</el-col>
<el-col :span="24" class="work-main-right" style="height: 49.5%;">
<el-col :span="24" class="work-main-right" style="height: 49.5%">
<div class="main-right" id="task-box">
<div class="right-header" id="task-header">
<div class="right-header-box">
<span class="dataCloudMap-birght"></span>
<div class="right-header-title">待办任务</div>
</div>
<el-button @click="enterjumpTask" type="text" v-if="backlogArray.length > 0">>> 更多记录</el-button>
<el-button
@click="enterjumpTask"
type="text"
v-if="backlogArray.length > 0"
>>> 更多记录</el-button
>
</div>
<div class="right-main" :style="{height: tabHeader+'px'}" v-if="backlogArray.length > 0" v-loading="loading">
<div class="main-items" v-for="(item,index) in backlogArray" :key="index" :class="index % 2 == 0 ? '':'main-item'">
<div>{{ item.enterpriseDirectory}}</div>
<div
class="right-main"
:style="{ height: tabHeader + 'px' }"
v-if="backlogArray.length > 0"
v-loading="loading"
>
<div
class="main-items"
v-for="(item, index) in backlogArray"
:key="index"
:class="index % 2 == 0 ? '' : 'main-item'"
>
<div>{{ item.enterpriseDirectory }}</div>
<!-- <div>{{ item.enterpriseName }}</div> -->
<div>{{ (item.status == 0 ? "待填报" : item.status == 8 ? "初审不通过" : item.status == 10 ? "初审退回修改" : item.status == 7 ? "复审不通过" : item.status == 9 ? "终审不通过" : item.status == 5 ? "终审通过" : item.status == 1 ? "初审中" : item.status == 2 ? "复审中" : item.status == 3 ? "终审中" : item.status == 6 ? "已填报" : "") }}</div>
<div>
{{
item.status == 0
? "待填报"
: item.status == 8
? "初审不通过"
: item.status == 10
? "初审退回修改"
: item.status == 7
? "复审不通过"
: item.status == 9
? "终审不通过"
: item.status == 5
? "终审通过"
: item.status == 1
? "初审中"
: item.status == 2
? "复审中"
: item.status == 3
? "终审中"
: item.status == 6
? "已填报"
: ""
}}
</div>
<!-- <div>审批知识产权材料</div> -->
<div @click="MoreRecords(item.status)" class="last_child_item" :class="item.status == 0 ? 'tab-red' : item.status == 10 ? 'tab-red' : 'last_child_item'">{{ item.status == 0 ? "去填报" : item.status == 10 ? "去修改" : "去查看"}}</div>
<div
@click="MoreRecords(item.status)"
class="last_child_item"
:class="
item.status == 0
? 'tab-red'
: item.status == 10
? 'tab-red'
: 'last_child_item'
"
>
{{
item.status == 0
? "去填报"
: item.status == 10
? "去修改"
: "去查看"
}}
</div>
</div>
</div>
<el-empty :style="{height: tabHeader+'px'}" :image-size="160" v-else></el-empty>
<el-empty
:style="{ height: tabHeader + 'px' }"
:image-size="160"
v-else
></el-empty>
<!-- <div class="right-main" v-else>
<el-divider content-position="center">暂无</el-divider>
</div> -->
@ -198,22 +452,32 @@
</el-row>
</el-col>
</el-row>
<el-dialog title="详情" :visible.sync="open" width="400px" append-to-body :close-on-click-modal="false">
<el-dialog
title="详情"
:visible.sync="open"
width="400px"
append-to-body
:close-on-click-modal="false"
>
<div class="team-main">
<div>提醒时间:</div>
<div>{{ info.alertTime }}</div>
</div>
<div class="team-main">
<div>提醒内容:</div>
<div>{{ info.alertContent }}</div>
<div>{{ info.alertContent }}</div>
</div>
</el-dialog>
</div>
</template>
<script>
import { listRecords } from "@/api/onlineDeclartion/records"
import { chiefAll, enterpriseAll, changeIsRead } from "@/api/jin_ji_hu/intelligentReminder"
import { usualFund, enterpriseProject } from "@/api/jin_ji_hu/zijinbiao"
import { listRecords } from "@/api/onlineDeclartion/records";
import {
chiefAll,
enterpriseAll,
changeIsRead,
} from "@/api/jin_ji_hu/intelligentReminder";
import { usualFund, enterpriseProject } from "@/api/jin_ji_hu/zijinbiao";
export default {
dicts: ["project_small_type", "project_categories"],
data() {
@ -221,34 +485,34 @@ export default {
return {
// 01 02
// userType: this.$store.state.user.userType,
backlogArray:[],
backlogArray: [],
queryParams: {
pageNum: 1,
pageSize: 10,
current: 1,
size: 10,
creditCode: this.$store.state.user.name,
orderChange:1,
orderChange: 1,
// statusStr: [0, 5, 7, 8, 9, 10],
},
//
open: false,
fileList: [],
uploadList: [],
loading:false,
loadingTab:false,
loading: false,
loadingTab: false,
remindList: [],
info:{},
info: {},
tabHeader: 200,
tabOneHeader: 200,
tableTwoHeight:null,
tableData:[],
tableTwoData:[],
enterpriseHonor:[],
}
tableTwoHeight: null,
tableData: [],
tableTwoData: [],
enterpriseHonor: [],
};
},
mounted(){
mounted() {
this.getListTwo();
this.cancalDebounce();
window.addEventListener('resize', this.cancalDebounce);
window.addEventListener("resize", this.cancalDebounce);
this.entRemind();
//
this.getUsualFund();
@ -258,151 +522,149 @@ export default {
this.getEnterpriseProjectTwo();
},
beforeDestroy() {
window.removeEventListener('resize', this.cancalDebounce);
window.removeEventListener("resize", this.cancalDebounce);
},
methods:{
methods: {
//
getEnterpriseProjectOne(){
enterpriseProject({type:1}).then(res=>{
getEnterpriseProjectOne() {
enterpriseProject({ type: 1 }).then((res) => {
this.enterpriseHonor = res.data;
})
});
},
//
getEnterpriseProjectTwo(){
enterpriseProject({type:2}).then(res=>{
getEnterpriseProjectTwo() {
enterpriseProject({ type: 2 }).then((res) => {
this.tableTwoData = res.data;
})
});
},
//
getUsualFund(){
usualFund().then(res=>{
this.tableData = res.data
})
getUsualFund() {
usualFund().then((res) => {
this.tableData = res.data;
});
},
//
getListTwo(){
getListTwo() {
this.loading = true;
listRecords(this.queryParams).then(response => {
this.backlogArray = response.rows
listRecords(this.queryParams).then((response) => {
this.backlogArray = response.data.records;
this.loading = false;
});
},
//
entRemind(){
enterpriseAll({current:1,size:20}).then(res=>{
entRemind() {
enterpriseAll({ current: 1, size: 20 }).then((res) => {
this.remindList = res.data.records;
})
});
},
// /
goProjectInfo(item){
goProjectInfo(item) {
this.$router.push({
name: 'projectInfo',
query: { userId: Number(item.id) }
})
name: "projectInfo",
query: { userId: Number(item.id) },
});
},
//
goProjectInfoLeft(item){
console.log(item,"item");
if(item.projectName == "区级总部" || item.projectName == "市级服务业领军") {
if(item.projectId) {
goProjectInfoLeft(item) {
// console.log(item,"item");
if (
item.projectName == "区级总部" ||
item.projectName == "市级服务业领军"
) {
if (item.projectId) {
this.$router.push({
name: 'projectInfo',
query: { userId: Number(item.projectId) }
})
name: "projectInfo",
query: { userId: Number(item.projectId) },
});
}
}
},
//
enterjump(){
enterjump() {
this.$router.push({
name: 'WarningReminder',
})
name: "WarningReminder",
});
},
//
putMemo(item){
if(item.isRead == 1) {
changeIsRead({id:item.id}).then(res=>{
putMemo(item) {
if (item.isRead == 1) {
changeIsRead({ id: item.id }).then((res) => {
this.entRemind();
})
});
}
if(item.projectId) {
if (item.projectId) {
this.$router.push({
name: 'projectInfo',
query: { userId: Number(item.projectId) }
})
} else if(item.alertRecipients == 1 && item.alertManner == 2) {
name: "projectInfo",
query: { userId: Number(item.projectId) },
});
} else if (item.alertRecipients == 1 && item.alertManner == 2) {
this.$router.push({
name: 'Online',
params: { statusChange: "0" }
})
} else if(item.alertManner == 1) {
name: "Online",
params: { statusChange: "0" },
});
} else if (item.alertManner == 1) {
this.open = true;
this.info = item;
}
},
//
enterjumpTask(){
enterjumpTask() {
this.$router.push({
name: 'AbnormalRemind',
})
name: "AbnormalRemind",
});
},
//
MoreRecords(status){
if(status == 0 || status == 10) {
MoreRecords(status) {
if (status == 0 || status == 10) {
this.$router.push({
name: 'Online',
params: { statusChange: "0" }
})
name: "Online",
params: { statusChange: "0" },
});
} else {
this.$router.push({
name: 'Online',
params: { statusChange: "1" }
})
name: "Online",
params: { statusChange: "1" },
});
}
},
formatYear(time){
const year = time.slice(0, 4);
let date = new Date();
const currentYear = date.getFullYear(); //(4)
if(Number(year) < Number(currentYear)) {
return year;
formatYear(time) {
if (time.fileJson) {
return this.parseTime(time.createTime, "{y}-{m}-{d}");
} else {
return this.parseTime(time, '{y}-{m}-{d}')
return time.projectYear;
}
},
formatDate(dateString,id) {
formatDate(dateString, id) {
const year = dateString.slice(0, 4);
const month = dateString.slice(4, 6);
const day = dateString.slice(6, 8);
if(id == 1) {
if (id == 1) {
return `${year}${month}${day}`;
} else {
return `${year}-${month}-${day}`;
}
},
//
cancalDebounce(){
const element = document.getElementById('task-box'); // ID
const header = document.getElementById('task-header'); // ID
cancalDebounce() {
const element = document.getElementById("task-box"); // ID
const header = document.getElementById("task-header"); // ID
const elementHeight = element.offsetHeight;
const headerHeight = header.offsetHeight;
this.tabHeader = elementHeight - headerHeight - 30;
const oneTable = document.getElementById('one-table'); // ID
const oneHeader = document.getElementById('one-table-header'); // ID
const oneTable = document.getElementById("one-table"); // ID
const oneHeader = document.getElementById("one-table-header"); // ID
const oneTableHeight = oneTable.offsetHeight;
const oneHeaderHeight = oneHeader.offsetHeight;
this.tabOneHeader = oneTableHeight - oneHeaderHeight - 45;
const twoTable = document.getElementById('table-two'); // ID
const twoHeader = document.getElementById('table-two-title'); // ID
const twoTable = document.getElementById("table-two"); // ID
const twoHeader = document.getElementById("table-two-title"); // ID
const twoTableHeight = twoTable.offsetHeight;
const twoHeaderHeight = twoHeader.offsetHeight;
this.tableTwoHeight = twoTableHeight - twoHeaderHeight - 45;
}
},
},
}
};
</script>
<style lang="scss" scoped>
</style>
<style lang="scss" scoped></style>

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

@ -146,8 +146,8 @@
>
<div class="intelligentReminder_radio">
<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>
<div class="intelligentReminder_text"><span>*</span>提前<el-input-number v-model="addFrom.daysAdvance" :min="1" :controls="false"></el-input-number>天提醒</div>
</div>
@ -228,7 +228,7 @@ export default {
alertTime:"",
alertContent:"",
daysAdvance: null,
alertType: 1,
alertType: 2,
},
rules:{
rulesName:[
@ -331,7 +331,7 @@ export default {
alertTime:"",
alertContent:"",
daysAdvance: null,
alertType: 1,
alertType: 2,
}
})
},

@ -26,9 +26,9 @@
/>
</el-input>
</el-form-item>
<el-form-item prop="password">
<el-form-item prop="mima">
<el-input
v-model="loginForm.password"
v-model="loginForm.mima"
type="password"
auto-complete="off"
placeholder="密码"
@ -121,7 +121,7 @@
<!-- 正式环境部署命令 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>
</template>
@ -129,6 +129,7 @@
import { getCodeImg } from "@/api/login";
import Cookies from "js-cookie";
import { encrypt, decrypt } from "@/utils/jsencrypt";
import forge from 'node-forge'
export default {
name: "Login",
@ -137,7 +138,7 @@ export default {
codeUrl: "",
loginForm: {
username: "", // admin
password: "", // admin123
mima: "", // admin123
rememberMe: false,
code: "",
uuid: "",
@ -146,7 +147,7 @@ export default {
username: [
{ required: true, trigger: "blur", message: "请输入您的账号" },
],
password: [
mima: [
{ required: true, trigger: "blur", message: "请输入您的密码" },
],
code: [{ required: true, trigger: "change", message: "请输入验证码" }],
@ -158,6 +159,7 @@ export default {
register: false,
redirect: undefined,
userType:"01",
publicKey:`MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl8bS1kYTiMhIS5MZU253bc0ukaxrA1lfCziABFxQrC2c09tMrQGjuH6V1x2ofNBMGhOD9uWN/qkAQy/HwOe/NKUqCw6N0ov6guSrqMDW/BdZ3Bl0rmM1/95jTC1xffFFvej7xWNffIbaPI+bJ4WLX9NViNi9HmT0BRNzJ4d2R86LPPCa+bxLaPjsh2R2tBkbLkUot9769aJaPPiwPCZHMkuQenjHSmpWL0okleqMH8EGX7j6A5A/4IUXPMNKMMzkiSRpsIJ65GJmDAbnR3ZXRfC8MzVBBJB6zr5N0F4N9xZfF+JS/Yx726tCu+rA6GDCyTxtQ/wnKpPdwFP5nUWCWQIDAQAB`
};
},
watch: {
@ -190,12 +192,12 @@ export default {
},
getCookie() {
const username = Cookies.get("username");
const password = Cookies.get("password");
const password = Cookies.get("mima");
const rememberMe = Cookies.get("rememberMe");
this.loginForm = {
username: username === undefined ? this.loginForm.username : username,
password:
password === undefined ? this.loginForm.password : decrypt(password),
password === undefined ? this.loginForm.mima : decrypt(password),
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
};
},
@ -205,7 +207,7 @@ export default {
this.loading = true;
if (this.loginForm.rememberMe) {
Cookies.set("username", this.loginForm.username, { expires: 30 });
Cookies.set("password", encrypt(this.loginForm.password), {
Cookies.set("mima", encrypt(this.loginForm.mima), {
expires: 30,
});
Cookies.set("rememberMe", this.loginForm.rememberMe, {
@ -213,11 +215,31 @@ export default {
});
} else {
Cookies.remove("username");
Cookies.remove("password");
Cookies.remove("mima");
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
.dispatch("Login", {...this.loginForm,userType:this.userType})
.dispatch("Login", {...this.loginForm,userType:this.userType, password: encryptedBase64})
.then(() => {
this.$router.push({ path: this.redirect || "/" }).catch(() => {});
})
@ -272,6 +294,7 @@ export default {
border-radius: 6px;
background: #ffffff;
width: 400px;
// height: 200px;
height: 420px;
padding: 25px 25px 5px 25px;
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="02"></el-tab-pane>
</el-tabs>
<el-form-item prop="username">
<!-- v-show="userType == '02'" -->
<!-- <el-form-item prop="username">
<el-input
v-model="loginForm.username"
type="text"
@ -25,9 +26,9 @@
/>
</el-input>
</el-form-item>
<el-form-item prop="password">
<el-form-item prop="mima">
<el-input
v-model="loginForm.password"
v-model="loginForm.mima"
type="password"
auto-complete="off"
placeholder="密码"
@ -40,7 +41,7 @@
/>
</el-input>
</el-form-item>
<el-form-item prop="code" v-if="false">
<el-form-item prop="code" v-if="captchaEnabled">
<el-input
v-model="loginForm.code"
auto-complete="off"
@ -57,14 +58,14 @@
<div class="login-code">
<img :src="codeUrl" @click="getCode" class="login-code-img" />
</div>
</el-form-item>
<el-checkbox
</el-form-item> -->
<!-- <el-checkbox
v-model="loginForm.rememberMe"
style="margin: 0px 0px 25px 0px"
>记住密码</el-checkbox
>
> -->
<el-form-item style="width: 100%">
<el-button
<!-- <el-button
:loading="loading"
size="medium"
type="primary"
@ -73,21 +74,45 @@
>
<span v-if="!loading"> </span>
<span v-else> ...</span>
</el-button>
<!-- <el-button
</el-button> -->
<el-button
size="medium"
type="primary"
v-if="userType == '02'"
style="width: 100%;margin-left: 0;margin-top: 20px;"
@click.native.prevent="changeHttp"
>
<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">
<router-link class="link-type" :to="'/register'"
>立即注册</router-link
>
</div>
</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>
<!-- 底部 -->
<!-- <div class="el-login-footer">
@ -96,7 +121,7 @@
<!-- 正式环境部署命令 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>
</template>
@ -104,6 +129,7 @@
import { getCodeImg } from "@/api/login";
import Cookies from "js-cookie";
import { encrypt, decrypt } from "@/utils/jsencrypt";
import forge from 'node-forge'
export default {
name: "Login",
@ -112,7 +138,7 @@ export default {
codeUrl: "",
loginForm: {
username: "", // admin
password: "", // admin123
mima: "", // admin123
rememberMe: false,
code: "",
uuid: "",
@ -121,7 +147,7 @@ export default {
username: [
{ required: true, trigger: "blur", message: "请输入您的账号" },
],
password: [
mima: [
{ required: true, trigger: "blur", message: "请输入您的密码" },
],
code: [{ required: true, trigger: "change", message: "请输入验证码" }],
@ -133,6 +159,7 @@ export default {
register: false,
redirect: undefined,
userType:"01",
publicKey:`MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl8bS1kYTiMhIS5MZU253bc0ukaxrA1lfCziABFxQrC2c09tMrQGjuH6V1x2ofNBMGhOD9uWN/qkAQy/HwOe/NKUqCw6N0ov6guSrqMDW/BdZ3Bl0rmM1/95jTC1xffFFvej7xWNffIbaPI+bJ4WLX9NViNi9HmT0BRNzJ4d2R86LPPCa+bxLaPjsh2R2tBkbLkUot9769aJaPPiwPCZHMkuQenjHSmpWL0okleqMH8EGX7j6A5A/4IUXPMNKMMzkiSRpsIJ65GJmDAbnR3ZXRfC8MzVBBJB6zr5N0F4N9xZfF+JS/Yx726tCu+rA6GDCyTxtQ/wnKpPdwFP5nUWCWQIDAQAB`
};
},
watch: {
@ -165,12 +192,12 @@ export default {
},
getCookie() {
const username = Cookies.get("username");
const password = Cookies.get("password");
const password = Cookies.get("mima");
const rememberMe = Cookies.get("rememberMe");
this.loginForm = {
username: username === undefined ? this.loginForm.username : username,
password:
password === undefined ? this.loginForm.password : decrypt(password),
password === undefined ? this.loginForm.mima : decrypt(password),
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
};
},
@ -180,7 +207,7 @@ export default {
this.loading = true;
if (this.loginForm.rememberMe) {
Cookies.set("username", this.loginForm.username, { expires: 30 });
Cookies.set("password", encrypt(this.loginForm.password), {
Cookies.set("mima", encrypt(this.loginForm.mima), {
expires: 30,
});
Cookies.set("rememberMe", this.loginForm.rememberMe, {
@ -188,25 +215,51 @@ export default {
});
} else {
Cookies.remove("username");
Cookies.remove("password");
Cookies.remove("mima");
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
.dispatch("Login", {...this.loginForm,userType:this.userType})
.dispatch("Login", {...this.loginForm,userType:this.userType, password: encryptedBase64})
.then(() => {
this.$router.push({ path: this.redirect || "/" }).catch(() => {});
})
.catch(() => {
this.loading = false;
// if (this.captchaEnabled) {
// this.getCode();
// }
if (this.captchaEnabled) {
// if(this.userType == "02") {
this.getCode();
// }
}
});
}
});
},
changeHttp(){
location.href = "https://qyt.sipac.gov.cn/sipsg-enterprise-mobile-manage/#/login"
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"
}
},
},
};
@ -241,7 +294,8 @@ export default {
border-radius: 6px;
background: #ffffff;
width: 400px;
height: 330px;
height: 200px;
// height: 420px;
padding: 25px 25px 5px 25px;
box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.15);
.el-input {

@ -77,7 +77,7 @@
<template slot="label">
联络电话
</template>
{{ baseInfo.fddbrzjhm }} <!-- contactsNumber -->
{{ baseInfo.lxdh }} <!-- contactsNumber -->
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
@ -88,7 +88,7 @@
</el-descriptions>
<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>
<ismybuild ref="ismybuild" :templateJson="templateInfo.templateJson"></ismybuild>
</div>
@ -341,7 +341,14 @@ export default {
this.templateRecordId = templateRecordId
let { data } = await getTemplateInfo({ templateId: templateId })
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)
switch (this.templateId) {
case '2':

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

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

@ -4547,7 +4547,7 @@ export default {
data.url = response.fileName;
this.uploadListThree.push(data);
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 pageData = canvas.toDataURL('image/jpeg', 1.0)
let PDF = new JsPDF('p', 'pt', 'a4') // [592.28 * 841.89]
console.log(pageData);
// console.log(pageData);
if (leftHeight < pageHeight) {
PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)
} else {

@ -79,7 +79,7 @@
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 联络电话 </template>
{{ baseInfo.fddbrzjhm }}
{{ baseInfo.lxdh }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 企业地址 </template>
@ -128,6 +128,7 @@
</span>
<div class="contain_main">
<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">
审核意见{{ item.approvalOpinions }}
</div>
@ -141,7 +142,7 @@
</div>
<div class="attach_right" v-if="item.approvalAttachment">
<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="" />
<span class="icon_name">{{
attachment | dealURL
@ -499,6 +500,7 @@ export default {
item.children = item.approvalAttachment.split(",");
}
this.approvalInfoList.push(item);
// console.log(this.approvalInfoList,"this.approvalInfoList");
return item;
});
if (this.templateId == "1") {

@ -0,0 +1,413 @@
<template>
<el-dialog
title="企业自选列表"
:visible.sync="activeEnterpriseView"
width="1200px"
append-to-body
destroy-on-close
:close-on-click-modal="false"
>
<div class="L-public-main" id="L-size-main">
<div class="L-main" style="padding: 0">
<header id="L-header">
<el-form
:inline="true"
:model="formInline"
size="small"
class="demo-form-inline"
ref="queryFrom"
>
<el-col :span="20">
<el-form-item label="企业名称:" prop="qymc">
<el-input
v-model.trim="formInline.qymc"
placeholder="请输入内容"
></el-input>
</el-form-item>
<el-form-item label="企业规模:" prop="type">
<el-select
class="ignoreElement"
v-model="formInline.type"
placeholder="请选择"
>
<el-option label="全部" value=""> </el-option>
<el-option label="规上服务业" value="1"> </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 label="其他" value="2"> </el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button size="mini" @click="resetQuery('queryFrom')"
>重置</el-button
>
<el-button
size="mini"
type="primary"
@click="handleQuery('queryFrom')"
>查询</el-button
>
<el-button size="mini" type="primary" @click="ConfirmSelct()"
>确定勾选</el-button
>
</el-form-item>
</el-col>
</el-form>
</header>
<section>
<!-- @selection-change="handleSelectionChange"
row-key="tyshxydm" -->
<el-checkbox-group v-model="selectList" @change="CheckboxChange">
<el-table
ref="multipleTable"
v-loading="loading"
:data="tableData"
:row-class-name="tableRowClassName"
:height="tabHeader"
:max-height="tabHeader"
cell-class-name="tablecell"
>
<el-table-column width="45" center>
<template slot-scope="scope">
<el-checkbox :label="scope.row.tyshxydm"> </el-checkbox>
</template>
</el-table-column>
<el-table-column label="企业名称" prop="qymc" />
<el-table-column label="统一社会信用代码" prop="tyshxydm" />
<!-- <el-table-column label="法定代表人" prop="policyLevel" />
<el-table-column label="经营状态" prop="enterTime" />
<el-table-column label="成立日期" prop="createBy" />
<el-table-column label="注册资本" prop="createTime" /> -->
<!-- <el-table-column label="经济类型" prop="jjlxmc" /> -->
<!-- <el-table-column label="登记注册统计类别" prop="statisticalCategories" /> -->
<el-table-column label="企业类型" prop="qylxmc" />
<!-- <el-table-column label="行业名称" prop="hymc" /> -->
<el-table-column label="成立日期" prop="clrq" width="200">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.clrq, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
</el-table>
</el-checkbox-group>
<my-pagination
id="L-pagination"
:total="total"
:page="pagination.current"
:limit="pagination.size"
@pagination="getPagination"
:current-page.sync="pagination.current"
></my-pagination>
</section>
</div>
</div>
</el-dialog>
</template>
<script>
import myPagination from "@/views/components/Pagination/index.vue";
import {
getEnterList,
enterpriseBasicInfoNew,
enterpriseBasicInfoChange,
enterpriseBasicInfoId,
enterpriseBasicInfoDel,
getenterpriseByName,
} from "@/api/jin_ji_hu/enterList";
import { getToken } from "@/utils/auth";
import { Checkbox } from "element-ui";
export default {
components: { myPagination },
dicts: ["jjh_project_type"],
props: {
value: [Array],
},
data() {
return {
activeEnterpriseView: false,
rowList: [],
userType: this.$store.state.user.userType,
roles: this.$store.state.user.roles,
deptId: this.$store.state.user.deptId,
total: 0,
pagination: {
current: 1,
size: 10,
},
loading: false,
formInline: {
qymc: "",
type: null,
},
tableData: [],
tabHeader: undefined,
addFrom: {
name: "",
joinProject: "",
enterUnit: "",
policyLevel: "",
enterTime: "",
},
rules: {
name: [
{ required: true, message: "请填写政策文件名称", trigger: "blur" },
],
joinProject: [
{ required: true, message: "请填写政策等级", trigger: "blur" },
],
enterUnit: [
{ required: true, message: "请填写发文单位", trigger: "blur" },
],
policyLevel: [
{ required: true, message: "请选择发文时间", trigger: "change" },
],
enterTime: [
{ required: true, message: "请选择关联项目", trigger: "change" },
],
},
title: "导入企业",
infoVisible: false,
baseUrl: process.env.VUE_APP_BASE_API,
//
upload: {
//
isUploading: false,
//
updateSupport: 0,
//
headers: { Authorization: "Bearer " + getToken() },
//
url:
process.env.VUE_APP_BASE_API +
"/system/enterpriseBasicInfo/importEnterprise",
},
fileList: [],
number: 0,
uploadList: [],
//
exportLoading: false,
selectList: [],
};
},
watch: {
value: {
handler(val) {
if (val) {
this.selectList = val.map((it) => it.creditCode);
console.log("监听", this.selectList.length);
}
},
deep: true,
immediate: true,
},
},
mounted() {
this.cancalDebounce();
window.addEventListener("resize", this.cancalDebounce);
if (this.$route.params.enterpriseName) {
this.formInline.qymc = this.$route.params.enterpriseName;
this.pagination = { ...this.pagination, ...this.formInline };
}
},
destroyed() {
window.removeEventListener("resize", this.cancalDebounce);
},
methods: {
showDialog() {
this.getList();
this.activeEnterpriseView = true;
},
async ConfirmSelct() {
if (this.selectList.length == 0) {
this.$message({
message: "请先勾选企业",
type: "warning",
});
return;
}
let res = await getenterpriseByName(this.selectList);
this.$emit("input", res.data);
this.activeEnterpriseView = false;
},
CheckboxChange() {
console.log(this.selectList);
},
//
getList() {
this.loading = true;
getEnterList(this.pagination).then((res) => {
this.loading = false;
this.total = res.data.total;
this.tableData = res.data.records;
});
},
//
getPagination(pages) {
this.pagination.current = pages.page;
this.pagination.size = pages.limit;
this.getList();
},
//
handleQuery() {
this.pagination = {
current: 1,
size: 10,
};
this.pagination = { ...this.pagination, ...this.formInline };
// console.log(this.pagination);
// console.log(this.formInline);
this.getList();
},
//
resetQuery(formName) {
this.$refs[formName].resetFields();
this.pagination = {
current: 1,
size: 10,
};
this.getList();
},
// table
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 !== 0) {
return "evenNumber-row";
}
return "";
},
//
goInfo(row) {
this.$router.push({
name: "enterpriselibraryInfo",
query: { userId: row.id, creditCode: row.tyshxydm },
});
},
//
editInfo(row) {},
//
deriveBtn() {
this.$confirm("是否确认导出企业库数据项?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.exportLoading = true;
this.download(
"/system/enterpriseBasicInfo/export",
{
...this.formInline,
},
"企业库数据" + new Date().getTime() + ".xlsx"
);
this.exportLoading = false;
})
.catch(() => {});
},
//
importBtn() {
this.$refs.importProject.open();
},
//
importExcel() {
this.$refs["upload"].$refs["upload-inner"].handleClick();
},
//
handleBeforeUpload(file) {
this.$modal.loading("正在上传文件,请稍候...");
return true;
},
handleFileUploadProgress() {},
//
handleFileSuccess(response, file, fileList) {
if (response.code === 200) {
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.importClose();
this.$refs.importProject.close();
this.$modal.closeLoading();
this.getList();
} else {
this.$modal.closeLoading();
this.$modal.msgError(response.msg);
}
},
//
frontDownload() {
var a = document.createElement("a"); //<a></a>
//
// a.href = "/demo/JinJiHu/static/.xlsx";
//
// a.href = "/test/JinJiHuTest/static/.xlsx";
//
a.href = "./static/企业库数据模板.xlsx";
//ahref .
a.download = "企业库模板.xlsx";
//.xlsxpdf.fpd
a.style.display = "none"; // a
document.body.appendChild(a);
// a
a.click(); //aahref
a.remove();
// a
},
//
importClose() {
this.$refs.importProject.close();
},
//
handleDelete(index) {
this.fileList.splice(index, 1);
// this.$emit("input", this.listToString(this.fileList));
},
//
getFileName(name) {
// url
if (name.lastIndexOf("/") > -1) {
return name.slice(name.lastIndexOf("/") + 1);
} else {
return name;
}
},
//
confirm() {},
//
delInfo(row) {
this.$confirm("此操作将永久删除该数据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
//
cancalDebounce() {
// const element = document.getElementById("L-size-main"); // ID
const header = document.getElementById("L-header"); // ID
const pagination = document.getElementById("L-pagination"); // ID
const elementHeight = 500;
const headerHeight = header.offsetHeight;
const paginationtHeight = pagination.offsetHeight;
this.tabHeader = elementHeight - headerHeight - paginationtHeight - 140;
},
},
};
</script>
<style lang="scss" scoped></style>

File diff suppressed because it is too large Load Diff

@ -174,10 +174,11 @@
<el-col :span="24" v-if="deptId == '103'">
<el-form-item
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-form-item>
</el-col>

File diff suppressed because it is too large Load Diff

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

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

@ -36,7 +36,7 @@
级别{{ info.level == 0 ? '本级' : info.level == 1 ? '省级' : '' }}
</el-col>
</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>
<template slot="label">
申报企业名称
@ -63,8 +63,30 @@
</template>
</el-descriptions-item>
</el-descriptions>
<div class="table-content">
<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" 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-item v-for="(item,index) in templateJson.fields" :key="index" v-if="!item.action">
<template slot="label">
{{ item.label }}
@ -72,7 +94,571 @@
</el-descriptions-item>
</el-descriptions>
</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">
<p>上传材料</p>
<div>
@ -110,19 +696,37 @@ export default {
'width': '135px',
'work-break': 'break-all'
},
LSZ: {
'width': '200px',
'work-break': 'break-all'
},
info:{},
templateJson:{},
specialType:false,
templateName:"",
projectSmallType:null,
isMaterials:false,
};
},
async mounted(){
let { templateId, pageType} = this.$route.query;
let { templateId, pageType, projectSmallType, templateName } = this.$route.query;
this.templateId = templateId
// console.log('this.templateId: ', this.templateId);
this.templateName = templateName;
this.projectSmallType = projectSmallType;
getInfo(this.templateId).then(res=>{
// console.log(res);
this.info = res.data
this.templateJson = res.data.templateJson ? JSON.parse(res.data.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: {
@ -151,7 +755,7 @@ export default {
let imgHeight = 592.28 / contentWidth * contentHeight
let pageData = canvas.toDataURL('image/jpeg', 1.0)
let PDF = new JsPDF('p', 'pt', 'a4') // [592.28 * 841.89]
console.log(pageData);
// console.log(pageData);
if (leftHeight < pageHeight) {
PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)
} else {

@ -3,7 +3,7 @@
<div class="L-main">
<header id="L-header">
<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-date-picker
class="ignoreElement"
@ -53,8 +53,12 @@
<el-button size="mini" type="primary" @click="handleQuery('queryFrom')"></el-button>
</el-form-item>
</el-col>
<el-col :span="2">
<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-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> -->
<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-form>
</header>
@ -264,7 +268,7 @@ export default {
projectName:[],
declareUnit:"",
projectYear:"",
status: ''
status: '5'
},
options: [],
optionsTwo: [],
@ -342,6 +346,7 @@ export default {
url: process.env.VUE_APP_BASE_API + "/jjh/jProject/importTemplateProject"
},
tabHeader: undefined,
exportLoading:false,
};
},
mounted() {
@ -387,6 +392,7 @@ export default {
this.cancalDebounce();
window.addEventListener('resize', this.cancalDebounce);
this.pagination.status = '5'
this.getList();
},
destroyed() {
@ -536,11 +542,37 @@ export default {
// this.$refs.uploadRef.click()
this.$refs['upload'].$refs['upload-inner'].handleClick()
} else {
console.log('error submit!!');
// console.log('error submit!!');
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() {
this.download('/jjh/jProject/updateProjectTemplate', {

@ -25,6 +25,7 @@
<div class="schedule-content">
<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 == 2">{{ activity.approvalByName }}</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 == 1"></div>

@ -3,7 +3,7 @@
<el-row>
<div class="remind-top">
<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 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' : ''">
@ -119,6 +119,7 @@ export default {
},
data() {
return {
roles: this.$store.state.user.roles,
remindData:{
rulesName: "",
alertRecipients: 2,

@ -6,7 +6,7 @@
<el-col :span="9">
<div class="project-info-top">
<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>
</div>
</el-col>
@ -46,7 +46,7 @@
<span>{{ item.name }}</span>
<span>{{ item.createTime }}</span>
</div>
<div class="clearfix-right">
<div class="clearfix-right" v-if="!roles.includes('sightseer')">
<div class="clearfix-bianji" @click="putMemo(item)">
<i class="icon iconfont icon-jc-bianji-copy"></i>
编辑
@ -124,6 +124,7 @@ export default {
name:"tabFour",
data() {
return {
roles: this.$store.state.user.roles,
formInline:{
startTime:"",
endTime:"",

@ -3,7 +3,7 @@
<div class="promoteProject-box-wai-box">
<div class="promoteProject-box-div" v-for="(item,index) in tableData" :key="index">
<div class="promoteProject-top">
<span class="span-one">{{ item.projectName }}</span>
<span class="span-one" @click="huodongClick(item)">{{ item.projectName }}</span>
</div>
<div class="promoteProject-bottom">
<div class="promoteProject-bottom-left">
@ -16,6 +16,33 @@
</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>
</template>
<script>
@ -48,13 +75,22 @@ export default {
enterprice:"省级",
time:"2023-02-11",
},
]
],
infoVisible: false,
itemInfo:{}
}
},
methods:{
huodongClick(item){
this.itemInfo = item;
this.infoVisible = true;
},
infoClose(){},
},
}
</script>
<style lang="scss" scoped>
::v-deep .chanyehuodongxiangqing-dialog {
margin-top: 20vh !important;
}
</style>

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

@ -252,7 +252,8 @@
<div class="appropriate-analyse-box">
<div class="box-header">
<span class="garden"></span>
<span class="box-header-title">资金拨付情况分析</span>
<!-- <span class="box-header-title">资金引导-拨付情况分析</span> -->
<span class="box-header-title">资金引导</span>
</div>
<div class="capital-appropriate-analyse-box">
<echartDataFour></echartDataFour>
@ -347,8 +348,9 @@
<homeIndex v-else-if="userType == '01'" />
</template>
<script>
import Cookies from "js-cookie";
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 homeIndex from "@/views/home/index.vue"
import echartData from '@/views/dataCloudMap/components/echartData.vue'
@ -424,6 +426,19 @@ export default {
this.govRemind();
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:{
//

@ -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 -->
<template>
<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">
<template slot-scope="scope">
<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>
</template>
</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">
<div class="project-table-Info" @click="ProjectInfo(scope.row)">{{ scope.row.projectName }}</div>
<!-- <el-button type="text" class="project-table-Info" @click="charu(scope.row)" :disabled="!scope.row.projectId">{{ scope.row.projectName }}</el-button> -->
<div class="project-trace-table-number">{{ scope.row.appropriationTime ? scope.row.appropriationTime : '' }}</div>
</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>
</el-table-column>
<el-table-column label="所属企业" key="qymc" prop="qymc" align="center" />
@ -33,15 +37,19 @@ export default {
return {
loading:false,
tableData:[],
tabHeader: 288,
tabHeader: null,
}
},
props:{
typeValue:{
type:Number,
default:1,
default:2,
},
yearsChange:{
height:{
type:Number,
default:0,
},
yearsValue:{
type:Number,
default:1,
},
@ -49,25 +57,25 @@ export default {
watch:{
typeValue:{
handler(newVAlue){
console.log(newVAlue);
this.getList();
},
},
yearsChange:{
yearsValue:{
handler(newVAlue){
console.log(newVAlue);
this.getList();
},
},
},
mounted() {
// this.cancalDebounce();
window.addEventListener('resize', this.cancalDebounce);
// window.addEventListener('resize', this.cancalDebounce);
this.getList();
},
methods:{
// top5
getList(){
this.loading = true;
top5Fund().then(res=>{
top5Fund({type:this.typeValue,yearsChange:this.yearsValue}).then(res=>{
let arr = [];
let bgc = ['#EE462A','#FF8929','#ffbb00','#5CBC69','#00AEFF']
res.data.forEach((element,index) => {
@ -77,6 +85,7 @@ export default {
obj.fundAmount = element.fundAmount;
obj.projectName = element.projectName;
obj.qymc = element.qymc;
obj.appropriationTime = element.appropriationTime;
obj.projectId = element.projectId;
arr.push(obj);
});
@ -87,7 +96,6 @@ export default {
})
},
ProjectInfo(item){
console.log(item,"item");
if((item.projectName == "区级总部" || item.projectName == "市级服务业领军") && item.projectId) {
this.$router.push({
name: 'projectInfo',
@ -95,14 +103,24 @@ export default {
})
}
},
formatDate(dateString,id) {
const year = dateString.slice(0, 4);
const month = dateString.slice(4, 6);
const day = dateString.slice(6, 8);
if(id == 1) {
return `${year}${month}${day}`;
} else {
return `${year}-${month}-${day}`;
}
},
//
cancalDebounce(){
const element = document.getElementById('zhijinbofu-qingkaung'); // ID
const header = document.getElementById('zhijinbofu-header-id'); // ID
const elementHeight = element.offsetHeight;
const headerHeight = header.offsetHeight;
this.tabHeader = elementHeight - headerHeight - 35;
}
// 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>

@ -32,21 +32,32 @@
<span class="garden"></span>
<span class="box-header-title">服务业发展总览</span>
</div>
<div class="AFuwufazhanzonglan-box home-mainPro-top-box">
<AFuwufazhanzonglan></AFuwufazhanzonglan>
</div>
</div>
<div class="pro-right-box">
<div class="box-header" id="zhongdian-header-id">
<span class="garden"></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 class="home-mainPro-middle">
<div class="pro-left-box" style="margin-right: 10px;">
<div class="box-header" id="zhongdian-header-id">
<div class="pro-left-box" style="margin-right: 10px;" id="home-mainPro-middle-id">
<div class="box-header" id="TOP-header-id">
<span class="garden"></span>
<span class="box-header-title">企业获得资金拨付排名TOP5</span>
<div class="left-box-select">
<el-select v-model="yearsChange" placeholder="请选择">
<!-- <el-select v-model="yearsChange" class="years-select" placeholder="请选择">
<el-option
label="当年"
:value="1">
@ -55,8 +66,16 @@
label="近三年"
:value="2">
</el-option>
</el-select>
<el-select v-model="typeValue" placeholder="请选择">
</el-select> -->
<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
label="总部专项"
:value="1">
@ -65,32 +84,97 @@
label="服务业专项"
:value="2">
</el-option>
</el-select>
</el-select> -->
</div>
</div>
<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 class="pro-right-box">
<div class="box-header" id="zhongdian-header-id">
<div class="box-header">
<span class="garden"></span>
<span class="box-header-title">当年已申报完成的项目</span>
</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 class="home-mainPro-bottom">
<div class="pro-left-box" style="margin-right: 10px;">
<div class="box-header" id="zhongdian-header-id">
<div class="pro-left-box" style="margin-right: 10px;" id="bottom-box-id">
<div class="box-header" id="bottom-header-id">
<span class="garden"></span>
<span class="box-header-title">项目追踪情况</span>
</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 class="pro-right-box">
<div class="box-header" id="zhongdian-header-id">
<span class="garden"></span>
<span class="box-header-title">备忘录更新情况</span>
</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>
</el-col>
@ -223,15 +307,22 @@ import { chiefAll, changeIsRead } from "@/api/jin_ji_hu/intelligentReminder"
import hometwoIndex from "@/views/homeTwo/index.vue"
import { zhinengtixing, daibanrenwu } from "@/views/workbench/components"
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 {
dicts: ["project_small_type"],
components:{
hometwoIndex,
zhinengtixing,
daibanrenwu,
TableThree
TableThree,
AFuwufazhanzonglan,
BJinsannianzijin
},
data() {
let date = new Date();
const currentYear = date.getFullYear();
return {
// 01 02
userType: this.$store.state.user.userType,
@ -253,13 +344,33 @@ export default {
value:"查荣誉"
},
],
fuwuyeYear:[
{
year: currentYear,
},{
year: currentYear - 1,
},{
year: currentYear - 2,
},{
year: currentYear - 3,
},
],
changeFuwuyeYear: currentYear,
checked: 0,
loading:false,
loadingProject:false,
loadingTwo:false,
loadingThree:false,
remindList: [],
info:{},
time:"",
yearsChange: 1,
typeValue: 1
typeValue: 2,
tableData:[],
tabHeaderOne:null,
tableDataTWo:[],
tableDataThree:[],
tabHeaderTwo:null,
}
},
mounted(){
@ -267,9 +378,18 @@ export default {
this.getList();
this.govRemind();
this.time = this.getNowFormatDate();
this.getCurrentYearFinish();
this.getProjectTrace();
this.cancalDebounce();
this.getMemorandum();
window.addEventListener('resize', this.cancalDebounce);
}
},
methods:{
changeEchart(item){
this.changeFuwuyeYear = item.year;
this.$refs.BJinsannian.initChart(item.year)
},
//
getNowFormatDate() {
let date = new Date(),
@ -284,6 +404,56 @@ export default {
industryBtn(){
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(){
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>

@ -19,11 +19,11 @@ module.exports = {
// 默认情况下Vue CLI 会假设你的应用是被部署在一个域名的根路径上
// 例如 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/JinJiHuTest" : "/",
// publicPath: process.env.NODE_ENV === "production" ? "/demo/JinJiHu" : "/",
// 第三方测试脱敏部署地址(暂停用)
// 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
outputDir: "dist",
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
@ -75,10 +75,13 @@ module.exports = {
],
},
chainWebpack(config) {
const VersionPlugin = require('./src/versionPlugin')
config.plugin('version').use(VersionPlugin).tap(args => {
return args
})
const VersionPlugin = require("./src/versionPlugin");
config
.plugin("version")
.use(VersionPlugin)
.tap((args) => {
return args;
});
config.plugins.delete("preload"); // TODO: need test
config.plugins.delete("prefetch"); // TODO: need test

Loading…
Cancel
Save