You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							332 lines
						
					
					
						
							13 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							332 lines
						
					
					
						
							13 KiB
						
					
					
				
								<template>
							 | 
						|
								    <el-card shadow="never" class="aui-card--fill">
							 | 
						|
								        <div class="mod-demo__epdcevents}">
							 | 
						|
								            <el-form
							 | 
						|
								                    :inline="true"
							 | 
						|
								                    :model="dataForm"
							 | 
						|
								                    @keyup.enter.native="getDataListSearch()"
							 | 
						|
								            >
							 | 
						|
								                <el-form-item label="所属机构">
							 | 
						|
								                    <el-cascader
							 | 
						|
								                            v-model="ids"
							 | 
						|
								                            :options="options"
							 | 
						|
								                            :props="{ checkStrictly: true }"
							 | 
						|
								                            clearable
							 | 
						|
								                            style="width:250px;"
							 | 
						|
								                    >
							 | 
						|
								                    </el-cascader>
							 | 
						|
								                </el-form-item>
							 | 
						|
								                <el-form-item label="议题编号" prop="issueCode">
							 | 
						|
								                    <el-input
							 | 
						|
								                            v-model="dataForm.issueCode"
							 | 
						|
								                            placeholder="请输入议题编号"
							 | 
						|
								                            clearable
							 | 
						|
								                            @keyup.native="btKeyUpIssueCode"
							 | 
						|
								                            style="width:250px;"
							 | 
						|
								                    ></el-input>
							 | 
						|
								                </el-form-item>
							 | 
						|
								                <el-form-item label="来源">
							 | 
						|
								                    <el-select v-model="dataForm.source" placeholder="全部" clearable style="width:250px;">
							 | 
						|
								                        <el-option
							 | 
						|
								                                v-for="item in sourceOptions"
							 | 
						|
								                                :key="item.value"
							 | 
						|
								                                :label="item.label"
							 | 
						|
								                                :value="item.value">
							 | 
						|
								                        </el-option>
							 | 
						|
								                    </el-select>
							 | 
						|
								                </el-form-item>
							 | 
						|
								                <br>
							 | 
						|
								                <el-form-item label="议题内容">
							 | 
						|
								                    <el-input
							 | 
						|
								                            v-model="dataForm.issueContent"
							 | 
						|
								                            placeholder="请输入议题内容"
							 | 
						|
								                            clearable
							 | 
						|
								                            @keyup.native="btKeyUpIssueContent"
							 | 
						|
								                            style="width:250px;"
							 | 
						|
								                    ></el-input>
							 | 
						|
								                </el-form-item>
							 | 
						|
								                <el-form-item label="提交人" label-width="70px">
							 | 
						|
								                    <el-input
							 | 
						|
								                            v-model="dataForm.nickName"
							 | 
						|
								                            placeholder="请输入提交人"
							 | 
						|
								                            clearable
							 | 
						|
								                            @keyup.native="btKeyUpNickName"
							 | 
						|
								                            style="width:250px;"
							 | 
						|
								                    ></el-input>
							 | 
						|
								                </el-form-item>
							 | 
						|
								                <br>
							 | 
						|
								                <div>
							 | 
						|
								                    <el-form-item label="提交时间" prop="startTime" label-width="70px">
							 | 
						|
								                        <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()">{{ $t('query') }}</el-button>
							 | 
						|
								                    </el-form-item>
							 | 
						|
								                  <el-form-item>
							 | 
						|
								                    <el-button
							 | 
						|
								                        type="success"
							 | 
						|
								                        @click="exportHandle()">{{ $t('export') }}</el-button>
							 | 
						|
								                  </el-form-item>
							 | 
						|
								                </div>
							 | 
						|
								            </el-form>
							 | 
						|
								            <el-table
							 | 
						|
								                    v-loading="dataListLoading"
							 | 
						|
								                    :data="dataList"
							 | 
						|
								                    border
							 | 
						|
								                    @selection-change="dataListSelectionChangeHandle"
							 | 
						|
								                    style="width: 100%;"
							 | 
						|
								            >
							 | 
						|
								                <el-table-column
							 | 
						|
								                        label="序号"
							 | 
						|
								                        type="index"
							 | 
						|
								                        show-overflow-tooltip
							 | 
						|
								                        align="center"
							 | 
						|
								                        width="50"
							 | 
						|
								                ></el-table-column>
							 | 
						|
								                <el-table-column
							 | 
						|
								                        prop="issueContent"
							 | 
						|
								                        label="议题内容"
							 | 
						|
								                        header-align="center"
							 | 
						|
								                        min-width="400"
							 | 
						|
								                        align="left"
							 | 
						|
								                        show-overflow-tooltip
							 | 
						|
								                ></el-table-column>
							 | 
						|
								                <el-table-column
							 | 
						|
								                        prop="issueCode"
							 | 
						|
								                        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 show-overflow-tooltip width="120px" prop="groupName" label="来源" header-align="center"
							 | 
						|
								                                 align="center"></el-table-column>
							 | 
						|
								                <el-table-column
							 | 
						|
								                        prop="participateNum"
							 | 
						|
								                        label="参与人数"
							 | 
						|
								                        header-align="center"
							 | 
						|
								                        align="center"
							 | 
						|
								                        width="100"
							 | 
						|
								                ></el-table-column>
							 | 
						|
								                <el-table-column
							 | 
						|
								                        prop="approveNum"
							 | 
						|
								                        label="支持人数"
							 | 
						|
								                        header-align="center"
							 | 
						|
								                        align="center"
							 | 
						|
								                        width="100"
							 | 
						|
								                ></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"
							 | 
						|
								                        align="center"
							 | 
						|
								                        width="100"
							 | 
						|
								                ></el-table-column>
							 | 
						|
								                <el-table-column
							 | 
						|
								                        prop="browseNum"
							 | 
						|
								                        label="浏览数"
							 | 
						|
								                        width="100"
							 | 
						|
								                        header-align="center"
							 | 
						|
								                        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:close:look')"
							 | 
						|
								                                type="text"
							 | 
						|
								                                size="small"
							 | 
						|
								                                @click="detailAction(scope.row.id)"
							 | 
						|
								                        >{{ $t('look') }}
							 | 
						|
								                        </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>
							 | 
						|
								        </div>
							 | 
						|
								    </el-card>
							 | 
						|
								</template>
							 | 
						|
								
							 | 
						|
								<script>
							 | 
						|
								    import mixinViewModule from '@/mixins/view-module'
							 | 
						|
								    import Detail from './issue-close-detail-view'
							 | 
						|
								
							 | 
						|
								    export default {
							 | 
						|
								        mixins: [mixinViewModule],
							 | 
						|
								        name: 'IssueCloseList',
							 | 
						|
								        data() {
							 | 
						|
								            return {
							 | 
						|
								                mixinViewModuleOptions: {
							 | 
						|
								                    getDataListURL: '/events/issue/page',
							 | 
						|
								                    getDataListIsPage: true,
							 | 
						|
								                  exportURL: '/events/issue/unexport'
							 | 
						|
								                },
							 | 
						|
								                detailVisible: false,
							 | 
						|
								                dataForm: {
							 | 
						|
								                    startTime: '',
							 | 
						|
								                    endTime: '',
							 | 
						|
								                    streetId: '',
							 | 
						|
								                    communityId: '',
							 | 
						|
								                    gridId: '',
							 | 
						|
								                    state: '2',
							 | 
						|
								                    issueCode: '',
							 | 
						|
								                    source: '',
							 | 
						|
								                    issueContent: '',
							 | 
						|
								                    nickName: ''
							 | 
						|
								                },
							 | 
						|
								                sourceOptions: [{
							 | 
						|
								                    value: '1',
							 | 
						|
								                    label: '党群议事'
							 | 
						|
								                }, {
							 | 
						|
								                    value: '2',
							 | 
						|
								                    label: '邻里党群'
							 | 
						|
								                }],
							 | 
						|
								                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
							 | 
						|
								        },
							 | 
						|
								        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: {
							 | 
						|
								            detailAction(id) {
							 | 
						|
								                this.$parent.selectComponent = 'IssueCloseDetailView'
							 | 
						|
								                this.$router.push({path: '/events-issue-close', 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(() => {
							 | 
						|
								                    })
							 | 
						|
								            },
							 | 
						|
								            btKeyUpIssueCode (e) {
							 | 
						|
								                e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, '')
							 | 
						|
								                this.dataForm.issueCode = e.target.value
							 | 
						|
								            },
							 | 
						|
								            btKeyUpIssueContent (e) {
							 | 
						|
								                e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, '')
							 | 
						|
								                this.dataForm.issueContent = e.target.value
							 | 
						|
								            },
							 | 
						|
								            btKeyUpNickName (e) {
							 | 
						|
								                e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, '')
							 | 
						|
								                this.dataForm.nickName = e.target.value
							 | 
						|
								            }
							 | 
						|
								        }
							 | 
						|
								    }
							 | 
						|
								</script>
							 | 
						|
								
							 |