修改内容

v1.3.0
于肖磊 2025-02-28 17:05:42 +08:00
parent c6b6425e4f
commit c31d5a061c
9 changed files with 56 additions and 40 deletions

View File

@ -38,7 +38,7 @@
</el-form-item>
</div>
</template>
<template v-else-if="type === 'article'">
<template v-else-if="type === 'article' || type === 'blog'">
<el-form-item label="读取方式">
<el-radio-group v-model="form.data_type">
<el-radio v-for="item in baseList.data_type_list" :key="item.value" :value="item.value">{{ item.name }}</el-radio>
@ -52,9 +52,14 @@
<el-form-item label="关键字">
<el-input v-model="keywords" placeholder="请输入文章关键字" clearable @blur="keyword_blur"></el-input>
</el-form-item>
<el-form-item label="文章分类">
<el-form-item :label="`${ type === 'article' ? '文章' : '博客' }分类`">
<el-select v-model="form.category_ids" multiple collapse-tags filterable placeholder="请选择文章分类">
<el-option v-for="item in common_store.common.article_category" :key="item.id" :label="item.name" :value="item.id" />
<template v-if="type === 'article'">
<el-option v-for="item in common_store.common.article_category" :key="item.id" :label="item.name" :value="item.id" />
</template>
<template v-else>
<el-option v-for="item in common_store.common.blog_category" :key="item.id" :label="item.name" :value="item.id" />
</template>
</el-select>
</el-form-item>
<el-form-item label="显示数量">
@ -62,7 +67,12 @@
</el-form-item>
<el-form-item label="排序类型">
<el-radio-group v-model="form.order_by_type">
<el-radio v-for="item in common_store.common.article_order_by_type_list" :key="item.index" :value="item.index">{{ item.name }}</el-radio>
<template v-if="type === 'article'">
<el-radio v-for="item in common_store.common.article_order_by_type_list" :key="item.index" :value="item.index">{{ item.name }}</el-radio>
</template>
<template v-else>
<el-radio v-for="item in common_store.common.blog_order_by_type_list" :key="item.index" :value="item.index">{{ item.name }}</el-radio>
</template>
</el-radio-group>
</el-form-item>
<el-form-item label="排序规则">

View File

