Merge branch 'dev-sws' into dev-yxl

v1.0.0
于肖磊 2024-08-20 09:36:25 +08:00
commit 8f83d1f479
4 changed files with 79 additions and 59 deletions

View File

@ -15,7 +15,7 @@
<div class="left-content">
<div class="flex-row align-c gap-10 mb-10">
<el-input v-model="search_filter" placeholder="请输入分类名称">
<template #suffix>
<template #prefix>
<icon name="search" size="18"></icon>
</template>
</el-input>
@ -132,7 +132,7 @@
</div>
</div>
<div class="mt-10 flex-row jc-e">
<el-pagination :current-page="page" :page-size="21" :pager-count="5" layout="prev, pager, next" :total="data_total" @current-change="current_page_change" />
<el-pagination :current-page="page" :page-size="30" :pager-count="5" layout="prev, pager, next" :total="data_total" @current-change="current_page_change" />
</div>
</div>
</div>
@ -307,7 +307,7 @@ const all_tree = {
const type_data_list = ref<Tree[]>([]);
//
const get_tree = () => {
if (!upload_store.is_upload_api) {
if (!upload_store.is_upload_api && upload_store.category.length === 0) {
upload_store.set_is_upload_api(true);
UploadAPI.getTree()
.then((res) => {
@ -407,8 +407,11 @@ const search_name = ref('');
const upload_list = ref<uploadList[]>([]);
//
const get_attachment_list = (type?: string) => {
if (type) {
page.value = 1;
}
const new_data = {
page: type ? 1 : page.value,
page: page.value,
type: upload_type.value == 'img' ? 'image' : upload_type.value == 'video' ? 'video' : upload_type.value == 'file' ? 'file' : '',
keywords: search_name.value,
category_id: category_id.value,

View File

@ -101,38 +101,43 @@
<div class="table-cell-operate">操作</div>
</div>
</div>
<el-scrollbar height="224px">
<div class="table-body">
<div v-for="(item, index) in scan_file_list" :key="index" class="table-row">
<div class="table-cell">
<template v-if="type == 'video'">
<div class="preview-img radius-sm">
<icon name="video" size="12" color="9"></icon>
</div>
</template>
<template v-else-if="type == 'file'">
<div class="preview-img radius-sm">
<div class="bg-f5 img flex-row jc-c align-c radius h w">
<icon :name="ext_file_name_list_map.filter((ext) => ext.type == item.ext).length > 0 && ext_file_name_list_map.filter((ext) => ext.type == item.ext)[0].type == item.ext ? ext_file_name_list_map.filter((ext) => ext.type == item.ext)[0].icon : 'file'" size="12" color="9"></icon>
<div v-if="scan_file_list.length > 0">
<el-scrollbar height="224px">
<div class="table-body">
<div v-for="(item, index) in scan_file_list" :key="index" class="table-row">
<div class="table-cell">
<template v-if="type == 'video'">
<div class="preview-img radius-sm">
<icon name="video" size="12" color="9"></icon>
</div>
</div>
</template>
<template v-else>
<el-image :src="item.url" class="preview-img radius-sm" fit="contain">
<template #error>
</template>
<template v-else-if="type == 'file'">
<div class="preview-img radius-sm">
<div class="bg-f5 img flex-row jc-c align-c radius h w">
<icon name="error-img" size="12"></icon>
<icon :name="ext_file_name_list_map.filter((ext) => ext.type == item.ext).length > 0 && ext_file_name_list_map.filter((ext) => ext.type == item.ext)[0].type == item.ext ? ext_file_name_list_map.filter((ext) => ext.type == item.ext)[0].icon : 'file'" size="12" color="9"></icon>
</div>
</template>
</el-image>
</template>
<div class="desc">{{ item.title }}</div>
</div>
</template>
<template v-else>
<el-image :src="item.url" class="preview-img radius-sm" fit="contain">
<template #error>
<div class="bg-f5 img flex-row jc-c align-c radius h w">
<icon name="error-img" size="12"></icon>
</div>
</template>
</el-image>
</template>
<div class="desc">{{ item.title }}</div>
</div>
<div class="table-cell">{{ annex_size_to_unit(item.size) }}</div>
<div class="table-cell-operate" @click="del_already_upload(item.id, index)">删除</div>
</div>
<div class="table-cell">{{ annex_size_to_unit(item.size) }}</div>
<div class="table-cell-operate" @click="del_already_upload(item.id, index)">删除</div>
</div>
</div>
</el-scrollbar>
</el-scrollbar>
</div>
<div v-else>
<no-data height="280"></no-data>
</div>
</div>
</template>
<template v-else-if="form.type == 'web'">
@ -577,6 +582,7 @@ const close_dialog = () => {
if (timer.value !== null) {
clearTimeout(timer.value);
}
is_mask.value = true;
timer.value = null; //
};
</script>

View File

@ -13,12 +13,17 @@
<div class="content">
<el-scrollbar height="480px">
<div class="flex-col gap-30">
<div v-for="item in new_base_data" :key="item.type">
<div class="fw mb-15">{{ item.name }}</div>
<div class="flex-row flex-wrap gap-15">
<div v-for="(child, index) in item.data" :key="index" class="item" :class="menu_active == item.page ? 'active' : ''" @click="menu_link_event(child)">{{ child.name }}</div>
<template v-if="new_base_data.length > 0">
<div v-for="item in new_base_data" :key="item.type">
<div class="fw mb-15">{{ item.name }}</div>
<div class="flex-row flex-wrap gap-15">
<div v-for="(child, index) in item.data" :key="index" class="item" :class="menu_active == item.page ? 'active' : ''" @click="menu_link_event(child)">{{ child.name }}</div>
</div>
</div>
</div>
</template>
<template v-else>
<no-data height="480"></no-data>
</template>
</div>
</el-scrollbar>
</div>
@ -37,7 +42,7 @@ const props = defineProps({
watch(
() => props.reset,
() => {
menu_active.value = '';
init();
}
);
const modelValue = defineModel({ type: Object, default: {} });
@ -45,6 +50,11 @@ const search_value = ref('');
const base_data = ref<pageLinkList[]>([]);
const new_base_data = ref<pageLinkList[]>([]);
onMounted(() => {
init();
});
const init = () => {
menu_active.value = '';
search_value.value = '';
// url_value_store.url_value.page_link_listtypeshopdatadata
base_data.value = url_value_store.url_value.page_link_list.filter((item: any) => {
if (item.type == 'shop') {
@ -52,34 +62,36 @@ onMounted(() => {
}
});
new_base_data.value = base_data.value[0].data;
});
};
const handle_search = () => {
// new_base_data,== ==
let bool = false;
// new_base_data,==
if (search_value.value) {
new_base_data.value = new_base_data.value.filter((item: any) => {
if (item.name == search_value.value) {
bool = true;
console.log(1);
return item;
}
});
if (!true) {
new_base_data.value = new_base_data.value.filter((item: any) => {
item.filter((child: any) => {
if (child.name == search_value.value) {
bool = true;
return child;
}
});
});
}
new_base_data.value = filterData(search_value.value, base_data.value[0].data);
} else {
new_base_data.value = base_data.value[0].data;
}
console.log(new_base_data.value);
};
const filterData = (input: string, data: pageLinkList[]) => {
let result = [];
//
for (let item of data) {
// name
if (item.name.includes(input)) {
result.push(item);
} else {
// data
let subResult = item.data.filter((subItem) => subItem.name.includes(input));
//
if (subResult.length > 0) {
result.push({ ...item, data: subResult });
}
}
}
return result;
};
const menu_active = ref('');
const emit = defineEmits(['update:link']);
const menu_link_event = (item: any) => {

View File

@ -4,7 +4,6 @@ import { get_cookie } from './index';
// 创建 axios 实例
const index = window.location.href.lastIndexOf('?s=');
const pro_url = window.location.href.substring(0, index);
console.log(import.meta.env.VITE_APP_BASE_API);
const service = axios.create({
baseURL: import.meta.env.VITE_APP_BASE_API == '/dev-api' ? import.meta.env.VITE_APP_BASE_API : pro_url + '?s=',
timeout: 50000,