Browse Source

新闻与类别页面调整

master
yujintao 6 years ago
parent
commit
a3edffbd5f
  1. 243
      src/views/modules/news/news-publish.vue
  2. 51
      src/views/modules/news/newscategory-add-or-update.vue

243
src/views/modules/news/news-publish.vue

@ -5,111 +5,126 @@
<el-form :inline="true"
:model="dataForm"
:rules="dataRule"
ref="dataForm">
<el-form-item label="所属街道"
prop="streetId">
<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>
<el-form-item label="类别"
prop="newsCateroryId">
<el-select v-model="dataForm.newsCateroryId"
@change="changeCaterory"
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="新闻标题"
prop="newsTitle">
<el-form-item>
ref="dataForm"
:label-width="$i18n.locale === 'en-US' ? '120px' : '80px'">
<el-row>
<el-form-item label="所属街道"
prop="streetId">
<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>
</el-row>
<el-row>
<el-form-item label="类别"
prop="newsCateroryId">
<el-select v-model="dataForm.newsCateroryId"
@change="changeCaterory"
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-row>
<el-row>
<el-form-item label="新闻标题"
prop="newsTitle">
<el-input v-model="dataForm.newsTitle"
placeholder="请输入标题"
clearable></el-input>
clearable
style="width:500px">
</el-input>
</el-form-item>
</el-row>
<el-row>
<el-form-item prop="newsContent"
label="正文编辑">
<!-- 富文本编辑器, 容器 -->
<div id="J_quillEditor"></div>
<!-- 自定义上传图片功能 (使用element upload组件) -->
<el-upload :action="uploadUrl"
:show-file-list="false"
:before-upload="uploadBeforeUploadHandle"
:on-success="uploadSuccessHandle"
style="display: none;">
<el-button ref="uploadBtn"
type="primary"
size="small">{{ $t('upload.button') }}</el-button>
</el-upload>
</el-form-item>
</el-row>
<el-row>
<el-form-item prop="newsImageUrl"
label="新闻首图">
<el-upload class="upload-demo"
:action="uploadUrl"
:on-preview="handlePreview"
:on-remove="handleRemove"
:on-success="uploadSuccessMainImg"
:before-remove="beforeRemove"
multiple
:limit="1"
:on-exceed="handleExceed"
:file-list="fileList">
<el-button size="small"
type="primary">点击上传</el-button>
<div slot="tip"
class="el-upload__tip">只能上传jpg/png文件且不超过500kb</div>
</el-upload>
</el-form-item>
</el-row>
<el-row>
<el-form-item prop="newsReleaseStartTime"
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-form-item>
<br>
<el-form-item prop="newsContent"
label="正文编辑">
<!-- 富文本编辑器, 容器 -->
<div id="J_quillEditor"></div>
<!-- 自定义上传图片功能 (使用element upload组件) -->
<el-upload :action="uploadUrl"
:show-file-list="false"
:before-upload="uploadBeforeUploadHandle"
:on-success="uploadSuccessHandle"
style="display: none;">
<el-button ref="uploadBtn"
type="primary"
size="small">{{ $t('upload.button') }}</el-button>
</el-upload>
</el-form-item>
<el-upload class="upload-demo"
:action="uploadUrl"
:on-preview="handlePreview"
:on-remove="handleRemove"
:on-success="uploadSuccessMainImg"
:before-remove="beforeRemove"
multiple
:limit="1"
:on-exceed="handleExceed"
:file-list="fileList">
<el-button size="small"
type="primary">点击上传</el-button>
<div slot="tip"
class="el-upload__tip">只能上传jpg/png文件且不超过500kb</div>
</el-upload>
<br>
<span class="demonstration">显示时长</span>&nbsp;&nbsp;
<el-date-picker @change='setRegistTime'
v-model="time"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker> &nbsp; &nbsp;
<br><br> <br>
<el-form-item>
<el-button type="primary"
@click="dataFormSubmitHandle()">确认发布</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary"
@click="draftDataFormSubmitHandle()">存草稿箱</el-button>
</el-form-item>
</el-row>
<el-row>
<el-form-item label-width="500px">
<el-button type="primary"
@click="dataFormSubmitHandle()">确认发布</el-button>
<el-button type="primary"
@click="draftDataFormSubmitHandle()">存草稿箱</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</el-card>
@ -119,18 +134,10 @@ import Cookies from 'js-cookie'
import debounce from 'lodash/debounce'
import 'quill/dist/quill.snow.css'
import Quill from 'quill'
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: '',
@ -203,6 +210,12 @@ export default {
newsCateroryId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
newsImageUrl: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
newsReleaseStartTime: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
newsContent: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
]
@ -260,7 +273,7 @@ export default {
this.dataForm.deptId = choosenItem.id
},
getListCategory () {
this.$http.get(`/news/newscategory/category/`).then(({ data: res }) => {
this.$http.get(`/news/newscategory/category`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
@ -300,10 +313,10 @@ export default {
},
//
handleRemove (file, fileList) {
console.log(file, fileList)
// console.log(file, fileList)
},
handlePreview (file) {
console.log(file)
// console.log(file)
},
handleExceed (files, fileList) {
this.$message.warning(`当前限制选择 3 个文件,本次选择了 $ {files.length} 个文件,共选择了 $ {files.length + fileList.length} 个文件`)
@ -316,7 +329,7 @@ export default {
return this.$message.error(res.msg)
}
this.dataForm.newsImageUrl = res.data.url
console.log(this.dataForm.newsImageUrl)
// console.log(this.dataForm.newsImageUrl)
this.$message({
message: this.$t('prompt.success'),
type: 'success',
@ -324,7 +337,7 @@ export default {
})
},
setRegistTime () {
console.log(this.time[0])
// console.log(this.time[0])
this.dataForm.newsReleaseStartTime = this.time[0]
this.dataForm.newsReleaseEndTime = this.time[1]
},

51
src/views/modules/news/newscategory-add-or-update.vue

@ -1,22 +1,40 @@
<template>
<el-dialog :visible.sync="visible" :title="!dataForm.id ? $t('add') : $t('update')" :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="categoryName">
<el-input v-model="dataForm.categoryName" placeholder="类别名称"></el-input>
<el-dialog :visible.sync="visible"
:title="!dataForm.id ? $t('add') : $t('update')"
: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="categoryName">
<el-input v-model="dataForm.categoryName"
placeholder="类别名称"></el-input>
</el-form-item>
<el-form-item label="类别编码" prop="categoryCode">
<el-input v-model="dataForm.categoryCode" placeholder="类别编码"></el-input>
<el-form-item label="类别编码"
prop="categoryCode">
<el-input v-model="dataForm.categoryCode"
placeholder="类别编码"></el-input>
</el-form-item>
<el-form-item label="描述" prop="description">
<el-input v-model="dataForm.description" placeholder="描述"></el-input>
<el-form-item label="描述"
prop="description">
<el-input v-model="dataForm.description"
placeholder="描述"></el-input>
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input v-model="dataForm.sort" placeholder="排序"></el-input>
<el-form-item label="排序"
prop="sort">
<el-input-number v-model="dataForm.sort"
controls-position="right"
:min="0"
:label="$t('menu.sort')"></el-input-number>
</el-form-item>
</el-form>
</el-form>
<template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button>
<el-button type="primary"
@click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button>
</template>
</el-dialog>
</template>
@ -32,7 +50,7 @@ export default {
categoryName: '',
categoryCode: '',
description: '',
sort: ''
sort: 0
}
}
},
@ -45,9 +63,6 @@ export default {
categoryCode: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
description: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
sort: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
]
@ -74,7 +89,7 @@ export default {
...this.dataForm,
...res.data
}
}).catch(() => {})
}).catch(() => { })
},
//
dataFormSubmitHandle: debounce(function () {
@ -95,7 +110,7 @@ export default {
this.$emit('refreshDataList')
}
})
}).catch(() => {})
}).catch(() => { })
})
}, 1000, { 'leading': true, 'trailing': false })
}

Loading…
Cancel
Save