This commit is contained in:
杜海鹏 2022-07-15 15:12:46 +08:00
commit acab270348
113 changed files with 20800 additions and 7694 deletions

15270
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
var COMPANY = ''; //通用
// var COMPANY = ''; //通用
// var COMPANY='zhongjian'; //中建,和沃尔对接的插件版用这个企业
// var COMPANY='hezhan'; //合展-宿迁
// var COMPANY='nanchang'; //南昌地铁、衢州
var COMPANY='nanchang'; //南昌地铁、衢州
// var COMPANY='longguang'; //龙光地产
// var COMPANY='zhengwu'
// var COMPANY='shenbai'; //沈白高铁

View File

@ -1,5 +1,6 @@
export default{
moudleName1:'项目概况',
tips1:'请联系管理员开通此模块!',
tips2:'该模块正在开发中,敬请期待!'
tips2:'该模块正在开发中,敬请期待!',
tips3:'即将跳转到新页面!',
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 545 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 957 KiB

View File

@ -39,20 +39,23 @@ if (process.env.NODE_ENV == 'development') {
// axios.defaults.baseURL = 'http://36.137.53.203:9090/'; // 南昌地铁 17512009894 123456789 gdjt 123456789
// axios.defaults.baseURL = 'http://124.71.178.44:100/'
axios.defaults.baseURL = 'http://192.168.34.125:6023/'
// axios.defaults.baseURL = 'http://124.71.178.44:100/' // 河南
// tag: 本地
// axios.defaults.baseURL = 'http://192.168.88.220:6023/'; //本地 http/1.1
// axios.defaults.baseURL = 'http://192.168.34.148:6023/' // 老大本地
axios.defaults.baseURL = 'http://192.168.34.125:6023/'; //杨意本地 http/1.1
// axios.defaults.baseURL = 'http://124.71.178.44:9500/'; // 星璇
// axios.defaults.baseURL = 'http://120.196.217.6:7000/';
// axios.defaults.baseURL = 'http://139.9.66.234:8/';
// axios.defaults.baseURL = 'http://120.196.217.6:7000/'; // 鹤洲
// axios.defaults.baseURL = 'http://182.90.224.237:7000/'; // 广西
// axios.defaults.baseURL = 'http://120.196.217.6:7000/' //鹤洲
// axios.defaults.baseURL = 'http://117.156.17.59:9090/'; //
// axios.defaults.baseURL = 'http://120.236.247.200:9000/'; //横琴线上
// axios.defaults.baseURL = 'http://223.82.100.80:9000/'; //南昌地铁
// axios.defaults.baseURL = 'http://139.9.66.234:40001/'; //南昌地铁二期
// axios.defaults.baseURL = 'http://124.71.178.44:30/';
// axios.defaults.baseURL = 'http://192.168.34.125:9090/';
// axios.defaults.baseURL = 'http://192.168.88.220:6023/';
@ -76,6 +79,7 @@ else if (process.env.NODE_ENV == 'debug') {
} else if (process.env.NODE_ENV == 'production') {
let host = window.location.host;
axios.defaults.baseURL = window.location.protocol + "//" + host + "/"
// axios.defaults.baseURL ='http://192.168.34.125:6033/'
// axios.defaults.baseURL = window.location.protocol + "//" + host.split(":")[0] + ":6023" + "/"
// axios.defaults.baseURL = 'http://zhgd.loganwy.com/'
}

View File

@ -1,5 +1,6 @@
<template>
<div v-if="headerShow" class="title flex">
<!-- v-if="headerShow" -->
<div class="title flex">
<div class="title_l flex">
<img v-if="systemInfo.platformLogo" :src="systemInfo.platformLogo" class="logo" height="25"/>
<img v-else-if="LOGO_white" :src="'./img/logo/'+LOGO_white+'.png'" class="logo" height="25"/>
@ -159,7 +160,10 @@ export default {
},
created(){
this.company = COMPANY;
console.log('this.company',this.company)
console.log('COMPANY',COMPANY)
this.loginData = JSON.parse(localStorage.getItem('systemInfo'))
// console.log('',this.loginData)

View File

@ -337,3 +337,4 @@ export default {
}
}
</style>

220
src/components/layoutQu.vue Normal file
View File

@ -0,0 +1,220 @@
<template>
<div class="maxBox">
<div class=" flex topfirst">
<div class="title">工地监管服务平台</div>
<div class="tabs flex">
<el-tabs
v-model="activeName"
v-for="(item, index) in menuData"
:key="index"
@tab-click="handleClick(index, item.moduleId)"
>
<el-tab-pane
class="el-tab-pane"
:label="item.moduleName"
:name="item.moduleId"
>
</el-tab-pane>
</el-tabs>
</div>
<div class="bigScreen">
<img style="width:15px;height:15px; margin-right:5px;" src='@/assets/images/menu/screenicon.png' class="icon" />
<span style="margin-right:30px;">控制面板</span>
<img style="width:15px;height:15px; margin-right:5px;" src='@/assets/images/menu/closeicon.png' class="icon" />
<span @click="toBack()">退出</span>
</div>
</div>
<div class="flex">
<div class="left">
<!-- :default-active="menuTwo[0].path" -->
<el-menu
class="el-menu-vertical-demo"
@open="handleOpen"
@close="handleClose"
@select="selectEvent"
:route="true"
>
<div v-for="(item, index) in menuTwo" :key="index">
<!-- 没有三级菜单的 -->
<el-menu-item v-if="item.menuList == ''" :index="item.path">
<!-- <i class="el-icon-menu"></i> -->
<!-- @/assets/images/icon-bigData.png -->
<img style="width:20px;height:20px;margin-right:10px;" :src="require('@/assets/images/menu/' + item.icon + '.png')" class="icon" />
<span slot="title">{{ item.menuName }}</span>
</el-menu-item>
<el-submenu v-else :index="item.menuId">
<template slot="title">
<!-- <i class="el-icon-location"></i> -->
<img style="width:20px;height:20px; margin-right:10px;" :src="require('@/assets/images/menu/' + item.icon + '.png')" class="icon" />
<span>{{ item.menuName }}</span>
</template>
<div v-if="menuTwo[index].menuList != ''">
<div v-for="(item, index) in menuTwo[index].menuList">
<el-menu-item v-if="item.menuList == ''" :index="item.menuId">
<!-- <i class="el-icon-menu"></i> -->
<span slot="title">{{ item.menuName }}</span>
</el-menu-item>
<el-submenu v-else :index="item.menuId">
<template slot="title">{{ item.menuName }}</template>
<div v-if="item.menuList != ''">
<!-- <img style="width:20px;height:20px; margin-right:10px;" :src="require('@/assets/images/menu/' + item.icon + '.png')" class="icon" /> -->
<el-menu-item
v-for="(item2, index) in item.menuList"
:key="index"
:index="item2.menuId"
>{{ item2.menuName }}</el-menu-item
>
</div>
</el-submenu>
</div>
</div>
</el-submenu>
</div>
</el-menu>
</div>
<div class="right">
<router-view></router-view>
<!-- <div>
<img class="noData" src='../../assets/images/menu/noData.png' />
<p class="pnoData">暂无数据</p>
</div> -->
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
activeName: "1544872925246009346",
userInfo: "", //
menuData: [], //
menuTwo: [], //
menuThree: [], //
menuId: "",
noChildren: false,
};
},
created() {
this.userInfo = this.$store.state.userInfo;
this.menuData = this.userInfo.menuAuthority.moduleList;
// this.$router.push({path:this.menuData[1].modulePath})
console.log('menuData',this.menuData)
this.menuId = this.menuData[1].moduleId;
this.menuData = this.menuData.filter((item) => {
return item.labelName == "衢州版";
});
},
methods: {
// 退
toBack(){
// window.open("/index.html#/projectList", "_self");
this.$router.path({path:'/projectList'})
localStorage.setItem('model','defaultModel')
},
handleClick(val, id) {
console.log(val, id);
localStorage.setItem("menuId", id);
this.menuId = id;
this.clickIndex == val;
this.menuTwo = this.menuData[val].menuList;
console.log("二级路由内容", this.menuTwo);
},
handleOpen(key, keyPath) {
console.log(key, keyPath);
},
handleClose(key, keyPath) {
console.log(key, keyPath);
},
selectEvent(index,val){
console.log('index',index)
console.log('val',val)
if(index == val.menuId){
// this.$router.push({ path: val.path })
}
}
},
};
</script>
<style lang="less" scoped>
.maxBox {
background-color: rgb(245, 245, 245);
}
.title{
flex:1;
display:inline-block;
font-size:24px;
margin-right:50px;
margin-left:50px;
height: 100px;
line-height:100px;
margin-bottom:17px;
}
.tabs{
flex:8;
}
.bigScreen{
flex:1;
margin-right:100px;
}
.topfirst {
height: 100px;
width: 100%;
display:inline-block;
background-color: rgb(255, 255, 255);
box-shadow: 0px 6px 11px 0px rgba(0, 0, 0, 0.15);
border-radius:10px;
margin-bottom: 20px;
}
.flex {
display: flex;
align-items: center;
.left {
margin-right: 10px;
flex: 1;
height: 900px;
overflow: auto;
background-color:rgb(255, 255, 255);
border-radius:10px;
}
.right {
margin-right: 10px;
flex: 7;
height: 900px;
background-color:rgb(255, 255, 255);
border-radius:10px;
.noData{
width:300px;
height:200px;
}
.pnoData{
color:rgb(38, 95, 246);
}
}
}
::v-deep .el-tabs__item {
font-size: 18px;
// color:rgb(146, 146, 146);
margin-right: 40px;
}
::v-deep .el-tabs__nav-wrap::after {
width: 0px;
background-color: rgb(38, 95, 246);
}
::v-deep .el-menu-item.is-active {
color: white;
font-size:18px;
border-radius:20px;
margin-left:20px;
background-color:rgb(57, 109, 247);
}
::v-deep .el-menu-item__title{
font-size:18px;
}
// ::v-deep .el-menu--horizontal > .el-menu-item {
// border-right: none;
// text-decoration: none;
// }
</style>

