Browse Source

党群议事页面调整

master
liuchuang 6 years ago
parent
commit
09ddc7add1
  1. 234
      src/views/modules/events/issue-change-list.vue
  2. 231
      src/views/modules/events/issue-change.vue
  3. 3
      src/views/modules/events/issue-close-detail-view.vue
  4. 5
      src/views/modules/events/issue-close-list.vue
  5. 2
      src/views/modules/events/issue-close.vue
  6. 6
      src/views/modules/events/issue-process-detail-view.vue
  7. 14
      src/views/modules/events/issue-process-list.vue
  8. 6
      src/views/modules/events/issue-process.vue
  9. 3
      src/views/modules/events/issue-reject-detail-view.vue
  10. 3
      src/views/modules/events/issue-reject-list.vue
  11. 2
      src/views/modules/events/issue-reject.vue
  12. 32
      src/views/modules/events/issue-review-detail-view.vue
  13. 3
      src/views/modules/events/issue-review-list.vue
  14. 2
      src/views/modules/events/issue-review.vue
  15. 3
      src/views/modules/events/item-close-detail-view.vue
  16. 9
      src/views/modules/events/item-close-list.vue
  17. 2
      src/views/modules/events/item-close.vue
  18. 97
      src/views/modules/events/item-deal-detail-view.vue
  19. 9
      src/views/modules/events/item-deal-list.vue
  20. 2
      src/views/modules/events/item-deal.vue
  21. 236
      src/views/modules/events/item-end-list.vue
  22. 233
      src/views/modules/events/item-end.vue

234
src/views/modules/events/issue-change-list.vue

@ -0,0 +1,234 @@
<template>
<el-card shadow="never"
class="aui-card--fill">
<div class="mod-demo__epdcevents}">
<el-form :inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()">
<el-form-item label="街道">
<el-select v-model="dataForm.streetId"
placeholder="请选择"
clearable
@change="getCommunityList">
<el-option v-for="item in streetOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="社区">
<el-select v-model="dataForm.communityId"
placeholder="请选择"
clearable
@change="getGridList">
<el-option v-for="item in communityOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="网格">
<el-select v-model="dataForm.gridId" clearable
placeholder="请选择">
<el-option v-for="item in gridOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="时间"
prop="startTime">
<el-date-picker v-model="dataForm.startTime"
type="date"
:picker-options="pickerBeginDateBefore"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="至"
label-width="25px"
prop="endTime">
<el-date-picker v-model="dataForm.endTime"
type="date"
:picker-options="pickerBeginDateAfter"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading"
:data="dataList"
border
@selection-change="dataListSelectionChangeHandle"
style="width: 100%;">
<el-table-column label="序号"
type="index"
show-overflow-tooltip
align="center"
width="50"></el-table-column>
<el-table-column prop="issueContent"
label="议题内容"
header-align="center"
width="330"
align="center"></el-table-column>
<el-table-column prop="createdTime"
label="提交时间"
header-align="center"
width="160"
align="center"></el-table-column>
<el-table-column prop="nickName"
label="提交人"
header-align="center"
width="120"
align="center"></el-table-column>
<el-table-column prop="participateNum"
label="参与人数"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="approveNum"
label="支持人数"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="opposeNum"
label="反对人数"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="commentNum"
label="评论数"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="browseNum"
label="浏览数"
header-align="center"
align="center"></el-table-column>
<el-table-column :label="$t('handle')"
fixed="right"
header-align="center"
align="center"
width="150">
<template slot-scope="scope">
<el-button v-if="$hasPermission('events:change:look')"
type="text"
size="small"
@click="detailAction(scope.row.id)">{{ $t('look') }}</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination :current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="limit"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle">
</el-pagination>
<detail v-if="detailVisible"
ref="detail"
@refreshDataList="getDataList"></detail>
</div>
</el-card>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
import Detail from './issue-detail'
export default {
mixins: [mixinViewModule],
name: 'issueChangelist',
data () {
return {
mixinViewModuleOptions: {
getDataListURL: '/events/issue/page',
getDataListIsPage: true
},
detailVisible: false,
dataForm: {
startTime: '',
endTime: '',
streetId: '',
communityId: '',
gridId: '',
state: '4'
},
streetOptions: [],
communityOptions: [],
gridOptions: [],
pickerBeginDateBefore: {
disabledDate: (time) => {
let beginDateVal = this.dataForm.startTime
if (beginDateVal) {
return time.getTime() > new Date(beginDateVal).getTime()
}
}
},
pickerBeginDateAfter: {
disabledDate: (time) => {
let EndDateVal = this.dataForm.endTime
if (EndDateVal) {
return time.getTime() < new Date(EndDateVal).getTime()
}
}
}
}
},
components: {
Detail
},
created: function () {
this.getStreetList()
},
methods: {
detailAction (id) {
this.$parent.selectComponent = 'IssueCloseDetailView'
this.$router.push({ path: '/events-issue-change', query: { id: id } })
},
getStreetList () {
this.$http.get(`/sys/dept/sublist/` + (localStorage.getItem('street') === null ? '1169154711480528897' : localStorage.getItem('street'))).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.streetOptions = res.data
}).catch(() => { })
},
getCommunityList () {
if (this.dataForm.streetId === '') {
this.communityOptions = []
this.gridOptions = []
this.dataForm.communityId = ''
this.dataForm.gridId = ''
return
}
this.dataForm.communityId = ''
this.dataForm.gridId = ''
this.$http.get(`/sys/dept/sublist/` + this.dataForm.streetId).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.communityOptions = res.data
}).catch(() => { })
},
getGridList () {
if (this.dataForm.communityId === '') {
this.gridOptions = []
this.dataForm.gridId = ''
return
}
this.dataForm.gridId = ''
this.$http.get(`/sys/dept/sublist/` + this.dataForm.communityId).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.gridOptions = res.data
}).catch(() => { })
}
}
}
</script>

