This commit is contained in:
孟帅
2023-04-05 12:29:33 +08:00
parent c709073ed7
commit 075a12ce7e
27 changed files with 703 additions and 168 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "hotgo",
"version": "2.4.4",
"version": "2.4.9",
"author": {
"name": "MengShuai",
"email": "133814250@qq.com",

View File

@@ -90,7 +90,21 @@ export function useDataSource(
// can modify the data returned by the interface for processing
resultInfo = (await afterRequest(resultInfo)) || resultInfo;
}
dataSourceRef.value = resultInfo;
// 表数据加载
setTimeout(function () {
const once = 20;
if (resultInfo.length < once) {
// once = resultInfo.length;
// 直接加载
dataSourceRef.value = resultInfo;
} else {
// 分次加载
dataSourceRef.value = [];
insert(resultInfo, once, resultInfo.length, 0);
}
}, 0);
setPagination({
[pageField]: currentPage,
[totalField]: resultTotal,
@@ -122,6 +136,21 @@ export function useDataSource(
}, 16);
});
function insert(resultInfo, once, curTotal, curIndex) {
if (curTotal <= 0) {
return;
}
if (once > curTotal) {
once = curTotal;
}
window.requestAnimationFrame(() => {
for (let i = 0; i < once; i++) {
dataSourceRef.value.push(resultInfo[curIndex + i]);
}
insert(resultInfo, once, curTotal - once, curIndex + once);
});
}
function setTableData(values) {
dataSourceRef.value = values;
}

View File

