李劲龙 2 years ago
commit 6050f2e0a9

@ -12,8 +12,8 @@ VUE_APP_TITLE = 苏州应急执法计划管理系统
ENV = 'development' ENV = 'development'
# 苏州应急执法计划管理系统/开发环境 # 苏州应急执法计划管理系统/开发环境
# VUE_APP_BASE_API = 'http://localhost:9028' VUE_APP_BASE_API = 'http://39.101.188.84:9033'
VUE_APP_BASE_API = '/api' # VUE_APP_BASE_API = '/api'
# 路由懒加载 # 路由懒加载

@ -6,5 +6,9 @@ ENV = 'production'
# 苏州应急执法计划管理系统/生产环境 # 苏州应急执法计划管理系统/生产环境
# VUE_APP_BASE_API = 'http://192.168.0.105:9033' # VUE_APP_BASE_API = 'http://192.168.0.105:9033'
VUE_APP_BASE_API = 'http://39.101.188.84:9033' # VUE_APP_BASE_API = 'http://39.101.188.84:9033'
VUE_APP_BASE_API = 'http://180.108.205.123:13002'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true

@ -1,44 +0,0 @@
import request from '@/utils/request'
// 查询文章列表
export function listArticle(query) {
return request({
url: '/mudu/article/list',
method: 'get',
params: query
})
}
// 查询文章详细
export function getArticle(id) {
return request({
url: '/mudu/article/' + id,
method: 'get'
})
}
// 新增文章
export function addArticle(data) {
return request({
url: '/mudu/article',
method: 'post',
data: data
})
}
// 修改文章
export function updateArticle(data) {
return request({
url: '/mudu/article',
method: 'put',
data: data
})
}
// 删除文章
export function delArticle(id) {
return request({
url: '/mudu/article/' + id,
method: 'delete'
})
}

@ -1,44 +0,0 @@
import request from "@/utils/request";
// 查询清单式检查列表
export function listCheck(query) {
return request({
url: "/mudu/check/list",
method: "get",
params: query,
});
}
// 查询清单式检查详细
export function getCheck(id) {
return request({
url: "/mudu/check/" + id,
method: "get",
});
}
// 新增清单式检查
export function addCheck(data) {
return request({
url: "/mudu/check",
method: "post",
data: data,
});
}
// 修改清单式检查
export function updateCheck(data) {
return request({
url: "/mudu/check",
method: "put",
data: data,
});
}
// 删除清单式检查
export function delCheck(id) {
return request({
url: "/mudu/check/" + id,
method: "delete",
});
}

@ -1,44 +0,0 @@
import request from '@/utils/request'
// 查询服务企业名录库列表
export function listDirectory(query) {
return request({
url: '/mudu/directory/list',
method: 'get',
params: query
})
}
// 查询服务企业名录库详细
export function getDirectory(id) {
return request({
url: '/mudu/directory/' + id,
method: 'get'
})
}
// 新增服务企业名录库
export function addDirectory(data) {
return request({
url: '/mudu/directory',
method: 'post',
data: data
})
}
// 修改服务企业名录库
export function updateDirectory(data) {
return request({
url: '/mudu/directory',
method: 'put',
data: data
})
}
// 删除服务企业名录库
export function delDirectory(id) {
return request({
url: '/mudu/directory/' + id,
method: 'delete'
})
}

@ -1,46 +0,0 @@
import request from '@/utils/request'
// 查询特种设备列表
export function listEquipment(query) {
return request({
url: '/mudu/equipment/list',
method: 'get',
params: query
})
}
// 查询特种设备详细
export function getEquipment(id) {
return request({
url: '/mudu/equipment/' + id,
method: 'get'
})
}
// 新增特种设备
export function addEquipment(data) {
return request({
url: '/mudu/equipment',
method: 'post',
data: data
})
}
// 修改特种设备
export function updateEquipment(data) {
return request({
url: '/mudu/equipment',
method: 'put',
data: data
})
}
// 删除特种设备
export function delEquipment(id) {
return request({
url: '/mudu/equipment/' + id,
method: 'delete'
})
}

@ -1,65 +0,0 @@
import request from "@/utils/request";
// 查询巡查工单列表
export function listHcheck(query) {
return request({
url: "/mudu/hcheck/list",
method: "get",
params: query,
});
}
// 查询巡查工单详细
export function getHcheck(id) {
return request({
url: "/mudu/hcheck/" + id,
method: "get",
});
}
// 新增巡查工单
export function addHcheck(data) {
return request({
url: "/mudu/hcheck",
method: "post",
data: data,
});
}
// 修改巡查工单
export function updateHcheck(data) {
return request({
url: "/mudu/hcheck",
method: "put",
data: data,
});
}
// 删除巡查工单
export function delHcheck(id) {
return request({
url: "/mudu/hcheck/" + id,
method: "delete",
});
}
// 导出巡查工单
export function exportHcheck(data) {
return request({
url: "/mudu/hcheck/export",
method: "post",
data,
});
}
// 导入巡查工单
export function importHcheckTable(data) {
return request({
url: "/mudu/hcheck/importExcel",
method: "post",
headers: {
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
},
data,
});
}

@ -1,45 +0,0 @@
import request from '@/utils/request'
// 查询浏览记录列表
export function listHistory(query) {
return request({
url: '/mudu/history/list',
method: 'get',
params: query
})
}
// 查询浏览记录详细
export function getHistory(id) {
return request({
url: '/mudu/history/' + id,
method: 'get'
})
}
// 新增浏览记录
export function addHistory(data) {
return request({
url: '/mudu/history',
method: 'post',
data: data
})
}
// 修改浏览记录
export function updateHistory(data) {
return request({
url: '/mudu/history',
method: 'put',
data: data
})
}
// 删除浏览记录
export function delHistory(id) {
return request({
url: '/mudu/history/' + id,
method: 'delete'
})
}

@ -1,54 +0,0 @@
import request from '@/utils/request'
// 查询点赞列表
export function listLikes(query) {
return request({
url: '/mudu/likes/list',
method: 'get',
params: query
})
}
// 查询点赞详细
export function getLikes(id) {
return request({
url: '/mudu/likes/' + id,
method: 'get'
})
}
// 新增点赞
export function addLikes(data) {
return request({
url: '/mudu/likes',
method: 'post',
data: data
})
}
// 修改点赞
export function updateLikes(data) {
return request({
url: '/mudu/likes',
method: 'put',
data: data
})
}
// 删除点赞
export function delLikes(id) {
return request({
url: '/mudu/likes/' + id,
method: 'delete'
})
}
// 导出点赞
export function exportLikes(data) {
return request({
url: '/mudu/likes/export',
method: 'post',
data
})
}

@ -1,44 +0,0 @@
import request from '@/utils/request'
// 查询全镇公共物资管理列表
export function listManage(query) {
return request({
url: '/mudu/manage/list',
method: 'get',
params: query
})
}
// 查询全镇公共物资管理详细
export function getManage(id) {
return request({
url: '/mudu/manage/' + id,
method: 'get'
})
}
// 新增全镇公共物资管理
export function addManage(data) {
return request({
url: '/mudu/manage',
method: 'post',
data: data
})
}
// 修改全镇公共物资管理
export function updateManage(data) {
return request({
url: '/mudu/manage',
method: 'put',
data: data
})
}
// 删除全镇公共物资管理
export function delManage(id) {
return request({
url: '/mudu/manage/' + id,
method: 'delete'
})
}

@ -1,44 +0,0 @@
import request from '@/utils/request'
// 查询风险企业管理列表
export function listManagement(query) {
return request({
url: '/mudu/management/list',
method: 'get',
params: query
})
}
// 查询风险企业管理详细
export function getManagement(id) {
return request({
url: '/mudu/management/' + id,
method: 'get'
})
}
// 新增风险企业管理
export function addManagement(data) {
return request({
url: '/mudu/management',
method: 'post',
data: data
})
}
// 修改风险企业管理
export function updateManagement(data) {
return request({
url: '/mudu/management',
method: 'put',
data: data
})
}
// 删除风险企业管理
export function delManagement(id) {
return request({
url: '/mudu/management/' + id,
method: 'delete'
})
}

@ -1,44 +0,0 @@
import request from '@/utils/request'
// 查询园内专有物资管理列表
export function listMaterials(query) {
return request({
url: '/mudu/materials/list',
method: 'get',
params: query
})
}
// 查询园内专有物资管理详细
export function getMaterials(id) {
return request({
url: '/mudu/materials/' + id,
method: 'get'
})
}
// 新增园内专有物资管理
export function addMaterials(data) {
return request({
url: '/mudu/materials',
method: 'post',
data: data
})
}
// 修改园内专有物资管理
export function updateMaterials(data) {
return request({
url: '/mudu/materials',
method: 'put',
data: data
})
}
// 删除园内专有物资管理
export function delMaterials(id) {
return request({
url: '/mudu/materials/' + id,
method: 'delete'
})
}

@ -1,44 +0,0 @@
import request from '@/utils/request'
// 查询园内监控管理列表
export function listMonitor(query) {
return request({
url: '/mudu/monitor/list',
method: 'get',
params: query
})
}
// 查询园内监控管理详细
export function getMonitor(id) {
return request({
url: '/mudu/monitor/' + id,
method: 'get'
})
}
// 新增园内监控管理
export function addMonitor(data) {
return request({
url: '/mudu/monitor',
method: 'post',
data: data
})
}
// 修改园内监控管理
export function updateMonitor(data) {
return request({
url: '/mudu/monitor',
method: 'put',
data: data
})
}
// 删除园内监控管理
export function delMonitor(id) {
return request({
url: '/mudu/monitor/' + id,
method: 'delete'
})
}

@ -1,55 +0,0 @@
import request from '@/utils/request'
// 查询隐患巡查工单列表
export function listOrder(query) {
return request({
url: '/mudu/order/list',
method: 'get',
params: query
})
}
// 查询隐患巡查工单详细
export function getOrder(id) {
return request({
url: '/mudu/order/' + id,
method: 'get'
})
}
// 新增隐患巡查工单
export function addOrder(data) {
return request({
url: '/mudu/order',
method: 'post',
data: data
})
}
// 修改隐患巡查工单
export function updateOrder(data) {
return request({
url: '/mudu/order',
method: 'put',
data: data
})
}
// 删除隐患巡查工单
export function delOrder(id) {
return request({
url: '/mudu/order/' + id,
method: 'delete'
})
}
// 导入隐患巡查工单
export function importOrder(data) {
return request({
url: '/mudu/order/importExcel',
method: 'post',
headers:{
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
},
data
})
}

@ -1,47 +0,0 @@
import request from '@/utils/request'
// 查询点位列表
export function listPoint(query) {
return request({
url: '/mudu/point/list',
method: 'get',
params: query
})
}
// 查询点位详细
export function getPoint(id) {
return request({
url: '/mudu/point/' + id,
method: 'get'
})
}
// 新增点位
export function addPoint(data) {
return request({
url: '/mudu/point',
method: 'post',
data: data
})
}
// 修改点位
export function updatePoint(data) {
return request({
url: '/mudu/point',
method: 'put',
data: data
})
}
// 删除点位
export function delPoint(id) {
return request({
url: '/mudu/point/' + id,
method: 'delete'
})
}

@ -1,45 +0,0 @@
import request from '@/utils/request'
// 查询负责人列表
export function listPrincipal(query) {
return request({
url: '/mudu/principal/list',
method: 'get',
params: query
})
}
// 查询负责人详细
export function getPrincipal(id) {
return request({
url: '/mudu/principal/' + id,
method: 'get'
})
}
// 新增负责人
export function addPrincipal(data) {
return request({
url: '/mudu/principal',
method: 'post',
data: data
})
}
// 修改负责人
export function updatePrincipal(data) {
return request({
url: '/mudu/principal',
method: 'put',
data: data
})
}
// 删除负责人
export function delPrincipal(id) {
return request({
url: '/mudu/principal/' + id,
method: 'delete'
})
}

@ -1,44 +0,0 @@
import request from '@/utils/request'
// 查询园区概况列表
export function listProfile(query) {
return request({
url: '/mudu/profile/list',
method: 'get',
params: query
})
}
// 查询园区概况详细
export function getProfile(id) {
return request({
url: '/mudu/profile/' + id,
method: 'get'
})
}
// 新增园区概况
export function addProfile(data) {
return request({
url: '/mudu/profile',
method: 'post',
data: data
})
}
// 修改园区概况
export function updateProfile(data) {
return request({
url: '/mudu/profile',
method: 'put',
data: data
})
}
// 删除园区概况
export function delProfile(id) {
return request({
url: '/mudu/profile/' + id,
method: 'delete'
})
}

@ -1,45 +0,0 @@
import request from '@/utils/request'
// 查询储气罐列表
export function listReceiver(query) {
return request({
url: '/mudu/receiver/list',
method: 'get',
params: query
})
}
// 查询储气罐详细
export function getReceiver(id) {
return request({
url: '/mudu/receiver/' + id,
method: 'get'
})
}
// 新增储气罐
export function addReceiver(data) {
return request({
url: '/mudu/receiver',
method: 'post',
data: data
})
}
// 修改储气罐
export function updateReceiver(data) {
return request({
url: '/mudu/receiver',
method: 'put',
data: data
})
}
// 删除储气罐
export function delReceiver(id) {
return request({
url: '/mudu/receiver/' + id,
method: 'delete'
})
}

@ -1,46 +0,0 @@
import request from '@/utils/request'
// 查询检查记录列表
export function listRecords(query) {
return request({
url: '/mudu/records/list',
method: 'get',
params: query
})
}
// 查询检查记录详细
export function getRecords(id) {
return request({
url: '/mudu/records/' + id,
method: 'get'
})
}
// 新增检查记录
export function addRecords(data) {
return request({
url: '/mudu/records',
method: 'post',
data: data
})
}
// 修改检查记录
export function updateRecords(data) {
return request({
url: '/mudu/records',
method: 'put',
data: data
})
}
// 删除检查记录
export function delRecords(id) {
return request({
url: '/mudu/records/' + id,
method: 'delete'
})
}

@ -1,44 +0,0 @@
import request from '@/utils/request'
// 查询培训列表
export function listTrain(query) {
return request({
url: '/mudu/train/list',
method: 'get',
params: query
})
}
// 查询培训详细
export function getTrain(id) {
return request({
url: '/mudu/train/' + id,
method: 'get'
})
}
// 新增培训
export function addTrain(data) {
return request({
url: '/mudu/train',
method: 'post',
data: data
})
}
// 修改培训
export function updateTrain(data) {
return request({
url: '/mudu/train',
method: 'put',
data: data
})
}
// 删除培训
export function delTrain(id) {
return request({
url: '/mudu/train/' + id,
method: 'delete'
})
}

@ -1,47 +0,0 @@
import request from '@/utils/request'
// 查询交通运输列表
export function listTransportation(query) {
return request({
url: '/mudu/transportation/list',
method: 'get',
params: query
})
}
// 查询交通运输详细
export function getTransportation(id) {
return request({
url: '/mudu/transportation/' + id,
method: 'get'
})
}
// 新增交通运输
export function addTransportation(data) {
return request({
url: '/mudu/transportation',
method: 'post',
data: data
})
}
// 修改交通运输
export function updateTransportation(data) {
return request({
url: '/mudu/transportation',
method: 'put',
data: data
})
}
// 删除交通运输
export function delTransportation(id) {
return request({
url: '/mudu/transportation/' + id,
method: 'delete'
})
}

@ -1,64 +0,0 @@
import request from "@/utils/request";
// 查询隐患工单列表
export function listTrouble(query) {
return request({
url: "/mudu/trouble/list",
method: "get",
params: query,
});
}
// 查询隐患工单详细
export function getTrouble(id) {
return request({
url: "/mudu/trouble/" + id,
method: "get",
});
}
// 新增隐患工单
export function addTrouble(data) {
return request({
url: "/mudu/trouble",
method: "post",
data: data,
});
}
// 修改隐患工单
export function updateTrouble(data) {
return request({
url: "/mudu/trouble",
method: "put",
data: data,
});
}
// 删除隐患工单
export function delTrouble(id) {
return request({
url: "/mudu/trouble/" + id,
method: "delete",
});
}
// 导出隐患工单
export function exportTrouble(data) {
return request({
url: "/mudu/trouble/export",
method: "post",
data,
});
}
// 导入隐患工单
export function importTroubleTable(data) {
return request({
url: "/mudu/trouble/importExcel",
method: "post",
headers: {
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
},
data,
});
}

@ -0,0 +1,18 @@
/*
* @Descripttion:
* @version:
* @Author: JC9527
* @Date: 2023-09-11 15:38:21
* @LastEditors: JC9527
* @LastEditTime: 2023-09-28 13:22:58
*/
import request from '@/utils/request'
// 首页表格
export function indexRegionalism(params) {
return request({
url: "/pharmaceuticals/bPlanEnterprise/tree",
method: "get",
params,
});
}

@ -4,7 +4,7 @@
* @Author: JC9527 * @Author: JC9527
* @Date: 2023-09-11 15:38:21 * @Date: 2023-09-11 15:38:21
* @LastEditors: JC9527 * @LastEditors: JC9527
* @LastEditTime: 2023-09-19 15:27:12 * @LastEditTime: 2023-09-30 00:52:32
*/ */
import request from '@/utils/request' import request from '@/utils/request'
@ -44,7 +44,7 @@ export default {
}, },
bPlanManageTwo(id){ bPlanManageTwo(id){
return request({ return request({
url: `/pharmaceuticals/bPlanManage/${id}`, url: `/pharmaceuticals/bPlanEnterprise/${id}`,
method:'get', method:'get',
}); });
}, },
@ -55,10 +55,36 @@ export default {
params params
}); });
}, },
bPlanEnterprise(){ bPlanEnterprise(method,data = null, params = null, id){
return request({ return request({
url: `/pharmaceuticals/bPlanEnterprise`, url: `/pharmaceuticals/bPlanEnterprise${id ? `/${id}` : ''}`,
method,
data,
params
});
},
// 查看计划明细
planmx(params){
return request({
url: `/pharmaceuticals/bPlanEnterprise/planmx`,
method:'post',
params,
});
},
// 查询计划企业列表
bPlanEnterpriseList(){
return request({
url: `/pharmaceuticals/bPlanEnterprise/list`,
method:'get',
});
},
// 根据行政区划查询重点企业数量
getBydistrict(params){
return request({
url: `/pharmaceuticals/bKeyEnterprise/getBydistrict`,
method:'get', method:'get',
params
}); });
}, },
}; };

