|
|
@ -4,13 +4,31 @@ |
|
|
|
<div class="mod-news__news}"> |
|
|
|
<el-form :inline="true" |
|
|
|
:model="dataForm" |
|
|
|
@keyup.enter.native="getDataList()"> |
|
|
|
@keyup.enter.native="getDataListSearch()"> |
|
|
|
<el-form-item label="所属机构"> |
|
|
|
<el-cascader v-model="deptIdList" |
|
|
|
:options="options" |
|
|
|
:props="{ checkStrictly: true }" |
|
|
|
clearable></el-cascader> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="类别"> |
|
|
|
<el-select v-model="dataForm.category" |
|
|
|
clearable |
|
|
|
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" @keyup.native="btKeyUpkeyword" |
|
|
|
placeholder="请输入标题" |
|
|
|
clearable></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<!--<el-form-item label="所属街道" |
|
|
|
prop="deptId"> |
|
|
|
<el-select v-model="dataForm.streetId" |
|
|
@ -49,45 +67,44 @@ |
|
|
|
</el-select> |
|
|
|
</el-form-item>--> |
|
|
|
<br> |
|
|
|
<span class="demonstration">提交时间</span> |
|
|
|
<el-date-picker @change='setRegistTime' |
|
|
|
v-model="time" |
|
|
|
<el-form-item label="提交时间" |
|
|
|
prop="startTime"> |
|
|
|
<el-date-picker v-model="dataForm.startTime" |
|
|
|
type="date" |
|
|
|
:picker-options="pickerBeginDateBefore" |
|
|
|
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" |
|
|
|
clearable |
|
|
|
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> |
|
|
|
format="yyyy-MM-dd" |
|
|
|
placeholder="选择日期时间" |
|
|
|
style="width:200px;" @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:200px;" @change="changeTime"> |
|
|
|
</el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item> |
|
|
|
<el-button @click="getDataList()">{{ $t('query') }}</el-button> |
|
|
|
<el-button type="success" @click="getDataListSearch()">{{ $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> |
|
|
|
@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> |
|
|
|
@click="deleteHandle()">{{ $t('deleteBatch') }} |
|
|
|
</el-button> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<el-table v-loading="dataListLoading" |
|
|
@ -96,7 +113,8 @@ |
|
|
|
@selection-change="dataListSelectionChangeHandle" |
|
|
|
style="width: 100%;"> |
|
|
|
<el-table-column label="序号" |
|
|
|
width="50px" align="center"> |
|
|
|
width="50px" |
|
|
|
align="center"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{scope.$index+1}} |
|
|
|
</template> |
|
|
@ -105,41 +123,43 @@ |
|
|
|
label="标题名称" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
min-width="400px" |
|
|
|
min-width="250" |
|
|
|
show-overflow-tooltip></el-table-column> |
|
|
|
<el-table-column prop="readingAmount" |
|
|
|
label="阅读量" |
|
|
|
header-align="center" |
|
|
|
width="80px" |
|
|
|
align="center"></el-table-column> |
|
|
|
align="center" |
|
|
|
width="100"></el-table-column> |
|
|
|
<el-table-column prop="likeNumber" |
|
|
|
label="支持数" |
|
|
|
width="100" |
|
|
|
header-align="center" |
|
|
|
width="80px" |
|
|
|
align="center"></el-table-column> |
|
|
|
<el-table-column prop="unLikeNumber" |
|
|
|
label="不支持数" |
|
|
|
width="80px" |
|
|
|
width="100" |
|
|
|
header-align="center" |
|
|
|
align="center"></el-table-column> |
|
|
|
<el-table-column prop="createdTime" |
|
|
|
label="提交时间" |
|
|
|
header-align="center" |
|
|
|
width="180px" |
|
|
|
width="180" |
|
|
|
align="center"></el-table-column> |
|
|
|
<el-table-column prop="creatorName" |
|
|
|
label="提交人" |
|
|
|
width="100px" |
|
|
|
show-overflow-tooltip |
|
|
|
min-width="200" |
|
|
|
header-align="center" |
|
|
|
align="left"></el-table-column> |
|
|
|
<el-table-column label="有效时间" width="320px" header-align="center" align="left"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
align="center"></el-table-column> |
|
|
|
<el-table-column label="有效时间" width="220" header-align="center" align="center" :formatter="showFlagFormat"> |
|
|
|
<!-- <template slot-scope="scope"> |
|
|
|
{{scope.row.newsReleaseStartTime}} 到 {{scope.row.newsReleaseEndTime}} |
|
|
|
</template> |
|
|
|
</template> --> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="发布状态" |
|
|
|
:formatter="publishState" |
|
|
|
header-align="center" |
|
|
|
width="120" |
|
|
|
align="center"> |
|
|
|
</el-table-column> |
|
|
|
<!-- <el-table-column prop="newsUpDownState" label="新闻上下线状态" :formatter="newsUpDownState" header-align="center" align="center"></el-table-column> --> |
|
|
@ -147,24 +167,29 @@ |
|
|
|
fixed="right" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
width="200"> |
|
|
|
width="150"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button type="text" |
|
|
|
size="small" |
|
|
|
@click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button> |
|
|
|
@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 v-if="scope.row.newsUpDownState === '0' && new Date(scope.row.newsReleaseStartTime.replace('-', '/')) < new Date() |
|
|
|
@click="deleteHandle(scope.row.id)">{{ $t('delete') }} |
|
|
|
</el-button> |
|
|
|
<el-button v-if="$hasPermission('news:show:down') && scope.row.newsUpDownState === '0' && new Date(scope.row.newsReleaseStartTime.replace('-', '/')) < new Date() |
|
|
|
&& new Date(scope.row.newsReleaseEndTime.replace('-', '/')) > new Date()" |
|
|
|
|
|
|
|
type="text" |
|
|
|
size="small" |
|
|
|
@click="modifyOnLine(scope.row)">下线</el-button> |
|
|
|
<el-button v-if="scope.row.bannerFlag === '0' && scope.row.newsUpDownState === '0' && new Date(scope.row.newsReleaseStartTime.replace('-', '/')) < new Date() |
|
|
|
@click="modifyOnLine(scope.row)">下线 |
|
|
|
</el-button> |
|
|
|
<el-button v-if="$hasPermission('news:banner:up') && scope.row.bannerFlag === '0' && scope.row.newsUpDownState === '0' && new Date(scope.row.newsReleaseStartTime.replace('-', '/')) < new Date() |
|
|
|
&& new Date(scope.row.newsReleaseEndTime.replace('-', '/')) > new Date() " |
|
|
|
type="text" |
|
|
|
size="small" |
|
|
|
@click="newsToBanner(scope.row)">上banner</el-button> |
|
|
|
@click="newsToBanner(scope.row)">上banner |
|
|
|
</el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
@ -186,6 +211,7 @@ |
|
|
|
<script> |
|
|
|
import mixinViewModule from '@/mixins/view-module' |
|
|
|
import AddOrUpdate from './news-add-or-update' |
|
|
|
|
|
|
|
export default { |
|
|
|
mixins: [mixinViewModule], |
|
|
|
data() { |
|
|
@ -216,9 +242,25 @@ export default { |
|
|
|
onLine: { |
|
|
|
id: '', |
|
|
|
onLineState: '' |
|
|
|
}, |
|
|
|
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() |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
} |
|
|
|
}, |
|
|
|
created() { |
|
|
|
this.$http |
|
|
|
.get(`/sys/user/deptOptions/getByLoginUser`) |
|
|
@ -228,11 +270,23 @@ export default { |
|
|
|
} |
|
|
|
this.options = res.data.options |
|
|
|
}) |
|
|
|
.catch(() => { }) |
|
|
|
.catch(() => { |
|
|
|
}) |
|
|
|
this.getDeptInfoList('street', localStorage.getItem('street') === null ? '1169154711480528897' : localStorage.getItem('street')) |
|
|
|
this.getListCategory() |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
showFlagFormat (row, column) { |
|
|
|
var newsReleaseStartTime = row.newsReleaseStartTime |
|
|
|
var newsReleaseEndTime = row.newsReleaseEndTime |
|
|
|
if (row.newsReleaseStartTime.length > 10 && row.newsReleaseStartTime.indexOf(' ') >= 0) { |
|
|
|
newsReleaseStartTime = row.newsReleaseStartTime.substr(0,row.newsReleaseStartTime.indexOf(' ')) |
|
|
|
} |
|
|
|
if (row.newsReleaseEndTime.length > 10 && row.newsReleaseEndTime.indexOf(' ') >= 0) { |
|
|
|
newsReleaseEndTime = row.newsReleaseEndTime.substr(0,row.newsReleaseEndTime.indexOf(' ')) |
|
|
|
} |
|
|
|
return newsReleaseStartTime + ' 到 ' + newsReleaseEndTime |
|
|
|
}, |
|
|
|
newsUpDownState: function (row) { |
|
|
|
return row.newsUpDownState === '1' ? '下线' : '上线' |
|
|
|
}, |
|
|
@ -267,7 +321,8 @@ export default { |
|
|
|
} else if (dataReceiver === 'grid') { |
|
|
|
this.gridList = res.data |
|
|
|
} |
|
|
|
}).catch(() => { }) |
|
|
|
}).catch(() => { |
|
|
|
}) |
|
|
|
}, |
|
|
|
changeStreet(event) { |
|
|
|
if (this.dataForm.streetId === '') { |
|
|
@ -317,7 +372,8 @@ export default { |
|
|
|
return this.$message.error(res.msg) |
|
|
|
} |
|
|
|
this.categorys = res.data |
|
|
|
}).catch(() => { }) |
|
|
|
}).catch(() => { |
|
|
|
}) |
|
|
|
}, |
|
|
|
modifyOnLine(row) { |
|
|
|
this.$confirm(this.$t('prompt.info', {'handle': '下线'}), this.$t('下线'), { |
|
|
@ -340,8 +396,10 @@ export default { |
|
|
|
} |
|
|
|
}) |
|
|
|
this.getDataList() |
|
|
|
}).catch(() => { }) |
|
|
|
}).catch(() => { }) |
|
|
|
}).catch(() => { |
|
|
|
}) |
|
|
|
}).catch(() => { |
|
|
|
}) |
|
|
|
}, |
|
|
|
newsToBanner(row) { |
|
|
|
this.$confirm(this.$t('prompt.info', {'handle': '上banner'}), this.$t('上banner'), { |
|
|
@ -361,8 +419,10 @@ export default { |
|
|
|
} |
|
|
|
}) |
|
|
|
this.getDataList() |
|
|
|
}).catch(() => { }) |
|
|
|
}).catch(() => { }) |
|
|
|
}).catch(() => { |
|
|
|
}) |
|
|
|
}).catch(() => { |
|
|
|
}) |
|
|
|
}, |
|
|
|
// 获取数据列表 |
|
|
|
getDataList() { |
|
|
@ -394,7 +454,12 @@ export default { |
|
|
|
}).catch(() => { |
|
|
|
this.dataListLoading = false |
|
|
|
}) |
|
|
|
} |
|
|
|
}, |
|
|
|
//特殊字符处理 |
|
|
|
btKeyUpkeyword(e) { |
|
|
|
e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, '') |
|
|
|
this.dataForm.keyword = e.target.value |
|
|
|
}, |
|
|
|
}, |
|
|
|
components: { |
|
|
|
AddOrUpdate |
|
|
|