|  |  |  | <template> | 
					
						
							|  |  |  |   <el-card shadow="never" | 
					
						
							|  |  |  |            class="aui-card--fill"> | 
					
						
							|  |  |  |     <div class="mod-news__news}"> | 
					
						
							|  |  |  |       <el-form :inline="true" | 
					
						
							|  |  |  |                :model="dataForm" | 
					
						
							|  |  |  |                @keyup.enter.native="getDataList()"> | 
					
						
							|  |  |  |         <el-form-item label="所属街道" | 
					
						
							|  |  |  |                       prop="deptId"> | 
					
						
							|  |  |  |           <el-select v-model="dataForm.streetId" | 
					
						
							|  |  |  |                      @change="changeStreet" | 
					
						
							|  |  |  |                      placeholder="所属街道"> | 
					
						
							|  |  |  |             <el-option v-for="item in streetList" | 
					
						
							|  |  |  |                        :key="item.id" | 
					
						
							|  |  |  |                        :label="item.name" | 
					
						
							|  |  |  |                        :value="item.id"> | 
					
						
							|  |  |  |             </el-option> | 
					
						
							|  |  |  |           </el-select> | 
					
						
							|  |  |  |         </el-form-item> | 
					
						
							|  |  |  |         <el-form-item label="所属社区"> | 
					
						
							|  |  |  |           <el-select v-model="dataForm.communityId" | 
					
						
							|  |  |  |                      @change="changeCommunity" | 
					
						
							|  |  |  |                      placeholder="所属社区"> | 
					
						
							|  |  |  |             <el-option v-for="item in communityList" | 
					
						
							|  |  |  |                        :key="item.id" | 
					
						
							|  |  |  |                        :label="item.name" | 
					
						
							|  |  |  |                        :value="item.id"> | 
					
						
							|  |  |  |             </el-option> | 
					
						
							|  |  |  |           </el-select> | 
					
						
							|  |  |  |         </el-form-item> | 
					
						
							|  |  |  |         <el-form-item label="所属网格"> | 
					
						
							|  |  |  |           <el-select v-model="dataForm.gridId" | 
					
						
							|  |  |  |                      @change="changeGrid" | 
					
						
							|  |  |  |                      placeholder="所属网格"> | 
					
						
							|  |  |  |             <el-option v-for="item in gridList" | 
					
						
							|  |  |  |                        :key="item.id" | 
					
						
							|  |  |  |                        :label="item.name" | 
					
						
							|  |  |  |                        :value="item.id"> | 
					
						
							|  |  |  |             </el-option> | 
					
						
							|  |  |  |           </el-select> | 
					
						
							|  |  |  |         </el-form-item> | 
					
						
							|  |  |  |         <br> | 
					
						
							|  |  |  |         <span class="demonstration">提交时间</span>   | 
					
						
							|  |  |  |         <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 label="类别"> | 
					
						
							|  |  |  |           <el-select v-model="dataForm.category" | 
					
						
							|  |  |  |                      placeholder="所属类别"> | 
					
						
							|  |  |  |             <el-option v-for="item in categorys" | 
					
						
							|  |  |  |                        :key="item.id" | 
					
						
							|  |  |  |                        :label="item.name" | 
					
						
							|  |  |  |                        :value="item.id"> | 
					
						
							|  |  |  |             </el-option> | 
					
						
							|  |  |  |           </el-select> | 
					
						
							|  |  |  |         </el-form-item> | 
					
						
							|  |  |  |         <el-form-item label="关键字"> | 
					
						
							|  |  |  |           <el-form-item> | 
					
						
							|  |  |  |             <el-input v-model="dataForm.keyword" | 
					
						
							|  |  |  |                       placeholder="请输入话题" | 
					
						
							|  |  |  |                       clearable></el-input> | 
					
						
							|  |  |  |           </el-form-item> | 
					
						
							|  |  |  |         </el-form-item> | 
					
						
							|  |  |  |         <el-form-item> | 
					
						
							|  |  |  |           <el-button @click="getDataList()">{{ $t('query') }}</el-button> | 
					
						
							|  |  |  |         </el-form-item> | 
					
						
							|  |  |  |         <el-form-item> | 
					
						
							|  |  |  |           <el-button v-if="$hasPermission('news:news:save')" | 
					
						
							|  |  |  |                      type="primary" | 
					
						
							|  |  |  |                      @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> | 
					
						
							|  |  |  |         </el-form-item> | 
					
						
							|  |  |  |         <el-form-item> | 
					
						
							|  |  |  |           <el-button v-if="$hasPermission('news:news:delete')" | 
					
						
							|  |  |  |                      type="danger" | 
					
						
							|  |  |  |                      @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> | 
					
						
							|  |  |  |         </el-form-item> | 
					
						
							|  |  |  |       </el-form> | 
					
						
							|  |  |  |       <el-table v-loading="dataListLoading" | 
					
						
							|  |  |  |                 :data="dataList" | 
					
						
							|  |  |  |                 border | 
					
						
							|  |  |  |                 @selection-change="dataListSelectionChangeHandle" | 
					
						
							|  |  |  |                 style="width: 100%;"> | 
					
						
							|  |  |  |         <el-table-column label="序号" | 
					
						
							|  |  |  |                          width="70px"> | 
					
						
							|  |  |  |           <template slot-scope="scope"> | 
					
						
							|  |  |  |             {{scope.$index+1}} | 
					
						
							|  |  |  |           </template> | 
					
						
							|  |  |  |         </el-table-column> | 
					
						
							|  |  |  |         <el-table-column prop="newsTitle" | 
					
						
							|  |  |  |                          label="话题名称" | 
					
						
							|  |  |  |                          header-align="center" | 
					
						
							|  |  |  |                          align="center"></el-table-column> | 
					
						
							|  |  |  |         <el-table-column prop="readingAmount" | 
					
						
							|  |  |  |                          label="阅读量" | 
					
						
							|  |  |  |                          header-align="center" | 
					
						
							|  |  |  |                          align="center"></el-table-column> | 
					
						
							|  |  |  |         <el-table-column prop="likeNumber" | 
					
						
							|  |  |  |                          label="点赞数" | 
					
						
							|  |  |  |                          header-align="center" | 
					
						
							|  |  |  |                          align="center"></el-table-column> | 
					
						
							|  |  |  |         <el-table-column prop="unLikeNumber" | 
					
						
							|  |  |  |                          label="点踩数" | 
					
						
							|  |  |  |                          header-align="center" | 
					
						
							|  |  |  |                          align="center"></el-table-column> | 
					
						
							|  |  |  |         <el-table-column prop="createdTime" | 
					
						
							|  |  |  |                          label="提交时间" | 
					
						
							|  |  |  |                          header-align="center" | 
					
						
							|  |  |  |                          align="center"></el-table-column> | 
					
						
							|  |  |  |         <el-table-column prop="creatorName" | 
					
						
							|  |  |  |                          label="提交人" | 
					
						
							|  |  |  |                          header-align="center" | 
					
						
							|  |  |  |                          align="center"></el-table-column> | 
					
						
							|  |  |  |         <el-table-column label="有效时间"> | 
					
						
							|  |  |  |           <template slot-scope="scope"> | 
					
						
							|  |  |  |             {{scope.row.newsReleaseStartTime}}<br /> 到 <br /> {{scope.row.newsReleaseEndTime}} | 
					
						
							|  |  |  |           </template> | 
					
						
							|  |  |  |         </el-table-column> | 
					
						
							|  |  |  |         <el-table-column :label="$t('handle')" | 
					
						
							|  |  |  |                          fixed="right" | 
					
						
							|  |  |  |                          header-align="center" | 
					
						
							|  |  |  |                          align="center" | 
					
						
							|  |  |  |                          width="150"> | 
					
						
							|  |  |  |           <template slot-scope="scope"> | 
					
						
							|  |  |  |             <el-button type="text" | 
					
						
							|  |  |  |                        size="small" | 
					
						
							|  |  |  |                        @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button> | 
					
						
							|  |  |  |             <el-button type="text" | 
					
						
							|  |  |  |                        size="small" | 
					
						
							|  |  |  |                        @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button> | 
					
						
							|  |  |  |             <el-button type="text" | 
					
						
							|  |  |  |                        size="small" | 
					
						
							|  |  |  |                        @click="publist(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> | 
					
						
							|  |  |  |       <!-- 弹窗, 新增 / 修改 --> | 
					
						
							|  |  |  |       <add-or-update v-if="addOrUpdateVisible" | 
					
						
							|  |  |  |                      ref="addOrUpdate" | 
					
						
							|  |  |  |                      @refreshDataList="getDataList"></add-or-update> | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  |   </el-card> | 
					
						
							|  |  |  | </template> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <script> | 
					
						
							|  |  |  | import mixinViewModule from '@/mixins/view-module' | 
					
						
							|  |  |  | import AddOrUpdate from './news-add-or-update' | 
					
						
							|  |  |  | export default { | 
					
						
							|  |  |  |   mixins: [mixinViewModule], | 
					
						
							|  |  |  |   data () { | 
					
						
							|  |  |  |     return { | 
					
						
							|  |  |  |       mixinViewModuleOptions: { | 
					
						
							|  |  |  |         getDataListURL: '/news/news/page', | 
					
						
							|  |  |  |         getDataListIsPage: true, | 
					
						
							|  |  |  |         deleteURL: '/news/news', | 
					
						
							|  |  |  |         deleteIsBatch: true | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |       dataForm: { | 
					
						
							|  |  |  |         id: '', | 
					
						
							|  |  |  |         streetId: '', | 
					
						
							|  |  |  |         communityId: '', | 
					
						
							|  |  |  |         gridId: '', | 
					
						
							|  |  |  |         startTime: '', | 
					
						
							|  |  |  |         endTime: '', | 
					
						
							|  |  |  |         keyword: '', | 
					
						
							|  |  |  |         category: '', | 
					
						
							|  |  |  |         draft: '1' | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |       time: '', | 
					
						
							|  |  |  |       streetList: [], | 
					
						
							|  |  |  |       communityList: [], | 
					
						
							|  |  |  |       gridList: [], | 
					
						
							|  |  |  |       categorys: [], | 
					
						
							|  |  |  |       id: '' | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   created () { | 
					
						
							|  |  |  |     this.getDeptInfoList('street', '1169154711480528897') | 
					
						
							|  |  |  |     this.getListCategory() | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   methods: { | 
					
						
							|  |  |  |     newsUpDownState: function (row) { | 
					
						
							|  |  |  |       return row.newsUpDownState === 0 ? '下线' : '上线' | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     publishState: function (row) { | 
					
						
							|  |  |  |       var stdt = new Date(row.newsReleaseStartTime.replace('-', '/')) | 
					
						
							|  |  |  |       var eddt = new Date(row.newsReleaseEndTime.replace('-', '/')) | 
					
						
							|  |  |  |       var nowdt = new Date() | 
					
						
							|  |  |  |       if (nowdt < stdt) { | 
					
						
							|  |  |  |         return '未发布' | 
					
						
							|  |  |  |       } else if (nowdt > eddt) { | 
					
						
							|  |  |  |         return '已过期' | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       return '发布中' | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     // 获取部门列表
 | 
					
						
							|  |  |  |     getDeptInfoList (dataReceiver, faDeptId) { | 
					
						
							|  |  |  |       this.$http.get(`/sys/dept/sublist/` + faDeptId).then(({ data: res }) => { | 
					
						
							|  |  |  |         if (res.code !== 0) { | 
					
						
							|  |  |  |           return this.$message.error(res.msg) | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         if (dataReceiver === 'street') { | 
					
						
							|  |  |  |           this.streetList = res.data | 
					
						
							|  |  |  |         } else if (dataReceiver === 'community') { | 
					
						
							|  |  |  |           this.communityList = res.data | 
					
						
							|  |  |  |         } else if (dataReceiver === 'grid') { | 
					
						
							|  |  |  |           this.gridList = res.data | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       }).catch(() => { }) | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     changeStreet (event) { | 
					
						
							|  |  |  |       console.log(111111111111) | 
					
						
							|  |  |  |       this.dataForm.streetId = event | 
					
						
							|  |  |  |       let choosenItem = this.streetList.filter(item => item.id === this.dataForm.streetId)[0] | 
					
						
							|  |  |  |       this.initDeptIdAndName(choosenItem) | 
					
						
							|  |  |  |       this.dataForm.communityId = this.dataForm.gridId = null | 
					
						
							|  |  |  |       this.communityList = this.gridList = [] | 
					
						
							|  |  |  |       this.getDeptInfoList('community', event) | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     changeCommunity (event) { | 
					
						
							|  |  |  |       this.communityId = event | 
					
						
							|  |  |  |       let choosenItem = this.communityList.filter(item => item.id === this.dataForm.communityId)[0] | 
					
						
							|  |  |  |       this.initDeptIdAndName(choosenItem) | 
					
						
							|  |  |  |       this.dataForm.gridId = null | 
					
						
							|  |  |  |       this.gridList = [] | 
					
						
							|  |  |  |       this.getDeptInfoList('grid', event) | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     changeGrid (event) { | 
					
						
							|  |  |  |       this.dataForm.gridId = event | 
					
						
							|  |  |  |       let choosenItem = this.gridList.filter(item => item.id === this.gridId)[0] | 
					
						
							|  |  |  |       this.initDeptIdAndName(choosenItem) | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     initDeptIdAndName (choosenItem) { | 
					
						
							|  |  |  |       this.dataForm.dept = choosenItem.name | 
					
						
							|  |  |  |       this.dataForm.deptId = choosenItem.id | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     setRegistTime () { | 
					
						
							|  |  |  |       console.log(this.time[0]) | 
					
						
							|  |  |  |       this.dataForm.startTime = this.time[0] | 
					
						
							|  |  |  |       this.dataForm.endTime = this.time[1] | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     getListCategory () { | 
					
						
							|  |  |  |       this.$http.get(`/news/newscategory/category/`).then(({ data: res }) => { | 
					
						
							|  |  |  |         if (res.code !== 0) { | 
					
						
							|  |  |  |           return this.$message.error(res.msg) | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         this.categorys = res.data | 
					
						
							|  |  |  |       }).catch(() => { }) | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     // 发布
 | 
					
						
							|  |  |  |     publist (row) { | 
					
						
							|  |  |  |       this.$confirm(this.$t('prompt.info', { 'handle': '发布' }), this.$t('发布'), { | 
					
						
							|  |  |  |         confirmButtonText: this.$t('confirm'), | 
					
						
							|  |  |  |         cancelButtonText: this.$t('cancel'), | 
					
						
							|  |  |  |         type: 'warning' | 
					
						
							|  |  |  |       }).then(() => { | 
					
						
							|  |  |  |         let id = row.id | 
					
						
							|  |  |  |         this.$http.post(`/news/news/draftsPublishNews/${id}`).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.getDataList() | 
					
						
							|  |  |  |         }).catch(() => { }) | 
					
						
							|  |  |  |       }).catch(() => { }) | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   components: { | 
					
						
							|  |  |  |     AddOrUpdate | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | </script> |