Commit 2eb3c4c0 authored by 郭铭瑶's avatar 郭铭瑶 🤘

更新

parent 92a3cc8b
<!DOCTYPE html><html id=html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=X-UA-Compatible content="IE=edge, chrome=1"><title>物业督查实时专题图</title><style>html {
font-size: 1.6vh;
}</style><script src=./static/jquery.min.js></script><script type=text/javascript src=http://www.962121.net/gis_system/smimap/mapdebug/ShsmiGis.Bridge.js></script><link href=./static/css/app.ffaa60fe22a213d21966ae9ae32ee73c.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.2cd1d611570130f2598e.js></script><script type=text/javascript src=./static/js/vendor.dc1ed2d0549b6d6f959d.js></script><script type=text/javascript src=./static/js/app.431a9829792233fde715.js></script></body></html>
\ No newline at end of file
}</style><script src=./static/jquery.min.js></script><script type=text/javascript src=http://www.962121.net/gis_system/smimap/mapdebug/ShsmiGis.Bridge.js></script><link href=./static/css/app.5418a47d2c1398c451e2eb390cd9fa8b.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.b1b962985750ef18af84.js></script><script type=text/javascript src=./static/js/vendor.dc1ed2d0549b6d6f959d.js></script><script type=text/javascript src=./static/js/app.85c9107835183cf340b7.js></script></body></html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,i){for(var u,a,f,s=0,l=[];s<r.length;s++)a=r[s],t[a]&&l.push(t[a][0]),t[a]=0;for(u in c)Object.prototype.hasOwnProperty.call(c,u)&&(e[u]=c[u]);for(n&&n(r,c,i);l.length;)l.shift()();if(i)for(s=0;s<i.length;s++)f=o(o.s=i[s]);return f};var r={},t={3:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var c=document.getElementsByTagName("head")[0],i=document.createElement("script");i.type="text/javascript",i.charset="utf-8",i.async=!0,i.timeout=12e4,o.nc&&i.setAttribute("nonce",o.nc),i.src=o.p+"static/js/"+e+"."+{0:"3fd93edb28ee49963464"}[e]+".js";var u=setTimeout(a,12e4);function a(){i.onerror=i.onload=null,clearTimeout(u);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return i.onerror=i.onload=a,c.appendChild(i),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="./",o.oe=function(e){throw console.error(e),e}}([]);
//# sourceMappingURL=manifest.2cd1d611570130f2598e.js.map
\ No newline at end of file
!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,a){for(var i,u,f,s=0,l=[];s<r.length;s++)u=r[s],t[u]&&l.push(t[u][0]),t[u]=0;for(i in c)Object.prototype.hasOwnProperty.call(c,i)&&(e[i]=c[i]);for(n&&n(r,c,a);l.length;)l.shift()();if(a)for(s=0;s<a.length;s++)f=o(o.s=a[s]);return f};var r={},t={3:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var c=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,o.nc&&a.setAttribute("nonce",o.nc),a.src=o.p+"static/js/"+e+"."+{0:"909b36bca7893ce0604e"}[e]+".js";var i=setTimeout(u,12e4);function u(){a.onerror=a.onload=null,clearTimeout(i);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return a.onerror=a.onload=u,c.appendChild(a),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="./",o.oe=function(e){throw console.error(e),e}}([]);
//# sourceMappingURL=manifest.b1b962985750ef18af84.js.map
\ No newline at end of file
<template>
<m-trans enter="fadeInRight" leave="fadeOutRight">
<div v-if="value" class="monitor-drawer">
<div v-if="value" class="monitor-drawer" style="animation-duration: 500ms">
<img @click="handleClose" class="close-btn" src="@/assets/images/title-arrow.png"/>
<img class="border left" src="@/assets/images/modal-right.png"/>
<div class="content">
......
......@@ -4,7 +4,6 @@
<Row class="row" v-for="(row, rowIndex) in layout" :key="rowIndex">
<i-col class="col" v-for="(col, key) in row" :key="key" :span="col.width" :offset="col.offset || 0">
<div :style="`text-align: ${col.align || 'left'}; width:${labelWidth}rem;`">{{col.label}}</div>
&nbsp;&nbsp;
<img v-if="col.type == 'img'" @click="handleView(model[key])" :src="$api.IMG_URL + model[key]"/>
<div v-else class="content">{{model[key]}}</div>
</i-col>
......@@ -81,6 +80,7 @@ export default {
flex 1
img
width 25%
height 5rem
margin 0.5rem 0
cursor pointer
</style>
......@@ -27,6 +27,12 @@
<template v-else-if="model && model.length > 0 && mode == '2'">
<div>
<Row class="row" v-for="(row, rowIndex) in model" :key="rowIndex">
<i-col class="col" :span="16">
<div>
<p>{{row.INDEXNAME}}</p>
<p style="color: #aaa;">{{row.REMARK}}</p>
</div>
</i-col>
<i-col class="col" :span="8">
<template v-if="row.imageList && row.imageList.length > 0">
<img
......@@ -36,12 +42,6 @@
@click="handleView(img.imageName)" />
</template>
</i-col>
<i-col class="col" :span="16">
<div>
<p>{{row.INDEXNAME}}</p>
<p style="color: #aaa;">{{row.REMARK}}</p>
</div>
</i-col>
</Row>
</div>
</template>
......@@ -120,6 +120,7 @@ export default {
flex-wrap wrap
img
width 100%
height 5rem
margin 0.4rem 0
cursor pointer
</style>
......@@ -6,6 +6,7 @@ export default {
ajax.post({
url: api.POST_THEME_LIST,
params: data,
showLoading: false,
}).then(res => {
commit('SET_THEME_LIST', common.confirm(res, 'data.content', []))
})
......@@ -14,20 +15,30 @@ export default {
ajax.post({
url: api.POST_COMMUNITY_LIST,
params: {isPublish: 0, ...data},
showLoading: false,
}).then(res => {
commit('SET_CHECKED_LIST', common.confirm(res, 'data.content', []))
})
ajax.post({
url: api.POST_COMMUNITY_LIST,
params: {isPublish: 1, ...data},
}).then(res => {
commit('SET_RECTIFY_LIST', common.confirm(res, 'data.content', []))
const checkedData = common.confirm(res, 'data.content', [])
ajax.post({
url: api.POST_COMMUNITY_LIST,
params: {isPublish: 1, ...data},
showLoading: false,
}).then(res => {
const rectifyData = common.confirm(res, 'data.content', [])
checkedData.forEach(item => {
if (rectifyData.some(el => el.COMMUNITYID == item.COMMUNITYID)) {
item.icon = 'red.png'
}
})
commit('SET_RECTIFY_LIST', rectifyData)
commit('SET_CHECKED_LIST', checkedData)
})
})
},
GET_PERSON_LIST({commit}, data = {}) {
ajax.post({
url: api.POST_PERSON_LIST,
params: {pageNo: 1, pageSize: 10000, ...data},
showLoading: false,
}).then(res => {
commit('SET_PERSON_LIST', common.confirm(res, 'data.content', []))
})
......
......@@ -83,7 +83,7 @@ export default {
type: 'icon',
size,
resource: {
href: api.MAP_ICON_BASE + icon,
href: api.MAP_ICON_BASE + (item.icon || icon),
// href: 'http://962121.net/hmfmstest/shanghaiwuye/web/dataV/static/person-bg.png',
},
},
......
......@@ -38,6 +38,15 @@ export default {
</script>
<style lang="stylus" scoped>
$theme-selected()
content ''
display block
position absolute
top 1rem
transform rotate(45deg)
width 0
height 0
border 0.5rem solid $edgeColor
.map-operate
position relative
height 0
......
......@@ -69,6 +69,9 @@ export default {
align-items center
padding 0.5rem 0 0.5rem 0.5rem
cursor pointer
transition all 0.6s
background transparent
border 0.1rem solid transparent
&.on
$selected()
.flag
......
......@@ -3,7 +3,24 @@
<span class="moment date">{{$moment().format('LL')}}</span>
<span class="moment time">{{time}}</span>
<img :src="bgImg" draggable="false"/>
<img class="arrow" :src="arrowImg" draggable="false"/>
<div class="theme-wrapper" @mouseenter="show = true" @mouseleave="show = false">
<img class="arrow" :src="arrowImg" draggable="false"/>
<m-trans enter="zoomInDown" leave="zoomOutUp">
<div class="theme-menu" v-show="show">
<div class="edge top-left" />
<div class="edge top-right" />
<div class="edge bottom-left" />
<div class="edge bottom-right" />
<p
v-for="theme in themes"
:key="theme"
:class="`${theme == curTheme ? 'on' : ''}`"
@click="curTheme = theme">
{{theme}}
</p>
</div>
</m-trans>
</div>
<p><slot /></p>
</div>
</template>
......@@ -15,10 +32,19 @@ export default {
name: 'ThemeTitle',
data() {
return {
show: false,
bgImg: titleBg,
arrowImg: titleArrow,
timer: null,
time: null,
curTheme: '物业督查实时专题图',
themes: [
'物业督查实时专题图',
'保障中心共有产权房系统',
'小区检查轨迹',
'市住宅物业防汛防台灾害上报系统',
'962121热线平台投诉历史分析',
],
}
},
mounted() {
......@@ -34,6 +60,15 @@ export default {
</script>
<style lang="stylus" scoped>
$theme-selected()
position absolute
display block
content ''
width 0
height 0
border 0.5rem solid $edgeColor
top 1rem
transform rotate(45deg)
#title
display flex
align-items center
......@@ -42,6 +77,69 @@ export default {
background-size cover
background-position center
font-family $font-pang
.theme-menu
font-family $font-din
position absolute
min-height 10rem
width 26rem
padding 1rem
text-align center
color #ccc
font-weight bold
background $color-map(0.1)
left 0
right 0
top 6rem
margin auto
border 0.1rem solid $color-map()
>p
font-size 1.2rem
line-height 3rem
cursor pointer
position relative
overflow hidden
&:hover
color $edgeColor
&.on
font-size 1.4rem
color $edgeColor
background $color-map(0.2)
&:before
$theme-selected()
margin-left -0.5rem
border-left-color transparent
border-bottom-color transparent
&:after
$theme-selected()
right 0
margin-right -0.5rem
border-right-color transparent
border-top-color transparent
.edge
position absolute
width 2rem
height 2rem
border 0.3rem solid $edgeColor
&.top-left
top -0.1rem
left -0.1rem
border-right none
border-bottom none
&.top-right
top -0.1rem
right -0.1rem
border-left none
border-bottom none
&.bottom-left
bottom -0.1rem
left -0.1rem
border-right none
border-top none
&.bottom-right
bottom -0.1rem
right -0.1rem
border-left none
border-top none
.moment
position absolute
font-size 1.2rem
......@@ -52,7 +150,7 @@ export default {
&.time
right 20%
top 34%
>img
img
position absolute
width 100%
height 130%
......@@ -65,6 +163,7 @@ export default {
right 0
margin auto
top 120%
cursor pointer
>p
font-size 2.8rem
margin-top 1rem
......
......@@ -23,7 +23,7 @@
</div>
<div :class="`${showDrawer ? 'box4 blur' : 'box4'}`">
<m-card title="完成检查小区列表" mode="2" v-show="!fullScreen">
<CommunityList :list="checkedList" @select="handleCommunitySelect" ref="community"/>
<CommunityList :list="checkedList" @select="handleCommunitySelect($event, 'blue')" ref="community"/>
</m-card>
</div>
<div class="box5">
......@@ -33,7 +33,7 @@
</div>
<div :class="`${showDrawer ? 'box6 blur' : 'box6'}`">
<m-card title="开具整改单列表" mode="2" v-show="!fullScreen">
<CommunityList :list="rectifyList" @select="handleCommunitySelect" ref="community2"/>
<CommunityList :list="rectifyList" @select="handleCommunitySelect($event, 'red')" ref="community2"/>
</m-card>
</div>
<m-drawer v-model="showPersonModal" @close="closePersonModal">
......@@ -75,8 +75,10 @@ export default {
data() {
return {
map: null,
timer: null,
fullScreen: false,
curTab: 0,
curThemeId: null,
showPersonModal: false,
personLayout: [
{
......@@ -202,6 +204,14 @@ export default {
mounted() {
this.$nextTick(this.initMap)
// this.initData()
this.timer = setInterval(() => {
this.initData('2001131181448859')
// this.initData(this.curThemeId)
}, 1000 * 60 * 3)
},
beforeDestroy() {
clearInterval(this.timer)
this.timer = null
},
computed: {
checkedList() {
......@@ -215,12 +225,12 @@ export default {
},
},
methods: {
initData(themeId = null, startDate = '20190101', endDate = '20200101') {
initData(themeId = null, startDate = '2020-01-07 00:00:00', endDate) {
let today = this.$moment().format('YYYYMMDD')
if(this.$route.query.date) {
today = this.$moment(this.$route.query.date).format('YYYYMMDD')
}
const defaultDay = this.$moment().format('YYYYMMDD') // 检查人员列表默认开始、结束时间
const defaultDay = this.$moment().format('YYYY-MM-DD HH:MM:SS') // 检查人员列表默认开始、结束时间
const communityParams = {someday: today}
// const personParams = {startDate: defaultDay, endDate: defaultDay}
const personParams = {startDate: startDate || defaultDay, endDate: endDate || defaultDay}
......@@ -249,15 +259,20 @@ export default {
addListener() {
this.map.addEventListener(arg => {
console.log('arg', arg)
switch (arg.action.toLowerCase()) {
case 'selectfeatures':
this.handleCommunitySelect(arg.data)
// if (data.COMMUNITYID) {
// this.handleCommunitySelect(arg.data)
// } else if (data.OPER_ID) {
// this.handlePersonSelect(arg.data)
// }
if (!arg.layername) return
if (arg.layername == 'person-points') {
this.handlePersonSelect(arg.data[0])
} else if (arg.layername == 'checked-points') {
if (arg.data[0].icon) {
this.handleCommunitySelect(arg.data, 'red')
return
}
this.handleCommunitySelect(arg.data, 'blue')
} else if (arg.layername == 'rectify-points') {
this.handleCommunitySelect(arg.data, 'red')
}
break
default:
// console.log(arg)
......@@ -265,11 +280,12 @@ export default {
}
}, this)
},
addPoint({name, key, data, labelKey = null, icon = 'test.png', size = 16}) {
addPoint({name, mode = 'add', key, data, labelKey = null, icon = 'test.png', size = 20}) {
if(!this.map) return
this.removePoint(name)
const params = this.$com.getMapParams({data, key, labelKey, icon, size})
params.name = name
params.mode = 'add'
params.mode = mode
this.map.Invoke({
ActionName: 'displayJsonData',
Parameters: JSON.stringify(params),
......@@ -285,20 +301,20 @@ export default {
})
})
},
addGifPoint({name, data, labelKey, icon}) {
addGifPoint({name, data, labelKey, icon, size = 200}) {
if(!this.map) return
const params = {
name: name,
mode: 'add',
datas: [
{
name: data[labelKey],
value: 100,
name: labelKey ? data[labelKey] : null,
value: size,
corrd: [data.X, data.Y],
color: '#00FFFF',
}
],
symbol: this.$api.MAP_ICON_BASE + icon,
symbol: 'image://' + this.$api.MAP_ICON_BASE + icon,
position: 'right',
}
this.map.Invoke({
......@@ -329,10 +345,8 @@ export default {
})
},
handlePersonSelect(data) {
// this.removePoint('selected-point')
// this.addPoint({name:'selected-point', key:'OPER_ID', labelKey: 'TE_NAME', data:[data], icon:'person-on.gif', size: 30})
this.removeGifPoint('selected-point')
this.addGifPoint({name: 'selected-point', key: 'OPER_ID', labelKey: 'TE_NAME', data: data, icon: 'person-on.gif'})
this.addGifPoint({name: 'selected-point', key: 'OPER_ID', data: data, icon: 'person-bg2.png', size: 250})
const {OPER_ID, TASK_ID, X, Y} = data
this.gotoPosition(X, Y)
this.$ajax.post({
......@@ -351,18 +365,18 @@ export default {
this.$refs.person.reset()
this.showPersonModal = false
},
handleCommunitySelect(data) {
// this.removePoint('selected-point')
// this.addPoint({name: 'selected-point', key: 'COMMUNITYID', labelKey: 'COMMUNITYNAME', data:[data], icon: 'red.png',})
handleCommunitySelect(data, iconName = 'red') {
this.showPersonModal = false
this.showCommunityModal = false
if (!Array.isArray(data)) {
data = [data]
}
this.removeGifPoint('selected-point')
this.addGifPoint({name: 'selected-point', key: 'COMMUNITYID', labelKey: 'COMMUNITYNAME', data: data[0]})
this.addGifPoint({name: 'selected-point', key: 'COMMUNITYID', labelKey: 'COMMUNITYNAME', data: data[0], icon: `${iconName}.png`})
let location = []
this.$ajax.all(...data.map(item => {
const {COMMUNITYID, CHECKID} = item
const {COMMUNITYID, CHECKID, X, Y} = item
location = [X, Y]
return this.$ajax.post({
url: this.$api.POST_COMMUNITY_DETAIL,
params: {
......@@ -373,11 +387,9 @@ export default {
})).then(res => {
this.communityData = []
this.communityTableData = []
let location = []
res.forEach(item => {
const followList = this.$com.confirm(item, 'data.content.fellowList', [])
const communityData = (this.$com.confirm(item, 'data.content.content', []))[0]
location = [communityData.X, communityData.Y]
const followers = followList.map(item => {
if(item.THEMEID == communityData.TASK_ID) {
return item.TEAMNAME
......@@ -392,27 +404,6 @@ export default {
this.gotoPosition(...location)
this.showCommunityModal = true
})
// const {COMMUNITYID, CHECKID, X, Y} = data
// this.gotoPosition(X, Y)
// this.$ajax.post({
// url: this.$api.POST_COMMUNITY_DETAIL,
// params: {
// checkId: CHECKID,
// communityId: COMMUNITYID,
// }
// }).then(res => {
// const followList = this.$com.confirm(res, 'data.content.fellowList', [])
// this.communityData = (this.$com.confirm(res, 'data.content.content', []))[0]
// const followers = followList.map(item => {
// if(item.THEMEID == this.communityData.TASK_ID) {
// return item.TEAMNAME
// }
// })
// this.communityData.TE_NAME = (followers.length > 0 && followers.join(',')) || '无'
// this.communityData.IS_PUBLISH = this.communityData.IS_PUBLISH == '1' ? '是' : '否'
// this.communityTableData = this.$com.confirm(res, 'data.content.indexList', [])
// this.showCommunityModal = true
// })
},
closeCommunityModal() {
this.removeGifPoint('selected-point')
......@@ -424,9 +415,11 @@ export default {
handleThemeSelect(TASK_ID, {START_DATE, END_DATE}) {
this.removeGifPoint('selected-point')
this.removePoint('checked-points')
this.removePoint('rectify-points')
this.showCommunityModal = false
this.showPersonModal = false
// TODO START_DATE, END_DATE看获取检查人列表是否需要用到
this.curThemeId = TASK_ID
this.initData(TASK_ID)
},
handleFullscreen(type) {
......@@ -446,6 +439,7 @@ export default {
this.$refs.theme.reset()
this.removeGifPoint('selected-point')
this.removePoint('checked-points')
this.removePoint('rectify-points')
this.removePoint('person-points')
this.initData()
},
......@@ -463,7 +457,7 @@ export default {
// },
'$store.state.personList': {
handler(cur, past) {
this.addPoint({name:'person-points', key: 'OPER_ID', labelKey: 'TE_NAME', data: cur, icon: 'person-bg2.png', size: 28})
this.addPoint({name:'person-points', key: 'OPER_ID', labelKey: 'TE_NAME', data: cur, icon: 'person-bg2.png', size: 30})
}
},
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment