update code

dev-login
haha 2023-09-17 23:29:27 +08:00
parent 88a552487f
commit 90ba323d33
32 changed files with 1179 additions and 961 deletions

View File

@ -8,17 +8,18 @@
"lint": "vue-cli-service lint"
},
"dependencies": {
"@easydarwin/easywasmplayer": "^4.0.10",
"axios": "0.24.0",
"core-js": "^3.8.3",
"@easydarwin/easywasmplayer": "^4.0.10",
"emittery": "^0.8.1",
"logt": "^1.4.1",
"dayjs": "^1.11.9",
"element-ui": "^2.15.13",
"emittery": "^0.8.1",
"file-saver": "2.0.5",
"js-cookie": "^3.0.5",
"less": "^4.1.3",
"less": "^4.1.3",
"less-loader": "^11.1.3",
"lodash.debounce": "^4.0.8",
"logt": "^1.4.1",
"vue": "^2.6.14",
"vue-router": "^3.1.3"
},
@ -29,7 +30,7 @@
"@vue/cli-plugin-eslint": "~5.0.0",
"@vue/cli-service": "~5.0.0",
"eslint": "^7.32.0",
"eslint-plugin-vue": "^8.0.3",
"eslint-plugin-vue": "^8.0.3",
"vue-template-compiler": "^2.6.14"
},
"eslintConfig": {

View File

@ -15,7 +15,7 @@ Vue.component("screen-header", {
<div :class="nav==4?'head-nav active':'head-nav'" @click="pageJump(4,'projectQuality.html','projectQuality.html')">质量管理</div>
<div :class="nav==5?'head-nav active':'head-nav'" @click="pageJump(5,'projectProgress.html','projectProgress.html')">进度管理</div>
<div :class="nav==6?'head-nav active':'head-nav'" @click="pageJump(6,'projectVideo.html','projectVideo.html')">视频管理</div>
<div :class="nav==7?'head-nav active':'head-nav'" @click="pageJump(7)">工程管理</div>
<div :class="nav==7?'head-nav active':'head-nav'" @click="pageJump(7,'projectEngin.html','projectEngin.html')">工程管理</div>
</div>
<div class="head-title-select" @mouseleave="hideScreenUlSel1" v-if="localStorage1">
<div class="head-select">

View File

@ -1,23 +0,0 @@
import Vue from 'vue'
Vue.component('module-one-1-1', {
template:`
<div class="screen-module">
<div class="screen-one-1-1">
<div class="module-title"><span>{{label}}</span></div>
<slot></slot>
</div>
</div>
`,
props: {
label:{
type:String
}
},
data() {
return {
};
},
})

View File

@ -0,0 +1,22 @@
<template>
<div class="screen-module">
<border-box6 v-if="border==6"/>
<div class="screen-one-1-1">
<div class="module-title"><span>{{label||''}}</span></div>
<slot></slot>
</div>
</div>
</template>
<script>
export default {
props:{
border:{
type:Number
},
label:{
type:String
}
}
};
</script>

View File

@ -0,0 +1,104 @@
<template>
<div class="dv-border-box-13">
<svg class="dv-border-svg-container" :width="width" :height="height">
<path
:fill="backgroundColor"
:stroke="colorLeft"
:d="`
M 5 20 L 5 10 L 12 3 L 60 3 L 68 10
L ${width - 20} 10 L ${width - 5} 25
L ${width - 5} ${height - 5} L 20 ${height - 5}
L 5 ${height - 20} L 5 20
`"
/>
<path
fill="transparent"
stroke-width="3"
stroke-linecap="round"
stroke-dasharray="10 5"
:stroke="colorLeft"
:d="`M 16 9 L 61 9`"
/>
<path
fill="transparent"
:stroke="colorRight"
:d="`M 5 20 L 5 10 L 12 3 L 60 3 L 68 10`"
/>
<path
fill="transparent"
:stroke="colorRight"
:d="`M ${width - 5} ${height - 30} L ${width - 5} ${height - 5} L ${width - 30} ${
height - 5
}`"
/>
</svg>
<div class="border-box-content">
<slot></slot>
</div>
</div>
</template>
<script>
export default {
name: 'JhbigscreenBorderBox6',
props:{
backgroundColor:{
type:String,
default:'#00000000'
},
colorLeft:{
type:String,
default:'#1a98fc'
},
colorRight:{
type:String,
default:'#2cf7fe'
},
width:{
type:Number,
default:150
},
height:{
type:Number,
default:150
}
},
data() {
return {
};
},
mounted() {
},
methods: {
},
};
</script>
<style lang="less" scoped>
.dv-border-box-13{
width: 100%;
height: 100%;
pointer-events: none;
.dv-border-svg-container {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
}
.border-box-content {
position: relative;
width: 100%;
height: 100%;
}
}
</style>

View File

@ -127,7 +127,7 @@
</template>
<script>
import '@/components/module/module-one-1-1'
import MyDialog from '../components/MyDialog'
export default {
components: {

View File

@ -22,14 +22,11 @@
export default {
name: 'JhbigscreenMapModle',
props:{
images:{
type:Array,
default:()=>[]
}
props:{
},
data() {
return {
images:[],
loading:false,
showMap: false,
mapInfo: null,
@ -46,6 +43,13 @@ export default {
},
methods: {
initImages(files){
//let images=this.$tryToJson(files,[]).map(it=>it.name).filter(it=>it && ['jpg','jpeg','png'].includes(it.toLowerCase().split(".").pop()));
//this.images=images;
},
initImgs(imgs){
this.images=imgs||[];
},
loadCss(id, href) {
if (document.getElementById(id)) {
return;

View File

@ -6,7 +6,6 @@
</template>
<script>
import '@/components/module/module-one-1-1'
import MyDialog from '../components/MyDialog'
export default {

View File

@ -38,7 +38,7 @@
</template>
<script>
import '@/components/module/module-one-1-1'
import MyDialog from '../components/MyDialog'
export default {

View File

@ -117,7 +117,7 @@
</template>
<script>
import '@/components/module/module-one-1-1'
import MyDialog from '../components/MyDialog'
export default {
components: {

View File

@ -225,7 +225,6 @@
</div>
</template>
<script>
import '../components/module/module-one-1-1'
import '../components/module/module-one-2-1'
import '../components/background_video'
import '../components/header'
@ -239,7 +238,7 @@ import indexDlg3 from './index/indexDlg3'
import indexMap from './index/map.vue'
import MonitAndWarning from './components/MonitAndWarning.vue'
import journalismDlg from './dlg/journalismDlg.vue'
import { TimeSelect } from 'element-ui'
import debounce from 'lodash.debounce'
export default {
name: 'App',
components: {
@ -468,13 +467,13 @@ export default {
this.$nextTick(() => {
this.loading = true;
});
this.$bus.$on("loadProjects", prjs => {
this.$bus.$on("loadProjects", debounce(prjs => {
this.prjs = prjs;
if (this.prj.id == 0) {
this.prjInfo = this.prjs[1];
}
});
this.$bus.$on("projectChange", res => {
}));
this.$bus.$on("projectChange", debounce(res => {
if (res.id == 0) {
const func = () => {
if (this.prjs && this.prjs.length > 1) {
@ -493,15 +492,15 @@ export default {
this.elKey++;
this.onWarningInfoNav(0);
this.sumCostOutByDeptId();
});
this.$bus.$on("deptChange", dept => {
}));
this.$bus.$on("deptChange", debounce(dept => {
this.deptInfo = dept;
this.groupByProjectCategory(dept.id);
this.onClickoOverview(0)
this.qualityNavClick(0);
this.onWarningInfoNav(0);
this.sumCostOutByDeptId();
});
}));
},
methods: {
planSummaryChartClick(p){

View File

@ -27,7 +27,7 @@
</template>
<script>
import '@/components/module/module-one-1-1'
import MyDialog from '../components/MyDialog'
export default {
components: {

View File

@ -48,7 +48,7 @@
</template>
<script>
import '@/components/module/module-one-1-1'
import MyDialog from '../components/MyDialog'
export default {
components: {

View File

@ -130,7 +130,7 @@
</template>
<script>
import '@/components/module/module-one-1-1'
import MyDialog from '../components/MyDialog'
export default {
components: {

View File

@ -84,7 +84,7 @@
</template>
<script>
import '@/components/module/module-one-1-1'
import MyDialog from '../components/MyDialog'
export default {
components: {

View File

@ -6,10 +6,14 @@ import dayfilter from '@/utils/dayfilter'
import {tryToJson} from '../utils/tools'
import H265Player from '../components/h265-player/index'
import { Loading } from 'element-ui';
import BorderBox6 from './components/BorderBox6.vue'
import moduleOne11 from '../components/module/module-one-1-1.vue'
Loading.install(Vue);
H265Player.install(Vue);
dayfilter(Vue);
const vue=new Vue();
Vue.component("border-box6",BorderBox6)
Vue.component("module-one-1-1",moduleOne11)
Vue.prototype.$api=Api;
Vue.prototype.$bus=vue;
Vue.prototype.$apiPath="/jhapi"

View File

@ -97,7 +97,7 @@
<script>
import NodeItem from './nodeItem.vue'
import '@/components/module/module-one-1-1'
import MyDialog from '../components/MyDialog'
export default {
components: {

View File

@ -56,7 +56,7 @@
</template>
<script>
import '@/components/module/module-one-1-1'
import MyDialog from '../components/MyDialog'
export default {
components: {

View File

@ -72,7 +72,7 @@
</template>
<script>
import '@/components/module/module-one-1-1'
import MyDialog from '../components/MyDialog'
export default {
components: {

View File

@ -188,7 +188,7 @@
</template>
<script>
import '@/components/module/module-one-1-1'
import MyDialog from '../components/MyDialog'
import ImagePreview from '../components/ImagePreview.vue'
export default {

View File

@ -458,7 +458,7 @@
</div>
<div class="aerial-view-max">
<div class="aerial-view-min">
<mapModle :images="scheduleInfo?scheduleInfo.images:[]" ></mapModle>
<mapModle ref="mapModle" ></mapModle>
</div>
</div>
<module-one-1-2 label="项目节点计划预警">
@ -618,7 +618,6 @@
</template>
<script>
import '../components/module/module-one-1-1'
import '../components/module/module-one-1-2'
import '../components/background_video'
import '../components/header'
@ -626,6 +625,7 @@ import '../components/staff-survey-chart'
import mapModle from './detail/mapModle.vue'
import MonitAndWarning from './components/MonitAndWarning.vue'
import projectInfoDlg from './detail/projectInfoDlg.vue'
import debounce from 'lodash.debounce'
export default {
components: {
MonitAndWarning, projectInfoDlg,
@ -763,11 +763,11 @@ export default {
},
mounted() {
window.xapp = this
this.$bus.$on("loadProjects", prjs => {
this.$bus.$on("loadProjects", debounce(prjs => {
this.prjs = prjs;
});
}));
this.$bus.$on("projectChange", res => {
this.$bus.$on("projectChange",debounce(res => {
this.project = res;
this.mapName = "";
if (res.id == 0) {
@ -779,10 +779,10 @@ export default {
}
this.loadData();
this.loadFilshNode();
});
this.$bus.$on("deptChange", dept => {
}));
this.$bus.$on("deptChange",debounce(dept => {
this.dept = dept;
});
}));
},
methods: {
doDownFile(it){
@ -866,6 +866,13 @@ export default {
this.getProjectId(id => {
this.$api.buildNode.queryFinishProject(id).then(d => {
this.finishBuildNode = d || [];
let obj=(d||[]).filter(it=>it.nodeText=="方案深化设计");
if(obj && obj.length>0){
let files=(obj[0].files||'[]')
this.$refs.mapModle.initImages(files)
}else{
this.$refs.mapModle.initImages("[]")
}
this.doPrjRes('03');
})
});
@ -882,7 +889,7 @@ export default {
obj.images = [];
}
this.scheduleInfo = obj;
this.elScheduleInfo++;
this.$refs.mapModle.initImgs(obj?.images||[]);
});
this.projectBuildNode = [];
this.getProjectBuildNode();

View File

@ -0,0 +1,8 @@
import Vue from 'vue'
import App from './projectEngin.vue'
Vue.config.productionTip = false
import './init.js'
new Vue({
render: h => h(App),
}).$mount('#app')

View File

@ -0,0 +1,84 @@
<template>
<div class="project-engin-index">
<!--大屏背景-->
<background-video></background-video>
<!--大屏内容-->
<div class="screen-content-max">
<screen-header :nav="7" @itemdata="onItemData"></screen-header>
<div class="screen-content">
<el-row>
<el-col :span="8">
<module-one-1-1 label="项目成果">
</module-one-1-1>
<module-one-1-1 label="项目成果2">
</module-one-1-1>
<module-one-1-1 label="项目成果">
</module-one-1-1>
</el-col>
<el-col :span="8">
<module-one-1-1 label="项目成果">
</module-one-1-1>
<module-one-1-1 label="项目成果">
</module-one-1-1>
<module-one-1-1 label="项目成果">
</module-one-1-1>
</el-col>
<el-col :span="8">
<module-one-1-1 label="项目成果">
</module-one-1-1>
<module-one-1-1 label="项目成果">
</module-one-1-1>
<module-one-1-1 label="项目成果">
</module-one-1-1>
</el-col>
</el-row>
</div>
</div>
</div>
</template>
<script>
import '../components/module/module-one-1-2'
import '../components/background_video'
import '../components/header'
import '../components/staff-survey-chart'
import BorderBox6 from './components/BorderBox6.vue'
export default {
name: 'JhbigscreenProjectEngin',
components: {
BorderBox6
},
data() {
return {
};
},
mounted() {
},
methods: {
onItemData(e) {
if (e.type == 1) {
location.href = 'index.html'
}
this.getProjectOverview(e.id)
},
},
};
</script>
<style lang="scss" scoped>
</style>

View File

@ -367,7 +367,6 @@
</template>
<script>
import '../components/module/module-one-1-1'
import '../components/module/module-one-1-2'
import '../components/module/module-one-3-1'
import '../components/background_video'
@ -381,6 +380,7 @@ import indexDlg3 from './progress/indexDlg3'
import PrjSummaryDlg from './index/indexDlg2.vue'
import problemProgress from './progress/problemProgress.vue'
import buildNodeDlg from './progress/buildNodeDlg.vue'
import debounce from 'lodash.debounce'
export default {
components: {
indexDlg1,
@ -462,22 +462,22 @@ export default {
},
mounted() {
window.app = this;
this.$bus.$on("projectChange", res => {
this.$bus.$on("projectChange", debounce(res => {
this.prjInfo = res;
this.loadProjectConstructionProgress();
this.selectScheduledAlerts();
this.selectCompletionRate();
});
this.$bus.$on("loadProjects", prjs => {
}));
this.$bus.$on("loadProjects", debounce(prjs => {
this.projects = prjs;
})
this.$bus.$on("deptChange", dept => {
}));
this.$bus.$on("deptChange", debounce(dept => {
this.dept = dept;
this.groupByProjectCategory(dept.id);
this.deptChange();
this.selectScheduledAlerts();
this.selectCompletionRate();
})
}))
},
methods: {
planSummaryChartClick(p){

View File

@ -231,7 +231,7 @@
</template>
<script>
import '../components/module/module-one-1-1'
import '../components/module/module-one-3-1'
import '../components/background_video'
import '../components/header'
@ -245,6 +245,7 @@ import showCheckingDlg from './quality/showCheckingDlg.vue'
import materialSealDetialDlg from './quality/materialSealDetialDlg.vue'
import checkDetectionDlg from './quality/checkDetectionDlg.vue'
import measuredDlg from './quality/measuredDlg.vue'
import debounce from 'lodash.debounce'
export default {
components:{
ProblemmodifyDetail,showCheckingDlg,materialSealDetialDlg,checkDetectionDlg,measuredDlg
@ -342,23 +343,23 @@ export default {
this.init()
},
mounted() {
this.$bus.$on("loadProjects", prjs => {
this.$bus.$on("loadProjects", debounce(prjs => {
this.prjs = prjs;
});
this.$bus.$on("projectChange", res => {
}));
this.$bus.$on("projectChange", debounce(res => {
this.projectInfo=res;
this.doDeptChane();
this.checkDetection(0);
this.doMeasuredNav(0,'汇总')
this.selectTop20materialSeal();
});
this.$bus.$on("deptChange",dept=>{
}));
this.$bus.$on("deptChange",debounce(dept=>{
this.dept=dept;
this.doDeptChane();
this.checkDetection(0);
this.doMeasuredNav(0,'汇总')
this.selectTop20materialSeal();
});
}));
},
methods: {
doShowCheckDetectionDlg(){

View File

@ -277,7 +277,7 @@
</template>
<script>
import '../components/module/module-one-1-1'
import '../components/module/module-one-2-1'
import '../components/module/module-one-3-1'
import '../components/background_video'
@ -293,7 +293,7 @@ import worktrainDlg from './dlg/workTrainDlg.vue'
import projectSpecialDlg from './dlg/projectSpecialDlg.vue'
import ProblemmodifyDetail from './components/ProblemmodifyDetail.vue'
import projectInsuranceDlg from './safe/projectInsuranceDlg.vue'
import debounce from 'lodash.debounce'
export default {
components: {
worktrainDlg,
@ -382,7 +382,7 @@ export default {
this.init();
},
mounted() {
this.$bus.$on("projectChange", res => {
this.$bus.$on("projectChange", debounce(res => {
this.projectInfo=res;
this.doDeptChane();
this.getWorkTrainList();
@ -390,11 +390,11 @@ export default {
this.getProjectSpecialView();
this.getDeptWorksList();
this.getProjectInsuranceList();
});
this.$bus.$on("loadProjects", prjs => {
}));
this.$bus.$on("loadProjects", debounce(prjs => {
this.projects = prjs;
})
this.$bus.$on("deptChange", dept => {
}))
this.$bus.$on("deptChange", debounce(dept => {
this.dept = dept;
this.doDeptChane();
this.getWorkTrainList();
@ -405,7 +405,7 @@ export default {
if(this.fileNav==3){
this.getWorkFileList();
}
});
}));
},
methods: {

View File

@ -183,7 +183,7 @@
</template>
<script>
import '../components/module/module-one-1-1'
import '../components/module/module-one-2-1'
import '../components/module/module-one-3-1'
import '../components/module/module-one-0-5'
@ -193,7 +193,7 @@ import '../components/header'
import '../components/staff-survey-chart'
import '../components/classify-bar'
import '../components/amplify/shipinguanli/amplify-spjk'
import debounce from 'lodash.debounce'
export default {
data() {
return {
@ -282,18 +282,18 @@ export default {
}
},
mounted() {
this.$bus.$on("projectChange", res => {
this.$bus.$on("projectChange", debounce(res => {
this.projectInfo=res;
this.initVideoMenu();
});
this.$bus.$on("loadProjects", prjs => {
}));
this.$bus.$on("loadProjects", debounce(prjs => {
this.projectInfo = prjs;
//this.initVideoMenu();
})
this.$bus.$on("deptChange", dept => {
}))
this.$bus.$on("deptChange", debounce(dept => {
this.dept = dept;
//this.initVideoMenu();
});
}));
},
created() {
this.init()

View File

@ -126,7 +126,7 @@
</template>
<script>
import '@/components/module/module-one-1-1'
import MyDialog from '../components/MyDialog'
export default {
components: {

View File

@ -119,7 +119,7 @@
</template>
<script>
import '@/components/module/module-one-1-1'
import MyDialog from '../components/MyDialog'
export default {
components: {

View File

@ -92,7 +92,9 @@ service.interceptors.response.use(res => {
}
return Promise.reject('error')
} else if (code === 500) {
Message({ message: msg, type: 'error' })
if(msg.indexOf('重复提交')==-1){
Message({ message: msg, type: 'error' })
}
return Promise.reject(new Error(msg))
} else if (code === 601) {
Message({ message: msg, type: 'warning' })

View File

@ -75,6 +75,12 @@ module.exports = defineConfig({
template:'public/video.html',
title:'视频管理',
filename:'projectVideo.html'
},
projectEngin:{
entry:'src/pages/projectEngin.js',
template:'public/index.html',
title:'工程管理',
filename:'projectEngin.html'
}
},
configureWebpack:{

1730
yarn.lock

File diff suppressed because it is too large Load Diff