From 29fc0e13c533d2742fa0edb966263677cb47dedb Mon Sep 17 00:00:00 2001 From: haha Date: Mon, 28 Aug 2023 00:01:37 +0800 Subject: [PATCH] update code --- src/App.vue | 5 + src/components/header.js | 2 +- src/components/headerV2.js | 229 ++++++++++++++++++++++++++ src/main.js | 11 ++ src/pages/components/ImagePreview.vue | 55 +++++++ src/pages/index.vue | 5 +- src/pages/init.js | 17 +- src/pages/progress/indexDlg3.vue | 27 ++- src/router/index.js | 47 ++++++ 9 files changed, 388 insertions(+), 10 deletions(-) create mode 100644 src/App.vue create mode 100644 src/components/headerV2.js create mode 100644 src/main.js create mode 100644 src/pages/components/ImagePreview.vue create mode 100644 src/router/index.js diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..4719866 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/src/components/header.js b/src/components/header.js index 9abb8f1..0bbca65 100644 --- a/src/components/header.js +++ b/src/components/header.js @@ -48,7 +48,7 @@ Vue.component("screen-header", { 11~25℃ - + diff --git a/src/components/headerV2.js b/src/components/headerV2.js new file mode 100644 index 0000000..6d4c202 --- /dev/null +++ b/src/components/headerV2.js @@ -0,0 +1,229 @@ +/** + * 顶部header + */ +import Vue from 'vue' +Vue.component("screen-header", { + template: ` +
+
+ 北跨泾河-产发工程数字管理平台 +
+
+
项目概况
+
项目详情
+
安全管理
+
质量管理
+
进度管理
+
视频管理
+
工程管理
+
+
+
+ +
+ +
    +
  • {{item.text}}
  • +
+
+
+
+
+ +
+ +
    +
  • {{item.text}}
  • +
+
+
+
+
+
{{date}}
+
{{time}}
+
+
+ + + 11~25℃ +
+
+ + + + +
+ `, + props: { + nav:{ + type:Number + }, + red:{ + type:String + }, + item:{ + type:Number + }, + }, + data() { + return { + dept1:'', + dept2:'', + showSel1:false, + showSel2:false, + data:[], + depts:[], + timerID:undefined, + time: '', + date: '', + week:'', + selDept:'', + localStorage1: JSON.parse(localStorage.getItem("data1")), + localStorage2: JSON.parse(localStorage.getItem("data2")), + isFullScreen:false + } + }, + mounted(){ + this.timerID = setInterval(this.updateTime, 1000); + this.updateTime(); + this.init() + this.$api.dept.list().then(d=>{ + this.depts=[{text:'产发集团',id:0},...(d?.data||[]).map(it=>{ + it.text=it.deptName; + it.id=it.deptId; + return it; + })] + this.deptChange(); + }); + + }, + methods: { + toggleFullScreen(){ + let el=document.body; + this.$toggleFullScreen(el); + setTimeout(()=>{ + this.isFullScreen=document.fullscreenElement==el; + },400); + }, + init(){ + try{ + this.localStorage1=JSON.parse(localStorage.getItem("data1")) + this.localStorage2=JSON.parse(localStorage.getItem("data2")) + }catch(e){ + + } + if(!this.localStorage1){ + this.localStorage1={ + + } + } + if(!this.localStorage2){ + this.localStorage2={} + } + this.dept1=this.localStorage1?.text||''; + this.dept2=this.localStorage2?.text||''; + if(this.dept1){ + this.loadProject(true); + } + }, + deptChange(){ + let tmps=this.depts.filter(d=>d.text==this.dept1); + if(tmps.length>0){ + this.$bus.$emit("deptChange",tmps[0]) + } + }, + //页面条状 + pageJump(n,url){ + debugger + if(n != this.nav){ + + if(url){ + location.href = url + }else{ + this.$notify({ + title: '提示', + message: '页面开发中,敬请期待!', + type: 'warning' + }); + } + } + + }, + + + showScreenUlSel1(){ + this.showSel1 = true + + }, + showScreenUlSel2(){ + this.showSel2 = true + + }, + hideScreenUlSel1(){ + this.showSel1 = false + }, + hideScreenUlSel2(){ + this.showSel2 = false + }, + setScreenLiSel1(item){ + localStorage.setItem("data1",JSON.stringify(item)) + this.localStorage1=JSON.parse(localStorage.getItem("data1")) + this.$emit('itemdata',item); + this.showSel1 = false + this.dept1=item.text; + this.deptChange(); + this.loadProject(); + }, + loadProject(init){ + 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); + if(this.data.length>0){ + this.setScreenLiSel2(this.data[0],init); + }else{ + this.setScreenLiSel2(null); + } + }); + }, + setScreenLiSel2(item,init){ + if(item){ + this.showSel2 = false; + if(!init){ + localStorage.setItem("data2",JSON.stringify(item)) + this.localStorage2=JSON.parse(localStorage.getItem("data2")) + this.$emit('itemdata',item); + this.dept2=item.text; + } + this.$bus.$emit("projectChange",this.localStorage2); + }else{ + localStorage.removeItem("data2"); + this.localStorage2={}; + this.showSel2 = false; + this.dept2=''; + } + }, + + //时间方法 + updateTime(){ + var cd = new Date(); + this.time = this.zeroPadding(cd.getHours(), 2) + ':' + this.zeroPadding(cd.getMinutes(), 2) + ':' + this.zeroPadding(cd.getSeconds(), 2); + this.date = this.zeroPadding(cd.getFullYear(), 4) + '年' + this.zeroPadding(cd.getMonth()+1, 2) + '月' + this.zeroPadding(cd.getDate(), 2)+'日'; + }, + zeroPadding(num, digit) { + var zero = ''; + for(var i = 0; i < digit; i++) { + zero += '0'; + } + return (zero + num).slice(-digit); + } + + }, + watch:{ + + } + +}) diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..b411d44 --- /dev/null +++ b/src/main.js @@ -0,0 +1,11 @@ +import Vue from 'vue' +import App from './App.vue' +import router from './router' +import './pages/init.js' + +Vue.config.productionTip = false + +new Vue({ + router, + render: h => h(App) +}).$mount('#app') diff --git a/src/pages/components/ImagePreview.vue b/src/pages/components/ImagePreview.vue new file mode 100644 index 0000000..f219905 --- /dev/null +++ b/src/pages/components/ImagePreview.vue @@ -0,0 +1,55 @@ + + + + + \ No newline at end of file diff --git a/src/pages/index.vue b/src/pages/index.vue index 32a0d45..654642f 100644 --- a/src/pages/index.vue +++ b/src/pages/index.vue @@ -1,5 +1,5 @@