jangc提交

ui_2024_3_23_jiangcan
JangCan 2024-03-24 21:44:57 +08:00
parent 0edb6bd546
commit abc10de805
6 changed files with 320 additions and 0 deletions

View File

@ -48,6 +48,7 @@
"js-beautify": "1.13.0",
"js-cookie": "3.0.1",
"jsencrypt": "3.0.0-rc.1",
"moment": "^2.30.1",
"nprogress": "0.2.0",
"quill": "1.3.7",
"screenfull": "5.0.2",

29
src/api/content.js 100644
View File

@ -0,0 +1,29 @@
import request from '@/utils/request'
// 查询
export function searchContentList() {
return request({
url: '/mybatisplus/content/list',
method: 'get'
})
}
// 添加
export function addNews(data) {
return request({
url: '/mybatisplus/content/addNews',
method: 'post',
data
})
}
// 删除
export function delNews(id) {
return request({
url: '/mybatisplus/content/delNews/'+id,
method: 'post'
})
}

View File

@ -0,0 +1,26 @@
import request from '@/utils/request'
// 查询
export function searchNewsTypes() {
return request({
url: '/mybatisplus/newsType/list',
method: 'get'
})
}
//添加
export function addNewsTypes(data) {
return request({
url: '/mybatisplus/newsType/addNewsTypes',
method: 'post',
data
})
}
//删除
export function delNewsTypes(id) {
return request({
url: '/mybatisplus/newsType/delNewsTypes/'+id,
method: 'post'
})
}

View File

@ -73,6 +73,32 @@ export const constantRoutes = [
}
]
},
{
path: '/newstypes',
component: Layout,
redirect: 'index',
children: [
{
path: 'index',
component: () => import('@/views/newstypes/index'),
name: 'newstypes',
meta: {title: '新闻字典列表', icon: 'el-icon-s-grid', affix: true}
}
]
},
{
path: '/content',
component: Layout,
redirect: 'index',
children: [
{
path: 'index',
component: () => import('@/views/content/index'),
name: 'content',
meta: {title: '新闻信息', icon: 'el-icon-s-grid', affix: true}
}
]
},
{
path: '/user',
component: Layout,

View File

@ -0,0 +1,144 @@
<template>
<div>
<el-button
size="mini"
@click="toAddContent()">添加</el-button>
<el-table :data="contents" style="width: 100%">
<el-table-column label="新闻编号" width="180">
<template v-slot="scope">
<span style="margin-left: 10px">{{ scope.row.id }}</span>
</template>
</el-table-column>
<el-table-column label="新闻属性名称" width="180">
<template v-slot="scope">
<span style="margin-left: 10px">{{ scope.row.name }}</span>
</template>
</el-table-column>
<el-table-column label="创建时间" width="180">
<template v-slot="scope">
<span
style="margin-left: 10px"
:title="formatDateTime(scope.row.createTime)"
>
{{ formatDateTime(scope.row.createTime) }}
</span>
</template>
</el-table-column>
<el-table-column label="图片" width="180">
<template v-slot="scope">
<span style="margin-left: 10px">{{ scope.row.pic }}</span>
</template>
</el-table-column>
<el-table-column label="内容" width="180">
<template v-slot="scope">
<textarea style="margin-left: 10px" readonly>{{ scope.row.details }}</textarea>
</template>
</el-table-column>
<el-table-column label="操作">
<template v-slot="scope">
<el-button
size="mini"
type="danger"
@click="deleteContent(scope.row.id)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog title="添加新闻" :visible.sync="dialogFormVisible">
<el-form :model="form">
<el-form-item label="新闻内容" :label-width="formLabelWidth">
<textarea style="margin-left: 10px" v-model="form.details"></textarea>
</el-form-item>
<el-form-item label="类型">
<el-select v-model="form.typeId" placeholder="请选择类型">
<el-option label="时政" value="1"></el-option>
<el-option label="体育" value="2"></el-option>
<el-option label="教育" value="3"></el-option>
<el-option label="文旅" value="4"></el-option>
<el-option label="科技" value="5"></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="okAddContent()"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {addNewsTypes, delNewsTypes, searchNewsTypes} from "@/api/newstypes";
import {addNews, delNews, searchContentList} from "@/api/content";
export default{
name :'',
data(){
return{
contents:[],
dialogFormVisible:false,
form:{},
formLabelWidth:'120px'
}
},
created() {
this.searchContentList()
},
methods:{
//
formatDateTime(dateString) {
const date = new Date(dateString);
return date.toLocaleString('default', { timeZone: 'UTC', hour12: false });
},
//
toAddContent(){
this.dialogFormVisible=true
},
okAddContent(){
addNews(this.form).then(res=> {
if (res.code==200){
this.$message.success("添加成功")
this.dialogFormVisible = false
this.searchContentList()
}else if (res.code==400){
this.$message.error("删除失败")
}
})
},
//
deleteContent(id){
delNews(id).then(res=>{
if (res.code==200){
this.$message.success("删除成功")
this.searchContentList()
}else if (res.code==400){
this.$message.error("删除失败")
}
})
},
//
searchContentList(){
searchContentList().then(res=>{
this.contents=res.data
})
},
}
}
</script>
<style scoped lang="scss">
</style>

View File

@ -0,0 +1,94 @@
<template>
<div>
<el-button type="primary" @click="toAddNewsType"></el-button>
<el-table :data="newstypes" style="width: 100%">
<el-table-column label="字典ID" width="180">
<template v-slot="scope">
<span style="margin-left: 10px">{{ scope.row.id }}</span>
</template>
</el-table-column>
<el-table-column label="字典属性名称" width="180">
<template v-slot="scope">
<span style="margin-left: 10px">{{ scope.row.name }}</span>
</template>
</el-table-column>
<el-table-column label="操作">
<template v-slot="scope">
<el-button
size="mini"
type="danger"
@click="deleteNewsType(scope.row.id)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog title="添加新闻类型字典" :visible.sync="dialogFormVisible">
<el-form :model="form">
<el-form-item label="属性名称" :label-width="formLabelWidth">
<el-input v-model="form.name" autocomplete="off"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="toAddNewsTypes()"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {addNewsTypes, delNewsTypes, searchNewsTypes} from "@/api/newstypes";
export default{
name :'',
data(){
return{
newstypes:[],
dialogFormVisible:false,
form:{},
formLabelWidth:'120px'
}
},
created() {
this.searchNewsTypes()
},
methods:{
//
toAddNewsType(){
this.dialogFormVisible=true
},
toAddNewsTypes(){
addNewsTypes(this.form).then(res=>{
if (res.code==200){
this.$message.success("添加成功")
this.dialogFormVisible=false
this.searchNewsTypes()
}else if (res.code==400){
this.$message.error("失败")
}
})
},
//
deleteNewsType(id){
delNewsTypes(id).then(res=>{
this.searchNewsTypes()
})
},
//
searchNewsTypes(){
searchNewsTypes().then(res=>{
this.newstypes=res.data
})
},
}
}
</script>
<style scoped lang="scss">
</style>