231
src/views/modules/events/issue-change.vue

@ -1,232 +1,25 @@
<template>
<el-card shadow="never"
class="aui-card--fill">
<div class="mod-demo__epdcevents}">
<el-form :inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()">
<el-form-item label="街道">
<el-select v-model="dataForm.streetId"
placeholder="请选择"
clearable
@change="getCommunityList">
<el-option v-for="item in streetOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="社区">
<el-select v-model="dataForm.communityId"
placeholder="请选择"
clearable
@change="getGridList">
<el-option v-for="item in communityOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="网格">
<el-select v-model="dataForm.gridId" clearable
placeholder="请选择">
<el-option v-for="item in gridOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="时间"
prop="startTime">
<el-date-picker v-model="dataForm.startTime"
type="date"
:picker-options="pickerBeginDateBefore"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="至"
label-width="25px"
prop="endTime">
<el-date-picker v-model="dataForm.endTime"
type="date"
:picker-options="pickerBeginDateAfter"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading"
:data="dataList"
border
@selection-change="dataListSelectionChangeHandle"
style="width: 100%;">
<el-table-column label="序号"
type="index"
show-overflow-tooltip
width="50"></el-table-column>
<el-table-column prop="issueContent"
label="议题内容"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="createdTime"
label="提交时间"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="nickName"
label="提交人"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="participateNum"
label="参与人数"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="approveNum"
label="支持人数"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="opposeNum"
label="反对人数"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="commentNum"
label="评论数"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="browseNum"
label="浏览数"
header-align="center"
align="center"></el-table-column>
<el-table-column :label="$t('handle')"
fixed="right"
header-align="center"
align="center"
width="150">
<template slot-scope="scope">
<el-button v-if="$hasPermission('events:change:look')"
type="text"
size="small"
@click="detailAction(scope.row.id)">{{ $t('look') }}</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination :current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="limit"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle">
</el-pagination>
<detail v-if="detailVisible"
ref="detail"
@refreshDataList="getDataList"></detail>
</div>
</el-card>
<keep-alive include="issueChangelist">
<component :is="selectComponent"></component>
</keep-alive>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
import Detail from './issue-detail'
import IssueChangeList from './issue-change-list'
import IssueCloseDetailView from './issue-close-detail-view'
export default {
mixins: [mixinViewModule],
data () {
return {
mixinViewModuleOptions: {
getDataListURL: '/events/issue/page',
getDataListIsPage: true
},
detailVisible: false,
dataForm: {
startTime: '',
endTime: '',
streetId: '',
communityId: '',
gridId: '',
state: '4'
},
streetOptions: [],
communityOptions: [],
gridOptions: [],
pickerBeginDateBefore: {
disabledDate: (time) => {
let beginDateVal = this.dataForm.startTime
if (beginDateVal) {
return time.getTime() > new Date(beginDateVal).getTime()
}
}
},
pickerBeginDateAfter: {
disabledDate: (time) => {
let EndDateVal = this.dataForm.endTime
if (EndDateVal) {
return time.getTime() < new Date(EndDateVal).getTime()
}
}
}
selectComponent: IssueChangeList
}
},
components: {
Detail
},
created: function () {
this.getStreetList()
},
methods: {
detailAction (id) {
this.detailVisible = true
this.$nextTick(() => {
this.$refs.detail.dataForm.id = id
this.$refs.detail.init()
})
},
getStreetList () {
this.$http.get(`/sys/dept/sublist/` + (localStorage.getItem('street') === null ? '1169154711480528897' : localStorage.getItem('street'))).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.streetOptions = res.data
}).catch(() => { })
},
getCommunityList () {
if (this.dataForm.streetId === '') {
this.communityOptions = []
this.gridOptions = []
this.dataForm.communityId = ''
this.dataForm.gridId = ''
return
}
this.dataForm.communityId = ''
this.dataForm.gridId = ''
this.$http.get(`/sys/dept/sublist/` + this.dataForm.streetId).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.communityOptions = res.data
}).catch(() => { })
},
getGridList () {
if (this.dataForm.communityId === '') {
this.gridOptions = []
this.dataForm.gridId = ''
return
}
this.dataForm.gridId = ''
this.$http.get(`/sys/dept/sublist/` + this.dataForm.communityId).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.gridOptions = res.data
}).catch(() => { })
}
IssueChangeList,
IssueCloseDetailView
}
}
</script>
<style lang="scss" scoped>
</style>