View File

@ -0,0 +1,339 @@
<template>
<div class="fullHeight pages">
<vhead showR="true"></vhead>
<!-- 点击标题跳转项目概况首页菜单导航栏渲染的数据是vuex中的projectManageMenuList -->
<div v-if="tabsShow && $route.path.indexOf('/firm/') != -1" class="menuBox" :class="{ big: $route.path.indexOf('/firm/') != -1 }">
<el-menu
:default-active="$route.path"
class="el-menu-demo"
:class="{'isIframe': isIframe}"
mode="horizontal"
@select="handleSelect"
active-text-color="#5181F6"
router
>
<div class="wrapper" ref="wrapper">
<div class="cont" ref="cont">
<div
v-for="(item, index) in $store.state.projectManageMenuList"
:key="index"
@click='clickItem(item)'
class="menuInnerBox" v-if="company != 'xingxuan' && item.target != '_blank' && (item.menuName != 'LED大屏显示器' || company != 'nanchang')"
>
<el-menu-item class="firstLevelMenu"
v-if="!hasSubMenu(item.menuList)"
:index="item.modulePath ? item.modulePath : item.path"
>
{{ item.moduleName ? item.moduleName : item.menuName }}
</el-menu-item>
<el-submenu
:index="item.modulePath ? item.modulePath : item.path"
v-else
>
<template slot="title">{{
item.moduleName ? item.moduleName : item.menuName
}}</template>
<el-menu-item
:index="data.path"
v-for="(data, i) in item.menuList"
:key="i"
>{{ data.menuName }}</el-menu-item
>
</el-submenu>
</div>
</div>
</div>
</el-menu>
<el-button
v-show="$store.state.isShowBackIndex"
class="backtoIndex"
type="primary"
plain
@click="backtoIndex()"
size="mini"
>返回主菜单</el-button
>
</div>
<div v-else class="menuBox" :class="{ big: $route.path.indexOf('/firm/') != -1 }">
<el-menu
:default-active="$route.path"
class="el-menu-demo"
:class="{'isIframe': isIframe}"
mode="horizontal"
@select="handleSelect"
active-text-color="#5181F6"
router
>
<div class="wrapper" ref="wrapper">
<div class="cont" ref="cont">
<div
v-for="(item, index) in $store.state.menuList"
:key="index"
@click='clickItem(item)'
class="menuInnerBox" v-if="company != 'xingxuan' && item.target != '_blank' && (item.menuName != 'LED大屏显示器' || company != 'nanchang')"
>
<el-menu-item class="firstLevelMenu"
v-if="!hasSubMenu(item.menuList)"
:index="item.modulePath ? item.modulePath : item.path"
>
{{ item.moduleName ? item.moduleName : item.menuName }}
</el-menu-item>
<el-submenu
:index="item.modulePath ? item.modulePath : item.path"
v-else
>
<template slot="title">{{
item.moduleName ? item.moduleName : item.menuName
}}</template>
<el-menu-item
:index="data.path"
v-for="(data, i) in item.menuList"
:key="i"
>{{ data.menuName }}</el-menu-item
>
</el-submenu>
</div>
</div>
</div>
<!-- <el-menu-item v-show="item.target!='_blank'" :index="item.modulePath?item.modulePath:item.path" v-for="(item,index) in $store.state.menuList" :key="index">
{{item.moduleName?item.moduleName:item.menuName}}
</el-menu-item> -->
<!-- <el-submenu :index="item.modulePath?item.modulePath:item.path" v-show="item.target!='_blank'" v-for="(item,index) in $store.state.menuList" :key="index">
<template slot="title">{{item.moduleName?item.moduleName:item.menuName}}</template>
<el-menu-item v-if="item.menuList" :index="data.path" v-for="(data,i) in item.menuList" :key="i">{{data.menuName}}</el-menu-item>
</el-submenu> -->
</el-menu>
<el-button
v-show="$store.state.isShowBackIndex"
class="backtoIndex"
type="primary"
plain
@click="backtoIndex()"
size="mini"
>返回主菜单</el-button
>
</div>
<div class="pageContainer">
<div class="pageDataContainer">
<router-view></router-view>
</div>
</div>
<!-- <el-backtop target=".pages"></el-backtop> -->
</div>
</template>
<script>
import vhead from "./header";
import BScroll from 'better-scroll'
export default {
components: { vhead },
inject:['reload'],
data() {
return {
tabsShow,
// menuList: [{ name: "", url: "/registerAudit" }],
currentUrl: "",
scroll: '',
company:COMPANY,
isIframe: false
};
},
mounted() {
// console.log("mounted", this.$route.path);
this.$nextTick(() => {
let timer = setTimeout(() => {
if (timer) {
clearTimeout(timer)
this.verScroll()
}
}, 0)
})
if(window.localStorage.getItem('isIframe')){
if(window.localStorage.getItem('isIframe') == '1'){
this.isIframe = true
// this.$nextTick(()=>{
// setOffset(2180,360)
// })
}
console.log(window.localStorage.getItem('isIframe'))
}
},
methods: {
clickItem(item){
console.log(item)
window._paq.push(['trackEvent', '点击', item.moduleName?item.moduleName:item.menuName,'切换到'+(item.moduleName?item.moduleName:item.menuName) ]);
},
hasSubMenu(list) {
//
let onoff = false;
// console.log("list", list);
if (list && list.length > 0) {
list.forEach((element) => {
if (element.menuName) {
onoff = true;
return;
}
});
}
// console.log("onoff", onoff);
return onoff;
},
backtoIndex() {
// window._paq.push(['trackEvent', '', '','' ])
var url = window.location.href;
if (url.indexOf("equipmentCenter.html") != -1) {
this.$router.push("/equipmentCenterIndx");
} else {
this.$router.push("/projectIndex");
}
},
handleSelect(key,keyPath) {
console.log(key)
console.log(keyPath)
// console.log(index)
// this.$store.commit('setCurrentUrl',url)
// this.$store.dispatch('currentUrl',url)
},
verScroll () {
// console.log(this.$route.path)
if(this.$route.path.indexOf('/firm/') != -1) {
this.$refs.cont.style.width = "100%";
return;
} else {
let width = this.$store.state.menuList.length * 136//
this.$refs.cont.style.width = width + 'px'
this.$nextTick(() => {
if (!this.scroll) {
this.scroll = new BScroll(this.$refs.wrapper, {
startX: 0,
click: true,
mouseWheel: true,
scrollX: true,
scrollY: false,
eventPassthrough: 'vertical'
})
} else {
console.log(this.scroll.refresh())
this.scroll.refresh() //dom
}
console.log(this.scroll)
})
}
this.reload;
}
},
};
</script>
<style lang="less" scoped>
// .el-menu.el-menu--horizontal {
// box-sizing: border-box;
// padding: 0 100px 4px;
// border-bottom: none;
// }
.el-menu.el-menu--horizontal {
box-sizing: border-box;
// padding: 0 !important;
border-bottom: none;
margin-left: 50px;
margin-right: 120px;
white-space: nowrap;
overflow: hidden;
}
.isIframe{
/deeep/.el-menu.el-menu--horizontal{
margin: 0;
}
}
.el-menu--horizontal {
.el-menu-item,
/deep/.el-submenu__title {
font-family: PingFangSC-Medium;
font-size: 14px;
letter-spacing: 0;
height: 44px;
line-height: 44px;
padding: 0;
margin-right: 80px;
&:hover,
&:focus {
background-color: transparent;
}
&:hover {
color: #5181f6;
}
}
}
/deep/.el-submenu__title{
padding-right: 20px!important;
.el-submenu__icon-arrow{
right: 0px;
}
}
.el-menu--horizontal .firstLevelMenu.is-active,/deep/.is-active .el-submenu__title {
border-bottom: 3px solid #409eff;
}
.menuInnerBox {
display: inline-block;
}
.menuBox {
position: relative;
&.big {
.el-menu.el-menu--horizontal {
padding: 0;
display: flex;
.cont{
display: flex;
}
.menuInnerBox {
width: 100%;
// flex: 1;
}
.el-menu-item {
flex: 1;
margin-right: 0;
text-align: center;
border-bottom: none;
height: 48px;
line-height: 48px;
&.is-active,
&:hover {
background-color: @--color-primary;
color: #fff !important;
}
}
}
}
}
.backtoIndex {
position: absolute;
right: 20px;
top: 12px;
font-size: 14px;
padding: 4px 5px;
}
.toOverview {
right: 120px;
}
@media screen and (max-width: 1500px) {
.el-menu.el-menu--horizontal {
padding: 0 40px 4px;
}
}
.big{
.el-menu.el-menu--horizontal {
margin: 0;
width: 100%;
.wrapper{
width: 100%;
}
.cont{
width: 100%;
}
}
}
</style>

