更新:增加图书管理-章节管理的上传并分割

This commit is contained in:
2025-12-01 14:19:18 +08:00
parent 50f2e89663
commit f0b46896c5
3 changed files with 109 additions and 22 deletions

View File

@@ -155,13 +155,13 @@
<!-- <el-form-item label="出版商名称" prop="publisherId">
<el-input v-model="dataForm.publisherId" placeholder="出版商名称"></el-input>
</el-form-item> -->
<el-form-item label="文件上传" prop="novel">
<!-- <el-form-item label="文件上传" prop="novel">
<el-upload class="upload-demo" :action="baseUrl + '/oss/fileoss'" :on-preview="handlePreview"
:on-remove="handleRemoveNovel" :before-remove="beforeRemove" :on-success="handleNovelSuccess" multiple
:limit="3" :on-exceed="handleExceed" :file-list="fileListNovel">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
</el-form-item> -->
<el-form-item label="插图" prop="images">
<el-upload :action="baseUrl + '/oss/fileoss'" list-type="picture-card" :on-preview="handlePictureCardPreview"
:file-list="fileList" :on-success="handlePicSuccess" :on-remove="handleRemove">

View File

@@ -64,7 +64,7 @@
</el-table-column> -->
<!-- <el-table-column prop="publisherName" header-align="center" align="center" label="出版商名称">
</el-table-column> -->
<el-table-column prop="chapterStatus" header-align="center" align="center" label="章节拆分" width="160">
<!-- <el-table-column prop="chapterStatus" header-align="center" align="center" label="章节拆分" width="160">
<template slot-scope="scope">
<p style="margin: 0;"> <span v-if="scope.row.chapterStatus == '成功'" style="color:blue">{{scope.row.chapterStatus}}</span>
<span v-if="scope.row.chapterStatus == '失败'" style="color: red">{{scope.row.chapterStatus}}</span>
@@ -76,7 +76,7 @@
</template>
</el-table-column>
</el-table-column> -->
<!-- <el-table-column prop="contentStatus" header-align="center" align="center" label="单句拆分">
<template slot-scope="scope">
<span v-if="scope.row.contentStatus == '成功'" style="color:blue">{{scope.row.contentStatus}}</span>

View File

@@ -1,12 +1,26 @@
<template>
<div class="mod-config">
<div class="mod-config" v-loading="fileLoading">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form :inline="true" :model="dataForm">
<el-form-item v-if="languageList.length>0">
<el-select v-model="language" placeholder="选择语言" @change="changeLanguage">
<el-option :label="item" :value="item" v-for="(item,index) in languageList" :key="index"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-upload :limit="1" class="el-uploadvideo"
:action= "baseUrl + '/oss/fileoss'"
:file-list="fileList" accept=".docx" :on-remove="handleRemove" :http-request="handleRequest"
:show-file-list="true">
<el-button slot="trigger" size="small" type="primary">上传并拆分</el-button>
</el-upload>
</el-form-item>
<br>
<el-form-item>
<el-input v-model="dataForm.key" placeholder="参数名" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">查询</el-button>
<el-button @click="getDataList(language)">查询</el-button>
<el-button v-if="isAuth('book:bookchapter:save')" type="primary" @click="addOrUpdateHandle()">新增章节</el-button>
<!-- <el-button v-if="isAuth('book:bookchapter:delete')" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0">批量删除</el-button> -->
<!-- <router-link :to="{path: 'book-book' , query:{ upPageIndex } }">
@@ -115,15 +129,19 @@
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList(language)"></add-or-update>
</div>
</template>
<script>
import AddOrUpdate from './bookchapter-add-or-update'
import global from '../../common/common.vue' //引入共用组间
import axios from "axios";
import { Loading } from 'element-ui';
export default {
data () {
return {
baseUrl: global.baseUrl,
dataForm: {
key: ''
},
@@ -137,6 +155,11 @@
dataListSelections: [],
addOrUpdateVisible: false,
bookInfo:{},
//显示多语言下拉
languageList: [],
language: '',
fileList: [],
fileLoading: false
}
},
components: {
@@ -149,13 +172,13 @@
console.log(this.pageIndex)
}
this.upPageIndex = this.$route.query.pageIndex;
console.log(this.bookid)
this.getDataList()
this.getInfo()
this.getInfo();
this.fileList = [];
this.getEbookLanguageList();
},
methods: {
// 获取数据列表
getDataList () {
getDataList (language) {
this.dataListLoading = true
this.$http({
url: this.$http.adornUrl('/book/bookchapter/list'),
@@ -164,7 +187,8 @@
'page': this.pageIndex,
'limit': this.pageSize,
'key': this.dataForm.key,
'bookid' : this.bookid
'bookid' : this.bookid,
'language': language
})
}).then(({data}) => {
if (data && data.code === 0) {
@@ -179,27 +203,23 @@
},
// 获取数据列表
getInfo () {
this.$http({
url: this.$http.adornUrl(`/book/book/info/${this.$route.query.id}`),
method: 'post',
method: 'post'
}).then(({data}) => {
console.log('data at line 182:', data)
this.bookInfo=data.book
})
},
// 每页数
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
this.getDataList(this.language)
},
// 当前页
currentChangeHandle (val) {
this.pageIndex = val
this.getDataList()
this.getDataList(this.language)
},
// 多选
selectionChangeHandle (val) {
@@ -235,7 +255,7 @@
type: 'success',
duration: 1500,
onClose: () => {
this.getDataList()
this.getDataList(this.language)
}
})
} else {
@@ -243,7 +263,74 @@
}
})
})
}
},
// 获取数据列表
getEbookLanguageList () {
var parms = {bookId: this.bookid}
this.$http({
url: this.$http.adornUrl('/book/book/getEbookLanguageList'),
method: 'post',
data: parms
}).then(({data}) => {
if (data && data.code === 0) {
this.languageList = data.list;
//默认请求数据
this.language = this.languageList[0];
this.getDataList(this.language);
}
})
},
//下拉筛选数据
changeLanguage(e){
this.language = e;
this.getDataList(e);
},
//上传文件
handleRequest(option) {
let formdata = new FormData();
formdata.append("file", option.file);
formdata.append("bookId", this.bookid);
let name = option.file.name; //文件名称判断显示下拉的值
this.fileLoading = true;
this.$http({
url: this.$http.adornUrl('/book/book/uploadEbookAndSplit'),
method: 'post',
data: formdata
}).then(({data}) => {
this.fileLoading = false;
if (data && data.code == 0) {
this.$message({
message: '上传成功',
type: 'success',
duration: 1500,
onClose: () => {
this.getDataList(this.language)
}
})
//根据文件名称判断显示
if(name.includes('English')||name.includes('english')){
this.language = 'English';
}else if(name.includes('Spanish')||name.includes('spanish')){
this.language = 'Spanish';
}
this.getDataList(this.language);
} else {
this.$message.error("上传失败");
}
})
},
handleRemove(file) {
this.fileList = []
},
}
}
</script>
<style lang="less" scoped>
/deep/ .el-uploadvideo{
display: flex;
}
/deep/ .el-uploadvideo .el-upload-list--text{
margin-left: 20px;
}
</style>