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