fixed 修改产品类型和新闻导入导出
This commit is contained in:
parent
b8366d732e
commit
a3ed8d0a73
@ -12,11 +12,17 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="24">
|
||||||
<el-form-item :label-width="labelWidth" label="新闻标题" prop="news_title">
|
<el-form-item :label-width="labelWidth" label="新闻标题" prop="news_title">
|
||||||
<el-input v-model='formData.news_title' type="text" placeholder='请输入新闻标题'></el-input>
|
<el-input v-model='formData.news_title' type="text" placeholder='请输入新闻标题'></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span='24'>
|
||||||
|
<el-form-item :label-width='labelWidth' label='新闻封面' prop='news_cover'>
|
||||||
|
<UploadImage ref='uploadRef' v-model='formData.news_cover' :data=uoloadData :limit='1' :fileSize='5'
|
||||||
|
:drag='true' :isShowTip='false' />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item :label-width="labelWidth" label="新闻简介" prop="news_intro">
|
<el-form-item :label-width="labelWidth" label="新闻简介" prop="news_intro">
|
||||||
<el-input v-model='formData.news_intro' type="textarea" :rows="5" placeholder='请输入新闻简介'></el-input>
|
<el-input v-model='formData.news_intro' type="textarea" :rows="5" placeholder='请输入新闻简介'></el-input>
|
||||||
@ -34,13 +40,12 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item :label-width="labelWidth" label="发布日期" prop="news_issue_date">
|
<el-form-item :label-width="labelWidth" label="发布日期" prop="news_issue_date">
|
||||||
<el-date-picker v-model="formData.news_issue_date" type="datetime" value-format="YYYY-MM-DD HH:mm"
|
<el-date-picker v-model="formData.news_issue_date" type="date" value-format="YYYY-MM-DD" placeholder="发布日期" />
|
||||||
placeholder="发布日期" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item :label-width="labelWidth" label="浏览次数" prop="news_views_num">
|
<el-form-item :label-width="labelWidth" label="浏览次数" prop="news_views_num">
|
||||||
<el-input-number v-model='formData.news_views_num' controls-position='right' :min='1'></el-input-number>
|
<el-input-number v-model='formData.news_views_num' controls-position='right' :min='0'></el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
@ -50,6 +55,9 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item :label-width="labelWidth" label="新闻内容" prop="news_content">
|
<el-form-item :label-width="labelWidth" label="新闻内容" prop="news_content">
|
||||||
|
<div class="copy-btn-box">
|
||||||
|
<el-button @click="handleCopyRichText" class="copy-btn">获取富文本内容</el-button>
|
||||||
|
</div>
|
||||||
<RichText v-model='formData.news_content' :min-height='196'></RichText>
|
<RichText v-model='formData.news_content' :min-height='196'></RichText>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -70,6 +78,7 @@
|
|||||||
import { reactive, ref, watch } from "vue";
|
import { reactive, ref, watch } from "vue";
|
||||||
import { addNews, getDictionary } from "~/service/news";
|
import { addNews, getDictionary } from "~/service/news";
|
||||||
import { useLoginStore } from "~/store";
|
import { useLoginStore } from "~/store";
|
||||||
|
import { ElMessage } from "element-plus";
|
||||||
|
|
||||||
// --业务参数
|
// --业务参数
|
||||||
|
|
||||||
@ -85,6 +94,11 @@ async function get_news_type() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 复制富文本内容
|
||||||
|
async function handleCopyRichText() {
|
||||||
|
let text = await navigator.clipboard.writeText(formData.news_content);
|
||||||
|
ElMessage.success("富文本内容复制成功")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -127,6 +141,12 @@ const rules = reactive({
|
|||||||
message: '新闻标题不能为空'
|
message: '新闻标题不能为空'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
news_cover: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '新闻封面不能为空'
|
||||||
|
}
|
||||||
|
],
|
||||||
news_sort: [
|
news_sort: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
@ -175,4 +195,11 @@ const handleResetClick = async (formEl) => {
|
|||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped></style>
|
<style lang="less" scoped>
|
||||||
|
.copy-btn-box {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: right;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
@ -1,68 +1,65 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog v-model="props.modelValue" title="新闻详情" width="900px" @closed="closeDialog" @open="openDialog">
|
<el-dialog v-model="props.modelValue" title="新闻详情" width="900px" @closed="closeDialog" @open="openDialog">
|
||||||
<el-form ref="formRef" :model="formData" :disabled="true">
|
<el-form ref="formRef" :model="formData" :disabled="true">
|
||||||
<el-row>
|
<el-row>
|
||||||
|
|
||||||
|
<el-col :span="12">
|
||||||
<el-col :span="12">
|
<el-form-item :label-width="labelWidth" label="新闻类型" prop="news_type">
|
||||||
<el-form-item label="新闻类型" prop="news_type">
|
<el-select v-model="formData.news_type" clearable>
|
||||||
<el-select v-model="formData.news_type" clearable placeholder="请选择">
|
<el-option v-for="item in news_type" :key="item.dictionary_guid" :label="item.dictionary_name"
|
||||||
<el-option
|
:value="item.dictionary_value"></el-option>
|
||||||
v-for="item in news_type"
|
</el-select>
|
||||||
:key="item.dictionary_guid" :label="item.dictionary_name"
|
</el-form-item>
|
||||||
:value="item.dictionary_value"
|
</el-col>
|
||||||
></el-option>
|
<el-col :span="24">
|
||||||
</el-select>
|
<el-form-item :label-width="labelWidth" label="新闻标题" prop="news_title">
|
||||||
</el-form-item>
|
<el-input v-model='formData.news_title' type="text"></el-input>
|
||||||
</el-col>
|
</el-form-item>
|
||||||
<el-col :span="12">
|
</el-col>
|
||||||
<el-form-item :label-width="labelWidth" label="新闻标题" prop="news_title">
|
<el-col :span='24'>
|
||||||
<el-input v-model='formData.news_title' type="text" placeholder='请输入新闻标题'></el-input>
|
<el-form-item :label-width='labelWidth' label='新闻封面' prop='news_cover'>
|
||||||
</el-form-item>
|
<UploadImage ref='uploadRef' v-model='formData.news_cover' :data=uoloadData :limit='1' :fileSize='5'
|
||||||
</el-col>
|
:drag='true' :isShowTip='false' />
|
||||||
<el-col :span="24">
|
</el-form-item>
|
||||||
<el-form-item :label-width="labelWidth" label="新闻简介" prop="news_intro">
|
</el-col>
|
||||||
<el-input v-model='formData.news_intro' type="textarea" :rows="5" placeholder='请输入新闻简介'></el-input>
|
<el-col :span="24">
|
||||||
</el-form-item>
|
<el-form-item :label-width="labelWidth" label="新闻简介" prop="news_intro">
|
||||||
</el-col>
|
<el-input v-model='formData.news_intro' type="textarea" :rows="5"></el-input>
|
||||||
<el-col :span="12">
|
</el-form-item>
|
||||||
<el-form-item :label-width="labelWidth" label="文章来源" prop="news_source">
|
</el-col>
|
||||||
<el-input v-model='formData.news_source' type="text" placeholder='请输入文章来源'></el-input>
|
<el-col :span="12">
|
||||||
</el-form-item>
|
<el-form-item :label-width="labelWidth" label="文章来源" prop="news_source">
|
||||||
</el-col>
|
<el-input v-model='formData.news_source' type="text"></el-input>
|
||||||
<el-col :span="12">
|
</el-form-item>
|
||||||
<el-form-item :label-width="labelWidth" label="跳转链接" prop="news_link">
|
</el-col>
|
||||||
<el-input v-model='formData.news_link' type="text" placeholder='请输入跳转链接'></el-input>
|
<el-col :span="12">
|
||||||
</el-form-item>
|
<el-form-item :label-width="labelWidth" label="跳转链接" prop="news_link">
|
||||||
</el-col>
|
<el-input v-model='formData.news_link' type="text"></el-input>
|
||||||
<el-col :span="12">
|
</el-form-item>
|
||||||
<el-form-item
|
</el-col>
|
||||||
:label-width="labelWidth"
|
<el-col :span="12">
|
||||||
label="发布日期" prop="news_issue_date"
|
<el-form-item :label-width="labelWidth" label="发布日期" prop="news_issue_date">
|
||||||
>
|
<el-date-picker v-model="formData.news_issue_date" type="date" value-format="YYYY-MM-DD" />
|
||||||
<el-date-picker
|
</el-form-item>
|
||||||
v-model="formData.news_issue_date"
|
</el-col>
|
||||||
type="datetime"
|
<el-col :span="12">
|
||||||
value-format="YYYY-MM-DD HH:mm"
|
<el-form-item :label-width="labelWidth" label="浏览次数" prop="news_views_num">
|
||||||
placeholder="发布日期"
|
<el-input-number v-model='formData.news_views_num' controls-position='right' :min='0'></el-input-number>
|
||||||
/>
|
</el-form-item>
|
||||||
</el-form-item>
|
</el-col>
|
||||||
</el-col>
|
<el-col :span="12">
|
||||||
<el-col :span="12">
|
<el-form-item :label-width="labelWidth" label="新闻排序" prop="news_sort">
|
||||||
<el-form-item :label-width="labelWidth" label="浏览次数" prop="news_views_num">
|
<el-input-number v-model='formData.news_sort' controls-position='right' :min='1'></el-input-number>
|
||||||
<el-input-number v-model='formData.news_views_num' controls-position='right' :min='1'></el-input-number>
|
</el-form-item>
|
||||||
</el-form-item>
|
</el-col>
|
||||||
</el-col>
|
<el-col :span="24">
|
||||||
<el-col :span="12">
|
<el-form-item :label-width="labelWidth" label="新闻内容" prop="news_content">
|
||||||
<el-form-item :label-width="labelWidth" label="新闻排序" prop="news_sort">
|
<!-- <div class="copy-btn-box">
|
||||||
<el-input-number v-model='formData.news_sort' controls-position='right' :min='1'></el-input-number>
|
<el-button @click="handleCopyRichText" class="copy-btn" >获取富文本内容</el-button>
|
||||||
</el-form-item>
|
</div> -->
|
||||||
</el-col>
|
<RichText v-model='formData.news_content' :min-height='196'></RichText>
|
||||||
<el-col :span="24">
|
</el-form-item>
|
||||||
<el-form-item :label-width="labelWidth" label="新闻内容" prop="news_content">
|
</el-col>
|
||||||
<RichText v-model='formData.news_content' :min-height='196'></RichText>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
@ -71,24 +68,34 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { reactive, ref, watch } from "vue";
|
import { reactive, ref, watch } from "vue";
|
||||||
import { isEmptyObject } from "~/utils/index";
|
|
||||||
import { getDictionary } from '~/service/news';
|
import { getDictionary } from '~/service/news';
|
||||||
|
|
||||||
|
// 打开弹窗时执行
|
||||||
|
const openDialog = async () => {
|
||||||
|
|
||||||
|
await get_news_type()
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
// --业务参数
|
// --业务参数
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// --业务方法
|
// --业务方法
|
||||||
|
|
||||||
// 字典获取
|
// 字典获取
|
||||||
const news_type = ref([]);
|
const news_type = ref([]);
|
||||||
async function get_news_type() {
|
async function get_news_type() {
|
||||||
await getDictionary({ dictionary_value: 'news_type'}).then((res) => {
|
await getDictionary({ dictionary_value: 'news_type' }).then((res) => {
|
||||||
news_type.value = res
|
news_type.value = res
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 复制富文本内容
|
||||||
|
async function handleCopyRichText() {
|
||||||
|
let text = await navigator.clipboard.writeText(formData.news_content);
|
||||||
|
ElMessage.success("富文本内容复制成功")
|
||||||
|
}
|
||||||
|
|
||||||
// --基础参数
|
// --基础参数
|
||||||
const formRef = ref();
|
const formRef = ref();
|
||||||
@ -108,16 +115,9 @@ const formData = ref({
|
|||||||
// --基础方法
|
// --基础方法
|
||||||
watch(props, (v) => {
|
watch(props, (v) => {
|
||||||
formData.value = v.data;
|
formData.value = v.data;
|
||||||
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// 打开弹窗时执行
|
|
||||||
const openDialog = () => {
|
});
|
||||||
|
|
||||||
get_news_type()
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
const closeDialog = () => {
|
const closeDialog = () => {
|
||||||
emits("update:modelValue", false);
|
emits("update:modelValue", false);
|
||||||
@ -125,5 +125,10 @@ const closeDialog = () => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
.copy-btn-box {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: right;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -2,67 +2,65 @@
|
|||||||
<el-dialog v-model="props.modelValue" title="编辑新闻" width="900px" @closed="closeDialog" @open="openDialog">
|
<el-dialog v-model="props.modelValue" title="编辑新闻" width="900px" @closed="closeDialog" @open="openDialog">
|
||||||
<el-form ref="formRef" :model="formData" :rules="rules">
|
<el-form ref="formRef" :model="formData" :rules="rules">
|
||||||
<el-row>
|
<el-row>
|
||||||
|
|
||||||
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="新闻类型" prop="news_type">
|
<el-form-item :label-width="labelWidth" label="新闻类型" prop="news_type">
|
||||||
<el-select v-model="formData.news_type" clearable placeholder="请选择">
|
<el-select v-model="formData.news_type" clearable placeholder="请选择">
|
||||||
<el-option
|
<el-option v-for="item in news_type" :key="item.dictionary_guid" :label="item.dictionary_name"
|
||||||
v-for="item in news_type"
|
:value="item.dictionary_value"></el-option>
|
||||||
:key="item.dictionary_guid" :label="item.dictionary_name"
|
</el-select>
|
||||||
:value="item.dictionary_value"
|
</el-form-item>
|
||||||
></el-option>
|
</el-col>
|
||||||
</el-select>
|
<el-col :span="24">
|
||||||
</el-form-item>
|
<el-form-item :label-width="labelWidth" label="新闻标题" prop="news_title">
|
||||||
</el-col>
|
<el-input v-model='formData.news_title' type="text" placeholder='请输入新闻标题'></el-input>
|
||||||
<el-col :span="12">
|
</el-form-item>
|
||||||
<el-form-item :label-width="labelWidth" label="新闻标题" prop="news_title">
|
</el-col>
|
||||||
<el-input v-model='formData.news_title' type="text" placeholder='请输入新闻标题'></el-input>
|
<el-col :span='24'>
|
||||||
</el-form-item>
|
<el-form-item :label-width='labelWidth' label='新闻封面' prop='news_cover'>
|
||||||
</el-col>
|
<UploadImage ref='uploadRef' v-model='formData.news_cover' :data=uoloadData :limit='1' :fileSize='5'
|
||||||
<el-col :span="24">
|
:drag='true' :isShowTip='false' />
|
||||||
<el-form-item :label-width="labelWidth" label="新闻简介" prop="news_intro">
|
</el-form-item>
|
||||||
<el-input v-model='formData.news_intro' type="textarea" :rows="5" placeholder='请输入新闻简介'></el-input>
|
</el-col>
|
||||||
</el-form-item>
|
<el-col :span="24">
|
||||||
</el-col>
|
<el-form-item :label-width="labelWidth" label="新闻简介" prop="news_intro">
|
||||||
<el-col :span="12">
|
<el-input v-model='formData.news_intro' type="textarea" :rows="5" placeholder='请输入新闻简介'></el-input>
|
||||||
<el-form-item :label-width="labelWidth" label="文章来源" prop="news_source">
|
</el-form-item>
|
||||||
<el-input v-model='formData.news_source' type="text" placeholder='请输入文章来源'></el-input>
|
</el-col>
|
||||||
</el-form-item>
|
<el-col :span="12">
|
||||||
</el-col>
|
<el-form-item :label-width="labelWidth" label="文章来源" prop="news_source">
|
||||||
<el-col :span="12">
|
<el-input v-model='formData.news_source' type="text" placeholder='请输入文章来源'></el-input>
|
||||||
<el-form-item :label-width="labelWidth" label="跳转链接" prop="news_link">
|
</el-form-item>
|
||||||
<el-input v-model='formData.news_link' type="text" placeholder='请输入跳转链接'></el-input>
|
</el-col>
|
||||||
</el-form-item>
|
<el-col :span="12">
|
||||||
</el-col>
|
<el-form-item :label-width="labelWidth" label="跳转链接" prop="news_link">
|
||||||
<el-col :span="12">
|
<el-input v-model='formData.news_link' type="text" placeholder='请输入跳转链接'></el-input>
|
||||||
<el-form-item
|
</el-form-item>
|
||||||
:label-width="labelWidth"
|
</el-col>
|
||||||
label="发布日期" prop="news_issue_date"
|
<el-col :span="12">
|
||||||
>
|
<el-form-item :label-width="labelWidth" label="发布日期" prop="news_issue_date">
|
||||||
<el-date-picker
|
<el-date-picker v-model="formData.news_issue_date" type="date" value-format="YYYY-MM-DD" placeholder="发布日期" />
|
||||||
v-model="formData.news_issue_date"
|
</el-form-item>
|
||||||
type="datetime"
|
</el-col>
|
||||||
value-format="YYYY-MM-DD HH:mm"
|
<el-col :span="12">
|
||||||
placeholder="发布日期"
|
<el-form-item :label-width="labelWidth" label="浏览次数" prop="news_views_num">
|
||||||
/>
|
<el-input-number v-model='formData.news_views_num' controls-position='right' :min='0'></el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item :label-width="labelWidth" label="浏览次数" prop="news_views_num">
|
<el-form-item :label-width="labelWidth" label="新闻排序" prop="news_sort">
|
||||||
<el-input-number v-model='formData.news_views_num' controls-position='right' :min='1'></el-input-number>
|
<el-input-number v-model='formData.news_sort' controls-position='right' :min='1'></el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="24">
|
||||||
<el-form-item :label-width="labelWidth" label="新闻排序" prop="news_sort">
|
<el-form-item :label-width="labelWidth" label="新闻内容" prop="news_content">
|
||||||
<el-input-number v-model='formData.news_sort' controls-position='right' :min='1'></el-input-number>
|
<div class="copy-btn-box">
|
||||||
</el-form-item>
|
<el-button @click="handleCopyRichText" class="copy-btn">获取富文本内容</el-button>
|
||||||
</el-col>
|
</div>
|
||||||
<el-col :span="24">
|
<RichText v-model='formData.news_content' :min-height='196'></RichText>
|
||||||
<el-form-item :label-width="labelWidth" label="新闻内容" prop="news_content">
|
</el-form-item>
|
||||||
<RichText v-model='formData.news_content' :min-height='196'></RichText>
|
</el-col>
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
@ -77,7 +75,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { reactive, ref, watch } from "vue";
|
import { reactive, ref, watch } from "vue";
|
||||||
import { editNews , getDictionary } from "~/service/news";
|
import { editNews, getDictionary } from "~/service/news";
|
||||||
import { useLoginStore } from "~/store";
|
import { useLoginStore } from "~/store";
|
||||||
|
|
||||||
// --业务参数
|
// --业务参数
|
||||||
@ -86,15 +84,19 @@ import { useLoginStore } from "~/store";
|
|||||||
|
|
||||||
// --业务方法
|
// --业务方法
|
||||||
|
|
||||||
// 字典获取
|
// 字典获取
|
||||||
const news_type = ref([]);
|
const news_type = ref([]);
|
||||||
async function get_news_type() {
|
async function get_news_type() {
|
||||||
await getDictionary({ dictionary_value: 'news_type'}).then((res) => {
|
await getDictionary({ dictionary_value: 'news_type' }).then((res) => {
|
||||||
news_type.value = res
|
news_type.value = res
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 复制富文本内容
|
||||||
|
async function handleCopyRichText() {
|
||||||
|
let text = await navigator.clipboard.writeText(formData.news_content);
|
||||||
|
ElMessage.success("富文本内容复制成功")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// --基础参数
|
// --基础参数
|
||||||
@ -123,14 +125,14 @@ const uoloadData = ref({
|
|||||||
// --基础方法
|
// --基础方法
|
||||||
watch(props, (v) => {
|
watch(props, (v) => {
|
||||||
formData.value = v.data;
|
formData.value = v.data;
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// 打开弹窗时执行
|
// 打开弹窗时执行
|
||||||
const openDialog = () => {
|
const openDialog = () => {
|
||||||
get_news_type()
|
get_news_type()
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const closeDialog = () => {
|
const closeDialog = () => {
|
||||||
@ -140,24 +142,30 @@ const closeDialog = () => {
|
|||||||
|
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
news_type: [
|
news_type: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: '新闻类型不能为空'
|
message: '新闻类型不能为空'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
news_title: [
|
news_title: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: '新闻标题不能为空'
|
message: '新闻标题不能为空'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
news_sort: [
|
news_cover: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: '新闻排序不能为空'
|
message: '新闻封面不能为空'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
news_sort: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '新闻排序不能为空'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const handleEditClick = async (formEl) => {
|
const handleEditClick = async (formEl) => {
|
||||||
@ -169,7 +177,7 @@ const handleEditClick = async (formEl) => {
|
|||||||
}
|
}
|
||||||
isBtnLod.value = true;
|
isBtnLod.value = true;
|
||||||
|
|
||||||
|
|
||||||
const { code } = await editNews(formData.value);
|
const { code } = await editNews(formData.value);
|
||||||
if (code == 0) {
|
if (code == 0) {
|
||||||
closeDialog();
|
closeDialog();
|
||||||
@ -185,5 +193,10 @@ const handleResetClick = async (formEl) => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
.copy-btn-box {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: right;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -65,6 +65,12 @@
|
|||||||
<dict-tag :options='news_type' :value='scope.row.news_type' />
|
<dict-tag :options='news_type' :value='scope.row.news_type' />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<template #news_cover="scope">
|
||||||
|
<el-image v-if="scope.row.news_cover" :src="scope.row.news_cover.split(',')[0]" lazy
|
||||||
|
:preview-src-list="scope.row.news_cover.split(',')" :preview-teleported="true" :hide-on-click-modal="true"
|
||||||
|
fit="contain" class="el-avatar"></el-image>
|
||||||
|
<template v-else>暂无图片</template>
|
||||||
|
</template>
|
||||||
|
|
||||||
<!-- 排序 -->
|
<!-- 排序 -->
|
||||||
<template #news_sort='scope'>
|
<template #news_sort='scope'>
|
||||||
@ -146,16 +152,23 @@ const column = [
|
|||||||
prop: "news_type",
|
prop: "news_type",
|
||||||
label: '新闻类型',
|
label: '新闻类型',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
prop: "news_cover",
|
||||||
|
label: '新闻封面',
|
||||||
|
width: "200",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
prop: "news_title",
|
prop: "news_title",
|
||||||
label: '新闻标题',
|
label: '新闻标题',
|
||||||
showOverflowTooltip: true,
|
showOverflowTooltip: true,
|
||||||
|
width: "500",
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
prop: "news_intro",
|
// prop: "news_intro",
|
||||||
label: '新闻简介',
|
// label: '新闻简介',
|
||||||
showOverflowTooltip: true,
|
// showOverflowTooltip: true,
|
||||||
},
|
// width: "400",
|
||||||
|
// },
|
||||||
{
|
{
|
||||||
prop: "news_issue_date",
|
prop: "news_issue_date",
|
||||||
label: '发布日期',
|
label: '发布日期',
|
||||||
@ -164,11 +177,13 @@ const column = [
|
|||||||
{
|
{
|
||||||
prop: "news_views_num",
|
prop: "news_views_num",
|
||||||
label: '浏览次数',
|
label: '浏览次数',
|
||||||
sortable: true
|
sortable: true,
|
||||||
|
width: "150",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: "news_sort",
|
prop: "news_sort",
|
||||||
label: '新闻排序',
|
label: '新闻排序',
|
||||||
|
width: "180",
|
||||||
sortable: true
|
sortable: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -23,18 +23,17 @@
|
|||||||
<el-button type="primary" @click="addProductTypeDialogVisible = true"> 添加 </el-button>
|
<el-button type="primary" @click="addProductTypeDialogVisible = true"> 添加 </el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
|
|
||||||
<!-- 导出 -->
|
|
||||||
<!-- <el-button icon="ElIconDocument" @click="exportExcel(params)">导出</el-button> -->
|
|
||||||
|
|
||||||
<!-- 导入 -->
|
<!-- 导入 -->
|
||||||
<!-- <el-upload class="upload-demo" :action="importExcel" :headers="headers" :on-success="handleExcelSuccess"
|
<el-upload class="upload-demo" :action="importExcel" :headers="headers" :on-success="handleExcelSuccess"
|
||||||
:on-progress="uploadLoading" :on-error="closeUploadLoading" style="margin-left: 10px" :show-file-list="false">
|
:on-progress="uploadLoading" :on-error="closeUploadLoading" style="margin-left: 10px" :show-file-list="false">
|
||||||
<el-button type="primary">导入</el-button>
|
<el-button type="primary">导入</el-button>
|
||||||
</el-upload> -->
|
</el-upload>
|
||||||
|
|
||||||
|
<!-- 导出 -->
|
||||||
|
<el-button icon="ElIconDocument" @click="exportExcel(params)">导出</el-button>
|
||||||
|
|
||||||
<!-- 下载导入模板 -->
|
<!-- 下载导入模板 -->
|
||||||
<!-- <el-button icon="ElIconDownload" @click="downloadTemplate()">下载导入模板</el-button> -->
|
<el-button icon="ElIconDownload" @click="downloadTemplate()">下载导入模板</el-button>
|
||||||
|
|
||||||
|
|
||||||
<!-- 下拉操作 -->
|
<!-- 下拉操作 -->
|
||||||
@ -57,7 +56,8 @@
|
|||||||
:tree-props="{ children: 'children' }">
|
:tree-props="{ children: 'children' }">
|
||||||
<el-table-column type="selection" width="50" align="center" />
|
<el-table-column type="selection" width="50" align="center" />
|
||||||
<el-table-column prop="product_type_name" width="200" label="产品类目名称" :show-overflow-tooltip="true"> </el-table-column>
|
<el-table-column prop="product_type_name" width="200" label="产品类目名称" :show-overflow-tooltip="true"> </el-table-column>
|
||||||
<el-table-column prop="product_type_title" width="200" label="产品类目标题" :show-overflow-tooltip="true"> </el-table-column>
|
<el-table-column prop="product_type_title" width="200" label="产品类目标题" :show-overflow-tooltip="true">
|
||||||
|
</el-table-column>
|
||||||
<el-table-column prop="product_type_icon" width="200" label="产品类目图标" :show-overflow-tooltip="true">
|
<el-table-column prop="product_type_icon" width="200" label="产品类目图标" :show-overflow-tooltip="true">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-image :src="scope.row.product_type_icon" :preview-src-list="[scope.row.product_type_icon]"
|
<el-image :src="scope.row.product_type_icon" :preview-src-list="[scope.row.product_type_icon]"
|
||||||
@ -82,7 +82,8 @@
|
|||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<!-- 添加产品类目 -->
|
<!-- 添加产品类目 -->
|
||||||
<AddProductTypeDialog v-model="addProductTypeDialogVisible" :data="AddProductTypeDialogRow" :done="() => getList()"></AddProductTypeDialog>
|
<AddProductTypeDialog v-model="addProductTypeDialogVisible" :data="AddProductTypeDialogRow" :done="() => getList()">
|
||||||
|
</AddProductTypeDialog>
|
||||||
<!-- 编辑产品类目 -->
|
<!-- 编辑产品类目 -->
|
||||||
<EditProductTypeDialog v-model="EditProductTypeDialogVisible" :data="EditProductTypeDialogRow" :done="() => getList()">
|
<EditProductTypeDialog v-model="EditProductTypeDialogVisible" :data="EditProductTypeDialogRow" :done="() => getList()">
|
||||||
</EditProductTypeDialog>
|
</EditProductTypeDialog>
|
||||||
@ -125,7 +126,6 @@ const headers = {
|
|||||||
// 查询参数
|
// 查询参数
|
||||||
const params = reactive({
|
const params = reactive({
|
||||||
product_type_name: "",
|
product_type_name: "",
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const handleCommand = ({ type, row }) => {
|
const handleCommand = ({ type, row }) => {
|
||||||
|
@ -1,47 +1,50 @@
|
|||||||
import { api, downloadFile, createApiUrl} from '~/utils/axios';
|
import {
|
||||||
|
api,
|
||||||
|
downloadFile,
|
||||||
|
createApiUrl
|
||||||
|
} from '~/utils/axios';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出新闻
|
* 导出新闻
|
||||||
* @param {Object} data
|
* @param {Object} data
|
||||||
* @return {Promise} api
|
* @return {Promise} api
|
||||||
*/
|
*/
|
||||||
export function exportExcel(data) {
|
export function exportExcel(data) {
|
||||||
downloadFile(createApiUrl('News.News/exportExcel'), data);
|
downloadFile(createApiUrl('News.News/exportExcel'), data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 下载新闻模板
|
* 下载新闻模板
|
||||||
* @param {Object} data
|
* @param {Object} data
|
||||||
* @return {Promise} api
|
* @return {Promise} api
|
||||||
*/
|
*/
|
||||||
export function downloadTemplate(data) {
|
export function downloadTemplate(data) {
|
||||||
downloadFile(createApiUrl('News.News/downloadTemplate'), data);
|
downloadFile(createApiUrl('News.News/downloadTemplate'), data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导入新闻
|
* 导入新闻
|
||||||
* @param {Object} data
|
* @param {Object} data
|
||||||
* @return {Promise} api
|
* @return {Promise} api
|
||||||
*/
|
*/
|
||||||
export const importExcel = createApiUrl('News.News/importExcel');
|
export const importExcel = createApiUrl('News.News/importExcel');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取字典值
|
/**
|
||||||
* @param {Object} data
|
* 获取字典值
|
||||||
* @return {Promise} api
|
* @param {Object} data
|
||||||
*/
|
* @return {Promise} api
|
||||||
export function getDictionary(data) {
|
*/
|
||||||
return api.post('Dictionary.Dictionary/getDictionary', data, {
|
export function getDictionary(data) {
|
||||||
});
|
return api.post('Dictionary.Dictionary/getDictionary', data, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取新闻列表
|
* 获取新闻列表
|
||||||
@ -88,4 +91,4 @@ export function editNews(data) {
|
|||||||
isShowSuccessMessage: true,
|
isShowSuccessMessage: true,
|
||||||
errorMessageText: '编辑失败'
|
errorMessageText: '编辑失败'
|
||||||
});
|
});
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user