3
src/views/modules/events/issue-close-detail-view.vue

@ -21,6 +21,9 @@
<el-form-item label="上报人:">
<div>{{dataForm.nickName}}</div>
</el-form-item>
<el-form-item label="电话:" prop="mobile">
<div>{{dataForm.mobile}}</div>
</el-form-item>
<el-form-item label="所属类别:" prop="categoryName">
<div>{{dataForm.categoryName}}</div>
</el-form-item>

5
src/views/modules/events/issue-close-list.vue

@ -72,18 +72,22 @@
<el-table-column label="序号"
type="index"
show-overflow-tooltip
align="center"
width="50"></el-table-column>
<el-table-column prop="issueContent"
label="议题内容"
header-align="center"
width="330"
align="center"></el-table-column>
<el-table-column prop="createdTime"
label="提交时间"
header-align="center"
width="160"
align="center"></el-table-column>
<el-table-column prop="nickName"
label="提交人"
header-align="center"
width="120"
align="center"></el-table-column>
<el-table-column prop="participateNum"
label="参与人数"
@ -139,6 +143,7 @@ import mixinViewModule from '@/mixins/view-module'
import Detail from './issue-close-detail-view'
export default {
mixins: [mixinViewModule],
name: 'IssueCloseList',
data () {
return {
mixinViewModuleOptions: {

2
src/views/modules/events/issue-close.vue

@ -1,5 +1,5 @@
<template>
<keep-alive>
<keep-alive include="IssueCloseList">
<component :is="selectComponent"></component>
</keep-alive>
</template>

6
src/views/modules/events/issue-process-detail-view.vue

@ -23,6 +23,9 @@
<el-form-item label="上报人:" prop="nickName">
<div>{{dataForm.nickName}}</div>
</el-form-item>
<el-form-item label="电话:" prop="mobile">
<div>{{dataForm.mobile}}</div>
</el-form-item>
<el-form-item label="所属类别:" prop="categoryName">
<div>{{dataForm.categoryName}}</div>
</el-form-item>
@ -45,7 +48,7 @@
</el-form-item>
</div>
<div class="handle-operation">
<el-form label-width="120px" label-position="right" style="width: 720px;" :rules="dataRule">
<el-form label-width="120px" label-position="right" style="width: 720px;" >
<el-form-item label="处理:" prop="state">
<el-select v-model="dataForm.state" placeholder="请选择">
<el-option
@ -175,6 +178,7 @@ export default {
this.$emit('refreshDataList')
}
})
this.$parent.selectComponent = 'IssueProcessList'
}).catch(() => {})
})
}, 1000, { 'leading': true, 'trailing': false })

14
src/views/modules/events/issue-process-list.vue

