fix:项目初始化
This commit is contained in:
@@ -0,0 +1,379 @@
|
||||
<template>
|
||||
<el-dialog :title="title" :visible.sync="Visible" calss="ac-dialog" center width="800px" @close="close">
|
||||
<div>
|
||||
<el-form :rules="rules" :model="dialogForm" label-width="130px" ref="dialogForm">
|
||||
<el-row :gutter="24">
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="小说标题">
|
||||
<el-input placeholder="请输入标题" v-model="dialogForm.title" style="width: 180px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="小说作者">
|
||||
<el-input placeholder="请输入作者" v-model="dialogForm.author" style="width: 180px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="小说主题">
|
||||
<el-select placeholder="请选择小说主题" v-model="dialogForm.topics" filterable multiple>
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in topicsList" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="小说标签">
|
||||
<el-select placeholder="请选择小说标题" v-model="dialogForm.tags" value-key="id" filterable multiple>
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in labelList" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="排序" prop="rank">
|
||||
<el-input placeholder="请输入排序" v-model.number="dialogForm.rank" style="width: 180px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否VIP" prop="isVip">
|
||||
<el-switch v-model.number="dialogForm.isVip" :active-value="true" :inactive-value="false" active-color="#13ce66" inactive-color="#ff4949"> </el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="是否音频小说" prop="isAudio">
|
||||
<el-switch v-model="dialogForm.isAudio" active-color="#13ce66" inactive-color="#ff4949" active-text="是" inactive-text="否"></el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="评分" prop="novelNumber">
|
||||
<el-input placeholder="请输入圈子排序" v-model.number="dialogForm.novelNumber" style="width: 180px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24">
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="圈子">
|
||||
<el-select style="width: 180px" clearable placeholder="请选择圈子" v-model="dialogForm.circleId" filterable>
|
||||
<el-option :key="item.id + item.name" :label="item.name" :value="item.id" v-for="item in circleList" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="圈子排序" prop="circleRank">
|
||||
<el-input placeholder="请输入圈子排序" v-model.number="dialogForm.circleRank" style="width: 180px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :lg="12" :md="12" :sm="12" :xl="12" :xs="12">
|
||||
<el-form-item label="上架时间">
|
||||
<el-date-picker style="width: 180px" v-model="dialogForm.addedTime" type="date" placeholder="选择日期" value-format="yyyy-MM-ddTHH:mm:ssZ"> </el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="登场人物" prop="actors">
|
||||
<el-input placeholder="请输入登场人物" v-model.number="dialogForm.actors" style="width: 180px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="免费章节" prop="noneChapter">
|
||||
<el-input placeholder="请输入免费章节" v-model.number="dialogForm.noneChapter" style="width: 180px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24">
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="封面">
|
||||
<UploadImg @onRemove="onRemove('coverImg')" @changeImgUrl="changeCoverImg" :img="dialogForm.coverImg"> </UploadImg>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="章节数量">
|
||||
<el-input placeholder="请输入章节数量" v-model.number="dialogForm.chapterCount" style="width: 180px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="小说总字数">
|
||||
<el-input placeholder="请输入小说总字数" v-model.number="dialogForm.wordTotalCount" style="width: 180px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="最新章节">
|
||||
<el-input placeholder="请输入最新章节" v-model.number="dialogForm.newChapter" style="width: 180px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- <el-col :lg="12" :md="12" :sm="12" :xl="12" :xs="12">-->
|
||||
<!-- <el-form-item label="最新章节更新时间">-->
|
||||
<!-- <el-date-picker style="width: 180px" v-model="dialogForm.newTime" type="date" placeholder="选择日期" value-format="yyyy-MM-ddTHH:mm:ssZ">-->
|
||||
<!-- </el-date-picker>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<el-col :lg="12" :md="12" :sm="12" :xl="12" :xs="12">
|
||||
<el-form-item label="小说发布者ID">
|
||||
<el-input placeholder="请输入小说发布者ID" v-model.number="dialogForm.publishId" style="width: 180px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="售价">
|
||||
<el-input placeholder="请输入售价" v-model.number="dialogForm.price" style="width: 180px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24">
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="小说上架状态">
|
||||
<el-select placeholder="请选择小说上架状态" v-model="dialogForm.status">
|
||||
<el-option label="上架" :value="1" />
|
||||
<el-option label="下架" :value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="小说更新状态">
|
||||
<el-select placeholder="请选择小说更新状态" v-model="dialogForm.updateStatus">
|
||||
<el-option label="待发布" :value="0" />
|
||||
<el-option label="连载中" :value="1" />
|
||||
<el-option label="已完结" :value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24">
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
||||
<el-form-item label="描述" prop="desc">
|
||||
<el-input placeholder="请输入描述" v-model="dialogForm.desc" type="textarea" style="width: 520px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- <template v-for="(item, index) in dialogForm.roleList">-->
|
||||
<!-- <el-row :key="index" :gutter="10" style="background: #efe4d2; padding: 5px 0; margin: 5px 0">-->
|
||||
<!-- <el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">-->
|
||||
<!-- <el-form-item label="CV">-->
|
||||
<!-- <el-select placeholder="请选择CvId" v-model="item.comicsCvId">-->
|
||||
<!-- <el-option :label="item.name" :value="item.id" v-for="(item,index) in resData" :key="index"/>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">-->
|
||||
<!-- <el-form-item label="配音角色">-->
|
||||
<!-- <el-input placeholder="请输入配音角色" v-model="item.roleName" style="width: 180px" />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :lg="4" :md="4" :sm="4" :xl="4" :xs="4">-->
|
||||
<!-- <el-button v-if="dialogForm.roleList.length === index + 1" type="succsees" size="mini" icon="el-icon-circle-plus-outline" @click="addSectionItem">-->
|
||||
<!-- 新增节点-->
|
||||
<!-- </el-button>-->
|
||||
<!-- <el-button type="danger" size="mini" style="margin: 5px 0" icon="el-icon-delete-solid" @click="delSectionItem(index)">-->
|
||||
<!-- 删除节点-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- </el-row>-->
|
||||
<!-- </template>-->
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="dialog-footer" slot="footer">
|
||||
<el-button @click="Visible = false">取 消</el-button>
|
||||
<el-button @click="submitForm('dialogForm')" type="primary">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import { novelsAdd, novelsUpdate } from '@/api/novelsManagement/novels';
|
||||
import { novelsLabelsList } from '@/api/novelsManagement/novelsTopic';
|
||||
// import { novelsCvList } from '@/api/novelsManagement/novelsCV'
|
||||
import { changeMoneyYuan, changeMoneyFen, arryToString, stringToArry, current } from '@/filters/index';
|
||||
import UploadImg from '@/components/UploadImg/index';
|
||||
import moment from 'moment/moment';
|
||||
export default {
|
||||
name: 'AddOrEdit',
|
||||
props: ['data', 'circleList'],
|
||||
components: {
|
||||
UploadImg,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
Visible: true,
|
||||
title: '',
|
||||
// 表单数据
|
||||
dialogForm: {
|
||||
author: undefined, // "string",小说作者
|
||||
chapterCount: undefined, // 0,章节数量
|
||||
coverImg: undefined, // "string",封面
|
||||
desc: undefined, // "string",描述信息
|
||||
fake: {
|
||||
comments: undefined, // 0,评论条数
|
||||
likes: undefined, // 0,点赞次数
|
||||
sells: undefined, // 0,售卖次数
|
||||
shares: undefined, // 0,分享次数
|
||||
watchTimes: undefined, // 0观看次数
|
||||
},
|
||||
isAudio: undefined, // 是否音频小说
|
||||
isVip: undefined, // true,是否VIp
|
||||
newChapter: undefined, // 0,最新章节
|
||||
price: undefined, // 0,售价,单位分
|
||||
rank: undefined, // 0,排序
|
||||
status: undefined, // 0,小说状态
|
||||
tags: [], // 0 小说标签
|
||||
title: undefined, // string 标题
|
||||
topics: undefined, // 0 小说话题
|
||||
updateStatus: undefined, // 小说更新状态
|
||||
noneChapter: undefined, // 免费章节
|
||||
novelNumber: undefined, //评分
|
||||
circleId: undefined,
|
||||
circleRank: undefined, //圈子排序
|
||||
actors: undefined, //登场人物
|
||||
addedTime: undefined, //上架时间
|
||||
lastWatchTime: undefined, //上次观看时间
|
||||
monthWatchTimes: undefined, //月观看次数,每月一号重置
|
||||
weekWatchTimes: undefined, //周观看次数,每周一重置
|
||||
newTime: undefined, //最新章节更新时间
|
||||
wordTotalCount: undefined, //小说总字数
|
||||
publishId: undefined, //漫画发布者ID
|
||||
// roleList: [{
|
||||
// comicsId: undefined,
|
||||
// roleName: undefined
|
||||
// }]
|
||||
},
|
||||
topicsList: this.$store.state.novels.novelsTopicList,
|
||||
labelList: [],
|
||||
rules: {
|
||||
// sort: [{ required: true, message: '必填', trigger: 'blur' }],
|
||||
},
|
||||
resData: [],
|
||||
};
|
||||
},
|
||||
|
||||
async mounted() {
|
||||
this.title = this.data.title;
|
||||
|
||||
if (this.title === '编辑') {
|
||||
this.dialogForm = { ...this.data.data };
|
||||
// if (!this.dialogForm.roleList.length) {
|
||||
// this.dialogForm.roleList.push({
|
||||
// comicsId: undefined,
|
||||
// roleName: undefined
|
||||
// })
|
||||
// console.log(this.dialogForm,"dialogForm")
|
||||
// }
|
||||
this.dialogForm.price = changeMoneyYuan(this.dialogForm.price);
|
||||
this.dialogForm.author = arryToString(this.data.data.author);
|
||||
this.dialogForm.actors = arryToString(this.data.data.actors);
|
||||
}
|
||||
this.getNovelsLabelsList();
|
||||
// this.getList()
|
||||
},
|
||||
methods: {
|
||||
// TODO:请求小说标签列表数据
|
||||
// getList() {
|
||||
// this.loading = true
|
||||
// novelsCvList({ pageNum: 1, pageSize: 50 }).then((res) => {
|
||||
// if (res.code === 200) {
|
||||
// this.resData = res.data.list
|
||||
// } else {
|
||||
// this.$message.error('请求列表失败!')
|
||||
// this.resData = []
|
||||
// this.total = 0
|
||||
// }
|
||||
// this.loading = false
|
||||
// })
|
||||
// },
|
||||
// addSectionItem() {
|
||||
// this.dialogForm.roleList.push({
|
||||
// comicsId: undefined,
|
||||
// roleName: undefined
|
||||
// })
|
||||
// },
|
||||
delSectionItem(index) {
|
||||
this.dialogForm.roleList.splice(index, 1);
|
||||
},
|
||||
// TODO:请求小说标签列表
|
||||
async getNovelsLabelsList() {
|
||||
console.log('tianjia1');
|
||||
this.labelList = this.title === '编辑' ? this.data.data.tagName : [];
|
||||
const param = {
|
||||
pageNum: 1,
|
||||
// pageSize: 500,
|
||||
status: true,
|
||||
};
|
||||
novelsLabelsList(param).then(res => {
|
||||
if (res.code === 200) {
|
||||
// if (this.title === '编辑') {
|
||||
// for (let tagindex = 0; tagindex < this.data.data.tagName.length; tagindex++) {
|
||||
// const tag = this.data.data.tagName[tagindex]
|
||||
// let e = 0
|
||||
// for (let index = 0; index < this.labelList.length; index++) {
|
||||
// const element = this.labelList[index]
|
||||
// if (element.id === tag.id) {
|
||||
// e = 1
|
||||
// }
|
||||
// }
|
||||
// if (e === 0) {
|
||||
// this.labelList.push(tag)
|
||||
// }
|
||||
// }
|
||||
// res.data.forEach(item => {
|
||||
// });
|
||||
// this.labelList = res.data
|
||||
// } else {
|
||||
// this.labelList = res.data
|
||||
// }
|
||||
this.labelList = res.data;
|
||||
}
|
||||
});
|
||||
},
|
||||
// TODO:新增小说列表数据
|
||||
novelsAddFun(data) {
|
||||
novelsAdd(data).then(res => {
|
||||
if (res.code === 200) {
|
||||
this.$message.success('新增成功');
|
||||
this.Visible = false;
|
||||
} else {
|
||||
this.$message.error('新增失败');
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// TODO:编辑小说列表数据
|
||||
novelsUpdateFun(data) {
|
||||
novelsUpdate(data).then(res => {
|
||||
if (res.code === 200) {
|
||||
this.$message.success('编辑成功');
|
||||
this.Visible = false;
|
||||
} else {
|
||||
this.$message.error('编辑失败');
|
||||
}
|
||||
});
|
||||
},
|
||||
changeCoverImg(data) {
|
||||
this.dialogForm.coverImg = data;
|
||||
},
|
||||
onRemove(data) {
|
||||
this.dialogForm[data] = undefined;
|
||||
},
|
||||
|
||||
close() {
|
||||
this.$emit('close');
|
||||
},
|
||||
|
||||
// 提交按钮
|
||||
submitForm(formName) {
|
||||
this.$refs[formName].validate(valid => {
|
||||
if (valid) {
|
||||
const data = JSON.parse(JSON.stringify(this.dialogForm));
|
||||
data.price = data.price ? changeMoneyFen(data.price) : 0;
|
||||
data.author = stringToArry(data.author);
|
||||
data.actors = stringToArry(data.actors);
|
||||
data.circleId = data.circleId ? data.circleId : undefined;
|
||||
if (this.title === '编辑') {
|
||||
this.novelsUpdateFun(data);
|
||||
} else {
|
||||
this.novelsAddFun(data);
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
<!--
|
||||
* @Author:
|
||||
* @Mail:
|
||||
* @Date: 2022-05-17 14:17:25
|
||||
* @LastEditTime: 2022-06-09 11:04:13
|
||||
* @LastEditors:
|
||||
* @FilePath: /novels-admin/src/views/novelsManagement/novels/components/EditCom.vue
|
||||
-->
|
||||
<template>
|
||||
<el-dialog :close-on-click-modal="false" :title="title" :visible.sync="Visible" @close="close" center class="ac-dialog" width="500px">
|
||||
<el-form :inline="true" :model="form" class="demo-form-inline" label-position="right" label-width="100px" ref="form">
|
||||
<el-row :gutter="24">
|
||||
<el-col :lg="24" :md="24" :sm="24" :xl="24" :xs="24">
|
||||
<el-form-item label="用户ID">
|
||||
<el-input v-model.number="form.userId" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :lg="24" :md="24" :sm="24" :xl="24" :xs="24">
|
||||
<el-form-item label="评论内容">
|
||||
<el-input v-model="form.text" type="textarea" style="width:300px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div class="dialog-footer" slot="footer">
|
||||
<el-button @click="Visible=false">取 消</el-button>
|
||||
<el-button @click="submit('form')" type="primary">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { novelsAddComment } from '@/api/novelsManagement/novels'
|
||||
export default {
|
||||
name: 'EditCom',
|
||||
props: ['data'],
|
||||
data() {
|
||||
return {
|
||||
Visible: true,
|
||||
title: '',
|
||||
// 表单数据
|
||||
form: {
|
||||
userId: undefined, // 用户id
|
||||
novelId: undefined, //小说ID
|
||||
text: undefined, //评论
|
||||
},
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.title = this.data.title
|
||||
this.form.novelId = this.data.data.id
|
||||
},
|
||||
methods: {
|
||||
//TODO:添加评论
|
||||
submit(formName) {
|
||||
novelsAddComment(this.form).then((res) => {
|
||||
if (res.code === 200) {
|
||||
this.$message.success('评论成功')
|
||||
this.close()
|
||||
} else {
|
||||
this.$message.error('评论失败')
|
||||
}
|
||||
})
|
||||
},
|
||||
// 关闭编辑
|
||||
close() {
|
||||
this.$emit('close', false)
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
<!--
|
||||
* @Author:
|
||||
* @Mail:
|
||||
* @Date: 2022-04-06 17:32:20
|
||||
* @LastEditTime: 2022-06-09 11:08:45
|
||||
* @LastEditors: Please set LastEditors
|
||||
* @FilePath: /novels-admin/src/views/novelsManagement/novels/components/setTag.vue
|
||||
-->
|
||||
<template>
|
||||
<el-dialog :title="title" :visible.sync="Visible" width="700px" center class="ac-dialog" :close-on-click-modal="false" @close="close">
|
||||
<el-form :inline="true" :model="form" :rules="rules" ref="ruleForm" class="demo-form-inline" label-width="120px" label-position="right">
|
||||
<el-row :gutter="24">
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="小说标签">
|
||||
<el-select placeholder="请选择小说标题" v-model="form.tags" value-key="id" filterable multiple>
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in labelList" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="Visible = false"> 取 消 </el-button>
|
||||
<el-button type="primary" @click="submit"> 确 定 </el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { novelsAddTags } from '@/api/novelsManagement/novels'
|
||||
import { novelsLabelsList } from '@/api/novelsManagement/novelsTopic'
|
||||
export default {
|
||||
name: 'SetTag',
|
||||
props: ['data'],
|
||||
data() {
|
||||
return {
|
||||
MediaSatusList: [],
|
||||
Visible: true,
|
||||
title: '',
|
||||
// 表单数据
|
||||
form: {
|
||||
tags: [] // 0 小说标签
|
||||
},
|
||||
//
|
||||
rules: {},
|
||||
labelList: []
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getComicLabelsList()
|
||||
},
|
||||
methods: {
|
||||
// TODO:请求小说标签列表
|
||||
async getComicLabelsList() {
|
||||
const param = {
|
||||
pageNum: 1,
|
||||
status: true
|
||||
}
|
||||
novelsLabelsList(param).then((res) => {
|
||||
if (res.code === 200) {
|
||||
this.labelList = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
// TODO:批量增加小说标签
|
||||
submit() {
|
||||
if (this.data.length) {
|
||||
const novelIds = []
|
||||
this.data.forEach((item) => {
|
||||
novelIds.push(item.id)
|
||||
})
|
||||
const param = {
|
||||
novelIds: novelIds,
|
||||
tags: this.form.tags
|
||||
}
|
||||
novelsAddTags(param).then((res) => {
|
||||
if (res.code === 200) {
|
||||
this.$message.success('增加标签成功')
|
||||
} else {
|
||||
this.$message.error('增加标签失败')
|
||||
}
|
||||
this.Visible = false
|
||||
})
|
||||
} else {
|
||||
this.$message.error('未选择小说')
|
||||
}
|
||||
},
|
||||
// 关闭编辑
|
||||
close() {
|
||||
this.$emit('close')
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
<!--
|
||||
* @Author:
|
||||
* @Mail:
|
||||
* @Date: 2022-04-06 17:32:20
|
||||
* @LastEditTime: 2022-06-09 11:08:45
|
||||
* @LastEditors: Please set LastEditors
|
||||
* @FilePath: /novels-admin/src/views/novelsManagement/novels/components/setTag.vue
|
||||
-->
|
||||
<template>
|
||||
<el-dialog :title="title" :visible.sync="Visible" width="700px" center class="ac-dialog" :close-on-click-modal="false"
|
||||
@close="close">
|
||||
<el-form :inline="true" :model="form" :rules="rules" ref="ruleForm" class="demo-form-inline" label-width="120px"
|
||||
label-position="right">
|
||||
<el-row :gutter="24">
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="上传小说">
|
||||
<el-upload
|
||||
class="upload-demo"
|
||||
ref="upload"
|
||||
action="#"
|
||||
:limit="1"
|
||||
accept=".txt"
|
||||
:file-list="form.fileList"
|
||||
:on-change="uploadChange"
|
||||
:on-remove="uploadRemove"
|
||||
:auto-upload="false">
|
||||
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
|
||||
<div slot="tip" class="el-upload__tip">只能上传txt文件</div>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="Visible = false"> 取 消</el-button>
|
||||
<el-button type="primary" @click="submit"> 确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { novelsAddTxtNovel} from '@/api/novelsManagement/novels'
|
||||
import * as jschadet from 'jschardet'
|
||||
export default {
|
||||
name: 'Addtotal',
|
||||
props: ['data'],
|
||||
data() {
|
||||
return {
|
||||
MediaSatusList: [],
|
||||
Visible: true,
|
||||
title: '',
|
||||
// 表单数据
|
||||
form: {
|
||||
fileList: [],
|
||||
},
|
||||
rules: {},
|
||||
labelList: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
uploadChange( file, fileList) {
|
||||
this.form.fileList = fileList
|
||||
},
|
||||
uploadRemove(){
|
||||
this.form.fileList = []
|
||||
},
|
||||
|
||||
submit() {
|
||||
if (!this.form.fileList.length){
|
||||
this.$message.warning('请上传小说!')
|
||||
return
|
||||
}
|
||||
const file = this.form.fileList[0].raw;
|
||||
const reader = new FileReader();
|
||||
reader.readAsBinaryString(file);
|
||||
|
||||
reader.addEventListener('load', (event) => {
|
||||
let content = ''
|
||||
const txtBinary = event.target.result;
|
||||
const encoding = jschadet.detect(txtBinary)
|
||||
if (encoding && encoding.encoding) {
|
||||
const buf = new Buffer(txtBinary, 'binary')
|
||||
const decoder = new TextDecoder(encoding.encoding);
|
||||
content = decoder.decode(buf);
|
||||
const param = {
|
||||
novelId: this.data.data.id,
|
||||
txt: content
|
||||
}
|
||||
novelsAddTxtNovel(param).then((res) => {
|
||||
if (res.code === 200) {
|
||||
this.$message.success('增加成功')
|
||||
} else {
|
||||
this.$message.error('增加失败')
|
||||
}
|
||||
this.Visible = false
|
||||
})
|
||||
} else {
|
||||
console.error('Failed to detect file encoding.');
|
||||
}
|
||||
});
|
||||
},
|
||||
// 关闭编辑
|
||||
close() {
|
||||
this.$emit('close')
|
||||
},
|
||||
},
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
|
||||
<template>
|
||||
<el-dialog :title="title" :visible.sync="Visible" width="700px" center class="ac-dialog" :close-on-click-modal="false" @close="close">
|
||||
<el-form :inline="true" :model="form" :rules="rules" ref="ruleForm" class="demo-form-inline" label-width="120px" label-position="right">
|
||||
<el-row :gutter="24">
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="是否VIP" prop="status">
|
||||
<el-select placeholder="请选择信息分类" clearable v-model="form.isVip" style="width: 180px">
|
||||
<el-option label="非VIP小说" :value="false" />
|
||||
<el-option label="VIP小说" :value="true" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="视频状态" prop="status">
|
||||
<el-select placeholder="请选择小说状态" clearable v-model="form.status" style="width: 180px">
|
||||
<el-option v-for="item in MediaSatusList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="Visible = false"> 取 消 </el-button>
|
||||
<el-button type="primary" @click="submit"> 确 定 </el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { novelsUpdate } from '@/api/novelsManagement/novels'
|
||||
import { MediaSatusList } from '@/filters/novelsManagement/novelsTopic'
|
||||
|
||||
export default {
|
||||
name: 'batch',
|
||||
props: ['data'],
|
||||
data() {
|
||||
return {
|
||||
MediaSatusList: MediaSatusList(),
|
||||
Visible: true,
|
||||
title: '',
|
||||
// 表单数据
|
||||
form: {
|
||||
isVip: undefined,
|
||||
status: undefined,
|
||||
|
||||
},
|
||||
//
|
||||
dates: [],
|
||||
rules: {
|
||||
isVip: undefined,
|
||||
status: undefined
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
// 提交按钮
|
||||
submit() {
|
||||
if (this.data.length) {
|
||||
this.data.forEach((item) => {
|
||||
const data = {
|
||||
...item
|
||||
}
|
||||
data.isVip = this.form.isVip
|
||||
data.status = this.form.status
|
||||
|
||||
novelsUpdate(data).then((res) => {
|
||||
if (res.code === 200) {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: item.id + '修改成功'
|
||||
})
|
||||
} else {
|
||||
this.$message({
|
||||
type: 'error',
|
||||
message: item.id + '修改失败'
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
this.$message({
|
||||
type: 'error',
|
||||
message: '未选择小说'
|
||||
})
|
||||
}
|
||||
this.Visible = false
|
||||
},
|
||||
|
||||
// 关闭编辑
|
||||
close() {
|
||||
this.$emit('close')
|
||||
},
|
||||
},
|
||||
mounted() {},
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,173 @@
|
||||
<template>
|
||||
<el-dialog :title="title" :visible.sync="Visible" width="700px" center class="ac-dialog" :close-on-click-modal="false" @close="close">
|
||||
<el-form :inline="true" :model="form" :rules="rules" ref="ruleForm" class="demo-form-inline" label-width="80px" label-position="right">
|
||||
<el-row :gutter="24">
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="小说ID" prop="comicsId">
|
||||
<el-input v-model.number="form.comicsId" placeholder="请输入小说ID" disabled style="width: 180px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="章节序列" prop="chapterNum">
|
||||
<el-input v-model.number="form.chapterNum" placeholder="请输入章节序列" style="width: 180px">
|
||||
<template slot="prepend">第</template>
|
||||
<template slot="append">章</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24">
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="章节标题" prop="title">
|
||||
<el-input v-model="form.title" placeholder="请输入章节标题" style="width: 180px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="章节字数" prop="wordCount">
|
||||
<el-input v-model.number="form.wordCount" placeholder="请输入章节字数" style="width: 180px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="是否启用" prop="status">
|
||||
<el-switch v-model="form.status" active-color="#13ce66" inactive-color="#ff4949" active-text="开启" inactive-text="关闭"></el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="最新章节" prop="isNew">
|
||||
<el-switch v-model="form.isNew" active-color="#13ce66" inactive-color="#ff4949" active-text="最新" inactive-text="非最新"></el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="媒资库ID" prop="fileId">
|
||||
<el-input v-model="form.fileId" placeholder="请输入小说媒资库ID" style="width: 180px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
||||
<el-form-item label="章节描述" prop="desc">
|
||||
<el-input placeholder="请输入章节描述" v-model="form.desc" type="textarea" style="width: 520px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
||||
<el-form-item label="内容" prop="content">
|
||||
<el-input v-model="form.content" :autosize="{ minRows: 2, maxRows: 4 }" placeholder="请输入内容" type="textarea" style="width: 520px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="Visible = false"> 取 消 </el-button>
|
||||
<el-button type="primary" @click="submit('ruleForm')"> 确 定 </el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import { novelsChapterAdd, novelsChapterUpdate } from '@/api/novelsManagement/novelsChapter';
|
||||
export default {
|
||||
name: 'ChapterAddOrEdit',
|
||||
props: ['data'],
|
||||
|
||||
data() {
|
||||
return {
|
||||
Visible: true,
|
||||
title: '',
|
||||
// 表单数据
|
||||
form: {
|
||||
content: undefined, //[]内容
|
||||
chapterNum: undefined, // 0,第几章节
|
||||
comicsId: undefined, // 0,小说ID
|
||||
desc: undefined, // "string",章节描述
|
||||
isNew: undefined, // true,是否为最新章节
|
||||
pageNum: undefined, // 0,章节页数
|
||||
status: undefined, // true,是否启用
|
||||
title: undefined, // "string",章节标题
|
||||
fileId: undefined, // '媒资库id'
|
||||
wordCount: undefined, //小说字数
|
||||
},
|
||||
rules: {},
|
||||
isUploadIng: false,
|
||||
isAddReqLoading: false,
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.title = this.data.title;
|
||||
if (this.title === '编辑') {
|
||||
this.form = { ...this.data.data };
|
||||
// this.form.jmid
|
||||
} else {
|
||||
this.form.jmid = this.data.data.jmid;
|
||||
this.form.comicsId = this.data.data.id;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
//TODO:新增小说章节列表数据
|
||||
add(data) {
|
||||
if (this.isUploadIng) {
|
||||
this.$message('图片上传中,稍后尝试');
|
||||
|
||||
return false;
|
||||
}
|
||||
if (this.isAddReqLoading) {
|
||||
this.$message('小说添加中');
|
||||
return false;
|
||||
}
|
||||
this.isAddReqLoading = true;
|
||||
novelsChapterAdd(data)
|
||||
.then(res => {
|
||||
// this.Visible = false
|
||||
if (res.code === 200) {
|
||||
this.$message.success('新增成功');
|
||||
this.Visible = false;
|
||||
this.isAddReqLoading = false;
|
||||
} else {
|
||||
this.isAddReqLoading = false;
|
||||
this.$message.error(res.tip);
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
this.isAddReqLoading = false;
|
||||
this.$message.error(error.message);
|
||||
});
|
||||
},
|
||||
//TODO:编辑小说章节列表数据
|
||||
update(data) {
|
||||
novelsChapterUpdate(data).then(res => {
|
||||
if (res.code === 200) {
|
||||
this.$message.success('更新成功');
|
||||
this.Visible = false;
|
||||
} else {
|
||||
this.$message.error('更新失败');
|
||||
}
|
||||
});
|
||||
},
|
||||
// 提交按钮
|
||||
submit(formName) {
|
||||
this.$refs[formName].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.title === '新增') {
|
||||
this.add(this.form);
|
||||
} else if (this.title === '编辑') {
|
||||
this.update(this.form);
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 关闭编辑
|
||||
close() {
|
||||
this.$emit('close');
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.upLoadFormItem {
|
||||
label {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,223 @@
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<el-dialog title="小说章节列表" :visible.sync="Visible" width="90%" center class="ac-dialog" :close-on-click-modal="false" @close="close">
|
||||
<el-row class="table-form">
|
||||
<el-form :inline="true" :model="searchData" class="form-inline" size="mini">
|
||||
<el-form-item>
|
||||
<el-input placeholder="请输入章节名称" clearable v-model.trim="searchData.title" @clear="onClear('title')" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-select placeholder="请选择是否启用" clearable v-model="searchData.status" @clear="onClear('status')">
|
||||
<el-option label="启用" :value="true" />
|
||||
<el-option label="未启用" :value="false" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-select placeholder="展示顺序" clearable v-model="searchData.sort" @clear="onClear('sort')">
|
||||
<el-option label="正序" :value="true" />
|
||||
<el-option label="倒序" :value="false" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="onSearch" icon="el-icon-search" plain type="primary">搜索</el-button>
|
||||
<el-button @click="add" icon="el-icon-circle-plus-outline" plain type="success">新增</el-button>
|
||||
<el-button @click="getList" icon="el-icon-refresh" plain type="info">刷新</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-table :data="resData" element-loading-text="拼命加载中" border height="550" highlight-current-row style="width: 100%" v-loading="loading">
|
||||
<el-table-column align="center" label="标题" show-overflow-tooltip>
|
||||
<template slot-scope="scope">{{ scope.row.title }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="小说ID" width="80">
|
||||
<template slot-scope="scope">{{ scope.row.comicsId }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="媒资库ID" width="80">
|
||||
<template slot-scope="scope">{{ scope.row.fileId }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="章节序列" width="80">
|
||||
<template slot-scope="scope">第{{ scope.row.chapterNum }}章</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="章节字数" width="80">
|
||||
<template slot-scope="scope">{{ scope.row.wordCount }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="是否最新章节" width="90">
|
||||
<template slot-scope="scope">
|
||||
<el-button :type="scope.row.isNew ? 'success' : 'danger'" plain size="mini">{{ scope.row.isNew ? '最新' : '非最新' }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="是否启用" width="90">
|
||||
<template slot-scope="scope">
|
||||
<el-button :type="scope.row.status ? 'success' : 'danger'" plain size="mini">{{ scope.row.status ? '启用' : '未启用' }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="创建时间" width="180">
|
||||
<template slot-scope="scope">{{ scope.row.createdAt | BeiJingTime }} </template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="更新时间" width="180">
|
||||
<template slot-scope="scope">{{ scope.row.updatedAt | BeiJingTime }} </template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" fixed="right" label="操作" width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-button @click="handleEdit(scope.$index, scope.row)" size="mini" type="primary">编辑 </el-button>
|
||||
<el-button @click="handleDelete(scope.$index, scope.row)" size="mini" type="danger">删除 </el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div class="table-pagination">
|
||||
<el-pagination
|
||||
:current-page="searchData.pageNum"
|
||||
:page-size="searchData.pageSize"
|
||||
:page-sizes="[10, 20, 30, 50, 100]"
|
||||
:total="total"
|
||||
@current-change="handleCurrentChange"
|
||||
@size-change="handleSizeChange"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="Visible = false"> 取 消 </el-button>
|
||||
<el-button type="primary" @click="Visible = false"> 确 定 </el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<ChapterAddOrEdit :data="editData" v-if="editVisible" @close="closeEdit" />
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { novelsChapterList, novelsChapterDel } from '@/api/novelsManagement/novelsChapter';
|
||||
import ShowImg from '@/components/ShowImg/index.vue';
|
||||
import ChapterAddOrEdit from './chapterAddOrEdit.vue';
|
||||
|
||||
export default {
|
||||
name: 'ChapterList',
|
||||
props: ['data'],
|
||||
components: {
|
||||
ShowImg,
|
||||
ChapterAddOrEdit,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
Visible: true,
|
||||
// 表单数据
|
||||
searchData: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
title: undefined, //"string",
|
||||
status: undefined, // true
|
||||
id: undefined,
|
||||
sort: true,
|
||||
},
|
||||
resData: [],
|
||||
total: 0,
|
||||
loading: false, // 列表加载状态
|
||||
editVisible: false,
|
||||
editData: {
|
||||
title: '新增',
|
||||
data: {},
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.searchData.id = this.data.data.id;
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
//TODO:请求小说章节列表数据
|
||||
getList() {
|
||||
this.loading = true;
|
||||
novelsChapterList(this.searchData).then(res => {
|
||||
if (res.code === 200) {
|
||||
this.resData = res.data.list;
|
||||
this.total = res.data.count;
|
||||
} else {
|
||||
this.$message.error('请求列表失败!');
|
||||
this.resData = [];
|
||||
this.total = 0;
|
||||
}
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
//TODO:删除小说章节列表数据
|
||||
handleDelete(index, row) {
|
||||
this.$confirm('确定删除?', '警告', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
}).then(() => {
|
||||
novelsChapterDel({ novelChapterId: row.id }).then(res => {
|
||||
if (res.code === 200) {
|
||||
this.getList();
|
||||
this.$message.success('成功删除!');
|
||||
} else {
|
||||
this.$message.error(res.tip);
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
onSearch() {
|
||||
this.searchData.pageNum = 1;
|
||||
this.searchData.pageSize = 10;
|
||||
this.getList();
|
||||
},
|
||||
// 关闭编辑
|
||||
close() {
|
||||
this.$emit('close');
|
||||
},
|
||||
// 新增按钮
|
||||
add() {
|
||||
this.editVisible = true;
|
||||
this.editData = {
|
||||
title: '新增',
|
||||
data: {
|
||||
id: this.data.data.id,
|
||||
jmid: this.data.data.jmid,
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
// 编辑按钮
|
||||
handleEdit(index, row) {
|
||||
this.editData = {
|
||||
title: '编辑',
|
||||
data: row,
|
||||
};
|
||||
this.editVisible = true;
|
||||
},
|
||||
|
||||
// 关闭编辑弹窗
|
||||
closeEdit() {
|
||||
this.editData = {
|
||||
title: '新增',
|
||||
data: {},
|
||||
};
|
||||
this.editVisible = false;
|
||||
this.getList();
|
||||
},
|
||||
// 切换每页数据量
|
||||
handleSizeChange(val) {
|
||||
this.searchData.pageSize = val;
|
||||
this.getList();
|
||||
},
|
||||
|
||||
// 切换页数
|
||||
handleCurrentChange(val) {
|
||||
this.searchData.pageNum = val;
|
||||
this.getList();
|
||||
},
|
||||
|
||||
// 清空某一项筛选列表
|
||||
onClear(key) {
|
||||
this.searchData[key] = undefined;
|
||||
this.getList();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
<!--
|
||||
* @Author:
|
||||
* @Mail:
|
||||
* @Date: 2022-04-06 17:32:20
|
||||
* @LastEditTime: 2022-06-09 11:08:45
|
||||
* @LastEditors: Please set LastEditors
|
||||
* @FilePath: /novels-admin/src/views/novelsManagement/novels/components/setTag.vue
|
||||
-->
|
||||
<template>
|
||||
<el-dialog :title="title" :visible.sync="Visible" width="700px" center class="ac-dialog" :close-on-click-modal="false" @close="close">
|
||||
<el-form :inline="true" :model="form" :rules="rules" ref="ruleForm" class="demo-form-inline" label-width="120px" label-position="right">
|
||||
<el-row :gutter="24">
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="小说主题" prop="status">
|
||||
<el-select placeholder="请选择小说主题" clearable v-model="form.topics" style="width: 180px" multiple filterable>
|
||||
<el-option v-for="item in MediaSatusList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="" prop="flag">
|
||||
<el-switch v-model="form.flag" active-text="增加" inactive-text="删除" active-color="#13ce66" inactive-color="#ff4949"></el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="Visible = false"> 取 消 </el-button>
|
||||
<el-button type="primary" @click="submit"> 确 定 </el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { novelsAddTopics } from '@/api/novelsManagement/novels'
|
||||
import { novelsTopicList } from '@/api/novelsManagement/novelsTopic'
|
||||
export default {
|
||||
name: 'SetTag',
|
||||
props: ['data'],
|
||||
data() {
|
||||
return {
|
||||
MediaSatusList: [],
|
||||
Visible: true,
|
||||
title: '',
|
||||
// 表单数据
|
||||
form: {
|
||||
topics: undefined,
|
||||
flag: true
|
||||
},
|
||||
rules: {}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getNovelsTopicList()
|
||||
},
|
||||
methods: {
|
||||
// TODO:批量设置小说主题
|
||||
submit() {
|
||||
if (this.data.length) {
|
||||
const novelIds = []
|
||||
this.data.forEach((item) => {
|
||||
novelIds.push(item.id)
|
||||
})
|
||||
const param = {
|
||||
novelIds: novelIds,
|
||||
flag: this.form.flag,
|
||||
topicsIds: this.form.topics
|
||||
}
|
||||
novelsAddTopics(param).then((res) => {
|
||||
if (res.code === 200) {
|
||||
this.$message.success('设置标签成功')
|
||||
} else {
|
||||
this.$message.error('设置标签失败')
|
||||
}
|
||||
this.Visible = false
|
||||
})
|
||||
} else {
|
||||
this.$message.error('未选择小说')
|
||||
}
|
||||
},
|
||||
|
||||
// TODO:请求小说主题列表数据
|
||||
getNovelsTopicList(val) {
|
||||
const param = {
|
||||
pageNum: 1,
|
||||
pageSize: 5000
|
||||
}
|
||||
novelsTopicList(param).then((res) => {
|
||||
if (res.code === 200) {
|
||||
this.MediaSatusList = res.data.list
|
||||
} else {
|
||||
this.$message.error('请求小说主题列表失败')
|
||||
}
|
||||
})
|
||||
},
|
||||
// 关闭编辑
|
||||
close() {
|
||||
this.$emit('close')
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,540 @@
|
||||
<template>
|
||||
<div class="pf-warpper">
|
||||
<el-row class="table-form">
|
||||
<!-- 查询条件 -->
|
||||
<el-form :inline="true" :model="searchData" class="form-inline" label-width="80px" size="mini">
|
||||
<el-form-item>
|
||||
<el-input placeholder="请输入小说ID" clearable v-model.number="searchData.id" @clear="onClear('id')" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-input placeholder="请输入小说标题" clearable v-model.trim="searchData.title" @clear="onClear('title')" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-input placeholder="请输入小说作者" clearable v-model.trim="searchData.author" @clear="onClear('author')" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-input placeholder="请输入小说唯一标识" clearable v-model.trim="searchData.jmid" @clear="onClear('jmid')" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-select placeholder="请选择小说上架状态" clearable v-model.number="searchData.status" @clear="onClear('status')">
|
||||
<el-option label="待上架" :value="0" />
|
||||
<el-option label="上架" :value="1" />
|
||||
<el-option label="下架" :value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-select placeholder="请选择小说更新状态" clearable v-model.number="searchData.updateStatus" @clear="onClear('updateStatus')">
|
||||
<el-option label="待发布" :value="0" />
|
||||
<el-option label="连载中" :value="1" />
|
||||
<el-option label="已完结" :value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-select placeholder="请选择小说主题" clearable v-model.number="searchData.topicId" @clear="onClear('topicId')" filterable>
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in topicIdList" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-input placeholder="请输入小说标签" clearable v-model.trim="searchData.tagStr" @clear="onClear('tagStr')" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-select placeholder="请选择小说付费类型" clearable v-model="searchData.novelPayType" @clear="onClear('novelPayType')">
|
||||
<el-option label="免费" :value="0" />
|
||||
<el-option label="会员" :value="1" />
|
||||
<el-option label="金币" :value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-select placeholder="排序方式" clearable v-model.number="searchData.sort" @clear="onClear('sort')">
|
||||
<el-option label="上架时间" :value="0" />
|
||||
<el-option label="更新时间" :value="1" />
|
||||
<el-option label="观看次数排序" :value="2" />
|
||||
<el-option label="收藏次数排序" :value="3" />
|
||||
<el-option label="章节数量排序" :value="4" />
|
||||
<el-option label="图片数量排序" :value="5" />
|
||||
<el-option label="虚假观看数排序" :value="6" />
|
||||
<el-option label="周观看次数" :value="7" />
|
||||
<el-option label="月观看次数" :value="8" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-select placeholder="请选择小说类型" clearable v-model="searchData.novelType" @clear="onClear('novelType')">
|
||||
<el-option label="文本" :value="1" />
|
||||
<el-option label="有声" :value="2" />
|
||||
<el-option label="asm" :value="3" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="onSearch" icon="el-icon-search" plain type="primary">搜索</el-button>
|
||||
<el-button @click="handleAdd()" icon="el-icon-circle-plus-outline" plain type="success">新增</el-button>
|
||||
<el-button @click="getData" icon="el-icon-refresh" plain type="info">刷新</el-button>
|
||||
<el-button @click="setTag" icon="el-icon-edit-outline" plain type="warning">批量设置主题</el-button>
|
||||
<el-button @click="setTags" icon="el-icon-edit-outline" plain type="warning">批量添加标签</el-button>
|
||||
<el-button @click="batch" icon="el-icon-edit-outline" plain type="warning">批量设置小说</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col>
|
||||
<!-- 展示列表 -->
|
||||
<el-table :data="tableData" border height="750" highlight-current-row style="width: 100%" @selection-change="handleSelectionChange" :row-style="{ height: '70px' }">
|
||||
<el-table-column type="selection" width="50" fixed="left"> </el-table-column>
|
||||
<el-table-column align="center" label="ID">
|
||||
<template slot-scope="scope">{{ scope.row.id }}</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column align="center" label="唯一标识">-->
|
||||
<!-- <template slot-scope="scope">{{ scope.row.jmid }}</template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column align="center" label="排序">
|
||||
<template slot-scope="scope">{{ scope.row.rank }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="小说标题" show-overflow-tooltip>
|
||||
<template slot-scope="scope">{{ scope.row.title }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="封面">
|
||||
<template slot-scope="scope">
|
||||
<ShowImg style="width: 40px; height: 40px; margin: 0 auto; line-height: 40px" :urls="scope.row.coverImg"></ShowImg>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="小说作者" width="200">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-for="(item, index) in scope.row.author" :key="index">{{ item }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="章节数量">
|
||||
<template slot-scope="scope">{{ scope.row.chapterCount }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="最新章节">
|
||||
<template slot-scope="scope">{{ scope.row.newChapter }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="最新章节更新时间">
|
||||
<template slot-scope="scope">{{ scope.row.newTime | BeiJingTime }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="小说总字数">
|
||||
<template slot-scope="scope">{{ scope.row.wordTotalCount }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="页数">
|
||||
<template slot-scope="scope">{{ scope.row.pageCount }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="售价">
|
||||
<template slot-scope="scope">{{ scope.row.price | changeMoneyYuan }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="免费章节">
|
||||
<template slot-scope="scope">{{ scope.row.noneChapter }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="周观看次数">
|
||||
<template slot-scope="scope">{{ scope.row.weekWatchTimes }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="月观看次数">
|
||||
<template slot-scope="scope">{{ scope.row.monthWatchTimes }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="最后观看时间">
|
||||
<template slot-scope="scope">{{ scope.row.lastWatchTime | BeiJingTime }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="小说发布者ID">
|
||||
<template slot-scope="scope">{{ scope.row.publishId }}</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column align="center" label="圈子">
|
||||
<template slot-scope="scope">{{ scope.row.circleId | changeName(circleList, 'id', 'name') }}</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column align="center" label="描述信息" width="300" show-overflow-tooltip>
|
||||
<template slot-scope="scope">{{ scope.row.desc }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="是否VIP" width="100">
|
||||
<template slot-scope="scope">
|
||||
<el-button :type="scope.row.isVip ? 'success' : 'danger'" plain size="mini">{{ scope.row.isVip ? 'VIP' : '非VIP' }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="上架状态">
|
||||
<template slot-scope="scope">{{ scope.row.status | changeStatus }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="上架时间" width="150">
|
||||
<template slot-scope="scope">{{ scope.row.addedTime | BeiJingTime }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="更新状态">
|
||||
<template slot-scope="scope">{{ scope.row.updateStatus | changeUpdateStatus }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="小说主题" width="300">
|
||||
<template slot-scope="scope">
|
||||
<el-tag :key="index" v-for="(item, index) in scope.row.topics" type="success">{{ item | changeName(topicIdList, 'id', 'name') }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="小说标签" width="300">
|
||||
<template slot-scope="scope">
|
||||
<el-tag :key="index" v-for="(item, index) in scope.row.tagName" type="success">{{ item.name }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="是否音频小说" width="80">
|
||||
<template slot-scope="scope">{{ scope.row.isAudio ? '是' : '否' }} </template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column align="center" label="配音角色" width="300">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <template>-->
|
||||
<!-- <el-table :data="scope.row.roleList" max-height="200" border style="width: 100%">-->
|
||||
<!-- <el-table-column align="center" prop="comicsCvId" label="CV-id" width="135">-->
|
||||
<!-- <template slot-scope="scopes">{{-->
|
||||
<!-- scopes.row.comicsCvId-->
|
||||
<!-- }}</template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- <el-table-column align="center" prop="roleName" label="配音角色" width="135">-->
|
||||
<!-- <template slot-scope="scopes">{{-->
|
||||
<!-- scopes.row.roleName-->
|
||||
<!-- }}</template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- </el-table>-->
|
||||
<!-- </template>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column align="center" label="评分">
|
||||
<template slot-scope="scope">{{ scope.row.novelNumber }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="真实信息">
|
||||
<el-table-column align="center" label="评论数">
|
||||
<template slot-scope="scope">{{ scope.row.real.comments }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="点赞数">
|
||||
<template slot-scope="scope">{{ scope.row.real.likes }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="售卖数">
|
||||
<template slot-scope="scope">{{ scope.row.real.sells }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="分享数">
|
||||
<template slot-scope="scope">{{ scope.row.real.shares }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="观看数">
|
||||
<template slot-scope="scope">{{ scope.row.real.watchTimes }}</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="虚拟信息">
|
||||
<el-table-column align="center" label="评论数">
|
||||
<template slot-scope="scope">{{ scope.row.fake.comments }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="点赞数">
|
||||
<template slot-scope="scope">{{ scope.row.fake.likes }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="售卖数">
|
||||
<template slot-scope="scope">{{ scope.row.fake.sells }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="分享数">
|
||||
<template slot-scope="scope">{{ scope.row.fake.shares }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="观看数">
|
||||
<template slot-scope="scope">{{ scope.row.fake.watchTimes }}</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="创建时间" width="150">
|
||||
<template slot-scope="scope">{{ scope.row.createdAt | BeiJingTime }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="更新时间" width="150">
|
||||
<template slot-scope="scope">{{ scope.row.updatedAt | BeiJingTime }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" fixed="right" label="操作" width="550">
|
||||
<template slot-scope="scope">
|
||||
<el-button @click="onAddComment(scope.row)" size="mini" type="success">添加评论</el-button>
|
||||
<el-button @click="addTotal(scope.$index, scope.row)" size="mini" type="primary">整本添加</el-button>
|
||||
<el-button @click="showChapterList(scope.$index, scope.row)" size="mini" type="primary">查看章节列表</el-button>
|
||||
<el-button @click="topNovels(scope.$index, scope.row)" size="mini" type="success">最新置顶</el-button>
|
||||
<el-button @click="handleEdit(scope.$index, scope.row)" size="mini" type="primary">编辑</el-button>
|
||||
<el-button @click="handleDelete(scope.$index, scope.row)" size="mini" type="danger">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- 分页 -->
|
||||
<div class="table-pagination">
|
||||
<el-pagination
|
||||
:current-page="searchData.pageNum"
|
||||
:page-size="searchData.pageSize"
|
||||
:page-sizes="[10, 20, 30, 50, 100]"
|
||||
:total="total"
|
||||
@current-change="handleCurrentChange"
|
||||
@size-change="handleSizeChange"
|
||||
layout="total, sizes, prev, pager, next, jumper"/>
|
||||
</div>
|
||||
<!-- 新增/编辑弹出框 -->
|
||||
<Edit :data="editData" v-if="dialogFormVisible" @close="closeEdit" :circleList="circleList"></Edit>
|
||||
<ChapterList :data="editData" v-if="chapterListVisible" @close="closeEdit" />
|
||||
<SetTag :data="selectBatch" v-if="setTagVisible" @close="closeEdit"></SetTag>
|
||||
<EditCom :data="editData" v-if="editComVisible" :objectype="6" @close="closeEdit" />
|
||||
<AddTags :data="selectBatch" v-if="tagsVisible" @close="closeEdit" />
|
||||
<AddTotal :data="editData" v-if="addTotalVisible" @close="closeEdit" />
|
||||
<Batch :data="selectBatch" v-if="batchVisible" @close="closeEdit"></Batch>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { novelsList, novelsDel, novelsNewOne } from '@/api/novelsManagement/novels'
|
||||
import { novelsTopicList } from '@/api/novelsManagement/novelsTopic'
|
||||
import { novelsTagList } from '@/api/novelsManagement/novelsTag'
|
||||
import { circleListSearch } from '@/api/user/circleList'
|
||||
import ChapterList from './components/chapterList'
|
||||
import ShowImg from '@/components/ShowImg/index.vue'
|
||||
import Edit from './components/AddOrEdit'
|
||||
import SetTag from './components/setTag'
|
||||
import EditCom from '@/views/videoManagement/videoList/components/videoComment.vue'
|
||||
import AddTags from './components/addTags'
|
||||
import Batch from './components/batch'
|
||||
import AddTotal from './components/addTotal'
|
||||
|
||||
export default {
|
||||
name: 'Novels',
|
||||
components: {
|
||||
Edit,
|
||||
ShowImg,
|
||||
ChapterList,
|
||||
SetTag,
|
||||
EditCom,
|
||||
AddTags,
|
||||
AddTotal,
|
||||
Batch
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// 请求列表筛选参数
|
||||
searchData: {
|
||||
id: undefined,
|
||||
status: undefined, // 激活状态
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
novelPayType: undefined, // true 是否VIp
|
||||
sort: undefined, // integer 排序,0创建时间,1rank排序,2观看数量排序,3收藏数量排序
|
||||
tagId: undefined, // integer 标签
|
||||
title: undefined, // "string",标题
|
||||
topicId: undefined, // integer 主题
|
||||
author: undefined, // 小说作者
|
||||
tagStr: undefined,
|
||||
novelType: undefined
|
||||
},
|
||||
tableData: [],
|
||||
total: 0,
|
||||
dialogFormVisible: false,
|
||||
chapterListVisible: false,
|
||||
editComVisible: false, // 评论弹出框
|
||||
setTagVisible: false,
|
||||
tagsVisible: false, // 批量添加标签
|
||||
addTotalVisible: false, // 整本添加
|
||||
batchVisible: false, // 批量设置小说
|
||||
editData: {},
|
||||
topicIdList: [],
|
||||
tagIdList: [],
|
||||
selectBatch: [],
|
||||
circleList: []
|
||||
}
|
||||
},
|
||||
filters: {
|
||||
changeStatus(val) {
|
||||
switch (val) {
|
||||
case 0:
|
||||
return '待上架'
|
||||
case 1:
|
||||
return '上架'
|
||||
case 2:
|
||||
return '取消上架'
|
||||
case 3:
|
||||
return '待审核'
|
||||
case 4:
|
||||
return '拒绝'
|
||||
}
|
||||
},
|
||||
changeUpdateStatus(val) {
|
||||
switch (val) {
|
||||
case 0:
|
||||
return '待发布'
|
||||
case 1:
|
||||
return '连载中'
|
||||
case 2:
|
||||
return '已完结'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
async mounted() {
|
||||
// this.getNovelsTagList()
|
||||
this.getNovelsTopicList()
|
||||
await this.getData()
|
||||
// this.getCircleListSearch();
|
||||
},
|
||||
methods: {
|
||||
// TODO:请求小说主题列表数据
|
||||
getNovelsTopicList() {
|
||||
const param = {
|
||||
pageNum: 1,
|
||||
pageSize: 500,
|
||||
status: true
|
||||
}
|
||||
novelsTopicList(param).then(res => {
|
||||
if (res.code === 200) {
|
||||
this.topicIdList = res.data.list
|
||||
|
||||
this.$store.dispatch('novels/setNovelsTopicList', res.data.list)
|
||||
} else {
|
||||
this.topicIdList = []
|
||||
this.$store.dispatch('novels/setNovelsTopicList', [])
|
||||
this.$message.error('请求小说主题列表失败')
|
||||
}
|
||||
})
|
||||
},
|
||||
// 批量设置
|
||||
batch() {
|
||||
this.batchVisible = true
|
||||
},
|
||||
// TODO:请求小说标签列表数据
|
||||
getNovelsTagList() {
|
||||
const param = {
|
||||
pageNum: 1,
|
||||
pageSize: 10000
|
||||
}
|
||||
novelsTagList(param).then(res => {
|
||||
if (res.code === 200) {
|
||||
this.tagIdList = res.data.list
|
||||
this.$store.dispatch('novels/setNovelsTagList', res.data.list)
|
||||
} else {
|
||||
this.tagIdList = []
|
||||
this.$store.dispatch('novels/setNovelsTagList', [])
|
||||
this.$message.error('请求小说标签列表失败!')
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// TODO:请求小说列表数据
|
||||
getData() {
|
||||
novelsList(this.searchData).then(res => {
|
||||
if (res.code === 200) {
|
||||
this.tableData = res.data.list
|
||||
this.total = res.data.count
|
||||
} else {
|
||||
this.tableData = []
|
||||
this.total = 0
|
||||
this.$message.error('请求小说列表数据失败')
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// TODO:小说置顶
|
||||
topNovels(index, row) {
|
||||
novelsNewOne({ id: row.id }).then(res => {
|
||||
if (res.code === 200) {
|
||||
this.$message.success('置顶成功')
|
||||
} else {
|
||||
this.$message.error('置顶失败')
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// TODO:删除小说列表数据
|
||||
handleDelete(index, row) {
|
||||
this.$confirm('确定删除?', '警告', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
novelsDel({ novelId: row.id }).then(res => {
|
||||
if (res.code === 200) {
|
||||
this.getData({ pageNum: 1 }) // 刷新商品列表
|
||||
this.$message.success('删除成功')
|
||||
} else {
|
||||
this.$message.error('删除失败')
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
// TODO:请求圈子列表数据
|
||||
getCircleListSearch() {
|
||||
circleListSearch({ pageNum: 1, pageSize: 5000 }).then(res => {
|
||||
if (res.code === 200) {
|
||||
this.circleList = res.data.list
|
||||
} else {
|
||||
this.$message.error('请求圈子列表失败!')
|
||||
this.circleList = []
|
||||
}
|
||||
})
|
||||
},
|
||||
onSearch() {
|
||||
this.searchData.pageNum = 1
|
||||
this.getData()
|
||||
},
|
||||
handleSelectionChange(val) {
|
||||
this.selectBatch = val
|
||||
},
|
||||
setTag() {
|
||||
this.setTagVisible = true
|
||||
},
|
||||
setTags() {
|
||||
this.tagsVisible = true
|
||||
},
|
||||
showChapterList(index, row) {
|
||||
this.editData = {
|
||||
title: '视频列表',
|
||||
type: 3,
|
||||
data: row
|
||||
}
|
||||
this.chapterListVisible = true
|
||||
},
|
||||
addTotal(index, row) {
|
||||
this.editData = {
|
||||
title: '整本添加',
|
||||
data: row
|
||||
}
|
||||
this.addTotalVisible = true
|
||||
},
|
||||
// 列表编辑按钮点击事件
|
||||
handleAdd() {
|
||||
this.editData = {
|
||||
title: '新增',
|
||||
data: {}
|
||||
}
|
||||
this.dialogFormVisible = true
|
||||
},
|
||||
|
||||
// 列表编辑按钮点击事件
|
||||
handleEdit(index, row) {
|
||||
this.editData = {
|
||||
title: '编辑',
|
||||
data: row
|
||||
}
|
||||
this.dialogFormVisible = true
|
||||
},
|
||||
|
||||
closeEdit() {
|
||||
this.editData = {
|
||||
title: '新增',
|
||||
data: {}
|
||||
}
|
||||
this.editComVisible = false
|
||||
this.setTagVisible = false
|
||||
this.dialogFormVisible = false
|
||||
this.chapterListVisible = false
|
||||
this.tagsVisible = false
|
||||
this.addTotalVisible = false
|
||||
this.batchVisible = false
|
||||
this.getData()
|
||||
},
|
||||
|
||||
onClear(key) {
|
||||
this.searchData[key] = undefined
|
||||
this.getData()
|
||||
},
|
||||
|
||||
// 切换每页显示的条数触发
|
||||
handleSizeChange(val) {
|
||||
this.searchData.pageSize = val
|
||||
this.getData()
|
||||
},
|
||||
|
||||
// 切换页码时触发
|
||||
handleCurrentChange(val) {
|
||||
this.searchData.pageNum = val
|
||||
this.getData()
|
||||
},
|
||||
|
||||
onAddComment(row) {
|
||||
this.editData = {
|
||||
title: '添加评论',
|
||||
data: row
|
||||
}
|
||||
this.editComVisible = true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
Reference in New Issue
Block a user