hello world
26
src/App.vue
Normal file
@@ -0,0 +1,26 @@
|
||||
<template>
|
||||
<a-config-provider :locale="locale">
|
||||
<router-view />
|
||||
<global-setting />
|
||||
</a-config-provider>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed } from 'vue';
|
||||
import enUS from '@arco-design/web-vue/es/locale/lang/en-us';
|
||||
import zhCN from '@arco-design/web-vue/es/locale/lang/zh-cn';
|
||||
import GlobalSetting from '@/components/global-setting/index.vue';
|
||||
import useLocale from '@/hooks/locale';
|
||||
|
||||
const { currentLocale } = useLocale();
|
||||
const locale = computed(() => {
|
||||
switch (currentLocale.value) {
|
||||
case 'zh-CN':
|
||||
return zhCN;
|
||||
case 'en-US':
|
||||
return enUS;
|
||||
default:
|
||||
return enUS;
|
||||
}
|
||||
});
|
||||
</script>
|
||||
58
src/api/auth/index.ts
Normal file
@@ -0,0 +1,58 @@
|
||||
import axios from 'axios';
|
||||
import type { RouteRecordNormalized } from 'vue-router';
|
||||
import { UserState } from '@/store/modules/user/types';
|
||||
|
||||
const BASE_URL = '/auth';
|
||||
|
||||
export interface AccountLoginReq {
|
||||
username?: string;
|
||||
password?: string;
|
||||
captcha: string;
|
||||
uuid?: string;
|
||||
}
|
||||
|
||||
export interface LoginRes {
|
||||
token: string;
|
||||
}
|
||||
|
||||
export function accountLogin(req: AccountLoginReq) {
|
||||
return axios.post<LoginRes>(`${BASE_URL}/account`, req);
|
||||
}
|
||||
|
||||
export interface EmailLoginReq {
|
||||
email: string;
|
||||
captcha: string;
|
||||
}
|
||||
|
||||
export function emailLogin(req: EmailLoginReq) {
|
||||
return axios.post<LoginRes>(`${BASE_URL}/email`, req);
|
||||
}
|
||||
|
||||
export interface PhoneLoginReq {
|
||||
phone: string;
|
||||
captcha: string;
|
||||
}
|
||||
|
||||
export function phoneLogin(req: PhoneLoginReq) {
|
||||
return axios.post<LoginRes>(`${BASE_URL}/phone`, req);
|
||||
}
|
||||
|
||||
export function logout() {
|
||||
return axios.post(`${BASE_URL}/logout`);
|
||||
}
|
||||
|
||||
export function getUserInfo() {
|
||||
return axios.get<UserState>(`${BASE_URL}/user/info`);
|
||||
}
|
||||
|
||||
export function listRoute() {
|
||||
return axios.get<RouteRecordNormalized[]>(`${BASE_URL}/route`);
|
||||
}
|
||||
|
||||
export function socialAuth(source: string) {
|
||||
return axios.get<string>(`/oauth/${source}`);
|
||||
}
|
||||
|
||||
export function socialLogin(source: string, req: any) {
|
||||
return axios.post<LoginRes>(`/oauth/${source}`, req);
|
||||
}
|
||||
63
src/api/common/captcha.ts
Normal file
@@ -0,0 +1,63 @@
|
||||
import axios from 'axios';
|
||||
import qs from 'query-string';
|
||||
|
||||
const BASE_URL = '/captcha';
|
||||
|
||||
export interface ImageCaptchaRes {
|
||||
uuid: string;
|
||||
img: string;
|
||||
}
|
||||
|
||||
export interface BehaviorCaptchaRes {
|
||||
originalImageBase64: string;
|
||||
point: {
|
||||
x: number;
|
||||
y: number;
|
||||
};
|
||||
jigsawImageBase64: string;
|
||||
token: string;
|
||||
secretKey: string;
|
||||
}
|
||||
|
||||
export interface BehaviorCaptchaReq {
|
||||
captchaType?: string;
|
||||
captchaVerification?: string;
|
||||
clientUid?: string;
|
||||
}
|
||||
|
||||
export interface CheckBehaviorCaptchaRes {
|
||||
repCode: string;
|
||||
repMsg: string;
|
||||
}
|
||||
|
||||
export function getImageCaptcha() {
|
||||
return axios.get<ImageCaptchaRes>(`${BASE_URL}/img`);
|
||||
}
|
||||
|
||||
export function getMailCaptcha(email: string) {
|
||||
return axios.get(`${BASE_URL}/mail?email=${email}`);
|
||||
}
|
||||
|
||||
export function getSmsCaptcha(
|
||||
phone: string,
|
||||
behaviorCaptcha: BehaviorCaptchaReq,
|
||||
) {
|
||||
return axios.get(
|
||||
`${BASE_URL}/sms?phone=${phone}&captchaVerification=${encodeURIComponent(
|
||||
behaviorCaptcha.captchaVerification || '',
|
||||
)}`,
|
||||
);
|
||||
}
|
||||
|
||||
export function getBehaviorCaptcha(params: any) {
|
||||
return axios.get<BehaviorCaptchaRes>(`${BASE_URL}/behavior`, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function checkBehaviorCaptcha(params: any) {
|
||||
return axios.post<CheckBehaviorCaptchaRes>(`${BASE_URL}/behavior`, params);
|
||||
}
|
||||
65
src/api/common/dashboard.ts
Normal file
@@ -0,0 +1,65 @@
|
||||
import axios from 'axios';
|
||||
|
||||
const BASE_URL = '/dashboard';
|
||||
|
||||
export interface DashboardTotalRecord {
|
||||
pvCount: number;
|
||||
ipCount: number;
|
||||
todayPvCount: number;
|
||||
newPvFromYesterday: number;
|
||||
}
|
||||
|
||||
export interface DashboardAccessTrendRecord {
|
||||
date: string;
|
||||
pvCount: number;
|
||||
ipCount: number;
|
||||
}
|
||||
|
||||
export interface DashboardPopularModuleRecord {
|
||||
module: string;
|
||||
pvCount: number;
|
||||
newPvFromYesterday: number;
|
||||
}
|
||||
|
||||
export interface DashboardGeoDistributionRecord {
|
||||
locations: string[];
|
||||
locationIpStatistics: [];
|
||||
}
|
||||
|
||||
export interface DashboardAnnouncementRecord {
|
||||
id: number;
|
||||
title: string;
|
||||
type: number;
|
||||
}
|
||||
|
||||
export interface DashboardRecentlyVisitedRecord {
|
||||
title?: string;
|
||||
path: string;
|
||||
icon?: string;
|
||||
}
|
||||
|
||||
export function getTotal() {
|
||||
return axios.get<DashboardTotalRecord>(`${BASE_URL}/total`);
|
||||
}
|
||||
|
||||
export function listAccessTrend(days: number) {
|
||||
return axios.get<DashboardAccessTrendRecord[]>(
|
||||
`${BASE_URL}/access/trend/${days}`,
|
||||
);
|
||||
}
|
||||
|
||||
export function listPopularModule() {
|
||||
return axios.get<DashboardPopularModuleRecord[]>(
|
||||
`${BASE_URL}/popular/module`,
|
||||
);
|
||||
}
|
||||
|
||||
export function getGeoDistribution() {
|
||||
return axios.get<DashboardGeoDistributionRecord>(
|
||||
`${BASE_URL}/geo/distribution`,
|
||||
);
|
||||
}
|
||||
|
||||
export function listAnnouncement() {
|
||||
return axios.get<DashboardAnnouncementRecord[]>(`${BASE_URL}/announcement`);
|
||||
}
|
||||
54
src/api/common/index.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
import axios from 'axios';
|
||||
import qs from 'query-string';
|
||||
import { ListParam as DeptParam } from '@/api/system/dept';
|
||||
import { ListParam as MenuParam } from '@/api/system/menu';
|
||||
import { ListParam as RoleParam } from '@/api/system/role';
|
||||
import { ListParam as OptionParam } from '@/api/system/config';
|
||||
import { TreeNodeData } from '@arco-design/web-vue';
|
||||
import { LabelValueState } from '@/store/modules/dict/types';
|
||||
|
||||
const BASE_URL = '/common';
|
||||
|
||||
export function listDeptTree(params: DeptParam) {
|
||||
return axios.get<TreeNodeData[]>(`${BASE_URL}/tree/dept`, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function listMenuTree(params: MenuParam) {
|
||||
return axios.get<TreeNodeData[]>(`${BASE_URL}/tree/menu`, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function listRoleDict(params: RoleParam) {
|
||||
return axios.get<LabelValueState[]>(`${BASE_URL}/dict/role`, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function listDict(code: string) {
|
||||
return axios.get<LabelValueState[]>(`${BASE_URL}/dict/${code}`);
|
||||
}
|
||||
|
||||
export function listOption(params: OptionParam) {
|
||||
return axios.get<LabelValueState[]>(`${BASE_URL}/option`, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function upload(data: FormData) {
|
||||
return axios.post(`${BASE_URL}/file`, data);
|
||||
}
|
||||
21
src/api/demo/form.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import axios from 'axios';
|
||||
|
||||
export interface BaseInfoModel {
|
||||
activityName: string;
|
||||
channelType: string;
|
||||
promotionTime: string[];
|
||||
promoteLink: string;
|
||||
}
|
||||
export interface ChannelInfoModel {
|
||||
advertisingSource: string;
|
||||
advertisingMedia: string;
|
||||
keyword: string[];
|
||||
pushNotify: boolean;
|
||||
advertisingContent: string;
|
||||
}
|
||||
|
||||
export type UnitChannelModel = BaseInfoModel & ChannelInfoModel;
|
||||
|
||||
export function submitChannelForm(data: UnitChannelModel) {
|
||||
return axios.post('/api/channel-form/submit', { data });
|
||||
}
|
||||
56
src/api/demo/list.ts
Normal file
@@ -0,0 +1,56 @@
|
||||
import axios from 'axios';
|
||||
import qs from 'query-string';
|
||||
import type { DescData } from '@arco-design/web-vue/es/descriptions/interface';
|
||||
|
||||
export interface PolicyRecord {
|
||||
id: string;
|
||||
number: number;
|
||||
name: string;
|
||||
contentType: 'img' | 'horizontalVideo' | 'verticalVideo';
|
||||
filterType: 'artificial' | 'rules';
|
||||
count: number;
|
||||
status: 'online' | 'offline';
|
||||
createdTime: string;
|
||||
}
|
||||
|
||||
export interface PolicyParams extends Partial<PolicyRecord> {
|
||||
current: number;
|
||||
pageSize: number;
|
||||
}
|
||||
|
||||
export interface PolicyListRes {
|
||||
list: PolicyRecord[];
|
||||
total: number;
|
||||
}
|
||||
|
||||
export function queryPolicyList(params: PolicyParams) {
|
||||
return axios.get<PolicyListRes>('/api/list/policy', {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export interface ServiceRecord {
|
||||
id: number;
|
||||
title: string;
|
||||
description: string;
|
||||
name?: string;
|
||||
actionType?: string;
|
||||
icon?: string;
|
||||
data?: DescData[];
|
||||
enable?: boolean;
|
||||
expires?: boolean;
|
||||
}
|
||||
export function queryInspectionList() {
|
||||
return axios.get('/api/list/quality-inspection');
|
||||
}
|
||||
|
||||
export function queryTheServiceList() {
|
||||
return axios.get('/api/list/the-service');
|
||||
}
|
||||
|
||||
export function queryRulesPresetList() {
|
||||
return axios.get('/api/list/rules-preset');
|
||||
}
|
||||
38
src/api/demo/message.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import axios from 'axios';
|
||||
|
||||
export interface MessageRecord {
|
||||
id: number;
|
||||
type: string;
|
||||
title: string;
|
||||
subTitle: string;
|
||||
avatar?: string;
|
||||
content: string;
|
||||
time: string;
|
||||
status: 0 | 1;
|
||||
messageType?: number;
|
||||
}
|
||||
export type MessageListType = MessageRecord[];
|
||||
|
||||
export function queryMessageList() {
|
||||
return axios.get<MessageListType>('/api/message/list');
|
||||
}
|
||||
|
||||
interface MessageStatus {
|
||||
ids: number[];
|
||||
}
|
||||
|
||||
export function setMessageStatus(data: MessageStatus) {
|
||||
return axios.post<MessageListType>('/api/message/read', data);
|
||||
}
|
||||
|
||||
export interface ChatRecord {
|
||||
id: number;
|
||||
username: string;
|
||||
content: string;
|
||||
time: string;
|
||||
isCollect: boolean;
|
||||
}
|
||||
|
||||
export function queryChatList() {
|
||||
return axios.get<ChatRecord[]>('/api/chat/list');
|
||||
}
|
||||
49
src/api/demo/profile.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import axios from 'axios';
|
||||
|
||||
export interface ProfileBasicRes {
|
||||
status: number;
|
||||
video: {
|
||||
mode: string;
|
||||
acquisition: {
|
||||
resolution: string;
|
||||
frameRate: number;
|
||||
};
|
||||
encoding: {
|
||||
resolution: string;
|
||||
rate: {
|
||||
min: number;
|
||||
max: number;
|
||||
default: number;
|
||||
};
|
||||
frameRate: number;
|
||||
profile: string;
|
||||
};
|
||||
};
|
||||
audio: {
|
||||
mode: string;
|
||||
acquisition: {
|
||||
channels: number;
|
||||
};
|
||||
encoding: {
|
||||
channels: number;
|
||||
rate: number;
|
||||
profile: string;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
export function queryProfileBasic() {
|
||||
return axios.get<ProfileBasicRes>('/api/profile/basic');
|
||||
}
|
||||
|
||||
export type operationLogRes = Array<{
|
||||
key: string;
|
||||
contentNumber: string;
|
||||
updateContent: string;
|
||||
status: number;
|
||||
updateTime: string;
|
||||
}>;
|
||||
|
||||
export function queryOperationLog() {
|
||||
return axios.get<operationLogRes>('/api/operation/log');
|
||||
}
|
||||
73
src/api/demo/visualization.ts
Normal file
@@ -0,0 +1,73 @@
|
||||
import axios from 'axios';
|
||||
import { GeneralChart } from '@/types/global';
|
||||
|
||||
export interface ChartDataRecord {
|
||||
x: string;
|
||||
y: number;
|
||||
name: string;
|
||||
}
|
||||
export interface DataChainGrowth {
|
||||
quota: string;
|
||||
}
|
||||
|
||||
export interface DataChainGrowthRes {
|
||||
count: number;
|
||||
growth: number;
|
||||
chartData: {
|
||||
xAxis: string[];
|
||||
data: { name: string; value: number[] };
|
||||
};
|
||||
}
|
||||
export function queryDataChainGrowth(data: DataChainGrowth) {
|
||||
return axios.post<DataChainGrowthRes>('/api/data-chain-growth', data);
|
||||
}
|
||||
|
||||
export interface PopularAuthorRes {
|
||||
list: {
|
||||
ranking: number;
|
||||
author: string;
|
||||
contentCount: number;
|
||||
clickCount: number;
|
||||
}[];
|
||||
}
|
||||
|
||||
export function queryPopularAuthor() {
|
||||
return axios.get<PopularAuthorRes>('/api/popular-author/list');
|
||||
}
|
||||
|
||||
export interface ContentPublishRecord {
|
||||
x: string[];
|
||||
y: number[];
|
||||
name: string;
|
||||
}
|
||||
|
||||
export function queryContentPublish() {
|
||||
return axios.get<ContentPublishRecord[]>('/api/content-publish');
|
||||
}
|
||||
|
||||
export function queryContentPeriodAnalysis() {
|
||||
return axios.get<GeneralChart>('/api/content-period-analysis');
|
||||
}
|
||||
|
||||
export interface PublicOpinionAnalysis {
|
||||
quota: string;
|
||||
}
|
||||
export interface PublicOpinionAnalysisRes {
|
||||
count: number;
|
||||
growth: number;
|
||||
chartData: ChartDataRecord[];
|
||||
}
|
||||
export function queryPublicOpinionAnalysis(data: DataChainGrowth) {
|
||||
return axios.post<PublicOpinionAnalysisRes>(
|
||||
'/api/public-opinion-analysis',
|
||||
data
|
||||
);
|
||||
}
|
||||
export interface DataOverviewRes {
|
||||
xAxis: string[];
|
||||
data: Array<{ name: string; value: number[]; count: number }>;
|
||||
}
|
||||
|
||||
export function queryDataOverview() {
|
||||
return axios.get<DataOverviewRes>('/api/data-overview');
|
||||
}
|
||||
107
src/api/monitor/log.ts
Normal file
@@ -0,0 +1,107 @@
|
||||
import axios from 'axios';
|
||||
import qs from 'query-string';
|
||||
|
||||
const BASE_URL = '/monitor/log';
|
||||
|
||||
export interface LogRecord {
|
||||
id?: number;
|
||||
ip: string;
|
||||
address: string;
|
||||
browser: string;
|
||||
os: string;
|
||||
createTime: string;
|
||||
}
|
||||
|
||||
export interface LoginLogRecord extends LogRecord {
|
||||
description: string;
|
||||
status: number;
|
||||
errorMsg: string;
|
||||
createUserString: string;
|
||||
}
|
||||
|
||||
export interface OperationLogRecord extends LogRecord {
|
||||
module: string;
|
||||
description: string;
|
||||
status: number;
|
||||
errorMsgString: string;
|
||||
createUserString: string;
|
||||
}
|
||||
|
||||
export interface SystemLogRecord extends LogRecord {
|
||||
statusCode: number;
|
||||
requestMethod: string;
|
||||
requestUrl: string;
|
||||
timeTaken: number;
|
||||
}
|
||||
|
||||
export interface SystemLogDetailRecord extends SystemLogRecord {
|
||||
requestHeaders: string;
|
||||
requestBody: string;
|
||||
responseHeaders: string;
|
||||
responseBody: string;
|
||||
}
|
||||
|
||||
export interface LoginLogParam extends Partial<LoginLogRecord> {
|
||||
page: number;
|
||||
size: number;
|
||||
sort: Array<string>;
|
||||
}
|
||||
|
||||
export interface LoginLogListRes {
|
||||
list: LoginLogRecord[];
|
||||
total: number;
|
||||
}
|
||||
|
||||
export function listLoginLog(params: LoginLogParam) {
|
||||
return axios.get<LoginLogListRes>(`${BASE_URL}/login`, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export interface OperationLogParam extends Partial<OperationLogRecord> {
|
||||
page: number;
|
||||
size: number;
|
||||
sort: Array<string>;
|
||||
uid?: string;
|
||||
}
|
||||
|
||||
export interface OperationLogListRes {
|
||||
list: OperationLogRecord[];
|
||||
total: number;
|
||||
}
|
||||
|
||||
export function listOperationLog(params: OperationLogParam) {
|
||||
return axios.get<OperationLogListRes>(`${BASE_URL}/operation`, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export interface SystemLogParam extends Partial<SystemLogRecord> {
|
||||
page: number;
|
||||
size: number;
|
||||
sort: Array<string>;
|
||||
}
|
||||
|
||||
export interface SystemLogListRes {
|
||||
list: SystemLogRecord[];
|
||||
total: number;
|
||||
}
|
||||
|
||||
export function listSystemLog(params: SystemLogParam) {
|
||||
return axios.get<SystemLogListRes>(`${BASE_URL}/system`, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function getSystemLog(id: number) {
|
||||
return axios.get<SystemLogDetailRecord>(`${BASE_URL}/system/${id}`);
|
||||
}
|
||||
39
src/api/monitor/online.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import axios from 'axios';
|
||||
import qs from 'query-string';
|
||||
|
||||
const BASE_URL = '/monitor/online/user';
|
||||
|
||||
export interface DataRecord {
|
||||
token: string;
|
||||
username: string;
|
||||
nickname: string;
|
||||
ip: string;
|
||||
address: string;
|
||||
browser: string;
|
||||
os: string;
|
||||
loginTime: string;
|
||||
}
|
||||
|
||||
export interface ListParam extends Partial<DataRecord> {
|
||||
page: number;
|
||||
size: number;
|
||||
sort: Array<string>;
|
||||
}
|
||||
|
||||
export interface ListRes {
|
||||
list: DataRecord[];
|
||||
total: number;
|
||||
}
|
||||
|
||||
export function list(params: ListParam) {
|
||||
return axios.get<ListRes>(BASE_URL, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function kickout(token: string) {
|
||||
return axios.delete(`${BASE_URL}/${token}`);
|
||||
}
|
||||
59
src/api/system/announcement.ts
Normal file
@@ -0,0 +1,59 @@
|
||||
import axios from 'axios';
|
||||
import qs from 'query-string';
|
||||
|
||||
const BASE_URL = '/system/announcement';
|
||||
|
||||
export interface DataRecord {
|
||||
id?: number;
|
||||
title?: string;
|
||||
content?: string;
|
||||
status?: number;
|
||||
type?: string;
|
||||
effectiveTime?: string;
|
||||
terminateTime?: string;
|
||||
createUser?: string;
|
||||
createTime?: string;
|
||||
updateUser?: string;
|
||||
updateTime?: string;
|
||||
createUserString?: string;
|
||||
updateUserString?: string;
|
||||
}
|
||||
|
||||
export interface ListParam {
|
||||
title?: string;
|
||||
status?: number;
|
||||
type?: string;
|
||||
page?: number;
|
||||
size?: number;
|
||||
sort?: Array<string>;
|
||||
}
|
||||
|
||||
export interface ListRes {
|
||||
list: DataRecord[];
|
||||
total: number;
|
||||
}
|
||||
|
||||
export function list(params: ListParam) {
|
||||
return axios.get<ListRes>(`${BASE_URL}`, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function get(id: number) {
|
||||
return axios.get<DataRecord>(`${BASE_URL}/${id}`);
|
||||
}
|
||||
|
||||
export function add(req: DataRecord) {
|
||||
return axios.post(BASE_URL, req);
|
||||
}
|
||||
|
||||
export function update(req: DataRecord, id: number) {
|
||||
return axios.put(`${BASE_URL}/${id}`, req);
|
||||
}
|
||||
|
||||
export function del(ids: number | Array<number>) {
|
||||
return axios.delete(`${BASE_URL}/${ids}`);
|
||||
}
|
||||
39
src/api/system/config.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import axios from 'axios';
|
||||
import qs from 'query-string';
|
||||
|
||||
const BASE_URL = '/system/option';
|
||||
|
||||
export interface BasicConfigRecord {
|
||||
site_title?: string;
|
||||
site_copyright?: string;
|
||||
site_logo?: string;
|
||||
site_favicon?: string;
|
||||
}
|
||||
|
||||
export interface DataRecord {
|
||||
name?: string;
|
||||
code: string;
|
||||
value: string;
|
||||
description?: string;
|
||||
}
|
||||
|
||||
export interface ListParam {
|
||||
code?: Array<string>;
|
||||
}
|
||||
|
||||
export function list(params: ListParam) {
|
||||
return axios.get<DataRecord[]>(`${BASE_URL}`, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function save(req: DataRecord[]) {
|
||||
return axios.patch(`${BASE_URL}`, req);
|
||||
}
|
||||
|
||||
export function resetValue(params: ListParam) {
|
||||
return axios.patch(`${BASE_URL}/value`, params);
|
||||
}
|
||||
51
src/api/system/dept.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import axios from 'axios';
|
||||
import qs from 'query-string';
|
||||
|
||||
const BASE_URL = '/system/dept';
|
||||
|
||||
export interface DataRecord {
|
||||
id?: number;
|
||||
name?: string;
|
||||
parentId?: number;
|
||||
description?: string;
|
||||
sort?: number;
|
||||
status?: number;
|
||||
isSystem?: boolean;
|
||||
createUserString?: string;
|
||||
createTime?: string;
|
||||
updateUserString?: string;
|
||||
updateTime?: string;
|
||||
children?: Array<DataRecord>;
|
||||
parentName?: string;
|
||||
disabled?: boolean;
|
||||
}
|
||||
|
||||
export interface ListParam {
|
||||
name?: string;
|
||||
status?: number;
|
||||
}
|
||||
|
||||
export function list(params: ListParam) {
|
||||
return axios.get<DataRecord[]>(`${BASE_URL}/tree`, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function get(id: number) {
|
||||
return axios.get<DataRecord>(`${BASE_URL}/${id}`);
|
||||
}
|
||||
|
||||
export function add(req: DataRecord) {
|
||||
return axios.post(BASE_URL, req);
|
||||
}
|
||||
|
||||
export function update(req: DataRecord, id: number) {
|
||||
return axios.put(`${BASE_URL}/${id}`, req);
|
||||
}
|
||||
|
||||
export function del(ids: number | Array<number>) {
|
||||
return axios.delete(`${BASE_URL}/${ids}`);
|
||||
}
|
||||
57
src/api/system/dict-item.ts
Normal file
@@ -0,0 +1,57 @@
|
||||
import axios from 'axios';
|
||||
import qs from 'query-string';
|
||||
|
||||
const BASE_URL = '/system/dict/item';
|
||||
|
||||
export interface DataRecord {
|
||||
id?: number;
|
||||
label?: string;
|
||||
value?: string;
|
||||
color?: string;
|
||||
sort?: number;
|
||||
description?: string;
|
||||
dictId?: number;
|
||||
createUser?: string;
|
||||
createTime?: string;
|
||||
updateUser?: string;
|
||||
updateTime?: string;
|
||||
createUserString?: string;
|
||||
updateUserString?: string;
|
||||
}
|
||||
|
||||
export interface ListParam {
|
||||
dictId?: number;
|
||||
page?: number;
|
||||
size?: number;
|
||||
sort?: Array<string>;
|
||||
}
|
||||
|
||||
export interface ListRes {
|
||||
list: DataRecord[];
|
||||
total: number;
|
||||
}
|
||||
|
||||
export function list(params: ListParam) {
|
||||
return axios.get<ListRes>(`${BASE_URL}`, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function get(id: number) {
|
||||
return axios.get<DataRecord>(`${BASE_URL}/${id}`);
|
||||
}
|
||||
|
||||
export function add(req: DataRecord) {
|
||||
return axios.post(BASE_URL, req);
|
||||
}
|
||||
|
||||
export function update(req: DataRecord, id: number) {
|
||||
return axios.put(`${BASE_URL}/${id}`, req);
|
||||
}
|
||||
|
||||
export function del(ids: number | Array<number>) {
|
||||
return axios.delete(`${BASE_URL}/${ids}`);
|
||||
}
|
||||
55
src/api/system/dict.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
import axios from 'axios';
|
||||
import qs from 'query-string';
|
||||
|
||||
const BASE_URL = '/system/dict';
|
||||
|
||||
export interface DataRecord {
|
||||
id?: number;
|
||||
name?: string;
|
||||
code?: string;
|
||||
description?: string;
|
||||
isSystem?: boolean;
|
||||
createUser?: string;
|
||||
createTime?: string;
|
||||
updateUser?: string;
|
||||
updateTime?: string;
|
||||
createUserString?: string;
|
||||
updateUserString?: string;
|
||||
}
|
||||
|
||||
export interface ListParam {
|
||||
name?: string;
|
||||
page?: number;
|
||||
size?: number;
|
||||
sort?: Array<string>;
|
||||
}
|
||||
|
||||
export interface ListRes {
|
||||
list: DataRecord[];
|
||||
total: number;
|
||||
}
|
||||
|
||||
export function list(params: ListParam) {
|
||||
return axios.get<ListRes>(`${BASE_URL}`, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function get(id: number) {
|
||||
return axios.get<DataRecord>(`${BASE_URL}/${id}`);
|
||||
}
|
||||
|
||||
export function add(req: DataRecord) {
|
||||
return axios.post(BASE_URL, req);
|
||||
}
|
||||
|
||||
export function update(req: DataRecord, id: number) {
|
||||
return axios.put(`${BASE_URL}/${id}`, req);
|
||||
}
|
||||
|
||||
export function del(ids: number | Array<number>) {
|
||||
return axios.delete(`${BASE_URL}/${ids}`);
|
||||
}
|
||||
47
src/api/system/file.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
import axios from 'axios';
|
||||
import qs from 'query-string';
|
||||
|
||||
const BASE_URL = '/system/file';
|
||||
|
||||
export interface FileItem {
|
||||
id: string;
|
||||
name: string;
|
||||
size: number;
|
||||
url: string;
|
||||
extension: string;
|
||||
type?: string;
|
||||
storageId?: string;
|
||||
createUser?: string;
|
||||
createTime?: string;
|
||||
updateUser?: string;
|
||||
updateTime: string;
|
||||
createUserString?: string;
|
||||
updateUserString?: string;
|
||||
}
|
||||
|
||||
export interface ListParam {
|
||||
name?: string;
|
||||
type?: string;
|
||||
sort?: Array<string>;
|
||||
}
|
||||
|
||||
export function list(params: ListParam) {
|
||||
return axios.get<FileItem[]>(`${BASE_URL}/list`, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export interface FileItemUpdate {
|
||||
name: string;
|
||||
}
|
||||
|
||||
export function update(req: FileItemUpdate, id: string) {
|
||||
return axios.put(`${BASE_URL}/${id}`, req);
|
||||
}
|
||||
|
||||
export function del(ids: string | Array<string>) {
|
||||
return axios.delete(`${BASE_URL}/${ids}`);
|
||||
}
|
||||
57
src/api/system/menu.ts
Normal file
@@ -0,0 +1,57 @@
|
||||
import axios from 'axios';
|
||||
import qs from 'query-string';
|
||||
|
||||
const BASE_URL = '/system/menu';
|
||||
|
||||
export interface DataRecord {
|
||||
id?: number;
|
||||
title?: string;
|
||||
parentId?: number;
|
||||
type?: number;
|
||||
path?: string;
|
||||
name?: string;
|
||||
component?: string;
|
||||
icon?: string;
|
||||
isExternal?: boolean;
|
||||
isCache?: boolean;
|
||||
isHidden?: boolean;
|
||||
permission?: string;
|
||||
sort?: number;
|
||||
status?: number;
|
||||
createUserString?: string;
|
||||
createTime?: string;
|
||||
updateUserString?: string;
|
||||
updateTime?: string;
|
||||
children?: Array<DataRecord>;
|
||||
parentName?: string;
|
||||
}
|
||||
|
||||
export interface ListParam {
|
||||
name?: string;
|
||||
status?: number;
|
||||
}
|
||||
|
||||
export function list(params: ListParam) {
|
||||
return axios.get<DataRecord[]>(`${BASE_URL}/tree`, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function get(id: number) {
|
||||
return axios.get<DataRecord>(`${BASE_URL}/${id}`);
|
||||
}
|
||||
|
||||
export function add(req: DataRecord) {
|
||||
return axios.post(BASE_URL, req);
|
||||
}
|
||||
|
||||
export function update(req: DataRecord, id: number) {
|
||||
return axios.put(`${BASE_URL}/${id}`, req);
|
||||
}
|
||||
|
||||
export function del(ids: number | Array<number>) {
|
||||
return axios.delete(`${BASE_URL}/${ids}`);
|
||||
}
|
||||
60
src/api/system/message.ts
Normal file
@@ -0,0 +1,60 @@
|
||||
import axios from 'axios';
|
||||
import qs from 'query-string';
|
||||
|
||||
const BASE_URL = '/system/message';
|
||||
|
||||
export interface DataRecord {
|
||||
id: number;
|
||||
title: string;
|
||||
content: string;
|
||||
type: number;
|
||||
createUserString?: string;
|
||||
createTime: string;
|
||||
isRead: boolean;
|
||||
readTime: string;
|
||||
}
|
||||
|
||||
export interface ListParam {
|
||||
title?: string;
|
||||
type?: number;
|
||||
isRead?: boolean;
|
||||
page?: number;
|
||||
size?: number;
|
||||
sort?: Array<string>;
|
||||
}
|
||||
|
||||
export interface ListRes {
|
||||
list: DataRecord[];
|
||||
total: number;
|
||||
}
|
||||
|
||||
export function list(params: ListParam) {
|
||||
return axios.get<ListRes>(`${BASE_URL}`, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function del(ids: number | Array<number>) {
|
||||
return axios.delete(`${BASE_URL}/${ids}`);
|
||||
}
|
||||
|
||||
export function read(ids: Array<number>) {
|
||||
return axios.patch(`${BASE_URL}/read?ids=${ids}`);
|
||||
}
|
||||
|
||||
export interface MessageTypeUnreadRes {
|
||||
type: number;
|
||||
count: number;
|
||||
}
|
||||
|
||||
export interface MessageUnreadRes {
|
||||
total: number;
|
||||
details: MessageTypeUnreadRes[];
|
||||
}
|
||||
|
||||
export function countUnread(detail: boolean) {
|
||||
return axios.get<MessageUnreadRes>(`${BASE_URL}/unread?detail=${detail}`);
|
||||
}
|
||||
60
src/api/system/role.ts
Normal file
@@ -0,0 +1,60 @@
|
||||
import axios from 'axios';
|
||||
import qs from 'query-string';
|
||||
|
||||
const BASE_URL = '/system/role';
|
||||
|
||||
export interface DataRecord {
|
||||
id?: number;
|
||||
name?: string;
|
||||
code?: string;
|
||||
sort?: number;
|
||||
description?: string;
|
||||
menuIds?: Array<number>;
|
||||
dataScope?: number;
|
||||
deptIds?: Array<number>;
|
||||
status?: number;
|
||||
isSystem?: boolean;
|
||||
createUserString?: string;
|
||||
createTime?: string;
|
||||
updateUserString?: string;
|
||||
updateTime?: string;
|
||||
disabled?: boolean;
|
||||
}
|
||||
|
||||
export interface ListParam {
|
||||
name?: string;
|
||||
status?: number;
|
||||
page?: number;
|
||||
size?: number;
|
||||
sort?: Array<string>;
|
||||
}
|
||||
|
||||
export interface ListRes {
|
||||
list: DataRecord[];
|
||||
total: number;
|
||||
}
|
||||
|
||||
export function list(params: ListParam) {
|
||||
return axios.get<ListRes>(`${BASE_URL}`, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function get(id: number) {
|
||||
return axios.get<DataRecord>(`${BASE_URL}/${id}`);
|
||||
}
|
||||
|
||||
export function add(req: DataRecord) {
|
||||
return axios.post(BASE_URL, req);
|
||||
}
|
||||
|
||||
export function update(req: DataRecord, id: number) {
|
||||
return axios.put(`${BASE_URL}/${id}`, req);
|
||||
}
|
||||
|
||||
export function del(ids: number | Array<number>) {
|
||||
return axios.delete(`${BASE_URL}/${ids}`);
|
||||
}
|
||||
64
src/api/system/storage.ts
Normal file
@@ -0,0 +1,64 @@
|
||||
import axios from 'axios';
|
||||
import qs from 'query-string';
|
||||
|
||||
const BASE_URL = '/system/storage';
|
||||
|
||||
export interface DataRecord {
|
||||
id?: number;
|
||||
name?: string;
|
||||
code?: string;
|
||||
type?: number;
|
||||
accessKey?: string;
|
||||
secretKey?: string;
|
||||
endpoint?: string;
|
||||
bucketName?: string;
|
||||
domain?: string;
|
||||
description?: string;
|
||||
isDefault?: boolean;
|
||||
sort?: number;
|
||||
status?: number;
|
||||
createUser?: string;
|
||||
createTime?: string;
|
||||
updateUser?: string;
|
||||
updateTime?: string;
|
||||
createUserString?: string;
|
||||
updateUserString?: string;
|
||||
}
|
||||
|
||||
export interface ListParam {
|
||||
name?: string;
|
||||
status?: string;
|
||||
page?: number;
|
||||
size?: number;
|
||||
sort?: Array<string>;
|
||||
}
|
||||
|
||||
export interface PageRes<T> {
|
||||
total: number;
|
||||
list: T;
|
||||
}
|
||||
|
||||
export function list(params: ListParam) {
|
||||
return axios.get<PageRes<DataRecord[]>>(`${BASE_URL}`, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function get(id: number) {
|
||||
return axios.get<DataRecord>(`${BASE_URL}/${id}`);
|
||||
}
|
||||
|
||||
export function add(req: DataRecord) {
|
||||
return axios.post(BASE_URL, req);
|
||||
}
|
||||
|
||||
export function update(req: DataRecord, id: number) {
|
||||
return axios.put(`${BASE_URL}/${id}`, req);
|
||||
}
|
||||
|
||||
export function del(ids: number | Array<number>) {
|
||||
return axios.delete(`${BASE_URL}/${ids}`);
|
||||
}
|
||||
86
src/api/system/user-center.ts
Normal file
@@ -0,0 +1,86 @@
|
||||
import axios from 'axios';
|
||||
|
||||
const BASE_URL = '/system/user';
|
||||
|
||||
export interface BasicInfoModel {
|
||||
username: string;
|
||||
nickname: string;
|
||||
gender: number;
|
||||
}
|
||||
|
||||
export interface AvatarRes {
|
||||
avatar: string;
|
||||
}
|
||||
|
||||
export interface cropperOptions {
|
||||
autoCrop: boolean; // 是否默认生成截图框
|
||||
autoCropWidth: number; // 默认生成截图框宽度
|
||||
autoCropHeight: number; // 默认生成截图框高度
|
||||
canMove: boolean; // 上传图片是否可以移动 (默认:true)
|
||||
centerBox: boolean; // 截图框是否被限制在图片里面 (默认:false)
|
||||
full: boolean; // 是否输出原图比例的截图 选true生成的图片会非常大 (默认:false)
|
||||
fixed: boolean; // 是否开启截图框宽高固定比例 (默认:false)
|
||||
fixedBox: boolean; // 固定截图框大小 不允许改变
|
||||
img: string | ArrayBuffer | null; // 裁剪图片的地址
|
||||
outputSize: number; // 裁剪生成图片的质量 (默认:1)
|
||||
outputType: string; // 默认生成截图为PNG格式
|
||||
}
|
||||
|
||||
export function uploadAvatar(data: FormData) {
|
||||
return axios.post<AvatarRes>(`${BASE_URL}/avatar`, data);
|
||||
}
|
||||
|
||||
export interface UserBasicInfoUpdateReq {
|
||||
nickname: string;
|
||||
gender: number;
|
||||
}
|
||||
|
||||
export function updateBasicInfo(req: UserBasicInfoUpdateReq) {
|
||||
return axios.patch(`${BASE_URL}/basic/info`, req);
|
||||
}
|
||||
|
||||
export interface UserPasswordUpdateReq {
|
||||
oldPassword: string;
|
||||
newPassword: string;
|
||||
}
|
||||
|
||||
export function updatePassword(req: UserPasswordUpdateReq) {
|
||||
return axios.patch(`${BASE_URL}/password`, req);
|
||||
}
|
||||
|
||||
export interface UserPhoneUpdateReq {
|
||||
newPhone: string;
|
||||
captcha: string;
|
||||
currentPassword: string;
|
||||
}
|
||||
|
||||
export function updatePhone(req: UserPhoneUpdateReq) {
|
||||
return axios.patch(`${BASE_URL}/phone`, req);
|
||||
}
|
||||
|
||||
export interface UserEmailUpdateReq {
|
||||
newEmail: string;
|
||||
captcha: string;
|
||||
currentPassword: string;
|
||||
}
|
||||
|
||||
export function updateEmail(req: UserEmailUpdateReq) {
|
||||
return axios.patch(`${BASE_URL}/email`, req);
|
||||
}
|
||||
|
||||
export interface UserSocialBindRecord {
|
||||
source: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
export function listSocial() {
|
||||
return axios.get<UserSocialBindRecord[]>(`${BASE_URL}/social`);
|
||||
}
|
||||
|
||||
export function bindSocial(source: string, req: any) {
|
||||
return axios.post(`${BASE_URL}/social/${source}`, req);
|
||||
}
|
||||
|
||||
export function unbindSocial(source: string) {
|
||||
return axios.delete(`${BASE_URL}/social/${source}`);
|
||||
}
|
||||
77
src/api/system/user.ts
Normal file
@@ -0,0 +1,77 @@
|
||||
import axios from 'axios';
|
||||
import qs from 'query-string';
|
||||
|
||||
const BASE_URL = '/system/user';
|
||||
|
||||
export interface DataRecord {
|
||||
id?: number;
|
||||
username?: string;
|
||||
nickname?: string;
|
||||
gender?: number;
|
||||
email?: string;
|
||||
phone?: string;
|
||||
description?: string;
|
||||
status?: number;
|
||||
isSystem?: boolean;
|
||||
pwdResetTime?: string;
|
||||
createUserString?: string;
|
||||
createTime?: string;
|
||||
updateUserString?: string;
|
||||
updateTime?: string;
|
||||
deptId?: number;
|
||||
deptName?: string;
|
||||
roleIds?: Array<number>;
|
||||
roleNames?: Array<string>;
|
||||
disabled?: boolean;
|
||||
}
|
||||
|
||||
export interface ListParam {
|
||||
username?: string;
|
||||
status?: number;
|
||||
createTime?: Array<string>;
|
||||
page?: number;
|
||||
size?: number;
|
||||
sort?: Array<string>;
|
||||
}
|
||||
|
||||
export interface ListRes {
|
||||
list: DataRecord[];
|
||||
total: number;
|
||||
}
|
||||
|
||||
export function list(params: ListParam) {
|
||||
return axios.get<ListRes>(`${BASE_URL}`, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function get(id: number) {
|
||||
return axios.get<DataRecord>(`${BASE_URL}/${id}`);
|
||||
}
|
||||
|
||||
export function add(req: DataRecord) {
|
||||
return axios.post(BASE_URL, req);
|
||||
}
|
||||
|
||||
export function update(req: DataRecord, id: number) {
|
||||
return axios.put(`${BASE_URL}/${id}`, req);
|
||||
}
|
||||
|
||||
export function del(ids: number | Array<number>) {
|
||||
return axios.delete(`${BASE_URL}/${ids}`);
|
||||
}
|
||||
|
||||
export function resetPassword(id: number) {
|
||||
return axios.patch(`${BASE_URL}/${id}/password`);
|
||||
}
|
||||
|
||||
export interface UpdateUserRoleReq {
|
||||
roleIds?: Array<number>;
|
||||
}
|
||||
|
||||
export function updateUserRole(req: UpdateUserRoleReq, id: number) {
|
||||
return axios.patch(`${BASE_URL}/${id}/role`, req);
|
||||
}
|
||||
92
src/api/tool/generator.ts
Normal file
@@ -0,0 +1,92 @@
|
||||
import axios from 'axios';
|
||||
import qs from 'query-string';
|
||||
|
||||
const BASE_URL = '/tool/generator';
|
||||
|
||||
export interface TableRecord {
|
||||
tableName: string;
|
||||
comment?: string;
|
||||
engine: string;
|
||||
charset: string;
|
||||
createTime?: string;
|
||||
isConfiged: boolean;
|
||||
}
|
||||
|
||||
export interface TableParam {
|
||||
tableName?: string;
|
||||
}
|
||||
|
||||
export interface TableListRes {
|
||||
list: TableRecord[];
|
||||
total: number;
|
||||
}
|
||||
|
||||
export function listTable(params: TableParam) {
|
||||
return axios.get<TableListRes>(`${BASE_URL}/table`, {
|
||||
params,
|
||||
paramsSerializer: (obj) => {
|
||||
return qs.stringify(obj);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export interface FieldConfigRecord {
|
||||
tableName: string;
|
||||
columnName: string;
|
||||
columnType: string;
|
||||
fieldName: string;
|
||||
fieldType: string;
|
||||
comment: string;
|
||||
isRequired: boolean;
|
||||
showInList: boolean;
|
||||
showInForm: boolean;
|
||||
showInQuery: boolean;
|
||||
formType: string;
|
||||
queryType: string;
|
||||
createTime?: string;
|
||||
}
|
||||
|
||||
export function listFieldConfig(tableName: string, requireSync: boolean) {
|
||||
return axios.get<FieldConfigRecord[]>(
|
||||
`${BASE_URL}/field/${tableName}?requireSync=${requireSync}`,
|
||||
);
|
||||
}
|
||||
|
||||
export interface GenConfigRecord {
|
||||
tableName: string;
|
||||
moduleName: string;
|
||||
packageName: string;
|
||||
frontendPath: string;
|
||||
businessName: string;
|
||||
author: string;
|
||||
tablePrefix: string;
|
||||
isOverride: boolean;
|
||||
createTime?: string;
|
||||
updateTime?: string;
|
||||
}
|
||||
|
||||
export function getGenConfig(tableName: string) {
|
||||
return axios.get<GenConfigRecord>(`${BASE_URL}/config/${tableName}`);
|
||||
}
|
||||
|
||||
export interface GeneratorConfigRecord {
|
||||
genConfig: GenConfigRecord;
|
||||
fieldConfigs: FieldConfigRecord[];
|
||||
}
|
||||
|
||||
export function saveConfig(tableName: string, req: GeneratorConfigRecord) {
|
||||
return axios.post(`${BASE_URL}/config/${tableName}`, req);
|
||||
}
|
||||
|
||||
export interface GeneratePreviewRecord {
|
||||
fileName: string;
|
||||
content: string;
|
||||
}
|
||||
|
||||
export function preview(tableName: string) {
|
||||
return axios.get<GeneratePreviewRecord[]>(`${BASE_URL}/preview/${tableName}`);
|
||||
}
|
||||
|
||||
export function generate(tableName: string) {
|
||||
return axios.post(`${BASE_URL}/${tableName}`);
|
||||
}
|
||||
BIN
src/assets/icons/png/data.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
src/assets/icons/png/hot.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
BIN
src/assets/icons/png/popularity.png
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
BIN
src/assets/icons/png/same-city.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
1
src/assets/icons/svg/account.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="24" height="24" viewBox="0 0 48 48" fill="none" stroke="currentColor"><path fill-rule="evenodd" clip-rule="evenodd" d="M43 42a1 1 0 011 1v2a1 1 0 01-1 1H29a1 1 0 01-1-1v-2a1 1 0 011-1h14zM24.05 26a1 1 0 01.993.883l.007.117v2a1 1 0 01-.884.993L24.05 30H16c-3.73 0-6.86 2.55-7.75 6a8.294 8.294 0 00-.24 1.588L8 38v2h16.05a1 1 0 01.993.883l.007.117v2a1 1 0 01-.884.993L24.05 44H6a2.003 2.003 0 01-1.994-1.85L4 42v-4c0-6.525 5.206-11.834 11.695-11.996L16 26h8.05zM43 34a1 1 0 011 1v2a1 1 0 01-1 1H29a1 1 0 01-1-1v-2a1 1 0 011-1h14zm0-8a1 1 0 011 1v2a1 1 0 01-1 1H29a1 1 0 01-1-1v-2a1 1 0 011-1h14zM21 3c5.52 0 10 4.477 10 10s-4.48 10-10 10-10-4.477-10-10S15.48 3 21 3zm0 4c-3.31 0-6 2.686-6 6s2.69 6 6 6 6-2.686 6-6-2.69-6-6-6z" fill="currentColor"/></svg>
|
||||
|
After Width: | Height: | Size: 764 B |
1
src/assets/icons/svg/advertising.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="48" height="48" viewBox="0 0 32 32" fill="currentColor"><path fill-rule="evenodd" clip-rule="evenodd" d="M25.947 7.967a.835.835 0 00-1.17-.764L6.378 15.28a.665.665 0 01-.534-1.218l18.397-8.077a2.165 2.165 0 013.035 1.982v15.508a2.165 2.165 0 01-2.952 2.017L5.87 18.29a.665.665 0 01.484-1.239l18.455 7.202a.835.835 0 001.138-.778V7.967z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="M18.407 23.399a4.665 4.665 0 01-8.672-3.444l.038-.096a.665.665 0 111.236.491l-.038.096a3.335 3.335 0 006.2 2.462l.037-.096a.665.665 0 011.237.491l-.038.096zM5.734 11.306c.368 0 .665.297.665.665v8.5a.665.665 0 01-1.33 0v-8.5c0-.368.298-.665.665-.665z" fill="currentColor"/></svg>
|
||||
|
After Width: | Height: | Size: 697 B |
1
src/assets/icons/svg/align-center.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M44 9H4m38 20H6m28-10H14m20 20H14"/></svg>
|
||||
|
After Width: | Height: | Size: 127 B |
1
src/assets/icons/svg/align-left.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M44 9H4m36 20H4m21-10H4m21 20H4"/></svg>
|
||||
|
After Width: | Height: | Size: 125 B |
1
src/assets/icons/svg/align-right.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M4 9h40M8 29h36M23 19h21M23 39h21"/></svg>
|
||||
|
After Width: | Height: | Size: 127 B |
1
src/assets/icons/svg/announcement.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="48" height="48" viewBox="0 0 48 48" fill="currentColor"><path fill-rule="evenodd" clip-rule="evenodd" d="M25.657 3.69l.168.113L35.783 11H42a2 2 0 012 2v28a2 2 0 01-2 2H6a2 2 0 01-2-2V13a2 2 0 012-2h6.352l9.958-7.197a3 3 0 013.347-.114zM40 15H8v24h32V15zM25 30a1 1 0 00-1-1H13a1 1 0 00-1 1v2a1 1 0 001 1h11a1 1 0 001-1v-2zm10-9a1 1 0 011 1v2a1 1 0 01-1 1H13a1 1 0 01-1-1v-2a1 1 0 011-1h22zM19.18 11l4.888-3.532L28.954 11H19.18z" fill="currentColor"/></svg>
|
||||
|
After Width: | Height: | Size: 467 B |
1
src/assets/icons/svg/anonymity.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="48" height="48" viewBox="0 0 28 28" fill="currentColor"><path fill-rule="evenodd" clip-rule="evenodd" d="M16.333 5.333a6 6 0 00-3.246 11.047c-2.308.562-4.32 1.746-6.025 3.548a2.667 2.667 0 00-.729 1.832v1.073l.006.165a2.5 2.5 0 002.494 2.335h7.642l.099-.007A.667.667 0 0016.475 24H8.833l-.127-.007a1.167 1.167 0 01-1.04-1.16V21.76l.009-.145c.031-.287.156-.558.356-.77 2.217-2.346 4.988-3.512 8.354-3.512h.026a6 6 0 00-.078-12zm0 1.334a4.667 4.667 0 110 9.333 4.667 4.667 0 010-9.333zm8.714 12.214a.667.667 0 00-1.008-.868l-4.1 4.1-2.138-2.139-.075-.064a.667.667 0 00-.868 1.007l2.61 2.61a.667.667 0 00.943 0l4.571-4.571.065-.075z" fill="currentColor"/></svg>
|
||||
|
After Width: | Height: | Size: 670 B |
1
src/assets/icons/svg/apps.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path stroke="#4E5969" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" d="M7 7h13v13H7zM28 7h13v13H28zM7 28h13v13H7zM28 28h13v13H28z"/></svg>
|
||||
|
After Width: | Height: | Size: 233 B |
1
src/assets/icons/svg/archive.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><rect x="9" y="18" width="30" height="22" rx="1"/><path d="M6 9a1 1 0 011-1h34a1 1 0 011 1v8a1 1 0 01-1 1H7a1 1 0 01-1-1V9zM19 27h10"/></svg>
|
||||
|
After Width: | Height: | Size: 217 B |
1
src/assets/icons/svg/arrow-down.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M11.27 27.728l12.728 12.728 12.728-12.728M24 5v34.295"/></svg>
|
||||
|
After Width: | Height: | Size: 147 B |
1
src/assets/icons/svg/arrow-fall.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M24.008 41.99a.01.01 0 01-.016 0l-9.978-11.974A.01.01 0 0114.02 30H33.98a.01.01 0 01.007.016l-9.978 11.975z"/><path d="M24 42L14 30h20L24 42z" fill="#4E5969"/><path stroke="#4E5969" stroke-width="4" d="M22 6h4v26h-4z"/><path fill="#4E5969" d="M22 6h4v26h-4z"/></svg>
|
||||
|
After Width: | Height: | Size: 351 B |
1
src/assets/icons/svg/arrow-left.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M20.272 11.27L7.544 23.998l12.728 12.728M43 24H8.705"/></svg>
|
||||
|
After Width: | Height: | Size: 146 B |
1
src/assets/icons/svg/arrow-right.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M27.728 11.27l12.728 12.728-12.728 12.728M5 24h34.295"/></svg>
|
||||
|
After Width: | Height: | Size: 147 B |
1
src/assets/icons/svg/arrow-rise.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M23.992 6.01a.01.01 0 01.016 0l9.978 11.974a.01.01 0 01-.007.016H14.02a.01.01 0 01-.007-.016l9.978-11.975z"/><path d="M24 6l10 12H14L24 6z" fill="#4E5969"/><path stroke="#4E5969" stroke-width="4" d="M26 42h-4V16h4z"/><path fill="#4E5969" d="M26 42h-4V16h4z"/></svg>
|
||||
|
After Width: | Height: | Size: 350 B |
1
src/assets/icons/svg/arrow-up.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M11.27 20.272L23.998 7.544l12.728 12.728M24 43V8.705"/></svg>
|
||||
|
After Width: | Height: | Size: 146 B |
1
src/assets/icons/svg/at.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M31 23a7 7 0 11-14 0 7 7 0 0114 0zm0 0c0 3.038 2.462 6.5 5.5 6.5A5.5 5.5 0 0042 24c0-9.941-8.059-18-18-18S6 14.059 6 24s8.059 18 18 18c4.244 0 8.145-1.469 11.222-3.925"/></svg>
|
||||
|
After Width: | Height: | Size: 261 B |
1
src/assets/icons/svg/attachment.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M29.037 15.236s-9.174 9.267-11.48 11.594c-2.305 2.327-1.646 4.987-.329 6.316 1.317 1.33 3.994 1.953 6.258-.332L37.32 18.851c3.623-3.657 2.092-8.492 0-10.639-2.093-2.147-6.916-3.657-10.54 0L11.3 23.838c-3.623 3.657-3.953 10.638.329 14.96 4.282 4.322 11.115 4.105 14.821.333 3.706-3.773 8.74-8.822 11.224-11.33"/></svg>
|
||||
|
After Width: | Height: | Size: 402 B |
1
src/assets/icons/svg/backward.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M38.293 36.293L26.707 24.707a1 1 0 010-1.414l11.586-11.586c.63-.63 1.707-.184 1.707.707v23.172c0 .89-1.077 1.337-1.707.707zM21 12.414v23.172c0 .89-1.077 1.337-1.707.707L7.707 24.707a1 1 0 010-1.414l11.586-11.586c.63-.63 1.707-.184 1.707.707z"/></svg>
|
||||
|
After Width: | Height: | Size: 335 B |
1
src/assets/icons/svg/bar-chart.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M41 7H29v34h12V7ZM29 18H18v23h11V18ZM18 29H7v12h11V29Z"></path></svg>
|
||||
|
After Width: | Height: | Size: 154 B |
1
src/assets/icons/svg/behavior-anal.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="24" height="24" viewBox="0 0 48 48" fill="currentColor"><path fill-rule="evenodd" clip-rule="evenodd" d="M23.5 5C33.717 5 42 13.283 42 23.5c0 4.388-1.528 8.42-4.08 11.59l5.808 5.81a1 1 0 010 1.414l-1.414 1.414a1 1 0 01-1.414 0l-5.81-5.808A18.422 18.422 0 0123.5 42C13.283 42 5 33.717 5 23.5S13.283 5 23.5 5zm0 4C15.492 9 9 15.492 9 23.5S15.492 38 23.5 38 38 31.508 38 23.5 31.508 9 23.5 9zm7.832 6.391l1.732 1a1 1 0 01.366 1.366l-5.5 9.526a1 1 0 01-1.261.419l-.105-.053-5.196-3-4 6.928a1 1 0 01-1.366.366l-1.732-1a1 1 0 01-.366-1.366l5.5-9.526a1 1 0 011.366-.366l5.196 3 4-6.928a1 1 0 011.366-.366z" fill="currentColor"/></svg>
|
||||
|
After Width: | Height: | Size: 639 B |
1
src/assets/icons/svg/bg-colors.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M19 5.25L22.75 9m0 0l12.043 12.043a1 1 0 010 1.414L32 25.25 21.221 36.029a1 1 0 01-1.428-.014L9.443 25.25l-.763-.793a1 1 0 01.013-1.4L22.75 9zM6 42h36"/><path d="M11.791 25.25c-.881 0-1.332 1.058-.72 1.693l8.722 9.072a1 1 0 001.428.014L32 25.25H11.791z" fill="#4E5969"/><path fill-rule="evenodd" clip-rule="evenodd" d="M40.013 29.812L37.201 27l-2.812 2.812a4 4 0 105.624 0z" fill="#4E5969"/></svg>
|
||||
|
After Width: | Height: | Size: 482 B |
1
src/assets/icons/svg/bold.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M13 24h12a8 8 0 100-16H13.2a.2.2 0 00-.2.2V24zm0 0h16a8 8 0 110 16H13.2a.2.2 0 01-.2-.2V24z"/></svg>
|
||||
|
After Width: | Height: | Size: 185 B |
1
src/assets/icons/svg/book.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M24 13L7 7v28l17 6 17-6V7l-17 6zm0 0v27.5M19 18l-7-2.5M19 25l-7-2.5M19 32l-7-2.5M29 18l7-2.5M29 25l7-2.5M29 32l7-2.5" stroke="#4E5969" stroke-width="4" stroke-linejoin="round"/></svg>
|
||||
|
After Width: | Height: | Size: 268 B |
1
src/assets/icons/svg/bookmark.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M16 16h16M16 24h8"></path><path d="M24 41H8V6h32v17"></path><path d="M30 29h11v13l-5.5-3.5L30 42V29Z"/></svg>
|
||||
|
After Width: | Height: | Size: 194 B |
1
src/assets/icons/svg/branch.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M19 10a4 4 0 11-8 0 4 4 0 018 0zM38 10a4 4 0 11-8 0 4 4 0 018 0zM19 38a4 4 0 11-8 0 4 4 0 018 0zM15 15v15m0 3.5V30m0 0c0-5 19-7 19-15"/></svg>
|
||||
|
After Width: | Height: | Size: 227 B |
1
src/assets/icons/svg/brush.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M33 13h7a1 1 0 011 1v12.14a1 1 0 01-.85.99l-21.3 3.24a1 1 0 00-.85.99V43"/><path d="M7 18V8c0-.552.444-1 .997-1H32.01c.552 0 .99.447.99 1v10.002A.998.998 0 0132 19H8a1 1 0 01-1-1z"/></svg>
|
||||
|
After Width: | Height: | Size: 273 B |
1
src/assets/icons/svg/bug.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M35 27h8M5 27h8m0-9h22v13c0 6.075-4.925 11-11 11s-11-4.925-11-11V18z" stroke="#4E5969" stroke-width="4" stroke-linejoin="round"/><path d="M7 42v-.5a6.5 6.5 0 016.5-6.5M7 42v-.5M41 42v-.5a6.5 6.5 0 00-6.5-6.5M13 18h22M7 14a4 4 0 004 4h26a4 4 0 004-4M24 42V23M17 14a7 7 0 1114 0" stroke="#4E5969" stroke-width="4" stroke-linejoin="round"/></svg>
|
||||
|
After Width: | Height: | Size: 428 B |
1
src/assets/icons/svg/bulb.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M30.8 32.465c.585-2.576 2.231-4.75 3.77-6.897A12.94 12.94 0 0037 18c0-7.18-5.82-13-13-13s-13 5.82-13 13c0 2.823.9 5.437 2.43 7.568 1.539 2.147 3.185 4.32 3.77 6.897l.623 2.756A1 1 0 0018.8 36H29.2a1 1 0 00.976-.779l.624-2.756zM17 42h14"/></svg>
|
||||
|
After Width: | Height: | Size: 329 B |
1
src/assets/icons/svg/calendar.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M7 22h34M8 41h32a1 1 0 001-1V10a1 1 0 00-1-1H8a1 1 0 00-1 1v30a1 1 0 001 1zM34 5v8M14 5v8"/></svg>
|
||||
|
After Width: | Height: | Size: 183 B |
1
src/assets/icons/svg/calendar_clock.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M7 22h34V10a1 1 0 00-1-1H8a1 1 0 00-1 1v30a1 1 0 001 1h18M34 5v8M14 5v8"/><path fill-rule="evenodd" clip-rule="evenodd" d="M36 44a9 9 0 100-18 9 9 0 000 18zm1.5-9.75V29h-3v8.25H42v-3h-4.5z" fill="#4E5969"/></svg>
|
||||
|
After Width: | Height: | Size: 297 B |
1
src/assets/icons/svg/camera.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M6 13a1 1 0 011-1h34a1 1 0 011 1v26a1 1 0 01-1 1H7a1 1 0 01-1-1V13z"/><path d="M31 26a7 7 0 11-14 0 7 7 0 0114 0zM33 12l-1.862-3.724A.5.5 0 0030.691 8H17.309a.5.5 0 00-.447.276L15 12"/></svg>
|
||||
|
After Width: | Height: | Size: 276 B |
1
src/assets/icons/svg/caret-down.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M24.937 34.829a1.2 1.2 0 01-1.874 0L9.56 17.949C8.93 17.165 9.49 16 10.497 16h27.006c1.007 0 1.566 1.164.937 1.95L24.937 34.829z" fill="#4E5969"/></svg>
|
||||
|
After Width: | Height: | Size: 237 B |
1
src/assets/icons/svg/caret-left.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M13.171 24.937a1.2 1.2 0 010-1.874L30.051 9.56c.785-.629 1.949-.07 1.949.937v27.006c0 1.007-1.164 1.566-1.95.937L13.171 24.937z" fill="#4E5969"/></svg>
|
||||
|
After Width: | Height: | Size: 236 B |
1
src/assets/icons/svg/caret-right.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M34.829 23.063c.6.48.6 1.394 0 1.874L17.949 38.44c-.785.629-1.949.07-1.949-.937V10.497c0-1.006 1.164-1.566 1.95-.937l16.879 13.503z" fill="#4E5969"/></svg>
|
||||
|
After Width: | Height: | Size: 240 B |
1
src/assets/icons/svg/caret-up.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M23.063 13.171a1.2 1.2 0 011.874 0l13.503 16.88c.629.785.07 1.949-.937 1.949H10.497c-1.006 0-1.566-1.164-.937-1.95l13.503-16.879z" fill="#4E5969"/></svg>
|
||||
|
After Width: | Height: | Size: 238 B |
1
src/assets/icons/svg/check-circle-f.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M42 24c0 9.941-8.059 18-18 18S6 33.941 6 24 14.059 6 24 6s18 8.059 18 18z" fill="#4E5969"/><path d="M15 22l7 7 11.5-11.5" stroke="#fff" stroke-width="4"/></svg>
|
||||
|
After Width: | Height: | Size: 245 B |
1
src/assets/icons/svg/check-circle.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M42 24c0 9.941-8.059 18-18 18S6 33.941 6 24 14.059 6 24 6s18 8.059 18 18z"/><path d="M15 22l7 7 11.5-11.5"/></svg>
|
||||
|
After Width: | Height: | Size: 199 B |
1
src/assets/icons/svg/check-square.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M7 8a1 1 0 011-1h32a1 1 0 011 1v32a1 1 0 01-1 1H8a1 1 0 01-1-1V8z"/><path d="M34.603 16.672L21.168 30.107l-7.778-7.779"/></svg>
|
||||
|
After Width: | Height: | Size: 212 B |
1
src/assets/icons/svg/check.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M41.678 11.05L19.05 33.678 6.322 20.95"/></svg>
|
||||
|
After Width: | Height: | Size: 132 B |
1
src/assets/icons/svg/chinese-fill.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M22 21h-5v4.094h5V21zM26 25.094V21h5v4.094h-5z" fill="#4E5969"/><path fill-rule="evenodd" clip-rule="evenodd" d="M24 4C12.954 4 4 12.954 4 24s8.954 20 20 20 20-8.954 20-20S35.046 4 24 4zm2 13v-5h-4v5h-6.5a2.5 2.5 0 00-2.5 2.5v7.094a2.5 2.5 0 002.5 2.5H22V36h4v-6.906h6.5a2.5 2.5 0 002.5-2.5V19.5a2.5 2.5 0 00-2.5-2.5H26z" fill="#4E5969"/></svg>
|
||||
|
After Width: | Height: | Size: 429 B |
1
src/assets/icons/svg/clock-circle.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M42 24c0 9.941-8.059 18-18 18S6 33.941 6 24 14.059 6 24 6s18 8.059 18 18z"/><path d="M24 14v10h9.5"/></svg>
|
||||
|
After Width: | Height: | Size: 192 B |
1
src/assets/icons/svg/close-circle-f.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M42 24c0 9.941-8.059 18-18 18S6 33.941 6 24 14.059 6 24 6s18 8.059 18 18z" fill="#4E5969"/><path d="M17.643 17.643l6.363 6.364m0 0l6.364 6.364m-6.364-6.364l6.364-6.364m-6.364 6.364l-6.363 6.364" stroke="#fff" stroke-width="4"/></svg>
|
||||
|
After Width: | Height: | Size: 318 B |
1
src/assets/icons/svg/close-circle.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M42 24c0 9.941-8.059 18-18 18S6 33.941 6 24 14.059 6 24 6s18 8.059 18 18zM17.643 17.643l6.364 6.364 6.364 6.364"/><path d="M30.37 17.643l-6.363 6.364-6.364 6.364"/></svg>
|
||||
|
After Width: | Height: | Size: 255 B |
1
src/assets/icons/svg/close.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M38.142 9.858L24 24 9.858 38.142M9.858 9.858L24 24l14.142 14.142"/></svg>
|
||||
|
After Width: | Height: | Size: 158 B |
1
src/assets/icons/svg/cloud-down.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M43 22c0-7.732-6.492-14-14.5-14S14 14.268 14 22v.055A9.001 9.001 0 0015 40h13"/><path d="M44.142 34.071l-7.07 7.071L30 34.071M37.07 26v15"/></svg>
|
||||
|
After Width: | Height: | Size: 231 B |
1
src/assets/icons/svg/cloud.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M5 29a9 9 0 009 9h19c5.523 0 10-4.477 10-10 0-5.312-4.142-9.657-9.373-9.98C32.3 12.833 27.598 9 22 9c-6.606 0-11.965 5.338-12 11.935A9 9 0 005 29z"/></svg>
|
||||
|
After Width: | Height: | Size: 240 B |
1
src/assets/icons/svg/code-block.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M29 6h4a3 3 0 013 3v10c0 3 4.343 5 6 5-1.657 0-6 2-6 5v10a3 3 0 01-3 3h-4M19 6h-4a3 3 0 00-3 3v10c0 3-4.343 5-6 5 1.657 0 6 2 6 5v10a3 3 0 003 3h4"/></svg>
|
||||
|
After Width: | Height: | Size: 240 B |
1
src/assets/icons/svg/code-square.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M39 6H9a1 1 0 00-1 1v34a1 1 0 001 1h30a1 1 0 001-1V7a1 1 0 00-1-1z"/><path d="M8 7a1 1 0 011-1h30a1 1 0 011 1v34a1 1 0 01-1 1H9a1 1 0 01-1-1V7zM32.072 16.518l-4.14 15.454"/><path d="M23.071 17L16 24.071l7.071 7.071"/></svg>
|
||||
|
After Width: | Height: | Size: 308 B |
1
src/assets/icons/svg/code.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M27.2 6.28l-6.251 35.453M16.734 12.686L5.42 24l11.314 11.314M31.255 12.686L42.57 24 31.255 35.314"/></svg>
|
||||
|
After Width: | Height: | Size: 191 B |
1
src/assets/icons/svg/command.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M29 19v10H19V19h10zM13 29a6 6 0 106 6v-6h-6zM35 29a6 6 0 11-6 6v-6h6zM13 19a6 6 0 116-6v6h-6zM35 19a6 6 0 10-6-6v6h6z"/></svg>
|
||||
|
After Width: | Height: | Size: 211 B |
1
src/assets/icons/svg/common.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M24 23L7.652 14.345M24 23l16.366-8.664M24 23v19.438M7 14v20l17 9 17-9V14L24 5 7 14z"/></svg>
|
||||
|
After Width: | Height: | Size: 177 B |
1
src/assets/icons/svg/compass.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M42 24c0 9.941-8.059 18-18 18S6 33.941 6 24 14.059 6 24 6s18 8.059 18 18z"/><path d="M21.177 21.183l10.108-4.717a.2.2 0 01.266.265L26.834 26.84l-10.109 4.717a.2.2 0 01-.266-.266l4.718-10.108z"/></svg>
|
||||
|
After Width: | Height: | Size: 285 B |
1
src/assets/icons/svg/computer.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M41 7H7v22h34V7Z"></path><path d="M23.778 29v10"></path><path d="M16 39h16"></path><path d="m20.243 14.657 5.657 5.657M15.414 22.314l7.071-7.071M24.485 21.728l7.071-7.071"></path></svg>
|
||||
|
After Width: | Height: | Size: 270 B |
1
src/assets/icons/svg/copy.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M20 6h18a2 2 0 012 2v22"/><path d="M8 40V16a2 2 0 012-2h20c1.105 0 2 .892 2 1.997v24.011A1.99 1.99 0 0130.003 42H9.996A1.996 1.996 0 018 40z"/></svg>
|
||||
|
After Width: | Height: | Size: 234 B |
1
src/assets/icons/svg/copyright.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M42 24c0 9.941-8.059 18-18 18S6 33.941 6 24 14.059 6 24 6s18 8.059 18 18zM29.292 18a8 8 0 100 12"/></svg>
|
||||
|
After Width: | Height: | Size: 190 B |
1
src/assets/icons/svg/cust-service.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M11 31V20c0-7.18 5.82-13 13-13s13 5.82 13 13v8c0 5.784-3.778 10.686-9 12.373"/><path d="M24 41c1.396 0 2.74-.22 4-.627V38a1 1 0 00-1-1h-6a1 1 0 00-1 1v2a1 1 0 001 1h3zM11 21H8a1 1 0 00-1 1v6a1 1 0 001 1h3M37 20v8m0-7h3a1 1 0 011 1v6a1 1 0 01-1 1h-3v-8z"/></svg>
|
||||
|
After Width: | Height: | Size: 346 B |
1
src/assets/icons/svg/dashboard.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M36.597 37c3.725-3.667 5.33-8.37 5.211-13-.112-4.38-1.767-8.694-4.627-12C34.07 8.404 29.531 6 24 6c-5.724 0-10.384 2.574-13.5 6.38C6.99 16.662 5.44 22.508 6.53 28c.646 3.258 2.223 6.391 4.873 9M10.5 12.38L17 17.5M6.53 28l8.97-3.5M41.808 24H33.5M37.181 12L31 17.5M24 6v7.5"/><path d="M24 32a5 5 0 100 10 5 5 0 000-10zm0 0V19"/></svg>
|
||||
|
After Width: | Height: | Size: 417 B |
1
src/assets/icons/svg/delete.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M5 11h5.5m0 0v29a1 1 0 001 1h25a1 1 0 001-1V11m-27 0H16m21.5 0H43m-5.5 0H32m-16 0V7h16v4m-16 0h16M20 18v15m8-15v15"/></svg>
|
||||
|
After Width: | Height: | Size: 208 B |
1
src/assets/icons/svg/desktop.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M24 32v8m0 0h-9m9 0h9M7 32h34a1 1 0 001-1V9a1 1 0 00-1-1H7a1 1 0 00-1 1v22a1 1 0 001 1z"/></svg>
|
||||
|
After Width: | Height: | Size: 181 B |
1
src/assets/icons/svg/dice.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><rect x="6.998" y="7" width="34" height="34" rx="1.5"/><circle cx="16" cy="16" r="2"/><circle cx="24" cy="24" r="2"/><circle cx="16" cy="32" r="2"/><circle cx="32" cy="16" r="2"/><circle cx="32" cy="32" r="2"/><circle cx="16" cy="16" r="2" fill="#4E5969"/><circle cx="24" cy="24" r="2" fill="#4E5969"/><circle cx="16" cy="32" r="2" fill="#4E5969"/><circle cx="32" cy="16" r="2" fill="#4E5969"/><circle cx="32" cy="32" r="2" fill="#4E5969"/></svg>
|
||||
|
After Width: | Height: | Size: 522 B |
1
src/assets/icons/svg/double-down.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M9.9 22.456l14.142 14.142 14.142-14.142"/><path d="M9.9 11.142l14.142 14.142 14.142-14.142"/></svg>
|
||||
|
After Width: | Height: | Size: 184 B |
1
src/assets/icons/svg/double-left.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M25.544 9.9L11.402 24.042l14.142 14.142"/><path d="M36.858 9.9L22.716 24.042l14.142 14.142"/></svg>
|
||||
|
After Width: | Height: | Size: 184 B |
1
src/assets/icons/svg/double-right.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M22.456 38.1l14.142-14.142L22.456 9.816"/><path d="M11.142 38.1l14.142-14.142L11.142 9.816"/></svg>
|
||||
|
After Width: | Height: | Size: 184 B |
1
src/assets/icons/svg/double-up.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M38.1 25.544L23.958 11.402 9.816 25.544"/><path d="M38.1 36.858L23.958 22.716 9.816 36.858"/></svg>
|
||||
|
After Width: | Height: | Size: 184 B |
1
src/assets/icons/svg/down-circle.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><circle cx="24" cy="24" r="18" transform="rotate(-180 24 24)"/><path d="M32.484 20.515L24 29l-8.485-8.485"/></svg>
|
||||
|
After Width: | Height: | Size: 190 B |
1
src/assets/icons/svg/down.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M39.6 17.444L24.044 33 8.487 17.444"/></svg>
|
||||
|
After Width: | Height: | Size: 129 B |
1
src/assets/icons/svg/download.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M33.072 22.071l-9.07 9.071-9.072-9.071M40 35v6H8v-6M24 5v26"/></svg>
|
||||
|
After Width: | Height: | Size: 153 B |
1
src/assets/icons/svg/drag-arrow.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M7 24h34M24 7v34M30 12l-6-6-6 6M36 30l6-6-6-6M12 30l-6-6 6-6M18 36l6 6 6-6"/></svg>
|
||||
|
After Width: | Height: | Size: 168 B |
1
src/assets/icons/svg/drag-dot-2.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M17 8h2v2h-2V8zM17 23h2v2h-2v-2zM17 38h2v2h-2v-2zM29 8h2v2h-2V8zM29 23h2v2h-2v-2zM29 38h2v2h-2v-2z" fill="#4E5969"/><path d="M17 8h2v2h-2V8zM17 23h2v2h-2v-2zM17 38h2v2h-2v-2zM29 8h2v2h-2V8zM29 23h2v2h-2v-2zM29 38h2v2h-2v-2z"/></svg>
|
||||
|
After Width: | Height: | Size: 317 B |
1
src/assets/icons/svg/drag-dot.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M40 17v2h-2v-2h2zM25 17v2h-2v-2h2zM10 17v2H8v-2h2zM40 29v2h-2v-2h2zM25 29v2h-2v-2h2zM10 29v2H8v-2h2z" fill="#4E5969"/><path d="M40 17v2h-2v-2h2zM25 17v2h-2v-2h2zM10 17v2H8v-2h2zM40 29v2h-2v-2h2zM25 29v2h-2v-2h2zM10 29v2H8v-2h2z"/></svg>
|
||||
|
After Width: | Height: | Size: 321 B |
1
src/assets/icons/svg/drive-file.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="4"><path d="M10 42h28a1 1 0 001-1V17L28 6H10a1 1 0 00-1 1v34a1 1 0 001 1z"/><path d="M38.5 17H29a1 1 0 01-1-1V6.5"/></svg>
|
||||
|
After Width: | Height: | Size: 195 B |