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.
		
		
		
		
		
			
		
			
				
					
					
						
							290 lines
						
					
					
						
							10 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							290 lines
						
					
					
						
							10 KiB
						
					
					
				| <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>
 | |
| 
 |