@@ -13,7 +13,7 @@ export default {
//默认分页数量
defaultPageSize: 10,
//可切换每页数量集合
pageSizes: [10, 20, 30, 40, 50, 100, 200],
pageSizes: [10, 15, 20, 30, 50, 100],
},
upload: {
//考虑接口规范不同

View File

@@ -66,7 +66,7 @@
component: 'NInput',
label: '访问路径',
componentProps: {
placeholder: '请输入手机访问路径',
placeholder: '请输入访问路径',
onInput: (e: any) => {
console.log(e);
},

View File

@@ -70,7 +70,7 @@
component: 'NInput',
label: '访问路径',
componentProps: {
placeholder: '请输入手机访问路径',
placeholder: '请输入访问路径',
onInput: (e: any) => {
console.log(e);
},

View File

@@ -5,7 +5,7 @@
<n-form-item label="默认驱动" path="uploadDrive">
<n-select
placeholder="默认驱动"
:options="uploadDriveList"
:options="options.config_upload_drive"
v-model:value="formValue.uploadDrive"
/>
</n-form-item>
@@ -43,7 +43,7 @@
<template #feedback>填对外访问的相对路径</template>
</n-form-item>
<n-divider title-placement="left">UCloud存储</n-divider>
<n-divider title-placement="left">ucloud对象存储</n-divider>
<n-form-item label="公钥" path="uploadUCloudPublicKey">
<n-input
type="password"
@@ -93,6 +93,142 @@
<n-input v-model:value="formValue.uploadUCloudEndpoint" placeholder="" />
<template #feedback>格式http://abc.com 或 https://abc.com不可为空</template>
</n-form-item>
<n-divider title-placement="left">腾讯云COS存储</n-divider>
<n-form-item label="secretId" path="uploadCosSecretId">
<n-input
type="password"
v-model:value="formValue.uploadCosSecretId"
show-password-on="click"
>
<template #password-visible-icon>
<n-icon :size="16" :component="GlassesOutline" />
</template>
<template #password-invisible-icon>
<n-icon :size="16" :component="Glasses" />
</template>
</n-input>
<template #feedback
>子账号密钥获取地址https://cloud.tencent.com/document/product/598/37140</template
>
</n-form-item>
<n-form-item label="secretKey" path="uploadCosSecretKey">
<n-input
type="password"
v-model:value="formValue.uploadCosSecretKey"
show-password-on="click"
>
<template #password-visible-icon>
<n-icon :size="16" :component="GlassesOutline" />
</template>
<template #password-invisible-icon>
<n-icon :size="16" :component="Glasses" />
</template>
</n-input>
</n-form-item>
<n-form-item label="存储路径" path="uploadCosBucketURL">
<n-input v-model:value="formValue.uploadCosBucketURL" placeholder="" />
<template #feedback>填对对象存储中的相对路径</template>
</n-form-item>
<n-form-item label="地域API" path="uploadCosPath">
<n-input v-model:value="formValue.uploadCosPath" placeholder="" />
<template #feedback
>控制台查看地址https://console.cloud.tencent.com/cos5/bucket</template
>
</n-form-item>
<n-divider title-placement="left">阿里云OSS存储</n-divider>
<n-form-item label="AccessKey ID" path="uploadOssSecretId">
<n-input
type="password"
v-model:value="formValue.uploadOssSecretId"
show-password-on="click"
>
<template #password-visible-icon>
<n-icon :size="16" :component="GlassesOutline" />
</template>
<template #password-invisible-icon>
<n-icon :size="16" :component="Glasses" />
</template>
</n-input>
<template #feedback
>创建地址https://ram.console.aliyun.com/manage/ak</template
>
</n-form-item>
<n-form-item label="AccessKey Secret" path="uploadOssSecretKey">
<n-input
type="password"
v-model:value="formValue.uploadOssSecretKey"
show-password-on="click"
>
<template #password-visible-icon>
<n-icon :size="16" :component="GlassesOutline" />
</template>
<template #password-invisible-icon>
<n-icon :size="16" :component="Glasses" />
</template>
</n-input>
</n-form-item>
<n-form-item label="Endpoint" path="uploadOssEndpoint">
<n-input v-model:value="formValue.uploadOssEndpoint" placeholder="" />
<template #feedback> Endpoint地域节点</template>
</n-form-item>
<n-form-item label="存储路径" path="uploadOssPath">
<n-input v-model:value="formValue.uploadOssPath" placeholder="" />
<template #feedback>填对对象存储中的相对路径</template>
</n-form-item>
<n-form-item label="存储空间名称" path="uploadOssBucket">
<n-input v-model:value="formValue.uploadOssBucket" placeholder="" />
</n-form-item>
<n-form-item label="Bucket 域名" path="uploadOssBucketURL">
<n-input v-model:value="formValue.uploadOssBucketURL" placeholder="" />
</n-form-item>
<n-divider title-placement="left">七牛云对象存储</n-divider>
<n-form-item label="AccessKey" path="uploadQiNiuAccessKey">
<n-input
type="password"
v-model:value="formValue.uploadQiNiuAccessKey"
show-password-on="click"
>
<template #password-visible-icon>
<n-icon :size="16" :component="GlassesOutline" />
</template>
<template #password-invisible-icon>
<n-icon :size="16" :component="Glasses" />
</template>
</n-input>
<template #feedback
>创建地址https://portal.qiniu.com/user/key</template
>
</n-form-item>
<n-form-item label="SecretKey" path="uploadQiNiuSecretKey">
<n-input
type="password"
v-model:value="formValue.uploadQiNiuSecretKey"
show-password-on="click"
>
<template #password-visible-icon>
<n-icon :size="16" :component="GlassesOutline" />
</template>
<template #password-invisible-icon>
<n-icon :size="16" :component="Glasses" />
</template>
</n-input>
</n-form-item>
<n-form-item label="储存路径" path="uploadQiNiuPath">
<n-input v-model:value="formValue.uploadQiNiuPath" placeholder="" />
<template #feedback>填对对象存储中的相对路径</template>
</n-form-item>
<n-form-item label="存储空间名称" path="uploadQiNiuBucket">
<n-input v-model:value="formValue.uploadQiNiuBucket" placeholder="" />
</n-form-item>
<n-form-item label="访问域名" path="uploadQiNiuDomain">
<n-input v-model:value="formValue.uploadQiNiuDomain" placeholder="" />
</n-form-item>
<div>
<n-space>
<n-button type="primary" @click="formSubmit">保存更新</n-button>
@@ -108,9 +244,13 @@
import { useMessage } from 'naive-ui';
import { getConfig, updateConfig } from '@/api/sys/config';
import { Glasses, GlassesOutline } from '@vicons/ionicons5';
import { Dicts } from '@/api/dict/dict';
import { Options } from '@/utils/hotgo';
const group = ref('upload');
const show = ref(false);
const formRef: any = ref(null);
const message = useMessage();
const rules = {
uploadDrive: {
@@ -120,19 +260,9 @@
},
};
const uploadDriveList = [
{
label: '本地存储',
value: 'local',
},
{
label: 'UC云存储',
value: 'ucloud',
},
];
const formRef: any = ref(null);
const message = useMessage();
const options = ref<Options>({
config_upload_drive: [],
});
const formValue = ref({
uploadDrive: 'local',
@@ -148,6 +278,21 @@
uploadUCloudBucketName: '',
uploadUCloudFileHost: 'cn-bj.ufileos.com',
uploadUCloudEndpoint: '',
uploadCosSecretId: '',
uploadCosSecretKey: '',
uploadCosBucketURL: '',
uploadCosPath: '',
uploadOssSecretId: '',
uploadOssSecretKey: '',
uploadOssEndpoint: '',
uploadOssBucketURL: '',
uploadOssPath: '',
uploadOssBucket:'',
uploadQiNiuAccessKey:'',
uploadQiNiuSecretKey:'',
uploadQiNiuDomain:'',
uploadQiNiuPath:'',
uploadQiNiuBucket:'',
});
function formSubmit() {
@@ -163,8 +308,9 @@
});
}
onMounted(() => {
onMounted(async () => {
load();
await loadOptions();
});
function load() {
@@ -179,4 +325,10 @@
});
});
}
async function loadOptions() {
options.value = await Dicts({
types: ['config_upload_drive'],
});
}
</script>