fixed 修改产品类型和新闻导入导出
This commit is contained in:
parent
b8366d732e
commit
a3ed8d0a73
@ -12,11 +12,17 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-col :span="24">
|
||||
<el-form-item :label-width="labelWidth" label="新闻标题" prop="news_title">
|
||||
<el-input v-model='formData.news_title' type="text" placeholder='请输入新闻标题'></el-input>
|
||||
</el-form-item>
|
||||
</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-form-item :label-width="labelWidth" label="新闻简介" prop="news_intro">
|
||||
<el-input v-model='formData.news_intro' type="textarea" :rows="5" placeholder='请输入新闻简介'></el-input>
|
||||
@ -34,13 +40,12 @@
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<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"
|
||||
placeholder="发布日期" />
|
||||
<el-date-picker v-model="formData.news_issue_date" type="date" value-format="YYYY-MM-DD" placeholder="发布日期" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<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-col>
|
||||
<el-col :span="12">
|
||||
@ -50,6 +55,9 @@
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<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>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -70,6 +78,7 @@
|
||||
import { reactive, ref, watch } from "vue";
|
||||
import { addNews, getDictionary } from "~/service/news";
|
||||
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: '新闻标题不能为空'
|
||||
}
|
||||
],
|
||||
news_cover: [
|
||||
{
|
||||
required: true,
|
||||
message: '新闻封面不能为空'
|
||||
}
|
||||
],
|
||||
news_sort: [
|
||||
{
|
||||
required: true,
|
||||
@ -175,4 +195,11 @@ const handleResetClick = async (formEl) => {
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped></style>
|
||||
<style lang="less" scoped>
|
||||
.copy-btn-box {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: right;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
</style>
|
||||
|
@ -3,54 +3,48 @@
|
||||
<el-form ref="formRef" :model="formData" :disabled="true">
|
||||
<el-row>
|
||||
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="新闻类型" prop="news_type">
|
||||
<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"
|
||||
:value="item.dictionary_value"
|
||||
></el-option>
|
||||
<el-form-item :label-width="labelWidth" label="新闻类型" prop="news_type">
|
||||
<el-select v-model="formData.news_type" clearable>
|
||||
<el-option v-for="item in news_type" :key="item.dictionary_guid" :label="item.dictionary_name"
|
||||
:value="item.dictionary_value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-col :span="24">
|
||||
<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"></el-input>
|
||||
</el-form-item>
|
||||
</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-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"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item :label-width="labelWidth" label="文章来源" prop="news_source">
|
||||
<el-input v-model='formData.news_source' type="text" placeholder='请输入文章来源'></el-input>
|
||||
<el-input v-model='formData.news_source' type="text"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item :label-width="labelWidth" label="跳转链接" prop="news_link">
|
||||
<el-input v-model='formData.news_link' type="text" placeholder='请输入跳转链接'></el-input>
|
||||
<el-input v-model='formData.news_link' type="text"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<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"
|
||||
placeholder="发布日期"
|
||||
/>
|
||||
<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-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<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-col>
|
||||
<el-col :span="12">
|
||||
@ -60,6 +54,9 @@
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<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>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -71,9 +68,15 @@
|
||||
|
||||
<script setup>
|
||||
import { reactive, ref, watch } from "vue";
|
||||
import { isEmptyObject } from "~/utils/index";
|
||||
import { getDictionary } from '~/service/news';
|
||||
|
||||
// 打开弹窗时执行
|
||||
const openDialog = async () => {
|
||||
|
||||
await get_news_type()
|
||||
|
||||
};
|
||||
|
||||
// --业务参数
|
||||
|
||||
|
||||
@ -88,7 +91,11 @@ import { getDictionary } from '~/service/news';
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 复制富文本内容
|
||||
async function handleCopyRichText() {
|
||||
let text = await navigator.clipboard.writeText(formData.news_content);
|
||||
ElMessage.success("富文本内容复制成功")
|
||||
}
|
||||
|
||||
// --基础参数
|
||||
const formRef = ref();
|
||||
@ -112,18 +119,16 @@ watch(props, (v) => {
|
||||
|
||||
});
|
||||
|
||||
// 打开弹窗时执行
|
||||
const openDialog = () => {
|
||||
|
||||
get_news_type()
|
||||
|
||||
};
|
||||
|
||||
const closeDialog = () => {
|
||||
emits("update:modelValue", false);
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
|
||||
.copy-btn-box {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: right;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
</style>
|
||||
|
@ -5,21 +5,24 @@
|
||||
|
||||
|
||||
<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-option
|
||||
v-for="item in news_type"
|
||||
:key="item.dictionary_guid" :label="item.dictionary_name"
|
||||
:value="item.dictionary_value"
|
||||
></el-option>
|
||||
<el-option v-for="item in news_type" :key="item.dictionary_guid" :label="item.dictionary_name"
|
||||
:value="item.dictionary_value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-col :span="24">
|
||||
<el-form-item :label-width="labelWidth" label="新闻标题" prop="news_title">
|
||||
<el-input v-model='formData.news_title' type="text" placeholder='请输入新闻标题'></el-input>
|
||||
</el-form-item>
|
||||
</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-form-item :label-width="labelWidth" label="新闻简介" prop="news_intro">
|
||||
<el-input v-model='formData.news_intro' type="textarea" :rows="5" placeholder='请输入新闻简介'></el-input>
|
||||
@ -36,21 +39,13 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<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"
|
||||
placeholder="发布日期"
|
||||
/>
|
||||
<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" placeholder="发布日期" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<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-col>
|
||||
<el-col :span="12">
|
||||
@ -60,6 +55,9 @@
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<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>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -94,7 +92,11 @@ import { useLoginStore } from "~/store";
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 复制富文本内容
|
||||
async function handleCopyRichText() {
|
||||
let text = await navigator.clipboard.writeText(formData.news_content);
|
||||
ElMessage.success("富文本内容复制成功")
|
||||
}
|
||||
|
||||
|
||||
// --基础参数
|
||||
@ -151,6 +153,12 @@ const rules = reactive({
|
||||
message: '新闻标题不能为空'
|
||||
}
|
||||
],
|
||||
news_cover: [
|
||||
{
|
||||
required: true,
|
||||
message: '新闻封面不能为空'
|
||||
}
|
||||
],
|
||||
news_sort: [
|
||||
{
|
||||
required: true,
|
||||
@ -185,5 +193,10 @@ const handleResetClick = async (formEl) => {
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
|
||||
.copy-btn-box {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: right;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
</style>
|
||||
|
@ -65,6 +65,12 @@
|
||||
<dict-tag :options='news_type' :value='scope.row.news_type' />
|
||||
</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'>
|
||||
@ -146,16 +152,23 @@ const column = [
|
||||
prop: "news_type",
|
||||
label: '新闻类型',
|
||||
},
|
||||
{
|
||||
prop: "news_cover",
|
||||
label: '新闻封面',
|
||||
width: "200",
|
||||
},
|
||||
{
|
||||
prop: "news_title",
|
||||
label: '新闻标题',
|
||||
showOverflowTooltip: true,
|
||||
width: "500",
|
||||
},
|
||||
{
|
||||
prop: "news_intro",
|
||||
label: '新闻简介',
|
||||
showOverflowTooltip: true,
|
||||
},
|
||||
// {
|
||||
// prop: "news_intro",
|
||||
// label: '新闻简介',
|
||||
// showOverflowTooltip: true,
|
||||
// width: "400",
|
||||
// },
|
||||
{
|
||||
prop: "news_issue_date",
|
||||
label: '发布日期',
|
||||
@ -164,11 +177,13 @@ const column = [
|
||||
{
|
||||
prop: "news_views_num",
|
||||
label: '浏览次数',
|
||||
sortable: true
|
||||
sortable: true,
|
||||
width: "150",
|
||||
},
|
||||
{
|
||||
prop: "news_sort",
|
||||
label: '新闻排序',
|
||||
width: "180",
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
|
@ -23,18 +23,17 @@
|
||||
<el-button type="primary" @click="addProductTypeDialogVisible = true"> 添加 </el-button>
|
||||
</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">
|
||||
<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' }">
|
||||
<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_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">
|
||||
<template #default="scope">
|
||||
<el-image :src="scope.row.product_type_icon" :preview-src-list="[scope.row.product_type_icon]"
|
||||
@ -82,7 +82,8 @@
|
||||
</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>
|
||||
@ -125,7 +126,6 @@ const headers = {
|
||||
// 查询参数
|
||||
const params = reactive({
|
||||
product_type_name: "",
|
||||
|
||||
});
|
||||
|
||||
const handleCommand = ({ type, row }) => {
|
||||
|
@ -1,4 +1,8 @@
|
||||
import { api, downloadFile, createApiUrl} from '~/utils/axios';
|
||||
import {
|
||||
api,
|
||||
downloadFile,
|
||||
createApiUrl
|
||||
} from '~/utils/axios';
|
||||
|
||||
|
||||
/**
|
||||
@ -38,8 +42,7 @@ import { api, downloadFile, createApiUrl} from '~/utils/axios';
|
||||
* @return {Promise} api
|
||||
*/
|
||||
export function getDictionary(data) {
|
||||
return api.post('Dictionary.Dictionary/getDictionary', data, {
|
||||
});
|
||||
return api.post('Dictionary.Dictionary/getDictionary', data, {});
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user