@ -72,18 +72,22 @@
<el-table-column label="序号"
type="index"
show-overflow-tooltip
align="center"
width="50"></el-table-column>
<el-table-column prop="issueContent"
label="议题内容"
header-align="center"
width="330"
align="center"></el-table-column>
<el-table-column prop="createdTime"
label="提交时间"
header-align="center"
width="160"
align="center"></el-table-column>
<el-table-column prop="nickName"
label="提交人"
header-align="center"
width="120"
align="center"></el-table-column>
<el-table-column prop="participateNum"
label="参与人数"
@ -144,9 +148,10 @@
<script>
import mixinViewModule from '@/mixins/view-module'
import ProcessDeal from './issue-process-deal'
import Detail from './issue-detail'
import Detail from './issue-close-detail-view'
export default {
mixins: [mixinViewModule],
name: 'processlist',
data () {
return {
mixinViewModuleOptions: {
@ -193,11 +198,8 @@ export default {
},
methods: {
detailAction (id) {
this.detailVisible = true
this.$nextTick(() => {
this.$refs.detail.dataForm.id = id
this.$refs.detail.init()
})
this.$parent.selectComponent = 'IssueCloseDetailView'
this.$router.push({ path: '/events-issue-process', query: { id: id } })
},
dealAction (id) {
this.$parent.selectComponent = 'IssueProcessDetailView'

6
src/views/modules/events/issue-process.vue

@ -1,5 +1,5 @@
<template>
<keep-alive>
<keep-alive include="processlist">
<component :is="selectComponent"></component>
</keep-alive>
</template>
@ -7,6 +7,7 @@
<script>
import IssueProcessList from './issue-process-list'
import IssueProcessDetailView from './issue-process-detail-view'
import IssueCloseDetailView from './issue-close-detail-view'
export default {
data () {
return {
@ -15,7 +16,8 @@ export default {
},
components: {
IssueProcessList,
IssueProcessDetailView
IssueProcessDetailView,
IssueCloseDetailView
}
}
</script>

3
src/views/modules/events/issue-reject-detail-view.vue

@ -21,6 +21,9 @@
<el-form-item label="上报人:" prop="nickName">
<div>{{dataForm.nickName}}</div>
</el-form-item>
<el-form-item label="电话:" prop="mobile">
<div>{{dataForm.mobile}}</div>
</el-form-item>
<el-form-item label="状态:" prop="stateName">
<div>{{dataForm.stateName}}</div>
</el-form-item>

3
src/views/modules/events/issue-reject-list.vue

@ -71,11 +71,13 @@
style="width: 100%;">
<el-table-column label="序号"
type="index"
align="center"
show-overflow-tooltip
width="50"></el-table-column>
<el-table-column prop="eventContent"
label="议题内容"
header-align="center"
width="520"
align="center"></el-table-column>
<el-table-column prop="createdTime"
label="提交时间"
@ -119,6 +121,7 @@ import mixinViewModule from '@/mixins/view-module'
import RejectDetail from './issue-reject-detail'
export default {
mixins: [mixinViewModule],
name: 'IssueRejectList',
data () {
return {
mixinViewModuleOptions: {

2
src/views/modules/events/issue-reject.vue

@ -1,5 +1,5 @@
<template>
<keep-alive>
<keep-alive include="IssueRejectList">
<component :is="selectComponent"></component>
</keep-alive>
</template>

32
src/views/modules/events/issue-review-detail-view.vue

@ -7,7 +7,7 @@
<div>{{dataForm.eventContent}}</div>
<span v-for="(imgUrl, index) in urls" :key="index" style="margin: 5px">
<el-popover placement="bottom" title="" trigger="click">
<img :src="imgUrl" style='width: 300px;height: 300px;'>
<img :src="imgUrl" style='width: 800px;height: 600px;'>
<img slot="reference" :src="imgUrl" :alt="imgUrl" style="max-height: 100px;max-width: 100px">
</el-popover>
</span>
@ -15,12 +15,15 @@
<el-form-item label="所属网格:" prop="ownGrid">
<div>{{dataForm.ownGrid}}</div>
</el-form-item>
<el-form-item label="上报时间:" prop="nickName">
<el-form-item label="上报时间:" prop="createdTime">
<div>{{dataForm.createdTime}}</div>
</el-form-item>
<el-form-item label="上报人:" prop="nickName">
<div>{{dataForm.nickName}}</div>
</el-form-item>
<el-form-item label="电话:" prop="mobile">
<div>{{dataForm.mobile}}</div>
</el-form-item>
</el-form>
<div class="container">
<div class="location">上报位置: {{dataForm.address}}</div>
@ -28,16 +31,10 @@
</div>
</div>
<div class="handle-operation">
<el-form label-width="120px" label-position="right" style="width: 720px;" :rules="dataRule">
<el-form label-width="120px" label-position="right" style="width: 720px;">
<el-form-item label="审核:" prop="eventState">
<el-select v-model="dataForm.eventState" placeholder="请选择">
<el-option
v-for="item in verifyOptions"
:key="item.verifyFlag"
:label="item.verifyTitle"
:value="item.verifyFlag">
</el-option>
</el-select>
<el-radio v-model="dataForm.eventState" label="4">审核通过</el-radio>
<el-radio v-model="dataForm.eventState" label="2">驳回</el-radio>
</el-form-item>
<el-form-item label="议题所属类别:" prop="categoryId" v-if="categoryVisible">
<el-select v-model="dataForm.categoryId" placeholder="请选择">
@ -79,18 +76,11 @@ export default {
nickName: '',
categoryId: '',
advice: '',
eventState: ''
eventState: '4'
},
categoryVisible: true,
urls: [],
categoryOptions: [],
verifyOptions: [{
verifyFlag: '2',
verifyTitle: '驳回'
}, {
verifyFlag: '4',
verifyTitle: '审核通过'
}]
categoryOptions: []
}
},
mounted () {
@ -166,7 +156,6 @@ export default {
...this.dataForm,
...res.data
}
console.log(JSON.stringify(this.dataForm))
this.initBmap(this.dataForm.issueLatitude, this.dataForm.issueLongitude)
this.urls = res.data.imageArray
}).catch(() => {})
@ -190,6 +179,7 @@ export default {
duration: 500,
onClose: () => {
this.visible = false
this.$parent.selectComponent = 'IssueReviewList'
this.$emit('refreshDataList')
}
})

3
src/views/modules/events/issue-review-list.vue

@ -72,10 +72,12 @@
<el-table-column label="序号"
type="index"
show-overflow-tooltip
align="center"
width="50"></el-table-column>
<el-table-column prop="eventContent"
label="议题内容"
header-align="center"
width="520"
align="center"></el-table-column>
<el-table-column prop="createdTime"
label="提交时间"
@ -119,6 +121,7 @@ import mixinViewModule from '@/mixins/view-module'
import ReviewDetail from './issue-review-detail'
export default {
mixins: [mixinViewModule],
name: 'issueReviewList',
data () {
return {
mixinViewModuleOptions: {

2
src/views/modules/events/issue-review.vue

@ -1,5 +1,5 @@
<template>
<keep-alive>
<keep-alive include="issueReviewList">
<component :is="selectComponent"></component>
</keep-alive>
</template>

3
src/views/modules/events/item-close-detail-view.vue

@ -18,6 +18,9 @@
<el-form-item label="上报人:">
<div>{{dataForm.nickName}}</div>
</el-form-item>
<el-form-item label="电话:" prop="mobile">
<div>{{dataForm.mobile}}</div>
</el-form-item>
<el-form-item label="所属类别:" prop="categoryName">
<div>{{dataForm.categoryName}}</div>
</el-form-item>

9
src/views/modules/events/item-close-list.vue

@ -69,21 +69,25 @@
border
@selection-change="dataListSelectionChangeHandle"
style="width: 100%;">
<el-table-column type="selection"
header-align="center"
<el-table-column label="序号"
type="index"
show-overflow-tooltip
align="center"
width="50"></el-table-column>
<el-table-column prop="itemContent"
label="项目内容"
header-align="center"
width="330"
align="center"></el-table-column>
<el-table-column prop="createdTime"
label="转成项目时间"
header-align="center"
width="160"
align="center"></el-table-column>
<el-table-column prop="nickName"
label="提交人"
header-align="center"
width="120"
align="center"></el-table-column>
<el-table-column prop="participantsNum"
label="参与人数"
@ -138,6 +142,7 @@ import mixinViewModule from '@/mixins/view-module'
import Detail from './item-detail'
export default {
mixins: [mixinViewModule],
name: 'ItemCloseList',
data () {
return {
mixinViewModuleOptions: {

2
src/views/modules/events/item-close.vue

@ -1,5 +1,5 @@
<template>
<keep-alive>
<keep-alive include="ItemCloseList">
<component :is="selectComponent"></component>
</keep-alive>
</template>

97
src/views/modules/events/item-deal-detail-view.vue

@ -18,9 +18,21 @@
<el-form-item label="上报人:" prop="nickName">
<div>{{dataForm.nickName}}</div>
</el-form-item>
<el-form-item label="电话:" prop="mobile">
<div>{{dataForm.mobile}}</div>
</el-form-item>
<el-form-item label="所属类别:" prop="categoryName">
<div>{{dataForm.categoryName}}</div>
</el-form-item>
<el-form-item label="项目态度:">
<span>表达态度 {{dataForm.approveNum + dataForm.opposeNum + dataForm.commentNum}}</span>&nbsp;&nbsp;
<span>评论 {{dataForm.commentNum}}</span>&nbsp;&nbsp;
<span>支持 {{dataForm.approveNum}}</span>&nbsp;&nbsp;
<span>反对 {{dataForm.opposeNum}}</span>
</el-form-item>
<el-form-item label="项目评论:">
<el-button type="primary" @click="innerVisible = true">查看评论</el-button>
</el-form-item>
</el-form>
<div class="container">
<div class="location">上报位置: {{dataForm.issueAddress}}</div>
@ -61,11 +73,16 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="吹哨部门:" prop="deptResultDTOS" v-if="deptResultDTOSVisible">
<el-checkbox-group v-model="postDataForm.deptResultDTOS">
<el-checkbox v-for="deptResultDTO in dataForm.deptResultDTOS" :label="deptResultDTO" :key="deptResultDTO.deptName">{{deptResultDTO.deptName}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="吹哨部门:" prop="deptResultDTOS" v-if="deptResultDTOSVisible">
<el-select v-model="deptResult" multiple placeholder="请选择">
<el-option
v-for="item in dataForm.deptResultDTOS"
:key="item.deptId"
:label="item.deptName"
:value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="回复居民意见:" prop="handleAdvice">
<el-input v-model="postDataForm.handleAdvice" type="textarea" placeholder="请您选择居民诉求的处理情况及答复意见,向居民公开展示"></el-input>
</el-form-item>
@ -90,6 +107,30 @@
</div>
</el-form>
<el-dialog width="90%" title="评论" :visible.sync="innerVisible" append-to-body>
<el-table :data="commentsDTOs" border style="width: 100%;">
<el-table-column prop="user.userName" label="发言人" header-align="center" align="center"></el-table-column>
<el-table-column prop="commentTime" label="发言时间" header-align="center" align="center"></el-table-column>
<el-table-column prop="content" label="发言内容" header-align="center" align="center"></el-table-column>
<el-table-column prop="replyComment.userName" label="被回复人" header-align="center" align="center"></el-table-column>
<el-table-column prop="replyComment.content" label="被回复内容" header-align="center" align="center"></el-table-column>
<el-table-column :label="$t('handle')" header-align="center" align="center" width="150">
<template slot-scope="scope">
<el-button v-if="scope.row.shieldFlag === '0'" type="button" size="small" @click="deleteComment(scope.row.commentId)">屏蔽</el-button>
<el-button v-if="scope.row.shieldFlag === '1'" type="text" size="small">已屏蔽</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="limitVal"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandleNew"
@current-change="pageCurrentChangeHandleNew">
</el-pagination>
</el-dialog>
</div>
</template>
@ -103,6 +144,7 @@ export default {
data () {
return {
map: '',
innerVisible: false,
dataForm: {
id: '',
nickName: '',
@ -120,6 +162,7 @@ export default {
issueLatitude: '',
issueLongitude: ''
},
deptResult: [],
postDataForm: {
id: '',
handleAdvice: '',
@ -229,8 +272,52 @@ export default {
}
}).catch(() => {})
},
deleteComment (val) {
this.$http['post']('/events/item/deleteComment', { commentIds: [val] }).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.$message({
message: this.$t('prompt.success'),
type: 'success',
duration: 500,
onClose: () => {
this.getCommentList()
}
})
}).catch(() => {})
},
pageSizeChangeHandleNew (val) {
this.pageIndex = 1
this.limitVal = val
this.getCommentList()
},
pageCurrentChangeHandleNew (val) {
this.pageIndex = val
this.getCommentList()
},
getCommentList () {
this.$http.get('/events/item/comments', { params: { id: this.dataForm.id, order: this.order, orderField: this.orderField, page: this.pageIndex, limit: this.limitVal }
}).then(({ data: res }) => {
if (res.code !== 0) {
this.commentsDTOs = []
this.total = 0
return this.$message.error(res.msg)
}
this.commentsDTOs = res.data.list
this.total = res.data.total
}).catch(() => {})
},
//
dataFormSubmitHandle: debounce(function () {
for (let i = 0; i < this.deptResult.length; i++) {
for (let j = 0; j < this.dataForm.deptResultDTOS.length; j++) {
if (this.deptResult[i] === this.dataForm.deptResultDTOS[j].deptId) {
this.postDataForm.deptResultDTOS.push(this.dataForm.deptResultDTOS[j])
break
}
}
}
this.postDataForm.id = this.dataForm.id
if (this.postDataForm.handleCategory === '') {
return this.$message.error('请选择处理选项')

9
src/views/modules/events/item-deal-list.vue

@ -69,25 +69,25 @@
border
@selection-change="dataListSelectionChangeHandle"
style="width: 100%;">
<el-table-column type="selection"
header-align="center"
align="center"
width="50"></el-table-column>
<el-table-column label="序号"
type="index"
show-overflow-tooltip
align="center"
width="50"></el-table-column>
<el-table-column prop="itemContent"
label="项目内容"
header-align="center"
width="330"
align="center"></el-table-column>
<el-table-column prop="createdTime"
label="转成项目时间"
header-align="center"
width="160"
align="center"></el-table-column>
<el-table-column prop="nickName"
label="提交人"
header-align="center"
width="120"
align="center"></el-table-column>
<el-table-column prop="participantsNum"
label="参与人数"
@ -143,6 +143,7 @@ import mixinViewModule from '@/mixins/view-module'
import Detail from './item-deal-detail'
export default {
mixins: [mixinViewModule],
name: 'ItemDealList',
data () {
return {
mixinViewModuleOptions: {

2
src/views/modules/events/item-deal.vue

@ -1,5 +1,5 @@
<template>
<keep-alive>
<keep-alive include="ItemDealList">
<component :is="selectComponent"></component>
</keep-alive>
</template>

236
src/views/modules/events/item-end-list.vue

@ -0,0 +1,236 @@
<template>
<el-card shadow="never"
class="aui-card--fill">
<div class="mod-item__item}">
<el-form :inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()">
<el-form-item label="街道">
<el-select v-model="dataForm.streetId"
placeholder="请选择"
clearable
@change="getCommunityList">
<el-option v-for="item in streetOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="社区">
<el-select v-model="dataForm.communityId"
placeholder="请选择"
clearable
@change="getGridList">
<el-option v-for="item in communityOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="网格">
<el-select v-model="dataForm.gridId" clearable
placeholder="请选择">
<el-option v-for="item in gridOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="时间"
prop="startTime">
<el-date-picker v-model="dataForm.startTime"
type="date"
:picker-options="pickerBeginDateBefore"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="至"
label-width="25px"
prop="endTime">
<el-date-picker v-model="dataForm.endTime"
type="date"
:picker-options="pickerBeginDateAfter"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading"
:data="dataList"
border
@selection-change="dataListSelectionChangeHandle"
style="width: 100%;">
<el-table-column label="序号"
type="index"
show-overflow-tooltip
align="center"
width="50"></el-table-column>
<el-table-column prop="itemContent"
label="项目内容"
header-align="center"
width="257"
align="center"></el-table-column>
<el-table-column prop="createdTime"
label="转成项目时间"
header-align="center"
width="160"
align="center"></el-table-column>
<el-table-column prop="nickName"
label="提交人"
header-align="center"
width="120"
align="center"></el-table-column>
<el-table-column prop="participantsNum"
label="参与人数"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="approveNum"
label="支持"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="opposeNum"
label="反对"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="commentNum"
label="评论数"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="browseNum"
label="浏览数"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="evaluationScore"
label="评价"
header-align="center"
align="center"></el-table-column>
<el-table-column :label="$t('handle')"
fixed="right"
header-align="center"
align="center"
width="150">
<template slot-scope="scope">
<el-button v-if="$hasPermission('events:item:look')" type="text" size="small" @click="detailAction1(scope.row.id)">{{ $t('look') }}</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination :current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="limit"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle">
</el-pagination>
<detail v-if="detailVisible"
ref="detailRef"
@refreshDataList="getDataList"></detail>
</div>
</el-card>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
import Detail from './item-detail'
export default {
mixins: [mixinViewModule],
name: 'ItemEndList',
data () {
return {
mixinViewModuleOptions: {
getDataListURL: '/events/item/page',
getDataListIsPage: true
},
dataForm: {
id: '',
itemState: '10',
startTime: '',
endTime: '',
streetId: '',
communityId: '',
gridId: ''
},
detailVisible: false,
streetOptions: [],
communityOptions: [],
gridOptions: [],
pickerBeginDateBefore: {
disabledDate: (time) => {
let beginDateVal = this.dataForm.startTime
if (beginDateVal) {
return time.getTime() > new Date(beginDateVal).getTime()
}
}
},
pickerBeginDateAfter: {
disabledDate: (time) => {
let EndDateVal = this.dataForm.endTime
if (EndDateVal) {
return time.getTime() < new Date(EndDateVal).getTime()
}
}
}
}
},
components: {
Detail
},
created: function () {
this.getStreetList()
},
methods: {
detailAction1 (id) {
this.$parent.selectComponent = 'ItemCloseDetailView'
this.$router.push({ path: '/events-item-end', query: { id: id } })
},
getStreetList () {
this.$http.get(`/sys/dept/sublist/` + (localStorage.getItem('street') === null ? '1169154711480528897' : localStorage.getItem('street'))).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.streetOptions = res.data
}).catch(() => { })
},
getCommunityList () {
if (this.dataForm.streetId === '') {
this.communityOptions = []
this.gridOptions = []
this.dataForm.communityId = ''
this.dataForm.gridId = ''
return
}
this.dataForm.communityId = ''
this.dataForm.gridId = ''
this.$http.get(`/sys/dept/sublist/` + this.dataForm.streetId).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.communityOptions = res.data
}).catch(() => { })
},
getGridList () {
if (this.dataForm.communityId === '') {
this.gridOptions = []
this.dataForm.gridId = ''
return
}
this.dataForm.gridId = ''
this.$http.get(`/sys/dept/sublist/` + this.dataForm.communityId).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.gridOptions = res.data
}).catch(() => { })
}
}
}
</script>

233
src/views/modules/events/item-end.vue

@ -1,234 +1,25 @@
<template>
<el-card shadow="never"
class="aui-card--fill">
<div class="mod-item__item}">
<el-form :inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()">
<el-form-item label="街道">
<el-select v-model="dataForm.streetId"
placeholder="请选择"
clearable
@change="getCommunityList">
<el-option v-for="item in streetOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="社区">
<el-select v-model="dataForm.communityId"
placeholder="请选择"
clearable
@change="getGridList">
<el-option v-for="item in communityOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="网格">
<el-select v-model="dataForm.gridId" clearable
placeholder="请选择">
<el-option v-for="item in gridOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="时间"
prop="startTime">
<el-date-picker v-model="dataForm.startTime"
type="date"
:picker-options="pickerBeginDateBefore"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="至"
label-width="25px"
prop="endTime">
<el-date-picker v-model="dataForm.endTime"
type="date"
:picker-options="pickerBeginDateAfter"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading"
:data="dataList"
border
@selection-change="dataListSelectionChangeHandle"
style="width: 100%;">
<el-table-column type="selection"
header-align="center"
align="center"
width="50"></el-table-column>
<el-table-column prop="itemContent"
label="项目内容"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="createdTime"
label="转成项目时间"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="nickName"
label="提交人"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="participantsNum"
label="参与人数"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="approveNum"
label="支持"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="opposeNum"
label="反对"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="commentNum"
label="评论数"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="browseNum"
label="浏览数"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="evaluationScore"
label="评价"
header-align="center"
align="center"></el-table-column>
<el-table-column :label="$t('handle')"
fixed="right"
header-align="center"
align="center"
width="150">
<template slot-scope="scope">
<el-button v-if="$hasPermission('events:item:look')" type="text" size="small" @click="detailAction1(scope.row.id)">{{ $t('look') }}</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination :current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="limit"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle">
</el-pagination>
<detail v-if="detailVisible"
ref="detailRef"
@refreshDataList="getDataList"></detail>
</div>
</el-card>
<keep-alive include="ItemEndList">
<component :is="selectComponent"></component>
</keep-alive>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
import Detail from './item-detail'
import ItemEndList from './item-end-list'
import ItemCloseDetailView from './item-close-detail-view'
export default {
mixins: [mixinViewModule],
data () {
return {
mixinViewModuleOptions: {
getDataListURL: '/events/item/page',
getDataListIsPage: true
},
dataForm: {
id: '',
itemState: '10',
startTime: '',
endTime: '',
streetId: '',
communityId: '',
gridId: ''
},
detailVisible: false,
streetOptions: [],
communityOptions: [],
gridOptions: [],
pickerBeginDateBefore: {
disabledDate: (time) => {
let beginDateVal = this.dataForm.startTime
if (beginDateVal) {
return time.getTime() > new Date(beginDateVal).getTime()
}
}
},
pickerBeginDateAfter: {
disabledDate: (time) => {
let EndDateVal = this.dataForm.endTime
if (EndDateVal) {
return time.getTime() < new Date(EndDateVal).getTime()
}
}
}
selectComponent: ItemEndList
}
},
components: {
Detail
},
created: function () {
this.getStreetList()
},
methods: {
detailAction1 (id) {
this.detailVisible = true
this.$nextTick(() => {
this.$refs.detailRef.dataForm.id = id
this.$refs.detailRef.init()
})
},
getStreetList () {
this.$http.get(`/sys/dept/sublist/` + (localStorage.getItem('street') === null ? '1169154711480528897' : localStorage.getItem('street'))).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.streetOptions = res.data
}).catch(() => { })
},
getCommunityList () {
if (this.dataForm.streetId === '') {
this.communityOptions = []
this.gridOptions = []
this.dataForm.communityId = ''
this.dataForm.gridId = ''
return
}
this.dataForm.communityId = ''
this.dataForm.gridId = ''
this.$http.get(`/sys/dept/sublist/` + this.dataForm.streetId).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.communityOptions = res.data
}).catch(() => { })
},
getGridList () {
if (this.dataForm.communityId === '') {
this.gridOptions = []
this.dataForm.gridId = ''
return
}
this.dataForm.gridId = ''
this.$http.get(`/sys/dept/sublist/` + this.dataForm.communityId).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.gridOptions = res.data
}).catch(() => { })
}
ItemEndList,
ItemCloseDetailView
}
}
</script>
<style lang="scss" scoped>
</style>

Loading…
Cancel
Save