@ -34,6 +34,10 @@
<template v-else-if="link_select == 'article'">
<link-articles v-model="link_value" :select-is-url="selectIsUrl" :multiple="multiple" :reset="reset_compontent"></link-articles>
</template>
<!-- 博客页面 -->
<template v-else-if="link_select == 'blog'">
<link-blog v-model="link_value" :select-is-url="selectIsUrl" :multiple="multiple" :reset="reset_compontent"></link-blog>
</template>
<!-- diy页面/页面设计/自定义页面 -->
<template v-else-if="link_select == 'diy' || link_select == 'design' || link_select == 'custom-view'">
<link-table :key="link_select" v-model="link_value" :select-is-url="selectIsUrl" :multiple="multiple" :type="link_select" :reset="reset_compontent"></link-table>
@ -72,7 +76,7 @@ const app = getCurrentInstance();
* @param modelValue{Object} 默认值
* @param dialogVisible {Boolean} 弹窗显示
* @param type{String} 链接类型为空数组则表示无限制全部可用传过来则表示传的值可用
* @param multiple{Boolean} 是否多选 默认单选 只生效 商品页面 goods/ 文章页面 article/ DIY页面 diy/ 设计页面 design/ 自定义页面 custom-view/ 品牌页面 brand
* @param multiple{Boolean} 是否多选 默认单选 只生效 商品页面 goods/ 文章页面 article/ 博客页面 blog / DIY页面 diy/ 设计页面 design/ 自定义页面 custom-view/ 品牌页面 brand
* @return {*} update:modelValue
*/
const props = defineProps({
@ -142,6 +146,8 @@ const dialog_title = computed(() => {
name = '商品';
} else if (props.type[0] == 'article') {
name = '文章';
} else if (props.type[0] == 'blog') {
name = '博客';
} else if (props.type[0] == 'diy') {
name = 'DIY';
} else if (props.type[0] == 'design') {

View File

@ -1,6 +1,6 @@
<template>
<div class="content">
<el-form :model="form" label-width="70" class="m-h">
<el-form :model="form" label-width="60" class="m-h">
<common-content-top :value="form.content_top"></common-content-top>
<div class="divider-line"></div>
<card-container>
@ -18,9 +18,9 @@
</card-container>
<div class="divider-line"></div>
<card-container class="card-container-br">
<div class="mb-12">文章设置</div>
<div class="mb-12">博客设置</div>
<!-- 数据筛选组件, 根据数据源类型显示不同的筛选组件 -->
<data-filter type="article" :value="form" :list="form.data_list" :base-list="base_list" @add="add" @data_list_replace="data_list_replace" @data_list_remove="data_list_remove" @data_list_sort="data_list_sort"></data-filter>
<data-filter type="blog" :value="form" :list="form.data_list" :base-list="base_list" @add="add" @data_list_replace="data_list_replace" @data_list_remove="data_list_remove" @data_list_sort="data_list_sort"></data-filter>
</card-container>
<div class="divider-line"></div>
<card-container>
@ -48,7 +48,7 @@
<subscript-content :value="form"></subscript-content>
</card-container>
</el-form>
<url-value-dialog v-model:dialog-visible="url_value_dialog_visible" :type="['article']" :multiple="url_value_multiple_bool" @update:model-value="url_value_dialog_call_back"></url-value-dialog>
<url-value-dialog v-model:dialog-visible="url_value_dialog_visible" :type="['blog']" :multiple="url_value_multiple_bool" @update:model-value="url_value_dialog_call_back"></url-value-dialog>
</div>
</template>
<script setup lang="ts">
@ -56,7 +56,7 @@ import { get_math } from '@/utils';
import { commonStore } from '@/store';
const common_store = commonStore();
/**
* @description 文章列表内容
* @description 博客列表内容
* @param value{Object} 传过来的数据用于数据渲染
* @param styles{Object} 样式
* @param defaultConfig{Object} 默认配置
@ -101,11 +101,11 @@ const base_list = reactive({
{ name: '四列展示', value: '3' },
],
data_type_list: [
{ name: '选择文章', value: '0' },
{ name: '筛选文章', value: '1' },
{ name: '选择博客', value: '0' },
{ name: '筛选博客', value: '1' },
],
field_show_list: [
{ name: '文章标题', value: '3' },
{ name: '博客标题', value: '3' },
{ name: '日期时间', value: '0' },
{ name: '浏览量', value: '1' },
{ name: '描述', value: '2' },
@ -202,7 +202,7 @@ const url_value_dialog_call_back = (item: any[]) => {
};
}
};
//
//
const switch_chage = (val: string | number | boolean) => {
if (val == '1') {
data.value.name_color = '#fff';

View File

@ -3,10 +3,10 @@
<el-form :model="form" label-width="70">
<card-container class="card-container">
<div class="mb-12">列表样式</div>
<el-form-item v-if="theme != '3'" label="文章背景">
<el-form-item v-if="theme != '3'" label="博客背景">
<background-common v-model:color_list="form.blog_color_list" v-model:direction="form.blog_direction" v-model:img_style="form.blog_background_img_style" v-model:img="form.blog_background_img" @mult_color_picker_event="mult_color_picker_event" />
</el-form-item>
<el-form-item label="文章名称">
<el-form-item label="博客名称">
<color-text-size-group v-model:color="form.name_color" v-model:typeface="form.name_weight" v-model:size="form.name_size" :label-width="data.theme == '4' && data.name_float == '1' ? 60 : 40">
<template v-if="data.theme == '4' && data.name_float == '1'">
<el-form-item label="背景" label-width="60" class="mb-0 w form-item-child-label">
@ -24,7 +24,7 @@
</template>
</color-text-size-group>
</el-form-item>
<el-form-item label="文章描述">
<el-form-item label="博客描述">
<color-text-size-group v-model:color="form.desc_color" v-model:size="form.desc_size" :type-list="['color', 'size']">
<el-form-item label="间距" label-width="40" class="mb-0 w form-item-child-label">
<slider v-model="form.name_desc_space" :max="100"></slider>
@ -49,7 +49,7 @@
</el-form-item>
</template>
<template v-if="theme != '3'">
<el-form-item label="文章间距">
<el-form-item label="博客间距">
<slider v-model="form.blog_spacing"></slider>
</el-form-item>
</template>
@ -165,12 +165,12 @@ if (theme.value == '0') {
form.value.img_radius.radius_top_right = props.defaultConfig.img_radius_1;
}
}
//
//
const mult_color_picker_event = (arry: color_list[], type: number) => {
form.value.blog_color_list = arry;
form.value.blog_direction = type.toString();
};
//
//
const name_bg_mult_color_picker_event = (arry: color_list[], type: number) => {
form.value.name_bg_color_list = arry;
form.value.name_bg_direction = type.toString();

View File

@ -38,7 +38,7 @@
<el-form-item v-if="form.tabs_theme == '3'" label="选中图标">
<upload v-model="form.tabs_adorn_img" v-model:icon-value="form.tabs_adorn_icon" is-icon :limit="1" size="50"></upload>
</el-form-item>
<el-form-item label="文章风格">
<el-form-item label="博客风格">
<el-radio-group v-model="form.blog_theme" @change="blog_theme_change">
<el-radio v-for="item in base_list.blog_theme_list" :key="item.value" :value="item.value">{{ item.name }}</el-radio>
</el-radio-group>
@ -119,7 +119,7 @@ import { get_math, tabs_style } from '@/utils';
import { commonStore } from '@/store';
const common_store = commonStore();
/**
* @description: 文章选项卡列表 内容
* @description: 博客选项卡列表 内容
* @param value{Object} 内容数据
* @param tabsStyle{Object} tabs样式数据
* @param defaultConfig{Object} 默认配置
@ -164,11 +164,11 @@ const base_list = reactive({
{ name: '四列展示', value: '3' },
],
data_type_list: [
{ name: '选择文章', value: '0' },
{ name: '筛选文章', value: '1' },
{ name: '选择博客', value: '0' },
{ name: '筛选博客', value: '1' },
],
field_show_list: [
{ name: '文章标题', value: '3' },
{ name: '博客标题', value: '3' },
{ name: '日期时间', value: '0' },
{ name: '浏览量', value: '1' },
{ name: '描述', value: '2' },
@ -280,7 +280,7 @@ const tabs_add = () => {
// emit('update:value', form);
};
//
//
const data_list_remove = (index: number, blog_index: number) => {
form.tabs_list[blog_index].data_list.splice(index, 1);
};
@ -301,7 +301,7 @@ const data_list_replace = (index: number, row_index: number) => {
};
const blog_index = ref(0);
//
//
const blog_add = (index: number) => {
url_value_multiple_bool.value = true;
url_value_dialog_visible.value = true;
@ -360,7 +360,7 @@ watchEffect(() => {
form.value.is_general_safe_distance = '0';
}
});
//
//
const switch_chage = (val: string | number | boolean) => {
if (val == '1') {
styles.name_color = '#fff';

View File

@ -104,11 +104,11 @@
</card-container>
<div class="divider-line"></div>
<card-container>
<div class="mb-12">文章样式</div>
<el-form-item v-if="theme != '3'" label="文章背景">
<div class="mb-12">博客样式</div>
<el-form-item v-if="theme != '3'" label="博客背景">
<background-common v-model:color_list="form.blog_color_list" v-model:direction="form.blog_direction" v-model:img_style="form.blog_background_img_style" v-model:img="form.blog_background_img" @mult_color_picker_event="mult_color_picker_event" />
</el-form-item>
<el-form-item label="文章名称">
<el-form-item label="博客名称">
<color-text-size-group v-model:color="form.name_color" v-model:typeface="form.name_weight" v-model:size="form.name_size" :label-width="data.blog_theme == '4' && data.name_float == '1' ? 60 : 40">
<template v-if="data.blog_theme == '4' && data.name_float == '1'">
<el-form-item label="背景" label-width="60" class="mb-0 w form-item-child-label">
@ -126,7 +126,7 @@
</template>
</color-text-size-group>
</el-form-item>
<el-form-item label="文章描述">
<el-form-item label="博客描述">
<color-text-size-group v-model:color="form.desc_color" v-model:size="form.desc_size" :type-list="['color', 'size']">
<el-form-item label="间距" label-width="40" class="mb-0 w form-item-child-label">
<slider v-model="form.name_desc_space"></slider>
@ -153,7 +153,7 @@
</el-form-item>
</template>
<template v-if="theme != '3'">
<el-form-item label="文章间距">
<el-form-item label="博客间距">
<slider v-model="form.blog_spacing"></slider>
</el-form-item>
</template>
@ -216,7 +216,7 @@
<script setup lang="ts">
import { isEmpty } from 'lodash'
/**
* @description: 文章选项卡列表 样式
* @description: 博客选项卡列表 样式
* @param value{Object} 样式数据
* @param content{Object} 内容数据
* @param defaultConfig{Object} 默认配置
@ -287,7 +287,7 @@ const blog_content_mult_color_picker_event = (arry: color_list[], type: number)
form.value.blog_content_color_list = arry;
form.value.blog_content_direction = type.toString();
};
//
//
const mult_color_picker_event = (arry: color_list[], type: number) => {
form.value.blog_color_list = arry;
form.value.blog_direction = type.toString();
@ -296,7 +296,7 @@ const mult_color_picker_event = (arry: color_list[], type: number) => {
const common_styles_update = (val: Object) => {
form.value.common_style = val;
};
//
//
const name_bg_mult_color_picker_event = (arry: color_list[], type: number) => {
form.value.name_bg_color_list = arry;
form.value.name_bg_direction = type.toString();

View File

@ -9,6 +9,7 @@ export const commonStore = defineStore('common', () => {
const header_height = ref(0);
const common = ref({
article_category: [] as any[], //---- 文章分类
blog_category: [] as any[], //---- 文章分类
attachment_category: [] as any[], //---- 附件分类
brand_category: [] as any[], //---- 品牌分类
brand_list: [] as any[], //---- 品牌列表
@ -17,6 +18,7 @@ export const commonStore = defineStore('common', () => {
page_link_list: [] as any[], //---- 页面链接
plugins: {} as any, //---- 插件
article_order_by_type_list: [] as any[], //---- 文章排序
blog_order_by_type_list: [] as any[], //---- 文章排序
goods_order_by_type_list: [] as any[], //---- 商品排序
data_order_by_rule_list: [] as any[], //---- 数据排序
brand_order_by_type_list: [] as any[], //---- 品牌排序

View File

@ -35,7 +35,7 @@ interface DefaultSettings {
user_info: object;
article_list: object;
article_tabs: object;
blog_list: object;
blog: object;
blog_tabs: object;
row_line: object;
auxiliary_blank: object;
@ -66,7 +66,7 @@ const defaultSettings: DefaultSettings = {
user_info: defaultUserInfo,
article_list: defaultArticleList,
article_tabs: defaultArticleTabs,
blog_list: defaultBlogList,
blog: defaultBlogList,
blog_tabs: defaultBlogTabs,
row_line: defaultRowLine,
auxiliary_blank: defaultAuxiliaryBlank,

View File

@ -23,8 +23,6 @@ import { Settings, AppMain } from './components/index';
import defaultSettings from './components/main/index';
import defaultConfigSetting from '@/config/setting';
import defaultConfigConst from '@/config/const/index';
import { article_default_parameter, goods_default_parameter } from '@/config/const/data-tabs';
import defaultCustom from '@/config/const/custom';
import { cloneDeep, isEmpty, omit } from 'lodash';
import DiyAPI, { diyData, headerAndFooter, diyConfig } from '@/api/diy';
import CommonAPI from '@/api/common';