修改页面显示逻辑

v1.2.0
于肖磊 2024-12-24 13:32:08 +08:00
parent 30738a8c7f
commit 2d6113590c
2 changed files with 30 additions and 11 deletions

View File

@ -20,6 +20,9 @@
<template v-else-if="diy_data.key == 'panel'">
<model-panel-style :key="key" v-model:height="center_height" :options="options" :value="diy_data"></model-panel-style>
</template>
<template v-else-if="diy_data.key == 'custom-group'">
<model-custom-group-style :key="key" v-model:height="center_height" :options="options" :value="diy_data" @custom_edit="custom_edit"></model-custom-group-style>
</template>
<template v-else>
<div class="w h flex align-c bg-f">
<no-data></no-data>
@ -84,14 +87,16 @@ const right_update = (item: any) => {
};
const draglist = ref<diy_data | null>(null);
const emits = defineEmits(['accomplish']);
const emits = defineEmits(['accomplish', 'custom_edit']);
const accomplish = () => {
if (!draglist.value) {
return;
} else {
emits('accomplish', draglist.value.diy_data);
}
};
const custom_edit = (list: diy, height: number) => {
emits('custom_edit', list, height);
};
</script>

View File

@ -55,11 +55,13 @@
<div class="divider-line"></div>
<card-container>
<div class="mb-20">内容设置</div>
<el-button class="w" size="large" @click="custom_edit"><icon name="edit" size="12"></icon>自定义编辑</el-button>
<el-button class="w" size="large" @click="custom_edit('custom')"><icon name="edit" size="12"></icon>自定义编辑</el-button>
</card-container>
</el-form>
<!-- 自定义内容处理 -->
<custom-config v-model:visible="dialogVisible" v-model:width="custom_width" v-model:height="center_height" :dragkey="dragkey" :options="model_data_source" :source-list="!isEmpty(data_source_content_list) ? data_source_content_list[0] : {}" :is-custom="form.is_custom_data == '1'" :show-data="form?.show_data || { data_key: 'id', data_name: 'name' }" :custom-list="custom_list" @accomplish="accomplish"></custom-config>
<!-- 自定义内部数据内容处理 -->
<custom-config v-model:visible="dialogVisible" v-model:width="custom_width" v-model:height="center_height" :dragkey="dragkey" :options="model_data_source" :source-list="!isEmpty(data_source_content_list) ? data_source_content_list[0] : {}" :is-custom="form.is_custom_data == '1'" :show-data="form?.show_data || { data_key: 'id', data_name: 'name' }" :custom-list="custom_list" @accomplish="accomplish"></custom-config>
<!-- 手动筛选数据弹出框 -->
<custom-dialog v-model:dialog-visible="url_value_dialog_visible" :data-list-key="form.show_data?.data_key || 'id'" :config="default_type_data.appoint_config" :multiple="url_value_multiple_bool" @confirm_event="url_value_dialog_call_back"></custom-dialog>
</div>
@ -93,17 +95,31 @@ const custom_width = computed(() => {
return center_width.value;
}
})
//
const dialogVisible = ref(false);
//
const dialogVisible_group = ref(false);
const form = ref(props.value);
//
let custom_list = reactive([]);
const center_height = ref(0);
//
let custom_group_list = reactive([]);
const center_group_height = ref(0);
const dragkey = ref('');
//
const custom_edit = () => {
dialogVisible.value = true;
const custom_edit = (type: string, list?: any, height?: number) => {
dragkey.value = Math.random().toString(36).substring(2);
custom_list = cloneDeep(form.value.custom_list);
center_height.value = cloneDeep(form.value.height);
if (type == 'custom') {
dialogVisible.value = true;
custom_list = cloneDeep(form.value.custom_list);
center_height.value = cloneDeep(form.value.height);
} else {
dialogVisible_group.value = true;
custom_group_list = list;
center_group_height.value = height || 0;
}
};
//
const accomplish = (list: any) => {
@ -112,8 +128,6 @@ const accomplish = (list: any) => {
};
//#endregion
//
let custom_list = reactive([]);
const center_height = ref(0);
interface custom_config {
show_type: string[],
show_number: number[],