1.后台增加期刊的字段,新增,编辑

This commit is contained in:
王创世 2025-04-27 09:15:39 +08:00
parent be7c359f6c
commit 9790c4680c
4 changed files with 94 additions and 173 deletions

View File

@ -6,7 +6,7 @@ VITE_LOGIN_TITLE = '今日固始电子版 管理平台'
VITE_LOGIN_EN_TITLE = 'GuShi Platform' VITE_LOGIN_EN_TITLE = 'GuShi Platform'
VITE_WEB_BASE_API = '/api' VITE_WEB_BASE_API = '/api'
# 本地Mock地址 # 本地Mock地址
VITE_SERVER = 'https://democs.gushitv.com/' VITE_SERVER = 'https://jinrigushitwo.gushitv.com/'
# 路由模式[哈希模式 AND WEB模式 [hash | history, 这两个模式是固定死的,不能乱改值] # 路由模式[哈希模式 AND WEB模式 [hash | history, 这两个模式是固定死的,不能乱改值]
VITE_ROUTER_MODE = hash VITE_ROUTER_MODE = hash
# 是否使用全部去除console和debugger # 是否使用全部去除console和debugger

View File

@ -6,7 +6,7 @@ VITE_LOGIN_TITLE = '今日固始电子版 管理平台'
VITE_LOGIN_EN_TITLE = 'GuShi Platform' VITE_LOGIN_EN_TITLE = 'GuShi Platform'
VITE_WEB_BASE_API = '' VITE_WEB_BASE_API = ''
# 后端接口地址 # 后端接口地址
VITE_SERVER = 'https://democs.gushitv.com/' VITE_SERVER = 'https://jinrigushitwo.gushitv.com/'
# 路由模式[哈希模式 AND WEB模式 [hash | history, 这两个模式是固定死的,不能乱改值] # 路由模式[哈希模式 AND WEB模式 [hash | history, 这两个模式是固定死的,不能乱改值]
VITE_ROUTER_MODE = hash VITE_ROUTER_MODE = hash
# 是否使用全部去除console和debugger # 是否使用全部去除console和debugger

View File

