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