6 changed files with 2212 additions and 9 deletions
File diff suppressed because it is too large
@ -0,0 +1,249 @@ |
|||||
|
<template> |
||||
|
<el-dialog :visible.sync="visible" :title="$t('deal')" :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' ? '180px' : '140px'"> |
||||
|
<el-form-item label="发布人:" prop="nickName"> |
||||
|
<div>{{dataForm.nickName}}</div> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="发布时间:" prop="distributeTime"> |
||||
|
<div>{{dataForm.distributeTime}}</div> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="议题内容:" prop="eventContent"> |
||||
|
<div>{{dataForm.itemContent}}</div> |
||||
|
<span v-for="(imgUrl, index) in dataForm.images" :key="index" style="margin: 5px"> |
||||
|
<el-popover placement="bottom" title="" trigger="click"> |
||||
|
<img :src="imgUrl" style='width: 300px;height: 300px;'> |
||||
|
<img slot="reference" :src="imgUrl" :alt="imgUrl" style="max-height: 100px;max-width: 100px"> |
||||
|
</el-popover> |
||||
|
</span> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="地址:" prop="issueAddress"> |
||||
|
<div>{{dataForm.issueAddress}}</div> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="处理进度:" prop="jobFeedback"> |
||||
|
<el-timeline :reverse="false"> |
||||
|
<el-timeline-item v-for="(handleProgressResultDTO, index) in dataForm.handleProgressResultDTOS" :key="index" :timestamp="handleProgressResultDTO.createdTime" placement="top"> |
||||
|
<el-card> |
||||
|
<div>处理部门:{{handleProgressResultDTO.handlerDept}}</div> |
||||
|
<div>{{handleProgressResultDTO.progressName}}{{handleProgressResultDTO.createdTime}}</div> |
||||
|
<div>处理意见:{{handleProgressResultDTO.advice}}</div> |
||||
|
</el-card> |
||||
|
</el-timeline-item> |
||||
|
</el-timeline> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="回复居民意见:" prop="handleAdvice"> |
||||
|
<el-input v-model="postDataForm.handleAdvice" type="textarea" placeholder="请您选择居民诉求的处理情况及答复意见,向居民公开展示"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="项目处理意见:" prop="outHandleAdvice"> |
||||
|
<el-input v-model="postDataForm.outHandleAdvice" type="textarea" placeholder="请您填写项目的实际办理情况(自己处理、吹哨报到、内部协调),便于相关部门了解项目的实际情况"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="处理:" prop="handleCategory"> |
||||
|
<el-select v-model="postDataForm.handleCategory" placeholder="请选择"> |
||||
|
<el-option |
||||
|
v-for="handleResultDTO in dataForm.handleResultDTOS" |
||||
|
:key="handleResultDTO.processResult" |
||||
|
:label="handleResultDTO.processName" |
||||
|
:value="handleResultDTO.processResult"> |
||||
|
</el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="流转对象:" prop="deptResultDTOS" v-if="deptResultDTOSVisible"> |
||||
|
<el-checkbox-group v-model="postDataForm.deptResultDTOS"> |
||||
|
<el-checkbox v-for="deptResultDTO in dataForm.deptResultDTOS" :label="deptResultDTO" :key="deptResultDTO.deptName">{{deptResultDTO.deptName}}</el-checkbox> |
||||
|
</el-checkbox-group> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="满意度评价:" prop="evaluateDeptDTOS" v-if="evaluateDeptDTOSVisible"> |
||||
|
<div v-for="(evaluateDeptDTO, index) in dataForm.evaluateDeptDTOS" :key="index"> |
||||
|
<label>{{evaluateDeptDTO.deptName}}</label> |
||||
|
<el-radio-group v-model="evaluateDeptDTO.evaluationLevel"> |
||||
|
<el-radio :label="2">非常满意</el-radio> |
||||
|
<el-radio :label="1">基本满意</el-radio> |
||||
|
<el-radio :label="0">不满意</el-radio> |
||||
|
</el-radio-group> |
||||
|
</div> |
||||
|
</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: '', |
||||
|
nickName: '', |
||||
|
distributeTime: '', |
||||
|
itemContent: '', |
||||
|
images: [], |
||||
|
issueAddress: '', |
||||
|
handleProgressResultDTOS: [], |
||||
|
handleResultDTOS: [], |
||||
|
deptResultDTOS: [], |
||||
|
evaluateDeptDTOS: [], |
||||
|
handleAdvice: '', |
||||
|
outHandleAdvice: '', |
||||
|
handleCategory: '' |
||||
|
}, |
||||
|
postDataForm: { |
||||
|
id: '', |
||||
|
handleAdvice: '', |
||||
|
outHandleAdvice: '', |
||||
|
handleCategory: '', |
||||
|
deptResultDTOS: [], |
||||
|
evaluateDeptDTOS: [] |
||||
|
}, |
||||
|
options: [{ |
||||
|
value: '2', |
||||
|
label: '非常满意' |
||||
|
}, { |
||||
|
value: '1', |
||||
|
label: '基本满意' |
||||
|
}, { |
||||
|
value: '0', |
||||
|
label: '不满意' |
||||
|
}], |
||||
|
deptResultDTOSVisible: false, |
||||
|
evaluateDeptDTOSVisible: false |
||||
|
} |
||||
|
}, |
||||
|
computed: { |
||||
|
dataRule () { |
||||
|
return { |
||||
|
handleAdvice: [ |
||||
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
||||
|
], |
||||
|
outHandleAdvice: [ |
||||
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
||||
|
], |
||||
|
handleCategory: [ |
||||
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
||||
|
], |
||||
|
deptResultDTOS: [ |
||||
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
||||
|
], |
||||
|
evaluateDeptDTOS: [ |
||||
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
||||
|
] |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
watch: { |
||||
|
'postDataForm.handleAdvice': function (val) { |
||||
|
this.dataForm.handleAdvice = val |
||||
|
}, |
||||
|
'postDataForm.outHandleAdvice': function (val) { |
||||
|
this.dataForm.outHandleAdvice = val |
||||
|
}, |
||||
|
'postDataForm.handleCategory': function (val) { |
||||
|
if (val === 1) { |
||||
|
this.deptResultDTOSVisible = true |
||||
|
this.evaluateDeptDTOSVisible = false |
||||
|
for (let index = 0; index < this.dataForm.deptResultDTOS.length; index++) { |
||||
|
const deptResultDTO = this.dataForm.deptResultDTOS[index] |
||||
|
if (deptResultDTO.selected === true) { |
||||
|
this.postDataForm.deptResultDTOS.push(deptResultDTO) |
||||
|
} |
||||
|
} |
||||
|
} else if (val === 10) { |
||||
|
if (this.dataForm.evaluateDeptDTOS.length === 0) { |
||||
|
return |
||||
|
} |
||||
|
this.evaluateDeptDTOSVisible = true |
||||
|
this.deptResultDTOSVisible = false |
||||
|
} else { |
||||
|
this.evaluateDeptDTOSVisible = false |
||||
|
this.deptResultDTOSVisible = false |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
init () { |
||||
|
this.visible = true |
||||
|
this.$nextTick(() => { |
||||
|
this.$refs['dataForm'].resetFields() |
||||
|
if (this.dataForm.id) { |
||||
|
this.postDataForm.handleAdvice = '' |
||||
|
this.postDataForm.outHandleAdvice = '' |
||||
|
this.postDataForm.handleCategory = '' |
||||
|
this.postDataForm.deptResultDTOS = [] |
||||
|
this.postDataForm.evaluateDeptDTOS = [] |
||||
|
this.getInfo() |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
// 获取信息 |
||||
|
getInfo () { |
||||
|
this.$http.get(`/events/item/${this.dataForm.id}`).then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg) |
||||
|
} |
||||
|
this.dataForm = { |
||||
|
...this.dataForm, |
||||
|
...res.data |
||||
|
} |
||||
|
for (let index = 0; index < res.data.handleResultDTOS.length; index++) { |
||||
|
const handleResultDTO = res.data.handleResultDTOS[index] |
||||
|
if (handleResultDTO.select === true) { |
||||
|
this.dataForm.handleCategory = handleResultDTO.processResult |
||||
|
} |
||||
|
} |
||||
|
}).catch(() => {}) |
||||
|
}, |
||||
|
// 表单提交 |
||||
|
dataFormSubmitHandle: debounce(function () { |
||||
|
this.postDataForm.id = this.dataForm.id |
||||
|
if (this.postDataForm.handleAdvice === '') { |
||||
|
return this.$message.error('内部处理意见不能为空') |
||||
|
} |
||||
|
if (this.postDataForm.handleAdvice.length > 500) { |
||||
|
return this.$message.error('内部处理意见不能超过500字') |
||||
|
} |
||||
|
if (this.postDataForm.outHandleAdvice === '') { |
||||
|
return this.$message.error('外部处理意见不能为空') |
||||
|
} |
||||
|
if (this.postDataForm.outHandleAdvice > 500) { |
||||
|
return this.$message.error('外部处理意见不能超过500字') |
||||
|
} |
||||
|
if (this.postDataForm.handleCategory === '') { |
||||
|
return this.$message.error('请选择处理选项') |
||||
|
} |
||||
|
if (this.deptResultDTOSVisible) { |
||||
|
if (this.postDataForm.deptResultDTOS === undefined || this.postDataForm.deptResultDTOS.length <= 0) { |
||||
|
return this.$message.error('请选择流转对象') |
||||
|
} |
||||
|
} else { |
||||
|
this.postDataForm.deptResultDTOS = [] |
||||
|
} |
||||
|
if (this.evaluateDeptDTOSVisible) { |
||||
|
this.postDataForm.evaluateDeptDTOS = this.dataForm.evaluateDeptDTOS |
||||
|
if (this.postDataForm.evaluateDeptDTOS.length !== this.dataForm.evaluateDeptDTOS.length) { |
||||
|
return this.$message.error('请完善满意度调查') |
||||
|
} |
||||
|
} else { |
||||
|
this.postDataForm.evaluateDeptDTOS = [] |
||||
|
} |
||||
|
this.$http['post']( |
||||
|
'/events/item/itemHandleSubmit', this.postDataForm).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> |
@ -0,0 +1,127 @@ |
|||||
|
<template> |
||||
|
<el-dialog :visible.sync="visible" :title="'操作'" :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="state" label-width="80px"> |
||||
|
<el-select v-model="dataForm.state" placeholder="请选择" clearable> |
||||
|
<el-option label="延期" value="0"> </el-option> |
||||
|
<el-option label="熔断" value="5"> </el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<br> |
||||
|
<el-row> |
||||
|
<el-form-item prop="newsReleaseStartTime" |
||||
|
v-if="dataForm.state=='0'" |
||||
|
label="延期时间"> |
||||
|
<el-date-picker @change='setRegistTime' |
||||
|
v-model="time" |
||||
|
value-format="yyyy-MM-dd" |
||||
|
type="daterange" |
||||
|
range-separator="至" |
||||
|
start-placeholder="开始日期" |
||||
|
end-placeholder="结束日期"> |
||||
|
</el-date-picker> |
||||
|
</el-form-item> |
||||
|
</el-row> |
||||
|
<br> |
||||
|
<el-form-item label="申请理由" prop="reason"> |
||||
|
<el-input |
||||
|
type="textarea" |
||||
|
:rows="3" |
||||
|
v-model="dataForm.reason" |
||||
|
maxlength="2000" |
||||
|
style="width:calc(100% - 110px)"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<template slot="footer"> |
||||
|
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> |
||||
|
<el-button type="primary" :disabled="isAble" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import debounce from 'lodash/debounce' |
||||
|
export default { |
||||
|
data () { |
||||
|
return { |
||||
|
visible: false, |
||||
|
dataForm: { |
||||
|
itemId: '', |
||||
|
state: '', |
||||
|
reason: '', |
||||
|
delayStartTime: '', |
||||
|
delayEndTime: '' |
||||
|
}, |
||||
|
time: [], |
||||
|
isAble: false, |
||||
|
pickerBeginDateBefore: { |
||||
|
disabledDate: (time) => { |
||||
|
let beginDateVal = this.dataForm.delayEndTime |
||||
|
if (beginDateVal) { |
||||
|
return time.getTime() > new Date(beginDateVal + ' 00:00:00').getTime() |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
pickerBeginDateAfter: { |
||||
|
disabledDate: (time) => { |
||||
|
let EndDateVal = this.dataForm.delayStartTime |
||||
|
if (EndDateVal) { |
||||
|
return time.getTime() < new Date(EndDateVal + ' 00:00:00').getTime() |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
computed: { |
||||
|
dataRule () { |
||||
|
return { |
||||
|
state: [ |
||||
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
||||
|
], |
||||
|
reason: [ |
||||
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
||||
|
] |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
setRegistTime () { |
||||
|
this.dataForm.delayStartTime = this.time[0] |
||||
|
this.dataForm.delayEndTime = this.time[1] |
||||
|
}, |
||||
|
init () { |
||||
|
this.visible = true |
||||
|
this.isAble = false |
||||
|
this.time = [] |
||||
|
this.$nextTick(() => { |
||||
|
this.$refs['dataForm'].resetFields() |
||||
|
}) |
||||
|
}, |
||||
|
// 表单提交 |
||||
|
dataFormSubmitHandle: debounce(function () { |
||||
|
this.$refs['dataForm'].validate((valid) => { |
||||
|
if (!valid) { |
||||
|
return false |
||||
|
} |
||||
|
this.isAble = true |
||||
|
this.$http['post']('/events/itemfusingdelay/submitApply', this.dataForm).then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
this.isAble = false |
||||
|
return this.$message.error(res.msg) |
||||
|
} |
||||
|
this.$message({ |
||||
|
message: this.$t('prompt.success'), |
||||
|
type: 'success', |
||||
|
duration: 500, |
||||
|
onClose: () => { |
||||
|
this.$emit('connectResponse') |
||||
|
this.visible = false |
||||
|
this.$emit('refreshDataList') |
||||
|
} |
||||
|
}) |
||||
|
}).catch(() => {}) |
||||
|
}) |
||||
|
}, 1000, { 'leading': true, 'trailing': false }) |
||||
|
} |
||||
|
} |
||||
|
</script> |
@ -0,0 +1,372 @@ |
|||||
|
<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="所属机构" label-width="100px"> |
||||
|
<el-cascader |
||||
|
v-model="ids" |
||||
|
:options="options" |
||||
|
:props="{ checkStrictly: true }" |
||||
|
clearable |
||||
|
style="width:250px;" |
||||
|
> |
||||
|
</el-cascader> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="项目编号" prop="itemCode" label-width="100px"> |
||||
|
<el-input |
||||
|
v-model="dataForm.itemCode" |
||||
|
placeholder="请输入项目编号" |
||||
|
clearable |
||||
|
@keyup.native="btKeyUpItemCode" |
||||
|
style="width:250px;" |
||||
|
></el-input> |
||||
|
</el-form-item> |
||||
|
<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()" class="custom-button-default">{{ $t('query') }}</el-button> |
||||
|
</el-form-item> |
||||
|
<el-form-item> |
||||
|
<el-button type="success" |
||||
|
@click="exportHandle()" class="custom-button-modify">{{ $t('export') }}</el-button> |
||||
|
</el-form-item> |
||||
|
</div> |
||||
|
</el-form> |
||||
|
<el-table |
||||
|
v-loading="dataListLoading" |
||||
|
:data="dataList" |
||||
|
border |
||||
|
@selection-change="dataListSelectionChangeHandle" |
||||
|
style="width: 100%;" |
||||
|
:row-class-name="tableRowClassName" |
||||
|
> |
||||
|
<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" |
||||
|
class="custom-table-button-default" |
||||
|
@click="dealAction(scope.row.id)">{{ $t('deal') }} |
||||
|
</el-button> |
||||
|
<!--<el-button type="text" size="small" @click="openHandle(scope.row.id)">{{ '操作' }}</el-button>--> |
||||
|
<!-- 9-8现场屏蔽相关 --> |
||||
|
<!-- <el-button :disabled="scope.row.isDelay === '1'" type="text" size="small" @click="openDialogHandle(scope.row.id)" class="custom-table-button-default">{{ '延期' }}</el-button> |
||||
|
<el-button :disabled="scope.row.isDelay !== '1'" type="text" size="small" @click="openLogHandle(scope.row.id)" class="custom-table-button-default">{{ '延期记录' }}</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> |
||||
|
<item-deal-handle v-if="handleVisible" ref="itemDealHandle" @refreshDataList="getDataList"></item-deal-handle> |
||||
|
<item-delay-dialog v-if="handleDialogVisible" ref="itemDelayDialog" @refreshDataList="getDataList"></item-delay-dialog> |
||||
|
<item-delay-log-dialog v-if="handleLogDialogVisible" ref="itemDelayLogDialog" @refreshDataList="getDataList"></item-delay-log-dialog> |
||||
|
</div> |
||||
|
</el-card> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import mixinViewModule from '@/mixins/view-module' |
||||
|
import Detail from './item-deal-detail' |
||||
|
import ItemDealHandle from './item-deal-handle' |
||||
|
import ItemDelayDialog from './item-delay-dialog' |
||||
|
import ItemDelayLogDialog from './item-delay-log-dialog' |
||||
|
export default { |
||||
|
mixins: [mixinViewModule], |
||||
|
name: 'ItemDealList', |
||||
|
data () { |
||||
|
return { |
||||
|
mixinViewModuleOptions: { |
||||
|
getDataListURL: '/events/item/rejectPage', |
||||
|
getDataListIsPage: true, |
||||
|
exportURL: '/events/item/rejectUnexport' |
||||
|
}, |
||||
|
detailVisible: false, |
||||
|
dataForm: { |
||||
|
id: '', |
||||
|
itemState: '0', |
||||
|
startTime: '', |
||||
|
endTime: '', |
||||
|
streetId: '', |
||||
|
communityId: '', |
||||
|
gridId: '', |
||||
|
itemCode: '', |
||||
|
itemContent: '', |
||||
|
nickName: '', |
||||
|
mobile: '' |
||||
|
|
||||
|
}, |
||||
|
handleVisible: false, |
||||
|
handleDialogVisible: false, |
||||
|
handleLogDialogVisible: false, |
||||
|
ids: [], |
||||
|
options: [], |
||||
|
pickerBeginDateBefore: { |
||||
|
disabledDate: (time) => { |
||||
|
let beginDateVal = this.dataForm.endTime |
||||
|
if (beginDateVal) { |
||||
|
return time.getTime() > new Date(beginDateVal + ' 00:00:00').getTime() |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
pickerBeginDateAfter: { |
||||
|
disabledDate: (time) => { |
||||
|
let EndDateVal = this.dataForm.startTime |
||||
|
if (EndDateVal) { |
||||
|
return time.getTime() < new Date(EndDateVal + ' 00:00:00').getTime() |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
components: { |
||||
|
Detail, |
||||
|
ItemDealHandle, |
||||
|
ItemDelayDialog, |
||||
|
ItemDelayLogDialog |
||||
|
}, |
||||
|
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: { |
||||
|
tableRowClassName ({ row, index }) { |
||||
|
if (row.isRemind === '1') { |
||||
|
return 'success-row' |
||||
|
} |
||||
|
return '' |
||||
|
}, |
||||
|
dealAction (id) { |
||||
|
this.$parent.selectComponent = 'ItemDealDetailView' |
||||
|
this.$router.push({ path: '/events-item-reject-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 |
||||
|
}, |
||||
|
// openHandle (id) { |
||||
|
// this.handleVisible = true |
||||
|
// this.$nextTick(() => { |
||||
|
// this.$refs.itemDealHandle.dataForm.id = id |
||||
|
// this.$refs.itemDealHandle.init() |
||||
|
// }) |
||||
|
// }, |
||||
|
openDialogHandle (id) { |
||||
|
this.handleDialogVisible = true |
||||
|
this.$nextTick(() => { |
||||
|
this.$refs.itemDelayDialog.dataForm.itemId = id |
||||
|
this.$refs.itemDelayDialog.init() |
||||
|
}) |
||||
|
}, |
||||
|
openLogHandle (id) { |
||||
|
this.handleLogDialogVisible = true |
||||
|
this.$nextTick(() => { |
||||
|
this.$refs.itemDelayLogDialog.dataForm.itemId = id |
||||
|
this.$refs.itemDelayLogDialog.init() |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
<style> |
||||
|
.el-table .success-row { |
||||
|
background: oldlace; |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,27 @@ |
|||||
|
<template> |
||||
|
<keep-alive include="ItemDealList"> |
||||
|
<component :is="selectComponent"></component> |
||||
|
</keep-alive> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import ItemDeal from './item-reject-deal-list' |
||||
|
import ItemDealDetailView from './item-reject-deal-detail-view' |
||||
|
import ItemDealHandle from './item-deal-handle' |
||||
|
export default { |
||||
|
data () { |
||||
|
return { |
||||
|
selectComponent: ItemDeal |
||||
|
} |
||||
|
}, |
||||
|
components: { |
||||
|
ItemDeal, |
||||
|
ItemDealDetailView, |
||||
|
ItemDealHandle |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
|
||||
|
</style> |
Loading…
Reference in new issue