Browse Source

栏目管理开发

origin/feature/monitoring
Jackwang 4 years ago
parent
commit
abf18706fa
  1. 176
      src/views/modules/news/moduletype-add-or-update.vue
  2. 53
      src/views/modules/news/newsmoduletype.vue
  3. 175
      src/views/modules/news/noticeadmin.vue

176
src/views/modules/news/moduletype-add-or-update.vue

@ -1,42 +1,58 @@
<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="上级ID" prop="pid">
<el-input v-model="dataForm.pid" placeholder="上级ID"></el-input>
</el-form-item>
<el-form-item label="所有上级ID 逗号分隔" prop="pids">
<el-input v-model="dataForm.pids" placeholder="所有上级ID 逗号分隔"></el-input>
</el-form-item>
<!-- <el-form-item label="上级ID" prop="pid">-->
<!-- <el-input v-model="dataForm.pid" placeholder="上级ID"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="所有上级ID 逗号分隔" prop="pids">-->
<!-- <el-input v-model="dataForm.pids" placeholder="所有上级ID 逗号分隔"></el-input>-->
<!-- </el-form-item>-->
<el-form-item label="类别名称" prop="typeName">
<el-input v-model="dataForm.typeName" placeholder="类别名称"></el-input>
</el-form-item>
<el-form-item label="类别编码" prop="typeCode">
<el-input v-model="dataForm.typeCode" placeholder="类别编码"></el-input>
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input v-model="dataForm.sort" placeholder="排序"></el-input>
</el-form-item>
<el-form-item label="启用标识 0-否,1-是" prop="bannerFlag">
<el-input v-model="dataForm.bannerFlag" placeholder="启用标识 0-否,1-是"></el-input>
</el-form-item>
<el-form-item label="删除标识 0-否,1-是" prop="delFlag">
<el-input v-model="dataForm.delFlag" placeholder="删除标识 0-否,1-是"></el-input>
</el-form-item>
<el-form-item label="乐观锁" prop="revision">
<el-input v-model="dataForm.revision" placeholder="乐观锁"></el-input>
</el-form-item>
<el-form-item label="创建人" prop="createdBy">
<el-input v-model="dataForm.createdBy" placeholder="创建人"></el-input>
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-input v-model="dataForm.createdTime" placeholder="创建时间"></el-input>
</el-form-item>
<el-form-item label="更新人" prop="updatedBy">
<el-input v-model="dataForm.updatedBy" placeholder="更新人"></el-input>
</el-form-item>
<el-form-item label="更新时间" prop="updatedTime">
<el-input v-model="dataForm.updatedTime" placeholder="更新时间"></el-input>
</el-form-item>
<el-form-item prop="parentName" label="上级分类" class="category-list">
<el-popover v-model="categoryListVisible" ref="categoryListPopover" placement="bottom-start" trigger="click">
<el-tree :data="categoryList"
:props="{ label: 'typeName', children: 'children' }"
node-key="id"
ref="categoryListTree"
:highlight-current="true"
:expand-on-click-node="false"
accordion
@current-change="categoryListTreeCurrentChangeHandle">
</el-tree>
</el-popover>
<el-input v-model="dataForm.parentName" v-popover:categoryListPopover :readonly="true" placeholder="上级分类">
<i v-if="dataForm.pid !== '0'" slot="suffix" @click.stop="categoryListTreeSetDefaultHandle()" class="el-icon-circle-close el-input__icon"></i>
</el-input>
</el-form-item>
<el-form-item prop="sort" label="排序">
<el-input-number v-model="dataForm.sort" controls-position="right" :min="0" label="排序"></el-input-number>
</el-form-item>
<!-- <el-form-item label="启用标识 0-否,1-是" prop="bannerFlag">-->
<!-- <el-input v-model="dataForm.bannerFlag" placeholder="启用标识 0-否,1-是"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="删除标识 0-否,1-是" prop="delFlag">-->
<!-- <el-input v-model="dataForm.delFlag" placeholder="删除标识 0-否,1-是"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="乐观锁" prop="revision">-->
<!-- <el-input v-model="dataForm.revision" placeholder="乐观锁"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="创建人" prop="createdBy">-->
<!-- <el-input v-model="dataForm.createdBy" placeholder="创建人"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="创建时间" prop="createdTime">-->
<!-- <el-input v-model="dataForm.createdTime" placeholder="创建时间"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="更新人" prop="updatedBy">-->
<!-- <el-input v-model="dataForm.updatedBy" placeholder="更新人"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="更新时间" prop="updatedTime">-->
<!-- <el-input v-model="dataForm.updatedTime" placeholder="更新时间"></el-input>-->
<!-- </el-form-item>-->
</el-form>
<template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
@ -65,18 +81,23 @@ export default {
createdTime: '',
updatedBy: '',
updatedTime: ''
}
},
categoryList: [],
categoryListVisible: false,
}
},
computed: {
dataRule () {
return {
pid: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
pids: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
// pid: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
// pids: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
// parentName: [
// { required: true, message: this.$t('validate.required'), trigger: 'change' }
// ],
typeName: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
@ -86,27 +107,27 @@ export default {
sort: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
bannerFlag: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
delFlag: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
revision: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
createdBy: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
createdTime: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
updatedBy: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
updatedTime: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
]
// bannerFlag: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
// delFlag: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
// revision: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
// createdBy: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
// createdTime: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
// updatedBy: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
// updatedTime: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ]
}
}
},
@ -115,11 +136,36 @@ export default {
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.getInfo()
}
this.getcategoryList().then(() => {
this.categoryListTreeSetDefaultHandle()
if (this.dataForm.id) {
this.getInfo()
}
if (this.dataForm.id) {
} else {
this.dataForm.categoryCode = ''
}
})
})
},
categoryListTreeCurrentChangeHandle (data) {
this.dataForm.pid = data.id
this.dataForm.parentName = data.typeName
this.categoryListVisible = false
},
getcategoryList () {
return this.$http.get('/news/moduletype/getList').then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.categoryList = res.data
}).catch(() => { })
},
categoryListTreeCurrentChangeHandle (data) {
this.dataForm.pid = data.id
this.dataForm.parentName = data.typeName
this.categoryListVisible = false
},
//
getInfo () {
this.$http.get(`/news/moduletype/${this.dataForm.id}`).then(({ data: res }) => {
@ -130,8 +176,16 @@ export default {
...this.dataForm,
...res.data
}
if (this.dataForm.pid === '0') {
return this.categoryListTreeSetDefaultHandle()
}
this.$refs.categoryListTree.setCurrentKey(this.dataForm.pid)
}).catch(() => {})
},
categoryListTreeSetDefaultHandle () {
this.dataForm.pid = '0'
this.dataForm.parentName = '一级分类'
},
//
dataFormSubmitHandle: debounce(function () {
this.$refs['dataForm'].validate((valid) => {

53
src/views/modules/news/newsmoduletype.vue

@ -0,0 +1,53 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__dept">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item>
<el-button v-if="$hasPermission('events:category:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading" :data="dataList" border style="width: 100%;">
<table-tree-column prop="typeName" :label="$t('dept.name')" header-align="center"></table-tree-column>
<el-table-column prop="parentName" :label="$t('dept.parentName')" header-align="center" align="center"></el-table-column>
<el-table-column prop="sort" :label="$t('dept.sort')" header-align="center" align="center" width="80"></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>
</template>
</el-table-column>
</el-table>
<!-- 弹窗, 新增 / 修改 -->
<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 TableTreeColumn from '@/components/table-tree-column'
import AddOrUpdate from './moduletype-add-or-update'
import Cookies from 'js-cookie'
export default {
mixins: [mixinViewModule],
data () {
return {
mixinViewModuleOptions: {
getDataListURL: '/news/moduletype/getList',
deleteURL: '/news/moduletype'
},
upLoadUrl: ''
}
},
components: {
TableTreeColumn,
AddOrUpdate
},
created: function () {
},
methods: {
}
}
</script>

175
src/views/modules/news/noticeadmin.vue

@ -0,0 +1,175 @@
<template>
<el-card shadow="never"
class="aui-card--fill">
<div class="mod-news__notice}">
<el-form :inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()">
<el-form-item>
<el-input v-model="dataForm.noticeTitle"
placeholder="标题"
clearable></el-input>
</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:notice:save')"
type="primary"
@click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission('news:notice: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 type="selection"
header-align="center"
align="center"></el-table-column>
<el-table-column type="index"
width="50"
label="序号" align="center"></el-table-column>
<el-table-column prop="noticeTitle"
label="标题"
header-align="center"
align="left"
min-width="400px"
show-overflow-tooltip></el-table-column>
<el-table-column prop="deptName"
label="所属网格"
header-align="center"
min-width="150px"
align="left"></el-table-column>
<!-- <el-table-column prop="readingAmount"-->
<!-- label="阅读量"-->
<!-- header-align="center"-->
<!-- align="center"-->
<!-- width="80"></el-table-column>-->
<el-table-column prop="creatorName"
label="创建人"
header-align="center"
width="100px"
align="left"></el-table-column>
<el-table-column prop="createdTime"
label="创建时间"
header-align="center"
width="180px"
align="center"></el-table-column>
<!-- <el-table-column prop="noticeReleaseState"-->
<!-- label="已发布"-->
<!-- header-align="center"-->
<!-- :formatter="showIsPublishFormatter"-->
<!-- align="center"-->
<!-- width="70"></el-table-column>-->
<!-- <el-table-column prop="releaseTime"-->
<!-- label="发布时间"-->
<!-- width="180"-->
<!-- 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('news:notice:publish') && scope.row.noticeReleaseState === '0'"
type="text"
size="small"
@click="noticePublishHandle(scope.row.id)">发布</el-button>
<el-button v-if="$hasPermission('news:notice:update')"
type="text"
size="small"
@click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
<el-button v-if="$hasPermission('news:notice:delete')"
type="text"
size="small"
@click="deleteHandle(scope.row.id)">{{ $t('delete') }}</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 './notice-add-or-update'
export default {
mixins: [mixinViewModule],
data () {
return {
mixinViewModuleOptions: {
getDataListURL: '/news/notice/page',
getDataListIsPage: true,
deleteURL: '/news/notice',
deleteIsBatch: true
},
dataForm: {
noticeTitle: ''
}
}
},
components: {
AddOrUpdate
},
methods: {
//
noticePublishHandle (id) {
this.$confirm(this.$t('prompt.info', { 'handle': '发布' }), this.$t('发布'), {
confirmButtonText: this.$t('confirm'),
cancelButtonText: this.$t('cancel'),
type: 'warning'
}).then(() => {
this.$http.post(`/news/notice/publish/${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(() => { })
},
showIsPublishFormatter: function (row, column) {
if (row.noticeReleaseState === '0') {
return '否'
}
return '是'
},
showDeptNameFormatter: function (row, column) {
if (row.grid) {
return row.grid
}
if (row.community) {
return row.community
}
if (row.street) {
return row.street
}
}
}
}
</script>
Loading…
Cancel
Save