@ -5,19 +5,12 @@
<el-col :span="9"> <el-col :span="9">
<el-form :model="form" label-width="auto"> <el-form :model="form" label-width="auto">
<el-form-item label="报刊日期"> <el-form-item label="报刊日期">
<el-date-picker <el-date-picker v-model="form.datetime" type="date" value-format="YYYY-MM-DD" placeholder="选择报刊日期"
v-model="form.datetime" style="width: 100%"></el-date-picker>
type="date" </el-form-item>
value-format="YYYY-MM-DD" <el-form-item label="期刊">
placeholder="选择报刊日期" <el-input v-model="form.periods" placeholder="输入期刊" />
style="width: 100%"
></el-date-picker>
</el-form-item> </el-form-item>
<!-- <el-form-item label="报刊类型">-->
<!-- <el-select v-model="form.type_id" placeholder="选择报刊类型">-->
<!-- <el-option v-for="item in typeList" :label="item.type" :value="item.id"/>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item> <el-form-item>
<el-button @click="addBlack" class="mt-2">新增版面</el-button> <el-button @click="addBlack" class="mt-2">新增版面</el-button>
</el-form-item> </el-form-item>
@ -53,14 +46,15 @@
<el-input @blur="addSort" type="number" v-model="item.weight" placeholder="输入版面排序" /> <el-input @blur="addSort" type="number" v-model="item.weight" placeholder="输入版面排序" />
</el-form-item> </el-form-item>
<el-form-item label="版面PDF"> <el-form-item label="版面PDF">
<KoiUploadFiles :fileList="item.pdf" acceptType=".pdf" @update:fileList="(file) => updateFileList(file, index)" <KoiUploadFiles :fileList="item.pdf" acceptType=".pdf"
@update:fileList="(file) => updateFileList(file, index)"
@fileSuccess="(file) => getFileList(file, index)"> @fileSuccess="(file) => getFileList(file, index)">
<template #tip>PDF最大为 10M</template> <template #tip>PDF最大为 10M</template>
</KoiUploadFiles> </KoiUploadFiles>
</el-form-item> </el-form-item>
<el-form-item label="版面图片" prop="avatar"> <el-form-item label="版面图片" prop="avatar">
<KoiUploadImage :imageUrl="item.bm_img" @update:imageUrl="(file) => getImgList(file, index)" width="150px" <KoiUploadImage :imageUrl="item.bm_img" @update:imageUrl="(file) => getImgList(file, index)"
height="150px"> width="150px" height="150px">
<template #content> <template #content>
<el-icon> <el-icon>
<Picture /> <Picture />
@ -119,7 +113,8 @@ const backArr = ref([
]); ]);
const form = reactive({ const form = reactive({
datetime: "", datetime: "",
type_id: "" type_id: "",
periods:""
}); });
const addBlack = () => { const addBlack = () => {
// backArr weight // backArr weight
@ -151,10 +146,10 @@ const handleMineSave = async () => {
koiMsgError('请选择报纸日期'); koiMsgError('请选择报纸日期');
return; return;
} }
// if (form.type_id == '' || form.type_id == null) { if (form.periods == '' || form.periods == null) {
// koiMsgError(''); koiMsgError('请输入期刊');
// return; return;
// } }
for (let i = 0; i < backArr.value.length; i++) { for (let i = 0; i < backArr.value.length; i++) {
if (backArr.value[i].bm_name == '' || backArr.value[i].bm_img == '' || backArr.value[i].bm_pdf == '') { if (backArr.value[i].bm_name == '' || backArr.value[i].bm_img == '' || backArr.value[i].bm_pdf == '') {
koiMsgError('请完善版面[' + (i + 1) + ']信息'); koiMsgError('请完善版面[' + (i + 1) + ']信息');
@ -203,6 +198,4 @@ const del = (index) => {
backArr.value = [...arr]; backArr.value = [...arr];
}; };
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss"></style>
</style>

View File

@ -12,31 +12,13 @@
<div class="h-20px"></div> <div class="h-20px"></div>
<!-- 数据表格 --> <!-- 数据表格 -->
<el-table <el-table v-if="refreshTreeTable" v-loading="loading" border :indent="30" :data="tableList"
v-if="refreshTreeTable" :default-expand-all="isExpandAll" row-key="uuid" @row-click="rowClick" :lazy="true" :load="load"
v-loading="loading" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" empty-text="暂时没有数据哟🌻">
border <el-table-column label="报纸期刊" prop="datetime" align="left" :show-overflow-tooltip="true" width="400px">
:indent="30"
:data="tableList"
:default-expand-all="isExpandAll"
row-key="uuid"
@row-click="rowClick"
:lazy="true"
:load="load"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
empty-text="暂时没有数据哟🌻"
>
<el-table-column
label="报纸期刊"
prop="datetime"
align="left"
:show-overflow-tooltip="true"
width="400px"
>
<template #default="scope"> <template #default="scope">
<el-input @blur="addSort(scope.row)" v-if="scope.row.level == 2" :maxlength="2" class="center-input" <el-input @blur="addSort(scope.row)" v-if="scope.row.level == 2" :maxlength="2" class="center-input"
style="max-width: 50px;margin-right: 10px" style="max-width: 50px;margin-right: 10px" v-model="scope.row.weight"></el-input>
v-model="scope.row.weight"></el-input>
<span class="cursor-pointer">{{ scope.row.datetime }}</span> <span class="cursor-pointer">{{ scope.row.datetime }}</span>
</template> </template>
</el-table-column> </el-table-column>
@ -51,7 +33,8 @@
<div v-if="scope.row.level == 1">版面数量{{ scope.row.bm_count }}</div> <div v-if="scope.row.level == 1">版面数量{{ scope.row.bm_count }}</div>
<div v-if="scope.row.level == 2">新闻数量{{ scope.row.new_count }}</div> <div v-if="scope.row.level == 2">新闻数量{{ scope.row.new_count }}</div>
<div v-if="scope.row.level == 3"> <div v-if="scope.row.level == 3">
<audio v-if="scope.row.mp_url!=null&&scope.row.mp_url!=''" controls :src="'https://jinrigushi.gushitv.com/'+scope.row.mp_url"></audio> <audio v-if="scope.row.mp_url != null && scope.row.mp_url != ''" controls
:src="'https://jinrigushitwo.gushitv.com/' + scope.row.mp_url"></audio>
<span v-if="scope.row.mp_url == null || scope.row.mp_url == ''">语音生成中...</span> <span v-if="scope.row.mp_url == null || scope.row.mp_url == ''">语音生成中...</span>
</div> </div>
</template> </template>
@ -59,88 +42,39 @@
<el-table-column label="操作" align="center" width="450px" fixed="right"> <el-table-column label="操作" align="center" width="450px" fixed="right">
<template #default="{ row }"> <template #default="{ row }">
<el-button v-if="row.level==1" <el-button v-if="row.level == 1" type="info" @click="openA(row)">预览
type="info"
@click="openA(row)"
>预览
</el-button> </el-button>
<el-button v-if="row.level==1 && row.status==1" <el-button v-if="row.level == 1 && row.status == 1" type="primary" @click="statusUpdate(row, 0)">隐藏
type="primary"
@click="statusUpdate(row,0)"
>隐藏
</el-button> </el-button>
<el-button v-if="row.level==1 && row.status==0" <el-button v-if="row.level == 1 && row.status == 0" type="success" @click="statusUpdate(row, 1)">显示
type="success"
@click="statusUpdate(row,1)"
>显示
</el-button> </el-button>
<el-button v-if="row.level==1" <el-button v-if="row.level == 1" type="warning" @click="handleAddDate(row)">添加版面
type="warning"
@click="handleAddDate(row)"
>添加版面
</el-button> </el-button>
<!-- <el-button v-if="row.level==1"--> <el-button v-if="row.level == 1" type="success" @click="handleUpdateDate(row)">修改
<!-- type="warning"--> </el-button>
<el-button v-if="row.level == 1" type="danger" @click="handleDeleteDate(row)">删除
<!-- @click="handleUpdateDate(row)"-->
<!-- >修改-->
<!-- </el-button>-->
<el-button v-if="row.level==1"
type="danger"
@click="handleDeleteDate(row)"
>删除
</el-button> </el-button>
<el-button v-if="row.level==2" <el-button v-if="row.level == 2" type="info" plain @click="openUrl('/paper/article/index/' + row.id)">添加新闻
type="info"
plain
@click="openUrl('/paper/article/index/'+row.id)"
>添加新闻
</el-button> </el-button>
<el-button v-if="row.level==2" <el-button v-if="row.level == 2" type="warning" plain @click="handleUpdateBm(row)">修改
type="warning"
plain
@click="handleUpdateBm(row)"
>修改
</el-button> </el-button>
<el-button v-if="row.level==2" <el-button v-if="row.level == 2" type="danger" plain @click="handleDeleteBm(row)">删除
type="danger"
plain
@click="handleDeleteBm(row)"
>删除
</el-button> </el-button>
<el-button v-if="row.level==3" <el-button v-if="row.level == 3" type="primary" icon="Edit" circle plain
type="primary" @click="openUrl('/paper/article/update/' + row.id)"></el-button>
icon="Edit" <el-button v-if="row.level == 3" type="danger" icon="Delete" circle plain
circle @click="handleDeleteNews(row)"></el-button>
plain
@click="openUrl('/paper/article/update/'+row.id)"
></el-button>
<el-button v-if="row.level==3"
type="danger"
icon="Delete"
circle
plain
@click="handleDeleteNews(row)"
></el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="h-20px"></div> <div class="h-20px"></div>
<!-- {{ searchParams.pageNo }} --- {{ searchParams.pageSize }} --> <!-- {{ searchParams.pageNo }} --- {{ searchParams.pageSize }} -->
<!-- 分页 --> <!-- 分页 -->
<el-pagination <el-pagination background v-model:current-page="pageNumber.page" v-model:page-size="pageNumber.size"
background :page-sizes="[10, 20, 50]" layout="total, sizes, prev, pager, next, jumper" :total="total"
v-model:current-page="pageNumber.page" @size-change="handleListPageSize" @current-change="handleListPage" />
v-model:page-size="pageNumber.size"
:page-sizes="[10, 20, 50]"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
@size-change="handleListPageSize"
@current-change="handleListPage"
/>
</KoiCard> </KoiCard>
<KoiDialog ref="koiDrawerDate" :width="500" :height="100" title="期刊编辑" @koiConfirm="handleConfirmDateDo" <KoiDialog ref="koiDrawerDate" :width="500" :height="100" title="期刊编辑" @koiConfirm="handleConfirmDateDo"
@koiCancel="handleCancel" :loading="confirmLoading"> @koiCancel="handleCancel" :loading="confirmLoading">
@ -149,27 +83,19 @@
<el-col :span="18"> <el-col :span="18">
<el-form :model="Dateform" label-width="auto"> <el-form :model="Dateform" label-width="auto">
<el-form-item label="报刊日期"> <el-form-item label="报刊日期">
<el-date-picker <el-date-picker v-model="Dateform.datetime" type="date" value-format="YYYY-MM-DD" placeholder="选择报刊日期"
v-model="Dateform.datetime" style="width: 100%"></el-date-picker>
type="date" </el-form-item>
value-format="YYYY-MM-DD" <el-form-item label="期刊">
placeholder="选择报刊日期" <el-input v-model="Dateform.periods" placeholder="输入期刊" />
style="width: 100%"
></el-date-picker>
</el-form-item> </el-form-item>
<!-- <el-form-item label="报刊类型">-->
<!-- <el-select v-model="Dateform.type_id" placeholder="选择报刊类型">-->
<!-- <el-option v-for="item in typeList" :label="item.type" :value="item.id"/>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
</el-form> </el-form>
</el-col> </el-col>
</el-row> </el-row>
</template> </template>
</KoiDialog> </KoiDialog>
<KoiDialog ref="koiDrawerBm" :width="500" :height="400" :title="Bmform.id == 0 ? '添加版面' : '修改版面'" <KoiDialog ref="koiDrawerBm" :width="500" :height="400" :title="Bmform.id == 0 ? '添加版面' : '修改版面'"
@koiConfirm="handleConfirmBmDo" @koiConfirm="handleConfirmBmDo" @koiCancel="handleCancel" :loading="confirmLoading">
@koiCancel="handleCancel" :loading="confirmLoading">
<template #content> <template #content>
<el-row> <el-row>
<el-col :span="18"> <el-col :span="18">
@ -253,7 +179,8 @@ const getTypelist = async () => {
} }
const Dateform = reactive({ const Dateform = reactive({
datetime: "", datetime: "",
type_id: "" type_id: "",
periods:""
}); });
const total = ref(0); const total = ref(0);
const pageNumber = reactive({ page: 1, size: 10 }); const pageNumber = reactive({ page: 1, size: 10 });
@ -285,9 +212,9 @@ const Mp3Check = async (row) => {
} }
const openA = (item) => { const openA = (item) => {
console.log(item); console.log(item);
var url="https://jinrigushi.gushitv.com/#/?date="+item.datetime; var url = "https://jinrigushitwo.gushitv.com/#/?date=" + item.datetime;
if (item.status == 0) { if (item.status == 0) {
url="https://jinrigushi.gushitv.com/#/?date="+item.datetime+"&status=1"; url = "https://jinrigushitwo.gushitv.com/#/?date=" + item.datetime + "&status=1";
} }
window.open(url); window.open(url);
} }
@ -507,6 +434,7 @@ const handleUpdateDate = (row) => {
console.log(row); console.log(row);
Dateform.datetime = row.datetime; Dateform.datetime = row.datetime;
Dateform.type_id = row.type_id; Dateform.type_id = row.type_id;
Dateform.periods = row.periods;
Dateform.id = row.id; Dateform.id = row.id;
koiDrawerDate.value.koiOpen(); koiDrawerDate.value.koiOpen();
}; };