Browse Source

【pc端 - 项目管理-已超时 】-【列表查询】-(魏凯)-2020/06/15

master
weikai 6 years ago
parent
commit
7cfdc9be10
  1. 30
      src/views/modules/events/item-timeout.vue
  2. 355
      src/views/modules/events/itemtimeout-add-or-update.vue
  3. 276
      src/views/modules/events/itemtimeout.vue

30
src/views/modules/events/item-timeout.vue

@ -0,0 +1,30 @@
<template>
<keep-alive include="ItemTimeOutList">
<component :is="selectComponent"></component>
</keep-alive>
</template>
<script>
import ItemTimeOutList from "./itemtimeout";
export default {
name: "item-timeout",
data () {
return {
selectComponent: ItemTimeOutList
}
},
components: {
ItemTimeOutList
},
methods: {
init () {
this.selectComponent = ItemTimeOutList
}
}
}
</script>
<style scoped>
</style>

355
src/views/modules/events/itemtimeout-add-or-update.vue

@ -0,0 +1,355 @@
<template>
<el-dialog :visible.sync="visible" :title="!dataForm.id ? $t('add') : $t('update')" :close-on-click-modal="false" :close-on-press-escape="false">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" :label-width="$i18n.locale === 'en-US' ? '120px' : '80px'">
<el-form-item label="统计年月" prop="totalYearMonth">
<el-input v-model="dataForm.totalYearMonth" placeholder="统计年月"></el-input>
</el-form-item>
<el-form-item label="项目ID" prop="itemId">
<el-input v-model="dataForm.itemId" placeholder="项目ID"></el-input>
</el-form-item>
<el-form-item label="项目创建时间" prop="itemCreatedTime">
<el-input v-model="dataForm.itemCreatedTime" placeholder="项目创建时间"></el-input>
</el-form-item>
<el-form-item label="事件ID" prop="eventId">
<el-input v-model="dataForm.eventId" placeholder="事件ID"></el-input>
</el-form-item>
<el-form-item label="议题ID" prop="issueId">
<el-input v-model="dataForm.issueId" placeholder="议题ID"></el-input>
</el-form-item>
<el-form-item label="用户ID" prop="userId">
<el-input v-model="dataForm.userId" placeholder="用户ID"></el-input>
</el-form-item>
<el-form-item label="用户昵称" prop="nickName">
<el-input v-model="dataForm.nickName" placeholder="用户昵称"></el-input>
</el-form-item>
<el-form-item label="用户头像" prop="userFace">
<el-input v-model="dataForm.userFace" placeholder="用户头像"></el-input>
</el-form-item>
<el-form-item label="党员标识 0:否,1:是" prop="isPartyMember">
<el-input v-model="dataForm.isPartyMember" placeholder="党员标识 0:否,1:是"></el-input>
</el-form-item>
<el-form-item label="手机号" prop="mobile">
<el-input v-model="dataForm.mobile" placeholder="手机号"></el-input>
</el-form-item>
<el-form-item label="项目内容" prop="itemContent">
<el-input v-model="dataForm.itemContent" placeholder="项目内容"></el-input>
</el-form-item>
<el-form-item label="发布时间" prop="distributeTime">
<el-input v-model="dataForm.distributeTime" placeholder="发布时间"></el-input>
</el-form-item>
<el-form-item label="网格" prop="grid">
<el-input v-model="dataForm.grid" placeholder="网格"></el-input>
</el-form-item>
<el-form-item label="网格ID" prop="gridId">
<el-input v-model="dataForm.gridId" placeholder="网格ID"></el-input>
</el-form-item>
<el-form-item label="议题位置地址" prop="issueAddress">
<el-input v-model="dataForm.issueAddress" placeholder="议题位置地址"></el-input>
</el-form-item>
<el-form-item label="议题位置纬度" prop="issueLatitude">
<el-input v-model="dataForm.issueLatitude" placeholder="议题位置纬度"></el-input>
</el-form-item>
<el-form-item label="议题位置经度" prop="issueLongitude">
<el-input v-model="dataForm.issueLongitude" placeholder="议题位置经度"></el-input>
</el-form-item>
<el-form-item label="满意度评价得分(0-不满意,1-基本满意,2-非常满意)" prop="evaluationScore">
<el-input v-model="dataForm.evaluationScore" placeholder="满意度评价得分(0-不满意,1-基本满意,2-非常满意)"></el-input>
</el-form-item>
<el-form-item label="满意度评价内容" prop="evaluationContent">
<el-input v-model="dataForm.evaluationContent" placeholder="满意度评价内容"></el-input>
</el-form-item>
<el-form-item label="满意度评价时间" prop="evaluationTime">
<el-input v-model="dataForm.evaluationTime" placeholder="满意度评价时间"></el-input>
</el-form-item>
<el-form-item label="项目状态 0-处理中,5-已关闭,10-已结案" prop="itemState">
<el-input v-model="dataForm.itemState" placeholder="项目状态 0-处理中,5-已关闭,10-已结案"></el-input>
</el-form-item>
<el-form-item label="最近一次处理时间" prop="lastHandleTime">
<el-input v-model="dataForm.lastHandleTime" placeholder="最近一次处理时间"></el-input>
</el-form-item>
<el-form-item label="项目编号" prop="itemCode">
<el-input v-model="dataForm.itemCode" placeholder="项目编号"></el-input>
</el-form-item>
<el-form-item label="社群ID" prop="groupId">
<el-input v-model="dataForm.groupId" placeholder="社群ID"></el-input>
</el-form-item>
<el-form-item label="社群名称" prop="groupName">
<el-input v-model="dataForm.groupName" placeholder="社群名称"></el-input>
</el-form-item>
<el-form-item label="话题ID" prop="topicId">
<el-input v-model="dataForm.topicId" placeholder="话题ID"></el-input>
</el-form-item>
<el-form-item label="父所有部门" prop="parentDeptIds">
<el-input v-model="dataForm.parentDeptIds" placeholder="父所有部门"></el-input>
</el-form-item>
<el-form-item label="父所有部门" prop="parentDeptNames">
<el-input v-model="dataForm.parentDeptNames" placeholder="父所有部门"></el-input>
</el-form-item>
<el-form-item label="所有部门ID" prop="allDeptIds">
<el-input v-model="dataForm.allDeptIds" placeholder="所有部门ID"></el-input>
</el-form-item>
<el-form-item label="所有部门名称" prop="allDeptNames">
<el-input v-model="dataForm.allDeptNames" placeholder="所有部门名称"></el-input>
</el-form-item>
<el-form-item label="分类编码" prop="categoryCode">
<el-input v-model="dataForm.categoryCode" placeholder="分类编码"></el-input>
</el-form-item>
<el-form-item label="一级分类编码" prop="firstCategoryCode">
<el-input v-model="dataForm.firstCategoryCode" placeholder="一级分类编码"></el-input>
</el-form-item>
<el-form-item label="分类全称" prop="categoryFullName">
<el-input v-model="dataForm.categoryFullName" placeholder="分类全称"></el-input>
</el-form-item>
<el-form-item label="所有分类ID" prop="categoryFullIds">
<el-input v-model="dataForm.categoryFullIds" placeholder="所有分类ID"></el-input>
</el-form-item>
<el-form-item label="删除标识 0:未删除,1:已删除" prop="delFlag">
<el-input v-model="dataForm.delFlag" placeholder="删除标识 0:未删除,1:已删除"></el-input>
</el-form-item>
<el-form-item label="乐观锁" prop="revision">
<el-input v-model="dataForm.revision" placeholder="乐观锁"></el-input>
</el-form-item>
<el-form-item label="创建人" prop="createdBy">
<el-input v-model="dataForm.createdBy" placeholder="创建人"></el-input>
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-input v-model="dataForm.createdTime" placeholder="创建时间"></el-input>
</el-form-item>
<el-form-item label="更新人" prop="updatedBy">
<el-input v-model="dataForm.updatedBy" placeholder="更新人"></el-input>
</el-form-item>
<el-form-item label="更新时间" prop="updatedTime">
<el-input v-model="dataForm.updatedTime" placeholder="更新时间"></el-input>
</el-form-item>
</el-form>
<template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button>
</template>
</el-dialog>
</template>
<script>
import debounce from 'lodash/debounce'
export default {
data () {
return {
visible: false,
dataForm: {
id: '',
totalYearMonth: '',
itemId: '',
itemCreatedTime: '',
eventId: '',
issueId: '',
userId: '',
nickName: '',
userFace: '',
isPartyMember: '',
mobile: '',
itemContent: '',
distributeTime: '',
grid: '',
gridId: '',
issueAddress: '',
issueLatitude: '',
issueLongitude: '',
evaluationScore: '',
evaluationContent: '',
evaluationTime: '',
itemState: '',
lastHandleTime: '',
itemCode: '',
groupId: '',
groupName: '',
topicId: '',
parentDeptIds: '',
parentDeptNames: '',
allDeptIds: '',
allDeptNames: '',
categoryCode: '',
firstCategoryCode: '',
categoryFullName: '',
categoryFullIds: '',
delFlag: '',
revision: '',
createdBy: '',
createdTime: '',
updatedBy: '',
updatedTime: ''
}
}
},
computed: {
dataRule () {
return {
totalYearMonth: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
itemId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
itemCreatedTime: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
eventId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
issueId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
userId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
nickName: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
userFace: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
isPartyMember: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
mobile: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
itemContent: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
distributeTime: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
grid: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
gridId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
issueAddress: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
issueLatitude: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
issueLongitude: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
evaluationScore: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
evaluationContent: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
evaluationTime: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
itemState: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
lastHandleTime: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
itemCode: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
groupId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
groupName: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
topicId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
parentDeptIds: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
parentDeptNames: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
allDeptIds: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
allDeptNames: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
categoryCode: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
firstCategoryCode: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
categoryFullName: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
categoryFullIds: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
delFlag: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
revision: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
createdBy: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
createdTime: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
updatedBy: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
updatedTime: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
]
}
}
},
methods: {
init () {
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.getInfo()
}
})
},
//
getInfo () {
this.$http.get(`/news/itemtimeout/${this.dataForm.id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.dataForm = {
...this.dataForm,
...res.data
}
}).catch(() => {})
},
//
dataFormSubmitHandle: debounce(function () {
this.$refs['dataForm'].validate((valid) => {
if (!valid) {
return false
}
this.$http[!this.dataForm.id ? 'post' : 'put']('/news/itemtimeout/', this.dataForm).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.visible = false
this.$emit('refreshDataList')
}
})
}).catch(() => {})
})
}, 1000, { 'leading': true, 'trailing': false })
}
}
</script>

276
src/views/modules/events/itemtimeout.vue

@ -0,0 +1,276 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-news__itemtimeout}">
<el-form
:inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()"
>
<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="itemCode">
<el-input
v-model="dataForm.itemContent"
placeholder="请输入项目内容"
clearable
></el-input>
</el-form-item>
<el-form-item label="项目状态" >
<el-select v-model="dataForm.itemState" clearable placeholder="请选择现在项目状态">
<el-option label="处理中" value="0"></el-option>
<el-option label="已关闭" value="5"></el-option>
<el-option label="已结案" value="10"></el-option>
</el-select>
</el-form-item>
<el-form-item label="提交人" prop="itemCode">
<el-input
v-model="dataForm.nickName"
placeholder="请输入提交人"
clearable
></el-input>
</el-form-item>
<el-form-item label="项目统计年月" prop="itemCode">
<el-date-picker
v-model="dataForm.totalYearMonth"
type="month"
value-format="yyyy-MM"
placeholder="选择月">
</el-date-picker>
</el-form-item>
<el-form-item label="项目创建时间" prop="startTime">
<el-date-picker @change='setRegistTime'
v-model="times"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-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="itemCode" label="项目编号" header-align="center" align="center"></el-table-column>
<el-table-column prop="itemContent" label="项目内容" header-align="center" align="center"></el-table-column>
<el-table-column
prop="itemCreatedTime"
label="转成项目时间"
header-align="center"
width="152"
align="center"
></el-table-column>
<el-table-column prop="itemState" label="项目状态 "
header-align="center"
:formatter="itemStatus"
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"
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('news:itemtimeout:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>-->
<!-- <el-button v-if="$hasPermission('news:itemtimeout:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>-->
<!-- </template>-->
<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>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
</div>
</el-card>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
import Detail from './item-deal-detail'
export default {
mixins: [mixinViewModule],
name: 'ItemDealList',
data () {
return {
mixinViewModuleOptions: {
getDataListURL: '/events/item/itemOutPage',
getDataListIsPage: true
},
detailVisible: false,
dataForm: {
id: '',
itemState: '',
startTime: '',
endTime: '',
streetId: '',
communityId: '',
gridId: '',
itemCode: '',
itemContent:'',
nickName:"",
totalYearMonth:'',
},
times:[],
ids: [],
options: [],
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.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(() => {})
},
//
itemStatus(row){
let itemS = row.itemState;
if (itemS === '0'){
return '处理中'
}else if (itemS === '5'){
return '已关闭'
}else {
return '已结案'
}
},
setRegistTime () { //
if (null == this.times){
this.dataForm.startTime = ''
this.dataForm.endTime = ''
}else {
console.log(this.times[0])
this.dataForm.startTime = this.times[0]
this.dataForm.endTime = this.times[1]
}
},
}
}
</script>
Loading…
Cancel
Save