View File

@ -9,6 +9,9 @@
</template>
<script>
// import { hasThemeClass, hasUserInfo } from "@/assets/js/common";
// import layoutnalmal from '@/components/layoutnalmal.vue'
// import layoutQu from '@/components/layoutQu.vue'
import { getSystemVerificationApi } from "@/assets/js/api/jxjadmin.js";
import { getProjectByNumberApi } from "@/assets/js/api/company/project.js";
import globalUploader from '@/components/GlobalUploader.vue'

View File

@ -1281,7 +1281,7 @@ const routes2 = [
path: '/companyAdmin/dangerousBigProject/dictionary',
name: 'dangerousBigProjectdictionary',
component: () => import('@/views/projectFront/dangerousBigProject/dictionary.vue')
}
},
]
},
{
@ -1610,6 +1610,352 @@ const routes2 = [
component: () => import('@/views/projectAdmin/dataBoard/quality.vue'),
}]
},
// 项目进入衢州的路由
{
path: '/projectV3/taskList',
name: 'projectV3TaskList',
component: () => import('../views/projectThree/homePage.vue'),
children:[
// 衢州版配置的新路由
// 通知公告
{
path: '/projectQu/information',
name: 'projectQuInformation',
component: () => import('@/views/projectQu/noticeAnnouncement/index.vue')
},
// 信息公示
{
path: '/projectQu/inforPublicity',
name: 'projectQuInforPublicity',
component: () => import('@/views/projectQu/noticeAnnouncement/inforPublicity.vue')
},
// 解疑答惑
{
path: '/projectQu/answerQuestions',
name: 'answerQuestions',
component: () => import('@/views/projectQu/noticeAnnouncement/answerQuestions.vue')
},
// gis地图
{
path: '/projectQu/gisMap',
name: 'projectQuGisMap',
component: () => import('@/views/projectQu/gisMap/map.vue')
},
// 项目管理 项目库 重点
{
path: '/projectQu/projectManage/information',
name: 'projectQuProjectManage',
component: () => import('@/views/projectQu/projectManage/informationBase/information.vue')
},
// 项目管理 项目库 一般
{
path: '/projectQu/projectManage/commonly',
name: 'projectQuInformationBase',
component: () => import('@/views/projectQu/projectManage/informationBase/commonly.vue')
},
// 开工许可证办理
{
path: '/projectQu/projectManage/commencementPermit',
name: 'commencementPermit',
component: () => import('@/views/projectQu/projectManage/commencementPermit/application.vue')
},
// 项目报监 质检
{
path: '/projectQu/projectManage/qualityTesting',
name: 'projectQuqualityTesting',
component: () => import('@/views/projectQu/projectManage/projectSupervision/qualityTesting.vue')
},
// 项目报监 安检
{
path: '/projectQu/projectManage/securityCheck',
name: 'projectQusecurityCheck',
component: () => import('@/views/projectQu/projectManage/projectSupervision/securityCheck.vue')
},
// 资金管理 收入
{
path: '/projectQu/projectManage/income',
name: 'projectQuincome',
component: () => import('@/views/projectQu/projectManage/fundManage/income.vue')
},
// 资金管理 支出
{
path: '/projectQu/projectManage/expenditure',
name: 'projectQuExpenditure',
component: () => import('@/views/projectQu/projectManage/fundManage/expenditure.vue')
},
// 合同管理
{
path: '/projectQu/projectManage/contractManage',
name: 'projectQuContractManage',
component: () => import('@/views/projectQu/projectManage/contractManage/index.vue')
},
// 人员管理
{
path: '/projectQu/projectManage/personManage',
name: 'projectQuPersonManage',
component: () => import('@/views/projectQu/projectManage/personManage/index.vue')
},
// 政策法规
{
path: '/projectQu/policiesRegulations',
name: 'projectQuPoliciesRegulations',
component: () => import('@/views/projectQu/policiesRegulations/index.vue')
},
// 质量标准 国家标准
{
path: '/projectQu/qualityStandard/nationalStandard',
name: 'projectQuNationalStandard',
component: () => import('@/views/projectQu/qualityStandard/nationalStandard.vue')
},
// 质量标准 省标准
{
path: '/projectQu/qualityStandard/provincialStandard',
name: 'projectQuNationalStandard',
component: () => import('@/views/projectQu/qualityStandard/provincialStandard.vue')
},
// 质量标准 市标准
{
path: '/projectQu/qualityStandard/municipalStandard',
name: 'projectQuMunicipalStandard',
component: () => import('@/views/projectQu/qualityStandard/municipalStandard.vue')
},
// 质量标准 区标准
{
path: '/projectQu/qualityStandard/areaStandard',
name: 'projectQuAreaStandard',
component: () => import('@/views/projectQu/qualityStandard/areaStandard.vue')
},
// 企业管理 四库一平台
{
path: '/projectQu/businessManage/fourLibraries',
name: 'projectQuFourLibraries',
component: () => import('@/views/projectQu/businessManage/fourLibraries/index.vue')
},
// 企业管理 诚信管理
{
path: '/projectQu/businessManage/integrityManage',
name: 'projectQuIntegrityManage',
component: () => import('@/views/projectQu/businessManage/integrityManage.vue')
},
// 企业管理 企业类别
{
path: '/projectQu/businessManage/projectCategory',
name: 'projectQuProjectCategory',
component: () => import('@/views/projectQu/businessManage/projectCategory.vue')
},
// 质量管理 工程验收
{
path: '/projectQu/qualityManage/acceptanceWork',
name: 'projectQuAcceptanceWork',
component: () => import('@/views/projectQu/projectManage/qualityManage/acceptanceWork.vue')
},
// 质量管理 质量检查
{
path: '/projectQu/qualityManage/qualityTest',
name: 'projectQuQualityTest',
component: () => import('@/views/projectQu/projectManage/qualityManage/qualityTest.vue')
},
// 物料管理
{
path: '/projectQu/projectManage/materialManagement',
name: 'projectQuMaterial',
component: () => import('@/views/projectQu/projectManage/materialManagement/index.vue')
},
// 原来有的路由重新配置
{
path: '/projectQu/towerCrane/home', //塔吊管理 首页
name: '塔吊管理_首页',
component: () => import('@/views/projectFront/towerCrane/home.vue')
},
{
path: '/projectQu/towerCrane/antiCollision', //塔吊管理 群塔防碰撞
name: '塔吊管理_群塔防碰撞',
component: resolve => require(['@/views/projectFront/towerCrane/antiCollision.vue'], resolve)
},
{
path: '/projectQu/towerCrane/monitoringStatistics', //塔吊管理 监控统计
name: '塔吊管理_监控统计',
component: resolve => require(['@/views/projectFront/towerCrane/monitoringStatistics.vue'], resolve)
},
{
path: '/projectQu/towerCrane/towerCraneList', //塔吊管理 点位配置
name: '塔吊管理_塔吊列表',
component: resolve => require(['@/views/projectFront/towerCrane/towerCraneList.vue'], resolve)
},
{
path: '/projectQu/towerCrane/basicInfo', //塔吊管理 点位配置
name: '塔吊管理_设备管理',
component: resolve => require(['@/views/projectFront/towerCrane/basicInfo.vue'], resolve)
},
{
path: '/projectQu/towerCrane/alarmInfo', //塔吊管理 报警信息
name: '塔吊管理_报警信息',
component: resolve => require(['@/views/projectFront/towerCrane/alarmInfo.vue'], resolve)
},
{
path: '/projectQu/towerCrane/devMaintain', //塔吊管理 设备维保
name: '塔吊管理_设备维保',
component: resolve => require(['@/views/projectFront/towerCrane/devMaintain.vue'], resolve)
},
{
path: '/projectQu/towerCrane/Nut', //塔吊管理 设备维保
name: '塔吊管理_螺栓列表',
component: resolve => require(['@/views/projectFront/towerCrane/Nut.vue'], resolve)
},
{
path: '/projectQu/towerCrane/Jacking', //塔吊管理 设备维保
name: '塔吊管理_顶升记录',
component: resolve => require(['@/views/projectFront/towerCrane/Jacking.vue'], resolve)
},
{
path: '/projectQu/towerCrane/siteVisualization', //塔吊管理 塔吊可视化
name: '塔吊管理_工地可视化',
component: resolve => require(['@/views/projectFront/towerCrane/siteVisualization.vue'], resolve)
},
{
path: '/projectQu/towerCrane/bimDemo', //塔吊管理 塔吊可视化
name: '塔吊管理_demo',
component: resolve => require(['@/views/projectFront/towerCrane/bimDemo.vue'], resolve)
},
{
path: '/projectQu/towerCrane/brand', //塔吊管理 设备维保
name: '塔吊管理_塔吊品牌管理',
component: resolve => require(['@/views/projectFront/towerCrane/brand.vue'], resolve)
},
{
path: '/projectQu/towerCrane/historyData',
name: '塔吊管理_历史数据',
component: resolve => require(['@/views/projectFront/towerCrane/historyData.vue'], resolve)
},
// 升降机管理
{
path: '/projectQu/lifter/basicInfo', //升降机管理 基本信息
name: '升降机管理_基本信息',
component: resolve => require(['@/views/projectFront/lifter/basicInfo.vue'], resolve)
},
{
path: '/projectQu/lifter/lifterInfo', //升降机管理 设备管理
name: '升降机管理_设备管理',
component: resolve => require(['@/views/projectFront/lifter/lifterInfo.vue'], resolve)
},
{
path: '/projectQu/lifter/operationInfo', //升降机管理 运营信息
name: '升降机管理_运行数据',
component: resolve => require(['@/views/projectFront/lifter/operationInfo.vue'], resolve)
},
{
path: '/projectQu/lifter/earlyWarning', //升降机管理 运营信息 暗色版
name: '升降机管理_预警分析',
component: resolve => require(['@/views/projectFront/lifter/earlyWarning.vue'], resolve)
},
{
path: '/projectQu/lifter/alarmInfo', //升降机管理 报警信息
name: '升降机管理_报警信息',
component: resolve => require(['@/views/projectFront/lifter/alarmInfo.vue'], resolve)
},
{
path: '/projectQu/lifter/devMaintain', //升降机管理 设备维保
name: '升降机管理_设备维保',
component: resolve => require(['@/views/projectFront/lifter/devMaintain.vue'], resolve)
},
//档案管理
{
path: '/projectQu/fileManage/fileManage',
name: '档案管理_档案管理',
component: () => import('@/views/projectFront/fileManage/fileManage.vue'),
},
// 进度计划
{
path: '/projectQu/plan',
name: '进度计划',
component: () => import('@/views/projectAdmin/dataBoard/plan.vue'),
},
// 扬尘监测
{
path: '/projectQu/environmentalMonitor/reportForm',
name: '数据台账',
component: () => import('@/views/projectFront/environmentalMonitor/reportForm.vue'),
},
{
path: '/projectQu/environmentalMonitor/sprayDevManage',
name: '雾炮喷淋设备管理',
component: () => import('../views/equipmentCenter/environmentManage/sprayDevManage.vue'),
},
{
path: '/projectQu/environmentalOverview',
name: '绿色施工总览',
component: resolve => require(['@/views/projectFront/environmentalMonitor/overview.vue'], resolve)
},
{
path: '/projectQu/environmentalMonitor/alarmValueSet',
name: '绿色施工_阈值设置',
component: () => import('@/views/projectFront/environmentalMonitor/alarmValueSet.vue'),
},
{
path: '/projectQu/environmentalMonitor/alarmWarning',
name: '绿色施工_报警预警',
component: () => import('@/views/projectFront/environmentalMonitor/alarmWarning.vue'),
},{
path: '/projectQu/environmentalMonitor/envirDevManage',
name: '绿色施工_扬尘设备管理',
component: () => import('../views/equipmentCenter/environmentManage/devList.vue'),
},
// 高支模
{
path: '/projectQu/highModulus/pointManage',
name: '高支模监测系统_点位配置',
component: () => import('@/views/projectFront/highModulus/pointManage.vue')
},{
path: '/projectQu/highModulus/planConfig',
name: '高支模监测系统_平面图配置',
component: () => import('@/views/projectFront/highModulus/planConfig.vue')
},{
path: '/projectQu/highModulus/manageStandards',
name: '高支模监测系统_管理标准',
component: () => import('@/views/projectFront/highModulus/manageStandards.vue')
},
{
path: '/projectQu/highModulus/alarmInfo',
name: '高支模监测系统_报警信息',
component: () => import('@/views/projectFront/highModulus/alarmInfo.vue')
},
// 电箱
{
path: '/projectQu/electricBox/messageOverview',
name: '电箱管理_信息总览',
component: resolve => require(['@/views/projectFront/electricBox/messageOverview.vue'], resolve)
}, {
path: '/projectQu/electricBox/historyData',
name: '电箱管理_历史数据',
component: resolve => require(['@/views/projectFront/electricBox/historyData.vue'], resolve)
},
{
path: '/projectQu/electricOverview',
name: '电箱管理总览',
component: resolve => require(['@/views/projectFront/electricBox/overview.vue'], resolve)
},
{
path: '/projectQu/electricDevManage',
name: '设备管理',
component: () => import('../views/equipmentCenter/electricBox/deviceManage'),
},
// 深基坑监测系统
{
path: '/projectQu/deepFoundationPitManage/realTimeData',
name: '深基坑监测系统_实时数据',
component: () => import('@/views/projectFront/deepFoundationPitManage/realTimeData.vue')
},{
path: '/projectQu/deepFoundationPitManage/monitorData',
name: '深基坑监测系统_基坑监测',
component: () => import('@/views/projectFront/deepFoundationPitManage/monitorData.vue')
},{
path: '/projectQu/deepFoundationPitManage/dataConfig',
name: '深基坑监测系统_基坑配置',
component: () => import('@/views/projectFront/deepFoundationPitManage/dataConfig.vue')
},
]
},
//项目级页面 ---- V2 -----业务中心
{
path: '/project/',

View File

@ -129,62 +129,62 @@ export default {
pageNo: 1,
pageSize: 20,
tableData: [],
// options:[{
// label: "",
// value: "17"
// },{
// label: "访",
// value: "18"
// }],
options:[{
label: "高空火警",
value: "8"
},{
label: "考勤提醒",
value: "1"
},{
label: "防疫人员通知",
value: "2"
},{
label: "防疫车辆通知",
value: "3"
},{
label: "访客通知",
value: "16"
},{
label: "混凝土监测",
value: "4"
},{
label: "卸料平台",
value: "5"
},{
label: "配电箱",
value: "6"
},{
label: "扬尘",
value: "7"
},{
label: "标养室",
value: "9"
},{
label: "安全检查",
value: "10"
},{
label: "质量检查",
value: "11"
},{
label: "塔吊",
value: "12"
},{
label: "升降机",
value: "13"
},{
label: "电表",
value: "14"
},{
label: "水表",
value: "15"
}],
// options:[{
// label: "",
// value: "8"
// },{
// label: "",
// value: "1"
// },{
// label: "",
// value: "2"
// },{
// label: "",
// value: "3"
// },{
// label: "访",
// value: "16"
// },{
// label: "",
// value: "4"
// },{
// label: "",
// value: "5"
// },{
// label: "",
// value: "6"
// },{
// label: "",
// value: "7"
// },{
// label: "",
// value: "9"
// },{
// label: "",
// value: "10"
// },{
// label: "",
// value: "11"
// },{
// label: "",
// value: "12"
// },{
// label: "",
// value: "13"
// },{
// label: "",
// value: "14"
// },{
// label: "",
// value: "15"
// }],
};
},
created() {
@ -333,6 +333,8 @@ export default {
.pageContainer {
height: calc(100% - 61px);
overflow: auto;
/deep/.el-input__inner{
background: #fff;
color: #000;

View File

@ -8,7 +8,8 @@
}"
>
<div class="headerBox">
<img
<!-- 中建的logo -->
<!-- <img
v-if="company == ''"
style="
width: auto;
@ -21,22 +22,23 @@
"
src="@/assets/images/dataBoard/led_logo.png"
alt=""
/>
<!-- <p class="projectName">{{ $store.state.currentProDetail.projectName }}</p> -->
/> -->
<p class="projectName">{{ $store.state.currentProDetail.projectName }}</p>
<h1 class="title">
<img
v-if="headerLogo"
style="width: auto; height: 30px; margin-right: 16px"
:src="headerLogo"
/>
<span v-if="company != 'longguang'">
<!-- 智慧工地云平台 -->
<p v-if="company == 'henan'">{{ $t('message.dataBoard.headerTitle') }}</p>
<div v-else>
<p v-else>{{ $store.state.currentProDetail.projectName }}</p>
<!-- 中建的标签 -->
<!-- <div v-else>
<p>中建四局数字建造管控平台</p>
<p style="font-size:24px">科创大厦项目</p>
</div>
</div> -->
</span>
<span v-else style="color: #fff; margin-top: 15px">
<!-- 龙光智慧工地平台 -->

View File

@ -1,6 +1,7 @@
.dataBoardPage{
// background-color: rgba(8,93,150, 1);
background-image: url(../../../assets/images/dataBoard/bgImg.png);
// background-image: url(../../../assets/images/dataBoard/bgImg.png); // 中建四局的背景图
background-color:black;
position: relative;
color: rgba(255, 255, 255, 0.8);
@ -89,8 +90,9 @@
}
}
}
/deep/.blockBox{
height: calc(33.33% - 100px);
height: calc(33.33% - 40px); //中建40
margin-bottom: 25px;
width: 100%;
position: relative;

View File

@ -103,6 +103,7 @@
</div>
</template>
<script>
import {getProjectInfoBySn} from "@/assets/js/api/overview";
import vhead from "@/components/header";
import axios from 'axios'
import { getProjectDetail } from "@/assets/js/api/baseInfo.js";
@ -121,6 +122,7 @@ export default {
components: { vhead },
data() {
return {
projectNumber:'',
projectName: "",
list: [],
showNotBuyMoudle: showNotBuyMoudle,
@ -142,12 +144,15 @@ export default {
// }else{
var arr = this.$store.state.userInfo.menuAuthority.moduleList;
this.getAllModule(arr);
this.getProjectNumber();
// }
},
methods: {
getSafeyHatSession(){
getSafeyHatSessionApi().then(res=>{
console.log(res)
let data = {}
data.projectSn = this.$store.state.projectSn
getSafeyHatSessionApi(data).then(res=>{
console.log('安全帽跳转',res)
// {
// "success":true,
// "message":"",
@ -161,13 +166,39 @@ export default {
// },
// "timestamp":1634904162951
// }
// projectId
if(res.code == 200){
// this.url = this.url + '#'+ res.result.token + '=' + res.result.session_id + '&user_name=' + res.result.userName + '&target=home'
let url = 'https://caps.runde.pro/login#token='+ res.result.token + '&user_name=' + res.result.userName + '&target=home'
window.open(url)
this.url = 'https://caps.runde.pro/login#token=' + res.result.token + '&user_name=' + res.result.userName + '&target=home'
// let url = 'https://caps.runde.pro/login#token='+ res.result.token + '&user_name=' + res.result.userName + '&target=home'
window.open(this.url)
}
})
},
getProjectNumber(){
let data = {
projectSn: this.$store.state.projectSn,
};
getProjectInfoBySn(data).then((res)=>{
this.projectNumber = res.result.projectNumber
})
},
//
getPanoramicRanging(){
axios({
method:"GET",
url:'http://182.90.224.237:8070/docking/url',
params:{
projectNumber:this.projectNumber,
}
}).then((res)=>{
console.log('全景成像测距',res)
let toUrl = res.data.find((item)=>{
this.projectNumber == item.jinqianmaosn
return item.url
})
window.open(toUrl.url)
})
},
itemClick(item) {
console.log('item',item)
// console.log(item,this.$store.state.userInfo.account)
@ -194,13 +225,7 @@ export default {
}
if(item.moduleName == "全景成像测距"){
axios({
method:"GET",
url:'http://139.9.66.234:18070/docking/url'
}).then((res)=>{
let toUrl = res.data[0]
window.open(toUrl)
})
this.getPanoramicRanging()
}
if(item.moduleName == "智能穿戴管理系统"){
this.getSafeyHatSession()
@ -209,13 +234,13 @@ export default {
return;
}
if(item.moduleName == "智能安全帽系统"){
return;
this.getSafeyHatSession();
}
if (!item.operation) {
this.$message.error(this.$t("message.projectIndex.tips1"));
return;
}
if (item.menuList && item.menuList.length > 0) {
if (item.menuList && item.menuList.length > 0 && item.moduleName != '全景成像测距') {
var arr = item.menuList,
arr2 = [];
arr.forEach((element) => {
@ -243,9 +268,12 @@ export default {
}else{
this.$router.push(arr2[0].path);
}
}
} else {
}
else if(item.moduleName == '全景成像测距' || item.moduleName == "智能安全帽系统"){
this.$message.success(this.$t("message.projectIndex.tips3"));
}
else {
this.$message.error(this.$t("message.projectIndex.tips2"));
}
window._paq.push(['trackEvent', '点击', item.moduleName,'进入'+item.moduleName])

View File

@ -123,7 +123,13 @@
>
进入项目级大屏
</div>
<div v-else
<div v-if="$store.state.userInfo.styleType==3"
class="operationText"
@click="goProjectQu(scope.row)"
>
进入衢州版本
</div>
<div v-if="$store.state.userInfo.styleType==1"
class="operationText"
style="margin-right: 30px"
@click="goProjectIndex(scope.row)"
@ -353,6 +359,17 @@ export default {
window.open(routeUrl.href, "_blank");
window._paq.push(['trackEvent', '点击', '项目级大屏','进入项目级大屏' ])
},
//
goProjectQu(value){
console.log('value',value)
let routeUrl = this.$router.resolve({
path: '/projectV3/taskList'
});
window.open(routeUrl.href, "_blank");
localStorage.removeItem("active");
localStorage.removeItem("path");
localStorage.removeItem("treeActive");
},
//
goProjectIndex(value) {
this.$store.commit("setProjectSn", value.projectSn);

View File

@ -344,7 +344,7 @@
type="primary"
:disabled="checkedWorker.length == 0"
@click="issuePersonFn"
v-if="key"
v-if="!key"
>{{ $t("message.laborMange.aKeyIssued") }}</el-button
>
</el-form-item>
@ -494,11 +494,11 @@
type="primary"
size="mini"
@click="issuePersonOneFn(scope.row.id)"
v-if="key"
v-if="!key"
>{{ $t("message.laborMange.aKeyIssued") }}</el-button
>
</div>
<div v-if="key">
<div v-if="!key">
<el-checkbox
v-model="scope.row.isUploadHousing"
:checked="scope.row.isUploadHousing == 1 ? true : false"

View File

@ -336,7 +336,7 @@
type="primary"
:disabled="checkedWorker.length == 0"
@click="issuePersonFn"
v-if="!key"
v-if="key"
>{{ $t("message.laborMange.aKeyIssued") }}</el-button
>
</el-form-item>
@ -479,7 +479,7 @@
type="primary"
size="mini"
@click="issuePersonOneFn(scope.row.id)"
v-if="!key"
v-if="key"
>{{ $t("message.laborMange.aKeyIssued") }}</el-button
>
</div>
@ -499,7 +499,7 @@
</div> -->
<div
class="personItemBottom"
v-if="!key"
v-if="key"
>
<el-checkbox
v-model="scope.row.isUploadHousing"

View File

@ -0,0 +1,14 @@
<!-- 四库一体 -->
<template>
<div>
<noData></noData>
</div>
</template>
<script>
import noData from '../../noData.vue'
export default {
components:{noData},
}
</script>
<style>
</style>

View File

@ -0,0 +1,14 @@
<!-- 诚信管理 -->
<template>
<div>
<noData></noData>
</div>
</template>
<script>
import noData from '../noData.vue'
export default {
components:{noData},
}
</script>
<style>
</style>

View File

@ -0,0 +1,14 @@
<!-- 企业类别-->
<template>
<div>
<noData></noData>
</div>
</template>
<script>
import noData from '../noData.vue'
export default {
components:{noData},
}
</script>
<style>
</style>

View File

@ -0,0 +1,13 @@
<template>
<div>
<noData></noData>
</div>
</template>
<script>
import noData from '../noData.vue'
export default {
components:{noData},
}
</script>
<style>
</style>

View File

@ -0,0 +1,25 @@
<!-- 省级标准 -->
<template>
<div class="content">
<img class="noData" src='@/assets/images/menu/noData.png'>
<p class="pnoData">暂无数据</p>
</img>
</div>
</template>
<script>
</script>
<style lang="less" scoped>
.content{
.noData{
width:152px;
height:115px;
margin-top:200px;
margin-left:500px;
}
.pnoData{
margin-top:10px;
margin-left:550px;
}
}
</style>

View File

@ -0,0 +1,14 @@
<!-- 解疑答惑 -->
<template>
<div>
<noData></noData>
</div>
</template>
<script>
import noData from '../noData.vue'
export default {
components:{noData},
}
</script>
<style>
</style>

View File

@ -0,0 +1,14 @@
<!-- 公告 -->
<template>
<div>
<noData></noData>
</div>
</template>
<script>
import noData from '../noData.vue'
export default {
components:{noData},
}
</script>
<style>
</style>

View File

@ -0,0 +1,14 @@
<!-- 信息公示 -->
<template>
<div>
<noData></noData>
</div>
</template>
<script>
import noData from '../noData.vue'
export default {
components:{noData},
}
</script>
<style>
</style>

View File

@ -0,0 +1,14 @@
<!-- 公告 -->
<template>
<div>
<noData></noData>
</div>
</template>
<script>
import noData from '../noData.vue'
export default {
components:{noData},
}
</script>
<style>
</style>

View File

@ -0,0 +1,14 @@
<!-- 政策法规 -->
<template>
<div>
<noData></noData>
</div>
</template>
<script>
import noData from '../noData.vue'
export default {
components:{noData},
}
</script>
<style>
</style>

View File

@ -0,0 +1,14 @@
<!-- 开工申请 -->
<template>
<div>
<noData></noData>
</div>
</template>
<script>
import noData from '../../noData.vue'
export default {
components:{noData},
}
</script>
<style>
</style>

View File

@ -0,0 +1,14 @@
<!-- 合同管理 -->
<template>
<div>
<noData></noData>
</div>
</template>
<script>
import noData from '../../noData.vue'
export default {
components:{noData},
}
</script>
<style>
</style>

View File

@ -0,0 +1,14 @@
<!-- 支出 -->
<template>
<div>
<noData></noData>
</div>
</template>
<script>
import noData from '../../noData.vue'
export default {
components:{noData},
}
</script>
<style>
</style>

View File

@ -0,0 +1,14 @@
<!-- 收入 -->
<template>
<div>
<noData></noData>
</div>
</template>
<script>
import noData from '../../noData.vue'
export default {
components:{noData},
}
</script>
<style>
</style>

View File

@ -0,0 +1,14 @@
<!-- 一般项目申报 -->
<template>
<div>
<noData></noData>
</div>
</template>
<script>
import noData from '../../noData.vue'
export default {
components:{noData},
}
</script>
<style>
</style>

View File

@ -0,0 +1,14 @@
<!-- 重点项目申报 -->
<template>
<div>
<noData></noData>
</div>
</template>
<script>
import noData from '../../noData.vue'
export default {
components:{noData},
}
</script>
<style>
</style>

View File

@ -0,0 +1,14 @@
<!-- 物料管理 -->
<template>
<div>
<noData></noData>
</div>
</template>
<script>
import noData from '../../noData.vue'
export default {
components:{noData},
}
</script>
<style>
</style>

View File

@ -0,0 +1,14 @@
<!-- 人员管理 -->
<template>
<div>
<noData></noData>
</div>
</template>
<script>
import noData from '../../noData.vue'
export default {
components:{noData},
}
</script>
<style>
</style>

Some files were not shown because too many files have changed in this diff Show More