fix:项目初始化

This commit is contained in:
ouyangxiu
2025-06-10 17:11:41 +07:00
commit db9bffd2c5
713 changed files with 159746 additions and 0 deletions
@@ -0,0 +1,324 @@
<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="小说类型">
<el-select placeholder="请选择小说类型" v-model="dialogForm.novelType">
<el-option label="文本" :value="1" />
<el-option label="有声" :value="2" />
<el-option label="asmr" :value="3" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<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="小说发布者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>
</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/resourceManagement/novel';
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",描述信息
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, //评分
actors: undefined, //登场人物
addedTime: undefined, //上架时间
lastWatchTime: undefined, //上次观看时间
monthWatchTimes: undefined, //月观看次数,每月一号重置
weekWatchTimes: undefined, //周观看次数,每周一重置
newTime: undefined, //最新章节更新时间
wordTotalCount: undefined, //小说总字数
publishId: undefined, //漫画发布者ID
novelType: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>