Browse Source

【市北代码迁移至安宁】【项目管理】-王公峰-2020-09-17

redesign
wanggongfeng 5 years ago
parent
commit
5cec46aea0
  1. 100
      src/views/modules/events/item-deal-detail-view.vue
  2. 563
      src/views/modules/events/item-deal-list.vue
  3. 574
      src/views/modules/events/item-end-list.vue

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

@ -108,10 +108,20 @@
style="width: 720px;" style="width: 720px;"
:model="dataForm" :model="dataForm"
:rules="dataRule"> :rules="dataRule">
<el-form-item label="操作人部门" prop="handlerDeptIdRule">
<el-cascader
ref="name"
v-model="dataForm.handlerDeptIdRule"
:options="options"
:props="{ multiple: false, checkStrictly: true }"
@change="changeHandle"
>
</el-cascader>
</el-form-item>
<el-form-item label="处理:" <el-form-item label="处理:"
prop="handleCategory"> prop="handleCategory">
<el-select v-model="postDataForm.handleCategory" <el-select v-model="postDataForm.handleCategory"
placeholder="请选择"> placeholder="请选择" @visible-change="visibleChange">
<el-option v-for="handleResultDTO in dataForm.handleResultDTOS" <el-option v-for="handleResultDTO in dataForm.handleResultDTOS"
:key="handleResultDTO.processResult" :key="handleResultDTO.processResult"
:label="handleResultDTO.processName" :label="handleResultDTO.processName"
@ -136,12 +146,16 @@
prop="outHandleAdvice"> prop="outHandleAdvice">
<el-input v-model="postDataForm.outHandleAdvice" <el-input v-model="postDataForm.outHandleAdvice"
type="textarea" type="textarea"
maxlength="100"
show-word-limit
placeholder="请您选择居民诉求的处理情况及答复意见,向居民公开展示"></el-input> placeholder="请您选择居民诉求的处理情况及答复意见,向居民公开展示"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="项目处理意见:" <el-form-item label="项目处理意见:"
prop="handleAdvice"> prop="handleAdvice">
<el-input v-model="postDataForm.handleAdvice" <el-input v-model="postDataForm.handleAdvice"
type="textarea" type="textarea"
maxlength="100"
show-word-limit
placeholder="请您填写项目的实际办理情况(自己处理、吹哨报道、内部协调),便于相关部门了解项目的实际情况"></el-input> placeholder="请您填写项目的实际办理情况(自己处理、吹哨报道、内部协调),便于相关部门了解项目的实际情况"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="满意度评价:" <el-form-item label="满意度评价:"
@ -252,7 +266,8 @@ export default {
outHandleAdvice: '', outHandleAdvice: '',
handleCategory: '', handleCategory: '',
issueLatitude: '', issueLatitude: '',
issueLongitude: '' issueLongitude: '',
handlerDeptIdRule: ''
}, },
isAble: false, isAble: false,
previewImgList: [], previewImgList: [],
@ -271,11 +286,13 @@ export default {
}, },
deptResultDTOSVisible: false, deptResultDTOSVisible: false,
evaluateDeptDTOSVisible: false, evaluateDeptDTOSVisible: false,
timeLineList: [] timeLineList: [],
options: []
} }
}, },
mounted () { mounted () {
this.dataForm.id = this.$route.query.id this.dataForm.id = this.$route.query.id
this.getOptions()
this.init() this.init()
}, },
filters: { filters: {
@ -342,6 +359,9 @@ export default {
], ],
evaluateDeptDTOS: [ evaluateDeptDTOS: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } { required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
handlerDeptIdRule: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
] ]
} }
} }
@ -379,6 +399,45 @@ export default {
backToItemDeal () { backToItemDeal () {
this.$parent.selectComponent = 'ItemDeal' this.$parent.selectComponent = 'ItemDeal'
}, },
getOptions () {
this.$http
.get(`/sys/user/deptOptions/getDeptAuthByUser`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.options = res.data.options
})
.catch(() => {})
},
visibleChange (val) {
if (this.dataForm.handleResultDTOS.length === 0 && this.dataForm.handlerDeptIdRule === '' && val === true) {
return this.$message.error('请先选择操作人部门!')
}
},
changeHandle (value, selectedData) {
this.postDataForm.handlerDept = this.$refs['name'].getCheckedNodes()[0].label
this.postDataForm.handlerDeptId = this.$refs['name'].getCheckedNodes()[0].value
this.getHandleResultDTOS()
},
//
getHandleResultDTOS () {
this.dataForm.handleResultDTOS = []
this.dataForm.deptResultDTOS = []
this.dataForm.evaluateDeptDTOS = []
this.postDataForm.handleCategory = ''
this.postDataForm.deptResultDTOS = []
this.postDataForm.evaluateDeptDTOS = []
this.deptResult = []
this.$http.post(`/events/item/getHandleResultDTOS`, { itemId: this.dataForm.id, deptId: this.postDataForm.handlerDeptId }).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.dataForm.handleResultDTOS = res.data.handleResultDTOS
this.dataForm.deptResultDTOS = res.data.deptResultDTOS
this.dataForm.evaluateDeptDTOS = res.data.evaluateDeptDTOS
}).catch(() => { })
},
initBmap (latitude, longitude) { initBmap (latitude, longitude) {
this.map = new BMap.Map('map') this.map = new BMap.Map('map')
const point = new BMap.Point(longitude, latitude) const point = new BMap.Point(longitude, latitude)
@ -388,6 +447,7 @@ export default {
this.map.enableScrollWheelZoom(true) this.map.enableScrollWheelZoom(true)
}, },
init () { init () {
this.isAble = false
this.$nextTick(() => { this.$nextTick(() => {
if (this.dataForm.id) { if (this.dataForm.id) {
this.postDataForm.handleAdvice = '' this.postDataForm.handleAdvice = ''
@ -450,19 +510,27 @@ export default {
}).catch(() => { }) }).catch(() => { })
}, },
deleteComment (val) { deleteComment (val) {
this.$http['post']('/events/item/deleteComment', { commentIds: [val] }).then(({ data: res }) => { this.$confirm('确定要屏蔽该评论吗?屏蔽后不可恢复。', '提示', {
if (res.code !== 0) { confirmButtonText: '确定',
return this.$message.error(res.msg) cancelButtonText: '取消',
} type: 'warning'
this.$message({ }).then(() => {
message: this.$t('prompt.success'), this.$http['post']('/events/item/deleteComment', { commentIds: [val] }).then(({ data: res }) => {
type: 'success', if (res.code !== 0) {
duration: 500, return this.$message.error(res.msg)
onClose: () => {
this.getCommentList()
} }
}) this.$message({
}).catch(() => { }) message: this.$t('prompt.success'),
type: 'success',
duration: 500,
onClose: () => {
this.getCommentList()
}
})
}).catch(() => { })
}).catch(() => {
})
}, },
pageSizeChangeHandleNew (val) { pageSizeChangeHandleNew (val) {
this.pageIndex = 1 this.pageIndex = 1
@ -530,8 +598,8 @@ export default {
this.isAble = true this.isAble = true
this.$http['post']( this.$http['post'](
'/events/item/itemHandleSubmit', this.postDataForm).then(({ data: res }) => { '/events/item/itemHandleSubmit', this.postDataForm).then(({ data: res }) => {
this.isAble = false
if (res.code !== 0) { if (res.code !== 0) {
this.isAble = false
return this.$message.error(res.msg) return this.$message.error(res.msg)
} }
this.$message({ this.$message({

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

@ -1,254 +1,325 @@
<template> <template>
<el-card shadow="never" class="aui-card--fill"> <el-card shadow="never" class="aui-card--fill">
<div class="mod-item__item}"> <div class="mod-item__item}">
<el-form <el-form
:inline="true" :inline="true"
:model="dataForm" :model="dataForm"
@keyup.enter.native="getDataList()" @keyup.enter.native="getDataListSearch()"
>
<el-form-item label="所属机构">
<el-cascader
v-model="ids"
:options="options"
:props="{ checkStrictly: true }"
clearable
>
</el-cascader>
</el-form-item>
<el-form-item label="项目编号" prop="itemCode">
<el-input
v-model="dataForm.itemCode"
placeholder="请输入项目编号"
clearable
></el-input>
</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"
align="center"
width="50"
></el-table-column>
<el-table-column
prop="itemContent"
label="项目内容"
header-align="center"
min-width="400"
align="left"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop="itemCode"
label="项目编号"
header-align="center"
width="142"
align="center"
></el-table-column>
<el-table-column
prop="createdTime"
label="转成项目时间"
header-align="center"
width="152"
align="center"
></el-table-column>
<el-table-column
prop="nickName"
label="提交人"
header-align="center"
min-width="180"
show-overflow-tooltip
align="left"
></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"
width="95"
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:item:deal')"
type="text"
size="small"
@click="dealAction(scope.row.id)"
>{{ $t('deal') }}</el-button
> >
</template> <el-form-item label="所属机构" label-width="100px">
</el-table-column> <el-cascader
</el-table> v-model="ids"
<el-pagination :options="options"
:current-page="page" :props="{ checkStrictly: true }"
:page-sizes="[10, 20, 50, 100]" clearable
:page-size="limit" style="width:250px;"
:total="total" >
layout="total, sizes, prev, pager, next, jumper" </el-cascader>
@size-change="pageSizeChangeHandle" </el-form-item>
@current-change="pageCurrentChangeHandle" <el-form-item label="项目编号" prop="itemCode" label-width="100px">
> <el-input
</el-pagination> v-model="dataForm.itemCode"
<!-- 弹窗, 新增 / 修改 --> placeholder="请输入项目编号"
<detail clearable
v-if="detailVisible" @keyup.native="btKeyUpItemCode"
ref="detail" style="width:250px;"
@refreshDataList="getDataList" ></el-input>
></detail> </el-form-item>
</div> <el-form-item label="项目内容" prop="itemCode">
</el-card> <el-input
v-model="dataForm.itemContent"
placeholder="请输入项目内容"
clearable
@keyup.native="btKeyUpItemContent"
style="width:200px;"
></el-input>
</el-form-item>
<br>
<el-form-item label="提交人" prop="itemCode" label-width="100px">
<el-input
v-model="dataForm.nickName"
placeholder="请输入提交人"
clearable
@keyup.native="btKeyUpNickName"
style="width:250px;"
></el-input>
</el-form-item>
<el-form-item label="提交人手机号" prop="itemCode">
<el-input
v-model="dataForm.mobile"
placeholder="请输入提交人手机号"
clearable
@keyup.native="btKeyUpMobile"
style="width:250px;"
></el-input>
</el-form-item>
<br>
<div>
<el-form-item label="转成项目时间" prop="startTime" label-width="100px">
<el-date-picker
v-model="dataForm.startTime"
type="date"
:picker-options="pickerBeginDateBefore"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期时间"
style="width:250px;" @change="changeTime"
>
</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="选择日期时间"
style="width:250px;" @change="changeTime"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="success" @click="getDataListSearch()">{{ $t('query') }}</el-button>
</el-form-item>
</div>
</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"
min-width="400"
align="left"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop="itemCode"
label="项目编号"
header-align="center"
width="150"
align="center"
></el-table-column>
<el-table-column
prop="createdTime"
label="转成项目时间"
header-align="center"
width="180"
align="center"
></el-table-column>
<el-table-column
prop="nickName"
label="提交人"
header-align="center"
min-width="200"
align="center"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop="mobile"
label="提交人手机号"
header-align="center"
min-width="200"
align="center"
></el-table-column>
<el-table-column
prop="participantsNum"
label="参与人数"
header-align="center"
width="100"
align="center"
></el-table-column>
<el-table-column
prop="approveNum"
label="支持人数"
header-align="center"
width="100"
align="center"
></el-table-column>
<el-table-column
prop="opposeNum"
label="不支持人数"
header-align="center"
width="100"
align="center"
></el-table-column>
<el-table-column
prop="commentNum"
label="评论人数"
header-align="center"
width="100"
align="center"
></el-table-column>
<el-table-column
prop="browseNum"
label="浏览数"
header-align="center"
width="100"
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:deal')"
type="text"
size="small"
@click="dealAction(scope.row.id)"
>{{ $t('deal') }}
</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> </template>
<script> <script>
import mixinViewModule from '@/mixins/view-module' import mixinViewModule from '@/mixins/view-module'
import Detail from './item-deal-detail' import Detail from './item-deal-detail'
export default {
mixins: [mixinViewModule], export default {
name: 'ItemDealList', mixins: [mixinViewModule],
data () { name: 'ItemDealList',
return { data() {
mixinViewModuleOptions: { return {
getDataListURL: '/events/item/page', mixinViewModuleOptions: {
getDataListIsPage: true getDataListURL: '/events/item/page',
}, getDataListIsPage: true
detailVisible: false, },
dataForm: { detailVisible: false,
id: '', dataForm: {
itemState: '0', id: '',
startTime: '', itemState: '0',
endTime: '', startTime: '',
streetId: '', endTime: '',
communityId: '', streetId: '',
gridId: '', communityId: '',
itemCode: '' gridId: '',
}, itemCode: '',
ids: [], itemContent: '',
options: [], nickName: '',
pickerBeginDateBefore: { mobile: ''
disabledDate: time => {
let beginDateVal = this.dataForm.startTime },
if (beginDateVal) { ids: [],
return time.getTime() > new Date(beginDateVal).getTime() options: [],
} pickerBeginDateBefore: {
} disabledDate: (time) => {
}, let beginDateVal = this.dataForm.endTime;
pickerBeginDateAfter: { if (beginDateVal) {
disabledDate: time => { return time.getTime() > new Date(beginDateVal + ' 00:00:00').getTime()
let EndDateVal = this.dataForm.endTime }
if (EndDateVal) { }
return time.getTime() < new Date(EndDateVal).getTime() },
} pickerBeginDateAfter: {
disabledDate: (time) => {
let EndDateVal = this.dataForm.startTime;
if (EndDateVal) {
return time.getTime() < new Date(EndDateVal + ' 00:00:00').getTime()
}
}
},
}
},
components: {
Detail
},
created: function () {
this.getOptions()
},
watch: {
ids: function (val) {
if (val.length === 0) {
this.dataForm.streetId = ''
this.dataForm.communityId = ''
this.dataForm.gridId = ''
}
if (val.length === 1) {
this.dataForm.streetId = this.ids[0]
this.dataForm.communityId = ''
this.dataForm.gridId = ''
}
if (val.length === 2) {
this.dataForm.streetId = this.ids[0]
this.dataForm.communityId = this.ids[1]
this.dataForm.gridId = ''
}
if (val.length === 3) {
this.dataForm.streetId = this.ids[0]
this.dataForm.communityId = this.ids[1]
this.dataForm.gridId = this.ids[2]
}
}
},
methods: {
dealAction(id) {
this.$parent.selectComponent = 'ItemDealDetailView'
this.$router.push({path: '/events-item-deal', query: {id: id}})
},
getOptions() {
this.$http
.get(`/sys/user/deptOptions/getByLoginUser`)
.then(({data: res}) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.options = res.data.options
})
.catch(() => {
})
},
btKeyUpItemCode (e) {
e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, '')
this.dataForm.itemCode = e.target.value
},
btKeyUpItemContent (e) {
e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, '')
this.dataForm.itemContent = e.target.value
},
btKeyUpNickName (e) {
e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, '')
this.dataForm.nickName = e.target.value
},
btKeyUpMobile (e) {
e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, '')
this.dataForm.mobile = e.target.value
}
} }
}
}
},
components: {
Detail
},
created: function () {
this.getOptions()
},
watch: {
ids: function (val) {
if (val.length === 0) {
this.dataForm.streetId = ''
this.dataForm.communityId = ''
this.dataForm.gridId = ''
}
if (val.length === 1) {
this.dataForm.streetId = this.ids[0]
this.dataForm.communityId = ''
this.dataForm.gridId = ''
}
if (val.length === 2) {
this.dataForm.streetId = this.ids[0]
this.dataForm.communityId = this.ids[1]
this.dataForm.gridId = ''
}
if (val.length === 3) {
this.dataForm.streetId = this.ids[0]
this.dataForm.communityId = this.ids[1]
this.dataForm.gridId = this.ids[2]
}
}
},
methods: {
dealAction (id) {
this.$parent.selectComponent = 'ItemDealDetailView'
this.$router.push({ path: '/events-item-deal', query: { id: id } })
},
getOptions () {
this.$http
.get(`/sys/user/deptOptions/getByLoginUser`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.options = res.data.options
})
.catch(() => {})
} }
}
}
</script> </script>

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

@ -1,260 +1,330 @@
<template> <template>
<el-card shadow="never" class="aui-card--fill"> <el-card shadow="never" class="aui-card--fill">
<div class="mod-item__item}"> <div class="mod-item__item}">
<el-form <el-form
:inline="true" :inline="true"
:model="dataForm" :model="dataForm"
@keyup.enter.native="getDataList()" @keyup.enter.native="getDataListSearch()"
>
<el-form-item label="所属机构">
<el-cascader
v-model="ids"
:options="options"
:props="{ checkStrictly: true }"
clearable
>
</el-cascader>
</el-form-item>
<el-form-item label="项目编号" prop="itemCode">
<el-input
v-model="dataForm.itemCode"
placeholder="请输入项目编号"
clearable
></el-input>
</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"
align="center"
width="50"
></el-table-column>
<el-table-column
prop="itemContent"
label="项目内容"
header-align="center"
min-width="400"
align="left"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop="itemCode"
label="项目编号"
header-align="center"
width="142"
align="center"
></el-table-column>
<el-table-column
prop="createdTime"
label="转成项目时间"
header-align="center"
width="152"
align="center"
></el-table-column>
<el-table-column
prop="nickName"
label="提交人"
header-align="center"
min-width="180"
show-overflow-tooltip
align="left"
></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"
width="95"
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"
width="80"
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-form-item label="所属机构" label-width="100px">
</el-table-column> <el-cascader
</el-table> v-model="ids"
<el-pagination :options="options"
:current-page="page" :props="{ checkStrictly: true }"
:page-sizes="[10, 20, 50, 100]" clearable
:page-size="limit" style="width:250px;"
:total="total" >
layout="total, sizes, prev, pager, next, jumper" </el-cascader>
@size-change="pageSizeChangeHandle" </el-form-item>
@current-change="pageCurrentChangeHandle" <el-form-item label="项目编号" prop="itemCode" label-width="100px">
> <el-input
</el-pagination> v-model="dataForm.itemCode"
<detail placeholder="请输入项目编号"
v-if="detailVisible" clearable
ref="detailRef" @keyup.native="btKeyUpItemCode"
@refreshDataList="getDataList" style="width:250px;"
></detail> ></el-input>
</div> </el-form-item>
</el-card> <el-form-item label="项目内容" prop="itemCode">
<el-input
v-model="dataForm.itemContent"
placeholder="请输入项目内容"
clearable
@keyup.native="btKeyUpItemContent"
style="width:200px;"
></el-input>
</el-form-item>
<br>
<el-form-item label="提交人" prop="itemCode" label-width="100px">
<el-input
v-model="dataForm.nickName"
placeholder="请输入提交人"
clearable
@keyup.native="btKeyUpNickName"
style="width:250px;"
></el-input>
</el-form-item>
<el-form-item label="提交人手机号" prop="itemCode" >
<el-input
v-model="dataForm.mobile"
placeholder="请输入提交人手机号"
clearable
@keyup.native="btKeyUpMobile"
style="width:250px;"
></el-input>
</el-form-item>
<br>
<div>
<el-form-item label="转成项目时间" prop="startTime" label-width="100px">
<el-date-picker
v-model="dataForm.startTime"
type="date"
:picker-options="pickerBeginDateBefore"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期时间"
style="width:250px;" @change="changeTime"
>
</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="选择日期时间"
style="width:250px;" @change="changeTime"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="success" @click="getDataListSearch()">{{ $t('query') }}</el-button>
</el-form-item>
</div>
</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"
min-width="400"
align="left"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop="itemCode"
label="项目编号"
header-align="center"
width="150"
align="center"
></el-table-column>
<el-table-column
prop="createdTime"
label="转成项目时间"
header-align="center"
width="180"
align="center"
></el-table-column>
<el-table-column
prop="nickName"
label="提交人"
header-align="center"
width="200"
align="center"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop="mobile"
label="提交人手机号"
header-align="center"
min-width="200"
align="center"
></el-table-column>
<el-table-column
prop="participantsNum"
label="参与人数"
header-align="center"
width="100"
align="center"
></el-table-column>
<el-table-column
prop="approveNum"
label="支持人数"
header-align="center"
width="100"
align="center"
></el-table-column>
<el-table-column
prop="opposeNum"
label="不支持人数"
header-align="center"
width="100"
align="center"
></el-table-column>
<el-table-column
prop="commentNum"
label="评论人数"
header-align="center"
width="100"
align="center"
></el-table-column>
<el-table-column
prop="browseNum"
label="浏览数"
header-align="center"
width="100"
align="center"
></el-table-column>
<el-table-column
prop="evaluationScore"
label="评价"
header-align="center"
width="120"
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> </template>
<script> <script>
import mixinViewModule from '@/mixins/view-module' import mixinViewModule from '@/mixins/view-module'
import Detail from './item-detail' import Detail from './item-detail'
export default {
mixins: [mixinViewModule], export default {
name: 'ItemEndList', mixins: [mixinViewModule],
data () { name: 'ItemEndList',
return { data() {
mixinViewModuleOptions: { return {
getDataListURL: '/events/item/page', mixinViewModuleOptions: {
getDataListIsPage: true getDataListURL: '/events/item/page',
}, getDataListIsPage: true
dataForm: { },
id: '', dataForm: {
itemState: '10', id: '',
startTime: '', itemState: '10',
endTime: '', startTime: '',
streetId: '', endTime: '',
communityId: '', streetId: '',
gridId: '', communityId: '',
itemCode: '' gridId: '',
}, itemCode: '',
detailVisible: false, itemContent: '',
ids: [], nickName: '',
options: [], mobile: ''
pickerBeginDateBefore: { },
disabledDate: time => { detailVisible: false,
let beginDateVal = this.dataForm.startTime ids: [],
if (beginDateVal) { options: [],
return time.getTime() > new Date(beginDateVal).getTime() pickerBeginDateBefore: {
} disabledDate: (time) => {
} let beginDateVal = this.dataForm.endTime;
}, if (beginDateVal) {
pickerBeginDateAfter: { return time.getTime() > new Date(beginDateVal + ' 00:00:00').getTime()
disabledDate: time => { }
let EndDateVal = this.dataForm.endTime }
if (EndDateVal) { },
return time.getTime() < new Date(EndDateVal).getTime() pickerBeginDateAfter: {
} disabledDate: (time) => {
let EndDateVal = this.dataForm.startTime;
if (EndDateVal) {
return time.getTime() < new Date(EndDateVal + ' 00:00:00').getTime()
}
}
},
}
},
components: {
Detail
},
created: function () {
this.getOptions()
},
watch: {
ids: function (val) {
if (val.length === 0) {
this.dataForm.streetId = ''
this.dataForm.communityId = ''
this.dataForm.gridId = ''
}
if (val.length === 1) {
this.dataForm.streetId = this.ids[0]
this.dataForm.communityId = ''
this.dataForm.gridId = ''
}
if (val.length === 2) {
this.dataForm.streetId = this.ids[0]
this.dataForm.communityId = this.ids[1]
this.dataForm.gridId = ''
}
if (val.length === 3) {
this.dataForm.streetId = this.ids[0]
this.dataForm.communityId = this.ids[1]
this.dataForm.gridId = this.ids[2]
}
}
},
methods: {
detailAction1(id) {
this.$parent.selectComponent = 'ItemCloseDetailView'
this.$router.push({path: '/events-item-end', query: {id: id}})
},
getOptions() {
this.$http
.get(`/sys/user/deptOptions/getByLoginUser`)
.then(({data: res}) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.options = res.data.options
})
.catch(() => {
})
},
btKeyUpItemCode (e) {
e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, '')
this.dataForm.itemCode = e.target.value
},
btKeyUpItemContent (e) {
e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, '')
this.dataForm.itemContent = e.target.value
},
btKeyUpNickName (e) {
e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, '')
this.dataForm.nickName = e.target.value
},
btKeyUpMobile (e) {
e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, '')
this.dataForm.mobile = e.target.value
}
} }
}
}
},
components: {
Detail
},
created: function () {
this.getOptions()
},
watch: {
ids: function (val) {
if (val.length === 0) {
this.dataForm.streetId = ''
this.dataForm.communityId = ''
this.dataForm.gridId = ''
}
if (val.length === 1) {
this.dataForm.streetId = this.ids[0]
this.dataForm.communityId = ''
this.dataForm.gridId = ''
}
if (val.length === 2) {
this.dataForm.streetId = this.ids[0]
this.dataForm.communityId = this.ids[1]
this.dataForm.gridId = ''
}
if (val.length === 3) {
this.dataForm.streetId = this.ids[0]
this.dataForm.communityId = this.ids[1]
this.dataForm.gridId = this.ids[2]
}
}
},
methods: {
detailAction1 (id) {
this.$parent.selectComponent = 'ItemCloseDetailView'
this.$router.push({ path: '/events-item-end', query: { id: id } })
},
getOptions () {
this.$http
.get(`/sys/user/deptOptions/getByLoginUser`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.options = res.data.options
})
.catch(() => {})
} }
}
}
</script> </script>

Loading…
Cancel
Save