2 changed files with 434 additions and 5 deletions
@ -0,0 +1,423 @@ |
|||||
|
<template> |
||||
|
<el-card shadow="never" class="aui-card--fill"> |
||||
|
<div class="mod-item__item}"> |
||||
|
|
||||
|
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataListSearch()"> |
||||
|
|
||||
|
<el-form-item label="诉求标题" prop="itemCode"label-width="100px"> |
||||
|
<el-input v-model="dataForm.itemTitle" placeholder="请输入诉求标题" clearable @keyup.native="btKeyUpItemContent" style="width:250px;"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="诉求编码" prop="itemCode"label-width="100px"> |
||||
|
<el-input v-model="dataForm.code" placeholder="请输入诉求编码" clearable @keyup.native="btKeyUpItemContent" style="width:250px;"></el-input> |
||||
|
</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-table v-loading="dataListLoading" :data="dataList" border style="width: 100%;"> |
||||
|
<el-table-column label="序号" type="index" show-overflow-tooltip align="center" |
||||
|
width="50"></el-table-column> |
||||
|
<el-table-column label="是否街道回退" header-align="center" width="100" align="center" show-overflow-tooltip> |
||||
|
<template slot-scope="scope"> |
||||
|
{{ scope.row.backItemFlag === '1' ? '是' : '否' }} |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="backItemResult" label="回退理由" header-align="center" width="180" |
||||
|
align="center"></el-table-column> |
||||
|
<el-table-column prop="orgName" label="所属机构" header-align="center" width="120" align="center" |
||||
|
show-overflow-tooltip> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="sqbt" label="诉求标题" header-align="center" min-width="100" |
||||
|
align="center"></el-table-column> |
||||
|
<el-table-column prop="dlwzmc" label="地理位置" header-align="center" width="180" |
||||
|
align="center"></el-table-column> |
||||
|
<el-table-column prop="djsj" label="登记时间" header-align="center" width="180" |
||||
|
align="center"></el-table-column> |
||||
|
<el-table-column prop="djrxm" label="登记人姓名" header-align="center" width="130" align="center" |
||||
|
show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="lxfs" label="联系方式" header-align="center" width="180" |
||||
|
align="center"></el-table-column> |
||||
|
<el-table-column prop="option" label="市里驳回区里的重办原因" header-align="center" width="180" |
||||
|
align="center"></el-table-column> |
||||
|
<el-table-column label="重办类型" header-align="center" width="100" align="center" show-overflow-tooltip> |
||||
|
<template slot-scope="scope"> |
||||
|
{{ scope.row.type === '0' ? '办理' : scope.row.type === '2' ? '退办' : scope.row.type === '4' ? '重办' : '' }} |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column label="所属专题" header-align="center" width="100" align="center" show-overflow-tooltip> |
||||
|
<template slot-scope="scope"> |
||||
|
{{ scope.row.sszt === '01' ? '民生诉求' : scope.row.sszt === '02' ? '发展诉求' : '执法诉求' }} |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-button type="text" size="small" class="custom-table-button-default" |
||||
|
@click="dialogVisible = true, selfObj = scope.row"> |
||||
|
{{ scope.row.sszt === '01' || agencyFlag == 'district' ? '分发' : '上报网格化平台' }} |
||||
|
</el-button> |
||||
|
<el-button type="text" size="small" class="custom-table-button-default" |
||||
|
@click="dialogVisibleForBoHui = true, selfObjBoHui = scope.row"> |
||||
|
{{ $store.state.user.deptId === '1175270520603930625' || $store.state.user.deptId === '0' ? '驳回' : '回退' }} |
||||
|
</el-button> |
||||
|
<!-- <el-button type="text" size="small" class="custom-table-button-default" |
||||
|
@click="dialogVisibleForHuiTui = true, selfObjBoHui = scope.row"> |
||||
|
{{ '回退' }} |
||||
|
</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> |
||||
|
|
||||
|
|
||||
|
<el-dialog :title=" '理由'" v-if="dialogVisibleForBoHui" |
||||
|
:visible.sync="dialogVisibleForBoHui" width="50%"> |
||||
|
|
||||
|
<el-form ref="postDataForm_fk" |
||||
|
label-width="120px" |
||||
|
label-position="right" |
||||
|
style="width: 620px;" |
||||
|
:model="dataForm" |
||||
|
:rules="dataRule"> |
||||
|
<el-form-item label="理由详情:" prop="content"> |
||||
|
<el-input v-model="selfObjBoHui.content" |
||||
|
type="textarea" |
||||
|
:rows="6" |
||||
|
maxlength="1000" |
||||
|
show-word-limit |
||||
|
placeholder="请输入"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<span slot="footer" class="dialog-footer"> |
||||
|
<el-button @click="dialogVisibleForBoHui = false, selfObjBoHui.content = ''">取 消</el-button> |
||||
|
<el-button type="primary" @click="handleClickForBoHui">确 定</el-button> |
||||
|
</span> |
||||
|
</el-dialog> |
||||
|
|
||||
|
|
||||
|
|
||||
|
<el-dialog :title=" '回退'" v-if="dialogVisibleForHuiTui" |
||||
|
:visible.sync="dialogVisibleForHuiTui" width="50%"> |
||||
|
|
||||
|
<el-form ref="postDataForm_fk" |
||||
|
label-width="120px" |
||||
|
label-position="right" |
||||
|
style="width: 620px;" |
||||
|
:model="dataForm" |
||||
|
:rules="dataRule"> |
||||
|
<el-form-item label="回退理由:" prop="huituicontent"> |
||||
|
<el-input v-model="selfObjBoHui.huituicontent" |
||||
|
type="textarea" |
||||
|
:rows="6" |
||||
|
maxlength="1000" |
||||
|
show-word-limit |
||||
|
placeholder="请输入"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<span slot="footer" class="dialog-footer"> |
||||
|
<el-button @click="dialogVisibleForHuiTui = false,selfObjBoHui.huituicontent = ''">取 消</el-button> |
||||
|
<el-button type="primary" @click="handleClickForHuiTui">确 定</el-button> |
||||
|
</span> |
||||
|
</el-dialog> |
||||
|
|
||||
|
|
||||
|
<el-dialog :title="selfObj.sszt === '01' ? '分发' : '上报网格化平台'" v-if="dialogVisible" |
||||
|
:visible.sync="dialogVisible" width="50%"> |
||||
|
<el-form :label-width="$i18n.locale === 'en-US' ? '100px' : '80px'"> |
||||
|
<el-form-item label="所属机构:"> |
||||
|
<div>{{ selfObj.orgName }}</div> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="诉求标题:"> |
||||
|
<div>{{ selfObj.sqbt }}</div> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="诉求内容:"> |
||||
|
<div>{{ selfObj.sjnr }}</div> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="所属专题:"> |
||||
|
{{ selfObj.sszt === '01' ? '民生诉求' : selfObj.sszt === '02' ? '发展诉求' : '执法诉求' }} |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<el-form :inline="true" :model="dataForm" :rules="dataRule" |
||||
|
:label-width="$i18n.locale === 'en-US' ? '100px' : '82px'" ref="dataForm" |
||||
|
v-if="selfObj.sszt === '01' && agencyFlag != 'district'"> |
||||
|
<el-form-item label="所属机构:" prop="ids"> |
||||
|
<el-cascader v-model="dataForm.ids" :options="options" clearable style="width:250px;" |
||||
|
@change="handelChangeCascader" :show-all-levels="false" ref="cascader" size="small"> |
||||
|
</el-cascader> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<el-form :inline="true" :model="dataForm" :rules="dataRule" |
||||
|
:label-width="$i18n.locale === 'en-US' ? '100px' : '82px'" ref="dataForm" |
||||
|
v-if="agencyFlag == 'district'"> |
||||
|
<el-form-item label="所属机构:" prop="ids"> |
||||
|
<el-select v-model="dataForm.ids" clearable> |
||||
|
<el-option v-for="item in streetList" :key="item.value" :label="item.label" |
||||
|
:value="item.value"> |
||||
|
</el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<span slot="footer" class="dialog-footer"> |
||||
|
<el-button @click="dialogVisible = false, dataForm.ids = null">取 消</el-button> |
||||
|
<el-button type="primary" @click="handleClickSave">确 定</el-button> |
||||
|
</span> |
||||
|
</el-dialog> |
||||
|
</div> |
||||
|
|
||||
|
</el-card> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import mixinViewModule from '@/mixins/view-module' |
||||
|
import debounce from 'lodash/debounce'; |
||||
|
|
||||
|
export default { |
||||
|
mixins: [mixinViewModule], |
||||
|
name: 'MayorHotLine', |
||||
|
data() { |
||||
|
return { |
||||
|
mixinViewModuleOptions: { |
||||
|
getDataListURL: '/events/item/getHotLineFromList', |
||||
|
getDataListIsPage: true, |
||||
|
}, |
||||
|
options: [], |
||||
|
dialogVisible: false, |
||||
|
dialogVisibleForBoHui: false, |
||||
|
dialogVisibleForHuiTui: false, |
||||
|
dataRule: { |
||||
|
ids: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], |
||||
|
content: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], |
||||
|
huituicontent: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], |
||||
|
}, |
||||
|
selfObj: {}, |
||||
|
selfObjBoHui: {}, |
||||
|
dataForm: { |
||||
|
ids: [], |
||||
|
content:'', |
||||
|
huituicontent:'' |
||||
|
}, |
||||
|
gridName: null, |
||||
|
streetList: [], |
||||
|
agencyFlag: null |
||||
|
} |
||||
|
}, |
||||
|
components: {}, |
||||
|
watch: { |
||||
|
}, |
||||
|
created: function () { |
||||
|
this.getOptions() |
||||
|
}, |
||||
|
methods: { |
||||
|
getDataListSearch () { |
||||
|
this.page = 1 |
||||
|
this.getDataList() |
||||
|
}, getDataList () { |
||||
|
this.dataListLoading = true |
||||
|
this.$http.get( |
||||
|
this.mixinViewModuleOptions.getDataListURL, |
||||
|
{ |
||||
|
params: { |
||||
|
cbFlag:'1', |
||||
|
order: this.order, |
||||
|
orderField: this.orderField, |
||||
|
page: this.mixinViewModuleOptions.getDataListIsPage ? this.page : null, |
||||
|
limit: this.mixinViewModuleOptions.getDataListIsPage ? this.limit : null, |
||||
|
...this.dataForm |
||||
|
} |
||||
|
} |
||||
|
).then(({ data: res }) => { |
||||
|
this.dataListLoading = false |
||||
|
if (res.code !== 0) { |
||||
|
this.dataList = [] |
||||
|
this.total = 0 |
||||
|
return this.$message.error(res.msg) |
||||
|
} |
||||
|
this.dataList = this.mixinViewModuleOptions.getDataListIsPage ? res.data.list : res.data |
||||
|
this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0 |
||||
|
}).catch(() => { |
||||
|
this.dataListLoading = false |
||||
|
}) |
||||
|
}, |
||||
|
getOptions() { |
||||
|
this.$http |
||||
|
.get(`/sys/user/deptOptions/getByLoginUser`) |
||||
|
.then((res) => { |
||||
|
if (res.data.code !== 0) { |
||||
|
return this.$message.error(res.msg) |
||||
|
} |
||||
|
this.options = res.data.data.options; |
||||
|
if (this.$store.state.user.deptId === '1175270520603930625' || this.$store.state.user.deptId === '0') { |
||||
|
this.streetList = res.data.data.options.map(item => { return { label: item.label, value: item.value } }) |
||||
|
this.agencyFlag = 'district' |
||||
|
} |
||||
|
}) |
||||
|
.catch((err) => { |
||||
|
}) |
||||
|
}, |
||||
|
handelChangeCascader() { |
||||
|
this.gridName = this.$refs['cascader'].getCheckedNodes()[0].data.label; |
||||
|
}, |
||||
|
// 表单提交 |
||||
|
handleClickSave: debounce( |
||||
|
function () { |
||||
|
if (this.selfObj.sszt === '01' || this.agencyFlag === 'district') { |
||||
|
this.$refs['dataForm'].validate(valid => { |
||||
|
if (!valid) { |
||||
|
return false; |
||||
|
} |
||||
|
let url = this.selfObj.sszt === '01' ? '/events/item/changeHotLineToMSItem' : '/events/item/changeHotlineToStreet' |
||||
|
let parm = { |
||||
|
id: this.selfObj.id |
||||
|
} |
||||
|
if (this.selfObj.sszt === '01') { |
||||
|
parm.gridId = this.dataForm.ids[this.dataForm.ids.length - 1] |
||||
|
parm.gridName = this.gridName; |
||||
|
} |
||||
|
if (this.agencyFlag === 'district') { |
||||
|
url = '/events/item/changeHotlineToStreet' |
||||
|
parm.streetId = this.dataForm.ids; |
||||
|
delete parm.gridId |
||||
|
} |
||||
|
console.log(parm, url, 'see'); |
||||
|
this.$http |
||||
|
.post(url, parm) |
||||
|
.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; |
||||
|
} |
||||
|
}); |
||||
|
this.getDataList(); |
||||
|
}) |
||||
|
.catch(() => { }); |
||||
|
}); |
||||
|
|
||||
|
} else { |
||||
|
let url = this.selfObj.sszt === '02' ? '/events/item/changeHotLineToFZItem' : '/events/item/changeHotLineToZFItem' |
||||
|
let parm = { |
||||
|
id: this.selfObj.id |
||||
|
} |
||||
|
console.log(parm, url, 'see'); |
||||
|
this.$http |
||||
|
.post(url, parm) |
||||
|
.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; |
||||
|
} |
||||
|
}); |
||||
|
this.getDataList(); |
||||
|
}) |
||||
|
.catch(() => { }); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
}, |
||||
|
1000, |
||||
|
{ leading: true, trailing: false } |
||||
|
), |
||||
|
handleClickForBoHui: debounce( |
||||
|
function () { |
||||
|
let url = '' |
||||
|
if (this.$store.state.user.deptId === '1175270520603930625' || this.$store.state.user.deptId === '0') { |
||||
|
url = '/events/itemhotline/backHotLine' |
||||
|
}else{ |
||||
|
url = '/events/itemhotline/goBackCity' |
||||
|
} |
||||
|
let parm = { |
||||
|
id:this.selfObjBoHui.id, |
||||
|
cznr: this.selfObjBoHui.content |
||||
|
} |
||||
|
console.log(parm, url, 'see'); |
||||
|
this.$http |
||||
|
.post(url, parm) |
||||
|
.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.dialogVisibleForBoHui = false; |
||||
|
} |
||||
|
}); |
||||
|
this.getDataList(); |
||||
|
}) |
||||
|
.catch(() => { }); |
||||
|
}, |
||||
|
1000, |
||||
|
{ leading: true, trailing: false } |
||||
|
), |
||||
|
handleClickForHuiTui: debounce( |
||||
|
function () { |
||||
|
let url = '/events/item/backItem' |
||||
|
let parm = { |
||||
|
id:this.selfObjBoHui.id, |
||||
|
backItemResult: this.selfObjBoHui.huituicontent |
||||
|
} |
||||
|
// console.log(parm, url, 'see'); |
||||
|
this.$http |
||||
|
.post(url, parm) |
||||
|
.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.dialogVisibleForHuiTui = false; |
||||
|
} |
||||
|
}); |
||||
|
this.getDataList(); |
||||
|
}) |
||||
|
.catch(() => { }); |
||||
|
}, |
||||
|
1000, |
||||
|
{ leading: true, trailing: false } |
||||
|
) |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
<style lang="scss" scoped> |
||||
|
/deep/ .el-form { |
||||
|
padding: 0 10px; |
||||
|
box-sizing: border-box |
||||
|
} |
||||
|
</style> |
Loading…
Reference in new issue