@ -68,6 +68,13 @@ export function enforcingDetail(data) {
}) })
} }
//执法列表详情
export function enforcingGet(id) {
return request({
url: `/pharmaceuticals/examine/${id}`,
method: 'get',
})
}
// 根据字段查询字典信息 // 根据字段查询字典信息
export function listDist(query) { export function listDist(query) {
@ -77,12 +84,34 @@ export function listDist(query) {
params: query params: query
}) })
} }
//计划企业表数结构
export function planeEnTree(data) {
return request({
url: '/pharmaceuticals/bPlanEnterprise/tree',
method: 'get',
params:data
})
}
// 行政区划树结构 // 行政区划树结构
export function xzTree(id) { export function xzTree() {
return request({ return request({
url: '/pharmaceuticals/administrative/tree', url: '/pharmaceuticals/administrative/tree',
method: 'get', method: 'get',
}) })
} }
//执法计划工作情况统计
export function workStatistics(data) {
return request({
url: '/pharmaceuticals/bPlanEnterprise/getZhifaCount',
method: 'get',
params:data
})
}
//各区域执法计划
export function quyuPlan(data) {
return request({
url: '/pharmaceuticals/bPlanEnterprise/getplan',
method: 'get',
params:data
})
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1019 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 886 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 723 B

@ -35,7 +35,7 @@ export default {
const first = matched[0] const first = matched[0]
if (!this.isDashboard(first)) { if (!this.isDashboard(first)) {
matched = [{ path: '/index', meta: { title: '首页' }}].concat(matched) matched = [{ path: '/home', meta: { title: '首页' }}].concat(matched)
} }
this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false) this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false)
@ -49,6 +49,7 @@ export default {
}, },
handleLink(item) { handleLink(item) {
const { redirect, path } = item const { redirect, path } = item
console.log(item);
if (redirect) { if (redirect) {
this.$router.push(redirect) this.$router.push(redirect)
return return

@ -6,40 +6,56 @@
class="hamburger-container" class="hamburger-container"
@toggleClick="toggleSideBar" @toggleClick="toggleSideBar"
/> />
<breadcrumb <!-- <breadcrumb
id="breadcrumb-container" id="breadcrumb-container"
class="breadcrumb-container" class="breadcrumb-container"
v-if="!topNav" v-if="!topNav"
/> /> -->
<top-nav id="topmenu-container" class="topmenu-container" v-if="topNav" /> <!-- <top-nav id="topmenu-container" class="topmenu-container" v-if="topNav" /> -->
<div class="right-menu"> <div class="right-menu">
<template v-if="device !== 'mobile'"> <!-- <template v-if="device !== 'mobile'">
<search id="header-search" class="right-menu-item" /> <search id="header-search" class="right-menu-item" />
<!-- <el-tooltip content="源码地址" effect="dark" placement="bottom"> <el-tooltip content="源码地址" effect="dark" placement="bottom">
<ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" /> <ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" />
</el-tooltip> --> </el-tooltip>
<!-- <el-tooltip content="文档地址" effect="dark" placement="bottom"> <el-tooltip content="文档地址" effect="dark" placement="bottom">
<ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" /> <ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />
</el-tooltip> --> </el-tooltip>
<!-- <screenfull id="screenfull" class="right-menu-item hover-effect" /> --> <screenfull id="screenfull" class="right-menu-item hover-effect" />
<!-- <el-tooltip content="布局大小" effect="dark" placement="bottom"> <el-tooltip content="布局大小" effect="dark" placement="bottom">
<size-select id="size-select" class="right-menu-item hover-effect" /> <size-select id="size-select" class="right-menu-item hover-effect" />
</el-tooltip> --> </el-tooltip>
</template> </template> -->
<header>
<el-dropdown trigger="click" @visible-change="getDrop">
<div>
<div class="avatar"></div>
<div class="header-text">
<span
>{{ dept.deptName }}&nbsp;&nbsp;&nbsp;&nbsp;{{ username }}
</span>
<i class="el-icon-caret-bottom" v-if="!avatarFlag"></i>
<i class="el-icon-caret-top" v-if="avatarFlag"></i>
</div>
</div>
<el-dropdown-menu slot="dropdown">
<router-link to="/user/profile">
<el-dropdown-item>个人中心</el-dropdown-item>
</router-link>
<el-dropdown-item @click.native="logout">退出登录</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</header>
<el-dropdown <!-- <el-dropdown
class="avatar-container right-menu-item hover-effect" class="avatar-container right-menu-item hover-effect"
trigger="click" trigger="click"
> >
<div class="avatar-wrapper">
<img :src="avatar" class="user-avatar" />
<i class="el-icon-caret-bottom" />
</div>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<router-link to="/user/profile"> <router-link to="/user/profile">
<el-dropdown-item>个人中心</el-dropdown-item> <el-dropdown-item>个人中心</el-dropdown-item>
@ -51,13 +67,13 @@
<span>退出登录</span> <span>退出登录</span>
</el-dropdown-item> </el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown> -->
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { mapGetters } from "vuex"; import { mapGetters, mapState } from "vuex";
import Breadcrumb from "@/components/Breadcrumb"; import Breadcrumb from "@/components/Breadcrumb";
import TopNav from "@/components/TopNav"; import TopNav from "@/components/TopNav";
import Hamburger from "@/components/Hamburger"; import Hamburger from "@/components/Hamburger";
@ -96,8 +112,21 @@ export default {
return this.$store.state.settings.topNav; return this.$store.state.settings.topNav;
}, },
}, },
...mapState({
dept: (state) => state.user.dept,
username: (state) => state.user.name,
roles: (state) => state.user.roles,
}),
},
data() {
return {
avatarFlag: false,
};
}, },
methods: { methods: {
getDrop(e) {
this.avatarFlag = e;
},
toggleSideBar() { toggleSideBar() {
this.$store.dispatch("app/toggleSideBar"); this.$store.dispatch("app/toggleSideBar");
}, },
@ -109,7 +138,11 @@ export default {
}) })
.then(() => { .then(() => {
this.$store.dispatch("LogOut").then(() => { this.$store.dispatch("LogOut").then(() => {
location.href = "/index"; // location.href = process.env.NODE_ENV === "production"
// ? "/demo/suzhouyingjiPC/"
// : "/";
location.href = process.env.NODE_ENV === "production" ? "./" : "/";
}); });
}) })
.catch(() => {}); .catch(() => {});
@ -119,6 +152,12 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .el-dropdown-selfdefine {
display: flex;
align-items: center;
cursor: pointer;
user-select: none;
}
.navbar { .navbar {
height: 50px; height: 50px;
overflow: hidden; overflow: hidden;
@ -156,7 +195,24 @@ export default {
.right-menu { .right-menu {
float: right; float: right;
height: 100%; height: 100%;
line-height: 50px; display: flex;
align-items: center;
// line-height: 50px;
header {
padding-right: 20px;
.avatar {
height: 25px;
width: 25px;
background-size: 100% 100%;
background-image: url("../../assets/images/gl-icon.png");
}
.header-text {
font-family: "Alibaba-PuHuiTi-Medium.otf";
span {
margin: 0 8px;
}
}
}
&:focus { &:focus {
outline: none; outline: none;

@ -1,45 +1,90 @@
<template> <template>
<div class="sidebar-logo-container" :class="{'collapse':collapse}" :style="{ backgroundColor: sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }"> <div
class="sidebar-logo-container"
:class="{ collapse: collapse }"
:style="{
backgroundColor:
sideTheme === 'theme-dark'
? variables.menuBackground
: variables.menuLightBackground,
}"
>
<transition name="sidebarLogoFade"> <transition name="sidebarLogoFade">
<router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/"> <div
v-if="collapse"
key="collapse"
class="sidebar-logo-link"
@click="toNewPage"
style="cursor: pointer;"
>
<img v-if="logo" :src="logo" class="sidebar-logo" /> <img v-if="logo" :src="logo" class="sidebar-logo" />
<h1 v-else class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1> <h1
</router-link> v-else
<router-link v-else key="expand" class="sidebar-logo-link" to="/"> class="sidebar-title"
:style="{
color:
sideTheme === 'theme-dark'
? variables.logoTitleColor
: variables.logoLightTitleColor,
}"
>
{{ title }}
</h1>
</div>
<div v-else key="expand" class="sidebar-logo-link" @click="toNewPage" style="cursor: pointer;">
<img v-if="logo" :src="logo" class="sidebar-logo" /> <img v-if="logo" :src="logo" class="sidebar-logo" />
<h1 class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1> <h1
</router-link> class="sidebar-title"
:style="{
color:
sideTheme === 'theme-dark'
? variables.logoTitleColor
: variables.logoLightTitleColor,
}"
>
{{ title }}
</h1>
</div>
</transition> </transition>
</div> </div>
</template> </template>
<script> <script>
import logoImg from '@/assets/logo/logo.png' import logoImg from "@/assets/images/logo.png";
import variables from '@/assets/styles/variables.scss' import variables from "@/assets/styles/variables.scss";
import { mapState } from "vuex";
export default { export default {
name: 'SidebarLogo', name: "SidebarLogo",
props: { props: {
collapse: { collapse: {
type: Boolean, type: Boolean,
required: true required: true,
} },
}, },
computed: { computed: {
variables() { variables() {
return variables; return variables;
}, },
sideTheme() { sideTheme() {
return this.$store.state.settings.sideTheme return this.$store.state.settings.sideTheme;
} },
...mapState({
new1: (state) => state.user.new1,
}),
},
methods: {
toNewPage() {
this.$router.push({path:this.new1[0]})
},
}, },
data() { data() {
return { return {
title: process.env.VUE_APP_TITLE, title: process.env.VUE_APP_TITLE,
logo: logoImg logo: logoImg,
} };
} },
} };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>

@ -8,28 +8,30 @@
<div class="nav-text">苏州市应急</div> <div class="nav-text">苏州市应急</div>
<div class="nav-text">执法计划管理系统</div> <div class="nav-text">执法计划管理系统</div>
</nav> </nav>
<div <div class="menu-bottom">
v-for="(item, index) in myRouter"
:key="index"
@click="changePath(index, item)"
>
<!-- 标题分割线 -->
<div class="subLine1" v-if="index == 0"></div>
<div <div
class="sub-item" v-for="(item, index) in newRouter"
:class="routerIndex == index ? 'activeColor' : ''" :key="index"
@click="changePath(index, item)"
> >
<div class="activeBox" v-show="index == routerIndex"></div> <!-- 标题分割线 -->
<div class="subLine1" v-if="index == 0"></div>
<div <div
class="item-img" class="sub-item"
:style="`background-image:url(${ :class="routerIndex == index ? 'activeColor' : ''"
routerIndex == index ? item.icon2 : item.icon1 >
})`" <div class="activeBox" v-show="index == routerIndex"></div>
></div> <div
{{ item.name }} class="item-img"
:style="`background-image:url(${
routerIndex == index ? item.icon2 : item.icon1
})`"
></div>
{{ item.name }}
</div>
<!-- 菜单分割线 -->
<div class="subLine2"></div>
</div> </div>
<!-- 菜单分割线 -->
<div class="subLine2"></div>
</div> </div>
</div> </div>
<div class="right-view"> <div class="right-view">
@ -49,9 +51,13 @@
<el-dropdown-item @click.native="logout">退出登录</el-dropdown-item> <el-dropdown-item @click.native="logout">退出登录</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
<div class="showGLstyle" v-if="roles && roles[0]=='admin'" @click="toNewPage"> <!-- <div
class="showGLstyle"
v-if="roles && roles[0] == 'admin'"
@click="toNewPage"
>
进入管理平台 进入管理平台
</div> </div> -->
</header> </header>
<div class="bottom-view"> <div class="bottom-view">
<router-view></router-view> <router-view></router-view>
@ -61,56 +67,28 @@
</template> </template>
<script> <script>
import { mapState } from "vuex"; import { mapState } from "vuex";
export default { export default {
data() { data() {
return { return {
routerIndex: 0, routerIndex: 0,
avatarFlag: false, avatarFlag: false,
myRouter: [
{
path: "/home",
name: "首页",
icon1: require("../assets/images/index1.png"),
icon2: require("../assets/images/index1-change.png"),
},
{
path: "/planManage",
name: "计划管理",
icon1: require("../assets/images/jihua.png"),
icon2: require("../assets/images/jihua-change.png"),
},
{
path: "/enforcing",
name: "执法结果",
icon1: require("../assets/images/zhifa.png"),
icon2: require("../assets/images/zhifa-change.png"),
},
{
path: "/enterprise",
name: "企业名录",
icon1: require("../assets/images/qiye.png"),
icon2: require("../assets/images/qiye-change.png"),
},
{
path: "/focusEnter",
name: "省重点企业",
icon1: require("../assets/images/qiye.png"),
icon2: require("../assets/images/qiye-change.png"),
},
],
}; };
}, },
computed: { computed: {
...mapState({ ...mapState({
dept: (state) => state.user.dept, dept: (state) => state.user.dept,
username: (state) => state.user.name, username: (state) => state.user.name,
roles:(state) => state.user.roles, roles: (state) => state.user.roles,
newRouter: (state) => state.user.newRouter,
new1: (state) => state.user.new1,
}), }),
}, },
created() {},
watch: { watch: {
$route: { $route: {
handler(newRouter, oldRouter) { handler(n, o) {
this.routerIndex = newRouter.meta.index; this.routerIndex = this.new1.indexOf(n.path);
}, },
immediate: true, immediate: true,
}, },
@ -134,8 +112,11 @@ export default {
}) })
.then(() => { .then(() => {
this.$store.dispatch("LogOut").then(() => { this.$store.dispatch("LogOut").then(() => {
// this.$router.replace("/login").catch(() => {}); // location.href = process.env.NODE_ENV === "production"
location.href = "/"; // ? "/demo/suzhouyingjiPC/"
// : "/";
location.href = process.env.NODE_ENV === "production" ? "./" : "/";
}); });
}) })
.catch(() => {}); .catch(() => {});
@ -163,9 +144,11 @@ export default {
display: flex; display: flex;
.left-menu { .left-menu {
width: 210px; width: 210px;
background-image: url("../assets/images/cb.png"); // background-image: url("../assets/images/cb.png");
background-size: 102% 100%; background-size: 102% 100%;
.menu-headers { .menu-headers {
background-image: url("../assets/images/ceT.jpg");
background-size: 102% 100%;
height: 180px; height: 180px;
div { div {
text-align: center; text-align: center;
@ -176,7 +159,11 @@ export default {
} }
} }
} }
.menu-bottom {
height: calc(100% - 180px);
background-image: url("../assets/images/ceB.jpg");
background-size: 102% 100%;
}
.sub-item { .sub-item {
flex: 1; flex: 1;
height: 50px; height: 50px;

@ -1,3 +1,11 @@
/*
* @Descripttion:
* @version:
* @Author: JC9527
* @Date: 2023-09-26 13:45:06
* @LastEditors: JC9527
* @LastEditTime: 2023-09-28 16:55:12
*/
import router from './router' import router from './router'
import store from './store' import store from './store'
import { Message } from 'element-ui' import { Message } from 'element-ui'
@ -19,26 +27,37 @@ router.beforeEach((to, from, next) => {
next({ path: '/' }) next({ path: '/' })
NProgress.done() NProgress.done()
} else { } else {
store.dispatch("Getdistrict");
if (store.getters.roles.length === 0) { if (store.getters.roles.length === 0) {
// console.log(router.options);
isRelogin.show = true isRelogin.show = true
// 判断当前用户是否已拉取完user_info信息 // 判断当前用户是否已拉取完user_info信息
store.dispatch('GetInfo').then(() => { store.dispatch('GetInfo').then((res) => {
isRelogin.show = false isRelogin.show = false
store.dispatch('GenerateRoutes').then(accessRoutes => { store.dispatch('GenerateRoutes').then(accessRoutes => {
console.log(accessRoutes);
// 根据roles权限生成可访问的路由表 // 根据roles权限生成可访问的路由表
console.log(res);
router.addRoutes(accessRoutes) // 动态添加可访问路由表 router.addRoutes(accessRoutes) // 动态添加可访问路由表
next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 //刷新之后,要去的路由肯定是自己已经保存过的新路由
let refresh = ''
if (store.state.user.new1.indexOf(to.path) != -1) {
refresh = to.path
}
console.log(to.path);
//进入添加的第一个路由
next({ path: refresh || res[0].path })
}) })
}).catch(err => { }).catch(err => {
store.dispatch('LogOut').then(() => { store.dispatch('LogOut').then(() => {
Message.error(err) Message.error(err)
next({ path: '/' }) next({ path: '/' })
})
}) })
})
} else { } else {
next() if (store.state.user.old1.indexOf(to.path) != -1 && store.state.user.new1.indexOf(to.path) == -1) {
next({ path: '/404' })
} else {
next()
}
} }
} }
} else { } else {
@ -47,7 +66,7 @@ router.beforeEach((to, from, next) => {
// 在免登录白名单,直接进入 // 在免登录白名单,直接进入
next() next()
} else { } else {
next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 next(`/login`) // 否则全部重定向到登录页
NProgress.done() NProgress.done()
} }
} }

@ -11,7 +11,7 @@ const permission = {
addRoutes: [], addRoutes: [],
defaultRoutes: [], defaultRoutes: [],
topbarRouters: [], topbarRouters: [],
sidebarRouters: [] sidebarRouters: [],
}, },
mutations: { mutations: {
SET_ROUTES: (state, routes) => { SET_ROUTES: (state, routes) => {
@ -45,7 +45,7 @@ const permission = {
commit('SET_SIDEBAR_ROUTERS', constantRoutes.concat(sidebarRoutes)) commit('SET_SIDEBAR_ROUTERS', constantRoutes.concat(sidebarRoutes))
commit('SET_DEFAULT_ROUTES', sidebarRoutes) commit('SET_DEFAULT_ROUTES', sidebarRoutes)
commit('SET_TOPBAR_ROUTES', sidebarRoutes) commit('SET_TOPBAR_ROUTES', sidebarRoutes)
resolve(rewriteRoutes) resolve(rewriteRoutes,1)
}) })
}) })
} }
@ -59,6 +59,7 @@ function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) {
route.children = filterChildren(route.children) route.children = filterChildren(route.children)
} }
if (route.component) { if (route.component) {
// Layout ParentView 组件特殊处理 // Layout ParentView 组件特殊处理
if (route.component === 'Layout') { if (route.component === 'Layout') {
route.component = Layout route.component = Layout
@ -126,7 +127,7 @@ export const loadView = (view) => {
return (resolve) => require([`@/views/${view}`], resolve) return (resolve) => require([`@/views/${view}`], resolve)
} else { } else {
// 使用 import 实现生产环境的路由懒加载 // 使用 import 实现生产环境的路由懒加载
return () => import(`@/views/${view}`) return (resolve) => require([`@/views/${view}`], resolve)
} }
} }

@ -1,4 +1,5 @@
import { login, login2, logout, getInfo } from "@/api/login"; import { login, login2, logout, getInfo } from "@/api/login";
import { xzTree, listDist } from "@/api/yingji/keyEnterprise";
import { getToken, setToken, removeToken } from "@/utils/auth"; import { getToken, setToken, removeToken } from "@/utils/auth";
const user = { const user = {
@ -9,10 +10,31 @@ const user = {
roles: [], roles: [],
permissions: [], permissions: [],
//存储用户id //存储用户id
dept: null dept: null,
//存储路由
oldRouter: [],
newRouter: [],
old1: [],
new1: [],
district:[],
}, },
mutations: { mutations: {
setOld: (state, route) => {
state.old1 = route
},
SET_DISTRICT: (state,data) => {
state.district = data
},
setNew: (state, route) => {
state.new1 = route
},
getOldRouter: (state, route) => {
state.oldRouter = route
},
getNewRouter: (state, route) => {
state.newRouter = route
},
get_dept: (state, id) => { get_dept: (state, id) => {
state.dept = id; state.dept = id;
}, },
@ -52,6 +74,19 @@ const user = {
}); });
}); });
}, },
// 获取行政区划
Getdistrict({ commit }){
return new Promise((resolve, reject) => {
xzTree()
.then((res) => {
commit("SET_DISTRICT", res.data);
resolve();
})
.catch((error) => {
reject(error);
});
});
},
// 匿名 // 匿名
login2({ commit }, userInfo) { login2({ commit }, userInfo) {
const username = userInfo.username.trim(); const username = userInfo.username.trim();
@ -89,9 +124,73 @@ const user = {
} else { } else {
commit("SET_ROLES", ["ROLE_DEFAULT"]); commit("SET_ROLES", ["ROLE_DEFAULT"]);
} }
let arr1 = [
{
path: "/home",
name: "首页",
icon1: require("../../assets/images/index1.png"),
icon2: require("../../assets/images/index1-change.png"),
},
{
path: "/planManage",
name: "计划管理",
icon1: require("../../assets/images/jihua.png"),
icon2: require("../../assets/images/jihua-change.png"),
},
{
path: "/enforcing",
name: "执法结果",
icon1: require("../../assets/images/zhifa.png"),
icon2: require("../../assets/images/zhifa-change.png"),
},
{
path: "/enterprise",
name: "企业名录",
icon1: require("../../assets/images/qiye.png"),
icon2: require("../../assets/images/qiye-change.png"),
},
{
path: "/focusEnter",
name: "省重点企业",
icon1: require("../../assets/images/qiye.png"),
icon2: require("../../assets/images/qiye-change.png"),
},
]
let arr2 = []
let A1 = []
let A2 = []
let toRouter = ''
commit("getOldRouter", arr1)
arr1.forEach((value) => {
A1.push(value.path)
})
commit("setOld", A1)
if (res.roles.indexOf('admin') != -1) {
commit("getNewRouter", arr1)
commit("setNew", A1)
toRouter = arr1
} else {
//区级和镇级
if (user.dept.parentId != 0) {
arr2 = arr1.filter((value) => {
return value.path == "/planManage";
});
arr2.forEach((value) => {
A2.push(value.path)
})
commit("getNewRouter", arr2)
commit("setNew", A2)
toRouter = arr2
} else {
commit("getNewRouter", arr1)
commit("setNew", A1)
toRouter = arr1
}
}
commit("SET_NAME", user.userName); commit("SET_NAME", user.userName);
commit("SET_AVATAR", avatar); commit("SET_AVATAR", avatar);
resolve(res); resolve(toRouter);
}) })
.catch((error) => { .catch((error) => {
reject(error); reject(error);

File diff suppressed because it is too large Load Diff

@ -0,0 +1,426 @@
<template>
<el-dialog
:visible.sync="dialogVisible"
:show-close="false"
:destroy-on-close="true"
:close-on-click-modal="false"
append-to-body
custom-class="dialog-boxed"
width="60%"
>
<div class="dialog-slot">
<div class="closeClick">
<div class="newplan">
<div class="line"></div>
<div class="span">计划详情</div>
</div>
<img src="@/assets/images/close.png" alt="" @click="Close" />
</div>
</div>
<div class="content">
<div class="filtrate">
<el-descriptions :column="2" border>
<el-descriptions-item
:label="item.label"
v-for="(item, index) in listDes"
:key="index"
>
{{
item.value == "null"
? ""
: item.value == "false"
? "暂无"
: item.value
}}
</el-descriptions-item>
</el-descriptions>
</div>
</div>
</el-dialog>
</template>
<script>
import { businessList } from "@/api/yingji/keyEnterprise";
export default {
data() {
return {
listDes: [
{
eng: "bizAddr",
label: "生产经营地址",
value: "123",
},
{
eng: "bossEmail",
label: "主要负责人电子邮箱",
value: "456",
},
{
eng: "bossMobtel",
label: "主要负责人移动电话",
value: "",
},
{
eng: "bossTel",
label: "主要负责人固定电话",
value: "",
},
{
eng: "businessScope",
label: "经营范围",
value: "",
},
{
eng: "contactEmail",
label: "电子邮箱",
value: "",
},
{
eng: "contactQq",
label: "联系QQ号码",
value: "",
},
{
eng: "contactTel",
label: "企业固定电话",
value: "",
},
{
eng: "cseNum",
label: "注册安全工程师人员数量",
value: "",
},
{
eng: "doublePreven",
label: "是否开展双重预防机制",
value: "",
},
{
eng: "ecoTypeLarge",
label: "经济类型大类",
value: "",
},
{
eng: "ecoTypeSmall",
label: "经济类型小类",
value: "",
},
{
eng: "employeeNum",
label: "从业人员数量",
value: "",
},
{
eng: "enterColorChart",
label: "企业分色图",
value: "",
},
{
eng: "entprId",
label: "企业ID",
value: "",
},
{
eng: "entprName",
label: "企业名称",
value: "",
},
{
eng: "entprPlaneGragh",
label: "企业平面图",
value: "",
},
{
eng: "floorArea",
label: "占地面积(㎡)",
value: "",
},
{
eng: "fullEmegNum",
label: "专职应急管理人员数量",
value: "",
},
{
eng: "fullSafety",
label: "是否有专职安全人员",
value: "",
},
{
eng: "fullSafetyNum",
label: "专职安全生产管理人员数量",
value: "",
},
{
eng: "gridCode",
label: "网格编码",
value: "",
},
{
eng: "gridEntprStatus",
label: "网格对企业的关停和恢复",
value: "",
},
{
eng: "groupCompName",
label: "集团公司名称",
value: "",
},
{
eng: "indusTypeClass",
label: "行业类别门类",
value: "",
},
{
eng: "indusTypeLagre",
label: "行业类别大类",
value: "",
},
{
eng: "indusTypeMiddle",
label: "行业类别中类",
value: "",
},
{
eng: "indusTypeSmall",
label: "行业类别小类",
value: "",
},
{
eng: "industryRefer",
label: "工贸涉及(专项治理类别)",
value: "",
},
{
eng: "infoYear",
label: "数据年份",
value: "",
},
{
eng: "isPoint",
label: "是否重点",
value: "",
},
{
eng: "latitudeGps",
label: "纬度(度) 84",
value: "",
},
{
eng: "legalPerson",
label: "法定代表人",
value: "",
},
{
eng: "localSafetyAdmin",
label: "属地安监机构",
value: "",
},
{
eng: "longitudeGps",
label: "经度(度) 84",
value: "",
},
{
eng: "mainProduct",
label: "主要产品",
value: "",
},
{
eng: "majorHazardInstallations",
label: "是否存在重大危险源",
value: "",
},
{
eng: "majorHazardLevel",
label: "重大危险源等级",
value: "",
},
{
eng: "operatingStatus",
label: "经营状态",
value: "",
},
{
eng: "parentCompName",
label: "母公司名称",
value: "",
},
{
eng: "partSafetyNum",
label: "兼职安全生产管理人员数量",
value: "",
},
{
eng: "regAddr",
label: "注册地址",
value: "",
},
{
eng: "regCapi",
label: "注册资金(万元)",
value: "",
},
{
eng: "safetyDepart",
label: "是否有专门安全机构",
value: "",
},
{
eng: "safetyDepartDuty",
label: "安全管理机构职责",
value: "",
},
{
eng: "safetyDepartName",
label: "安全管理机构名称",
value: "",
},
{
eng: "safetyDepartNum",
label: "安全管理机构成员数量",
value: "",
},
{
eng: "safetyEmail",
label: "安全负责人电子邮箱",
value: "",
},
{
eng: "safetyManager",
label: "安全负责人",
value: "",
},
{
eng: "safetyMobtel",
label: "安全负责人移动电话",
value: "",
},
{
eng: "safetySupervisionLevel",
label: "安全监管等级",
value: "",
},
{
eng: "safetyTel",
label: "安全负责人固定电话",
value: "",
},
{
eng: "setupDate",
label: "成立日期",
value: "",
},
{
eng: "sourceData",
label: "数据来源",
value: "",
},
{
eng: "specialGovernance",
label: "专项治理类别",
value: "",
},
{
eng: "speclalOperationNum",
label: "特种作业人员数量",
value: "",
},
{
eng: "standLevel",
label: "标准化等级",
value: "",
},
{
eng: "stateOwed",
label: "是否为国有企业",
value: "",
},
{
eng: "supervisionLarge",
label: "行业监管大类",
value: "",
},
{
eng: "supervisionSmall",
label: "行业监管小类",
value: "",
},
{
eng: "uscCode",
label: "统一社会信用代码",
value: "",
},
],
dialogVisible:false,
}
},
methods:{
open(item) {
console.log(item)
this.dialogVisible = true;
},
Close() {
this.dialogVisible = false;
},
getList(){
businessList(this.searchBefore).then((res) => {
this.tableData = res.data.list;
this.total = res.data.total;
});
}
},
}
</script>
<style lang="scss" scoped>
.dialog-slot {
.closeClick {
position: absolute;
top: 0;
right: 0;
padding: 10px 20px;
width: 100%;
z-index: 1000;
display: flex;
justify-content: space-between;
align-items: center;
text-align: center;
background: #f8f9fa;
box-shadow: 0px 1px 0px 0px #dbe0e8;
background-color: #e0eaf8;
img {
width: 18px;
height: 18px;
cursor: pointer;
}
.newplan {
display: flex;
align-items: center;
.line {
margin-right: 10px;
width: 5px;
height: 16px;
background-color: #1e70de;
}
.span {
font-size: 16px;
font-family: "Alibaba PuHuiTi";
font-weight: bold;
color: #1e70de;
}
}
}
}
::v-deep .el-descriptions-row th {
width: 20% !important;
font-size: 14px;
font-family: "Alibaba PuHuiTi";
font-weight: 400;
}
::v-deep .el-descriptions-row td {
width: 30% !important;
font-size: 14px;
font-family: "Alibaba PuHuiTi";
font-weight: 400;
}
</style>

@ -1,150 +1,324 @@
<template> <template>
<el-dialog <div>
:visible.sync="dialogVisible" <el-dialog
:show-close="false" :visible.sync="dialogVisible"
:destroy-on-close="true" :show-close="false"
:close-on-click-modal="false" :destroy-on-close="true"
append-to-body :close-on-click-modal="false"
custom-class="dialog-boxed" append-to-body
width="70%" custom-class="dialog-boxed"
> width="70%"
<div class="dialog-slot"> >
<div class="closeClick"> <div class="dialog-slot">
<div class="newplan"> <div class="closeClick">
<div class="line"></div> <div class="newplan">
<div class="span">计划详情</div> <div class="line"></div>
</div> <div class="span">计划详情</div>
<img src="@/assets/images/close.png" alt="" @click="Close" />
</div>
<div class="planInfo">
<div class="plan-title">
<div class="item">
<div>计划标题</div>
<div class="content">{{ title }}</div>
</div>
<div class="item">
<div>计划月份</div>
<div class="content">{{ year }}</div>
</div> </div>
<img src="@/assets/images/close.png" alt="" @click="Close" />
</div> </div>
<div class="plan-content"> <div class="planInfo">
<div class="item-two"> <div class="plan-title">
<div>计划内容</div> <div class="item">
<div class="content">{{ content }}</div> <div class="year">
</div> <div class="year-span">年份:</div>
<div class="item-two"> <el-date-picker
<div>备注</div> v-model="form.plannedYear"
<div class="content">{{ remark }}</div> type="month"
format="yyyy-MM"
:clearable="false"
value-format="yyyy-MM"
placeholder="请选择年份">
</el-date-picker>
</div>
<div class="area">
<div class="area-span">区划:</div>
<el-cascader
v-model="form.district"
:disabled="disabled"
placeholder="请选择"
:options="options"
:props="props"
@change="handleChange"></el-cascader>
</div>
</div>
<div class="btns">
<!-- <div class="export" @click="exportFile">
<img src="@/assets/images/export.png" alt="">
<span>导出excel</span>
</div> -->
<div class="select-btn reset" @click="select"></div>
<div class="select-btn" @click="reset"></div>
</div>
</div> </div>
<!-- <div class="plan-content">
<div class="item-two">
<div>计划内容</div>
<div class="content">{{ content }}</div>
</div>
<div class="item-two">
<div>备注</div>
<div class="content">{{ remark ?remark:'暂无备注'}}</div>
</div>
</div> -->
</div> </div>
</div> <div class="tables" v-loading="loading">
<div class="tables" v-loading="loading"> <el-table
<el-table :data="tableData"
:data="tableData" style="width: 100%"
style="width: 100%" :border="false"
:border="false" ref="multipleTable"
ref="multipleTable" tooltip-effect="light"
tooltip-effect="light" :row-class-name="tableRowClassName"
:row-class-name="tableRowClassName"
>
<el-table-column
prop="entprName"
label="企业名称"
show-overflow-tooltip
header-align="center"
>
</el-table-column>
<!-- <el-table-column
prop="subdistrict"
label="行政区划"
show-overflow-tooltip
width="180"
header-align="center"
>
</el-table-column> -->
<!-- <el-table-column
prop="address"
label="企业类型"
show-overflow-tooltip
header-align="center"
> >
</el-table-column> --> <el-table-column
<el-table-column prop="plannedYear"
prop="uscCode" label="计划年月"
label="统一社会信用代码" show-overflow-tooltip
show-overflow-tooltip header-align="center"
header-align="center" >
> </el-table-column>
</el-table-column> <el-table-column
<el-table-column prop="isPoint" label="是否重点" header-align="center"> prop="district"
<template slot-scope="scope"> label="行政区划"
<div show-overflow-tooltip
style="font-family: 'Alibaba PuHuiTi'" header-align="center"
:class="scope.row.isPoint == '1' ? 'isStyle' : ''" >
> </el-table-column>
<span v-if="scope.row.isPoint == '1'"></span> <el-table-column
<span v-if="scope.row.isPoint == '0'"></span> prop="entprName"
</div> label="企业名称"
</template> show-overflow-tooltip
</el-table-column> header-align="center"
</el-table> >
</div> </el-table-column>
<div class="pagination"> <!-- <el-table-column
<my-pagination prop="address"
:total="tableData.length" label="企业类型"
@pagesChange="pagesChange" show-overflow-tooltip
></my-pagination> header-align="center"
>
</el-table-column> -->
<el-table-column
prop="createTime"
label="创建时间"
show-overflow-tooltip
header-align="center"
>
<template slot-scope="scope">
<span>{{ scope.row.createTime.split(' ')[0] }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width">
<template slot-scope="scope">
<div class="tabs-btns">
<div class="look" @click="look(scope.row)">
<img src="@/assets/images/look.png" alt="">
<span>查看</span>
</div>
<div class="change" @click="change(scope.row)">
<img src="@/assets/images/change.png" alt="">
<span>修改</span>
</div>
<div class="delete" @click="deleteItem(scope.row)">
<img src="@/assets/images/delete.png" alt="">
<span>删除</span>
</div>
</div>
</template>
</el-table-column> -->
</el-table>
</div>
<div class="pagination">
<my-pagination
:total="tableData.length"
@pagesChange="pagesChange"
></my-pagination>
</div>
</div> </div>
</div> </el-dialog>
</el-dialog> <dialog-info ref="dialoginfo"></dialog-info>
</div>
</template> </template>
<script> <script>
import myPagination from "@/views/components/myPagination/index.vue"; import myPagination from "@/views/components/myPagination/index.vue";
import dialogInfo from "@/views/components/dialogInfo/index.vue";
export default { export default {
components: { myPagination }, components: { myPagination ,dialogInfo},
data() { data() {
return { return {
dialogVisible: false, dialogVisible: false,
options:[],
props:{
value:'county',
label:'institutionName',
checkStrictly: true
},
disabled:false,
tableData: [], tableData: [],
total:0, total: 0,
pages:{ pages: {
pageNum:1, pageNum: 1,
pageSize:10, pageSize: 10,
},
loading: false,
form:{
district:[],
plannedYear:''
}, },
loading:false, dept:null,
year:'',
title:'',
content:'',
remark:''
}; };
}, },
methods: { methods: {
async open(item) { async open(item,dept) {
// console.log(dept)
this.dept = dept
this.dialogVisible = true; this.dialogVisible = true;
this.getList(item); // let data = await this.$api.yingji.tree();
// this.commentData(data.data,dept)
this.getList(this.pages);
}, },
Close() { Close() {
this.dialogVisible = false; this.dialogVisible = false;
this.pages.pageNum = 1; this.pages.pageNum = 1;
this.pages.pageSize = 10; this.pages.pageSize = 10;
}, },
async getList(item){ //
this.loading = true exportFile(){
let data = await this.$api.yingji.bPlanManageTwo(item.id); this.$confirm(`确认根据您的搜索条件导出搜索之后的数据吗?`, "警告", {
if(data.code == 200) { confirmButtonText: "确定",
this.loading = false cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.download(
"/pharmaceuticals/bPlanManage/export",
{
...this.form,
},
`计划管理.xlsx`
);
})
.catch(() => {});
},
//
handleChange(value){
console.log(value)
if(value.length == 2) {
this.form.district = value[1]
} else {
this.form.district = value[0]
}
},
//
async getList(obj) {
this.loading = true;
let data = await this.$api.yingji.planmx(obj);
if (data.code == 200) {
this.loading = false;
} }
this.year = data.data.plannedYear;
this.title = data.data.planName;
this.content = data.data.planContent;
this.remark = data.data.remark;
this.tableData = data.data.list; this.tableData = data.data.list;
}, },
// //
pagesChange(pages) { pagesChange(pages) {
this.getList(pages); let obj = {...pages,...this.form}
this.getList(obj);
this.pages = pages; this.pages = pages;
}, },
//
select(){
// const { district,plannedYear } = this.form
this.pages.pageNum = 1;
this.pages.pageSize = 10;
let obj = {...pages,...this.form}
this.getList(obj);
},
//
reset(){
Object.keys(this.form).forEach((key) => (this.form[key] = ""));
this.pages.pageNum = 1;
this.pages.pageSize = 10;
this.getList(this.pages)
},
//
look(row){
this.$refs.dialoginfo.open(row);
},
//
change(row){
// this.$refs.myDialog.open(row,this.dept)
},
//
deleteItem(row){
let idList = [];
idList.push(row.id)
this.$modal.confirm("你确认要删除该条数据吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async() => {
this.loading = true;
try {
let downloadLoadingInstance = Loading.service({
text: "正在删除计划,请稍候",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
// let data = await this.$api.yingji.bPlanManage('delete',_,{idList:idList.join(',')})
// if(data.code == 200) {
// this.loading = false;
// downloadLoadingInstance.close();
// this.$message({
// message: '',
// type: 'success'
// });
// let { district} = this.form;
// let obj = {...this.pages,district}
// this.getList(obj);
// }
} catch (error) {
downloadLoadingInstance.close();
console.log(error)
}
})
.catch(() => {
console.log('取消删除')
});
},
//
commentData(item,dept){
item.map((item)=>{
if(item.children instanceof Array && item.children.length == 0){
item.county = item.subdistrict
delete item.children;
} else {
// this.props.value = 'subdistrict'
this.commentData(item.children,this.dept)
}
})
this.options = item
if(dept.parentId == 100) {
this.options = this.options.filter((item)=>{
return item.institutionName == dept.deptName
})
this.options.map((item)=>{
if(item.institutionName == dept.deptName) {
this.form.district = item.county
delete item.children
}
})
this.disabled = true;
} else if(dept.parentId == 101) {
this.options.map((item)=>{
if(item.institutionName == dept.deptName) {
this.form.district = item.subdistrict
}
})
this.disabled = true;
}
// console.log(this.options)
},
tableRowClassName({ row, rowIndex }) { tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 !== 0) { if (rowIndex % 2 !== 0) {
return "success-row"; return "success-row";
@ -203,27 +377,136 @@ export default {
justify-content: space-between; justify-content: space-between;
.item { .item {
display: flex; display: flex;
flex: 1;
align-items: center; align-items: center;
div { .year {
font-size: 15px; display: flex;
font-family: 'Alibaba PuHuiTi'; align-items: center;
font-weight: 400; margin-right: 81px;
color: #525966; .year-span {
font-size: 14px;
&:nth-child(1) {
width: 80px;
text-align: right;
font-size: 16px;
font-family: 'Alibaba PuHuiTi'; font-family: 'Alibaba PuHuiTi';
font-weight: 400; font-weight: 400;
color: #525966; color: #525966;
line-height: 40px;
margin-right: 10px;
} }
} }
.content { .area {
flex: 1; display: flex;
align-items: center;
.area-span {
font-size: 14px;
font-family: 'Alibaba PuHuiTi';
font-weight: 400;
color: #525966;
line-height: 40px;
margin-right: 10px;
}
::v-deep .el-cascader {
background-color: transparent;
width: 276px;
.el-input__inner {
height: 33px;
}
.el-input .el-input__suffix .el-input__suffix-inner .el-icon-arrow-down::before {
content: "";
background: url(../../../assets/images/down2.png) center center no-repeat;
background-size: cover;
position: absolute;
width: 10px;
height: 7px;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
}
}
::v-deep .el-select {
background-color: transparent;
width: 276px;
.el-input__inner {
height: 33px;
}
.el-input .el-input__suffix .el-input__suffix-inner .el-icon-arrow-up {
display: flex;
align-items: center;
justify-content: center;
}
.el-input .el-input__suffix .el-input__suffix-inner .el-icon-arrow-up::before {
content: "";
background: url(../../../assets/images/down2.png) center center no-repeat;
background-size: cover;
position: absolute;
width: 10px;
height: 7px;
transform: rotate(180deg);
}
}
}
.btns {
display: flex;
align-items: center;
.export,.newProject {
display: flex;
align-items: center;
justify-content: center;
padding: 6px 19px;
cursor: pointer;
img {
width: 22px;
margin-right: 10px;
}
span {
color: #ffffff;
font-size: 14px;
font-family: 'Alibaba PuHuiTi';
font-weight: 400;
}
}
.select-btn {
width: 120px;
height: 34px;
border-radius: 2px;
display: flex;
align-items: center;
justify-content: center;
font-size: 15px;
font-family: 'Alibaba PuHuiTi';
font-weight: 500;
color: #ffffff;
cursor: pointer;
background: #FDAB5B;
margin-left: 20px;
}
.reset {
background-color: #2378EC;
}
.export {
background-color: #2378EC;
margin-right: 30px;
}
.newProject {
background-color: #28B384;
} }
} }
// .export {
// display: flex;
// align-items: center;
// justify-content: center;
// background-color: #2378EC;
// padding: 6px 19px;
// cursor: pointer;
// img {
// width: 22px;
// margin-right: 10px;
// }
// span {
// color: #ffffff;
// font-size: 14px;
// font-family: 'Alibaba PuHuiTi';
// font-weight: 400;
// }
// }
} }
.plan-content { .plan-content {
display: flex; display: flex;
@ -234,7 +517,7 @@ export default {
display: flex; display: flex;
div { div {
font-size: 15px; font-size: 15px;
font-family: 'Alibaba PuHuiTi'; font-family: "Alibaba PuHuiTi";
font-weight: 400; font-weight: 400;
color: #525966; color: #525966;
@ -242,7 +525,7 @@ export default {
text-align: right; text-align: right;
width: 80px; width: 80px;
font-size: 16px; font-size: 16px;
font-family: 'Alibaba PuHuiTi'; font-family: "Alibaba PuHuiTi";
font-weight: 400; font-weight: 400;
color: #525966; color: #525966;
} }
@ -283,6 +566,33 @@ export default {
height: 448px !important; height: 448px !important;
overflow-y: auto; overflow-y: auto;
} }
.tabs-btns {
display: flex;
align-items: center;
justify-content: center;
.look,.change,.delete {
display: flex;
align-items: center;
margin-right: 30px;
cursor: pointer;
img {
width: 20px;
margin-right: 5px;
}
span {
font-size: 15px;
font-family: Alibaba PuHuiTi;
font-weight: 400;
color: #045FFD;
}
}
.delete {
margin-right: 0;
span {
color: #F71052;
}
}
}
} }
::v-deep .el-table::before { ::v-deep .el-table::before {
height: 0; height: 0;

@ -0,0 +1,604 @@
<template>
<el-dialog
:visible.sync="addShow"
:show-close="false"
:destroy-on-close="true"
:close-on-click-modal="false"
append-to-body
custom-class="dialog-boxed"
width="60%"
>
<div class="dialog-slot">
<div class="closeClick">
<div class="newplan">
<div class="line"></div>
<div class="span">企业详情</div>
</div>
<img src="@/assets/images/close.png" alt="" @click="Close" />
</div>
<div class="content">
<div class="filtrate">
<el-descriptions :column="2" border>
<el-descriptions-item
:label="item.label"
v-for="(item, index) in listDes"
:key="index"
>
{{ item.value}}
</el-descriptions-item>
</el-descriptions>
</div>
</div>
</div>
</el-dialog>
</template>
<script>
export default {
dicts: [
"economic_categories",
"economic_subcategory",
"special_governance",
"enterprise_status",
"standardization_level",
"safety_level",
"category",
"major_hazard_level",
"entpr_color",
"is_point",
],
data() {
return {
addShow: false,
listDes: [
{
eng: "bizAddr",
label: "生产经营地址",
value: "",
},
{
eng: "bossEmail",
label: "主要负责人电子邮箱",
value: "",
},
{
eng: "bossMobtel",
label: "主要负责人移动电话",
value: "",
},
{
eng: "bossTel",
label: "主要负责人固定电话",
value: "",
},
{
eng: "businessScope",
label: "经营范围",
value: "",
},
{
eng: "contactEmail",
label: "电子邮箱",
value: "",
},
{
eng: "contactQq",
label: "联系QQ号码",
value: "",
},
{
eng: "contactTel",
label: "企业固定电话",
value: "",
},
{
eng: "cseNum",
label: "注册安全工程师人员数量",
value: "",
},
// {
// eng: "doublePreven",
// label: "",
// value: "",
// },
{
eng: "ecoTypeLarge",
label: "经济类型大类",
value: "",
},
{
eng: "ecoTypeSmall",
label: "经济类型小类",
value: "",
},
{
eng: "employeeNum",
label: "从业人员数量",
value: "",
},
{
eng: "entprcolor",
label: "企业分色",
value: "",
},
// {
// eng: "entprId",
// label: "ID",
// value: "",
// },
{
eng: "entprName",
label: "企业名称",
value: "",
},
// {
// eng: "entprPlaneGragh",
// label: "",
// value: "",
// },
{
eng: "floorArea",
label: "占地面积(㎡)",
value: "",
},
{
eng: "fullEmegNum",
label: "专职应急管理人员数量",
value: "",
},
{
eng: "fullSafety",
label: "是否有专职安全人员",
value: "",
},
{
eng: "fullSafetyNum",
label: "专职安全生产管理人员数量",
value: "",
},
{
eng: "gridCode",
label: "网格编码",
value: "",
},
{
eng: "gridEntprStatus",
label: "网格对企业的关停和恢复",
value: "",
},
{
eng: "groupCompName",
label: "集团公司名称",
value: "",
},
{
eng: "indusTypeClass",
label: "行业类别门类",
value: "",
},
// {
// eng: "indusTypeLagre",
// label: "",
// value: "",
// },
// {
// eng: "indusTypeMiddle",
// label: "",
// value: "",
// },
// {
// eng: "indusTypeSmall",
// label: "",
// value: "",
// },
// {
// eng: "industryRefer",
// label: "()",
// value: "",
// },
{
eng: "infoYear",
label: "数据年份",
value: "",
},
{
eng: "isPoint",
label: "是否重点",
value: "",
},
{
eng: "latitudeGps",
label: "纬度(度) 84",
value: "",
},
{
eng: "legalPerson",
label: "法定代表人",
value: "",
},
{
eng: "localSafetyAdmin",
label: "属地安监机构",
value: "",
},
{
eng: "longitudeGps",
label: "经度(度) 84",
value: "",
},
{
eng: "mainProduct",
label: "主要产品",
value: "",
},
{
eng: "majorHazardInstallations",
label: "是否存在重大危险源",
value: "",
},
{
eng: "majorHazardLevel",
label: "重大危险源等级",
value: "",
},
{
eng: "operatingStatus",
label: "经营状态",
value: "",
},
{
eng: "parentCompName",
label: "母公司名称",
value: "",
},
{
eng: "partSafetyNum",
label: "兼职安全生产管理人员数量",
value: "",
},
{
eng: "regAddr",
label: "注册地址",
value: "",
},
{
eng: "regCapi",
label: "注册资金(万元)",
value: "",
},
{
eng: "safetyDepart",
label: "是否有专门安全机构",
value: "",
},
{
eng: "safetyDepartDuty",
label: "安全管理机构职责",
value: "",
},
{
eng: "safetyDepartName",
label: "安全管理机构名称",
value: "",
},
{
eng: "safetyDepartNum",
label: "安全管理机构成员数量",
value: "",
},
{
eng: "safetyEmail",
label: "安全负责人电子邮箱",
value: "",
},
{
eng: "safetyManager",
label: "安全负责人",
value: "",
},
{
eng: "safetyMobtel",
label: "安全负责人移动电话",
value: "",
},
{
eng: "safetySupervisionLevel",
label: "安全监管等级",
value: "",
},
{
eng: "safetyTel",
label: "安全负责人固定电话",
value: "",
},
{
eng: "setupDate",
label: "成立日期",
value: "",
},
{
eng: "sourceData",
label: "数据来源",
value: "",
},
{
eng: "specialGovernance",
label: "专项治理类别",
value: "",
},
{
eng: "speclalOperationNum",
label: "特种作业人员数量",
value: "",
},
{
eng: "standLevel",
label: "标准化等级",
value: "",
},
{
eng: "stateOwed",
label: "是否为国有企业",
value: "",
},
// {
// eng: "supervisionLarge",
// label: "",
// value: "",
// },
// {
// eng: "supervisionSmall",
// label: "",
// value: "",
// },
{
eng: "uscCode",
label: "统一社会信用代码",
value: "",
},
],
details:null
}
},
methods:{
async open(option) {
this.addShow = true;
this.look(option)
// const { bizAddr,
// bossEmail,
// bossMobtel,
// bossTel,
// businessScope,
// contactEmail,
// contactQq,
// contactTel,
// cseNum,
// doublePreven,
// employeeNum,
// enterColorChart,
// entprName,
// entprPlaneGragh,
// floorArea,
// fullEmegNum,
// fullSafety,
// fullSafetyNum,
// gridCode,
// gridEntprStatus,
// groupCompName,
// indusTypeClass,
// industryRefer,
// infoYear,
// isPoint,
// latitudeGps,
// legalPerson,
// localSafetyAdmin,
// longitudeGps,
// mainProduct,
// majorHazardInstallations,
// majorHazardLevel,
// operatingStatus,
// parentCompName,
// partSafetyNum,
// regAddr,
// regCapi,
// safetyDepart,
// safetyDepartDuty,
// safetyDepartName,
// safetyDepartNum,
// safetyEmail,
// safetyManager,
// safetyMobtel,
// safetySupervisionLevel,
// safetyTel,
// setupDate,
// sourceData,
// specialGovernance,
// speclalOperationNum,
// standLevel,
// stateOwed,
// supervisionLarge,
// supervisionSmall,
// uscCode } = option
// this.changeDescriptions(this.listDes,option)
},
Close(item) {
this.addShow = false;
this.details = null
},
changeDescriptions(arr,arr2){
for (let key in arr2) {
if (arr2.hasOwnProperty(key)) {
arr.map((item)=>{
if(key == item.eng){
item.value = arr2[key] || '空'
if(item.eng == 'isPoint'){
item.value = arr2[key] == '1' ? '是':arr2[key] == '2' ? '否':''
}
}
})
}
}
},
filterTable(a, b) {
if (!b) return;
return this.selectDictLabel(a, b);
},
look(e) {
this.details = e;
// console.log(e)
for (let key in this.details) {
this.listDes.forEach((value1, index1) => {
if (key == value1.eng) {
this.listDes[index1].value = this.details[key] == '无' ? '/' : this.details[key] == 'true' ? '是' : this.details[key];
return;
}
});
}
this.listDes.forEach((value1, index1) => {
//
if (value1.eng == "majorHazardLevel") {
this.listDes[index1].value = this.filterTable(
this.dict.type.major_hazard_level,
value1.value
);
}
//
if (value1.eng == "ecoTypeLarge") {
this.listDes[index1].value = this.filterTable(
this.dict.type.economic_categories,
value1.value
);
}
//
if (value1.eng == "ecoTypeSmall") {
this.listDes[index1].value = this.filterTable(
this.dict.type.economic_subcategory,
value1.value
);
}
//
if (value1.eng == "specialGovernance") {
this.listDes[index1].value = this.filterTable(
this.dict.type.special_governance,
value1.value
);
}
//
//
if (value1.eng == "operatingStatus") {
this.listDes[index1].value = this.filterTable(
this.dict.type.enterprise_status,
value1.value
);
}
//
if (value1.eng == "standLevel") {
this.listDes[index1].value = this.filterTable(
this.dict.type.standardization_level,
value1.value
);
}
//
if (value1.eng == "safetySupervisionLevel") {
this.listDes[index1].value = this.filterTable(
this.dict.type.safety_level,
value1.value
);
}
//
//
//
//
if (value1.eng == "entprColor") {
this.listDes[index1].value = this.filterTable(
this.dict.type.entpr_color,
value1.value
);
}
//
if (value1.eng == "indusTypeClass") {
this.listDes[index1].value = this.filterTable(
this.dict.type.category,
value1.value
);
}
//
if (value1.eng == "isPoint") {
this.listDes[index1].value = this.filterTable(
this.dict.type.is_point,
value1.value
);
}
if (value1.value == null ) {
this.listDes[index1].value = '/'
}
if ( value1.value == 'false') {
this.listDes[index1].value = '否'
}
});
},
},
}
</script>
<style lang="scss" scoped>
::v-deep .el-descriptions-row th {
width: 20% !important;
font-size: 14px;
font-family: "Alibaba PuHuiTi";
font-weight: 400;
}
::v-deep .el-descriptions-row td {
width: 30% !important;
font-size: 14px;
font-family: "Alibaba PuHuiTi";
font-weight: 400;
}
.dialog-slot {
.closeClick {
position: absolute;
top: 0;
right: 0;
padding: 10px 20px;
width: 100%;
z-index: 1000;
display: flex;
justify-content: space-between;
align-items: center;
text-align: center;
background: #f8f9fa;
box-shadow: 0px 1px 0px 0px #dbe0e8;
background-color: #e0eaf8;
img {
width: 18px;
height: 18px;
cursor: pointer;
}
.newplan {
display: flex;
align-items: center;
.line {
margin-right: 10px;
width: 5px;
height: 16px;
background-color: #1e70de;
}
.span {
font-size: 16px;
font-family: "Alibaba PuHuiTi";
font-weight: bold;
color: #1e70de;
}
}
}
.content {
// padding: 15px 10px;
.filtrate {
padding-bottom: 10px;
}
}
}
::v-deep .el-dialog__body {
padding: 30px 15px;
}
</style>

@ -4,7 +4,7 @@
* @Author: JC9527 * @Author: JC9527
* @Date: 2023-09-04 13:11:33 * @Date: 2023-09-04 13:11:33
* @LastEditors: JC9527 * @LastEditors: JC9527
* @LastEditTime: 2023-09-20 09:31:57 * @LastEditTime: 2023-09-27 16:36:54
--> -->
<template> <template>
<div class="pagination"> <div class="pagination">
@ -59,6 +59,11 @@ export default {
this.pageNum = 1; this.pageNum = 1;
this.$emit('pagesChange',{pageSize:e,pageNum:this.pageNum}) this.$emit('pagesChange',{pageSize:e,pageNum:this.pageNum})
}, },
//
defaultPages(){
this.pageSize = 10;
this.pageNum = 1;
},
// //
numberMap() { numberMap() {
// if (this.total == this.tableData.length) { // if (this.total == this.tableData.length) {

@ -0,0 +1,365 @@
<!--
* @Descripttion:
* @version:
* @Author: JC9527
* @Date: 2023-09-28 11:25:48
* @LastEditors: JC9527
* @LastEditTime: 2023-10-02 17:03:37
-->
<template>
<el-dialog
:visible.sync="dialogVisible"
:show-close="false"
:destroy-on-close="true"
:close-on-click-modal="false"
append-to-body
custom-class="dialog-boxed"
width="50%"
>
<div class="dialog-slot">
<div class="closeClick">
<div class="newplan">
<div class="line"></div>
<div class="span">{{ title }}</div>
</div>
<img src="@/assets/images/close.png" alt="" @click="Close" />
</div>
<div v-loading="loading">
<el-form ref="form" label-width="80px" v-if="idTwo == 1">
<el-form-item label="企业名称:" class="form-input">
<el-input v-model="form.entprName" :disabled="true"></el-input>
</el-form-item>
<el-form-item label="行政区划:" class="form-input">
<el-input v-model="form.district" :disabled="true"></el-input>
</el-form-item>
<el-form-item label="发布时间:" class="form-input">
<el-input v-model="form.createTime" :disabled="true"></el-input>
</el-form-item>
<el-form-item label="计划年月:" class="form-input">
<!-- <el-input v-model="form.plannedYear" :readonly="true"></el-input> -->
<el-date-picker
v-model="form.plannedYear"
type="month"
format="yyyy-MM"
:clearable="false"
:disabled="readonly"
value-format="yyyy-MM"
placeholder="请选择年月">
</el-date-picker>
</el-form-item>
<el-form-item label="计划标题:">
<el-input v-model="form.planName" :readonly="readonly"></el-input>
</el-form-item>
<el-form-item label="计划内容:" class="form-textarea">
<el-input
v-model="form.planContent"
type="textarea"
resize="none"
:readonly="readonly"
placeholder="请输入计划内容"
></el-input>
</el-form-item>
<el-form-item label="备注:" class="form-textarea">
<el-input
v-model="form.remark"
type="textarea"
resize="none"
:readonly="readonly"
placeholder="请输入备注"
></el-input>
</el-form-item>
<el-form-item class="btns">
<el-button type="primary" @click="onSubmit" v-if="!readonly"></el-button>
<el-button @click="Close"></el-button>
</el-form-item>
</el-form>
<el-descriptions :column="2" border v-else>
<el-descriptions-item
:label="item.label"
v-for="(item, index) in listDes"
:key="index"
:span="item.span ? item.span : 1"
>
{{ item.value}}
</el-descriptions-item>
</el-descriptions>
</div>
</div>
</el-dialog>
</template>
<script>
import { mapState } from "vuex";
import { Loading } from "element-ui";
export default {
data() {
return {
dialogVisible:false,
mydistrict:'',
form:{
entprName:'',
district:'',
createTime:'',
plannedYear:'',
planName:'',
planContent:'',
remark:''
},
id:'',
idTwo:'',
readonly:false,
loading:true,
title:'查看详情',
listDes:[
{
tag:'entprName',
label:'企业名称',
value:'',
},{
tag:'district',
label:'行政区划',
value:'',
},{
tag:'createTime',
label:'发布时间',
value:'',
},{
tag:'plannedYear',
label:'计划年月',
value:'',
},{
tag:'planName',
label:'计划标题',
value:'',
span:2,
},{
tag:'planContent',
label:'计划内容',
value:'',
span:2,
},{
tag:'remark',
label:'备注',
value:'',
span:2,
},
]
}
},
computed: {
...mapState({
district: (state) => state.user.district,
}),
},
methods:{
open(item,id) {
this.idTwo = id
this.id = item.id
this.getMyData(item.id,id)
if(id == 2) {
this.readonly = true;
this.title = '查看详情'
} else {
this.readonly = false;
this.title = '修改详情'
}
this.dialogVisible = true;
},
async getMyData(id,idTwo){
this.loading = true;
let data = await this.$api.yingji.bPlanManageTwo(id)
if(data.code == 200){
let { entprName,district,createTime,plannedYear,planName,planContent,remark } = data.data
// let listData = data.data
this.mydistrict = district
let myDistrict = this.componendDistrict(district)
let mycreateTime = createTime.split(' ')[0]
if(idTwo == 2) {
let obj = { entprName,myDistrict,mycreateTime,plannedYear,planName,planContent,remark }
this.changeDescriptions(this.listDes,...Object.values(obj))
// for(let key in listData){
// this.listDes.forEach((value1, index1) => {
// if (key == value1.tag) {
// this.listDes[index1].value = listData[key];
// return;
// }
// });
// }
// this.listDes.forEach((value1, index1) => {
// //
// if (value1.tag == "district") {
// this.listDes[index1].value = myDistrict;
// }
// //
// if (value1.tag == "createTime") {
// this.listDes[index1].value = mycreateTime;
// }
// })
} else {
this.form = { entprName,district:myDistrict,createTime:mycreateTime,plannedYear,planName,planContent,remark }
}
this.loading = false;
}
},
changeDescriptions(arr,...items){
items.map((item,index)=>{
arr[index].value = item || '/'
})
},
Close(item) {
this.dialogVisible = false;
Object.keys(this.form).forEach((key) => (this.form[key] = ""));
if (item == "newsuccess") {
this.$emit("close");
}
},
//
getData() {
var myDate = new Date();
var year = myDate.getFullYear(); //var mon = myDate.getMonth() + 1; //
var mon = myDate.getMonth() + 1 < 10 ? "0" + (myDate.getMonth() + 1) : myDate.getMonth() + 1 == 0 ? "00" : myDate.getMonth() + 1;
var date = myDate.getDate() < 10 ? "0" + myDate.getDate() : myDate.getDate(); //
var hours = myDate.getHours() < 10 ? "0" + myDate.getHours() : myDate.getHours(); //
var minutes = myDate.getMinutes() < 10 ? "0" + myDate.getMinutes() : myDate.getMinutes(); //
var seconds = myDate.getSeconds() < 10 ? "0" + myDate.getSeconds() : myDate.getSeconds(); //var now = year + "_" + mon + "_" + date + " "+ hours + ":" + minutes + ":" + seconds;
var now = year + "-" + mon + "-" + date + " " + hours + ":" + minutes + ":" + seconds;
return now;
},
onSubmit(){
if(this.form.planContent && this.form.planName){
this.$modal.confirm("你确认修改吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async() => {
try {
let downloadLoadingInstance = Loading.service({
text: "正在修改计划,请稍候",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
// console.log(this.form)
const { planName,remark,planContent } = this.form;
let obj = {updateTime:this.getData(),planContent:planContent,planName:planName,remark:remark,id:this.id}
// console.log(obj)
let data = await this.$api.yingji.bPlanEnterprise('put',obj)
console.log(data)
if(data.code == 200){
downloadLoadingInstance.close();
this.$message({
showClose: true,
message: '修改成功',
type: 'success'
});
this.Close("newsuccess")
}
} catch (error) {
}
})
}
},
//
componendDistrict(district){
let name
this.district.map((item)=>{
if(item.subdistrict == district) {
name = item.institutionName
} else {
item.children.map((itemTwo)=>{
if(itemTwo.subdistrict == district) {
name = item.institutionName + '-' + itemTwo.institutionName
}
})
}
})
return name
},
},
}
</script>
<style lang="scss" scoped>
::v-deep .el-descriptions-row th {
width: 20% !important;
font-size: 14px;
font-family: "Alibaba PuHuiTi";
font-weight: 400;
}
::v-deep .el-descriptions-row td {
width: 30% !important;
font-size: 14px;
font-family: "Alibaba PuHuiTi";
font-weight: 400;
}
.dialog-slot {
.closeClick {
position: absolute;
top: 0;
right: 0;
padding: 10px 20px;
width: 100%;
z-index: 1000;
display: flex;
justify-content: space-between;
align-items: center;
text-align: center;
background: #f8f9fa;
box-shadow: 0px 1px 0px 0px #dbe0e8;
background-color: #e0eaf8;
img {
width: 18px;
height: 18px;
cursor: pointer;
}
.newplan {
display: flex;
align-items: center;
.line {
margin-right: 10px;
width: 5px;
height: 16px;
background-color: #1e70de;
}
.span {
font-size: 16px;
font-family: "Alibaba PuHuiTi";
font-weight: bold;
color: #1e70de;
}
}
}
.form-input {
display: inline-block;
width: 50%;
}
::v-deep .el-input {
.el-input__inner {
font-size: 15px;
font-family: 'Alibaba PuHuiTi';
font-weight: 400;
color: #525966;
}
}
.form-textarea {
::v-deep .el-textarea {
height: 180px;
.el-textarea__inner {
height: 100%;
font-size: 15px;
font-family: 'Alibaba PuHuiTi';
font-weight: 400;
color: #525966;
}
}
}
.btns {
text-align: right;
::v-deep .el-button {
border-radius: 4px;
}
}
}
::v-deep .el-dialog__body {
padding: 30px 15px;
}
</style>

@ -351,14 +351,14 @@
</template> </template>
<script> <script>
import { // import {
listProfile, // listProfile,
getProfile, // getProfile,
delProfile, // delProfile,
addProfile, // addProfile,
updateProfile, // updateProfile,
exportProfile, // exportProfile,
} from "@/api/mudu/profile"; // } from "@/api/mudu/profile";
export default { export default {
data() { data() {
return { return {

@ -5,6 +5,7 @@
<div class="lg-text">苏州应急执法计划管理系统</div> <div class="lg-text">苏州应急执法计划管理系统</div>
</div> </div>
<div class="lg-centerbox"> <div class="lg-centerbox">
<div class="lg-backImg"></div>
<el-form <el-form
ref="loginForm" ref="loginForm"
:model="loginForm" :model="loginForm"
@ -76,7 +77,6 @@
</div> </div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="lg-backImg"></div>
</div> </div>
<!-- 底部 --> <!-- 底部 -->
@ -97,8 +97,8 @@ export default {
return { return {
codeUrl: "", codeUrl: "",
loginForm: { loginForm: {
username: "admin", username: "",
password: "admin123", password: "",
rememberMe: false, rememberMe: false,
code: "", code: "",
uuid: "", uuid: "",
@ -177,7 +177,7 @@ export default {
this.$store this.$store
.dispatch("Login", this.loginForm) .dispatch("Login", this.loginForm)
.then(() => { .then(() => {
this.$router.push({ path: this.redirect || "/" }).catch(() => {}); this.$router.push({ path: "/" });
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false;
@ -185,6 +185,7 @@ export default {
this.getCode(); this.getCode();
} }
}); });
} }
}); });
}, },
@ -239,7 +240,9 @@ export default {
height: calc(100% - 200px); height: calc(100% - 200px);
width: 100%; width: 100%;
display: flex; display: flex;
flex-direction: row-reverse; // align-items: center;
justify-content: center;
// flex-direction: row-reverse;
} }
} }
.iconO { .iconO {
@ -281,7 +284,7 @@ export default {
height: 360px; height: 360px;
box-sizing: border-box; box-sizing: border-box;
padding: 35px 35px 5px 35px; padding: 35px 35px 5px 35px;
margin-right: 260px; // margin-right: 260px;
margin-top: 20px; margin-top: 20px;
background: rgba(229, 236, 246, 0.95); background: rgba(229, 236, 246, 0.95);
box-shadow: 0px 1px 32px 0px #0c4990; box-shadow: 0px 1px 32px 0px #0c4990;

@ -1,16 +1,51 @@
<template > <template >
<div id="main1"></div> <div style="height: 100%; width: 100%" v-loading="loadS">
<div id="main1"></div>
</div>
</template> </template>
<script> <script>
import * as echarts from "echarts"; import * as echarts from "echarts";
// import { workStatistics } from "@/api/yingji/keyEnterprise.js";
export default { export default {
data() { data() {
return {}; return {
arr1: [],
arr2: [],
};
},
props: {
loadS: {
type: Boolean,
default: true,
},
newTable: {
type: Array,
default: [],
},
}, },
mounted() { mounted() {
this.initChart(); this.$nextTick(() => {
this.getData();
});
},
watch: {
newTable(newVal, oldVal) {
this.getData()
},
}, },
methods: { methods: {
getData() {
this.arr1 = [];
this.arr2 = [];
this.newTable.forEach((value) => {
this.arr1.push(value.institutionName);
this.arr2.push(value.checkEnterpriseCount);
});
this.arr1.reverse();
this.arr2.reverse();
this.initChart();
},
initChart() { initChart() {
var chartDom = document.getElementById("main1"); var chartDom = document.getElementById("main1");
var myChart = echarts.init(chartDom); var myChart = echarts.init(chartDom);
@ -64,19 +99,20 @@ export default {
yAxis: [ yAxis: [
{ {
type: "category", type: "category",
data: [ // data: [
"高新区", // "",
"工业园区", // "",
"相城区", // "",
"姑苏区", // "",
"吴中区", // "",
"吴江区", // "",
"昆山市", // "",
"太仓市", // "",
"常熟市", // "",
"张家港市", // "",
"苏州", // "",
], // ],
data: this.arr1,
axisLabel: { axisLabel: {
// //
formatter: function (value) { formatter: function (value) {
@ -88,10 +124,10 @@ export default {
return value; return value;
} }
}, },
fontSize: '13px', fontSize: "13px",
fontFamily: 'Alibaba PuHuiTi', fontFamily: "Alibaba PuHuiTi",
fontWeight: 500, fontWeight: 500,
color: '#525966', color: "#525966",
}, },
axisTick: { axisTick: {
show: false, show: false,
@ -102,7 +138,8 @@ export default {
}, },
{ {
type: "category", type: "category",
data: [33, 63, 115, 167, 210, 225, 245, 283, 300, 321, 1000], // data: [33, 63, 115, 167, 210, 225, 245, 283, 300, 321, 1000],
data: this.arr2,
axisLabel: { axisLabel: {
formatter: function (value, index) { formatter: function (value, index) {
return `{a|${value}}{b|家}`; return `{a|${value}}{b|家}`;
@ -111,7 +148,8 @@ export default {
a: { a: {
color: "#0084FF", color: "#0084FF",
align: "right", align: "right",
width: 32, // width: 32,
// width: 20,
}, },
b: { b: {
color: "#525966", color: "#525966",
@ -135,8 +173,8 @@ export default {
label: { label: {
show: false, // show: false, //
}, },
// data: [63, 115, 167, 210, 225, 245, 283, 300, 321, 678, 1000],
data: [63, 115, 167, 210, 225, 245, 283, 300, 321,678, 1000], data: this.arr2,
barWidth: 12, barWidth: 12,
itemStyle: { itemStyle: {
color: { color: {
@ -160,14 +198,17 @@ export default {
emphasis: { emphasis: {
disabled: true, disabled: true,
}, },
z:102, z: 102,
}, },
{ {
// name: '', // name: '',
type: "bar", type: "bar",
barWidth: 12, barWidth: 12,
barGap: "-100%", barGap: "-100%",
data: [1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,1000], // data: [
// 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
// ],
data: [],
itemStyle: { itemStyle: {
normal: { normal: {
color: "#EDF0F2", color: "#EDF0F2",

@ -0,0 +1,182 @@
<template>
<div style="height: 100%; width: 100%" v-loading="loadS">
<div id="mains1"></div>
</div>
</template>
<script>
import * as echarts from "echarts";
export default {
data() {
return {
arr1: [],
arr2: [],
};
},
props: {
loadS: {
type: Boolean,
default: true,
},
newTable:{
type: Array,
default: [],
}
},
mounted() {
this.$nextTick(()=>{
this.getData()
})
},
watch: {
newTable(newVal, oldVal) {
this.getData()
},
},
methods: {
getData() {
this.arr1 = [];
this.arr2 = [];
this.newTable.forEach((value) => {
if (value.institutionName == "苏州市") {
this.arr1.unshift(value.institutionName);
this.arr2.unshift(value.plannedEnterpriseCount);
} else {
this.arr1.push(value.institutionName);
this.arr2.push(value.plannedEnterpriseCount);
}
});
this.init();
},
init() {
var chartDom = document.getElementById("mains1");
var myChart = echarts.init(chartDom);
var option = {
title: {
show: true,
text: "各区域执法计划",
textStyle: {
color: "#3D434D",
fontSize: 16,
},
left: 34,
top: 15,
},
tooltip: {
// show:false,
trigger: "axis",
axisPointer: {
type: "shadow",
shadowStyle: {
color: "rgba(237,240,242,0.5)",
// opacity: 0.1,
// shadowColor: "rgba(237,240,242,0.5)",
// shadowBlur: 10,
},
},
showContent: false,
},
grid: {
left: "3%",
right: "3%",
bottom: "3%",
containLabel: true,
},
xAxis: [
{
type: "category",
data: this.arr1,
// data: [
// "",
// "",
// "",
// "",
// "",
// "",
// "",
// "",
// "",
// "",
// "",
// ],
axisTick: {
show: false,
},
axisLabel: {
show: true,
fontSize: "13px",
fontFamily: "Alibaba PuHuiTi",
fontWeight: 500,
color: "#525966",
},
axisLine: {
lineStyle: {
color: "#B6C3D9",
},
},
z: 1000,
},
],
yAxis: [
{
splitLine: {
//线
lineStyle: {
type: "dashed", //线 dotted线 solid:线
},
show: true, //
},
axisLabel: {
show: true,
fontSize: "13px",
fontFamily: "Alibaba PuHuiTi",
fontWeight: 500,
color: "#525966",
},
},
],
series: [
{
type: "bar",
barWidth: 28,
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
//ok
offset: 0,
color: "#FF8B02",
}, //
{
offset: 1,
color: "#FFA70F",
},
]),
},
z: 100,
// data: [700, 400, 600, 300, 580, 250, 490, 200, 390, 460, 90],
data: this.arr2,
//
emphasis: {
label: {
show: true,
formatter: "{c}",
position: "top",
fontSize: 14,
color: "#FF8C03",
fontWeight: "bold",
fontFamily: "Alibaba PuHuiTi",
},
},
},
],
};
option && myChart.setOption(option);
},
},
};
</script>
<style scoped lang="scss">
#mains1 {
height: 100%;
width: 100%;
}
</style>

@ -0,0 +1,122 @@
<!--
* @Descripttion:
* @version:
* @Author: JC9527
* @Date: 2023-09-27 14:01:34
* @LastEditors: JC9527
* @LastEditTime: 2023-09-28 17:03:02
-->
<template>
<div>
<el-cascader
size="small"
v-model="district"
:options="compartment"
:show-all-levels="false"
:disabled="isNoneDivision"
:props="props"
@change="getData"
></el-cascader>
</div>
</template>
<script>
import { xzTree } from "@/api/yingji/keyEnterprise.js";
import { mapState } from "vuex";
export default {
data() {
return {
//
district: "",
compartment: [],
isNoneDivision: false,
props: {
checkStrictly: true,
value: "value",
label: "label",
children: "children",
},
};
},
created() {
this.xzList();
},
computed: {
...mapState({
//dept.parentId
dept: (state) => state.user.dept,
}),
},
props: {
none: {
type: Boolean,
default: false,
},
},
methods: {
xzList() {
xzTree().then((res) => {
if (this.dept.parentId == 0 || this.dept.leader == "admin") {
res.data.forEach((value, index) => {
this.compartment.push({
value: value.county,
label: value.institutionName,
children: [],
});
if (value.children.length > 0) {
value.children.forEach((value1, index1) => {
this.compartment[index].children.push({
value: value1.subdistrict,
label: value1.institutionName,
});
});
}
});
}
this.$emit("quhuadizhi", this.compartment);
});
},
getData(e) {
if (!this.none) {
if (e.length == 1) {
this.$emit("quhua", e[0].slice(1, 8));
} else if (e.length == 2 && e[0] == e[1]) {
this.$emit("quhua", e[0].slice(1, 8));
} else {
this.$emit("quhua", e[1].slice(1, 11));
}
} else {
if (e.length == 1) {
this.$emit("quhua", e[0]);
} else if (e.length == 2 && e[0] == e[1]) {
this.$emit("quhua", e[0]);
} else {
this.$emit("quhua", e[1]);
}
}
},
},
};
</script>
<style lang="scss" scoped>
::v-deep .el-cascader {
background-color: transparent;
width: 210px;
.el-input__inner {
height: 33px;
}
.el-input
.el-input__suffix
.el-input__suffix-inner
.el-icon-arrow-down::before {
content: "";
background: url(../../../assets/images/down2.png) center center no-repeat;
background-size: cover;
position: absolute;
width: 10px;
height: 7px;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
}
</style>

@ -1,16 +1,61 @@
<template > <template>
<div id="cakeBox"></div> <div style="height: 100%; height: 100%" v-loading="loadS">
<div id="cakeBox"></div>
</div>
</template> </template>
<script> <script>
import { workStatistics } from "@/api/yingji/keyEnterprise.js";
import * as echarts from "echarts"; import * as echarts from "echarts";
export default { export default {
data() { data() {
return {}; return {
arr1: [],
arr2: [],
//
numTotal: 0,
};
}, },
mounted() { mounted() {
this.initChart(); this.$nextTick(() => {
this.getData();
});
},
props: {
loadS: {
type: Boolean,
default: true,
},
newTable: {
type: Array,
default: [],
},
},
watch: {
newTable(newVal, oldVal) {
this.getData();
},
}, },
methods: { methods: {
getData() {
this.arr1 = [];
this.arr2 = [];
this.newTable.forEach((value1) => {
if (value1.institutionName != "苏州市") {
this.arr1.push({
value: value1.checkEnterpriseCount,
name: value1.institutionName,
pt: value1.pt,
});
} else {
this.arr2.push({
value: value1.plannedEnterpriseCount,
name: value1.institutionName,
pt: value1.pt == "NaN" ? 0 : value1.pt.toFixed(2),
});
}
});
this.initChart();
},
initChart() { initChart() {
var chartDom = document.getElementById("cakeBox"); var chartDom = document.getElementById("cakeBox");
var myChart = echarts.init(chartDom); var myChart = echarts.init(chartDom);
@ -50,9 +95,6 @@ export default {
itemWidth: 10, itemWidth: 10,
itemHeight: 10, itemHeight: 10,
icon: "circle", icon: "circle",
formatter: function (name) {
return `{a|${name}}{b|15%}`;
},
textStyle: { textStyle: {
rich: { rich: {
a: { a: {
@ -65,63 +107,36 @@ export default {
fontWeight: "bold", fontWeight: "bold",
padding: [0, 0, 0, 10], padding: [0, 0, 0, 10],
}, },
}, },
}, },
formatter: function (name) {
const item = option.legend.data.find((item) => item.name === name);
// return `{a|${name}}{b|${( item.value / arrA * 100)}%}`;
return `{a|${name}}{b|${item.pt * 100}%}`;
},
//waiyuan, //waiyuan,
data: [ // data: [
{ value: 15, name: "张家港市" }, // { value: 15, name: "" },
{ value: 10, name: "吴中区" }, // { value: 10, name: "" },
{ value: 8, name: "常熟市" }, // { value: 8, name: "" },
{ value: 10, name: "姑苏区" }, // { value: 10, name: "" },
{ value: 18, name: "太仓市" }, // { value: 18, name: "" },
{ value: 6, name: "相城区" }, // { value: 6, name: "" },
{ value: 10, name: "昆山市" }, // { value: 10, name: "" },
{ value: 4, name: "工业园区" }, // { value: 4, name: "" },
{ value: 10, name: "吴江区" }, // { value: 10, name: "" },
{ value: 5, name: "高新区" }, // { value: 5, name: "" },
], // ],
data: this.arr1,
}, },
series: [ series: [
{ {
type: "pie", //
center: ["28%", "55%"], // color: ["#F6F6F9"],
radius: ["42%", "65%"],
avoidLabelOverlap: false,
label: {
show: false,
},
emphasis: {
//
// label: {
// show: true,
// fontSize: 40,
// fontWeight: "bold",
// },
},
labelLine: {
show: false,
},
data: [
{ value: 15, name: "张家港市" },
{ value: 10, name: "吴中区" },
{ value: 8, name: "常熟市" },
{ value: 10, name: "姑苏区" },
{ value: 18, name: "太仓市" },
{ value: 6, name: "相城区" },
{ value: 10, name: "昆山市" },
{ value: 4, name: "工业园区" },
{ value: 10, name: "吴江区" },
{ value: 5, name: "高新区" },
],
},
{
type: "pie", type: "pie",
center: ["28%", "55%"], // center: ["28%", "55%"], //
radius: "32%", radius: "32%",
avoidLabelOverlap: false, avoidLabelOverlap: false,
color: "rgb(247,247,249)",
tooltip: { tooltip: {
show: false, show: false,
}, },
@ -136,7 +151,10 @@ export default {
normal: { normal: {
position: "center", position: "center",
formatter: function (params) { formatter: function (params) {
return `{a|${params.data.pt}%}\n{b|${params.data.name}}`; console.log(params);
return `{a|${(Number(params.data.pt) * 100).toFixed(
2
)}%}\n{b|${params.data.name}完成率}`;
}, },
rich: { rich: {
a: { a: {
@ -155,7 +173,42 @@ export default {
labelLine: { labelLine: {
show: false, show: false,
}, },
data: [{ value: 1, name: "苏州完成率", pt: 98 }], // data: [{ value: 1, name: "", pt: 100 }],
data: this.arr2,
},
{
//
type: "pie",
center: ["28%", "55%"], //
radius: ["42%", "65%"],
avoidLabelOverlap: false,
label: {
show: false,
},
emphasis: {
//
// label: {
// show: true,
// fontSize: 40,
// fontWeight: "bold",
// },
},
labelLine: {
show: false,
},
// data: [
// { value: 15, name: "" },
// { value: 10, name: "" },
// { value: 8, name: "" },
// { value: 10, name: "" },
// { value: 18, name: "" },
// { value: 6, name: "" },
// { value: 10, name: "" },
// { value: 4, name: "" },
// { value: 10, name: "" },
// { value: 5, name: "" },
// ],
data: this.arr1,
}, },
], ],
}; };

@ -4,14 +4,14 @@
* @Author: JC9527 * @Author: JC9527
* @Date: 2023-09-04 10:20:06 * @Date: 2023-09-04 10:20:06
* @LastEditors: JC9527 * @LastEditors: JC9527
* @LastEditTime: 2023-09-13 16:49:27 * @LastEditTime: 2023-10-01 00:42:43
--> -->
<template> <template>
<div class="container-main" ref="main"> <div class="container-main" ref="main">
<div class="enforce-the-law-title"> <div class="enforce-the-law-title">
<div class="filtrate-condition"> <div class="filtrate-condition">
<div class="select-input"> <div class="select-input">
<div class="select-span">:</div> <div class="select-span">:</div>
<el-date-picker <el-date-picker
v-model="form.plannedYear" v-model="form.plannedYear"
type="month" type="month"
@ -23,17 +23,7 @@
</div> </div>
<div class="select-input"> <div class="select-input">
<div class="select-span">区划:</div> <div class="select-span">区划:</div>
<el-cascader <executive @quhua="quhua" @quhuadizhi="quhuadizhi" :none="true" ref="executive"></executive>
size="small"
v-model="district"
:options="compartment"
:show-all-levels="false"
:props="{
value: 'subdistrict', //id
label: 'institutionName', //name
children: 'children',
}"
></el-cascader>
</div> </div>
<div class="my-checkbox"> <div class="my-checkbox">
<el-checkbox-group v-model="checkList" @change="setmealSelect"> <el-checkbox-group v-model="checkList" @change="setmealSelect">
@ -47,7 +37,11 @@
<div class="export" @click="searchList" style="margin-right: 10px"> <div class="export" @click="searchList" style="margin-right: 10px">
<span>搜索</span> <span>搜索</span>
</div> </div>
<div class="export" @click="chongzhiList" style="margin-right: 10px"> <div
class="export"
@click="chongzhiList"
style="margin-right: 10px; background-color: #fdab5b"
>
<span>重置</span> <span>重置</span>
</div> </div>
<div class="export" @click="exportFile"> <div class="export" @click="exportFile">
@ -68,7 +62,7 @@
> >
<el-table-column <el-table-column
prop="plannedYear" prop="plannedYear"
label="计划年" label="计划年"
width="180" width="180"
header-align="center" header-align="center"
> >
@ -79,6 +73,9 @@
width="180" width="180"
header-align="center" header-align="center"
> >
<template slot-scope="scope">
<span>{{ componendDistrict(scope.row.district) }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="entprName" prop="entprName"
@ -90,7 +87,7 @@
<template slot-scope="scope"> <template slot-scope="scope">
<div <div
style="font-family: 'Alibaba PuHuiTi'" style="font-family: 'Alibaba PuHuiTi'"
:class="scope.row.checkStatus == '2' ? 'isStyle' : ''" :class="scope.row.checkStatus == '2' ? 'isStyle' : 'isStyle1'"
> >
{{ scope.row.checkStatus == 2 ? "未检查" : "已检查" }} {{ scope.row.checkStatus == 2 ? "未检查" : "已检查" }}
</div> </div>
@ -99,7 +96,11 @@
<el-table-column label="操作" header-align="center"> <el-table-column label="操作" header-align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="tabs-btns"> <div class="tabs-btns">
<div class="look" @click="look(scope.row)"> <div
class="look"
v-if="scope.row.checkStatus == 1"
@click="look(scope.row)"
>
<span>查看执法详情</span> <span>查看执法详情</span>
</div> </div>
</div> </div>
@ -108,7 +109,11 @@
</el-table> </el-table>
</div> </div>
<div class="pagination"> <div class="pagination">
<my-pagination :total="total" @pagesChange="pagesChange"></my-pagination> <my-pagination
:total="total"
@pagesChange="pagesChange"
ref="mypagination"
></my-pagination>
</div> </div>
<!-- 查看 --> <!-- 查看 -->
<el-dialog <el-dialog
@ -153,23 +158,23 @@
</template> </template>
<script> <script>
import executive from "./echarts/executive";
import myPagination from "@/views/components/myPagination/index.vue"; import myPagination from "@/views/components/myPagination/index.vue";
import { import {
businessList, businessList,
enforcingDetail, enforcingDetail,
xzTree, xzTree,
enforcingGet,
} from "@/api/yingji/keyEnterprise.js"; } from "@/api/yingji/keyEnterprise.js";
export default { export default {
components: { myPagination }, components: { myPagination, executive },
name: "Article", name: "Article",
data() { data() {
return { return {
tableData: [], tableData: [],
option: [],
loads: true, loads: true,
total: 0, total: 0,
options: [],
//
district: "",
form: { form: {
district: "", district: "",
plannedYear: "", plannedYear: "",
@ -180,119 +185,109 @@ export default {
checkListTwo: [], checkListTwo: [],
listDes: [ listDes: [
{ {
eng: "bizAddr", eng: "entprName",
label: "生产经营地址", label: "企业名称",
value: "",
},
{
eng: "bossEmail",
label: "主要负责人电子邮箱",
value: "",
},
{
eng: "bossMobtel",
label: "主要负责人移动电话",
value: "",
},
{
eng: "bossTel",
label: "主要负责人固定电话",
value: "",
},
{
eng: "cseNum",
label: "注册安全工程师人员数量",
value: "",
},
{
eng: "doublePreven",
label: "是否开展双重预防机制",
value: "",
},
{
eng: "ecoTypeLarge",
label: "经济类型大类",
value: "", value: "",
}, },
{ {
eng: "ecoTypeSmall", eng: "uscCode",
label: "经济类型小类", label: "统一社会信用代码",
value: "", value: "",
}, },
// {
// eng: "CREATETIME",
// label: "",
// value: "",
// },
// {
// eng: "UPDATETIME",
// label: "",
// value: "",
// },
{ {
eng: "employeeNum", eng: "enterpriseUnitVersion",
label: "从业人员数量", label: "钢铁三年专项时,企业设施的版本号",
value: "", value: "",
}, },
{ {
eng: "enterColorChart", eng: "examineStartTime",
label: "企业分色图", label: "检查开始时间",
value: "", value: "",
}, },
{ {
eng: "entprName", eng: "examineEndTime",
label: "企业名称", label: "检查结束时间",
value: "", value: "",
}, },
{ {
eng: "floorArea", eng: "examineSite",
label: "占地面积", label: "检查场所",
value: "", value: "",
}, },
{ {
eng: "fullEmegNum", eng: "examineSource",
label: "专职应急管理人员数量", label: "检查来源",
value: "", value: "",
}, },
{ {
eng: "fullSafety", eng: "examineType",
label: "是否有专职安全人员", label: "检查方式",
value: "", value: "",
}, },
{ {
eng: "fullSafetyNum", eng: "executorDept",
label: "专职安全生产管理人员数量", label: "执法部门",
value: "", value: "",
}, },
{ {
eng: "gridCode", eng: "executorDeptCode",
label: "网格编码", label: "执法部门代码",
value: "", value: "",
}, },
// {
// eng: "executorId",
// label: "id",
// value: "",
// },
{ {
eng: "infoYear", eng: "expertsInFlag",
label: "数据年份", label: "是否专家参与",
value: "", value: "",
}, },
{ {
eng: "isPoint", eng: "expertsName",
label: "是否重点", label: "专家姓名",
value: "", value: "",
}, },
// {
// eng: "planExamineId",
// label: "id",
// value: "",
// },
{ {
eng: "legalPerson", eng: "sourceData",
label: "法定代表人", label: "数据来源",
value: "", value: "",
}, },
{ {
eng: "majorHazardInstallations", eng: "threeSpecialType",
label: "是否存在重大危险源", label: "是否是三年专项",
value: "", value: "",
}, },
{ {
eng: "majorHazardLevel", eng: "typeCode",
label: "重大危险源等级", label: "文书类型",
value: "", value: "",
}, },
{ {
eng: "regAddr", eng: "writNo",
label: "注册地址", label: "文书文号",
value: "", value: "",
}, },
{ {
eng: "uscCode", eng: "examineSituation",
label: "统一社会信用代码", label: "检查情况",
value: "", value: "",
}, },
], ],
@ -303,73 +298,112 @@ export default {
details: {}, details: {},
addShow: false, addShow: false,
detailLoad: true, detailLoad: true,
compartment: [], //
}; };
}, },
created() { created() {
this.getList(); this.getList();
this.xzList();
}, },
dicts: ["inspection_method", "check_source", "document_type"],
methods: { methods: {
filterTable(a, b) {
if (!b) return;
return this.selectDictLabel(a, b);
},
//
componendDistrict(district) {
let name;
this.option.map((item) => {
if (item.value == district) {
name = item.label;
} else {
item.children.map((itemTwo) => {
if (itemTwo.value == district) {
name = item.label + "-" + itemTwo.label;
}
});
}
});
return name;
},
//
quhuadizhi(district) {
this.option = district;
},
reset() { reset() {
this.form = { this.form = {
district: "", district: "",
plannedYear: "", plannedYear: "",
//
checkStatus: "", checkStatus: "",
}; };
this.$refs.executive.district = [];
this.searchBefore = { this.searchBefore = {
pageSize: 10, pageSize: 10,
pageNum: 1, pageNum: 1,
}; };
this.$refs.mypagination.defaultPages();
}, },
// //
chongzhiList() { chongzhiList() {
this.reset(); this.reset();
this.getList(); this.getList();
}, },
xzList() {
xzTree().then((res) => {
console.log(res);
this.compartment = res.data;
this.filterComparment(this.compartment);
});
},
filterComparment(e) {
e.forEach((value, index) => {
if (value.children.length >= 1) {
this.filterComparment(value.children);
} else {
delete value.children;
return;
}
});
},
shutDownDetail() { shutDownDetail() {
this.addShow = false; this.addShow = false;
}, },
look(e) { look(e) {
this.addShow = true; this.addShow = true;
this.detailLoad = true; this.detailLoad = true;
businessList({ uscCode: e.enterpriseId, ...this.searchBefore }).then( enforcingGet(e.longId).then((res) => {
(res) => { for (let key in res.data) {
this.details = res.data.list[0]; this.listDes.forEach((value1, index1) => {
this.detailLoad = false; if (key == value1.eng) {
for (let key in this.details) { this.listDes[index1].value = res.data[key];
this.listDes.forEach((value1, index1) => { return;
if (key == value1.eng) { }
this.listDes[index1].value = this.details[key]; });
return;
}
});
}
} }
); this.listDes.forEach((value1, index1) => {
//
if (value1.eng == "examineType") {
this.listDes[index1].value = this.filterTable(
this.dict.type.inspection_method,
value1.value
);
}
//
if (value1.eng == "examineSource") {
this.listDes[index1].value = this.filterTable(
this.dict.type.check_source,
value1.value
);
}
//
if (value1.eng == "typeCode") {
this.listDes[index1].value = this.filterTable(
this.dict.type.document_type,
value1.value
);
}
if (value1.value == "0") {
this.listDes[index1].value = '否'
}
if (value1.value == "1") {
this.listDes[index1].value = '是'
}
});
this.detailLoad = false;
});
},
quhua(e) {
this.form.district = e;
}, },
searchList() { searchList() {
this.form.district = this.district[this.district.length - 1]; this.searchBefore = {
pageSize: 10,
pageNum: 1,
};
this.$refs.mypagination.defaultPages();
this.searchBefore = { ...this.searchBefore, ...this.form }; this.searchBefore = { ...this.searchBefore, ...this.form };
this.getList(); this.getList();
}, },
@ -377,8 +411,8 @@ export default {
this.loads = true; this.loads = true;
enforcingDetail(this.searchBefore).then((res) => { enforcingDetail(this.searchBefore).then((res) => {
console.log(res); console.log(res);
this.tableData = res.data.list; this.tableData = res.rows;
this.total = res.data.total; this.total = res.total;
this.loads = false; this.loads = false;
}); });
}, },
@ -412,7 +446,7 @@ export default {
}, },
// //
pagesChange(pages) { pagesChange(pages) {
this.searchBefore.pageNum = pages.pageNum; this.searchBefore.pageNum= pages.pageNum;
this.searchBefore.pageSize = pages.pageSize; this.searchBefore.pageSize = pages.pageSize;
this.getList(); this.getList();
}, },
@ -444,6 +478,9 @@ export default {
.isStyle { .isStyle {
color: #f71052; color: #f71052;
} }
.isStyle1{
color: #28B384;
}
.dialog-slot { .dialog-slot {
.closeClick { .closeClick {
position: absolute; position: absolute;

@ -4,23 +4,20 @@
<div class="one-line"> <div class="one-line">
<div class="select-input"> <div class="select-input">
<div class="select-span">行政区划:</div> <div class="select-span">行政区划:</div>
<el-cascader <executive
v-model="form.subdistrict" @quhua="quhua"
placeholder="请选择" @quhuadizhi="quhuadizhi"
:options="xzList" ref="executive"
:props="props" ></executive>
>
</el-cascader>
</div> </div>
<div class="select-input"> <div class="select-input">
<div class="select-span">经济类型:</div> <div class="select-span">经济类型:</div>
<el-select v-model="form.economicsType" placeholder="请选择"> <el-select v-model="form.ecoTypeLarge" placeholder="请选择">
<el-option <el-option
v-for="item in options.economic_categories" v-for="item in dict.type.economic_categories"
:key="item.dictValue" :key="item.value"
:label="item.dictLabel" :label="item.label"
:value="item.dictValue" :value="item.value"
> >
</el-option> </el-option>
</el-select> </el-select>
@ -30,19 +27,36 @@
<div class="select-span">行业类型:</div> <div class="select-span">行业类型:</div>
<el-select v-model="form.indusTypeClass" placeholder="请选择"> <el-select v-model="form.indusTypeClass" placeholder="请选择">
<el-option <el-option
v-for="item in options.category" v-for="item in dict.type.category"
:key="item.dictValue" :key="item.value"
:label="item.dictLabel" :label="item.label"
:value="item.dictValue" :value="item.value"
> >
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
<div class="select-input"> <!-- <div class="select-input">
<div class="select-span">是否重点:</div> <div class="select-span">是否重点:</div>
<el-select v-model="form.isPoint" placeholder="请选择"> <el-select v-model="form.isPoint" placeholder="请选择">
<el-option label="是" value="1"></el-option> <el-option
<el-option label="否" value="0"></el-option> v-for="item in dict.type.is_point"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</div> -->
<div class="select-input">
<div class="select-span">企业分色:</div>
<el-select v-model="form.entprColor" placeholder="请选择">
<el-option
v-for="item in dict.type.entpr_color"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select> </el-select>
</div> </div>
</div> </div>
@ -52,36 +66,31 @@
<div class="select-span">重大危险源等级:</div> <div class="select-span">重大危险源等级:</div>
<el-select v-model="form.majorHazardLevel" placeholder="请选择"> <el-select v-model="form.majorHazardLevel" placeholder="请选择">
<el-option <el-option
v-for="item in options.major_hazard_level" v-for="item in dict.type.major_hazard_level"
:key="item.dictValue" :key="item.value"
:label="item.dictLabel" :label="item.label"
:value="item.dictValue" :value="item.value"
>
</el-option>
</el-select>
</div>
<div class="select-input">
<div class="select-span">企业分色:</div>
<el-select v-model="form.entprColor" placeholder="请选择">
<el-option
v-for="item in options.entpr_color"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
> >
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
<div class="input-input">
<div class="select-span">企业名称/统一社会信用代码:</div> <div class="input-input" style="margin-left: 10px;">
<div class="select-span">统一社会信用代码:</div>
<el-input <el-input
v-model="form.uscCode" v-model="form.uscCode"
placeholder="请输入企业名称/统一社会信用代码" placeholder="请输入统一社会信用代码"
></el-input> ></el-input>
</div> </div>
</div> </div>
<div class="select-btn" @click="searchList"></div> <div class="select-btn" @click="searchList"></div>
<div class="select-btn" @click="chongzhiList"></div> <div
class="select-btn"
@click="chongzhiList"
style="background-color: #fdab5b"
>
重置
</div>
</div> </div>
</div> </div>
<div class="tables"> <div class="tables">
@ -91,23 +100,72 @@
style="width: 100%" style="width: 100%"
:height="497" :height="497"
:border="false" :border="false"
tooltip-effect="light"
:row-class-name="tableRowClassName" :row-class-name="tableRowClassName"
> >
<el-table-column <el-table-column
prop="entprName" prop="entprName"
label="企业名称" label="企业名称"
show-overflow-tooltip
header-align="center"
>
</el-table-column>
<el-table-column
prop="majorHazardLevel"
label="行政区划"
width="180"
header-align="center" header-align="center"
> >
<template slot-scope="scope">
<span>{{ componendDistrict("0" + scope.row.subdistrict) }}</span>
</template>
</el-table-column> </el-table-column>
<!-- <el-table-column <el-table-column
prop="majorHazardLevel" prop="majorHazardLevel"
label="重大危险源等级" label="重大危险源等级"
width="180" width="180"
header-align="center" header-align="center"
> >
<template slot-scope="scope">
<div>
{{
filterTable(
dict.type.major_hazard_level,
scope.row.majorHazardLevel
)
}}
</div>
</template>
</el-table-column>
<el-table-column
prop="indusTypeClass"
label="行业类型"
width="180"
header-align="center"
>
<template slot-scope="scope">
<div>
{{
scope.row.indusTypeClass != "null"
? filterTable(dict.type.category, scope.row.indusTypeClass)
: ""
}}
</div>
</template>
</el-table-column>
<el-table-column
prop="entprColor"
label="企业分色"
header-align="center"
>
<template slot-scope="scope">
<dict-tag
:options="dict.type.entpr_color"
:value="scope.row.entprColor ? scope.row.entprColor : '/'"
>
</dict-tag>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="enterColorChart" label="企业分色" header-align="center">
</el-table-column> -->
<el-table-column <el-table-column
prop="uscCode" prop="uscCode"
@ -115,7 +173,7 @@
header-align="center" header-align="center"
> >
</el-table-column> </el-table-column>
<el-table-column prop="isPoint" label="是否重点" header-align="center"> <!-- <el-table-column prop="isPoint" label="是否重点" header-align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div <div
style="font-family: 'Alibaba PuHuiTi'" style="font-family: 'Alibaba PuHuiTi'"
@ -125,7 +183,7 @@
<span v-if="scope.row.isPoint == '0'"></span> <span v-if="scope.row.isPoint == '0'"></span>
</div> </div>
</template> </template>
</el-table-column> </el-table-column> -->
<el-table-column label="操作" header-align="center"> <el-table-column label="操作" header-align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="tabs-btns"> <div class="tabs-btns">
@ -138,6 +196,13 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<div class="pagination">
<my-pagination
:total="total"
@pagesChange="pagesChange"
ref="mypagination"
></my-pagination>
</div>
<!-- 查看 --> <!-- 查看 -->
<el-dialog <el-dialog
:visible.sync="addShow" :visible.sync="addShow"
@ -158,60 +223,42 @@
</div> </div>
<div class="content"> <div class="content">
<div class="filtrate"> <div class="filtrate">
<el-descriptions :column="2" border v-loading="detailLoad"> <el-descriptions :column="2" border>
<el-descriptions-item <el-descriptions-item
:label="item.label" :label="item.label"
v-for="(item, index) in listDes" v-for="(item, index) in listDes"
:key="index" :key="index"
> >
{{ {{ item.value }}
item.value == "null"
? ""
: item.value == "false"
? "暂无"
: item.value
}}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
<div class="pagination">
<my-pagination :total="total" @pagesChange="pagesChange"></my-pagination>
</div>
</div> </div>
</template> </template>
<script> <script>
import myPagination from "@/views/components/myPagination/index.vue"; import myPagination from "@/views/components/myPagination/index.vue";
import { businessList, listDist, xzTree } from "@/api/yingji/keyEnterprise"; import { businessList, listDist, xzTree } from "@/api/yingji/keyEnterprise";
// import { mapState } from "vuex";
import executive from "./echarts/executive";
export default { export default {
components: { myPagination }, components: { myPagination, executive },
name: "Order", name: "Order",
data() { data() {
return { return {
tableData: [], tableData: [],
form: { option: [],
subdistrict: "", form: {},
frimType: "", xzqh: "",
indusTypeClass: "",
isPoint: "",
majorHazardLevel: "",
entprColor: "",
uscCode: "",
},
props: {
value: "subdistrict",
label: "institutionName",
},
xzqh:'',
searchBefore: { searchBefore: {
pageSize: 10, pageSize: 10,
pageNum: 1, pageNum: 1,
}, },
xzList: [], xzList: [],
options: {},
load1: true, load1: true,
total: 0, total: 0,
main: { main: {
@ -239,16 +286,35 @@ export default {
value: "", value: "",
}, },
{ {
eng: "cseNum", eng: "businessScope",
label: "注册安全工程师人员数量", label: "经营范围",
value: "",
},
{
eng: "contactEmail",
label: "电子邮箱",
value: "",
},
{
eng: "contactQq",
label: "联系QQ号码",
value: "", value: "",
}, },
{ {
eng: "doublePreven", eng: "contactTel",
label: "是否开展双重预防机制", label: "企业固定电话",
value: "",
},
{
eng: "cseNum",
label: "注册安全工程师人员数量",
value: "", value: "",
}, },
// {
// eng: "doublePreven",
// label: "",
// value: "",
// },
{ {
eng: "ecoTypeLarge", eng: "ecoTypeLarge",
label: "经济类型大类", label: "经济类型大类",
@ -265,18 +331,28 @@ export default {
value: "", value: "",
}, },
{ {
eng: "enterColorChart", eng: "entprcolor",
label: "企业分色", label: "企业分色",
value: "", value: "",
}, },
// {
// eng: "entprId",
// label: "ID",
// value: "",
// },
{ {
eng: "entprName", eng: "entprName",
label: "企业名称", label: "企业名称",
value: "", value: "",
}, },
// {
// eng: "entprPlaneGragh",
// label: "",
// value: "",
// },
{ {
eng: "floorArea", eng: "floorArea",
label: "占地面积", label: "占地面积(㎡)",
value: "", value: "",
}, },
{ {
@ -299,21 +375,78 @@ export default {
label: "网格编码", label: "网格编码",
value: "", value: "",
}, },
{
eng: "gridEntprStatus",
label: "网格对企业的关停和恢复",
value: "",
},
{
eng: "groupCompName",
label: "集团公司名称",
value: "",
},
{
eng: "indusTypeClass",
label: "行业类别门类",
value: "",
},
// {
// eng: "indusTypeLagre",
// label: "",
// value: "",
// },
// {
// eng: "indusTypeMiddle",
// label: "",
// value: "",
// },
// {
// eng: "indusTypeSmall",
// label: "",
// value: "",
// },
// {
// eng: "industryRefer",
// label: "()",
// value: "",
// },
{ {
eng: "infoYear", eng: "infoYear",
label: "数据年份", label: "数据年份",
value: "", value: "",
}, },
{ {
eng: "isPoint", eng: "isPoint",
label: "是否重点", label: "是否重点",
value: "", value: "",
}, },
{
eng: "latitudeGps",
label: "纬度(度) 84",
value: "",
},
{ {
eng: "legalPerson", eng: "legalPerson",
label: "法定代表人", label: "法定代表人",
value: "", value: "",
}, },
{
eng: "localSafetyAdmin",
label: "属地安监机构",
value: "",
},
{
eng: "longitudeGps",
label: "经度(度) 84",
value: "",
},
{
eng: "mainProduct",
label: "主要产品",
value: "",
},
{ {
eng: "majorHazardInstallations", eng: "majorHazardInstallations",
label: "是否存在重大危险源", label: "是否存在重大危险源",
@ -324,11 +457,116 @@ export default {
label: "重大危险源等级", label: "重大危险源等级",
value: "", value: "",
}, },
{
eng: "operatingStatus",
label: "经营状态",
value: "",
},
{
eng: "parentCompName",
label: "母公司名称",
value: "",
},
{
eng: "partSafetyNum",
label: "兼职安全生产管理人员数量",
value: "",
},
{ {
eng: "regAddr", eng: "regAddr",
label: "注册地址", label: "注册地址",
value: "", value: "",
}, },
{
eng: "regCapi",
label: "注册资金(万元)",
value: "",
},
{
eng: "safetyDepart",
label: "是否有专门安全机构",
value: "",
},
{
eng: "safetyDepartDuty",
label: "安全管理机构职责",
value: "",
},
{
eng: "safetyDepartName",
label: "安全管理机构名称",
value: "",
},
{
eng: "safetyDepartNum",
label: "安全管理机构成员数量",
value: "",
},
{
eng: "safetyEmail",
label: "安全负责人电子邮箱",
value: "",
},
{
eng: "safetyManager",
label: "安全负责人",
value: "",
},
{
eng: "safetyMobtel",
label: "安全负责人移动电话",
value: "",
},
{
eng: "safetySupervisionLevel",
label: "安全监管等级",
value: "",
},
{
eng: "safetyTel",
label: "安全负责人固定电话",
value: "",
},
{
eng: "setupDate",
label: "成立日期",
value: "",
},
{
eng: "sourceData",
label: "数据来源",
value: "",
},
{
eng: "specialGovernance",
label: "专项治理类别",
value: "",
},
{
eng: "speclalOperationNum",
label: "特种作业人员数量",
value: "",
},
{
eng: "standLevel",
label: "标准化等级",
value: "",
},
{
eng: "stateOwed",
label: "是否为国有企业",
value: "",
},
// {
// eng: "supervisionLarge",
// label: "",
// value: "",
// },
// {
// eng: "supervisionSmall",
// label: "",
// value: "",
// },
{ {
eng: "uscCode", eng: "uscCode",
label: "统一社会信用代码", label: "统一社会信用代码",
@ -337,62 +575,161 @@ export default {
], ],
addShow: false, addShow: false,
details: null, details: null,
detailLoad: true, //==
subdistrict: [],
}; };
}, },
created() { created() {
this.getList(); this.getList();
this.getDict();
}, },
dicts: [
"economic_categories",
"economic_subcategory",
"special_governance",
"enterprise_status",
"standardization_level",
"safety_level",
"category",
"major_hazard_level",
"entpr_color",
"is_point",
],
methods: { methods: {
//
componendDistrict(district) {
let name;
this.option.map((item) => {
if (item.value == district) {
name = item.label;
} else {
item.children.map((itemTwo) => {
if (itemTwo.value == district) {
name = item.label + "-" + itemTwo.label;
}
});
}
});
return name;
},
//
quhuadizhi(district) {
this.option = district;
},
filterTable(a, b) {
if (!b) return;
return this.selectDictLabel(a, b);
},
shutDownDetail() { shutDownDetail() {
this.addShow = false; this.addShow = false;
}, },
look(e) { look(e) {
this.addShow = true; this.addShow = true;
this.detailLoad = true; this.details = e;
businessList({ uscCode: e.enterpriseId, ...this.searchBefore }).then( for (let key in this.details) {
(res) => { this.listDes.forEach((value1, index1) => {
this.details = res.data.list[0]; if (key == value1.eng) {
this.detailLoad = false; this.listDes[index1].value =
for (let key in this.details) { this.details[key] == "无" ? "/" : this.details[key];
this.listDes.forEach((value1, index1) => { return;
if (key == value1.eng) {
this.listDes[index1].value = this.details[key];
return;
}
});
} }
});
}
this.listDes.forEach((value1, index1) => {
//
if (value1.eng == "majorHazardLevel") {
this.listDes[index1].value = this.filterTable(
this.dict.type.major_hazard_level,
value1.value
);
} }
); //
}, if (value1.eng == "ecoTypeLarge") {
getDict() { this.listDes[index1].value = this.filterTable(
xzTree().then((res1) => { this.dict.type.economic_categories,
console.log(res1); value1.value
this.xzList = res1.data; );
this.filterComparment(this.xzList); }
console.log(this.xzList); //
}); if (value1.eng == "ecoTypeSmall") {
listDist({ this.listDes[index1].value = this.filterTable(
list: "economic_categories,category,major_hazard_level,entpr_color", this.dict.type.economic_subcategory,
}).then((res) => { value1.value
this.options = res.data; );
}); }
}, //
filterComparment(e) { if (value1.eng == "specialGovernance") {
e.forEach((value, index) => { this.listDes[index1].value = this.filterTable(
if (value.children.length >= 1) { this.dict.type.special_governance,
this.filterComparment(value.children); value1.value
} else { );
delete value.children; }
return; //
//
if (value1.eng == "operatingStatus") {
this.listDes[index1].value = this.filterTable(
this.dict.type.enterprise_status,
value1.value
);
}
//
if (value1.eng == "standLevel") {
this.listDes[index1].value = this.filterTable(
this.dict.type.standardization_level,
value1.value
);
}
//
if (value1.eng == "safetySupervisionLevel") {
this.listDes[index1].value = this.filterTable(
this.dict.type.safety_level,
value1.value
);
}
//
//
//
//
if (value1.eng == "entprColor") {
this.listDes[index1].value = this.filterTable(
this.dict.type.entpr_color,
value1.value
);
}
//
if (value1.eng == "indusTypeClass") {
this.listDes[index1].value = this.filterTable(
this.dict.type.category,
value1.value
);
}
//
if (value1.eng == "isPoint") {
this.listDes[index1].value = this.filterTable(
this.dict.type.is_point,
value1.value
);
}
if (value1.value == null) {
this.listDes[index1].value = "/";
}
if (value1.value == "false") {
this.listDes[index1].value = "否";
}
if (value1.value == "true") {
this.listDes[index1].value = "是";
} }
}); });
}, },
quhua(e) {
this.form.subdistrict = e;
},
searchList() { searchList() {
if (this.form.subdistrict) { this.searchBefore = {
this.form.subdistrict = this.form.subdistrict[1]; pageSize: 10,
} pageNum: 1,
};
this.$refs.mypagination.defaultPages();
this.searchBefore = { ...this.searchBefore, ...this.form }; this.searchBefore = { ...this.searchBefore, ...this.form };
this.getList(); this.getList();
}, },
@ -401,7 +738,7 @@ export default {
subdistrict: "", subdistrict: "",
frimType: "", frimType: "",
indusTypeClass: "", indusTypeClass: "",
isPoint: "", // isPoint: "",
majorHazardLevel: "", majorHazardLevel: "",
entprColor: "", entprColor: "",
uscCode: "", uscCode: "",
@ -410,6 +747,8 @@ export default {
pageSize: 10, pageSize: 10,
pageNum: 1, pageNum: 1,
}; };
this.$refs.executive.district = [];
this.$refs.mypagination.defaultPages();
this.getList(); this.getList();
}, },
// //
@ -433,16 +772,16 @@ export default {
return ""; return "";
}, },
}, },
mounted() { // mounted() {
this.checkListTwo = this.checkList; // this.checkListTwo = this.checkList;
// this.$nextTick(()=>{ // // this.$nextTick(()=>{
// let dom = document.getElementsByClassName('tables'); // // let dom = document.getElementsByClassName('tables');
// let height = dom[0].getBoundingClientRect(); // // let height = dom[0].getBoundingClientRect();
// let windowHeight = window.innerHeight; // // let windowHeight = window.innerHeight;
// let relativeHeight = windowHeight - height.top // // let relativeHeight = windowHeight - height.top
// this.main.height = relativeHeight - 50 // // this.main.height = relativeHeight - 50
// }) // // })
}, // },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -502,70 +841,70 @@ export default {
// padding: 15px 10px; // padding: 15px 10px;
.filtrate { .filtrate {
padding-bottom: 10px; padding-bottom: 10px;
.select-input { // .select-input {
// margin-right: 10px; // // margin-right: 10px;
margin-top: 20px; // margin-top: 20px;
display: flex; // display: flex;
align-items: center; // align-items: center;
.select-span { // .select-span {
font-size: 13px; // font-size: 13px;
font-family: "Alibaba PuHuiTi"; // font-family: "Alibaba PuHuiTi";
font-weight: 400; // font-weight: 400;
color: #525966; // color: #525966;
// line-height: 40px; // // line-height: 40px;
margin-right: 10px; // margin-right: 10px;
} // }
::v-deep .el-select, // ::v-deep .el-select,
.el-cascader { // .el-cascader {
background-color: transparent; // background-color: transparent;
width: 180px; // width: 180px;
.el-input__inner { // .el-input__inner {
height: 33px; // height: 33px;
} // }
// border-radius: 2px; // // border-radius: 2px;
.el-input // .el-input
.el-input__suffix // .el-input__suffix
.el-input__suffix-inner // .el-input__suffix-inner
.el-icon-arrow-up::before { // .el-icon-arrow-up::before {
content: ""; // content: "";
background: url(../../assets/images/down2.png) center center // background: url(../../assets/images/down2.png) center center
no-repeat; // no-repeat;
background-size: cover; // background-size: cover;
position: absolute; // position: absolute;
width: 10px; // width: 10px;
height: 7px; // height: 7px;
top: 50%; // top: 50%;
left: 50%; // left: 50%;
transform: translate(-50%, -50%); // transform: translate(-50%, -50%);
} // }
} // }
} // }
.select-input { // .select-input {
width: 45%; // width: 45%;
::v-deep .el-input { // ::v-deep .el-input {
.el-input__inner { // .el-input__inner {
height: 33px; // height: 33px;
} // }
} // }
} // }
.select-btn { // .select-btn {
width: 80px; // width: 80px;
height: 33px; // height: 33px;
background: #2378ec; // background: #2378ec;
border-radius: 2px; // border-radius: 2px;
display: flex; // display: flex;
align-items: center; // align-items: center;
justify-content: center; // justify-content: center;
font-size: 15px; // font-size: 15px;
font-family: Alibaba PuHuiTi; // font-family: Alibaba PuHuiTi;
font-weight: 500; // font-weight: 500;
color: #ffffff; // color: #ffffff;
cursor: pointer; // cursor: pointer;
margin-right: 10px; // margin-right: 10px;
} // }
.select-btn1 { // .select-btn1 {
background: #28b384; // background: #28b384;
} // }
} }
} }
} }
@ -589,12 +928,12 @@ export default {
.two-line-left { .two-line-left {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; // justify-content: space-between;
padding-right: 50px; padding-right: 50px;
width: 88%; width: 88%;
.input-input { .input-input {
margin: 10px 0 0 0; margin: 10px 0 0 0;
width: 455px; width: 355px;
display: flex; display: flex;
align-items: center; align-items: center;
.select-span { .select-span {
@ -653,6 +992,11 @@ export default {
.el-input__inner { .el-input__inner {
height: 33px; height: 33px;
} }
.el-input .el-input__suffix .el-input__suffix-inner .el-icon-arrow-up {
display: flex;
align-items: center;
justify-content: center;
}
// border-radius: 2px; // border-radius: 2px;
.el-input .el-input
.el-input__suffix .el-input__suffix
@ -664,9 +1008,10 @@ export default {
position: absolute; position: absolute;
width: 10px; width: 10px;
height: 7px; height: 7px;
top: 50%; // top: 50%;
left: 50%; // left: 50%;
transform: translate(-50%, -50%); // transform: translate(-50%, -50%);
transform: rotate(180deg);
} }
} }
} }

@ -4,7 +4,7 @@
* @Author: JC9527 * @Author: JC9527
* @Date: 2023-09-04 10:20:06 * @Date: 2023-09-04 10:20:06
* @LastEditors: JC9527 * @LastEditors: JC9527
* @LastEditTime: 2023-09-11 16:47:11 * @LastEditTime: 2023-09-27 17:06:02
--> -->
<template> <template>
<div class="container-main" ref="main"> <div class="container-main" ref="main">
@ -15,25 +15,47 @@
<div> <div>
<el-date-picker <el-date-picker
v-model="queryParms.year" v-model="queryParms.year"
type="month" type="year"
placeholder="请选择" placeholder="请选择年份"
value-format="yyyy-MM" value-format="yyyy"
size="small" size="small"
> >
</el-date-picker> </el-date-picker>
</div> </div>
</div> </div>
<div class="select-input">
<div class="select-span" style="width: 85px">企业名称:</div>
<el-input
v-model="queryParms.enterpriseName"
size="small"
placeholder="请输入企业名称"
></el-input>
</div>
<div class="select-input">
<el-input
v-model="queryParms.entCode"
size="small"
placeholder="请输入统一社会信用代码"
></el-input>
</div>
<div style="display: flex">
<div class="export" @click="searchList">
<span>搜索</span>
</div>
<div
class="export"
@click="chongzhiList"
style="background-color: #fdab5b"
>
<span>重置</span>
</div>
</div>
</div> </div>
<div style="display: flex"> <div style="display: flex">
<div class="export" @click="addkeys"> <div class="export" @click="addkeys" style="background-color: #28b384">
<span>新增</span> <span>新增</span>
</div> </div>
<div class="export" @click="searchList">
<span>搜索</span>
</div>
<div class="export" @click="chongzhiList">
<span>重置</span>
</div>
<div class="export" style="background: #f71052" @click="deleteItem"> <div class="export" style="background: #f71052" @click="deleteItem">
<span>删除</span> <span>删除</span>
</div> </div>
@ -63,17 +85,19 @@
:border="false" :border="false"
:row-class-name="tableRowClassName" :row-class-name="tableRowClassName"
:cell-style="columnStyle" :cell-style="columnStyle"
tooltip-effect="light"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<el-table-column type="selection" width="55"></el-table-column> <el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="year" label="计划年份" header-align="center"> <el-table-column prop="year" label="计划年份" header-align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ $moment(new Date(scope.row.year)).format("yyyy-MM") }} {{ $moment(new Date(scope.row.year)).format("yyyy") }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="enterpriseName" prop="enterpriseName"
label="企业名称" label="企业名称"
show-overflow-tooltip
header-align="center" header-align="center"
> >
</el-table-column> </el-table-column>
@ -83,8 +107,8 @@
header-align="center" header-align="center"
> >
</el-table-column> </el-table-column>
<el-table-column prop="type" label="企业类别" header-align="center"> <!-- <el-table-column prop="type" label="企业类别" header-align="center">
</el-table-column> </el-table-column> -->
<el-table-column label="操作" header-align="center"> <el-table-column label="操作" header-align="center">
<template slot-scope="scope"> <template slot-scope="scope">
@ -107,7 +131,11 @@
</el-table> </el-table>
</div> </div>
<div class="pagination"> <div class="pagination">
<my-pagination :total="total" @pagesChange="pagesChange"></my-pagination> <my-pagination
:total="total"
@pagesChange="pagesChange"
ref="mypagination"
></my-pagination>
</div> </div>
<!-- 新增修改 --> <!-- 新增修改 -->
<el-dialog <el-dialog
@ -135,7 +163,7 @@
> >
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="企业名称" prop="enterpriseName"> <el-form-item label="企业名称:" prop="enterpriseName">
<el-input <el-input
v-model="form.enterpriseName" v-model="form.enterpriseName"
size="small" size="small"
@ -145,7 +173,7 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="企业代码:" prop="entCode"> <el-form-item label="信用代码:" prop="entCode">
<el-input <el-input
v-model="form.entCode" v-model="form.entCode"
size="small" size="small"
@ -166,17 +194,32 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <!-- <el-row>
<el-col> <el-col>
<el-form-item label="大类:" prop="type"> <el-form-item label="企业类别:" prop="type">
<el-input <el-input
v-model="form.type" v-model="form.type"
size="small" size="small"
placeholder="请输入大类" placeholder="请输入企业类别"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row> -->
<!-- <el-row>
<el-col>
<el-form-item label="行政区划:" prop="type">
<el-cascader
size="small"
v-model="queryParmsdistrict"
placeholder="请选择"
:options="xzList"
:props="props"
:disabled="isNoneDivision"
>
</el-cascader>
</el-form-item>
</el-col>
</el-row> -->
<el-row> <el-row>
<el-col> <el-col>
<el-form-item label="备注:" prop="remark"> <el-form-item label="备注:" prop="remark">
@ -227,17 +270,20 @@
<div class="filtrate"> <div class="filtrate">
<el-descriptions :column="2" border> <el-descriptions :column="2" border>
<el-descriptions-item label="计划年份"> <el-descriptions-item label="计划年份">
{{ $moment(new Date(details.year)).format("yyyy-MM") }} {{ $moment(new Date(details.year)).format("yyyy") }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="企业名称"> <el-descriptions-item label="企业名称">
{{ details.enterpriseName }} {{ details.enterpriseName }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="企业代码">{{ <el-descriptions-item label="信用代码">{{
details.entCode details.entCode
}}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item label="企业类">{{ <!-- <el-descriptions-item label="企业">{{
details.type details.type
}}</el-descriptions-item> }}</el-descriptions-item> -->
<!-- <el-descriptions-item label="行政区划">{{
componendDistrict(details.district)
}}</el-descriptions-item> -->
<el-descriptions-item label="备注">{{ <el-descriptions-item label="备注">{{
details.remark details.remark
}}</el-descriptions-item> }}</el-descriptions-item>
@ -249,10 +295,10 @@
</div> </div>
</template> </template>
<script> <script>
import myPagination from "@/views/components/myPagination/index.vue"; import myPagination from "@/views/components/myPagination/index.vue";
import { Loading } from "element-ui"; import { Loading } from "element-ui";
import executive from "./echarts/executive";
import { import {
listEnterprise, listEnterprise,
addEnterprise, addEnterprise,
@ -260,9 +306,12 @@ import {
deleteEnterprise, deleteEnterprise,
exportEnterprise, exportEnterprise,
getEnterprise, getEnterprise,
// xzTree,
} from "@/api/yingji/keyEnterprise.js"; } from "@/api/yingji/keyEnterprise.js";
// import { mapState } from "vuex";
export default { export default {
components: { myPagination }, components: { myPagination, executive },
name: "Article", name: "Article",
data() { data() {
return { return {
@ -277,7 +326,19 @@ export default {
dialogVisible: false, dialogVisible: false,
queryParms: { queryParms: {
year: "", year: "",
entCode: "",
enterpriseName: "",
}, },
queryParmsdistrict: [],
district: [],
xzList: [],
props: {
checkStrictly: true,
value: "value",
label: "label",
children: "children",
},
isNoneDivision: false,
searchBefore: { searchBefore: {
pageSize: 10, pageSize: 10,
pageNum: 1, pageNum: 1,
@ -290,8 +351,6 @@ export default {
entCode: "", entCode: "",
// //
remark: "", remark: "",
//
type: "",
// //
year: "", year: "",
}, },
@ -313,23 +372,83 @@ export default {
}; };
}, },
created() { created() {
// this.getTreeList();
this.getList(); this.getList();
}, },
// computed: {
// ...mapState({
// //dept.parentId
// dept: (state) => state.user.dept,
// }),
// },
methods: { methods: {
//
// componendDistrict(district){
// let name
// this.options.map((item)=>{
// if(item.value == district) {
// name = item.label
// } else {
// item.children.map((itemTwo)=>{
// if(itemTwo.value == district) {
// name = item.label + '-' + itemTwo.label
// }
// })
// }
// })
// return name
// },
//
// quhuadizhi(district) {
// this.options = district
// },
// getTreeList() {
// xzTree().then((res1) => {
// if (this.dept.parentId == 0) {
// res1.data.forEach((value, index) => {
// this.xzList.push({
// value: value.county,
// label: value.institutionName,
// children: [],
// });
// if (value.children.length > 0) {
// value.children.forEach((value1, index1) => {
// this.xzList[index].children.push({
// value: value1.subdistrict,
// label: value1.institutionName,
// });
// });
// }
// });
// }
// });
// },
handleRemove() {}, handleRemove() {},
// quhua(e) {
// this.district = e;
// },
searchList() { searchList() {
this.searchBefore = {
pageSize: 10,
pageNum: 1,
};
this.$refs.mypagination.defaultPages();
// if (this.district) {
// this.queryParms.district = this.district;
// }
this.searchBefore = { ...this.searchBefore, ...this.queryParms }; this.searchBefore = { ...this.searchBefore, ...this.queryParms };
this.getList(); this.getList();
}, },
reset() { reset() {
this.form = { this.form = {
//
enterpriseName: "", enterpriseName: "",
// //
entCode: "", entCode: "",
// //
remark: "", remark: "",
// //
type: "", // type: "",
// //
year: "", year: "",
}; };
@ -340,7 +459,12 @@ export default {
pageSize: 10, pageSize: 10,
pageNum: 1, pageNum: 1,
}; };
this.queryParms.year = ""; this.$refs.mypagination.defaultPages();
this.queryParms = {
year: "",
entCode: "",
enterpriseName: "",
};
this.getList(); this.getList();
}, },
// //
@ -385,6 +509,7 @@ export default {
this.headerText = "修改"; this.headerText = "修改";
getEnterprise(e.id).then((res) => { getEnterprise(e.id).then((res) => {
this.form = res.data; this.form = res.data;
// this.queryParmsdistrict = this.form.district
this.dialogVisible = true; this.dialogVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.form1.clearValidate(); this.$refs.form1.clearValidate();
@ -393,6 +518,18 @@ export default {
}, },
// //
confirm() { confirm() {
// if (this.queryParmsdistrict) {
// if (this.queryParmsdistrict.length == 1) {
// this.form.district = this.queryParmsdistrict[0];
// } else if (
// this.queryParmsdistrict.length == 2 &&
// this.queryParmsdistrict[0] == this.queryParmsdistrict[1]
// ) {
// this.form.district = this.queryParmsdistrict[0];
// } else {
// this.form.district = this.queryParmsdistrict[1];
// }
// }
this.$refs.form1.validate((valid) => { this.$refs.form1.validate((valid) => {
if (valid) { if (valid) {
if (this.form.id != null) { if (this.form.id != null) {
@ -481,6 +618,7 @@ export default {
pageSize: 10, pageSize: 10,
pageNum: 1, pageNum: 1,
}; };
this.$refs.mypagination.defaultPages();
this.getList(); this.getList();
this.$refs.uploadOver.clearFiles(); this.$refs.uploadOver.clearFiles();
}) })
@ -502,7 +640,7 @@ export default {
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .el-descriptions-row th { ::v-deep .el-descriptions-row th {
width: 20% !important; width: 20% !important;
font-size: 14px; font-size: 14px;
@ -796,4 +934,3 @@ export default {
// line-height: 40px; // line-height: 40px;
} }
</style> </style>

@ -1,199 +1,322 @@
<template> <template>
<div class="mainBox"> <div class="mainBox">
<div class="select-nav"> <div class="select-nav">
<div>年份:</div> <div class="left-nav">
<el-select v-model="ruleForm.date" placeholder="请选择年份" size="mini"> <div class="navText">年份:</div>
<el-option <el-date-picker
v-for="item in options" v-model="ruleForm.plannedYear"
:key="item.value" type="year"
:label="item.label" size="mini"
:value="item.value" value-format="yyyy"
placeholder="请选择年份"
> >
</el-option> </el-date-picker>
</el-select> <div class="export" @click="searchList">
<span>搜索</span>
</div>
</div>
<div class="rightBigNav">
<div class="right-nav">
<div
class="tabStyle"
v-for="(item, index) in options1"
:key="index"
@click="active(index)"
:class="activeIndex == index ? 'blue' : ''"
>
<div
:style="`background-image:url('${
activeIndex == index ? item.url1 : item.url
}')`"
></div>
<span>{{ item.name }}</span>
</div>
</div>
</div>
</div> </div>
<!-- 各区域执法计划 --> <!-- 各区域执法计划 -->
<div class="bodyBox boxAllStyle"> <div class="bodyBox boxAllStyle" v-if="activeIndex == 1">
<div id="execution"></div> <div id="execution">
<executionPlan :newTable="newTable" :loadS="loadS"></executionPlan>
</div>
</div> </div>
<div class="bottomBox"> <div class="bottomBox" v-if="activeIndex == 1">
<div class="boxAllStyle"> <div class="boxAllStyle">
<completePlan></completePlan> <completePlan :newTable="newTable" :loadS="loadS"></completePlan>
</div> </div>
<div style="width: 15px"></div> <div style="width: 15px"></div>
<div class="boxAllStyle"> <div class="boxAllStyle">
<finishRate></finishRate> <finishRate :newTable="newTable" :loadS="loadS"></finishRate>
</div>
</div>
<div class="bgContent" v-if="activeIndex == 0">
<div class="tables">
<el-table
v-loading="load1"
:data="tableData"
style="width: 100%"
:height="530"
:border="false"
:row-class-name="tableRowClassName"
>
<el-table-column
prop="institutionName"
label="行政区划"
header-align="center"
>
<!-- <template slot-scope="scope">
{{ scope.row.deptName }}
</template> -->
</el-table-column>
<!-- <el-table-column prop="deptName" label="区县" header-align="center">
<template slot-scope="scope">
{{ scope.row.deptName.slice(scope.row.deptName.length - 1) }}
</template>
</el-table-column> -->
<!-- <el-table-column
prop="enterpriseCount"
label="省重点计划数"
header-align="center"
>
</el-table-column>
<el-table-column
prop="plannedEnterpriseCount"
label="省重点完成数"
header-align="center"
>
</el-table-column>
<el-table-column
prop="percentageCompleted"
label="省重点完成率"
header-align="center"
>
<template slot-scope="scope">
{{ scope.row.a ||0 }}%
</template>
</el-table-column>
<el-table-column
prop="planneKeyEnterpriseCount"
label="非重点计划数"
header-align="center"
>
</el-table-column>
<el-table-column
prop="remainingKeyEnterpriseCount"
label="非重点完成数"
header-align="center"
>
</el-table-column>
<el-table-column
prop="percentageNonCompleted"
label="非重点完成率"
header-align="center"
>
<template slot-scope="scope">
{{ scope.row.a ||0}}%
</template>
</el-table-column> -->
<el-table-column
prop="plannedEnterpriseCount"
label="执法计划"
header-align="center"
>
</el-table-column>
<el-table-column
label="完成执法"
prop="checkEnterpriseCount"
header-align="center"
>
</el-table-column>
<el-table-column label="完成率" prop="pt" header-align="center">
<template slot-scope="scope">
{{
scope.row.pt == "NaN" ? "0" : (scope.row.pt * 100).toFixed(2)
}}%
</template>
</el-table-column>
</el-table>
</div> </div>
<!-- <div class="pagination">
<my-pagination
:total="total"
@pagesChange="pagesChange"
></my-pagination>
</div> -->
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import * as echarts from "echarts";
import completePlan from "./echarts/completePlan"; import completePlan from "./echarts/completePlan";
import finishRate from "./echarts/finishRate"; import finishRate from "./echarts/finishRate";
import executionPlan from "./echarts/executionPlan";
import myPagination from "@/views/components/myPagination/index";
// import {
// workStatistics,
// xzTree,
// planeEnTree,
// } from "@/api/yingji/keyEnterprise.js";
import { indexRegionalism } from "@/api/yingji/home.js";
import executive from "./echarts/executive";
export default { export default {
data() { data() {
return { return {
ruleForm: { ruleForm: {
date: "", plannedYear: "",
}, },
options: [ options1: [
{
value: "选项5",
label: "2023",
},
{ {
value: "选项4", name: "表格",
label: "2022", url: require("../../assets/images/bg1.png"),
url1: require("../../assets/images/bg2.png"),
}, },
{ {
value: "选项3", name: "图表",
label: "2021", url: require("../../assets/images/tb1.png"),
}, url1: require("../../assets/images/tb2.png"),
{
value: "选项2",
label: "2020",
},
{
value: "选项1",
label: "2019",
}, },
], ],
activeIndex: 0,
load1: false,
total: 0,
tableData: [],
beforeParams: {},
//
loadS: false,
newTable:[],
}; };
}, },
components: { components: {
completePlan, completePlan,
finishRate, finishRate,
executionPlan,
myPagination,
executive,
}, },
mounted() { created() {
this.init(); this.getHomeList();
}, },
mounted() {},
methods: { methods: {
init() { searchList() {
var chartDom = document.getElementById("execution"); this.beforeParams = { ...this.beforeParams, ...this.ruleForm };
var myChart = echarts.init(chartDom); this.getHomeList()
var option = { },
title: { getHomeList() {
show: true, this.load1 = true;
text: "各区域执法计划", this.loadS = true;
textStyle: { indexRegionalism(this.beforeParams).then((res) => {
color: "#3D434D", this.tableData = res.rows;
fontSize: 16, this.newTable = res.rows
}, res.rows.forEach((value1, index1) => {
left: 34, if (value1.institutionName == "苏州市") {
top: 15, let arr1 = this.tableData.slice(index1, index1 + 1);
}, this.tableData.splice(index1, 1);
tooltip: { this.tableData.unshift(arr1[0]);
// show:false, }
trigger: "axis", });
axisPointer: { this.load1 = false;
type: "shadow", this.loadS = false;
shadowStyle: { });
color: "rgba(237,240,242,0.5)", },
// opacity: 0.1, active(e) {
// shadowColor: "rgba(237,240,242,0.5)", this.activeIndex = e;
// shadowBlur: 10, },
}, tableRowClassName({ row, rowIndex }) {
}, if (rowIndex % 2 !== 0) {
showContent: false, return "success-row";
}, }
grid: { return "";
left: "3%",
right: "3%",
bottom: "3%",
containLabel: true,
},
xAxis: [
{
type: "category",
data: [
"苏州",
"张家港市",
"常熟市",
"太仓市",
"昆山市",
"吴江区",
"吴中区",
"姑苏区",
"相城区",
"工业园区",
"高新区",
],
axisTick: {
show: false,
},
axisLabel: {
show: true,
fontSize: '13px',
fontFamily: 'Alibaba PuHuiTi',
fontWeight: 500,
color: '#525966',
},
axisLine: {
lineStyle: {
color: "#B6C3D9",
},
},
z: 1000,
},
],
yAxis: [
{
splitLine :{ //线
lineStyle:{
type:'dashed', //线 dotted线 solid:线
},
show:true //
},
axisLabel: {
show: true,
fontSize: '13px',
fontFamily: 'Alibaba PuHuiTi',
fontWeight: 500,
color: '#525966',
},
},
],
series: [
{
type: "bar",
barWidth: 28,
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
//ok
offset: 0,
color: "#FF8B02",
}, //
{
offset: 1,
color: "#FFA70F",
},
]),
},
z: 100,
data: [700, 400, 600, 300, 580, 250, 490, 200, 390, 460, 90],
//
emphasis:{
label:{
show:true,
formatter: '{c}',
position: 'top',
fontSize: 14,
color: '#FF8C03',
fontWeight: 'bold',
fontFamily:'Alibaba PuHuiTi'
}
}
},
],
};
option && myChart.setOption(option);
}, },
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.export {
display: flex;
align-items: center;
justify-content: center;
padding: 6px 19px;
background-color: #2378ec;
margin-left: 10px;
cursor: pointer;
user-select: none;
border-radius: 2px;
span {
color: #ffffff;
font-size: 14px;
font-family: "Alibaba PuHuiTi";
font-weight: 400;
}
}
.inputs {
display: flex;
}
//===
.bgContent {
height: calc(100% - 48px);
width: 100%;
.tables {
background-color: #eaf2fd;
.tabs-btns {
display: flex;
align-items: center;
justify-content: center;
.look {
display: flex;
align-items: center;
cursor: pointer;
img {
width: 20px;
margin-right: 5px;
}
span {
font-size: 15px;
font-family: Alibaba PuHuiTi;
font-weight: 400;
color: #045ffd;
}
}
}
::v-deep .el-table {
.success-row {
background-color: rgba(234, 242, 253, 0.25);
}
td {
height: 45px;
text-align: center;
font-size: 14px;
font-family: "Alibaba PuHuiTi";
font-weight: 400;
color: #525966;
}
th {
height: 42px;
background-color: #eaf2fd;
font-size: 15px;
font-family: "Alibaba PuHuiTi";
font-weight: bold;
color: #525966;
.el-checkbox {
display: none;
}
}
// .el-table__body-wrapper {
// height: 450px !important;
// overflow-y: auto;
// }
}
::v-deep .el-table::before {
height: 0;
}
}
}
.pagination {
margin-top: 10px;
}
//===
.boxAllStyle { .boxAllStyle {
background: #ffffff; background: #ffffff;
box-shadow: 0px 1px 24px 0px #e2e2e2; box-shadow: 0px 1px 24px 0px #e2e2e2;
@ -207,12 +330,54 @@ export default {
// height: 38px; // height: 38px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between;
margin-bottom: 15px; margin-bottom: 15px;
& > div:nth-of-type(1) { .left-nav {
font-family: 'Alibaba PuHuiTi'; display: flex;
margin-right: 5px; align-items: center;
color: #525966; .navText {
margin-right: 8px;
color: #525966;
font-family: "Alibaba PuHuiTi";
font-size: 14px;
display: flex;
align-items: center;
}
} }
.rightBigNav {
padding: 2px;
box-sizing: border-box;
height: 33px;
background: #fff;
.right-nav {
display: flex;
height: 100%;
font-family: "Alibaba PuHuiTi";
font-size: 14px;
.tabStyle {
height: 100%;
background: #fff;
padding: 0 10px;
border-radius: 2px;
display: flex;
align-items: center;
cursor: pointer;
user-select: none;
color: #7a8599;
& > div:nth-of-type(1) {
height: 13px;
width: 13px;
background-size: 100% 100%;
margin-right: 5px;
}
}
.blue {
background: #518afb;
color: #fff;
}
}
}
::v-deep .el-select { ::v-deep .el-select {
background-color: transparent; background-color: transparent;
width: 210px; width: 210px;
@ -253,7 +418,7 @@ export default {
} }
} }
.bottomBox { .bottomBox {
height: calc(100% - 250px - 53px - 15px); height: calc(100% - 250px - 48px - 15px);
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
& > .boxAllStyle { & > .boxAllStyle {

@ -4,51 +4,35 @@
* @Author: JC9527 * @Author: JC9527
* @Date: 2023-09-04 10:20:06 * @Date: 2023-09-04 10:20:06
* @LastEditors: JC9527 * @LastEditors: JC9527
* @LastEditTime: 2023-09-20 11:25:04 * @LastEditTime: 2023-10-07 10:59:55
--> -->
<template> <template>
<div class="plan-management"> <div class="plan-management">
<div class="plan-topBox"> <div class="plan-topBox">
<div class="drup-downs"> <div class="drup-downs">
<div class="year"> <div class="year">
<div class="year-span">年份:</div> <div class="year-span">年月:</div>
<!-- <el-select v-model="value" placeholder="请选择">
<el-option
v-for="item in optionsyear"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select> -->
<el-date-picker <el-date-picker
v-model="form.plannedYear" v-model="form.plannedYear"
type="month" type="month"
format="yyyy-MM" format="yyyy-MM"
:clearable="false" :clearable="false"
value-format="yyyy-MM" value-format="yyyy-MM"
placeholder="请选择年"> placeholder="请选择年月">
</el-date-picker> </el-date-picker>
</div> </div>
<div class="area"> <div class="area">
<div class="area-span">区划:</div> <!-- <div class="area-span">执法计划情况统计表</div> -->
<!-- <el-select v-model="value2" placeholder="请选择"> <div class="area-span">行政区划:</div>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select> -->
<!-- <div class="block">
<span class="demonstration">默认 click 触发子菜单</span> -->
<el-cascader <el-cascader
v-model="form.district" v-model="form.district"
:disabled="disabled"
placeholder="请选择" placeholder="请选择"
:options="options" :options="options"
:props="props" :props="props"
@change="handleChange"></el-cascader> @change="handleChange"></el-cascader>
<!-- </div> -->
</div> </div>
<div class="select-btn reset" @click="reset"></div>
</div> </div>
<div class="btns"> <div class="btns">
<div class="export" @click="exportFile"> <div class="export" @click="exportFile">
@ -59,7 +43,6 @@
<img src="@/assets/images/newProject.png" alt=""> <img src="@/assets/images/newProject.png" alt="">
<span>新增计划</span> <span>新增计划</span>
</div> </div>
<div class="select-btn reset" @click="reset"></div>
</div> </div>
</div> </div>
<div class="plan-bottomBox"> <div class="plan-bottomBox">
@ -83,7 +66,7 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="plannedYear" prop="plannedYear"
label="计划年" label="计划年"
width="180" width="180"
header-align="center" header-align="center"
> >
@ -95,19 +78,22 @@
width="180" width="180"
header-align="center" header-align="center"
> >
<template slot-scope="scope">
<span>{{ componendDistrict(scope.row.district) }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="planNumb" prop="entprName"
label="计划企业数量" label="企业名称"
header-align="center" header-align="center"
> >
</el-table-column> </el-table-column>
<el-table-column <!-- <el-table-column
prop="keyCount" prop="keyCount"
label="省重点数" label="省重点数"
header-align="center" header-align="center"
> >
</el-table-column> </el-table-column> -->
<el-table-column <el-table-column
prop="createTime" prop="createTime"
label="创建时间" label="创建时间"
@ -140,64 +126,207 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- <el-table
v-if="refreshTable"
v-loading="loading"
:data="tableData"
:height="484"
:border="false"
tooltip-effect="light"
row-key="id"
:default-expand-all="isExpandAll"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
>
<el-table-column prop="district" label="行政区划" header-align="center" show-overflow-tooltip></el-table-column>
<el-table-column prop="amount" label="企业总数" header-align="center"></el-table-column>
<el-table-column prop="planNumb" label="已计划数" header-align="center"></el-table-column>
<el-table-column prop="keyCount" label="已计划省重点数" header-align="center"></el-table-column>
<el-table-column prop="keyCount" label="剩余重点数" header-align="center"></el-table-column>
<el-table-column label="查看计划明细" align="center" width="200" class-name="small-padding fixed-width">
<template slot-scope="scope">
<div class="tabs-btns">
<div class="look" @click="look(scope.row)">
<img src="@/assets/images/look.png" alt="">
<span>查看</span>
</div>
<div class="change" @click="change(scope.row)">
<img src="@/assets/images/change.png" alt="">
<span>修改</span>
</div>
<div class="delete" @click="deleteItem(scope.row)">
<img src="@/assets/images/delete.png" alt="">
<span>删除</span>
</div>
</div>
</template>
</el-table-column>
</el-table> -->
</div> </div>
<div class="pagination"> <div class="pagination">
<my-pagination :total="total" @pagesChange="pagesChange"></my-pagination> <my-pagination :total="total" @pagesChange="pagesChange" ref="mypagination"></my-pagination>
</div> </div>
</div> </div>
<my-dialog ref="myDialog" v-on:close="padlock"></my-dialog> <my-dialog ref="myDialog" v-on:close="padlockOne"></my-dialog>
<my-dialogtwo ref="myDialogTwo"></my-dialogtwo> <my-dialogtwo ref="myDialogTwo"></my-dialogtwo>
<temp-dialog ref="tempDialog" v-on:close="padlock"></temp-dialog>
</div> </div>
</template> </template>
<script> <script>
import myPagination from "@/views/components/myPagination/index.vue" import myPagination from "@/views/components/myPagination/index.vue"
import myDialog from "@/views/components/dialog/index.vue" import myDialog from "@/views/components/dialog/index.vue"
import myDialogtwo from "@/views/components/dialogTwo/index.vue" import myDialogtwo from "@/views/components/dialogTwo/index.vue"
import tempDialog from "@/views/components/tempDialog/index.vue"
import { Loading } from "element-ui"; import { Loading } from "element-ui";
import { mapState } from "vuex";
export default { export default {
components:{myPagination,myDialog,myDialogtwo}, components:{myPagination,myDialog,myDialogtwo,tempDialog},
data() { data() {
return { return {
optionsyear:[], optionsyear:[],
options:[ options:[],
myDistrict:[],
],
form:{ form:{
district:'', district:[],
plannedYear:'' plannedYear:''
}, },
mydistrict:'',
props:{ props:{
value:'county', value:'county',
label:'institutionName' label:'institutionName',
checkStrictly: true
}, },
value:'2022', tableData: [
value2:'苏州', // {
tableData: [], // id: 1,
multipleSelection: [], // amount: '260',
// district: '',
// planNumb: '200',
// keyCount:10,
// children: [{
// id: 31,
// amount: '220',
// district: '',
// planNumb: '30',
// keyCount:10,
// }, {
// id: 32,
// amount: '200',
// district: '',
// planNumb: '20',
// keyCount:10,
// }]
// }, {
// id: 2,
// amount: '330',
// district: '',
// planNumb: '200',
// keyCount:10,
// }, {
// id: 256,
// amount: '350',
// district: '',
// planNumb: '200',
// keyCount:10,
// }, {
// id: 257,
// amount: '300',
// district: '',
// planNumb: '200',
// keyCount:10,
// }
],
pages:{ pages:{
pageSize:10, pageSize:10,
pageNum:1 pageNum:1
}, },
total:0, total:0,
loading:true, loading:false,
disabled:false,
//
isExpandAll: true,
//
refreshTable: true,
county:false
} }
}, },
computed: {
...mapState({
dept: (state) => state.user.dept,
// district: (state) => state.user.district,
}),
},
watch:{ watch:{
form:{ form:{
handler(newForm) { handler(newForm) {
let { district, plannedYear} = newForm this.pages.pageNum = 1;
district = district[1] this.pages.pageSize = 10;
let obj = {...this.pages,district,plannedYear} this.$refs.mypagination.defaultPages();
let obj
// console.log(newForm,'newForm')
//
if(!this.disabled) {
if(Array.isArray(newForm.district)){
if(newForm.district.length == 2) {
let district = this.form.district[1].slice(1, 11);
obj = { ...this.pages, ...this.form,district };
} else if(newForm.district.length == 1) {
let district = this.form.district[0].slice(0, 8);
obj = { ...this.pages, ...this.form,district };
} else {
obj = { ...this.pages, ...this.form};
}
//
} else {
//
if(this.county){
let district = this.form.district.slice(0, 8);
obj = { ...this.pages, ...this.form,district };
} else {
let district = this.form.district.slice(1, 11);
obj = { ...this.pages, ...this.form,district };
}
}
} else {
//
// if(this.dept.ancestors.split(',').length == 2) {
// this.subdistrict = this.form.subdistrict.slice(1, 8);
// obj = { ...this.pages, ...this.form,subdistrict:this.subdistrict };
// } else if(this.dept.ancestors.split(',').length == 3){
// let district = this.form.district.slice(1, 11);
let district = this.form.district;
obj = { ...this.pages, ...this.form,district };
// }
}
// console.log(obj,'obj')
this.getList(obj) this.getList(obj)
}, },
deep:true deep:true,
} }
}, },
methods:{ methods:{
//
componendDistrict(district){
// console.log(district)
// console.log(this.myDistrict)
let name
this.myDistrict.map((item)=>{
if(item.county == district) {
name = item.institutionName
} else {
item.children.map((itemTwo)=>{
if(itemTwo.subdistrict == district) {
name = item.institutionName + '-' + itemTwo.institutionName
}
})
}
})
return name
},
// //
pagesChange(pages){ pagesChange(pages){
// console.log(pages) // console.log('123123')
this.getList(pages) this.getList(pages)
this.pages = pages
}, },
// //
handleSelectionChange(val) { handleSelectionChange(val) {
@ -212,10 +341,21 @@
type: "warning", type: "warning",
}) })
.then(() => { .then(() => {
let district
if(Array.isArray(this.form.district)){
if(this.form.district.length == 1){
district = this.form.district[0];
} else if(this.form.district.length == 2){
district = this.form.district[1];
}
} else {
district = this.form.district;
}
this.download( this.download(
"/pharmaceuticals/bPlanManage/export", "/pharmaceuticals/bPlanEnterprise/exportplan",
{ {
...this.form, ...this.form,
district
}, },
`计划管理.xlsx` `计划管理.xlsx`
); );
@ -224,28 +364,102 @@
}, },
// //
newProject(){ newProject(){
this.$refs.myDialog.open('newlyIncreased') this.$refs.myDialog.open('newlyIncreased',this.dept)
}, },
// //
reset(){ reset(){
Object.keys(this.form).forEach(key=>this.form[key]='') // this.pages.pageNum = 1;
this.getList(this.pages) // this.pages.pageSize = 10;
// this.$refs.mypagination.defaultPages();
// let obj
if(this.dept.ancestors.split(',').length == 1) {
this.form = {
plannedYear:'',
district:''
}
// obj = this.pages
} else {
let { district} = this.form;
this.form.plannedYear='';
this.form.district=this.mydistrict;
// obj = {...this.pages,district}
}
// this.getList(obj)
}, },
// dialog // dialog
padlock(){ padlock(){
this.getList(this.pages); // let { district} = this.form;
this.pages.pageNum = 1;
this.pages.pageSize = 10;
this.$refs.mypagination.defaultPages();
let obj
if(!this.disabled) {
if(Array.isArray(this.form.district)){
if(this.form.district.length == 2) {
let district = this.form.district[1].slice(1, 11);
obj = { ...this.pages, ...this.form,district };
} else if(this.form.district.length == 1) {
let district = this.form.district[0].slice(1, 8);
obj = { ...this.pages, ...this.form,district };
} else {
obj = { ...this.pages, ...this.form};
}
//
} else {
//
if(this.county){
let district = this.form.district.slice(1, 8);
obj = { ...this.pages, ...this.form,district };
} else {
let district = this.form.district.slice(1, 11);
obj = { ...this.pages, ...this.form,district };
}
}
} else {
//
let district = this.form.district;
obj = { ...this.pages, ...this.form,district };
}
// console.log('obj',obj)
this.getList(obj);
},
padlockOne(){
this.pages.pageNum = 1;
this.pages.pageSize = 10;
this.$refs.mypagination.defaultPages();
if(this.dept.ancestors.split(',').length == 1) {
if(this.form.district.length == 0 || this.form.plannedYear == '') {
this.getList(this.pages);
} else {
this.form.district = [];
this.form.plannedYear = '';
}
} else {
if(this.form.district == this.mydistrict || this.form.plannedYear == '') {
this.getList(this.pages);
} else {
this.form.district = this.mydistrict
this.form.plannedYear = ''
}
}
// this.getList(this.pages);
}, },
// //
handleChange(value){ handleChange(value){
console.log(value) // console.log(value)
// if(value.length == 2) {
// this.form.district = value[1]
// } else {
// this.form.district = value[0]
// }
}, },
// //
look(row){ look(row){
this.$refs.myDialogTwo.open(row); this.$refs.tempDialog.open(row,2);
}, },
// //
change(row){ change(row){
this.$refs.myDialog.open(row) this.$refs.tempDialog.open(row,1)
}, },
// //
deleteItem(row){ deleteItem(row){
@ -264,7 +478,7 @@
spinner: "el-icon-loading", spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)", background: "rgba(0, 0, 0, 0.7)",
}); });
let data = await this.$api.yingji.bPlanManage('delete',_,{idList:idList.join(',')}) let data = await this.$api.yingji.bPlanEnterprise('delete',_,{idList:idList.join(',')})
if(data.code == 200) { if(data.code == 200) {
this.loading = false; this.loading = false;
downloadLoadingInstance.close(); downloadLoadingInstance.close();
@ -272,7 +486,21 @@
message: '删除成功', message: '删除成功',
type: 'success' type: 'success'
}); });
this.getList(); // let { district} = this.form;
let district
if(this.dept.ancestors.split(',').length == 2) {
district = this.form.district.slice(0, 8);
} else if(this.dept.ancestors.split(',').length == 3) {
district = this.form.district;
} else {
if(this.form.district.length == 1) {
district = this.form.district.slice(0, 8);
} else {
district = this.form.district;
}
}
let obj = {...this.pages,district}
this.getList(obj);
} }
} catch (error) { } catch (error) {
downloadLoadingInstance.close(); downloadLoadingInstance.close();
@ -292,30 +520,68 @@
// list // list
async getList(pages){ async getList(pages){
this.loading = true; this.loading = true;
let res = await this.$api.yingji.bPlanManage('get',_,pages); let res = await this.$api.yingji.planmx(pages);
// console.log(res);
if(res.code == 200) { if(res.code == 200) {
this.loading = false; this.loading = false;
this.tableData = res.data.list;
this.total = res.data.total
} }
this.tableData = res.data.list;
this.total = res.data.total
}, },
commentData(item){ commentData(item,dept){
if(item instanceof Array) { // if(dept.ancestors.split(',').length == 3) {
item.map((item)=>{ item.map((item)=>{
if(item.children instanceof Array && item.children.length == 0){ // if(item.children instanceof Array && item.children.length == 0){
delete item.children; // item.county = item.subdistrict
} else { // delete item.children;
this.props.value = 'subdistrict' // } else {
this.commentData(item.children) // this.commentData(item.children,this.dept)
// }
item.children.map((itemTwo)=>{
if(itemTwo.children.length == 0){
delete itemTwo.children;
}
itemTwo.county = itemTwo.subdistrict
})
})
// }
this.options = item;
if(dept.ancestors.split(',').length == 2) {
this.options = this.options.filter((item)=>{
return item.institutionName == dept.deptName
})
this.options.map((item)=>{
if(item.institutionName == dept.deptName) {
// console.log(item.county)
this.form.district = item.county;
this.mydistrict = item.county;
this.county = true;
// delete item.children
} }
}) })
// this.disabled = true;
} else if(dept.ancestors.split(',').length == 3) {
// console.log(this.options)
this.options.map((item)=>{
// console.log(item.children,'item.children')
item.children.map((itemTwo)=>{
if(itemTwo.institutionName == dept.deptName) {
this.form.district = itemTwo.subdistrict;
// this.form.district.push(item.county,itemTwo.subdistrict);
// console.log(this.form.district,'item.institutionName')
this.mydistrict = itemTwo.subdistrict;
this.county = false;
// delete itemTwo.children
}
})
})
this.disabled = true;
} }
this.options = item
} }
}, },
async created() { async created() {
this.checkListTwo = this.checkList; // console.log(this.dept)
// console.log(this.myDistrict)
// this.checkListTwo = this.checkList;
// this.$nextTick(()=>{ // this.$nextTick(()=>{
// let dom = document.getElementsByClassName('tables'); // let dom = document.getElementsByClassName('tables');
// let height = dom[0].getBoundingClientRect(); // let height = dom[0].getBoundingClientRect();
@ -325,8 +591,11 @@
// console.log(this.main.height) // console.log(this.main.height)
// }) // })
let data = await this.$api.yingji.tree(); let data = await this.$api.yingji.tree();
this.commentData(data.data) this.myDistrict = data.data;
this.getList(this.pages); this.commentData(data.data,this.dept)
if(this.dept.ancestors.split(',').length == 1) {
this.getList(this.pages);
}
}, },
} }
</script> </script>
@ -343,10 +612,11 @@
.drup-downs { .drup-downs {
display: flex; display: flex;
align-items: center; align-items: center;
flex: 1;
.year { .year {
display: flex; display: flex;
align-items: center; align-items: center;
margin-right: 81px; // margin-right: 200px;
.year-span { .year-span {
font-size: 14px; font-size: 14px;
font-family: 'Alibaba PuHuiTi'; font-family: 'Alibaba PuHuiTi';
@ -359,7 +629,15 @@
.area { .area {
display: flex; display: flex;
align-items: center; align-items: center;
// justify-content: center;
// flex: 1;
.area-span { .area-span {
// font-size: 20px;
// font-family: 'Alibaba PuHuiTi';
// font-weight: bold;
// color: #525966;
// line-height: 40px;
margin-left: 40px;
font-size: 14px; font-size: 14px;
font-family: 'Alibaba PuHuiTi'; font-family: 'Alibaba PuHuiTi';
font-weight: 400; font-weight: 400;
@ -411,6 +689,21 @@
transform: rotate(180deg); transform: rotate(180deg);
} }
} }
.select-btn {
width: 120px;
height: 34px;
border-radius: 2px;
display: flex;
align-items: center;
justify-content: center;
font-size: 15px;
font-family: 'Alibaba PuHuiTi';
font-weight: 500;
color: #ffffff;
cursor: pointer;
background: #FDAB5B;
margin-left: 20px;
}
} }
.btns { .btns {
display: flex; display: flex;
@ -432,21 +725,6 @@
font-weight: 400; font-weight: 400;
} }
} }
.select-btn {
width: 120px;
height: 34px;
border-radius: 2px;
display: flex;
align-items: center;
justify-content: center;
font-size: 15px;
font-family: 'Alibaba PuHuiTi';
font-weight: 500;
color: #ffffff;
cursor: pointer;
background: #FDAB5B;
margin-left: 20px;
}
.export { .export {
background-color: #2378EC; background-color: #2378EC;
margin-right: 30px; margin-right: 30px;

@ -25,7 +25,8 @@ module.exports = {
// 部署生产环境和开发环境下的URL。 // 部署生产环境和开发环境下的URL。
// 默认情况下Vue CLI 会假设你的应用是被部署在一个域名的根路径上 // 默认情况下Vue CLI 会假设你的应用是被部署在一个域名的根路径上
// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。 // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
publicPath: process.env.NODE_ENV === "production" ? "/demo/suzhouyingjiPC/" : "/", // publicPath: process.env.NODE_ENV === "production" ? "/demo/suzhouyingjiPC/" : "/",
publicPath: process.env.NODE_ENV === "production" ? "./" : "/",
// 在npm run build 或 yarn build 时 生成文件的目录名称要和baseUrl的生产环境路径一致默认dist // 在npm run build 或 yarn build 时 生成文件的目录名称要和baseUrl的生产环境路径一致默认dist
outputDir: "dist", outputDir: "dist",
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下) // 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
@ -48,15 +49,14 @@ module.exports = {
// ["^" + process.env.VUE_APP_BASE_API]: "", // ["^" + process.env.VUE_APP_BASE_API]: "",
// }, // },
// }, // },
'/api': { "/api": {
// target: `http://39.101.188.84:9033`,
target: `http://39.101.188.84:9033`, target: `http://39.101.188.84:9033`,
// target: `http://192.168.0.119:9033`,
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
'^/api': '' "^/api": "",
}, },
}, },
}, },
disableHostCheck: true, disableHostCheck: true,
}, },

Loading…
Cancel
Save