|
@ -3,7 +3,7 @@ |
|
|
<div class="mod-item__item}"> |
|
|
<div class="mod-item__item}"> |
|
|
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataListSearch()"> |
|
|
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataListSearch()"> |
|
|
<el-form-item label="编码" label-width="100px"> |
|
|
<el-form-item label="编码" label-width="100px"> |
|
|
<el-input v-model="dataForm.startTime"></el-input> |
|
|
<el-input v-model="dataForm.serialNum" placeholder="请输入"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<el-form-item label="上报时间" prop="startTime" label-width="100px"> |
|
|
<el-form-item label="上报时间" prop="startTime" label-width="100px"> |
|
@ -16,6 +16,9 @@ |
|
|
value-format="yyyy-MM-dd" format="yyyy-MM-dd" placeholder="选择日期时间" style="width:250px;" |
|
|
value-format="yyyy-MM-dd" format="yyyy-MM-dd" placeholder="选择日期时间" style="width:250px;" |
|
|
@change="changeTime"></el-date-picker> |
|
|
@change="changeTime"></el-date-picker> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item> |
|
|
|
|
|
<el-button type="success" @click="getDataListSearch()" class="custom-button-default">{{ $t('query') }}</el-button> |
|
|
|
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
<el-table v-loading="dataListLoading" :data="dataList" border |
|
|
<el-table v-loading="dataListLoading" :data="dataList" border |
|
|
@selection-change="dataListSelectionChangeHandle" style="width: 100%;"> |
|
|
@selection-change="dataListSelectionChangeHandle" style="width: 100%;"> |
|
@ -27,18 +30,30 @@ |
|
|
show-overflow-tooltip></el-table-column> |
|
|
show-overflow-tooltip></el-table-column> |
|
|
<el-table-column prop="itemContent" label="诉求内容" header-align="center" align="center" |
|
|
<el-table-column prop="itemContent" label="诉求内容" header-align="center" align="center" |
|
|
show-overflow-tooltip></el-table-column> |
|
|
show-overflow-tooltip></el-table-column> |
|
|
<el-table-column prop="" label="诉求来源" header-align="center" width="120" align="center" |
|
|
<el-table-column prop="appealSource" label="诉求来源" header-align="center" width="120" align="center" |
|
|
|
|
|
show-overflow-tooltip> |
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
|
{{appealSource(scope.row.appealSource)}} |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column prop="evaluationContent" label="评价内容" header-align="center" align="center" |
|
|
show-overflow-tooltip></el-table-column> |
|
|
show-overflow-tooltip></el-table-column> |
|
|
<el-table-column prop="createdTime" label="上报时间" header-align="center" width="180" align="center" |
|
|
<el-table-column prop="createdTime" label="上报时间" header-align="center" width="180" align="center" |
|
|
show-overflow-tooltip></el-table-column> |
|
|
show-overflow-tooltip></el-table-column> |
|
|
<el-table-column prop="handlePeopleMobile" label="联系电话" header-align="center" width="120" align="center" |
|
|
<el-table-column prop="handlePeopleMobile" label="联系电话" header-align="center" width="120" align="center" |
|
|
show-overflow-tooltip></el-table-column> |
|
|
show-overflow-tooltip></el-table-column> |
|
|
|
|
|
<el-table-column prop="issueScore" label="评价" header-align="center" width="120" align="center" |
|
|
|
|
|
show-overflow-tooltip> |
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
|
{{scope.row.issueScore === 0?'不满意':scope.row.issueScore === 1?'基本满意':'满意'}} |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
<el-table-column :label="$t('handle')" fixed="right" header-align="center" max-width="250" |
|
|
<el-table-column :label="$t('handle')" fixed="right" header-align="center" max-width="250" |
|
|
align="center"> |
|
|
align="center"> |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<el-button type="text" size="small" class="custom-table-button-default" |
|
|
<el-button type="text" size="small" class="custom-table-button-default" |
|
|
@click="handelView(scope.row)">详情</el-button> |
|
|
@click="handelView(scope.row)">详情</el-button> |
|
|
<el-button type="text" size="small" class="custom-table-button-default" |
|
|
<el-button type="text" size="small" v-if="scope.row.appealFlag === 0" class="custom-table-button-default" |
|
|
@click="handelAdd(scope.row, 'view')">申诉</el-button> |
|
|
@click="handelAdd(scope.row, 'view')">申诉</el-button> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
@ -53,20 +68,13 @@ |
|
|
:label-width="$i18n.locale === 'en-US' ? '100px' : '82px'" ref="addForm"> |
|
|
:label-width="$i18n.locale === 'en-US' ? '100px' : '82px'" ref="addForm"> |
|
|
<el-row> |
|
|
<el-row> |
|
|
<el-form-item label="申诉原因" prop="ssyy" > |
|
|
<el-form-item label="申诉原因" prop="ssyy" > |
|
|
<el-input v-model="addForm.lawContent" type="textarea" :rows="6" maxlength="500" |
|
|
<el-input v-model="addForm.ssyy" type="textarea" :rows="6" maxlength="500" |
|
|
placeholder="请输入主要申诉原因(诉求详情不少于10个字)" style="width:90%;"></el-input> |
|
|
placeholder="请输入主要申诉原因(诉求详情不少于10个字)" style="width:90%;"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-row> |
|
|
</el-row> |
|
|
|
|
|
|
|
|
<el-row> |
|
|
<el-row> |
|
|
<el-form-item label="审核结果" prop="shjg" > |
|
|
<el-form-item label="评价结果" prop="pjjg"> |
|
|
<el-radio-group v-model="addForm.shjg"> |
|
|
|
|
|
<el-radio :label="'01'">审核通过</el-radio> |
|
|
|
|
|
<el-radio :label="'12'">审核不通过</el-radio> |
|
|
|
|
|
</el-radio-group> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-row> |
|
|
|
|
|
<el-row> |
|
|
|
|
|
<el-form-item label="评价结果"> |
|
|
|
|
|
<el-select v-model="addForm.pjjg" clearable placeholder="请选择"> |
|
|
<el-select v-model="addForm.pjjg" clearable placeholder="请选择"> |
|
|
<el-option v-for="item in evaluateList" :key="item.id" :label="item.label" |
|
|
<el-option v-for="item in evaluateList" :key="item.id" :label="item.label" |
|
|
:value="item.value"> |
|
|
:value="item.value"> |
|
@ -76,7 +84,7 @@ |
|
|
</el-row> |
|
|
</el-row> |
|
|
|
|
|
|
|
|
<el-row> |
|
|
<el-row> |
|
|
<el-form-item label="解决情况"> |
|
|
<el-form-item label="解决情况" prop="jjqk"> |
|
|
<el-select v-model="addForm.jjqk" clearable placeholder="请选择"> |
|
|
<el-select v-model="addForm.jjqk" clearable placeholder="请选择"> |
|
|
<el-option v-for="item in resultList" :key="item.id" :label="item.label" |
|
|
<el-option v-for="item in resultList" :key="item.id" :label="item.label" |
|
|
:value="item.value"> |
|
|
:value="item.value"> |
|
@ -84,13 +92,6 @@ |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-row> |
|
|
</el-row> |
|
|
<el-row> |
|
|
|
|
|
<el-form-item label="审核时间" prop="czsj"> |
|
|
|
|
|
<el-date-picker v-model="addForm.czsj" type="date" :picker-options="pickerBeginDateBefore" |
|
|
|
|
|
value-format="yyyy-MM-dd" format="yyyy-MM-dd" placeholder="选择日期时间" style="width:250px;"> |
|
|
|
|
|
</el-date-picker> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-row> |
|
|
|
|
|
|
|
|
|
|
|
</el-form> |
|
|
</el-form> |
|
|
<span slot="footer" class="dialog-footer"> |
|
|
<span slot="footer" class="dialog-footer"> |
|
@ -98,31 +99,31 @@ |
|
|
<el-button type="primary" @click="handleClickSave">确 定</el-button> |
|
|
<el-button type="primary" @click="handleClickSave">确 定</el-button> |
|
|
</span> |
|
|
</span> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
<info v-if="showInfo" ref="info"></info> |
|
|
|
|
|
</el-card> |
|
|
</el-card> |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<script> |
|
|
<script> |
|
|
import mixinViewModule from '@/mixins/view-module'; |
|
|
import mixinViewModule from '@/mixins/view-module'; |
|
|
import debounce from "_lodash@4.17.21@lodash/debounce"; |
|
|
import debounce from "_lodash@4.17.21@lodash/debounce"; |
|
|
import info from "./appeal-sqss-info.vue" |
|
|
|
|
|
export default { |
|
|
export default { |
|
|
mixins: [mixinViewModule], |
|
|
mixins: [mixinViewModule], |
|
|
name: 'AppealList', |
|
|
name: 'AppealList', |
|
|
data() { |
|
|
data() { |
|
|
return { |
|
|
return { |
|
|
dialogVisible: false, |
|
|
dialogVisible: false, |
|
|
showInfo:false, |
|
|
|
|
|
mixinViewModuleOptions: { |
|
|
mixinViewModuleOptions: { |
|
|
getDataListURL: '/events/item/getDissatisfied', |
|
|
getDataListURL: '/events/item/getDissatisfied', |
|
|
getDataListIsPage: true, |
|
|
getDataListIsPage: true, |
|
|
exportMoudle: '' |
|
|
exportMoudle: '' |
|
|
}, |
|
|
}, |
|
|
dataRule: { |
|
|
dataRule: { |
|
|
huituicontent: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], |
|
|
ssyy: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], |
|
|
|
|
|
pjjg: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], |
|
|
|
|
|
jjqk: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], |
|
|
}, |
|
|
}, |
|
|
dataForm: { |
|
|
dataForm: { |
|
|
id: '', |
|
|
id: '', |
|
|
|
|
|
serialNum:'', |
|
|
startTime: '', |
|
|
startTime: '', |
|
|
endTime: '', |
|
|
endTime: '', |
|
|
}, |
|
|
}, |
|
@ -150,37 +151,92 @@ export default { |
|
|
{ label: '满意', value: '01' }, { label: '基本满意', value: '02' }, { label: '不满意', value: '03' }, |
|
|
{ label: '满意', value: '01' }, { label: '基本满意', value: '02' }, { label: '不满意', value: '03' }, |
|
|
], |
|
|
], |
|
|
addForm: { |
|
|
addForm: { |
|
|
sqid: '', |
|
|
sqid: null, |
|
|
ssyy: '', |
|
|
ssyy: null, |
|
|
shjg: '', |
|
|
shjg: '02', |
|
|
pjjg: '', |
|
|
pjjg: null, |
|
|
files: [], |
|
|
files: [], |
|
|
czr: '', |
|
|
czr: null, |
|
|
czsj: '' |
|
|
czsj: null, |
|
|
|
|
|
itemId:null |
|
|
} |
|
|
} |
|
|
}; |
|
|
}; |
|
|
}, |
|
|
}, |
|
|
components: { |
|
|
components: { |
|
|
info |
|
|
|
|
|
}, |
|
|
}, |
|
|
watch: { |
|
|
watch: { |
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
computed:{ |
|
|
|
|
|
appealSource(){ |
|
|
|
|
|
return function(val){ |
|
|
|
|
|
let str = '' |
|
|
|
|
|
switch (val){ |
|
|
|
|
|
case '0': |
|
|
|
|
|
str = '网格员上报' |
|
|
|
|
|
break |
|
|
|
|
|
case '1': |
|
|
|
|
|
str = '居民上报' |
|
|
|
|
|
break |
|
|
|
|
|
case '2': |
|
|
|
|
|
str = '新新向党随手拍' |
|
|
|
|
|
break |
|
|
|
|
|
case '3': |
|
|
|
|
|
str = '12345热线' |
|
|
|
|
|
break |
|
|
|
|
|
} |
|
|
|
|
|
return str || '' |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
}, |
|
|
}, |
|
|
created: function () { |
|
|
created: function () { |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
|
|
|
getFormattedTime(separator = '-') { |
|
|
|
|
|
const now = new Date(); |
|
|
|
|
|
const year = now.getFullYear(); |
|
|
|
|
|
const month = String(now.getMonth() + 1).padStart(2, '0'); |
|
|
|
|
|
const day = String(now.getDate()).padStart(2, '0'); |
|
|
|
|
|
const hours = String(now.getHours()).padStart(2, '0'); |
|
|
|
|
|
const minutes = String(now.getMinutes()).padStart(2, '0'); |
|
|
|
|
|
const seconds = String(now.getSeconds()).padStart(2, '0'); |
|
|
|
|
|
|
|
|
|
|
|
return `${year}${separator}${month}${separator}${day} ${hours}:${minutes}:${seconds}`; |
|
|
|
|
|
}, |
|
|
handelAdd(item) { |
|
|
handelAdd(item) { |
|
|
console.log(item); |
|
|
this.addForm.sqid = item.sqid; |
|
|
this.dialogVisible = true |
|
|
this.addForm.itemId = item.id; |
|
|
|
|
|
this.dialogVisible = true; |
|
|
}, |
|
|
}, |
|
|
handelView(item){ |
|
|
handelView(item){ |
|
|
this.showInfo = true |
|
|
this.$parent.selectComponent = 'AppealDetailView'; |
|
|
this.$nextTick(() => { |
|
|
this.$router.push({ path: '/events-appeal-sqss', query: { id: item.id, type: 'view', infoCode: 'B' } }); |
|
|
this.$refs.info.init(item.id) |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
handleClickSave() { |
|
|
handleClickSave() { |
|
|
this.dialogVisible = false |
|
|
this.$refs['addForm'].validate(valid => { |
|
|
|
|
|
if (!valid) { |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
this.addForm.czsj = this.getFormattedTime() |
|
|
|
|
|
console.log(this.addForm); |
|
|
|
|
|
|
|
|
|
|
|
this.$http.post('/events/item/sqAppeal', this.addForm) |
|
|
|
|
|
.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.dialogVisible = false; |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
}) |
|
|
|
|
|
.catch(() => {}); |
|
|
|
|
|
}); |
|
|
}, |
|
|
}, |
|
|
btKeyUpItemContent(e) { |
|
|
btKeyUpItemContent(e) { |
|
|
e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, ''); |
|
|
e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, ''); |
|
|