Browse Source

优化:编辑文章改抽屉模式

dev
科技小王子 2 months ago
parent
commit
89495d112e
  1. 87
      src/views/cms/cmsArticle/components/articleEdit.vue

87
src/views/cms/cmsArticle/components/articleEdit.vue

@ -1,7 +1,7 @@
<!-- 编辑弹窗 --> <!-- 编辑弹窗 -->
<template> <template>
<ele-modal
width="75%"
<a-drawer
width="70%"
:visible="visible" :visible="visible"
:maskClosable="false" :maskClosable="false"
:maxable="maxable" :maxable="maxable"
@ -11,6 +11,9 @@
:confirm-loading="loading" :confirm-loading="loading"
@ok="save" @ok="save"
> >
<template #extra>
<a-button type="primary" style="margin-right: 8px" @click="save">保存</a-button>
</template>
<a-form <a-form
ref="formRef" ref="formRef"
:model="form" :model="form"
@ -21,14 +24,8 @@
" "
> >
<a-spin :spinning="loading"> <a-spin :spinning="loading">
<a-tabs type="card" v-model:active-key="active" @change="onChange">
<!-- <template #rightExtra>-->
<!-- <a-radio-group v-model:value="editor" v-if="active == 'content'" @change="onEditor">-->
<!-- <a-radio :value="1">富文本</a-radio>-->
<!-- <a-radio :value="2">Markdown</a-radio>-->
<!-- </a-radio-group>-->
<!-- </template>-->
<a-tab-pane tab="基本信息" key="base">
<!-- <a-tabs type="card" v-model:active-key="active" @change="onChange">-->
<!-- <a-tab-pane tab="基本信息" key="base">-->
<a-form-item label="封面图" name="files"> <a-form-item label="封面图" name="files">
<SelectFile <SelectFile
:placeholder="`请选择图片`" :placeholder="`请选择图片`"
@ -63,7 +60,7 @@
/> />
</div> </div>
</a-form-item> </a-form-item>
<a-form-item label="内容详情">
<a-form-item label="内容详情" name="content">
<!-- 富文本编辑器 --> <!-- 富文本编辑器 -->
<div v-if="editor == 1"> <div v-if="editor == 1">
<tinymce-editor <tinymce-editor
@ -135,15 +132,6 @@
v-model:value="form.comments" v-model:value="form.comments"
/> />
</a-form-item> </a-form-item>
<a-form-item label="排序" name="sortNumber">
<a-input-number
:min="0"
:max="9999"
style="width: 206px"
placeholder="请输入排序号"
v-model:value="form.sortNumber"
/>
</a-form-item>
<a-form-item <a-form-item
label="状态" label="状态"
name="status" name="status"
@ -154,40 +142,36 @@
<a-radio :value="0">已发布</a-radio> <a-radio :value="0">已发布</a-radio>
</a-radio-group> </a-radio-group>
</a-form-item> </a-form-item>
</a-tab-pane>
<a-tab-pane tab="其他选项" key="other">
<a-divider class="py-4 mb-3" style="height: 20px" />
<a-form-item label="关键词" name="tags"> <a-form-item label="关键词" name="tags">
<a-select <a-select
v-model:value="form.tags" v-model:value="form.tags"
mode="tags" mode="tags"
style="width: 558px"
placeholder="按回车分隔" placeholder="按回车分隔"
></a-select> ></a-select>
</a-form-item> </a-form-item>
<a-form-item label="产品概述" name="overview">
<a-form-item label="述" name="overview">
<a-textarea <a-textarea
:rows="3" :rows="3"
style="width: 558px"
show-count show-count
placeholder="请输入产品概述"
placeholder="请输入述"
v-model:value="form.overview" v-model:value="form.overview"
/> />
</a-form-item> </a-form-item>
<a-form-item label="文章来源" name="source">
<source-select
v-model:value="form.source"
:placeholder="`文章来源`"
style="width: 206px"
/>
</a-form-item>
<a-form-item label="PDF" name="pdfUrl">
<a-form-item label="自定义链接" name="pdfUrl">
<a-input <a-input
allow-clear allow-clear
style="width: 558px"
placeholder="https://" placeholder="https://"
v-model:value="form.pdfUrl" v-model:value="form.pdfUrl"
/> />
</a-form-item> </a-form-item>
<a-form-item label="文章来源" name="source">
<source-select
v-model:value="form.source"
style="width: 206px"
:placeholder="`文章来源`"
/>
</a-form-item>
<a-form-item <a-form-item
label="虚拟阅读量" label="虚拟阅读量"
name="virtualViews" name="virtualViews"
@ -223,6 +207,15 @@
v-model:value="password" v-model:value="password"
/> />
</a-form-item> </a-form-item>
<a-form-item label="排序" name="sortNumber">
<a-input-number
:min="0"
:max="9999"
style="width: 206px"
placeholder="请输入排序号"
v-model:value="form.sortNumber"
/>
</a-form-item>
<a-form-item label="发布时间" name="createTime" v-if="isUpdate"> <a-form-item label="发布时间" name="createTime" v-if="isUpdate">
<a-date-picker <a-date-picker
v-model:value="form.createTime" v-model:value="form.createTime"
@ -231,11 +224,12 @@
value-format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
/> />
</a-form-item> </a-form-item>
</a-tab-pane>
</a-tabs>
<!-- </a-tab-pane>-->
<!-- <a-tab-pane tab="其他选项" key="other">-->
<!-- </a-tabs>-->
</a-spin> </a-spin>
</a-form> </a-form>
</ele-modal>
</a-drawer>
<!-- 文件库选择弹窗 --> <!-- 文件库选择弹窗 -->
<SelectData <SelectData
@ -321,7 +315,7 @@ const images = ref<ItemType[]>([]);
const content = ref(''); const content = ref('');
const disabled = ref(false); const disabled = ref(false);
// //
const active = ref('base');
// const active = ref('base');
const files = ref<ItemType[]>([]); const files = ref<ItemType[]>([]);
const category = ref<string[]>([]); const category = ref<string[]>([]);
const password = ref(); const password = ref();
@ -707,7 +701,7 @@ const insertMarkdownText = (text: string) => {
}; };
const config = ref({ const config = ref({
height: 620,
height: 420,
paste_data_images: true, paste_data_images: true,
automatic_uploads: true, automatic_uploads: true,
@ -1194,10 +1188,6 @@ const save = () => {
if (!formRef.value) { if (!formRef.value) {
return; return;
} }
if (content.value == '') {
message.error('请输入文章内容');
return;
}
formRef.value formRef.value
.validate() .validate()
.then(() => { .then(() => {
@ -1209,9 +1199,12 @@ const save = () => {
form.tags = JSON.stringify(form.tags); form.tags = JSON.stringify(form.tags);
} }
// //
if (form.files) {
const arr = JSON.parse(form.files);
form.image = arr[0];
if (files.value.length > 0) {
form.image = files.value[0].url;
form.files = JSON.stringify(files.value.map((d) => d.url));
}else {
form.image = '';
form.files = '';
} }
const formData = { const formData = {
...form, ...form,

Loading…
Cancel
Save