Merge branch 'dev' of http://62.234.3.186:3000/sxyanzhu/jhbigscreen into dev
# Conflicts: # src/router/index.jsdev
commit
5bc6a7ddc9
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
|
@ -18,4 +18,14 @@
|
|||
}
|
||||
.my-module-title{
|
||||
background: url(../images/one/2x1.png) no-repeat;background-size: 100%;
|
||||
}
|
||||
|
||||
|
||||
.mytable.is-scroll .el-table__body-wrapper::-webkit-scrollbar{
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
}
|
||||
.mytable.is-scroll .el-table__body-wrapper::-webkit-scrollbar-thumb {
|
||||
background-color: rgb(1, 169, 255);
|
||||
border-radius: 4px;
|
||||
}
|
|
@ -9,7 +9,7 @@
|
|||
<link rel="stylesheet" href="/cdn/element-ui/lib/theme-chalk/index.css">
|
||||
<link rel="stylesheet" href="css/largeScreenLayout.css?v=20240415">
|
||||
<link rel="stylesheet" href="css/largeScreenStyle.css?v=20240415">
|
||||
<link rel="stylesheet" href="css/new.css?v=2024052501">
|
||||
<link rel="stylesheet" href="css/new.css?v=2024052901">
|
||||
|
||||
<link rel="stylesheet" href="css/sichuanTibet.css?v=2024103201">
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,72 @@
|
|||
window.initMap=()=>{
|
||||
delete window.mapDefault
|
||||
delete window.mapApi
|
||||
delete window.mapOptions
|
||||
delete window.mapNacCube
|
||||
window.mapDefault={
|
||||
"container": "cesiumContainer",
|
||||
"showfps": false,
|
||||
"openterrain": true,
|
||||
"imageryprovider": "tianditu_image",
|
||||
"terrainProvider": "http://106.12.253.67:9304/",
|
||||
"mapworldkey": "6215132e0336a3db28ce73f8c9ff6db6",
|
||||
"openearth": false,
|
||||
"maxspaceerror": 2000,
|
||||
"loading": false,
|
||||
"bgcolor": "#87CEFA",
|
||||
"outlinecolor": "#000000",
|
||||
"outlineScaleVal": 1.001,
|
||||
"selectedcolor": "#ff0000",
|
||||
"sceneMode": 3,
|
||||
"TwoMapNavigationEnable": false,
|
||||
"throughwall": true,
|
||||
"searchbox": false,
|
||||
"mapbox": true,
|
||||
"sitepath": "/static/Cesium/",
|
||||
//"secretkey": "80840d6054a373fa6493fe6a8cd7c0b8a01924bf58e825bfe1a1a67cb0a02263b5549ae0c4c04dde2e457c9132b600699a2f430fe4b7a52ae76d0bdd0633e4f1b1dd0395c04c1b00f41e1b0c3020a71600f1cc3bd764e4d130249ddd6e2916a73792839cb97ddb24f090343455f7834c356e76d9d11fd5b479eb391b46cc93e66da10e0ba1fed735c8b1b1f086973f6152b6a2299e3e22c9450d7fc8c8452aa23013404ec41c18c92e7ff7e2a3fe238234fec9927bc4cd95b450c2cdae94df00da4c49c467adacd9ec7f7c00482028425ebbbee7ceb46deec08dc9751ee993a353012fbe2ebcf6e0f81b95abdf8d437c4965454914fcc7b07d28062bc2976948356e76d9d11fd5b479eb391b46cc93e66da10e0ba1fed735c8b1b1f086973f6152b6a2299e3e22c9cc8c33b16ea71cc03013404ec41c18c9cc748e652ce16fe7061c32d550edfda330c1555e0c08e51f698f96b91615d8220acd9cb22f32e9757681487e0680adfbfacb9b5d2ce5a13b664d8466043270f9f3bde6ac6a05cf25ab0ccc0659a290c9669997be7ccc0086c3d61f7cf5f649cb25f0dbad9f7f66e3165cad25065145affac91bea061f4ff485af667dd7ebaf4baeea64611acbe5c74018be5a8b704fcd4f53d18504940411fac91bea061f4ff49a2f853c245297edc3d61f7cf5f649cb0f9b84173857a7b67c27928b58b4a6a65f517a43f106335e8b1d5c423a171723ffa04d0ac4e5c1a1853fcb2bc95ee8056cd5b4826fa55926733ef859a5f169e6afafd0506174e86864d53d967da98ab0b0e08d14be6d452c6c69755ac3a391993370a029761da893cfbf575da87c6b5ca602467b79c6c9532f438aaafb9ec915692f0287a8db979969e5635404d6fdfb753151533a277044afdd825f7197f2896c69755ac3a391993370a029761da893af24d88c02bccfae6cd5b4826fa55926f7722b78090b30b986f9287101582d8841187054ec673ebd2042f9836ea453c3afafd0506174e86800225b7f4102e3585b1923cb186fe0ceee54c6f17ab8555da26ecd334722494fc515b205e9624a4494c772ef4f023a606882e118fa6321c24ddee4821c840fb56aac929d6d0a052d5ff97d71e43811db939f7340826236af6f10316a04bf618d494a26e0fd06f7daa07177989e1680a4cf14829a5847f70377d6c12f1649400fcab44f4ff52989cf129aa6cca660be152a75b8e35648925dbce381b345d9e137c04a02a4c8252625f5625eed58fd34b7be4266e54212e88b23f012bead9abaef9e18aa308f0ecffaf3dda7d7b4efd2e0c4b8de161864620fc1f2af98bde031b29e0865381c96bbc10921b48a068558915ff023d18526f5d399e0893df43db7122415d52565dc982ea24fbd825734dbaefadc6df0f19d925c7f63d343a622134b1c934d130d662447add19064adbbb2fd24a82c0fbfcbc3175fc32761df099156daf4e86455740207eb4e4a5300d9c1a17ffd43703d476c36ef07df2206bd8d232b844ff3c1d7cf7c47ec502183af4e27b644d89a77efad286dee59796b124081510f8a6ea5c1dff9c3d61f7cf5f649cb25f0dbad9f7f66e3e0e7c3406ae4dd4eebc424f09f933d0eb1a881ed05ca8d5c70958237eb5b91d4e574440ea0c9179a582dc966bcfc1f21cf3630a2823a9a2d22bd09a00b213aae3866768ae2f24dde6784fbf292c2cba1ab3a1a0dac231941d2277e675309a46ea6fde1492ec9a29c4f53d18504940411e9520f8be669a95a8618879da1244784b88edb1244f5021a0991de19ea44c0dd",
|
||||
"secretkey":"80840d6054a373fa6493fe6a8cd7c0b8a01924bf58e825bfe1a1a67cb0a02263b5549ae0c4c04dde2e457c9132b600699a2f430fe4b7a52ae76d0bdd0633e4f1b1dd0395c04c1b00f41e1b0c3020a71600f1cc3bd764e4d130249ddd6e2916a73792839cb97ddb24f090343455f7834c356e76d9d11fd5b479eb391b46cc93e66da10e0ba1fed735c8b1b1f086973f6152b6a2299e3e22c9450d7fc8c8452aa23013404ec41c18c92e7ff7e2a3fe238234fec9927bc4cd95b450c2cdae94df00da4c49c467adacd9ec7f7c00482028425ebbbee7ceb46deec08dc9751ee993a353012fbe2ebcf6e0f81b95abdf8d437c4965454914fcc7b07d28062bc29769484f1e8c851c48f2f6dc0362e2b91959674965454914fcc7b07d28062bc297694837e40a524d2bbb8599a991777d21e7823e88c9264a91404ad3c355b1486472d2d33d2024825618177d6fdab307e075f86fd6ba535458df7b840efa284b50840eefc6d4ffdc9011ea24d736db704d8954950390941b9aaa80089e41bf1a87879de6cd674b6676107f3d4256820c37cd19030c6924517e4349f71e19f74e660313cf3630a2823a9a2d4ce0dce6f81f87eea1ccfaae84e9dbea030c6924517e4349b5024217bdf743a670fd5d571139e4f0e6cd674b6676107fc8b14b44ceeed441af4b194f05a956195b0d603c259172b75b1923cb186fe0ce5be04514c976edd0c12cc462769b2e685be04514c976edd04ca2ef020dc56bee8321afe91a1dcbb1afafd0506174e8680f18f43fcd13957e37bdb1221aa64295f230f78b7aa0c960753151533a2770446a6cb07b672285d204ba1ecd4a967f5dcb6b0c9432a8108f7d1f9f3c7343796941187054ec673ebdbd57ea3b34f9c6cc37bdb1221aa6429512b695fc8f5b4b6fc12cc462769b2e685be04514c976edd038d27dbe2e47e96b753151533a277044d80e0285b44b743f64d53d967da98ab0555e1e6d7d3c0468c8e6f7bb1e69ec27703c52805d982a9a7b7134e53eaa4f83b046182095e9d992f79b33aea9c3effb017d98bd95ced22c1d7f698eff812326cfff54e0f16a46a6df58986290a016ee80352734e97c0efea07177989e1680a4cf14829a5847f70377d6c12f1649400fcab44f4ff52989cf129aa6cca660be152a75b8e35648925dbce381b345d9e137c04a02a4c8252625f5625eed58fd34b7be4266e54212e88b23f012bead9abaef9e18aa308f0ecffaf3dda7d7b4efd2e0c4b8de161864620fc1f2af98bde031b29e0865381c96bbc10921b48a068558915ff023d18526f5d399e0893df43db7122415d52565dc982ea24fbd825734dbaefadc6df0f19d925c7f63d343a622134b1c934d130d662447add19064adbbb2fd24a82c0fbfcbc3175fc32761df099156daf4e86455740207eb4e4a5300d9c1a17ffd43703d476c36ef07df2206bd8d232b844ff3c1d7cf7c47ec502183af4e27b644d89a77efad286dee59796b124081510f8a6ea5c1dff9c3d61f7cf5f649cb25f0dbad9f7f66e3e0e7c3406ae4dd4eebc424f09f933d0eb1a881ed05ca8d5c70958237eb5b91d4e574440ea0c9179a582dc966bcfc1f21cf3630a2823a9a2d22bd09a00b213aae3866768ae2f24dde6784fbf292c2cba1ab3a1a0dac231941d2277e675309a46ea6fde1492ec9a29c4f53d18504940411e9520f8be669a95a8618879da1244784b88edb1244f5021a3b46c94014dbc1fa330426cfc4267280",
|
||||
"editmode": false,
|
||||
"cadmode": false,
|
||||
"isRequestWebgl2": true,
|
||||
"requestRenderMode": true,
|
||||
"colorBlendMode": 2,
|
||||
"loadAnimation": false,
|
||||
"isStrictClip": true,
|
||||
"isMsaaSamples": true,
|
||||
"isOpenVR": false,
|
||||
"language": "zh-CN"
|
||||
};
|
||||
window.mapApi = new SAPI(window.mapDefault); //api对象后面调用接口要全程使用,控制好作用域
|
||||
|
||||
//导航体
|
||||
window.mapOptions = {
|
||||
imgs: { // 六面图片
|
||||
top: '/cesium/Assets/Images/Navigation/bim/top.png',
|
||||
bottom: '/cesium/Assets/Images/Navigation/bim/under.png',
|
||||
east: '/cesium/Assets/Images/Navigation/bim/east.png',
|
||||
south: '/cesium/Assets/Images/Navigation/bim/south.png',
|
||||
west: '/cesium/Assets/Images/Navigation/bim/west.png',
|
||||
north: '/cesium/Assets/Images/Navigation/bim/north.png',
|
||||
},
|
||||
offset: { // 屏幕坐标偏移
|
||||
corner: GLENavigationCube.RightTop,
|
||||
x: 25,
|
||||
y: 20
|
||||
},
|
||||
cube: {
|
||||
hoverColor: '#7193dc', // 立方导航快鼠标移过显示颜色
|
||||
size: 75,// 导航立方尺寸
|
||||
hotPointSize: 7,// 导航立方棱角热点区域尺寸
|
||||
cubeTextColor: "#4c4c4ccc",// cube 各个面文字颜色
|
||||
cubeStrokeColor: "#374769cc",// cube 各个面边框颜色
|
||||
cubeFillColor: "#374769cc",// cube 各个面填充颜色
|
||||
},
|
||||
zoomRatios: 1, // 缩放倍率
|
||||
show: true, // 是否显示
|
||||
showAxes: true, // 是否显示XYZ轴线
|
||||
};
|
||||
window.mapNacCube = window.mapApi.Plugin.initNavCube(window.mapOptions); // 实例化出来的对象可用于更新和设置可视状态
|
||||
|
||||
//window.mapApi.Public.setSunshineDuration("13:00");
|
||||
// OR 最简形式
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -58,7 +58,7 @@ const listByCategory=(projectId,deptId,category,pageNum,pageSize)=>{
|
|||
}
|
||||
})
|
||||
}
|
||||
const listByState=(projectId,deptId,state,pageNum,pageSize)=>{
|
||||
const listByState=(projectId,deptId,state,pageNum,pageSize)=>{
|
||||
return request({
|
||||
url: `bgscreen/flow/listByState?pageNum=${pageNum}&pageSize=${pageSize}`,
|
||||
method: 'post',
|
||||
|
|
|
@ -22,7 +22,7 @@ const getProgressProjects=()=>{
|
|||
|
||||
const groupByProjectCategory=(deptId,cb)=>{
|
||||
request({
|
||||
url:`bgscreen/project/groupByProjectCategory?deptId=${deptId}`,
|
||||
url:`bgscreen/project/groupByProjectCategory?deptId=${deptId||0}`,
|
||||
method: 'get'
|
||||
}).then(res=>{
|
||||
let objs=(res.data||[]).map(it=>{
|
||||
|
@ -92,9 +92,9 @@ const getInfo=()=>{
|
|||
method:'get'
|
||||
})
|
||||
}
|
||||
const listPhotography=id=>{
|
||||
const listPhotography=(id,deptId)=>{
|
||||
return request({
|
||||
url: `bgscreen/photography/listPhotography?projectId=${id}`,
|
||||
url: `bgscreen/photography/listPhotography?projectId=${id}&deptId=${deptId}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
|
|
@ -7,6 +7,14 @@ const listView=(deptId,projectId)=> {
|
|||
})
|
||||
}
|
||||
|
||||
const list=(data,pageNum,pageSize)=> {
|
||||
return request({
|
||||
url: `/bgscreen/aiBoxVideo/list?pageNum=${pageNum}&pageSize=${pageSize}`,
|
||||
data:data,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
const getVideoPassage=(deptId,projectId,passageType,importance)=> {
|
||||
return request({
|
||||
url: `/bgscreen/aiBoxVideo/getVideoPassage?deptId=${deptId||0}&projectId=${projectId||0}&passageType=${passageType}&importance=${importance}`,
|
||||
|
@ -21,6 +29,13 @@ const groupCountByAlarmType=(deptId,projectId,now)=> {
|
|||
})
|
||||
}
|
||||
|
||||
const groupCountByProject=(deptId,projectId)=> {
|
||||
return request({
|
||||
url: `/bgscreen/aiBoxVideo/groupCountByProject?deptId=${deptId||0}&projectId=${projectId||0}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询视频分布汇总
|
||||
const selectGroupCountVideoConfig=(deptId,projectId)=> {
|
||||
return request({
|
||||
|
@ -31,8 +46,10 @@ const selectGroupCountVideoConfig=(deptId,projectId)=> {
|
|||
|
||||
|
||||
export default{
|
||||
list,
|
||||
listView,
|
||||
getVideoPassage,
|
||||
groupCountByAlarmType,
|
||||
selectGroupCountVideoConfig
|
||||
selectGroupCountVideoConfig,
|
||||
groupCountByProject
|
||||
}
|
|
@ -1,73 +1,109 @@
|
|||
<template>
|
||||
<div :class="red ? 'head-title red-head' : 'head-title'" class="main-header" :key="nav">
|
||||
<div class="head-title-label">
|
||||
产发工程数字管理平台
|
||||
<img src="cflogo.png" style="position: absolute;height: 24px;left: 4px;top: 28px;">
|
||||
<span style="margin-left: 108px;display: block;margin-top: 3px;">产发工程数字管理平台</span>
|
||||
</div>
|
||||
<div class="head-title-tab">
|
||||
<div v-if="!isTypeBuser" :class="nav == 1 ? 'head-nav active' : 'head-nav'" @click="pageJump(1, '#/')">项目概况
|
||||
</div>
|
||||
<div :class="(nav >=20 && nav <30) || nav==2? 'head-nav active' : 'head-nav'" style="position: relative;"
|
||||
</div>
|
||||
<div :class="(nav >= 20 && nav < 40) || nav == 2 ? 'head-nav active' : 'head-nav'" style="position: relative;"
|
||||
class="has-submenu">
|
||||
<div @click="pageJump(2, '#/detail')">项目详情</div>
|
||||
<div @click="pageJump(2, '#/detail')">项目详情</div>
|
||||
<div class="header-btn-list" v-if="!isTypeBuser">
|
||||
<div class="header-btn-list-arrow"></div>
|
||||
<div class="header-btn-list-item" style="">
|
||||
<div class="header-btn-list-padding menu-row1" style="text-align: left;">
|
||||
<button type="button" :class="nav == 21 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(21, '#/prjSafety')">安全管理</button>
|
||||
<button type="button" :class="nav == 22 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(22, '#/prjQuality')">质量管理</button>
|
||||
<button type="button" :class="nav == 23 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(23, '#/prjProgress')">进度管理</button>
|
||||
<button type="button" :class="nav == 24 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(24, '#/prjEngin')">工程管理</button>
|
||||
</div>
|
||||
<div
|
||||
style="color:rgb(1, 169, 255);margin:0px 12px;text-align: left;border-bottom: dotted 1px #cccccc88;font-weight: bold;line-height:30px;">
|
||||
监测监控</div>
|
||||
<div class="header-btn-list-padding menu-row2" style="text-align: left;">
|
||||
<button type="button" :class="nav == 25 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(25, '#/prjVideo')">视频监控</button>
|
||||
<button type="button" :class="nav == 26 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(26, '#/prjAiVideo')">AI识别监控</button>
|
||||
<button type="button" :class="nav == 27 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(27, '#/prjPhotography')">项目全景</button>
|
||||
<button type="button" :class="nav == 28 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(28, '#/towerCrane')">塔吊监控</button><br />
|
||||
<button type="button" :class="nav == 29 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(29, '#/excavation')">基坑监控</button>
|
||||
<button type="button" :class="nav == 30 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(30, '#/distributionBox')">配电箱监控</button>
|
||||
<button type="button" :class="nav == 31 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(31, '#/dumbwaiter')">升降机监控</button>
|
||||
<button type="button" :class="nav == 32 ? 'active' : ''" class="sub-btn" style="display: none;"
|
||||
@click="pageJump(32, '#/personnelPosition')">人员定位</button><br />
|
||||
<button type="button" :class="nav == 33 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(33, '#/standardCuringRoom')">标养室检测</button>
|
||||
<button type="button" :class="nav == 34 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(34, '#/concreteStrength')">混泥土强度检测</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div :class="nav == 3 ? 'head-nav active' : 'head-nav'" @click="pageJump(3, '#/safety')">安全管理</div>
|
||||
<div :class="nav == 4 ? 'head-nav active' : 'head-nav'" @click="pageJump(4, '#/quality')">质量管理</div>
|
||||
<div :class="nav == 5 ? 'head-nav active' : 'head-nav'" @click="pageJump(5, '#/progress')">进度管理</div>
|
||||
<div :class="nav>=60 && nav <=69 ? 'head-nav active' : 'head-nav'" style="position: relative;"
|
||||
class="has-submenu">
|
||||
<div>监测监控</div>
|
||||
<div class="header-btn-list">
|
||||
<div class="header-btn-list-arrow"></div>
|
||||
<div class="header-btn-list-item" style="">
|
||||
<div class="header-btn-list-padding" style="text-align: left;">
|
||||
<button type="button" :class="nav == 21 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(21, '#/towerCrane')">塔吊监控</button>
|
||||
<button type="button" :class="nav == 22 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(22, '#/excavation')">基坑监控</button>
|
||||
<button type="button" :class="nav == 23 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(23, '#/distributionBox')">配电箱监控</button>
|
||||
<button type="button" :class="nav == 24 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(24, '#/dumbwaiter')">升降机监控</button> <br/>
|
||||
<button type="button" :class="nav == 25 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(25, '#/personnelPosition')">人员定位</button>
|
||||
<button type="button" :class="nav == 26 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(26, '#/standardCuringRoom')">标养室检测</button>
|
||||
<button type="button" :class="nav == 27 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(27, '#/concreteStrength')">混泥土强度检测</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div :class="nav == 3 ? 'head-nav active' : 'head-nav'" @click="pageJump(3, '#/safety')">安全管理</div>
|
||||
<div :class="nav == 4 ? 'head-nav active' : 'head-nav'" @click="pageJump(4, '#/quality')">质量管理</div>
|
||||
<div :class="nav == 5 ? 'head-nav active' : 'head-nav'" @click="pageJump(5, '#/progress')">进度管理</div>
|
||||
<div :class="nav == 61 || nav == 62 || nav==63 ? 'head-nav active' : 'head-nav'" style="position: relative;"
|
||||
class="has-submenu">
|
||||
<div>视频管理</div>
|
||||
<div class="header-btn-list">
|
||||
<div class="header-btn-list-arrow"></div>
|
||||
<div class="header-btn-list-item" style="">
|
||||
<div class="header-btn-list-padding">
|
||||
<button type="button" :class="nav == 60 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(60, '#/video')">视频监控</button>
|
||||
<button type="button" :class="nav == 61 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(61, '#/video')">视频监控</button>
|
||||
<button type="button" :class="nav == 62 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(62, '#/aiVideo')">AI识别监控</button>
|
||||
<button v-if="1==1" type="button" :class="nav == 63 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(63, '#/photography')">项目全景</button>
|
||||
@click="pageJump(61, '#/aiVideo')">AI识别监控</button>
|
||||
<button v-if="1 == 1" type="button" :class="nav == 62 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(62, '#/photography')">项目全景</button>
|
||||
<template v-if="isTypeBuser">
|
||||
<button type="button" :class="nav == 63 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(63, '#/videoTowerCrane')">塔吊监控</button><br />
|
||||
<button type="button" :class="nav == 64 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(64, '#/videoExcavation')">基坑监控</button>
|
||||
<button type="button" :class="nav == 65 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(65, '#/videoDistributionBox')">配电箱监控</button>
|
||||
<button type="button" :class="nav == 66 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(66, '#/videoDumbwaiter')">升降机监控</button>
|
||||
<button type="button" :class="nav == 67 ? 'active' : ''" class="sub-btn" style="display: none;"
|
||||
@click="pageJump(67, '#/videoPersonnelPosition')">人员定位</button><br />
|
||||
<button type="button" :class="nav == 68 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(68, '#/videoStandardCuringRoom')">标养室检测</button>
|
||||
<button type="button" :class="nav == 69 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(69, '#/videoConcreteStrength')">混泥土强度检测</button>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="!isTypeBuser" :class="(nav >=70 && nav <80) || nav==7? 'head-nav active' : 'head-nav'" style="position: relative;"
|
||||
class="has-submenu">
|
||||
<div @click="pageJump(7, '#/engin')">工程管理</div>
|
||||
<div v-if="!isTypeBuser" :class="(nav >= 70 && nav < 80) || nav == 7 ? 'head-nav active' : 'head-nav'"
|
||||
style="position: relative;" class="has-submenu">
|
||||
<div @click="pageJump(7, '#/engin')">工程管理</div>
|
||||
<div class="header-btn-list">
|
||||
<div class="header-btn-list-arrow"></div>
|
||||
<div class="header-btn-list-item" style="">
|
||||
<div class="header-btn-list-padding" style="text-align: left;">
|
||||
<button type="button" :class="nav == 71 ? 'active' : ''" class="sub-btn"
|
||||
@click="pageJump(71, '#/enginAuditing')">工程审批</button>
|
||||
@click="pageJump(71, '#/enginAuditing')">工程审批</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="isTypeBuser" :class="nav==7?'head-nav active' : 'head-nav'" style="position: relative;"
|
||||
@click="pageJump(7, '#/enginBUser')">工程管理
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="isTypeBuser" :class="nav == 7 ? 'head-nav active' : 'head-nav'" style="position: relative;"
|
||||
@click="pageJump(7, '#/enginBUser')">工程管理
|
||||
</div>
|
||||
</div>
|
||||
<template v-if="!isTypeBuser">
|
||||
<div class="head-title-select title-select1" @mouseleave="hideScreenUlSel1" v-if="localStorage1">
|
||||
|
@ -81,13 +117,14 @@
|
|||
</el-collapse-transition>
|
||||
</div>
|
||||
</template>
|
||||
<div class="head-title-select title-select1" @mouseleave="hideScreenUlSel3" >
|
||||
<div class="head-title-select title-select1" @mouseleave="hideScreenUlSel3">
|
||||
<div class="head-select head-select-150">
|
||||
<input type="text" :value="proType" @click="showScreenUlSel3" placeholder="项目类型" readonly>
|
||||
<input type="text" :value="proType" @click="showScreenUlSel3" placeholder="项目类型" readonly>
|
||||
</div>
|
||||
<el-collapse-transition>
|
||||
<ul class="header-screen-ul" v-show="showSel3">
|
||||
<li v-for="item in proTypeList" @click="setScreenLiSel3(item)" :title="item.text">{{ item.text }}</li>
|
||||
<li v-for="item in proTypeList" @click="setScreenLiSel3(item)" :title="item.text">{{ item.text }}
|
||||
</li>
|
||||
</ul>
|
||||
</el-collapse-transition>
|
||||
</div>
|
||||
|
@ -148,7 +185,7 @@
|
|||
<script>
|
||||
import { mapGetters } from 'vuex'
|
||||
import Cookies from 'js-cookie'
|
||||
import {routes} from '../router/index'
|
||||
import { routes } from '../router/index'
|
||||
import { tryToJson } from "../utils/tools";
|
||||
export default {
|
||||
props: {
|
||||
|
@ -181,40 +218,41 @@ export default {
|
|||
temperature: 20,
|
||||
condTxt: '',
|
||||
condCode: '',
|
||||
proTypeList:[],
|
||||
proType:'',
|
||||
proTypeList: [],
|
||||
proType: '',
|
||||
allProjects:[],
|
||||
projects:[],
|
||||
}
|
||||
},
|
||||
created(){
|
||||
let obj=localStorage.getItem("project_category");
|
||||
let type=localStorage.getItem("proType");
|
||||
if(obj &&obj.length>0){
|
||||
obj=tryToJson(obj,[]);
|
||||
if(obj.length>0){
|
||||
this.proTypeList=obj;
|
||||
let tmps=obj.filter(d=>d.value==type);
|
||||
this.proType=tmps.length>0?tmps[0].text:"全部";
|
||||
created() {
|
||||
let obj = localStorage.getItem("project_category");
|
||||
let type = localStorage.getItem("proType");
|
||||
if (obj && obj.length > 0) {
|
||||
obj = tryToJson(obj, []);
|
||||
if (obj.length > 0) {
|
||||
this.proTypeList = obj;
|
||||
let tmps = obj.filter(d => d.value == type);
|
||||
this.proType = tmps.length > 0 ? tmps[0].text : "全部";
|
||||
return;
|
||||
}
|
||||
}
|
||||
this.$api.dict("project_category").then(d=>{
|
||||
let tmps=(d||[]).map(it=>{
|
||||
this.$api.dict("project_category").then(d => {
|
||||
let tmps = (d || []).map(it => {
|
||||
return {
|
||||
value:it.dictValue,
|
||||
text:it.dictLabel,
|
||||
value: it.dictValue,
|
||||
text: it.dictLabel,
|
||||
}
|
||||
});
|
||||
tmps=[{value:"0",text:"全部"},...tmps];
|
||||
this.proTypeList=tmps;
|
||||
this.proType="全部";
|
||||
localStorage.setItem("project_category",JSON.stringify(tmps));
|
||||
tmps = [{ value: "0", text: "全部" }, ...tmps];
|
||||
this.proTypeList = tmps;
|
||||
this.proType = "全部";
|
||||
localStorage.setItem("project_category", JSON.stringify(tmps));
|
||||
});
|
||||
},
|
||||
async mounted() {
|
||||
window.headerApp = this
|
||||
await this.initMe();
|
||||
this.getWeather();
|
||||
this.nav=this.$route.meta?.nav||1
|
||||
this.nav = this.$route.meta?.nav || 1
|
||||
this.setTitle();
|
||||
this.timerID = setInterval(this.updateTime, 1000);
|
||||
this.updateTime();
|
||||
|
@ -225,51 +263,72 @@ export default {
|
|||
if (this.$route.name == "index") {
|
||||
this.$router.push("/detail");
|
||||
}
|
||||
this.$api.project.findProjectByDept(-1).then(d => {
|
||||
let objs = (d?.data || []).map(it => {
|
||||
it.text = it.projectName;
|
||||
return it;
|
||||
}).filter(it => +it.progressVisible == 0);
|
||||
this.loadInitData(-1,()=>{
|
||||
let objs=this.projects;
|
||||
this.data = [{ id: 0, text: '所有项目' }, ...objs];
|
||||
let dept={id:0,text:''};
|
||||
this.$root.dept=dept;
|
||||
this.$root.hasInitHeader=true;
|
||||
this.$bus.$emit("deptChange", dept)
|
||||
this.$root._prjIds=objs.map(it=>it.id);
|
||||
Cookies.set("__ids__",objs.map(it=>it.id).join(","));
|
||||
this.$bus.$emit("loadProjects", this.data);
|
||||
let dept = { id: 0, text: '' };
|
||||
this.$root.dept = dept;
|
||||
this.$root.hasInitHeader = true;
|
||||
//this.$bus.$emit("deptChange", dept)
|
||||
this.$root._prjIds = objs.map(it => it.id);
|
||||
Cookies.set("__ids__", objs.map(it => it.id).join(","));
|
||||
//this.$bus.$emit("loadProjects", this.data);
|
||||
this.$root.projects = this.data;
|
||||
if (this.data.length > 0) {
|
||||
this.setScreenLiSel2(this.data[0], true);
|
||||
} else {
|
||||
this.setScreenLiSel2(null);
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
this.isTypeBuser = false;
|
||||
this.$api.dept.list().then(d => {
|
||||
this.$root.hasInitHeader = true;
|
||||
if (roleId < 4) {
|
||||
this.depts = [{ text: '产发集团', id: 0 }, ...(d?.data || []).map(it => {
|
||||
it.text = it.deptName;
|
||||
it.id = it.deptId;
|
||||
return it;
|
||||
})]
|
||||
} else {
|
||||
this.depts = [...(d?.data || []).map(it => {
|
||||
it.text = it.deptName;
|
||||
it.id = it.deptId;
|
||||
return it;
|
||||
})]
|
||||
}
|
||||
this.setScreenLiSel1(this.localStorage1);
|
||||
this.deptChange();
|
||||
this.loadInitData(0,()=>{
|
||||
this.$api.dept.list().then(d => {
|
||||
this.$root.hasInitHeader = true;
|
||||
if (roleId < 4) {
|
||||
this.depts = [{ text: '产发集团', id: 0 }, ...(d?.data || []).map(it => {
|
||||
it.text = it.deptName;
|
||||
it.id = it.deptId;
|
||||
return it;
|
||||
})]
|
||||
} else {
|
||||
this.depts = [...(d?.data || []).map(it => {
|
||||
it.text = it.deptName;
|
||||
it.id = it.deptId;
|
||||
return it;
|
||||
})]
|
||||
}
|
||||
this.setScreenLiSel1(this.localStorage1,true);
|
||||
this.checkIsDetailSubPage();
|
||||
});
|
||||
});
|
||||
}
|
||||
this.$root.isTypeBuser = this.isTypeBuser;
|
||||
this.init();
|
||||
this.$root.isTypeBuser = this.isTypeBuser;
|
||||
},
|
||||
methods: {
|
||||
checkIsDetailSubPage(){
|
||||
let name=this.$route.name;
|
||||
if(["prjSafety","prjQuality","prjProgress","prjEngin","prjVideo","prjAiVideo","prjPhotography"
|
||||
,"towerCrane","excavation","distributionBox","dumbwaiter","personnelPosition","standardCuringRoom","concreteStrength"
|
||||
].includes(name)){
|
||||
if(this.localStorage2.id==0 && this.projects.length>1){
|
||||
this.setScreenLiSel2(this.projects[1]);
|
||||
}
|
||||
}
|
||||
},
|
||||
loadInitData(deptId, cb) {
|
||||
localStorage.setItem("proType", 0);
|
||||
this.$api.project.findProjectByDept(deptId).then(d => {
|
||||
if (cb) {
|
||||
this.projects = (d.data || []).map(it => {
|
||||
it.text = it.projectName;
|
||||
return it;
|
||||
}).filter(it => +it.progressVisible == 0);
|
||||
this.allProjects=this.projects;
|
||||
cb();
|
||||
}
|
||||
})
|
||||
},
|
||||
initMe() {
|
||||
return new Promise(resolve => {
|
||||
let func = () => {
|
||||
|
@ -328,31 +387,24 @@ export default {
|
|||
if (!this.localStorage2) {
|
||||
this.localStorage2 = {}
|
||||
}
|
||||
let tmp=this.localStorage1?.text || '';
|
||||
if(!tmp || !this.depts.find(d=>d.text==tmp)){
|
||||
if(this.depts.length>0){
|
||||
tmp=this.depts[0].text;
|
||||
}else{
|
||||
tmp="";
|
||||
let tmp = this.localStorage1?.text || '';
|
||||
if (!tmp || !this.depts.find(d => d.text == tmp)) {
|
||||
if (this.depts.length > 0) {
|
||||
tmp = this.depts[0].text;
|
||||
} else {
|
||||
tmp = "";
|
||||
}
|
||||
}
|
||||
this.dept1 = tmp;
|
||||
this.dept2 = tmp;
|
||||
|
||||
|
||||
if (this.dept1) {
|
||||
this.loadProject(true);
|
||||
}
|
||||
},
|
||||
deptChange(cb) {
|
||||
if(!this.dept1){
|
||||
if(this.depts.length>0){
|
||||
this.dept1=this.depts[0].text;
|
||||
this.loadProject(true,cb);
|
||||
}
|
||||
}
|
||||
deptChange(cb) {
|
||||
let tmps = this.depts.filter(d => d.text == this.dept1);
|
||||
if (tmps.length > 0) {
|
||||
this.$bus.$emit("deptChange", tmps[0])
|
||||
this.$root.dept = tmps[0];
|
||||
}
|
||||
},
|
||||
|
@ -369,6 +421,9 @@ export default {
|
|||
pageJump(n, url) {
|
||||
this.nav = n;
|
||||
this.setTitle();
|
||||
setTimeout(()=>{
|
||||
this.checkIsDetailSubPage();
|
||||
},400);
|
||||
if (url) {
|
||||
location.href = url
|
||||
} else {
|
||||
|
@ -380,7 +435,7 @@ export default {
|
|||
}
|
||||
|
||||
|
||||
},
|
||||
},
|
||||
showScreenUlSel1() {
|
||||
this.showSel1 = true
|
||||
},
|
||||
|
@ -400,65 +455,79 @@ export default {
|
|||
hideScreenUlSel3() {
|
||||
this.showSel3 = false
|
||||
},
|
||||
setScreenLiSel3(item){
|
||||
localStorage.setItem("proType",item.value);
|
||||
this.proType=item.text;
|
||||
this.showSel3=false;
|
||||
this.deptChange();
|
||||
setScreenLiSel3(item) {
|
||||
localStorage.setItem("proType", item.value);
|
||||
this.proType = item.text;
|
||||
this.showSel3 = false;
|
||||
this.loadProject();
|
||||
this.$bus.$emit("projectChange",this.localStorage2);
|
||||
},
|
||||
setScreenLiSel1(item) {
|
||||
setScreenLiSel1(item,init) {
|
||||
localStorage.setItem("data1", JSON.stringify(item))
|
||||
this.localStorage1 = JSON.parse(localStorage.getItem("data1"))
|
||||
this.$emit('itemdata', item);
|
||||
//this.$emit('itemdata', item);
|
||||
this.showSel1 = false
|
||||
this.dept1 = item.text;
|
||||
if(!init){
|
||||
localStorage.setItem("proType", 0);
|
||||
this.proType = "全部";
|
||||
}
|
||||
this.deptChange();
|
||||
this.loadProject();
|
||||
this.loadProject();
|
||||
this.$bus.$emit("projectChange",this.localStorage2);
|
||||
},
|
||||
loadProject(init,cb) {
|
||||
loadProject(init, cb) {
|
||||
if (this.isTypeBuser) {
|
||||
return;
|
||||
}
|
||||
this.$api.project.findProjectByDept(this.localStorage1.id).then(d => {
|
||||
let objs = (d?.data || []).map(it => {
|
||||
it.text = it.projectName;
|
||||
return it;
|
||||
}).filter(it => +it.progressVisible == 0);
|
||||
this.data = [{ id: 0, text: '所有项目' }, ...objs];
|
||||
this.$bus.$emit("loadProjects", this.data);
|
||||
this.$root.projects = this.data;
|
||||
if(this.data.find(it=>it.id==this.localStorage2.id)){
|
||||
this.setScreenLiSel2(this.localStorage2)
|
||||
}else{
|
||||
if (this.data.length > 0) {
|
||||
this.setScreenLiSel2(this.data[0], init);
|
||||
} else {
|
||||
this.setScreenLiSel2(null);
|
||||
}
|
||||
let objs = this.projects||[];
|
||||
|
||||
objs=objs.filter(it=>{
|
||||
let b1=true;
|
||||
if(this.localStorage1.id>0){
|
||||
b1=it.deptId==this.localStorage1.id;
|
||||
}
|
||||
let b2=true;
|
||||
let type = +localStorage.getItem("proType");
|
||||
if(type!=0){
|
||||
b2=it.projectType==type;
|
||||
}
|
||||
return b1 && b2;
|
||||
});
|
||||
|
||||
this.data = [{ id: 0, text: '所有项目' }, ...objs];
|
||||
this.$root.projects = this.data;
|
||||
if (this.data.find(it => it.id == this.localStorage2.id)) {
|
||||
this.setScreenLiSel2(this.localStorage2)
|
||||
} else {
|
||||
if (this.data.length > 0) {
|
||||
this.setScreenLiSel2(this.data[0], init);
|
||||
} else {
|
||||
this.setScreenLiSel2(null);
|
||||
}
|
||||
if(cb){
|
||||
cb();
|
||||
}
|
||||
});
|
||||
}
|
||||
if (cb) {
|
||||
cb();
|
||||
}
|
||||
},
|
||||
setScreenLiSel2(item, init) {
|
||||
if (item) {
|
||||
this.showSel2 = false;
|
||||
if (!init||!this.dept2) {
|
||||
localStorage.setItem("data2", JSON.stringify(item))
|
||||
if (!init || !this.dept2) {
|
||||
localStorage.setItem("data2", JSON.stringify(item))
|
||||
this.localStorage2 = JSON.parse(localStorage.getItem("data2"))
|
||||
this.$emit('itemdata', item);
|
||||
//this.$emit('itemdata', item);
|
||||
this.dept2 = item.text;
|
||||
}
|
||||
this.$root.project = this.localStorage2;
|
||||
this.$bus.$emit("projectChange", this.localStorage2);
|
||||
//this.$bus.$emit("projectChange", this.localStorage2);
|
||||
} else {
|
||||
localStorage.removeItem("data2");
|
||||
this.localStorage2 = {};
|
||||
this.showSel2 = false;
|
||||
this.dept2 = '';
|
||||
}
|
||||
this.$bus.$emit("projectChange",this.localStorage2);
|
||||
},
|
||||
|
||||
//时间方法
|
||||
|
@ -480,9 +549,10 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="less">
|
||||
.head-title{
|
||||
.head-title {
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
.main-header {
|
||||
.head-title-tab {
|
||||
.has-submenu {
|
||||
|
@ -496,9 +566,37 @@ export default {
|
|||
display: none;
|
||||
|
||||
.header-btn-list-item {
|
||||
.sub-btn {
|
||||
&.active {
|
||||
color: #fff;
|
||||
.header-btn-list-padding {
|
||||
padding: 8px;
|
||||
|
||||
button {
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
&.menu-row2 {
|
||||
.sub-btn {
|
||||
color: #fff;
|
||||
|
||||
&:hover {
|
||||
color: #ccc;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.menu-row1 {
|
||||
.sub-btn {
|
||||
color: rgb(1, 169, 255);
|
||||
|
||||
&:hover {
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.sub-btn {
|
||||
&.active {
|
||||
color: #ffffffaa;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -507,10 +605,13 @@ export default {
|
|||
|
||||
}
|
||||
}
|
||||
.title-select1{
|
||||
|
||||
.title-select1 {
|
||||
width: 150px;
|
||||
}
|
||||
.title-select3{
|
||||
|
||||
.title-select3 {
|
||||
width: 200px;
|
||||
}
|
||||
}</style>
|
||||
}
|
||||
</style>
|
|
@ -2,7 +2,7 @@ import Vue from 'vue'
|
|||
Vue.component("project-overview-chart", {
|
||||
template: `
|
||||
<div class='project-overview-chart' style="position: relative" @click="doClick">
|
||||
<div :style="{'height': height+'px'}" ref="warningPieChart">
|
||||
<div :style="'height:'+height+'px;'+(width?('width:'+width+'px;'):'')" ref="warningPieChart">
|
||||
|
||||
</div>
|
||||
<div class="chart-gif chart-overview-gif" style="{'top':gifTop}"></div>
|
||||
|
@ -19,6 +19,9 @@ Vue.component("project-overview-chart", {
|
|||
typedata:{
|
||||
type: Array,
|
||||
},
|
||||
width:{
|
||||
type:Number
|
||||
},
|
||||
height:{
|
||||
type:Number
|
||||
},
|
||||
|
@ -94,20 +97,20 @@ Vue.component("project-overview-chart", {
|
|||
|
||||
orient: "vertical",
|
||||
icon: "circle",
|
||||
itemWidth: 12,
|
||||
itemGap: 8,
|
||||
|
||||
itemGap: 0,
|
||||
textStyle: {
|
||||
color: "#c3dbfd",
|
||||
fontSize: 14,
|
||||
fontSize: 6,
|
||||
rich: {
|
||||
name: {
|
||||
color: "#c3dbfd",
|
||||
padding: [10, 5, 20, 5],
|
||||
padding: [0, 0, 0, 0],
|
||||
},
|
||||
percent: {
|
||||
color: "#18DB9F",
|
||||
fontSize: 16,
|
||||
padding: [0, 5, 0, 5],
|
||||
fontSize: 6,
|
||||
padding: [0, 0, 0, 0],
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -117,7 +120,7 @@ Vue.component("project-overview-chart", {
|
|||
if(total_datas==0){
|
||||
percent=0;
|
||||
}
|
||||
return "{name| " + name + "}"+this.sp+"{val|" + res[0].value + "} {percent|" + percent + "%}";
|
||||
return "{name| " + name + "}"+this.sp+" {val|" + res[0].value + "} {percent|" + percent + "%}";
|
||||
},
|
||||
};
|
||||
let opt={...legendOption,...(this.legendOpt||{})};
|
||||
|
@ -130,7 +133,7 @@ Vue.component("project-overview-chart", {
|
|||
itemGap :10,
|
||||
textStyle: {
|
||||
color: "#0dd2fd",
|
||||
fontSize: 24,
|
||||
fontSize: 14,
|
||||
fontWeight: "bold",
|
||||
align: "center",
|
||||
},
|
||||
|
@ -160,8 +163,8 @@ Vue.component("project-overview-chart", {
|
|||
series: [
|
||||
{
|
||||
name: "品类金额占比",
|
||||
type: "pie",
|
||||
center: ["25%", "50%"],
|
||||
type: "pie",
|
||||
center: ["0%", "50%"],
|
||||
radius: ["46%", "63%"],
|
||||
data: data,
|
||||
label: {
|
||||
|
@ -180,7 +183,7 @@ Vue.component("project-overview-chart", {
|
|||
type: "pie",
|
||||
clockWise: false, //顺时加载
|
||||
hoverAnimation: false, //鼠标移入变大
|
||||
center: ["25%", "50%"],
|
||||
center: ["0%", "50%"],
|
||||
radius: ["70%", "70%"],
|
||||
label: {
|
||||
normal: {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div class='project-overview-chart' style="position: relative" @click="doClick">
|
||||
<div :style="{'height': height+'px'}" ref="warningPieChart">
|
||||
<div :style="'height:'+height+'px;'+(width?('width:'+width+'px;'):'')" ref="warningPieChart">
|
||||
|
||||
</div>
|
||||
<div class="chart-gif chart-overview-gif" :style="'top:'+gifTop"></div>
|
||||
|
@ -26,6 +26,9 @@ export default {
|
|||
typedata:{
|
||||
type: Array,
|
||||
},
|
||||
width:{
|
||||
type:Number
|
||||
},
|
||||
height:{
|
||||
type:Number
|
||||
},
|
||||
|
|
|
@ -99,16 +99,11 @@ export default {
|
|||
mounted() {
|
||||
this.$bus.$on("projectChange", (res) => {
|
||||
this.prjInfo = res;
|
||||
this.deptInfo = this.$root.dept ||this.deptInfo|| {};
|
||||
if (this.deptInfo.text) {
|
||||
this.getMonitAndWarning();
|
||||
}
|
||||
});
|
||||
this.$bus.$on("deptChange", (dept) => {
|
||||
this.deptInfo = dept;
|
||||
if (this.prjInfo.id) {
|
||||
this.getMonitAndWarning();
|
||||
}
|
||||
});
|
||||
});
|
||||
if (this.$root.hasInitHeader) {
|
||||
this.initMe();
|
||||
}
|
||||
|
|
|
@ -212,6 +212,9 @@ export default {
|
|||
this.$api.dict('smz_ssp_checkstate').then(d => {
|
||||
this.checkStateDicts = d || [];
|
||||
});
|
||||
if(!this.$root.project){
|
||||
return;
|
||||
}
|
||||
this.projectId = this.$root.project.id;
|
||||
if (this.projectId == 0 && this.$root.projects.length > 1) {
|
||||
this.projectId = this.$root.projects[1].id;
|
||||
|
|
|
@ -11,6 +11,8 @@
|
|||
</div>
|
||||
</module-one-1-1>
|
||||
<module-one-2-1 :label="label2" style="position: relative;" class="flow-list">
|
||||
|
||||
|
||||
<div class="scroll" style="margin-top: 0px;max-height: calc(100% - 30px);overflow-y: auto;">
|
||||
<table class="tb-list1">
|
||||
<tr>
|
||||
|
@ -31,14 +33,19 @@
|
|||
</el-col>
|
||||
<el-col :span="12">
|
||||
<module-one-3-1 label="付款金额" style="position: relative;" class="cost-sum">
|
||||
<div style="position: absolute;right:0px;top:4px;" v-if="1==2">
|
||||
<el-date-picker class="bg-date-picker" v-model="selDate" type="daterange"
|
||||
popper-class="bg-date-picker-pop" :editable="false" @change="dtChange"
|
||||
:picker-options="pickerOptions" range-separator="至" start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"></el-date-picker>
|
||||
</div>
|
||||
<el-row style="padding:0px 10px;">
|
||||
<el-col :span="12">
|
||||
<div class="warning-info-title">
|
||||
<div class="active">合同总金额(万元)</div>
|
||||
</div>
|
||||
|
||||
<people-number :number="((sumCost.data1 * 1.0 || 0).toFixed(2)) || '0.00'"
|
||||
unit=""></people-number>
|
||||
<people-number :number="((sumCost.data1 * 1.0 || 0).toFixed(2)) || '0.00'" unit=""></people-number>
|
||||
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
|
@ -46,8 +53,7 @@
|
|||
<div class="active">建安费总金额(万元)</div>
|
||||
</div>
|
||||
|
||||
<people-number :number="((sumCost.data2 * 1.0 || 0).toFixed(2)) || '0.00'"
|
||||
unit=""></people-number>
|
||||
<people-number :number="((sumCost.data2 * 1.0 || 0).toFixed(2)) || '0.00'" unit=""></people-number>
|
||||
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
@ -58,8 +64,7 @@
|
|||
<div class="active">总计付款(万元)</div>
|
||||
</div>
|
||||
|
||||
<people-number :number="((sumCost.data3 * 1.0 || 0).toFixed(2)) || '0.00'"
|
||||
unit=""></people-number>
|
||||
<people-number :number="((sumCost.data3 * 1.0 || 0).toFixed(2)) || '0.00'" unit=""></people-number>
|
||||
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
|
@ -83,15 +88,13 @@
|
|||
<div class="active">进度款已支付(万元)</div>
|
||||
</div>
|
||||
|
||||
<people-number :number="((sumCost.data4 * 1.0 || 0).toFixed(2)) || '0.00'"
|
||||
unit=""></people-number>
|
||||
<people-number :number="((sumCost.data4 * 1.0 || 0).toFixed(2)) || '0.00'" unit=""></people-number>
|
||||
|
||||
<div class="warning-info-title">
|
||||
<div class="active">安措费已支付(万元)</div>
|
||||
</div>
|
||||
|
||||
<people-number :number="((sumCost.data5 * 1.0 || 0).toFixed(2)) || '0.00'"
|
||||
unit=""></people-number>
|
||||
<people-number :number="((sumCost.data5 * 1.0 || 0).toFixed(2)) || '0.00'" unit=""></people-number>
|
||||
|
||||
</el-col>
|
||||
<el-col :span="12" style="margin-top:40px;">
|
||||
|
@ -99,8 +102,7 @@
|
|||
<div class="active">挂账总金额(万元)</div>
|
||||
</div>
|
||||
|
||||
<people-number :number="((sumCost.data6 * 1.0 || 0).toFixed(2)) || '0.00'"
|
||||
unit=""></people-number>
|
||||
<people-number :number="((sumCost.data6 * 1.0 || 0).toFixed(2)) || '0.00'" unit=""></people-number>
|
||||
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
@ -180,7 +182,7 @@
|
|||
</module-one-3-1>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<module-one-1-1 label="分包单位资质审批" style="position: relative;">
|
||||
<module-one-1-1 :label="label4" style="position: relative;">
|
||||
<enginChart :class="'show-chart'" ref="chart2" :height="300">
|
||||
</enginChart>
|
||||
</module-one-1-1>
|
||||
|
@ -209,10 +211,10 @@
|
|||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<el-pagination layout="total,prev, pager, next"
|
||||
@current-change="handleCurrentChange" :total="data4Page.total" :page-size="data4Page.pageSize"
|
||||
:current-page.sync="data4Page.pageIndex" class="bg-pagination" :pager-count="2"></el-pagination>
|
||||
</div>
|
||||
<el-pagination layout="total,prev, pager, next" @current-change="handleCurrentChange"
|
||||
:total="data4Page.total" :page-size="data4Page.pageSize" :current-page.sync="data4Page.pageIndex"
|
||||
class="bg-pagination" :pagerCount="5"></el-pagination>
|
||||
</template>
|
||||
<div v-else style="text-align: center;margin-top:100px;" class="div-no-data">
|
||||
<img src="images/nodata.png" style="width: 120px;">
|
||||
|
@ -243,6 +245,7 @@ export default {
|
|||
return {
|
||||
label1: "工程审批进度",
|
||||
label2: "工程审批排名",
|
||||
label4:"分包单位资质审批",
|
||||
prjs: [],
|
||||
project: {},
|
||||
dept: {},
|
||||
|
@ -256,28 +259,55 @@ export default {
|
|||
total: 0,
|
||||
pageSize: 10,
|
||||
pageIndex: 1
|
||||
}
|
||||
},
|
||||
selDate: [],
|
||||
pickerOptions: {
|
||||
shortcuts: [{
|
||||
text: '最近一周',
|
||||
onClick(picker) {
|
||||
const end = new Date();
|
||||
const start = new Date();
|
||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
|
||||
picker.$emit('pick', [start, end]);
|
||||
}
|
||||
}, {
|
||||
text: '最近一个月',
|
||||
onClick(picker) {
|
||||
const end = new Date();
|
||||
const start = new Date();
|
||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
|
||||
picker.$emit('pick', [start, end]);
|
||||
}
|
||||
}, {
|
||||
text: '最近三个月',
|
||||
onClick(picker) {
|
||||
const end = new Date();
|
||||
const start = new Date();
|
||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
|
||||
picker.$emit('pick', [start, end]);
|
||||
}
|
||||
}]
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.$bus.$on("loadProjects", debounce(prjs => {
|
||||
this.prjs = prjs;
|
||||
}));
|
||||
mounted() {
|
||||
this.$bus.$on("projectChange", debounce(res => {
|
||||
this.project = res;
|
||||
this.dept = this.$root.dept ||this.dept|| {};
|
||||
this.prjs = this.$root.projects || this.prjs||[];
|
||||
this.loadData();
|
||||
}));
|
||||
this.$bus.$on("deptChange", debounce(dept => {
|
||||
this.dept = dept;
|
||||
this.loadData();
|
||||
}));
|
||||
}));
|
||||
if (this.$root.hasInitHeader) {
|
||||
this.initMe();
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
dtChange(init) {
|
||||
this.loadSumCost();
|
||||
this.loadCostList();
|
||||
},
|
||||
doStateDlg(it) {
|
||||
let obj = {
|
||||
deptId: this.dept?.id || 0,
|
||||
|
@ -290,6 +320,7 @@ export default {
|
|||
this.$refs.stateDlg.showDialog(obj);
|
||||
},
|
||||
changeChart1(opt) {
|
||||
opt.xAxis.axisLabel = { interval: 0, rotate: 0, fontSize: 9, color: "#fff" }
|
||||
opt.legend = {
|
||||
textStyle: {
|
||||
color: "#fff"
|
||||
|
@ -330,7 +361,7 @@ export default {
|
|||
postData.id = this.dept.id;
|
||||
}
|
||||
this.$api.flow.listFlowBySubDeptType(postData, this.data4Page.pageIndex, this.data4Page.pageSize).then(d => {
|
||||
let data = d.rows || [];
|
||||
let data = d.rows || [];
|
||||
this.dataList4 = data;
|
||||
this.data4Page.total = d.total;
|
||||
});
|
||||
|
@ -349,6 +380,11 @@ export default {
|
|||
value: it.taskId || 0
|
||||
}
|
||||
});
|
||||
let sum=0;
|
||||
data.forEach(it=>{
|
||||
sum+=it.value*1;
|
||||
});
|
||||
this.label4=`分包单位资质审批(${sum})`
|
||||
let opt = {
|
||||
"tooltip": { "trigger": "item" }, "series": [{
|
||||
"top": 10, "type": "pie", "radius": "60%",
|
||||
|
@ -376,6 +412,18 @@ export default {
|
|||
this.chartInfo = [];
|
||||
let sum = 0;
|
||||
(res.data || []).forEach(it => {
|
||||
if (it.taskName == "程序及质量类") {
|
||||
it.taskName = "质量";
|
||||
}
|
||||
if (it.taskName == "项目管理制度类") {
|
||||
it.taskName = "项目制度";
|
||||
}
|
||||
if (it.taskName == "特殊事项确认类") {
|
||||
it.taskName = "特殊事项";
|
||||
}
|
||||
if (it.taskName == "专项验收审批") {
|
||||
it.taskName = "专项验收";
|
||||
}
|
||||
let o = {
|
||||
title: it.taskName,
|
||||
comp: it.assigneeId || 0,
|
||||
|
@ -437,6 +485,13 @@ export default {
|
|||
} else {
|
||||
postData.id = this.dept.id;
|
||||
}
|
||||
/*
|
||||
if (this.selDate.length > 0) {
|
||||
postData.createTime = +this.$dt(this.selDate[0]).$d;
|
||||
}
|
||||
if (this.selDate.length > 1) {
|
||||
postData.updateTime = +this.$dt(this.selDate[1]).$d;
|
||||
}*/
|
||||
this.$api.costOut.selectForBigEnginList(postData).then(d => {
|
||||
this.sumList = d;
|
||||
});
|
||||
|
@ -488,7 +543,7 @@ export default {
|
|||
line-height: 40px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.data-list3 {
|
||||
max-height: calc(100% - 70px);
|
||||
|
|
|
@ -69,7 +69,10 @@ export default {
|
|||
},
|
||||
showDialog(data) {
|
||||
this.deptId=data.deptId;
|
||||
this.projectId=data.projectId;
|
||||
this.projectId=this.$root.project.id;
|
||||
if(this.projectId==0 && this.$root.projects.length>0){
|
||||
this.projectId=this.$root.projects[0].id;
|
||||
}
|
||||
if(data.prj){
|
||||
this.prjName=data.prj.name||'';
|
||||
}else{
|
||||
|
|
|
@ -1,16 +1,22 @@
|
|||
<template>
|
||||
<div class="flow-list-by-category quality-table ">
|
||||
<div class="nav">
|
||||
<div class="nav-item" :style="'width:' + navWidth" :class="it.dictValue == selItem.dictValue ? 'active' : ''"
|
||||
v-for="(it, idx) in categories" :key="idx" @click="doQuery(it)">{{ it.dictLabel }}</div>
|
||||
<div class="flow-list-by-category quality-table ">
|
||||
<div class="head-title-tab" style="padding: 10px 10px;width:unset;">
|
||||
<div :class="nav == 1 ? 'head-nav active' : 'head-nav'" @click="doQuery(1)">质量</div>
|
||||
<div :class="nav == 2 ? 'head-nav active' : 'head-nav'" @click="doQuery(2)">安全</div>
|
||||
<div :class="nav == 3 ? 'head-nav active' : 'head-nav'" @click="doQuery(3)">认价类</div>
|
||||
<div :class="nav == 4 ? 'head-nav active' : 'head-nav'" @click="doQuery(4)">图纸类</div>
|
||||
<div :class="nav == 5 ? 'head-nav active' : 'head-nav'" @click="doQuery(5)">项目制度</div>
|
||||
<div :class="nav == 6 ? 'head-nav active' : 'head-nav'" @click="doQuery(6)">索赔类</div>
|
||||
<div :class="nav == 7 ? 'head-nav active' : 'head-nav'" @click="doQuery(7)">特殊事项</div>
|
||||
<div :class="nav == 8 ? 'head-nav active' : 'head-nav'" @click="doQuery(8)">专项验收</div>
|
||||
</div>
|
||||
|
||||
<el-table :data="tableData" class="mytable" style="background: transparent;"
|
||||
<el-table :data="tableData" class="mytable" style="background: transparent;" height="300"
|
||||
ref="fbsubordinateUnit">
|
||||
<el-table-column prop="businessKeyName" label="申请项目" class-name="text-left">
|
||||
<el-table-column prop="procDefName" label="流程名称" class-name="text-left">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="startUserName" label="当前状态" width="100">
|
||||
<el-table-column prop="startUserName" label="申请状态" width="100">
|
||||
<template slot-scope="{row}">
|
||||
<span v-if="row.finishTime" style="color: greenyellow;">已完成</span>
|
||||
<span v-else style="color: red;">进行中</span>
|
||||
|
@ -24,7 +30,7 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination layout="total,prev, pager, next" :hide-on-single-page="true" @current-change="handleCurrentChange"
|
||||
<el-pagination layout="total,prev, pager, next" :hide-on-single-page="false" :pagerCount="5" @current-change="handleCurrentChange"
|
||||
:total="total" :page-size="size" :current-page.sync="index" class="bg-pagination"></el-pagination>
|
||||
|
||||
</div>
|
||||
|
@ -33,31 +39,21 @@
|
|||
<script>
|
||||
export default {
|
||||
name: 'JhbigscreenFlowListByCategory',
|
||||
props: {
|
||||
getPData: {
|
||||
type: Function,
|
||||
default: null
|
||||
}
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
index: 1,
|
||||
size: 10,
|
||||
total: 0,
|
||||
categories: [],
|
||||
selItem: {},
|
||||
nav:1,
|
||||
tableData: [],
|
||||
navWidth: '',
|
||||
deptId:0,
|
||||
projectId:0,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.$api.dict('sys_process_category').then(d => {
|
||||
this.categories = d || [];
|
||||
if (this.categories.length > 0) {
|
||||
this.doQuery(this.categories[0])
|
||||
}
|
||||
this.navWidth = (98.0 / this.categories.length).toFixed(2) + "%";
|
||||
});
|
||||
|
||||
},
|
||||
mounted() {
|
||||
|
||||
|
@ -78,23 +74,29 @@ export default {
|
|||
this.index = n;
|
||||
this.loadData();
|
||||
},
|
||||
initData(){
|
||||
this.deptId=this.$root.dept.id;
|
||||
this.projectId=this.$root.project.id;
|
||||
if(this.projectId==0 && this.$root.projects.length>1){
|
||||
this.projectId=this.$root.projects[1].id;
|
||||
}
|
||||
if(this.projectId>0){
|
||||
this.nav=1;
|
||||
this.index=1;
|
||||
this.loadData();
|
||||
}
|
||||
},
|
||||
reLoad(){
|
||||
this.index=1;
|
||||
this.loadData();
|
||||
},
|
||||
doNav(n) {
|
||||
this.nav = n;
|
||||
this.index = 1;
|
||||
this.loadData();
|
||||
},
|
||||
},
|
||||
doQuery(it) {
|
||||
this.selItem = it;
|
||||
this.nav = it;
|
||||
this.index = 1;
|
||||
this.loadData();
|
||||
},
|
||||
loadData() {
|
||||
let obj = this.getPData ? this.getPData() || {} : {}
|
||||
this.$api.flow.listByCategory(obj.projectId, obj.deptId, this.selItem.dictValue, this.index, this.size).then(d => {
|
||||
loadData() {
|
||||
this.$api.flow.listByCategory(this.projectId, this.deptId, this.nav, this.index, this.size).then(d => {
|
||||
this.tableData = d.rows || [];
|
||||
this.total = d.total;
|
||||
})
|
||||
|
@ -106,7 +108,18 @@ export default {
|
|||
<style lang="less" scoped>
|
||||
.flow-list-by-category {
|
||||
padding:0px;
|
||||
height:calc(~"100% - 40px");
|
||||
height:calc(~"100% - 370px");
|
||||
.head-title-tab{
|
||||
.head-nav{
|
||||
background: none;
|
||||
color:#82c9ff;
|
||||
padding: 0px 4px;
|
||||
&.active{
|
||||
color:rgb(0, 144, 255);
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
.bg-pagination{
|
||||
margin-top:10px;
|
||||
}
|
||||
|
@ -127,7 +140,7 @@ export default {
|
|||
}
|
||||
}
|
||||
.mytable{
|
||||
height:calc(~"100% - 100px");
|
||||
height:calc(~"100% - 100px") !important;
|
||||
margin:12px 12px;
|
||||
width:calc(~"100% - 24px");
|
||||
border:solid 1px #142c6a;
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<div class="image-list scroll" v-if="tableData.length>0">
|
||||
<imageItem v-for="(it, idx) in tableData" :key="idx" :info="it"></imageItem>
|
||||
</div>
|
||||
<el-pagination layout="total,prev, pager, next" :hide-on-single-page="false" v-if="tableData.length>0" :pager-count="3"
|
||||
<el-pagination layout="total,prev, pager, next" :hide-on-single-page="false" v-if="tableData.length>0" :pagerCount="5"
|
||||
@current-change="handleCurrentChange" :total="total" :page-size="size" :current-page.sync="index"
|
||||
class="bg-pagination"></el-pagination>
|
||||
<div v-if="tableData.length == 0" style="text-align: center;margin-top: 150px;">
|
||||
|
|
|
@ -40,8 +40,11 @@
|
|||
</module-one-1-1>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<module-one-2-1 class="center-image" label="集团项目区域分布">
|
||||
<iframe src="#/map" style="width:100%;height:100%;border:none" v-if="!isLocalhost"></iframe>
|
||||
<module-one-2-1 class="center-image" label="集团项目区域分布">
|
||||
<iframe src="newmap/index.html" style="width:100%;height:100%;border:none" ></iframe>
|
||||
<!--
|
||||
<iframe src="#/map" style="width:100%;height:100%;border:none" v-if="!isLocalhost"></iframe>
|
||||
-->
|
||||
</module-one-2-1>
|
||||
<el-row>
|
||||
<el-col :span="12" style="position: relative;">
|
||||
|
@ -470,16 +473,15 @@ export default {
|
|||
this.$router.push("/detail");
|
||||
}
|
||||
this.loading = true;
|
||||
});
|
||||
this.$bus.$on("loadProjects", debounce(prjs => {
|
||||
this.prjs = prjs;
|
||||
});
|
||||
this.$bus.$on("projectChange", debounce(res => {
|
||||
this.deptInfo = this.$root.dept||this.deptInfo;
|
||||
this.prj=res||this.$root.project;
|
||||
this.prjs=this.$root.projects||this.prjs||[];
|
||||
if (this.prj.id == 0) {
|
||||
this.prjInfo = this.prjs[1];
|
||||
}
|
||||
}));
|
||||
this.$bus.$on("deptChange", debounce(dept => {
|
||||
this.deptInfo = dept;
|
||||
this.groupByProjectCategory(dept.id);
|
||||
this.groupByProjectCategory(this.deptInfo.id);
|
||||
this.onClickoOverview(0)
|
||||
this.qualityNavClick(0);
|
||||
this.onWarningInfoNav(0);
|
||||
|
|
|
@ -5,14 +5,13 @@
|
|||
<el-col :span="6">
|
||||
<module-one-3-1 label="项目全景列表">
|
||||
<div class="left-list scroll">
|
||||
<template v-if="dataList && dataList.length>0">
|
||||
<template v-if="showPrjs && showPrjs.length>0">
|
||||
<el-collapse v-model="activeNames" >
|
||||
<el-collapse-item v-for="(it, idx) in dataList" :key="idx" :name="it.videoDate">
|
||||
<el-collapse-item v-for="(it, idx) in showPrjs" :key="idx" :name="it">
|
||||
<template slot="title">
|
||||
<div style="position:relative;padding-left:20px;width: 100%;">
|
||||
<span>{{ it.videoDate }}</span>
|
||||
<i class="header-icon el-icon-camera-solid" @click.stop="playVideo(it)"
|
||||
style="position: absolute;right: 30px;top: 10px;font-size: 30px;"></i>
|
||||
<span>{{ it }}</span>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<div class="img-items">
|
||||
|
@ -22,6 +21,11 @@
|
|||
<div class="div-date">{{ item.date }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-for="(item,index) in infoList[it]" :key="index" class="video-item" @click.stop="playVideo(item)">
|
||||
<span class="div-date">{{ item.videoDate }}</span>
|
||||
<i class="header-icon el-icon-camera-solid"
|
||||
style="font-size: 24px;color: aqua;"></i>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
</template>
|
||||
|
@ -68,15 +72,17 @@ export default {
|
|||
dataList: [],
|
||||
activeNames: [],
|
||||
info: null,
|
||||
dept:null,
|
||||
showPrjs:[],
|
||||
infoList:{},
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.$bus.$on("loadProjects", debounce(prjs => {
|
||||
this.prjs = prjs;
|
||||
}));
|
||||
this.$bus.$on("projectChange", debounce(res => {
|
||||
this.prj = res;
|
||||
this.prjs=this.$root.projects||this.prjs;
|
||||
this.dept=this.$root.dept||this.dept;
|
||||
this.loadData2();
|
||||
}));
|
||||
if (this.$root.hasInitHeader) {
|
||||
|
@ -93,19 +99,30 @@ export default {
|
|||
},
|
||||
loadData2() {
|
||||
this.info=null;
|
||||
this.getProjectId(id => {
|
||||
this.$api.project.listPhotography(id).then(d => {
|
||||
this.dataList = (d.data || []).map(it => {
|
||||
|
||||
this.$api.project.listPhotography(this.prj.id, this.dept.id || 0).then(d => {
|
||||
let tmps = (d.data || []).map(it => {
|
||||
it.images = this.$tryToJson(it.imageUrl);
|
||||
return it;
|
||||
})
|
||||
if (this.dataList.length > 0) {
|
||||
this.activeNames = [this.dataList[0].videoDate];
|
||||
this.info = this.dataList[0];
|
||||
if (tmps.length > 0) {
|
||||
this.activeNames = [tmps[0].updateBy];
|
||||
this.info = tmps[0];
|
||||
}
|
||||
let obj={};
|
||||
this.showPrjs=[];
|
||||
tmps.forEach(it=>{
|
||||
if(!obj[it.updateBy]){
|
||||
obj[it.updateBy]=[it]
|
||||
this.showPrjs.push(it.updateBy);
|
||||
}else{
|
||||
obj[it.updateBy].push(it);
|
||||
}
|
||||
});
|
||||
this.infoList=obj;
|
||||
})
|
||||
|
||||
});
|
||||
|
||||
},
|
||||
initMe() {
|
||||
this.prj = this.$root.project || {};
|
||||
|
@ -189,7 +206,7 @@ export default {
|
|||
.el-collapse-item__header {
|
||||
background-color: #097fca2e;
|
||||
color: #089fff;
|
||||
border: none;
|
||||
border-bottom: dotted 1px #089fff77;
|
||||
}
|
||||
|
||||
.el-collapse-item__content {
|
||||
|
@ -207,16 +224,24 @@ export default {
|
|||
flex-direction: column;
|
||||
color: #fff;
|
||||
position: relative;
|
||||
|
||||
.div-date {
|
||||
width: calc(90% - 24px);
|
||||
text-align: left;
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
background-color: #ffffff38;
|
||||
padding-left: 24px;
|
||||
}
|
||||
|
||||
}
|
||||
.video-item{
|
||||
position: relative;
|
||||
line-height: 30px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
border-bottom: solid 1px #089fff77;
|
||||
.div-date {
|
||||
width: calc(90% - 24px);
|
||||
text-align: left;
|
||||
bottom: 0px;
|
||||
color:#089fff;
|
||||
padding-left: 24px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -66,12 +66,9 @@ export default {
|
|||
};
|
||||
},
|
||||
mounted() {
|
||||
this.$bus.$on("deptChange", debounce(dept => {
|
||||
this.dept = dept;
|
||||
this.loadData();
|
||||
}));
|
||||
this.$bus.$on("projectChange", debounce(res => {
|
||||
this.prj = res;
|
||||
this.dept=this.$root.dept||this.dept||{};
|
||||
this.loadData();
|
||||
}));
|
||||
this.info = this.scheduleInfo || {};
|
||||
|
|
|
@ -914,19 +914,13 @@ export default {
|
|||
this.projectLvlDict = d || [];
|
||||
});
|
||||
},
|
||||
mounted() {
|
||||
window.xapp = this;
|
||||
this.$bus.$on(
|
||||
"loadProjects",
|
||||
debounce((prjs) => {
|
||||
this.prjs = prjs;
|
||||
})
|
||||
);
|
||||
|
||||
mounted() {
|
||||
this.$bus.$on(
|
||||
"projectChange",
|
||||
debounce((res) => {
|
||||
this.project = res;
|
||||
this.project = res||this.$root.project;
|
||||
this.dept=this.$root.dept||this.dept;
|
||||
this.prjs= this.$root.projects||this.prjs;
|
||||
this.mapName = "";
|
||||
if (res.id == 0) {
|
||||
if (this.prjs.length > 1) {
|
||||
|
@ -938,13 +932,7 @@ export default {
|
|||
this.loadData();
|
||||
this.loadFilshNode();
|
||||
})
|
||||
);
|
||||
this.$bus.$on(
|
||||
"deptChange",
|
||||
debounce((dept) => {
|
||||
this.dept = dept;
|
||||
})
|
||||
);
|
||||
);
|
||||
if (this.$root.hasInitHeader) {
|
||||
this.initMe();
|
||||
}
|
||||
|
|
|
@ -1,305 +0,0 @@
|
|||
<template>
|
||||
<div class="project-engin-index">
|
||||
<div class="screen-content">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<module-one-1-1 label="现场管理标准化" style="position: relative;">
|
||||
<imageItem :images="list1" v-if="list1.length>0 && !loading"></imageItem>
|
||||
<div v-if="list1.length==0 && !loading" style="text-align: center;margin-top: 40px;">
|
||||
<img src="images/nodata.png" style="width: 240px;">
|
||||
<div style="text-align: center;">暂无数据</div>
|
||||
</div>
|
||||
</module-one-1-1>
|
||||
<module-one-1-1 label="作业标准" style="position: relative;">
|
||||
<imageItem :images="list2" v-if="list2.length>0 && !loading"></imageItem>
|
||||
<div v-if="list2.length==0 && !loading" style="text-align: center;margin-top: 40px;">
|
||||
<img src="images/nodata.png" style="width: 240px;">
|
||||
<div style="text-align: center;">暂无数据</div>
|
||||
</div>
|
||||
</module-one-1-1>
|
||||
<module-one-1-1 label="安全技术标准" style="position: relative;">
|
||||
<imageItem :images="list3" v-if="list3.length>0 && !loading"></imageItem>
|
||||
<div v-if="list3.length==0 && !loading" style="text-align: center;margin-top: 40px;">
|
||||
<img src="images/nodata.png" style="width: 240px;">
|
||||
<div style="text-align: center;">暂无数据</div>
|
||||
</div>
|
||||
</module-one-1-1>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<module-one-1-1 label="审批进度" :border="1" style="position: relative;">
|
||||
<img src="images/icon2001.png" style="position: absolute;cursor: pointer;right: 20px;top: 32px;z-index: 9;" @click="doStateDlg">
|
||||
<chart-bar :height="280" :optData="chart1Data" :fn="changeChart1" :key="elChart2"></chart-bar>
|
||||
</module-one-1-1>
|
||||
<module-one-1-1 label="待审批" :border="1" class="chart2" style="position: relative;">
|
||||
<img src="images/icon2001.png" style="position: absolute;cursor: pointer;right: 20px;top: 32px;z-index:9;" @click="doUnitDlg">
|
||||
<project-overview-chart :key="elChart2" :fn="changeChart2" :sp="'\n'" :maintitle="flowTotal" :legend-opt="legendOpt2"
|
||||
:typedata="chart2Data" :text="flowTitle" :height="280"
|
||||
txtTop="52" gifTop="90px" style="top:0px"></project-overview-chart>
|
||||
</module-one-1-1>
|
||||
<module-one-1-1 label="集团期刊" style="position: relative;">
|
||||
<imageItem :images="periodicalList" v-if="periodicalList.length>0 && !loading" mode="periodical"></imageItem>
|
||||
<div v-if="periodicalList.length==0 && !loading" style="text-align: center;margin-top: 40px;">
|
||||
<img src="images/nodata.png" style="width: 240px;">
|
||||
<div style="text-align: center;">暂无数据</div>
|
||||
</div>
|
||||
</module-one-1-1>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<module-one-1-1 label="设备管理标准" style="position: relative;">
|
||||
<imageItem :images="list4" v-if="list4.length>0 && !loading"></imageItem>
|
||||
<div v-if="list4.length==0 && !loading" style="text-align: center;margin-top: 40px;">
|
||||
<img src="images/nodata.png" style="width: 240px;">
|
||||
<div style="text-align: center;">暂无数据</div>
|
||||
</div>
|
||||
</module-one-1-1>
|
||||
<module-one-1-1 label="文明施工标准" style="position: relative;">
|
||||
<imageItem :images="list5" v-if="list5.length>0 && !loading"></imageItem>
|
||||
<div v-if="list5.length==0 && !loading" style="text-align: center;margin-top: 40px;">
|
||||
<img src="images/nodata.png" style="width: 240px;">
|
||||
<div style="text-align: center;">暂无数据</div>
|
||||
</div>
|
||||
</module-one-1-1>
|
||||
<module-one-1-1 label="环境保护标准" style="position: relative;">
|
||||
<imageItem :images="list6" v-if="list6.length>0 && !loading"></imageItem>
|
||||
<div v-if="list6.length==0 && !loading" style="text-align: center;margin-top: 40px;">
|
||||
<img src="images/nodata.png" style="width: 240px;">
|
||||
<div style="text-align: center;">暂无数据</div>
|
||||
</div>
|
||||
</module-one-1-1>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<unitDialog ref="unitDlg"></unitDialog>
|
||||
<stateDialog ref="stateDlg"></stateDialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import '../components/module/module-one-1-2'
|
||||
import '../components/staff-survey-chart'
|
||||
import '../components/chart-bar'
|
||||
import BorderBox6 from './components/BorderBox6.vue'
|
||||
import debounce from 'lodash.debounce'
|
||||
import imageItem from './engin/enginImageItems.vue'
|
||||
import unitDialog from './engin/flowDetailByUnitDialog.vue'
|
||||
import stateDialog from './engin/flowDetailByStateDialog.vue'
|
||||
export default {
|
||||
name: 'JhbigscreenProjectEngin',
|
||||
components: {
|
||||
BorderBox6,
|
||||
imageItem,unitDialog,stateDialog
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
elChart2:0,
|
||||
loading:true,
|
||||
index1:0,
|
||||
index2:0,
|
||||
index3:0,
|
||||
index4:0,
|
||||
index5:0,
|
||||
index6:0,
|
||||
list1:[],
|
||||
list2:[],
|
||||
list3:[],
|
||||
list4:[],
|
||||
list5:[],
|
||||
list6:[],
|
||||
chart1Data:[],
|
||||
chart2Data:[],
|
||||
legendOpt2:{
|
||||
icon: "rect",
|
||||
orient: "vertical",
|
||||
left: '70%',
|
||||
top: '0',
|
||||
itemGap: 10,
|
||||
itemWidth:20,
|
||||
itemHeight:40,
|
||||
textStyle: {
|
||||
color: "#c3dbfd",
|
||||
fontSize: 14,
|
||||
rich: {
|
||||
name: {
|
||||
color: "#c3dbfd",
|
||||
padding: [0, 2, 10, 2],
|
||||
},
|
||||
value: {
|
||||
color: "#ffffff",
|
||||
fontSize: 16,
|
||||
},
|
||||
percent: {
|
||||
color: "#4676FD",
|
||||
fontSize: 16,
|
||||
padding: [0, 2, 0, 2],
|
||||
},
|
||||
},
|
||||
}
|
||||
},
|
||||
flowTitle:'待审批',
|
||||
flowTotal:0,
|
||||
periodicalList:[]
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.$bus.$on("loadProjects", debounce(prjs => {
|
||||
this.prjs = prjs;
|
||||
}));
|
||||
this.$bus.$on("projectChange",debounce(res => {
|
||||
this.project = res;
|
||||
this.loadData();
|
||||
}));
|
||||
this.$bus.$on("deptChange",debounce(dept => {
|
||||
this.dept = dept;
|
||||
this.loadData();
|
||||
}));
|
||||
this.loadPeriodical();
|
||||
if(this.$root.hasInitHeader){
|
||||
this.initMe();
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
initMe(){
|
||||
this.project=this.$root.project||{};
|
||||
this.dept=this.$root.dept||{};
|
||||
this.prjs=this.$root.projects||[];
|
||||
this.loadData();
|
||||
},
|
||||
doStateDlg(){
|
||||
this.$refs.stateDlg.showDialog({
|
||||
deptId:this.dept?.id||0,
|
||||
projectId:this.project?.id||0
|
||||
});
|
||||
},
|
||||
doUnitDlg(){
|
||||
this.$refs.unitDlg.showDialog({
|
||||
deptId:this.dept?.id||0,
|
||||
projectId:this.project?.id||0
|
||||
});
|
||||
},
|
||||
loadPeriodical(){
|
||||
this.$api.periodical.getList().then(d=>{
|
||||
this.periodicalList=(d.data||[]).map(it=>{
|
||||
it.fileUrl=JSON.parse(it.fileUrl);
|
||||
it.imageFile=it.imageUrl;
|
||||
it.standardDesc=it.name;
|
||||
return it;
|
||||
})
|
||||
});
|
||||
},
|
||||
changeChart1(opt){
|
||||
return opt;
|
||||
},
|
||||
changeChart2(opt){
|
||||
opt.title.left=135;
|
||||
opt.title.top=20;
|
||||
opt.series[0].center=["40%","50%"];
|
||||
opt.series[1].center=["40%","50%"];
|
||||
return opt;
|
||||
},
|
||||
getProjectId(cb) {
|
||||
let func = () => {
|
||||
let prjId = this.project?.id||0;
|
||||
if (prjId == 0) {
|
||||
if (!this.prjs||this.prjs.length == 0) {
|
||||
setTimeout(func, 100);
|
||||
} else {
|
||||
if(this.prjs.length>1){
|
||||
cb && cb(this.prjs[1].id);
|
||||
}else{
|
||||
cb(0);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
cb && cb(prjId);
|
||||
}
|
||||
}
|
||||
func();
|
||||
},
|
||||
addBr(s){
|
||||
let out="";
|
||||
for(let i=0;i<s.length;i++){
|
||||
out+=s.charAt(i);
|
||||
if((i+1)%3==0 && i<s.length-2){
|
||||
out+="\n";
|
||||
}
|
||||
}
|
||||
return out;
|
||||
},
|
||||
loadData(){
|
||||
this.getProjectId(id => {
|
||||
let ajaxs=[
|
||||
this.$api.standard.getList(id,this.dept?.id||0),
|
||||
this.$api.flow.groupByCategory(this.project?.id||0,this.dept?.id||0),
|
||||
this.$api.flow.groupByUnit(this.project?.id||0,this.dept?.id||0),
|
||||
];
|
||||
this.$api.http.all(ajaxs).then(res=>{
|
||||
let d=res[0];
|
||||
let tmps=d.data||[];
|
||||
this.list1=tmps.filter(it=>it.standardType==1);
|
||||
this.list2=tmps.filter(it=>it.standardType==2);
|
||||
this.list3=tmps.filter(it=>it.standardType==3);
|
||||
this.list4=tmps.filter(it=>it.standardType==4);
|
||||
this.list5=tmps.filter(it=>it.standardType==5);
|
||||
this.list6=tmps.filter(it=>it.standardType==6);
|
||||
this.loading=false;
|
||||
let chartData=[ ['分类', '总计', '审批中', '已完成']];
|
||||
this.chartInfo=[];
|
||||
(res[1].data||[]).forEach(it=>{
|
||||
let o= {
|
||||
title:it.taskName,
|
||||
comp:it.assigneeId||0,
|
||||
uncomp:it.procDefVersion||0,
|
||||
total:0
|
||||
}
|
||||
o.total=o.comp+o.uncomp;
|
||||
chartData.push([this.addBr(o.title),o.total,o.uncomp,o.comp])
|
||||
})
|
||||
this.chart1Data=chartData;
|
||||
let tmps2=[{title:'总包单位',count:0},
|
||||
{title:'监理单位',count:0},
|
||||
{title:'设计单位',count:0},
|
||||
{title:'甲方代表',count:0},
|
||||
{title:'子公司',count:0},
|
||||
];
|
||||
let objs=res[2].data||[];
|
||||
this.flowTotal=0;
|
||||
tmps2.forEach(it=>{
|
||||
let o=objs.find(item=>it.title==item.taskName);
|
||||
if(o){
|
||||
it.count=o.assigneeId
|
||||
this.flowTotal+=o.assigneeId;
|
||||
}
|
||||
it.name=it.title;
|
||||
it.value=it.count;
|
||||
});
|
||||
this.chart2Data=tmps2;
|
||||
|
||||
this.elChart2++;
|
||||
});
|
||||
});
|
||||
},
|
||||
onItemData(e) {
|
||||
if (e.type == 1) {
|
||||
location.href = 'index.html'
|
||||
}
|
||||
this.getProjectOverview(e.id)
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.project-engin-index{
|
||||
/deep/ .border-1{
|
||||
padding-left:0px;
|
||||
}
|
||||
.chart2{
|
||||
/deep/ .chart-gif{
|
||||
top:89px;
|
||||
left:196px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -227,18 +227,13 @@ export default {
|
|||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.$bus.$on("loadProjects", debounce(prjs => {
|
||||
this.prjs = prjs;
|
||||
}));
|
||||
mounted() {
|
||||
this.$bus.$on("projectChange", debounce(res => {
|
||||
this.project = res;
|
||||
this.prjs=this.$root.projects ||this.prjs||[];
|
||||
this.dept=this.$root.dept||this.dept;
|
||||
this.loadData();
|
||||
}));
|
||||
this.$bus.$on("deptChange", debounce(dept => {
|
||||
this.dept = dept;
|
||||
this.loadData();
|
||||
}));
|
||||
}));
|
||||
if (this.$root.hasInitHeader) {
|
||||
this.initMe();
|
||||
}
|
||||
|
@ -345,8 +340,8 @@ export default {
|
|||
{id:1,text:'现场管理标准化',value:0},
|
||||
{id:2,text:'作业标准化',value:0},
|
||||
{id:3,text:'安全技术标准化',value:0},
|
||||
{id:4,text:'设备管理标准化',value:0},
|
||||
{id:5,text:'文明施工标准化',value:0},
|
||||
{id:4,text:'文明施工标准化',value:0},
|
||||
{id:5,text:'设备管理标准化',value:0},
|
||||
{id:6,text:'环境保护标准化',value:0}
|
||||
];
|
||||
datas.forEach(d => {
|
||||
|
|
|
@ -119,6 +119,7 @@
|
|||
<span style="display:inline-block;margin-left:12px;">工程审批明细</span>
|
||||
</div>
|
||||
</div>
|
||||
<ListByCategory ref="auditList"/>
|
||||
</module-one-3-1>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
@ -146,6 +147,7 @@ import enginChart from './engin/enginChart.vue'
|
|||
import { tryToJson } from '@/utils/tools'
|
||||
import ListByCategory from './engin/flowListByCategory.vue'
|
||||
import projectStandardList from './engin/projectStandardList.vue'
|
||||
|
||||
export default {
|
||||
name: 'JhbigscreenProjectEngin',
|
||||
components: { BorderBox6, imageItem, unitDialog, stateDialog, enginChart, projectStandardDialog, ListByCategory, magListDialog,projectStandardList },
|
||||
|
@ -167,18 +169,13 @@ export default {
|
|||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.$bus.$on("loadProjects", debounce(prjs => {
|
||||
this.prjs = prjs;
|
||||
}));
|
||||
mounted() {
|
||||
this.$bus.$on("projectChange", debounce(res => {
|
||||
this.project = res;
|
||||
this.dept=this.$root.dept||this.dept||{};
|
||||
this.prjs=this.$root.projects||this.prjs||[];
|
||||
this.loadData();
|
||||
}));
|
||||
this.$bus.$on("deptChange", debounce(dept => {
|
||||
this.dept = dept;
|
||||
this.loadData();
|
||||
}));
|
||||
}));
|
||||
if (this.$root.hasInitHeader) {
|
||||
this.initMe();
|
||||
}
|
||||
|
@ -201,6 +198,7 @@ export default {
|
|||
this.$refs.stateDlg.showDialog(obj);
|
||||
},
|
||||
changeChart1(opt) {
|
||||
opt.xAxis.axisLabel={ interval: 0, rotate: 0,fontSize:9,color:"#fff" }
|
||||
opt.legend = {
|
||||
textStyle: {
|
||||
color: "#fff"
|
||||
|
@ -260,8 +258,8 @@ export default {
|
|||
{ id: 1, text: '现场管理标准化', value: 0 },
|
||||
{ id: 2, text: '作业标准化', value: 0 },
|
||||
{ id: 3, text: '安全技术标准化', value: 0 },
|
||||
{ id: 4, text: '设备管理标准化', value: 0 },
|
||||
{ id: 5, text: '文明施工标准化', value: 0 },
|
||||
{ id: 4, text: '文明施工标准化', value: 0 },
|
||||
{ id: 5, text: '设备管理标准化', value: 0 },
|
||||
{ id: 6, text: '环境保护标准化', value: 0 }
|
||||
];
|
||||
datas.forEach(d => {
|
||||
|
@ -297,6 +295,9 @@ export default {
|
|||
if(this.$refs.prjStandList){
|
||||
this.$refs.prjStandList.initData();
|
||||
}
|
||||
if(this.$refs.auditList){
|
||||
this.$refs.auditList.initData();
|
||||
}
|
||||
this.showChart1(res[0]);
|
||||
this.showFlowChart2(res[1]);
|
||||
this.showMagGroup(res[2]);
|
||||
|
@ -310,6 +311,18 @@ export default {
|
|||
this.chartInfo = [];
|
||||
let sum = 0;
|
||||
(res.data || []).forEach(it => {
|
||||
if(it.taskName=="程序及质量类"){
|
||||
it.taskName="质量";
|
||||
}
|
||||
if(it.taskName=="项目管理制度类"){
|
||||
it.taskName="项目制度";
|
||||
}
|
||||
if(it.taskName=="特殊事项确认类"){
|
||||
it.taskName="特殊事项";
|
||||
}
|
||||
if(it.taskName=="专项验收审批"){
|
||||
it.taskName="专项验收";
|
||||
}
|
||||
let o = {
|
||||
title: it.taskName,
|
||||
comp: it.assigneeId || 0,
|
||||
|
|
|
@ -177,7 +177,7 @@
|
|||
</module-one-1-2>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<module-one-1-2 label="项目问题推进情况">
|
||||
<module-one-1-2 label="项目推进会纪要">
|
||||
<problemProgress :scheduleInfo="scheduleInfo" :prjInfo="prjInfo"></problemProgress>
|
||||
</module-one-1-2>
|
||||
</el-col>
|
||||
|
@ -455,20 +455,14 @@ export default {
|
|||
mounted() {
|
||||
this.$bus.$on("projectChange", debounce(res => {
|
||||
this.prjInfo = res;
|
||||
this.dept=this.$root.dept||this.dept||{};
|
||||
this.projects=this.$root.projects||this.projects||[];
|
||||
this.groupByProjectCategory(this.dept.id);
|
||||
this.deptChange();
|
||||
this.loadProjectConstructionProgress();
|
||||
this.selectScheduledAlerts();
|
||||
this.selectCompletionRate();
|
||||
}));
|
||||
this.$bus.$on("loadProjects", debounce(prjs => {
|
||||
this.projects = prjs;
|
||||
}));
|
||||
this.$bus.$on("deptChange", debounce(dept => {
|
||||
this.dept = dept;
|
||||
this.groupByProjectCategory(dept.id);
|
||||
this.deptChange();
|
||||
this.selectScheduledAlerts();
|
||||
this.selectCompletionRate();
|
||||
}))
|
||||
}));
|
||||
if(this.$root.hasInitHeader){
|
||||
this.initMe();
|
||||
}
|
||||
|
|
|
@ -32,10 +32,10 @@
|
|||
</div>
|
||||
<project-overview-chart2 :key="'b' + safeNav" :sp="'\n'" :maintitle="fmt(summaryTotal)"
|
||||
:typedata="summary" :text="safeText" :height="230"></project-overview-chart2>
|
||||
</div>
|
||||
<div class="proble-list" v-if="isTypeBuser()">
|
||||
<div class="my-module-title module-title" style="" >质量隐患明细</div>
|
||||
<ProblemmodifyList ref="probList"></ProblemmodifyList>
|
||||
</div>
|
||||
<div class="proble-list" v-if="isOneProject()">
|
||||
<div class="my-module-title module-title" style="" >质量隐患明细</div>
|
||||
<ProblemmodifyList ref="probList"></ProblemmodifyList>
|
||||
</div>
|
||||
<div v-else style="padding: 0px 20px" :key="'c' + elSummaryPrjKey">
|
||||
<el-row>
|
||||
|
@ -354,36 +354,20 @@ export default {
|
|||
this.measureTypes = [{ text: '汇总', id: 0 }, ...tmps]
|
||||
});
|
||||
},
|
||||
mounted() {
|
||||
mounted() {
|
||||
let dt1 = this.$dt((+new Date()) - 30 * 24 * 3600 * 1000);
|
||||
let dt2 = this.$dt(new Date());
|
||||
this.selDate = [dt1, dt2];
|
||||
this.$bus.$on(
|
||||
"loadProjects",
|
||||
debounce((prjs) => {
|
||||
this.prjs = prjs;
|
||||
})
|
||||
);
|
||||
this.$bus.$on(
|
||||
"projectChange",
|
||||
debounce((res) => {
|
||||
this.selDate = [dt1, dt2];
|
||||
this.$bus.$on("projectChange",debounce((res) => {
|
||||
this.projectInfo = res;
|
||||
this.dept = this.$root.dept || this.dep||{};
|
||||
this.prjs = this.$root.projects ||this.prjs|| [];
|
||||
this.dtChange();
|
||||
this.checkDetection(0);
|
||||
this.doMeasuredNav(0, "汇总");
|
||||
this.groupByApprove();
|
||||
})
|
||||
);
|
||||
this.$bus.$on(
|
||||
"deptChange",
|
||||
debounce((dept) => {
|
||||
this.dept = dept;
|
||||
this.dtChange();
|
||||
this.checkDetection(0);
|
||||
this.doMeasuredNav(0, "汇总");
|
||||
this.groupByApprove();
|
||||
})
|
||||
);
|
||||
);
|
||||
if (this.$root.hasInitHeader) {
|
||||
this.initMe();
|
||||
}
|
||||
|
@ -392,9 +376,12 @@ export default {
|
|||
},400);
|
||||
},
|
||||
methods: {
|
||||
isTypeBuser(){
|
||||
return this.$root.isTypeBuser;
|
||||
},
|
||||
isOneProject(){
|
||||
if(this.prjs && this.projectInfo){
|
||||
return this.prjs.length==2||this.projectInfo.id>0;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
showMaterialSealDlg() {
|
||||
this.$refs.msListDlg.showDialog({
|
||||
deptId: this.dept?.id || 0,
|
||||
|
@ -492,10 +479,7 @@ export default {
|
|||
n = "" + n;
|
||||
return " ".substring(0, 3 - n.length) + n;
|
||||
},
|
||||
dtChange() {
|
||||
if(this.isTypeBuser() && this.$refs.probList){
|
||||
this.$refs.probList.loadData(1, this.safeNav, this.selDate);
|
||||
}
|
||||
dtChange() {
|
||||
this.doDeptChane();
|
||||
},
|
||||
doDeptChane() {
|
||||
|
@ -511,6 +495,9 @@ export default {
|
|||
postData.endDate = this.$dt(this.selDate[1]).format("YYYY-MM-DD");
|
||||
}
|
||||
this.$api.problemmodify.qualitySummary(postData).then((d) => {
|
||||
if(this.isOneProject() && this.$refs.probList){
|
||||
this.$refs.probList.loadData(1, this.safeNav, this.selDate);
|
||||
}
|
||||
this.summary = (d || []).map((it) => {
|
||||
return {
|
||||
text: it.problemArea,
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
<project-overview-chart2 :key="'b' + safeNav" :sp="'\n'" :maintitle="fmt(summaryTotal)"
|
||||
:typedata="summary" :text="safeText" :height="230"></project-overview-chart2>
|
||||
</div>
|
||||
<div class="proble-list" v-if="isTypeBuser()">
|
||||
<div class="proble-list" v-if="isOneProject()">
|
||||
<div class="my-module-title module-title" style="" >安全隐患明细</div>
|
||||
<ProblemmodifyList ref="probList"></ProblemmodifyList>
|
||||
</div>
|
||||
|
@ -89,8 +89,12 @@
|
|||
@click="doShowWorkTrain(1)">
|
||||
<enginChart ref="chart4" :height="300"></enginChart>
|
||||
</module-one-1-1>
|
||||
<module-one-1-1 label="特种作业人员">
|
||||
<div class="quality-table special-table">
|
||||
<module-one-1-1 label="特种作业人员" style="position: relative;">
|
||||
<img src="images/icon2001.png" v-if="isOneProject()"
|
||||
style="position: absolute;cursor: pointer;right: 20px;top: 13px;z-index: 9;"
|
||||
@click="doSpecialRowClick">
|
||||
<SpecialList ref="specList" v-if="isOneProject()"></SpecialList>
|
||||
<div v-else class="quality-table special-table">
|
||||
<el-table :data="specialDataList" class="mytable"
|
||||
style="width: 100%;background: transparent;" height="265" ref="fbsubordinateUnit"
|
||||
@row-click="doSpecialRowClick">
|
||||
|
@ -214,7 +218,7 @@
|
|||
</div>
|
||||
<div v-if="safetyWorkFlowList && safetyWorkFlowList.length > 0"
|
||||
class="quality-table special-table scroll"
|
||||
style="overflow-x: hidden;overflow-y: scroll;height: 238px;margin-right: 12px;">
|
||||
style="overflow-x: hidden;overflow-y: scroll;height: 230px;margin-right: 12px;">
|
||||
<el-table :data="safetyWorkFlowList" class="mytable" style="background: transparent;">
|
||||
<el-table-column prop="businessKeyName" label="项目名称" min-width="150"></el-table-column>
|
||||
<el-table-column prop="total" label="申请状态">
|
||||
|
@ -241,7 +245,8 @@
|
|||
</div>
|
||||
</module-one-1-1>
|
||||
<module-one-1-1 label="保险采购明细">
|
||||
<div class="quality-table special-table">
|
||||
<projectInsurancList v-if="isOneProject()" ref="prjInsList"></projectInsurancList>
|
||||
<div class="quality-table special-table" v-else>
|
||||
<el-table :data="insuranceDataList" class="my-table"
|
||||
style="width: 100%;background: transparent;" height="265"
|
||||
@row-click="doInsuranceRowClick" ref="fbsubordinateUnit">
|
||||
|
@ -324,12 +329,14 @@ import debounce from 'lodash.debounce'
|
|||
import enginChart from './engin/enginChart.vue'
|
||||
import workTrainListDlg from './safe/workTrainListDlg.vue'
|
||||
import ProblemmodifyList from './components/ProblemmodifyList.vue'
|
||||
import SpecialList from './safe/SpecialList.vue'
|
||||
import projectInsurancList from './safe/projectInsurancList.vue'
|
||||
export default {
|
||||
components: {
|
||||
worktrainDlg,
|
||||
projectSpecialDlg,
|
||||
ProblemmodifyDetail, AttendanceDetailDialog,
|
||||
projectInsuranceDlg, JobWorkerDialog, enginChart, workTrainListDlg,ProblemmodifyList
|
||||
projectInsuranceDlg, JobWorkerDialog, enginChart, workTrainListDlg,ProblemmodifyList,SpecialList,projectInsurancList
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
@ -423,41 +430,32 @@ export default {
|
|||
let dt1=this.$dt((+new Date())-30*24*3600*1000);
|
||||
let dt2=this.$dt(new Date());
|
||||
this.selDate=[dt1,dt2];
|
||||
this.$bus.$on("projectChange", debounce(res => {
|
||||
this.$bus.$on("projectChange", debounce(res => {
|
||||
this.projectInfo = res;
|
||||
this.dtChange();
|
||||
this.dept=this.$root.dept||this.dept;
|
||||
this.projects=this.$root.projects ||this.projects;
|
||||
this.dtChange(true);
|
||||
this.getWorkTrainChart();
|
||||
//this.getWorkTrainList();
|
||||
//this.getEmergencyDrillList();
|
||||
this.getProjectSpecialView();
|
||||
this.getDeptSafetyWorksList();
|
||||
this.getProjectInsuranceList();
|
||||
}));
|
||||
this.$bus.$on("loadProjects", debounce(prjs => {
|
||||
this.projects = prjs;
|
||||
}))
|
||||
this.$bus.$on("deptChange", debounce(dept => {
|
||||
this.dept = dept;
|
||||
this.dtChange();
|
||||
//this.getWorkTrainList();
|
||||
//this.getEmergencyDrillList();
|
||||
this.getProjectSpecialView();
|
||||
this.getDeptSafetyWorksList();
|
||||
this.getProjectInsuranceList();
|
||||
if (this.fileNav == 3) {
|
||||
this.getWorkFileList();
|
||||
}
|
||||
}));
|
||||
}));
|
||||
if (this.$root.hasInitHeader) {
|
||||
this.initMe();
|
||||
}
|
||||
setTimeout(()=>{
|
||||
this.dtChange();
|
||||
this.dtChange(true);
|
||||
},400);
|
||||
},
|
||||
methods: {
|
||||
isTypeBuser(){
|
||||
return this.$root.isTypeBuser;
|
||||
isOneProject(){
|
||||
if(this.projects && this.projectInfo){
|
||||
return this.projects.length==2||this.projectInfo.id>0;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
doShowWorkTrain(type) {
|
||||
this.$refs.workTrainListDlg.showDialog({
|
||||
|
@ -484,9 +482,7 @@ export default {
|
|||
this.projectInfo = this.$root.project || {};
|
||||
this.dept = this.$root.dept || {};
|
||||
this.projects = this.$root.projects || [];
|
||||
this.getWorkTrainChart();
|
||||
//this.getWorkTrainList();
|
||||
//this.getEmergencyDrillList();
|
||||
this.getWorkTrainChart();
|
||||
this.getProjectSpecialView();
|
||||
this.getDeptSafetyWorksList();
|
||||
this.getProjectInsuranceList();
|
||||
|
@ -501,6 +497,10 @@ export default {
|
|||
this.$refs.probDlg.showDialog(a, 0, this.safeNav, this.selDate);
|
||||
},
|
||||
doSpecialRowClick(row) {
|
||||
if(this.isOneProject()){
|
||||
row=this.$root.projects[1];
|
||||
row.projectId=row.id;
|
||||
}
|
||||
row.title = row.projectName + "特种作业人员清单";
|
||||
this.$refs.projectSpecialDlg.showDialog(row);
|
||||
},
|
||||
|
@ -562,7 +562,9 @@ export default {
|
|||
}
|
||||
]
|
||||
};
|
||||
this.$refs.chart3.init(opt);
|
||||
if(this.$refs.chart3){
|
||||
this.$refs.chart3.init(opt);
|
||||
}
|
||||
let tmps = this.WorkTrainChart2;
|
||||
let opt2 = {
|
||||
grid: {
|
||||
|
@ -607,7 +609,9 @@ export default {
|
|||
}
|
||||
]
|
||||
};
|
||||
this.$refs.chart4.init(opt2);
|
||||
if(this.$refs.chart4){
|
||||
this.$refs.chart4.init(opt2);
|
||||
}
|
||||
});
|
||||
},
|
||||
// 获取教育培训列表
|
||||
|
@ -702,13 +706,11 @@ export default {
|
|||
n = "" + n;
|
||||
return " ".substring(0, 3 - n.length) + n;
|
||||
},
|
||||
dtChange() {
|
||||
if(this.isTypeBuser() && this.$refs.probList){
|
||||
this.$refs.probList.loadData(0, this.safeNav, this.selDate);
|
||||
}
|
||||
this.doDeptChane();
|
||||
dtChange(init) {
|
||||
|
||||
this.doDeptChane(init);
|
||||
},
|
||||
doDeptChane() {
|
||||
doDeptChane(init) {
|
||||
let postData = {
|
||||
deptId: this.dept?.id || 0,
|
||||
roleType: this.safeNav,
|
||||
|
@ -721,7 +723,17 @@ export default {
|
|||
postData.endDate = this.$dt(this.selDate[1]).format("YYYY-MM-DD");
|
||||
}
|
||||
this.$api.problemmodify.safetySummary(postData).then(d => {
|
||||
|
||||
if(init){
|
||||
if(this.isOneProject() && this.$refs.probList){
|
||||
this.$refs.probList.loadData(0, this.safeNav, this.selDate);
|
||||
}
|
||||
if(this.$refs.specList){
|
||||
this.$refs.specList.initData();
|
||||
}
|
||||
if(this.$refs.prjInsList){
|
||||
this.$refs.prjInsList.initData();
|
||||
}
|
||||
}
|
||||
this.summary = (d || []).map(it => {
|
||||
return {
|
||||
text: it.problemArea,
|
||||
|
@ -823,6 +835,7 @@ export default {
|
|||
|
||||
//定时器|一分钟执行一次
|
||||
this.getWorkFileList();
|
||||
|
||||
//setInterval(this.getWorkFileList, 60000);
|
||||
//setInterval(this.getWorkTrainList, 60000);
|
||||
//setInterval(this.getEmergencyDrillList, 60000);
|
||||
|
|
|
@ -307,7 +307,6 @@ export default {
|
|||
};
|
||||
},
|
||||
beforeDestroy() {
|
||||
console.log("-----beforeDestroy------>");
|
||||
this.players.forEach((p) => {
|
||||
if (p) {
|
||||
try {
|
||||
|
@ -319,27 +318,13 @@ export default {
|
|||
},
|
||||
mounted() {
|
||||
window.xapp = this;
|
||||
this.$bus.$on(
|
||||
"projectChange",
|
||||
debounce((res) => {
|
||||
this.$bus.$on("projectChange",debounce((res) => {
|
||||
this.projectInfo = res;
|
||||
this.dept = this.$root.dept || this.dept|| {};
|
||||
this.projectInfos = this.$root.projects || this.projectInfos||[];
|
||||
this.initVideoMenu();
|
||||
})
|
||||
);
|
||||
this.$bus.$on(
|
||||
"loadProjects",
|
||||
debounce((prjs) => {
|
||||
this.projectInfos = prjs;
|
||||
//this.initVideoMenu();
|
||||
})
|
||||
);
|
||||
this.$bus.$on(
|
||||
"deptChange",
|
||||
debounce((dept) => {
|
||||
this.dept = dept;
|
||||
//this.initVideoMenu();
|
||||
})
|
||||
);
|
||||
);
|
||||
if (this.$root.hasInitHeader) {
|
||||
this.initMe();
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
@click="doQueryGroup(it.dictValue, 'a')" v-for="(it, idx) in dict1" :key="it.dictValue">{{
|
||||
it.dictLabel }}</div>
|
||||
</div>
|
||||
<div v-if="!projectInfo || projectInfo.id == 0">
|
||||
<div v-if="(!projectInfo || projectInfo.id == 0)&& !isTypeBuser()">
|
||||
<div class="idle-list problemmodify_list" style="padding:0px 10px">
|
||||
<el-table style="width: 100%" ref="wgzp" :row-style="rowStyle" :data="dataList1" height="233"
|
||||
class="el-table">
|
||||
|
@ -92,7 +92,7 @@
|
|||
@click="doQueryGroup(it.dictValue, 'b')" v-for="(it, idx) in dict2" :key="it.dictValue">{{
|
||||
it.dictLabel }}</div>
|
||||
</div>
|
||||
<div v-if="!projectInfo || projectInfo.id == 0">
|
||||
<div v-if="(!projectInfo || projectInfo.id == 0) && !isTypeBuser()">
|
||||
<div class="idle-list problemmodify_list" style="padding:0px 10px">
|
||||
<el-table style="width: 100%" ref="wgzp" :row-style="rowStyle" :data="dataList2" height="233"
|
||||
class="el-table">
|
||||
|
@ -204,26 +204,21 @@ export default {
|
|||
});
|
||||
},
|
||||
mounted() {
|
||||
this.$bus.$on(
|
||||
"loadProjects",
|
||||
debounce((prjs) => {
|
||||
this.prjs = prjs;
|
||||
})
|
||||
);
|
||||
this.$bus.$on("projectChange", throttle((res) => {
|
||||
this.projectInfo = res;
|
||||
this.dept = this.$root.dept || this.dept||{};
|
||||
this.prjs=this.$root.projects || this.prjs||[];
|
||||
this.loadData();
|
||||
}));
|
||||
this.$bus.$on("deptChange", throttle((dept) => {
|
||||
this.dept = dept;
|
||||
this.loadData();
|
||||
}));
|
||||
}));
|
||||
if (this.$root.hasInitHeader) {
|
||||
this.initMe();
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
isTypeBuser(){
|
||||
return this.$root.isTypeBuser;
|
||||
},
|
||||
doShowCheckingListDlg(lvl1) {
|
||||
this.$refs.listDlg.showDialog({
|
||||
lvl1: lvl1,
|
||||
|
@ -262,16 +257,24 @@ export default {
|
|||
} else {
|
||||
this.nav2 = nav;
|
||||
}
|
||||
if (!this.projectInfo || this.projectInfo.id == 0) {
|
||||
if(!this.projectInfo){
|
||||
return;
|
||||
}
|
||||
if ((!this.projectInfo || this.projectInfo.id == 0) && !this.isTypeBuser() ){
|
||||
this.loadGroupData(nav, t);
|
||||
} else {
|
||||
this.queryDataList(nav, t);
|
||||
}
|
||||
|
||||
},
|
||||
queryDataList(nav, t) {
|
||||
queryDataList(nav, t) {
|
||||
let prjId=this.$root.project.id;
|
||||
if(prjId==0 && this.$root.projects.length>1){
|
||||
prjId=this.$root.projects[1].id;
|
||||
this.projectInfo=this.$root.projects[1];
|
||||
}
|
||||
let postData = {
|
||||
projectId: this.projectInfo.id,
|
||||
projectId: prjId,
|
||||
dataTypeLvl2:nav
|
||||
}
|
||||
this.$api.projectChecking.queryProjectCheckingList(1, 20, postData).then(d => {
|
||||
|
|
|
@ -0,0 +1,107 @@
|
|||
<template>
|
||||
<div class="specia-lList">
|
||||
<div class="warning-info-title" style="padding-left: 8px;font-size:14px;">
|
||||
<div :class="nav == 'all' ? 'active' : ''" @click="doNav('all')">全部数据({{ tags.all }})</div>
|
||||
<div :class="nav == 'wgq' ? 'active' : ''" @click="doNav('wgq')">未过期({{ tags.wgq }})</div>
|
||||
<div :class="nav == 'ygq' ? 'active' : ''" @click="doNav('ygq')">已过期({{ tags.ygq }})</div>
|
||||
</div>
|
||||
<div v-if="dataList.length>0" class="quality-table special-table">
|
||||
<el-table :data="dataList" class="mytable is-scroll" style="width: 100%;background: transparent;" height="400">
|
||||
<el-table-column prop="deptName" align="center" label="所属单位" width="100"></el-table-column>
|
||||
<el-table-column prop="name" align="center" label="人员名称" width="80"></el-table-column>
|
||||
|
||||
<el-table-column label="人员类型" align="center" prop="specialTypeName"></el-table-column>
|
||||
|
||||
<el-table-column label="证书过期时间" align="center" prop="credentialExpirationTime"></el-table-column>
|
||||
|
||||
</el-table>
|
||||
</div>
|
||||
<div v-else style="text-align: center;padding-top:20px;">
|
||||
<img src="images/nodata.png" style="width: 240px;">
|
||||
<div style="text-align: center;">暂无数据</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
nav:"all",
|
||||
dataList: [],
|
||||
specialType:"0",
|
||||
prjId:0,
|
||||
tags:{
|
||||
all:0,
|
||||
wgq:0,
|
||||
qgq:0
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
|
||||
},
|
||||
|
||||
methods: {
|
||||
doNav(n){
|
||||
this.nav=n;
|
||||
this.getList();
|
||||
},
|
||||
initData(){
|
||||
this.getList();
|
||||
this.queryCount();
|
||||
},
|
||||
getList(){
|
||||
let prjId=this.$root.project.id;
|
||||
if(prjId==0 && this.$root.projects.length>1){
|
||||
prjId=this.$root.projects[1].id;
|
||||
this.projectInfo=this.$root.projects[1];
|
||||
}
|
||||
this.prjId=prjId;
|
||||
if(prjId==0){
|
||||
this.dataList=[];
|
||||
}
|
||||
this.$api.special.getProjectSpecialList(prjId,this.nav,this.specialType).then(response => {
|
||||
this.dataList = response.rows;
|
||||
});
|
||||
},
|
||||
queryCount(){
|
||||
if(this.prjId==0){
|
||||
return;
|
||||
}
|
||||
this.$api.special.findWorkSpecialCount(this.prjId,this.specialType).then(response => {
|
||||
if (response && response.data) {
|
||||
let sum = 0;
|
||||
if (response.data.notExpired) {
|
||||
sum += response.data.notExpired;
|
||||
this.tags.wgq = response.data.notExpired;
|
||||
}
|
||||
if (response.data.expired) {
|
||||
sum += response.data.expired;
|
||||
this.tags.ygq = response.data.expired;
|
||||
}
|
||||
this.tags.all = sum;
|
||||
}
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less">
|
||||
.specia-lList{
|
||||
.warning-info-title{
|
||||
padding:10px 0px 0px;
|
||||
}
|
||||
.quality-table{
|
||||
padding:0px;
|
||||
.mytable{
|
||||
&.is-scroll{
|
||||
.el-table__body-wrapper{
|
||||
height:210px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,103 @@
|
|||
<template>
|
||||
<div class="project-insuranc-list scroll quality-table special-table" style="max-height: 260px;overflow-y: auto;">
|
||||
|
||||
<div class="data-item el-table" v-for="(it, idx) in list" :key="idx" style="position:relative;">
|
||||
|
||||
<table class="el-table__body-wrapper">
|
||||
<tr class="el-table__row"
|
||||
<td style="width:50%"><img src="images/title_icon.png"><span
|
||||
class="sp-label">单位名称:</span>{{ it.deptName }}</td>
|
||||
|
||||
<td><img src="images/title_icon.png"><span class="sp-label">保险公司:</span>{{ it.companyName }}</td>
|
||||
|
||||
</tr>
|
||||
<tr class="el-table__row">
|
||||
<td><img src="images/title_icon.png"><span class="sp-label">保险类型:</span>{{ it.insuranceTypeName }}
|
||||
</td>
|
||||
|
||||
<td><img src="images/title_icon.png"><span class="sp-label">保险单号:</span>{{ it.insuranceNumber }}</td>
|
||||
|
||||
</tr>
|
||||
<tr class="el-table__row">
|
||||
<td><img src="images/title_icon.png"><span class="sp-label">保险状态:</span>
|
||||
<template v-if="it.insuranceState == 'Y'">
|
||||
<i class="el-icon-success" style="color:rgb(34, 193, 52)"></i> <span
|
||||
style="color:rgb(34, 193, 52)">已办理</span>
|
||||
</template>
|
||||
<template v-else>
|
||||
<i class="el-icon-error" style="color:rgb(245, 34, 45)"></i> <span
|
||||
style="color:rgb(245, 34, 45)">未办理</span>
|
||||
</template>
|
||||
<span v-if="it.insuranceFile" @click="download(it)"
|
||||
style="cursor:pointer;margin-left:12px;color:rgb(1, 169, 255);">
|
||||
<i class="el-icon-paperclip" style=""></i><span>下载</span>
|
||||
</span>
|
||||
</td>
|
||||
|
||||
<td><img src="images/title_icon.png"><span class="sp-label">办理时间:</span>{{ it.createTime | formatDate }}
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
prjId: 0,
|
||||
list: []
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
|
||||
},
|
||||
|
||||
methods: {
|
||||
initData() {
|
||||
this.loadData();
|
||||
},
|
||||
loadData() {
|
||||
let prjId = this.$root.project.id;
|
||||
if (prjId == 0 && this.$root.projects.length > 1) {
|
||||
prjId = this.$root.projects[1].id;
|
||||
this.projectInfo = this.$root.projects[1];
|
||||
}
|
||||
this.prjId = prjId;
|
||||
if (prjId == 0) {
|
||||
this.list = [];
|
||||
}
|
||||
this.$api.insurance.getProjectInsurance(prjId).then(d => {
|
||||
this.list = d.data || [];
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less">
|
||||
.project-insuranc-list {
|
||||
padding: 10px;
|
||||
.data-item{
|
||||
border-bottom: dashed 1px #3da2ff;
|
||||
&:last-child{
|
||||
border-bottom: none;
|
||||
}
|
||||
.el-table__body-wrapper{
|
||||
border-collapse: collapse;
|
||||
td{
|
||||
text-align: left;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
img{
|
||||
position: relative;
|
||||
top:7px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -75,6 +75,12 @@
|
|||
background: transparent;
|
||||
border-right-color: rgb(1, 169, 255);
|
||||
}
|
||||
.el-picker-panel__icon-btn{
|
||||
color: #01A9FF;
|
||||
}
|
||||
.el-picker-panel__icon-btn:hover{
|
||||
color: #ced7db;
|
||||
}
|
||||
.el-date-range-picker__content{
|
||||
.el-date-table {
|
||||
th{
|
||||
|
@ -137,7 +143,7 @@
|
|||
border: solid 1px rgba(1, 169, 255,1);
|
||||
}
|
||||
.el-message-box__title{
|
||||
color: #000;
|
||||
color: #fff;
|
||||
}
|
||||
.el-message-box__btns{
|
||||
text-align: center;
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -123,9 +123,9 @@ const routes = [
|
|||
{
|
||||
path: '/yanZhu_GZAI',
|
||||
name: 'yanZhu_GZAI',
|
||||
meta:{nav:8097,},
|
||||
component: () => import('../pages/gzaiBox/index.vue')
|
||||
}
|
||||
meta:{nav:63,},
|
||||
component: () => import(/* webpackChunkName: "gzaiBox" */ '../pages/gzaiBox/index.vue')
|
||||
}
|
||||
]
|
||||
const router = new VueRouter({
|
||||
mode: 'hash',
|
||||
|
@ -135,4 +135,4 @@ const router = new VueRouter({
|
|||
export {
|
||||
routes
|
||||
}
|
||||
export default router
|
||||
export default router
|
Loading…
Reference in New Issue