Browse Source

init

master
赵鹏 2 months ago
commit
681bc31b8d
  1. 21
      .eslintrc.cjs
  2. 28
      .gitignore
  3. 8
      .prettierrc.json
  4. 52
      README.md
  5. 17
      env.d.ts
  6. 4
      env/.env
  7. 42
      index.html
  8. 14749
      package-lock.json
  9. 76
      package.json
  10. BIN
      public/MaxKB.gif
  11. BIN
      public/favicon.ico
  12. BIN
      public/favicon1.ico
  13. 1
      public/js/jweixin-1.4.0.js
  14. 1
      public/js/uni.webview.1.5.2.js
  15. 7
      src/App.vue
  16. 90
      src/api/application-overview.ts
  17. 41
      src/api/application-xpack.ts
  18. 580
      src/api/application.ts
  19. 39
      src/api/auth-setting.ts
  20. 249
      src/api/dataset.ts
  21. 398
      src/api/document.ts
  22. 38
      src/api/email-setting.ts
  23. 111
      src/api/function-lib.ts
  24. 15
      src/api/image.ts
  25. 24
      src/api/license.ts
  26. 235
      src/api/log.ts
  27. 209
      src/api/model.ts
  28. 256
      src/api/paragraph.ts
  29. 28
      src/api/platform-source.ts
  30. 124
      src/api/problem.ts
  31. 12
      src/api/provider.ts
  32. 58
      src/api/system-api-key.ts
  33. 67
      src/api/team.ts
  34. 35
      src/api/theme.ts
  35. 420
      src/api/type/application.ts
  36. 14
      src/api/type/common.ts
  37. 9
      src/api/type/dataset.ts
  38. 11
      src/api/type/function-lib.ts
  39. 148
      src/api/type/model.ts
  40. 13
      src/api/type/team.ts
  41. 120
      src/api/type/user.ts
  42. 77
      src/api/user-manage.ts
  43. 196
      src/api/user.ts
  44. BIN
      src/assets/404.png
  45. BIN
      src/assets/assets.zip
  46. 7
      src/assets/csv-icon.svg
  47. BIN
      src/assets/display-bg1.png
  48. BIN
      src/assets/display-bg2.png
  49. BIN
      src/assets/display-bg3.png
  50. 5
      src/assets/doc-icon.svg
  51. 5
      src/assets/docx-icon.svg
  52. BIN
      src/assets/hit-test-empty.png
  53. 6
      src/assets/html-icon.svg
  54. 6
      src/assets/icon_and.svg
  55. 3
      src/assets/icon_condition.svg
  56. 4
      src/assets/icon_docs.svg
  57. 12
      src/assets/icon_document.svg
  58. 5
      src/assets/icon_file-audio.svg
  59. 5
      src/assets/icon_file-doc.svg
  60. 4
      src/assets/icon_file-folder_colorful.svg
  61. 6
      src/assets/icon_file-image.svg
  62. 7
      src/assets/icon_form.svg
  63. 12
      src/assets/icon_function_outlined.svg
  64. 1
      src/assets/icon_globe_color.svg
  65. 5
      src/assets/icon_hi.svg
  66. 4
      src/assets/icon_image.svg
  67. 6
      src/assets/icon_or.svg
  68. 3
      src/assets/icon_qr_outlined.svg
  69. 3
      src/assets/icon_reply.svg
  70. 21
      src/assets/icon_reranker.svg
  71. 1
      src/assets/icon_robot.svg
  72. 4
      src/assets/icon_send.svg
  73. 14
      src/assets/icon_send_colorful.svg
  74. 3
      src/assets/icon_setting.svg
  75. 11
      src/assets/icon_speech_to_text.svg
  76. 4
      src/assets/icon_start.svg
  77. 5
      src/assets/icon_text-image.svg
  78. 11
      src/assets/icon_text_to_speech.svg
  79. 4
      src/assets/icon_web.svg
  80. 1
      src/assets/js/jweixin-1.4.0.js
  81. 1
      src/assets/js/uni.webview.1.5.2.js
  82. BIN
      src/assets/load_error.png
  83. 20
      src/assets/logo/MaxKB-logo-currentColor.svg
  84. 64
      src/assets/logo/MaxKB-logo.svg
  85. 1
      src/assets/logo/logo-currentColor.svg
  86. 1
      src/assets/logo/logo.svg
  87. 3
      src/assets/logo_dingtalk.svg
  88. 12
      src/assets/logo_lark.svg
  89. 7
      src/assets/logo_wechat-work.svg
  90. 3
      src/assets/logo_wechat.svg
  91. 5
      src/assets/md-icon.svg
  92. 5
      src/assets/pdf-icon.svg
  93. BIN
      src/assets/theme/default.jpg
  94. BIN
      src/assets/theme/green.jpg
  95. BIN
      src/assets/theme/orange.jpg
  96. BIN
      src/assets/theme/purple.jpg
  97. BIN
      src/assets/theme/red.jpg
  98. BIN
      src/assets/tipIMG.jpg
  99. 7
      src/assets/txt-icon.svg
  100. 5
      src/assets/unknow-icon.svg
  101. Some files were not shown because too many files have changed in this diff Show More

21
.eslintrc.cjs

@ -0,0 +1,21 @@
/* eslint-env node */
require('@rushstack/eslint-patch/modern-module-resolution')
module.exports = {
root: true,
'extends': [
'plugin:vue/vue3-essential',
'eslint:recommended',
'@vue/eslint-config-typescript',
'@vue/eslint-config-prettier/skip-formatting'
],
parserOptions: {
ecmaVersion: 'latest'
},
rules: {
// 添加组件命名忽略规则
"vue/multi-word-component-names": ["error",{
"ignores": ["index","main"]//需要忽略的组件名
}]
}
}

28
.gitignore vendored

@ -0,0 +1,28 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
.DS_Store
dist
dist-ssr
coverage
*.local
/cypress/videos/
/cypress/screenshots/
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

8
.prettierrc.json

@ -0,0 +1,8 @@
{
"$schema": "https://json.schemastore.org/prettierrc",
"semi": false,
"tabWidth": 2,
"singleQuote": true,
"printWidth": 100,
"trailingComma": "none"
}

52
README.md

@ -0,0 +1,52 @@
# web
This template should help get you started developing with Vue 3 in Vite.
## Recommended IDE Setup
[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).
## Type Support for `.vue` Imports in TS
TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types.
If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps:
1. Disable the built-in TypeScript Extension
1) Run `Extensions: Show Built-in Extensions` from VSCode's command palette
2) Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)`
2. Reload the VSCode window by running `Developer: Reload Window` from the command palette.
## Customize configuration
See [Vite Configuration Reference](https://vitejs.dev/config/).
## Project Setup
```sh
npm install
```
### Compile and Hot-Reload for Development
```sh
npm run dev
```
### Type-Check, Compile and Minify for Production
```sh
npm run build
```
### Run Unit Tests with [Vitest](https://vitest.dev/)
```sh
npm run test:unit
```
### Lint with [ESLint](https://eslint.org/)
```sh
npm run lint
```

17
env.d.ts vendored

@ -0,0 +1,17 @@
/// <reference types="vite/client" />
declare module 'element-plus/dist/locale/zh-cn.mjs'
declare module 'markdown-it-task-lists'
declare module 'markdown-it-abbr'
declare module 'markdown-it-anchor'
declare module 'markdown-it-footnote'
declare module 'markdown-it-sub'
declare module 'markdown-it-sup'
declare module 'markdown-it-toc-done-right'
declare module 'katex'
interface Window {
sendMessage: ?((message: string, other_params_data: any) => void)
}
interface ImportMeta {
readonly env: ImportMetaEnv
}
declare type Recordable<T = any> = Record<string, T>

4
env/.env vendored

@ -0,0 +1,4 @@
VITE_APP_NAME=ui
VITE_BASE_PATH=/
VITE_APP_PORT=50000
VITE_APP_TITLE = '智慧生态'

42
index.html

@ -0,0 +1,42 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" />
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no,
viewport-fit=cover"
/>
<base target="_blank" />
<title>%VITE_APP_TITLE%</title>
<script type="text/javascript" src="/js/jweixin-1.4.0.js"></script>
<script type="text/javascript" src="/js/uni.webview.1.5.2.js"></script>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
<script type="text/javascript">
document.addEventListener('uniAppJsBridgeReady', function () {
document.querySelector('.btn-list').addEventlistener('click', function (evt) {
var target = evt.target
if (target.tagName === 'BUTTON') {
var action = target.getAttribute('data-action')
switch (action) {
case 'navigateBack':
uni.navigateBack({
delta: 1
})
break
default:
uni[action]({
url: '/pages/index'
})
break
}
}
})
})
</script>
</body>
</html>

14749
package-lock.json generated

File diff suppressed because it is too large Load Diff

76
package.json

@ -0,0 +1,76 @@
{
"name": "web",
"version": "v1.0.0",
"private": true,
"scripts": {
"dev": "vite",
"build": "set NODE_OPTIONS=--max_old_space_size=4096 && run-p type-check build-only",
"preview": "vite preview",
"test:unit": "vitest",
"build-only": "vite build",
"type-check": "vue-tsc --noEmit -p tsconfig.vitest.json --composite false",
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
"format": "prettier --write src/"
},
"dependencies": {
"@antv/layout": "^0.3.1",
"@codemirror/theme-one-dark": "^6.1.2",
"@ctrl/tinycolor": "^4.1.0",
"@logicflow/core": "^1.2.27",
"@logicflow/extension": "^1.2.27",
"@vueuse/core": "^10.9.0",
"@wecom/jssdk": "^2.1.0",
"axios": "^0.28.0",
"codemirror": "^6.0.1",
"cropperjs": "^1.6.2",
"echarts": "^5.5.0",
"element-plus": "^2.9.1",
"file-saver": "^2.0.5",
"highlight.js": "^11.9.0",
"install": "^0.13.0",
"katex": "^0.16.10",
"lodash": "^4.17.21",
"marked": "^12.0.2",
"md-editor-v3": "^4.16.7",
"medium-zoom": "^1.1.0",
"mermaid": "^10.9.0",
"mitt": "^3.0.0",
"moment": "^2.30.1",
"npm": "^10.2.4",
"nprogress": "^0.2.0",
"pinia": "^2.1.6",
"pinyin-pro": "^3.18.2",
"recorder-core": "^1.3.24040900",
"screenfull": "^6.0.2",
"use-element-plus-theme": "^0.0.5",
"vue": "^3.3.4",
"vue-clipboard3": "^2.0.0",
"vue-codemirror": "^6.1.1",
"vue-i18n": "^9.13.1",
"vue-router": "^4.2.4"
},
"devDependencies": {
"@rushstack/eslint-patch": "^1.3.2",
"@tsconfig/node18": "^18.2.0",
"@types/file-saver": "^2.0.7",
"@types/jsdom": "^21.1.1",
"@types/node": "^18.17.5",
"@types/nprogress": "^0.2.0",
"@vitejs/plugin-vue": "^4.3.1",
"@vue/eslint-config-prettier": "^8.0.0",
"@vue/eslint-config-typescript": "^11.0.3",
"@vue/test-utils": "^2.4.1",
"@vue/tsconfig": "^0.4.0",
"eslint": "^8.46.0",
"eslint-plugin-vue": "^9.16.1",
"jsdom": "^22.1.0",
"npm-run-all": "^4.1.5",
"prettier": "^3.0.0",
"sass": "1.66.1",
"typescript": "~5.1.6",
"unplugin-vue-define-options": "^1.3.18",
"vite": "^4.4.9",
"vitest": "^0.34.2",
"vue-tsc": "^1.8.8"
}
}

BIN
public/MaxKB.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

BIN
public/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 KiB

BIN
public/favicon1.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

1
public/js/jweixin-1.4.0.js

File diff suppressed because one or more lines are too long

1
public/js/uni.webview.1.5.2.js

@ -0,0 +1 @@
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e=e||self).uni=n()}(this,(function(){"use strict";try{var e={};Object.defineProperty(e,"passive",{get:function(){!0}}),window.addEventListener("test-passive",null,e)}catch(e){}var n=Object.prototype.hasOwnProperty;function t(e,t){return n.call(e,t)}var i=[],a=function(e,n){var t={options:{timestamp:+new Date},name:e,arg:n};if(window.__dcloud_weex_postMessage||window.__dcloud_weex_){if("postMessage"===e){var a={data:[n]};return window.__dcloud_weex_postMessage?window.__dcloud_weex_postMessage(a):window.__dcloud_weex_.postMessage(JSON.stringify(a))}var o={type:"WEB_INVOKE_APPSERVICE",args:{data:t,webviewIds:i}};window.__dcloud_weex_postMessage?window.__dcloud_weex_postMessageToService(o):window.__dcloud_weex_.postMessageToService(JSON.stringify(o))}if(!window.plus)return window.parent.postMessage({type:"WEB_INVOKE_APPSERVICE",data:t,pageId:""},"*");if(0===i.length){var r=plus.webview.currentWebview();if(!r)throw new Error("plus.webview.currentWebview() is undefined");var d=r.parent(),s="";s=d?d.id:r.id,i.push(s)}if(plus.webview.getWebviewById("__uniapp__service"))plus.webview.postMessageToUniNView({type:"WEB_INVOKE_APPSERVICE",args:{data:t,webviewIds:i}},"__uniapp__service");else{var w=JSON.stringify(t);plus.webview.getLaunchWebview().evalJS('UniPlusBridge.subscribeHandler("'.concat("WEB_INVOKE_APPSERVICE",'",').concat(w,",").concat(JSON.stringify(i),");"))}},o={navigateTo:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("navigateTo",{url:encodeURI(n)})},navigateBack:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.delta;a("navigateBack",{delta:parseInt(n)||1})},switchTab:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("switchTab",{url:encodeURI(n)})},reLaunch:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("reLaunch",{url:encodeURI(n)})},redirectTo:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("redirectTo",{url:encodeURI(n)})},getEnv:function(e){window.plus?e({plus:!0}):e({h5:!0})},postMessage:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};a("postMessage",e.data||{})}},r=/uni-app/i.test(navigator.userAgent),d=/Html5Plus/i.test(navigator.userAgent),s=/complete|loaded|interactive/;var w=window.my&&navigator.userAgent.indexOf("AlipayClient")>-1;var u=window.swan&&window.swan.webView&&/swan/i.test(navigator.userAgent);var c=window.qq&&window.qq.miniProgram&&/QQ/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var g=window.tt&&window.tt.miniProgram&&/toutiaomicroapp/i.test(navigator.userAgent);var v=window.wx&&window.wx.miniProgram&&/micromessenger/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var p=window.qa&&/quickapp/i.test(navigator.userAgent);for(var l,_=function(){window.UniAppJSBridge=!0,document.dispatchEvent(new CustomEvent("UniAppJSBridgeReady",{bubbles:!0,cancelable:!0}))},f=[function(e){if(r||d)return window.__dcloud_weex_postMessage||window.__dcloud_weex_?document.addEventListener("DOMContentLoaded",e):window.plus&&s.test(document.readyState)?setTimeout(e,0):document.addEventListener("plusready",e),o},function(e){if(v)return window.WeixinJSBridge&&window.WeixinJSBridge.invoke?setTimeout(e,0):document.addEventListener("WeixinJSBridgeReady",e),window.wx.miniProgram},function(e){if(c)return window.QQJSBridge&&window.QQJSBridge.invoke?setTimeout(e,0):document.addEventListener("QQJSBridgeReady",e),window.qq.miniProgram},function(e){if(w){document.addEventListener("DOMContentLoaded",e);var n=window.my;return{navigateTo:n.navigateTo,navigateBack:n.navigateBack,switchTab:n.switchTab,reLaunch:n.reLaunch,redirectTo:n.redirectTo,postMessage:n.postMessage,getEnv:n.getEnv}}},function(e){if(u)return document.addEventListener("DOMContentLoaded",e),window.swan.webView},function(e){if(g)return document.addEventListener("DOMContentLoaded",e),window.tt.miniProgram},function(e){if(p){window.QaJSBridge&&window.QaJSBridge.invoke?setTimeout(e,0):document.addEventListener("QaJSBridgeReady",e);var n=window.qa;return{navigateTo:n.navigateTo,navigateBack:n.navigateBack,switchTab:n.switchTab,reLaunch:n.reLaunch,redirectTo:n.redirectTo,postMessage:n.postMessage,getEnv:n.getEnv}}},function(e){return document.addEventListener("DOMContentLoaded",e),o}],m=0;m<f.length&&!(l=f[m](_));m++);l||(l={});var E="undefined"!=typeof uni?uni:{};if(!E.navigateTo)for(var b in l)t(l,b)&&(E[b]=l[b]);return E.webView=l,E}));

7
src/App.vue

@ -0,0 +1,7 @@
<script setup lang="ts"></script>
<template>
<router-view />
</template>
<style scoped></style>

90
src/api/application-overview.ts

@ -0,0 +1,90 @@
import { Result } from '@/request/Result'
import { get, post, del, put } from '@/request/index'
import { type Ref } from 'vue'
const prefix = '/application'
/**
* API_KEY列表
* @param application_id
*/
const getAPIKey: (application_id: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
application_id,
loading
) => {
return get(`${prefix}/${application_id}/api_key`, undefined, loading)
}
/**
* API_KEY
* @param application_id
*/
const postAPIKey: (application_id: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
application_id,
loading
) => {
return post(`${prefix}/${application_id}/api_key`, {}, undefined, loading)
}
/**
* API_KEY
* @param application_id api_key_id
*/
const delAPIKey: (
application_id: String,
api_key_id: String,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (application_id, api_key_id, loading) => {
return del(`${prefix}/${application_id}/api_key/${api_key_id}`, undefined, undefined, loading)
}
/**
* API_KEY
* @param application_id,api_key_id
* data {
* is_active: boolean
* }
*/
const putAPIKey: (
application_id: string,
api_key_id: String,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, api_key_id, data, loading) => {
return put(`${prefix}/${application_id}/api_key/${api_key_id}`, data, undefined, loading)
}
/**
*
* @param application_id, data
*/
const getStatistics: (
application_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, data, loading) => {
return get(`${prefix}/${application_id}/statistics/chat_record_aggregate_trend`, data, loading)
}
/**
* icon
* @param application_id
* data: file
*/
const putAppIcon: (
application_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, data, loading) => {
return put(`${prefix}/${application_id}/edit_icon`, data, undefined, loading)
}
export default {
getAPIKey,
postAPIKey,
delAPIKey,
putAPIKey,
getStatistics,
putAppIcon
}

41
src/api/application-xpack.ts

@ -0,0 +1,41 @@
import { Result } from '@/request/Result'
import { get, put } from '@/request/index'
import { type Ref } from 'vue'
const prefix = '/application'
/**
* -AccessToken
* @param application_id
*/
const getAccessToken: (application_id: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
application_id,
loading
) => {
return get(`${prefix}/${application_id}/setting`, undefined, loading)
}
/**
* -AccessToken
* @param application_id
* data {
* "show_source": boolean,
* "show_history": boolean,
* "draggable": boolean,
* "show_guide": boolean,
* "avatar": file,
* "float_icon": file,
* }
*/
const putAccessToken: (
application_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, data, loading) => {
return put(`${prefix}/${application_id}/setting`, data, undefined, loading)
}
export default {
getAccessToken,
putAccessToken
}

580
src/api/application.ts

@ -0,0 +1,580 @@
import { Result } from '@/request/Result'
import { get, post, postStream, del, put, request, download, exportFile } from '@/request/index'
import type { pageRequest } from '@/api/type/common'
import type { ApplicationFormType } from '@/api/type/application'
import { type Ref } from 'vue'
import type { FormField } from '@/components/dynamics-form/type'
const prefix = '/application'
/**
*
* @param
*/
const getAllAppilcation: () => Promise<Result<any[]>> = () => {
return get(`${prefix}`)
}
/**
*
* page {
"current_page": "string",
"page_size": "string",
}
* param {
"name": "string",
}
*/
const getApplication: (
page: pageRequest,
param: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (page, param, loading) => {
return get(`${prefix}/${page.current_page}/${page.page_size}`, param, loading)
}
/**
*
* @param
*/
const postApplication: (
data: ApplicationFormType,
loading?: Ref<boolean>
) => Promise<Result<any>> = (data, loading) => {
return post(`${prefix}`, data, undefined, loading)
}
/**
*
* @param
*/
const putApplication: (
application_id: String,
data: ApplicationFormType,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, data, loading) => {
return put(`${prefix}/${application_id}`, data, undefined, loading)
}
/**
*
* @param application_id
*/
const delApplication: (
application_id: String,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (application_id, loading) => {
return del(`${prefix}/${application_id}`, undefined, {}, loading)
}
/**
*
* @param application_id
*/
const getApplicationDetail: (
application_id: string,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, loading) => {
return get(`${prefix}/${application_id}`, undefined, loading)
}
/**
* 使
* @param application_id
*/
const getApplicationDataset: (
application_id: string,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, loading) => {
return get(`${prefix}/${application_id}/list_dataset`, undefined, loading)
}
/**
* AccessToken
* @param application_id
*/
const getAccessToken: (application_id: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
application_id,
loading
) => {
return get(`${prefix}/${application_id}/access_token`, undefined, loading)
}
/**
* AccessToken
* @param application_id
* data {
* "is_active": true
* }
*/
const putAccessToken: (
application_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, data, loading) => {
return put(`${prefix}/${application_id}/access_token`, data, undefined, loading)
}
/**
*
* @param
{
"access_token": "string"
}
*/
const postAppAuthentication: (
access_token: string,
loading?: Ref<boolean>,
authentication_value?: any
) => Promise<any> = (access_token, loading, authentication_value) => {
return post(
`${prefix}/authentication`,
{ access_token: access_token, authentication_value },
undefined,
loading
)
}
/**
*
* @param
{
"access_token": "string"
}
*/
const getAppProfile: (loading?: Ref<boolean>) => Promise<any> = (loading) => {
return get(`${prefix}/profile`, undefined, loading)
}
/**
* Id
* @param
}
*/
const postChatOpen: (data: ApplicationFormType) => Promise<Result<any>> = (data) => {
return post(`${prefix}/chat/open`, data)
}
/**
* Id
* @param
}
*/
const postWorkflowChatOpen: (data: ApplicationFormType) => Promise<Result<any>> = (data) => {
return post(`${prefix}/chat_workflow/open`, data)
}
/**
* Id
* @param
* {
"model_id": "string",
"multiple_rounds_dialogue": true,
"dataset_id_list": [
"string"
]
}
*/
const getChatOpen: (application_id: String) => Promise<Result<any>> = (application_id) => {
return get(`${prefix}/${application_id}/chat/open`)
}
/**
*
* @param
* chat_id: string
* data
*/
const postChatMessage: (chat_id: string, data: any) => Promise<any> = (chat_id, data) => {
return postStream(`/api${prefix}/chat_message/${chat_id}`, data)
}
/**
*
* @param
* application_id : string; chat_id : string; chat_record_id : string
* {
"vote_status": "string", // -1 0 1
}
*/
const putChatVote: (
application_id: string,
chat_id: string,
chat_record_id: string,
vote_status: string,
loading?: Ref<boolean>
) => Promise<any> = (application_id, chat_id, chat_record_id, vote_status, loading) => {
return put(
`${prefix}/${application_id}/chat/${chat_id}/chat_record/${chat_record_id}/vote`,
{
vote_status
},
undefined,
loading
)
}
/**
*
* @param application_id
* @param loading
* @query { query_text: string, top_number: number, similarity: number }
* @returns
*/
const getApplicationHitTest: (
application_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<Array<any>>> = (application_id, data, loading) => {
return get(`${prefix}/${application_id}/hit_test`, data, loading)
}
/**
* 使
* @param application_id
* @param loading
* @query { query_text: string, top_number: number, similarity: number }
* @returns
*/
const getApplicationModel: (
application_id: string,
loading?: Ref<boolean>
) => Promise<Result<Array<any>>> = (application_id, loading) => {
return get(`${prefix}/${application_id}/model`, loading)
}
/**
* 使
* @param application_id
* @param loading
* @query { query_text: string, top_number: number, similarity: number }
* @returns
*/
const getApplicationRerankerModel: (
application_id: string,
loading?: Ref<boolean>
) => Promise<Result<Array<any>>> = (application_id, loading) => {
return get(`${prefix}/${application_id}/model`, { model_type: 'RERANKER' }, loading)
}
/**
* 使
* @param application_id
* @param loading
* @query { query_text: string, top_number: number, similarity: number }
* @returns
*/
const getApplicationSTTModel: (
application_id: string,
loading?: Ref<boolean>
) => Promise<Result<Array<any>>> = (application_id, loading) => {
return get(`${prefix}/${application_id}/model`, { model_type: 'STT' }, loading)
}
/**
* 使
* @param application_id
* @param loading
* @query { query_text: string, top_number: number, similarity: number }
* @returns
*/
const getApplicationTTSModel: (
application_id: string,
loading?: Ref<boolean>
) => Promise<Result<Array<any>>> = (application_id, loading) => {
return get(`${prefix}/${application_id}/model`, { model_type: 'TTS' }, loading)
}
const getApplicationImageModel: (
application_id: string,
loading?: Ref<boolean>
) => Promise<Result<Array<any>>> = (application_id, loading) => {
return get(`${prefix}/${application_id}/model`, { model_type: 'IMAGE' }, loading)
}
const getApplicationTTIModel: (
application_id: string,
loading?: Ref<boolean>
) => Promise<Result<Array<any>>> = (application_id, loading) => {
return get(`${prefix}/${application_id}/model`, { model_type: 'TTI' }, loading)
}
/**
*
* @param
*/
const putPublishApplication: (
application_id: String,
data: ApplicationFormType,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, data, loading) => {
return put(`${prefix}/${application_id}/publish`, data, undefined, loading)
}
/**
*
* @param application_id id
* @param loading
* @returns
*/
const listFunctionLib: (application_id: String, loading?: Ref<boolean>) => Promise<Result<any>> = (
application_id,
loading
) => {
return get(`${prefix}/${application_id}/function_lib`, undefined, loading)
}
/**
*
* @param application_id id
* @param loading
* @returns
*/
export const getApplicationList: (
application_id: string,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, loading) => {
return get(`${prefix}/${application_id}/application`, undefined, loading)
}
/**
*
* @param application_id
* @param function_lib_id
* @param loading
* @returns
*/
const getFunctionLib: (
application_id: String,
function_lib_id: String,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, function_lib_id, loading) => {
return get(`${prefix}/${application_id}/function_lib/${function_lib_id}`, undefined, loading)
}
const getApplicationById: (
application_id: String,
app_id: String,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, app_id, loading) => {
return get(`${prefix}/${application_id}/application/${app_id}`, undefined, loading)
}
/**
*
* @param application_id id
* @param model_id id
* @param loading
* @returns
*/
const getModelParamsForm: (
application_id: String,
model_id: String,
loading?: Ref<boolean>
) => Promise<Result<Array<FormField>>> = (application_id, model_id, loading) => {
return get(`${prefix}/${application_id}/model_params_form/${model_id}`, undefined, loading)
}
/**
*
*/
const uploadFile: (
application_id: String,
chat_id: String,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, chat_id, data, loading) => {
return post(`${prefix}/${application_id}/chat/${chat_id}/upload_file`, data, undefined, loading)
}
/**
*
*/
const postSpeechToText: (
application_id: String,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, data, loading) => {
return post(`${prefix}/${application_id}/speech_to_text`, data, undefined, loading)
}
/**
*
*/
const postTextToSpeech: (
application_id: String,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, data, loading) => {
return download(`${prefix}/${application_id}/text_to_speech`, 'post', data, undefined, loading)
}
/**
*
*/
const playDemoText: (
application_id: String,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, data, loading) => {
return download(`${prefix}/${application_id}/play_demo_text`, 'post', data, undefined, loading)
}
/**
*
*/
const getPlatformStatus: (application_id: string) => Promise<Result<any>> = (application_id) => {
return get(`/platform/${application_id}/status`)
}
/**
*
*/
const getPlatformConfig: (application_id: string, type: string) => Promise<Result<any>> = (
application_id,
type
) => {
return get(`/platform/${application_id}/${type}`)
}
/**
*
*/
const updatePlatformConfig: (
application_id: string,
type: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, type, data, loading) => {
return post(`/platform/${application_id}/${type}`, data, undefined, loading)
}
/**
*
*/
const updatePlatformStatus: (application_id: string, data: any) => Promise<Result<any>> = (
application_id,
data
) => {
return post(`/platform/${application_id}/status`, data)
}
/**
*
*/
const validatePassword: (
application_id: string,
password: string,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, password, loading) => {
return get(`/application/${application_id}/auth/${password}`, undefined, loading)
}
/**
* workflow历史版本
*/
const getWorkFlowVersion: (
application_id: string,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, loading) => {
return get(`/application/${application_id}/work_flow_version`, undefined, loading)
}
/**
* workflow历史版本详情
*/
const getWorkFlowVersionDetail: (
application_id: string,
application_version_id: string,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, application_version_id, loading) => {
return get(
`/application/${application_id}/work_flow_version/${application_version_id}`,
undefined,
loading
)
}
/**
* workflow历史版本
*/
const putWorkFlowVersion: (
application_id: string,
application_version_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, application_version_id, data, loading) => {
return put(
`/application/${application_id}/work_flow_version/${application_version_id}`,
data,
undefined,
loading
)
}
const getUserList: (type: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
type,
loading
) => {
return get(`/user/list/${type}`, undefined, loading)
}
const exportApplication = (
application_id: string,
application_name: string,
loading?: Ref<boolean>
) => {
return exportFile(
application_name + '.mk',
`/application/${application_id}/export`,
undefined,
loading
)
}
/**
*
*/
const importApplication: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
data,
loading
) => {
return post(`${prefix}/import`, data, undefined, loading)
}
export default {
getAllAppilcation,
getApplication,
postApplication,
putApplication,
postChatOpen,
getChatOpen,
postChatMessage,
delApplication,
getApplicationDetail,
getApplicationDataset,
getAccessToken,
putAccessToken,
postAppAuthentication,
getAppProfile,
putChatVote,
getApplicationHitTest,
getApplicationModel,
putPublishApplication,
postWorkflowChatOpen,
listFunctionLib,
getFunctionLib,
getModelParamsForm,
getApplicationRerankerModel,
getApplicationSTTModel,
getApplicationTTSModel,
getApplicationImageModel,
getApplicationTTIModel,
postSpeechToText,
postTextToSpeech,
getPlatformStatus,
getPlatformConfig,
updatePlatformConfig,
updatePlatformStatus,
validatePassword,
getWorkFlowVersion,
getWorkFlowVersionDetail,
putWorkFlowVersion,
playDemoText,
getUserList,
getApplicationList,
uploadFile,
exportApplication,
importApplication,
getApplicationById
}

39
src/api/auth-setting.ts

@ -0,0 +1,39 @@
import {Result} from '@/request/Result'
import {get, post, del, put} from '@/request/index'
import type {pageRequest} from '@/api/type/common'
import {type Ref} from 'vue'
const prefix = '/auth'
/**
*
*/
const getAuthSetting: (auth_type: string, loading?: Ref<boolean>) => Promise<Result<any>> = (auth_type, loading) => {
return get(`${prefix}/${auth_type}/detail`, undefined, loading)
}
/**
*
*/
const postAuthSetting: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
data,
loading
) => {
return post(`${prefix}/connection`, data, undefined, loading)
}
/**
*
*/
const putAuthSetting: (auth_type: string, data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
auth_type,
data,
loading
) => {
return put(`${prefix}/${auth_type}/info`, data, undefined, loading)
}
export default {
getAuthSetting,
postAuthSetting,
putAuthSetting
}

249
src/api/dataset.ts

@ -0,0 +1,249 @@
import { Result } from '@/request/Result'
import { get, post, del, put, exportExcel, exportFile } from '@/request/index'
import type { datasetData } from '@/api/type/dataset'
import type { pageRequest } from '@/api/type/common'
import type { ApplicationFormType } from '@/api/type/application'
import { type Ref } from 'vue'
const prefix = '/dataset'
/**
*
* @param
* page {
"current_page": "string",
"page_size": "string",
}
* param {
"name": "string",
}
*/
const getDataset: (
page: pageRequest,
param: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (page, param, loading) => {
return get(`${prefix}/${page.current_page}/${page.page_size}`, param, loading)
}
/**
*
* @param
*/
const getAllDataset: (loading?: Ref<boolean>) => Promise<Result<any[]>> = (loading) => {
return get(`${prefix}`, undefined, loading)
}
/**
*
* @param dataset_id
*/
const delDataset: (dataset_id: String, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
dataset_id,
loading
) => {
return del(`${prefix}/${dataset_id}`, undefined, {}, loading)
}
/**
*
* @param
* {
"name": "string",
"desc": "string",
"documents": [
{
"name": "string",
"paragraphs": [
{
"content": "string",
"title": "string",
"problem_list": [
{
"id": "string",
"content": "string"
}
]
}
]
}
]
}
*/
const postDataset: (data: datasetData, loading?: Ref<boolean>) => Promise<Result<any>> = (
data,
loading
) => {
return post(`${prefix}`, data, undefined, loading, 1000 * 60 * 5)
}
/**
* Web知识库
* @param
* {
"name": "string",
"desc": "string",
"source_url": "string",
"selector": "string",
}
*/
const postWebDataset: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
data,
loading
) => {
return post(`${prefix}/web`, data, undefined, loading)
}
/**
* QA知识库
* @param formData
* {
"file": "file",
"name": "string",
"desc": "string",
}
*/
const postQADataset: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
data,
loading
) => {
return post(`${prefix}/qa`, data, undefined, loading)
}
/**
*
* @param dataset_id
*/
const getDatasetDetail: (dataset_id: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
dataset_id,
loading
) => {
return get(`${prefix}/${dataset_id}`, undefined, loading)
}
/**
*
* @param
* dataset_id
* {
"name": "string",
"desc": true
}
*/
const putDataset: (
dataset_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (dataset_id, data, loading) => {
return put(`${prefix}/${dataset_id}`, data, undefined, loading)
}
/**
*
* @param dataset_id
* @param loading
* @returns
*/
const listUsableApplication: (
dataset_id: string,
loading?: Ref<boolean>
) => Promise<Result<Array<ApplicationFormType>>> = (dataset_id, loading) => {
return get(`${prefix}/${dataset_id}/application`, {}, loading)
}
/**
*
* @param dataset_id
* @param loading
* @query { query_text: string, top_number: number, similarity: number }
* @returns
*/
const getDatasetHitTest: (
dataset_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<Array<any>>> = (dataset_id, data, loading) => {
return get(`${prefix}/${dataset_id}/hit_test`, data, loading)
}
/**
*
* @param dataset_id
* @query sync_type // 同步类型->replace:替换同步,complete:完整同步
*/
const putSyncWebDataset: (
dataset_id: string,
sync_type: string,
loading?: Ref<boolean>
) => Promise<Result<any>> = (dataset_id, sync_type, loading) => {
return put(`${prefix}/${dataset_id}/sync_web`, undefined, { sync_type }, loading)
}
/**
*
* @param dataset_id
*/
const putReEmbeddingDataset: (
dataset_id: string,
loading?: Ref<boolean>
) => Promise<Result<any>> = (dataset_id, loading) => {
return put(`${prefix}/${dataset_id}/re_embedding`, undefined, undefined, loading)
}
/**
*
* @param dataset_name
* @param dataset_id id
* @returns
*/
const exportDataset: (
dataset_name: string,
dataset_id: string,
loading?: Ref<boolean>
) => Promise<any> = (dataset_name, dataset_id, loading) => {
return exportExcel(dataset_name + '.xlsx', `dataset/${dataset_id}/export`, undefined, loading)
}
/**
*Zip知识库
* @param dataset_name
* @param dataset_id id
* @param loading
* @returns
*/
const exportZipDataset: (
dataset_name: string,
dataset_id: string,
loading?: Ref<boolean>
) => Promise<any> = (dataset_name, dataset_id, loading) => {
return exportFile(dataset_name + '.zip', `dataset/${dataset_id}/export_zip`, undefined, loading)
}
/**
* 使
* @param application_id
* @param loading
* @query { query_text: string, top_number: number, similarity: number }
* @returns
*/
const getDatasetModel: (
dataset_id: string,
loading?: Ref<boolean>
) => Promise<Result<Array<any>>> = (dataset_id, loading) => {
return get(`${prefix}/${dataset_id}/model`, loading)
}
export default {
getDataset,
getAllDataset,
delDataset,
postDataset,
getDatasetDetail,
putDataset,
listUsableApplication,
getDatasetHitTest,
postWebDataset,
putSyncWebDataset,
putReEmbeddingDataset,
postQADataset,
exportDataset,
getDatasetModel,
exportZipDataset
}

398
src/api/document.ts

@ -0,0 +1,398 @@
import { Result } from '@/request/Result'
import { get, post, del, put, exportExcel, exportFile } from '@/request/index'
import type { Ref } from 'vue'
import type { KeyValue } from '@/api/type/common'
import type { pageRequest } from '@/api/type/common'
const prefix = '/dataset'
/**
*
* @param file:file,limit:number,patterns:array,with_filter:boolean
*/
const postSplitDocument: (data: any) => Promise<Result<any>> = (data) => {
return post(`${prefix}/document/split`, data, undefined, undefined, 1000 * 60 * 60)
}
/**
*
* @param loading
* @returns
*/
const listSplitPattern: (
loading?: Ref<boolean>
) => Promise<Result<Array<KeyValue<string, string>>>> = (loading) => {
return get(`${prefix}/document/split_pattern`, {}, loading)
}
/**
*
* @param dataset_id,
* page {
"current_page": "string",
"page_size": "string",
}
* param {
"name": "string",
}
*/
const getDocument: (
dataset_id: string,
page: pageRequest,
param: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (dataset_id, page, param, loading) => {
return get(
`${prefix}/${dataset_id}/document/${page.current_page}/${page.page_size}`,
param,
loading
)
}
const getAllDocument: (dataset_id: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
dataset_id,
loading
) => {
return get(`${prefix}/${dataset_id}/document`, undefined, loading)
}
/**
*
* @param
* {
"name": "string",
"paragraphs": [
{
"content": "string",
"title": "string",
"problem_list": [
{
"id": "string",
"content": "string"
}
]
}
]
}
*/
const postDocument: (
dataset_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (dataset_id, data, loading) => {
return post(`${prefix}/${dataset_id}/document/_bach`, data, {}, loading, 1000 * 60 * 5)
}
/**
*
* @param
* dataset_id, document_id,
* {
"name": "string",
"is_active": true,
"meta": {}
}
*/
const putDocument: (
dataset_id: string,
document_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (dataset_id, document_id, data: any, loading) => {
return put(`${prefix}/${dataset_id}/document/${document_id}`, data, undefined, loading)
}
/**
*
* @param dataset_id, document_id,
*/
const delDocument: (
dataset_id: string,
document_id: string,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (dataset_id, document_id, loading) => {
return del(`${prefix}/${dataset_id}/document/${document_id}`, loading)
}
/**
*
* @param dataset_id,
*/
const delMulDocument: (
dataset_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (dataset_id, data, loading) => {
return del(`${prefix}/${dataset_id}/document/_bach`, undefined, { id_list: data }, loading)
}
const batchRefresh: (
dataset_id: string,
data: any,
stateList: Array<string>,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (dataset_id, data, stateList, loading) => {
return put(
`${prefix}/${dataset_id}/document/batch_refresh`,
{ id_list: data, state_list: stateList },
undefined,
loading
)
}
/**
*
* @param dataset_id
*/
const getDocumentDetail: (dataset_id: string, document_id: string) => Promise<Result<any>> = (
dataset_id,
document_id
) => {
return get(`${prefix}/${dataset_id}/document/${document_id}`)
}
/**
*
* @param
* dataset_id, document_id,
*/
const putDocumentRefresh: (
dataset_id: string,
document_id: string,
state_list: Array<string>,
loading?: Ref<boolean>
) => Promise<Result<any>> = (dataset_id, document_id, state_list, loading) => {
return put(
`${prefix}/${dataset_id}/document/${document_id}/refresh`,
{ state_list },
undefined,
loading
)
}
/**
* web站点类型
* @param
* dataset_id, document_id,
*/
const putDocumentSync: (
dataset_id: string,
document_id: string,
loading?: Ref<boolean>
) => Promise<Result<any>> = (dataset_id, document_id, loading) => {
return put(`${prefix}/${dataset_id}/document/${document_id}/sync`, undefined, undefined, loading)
}
/**
*
* @param dataset_id,
*/
const delMulSyncDocument: (
dataset_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (dataset_id, data, loading) => {
return put(`${prefix}/${dataset_id}/document/_bach`, { id_list: data }, undefined, loading)
}
/**
* Web站点文档
* @param
* {
"source_url_list": [
"string"
],
"selector": "string"
}
}
*/
const postWebDocument: (
dataset_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (dataset_id, data, loading) => {
return post(`${prefix}/${dataset_id}/document/web`, data, undefined, loading)
}
/**
* QA文档
* @param
* file
}
*/
const postQADocument: (
dataset_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (dataset_id, data, loading) => {
return post(`${prefix}/${dataset_id}/document/qa`, data, undefined, loading)
}
/**
*
* @param
* file
*/
const postTableDocument: (
dataset_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (dataset_id, data, loading) => {
return post(`${prefix}/${dataset_id}/document/table`, data, undefined, loading)
}
/**
*
* @param dataset_id,target_dataset_id,
*/
const putMigrateMulDocument: (
dataset_id: string,
target_dataset_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (dataset_id, target_dataset_id, data, loading) => {
return put(
`${prefix}/${dataset_id}/document/migrate/${target_dataset_id}`,
data,
undefined,
loading
)
}
/**
*
* @param dataset_id id
* @param data {id_list:[],hit_handling_method:'directly_return|optimization'}
* @param loading
* @returns
*/
const batchEditHitHandling: (
dataset_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (dataset_id, data, loading) => {
return put(`${prefix}/${dataset_id}/document/batch_hit_handling`, data, undefined, loading)
}
/**
* QA模版
* @param fileName,type,
*/
const exportQATemplate: (fileName: string, type: string, loading?: Ref<boolean>) => void = (
fileName,
type,
loading
) => {
return exportExcel(fileName, `${prefix}/document/template/export`, { type }, loading)
}
/**
* table模版
* @param fileName,type,
*/
const exportTableTemplate: (fileName: string, type: string, loading?: Ref<boolean>) => void = (
fileName,
type,
loading
) => {
return exportExcel(fileName, `${prefix}/document/table_template/export`, { type }, loading)
}
/**
*
* @param document_name
* @param dataset_id id
* @param document_id id
* @param loading
* @returns
*/
const exportDocument: (
document_name: string,
dataset_id: string,
document_id: string,
loading?: Ref<boolean>
) => Promise<any> = (document_name, dataset_id, document_id, loading) => {
return exportExcel(
document_name + '.xlsx',
`${prefix}/${dataset_id}/document/${document_id}/export`,
{},
loading
)
}
/**
*
* @param document_name
* @param dataset_id id
* @param document_id id
* @param loading
* @returns
*/
const exportDocumentZip: (
document_name: string,
dataset_id: string,
document_id: string,
loading?: Ref<boolean>
) => Promise<any> = (document_name, dataset_id, document_id, loading) => {
return exportFile(
document_name + '.zip',
`${prefix}/${dataset_id}/document/${document_id}/export_zip`,
{},
loading
)
}
const batchGenerateRelated: (
dataset_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (dataset_id, data, loading) => {
return put(`${prefix}/${dataset_id}/document/batch_generate_related`, data, undefined, loading)
}
const cancelTask: (
dataset_id: string,
document_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (dataset_id, document_id, data, loading) => {
return put(
`${prefix}/${dataset_id}/document/${document_id}/cancel_task`,
data,
undefined,
loading
)
}
const batchCancelTask: (
dataset_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (dataset_id, data, loading) => {
return put(`${prefix}/${dataset_id}/document/cancel_task/_batch`, data, undefined, loading)
}
export default {
postSplitDocument,
getDocument,
getAllDocument,
postDocument,
putDocument,
delDocument,
delMulDocument,
getDocumentDetail,
listSplitPattern,
putDocumentRefresh,
putDocumentSync,
delMulSyncDocument,
postWebDocument,
putMigrateMulDocument,
batchEditHitHandling,
exportQATemplate,
exportTableTemplate,
postQADocument,
postTableDocument,
exportDocument,
batchRefresh,
batchGenerateRelated,
cancelTask,
exportDocumentZip,
batchCancelTask
}

38
src/api/email-setting.ts

@ -0,0 +1,38 @@
import { Result } from '@/request/Result'
import { get, post, del, put } from '@/request/index'
import type { pageRequest } from '@/api/type/common'
import { type Ref } from 'vue'
const prefix = '/email_setting'
/**
*
*/
const getEmailSetting: (loading?: Ref<boolean>) => Promise<Result<any>> = (loading) => {
return get(`${prefix}`, undefined, loading)
}
/**
*
*/
const postTestEmail: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
data,
loading
) => {
return post(`${prefix}`, data, undefined, loading)
}
/**
*
*/
const putEmailSetting: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
data,
loading
) => {
return put(`${prefix}`, data, undefined, loading)
}
export default {
getEmailSetting,
postTestEmail,
putEmailSetting
}

111
src/api/function-lib.ts

@ -0,0 +1,111 @@
import { Result } from '@/request/Result'
import { get, post, del, put } from '@/request/index'
import type { pageRequest } from '@/api/type/common'
import type { functionLibData } from '@/api/type/function-lib'
import { type Ref } from 'vue'
const prefix = '/function_lib'
/**
*
* param {
"name": "string",
}
*/
const getAllFunctionLib: (param?: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
param,
loading
) => {
return get(`${prefix}`, param || {}, loading)
}
/**
*
* page {
"current_page": "string",
"page_size": "string",
}
* param {
"name": "string",
}
*/
const getFunctionLib: (
page: pageRequest,
param: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (page, param, loading) => {
return get(`${prefix}/${page.current_page}/${page.page_size}`, param, loading)
}
/**
*
* @param
*/
const postFunctionLib: (data: functionLibData, loading?: Ref<boolean>) => Promise<Result<any>> = (
data,
loading
) => {
return post(`${prefix}`, data, undefined, loading)
}
/**
*
* @param
*/
const putFunctionLib: (
function_lib_id: string,
data: functionLibData,
loading?: Ref<boolean>
) => Promise<Result<any>> = (function_lib_id, data, loading) => {
return put(`${prefix}/${function_lib_id}`, data, undefined, loading)
}
/**
*
* @param
*/
const postFunctionLibDebug: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
data: any,
loading
) => {
return post(`${prefix}/debug`, data, undefined, loading)
}
/**
*
* @param function_lib_id
*/
const delFunctionLib: (
function_lib_id: String,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (function_lib_id, loading) => {
return del(`${prefix}/${function_lib_id}`, undefined, {}, loading)
}
/**
*
* @param function_lib_id id
* @param loading
* @returns
*/
const getFunctionLibById: (
function_lib_id: String,
loading?: Ref<boolean>
) => Promise<Result<any>> = (function_lib_id, loading) => {
return get(`${prefix}/${function_lib_id}`, undefined, loading)
}
const pylint: (code: string, loading?: Ref<boolean>) => Promise<Result<any>> = (code, loading) => {
return post(`${prefix}/pylint`, { code }, {}, loading)
}
export default {
getFunctionLib,
postFunctionLib,
putFunctionLib,
postFunctionLibDebug,
getAllFunctionLib,
delFunctionLib,
getFunctionLibById,
pylint
}

15
src/api/image.ts

@ -0,0 +1,15 @@
import { Result } from '@/request/Result'
import { get, post, del, put } from '@/request/index'
const prefix = '/image'
/**
*
* @param file:file
*/
const postImage: (data: any) => Promise<Result<any>> = (data) => {
return post(`${prefix}`, data)
}
export default {
postImage
}

24
src/api/license.ts

@ -0,0 +1,24 @@
import { Result } from '@/request/Result'
import { get, post, del, put } from '@/request/index'
import { type Ref } from 'vue'
const prefix = '/license'
/**
* license信息
*/
const getLicense: (loading?: Ref<boolean>) => Promise<Result<any>> = (loading) => {
return get(`${prefix}/profile`, undefined, loading)
}
/**
* license信息
* @param license_file:file
*/
const putLicense: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (data, loading) => {
return put(`${prefix}/profile`, data, undefined, loading)
}
export default {
getLicense,
putLicense
}

235
src/api/log.ts

@ -0,0 +1,235 @@
import { Result } from '@/request/Result'
import { get, del, put, exportExcel, exportExcelPost, post } from '@/request/index'
import type { pageRequest } from '@/api/type/common'
import { type Ref } from 'vue'
const prefix = '/application'
/**
*
* @param
* application_id, history_day
* page {
"current_page": "string",
"page_size": "string",
}
* param {
"history_day": "string",
"search": "string",
}
*/
const getChatLog: (
application_id: String,
page: pageRequest,
param: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, page, param, loading) => {
return get(
`${prefix}/${application_id}/chat/${page.current_page}/${page.page_size}`,
param,
loading
)
}
const exportChatLog: (
application_id: string,
application_name: string,
param: any,
data: any,
loading?: Ref<boolean>
) => void = (application_id, application_name, param, data, loading) => {
exportExcelPost(
application_name + '.xlsx',
`${prefix}/${application_id}/chat/export`,
param,
data,
loading
)
}
/**
*
* @param application_id, chat_id,
*/
const delChatLog: (
application_id: string,
chat_id: string,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (application_id, chat_id, loading) => {
return del(`${prefix}/${application_id}/chat/${chat_id}`, undefined, {}, loading)
}
/**
*
* @param
* application_id, chart_id
* page {
"current_page": "string",
"page_size": "string",
}
*/
const getChatRecordLog: (
application_id: String,
chart_id: String,
page: pageRequest,
loading?: Ref<boolean>,
order_asc?: boolean
) => Promise<Result<any>> = (application_id, chart_id, page, loading, order_asc) => {
return get(
`${prefix}/${application_id}/chat/${chart_id}/chat_record/${page.current_page}/${page.page_size}`,
{ order_asc: order_asc !== undefined ? order_asc : true },
loading
)
}
/**
*
* @param
* application_id, chart_id, chart_record_id, dataset_id, document_id
* data {
"title": "string",
"content": "string",
}
*/
const putChatRecordLog: (
application_id: String,
chart_id: String,
chart_record_id: String,
dataset_id: String,
document_id: String,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (
application_id,
chart_id,
chart_record_id,
dataset_id,
document_id,
data,
loading
) => {
return put(
`${prefix}/${application_id}/chat/${chart_id}/chat_record/${chart_record_id}/dataset/${dataset_id}/document_id/${document_id}/improve`,
data,
undefined,
loading
)
}
/**
*
* @param data
* @param loading
* @param application_id
* @param dataset_id
*/
const postChatRecordLog: (
application_id: string,
dataset_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, dataset_id, data, loading) => {
return post(`${prefix}/${application_id}/dataset/${dataset_id}/improve`, data, undefined, loading)
}
/**
*
* @param
* application_id, chart_id, chart_record_id
*/
const getMarkRecord: (
application_id: String,
chart_id: String,
chart_record_id: String,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, chart_id, chart_record_id, loading) => {
return get(
`${prefix}/${application_id}/chat/${chart_id}/chat_record/${chart_record_id}/improve`,
undefined,
loading
)
}
/**
*
* @param
* application_id, chart_id, chart_record_id, dataset_id, document_id,paragraph_id
*/
const delMarkRecord: (
application_id: String,
chart_id: String,
chart_record_id: String,
dataset_id: String,
document_id: String,
paragraph_id: String,
loading?: Ref<boolean>
) => Promise<Result<any>> = (
application_id,
chart_id,
chart_record_id,
dataset_id,
document_id,
paragraph_id,
loading
) => {
return del(
`${prefix}/${application_id}/chat/${chart_id}/chat_record/${chart_record_id}/dataset/${dataset_id}/document_id/${document_id}/improve/${paragraph_id}`,
undefined,
{},
loading
)
}
/**
*
* @param
* application_id, chart_id, chart_record_id
*/
const getRecordDetail: (
application_id: String,
chart_id: String,
chart_record_id: String,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, chart_id, chart_record_id, loading) => {
return get(
`${prefix}/${application_id}/chat/${chart_id}/chat_record/${chart_record_id}`,
undefined,
loading
)
}
const getChatLogClient: (
application_id: String,
page: pageRequest,
loading?: Ref<boolean>
) => Promise<Result<any>> = (application_id, page, loading) => {
return get(
`${prefix}/${application_id}/chat/client/${page.current_page}/${page.page_size}`,
null,
loading
)
}
/**
*
* @param application_id, chat_id,
*/
const delChatClientLog: (
application_id: string,
chat_id: string,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (application_id, chat_id, loading) => {
return del(`${prefix}/${application_id}/chat/client/${chat_id}`, undefined, {}, loading)
}
export default {
getChatLog,
delChatLog,
getChatRecordLog,
putChatRecordLog,
getMarkRecord,
getRecordDetail,
delMarkRecord,
exportChatLog,
getChatLogClient,
delChatClientLog,
postChatRecordLog
}

209
src/api/model.ts

@ -0,0 +1,209 @@
import { request } from './../request/index'
import { Result } from '@/request/Result'
import { get, post, del, put } from '@/request/index'
import { type Ref } from 'vue'
import type {
modelRequest,
Provider,
ListModelRequest,
Model,
BaseModel,
CreateModelRequest,
EditModelRequest
} from '@/api/type/model'
import type { FormField } from '@/components/dynamics-form/type'
import type { KeyValue } from './type/common'
const prefix = '/model'
const prefix_provider = '/provider'
/**
*
* @params name, model_type, model_name
*/
const getModel: (
request?: ListModelRequest,
loading?: Ref<boolean>
) => Promise<Result<Array<Model>>> = (data, loading) => {
return get(`${prefix}`, data, loading)
}
/**
*
*/
const getProvider: (loading?: Ref<boolean>) => Promise<Result<Array<Provider>>> = (loading) => {
return get(`${prefix_provider}`, {}, loading)
}
/**
*
*/
const getProviderByModelType: (model_type: string, loading?: Ref<boolean>) => Promise<Result<Array<Provider>>> = (model_type, loading) => {
return get(`${prefix_provider}`, {model_type}, loading)
}
/**
*
* @param provider
* @param model_type
* @param model_name
* @param loading
* @returns
*/
const getModelCreateForm: (
provider: string,
model_type: string,
model_name: string,
loading?: Ref<boolean>
) => Promise<Result<Array<FormField>>> = (provider, model_type, model_name, loading) => {
return get(`${prefix_provider}/model_form`, { provider, model_type, model_name }, loading)
}
/**
*
* @param model_id id
* @param loading
* @returns
*/
const getModelParamsForm: (
model_id: string,
loading?: Ref<boolean>
) => Promise<Result<Array<FormField>>> = (model_id, loading) => {
return get(`model/${model_id}/model_params_form`, {}, loading)
}
/**
*
* @param provider
* @param loading
* @returns
*/
const listModelType: (
provider: string,
loading?: Ref<boolean>
) => Promise<Result<Array<KeyValue<string, string>>>> = (provider, loading?: Ref<boolean>) => {
return get(`${prefix_provider}/model_type_list`, { provider }, loading)
}
/**
*
* @param provider
* @param model_type
* @param loading
* @returns
*/
const listBaseModel: (
provider: string,
model_type: string,
loading?: Ref<boolean>
) => Promise<Result<Array<BaseModel>>> = (provider, model_type, loading) => {
return get(`${prefix_provider}/model_list`, { provider, model_type }, loading)
}
const listBaseModelParamsForm: (
provider: string,
model_type: string,
model_name: string,
loading?: Ref<boolean>
) => Promise<Result<Array<BaseModel>>> = (provider, model_type, model_name, loading) => {
return get(`${prefix_provider}/model_params_form`, { provider, model_type, model_name}, loading)
}
/**
*
* @param request
* @param loading
* @returns
*/
const createModel: (
request: CreateModelRequest,
loading?: Ref<boolean>
) => Promise<Result<Model>> = (request, loading) => {
return post(`${prefix}`, request, {}, loading)
}
/**
*
* @param request
* @param loading
* @returns
*/
const updateModel: (
model_id: string,
request: EditModelRequest,
loading?: Ref<boolean>
) => Promise<Result<Model>> = (model_id, request, loading) => {
return put(`${prefix}/${model_id}`, request, {}, loading)
}
/**
*
* @param request
* @param loading
* @returns
*/
const updateModelParamsForm: (
model_id: string,
request: any[],
loading?: Ref<boolean>
) => Promise<Result<Model>> = (model_id, request, loading) => {
return put(`${prefix}/${model_id}/model_params_form`, request, {}, loading)
}
/**
* id
* @param model_id id
* @param loading
* @returns
*/
const getModelById: (model_id: string, loading?: Ref<boolean>) => Promise<Result<Model>> = (
model_id,
loading
) => {
return get(`${prefix}/${model_id}`, {}, loading)
}
/**
* id
* @param model_id id
* @param loading
* @returns
*/
const getModelMetaById: (model_id: string, loading?: Ref<boolean>) => Promise<Result<Model>> = (
model_id,
loading
) => {
return get(`${prefix}/${model_id}/meta`, {}, loading)
}
/**
*
* @param model_id id
* @param loading
* @returns
*/
const pauseDownload: (model_id: string, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
model_id,
loading
) => {
return put(`${prefix}/${model_id}/pause_download`, undefined, {}, loading)
}
const deleteModel: (model_id: string, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
model_id,
loading
) => {
return del(`${prefix}/${model_id}`, undefined, {}, loading)
}
export default {
getModel,
getProvider,
getModelCreateForm,
listModelType,
listBaseModel,
listBaseModelParamsForm,
createModel,
updateModel,
deleteModel,
getModelById,
getModelMetaById,
pauseDownload,
getModelParamsForm,
updateModelParamsForm,
getProviderByModelType
}

256
src/api/paragraph.ts

@ -0,0 +1,256 @@
import { Result } from '@/request/Result'
import { get, post, del, put } from '@/request/index'
import type { pageRequest } from '@/api/type/common'
import type { Ref } from 'vue'
const prefix = '/dataset'
/**
*
* @param dataset_id document_id
* page {
"current_page": "string",
"page_size": "string",
}
* param {
"title": "string",
"content": "string",
}
*/
const getParagraph: (
dataset_id: string,
document_id: string,
page: pageRequest,
param: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (dataset_id, document_id, page, param, loading) => {
return get(
`${prefix}/${dataset_id}/document/${document_id}/paragraph/${page.current_page}/${page.page_size}`,
param,
loading
)
}
/**
*
* @param dataset_id, document_id, paragraph_id
*/
const delParagraph: (
dataset_id: string,
document_id: string,
paragraph_id: string,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (dataset_id, document_id, paragraph_id, loading) => {
return del(
`${prefix}/${dataset_id}/document/${document_id}/paragraph/${paragraph_id}`,
undefined,
{},
loading
)
}
/**
*
* @param dataset_id, document_id
*/
const delMulParagraph: (
dataset_id: string,
document_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (dataset_id, document_id, data, loading) => {
return del(
`${prefix}/${dataset_id}/document/${document_id}/paragraph/_batch`,
undefined,
{ id_list: data },
loading
)
}
/**
*
* @param
* dataset_id, document_id
* {
"content": "string",
"title": "string",
"is_active": true,
"problem_list": [
{
"id": "string",
"content": "string"
}
]
}
*/
const postParagraph: (
dataset_id: string,
document_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (dataset_id, document_id, data, loading) => {
return post(`${prefix}/${dataset_id}/document/${document_id}/paragraph`, data, undefined, loading)
}
/**
*
* @param
* dataset_id, document_id, paragraph_id
* {
"content": "string",
"title": "string",
"is_active": true,
"problem_list": [
{
"id": "string",
"content": "string"
}
]
}
*/
const putParagraph: (
dataset_id: string,
document_id: string,
paragraph_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (dataset_id, document_id, paragraph_id, data, loading) => {
return put(
`${prefix}/${dataset_id}/document/${document_id}/paragraph/${paragraph_id}`,
data,
undefined,
loading
)
}
/**
*
* @param dataset_id,target_dataset_id,
*/
const putMigrateMulParagraph: (
dataset_id: string,
document_id: string,
target_dataset_id: string,
target_document_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (
dataset_id,
document_id,
target_dataset_id,
target_document_id,
data,
loading
) => {
return put(
`${prefix}/${dataset_id}/document/${document_id}/paragraph/migrate/dataset/${target_dataset_id}/document/${target_document_id}`,
data,
undefined,
loading
)
}
/**
*
* @param dataset_iddocument_idparagraph_id
*/
const getProblem: (
dataset_id: string,
document_id: string,
paragraph_id: string
) => Promise<Result<any>> = (dataset_id, document_id, paragraph_id: string) => {
return get(`${prefix}/${dataset_id}/document/${document_id}/paragraph/${paragraph_id}/problem`)
}
/**
*
* @param
* dataset_id, document_id, paragraph_id
* {
"id": "string",
content": "string"
}
*/
const postProblem: (
dataset_id: string,
document_id: string,
paragraph_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (dataset_id, document_id, paragraph_id, data: any, loading) => {
return post(
`${prefix}/${dataset_id}/document/${document_id}/paragraph/${paragraph_id}/problem`,
data,
{},
loading
)
}
/**
*
* @param dataset_id id
* @param document_id id
* @param paragraph_id id
* @param problem_id id
* @param loading
* @returns
*/
const associationProblem: (
dataset_id: string,
document_id: string,
paragraph_id: string,
problem_id: string,
loading?: Ref<boolean>
) => Promise<Result<any>> = (dataset_id, document_id, paragraph_id, problem_id, loading) => {
return put(
`${prefix}/${dataset_id}/document/${document_id}/paragraph/${paragraph_id}/problem/${problem_id}/association`,
{},
{},
loading
)
}
/**
*
* @param dataset_id, document_id, paragraph_id,problem_id
*/
const disassociationProblem: (
dataset_id: string,
document_id: string,
paragraph_id: string,
problem_id: string,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (dataset_id, document_id, paragraph_id, problem_id, loading) => {
return put(
`${prefix}/${dataset_id}/document/${document_id}/paragraph/${paragraph_id}/problem/${problem_id}/un_association`,
{},
{},
loading
)
}
const batchGenerateRelated: (
dataset_id: string,
document_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (dataset_id, document_id, data, loading) => {
return put(
`${prefix}/${dataset_id}/document/${document_id}/paragraph/batch_generate_related`,
data,
undefined,
loading
)
}
export default {
getParagraph,
delParagraph,
putParagraph,
postParagraph,
getProblem,
postProblem,
disassociationProblem,
associationProblem,
delMulParagraph,
putMigrateMulParagraph,
batchGenerateRelated
}

28
src/api/platform-source.ts

@ -0,0 +1,28 @@
import { Result } from '@/request/Result'
import { get, post, del, put } from '@/request/index'
import type { pageRequest } from '@/api/type/common'
import { type Ref } from 'vue'
const prefix = '/platform'
const getPlatformInfo: (loading?: Ref<boolean>) => Promise<Result<any>> = (loading) => {
return get(`${prefix}/source`, undefined, loading)
}
const updateConfig: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
data,
loading
) => {
return post(`${prefix}/source`, data, undefined, loading)
}
const validateConnection: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
data,
loading
) => {
return put(`${prefix}/source`, data, undefined, loading)
}
export default {
getPlatformInfo,
updateConfig,
validateConnection
}

124
src/api/problem.ts

@ -0,0 +1,124 @@
import { Result } from '@/request/Result'
import { get, post, del, put } from '@/request/index'
import type { Ref } from 'vue'
import type { KeyValue } from '@/api/type/common'
import type { pageRequest } from '@/api/type/common'
const prefix = '/dataset'
/**
*
* @param dataset_id,
* page {
"current_page": "string",
"page_size": "string",
}
* query {
"content": "string",
}
*/
const getProblems: (
dataset_id: string,
page: pageRequest,
param: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (dataset_id, page, param, loading) => {
return get(
`${prefix}/${dataset_id}/problem/${page.current_page}/${page.page_size}`,
param,
loading
)
}
/**
*
* @param dataset_id
* data: array[string]
*/
const postProblems: (
dataset_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (dataset_id, data, loading) => {
return post(`${prefix}/${dataset_id}/problem`, data, undefined, loading)
}
/**
*
* @param dataset_id, problem_id,
*/
const delProblems: (
dataset_id: string,
problem_id: string,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (dataset_id, problem_id, loading) => {
return del(`${prefix}/${dataset_id}/problem/${problem_id}`, loading)
}
/**
*
* @param dataset_id,
*/
const delMulProblem: (
dataset_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (dataset_id, data, loading) => {
return del(`${prefix}/${dataset_id}/problem/_batch`, undefined, data, loading)
}
/**
*
* @param
* dataset_id, problem_id,
* {
"content": "string",
}
*/
const putProblems: (
dataset_id: string,
problem_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (dataset_id, problem_id, data: any, loading) => {
return put(`${prefix}/${dataset_id}/problem/${problem_id}`, data, undefined, loading)
}
/**
*
* @param
* dataset_id, problem_id,
*/
const getDetailProblems: (
dataset_id: string,
problem_id: string,
loading?: Ref<boolean>
) => Promise<Result<any>> = (dataset_id, problem_id, loading) => {
return get(`${prefix}/${dataset_id}/problem/${problem_id}/paragraph`, undefined, loading)
}
/**
*
* @param dataset_id,
* {
"problem_id_list": "Array",
"paragraph_list": "Array",
}
*/
const postMulAssociationProblem: (
dataset_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (dataset_id, data, loading) => {
return post(`${prefix}/${dataset_id}/problem/_batch`, data, undefined, loading)
}
export default {
getProblems,
postProblems,
delProblems,
putProblems,
getDetailProblems,
delMulProblem,
postMulAssociationProblem
}

12
src/api/provider.ts

@ -0,0 +1,12 @@
import { Result } from '@/request/Result'
import { get, post } from '@/request/index'
import type { Ref } from 'vue'
const trigger: (
provider: string,
method: string,
request_body: any,
loading?: Ref<boolean>
) => Promise<Result<Array<any> | string>> = (provider, method, request_body, loading) => {
return post(`provider/${provider}/${method}`, {}, request_body, loading)
}
export default { trigger, get }

58
src/api/system-api-key.ts

@ -0,0 +1,58 @@
import {Result} from '@/request/Result'
import {get, post, del, put} from '@/request/index'
import {type Ref} from 'vue'
const prefix = '/system/api_key'
/**
* API_KEY列表
*/
const getAPIKey: (loading?: Ref<boolean>) => Promise<Result<any>> = () => {
return get(`${prefix}/`)
}
/**
* API_KEY
*/
const postAPIKey: (loading?: Ref<boolean>) => Promise<Result<any>> = (
loading
) => {
return post(`${prefix}/`, {}, undefined, loading)
}
/**
* API_KEY
* @param application_id api_key_id
*/
const delAPIKey: (
api_key_id: String,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (api_key_id, loading) => {
return del(`${prefix}/${api_key_id}/`, undefined, undefined, loading)
}
/**
* API_KEY
* data {
* is_active: boolean
* }
* @param api_key_id
* @param data
* @param loading
*/
const putAPIKey: (
api_key_id: String,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (api_key_id, data, loading) => {
return put(`${prefix}/${api_key_id}/`, data, undefined, loading)
}
export default {
getAPIKey,
postAPIKey,
delAPIKey,
putAPIKey
}

67
src/api/team.ts

@ -0,0 +1,67 @@
import { Result } from '@/request/Result'
import { get, post, del, put } from '@/request/index'
import type { TeamMember } from '@/api/type/team'
const prefix = '/team/member'
/**
*
*/
const getTeamMember: () => Promise<Result<TeamMember[]>> = () => {
return get(`${prefix}`)
}
/**
*
* @param []
*/
const postCreatTeamMember: (data: Array<String>) => Promise<Result<boolean>> = (data) => {
return post(`${prefix}/_batch`, data)
}
/**
*
* @param member_id
*/
const delTeamMember: (member_id: String) => Promise<Result<boolean>> = (member_id) => {
return del(`${prefix}/${member_id}`)
}
/**
*
* @param member_id
*/
const getMemberPermissions: (member_id: String) => Promise<Result<any>> = (member_id) => {
return get(`${prefix}/${member_id}`)
}
/**
*
* @param member_id
* @param {
"team_member_permission_list": [
{
"target_id": "string",
"type": "string",
"operate": {
"USE": true,
"MANAGE": true
}
}
]
}
*/
const putMemberPermissions: (member_id: String, body: any) => Promise<Result<any>> = (
member_id,
body
) => {
return put(`${prefix}/${member_id}`, body)
}
export default {
getTeamMember,
postCreatTeamMember,
delTeamMember,
getMemberPermissions,
putMemberPermissions
}

35
src/api/theme.ts

@ -0,0 +1,35 @@
import { Result } from '@/request/Result'
import { get, post, del, put } from '@/request/index'
import type { Ref } from 'vue'
const prefix = '/display'
/**
*
*/
const getThemeInfo: (loading?: Ref<boolean>) => Promise<Result<any>> = (loading) => {
return get(`${prefix}/info`, undefined, loading)
}
/**
*
* @param
* * formData {
* theme
* icon
* loginLogo
* loginImage
* title
* slogan
* }
*/
const postThemeInfo: (data: any, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
data,
loading
) => {
return post(`${prefix}/update`, data, undefined, loading)
}
export default {
getThemeInfo,
postThemeInfo
}

420
src/api/type/application.ts

@ -0,0 +1,420 @@
import { type Dict } from '@/api/type/common'
import { type Ref } from 'vue'
interface ApplicationFormType {
name?: string
desc?: string
model_id?: string
dialogue_number?: number
prologue?: string
dataset_id_list?: string[]
dataset_setting?: any
model_setting?: any
problem_optimization?: boolean
problem_optimization_prompt?: string
icon?: string | undefined
type?: string
work_flow?: any
model_params_setting?: any
tts_model_params_setting?: any
stt_model_id?: string
tts_model_id?: string
stt_model_enable?: boolean
tts_model_enable?: boolean
tts_type?: string
}
interface Chunk {
real_node_id: string
chat_id: string
chat_record_id: string
content: string
node_id: string
up_node_id: string
is_end: boolean
node_is_end: boolean
node_type: string
view_type: string
runtime_node_id: string
child_node: any
}
interface chatType {
id: string
problem_text: string
answer_text: string
buffer: Array<String>
answer_text_list: Array<{
content: string
chat_record_id?: string
runtime_node_id?: string
child_node?: any
}>
/**
*
*/
write_ed?: boolean
/**
*
*/
is_stop?: boolean
record_id: string
chat_id: string
vote_status: string
status?: number
execution_details: any[]
upload_meta?: {
document_list: Array<any>
image_list: Array<any>
audio_list: Array<any>
}
}
interface Node {
buffer: Array<string>
node_id: string
up_node_id: string
node_type: string
view_type: string
index: number
is_end: boolean
}
interface WriteNodeInfo {
current_node: any
answer_text_list_index: number
current_up_node?: any
divider_content?: Array<string>
}
export class ChatRecordManage {
id?: any
ms: number
chat: chatType
is_close?: boolean
write_ed?: boolean
is_stop?: boolean
loading?: Ref<boolean>
node_list: Array<any>
write_node_info?: WriteNodeInfo
constructor(chat: chatType, ms?: number, loading?: Ref<boolean>) {
this.ms = ms ? ms : 10
this.chat = chat
this.loading = loading
this.is_stop = false
this.is_close = false
this.write_ed = false
this.node_list = []
}
append_answer(
chunk_answer: string,
index?: number,
chat_record_id?: string,
runtime_node_id?: string,
child_node?: any
) {
const set_index = index != undefined ? index : this.chat.answer_text_list.length - 1
const content = this.chat.answer_text_list[set_index]
? this.chat.answer_text_list[set_index].content + chunk_answer
: chunk_answer
this.chat.answer_text_list[set_index] = {
content: content,
chat_record_id,
runtime_node_id,
child_node
}
this.chat.answer_text = this.chat.answer_text + chunk_answer
}
get_current_up_node(run_node: any) {
const index = this.node_list.findIndex((item) => item == run_node)
if (index > 0) {
const n = this.node_list[index - 1]
return n
}
return undefined
}
get_run_node() {
if (
this.write_node_info &&
(this.write_node_info.current_node.buffer.length > 0 ||
!this.write_node_info.current_node.is_end)
) {
return this.write_node_info
}
const run_node = this.node_list.filter((item) => item.buffer.length > 0 || !item.is_end)[0]
if (run_node) {
const index = this.node_list.indexOf(run_node)
let current_up_node = undefined
if (index > 0) {
current_up_node = this.get_current_up_node(run_node)
}
let answer_text_list_index = 0
if (
current_up_node == undefined ||
run_node.view_type == 'single_view' ||
current_up_node.view_type == 'single_view'
) {
const none_index = this.findIndex(
this.chat.answer_text_list,
(item) => item.content == '',
'index'
)
if (none_index > -1) {
answer_text_list_index = none_index
} else {
answer_text_list_index = this.chat.answer_text_list.length
}
} else {
const none_index = this.findIndex(
this.chat.answer_text_list,
(item) => item.content === '',
'index'
)
if (none_index > -1) {
answer_text_list_index = none_index
} else {
answer_text_list_index = this.chat.answer_text_list.length - 1
}
}
this.write_node_info = {
current_node: run_node,
divider_content: ['\n\n'],
current_up_node: current_up_node,
answer_text_list_index: answer_text_list_index
}
return this.write_node_info
}
return undefined
}
findIndex<T>(array: Array<T>, find: (item: T) => boolean, type: 'last' | 'index') {
let set_index = -1
for (let index = 0; index < array.length; index++) {
const element = array[index]
if (find(element)) {
set_index = index
if (type == 'index') {
break
}
}
}
return set_index
}
closeInterval() {
this.chat.write_ed = true
this.write_ed = true
if (this.loading) {
this.loading.value = false
}
if (this.id) {
clearInterval(this.id)
}
const last_index = this.findIndex(
this.chat.answer_text_list,
(item) => item.content == '',
'last'
)
if (last_index > 0) {
this.chat.answer_text_list.splice(last_index, 1)
}
}
write() {
this.chat.is_stop = false
this.is_stop = false
this.is_close = false
this.write_ed = false
this.chat.write_ed = false
if (this.loading) {
this.loading.value = true
}
this.id = setInterval(() => {
const node_info = this.get_run_node()
if (node_info == undefined) {
if (this.is_close) {
this.closeInterval()
}
return
}
const { current_node, answer_text_list_index, divider_content } = node_info
if (current_node.buffer.length > 20) {
const context = current_node.is_end
? current_node.buffer.splice(0)
: current_node.buffer.splice(
0,
current_node.is_end ? undefined : current_node.buffer.length - 20
)
this.append_answer(
(divider_content ? divider_content.splice(0).join('') : '') + context.join(''),
answer_text_list_index,
current_node.chat_record_id,
current_node.runtime_node_id,
current_node.child_node
)
} else if (this.is_close) {
while (true) {
const node_info = this.get_run_node()
if (node_info == undefined) {
break
}
this.append_answer(
(node_info.divider_content ? node_info.divider_content.splice(0).join('') : '') +
node_info.current_node.buffer.splice(0).join(''),
node_info.answer_text_list_index,
node_info.current_node.chat_record_id,
node_info.current_node.runtime_node_id,
node_info.current_node.child_node
)
if (node_info.current_node.buffer.length == 0) {
node_info.current_node.is_end = true
}
}
this.closeInterval()
} else {
const s = current_node.buffer.shift()
if (s !== undefined) {
this.append_answer(
(divider_content ? divider_content.splice(0).join('') : '') + s,
answer_text_list_index,
current_node.chat_record_id,
current_node.runtime_node_id,
current_node.child_node
)
}
}
}, this.ms)
}
stop() {
clearInterval(this.id)
this.is_stop = true
this.chat.is_stop = true
if (this.loading) {
this.loading.value = false
}
}
close() {
this.is_close = true
}
open() {
this.is_close = false
this.is_stop = false
}
appendChunk(chunk: Chunk) {
let n = this.node_list.find((item) => item.real_node_id == chunk.real_node_id)
if (n) {
n.buffer.push(...chunk.content)
n.content += chunk.content
} else {
n = {
buffer: [...chunk.content],
content: chunk.content,
real_node_id: chunk.real_node_id,
node_id: chunk.node_id,
chat_record_id: chunk.chat_record_id,
up_node_id: chunk.up_node_id,
runtime_node_id: chunk.runtime_node_id,
child_node: chunk.child_node,
node_type: chunk.node_type,
index: this.node_list.length,
view_type: chunk.view_type,
is_end: false
}
this.node_list.push(n)
}
if (chunk.node_is_end) {
n['is_end'] = true
}
}
append(answer_text_block: string) {
let set_index = this.findIndex(
this.chat.answer_text_list,
(item) => item.content == '',
'index'
)
this.chat.answer_text_list[set_index] = { content: answer_text_block }
}
}
export class ChatManagement {
static chatMessageContainer: Dict<ChatRecordManage> = {}
static addChatRecord(chat: chatType, ms: number, loading?: Ref<boolean>) {
this.chatMessageContainer[chat.id] = new ChatRecordManage(chat, ms, loading)
}
static appendChunk(chatRecordId: string, chunk: Chunk) {
const chatRecord = this.chatMessageContainer[chatRecordId]
if (chatRecord) {
chatRecord.appendChunk(chunk)
}
}
static append(chatRecordId: string, content: string) {
const chatRecord = this.chatMessageContainer[chatRecordId]
if (chatRecord) {
chatRecord.append(content)
}
}
static updateStatus(chatRecordId: string, code: number) {
const chatRecord = this.chatMessageContainer[chatRecordId]
if (chatRecord) {
chatRecord.chat.status = code
}
}
/**
*
* @param chatRecordId id
*/
static write(chatRecordId: string) {
const chatRecord = this.chatMessageContainer[chatRecordId]
if (chatRecord) {
chatRecord.write()
}
}
/**
*
* @param chatRecordId id
* @returns boolean
*/
static close(chatRecordId: string) {
const chatRecord = this.chatMessageContainer[chatRecordId]
if (chatRecord) {
chatRecord.close()
}
}
/**
*
* @param chatRecordId id
* @returns boolean
*/
static stop(chatRecordId: string) {
const chatRecord = this.chatMessageContainer[chatRecordId]
if (chatRecord) {
chatRecord.stop()
}
}
/**
*
* @param chatRecordId id
* @returns boolean
*/
static isClose(chatRecordId: string) {
const chatRecord = this.chatMessageContainer[chatRecordId]
return chatRecord ? chatRecord.is_close && chatRecord.write_ed : false
}
/**
*
* @param chatRecordId id
* @returns
*/
static isStop(chatRecordId: string) {
const chatRecord = this.chatMessageContainer[chatRecordId]
return chatRecord ? chatRecord.is_stop : false
}
/**
* close掉的和stop的数据
*/
static clean() {
for (const key in Object.keys(this.chatMessageContainer)) {
if (this.chatMessageContainer[key].is_close) {
delete this.chatMessageContainer[key]
}
}
}
}
export type { ApplicationFormType, chatType }

14
src/api/type/common.ts

@ -0,0 +1,14 @@
interface KeyValue<K, V> {
key: K
value: V
}
interface Dict<V> {
[propName: string]: V
}
interface pageRequest {
current_page: number
page_size: number
}
export type { KeyValue, Dict, pageRequest }

9
src/api/type/dataset.ts

@ -0,0 +1,9 @@
interface datasetData {
name: String
desc: String
documents?: Array<any>
type?: String
embedding_mode_id?: String
}
export type { datasetData }

11
src/api/type/function-lib.ts

@ -0,0 +1,11 @@
interface functionLibData {
id?: String
name?: String
desc?: String
code?: String
permission_type?: 'PRIVATE' | 'PUBLIC'
input_field_list?: Array<any>
is_active?: Boolean
}
export type { functionLibData }

148
src/api/type/model.ts

@ -0,0 +1,148 @@
import { store } from '@/stores'
import type { Dict } from './common'
interface modelRequest {
name: string
model_type: string
model_name: string
}
interface Provider {
/**
*
*/
provider: string
/**
*
*/
name: string
/**
* icon
*/
icon: string
}
interface ListModelRequest {
/**
*
*/
name?: string
/**
*
*/
model_type?: string
/**
*
*/
model_name?: string
/**
*
*/
provider?: string
}
interface Model {
/**
* id
*/
id: string
/**
*
*/
name: string
/**
*
*/
model_type: string
user_id: string
username: string
permission_type: 'PUBLIC' | 'PRIVATE'
/**
*
*/
model_name: string
/**
*
*/
credential: any
/**
*
*/
provider: string
/**
*
*/
status: 'SUCCESS' | 'DOWNLOAD' | 'ERROR' | 'PAUSE_DOWNLOAD'
/**
*
*/
meta: Dict<any>
/**
*
*/
model_params_form: Dict<any>[]
}
interface CreateModelRequest {
/**
*
*/
name: string
/**
*
*/
model_type: string
/**
*
*/
model_name: string
/**
*
*/
credential: any
/**
*
*/
provider: string
}
interface EditModelRequest {
/**
*
*/
name: string
/**
*
*/
model_type: string
/**
*
*/
model_name: string
/**
*
*/
credential: any
}
interface BaseModel {
/**
*
*/
name: string
/**
*
*/
desc: string
/**
*
*/
model_type: string
}
export type {
modelRequest,
Provider,
ListModelRequest,
Model,
BaseModel,
CreateModelRequest,
EditModelRequest
}

13
src/api/type/team.ts

@ -0,0 +1,13 @@
interface TeamMember {
id: string
username: string
email: string
team_id: string
/**
* typemanage
*/
type: string
user_id: string
}
export type { TeamMember }

120
src/api/type/user.ts

@ -0,0 +1,120 @@
interface User {
/**
* id
*/
id: string
/**
*
*/
username: string
/**
*
*/
email: string
/**
*
*/
role: string
/**
*
*/
permissions: Array<string>
/**
*
*/
is_edit_password?: boolean
IS_XPACK?: boolean
XPACK_LICENSE_IS_VALID?: boolean
}
interface LoginRequest {
/**
*
*/
username: string
/**
*
*/
password: string
}
interface RegisterRequest {
/**
*
*/
username: string
/**
*
*/
password: string
/**
*
*/
re_password: string
/**
*
*/
email: string
/**
*
*/
code: string
}
interface CheckCodeRequest {
/**
*
*/
email: string
/**
*
*/
code: string
/**
*
*/
type: 'register' | 'reset_password'
}
interface ResetCurrentUserPasswordRequest {
/**
*
*/
code: string
/**
*
*/
password: string
/**
*
*/
re_password: string
}
interface ResetPasswordRequest {
/**
*
*/
email?: string
/**
*
*/
code?: string
/**
*
*/
password: string
/**
*
*/
re_password: string
}
export type {
LoginRequest,
RegisterRequest,
CheckCodeRequest,
ResetPasswordRequest,
User,
ResetCurrentUserPasswordRequest
}

77
src/api/user-manage.ts

@ -0,0 +1,77 @@
import { Result } from '@/request/Result'
import { get, post, del, put } from '@/request/index'
import type { pageRequest } from '@/api/type/common'
import { type Ref } from 'vue'
const prefix = '/user_manage'
/**
*
* @param
* page {
"current_page": "string",
"page_size": "string",
}
* @query
email_or_username: string
*/
const getUserManage: (
page: pageRequest,
email_or_username: string,
loading?: Ref<boolean>
) => Promise<Result<any>> = (page, email_or_username, loading) => {
return get(
`${prefix}/${page.current_page}/${page.page_size}`,
email_or_username ? { email_or_username } : undefined,
loading
)
}
/**
*
* @param user_id,
*/
const delUserManage: (user_id: string, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
user_id,
loading
) => {
return del(`${prefix}/${user_id}`, undefined, {}, loading)
}
/**
*
*/
const postUserManage: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
data,
loading
) => {
return post(`${prefix}`, data, undefined, loading)
}
/**
*
*/
const putUserManage: (
user_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (user_id, data, loading) => {
return put(`${prefix}/${user_id}`, data, undefined, loading)
}
/**
*
*/
const putUserManagePassword: (
user_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (user_id, data, loading) => {
return put(`${prefix}/${user_id}/re_password`, data, undefined, loading)
}
export default {
getUserManage,
delUserManage,
postUserManage,
putUserManage,
putUserManagePassword
}

196
src/api/user.ts

@ -0,0 +1,196 @@
import { Result } from '@/request/Result'
import { get, post } from '@/request/index'
import type {
LoginRequest,
RegisterRequest,
CheckCodeRequest,
ResetPasswordRequest,
User,
ResetCurrentUserPasswordRequest
} from '@/api/type/user'
import type { Ref } from 'vue'
/**
*
* @param auth_type
* @param request
* @param loading
* @returns
*/
const login: (
auth_type: string,
request: LoginRequest,
loading?: Ref<boolean>
) => Promise<Result<string>> = (auth_type, request, loading) => {
if (auth_type !== '') {
return post(`/${auth_type}/login`, request, undefined, loading)
}
return post('/user/login', request, undefined, loading)
}
/**
*
* @param loading
* @returns
*/
const logout: (loading?: Ref<boolean>) => Promise<Result<boolean>> = (loading) => {
return post('/user/logout', undefined, undefined, loading)
}
/**
*
* @param request
* @param loading
* @returns
*/
const register: (request: RegisterRequest, loading?: Ref<boolean>) => Promise<Result<string>> = (
request,
loading
) => {
return post('/user/register', request, undefined, loading)
}
/**
*
* @param request
* @param loading
* @returns
*/
const checkCode: (request: CheckCodeRequest, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
request,
loading
) => {
return post('/user/check_code', request, undefined, loading)
}
/**
*
* @param email
* @param loading
* @returns
*/
const sendEmit: (
email: string,
type: 'register' | 'reset_password',
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (email, type, loading) => {
return post('/user/send_email', { email, type }, undefined, loading)
}
/**
*
* @param loading
* @returns
*/
const sendEmailToCurrent: (loading?: Ref<boolean>) => Promise<Result<boolean>> = (loading) => {
return post('/user/current/send_email', undefined, undefined, loading)
}
/**
*
* @param request
* @param loading
* @returns
*/
const resetCurrentUserPassword: (
request: ResetCurrentUserPasswordRequest,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (request, loading) => {
return post('/user/current/reset_password', request, undefined, loading)
}
/**
*
* @param loading
* @returns
*/
const profile: (loading?: Ref<boolean>) => Promise<Result<User>> = (loading) => {
return get('/user', undefined, loading)
}
/**
*
* @param request
* @param loading
* @returns
*/
const resetPassword: (
request: ResetPasswordRequest,
loading?: Ref<boolean>
) => Promise<Result<boolean>> = (request, loading) => {
return post('/user/re_password', request, undefined, loading)
}
/**
*
* @param loading
* email_or_username
*/
const getUserList: (email_or_username: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
email_or_username,
loading
) => {
return get('/user/list', { email_or_username }, loading)
}
/**
* profile
*/
const getProfile: (loading?: Ref<boolean>) => Promise<Result<any>> = (loading) => {
return get('/profile', undefined, loading)
}
/**
*
* @param valid_type 校验类型: application|dataset|user
* @param valid_count 校验数量: 5 | 50 | 2
*/
const getValid: (
valid_type: string,
valid_count: number,
loading?: Ref<boolean>
) => Promise<Result<any>> = (valid_type, valid_count, loading) => {
return get(`/valid/${valid_type}/${valid_count}`, undefined, loading)
}
/**
*
*/
const getAuthType: (loading?: Ref<boolean>) => Promise<Result<any>> = (loading) => {
return get('auth/types', undefined, loading)
}
/**
*
*/
const getQrType: (loading?: Ref<boolean>) => Promise<Result<any>> = (loading) => {
return get('qr_type', undefined, loading)
}
const getDingCallback: (code: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
code,
loading
) => {
return get('dingtalk', { code }, loading)
}
const getWecomCallback: (code: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
code,
loading
) => {
return get('wecom', { code }, loading)
}
export default {
login,
register,
sendEmit,
checkCode,
profile,
resetPassword,
sendEmailToCurrent,
resetCurrentUserPassword,
logout,
getUserList,
getProfile,
getValid,
getAuthType,
getDingCallback,
getQrType,
getWecomCallback
}

BIN
src/assets/404.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 KiB

BIN
src/assets/assets.zip

Binary file not shown.

7
src/assets/csv-icon.svg

@ -0,0 +1,7 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 2.5C4 1.94772 4.44772 1.5 5 1.5H14.7929C14.9255 1.5 15.0527 1.55268 15.1464 1.64645L19.8536 6.35355C19.9473 6.44732 20 6.5745 20 6.70711V21.5C20 22.0523 19.5523 22.5 19 22.5H5C4.44772 22.5 4 22.0523 4 21.5V2.5Z" fill="#34C724"/>
<path d="M9.27052 14.1558H10.1825C10.1545 13.9078 10.0865 13.6878 9.97852 13.4958C9.87052 13.3038 9.73252 13.1438 9.56452 13.0158C9.40052 12.8838 9.21252 12.7838 9.00052 12.7158C8.79252 12.6478 8.57052 12.6138 8.33452 12.6138C8.00652 12.6138 7.71052 12.6718 7.44652 12.7878C7.18652 12.9038 6.96652 13.0638 6.78652 13.2678C6.60652 13.4718 6.46852 13.7118 6.37252 13.9878C6.27652 14.2598 6.22852 14.5558 6.22852 14.8758C6.22852 15.1878 6.27652 15.4798 6.37252 15.7518C6.46852 16.0198 6.60652 16.2538 6.78652 16.4538C6.96652 16.6538 7.18652 16.8118 7.44652 16.9278C7.71052 17.0398 8.00652 17.0958 8.33452 17.0958C8.59852 17.0958 8.84052 17.0558 9.06052 16.9758C9.28052 16.8958 9.47252 16.7798 9.63652 16.6278C9.80052 16.4758 9.93252 16.2918 10.0325 16.0758C10.1325 15.8598 10.1945 15.6178 10.2185 15.3498H9.30652C9.27052 15.6378 9.17052 15.8698 9.00652 16.0458C8.84652 16.2218 8.62252 16.3098 8.33452 16.3098C8.12252 16.3098 7.94252 16.2698 7.79452 16.1898C7.64652 16.1058 7.52652 15.9958 7.43452 15.8598C7.34252 15.7238 7.27452 15.5718 7.23052 15.4038C7.19052 15.2318 7.17052 15.0558 7.17052 14.8758C7.17052 14.6878 7.19052 14.5058 7.23052 14.3298C7.27452 14.1538 7.34252 13.9978 7.43452 13.8618C7.52652 13.7218 7.64652 13.6118 7.79452 13.5318C7.94252 13.4478 8.12252 13.4058 8.33452 13.4058C8.45052 13.4058 8.56052 13.4258 8.66452 13.4658C8.77252 13.5018 8.86852 13.5538 8.95252 13.6218C9.03652 13.6898 9.10652 13.7698 9.16252 13.8618C9.21852 13.9498 9.25452 14.0478 9.27052 14.1558Z" fill="white"/>
<path d="M11.5038 15.5778H10.5918C10.5878 15.8418 10.6358 16.0698 10.7358 16.2618C10.8358 16.4538 10.9698 16.6118 11.1378 16.7358C11.3098 16.8598 11.5058 16.9498 11.7258 17.0058C11.9498 17.0658 12.1798 17.0958 12.4158 17.0958C12.7078 17.0958 12.9638 17.0618 13.1838 16.9938C13.4078 16.9258 13.5938 16.8318 13.7418 16.7118C13.8938 16.5878 14.0078 16.4418 14.0838 16.2738C14.1598 16.1058 14.1978 15.9238 14.1978 15.7278C14.1978 15.4878 14.1458 15.2918 14.0418 15.1398C13.9418 14.9838 13.8218 14.8598 13.6818 14.7678C13.5418 14.6758 13.3998 14.6098 13.2558 14.5698C13.1158 14.5258 13.0058 14.4958 12.9258 14.4798C12.6578 14.4118 12.4398 14.3558 12.2718 14.3118C12.1078 14.2678 11.9778 14.2238 11.8818 14.1798C11.7898 14.1358 11.7278 14.0878 11.6958 14.0358C11.6638 13.9838 11.6478 13.9158 11.6478 13.8318C11.6478 13.7398 11.6678 13.6638 11.7078 13.6038C11.7478 13.5438 11.7978 13.4938 11.8578 13.4538C11.9218 13.4138 11.9918 13.3858 12.0678 13.3698C12.1438 13.3538 12.2198 13.3458 12.2958 13.3458C12.4118 13.3458 12.5178 13.3558 12.6138 13.3758C12.7138 13.3958 12.8018 13.4298 12.8778 13.4778C12.9538 13.5258 13.0138 13.5918 13.0578 13.6758C13.1058 13.7598 13.1338 13.8658 13.1418 13.9938H14.0538C14.0538 13.7458 14.0058 13.5358 13.9098 13.3638C13.8178 13.1878 13.6918 13.0438 13.5318 12.9318C13.3718 12.8198 13.1878 12.7398 12.9798 12.6918C12.7758 12.6398 12.5618 12.6138 12.3378 12.6138C12.1458 12.6138 11.9538 12.6398 11.7618 12.6918C11.5698 12.7438 11.3978 12.8238 11.2458 12.9318C11.0938 13.0398 10.9698 13.1758 10.8738 13.3398C10.7818 13.4998 10.7358 13.6898 10.7358 13.9098C10.7358 14.1058 10.7718 14.2738 10.8438 14.4138C10.9198 14.5498 11.0178 14.6638 11.1378 14.7558C11.2578 14.8478 11.3938 14.9238 11.5458 14.9838C11.6978 15.0398 11.8538 15.0878 12.0138 15.1278C12.1698 15.1718 12.3238 15.2118 12.4758 15.2478C12.6278 15.2838 12.7638 15.3258 12.8838 15.3738C13.0038 15.4218 13.0998 15.4818 13.1718 15.5538C13.2478 15.6258 13.2858 15.7198 13.2858 15.8358C13.2858 15.9438 13.2578 16.0338 13.2018 16.1058C13.1458 16.1738 13.0758 16.2278 12.9918 16.2678C12.9078 16.3078 12.8178 16.3358 12.7218 16.3518C12.6258 16.3638 12.5358 16.3698 12.4518 16.3698C12.3278 16.3698 12.2078 16.3558 12.0918 16.3278C11.9758 16.2958 11.8738 16.2498 11.7858 16.1898C11.7018 16.1258 11.6338 16.0438 11.5818 15.9438C11.5298 15.8438 11.5038 15.7218 11.5038 15.5778Z" fill="white"/>
<path d="M16.7503 16.9998L18.1723 12.7158H17.2003L16.2343 15.7278H16.2223L15.2683 12.7158H14.3023L15.6883 16.9998H16.7503Z" fill="white"/>
<path d="M15 1.54492C15.054 1.56949 15.1037 1.6037 15.1464 1.64646L19.8536 6.35357C19.8963 6.39632 19.9305 6.44602 19.9551 6.50001H16C15.4477 6.50001 15 6.0523 15 5.50001V1.54492Z" fill="#2CA91F"/>
</svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
src/assets/display-bg1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
src/assets/display-bg2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
src/assets/display-bg3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 B

5
src/assets/doc-icon.svg

@ -0,0 +1,5 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4 2.5C4 1.94772 4.44772 1.5 5 1.5H14.7929C14.9255 1.5 15.0527 1.55268 15.1464 1.64645L19.8536 6.35355C19.9473 6.44732 20 6.5745 20 6.70711V21.5C20 22.0523 19.5523 22.5 19 22.5H5C4.44772 22.5 4 22.0523 4 21.5V2.5Z" fill="#3370FF"/>
<path d="M15 1.54492C15.054 1.56949 15.1037 1.6037 15.1464 1.64646L19.8536 6.35357C19.8963 6.39632 19.9305 6.44602 19.9551 6.50001H16C15.4477 6.50001 15 6.0523 15 5.50001V1.54492Z" fill="#2B5FD9"/>
<path d="M15.1218 17.9996L17.4138 9.43164H16.2738L14.5338 16.5596H14.5098L12.6138 9.43164H11.3778L9.45784 16.5596H9.43384L7.75384 9.43164H6.58984L8.78584 17.9996H9.97384L11.9538 10.7996H11.9778L13.9338 17.9996H15.1218Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 777 B

5
src/assets/docx-icon.svg

@ -0,0 +1,5 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4 2.5C4 1.94772 4.44772 1.5 5 1.5H14.7929C14.9255 1.5 15.0527 1.55268 15.1464 1.64645L19.8536 6.35355C19.9473 6.44732 20 6.5745 20 6.70711V21.5C20 22.0523 19.5523 22.5 19 22.5H5C4.44772 22.5 4 22.0523 4 21.5V2.5Z" fill="#3370FF"/>
<path d="M15 1.54492C15.054 1.56949 15.1037 1.6037 15.1464 1.64646L19.8536 6.35357C19.8963 6.39632 19.9305 6.44602 19.9551 6.50001H16C15.4477 6.50001 15 6.0523 15 5.50001V1.54492Z" fill="#2B5FD9"/>
<path d="M15.1218 17.9996L17.4138 9.43164H16.2738L14.5338 16.5596H14.5098L12.6138 9.43164H11.3778L9.45784 16.5596H9.43384L7.75384 9.43164H6.58984L8.78584 17.9996H9.97384L11.9538 10.7996H11.9778L13.9338 17.9996H15.1218Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 777 B

BIN
src/assets/hit-test-empty.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

6
src/assets/html-icon.svg

@ -0,0 +1,6 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.00024 2.5C4.00024 1.94772 4.44796 1.5 5.00024 1.5H14.7931C14.9257 1.5 15.0529 1.55268 15.1467 1.64645L19.8538 6.35355C19.9476 6.44732 20.0002 6.5745 20.0002 6.70711V21.5C20.0002 22.0523 19.5525 22.5 19.0002 22.5H5.00024C4.44796 22.5 4.00024 22.0523 4.00024 21.5V2.5Z" fill="#D136D1"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.00024 2.5C4.00024 1.94772 4.44796 1.5 5.00024 1.5H14.7931C14.9257 1.5 15.0529 1.55268 15.1467 1.64645L19.8538 6.35355C19.9476 6.44732 20.0002 6.5745 20.0002 6.70711V21.5C20.0002 22.0523 19.5525 22.5 19.0002 22.5H5.00024C4.44796 22.5 4.00024 22.0523 4.00024 21.5V2.5Z" fill="#3370FF"/>
<path d="M10.2966 11.4764L7.76958 14.1363L10.2966 16.7961C10.3873 16.8916 10.3857 17.0447 10.293 17.1381L10.292 17.1391L9.95252 17.4774C9.8597 17.5698 9.7118 17.5677 9.62149 17.4727L6.61239 14.3054C6.52308 14.2114 6.52308 14.0611 6.61239 13.9671L9.62149 10.7999C9.7118 10.7048 9.8597 10.7027 9.95252 10.7952L10.292 11.1335C10.3852 11.2263 10.3877 11.3794 10.2976 11.4754L10.2966 11.4764ZM16.3178 14.1363L13.9712 11.4764C13.887 11.381 13.8885 11.2278 13.9746 11.1344L13.9755 11.1335L14.2908 10.7952C14.3769 10.7027 14.5143 10.7048 14.5981 10.7999L17.3923 13.9671C17.4752 14.0611 17.4752 14.2114 17.3923 14.3054L14.5981 17.4727C14.5143 17.5677 14.3769 17.5698 14.2908 17.4774L13.9755 17.1391C13.8889 17.0462 13.8866 16.8931 13.9704 16.7971L13.9712 16.7961L16.3178 14.1363ZM12.6285 9.09234L13.1203 9.14509C13.2546 9.15949 13.3509 9.27213 13.3353 9.39669L12.1614 18.7083C12.1457 18.8327 12.0244 18.9219 11.8902 18.9075L11.3984 18.8547C11.2642 18.8403 11.1679 18.7277 11.1834 18.6031L12.3574 9.2915C12.373 9.16708 12.4944 9.07796 12.6285 9.09234Z" fill="white"/>
<path d="M15 1.54492C15.054 1.56949 15.1037 1.6037 15.1464 1.64646L19.8536 6.35357C19.8963 6.39632 19.9305 6.44602 19.9551 6.50001H16C15.4477 6.50001 15 6.0523 15 5.50001V1.54492Z" fill="#2B5FD9"/>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

6
src/assets/icon_and.svg

@ -0,0 +1,6 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.6667 3.33329H3.33335V16.6666H16.6667V3.33329ZM3.33335 1.66663C2.41288 1.66663 1.66669 2.41282 1.66669 3.33329V16.6666C1.66669 17.5871 2.41288 18.3333 3.33335 18.3333H16.6667C17.5872 18.3333 18.3334 17.5871 18.3334 16.6666V3.33329C18.3334 2.41282 17.5872 1.66663 16.6667 1.66663H3.33335Z" fill="#646A73"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.33 5.83667H15.2233V13.95H13.33V5.83667Z" fill="#646A73"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.83 5.83667H12.7233V13.95H10.83V5.83667Z" fill="#646A73"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.51665 13.7165V13.95H10.33V10.2333C10.33 9.53587 10.1523 8.93943 9.747 8.50803L9.7458 8.50675C9.27726 8.01218 8.58554 7.80664 7.76332 7.80664C7.08671 7.80664 6.47894 7.92104 6.00606 8.21772C5.45355 8.54628 5.11381 9.07452 4.98446 9.733L4.89493 10.1888L6.10828 10.2928C5.95695 10.3597 5.8157 10.4386 5.68578 10.5309C5.1067 10.9233 4.81665 11.5057 4.81665 12.2133C4.81665 12.7602 5.02656 13.2281 5.45194 13.5796C5.84831 13.9324 6.37585 14.09 6.98332 14.09C7.49851 14.09 7.95994 13.9889 8.36073 13.8003L8.36966 13.796C8.41982 13.7709 8.46882 13.7444 8.51665 13.7165ZM6.83361 10.0734C7.10234 10.0223 7.38998 9.99474 7.69236 9.98678L8.43243 9.96764C8.40662 9.80751 8.3491 9.71569 8.2882 9.65948C8.19958 9.57767 8.027 9.49997 7.69332 9.49997C7.40772 9.49997 7.22064 9.55283 7.10769 9.6206L7.10328 9.62324C6.96993 9.70103 6.88847 9.80826 6.85134 9.98773L6.83361 10.0734ZM8.43782 11.5718L7.78478 11.5898L7.78191 11.5899C7.33203 11.5992 7.0658 11.6834 6.9222 11.7831C6.8054 11.8642 6.73998 11.9741 6.73998 12.1733C6.73998 12.2369 6.75413 12.277 6.82642 12.3323L6.8313 12.3361L6.83606 12.3399C6.90443 12.3955 7.02395 12.4466 7.22332 12.4466C7.57815 12.4466 7.86218 12.3394 8.10462 12.1349C8.30129 11.9689 8.40794 11.7831 8.43782 11.5718Z" fill="#646A73"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

3
src/assets/icon_condition.svg

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.2404 11.9757C14.2022 11.8917 14.1406 11.8206 14.0629 11.7709C13.9853 11.7213 13.8949 11.6951 13.8027 11.6957H12.6518V9.16918C12.6518 7.44347 11.069 6.00118 8.96725 5.65376V1.63242C8.96725 1.37615 8.86544 1.13037 8.68423 0.949156C8.50302 0.767942 8.25724 0.666138 8.00096 0.666138C7.74469 0.666138 7.49891 0.767942 7.3177 0.949156C7.13648 1.13037 7.03468 1.37615 7.03468 1.63242V5.65604C4.93411 6.00233 3.34896 7.44576 3.34896 9.17033V11.6945H2.19811C2.07221 11.6959 1.95172 11.746 1.86184 11.8341C1.77197 11.9223 1.71965 12.0418 1.71582 12.1677V12.1837C1.71582 12.2797 1.74782 12.3779 1.80953 12.4614L3.76496 15.1345C3.80786 15.1932 3.86352 15.2413 3.92775 15.2754C3.99197 15.3094 4.06308 15.3284 4.13572 15.3309C4.20836 15.3334 4.28062 15.3195 4.34705 15.29C4.41349 15.2605 4.47237 15.2163 4.51925 15.1608L6.80153 12.4899C6.86177 12.42 6.9005 12.3341 6.91307 12.2427C6.92564 12.1512 6.91151 12.0581 6.87239 11.9745C6.83423 11.8906 6.7726 11.8195 6.69493 11.7698C6.61726 11.7201 6.52688 11.694 6.43468 11.6945H5.28382V9.16918C5.28382 8.3829 6.39925 7.50747 8.00039 7.50747C9.60153 7.50747 10.7192 8.3829 10.7192 9.16918V11.6922H9.56611C9.47671 11.6918 9.38902 11.7166 9.31303 11.7637C9.23705 11.8108 9.17583 11.8783 9.13639 11.9585C9.10152 12.026 9.08349 12.1009 9.08382 12.1768C9.08444 12.2795 9.11721 12.3794 9.17754 12.4625L11.133 15.1368C11.1759 15.1955 11.2315 15.2436 11.2957 15.2777C11.36 15.3117 11.4311 15.3307 11.5037 15.3332C11.5764 15.3357 11.6486 15.3217 11.7151 15.2923C11.7815 15.2628 11.8404 15.2186 11.8872 15.1631L14.1684 12.4888C14.242 12.404 14.2833 12.2959 14.285 12.1837V12.1688C14.2839 12.1015 14.2683 12.0352 14.2392 11.9745L14.2404 11.9757Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

4
src/assets/icon_docs.svg

@ -0,0 +1,4 @@
<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.77756 1.66699C4.28664 1.66699 3.88867 2.06496 3.88867 2.55588V19.4448C3.88867 19.9357 4.28664 20.3337 4.77756 20.3337H17.222C17.7129 20.3337 18.1109 19.9357 18.1109 19.4448V6.3069C18.1109 6.19036 18.0651 6.07847 17.9834 5.99536L13.8597 1.79989C13.7761 1.71488 13.6619 1.66699 13.5427 1.66699H4.77756ZM7.04915 9.02062C7.04915 8.77516 7.24814 8.57617 7.4936 8.57617H14.5059C14.7514 8.57617 14.9504 8.77516 14.9504 9.02062V9.74789C14.9504 9.99335 14.7514 10.1923 14.5059 10.1923H7.4936C7.24814 10.1923 7.04915 9.99335 7.04915 9.74789V9.02062ZM7.04915 13.061C7.04915 12.8156 7.24814 12.6166 7.4936 12.6166H10.5553C10.8008 12.6166 10.9998 12.8156 10.9998 13.061V13.7883C10.9998 14.0338 10.8008 14.2327 10.5553 14.2327H7.4936C7.24814 14.2327 7.04915 14.0338 7.04915 13.7883V13.061Z" fill="white"/>
<path opacity="0.5" d="M13.6665 1.68457C13.7391 1.70561 13.8058 1.74502 13.8597 1.7999L17.9835 5.99537C18.0172 6.02971 18.0449 6.06897 18.0657 6.11145H14.6755C14.1183 6.11145 13.6665 5.6597 13.6665 5.10244V1.68457Z" fill="#3370FF"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

12
src/assets/icon_document.svg

@ -0,0 +1,12 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_332_3845)">
<path opacity="0.5" d="M11.5903 10.7326C11.5903 8.64041 13.2864 6.9444 15.3785 6.9444C17.4706 6.9444 19.1667 8.64042 19.1667 10.7326V15.3784C19.1667 17.4705 17.4706 19.1666 15.3785 19.1666C13.2864 19.1666 11.5903 17.4705 11.5903 15.3784V10.7326Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.6212 0.833374H14.6211V2.36113H13.1059V0.833374H2.83347C1.72892 0.833374 0.833495 1.72878 0.833474 2.83333L0.833313 11.1665C0.833228 15.5848 4.41497 19.1666 8.83331 19.1666H15.1666C15.5076 19.1666 15.8387 19.1239 16.1547 19.0436C15.2624 18.7368 14.6212 17.8902 14.6212 16.8937V0.833374ZM4.51881 6.35876C4.51881 5.89468 4.89501 5.51848 5.35909 5.51848H10.3457C10.8098 5.51848 11.186 5.89468 11.186 6.35876C11.186 6.82283 10.8098 7.19904 10.3457 7.19904H5.35909C4.89501 7.19904 4.51881 6.82283 4.51881 6.35876ZM5.35909 9.4398C4.89501 9.4398 4.51881 9.816 4.51881 10.2801C4.51881 10.7441 4.89501 11.1204 5.35909 11.1204H10.3457C10.8098 11.1204 11.186 10.7441 11.186 10.2801C11.186 9.816 10.8098 9.4398 10.3457 9.4398H5.35909Z" fill="white"/>
<ellipse cx="13.1058" cy="2.36108" rx="1.51527" ry="1.52776" fill="white"/>
</g>
<defs>
<clipPath id="clip0_332_3845">
<rect width="20" height="20" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

5
src/assets/icon_file-audio.svg

@ -0,0 +1,5 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.3335 3.33333C5.3335 2.59695 5.93045 2 6.66683 2H19.724C19.9008 2 20.0704 2.07024 20.1954 2.19526L26.4716 8.47141C26.5966 8.59643 26.6668 8.766 26.6668 8.94281V28.6667C26.6668 29.403 26.0699 30 25.3335 30H6.66683C5.93045 30 5.3335 29.403 5.3335 28.6667V3.33333Z" fill="#3370FF"/>
<path d="M20 2.05994C20.072 2.0927 20.1383 2.13831 20.1953 2.19532L26.4714 8.47146C26.5284 8.52847 26.574 8.59473 26.6068 8.66672H21.3333C20.597 8.66672 20 8.06977 20 7.33339V2.05994Z" fill="#2B5FD9"/>
<path d="M19.976 12.8794C20.254 12.9447 20.4595 13.1796 20.4872 13.4638L20.6106 14.7297C20.6546 15.1805 20.2459 15.5429 19.8037 15.4455L16.7344 14.7691C16.5577 14.7302 16.3944 14.8747 16.4116 15.0548L17.1297 22.5884C17.1297 22.7046 17.1151 22.7812 17.0891 22.8249C17.0254 24.3752 15.7484 25.6124 14.1825 25.6124C12.5759 25.6124 11.2734 24.31 11.2734 22.7033C11.2734 21.0967 12.5759 19.7942 14.1825 19.7942C14.8467 19.7942 15.4589 20.0168 15.9485 20.3914L15.274 12.6749C15.2345 12.2228 15.6485 11.8642 16.0904 11.9678L19.976 12.8794Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

5
src/assets/icon_file-doc.svg

@ -0,0 +1,5 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.3335 3.33333C5.3335 2.59695 5.93045 2 6.66683 2H19.8146C19.9934 2 20.1647 2.07183 20.29 2.19934L26.4756 8.49255C26.5982 8.61722 26.6668 8.78505 26.6668 8.95987V28.6667C26.6668 29.403 26.0699 30 25.3335 30H6.66683C5.93045 30 5.3335 29.403 5.3335 28.6667V3.33333Z" fill="#3370FF"/>
<path d="M20 2.02637C20.1089 2.05793 20.2089 2.11704 20.2899 2.19936L26.4755 8.49256C26.5261 8.54408 26.5675 8.60297 26.5987 8.66668H21.5135C20.6776 8.66668 20 7.98906 20 7.15317V2.02637Z" fill="#2B5FD9"/>
<path d="M10.7636 13.5757H20.8727C20.9932 13.5757 21.0909 13.6734 21.0909 13.7939V14.8121C21.0909 14.9326 20.9932 15.0303 20.8727 15.0303H10.7636C10.6431 15.0303 10.5454 14.9326 10.5454 14.8121V13.7939C10.5454 13.6734 10.6431 13.5757 10.7636 13.5757ZM10.7636 17.9394H20.8727C20.9932 17.9394 21.0909 18.0371 21.0909 18.1576V19.1757C21.0909 19.2962 20.9932 19.3939 20.8727 19.3939H10.7636C10.6431 19.3939 10.5454 19.2962 10.5454 19.1757V18.1576C10.5454 18.0371 10.6431 17.9394 10.7636 17.9394ZM10.7636 22.303H16.1454C16.2659 22.303 16.3636 22.4007 16.3636 22.5212V23.5394C16.3636 23.6599 16.2659 23.7576 16.1454 23.7576H10.7636C10.6431 23.7576 10.5454 23.6599 10.5454 23.5394V22.5212C10.5454 22.4007 10.6431 22.303 10.7636 22.303Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

4
src/assets/icon_file-folder_colorful.svg

@ -0,0 +1,4 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0.833374 3.33333C0.833374 2.8731 1.20647 2.5 1.66671 2.5H8.65168C8.96732 2.5 9.25587 2.67834 9.39703 2.96066L10 4.16667H18.3334C18.7936 4.16667 19.1667 4.53976 19.1667 5V16.6667C19.1667 17.1269 18.7936 17.5 18.3334 17.5H1.66671C1.20647 17.5 0.833374 17.1269 0.833374 16.6667V3.33333Z" fill="#FFA53D"/>
<path d="M0.833374 5.00002C0.833374 4.53978 1.20647 4.16669 1.66671 4.16669H18.3334C18.7936 4.16669 19.1667 4.53978 19.1667 5.00002V16.6667C19.1667 17.1269 18.7936 17.5 18.3334 17.5H1.66671C1.20647 17.5 0.833374 17.1269 0.833374 16.6667V5.00002Z" fill="#FFC60A"/>
</svg>

After

Width:  |  Height:  |  Size: 679 B

6
src/assets/icon_file-image.svg

@ -0,0 +1,6 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.3335 3.33333C5.3335 2.59695 5.93045 2 6.66683 2H19.724C19.9008 2 20.0704 2.07024 20.1954 2.19526L26.4716 8.47141C26.5966 8.59643 26.6668 8.766 26.6668 8.94281V28.6667C26.6668 29.403 26.0699 30 25.3335 30H6.66683C5.93045 30 5.3335 29.403 5.3335 28.6667V3.33333Z" fill="#14C0FF"/>
<path d="M20 2.05988C20.072 2.09264 20.1383 2.13825 20.1953 2.19526L26.4714 8.4714C26.5284 8.52841 26.574 8.59467 26.6068 8.66666H21.3333C20.597 8.66666 20 8.06971 20 7.33333V2.05988Z" fill="#11A3D9"/>
<path d="M11.3335 16C12.4381 16 13.3335 15.1046 13.3335 14C13.3335 12.8954 12.4381 12 11.3335 12C10.2289 12 9.3335 12.8954 9.3335 14C9.3335 15.1046 10.2289 16 11.3335 16Z" fill="white"/>
<path d="M22.2785 14.9317C22.4218 14.7884 22.6668 14.8899 22.6668 15.0925V24.0645C22.6668 24.1901 22.565 24.2919 22.4394 24.2919H13.4674L13.4587 24.2918H9.56142C9.35877 24.2918 9.25728 24.0468 9.40058 23.9035L14.366 18.938C14.4549 18.8492 14.5989 18.8492 14.6877 18.938L16.48 20.7302L22.2785 14.9317Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

7
src/assets/icon_form.svg

@ -0,0 +1,7 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.05704 15.3334H2.00004C1.82323 15.3334 1.65366 15.2632 1.52864 15.1382C1.40361 15.0131 1.33337 14.8436 1.33337 14.6667V1.33341C1.33337 1.1566 1.40361 0.987035 1.52864 0.862011C1.65366 0.736987 1.82323 0.666748 2.00004 0.666748H12.6667C12.8435 0.666748 13.0131 0.736987 13.1381 0.862011C13.2631 0.987035 13.3334 1.1566 13.3334 1.33341V6.05641C13.3334 6.23316 13.2633 6.4027 13.1384 6.52775L4.52871 15.1381C4.46678 15.2 4.39324 15.2492 4.31231 15.2827C4.23138 15.3162 4.14464 15.3334 4.05704 15.3334ZM4.431 7.90245C4.49352 7.96496 4.5783 8.00008 4.66671 8.00008H8.00004C8.08844 8.00008 8.17323 7.96496 8.23574 7.90245C8.29825 7.83994 8.33337 7.75515 8.33337 7.66675V7.00008C8.33337 6.91167 8.29825 6.82689 8.23574 6.76438C8.17323 6.70187 8.08844 6.66675 8.00004 6.66675H4.66671C4.5783 6.66675 4.49352 6.70187 4.431 6.76438C4.36849 6.82689 4.33337 6.91167 4.33337 7.00008V7.66675C4.33337 7.75515 4.36849 7.83994 4.431 7.90245ZM4.431 4.56912C4.49352 4.63163 4.5783 4.66675 4.66671 4.66675H10.3334C10.3771 4.66675 10.4205 4.65813 10.4609 4.64138C10.5014 4.62462 10.5381 4.60007 10.5691 4.56912C10.6 4.53816 10.6246 4.50142 10.6413 4.46098C10.6581 4.42053 10.6667 4.37719 10.6667 4.33341V3.66675C10.6667 3.62297 10.6581 3.57963 10.6413 3.53919C10.6246 3.49874 10.6 3.462 10.5691 3.43105C10.5381 3.40009 10.5014 3.37554 10.4609 3.35879C10.4205 3.34204 10.3771 3.33341 10.3334 3.33341H4.66671C4.5783 3.33341 4.49352 3.36853 4.431 3.43105C4.36849 3.49356 4.33337 3.57834 4.33337 3.66675V4.33341C4.33337 4.42182 4.36849 4.5066 4.431 4.56912Z" fill="white"/>
<g opacity="0.5">
<path d="M13.565 11.518L11.6847 9.6381L7.55305 13.7961L7.33337 15.5777C7.33337 15.6661 7.36849 15.7509 7.431 15.8134C7.49352 15.8759 7.5783 15.911 7.66671 15.911L9.45064 15.627L13.565 11.518Z" fill="white"/>
<path d="M14.0486 8.20917C13.7886 7.94884 13.387 7.92884 13.151 8.16417L12.1543 9.16417L14.0369 11.0468L15.0346 10.0508L15.0662 10.0168C15.2689 9.7781 15.2396 9.4001 14.9912 9.15144L14.0486 8.20917Z" fill="white"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

12
src/assets/icon_function_outlined.svg

@ -0,0 +1,12 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_6260_56998)">
<path d="M8.45989 5.8569L8.57477 5.86299C8.79559 5.87481 8.96834 6.05752 8.96834 6.27866V6.82427C8.96834 7.07408 8.75005 7.26525 8.50052 7.25364C8.42661 7.2502 8.35257 7.24833 8.27834 7.24833C8.06408 7.24833 7.92822 7.30022 7.84948 7.38496C7.77816 7.4623 7.73167 7.61024 7.73167 7.85333V8.13167H8.55167C8.78179 8.13167 8.96834 8.31821 8.96834 8.54833V9.38881C8.96834 9.61893 8.78179 9.80547 8.55167 9.80547H7.73167V13.9133C7.73167 14.1435 7.54512 14.33 7.31501 14.33H6.32501C6.09489 14.33 5.90834 14.1435 5.90834 13.9133V9.80547H5.13859C4.90847 9.80547 4.72192 9.61893 4.72192 9.38881V8.54833C4.72192 8.31821 4.90847 8.13167 5.13859 8.13167H5.90834V7.74833C5.90834 7.19278 6.08218 6.73149 6.43374 6.37176C6.78941 6.00781 7.32033 5.83333 8.01 5.83333C8.15999 5.83333 8.30995 5.84119 8.45989 5.8569Z" fill="white"/>
<path d="M12.4626 9.47701L11.5695 8.15211C11.492 8.03721 11.3625 7.96833 11.224 7.96833H10.1483C9.81198 7.96833 9.61424 8.34622 9.80596 8.62253L11.3934 10.9103L9.61243 13.5148C9.42332 13.7913 9.62135 14.1667 9.95637 14.1667H11.0006C11.1403 14.1667 11.2708 14.0966 11.3479 13.9801L12.4396 12.3325L13.5313 13.9801C13.6085 14.0966 13.7389 14.1667 13.8786 14.1667H14.9522C15.2886 14.1667 15.4864 13.7886 15.2945 13.5123L13.4629 10.8753L15.044 8.62451C15.238 8.34841 15.0405 7.96833 14.7031 7.96833H13.6913C13.552 7.96833 13.4219 8.03796 13.3446 8.15387L12.4626 9.47701Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.9226 2.74408C18.7663 2.5878 18.5543 2.5 18.3333 2.5H1.66665C1.44563 2.5 1.23367 2.5878 1.07739 2.74408C0.92111 2.90036 0.833313 3.11232 0.833313 3.33333V16.6667C0.833313 16.8877 0.92111 17.0996 1.07739 17.2559C1.23367 17.4122 1.44563 17.5 1.66665 17.5H18.3333C18.5543 17.5 18.7663 17.4122 18.9226 17.2559C19.0788 17.0996 19.1666 16.8877 19.1666 16.6667V3.33333C19.1666 3.11232 19.0788 2.90036 18.9226 2.74408ZM2.49998 4.16667H17.5V15.8333H2.49998V4.16667Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_6260_56998">
<rect width="20" height="20" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

1
src/assets/icon_globe_color.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1718950836622" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="14660" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M366.08 301.269333l-215.552 235.178667L354.133333 771.669333a21.333333 21.333333 0 0 1-0.810666 28.8l-27.904 28.842667a21.333333 21.333333 0 0 1-31.36-0.810667L50.944 550.826667a21.333333 21.333333 0 0 1 0.298667-28.458667L306.773333 243.669333a21.333333 21.333333 0 0 1 31.018667-0.426666l27.904 28.8a21.333333 21.333333 0 0 1 0.426667 29.226666z m513.578667 235.178667l-206.08-235.178667a21.333333 21.333333 0 0 1 0.682666-28.928l27.904-28.8a21.333333 21.333333 0 0 1 31.317334 0.682667l245.674666 277.845333a21.333333 21.333333 0 0 1-0.298666 28.544l-255.402667 278.613334a21.333333 21.333333 0 0 1-31.061333 0.426666l-27.904-28.757333a21.333333 21.333333 0 0 1-0.384-29.269333l215.594666-235.178667z m-324.864-474.88l42.410666 4.906667a21.333333 21.333333 0 0 1 18.730667 23.637333L514.133333 965.12a21.333333 21.333333 0 0 1-23.637333 18.730667l-42.368-4.949334a21.333333 21.333333 0 0 1-18.773333-23.637333L531.2 80.213333a21.333333 21.333333 0 0 1 23.68-18.730666z" p-id="14661" fill="#FF8800"></path></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

5
src/assets/icon_hi.svg

@ -0,0 +1,5 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.78395 12.7399C8.87529 12.6625 8.93678 12.5557 8.9578 12.4378L10.4173 3.95194C10.4294 3.87835 10.4253 3.803 10.4054 3.73113C10.3855 3.65926 10.3502 3.59258 10.3019 3.53572C10.2536 3.47887 10.1936 3.43318 10.1259 3.40185C10.0582 3.37051 9.98452 3.35427 9.90994 3.35425H8.04041C7.92032 3.35426 7.80413 3.39687 7.7125 3.4745C7.62088 3.55212 7.55976 3.65974 7.54002 3.77819L7.01877 6.78751H4.5168L5.01025 3.95194C5.02234 3.87835 5.01828 3.803 4.99836 3.73113C4.97843 3.65926 4.94311 3.59258 4.89485 3.53572C4.84658 3.47887 4.78653 3.43318 4.71885 3.40185C4.65117 3.37051 4.57748 3.35427 4.5029 3.35425H2.63337C2.51366 3.35562 2.39818 3.39872 2.30683 3.47611C2.21549 3.5535 2.154 3.66033 2.13298 3.77819L0.673494 12.264C0.6614 12.3376 0.665456 12.413 0.685383 12.4849C0.70531 12.5567 0.740631 12.6234 0.788895 12.6803C0.837159 12.7371 0.897213 12.7828 0.964892 12.8141C1.03257 12.8455 1.10626 12.8617 1.18084 12.8617H3.02257C3.14266 12.8617 3.25885 12.8191 3.35048 12.7415C3.4421 12.6639 3.50322 12.5563 3.52296 12.4378L4.07201 9.42848H6.57398L6.08053 12.264C6.06844 12.3376 6.0725 12.413 6.09243 12.4849C6.11235 12.5567 6.14767 12.6234 6.19594 12.6803C6.2442 12.7371 6.30425 12.7828 6.37193 12.8141C6.43961 12.8455 6.5133 12.8617 6.58788 12.8617H8.45741C8.57712 12.8604 8.6926 12.8173 8.78395 12.7399Z" fill="white"/>
<path d="M13.686 12.7378C13.7786 12.6617 13.8418 12.5555 13.8644 12.4378L14.6428 7.9134C14.6603 7.83959 14.6613 7.76282 14.6456 7.68859C14.6299 7.61437 14.598 7.54454 14.5522 7.48409C14.5064 7.42364 14.4477 7.37409 14.3805 7.33897C14.3133 7.30385 14.2391 7.28404 14.1633 7.28096H12.2938C12.1741 7.28233 12.0586 7.32543 11.9672 7.40282C11.8759 7.48021 11.8144 7.58704 11.7934 7.7049L10.9872 12.2571C10.9739 12.3303 10.9769 12.4055 10.996 12.4774C11.015 12.5493 11.0497 12.6161 11.0974 12.6731C11.1451 12.7302 11.2048 12.776 11.2723 12.8074C11.3397 12.8388 11.4132 12.855 11.4876 12.8548H13.3571C13.477 12.8553 13.5934 12.814 13.686 12.7378Z" fill="white"/>
<path opacity="0.5" d="M14.891 5.59802C14.9822 5.52202 15.0443 5.41679 15.0667 5.30021L15.3239 3.93802C15.3383 3.86434 15.3362 3.78837 15.3176 3.71561C15.2991 3.64284 15.2647 3.5751 15.2168 3.51725C15.1689 3.45941 15.1088 3.41291 15.0408 3.38112C14.9728 3.34932 14.8986 3.33301 14.8235 3.33338H12.9609C12.8428 3.33281 12.7282 3.37345 12.6369 3.4483C12.5455 3.52315 12.4832 3.62752 12.4605 3.74343L12.1964 5.11256C12.1833 5.18609 12.1863 5.2616 12.2054 5.33384C12.2244 5.40607 12.2589 5.4733 12.3065 5.53084C12.3541 5.58839 12.4137 5.63486 12.4811 5.66705C12.5485 5.69923 12.6221 5.71635 12.6968 5.71721H14.5663C14.6851 5.71614 14.7998 5.67403 14.891 5.59802Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

4
src/assets/icon_image.svg

@ -0,0 +1,4 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.99967 2C1.63149 2 1.33301 2.29848 1.33301 2.66667V13.3333C1.33301 13.7015 1.63149 14 1.99967 14H13.9997C14.3679 14 14.6663 13.7015 14.6663 13.3333V2.66667C14.6663 2.29848 14.3679 2 13.9997 2H1.99967ZM13.333 3.33328V10.0001L11.9021 8.56907C11.7719 8.43893 11.5608 8.43893 11.4306 8.56907L9.56874 10.431C9.43854 10.5612 9.22747 10.5612 9.09727 10.431L5.56871 6.9024C5.43853 6.77227 5.22748 6.77227 5.09731 6.9024L2.66634 9.3334V3.33328H13.333Z" fill="white"/>
<path opacity="0.5" d="M10.333 5.33333C10.333 5.14924 10.4823 5 10.6663 5H11.6663C11.8504 5 11.9997 5.14924 11.9997 5.33333V6.33333C11.9997 6.51743 11.8504 6.66667 11.6663 6.66667H10.6663C10.4823 6.66667 10.333 6.51743 10.333 6.33333V5.33333Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 832 B

6
src/assets/icon_or.svg

@ -0,0 +1,6 @@
<svg width="27" height="20" viewBox="0 0 27 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M23.6667 3.33329H3.66667V16.6666H23.6667V3.33329ZM3.66667 1.66663C2.74619 1.66663 2 2.41282 2 3.33329V16.6666C2 17.5871 2.74619 18.3333 3.66667 18.3333H23.6667C24.5871 18.3333 25.3333 17.5871 25.3333 16.6666V3.33329C25.3333 2.41282 24.5871 1.66663 23.6667 1.66663H3.66667Z" fill="#646A73"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.2196 6.91331H18.2767L19.4 9.89549L20.4758 6.91331L22.5375 6.83044L19.4 14.8138L17.3565 14.8966L18.437 12.3756L16.2196 6.91331Z" fill="#646A73"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.1034 7.06327C13.1302 7.04839 13.1574 7.03404 13.1848 7.02023C13.5166 6.84295 13.8759 6.77344 14.2468 6.77344C14.9611 6.77344 15.5729 6.97047 15.9992 7.43635C16.419 7.89521 16.5934 8.54454 16.5934 9.3101V12.9168H14.7001V9.4001C14.7001 9.01738 14.6103 8.80651 14.5052 8.69229C14.4059 8.58445 14.2319 8.49677 13.9067 8.49677C13.7078 8.49677 13.5468 8.55932 13.4114 8.69473C13.2534 8.85274 13.1382 9.08146 13.1034 9.41091V12.9168H11.2101V6.91344H13.1034V7.06327Z" fill="#646A73"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.01665 12.6833V12.9168H10.83V9.2001C10.83 8.50266 10.6523 7.90623 10.247 7.47482L10.2458 7.47354C9.77726 6.97898 9.08554 6.77344 8.26332 6.77344C7.58671 6.77344 6.97894 6.88784 6.50606 7.18452C5.95355 7.51308 5.61381 8.04132 5.48446 8.69979L5.39493 9.15558L6.60828 9.25958C6.45695 9.32645 6.3157 9.40545 6.18578 9.49774C5.6067 9.89006 5.31665 10.4724 5.31665 11.1801C5.31665 11.727 5.52656 12.1949 5.95194 12.5464C6.34831 12.8992 6.87585 13.0568 7.48332 13.0568C7.99851 13.0568 8.45994 12.9557 8.86073 12.7671L8.86966 12.7628C8.91982 12.7377 8.96882 12.7112 9.01665 12.6833ZM7.33362 9.04021C7.60234 8.98907 7.88998 8.96154 8.19236 8.95358L8.93243 8.93444C8.90662 8.77431 8.84911 8.68249 8.7882 8.62627C8.69958 8.54447 8.527 8.46677 8.19332 8.46677C7.90772 8.46677 7.72064 8.51963 7.60769 8.58739L7.60328 8.59004C7.46993 8.66783 7.38847 8.77506 7.35134 8.95452L7.33362 9.04021ZM8.93782 10.5386L8.28478 10.5566L8.28191 10.5567C7.83203 10.566 7.5658 10.6502 7.4222 10.7499C7.3054 10.831 7.23998 10.9409 7.23998 11.1401C7.23998 11.2037 7.25413 11.2438 7.32642 11.2991L7.3313 11.3029L7.33606 11.3067C7.40443 11.3623 7.52395 11.4134 7.72332 11.4134C8.07815 11.4134 8.36218 11.3062 8.60462 11.1017C8.80129 10.9357 8.90794 10.7499 8.93782 10.5386Z" fill="#646A73"/>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

3
src/assets/icon_qr_outlined.svg

@ -0,0 +1,3 @@
<svg width="19" height="18" viewBox="0 0 19 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.875 8.625H9.125V3.375H3.875V8.625ZM3.125 1.875H9.875C10.2892 1.875 10.625 2.21079 10.625 2.625V9.375C10.625 9.78921 10.2892 10.125 9.875 10.125H3.125C2.71079 10.125 2.375 9.78921 2.375 9.375V2.625C2.375 2.21079 2.71079 1.875 3.125 1.875ZM5.375 4.875H7.625V7.125H5.375V4.875ZM3.875 12.75V14.625H5.75V12.75H3.875ZM3.125 11.25H6.5C6.91421 11.25 7.25 11.5858 7.25 12V15.375C7.25 15.7892 6.91421 16.125 6.5 16.125H3.125C2.71079 16.125 2.375 15.7892 2.375 15.375V12C2.375 11.5858 2.71079 11.25 3.125 11.25ZM13.25 3.375V5.25H15.125V3.375H13.25ZM12.5 1.875H15.875C16.2892 1.875 16.625 2.21079 16.625 2.625V6C16.625 6.41421 16.2892 6.75 15.875 6.75H12.5C12.0858 6.75 11.75 6.41421 11.75 6V2.625C11.75 2.21079 12.0858 1.875 12.5 1.875ZM13.25 12.75V14.625H15.125V12.75H13.25ZM12.5 11.25H15.875C16.2892 11.25 16.625 11.5858 16.625 12V15.375C16.625 15.7892 16.2892 16.125 15.875 16.125H12.5C12.0858 16.125 11.75 15.7892 11.75 15.375V12C11.75 11.5858 12.0858 11.25 12.5 11.25ZM8.75 11.25H10.25V12.75H8.75V11.25ZM8.75 13.875H10.25V16.125H8.75V13.875ZM11.75 8.25H13.25V9.75H11.75V8.25ZM14.375 8.25H16.625V9.75H14.375V8.25Z" fill="#1F2329"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

3
src/assets/icon_reply.svg

@ -0,0 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.5892 18.5008L14.1666 15.4259H17.9166C18.3768 15.4259 18.7499 15.0449 18.7499 14.575V2.10096C18.7499 1.63099 18.3768 1.25 17.9166 1.25H1.66658C1.20635 1.25 0.833252 1.63099 0.833252 2.10096V14.575C0.833252 15.0449 1.20635 15.4259 1.66658 15.4259H5.83325L9.41066 18.5008C9.7361 18.8331 10.2637 18.8331 10.5892 18.5008ZM5.41658 7.08333H6.24992C6.71015 7.08333 7.08325 7.45643 7.08325 7.91667V8.75C7.08325 9.21024 6.71015 9.58333 6.24992 9.58333H5.41658C4.95635 9.58333 4.58325 9.21024 4.58325 8.75V7.91667C4.58325 7.45643 4.95635 7.08333 5.41658 7.08333ZM8.74992 7.91667C8.74992 7.45643 9.12301 7.08333 9.58325 7.08333H10.4166C10.8768 7.08333 11.2499 7.45643 11.2499 7.91667V8.75C11.2499 9.21024 10.8768 9.58333 10.4166 9.58333H9.58325C9.12301 9.58333 8.74992 9.21024 8.74992 8.75V7.91667ZM13.7499 7.08333H14.5832C15.0435 7.08333 15.4166 7.45643 15.4166 7.91667V8.75C15.4166 9.21024 15.0435 9.58333 14.5832 9.58333H13.7499C13.2897 9.58333 12.9166 9.21024 12.9166 8.75V7.91667C12.9166 7.45643 13.2897 7.08333 13.7499 7.08333Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

21
src/assets/icon_reranker.svg

@ -0,0 +1,21 @@
<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M5.66676 5.22216C5.66676 4.24034 4.87081 3.44438 3.88898 3.44438C2.90714 3.44438 2.11121 4.24034 2.11121 5.22216C2.11121 6.20398 2.90714 6.99994 3.88898 6.99994C4.87081 6.99994 5.66676 6.20398 5.66676 5.22216Z"
fill="white" />
<path
d="M5.66676 16.7777C5.66676 15.7959 4.87081 14.9999 3.88898 14.9999C2.90714 14.9999 2.11121 15.7959 2.11121 16.7777C2.11121 17.7595 2.90714 18.5555 3.88898 18.5555C4.87081 18.5555 5.66676 17.7595 5.66676 16.7777Z"
fill="white" />
<path
d="M20.7778 10.9999C20.7778 9.52716 19.5839 8.33323 18.1111 8.33323C16.6384 8.33323 15.4445 9.52716 15.4445 10.9999C15.4445 12.4726 16.6384 13.6666 18.1111 13.6666C19.5839 13.6666 20.7778 12.4726 20.7778 10.9999Z"
fill="white" />
<path
d="M6.55562 4.77767C6.55562 3.30494 5.36169 2.111 3.88896 2.111C2.41622 2.111 1.22229 3.30494 1.22229 4.77767C1.22229 6.2504 2.41622 7.44434 3.88896 7.44434C5.36169 7.44434 6.55562 6.2504 6.55562 4.77767Z"
fill="white" />
<path
d="M6.55562 17.2221C6.55562 15.7494 5.36169 14.5555 3.88896 14.5555C2.41622 14.5555 1.22229 15.7494 1.22229 17.2221C1.22229 18.6949 2.41622 19.8888 3.88896 19.8888C5.36169 19.8888 6.55562 18.6949 6.55562 17.2221Z"
fill="white" />
<path fill-rule="evenodd" clip-rule="evenodd"
d="M4.77783 16.7777C4.77783 16.2868 5.1758 15.8888 5.66672 15.8888H7.00005C7.47797 15.8888 7.9427 15.6735 8.466 15.2097C9.00158 14.735 9.50472 14.0859 10.0733 13.3468C10.0826 13.3347 10.0919 13.3226 10.1012 13.3105C10.6367 12.6143 11.2356 11.8357 11.9104 11.2375C12.0023 11.156 12.0971 11.0765 12.195 10.9999C12.0971 10.9232 12.0023 10.8438 11.9104 10.7623C11.2356 10.1641 10.6367 9.38547 10.1012 8.68927L10.0733 8.65297C9.50472 7.91385 9.00158 7.26481 8.466 6.7901C7.9427 6.32626 7.47797 6.11101 7.00005 6.11101H5.66672C5.1758 6.11101 4.77783 5.71304 4.77783 5.22212C4.77783 4.7312 5.1758 4.33323 5.66672 4.33323H7.00005C8.07769 4.33323 8.94629 4.8402 9.64522 5.4597C10.3201 6.0579 10.919 6.83655 11.4545 7.53275L11.4824 7.56904C12.0509 8.30817 12.5541 8.95721 13.0897 9.43192C13.613 9.89576 14.0777 10.111 14.5556 10.111H16.3334C16.8243 10.111 17.2223 10.509 17.2223 10.9999C17.2223 11.4908 16.8243 11.8888 16.3334 11.8888H14.5556C14.0777 11.8888 13.613 12.104 13.0897 12.5679C12.5541 13.0426 12.0509 13.6916 11.4824 14.4308L11.4545 14.467C10.919 15.1632 10.3201 15.9419 9.64522 16.5401C8.94629 17.1596 8.07769 17.6666 7.00005 17.6666H5.66672C5.1758 17.6666 4.77783 17.2686 4.77783 16.7777Z"
fill="white" />
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

1
src/assets/icon_robot.svg

@ -0,0 +1 @@
<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 232.4409 232.4409"><defs><style>.cls-1{fill:#fff;}</style></defs><title>MaxKB</title><path class="cls-1" d="M128.4532,177H98.7785L87.78,187.9985a4.6069,4.6069,0,0,0,3.2576,7.8644h45.1569a4.6069,4.6069,0,0,0,3.2575-7.8644Z"/><path class="cls-1" d="M210.0008,90.7042h-5.85v41.1511h5.85a4.4537,4.4537,0,0,0,4.4537-4.4537V95.1579A4.4537,4.4537,0,0,0,210.0008,90.7042Z"/><path class="cls-1" d="M28.29,90.7042H22.44a4.4538,4.4538,0,0,0-4.4538,4.4537v32.2437a4.4538,4.4538,0,0,0,4.4538,4.4537h5.85Z"/><path class="cls-1" d="M138.8087,96.1512a8.33,8.33,0,0,0-8.33,8.33v5.9727a8.33,8.33,0,1,0,16.6607,0v-5.9727A8.33,8.33,0,0,0,138.8087,96.1512Z"/><path class="cls-1" d="M95.3622,96.1512a8.33,8.33,0,0,0-8.33,8.33v5.9727a8.33,8.33,0,1,0,16.6607,0v-5.9727A8.33,8.33,0,0,0,95.3622,96.1512Z"/><path class="cls-1" d="M166.8344,48.8968H65.6064A33.7544,33.7544,0,0,0,31.89,82.6131v57.07A33.7548,33.7548,0,0,0,65.6064,173.4h101.228a33.7549,33.7549,0,0,0,33.7168-33.7168v-57.07A33.7545,33.7545,0,0,0,166.8344,48.8968Zm2.831,90.4457a6.0733,6.0733,0,0,1-6.0732,6.0733H114.2168a43.5922,43.5922,0,0,0-21.3313,5.5757l-16.5647,9.2946v-14.87h-7.472a6.0733,6.0733,0,0,1-6.0733-6.0733v-60.5a6.0733,6.0733,0,0,1,6.0733-6.0733h94.7434a6.0733,6.0733,0,0,1,6.0732,6.0733Z"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

4
src/assets/icon_send.svg

@ -0,0 +1,4 @@
<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M19.1716 0.688342C19.6753 0.532733 20.0458 1.16193 19.6652 1.52691L11.2658 9.58356C10.0058 10.7921 8.32754 11.4668 6.5817 11.4668C4.68044 11.4668 2.8669 10.667 1.58487 9.26303L0.45879 8.02985C0.332247 7.90313 0.241372 7.74527 0.195339 7.5722C0.149305 7.39913 0.149742 7.21698 0.196605 7.04413C0.243468 6.87129 0.335099 6.71386 0.462248 6.58775C0.589398 6.46164 0.747567 6.3713 0.92079 6.32585L19.1716 0.688342Z" fill="#BBBFC4"/>
<path d="M11 15.1851C11 13.2766 11.7377 11.4419 13.0588 10.0646L20.4664 2.34177C20.8268 1.96601 21.4499 2.32266 21.3084 2.82374L16.143 21.1182C16.0971 21.291 16.0064 21.4487 15.8801 21.5754C15.7538 21.7021 15.5964 21.7932 15.4237 21.8397C15.251 21.8862 15.0691 21.8864 14.8964 21.8402C14.7236 21.794 14.566 21.7031 14.4395 21.5767L13.4439 20.6791C11.8881 19.2764 11 17.2799 11 15.1851Z" fill="#BBBFC4"/>
</svg>

After

Width:  |  Height:  |  Size: 945 B

14
src/assets/icon_send_colorful.svg

@ -0,0 +1,14 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M20.1716 1.68834C20.6753 1.53273 21.0458 2.16193 20.6652 2.52691L12.2658 10.5836C11.0058 11.7921 9.32754 12.4668 7.5817 12.4668C5.68044 12.4668 3.8669 11.667 2.58487 10.263L1.45879 9.02985C1.33225 8.90313 1.24137 8.74527 1.19534 8.5722C1.14931 8.39913 1.14974 8.21698 1.19661 8.04413C1.24347 7.87129 1.3351 7.71386 1.46225 7.58775C1.5894 7.46164 1.74757 7.3713 1.92079 7.32585L20.1716 1.68834Z" fill="url(#paint0_linear_987_5140)"/>
<path d="M12 16.1851C12 14.2766 12.7377 12.4419 14.0588 11.0646L21.4664 3.34177C21.8268 2.96601 22.4499 3.32266 22.3084 3.82374L17.143 22.1182C17.0971 22.291 17.0064 22.4487 16.8801 22.5754C16.7538 22.7021 16.5964 22.7932 16.4237 22.8397C16.251 22.8862 16.0691 22.8864 15.8964 22.8402C15.7236 22.794 15.566 22.7031 15.4395 22.5767L14.4439 21.6791C12.8881 20.2764 12 18.2799 12 16.1851Z" fill="url(#paint1_linear_987_5140)"/>
<defs>
<linearGradient id="paint0_linear_987_5140" x1="22.3289" y1="13.1532" x2="1.16113" y2="13.1532" gradientUnits="userSpaceOnUse">
<stop stop-color="#9258F7"/>
<stop offset="1" stop-color="#3370FF"/>
</linearGradient>
<linearGradient id="paint1_linear_987_5140" x1="22.3289" y1="13.1532" x2="1.16113" y2="13.1532" gradientUnits="userSpaceOnUse">
<stop stop-color="#9258F7"/>
<stop offset="1" stop-color="#3370FF"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

3
src/assets/icon_setting.svg

@ -0,0 +1,3 @@
<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.50959 19.3955C6.84272 20.0622 5.93829 20.4368 4.99527 20.4367C4.05226 20.4366 3.1479 20.0619 2.48114 19.395C1.81439 18.7282 1.43986 17.8238 1.43994 16.8807C1.44002 15.9377 1.81472 15.0334 2.48159 14.3666L4.6407 12.207C3.70381 9.41949 4.34648 6.21772 6.56692 3.99594C8.78914 1.77372 11.9927 1.13238 14.7816 2.07105C14.9607 2.13105 15.1758 2.21994 15.426 2.33683C15.5488 2.39405 15.656 2.48004 15.7385 2.5875C15.821 2.69496 15.8764 2.82073 15.8999 2.95414C15.9235 3.08754 15.9145 3.22467 15.8738 3.35388C15.8331 3.48309 15.7618 3.60057 15.666 3.69638L11.9096 7.45283L14.4238 9.96705L18.1318 6.25905C18.2333 6.15762 18.3578 6.08226 18.4947 6.0394C18.6316 5.99653 18.7768 5.98744 18.918 6.0129C19.0592 6.03836 19.1921 6.09761 19.3054 6.1856C19.4187 6.27358 19.5091 6.38769 19.5687 6.51816C19.6825 6.76616 19.7683 6.97949 19.8265 7.15861C20.7345 9.93283 20.0856 13.1048 17.8807 15.3097C15.6594 17.5306 12.4571 18.1728 9.66914 17.2359L7.50959 19.395V19.3955Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

11
src/assets/icon_speech_to_text.svg

@ -0,0 +1,11 @@
<svg width="20" height="20" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 8C0 3.58172 3.58172 0 8 0H24C28.4183 0 32 3.58172 32 8V24C32 28.4183 28.4183 32 24 32H8C3.58172 32 0 28.4183 0 24V8Z" fill="#FF8800"/>
<g clip-path="url(#clip0_10330_2372)">
<path d="M22.5715 7.55565C22.7761 7.55565 22.9542 7.69533 23.0031 7.89401L26.3667 21.5792C26.4356 21.8593 26.2235 22.1297 25.9351 22.1297H24.9468C24.7483 22.1297 24.5739 21.9981 24.5194 21.8072L23.4149 17.9355H19.6078L19.0541 19.8045C18.1413 22.4957 15.4533 24.4445 12.2798 24.4445C9.32693 24.4445 6.79442 22.7572 5.71945 20.3549C5.69242 20.2945 5.66068 20.2159 5.62896 20.134C5.53599 19.8941 5.67535 19.6296 5.92345 19.5612C5.96516 19.5497 6.0032 19.5393 6.03397 19.5308C6.35482 19.4424 6.61238 19.3715 6.80666 19.318C7.02895 19.2568 7.25552 19.3785 7.34889 19.5893C8.14894 21.3957 10.0553 22.6668 12.2798 22.6668C14.5329 22.6668 16.4597 21.3628 17.2411 19.5193L17.317 19.3285L20.0773 7.89578C20.1255 7.69624 20.3041 7.55565 20.5094 7.55565H22.5715ZM12.2798 7.11121C14.9799 7.11121 17.1687 9.41058 17.1687 12.247V16.1976C17.1687 19.0341 14.9799 21.3334 12.2798 21.3334C9.57975 21.3334 7.39092 19.0341 7.39092 16.1976V12.247C7.39092 9.41058 9.57975 7.11121 12.2798 7.11121ZM21.5396 9.10632L19.9645 16.0903H23.1147L21.5396 9.10632Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_10330_2372">
<rect width="21.3333" height="21.3333" fill="white" transform="translate(5.33331 5.33337)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

4
src/assets/icon_start.svg

@ -0,0 +1,4 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.185 14.7097C8.41034 15.273 9.21034 15.2667 9.42667 14.6997L10.8753 10.9044L14.701 9.42671C15.266 9.20838 15.2707 8.41072 14.7083 8.18572L5.28034 4.41438C4.736 4.19672 4.196 4.73705 4.41367 5.28105L8.185 14.7097Z" fill="white"/>
<path opacity="0.5" d="M8.33167 4.559C8.275 2.58367 6.65567 1 4.66667 1C2.64167 1 1 2.64167 1 4.66667C1 6.65467 2.58167 8.273 4.55567 8.33167L3.98233 6.898C3.59753 6.77974 3.24987 6.56394 2.97314 6.27157C2.69642 5.9792 2.50004 5.6202 2.4031 5.22948C2.30617 4.83876 2.31196 4.42961 2.41993 4.0418C2.52791 3.65398 2.73438 3.3007 3.01928 3.01629C3.30418 2.73187 3.65781 2.52601 4.04581 2.4187C4.43381 2.3114 4.84298 2.3063 5.23353 2.40391C5.62408 2.50152 5.98274 2.69851 6.27463 2.97574C6.56653 3.25296 6.78174 3.60099 6.89933 3.986L8.33167 4.559Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 904 B

5
src/assets/icon_text-image.svg

@ -0,0 +1,5 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.99998 1.33334H6.99998C7.18407 1.33334 7.33331 1.48258 7.33331 1.66668V2.33334C7.33331 2.51744 7.18407 2.66668 6.99998 2.66668H2.66665V6.33334C2.66665 6.51744 2.51741 6.66668 2.33331 6.66668H1.66665C1.48255 6.66668 1.33331 6.51744 1.33331 6.33334V2.00001C1.33331 1.63182 1.63179 1.33334 1.99998 1.33334ZM14 14.6667H9.66665C9.48255 14.6667 9.33331 14.5174 9.33331 14.3333V13.6667C9.33331 13.4826 9.48255 13.3333 9.66665 13.3333H13.3333V9.66668C13.3333 9.48258 13.4826 9.33334 13.6666 9.33334H14.3333C14.5174 9.33334 14.6666 9.48258 14.6666 9.66668V14C14.6666 14.3682 14.3682 14.6667 14 14.6667Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.7033 1.48695C10.7776 1.29397 10.9631 1.16666 11.1699 1.16666H11.87C12.0768 1.16666 12.2623 1.29397 12.3366 1.48695L14.6475 7.48695C14.7737 7.81448 14.5319 8.16666 14.1809 8.16666H13.8107C13.5981 8.16666 13.4088 8.0323 13.3387 7.83167L12.7962 6.28018C12.7729 6.21331 12.7098 6.16852 12.6389 6.16852H10.468C10.3995 6.16852 10.3379 6.21049 10.3129 6.27429L9.69462 7.84935C9.61948 8.04076 9.43482 8.16666 9.22919 8.16666H8.85893C8.50794 8.16666 8.26619 7.81448 8.39234 7.48695L10.7033 1.48695ZM11.5194 2.85876L10.7668 4.90148H12.2656L11.5194 2.85876Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1.33331 14.3333C1.33331 14.5174 1.48255 14.6667 1.66665 14.6667H7.66665C7.85074 14.6667 7.99998 14.5174 7.99998 14.3333V8.33333C7.99998 8.14924 7.85074 8 7.66665 8H1.66665C1.48255 8 1.33331 8.14924 1.33331 8.33333V14.3333ZM2.83332 9.33333H3.49998C3.59203 9.33333 3.66665 9.40795 3.66665 9.5V10.1667C3.66665 10.2587 3.59203 10.3333 3.49998 10.3333H2.83332C2.74127 10.3333 2.66665 10.2587 2.66665 10.1667V9.5C2.66665 9.40795 2.74127 9.33333 2.83332 9.33333ZM4.04698 13.3294L2.62187 13.326C2.56665 13.3259 2.52198 13.281 2.52211 13.2258C2.52218 13.1993 2.53271 13.174 2.5514 13.1553L3.92901 11.7777C3.98108 11.7256 4.0655 11.7256 4.11757 11.7777L4.75326 12.4134L6.43904 10.7276C6.49111 10.6755 6.57553 10.6755 6.6276 10.7276C6.6526 10.7526 6.66665 10.7865 6.66665 10.8219V13.2333C6.66665 13.2886 6.62188 13.3333 6.56665 13.3333H4.07474C4.06511 13.3333 4.05579 13.332 4.04698 13.3294Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

11
src/assets/icon_text_to_speech.svg

@ -0,0 +1,11 @@
<svg width="20" height="20" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 8C0 3.58172 3.58172 0 8 0H24C28.4183 0 32 3.58172 32 8V24C32 28.4183 28.4183 32 24 32H8C3.58172 32 0 28.4183 0 24V8Z" fill="#14C0FF"/>
<g clip-path="url(#clip0_10330_2180)">
<path d="M9.42854 7.55565C9.22395 7.55565 9.04578 7.69533 8.99695 7.89401L5.63329 21.5792C5.56444 21.8593 5.77647 22.1297 6.06488 22.1297H7.05321C7.25171 22.1297 7.42615 21.9981 7.4806 21.8072L8.5851 17.9355H12.3922L12.9459 19.8045C13.8587 22.4957 16.5467 24.4445 19.7202 24.4445C22.6731 24.4445 25.2056 22.7572 26.2805 20.3549C26.3076 20.2945 26.3393 20.2159 26.371 20.134C26.464 19.8941 26.3246 19.6296 26.0765 19.5612C26.0348 19.5497 25.9968 19.5393 25.966 19.5308C25.6452 19.4424 25.3876 19.3715 25.1933 19.318C24.9711 19.2568 24.7445 19.3785 24.6511 19.5893C23.8511 21.3957 21.9447 22.6668 19.7202 22.6668C17.4671 22.6668 15.5403 21.3628 14.7589 19.5193L14.683 19.3285L11.9227 7.89578C11.8745 7.69624 11.6959 7.55565 11.4906 7.55565H9.42854ZM19.7202 7.11121C17.0201 7.11121 14.8313 9.41058 14.8313 12.247V16.1976C14.8313 19.0341 17.0201 21.3334 19.7202 21.3334C22.4203 21.3334 24.6091 19.0341 24.6091 16.1976V12.247C24.6091 9.41058 22.4203 7.11121 19.7202 7.11121ZM10.4604 9.10632L12.0355 16.0903H8.88529L10.4604 9.10632Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_10330_2180">
<rect width="21.3333" height="21.3333" fill="white" transform="matrix(-1 0 0 1 26.6667 5.33337)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

4
src/assets/icon_web.svg

@ -0,0 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2.5 2H21.5C22.0523 2 22.5 2.44772 22.5 3V17C22.5 17.5523 22.0523 18 21.5 18H2.5C1.94772 18 1.5 17.5523 1.5 17V3C1.5 2.44772 1.94772 2 2.5 2ZM3.5 14V16H20.5V14H3.5Z" fill="white"/>
<path d="M6.5 20H17.5C17.7761 20 18 20.2239 18 20.5V21.5C18 21.7761 17.7761 22 17.5 22H6.5C6.22386 22 6 21.7761 6 21.5V20.5C6 20.2239 6.22386 20 6.5 20Z" fill="#D8D8D8"/>
</svg>

After

Width:  |  Height:  |  Size: 464 B

1
src/assets/js/jweixin-1.4.0.js

File diff suppressed because one or more lines are too long

1
src/assets/js/uni.webview.1.5.2.js

@ -0,0 +1 @@
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e=e||self).uni=n()}(this,(function(){"use strict";try{var e={};Object.defineProperty(e,"passive",{get:function(){!0}}),window.addEventListener("test-passive",null,e)}catch(e){}var n=Object.prototype.hasOwnProperty;function t(e,t){return n.call(e,t)}var i=[],a=function(e,n){var t={options:{timestamp:+new Date},name:e,arg:n};if(window.__dcloud_weex_postMessage||window.__dcloud_weex_){if("postMessage"===e){var a={data:[n]};return window.__dcloud_weex_postMessage?window.__dcloud_weex_postMessage(a):window.__dcloud_weex_.postMessage(JSON.stringify(a))}var o={type:"WEB_INVOKE_APPSERVICE",args:{data:t,webviewIds:i}};window.__dcloud_weex_postMessage?window.__dcloud_weex_postMessageToService(o):window.__dcloud_weex_.postMessageToService(JSON.stringify(o))}if(!window.plus)return window.parent.postMessage({type:"WEB_INVOKE_APPSERVICE",data:t,pageId:""},"*");if(0===i.length){var r=plus.webview.currentWebview();if(!r)throw new Error("plus.webview.currentWebview() is undefined");var d=r.parent(),s="";s=d?d.id:r.id,i.push(s)}if(plus.webview.getWebviewById("__uniapp__service"))plus.webview.postMessageToUniNView({type:"WEB_INVOKE_APPSERVICE",args:{data:t,webviewIds:i}},"__uniapp__service");else{var w=JSON.stringify(t);plus.webview.getLaunchWebview().evalJS('UniPlusBridge.subscribeHandler("'.concat("WEB_INVOKE_APPSERVICE",'",').concat(w,",").concat(JSON.stringify(i),");"))}},o={navigateTo:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("navigateTo",{url:encodeURI(n)})},navigateBack:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.delta;a("navigateBack",{delta:parseInt(n)||1})},switchTab:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("switchTab",{url:encodeURI(n)})},reLaunch:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("reLaunch",{url:encodeURI(n)})},redirectTo:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("redirectTo",{url:encodeURI(n)})},getEnv:function(e){window.plus?e({plus:!0}):e({h5:!0})},postMessage:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};a("postMessage",e.data||{})}},r=/uni-app/i.test(navigator.userAgent),d=/Html5Plus/i.test(navigator.userAgent),s=/complete|loaded|interactive/;var w=window.my&&navigator.userAgent.indexOf("AlipayClient")>-1;var u=window.swan&&window.swan.webView&&/swan/i.test(navigator.userAgent);var c=window.qq&&window.qq.miniProgram&&/QQ/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var g=window.tt&&window.tt.miniProgram&&/toutiaomicroapp/i.test(navigator.userAgent);var v=window.wx&&window.wx.miniProgram&&/micromessenger/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var p=window.qa&&/quickapp/i.test(navigator.userAgent);for(var l,_=function(){window.UniAppJSBridge=!0,document.dispatchEvent(new CustomEvent("UniAppJSBridgeReady",{bubbles:!0,cancelable:!0}))},f=[function(e){if(r||d)return window.__dcloud_weex_postMessage||window.__dcloud_weex_?document.addEventListener("DOMContentLoaded",e):window.plus&&s.test(document.readyState)?setTimeout(e,0):document.addEventListener("plusready",e),o},function(e){if(v)return window.WeixinJSBridge&&window.WeixinJSBridge.invoke?setTimeout(e,0):document.addEventListener("WeixinJSBridgeReady",e),window.wx.miniProgram},function(e){if(c)return window.QQJSBridge&&window.QQJSBridge.invoke?setTimeout(e,0):document.addEventListener("QQJSBridgeReady",e),window.qq.miniProgram},function(e){if(w){document.addEventListener("DOMContentLoaded",e);var n=window.my;return{navigateTo:n.navigateTo,navigateBack:n.navigateBack,switchTab:n.switchTab,reLaunch:n.reLaunch,redirectTo:n.redirectTo,postMessage:n.postMessage,getEnv:n.getEnv}}},function(e){if(u)return document.addEventListener("DOMContentLoaded",e),window.swan.webView},function(e){if(g)return document.addEventListener("DOMContentLoaded",e),window.tt.miniProgram},function(e){if(p){window.QaJSBridge&&window.QaJSBridge.invoke?setTimeout(e,0):document.addEventListener("QaJSBridgeReady",e);var n=window.qa;return{navigateTo:n.navigateTo,navigateBack:n.navigateBack,switchTab:n.switchTab,reLaunch:n.reLaunch,redirectTo:n.redirectTo,postMessage:n.postMessage,getEnv:n.getEnv}}},function(e){return document.addEventListener("DOMContentLoaded",e),o}],m=0;m<f.length&&!(l=f[m](_));m++);l||(l={});var E="undefined"!=typeof uni?uni:{};if(!E.navigateTo)for(var b in l)t(l,b)&&(E[b]=l[b]);return E.webView=l,E}));

BIN
src/assets/load_error.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

20
src/assets/logo/MaxKB-logo-currentColor.svg

@ -0,0 +1,20 @@
<svg width="122" height="36" viewBox="0 0 122 36" xmlns="http://www.w3.org/2000/svg" fill="#FF8800">
<g clip-path="url(#clip0_5682_1471)" fill-rule="evenodd">
<path d="M75.3094 19.0805V27.05H71.8274L71.8109 26.2436C70.5933 26.8762 69.4033 27.1925 68.2412 27.1923H67.8972C66.7033 27.1923 65.7546 26.7337 65.051 25.8166C64.5855 25.1007 64.342 24.2631 64.3513 23.4092V23.3143C64.3513 21.7489 64.9008 20.7092 65.9997 20.1953C66.4505 19.8949 67.5929 19.7447 69.4271 19.7447H71.3008V19.3058C71.3008 18.4045 71.1703 17.8867 70.9094 17.7523C70.6249 17.5388 70.1228 17.4321 69.4033 17.4321H65.6678L65.7312 14.2396L70.032 14.1233C72.5857 14.1233 74.1669 14.7558 74.7758 16.0208C75.1315 16.756 75.3094 17.7759 75.3094 19.0805ZM68.6032 22.3901C68.4844 22.5315 68.3597 22.9902 68.3597 23.3143C68.3597 24.0259 68.7234 24.3817 69.4508 24.3817C69.8855 24.3817 70.5022 24.2038 71.3008 23.848V22.1112C71.3008 22.1112 69.0361 21.875 68.6032 22.3901Z" fill="currentColor"/>
<path d="M56.6308 27.3317L55.4162 15.1815L52.0028 27.3317H48.028L44.6928 15.1815L43.4348 27.3317L37.9399 27.2849L40.6207 9.35034H47.6212L50.0211 17.8845L52.4444 9.35034H59.281L62.0087 27.3317H56.6308Z" fill="currentColor"/>
<path d="M85.3943 26.9654L83.5118 23.1105L81.6291 26.9654H77.2017L80.831 20.5778L77.3644 14.6084H81.6525L83.5118 18.2543L85.313 14.6084H89.6009L86.1576 20.5778L89.7637 26.9654H85.3943Z" fill="currentColor"/>
<path d="M101.114 26.9656C101.029 26.8419 96.8966 20.1336 96.8966 20.1336L95.5396 22.2226V26.9656H90.9727V9.11621H95.5396V16.3526L99.7128 9.17639H104.477L99.514 17.1079L105.855 26.9656H101.114Z" fill="currentColor"/>
<path d="M121.036 22.145C121.036 24.745 119.74 27.1282 115.097 27.1282H107.032V9.02689L113.203 8.90869C113.203 8.90869 116.858 8.74751 118.706 10.153C120.068 11.1885 120.515 13.0021 120.384 14.5197C120.254 16.0373 119.553 17.0129 118.405 17.727C119.979 18.354 121.036 19.5451 121.036 22.145ZM114.228 16.3325C115.766 16.3325 116.62 15.5559 116.62 14.45C116.62 13.2735 115.833 12.5837 114.228 12.5837L111.576 12.5906V16.3325H114.228ZM114.365 23.5374C116.497 23.5374 117.022 22.393 117.022 21.6316C117.022 20.4308 116.17 19.563 114.752 19.563H111.576V23.5374H114.365Z" fill="currentColor"/>
<path d="M17.4213 26.7354H12.8296L11.1277 28.4372C11.028 28.5369 10.9601 28.6639 10.9326 28.8022C10.9051 28.9405 10.9193 29.0838 10.9732 29.2141C11.0272 29.3443 11.1185 29.4557 11.2358 29.534C11.353 29.6123 11.4908 29.6541 11.6318 29.6541H18.6192C18.7602 29.6541 18.898 29.6123 19.0153 29.534C19.1325 29.4557 19.2239 29.3443 19.2778 29.2141C19.3318 29.0838 19.3459 28.9405 19.3184 28.8022C19.2909 28.6639 19.223 28.5369 19.1233 28.4372L17.4213 26.7354Z" fill="currentColor"/>
<path d="M30.04 13.3823H29.1348V19.7499H30.04C30.1305 19.7499 30.2201 19.732 30.3037 19.6974C30.3873 19.6628 30.4633 19.612 30.5273 19.548C30.5913 19.484 30.642 19.4081 30.6767 19.3244C30.7113 19.2408 30.7291 19.1512 30.7291 19.0607V14.0715C30.7291 13.8887 30.6565 13.7134 30.5273 13.5842C30.398 13.4549 30.2227 13.3823 30.04 13.3823Z" fill="currentColor"/>
<path d="M1.92296 13.3823H1.01776C0.834985 13.3823 0.659698 13.4549 0.530458 13.5842C0.401219 13.7134 0.328613 13.8887 0.328613 14.0715V19.0607C0.328611 19.1512 0.346435 19.2408 0.381067 19.3244C0.415699 19.4081 0.466461 19.484 0.530455 19.548C0.594448 19.612 0.670419 19.6628 0.754031 19.6974C0.837643 19.732 0.927258 19.7499 1.01776 19.7499H1.92296V13.3823Z" fill="currentColor"/>
<path d="M19.0238 14.2251C18.682 14.2251 18.3541 14.3609 18.1124 14.6026C17.8707 14.8443 17.7349 15.1722 17.7349 15.514V16.4382C17.7349 16.7801 17.8707 17.108 18.1124 17.3497C18.3541 17.5914 18.682 17.7272 19.0239 17.7272C19.3657 17.7272 19.6936 17.5914 19.9353 17.3497C20.1771 17.108 20.3129 16.7801 20.3129 16.4382V15.5141C20.3129 15.3448 20.2796 15.1772 20.2148 15.0208C20.15 14.8644 20.055 14.7223 19.9353 14.6026C19.8156 14.4829 19.6735 14.388 19.5171 14.3232C19.3607 14.2584 19.1931 14.2251 19.0238 14.2251Z" fill="currentColor"/>
<path d="M12.3012 14.2251C11.9593 14.2251 11.6315 14.3609 11.3897 14.6026C11.148 14.8443 11.0122 15.1722 11.0122 15.514V16.4382C11.0122 16.7801 11.148 17.108 11.3897 17.3497C11.6315 17.5914 11.9593 17.7272 12.3012 17.7272C12.6431 17.7272 12.9709 17.5914 13.2127 17.3497C13.4544 17.108 13.5902 16.7801 13.5902 16.4382V15.5141C13.5902 15.3448 13.5569 15.1772 13.4921 15.0208C13.4273 14.8644 13.3324 14.7223 13.2127 14.6026C13.093 14.4829 12.9509 14.388 12.7945 14.3232C12.6381 14.2584 12.4704 14.2251 12.3012 14.2251Z" fill="currentColor"/>
<path d="M23.3607 6.91333H7.69709C6.3139 6.91489 4.98782 7.46505 4.00976 8.44311C3.0317 9.42117 2.48154 10.7473 2.47998 12.1304V20.9612C2.48154 22.3444 3.03169 23.6705 4.00975 24.6486C4.98781 25.6266 6.3139 26.1768 7.69709 26.1784H23.3607C24.7439 26.1768 26.07 25.6267 27.0481 24.6486C28.0262 23.6705 28.5764 22.3444 28.5779 20.9612V12.1304C28.5763 10.7472 28.0262 9.42115 27.0481 8.44309C26.07 7.46503 24.7439 6.91487 23.3607 6.91333ZM23.7988 20.9085C23.7988 21.1577 23.6998 21.3968 23.5235 21.573C23.3473 21.7492 23.1083 21.8482 22.859 21.8482H15.2189C14.0629 21.8482 12.9263 22.1453 11.9181 22.711L9.355 24.1492V21.8483H8.19882C7.94958 21.8483 7.71055 21.7493 7.53432 21.573C7.35808 21.3968 7.25907 21.1578 7.25906 20.9085V11.547C7.25907 11.2978 7.35808 11.0588 7.53432 10.8825C7.71056 10.7063 7.94958 10.6073 8.19882 10.6073H22.859C23.1082 10.6073 23.3472 10.7063 23.5235 10.8825C23.6997 11.0588 23.7987 11.2978 23.7987 11.5471L23.7988 20.9085Z" fill="currentColor"/>
</g>
<defs>
<clipPath id="clip0_5682_1471">
<rect width="121" height="36" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 5.4 KiB

64
src/assets/logo/MaxKB-logo.svg

@ -0,0 +1,64 @@
<svg width="122" height="36" viewBox="0 0 122 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_5734_851)">
<path d="M75.3094 19.0802V27.0498H71.8274L71.8109 26.2433C70.5933 26.876 69.4033 27.1922 68.2412 27.1921H67.8972C66.7033 27.1921 65.7546 26.7335 65.051 25.8164C64.5855 25.1005 64.342 24.2629 64.3513 23.409V23.314C64.3513 21.7486 64.9008 20.7089 65.9997 20.195C66.4505 19.8947 67.5929 19.7445 69.4271 19.7444H71.3008V19.3056C71.3008 18.4043 71.1703 17.8865 70.9094 17.752C70.6249 17.5385 70.1228 17.4318 69.4033 17.4318H65.6678L65.7312 14.2393L70.032 14.123C72.5857 14.123 74.1669 14.7555 74.7758 16.0206C75.1315 16.7558 75.3094 17.7757 75.3094 19.0802ZM68.6032 22.3899C68.4844 22.5313 68.3597 22.99 68.3597 23.314C68.3597 24.0256 68.7234 24.3814 69.4508 24.3814C69.8855 24.3814 70.5022 24.2035 71.3008 23.8478V22.111C71.3008 22.111 69.0361 21.8747 68.6032 22.3899Z" fill="url(#paint0_linear_5734_851)"/>
<path d="M56.6308 27.3319L55.4162 15.1817L52.0028 27.3319H48.028L44.6928 15.1817L43.4348 27.3319L37.9399 27.2851L40.6207 9.35059H47.6212L50.0211 17.8847L52.4444 9.35059H59.281L62.0087 27.3319H56.6308Z" fill="url(#paint1_linear_5734_851)"/>
<path d="M85.3943 26.9654L83.5118 23.1105L81.6291 26.9654H77.2017L80.831 20.5778L77.3644 14.6084H81.6525L83.5118 18.2543L85.313 14.6084H89.6009L86.1576 20.5778L89.7637 26.9654H85.3943Z" fill="url(#paint2_linear_5734_851)"/>
<path d="M101.114 26.9656C101.029 26.8419 96.8966 20.1336 96.8966 20.1336L95.5396 22.2226V26.9656H90.9727V9.11621H95.5396V16.3526L99.7128 9.17639H104.477L99.514 17.1079L105.855 26.9656H101.114Z" fill="url(#paint3_linear_5734_851)"/>
<path d="M121.036 22.1453C121.036 24.7452 119.74 27.1284 115.097 27.1284H107.032V9.02713L113.203 8.90893C113.203 8.90893 116.858 8.74776 118.706 10.1533C120.068 11.1888 120.515 13.0023 120.384 14.5199C120.254 16.0375 119.553 17.0132 118.405 17.7272C119.979 18.3542 121.036 19.5453 121.036 22.1453ZM114.228 16.3327C115.766 16.3327 116.62 15.5561 116.62 14.4502C116.62 13.2738 115.833 12.5839 114.228 12.5839L111.576 12.5909V16.3327H114.228ZM114.365 23.5376C116.497 23.5376 117.022 22.3933 117.022 21.6318C117.022 20.4311 116.17 19.5633 114.752 19.5633H111.576V23.5376H114.365Z" fill="url(#paint4_linear_5734_851)"/>
<path d="M17.4213 26.7354H12.8296L11.1277 28.4372C11.028 28.5369 10.9601 28.6639 10.9326 28.8022C10.9051 28.9405 10.9193 29.0838 10.9732 29.2141C11.0272 29.3443 11.1185 29.4557 11.2358 29.534C11.353 29.6123 11.4908 29.6541 11.6318 29.6541H18.6192C18.7602 29.6541 18.898 29.6123 19.0153 29.534C19.1325 29.4557 19.2239 29.3443 19.2778 29.2141C19.3318 29.0838 19.3459 28.9405 19.3184 28.8022C19.2909 28.6639 19.223 28.5369 19.1233 28.4372L17.4213 26.7354Z" fill="url(#paint5_linear_5734_851)"/>
<path d="M30.04 13.3823H29.1348V19.7499H30.04C30.1305 19.7499 30.2201 19.732 30.3037 19.6974C30.3873 19.6628 30.4633 19.612 30.5273 19.548C30.5913 19.484 30.642 19.4081 30.6767 19.3244C30.7113 19.2408 30.7291 19.1512 30.7291 19.0607V14.0715C30.7291 13.8887 30.6565 13.7134 30.5273 13.5842C30.398 13.4549 30.2227 13.3823 30.04 13.3823Z" fill="url(#paint6_linear_5734_851)"/>
<path d="M1.92296 13.3823H1.01776C0.834985 13.3823 0.659698 13.4549 0.530458 13.5842C0.401219 13.7134 0.328613 13.8887 0.328613 14.0715V19.0607C0.328611 19.1512 0.346435 19.2408 0.381067 19.3244C0.415699 19.4081 0.466461 19.484 0.530455 19.548C0.594448 19.612 0.670419 19.6628 0.754031 19.6974C0.837643 19.732 0.927258 19.7499 1.01776 19.7499H1.92296V13.3823Z" fill="url(#paint7_linear_5734_851)"/>
<path d="M19.0238 14.2251C18.682 14.2251 18.3541 14.3609 18.1124 14.6026C17.8707 14.8443 17.7349 15.1722 17.7349 15.514V16.4382C17.7349 16.7801 17.8707 17.108 18.1124 17.3497C18.3541 17.5914 18.682 17.7272 19.0239 17.7272C19.3657 17.7272 19.6936 17.5914 19.9353 17.3497C20.1771 17.108 20.3129 16.7801 20.3129 16.4382V15.5141C20.3129 15.3448 20.2796 15.1772 20.2148 15.0208C20.15 14.8644 20.055 14.7223 19.9353 14.6026C19.8156 14.4829 19.6735 14.388 19.5171 14.3232C19.3607 14.2584 19.1931 14.2251 19.0238 14.2251Z" fill="url(#paint8_linear_5734_851)"/>
<path d="M12.3012 14.2251C11.9593 14.2251 11.6315 14.3609 11.3897 14.6026C11.148 14.8443 11.0122 15.1722 11.0122 15.514V16.4382C11.0122 16.7801 11.148 17.108 11.3897 17.3497C11.6315 17.5914 11.9593 17.7272 12.3012 17.7272C12.6431 17.7272 12.9709 17.5914 13.2127 17.3497C13.4544 17.108 13.5902 16.7801 13.5902 16.4382V15.5141C13.5902 15.3448 13.5569 15.1772 13.4921 15.0208C13.4273 14.8644 13.3324 14.7223 13.2127 14.6026C13.093 14.4829 12.9509 14.388 12.7945 14.3232C12.6381 14.2584 12.4704 14.2251 12.3012 14.2251Z" fill="url(#paint9_linear_5734_851)"/>
<path d="M23.3607 6.91309H7.69709C6.3139 6.91465 4.98782 7.46481 4.00976 8.44287C3.0317 9.42092 2.48154 10.747 2.47998 12.1302V20.9609C2.48154 22.3441 3.03169 23.6702 4.00975 24.6483C4.98781 25.6264 6.3139 26.1766 7.69709 26.1781H23.3607C24.7439 26.1766 26.07 25.6264 27.0481 24.6483C28.0262 23.6703 28.5764 22.3442 28.5779 20.9609V12.1302C28.5763 10.747 28.0262 9.4209 27.0481 8.44284C26.07 7.46478 24.7439 6.91463 23.3607 6.91309ZM23.7988 20.9082C23.7988 21.1575 23.6998 21.3965 23.5235 21.5727C23.3473 21.749 23.1083 21.848 22.859 21.848H15.2189C14.0629 21.848 12.9263 22.1451 11.9181 22.7108L9.355 24.149V21.848H8.19882C7.94958 21.848 7.71055 21.749 7.53432 21.5728C7.35808 21.3966 7.25907 21.1575 7.25906 20.9083V11.5468C7.25907 11.2976 7.35808 11.0585 7.53432 10.8823C7.71056 10.7061 7.94958 10.6071 8.19882 10.6071H22.859C23.1082 10.6071 23.3472 10.7061 23.5235 10.8823C23.6997 11.0585 23.7987 11.2976 23.7987 11.5468L23.7988 20.9082Z" fill="url(#paint10_linear_5734_851)"/>
</g>
<defs>
<linearGradient id="paint0_linear_5734_851" x1="69.8304" y1="10.0003" x2="69.8304" y2="27.3566" gradientUnits="userSpaceOnUse">
<stop stop-color="#3370FF"/>
<stop offset="1" stop-color="#7F3BF5"/>
</linearGradient>
<linearGradient id="paint1_linear_5734_851" x1="49.9743" y1="10.5855" x2="49.9743" y2="27.4838" gradientUnits="userSpaceOnUse">
<stop stop-color="#3370FF"/>
<stop offset="1" stop-color="#7F3BF5"/>
</linearGradient>
<linearGradient id="paint2_linear_5734_851" x1="83.4827" y1="9.95634" x2="83.4827" y2="26.918" gradientUnits="userSpaceOnUse">
<stop stop-color="#3370FF"/>
<stop offset="1" stop-color="#7F3BF5"/>
</linearGradient>
<linearGradient id="paint3_linear_5734_851" x1="98.4139" y1="9.57325" x2="98.4139" y2="26.5967" gradientUnits="userSpaceOnUse">
<stop stop-color="#3370FF"/>
<stop offset="1" stop-color="#7F3BF5"/>
</linearGradient>
<linearGradient id="paint4_linear_5734_851" x1="114.034" y1="9.05828" x2="114.034" y2="26.3934" gradientUnits="userSpaceOnUse">
<stop stop-color="#3370FF"/>
<stop offset="1" stop-color="#7F3BF5"/>
</linearGradient>
<linearGradient id="paint5_linear_5734_851" x1="15.1255" y1="26.7354" x2="15.1255" y2="29.6542" gradientUnits="userSpaceOnUse">
<stop stop-color="#3370FF"/>
<stop offset="1" stop-color="#7F3BF5"/>
</linearGradient>
<linearGradient id="paint6_linear_5734_851" x1="29.9319" y1="13.3823" x2="29.9319" y2="19.7499" gradientUnits="userSpaceOnUse">
<stop stop-color="#3370FF"/>
<stop offset="1" stop-color="#7F3BF5"/>
</linearGradient>
<linearGradient id="paint7_linear_5734_851" x1="1.12576" y1="13.3823" x2="1.12576" y2="19.7499" gradientUnits="userSpaceOnUse">
<stop stop-color="#3370FF"/>
<stop offset="1" stop-color="#7F3BF5"/>
</linearGradient>
<linearGradient id="paint8_linear_5734_851" x1="19.0238" y1="14.2251" x2="19.0238" y2="17.7273" gradientUnits="userSpaceOnUse">
<stop stop-color="#3370FF"/>
<stop offset="1" stop-color="#7F3BF5"/>
</linearGradient>
<linearGradient id="paint9_linear_5734_851" x1="12.3012" y1="14.2251" x2="12.3012" y2="17.7273" gradientUnits="userSpaceOnUse">
<stop stop-color="#3370FF"/>
<stop offset="1" stop-color="#7F3BF5"/>
</linearGradient>
<linearGradient id="paint10_linear_5734_851" x1="15.5289" y1="6.91309" x2="15.5289" y2="26.1782" gradientUnits="userSpaceOnUse">
<stop stop-color="#3370FF"/>
<stop offset="1" stop-color="#7F3BF5"/>
</linearGradient>
<clipPath id="clip0_5734_851">
<rect width="121" height="36" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

1
src/assets/logo/logo-currentColor.svg

@ -0,0 +1 @@
<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 232.4409 232.4409"><title>MaxKB</title><path class="cls-1" d="M128.4532,177H98.7785L87.78,187.9985a4.6069,4.6069,0,0,0,3.2576,7.8644h45.1569a4.6069,4.6069,0,0,0,3.2575-7.8644Z"/><path class="cls-1" d="M210.0008,90.7042h-5.85v41.1511h5.85a4.4537,4.4537,0,0,0,4.4537-4.4537V95.1579A4.4537,4.4537,0,0,0,210.0008,90.7042Z"/><path class="cls-1" d="M28.29,90.7042H22.44a4.4538,4.4538,0,0,0-4.4538,4.4537v32.2437a4.4538,4.4538,0,0,0,4.4538,4.4537h5.85Z"/><path class="cls-1" d="M138.8087,96.1512a8.33,8.33,0,0,0-8.33,8.33v5.9727a8.33,8.33,0,1,0,16.6607,0v-5.9727A8.33,8.33,0,0,0,138.8087,96.1512Z"/><path class="cls-1" d="M95.3622,96.1512a8.33,8.33,0,0,0-8.33,8.33v5.9727a8.33,8.33,0,1,0,16.6607,0v-5.9727A8.33,8.33,0,0,0,95.3622,96.1512Z"/><path class="cls-1" d="M166.8344,48.8968H65.6064A33.7544,33.7544,0,0,0,31.89,82.6131v57.07A33.7548,33.7548,0,0,0,65.6064,173.4h101.228a33.7549,33.7549,0,0,0,33.7168-33.7168v-57.07A33.7545,33.7545,0,0,0,166.8344,48.8968Zm2.831,90.4457a6.0733,6.0733,0,0,1-6.0732,6.0733H114.2168a43.5922,43.5922,0,0,0-21.3313,5.5757l-16.5647,9.2946v-14.87h-7.472a6.0733,6.0733,0,0,1-6.0733-6.0733v-60.5a6.0733,6.0733,0,0,1,6.0733-6.0733h94.7434a6.0733,6.0733,0,0,1,6.0732,6.0733Z"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

1
src/assets/logo/logo.svg

@ -0,0 +1 @@
<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 232.4409 232.4409"><defs><style>.cls-1{fill:url(#未命名的渐变_7);}.cls-2{fill:url(#未命名的渐变_7-2);}.cls-3{fill:url(#未命名的渐变_7-3);}.cls-4{fill:url(#未命名的渐变_7-4);}.cls-5{fill:url(#未命名的渐变_7-5);}.cls-6{fill:url(#未命名的渐变_7-6);}</style><linearGradient id="未命名的渐变_7" x1="113.6159" y1="176.9998" x2="113.6159" y2="195.8629" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3370FF"/><stop offset="1" stop-color="#7f3bf5"/></linearGradient><linearGradient id="未命名的渐变_7-2" x1="209.3027" y1="90.7042" x2="209.3027" y2="131.8553" xlink:href="#未命名的渐变_7"/><linearGradient id="未命名的渐变_7-3" x1="23.1384" y1="90.7042" x2="23.1384" y2="131.8553" xlink:href="#未命名的渐变_7"/><linearGradient id="未命名的渐变_7-4" x1="138.8087" y1="96.1512" x2="138.8087" y2="118.7847" xlink:href="#未命名的渐变_7"/><linearGradient id="未命名的渐变_7-5" x1="95.3622" y1="96.1512" x2="95.3622" y2="118.7847" xlink:href="#未命名的渐变_7"/><linearGradient id="未命名的渐变_7-6" x1="116.2206" y1="48.8968" x2="116.2206" y2="173.4002" xlink:href="#未命名的渐变_7"/></defs><title>MaxKB</title><path class="cls-1" d="M128.4532,177H98.7785L87.78,187.9985a4.6069,4.6069,0,0,0,3.2576,7.8644h45.1569a4.6069,4.6069,0,0,0,3.2575-7.8644Z"/><path class="cls-2" d="M210.0008,90.7042h-5.85v41.1511h5.85a4.4537,4.4537,0,0,0,4.4537-4.4537V95.1579A4.4537,4.4537,0,0,0,210.0008,90.7042Z"/><path class="cls-3" d="M28.29,90.7042H22.44a4.4538,4.4538,0,0,0-4.4538,4.4537v32.2437a4.4538,4.4538,0,0,0,4.4538,4.4537h5.85Z"/><path class="cls-4" d="M138.8087,96.1512a8.33,8.33,0,0,0-8.33,8.33v5.9727a8.33,8.33,0,1,0,16.6607,0v-5.9727A8.33,8.33,0,0,0,138.8087,96.1512Z"/><path class="cls-5" d="M95.3622,96.1512a8.33,8.33,0,0,0-8.33,8.33v5.9727a8.33,8.33,0,1,0,16.6607,0v-5.9727A8.33,8.33,0,0,0,95.3622,96.1512Z"/><path class="cls-6" d="M166.8344,48.8968H65.6064A33.7544,33.7544,0,0,0,31.89,82.6131v57.07A33.7548,33.7548,0,0,0,65.6064,173.4h101.228a33.7549,33.7549,0,0,0,33.7168-33.7168v-57.07A33.7545,33.7545,0,0,0,166.8344,48.8968Zm2.831,90.4457a6.0733,6.0733,0,0,1-6.0732,6.0733H114.2168a43.5922,43.5922,0,0,0-21.3313,5.5757l-16.5647,9.2946v-14.87h-7.472a6.0733,6.0733,0,0,1-6.0733-6.0733v-60.5a6.0733,6.0733,0,0,1,6.0733-6.0733h94.7434a6.0733,6.0733,0,0,1,6.0732,6.0733Z"/></svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

3
src/assets/logo_dingtalk.svg

@ -0,0 +1,3 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M32.7371 16.6285C32.6394 16.9833 32.5125 17.3284 32.3563 17.6604H32.3595L32.34 17.7027C31.23 20.1961 28.3297 25.0917 28.3297 25.0917L28.3167 25.0591L27.4704 26.6085H31.5523L23.7531 37.5L25.5239 30.0915H22.3079L23.4244 25.1926C22.5195 25.4205 21.455 25.7362 20.1888 26.1626C20.1888 26.1626 18.4799 27.214 15.2607 24.138C15.2607 24.138 13.0895 22.1328 14.3492 21.6283C14.8831 21.4167 16.9468 21.1466 18.5711 20.9122C20.7617 20.5997 22.1126 20.4337 22.1126 20.4337C22.1126 20.4337 15.3518 20.5411 13.7471 20.2742C12.1423 20.0105 10.1112 17.1982 9.67497 14.7276C9.67497 14.7276 9.00443 13.3702 11.1137 14.0115C13.2262 14.6527 21.9661 16.5113 21.9661 16.5113C21.9661 16.5113 10.6027 12.8559 9.84749 11.964C9.09232 11.0721 7.62103 7.08794 7.81308 4.64339C7.81308 4.64339 7.89771 4.03144 8.49339 4.19419C8.49339 4.19419 16.898 8.23047 22.6431 10.4341C28.3883 12.6443 33.3816 13.7706 32.7371 16.6285Z" fill="#3296FA"/>
</svg>

After

Width:  |  Height:  |  Size: 1023 B

12
src/assets/logo_lark.svg

@ -0,0 +1,12 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="mask0_7009_1160" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="4" y="6" width="34" height="28">
<path d="M37.5349 6.66666H4.00006V33.3333H37.5349V6.66666Z" fill="white"/>
</mask>
<g mask="url(#mask0_7009_1160)">
<path d="M21.4253 20.6715C21.4526 20.644 21.4819 20.6185 21.5093 20.5911C21.5659 20.5381 21.6207 20.4833 21.6755 20.4284L21.7889 20.3171L22.1305 19.9789L22.5946 19.5204L22.9929 19.1257L23.3674 18.7548L23.7585 18.3693L24.1166 18.0148L24.6154 17.5215C24.7103 17.4284 24.8073 17.3369 24.9059 17.2475C25.0867 17.0812 25.2731 16.9223 25.465 16.7688C25.6403 16.6281 25.8213 16.4928 26.0039 16.3613C26.2615 16.1787 26.5283 16.0068 26.8006 15.8461C27.0674 15.6889 27.3414 15.5409 27.6227 15.4057C27.8859 15.2779 28.1563 15.1609 28.4303 15.0531C28.5838 14.9928 28.7373 14.9361 28.8945 14.8832C28.973 14.8557 29.0515 14.8301 29.1302 14.8064C28.4267 12.0365 27.1405 9.50052 25.4065 7.33532C25.0703 6.91146 24.555 6.66666 24.0106 6.66666H9.62754C9.36634 6.66666 9.25848 6.99919 9.46861 7.15266C14.3617 10.7393 18.4434 15.3637 21.3923 20.7025C21.4033 20.6933 21.4142 20.6824 21.4253 20.6715Z" fill="#00D6B9"/>
<path d="M15.721 33.3333C23.1482 33.3333 29.6179 29.2351 32.9945 23.1764C33.1133 22.9645 33.2283 22.7489 33.3379 22.5315C33.1662 22.8603 32.9781 23.1709 32.7715 23.4633C32.6985 23.5675 32.6235 23.6697 32.545 23.7703C32.4482 23.8963 32.3477 24.0169 32.2454 24.1356C32.1631 24.2288 32.0809 24.3201 31.995 24.4097C31.8215 24.5907 31.6406 24.7605 31.4523 24.9213C31.3482 25.0108 31.2423 25.0967 31.1326 25.1808C31.0047 25.2776 30.875 25.3708 30.7435 25.4603C30.6594 25.5169 30.5754 25.5717 30.4895 25.6229C30.3999 25.6777 30.3105 25.7306 30.2173 25.7818C30.0309 25.886 29.8409 25.9811 29.6473 26.0688C29.4791 26.1455 29.3074 26.2149 29.1338 26.2788C28.9455 26.3483 28.7538 26.4085 28.5601 26.4633C28.2714 26.5437 27.979 26.6059 27.6794 26.6535C27.4638 26.6863 27.2463 26.7119 27.0253 26.7265C26.7951 26.7429 26.5613 26.7484 26.3255 26.7448C26.0679 26.741 25.8085 26.7247 25.5454 26.6955C25.3535 26.6753 25.1598 26.6461 24.9679 26.6132C24.7999 26.584 24.6318 26.5475 24.4619 26.5072C24.3723 26.4853 24.2846 26.4633 24.1951 26.4396C23.9466 26.372 23.6999 26.3044 23.4551 26.2332C23.3327 26.1984 23.2103 26.1619 23.0879 26.1253C22.9051 26.0705 22.7225 26.0157 22.5415 25.9591C22.3935 25.9135 22.2438 25.8659 22.0958 25.8165C21.9551 25.7709 21.8143 25.7252 21.6737 25.6777C21.5787 25.6448 21.4818 25.6137 21.3869 25.5809C21.2699 25.5407 21.1549 25.5005 21.0397 25.4603C20.9575 25.4311 20.8734 25.4018 20.7913 25.3727C20.6267 25.3141 20.4642 25.2539 20.3015 25.1936C20.2065 25.1588 20.1134 25.1223 20.0183 25.0857C19.8923 25.0383 19.7662 24.9889 19.6401 24.9396C19.5067 24.8865 19.3751 24.8355 19.2418 24.7807C19.1559 24.7459 19.0701 24.7112 18.9842 24.6747C18.8782 24.6308 18.7705 24.5869 18.6645 24.5413C18.5822 24.5065 18.5001 24.4719 18.4178 24.4371C18.3319 24.4005 18.2461 24.364 18.1619 24.3257C18.0889 24.2928 18.0139 24.2617 17.9409 24.2288C17.8733 24.1996 17.8057 24.1685 17.7381 24.1393C17.6705 24.1083 17.6011 24.0772 17.5335 24.0461C17.4622 24.0132 17.3927 23.9821 17.3215 23.9493C17.2319 23.9072 17.1443 23.8671 17.0547 23.8251C16.9615 23.7812 16.8685 23.7373 16.777 23.6935C16.6783 23.646 16.5797 23.5985 16.481 23.5492C16.397 23.5071 16.313 23.4669 16.2289 23.4249C11.7817 21.2013 7.83513 18.2377 4.46597 14.6475C4.29787 14.4684 4.00006 14.5872 4.00006 14.832L4.00737 27.5249V28.5554C4.00737 29.1529 4.30337 29.7156 4.80034 30.0464C7.92833 32.122 11.683 33.3333 15.721 33.3333Z" fill="#3370FF"/>
<path d="M32.9945 23.1764C32.9909 23.1819 32.9871 23.1873 32.9854 23.1929L32.9945 23.1764L33.0621 23.0521C33.0383 23.0943 33.0163 23.1344 32.9945 23.1764Z" fill="#133C92"/>
<path d="M33.3033 22.5954L33.3216 22.5625L33.3306 22.5461C33.3215 22.5625 33.3123 22.5789 33.3033 22.5954Z" fill="#133C92"/>
<path d="M37.5348 15.4422C36.0292 14.7005 34.3355 14.2838 32.5431 14.2838C31.4779 14.2838 30.4475 14.43 29.4718 14.706C29.3586 14.737 29.2471 14.7717 29.1356 14.8064C29.0571 14.832 28.9784 14.8576 28.8999 14.8832C28.7428 14.9361 28.5892 14.9928 28.4358 15.053C28.1618 15.1609 27.8914 15.2778 27.6283 15.4057C27.3468 15.5409 27.0728 15.6889 26.806 15.8461C26.532 16.0068 26.2671 16.1786 26.0094 16.3613C25.8248 16.491 25.6458 16.6281 25.4704 16.7688C25.2786 16.9222 25.0922 17.083 24.9114 17.2474C24.8127 17.3369 24.7158 17.4284 24.6208 17.5214L24.122 18.0148L23.7639 18.3693L23.3728 18.7548L22.9983 19.1257L22.6 19.5204L22.1359 19.9789L21.7943 20.317L21.681 20.4284C21.6262 20.4833 21.5695 20.5362 21.5147 20.591C21.4874 20.6185 21.458 20.644 21.4307 20.6714C21.3887 20.7116 21.3466 20.7518 21.3046 20.792C21.2571 20.8358 21.2114 20.8797 21.1639 20.9236C19.9324 22.0545 18.5566 23.0321 17.0675 23.8232C17.1552 23.8652 17.2448 23.9073 17.3343 23.9474C17.4038 23.9804 17.475 24.0132 17.5463 24.0442C17.6139 24.0753 17.6832 24.1064 17.7508 24.1374C17.8184 24.1685 17.886 24.1977 17.9536 24.227C18.0268 24.2598 18.1016 24.2928 18.1748 24.3238C18.2607 24.3604 18.3447 24.3988 18.4306 24.4353C18.5128 24.47 18.595 24.5048 18.6772 24.5394C18.7832 24.585 18.891 24.6289 18.997 24.6728C19.0828 24.7076 19.1687 24.7422 19.2546 24.7788C19.3862 24.8317 19.5195 24.8848 19.6528 24.9377C19.779 24.987 19.9051 25.0364 20.0311 25.084C20.1262 25.1205 20.2194 25.1552 20.3143 25.1917C20.477 25.252 20.6395 25.3122 20.804 25.3708C20.8862 25.4 20.9684 25.4292 21.0524 25.4585C21.1676 25.4986 21.2846 25.5389 21.3996 25.579C21.4946 25.612 21.5915 25.6448 21.6864 25.6758C21.8271 25.7234 21.9679 25.769 22.1086 25.8148C22.2566 25.8622 22.4046 25.9097 22.5543 25.9573C22.7352 26.0138 22.9179 26.0688 23.1007 26.1236C23.2231 26.1601 23.3455 26.1966 23.4679 26.2313C23.7127 26.3026 23.9594 26.372 24.2079 26.4378C24.2974 26.4616 24.3851 26.4853 24.4747 26.5054C24.6446 26.5456 24.8127 26.5804 24.9807 26.6113C25.1744 26.6461 25.3663 26.6734 25.5582 26.6936C25.8194 26.7228 26.0807 26.7393 26.3383 26.7429C26.574 26.7466 26.806 26.741 27.038 26.7246C27.2591 26.7082 27.4766 26.6845 27.6922 26.6516C27.9918 26.6058 28.2842 26.542 28.5728 26.4616C28.7666 26.4085 28.9584 26.3465 29.1466 26.277C29.3202 26.213 29.4919 26.1436 29.66 26.0669C29.8536 25.9792 30.0436 25.8842 30.23 25.78C30.3214 25.7289 30.4127 25.6758 30.5023 25.621C30.5882 25.5681 30.6722 25.5133 30.7563 25.4585C30.8878 25.3689 31.0175 25.2757 31.1454 25.1789C31.2532 25.0949 31.361 25.009 31.4651 24.9194C31.6534 24.7586 31.8343 24.5869 32.0078 24.4078C32.0936 24.3184 32.1759 24.2288 32.2582 24.1338C32.3604 24.015 32.461 23.8945 32.5578 23.7684C32.6346 23.6678 32.7112 23.5656 32.7843 23.4614C32.989 23.1709 33.1754 22.8621 33.3452 22.5369L33.5371 22.1532L35.2766 18.6872L35.2728 18.6945C35.8192 17.474 36.592 16.3741 37.5348 15.4422Z" fill="#133C9A"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.7 KiB

7
src/assets/logo_wechat-work.svg

@ -0,0 +1,7 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M26.9508 30.4241C26.7624 30.6118 26.7508 30.9095 26.9144 31.1116C26.9254 31.1254 26.9374 31.1388 26.9508 31.1522C26.9732 31.1746 26.9976 31.1938 27.0227 31.2117C27.0729 31.2584 27.1227 31.3066 27.1715 31.3554C28.1351 32.3193 28.7408 33.5049 28.9893 34.7479C28.9934 34.8177 29.001 34.8875 29.0127 34.9569C29.0247 35.0332 29.0409 35.1092 29.0612 35.1841C29.1564 35.5334 29.341 35.8637 29.6153 36.1381C30.4561 36.9789 31.8195 36.9789 32.6599 36.1381C33.5008 35.2972 33.5008 33.9342 32.6599 33.0934C32.3636 32.7967 32.002 32.6056 31.6218 32.518C31.5795 32.5083 31.5365 32.4997 31.4936 32.4929C31.4506 32.4856 31.4073 32.4795 31.3633 32.4746C30.0893 32.2375 28.8714 31.6263 27.8862 30.6407C27.815 30.5699 27.7459 30.4974 27.6792 30.4238L27.6789 30.4241C27.5782 30.3238 27.4465 30.2732 27.3149 30.2732C27.1829 30.2732 27.0512 30.3238 26.9508 30.4241Z" fill="#FB6500"/>
<path d="M35.7037 27.0198C35.4074 27.3168 35.2163 27.6781 35.1286 28.0583C35.119 28.1006 35.1104 28.1436 35.1028 28.1865C35.096 28.2298 35.0898 28.2732 35.0853 28.3168C34.8481 29.5904 34.2369 30.8087 33.2514 31.7943C33.1802 31.8651 33.1077 31.9342 33.0345 32.0009L33.0348 32.0012C32.8337 32.2023 32.8337 32.5282 33.0348 32.7293C33.2225 32.9173 33.5198 32.9293 33.7223 32.7657C33.7357 32.7547 33.7495 32.7427 33.7625 32.7293C33.7849 32.7069 33.8045 32.6829 33.8223 32.6578C33.8691 32.6072 33.9165 32.5577 33.966 32.5086C34.9296 31.545 36.1152 30.9393 37.3582 30.6911C37.4284 30.687 37.4981 30.6795 37.5676 30.6678C37.6439 30.6557 37.7195 30.6396 37.7945 30.6186C38.1444 30.5234 38.4744 30.3395 38.7487 30.0652C39.5895 29.2243 39.5895 27.8613 38.7487 27.0198C38.3283 26.5994 37.7773 26.3894 37.2262 26.3894C36.6752 26.3894 36.1241 26.5994 35.7037 27.0198Z" fill="#3880E7"/>
<path d="M29.6306 20.9315C28.7905 21.7723 28.7905 23.1357 29.6306 23.9765C29.9269 24.2728 30.2882 24.4643 30.6684 24.5516C30.7114 24.5612 30.7544 24.5698 30.7973 24.577C30.8406 24.5842 30.884 24.5904 30.9273 24.5949C32.2016 24.8324 33.4192 25.4433 34.4047 26.4288C34.4759 26.4997 34.545 26.5729 34.612 26.6458C34.8134 26.8469 35.139 26.8469 35.3404 26.6458C35.5285 26.4577 35.5401 26.1604 35.3765 25.9582C35.3648 25.9441 35.3531 25.9304 35.3404 25.9177C35.3181 25.895 35.2933 25.8757 35.2686 25.8585C35.218 25.8111 35.1685 25.763 35.1194 25.7142C34.1555 24.7506 33.5501 23.565 33.3013 22.3216C33.2978 22.2519 33.2899 22.1821 33.2789 22.113C33.2669 22.0367 33.25 21.9607 33.2301 21.8854C33.1342 21.5362 32.9499 21.2061 32.676 20.9315C32.2556 20.5111 31.7042 20.3007 31.1531 20.3007C30.6021 20.3007 30.051 20.5111 29.6306 20.9315Z" fill="#2DBC00"/>
<path d="M28.5685 24.3038C28.5547 24.3155 28.541 24.3272 28.5283 24.3406C28.5056 24.3629 28.4863 24.3866 28.4684 24.4121C28.4217 24.4623 28.3739 24.5118 28.3248 24.5609C27.3612 25.5248 26.1756 26.1305 24.9322 26.3784C24.8624 26.3825 24.7927 26.3904 24.7232 26.4017C24.6469 26.4134 24.5709 26.4303 24.496 26.4509C24.1464 26.5461 23.8164 26.7304 23.5417 27.0043C22.7009 27.8455 22.7009 29.2089 23.5417 30.0497C24.3829 30.8905 25.7459 30.8905 26.5871 30.0497C26.883 29.7537 27.0749 29.3921 27.1625 29.0119C27.1718 28.9689 27.1807 28.9259 27.1873 28.883C27.1948 28.8397 27.2003 28.7964 27.2055 28.753C27.443 27.4791 28.0539 26.2611 29.0394 25.2753C29.1106 25.2044 29.1831 25.1357 29.2567 25.0687L29.2563 25.0683C29.4571 24.8672 29.4571 24.5413 29.2563 24.3406C29.1556 24.2399 29.024 24.1897 28.892 24.1897C28.7771 24.1897 28.6627 24.2278 28.5685 24.3038Z" fill="#FFCC00"/>
<path d="M15.5511 5.69592C11.6835 6.11633 8.16861 7.77118 5.65369 10.3549C4.66092 11.3748 3.85206 12.5143 3.24911 13.7419C2.43097 15.407 2.01605 17.175 2.01605 18.9962C2.01605 21.341 2.72969 23.6527 4.07997 25.6823C4.7637 26.7105 5.8816 28.0054 6.91046 28.9177V28.9198L6.4457 32.5736C6.42714 32.6234 6.4072 32.6726 6.39586 32.7252C6.3852 32.7726 6.38211 32.8221 6.37695 32.8713C6.3742 32.9084 6.36595 32.9448 6.36595 32.9833C6.36595 33.0239 6.3742 33.0624 6.37798 33.1026C6.43917 33.7038 6.94037 34.1751 7.55776 34.1751C7.77295 34.1751 7.97198 34.1136 8.14592 34.0136C8.15142 34.0105 8.15761 34.0077 8.16277 34.0046C8.18855 33.9895 8.21433 33.9764 8.23874 33.9593L9.34907 33.402L12.6584 31.741C13.6096 32.0143 14.5536 32.1886 15.5487 32.2979C16.1957 32.369 16.8519 32.4055 17.5006 32.4055C18.1613 32.4055 18.8467 32.3656 19.5366 32.2872C20.8941 32.1329 22.1997 31.8197 23.439 31.3752C23.3049 31.3302 23.1733 31.2725 23.0457 31.1996C22.2874 30.7661 21.8952 29.9411 21.9729 29.1247C21.0873 29.4059 20.1623 29.6076 19.2066 29.7163C18.6264 29.7823 18.0523 29.8156 17.5006 29.8156C16.9578 29.8156 16.4088 29.7854 15.867 29.7259C15.7543 29.7139 15.6415 29.696 15.5288 29.6809C14.7849 29.5819 14.0499 29.4299 13.3394 29.2223C13.195 29.1762 13.0414 29.1525 12.8846 29.1525C12.6392 29.1525 12.4016 29.2175 12.161 29.3423C12.1297 29.3584 12.0984 29.3718 12.0672 29.39L9.34907 30.9919L9.23151 31.0617L9.22841 31.0631C9.16929 31.0975 9.13629 31.1105 9.10604 31.1105C9.006 31.1105 8.92522 31.0263 8.92522 30.9225L9.03007 30.4993C9.05963 30.3873 9.10122 30.2302 9.15072 30.0387C9.20985 29.8142 9.27895 29.5502 9.34907 29.2842C9.42642 28.9899 9.50376 28.6932 9.56976 28.4416C9.59727 28.3436 9.62511 28.2261 9.62511 28.0941C9.62511 27.7287 9.45082 27.3839 9.15966 27.1721C9.0115 27.0628 8.86369 26.948 8.70831 26.8215C8.47043 26.6273 8.24252 26.4255 8.02355 26.2179C7.40788 25.6338 6.86749 24.9965 6.41305 24.3134C5.34431 22.7064 4.77883 20.8827 4.77883 19.0395C4.77883 17.6088 5.10608 16.218 5.75097 14.9045C6.23326 13.9237 6.88193 13.0104 7.68048 12.1902C9.74783 10.0658 12.6553 8.70379 15.867 8.35487C16.4253 8.29437 16.9753 8.26309 17.5006 8.26309C18.052 8.26309 18.6257 8.29644 19.2066 8.36278C22.4032 8.72579 25.2935 10.095 27.3454 12.217C28.1402 13.0392 28.7858 13.9547 29.2643 14.9378C29.8989 16.2424 30.2206 17.6226 30.2206 19.0395C30.2206 19.1863 30.2113 19.3334 30.2045 19.4802C31.0333 18.9728 32.1288 19.0722 32.8473 19.7899C32.8834 19.8267 32.9139 19.8663 32.9466 19.9044C32.97 19.6026 32.9837 19.2997 32.9837 18.9962C32.9837 17.1918 32.5753 15.438 31.7703 13.7838C31.1721 12.5528 30.3671 11.4109 29.3787 10.3882C26.882 7.80658 23.3864 6.14314 19.5366 5.7052C18.8454 5.62682 18.1602 5.58694 17.5006 5.58694C16.8712 5.58694 16.2156 5.62338 15.5511 5.69592Z" fill="#0082EF"/>
</svg>

After

Width:  |  Height:  |  Size: 6.2 KiB

3
src/assets/logo_wechat.svg

@ -0,0 +1,3 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M26.4855 13.974C26.9025 13.974 27.3196 14.0125 27.7345 14.0489C26.6184 8.86961 21.0198 5 14.6421 5C7.51045 5.02502 1.66672 9.84509 1.66672 15.9656C1.66672 19.4941 3.61468 22.4043 6.85045 24.6575L5.54437 28.5227L10.0863 26.2719C11.7134 26.5901 13.0196 26.9084 14.6261 26.9084C15.0432 26.9084 15.4397 26.8902 15.8361 26.8538C15.5785 25.9748 15.4451 25.0642 15.4397 24.1483C15.4581 18.537 20.3208 13.9762 26.4878 13.9762L26.4855 13.974H26.4855ZM19.5051 10.4862C20.4905 10.4862 21.1321 11.1228 21.1321 12.1004C21.1321 13.0553 20.4905 13.7147 19.5051 13.7147C18.5402 13.7147 17.5571 13.0759 17.5571 12.1003C17.5571 11.1228 18.5402 10.4862 19.5051 10.4862ZM10.4231 13.7147C9.46072 13.7147 8.47535 13.0759 8.47535 12.1003C8.47535 11.1228 9.46072 10.4862 10.4231 10.4862C11.388 10.4862 12.0503 11.1228 12.0503 12.1004C12.0503 13.0553 11.4086 13.7147 10.4231 13.7147ZM38.3334 24.0141C38.3334 18.8712 33.1497 14.6674 27.3012 14.6674C21.1343 14.6674 16.2714 18.8712 16.2714 24.0141C16.2714 29.1752 21.1343 33.3631 27.3012 33.3631C28.5892 33.3631 29.8953 33.0448 31.1994 32.7243L34.756 34.6568L33.7729 31.4464C36.3854 29.4776 38.3334 26.9038 38.3334 24.0141ZM23.7262 22.3997C23.0846 22.3997 22.42 21.7632 22.42 21.1039C22.42 20.4673 23.0846 19.808 23.7262 19.808C24.7116 19.808 25.3534 20.4469 25.3534 21.1039C25.3534 21.7632 24.7116 22.3997 23.7262 22.3997ZM30.8602 22.3997C30.2163 22.3997 29.5722 21.7632 29.5722 21.1039C29.5722 20.4673 30.214 19.808 30.8602 19.808C31.8433 19.808 32.4872 20.4469 32.4872 21.1039C32.4872 21.7632 31.8433 22.3997 30.8602 22.3997Z" fill="#09BB07"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

5
src/assets/md-icon.svg

@ -0,0 +1,5 @@
<svg width="40" height="42" viewBox="0 0 40 42" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.66663 5.16667C6.66663 4.24619 7.41282 3.5 8.33329 3.5H24.6548C24.8758 3.5 25.0878 3.5878 25.244 3.74408L33.0892 11.5893C33.2455 11.7455 33.3333 11.9575 33.3333 12.1785V36.8333C33.3333 37.7538 32.5871 38.5 31.6666 38.5H8.33329C7.41282 38.5 6.66663 37.7538 6.66663 36.8333V5.16667Z" fill="#14C0FF"/>
<path d="M10 29.2051V21H12.0513L15.1282 24.0769L18.2051 21H20.2564V29.2051H18.2051V23.9026L15.1282 26.9795L12.0513 23.9026V29.2051H10ZM24.359 21H27.4359V25.1026H30L25.8974 29.7179L21.7949 25.1026H24.359V21Z" fill="white"/>
<path d="M25 3.57495C25.09 3.6159 25.1728 3.67292 25.2441 3.74418L33.0893 11.5894C33.1605 11.6606 33.2175 11.7434 33.2585 11.8334H26.6667C25.7462 11.8334 25 11.0872 25 10.1668V3.57495Z" fill="#11A3D9"/>
</svg>

After

Width:  |  Height:  |  Size: 839 B

5
src/assets/pdf-icon.svg

@ -0,0 +1,5 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4 2.5C4 1.94772 4.44772 1.5 5 1.5H14.7929C14.9255 1.5 15.0527 1.55268 15.1464 1.64645L19.8536 6.35355C19.9473 6.44732 20 6.5745 20 6.70711V21.5C20 22.0523 19.5523 22.5 19 22.5H5C4.44772 22.5 4 22.0523 4 21.5V2.5Z" fill="#F54A45"/>
<path d="M15 1.54492C15.054 1.56949 15.1037 1.6037 15.1464 1.64646L19.8536 6.35357C19.8963 6.39632 19.9305 6.44602 19.9551 6.50001H16C15.4477 6.50001 15 6.0523 15 5.50001V1.54492Z" fill="#D03F3B"/>
<path d="M17.6091 15.2316C17.3608 14.9368 16.8517 14.7934 16.0526 14.7934C15.5881 14.7934 15.027 14.8425 14.3839 14.9392C12.6276 13.6551 12.1372 12.2384 12.1372 12.2384C12.1372 12.2384 12.4371 11.4747 12.4562 10.2274C12.4682 9.43896 12.3461 8.9071 12.0307 8.59811C11.908 8.478 11.7023 8.40039 11.5066 8.40039C11.3539 8.40039 11.2109 8.44525 11.0937 8.53102C10.1806 9.19913 11.1775 12.3487 11.2041 12.4326C10.7733 13.4931 10.2305 14.6165 9.6718 15.6037C9.49028 15.9244 9.50797 15.8994 9.35494 16.1602C9.35494 16.1602 7.80983 16.8859 7.06037 17.7773C6.63691 18.281 6.58338 18.621 6.60586 18.8801L6.60643 18.8858C6.6421 19.1909 7.03273 19.4688 7.42598 19.4688C7.44229 19.4688 7.45871 19.4683 7.47478 19.4673C7.87445 19.4426 8.31243 19.1586 8.81374 18.5991C9.14462 18.2297 9.57462 17.5798 10.0924 16.6668C11.5778 16.2442 12.8851 15.9432 13.9807 15.7716C14.7842 16.204 15.9795 16.6936 16.7932 16.6936C17.0661 16.6936 17.2857 16.638 17.4458 16.5282C17.6373 16.397 17.7187 16.2334 17.7692 15.9306C17.8198 15.6278 17.7494 15.3982 17.6091 15.2316ZM15.8737 15.6003C16.5879 15.6003 16.9745 15.7041 17.1732 15.7912C17.2345 15.8181 17.279 15.844 17.3106 15.8657C17.2547 15.9014 17.1446 15.9466 16.9456 15.9466C16.6156 15.9466 16.1826 15.8314 15.6544 15.6034C15.7295 15.6013 15.8027 15.6003 15.8737 15.6003ZM11.6412 9.03253C11.6417 9.03159 11.6422 9.03062 11.6429 9.02961C11.7961 9.11028 11.8676 9.67679 11.8532 10.0053C11.8339 10.4461 11.8293 10.6164 11.752 10.8872C11.5422 10.3226 11.5273 9.30775 11.6412 9.03253ZM11.6972 13.5014C12.0575 14.0864 12.5917 14.7201 13.1065 15.1725C12.1018 15.3848 11.1372 15.651 10.537 15.8581C11.1803 14.7595 11.655 13.6103 11.6972 13.5014ZM7.56217 18.5462C7.64933 18.401 7.88748 18.1197 8.49143 17.5757C8.07746 18.1983 7.77338 18.5373 7.46488 18.7488C7.49042 18.6821 7.52255 18.6122 7.56217 18.5462Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
src/assets/theme/default.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 770 KiB

BIN
src/assets/theme/green.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 647 KiB

BIN
src/assets/theme/orange.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 674 KiB

BIN
src/assets/theme/purple.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 602 KiB

BIN
src/assets/theme/red.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 KiB

BIN
src/assets/tipIMG.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

7
src/assets/txt-icon.svg

@ -0,0 +1,7 @@
<svg width="40" height="42" viewBox="0 0 40 42" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.66699 5.16667C6.66699 4.24619 7.41318 3.5 8.33366 3.5H24.6551C24.8762 3.5 25.0881 3.5878 25.2444 3.74408L33.0896 11.5893C33.2459 11.7455 33.3337 11.9575 33.3337 12.1785V36.8333C33.3337 37.7538 32.5875 38.5 31.667 38.5H8.33366C7.41318 38.5 6.66699 37.7538 6.66699 36.8333V5.16667Z" fill="#3370FF"/>
<path d="M25.0532 21.8466H22.9132V20.5266H28.7632V21.8466H26.6232V27.6666H25.0532V21.8466Z" fill="white"/>
<path d="M18.5533 23.9266L16.2533 20.5266H18.0733L19.4733 22.8066L20.9233 20.5266H22.6433L20.3533 23.9366L22.8433 27.6666H20.9733L19.4133 25.1966L17.8233 27.6666H16.0633L18.5533 23.9266Z" fill="white"/>
<path d="M12.27 21.8466H10.13V20.5266H15.98V21.8466H13.84V27.6666H12.27V21.8466Z" fill="white"/>
<path d="M25 3.57495C25.09 3.6159 25.1728 3.67292 25.2441 3.74418L33.0893 11.5894C33.1605 11.6606 33.2175 11.7434 33.2585 11.8334H26.6667C25.7462 11.8334 25 11.0872 25 10.1668V3.57495Z" fill="#2B5FD9"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

5
src/assets/unknow-icon.svg

@ -0,0 +1,5 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 2.5C4 1.94772 4.44772 1.5 5 1.5H14.7929C14.9255 1.5 15.0527 1.55268 15.1464 1.64645L19.8536 6.35355C19.9473 6.44732 20 6.5745 20 6.70711V21.5C20 22.0523 19.5523 22.5 19 22.5H5C4.44772 22.5 4 22.0523 4 21.5V2.5Z" fill="#8F959E"/>
<path d="M15 1.54492C15.054 1.56949 15.1037 1.6037 15.1464 1.64646L19.8536 6.35357C19.8963 6.39632 19.9305 6.44602 19.9551 6.50001H16C15.4477 6.50001 15 6.0523 15 5.50001V1.54492Z" fill="#646A73"/>
<path d="M14.288 9.86441C13.7422 9.34739 13.026 9.09082 12.1353 9.09082C11.1347 9.09082 10.3505 9.41162 9.78235 10.065C9.30108 10.6265 9.04179 11.1646 9.00471 12.013C9.00384 12.033 9.00309 12.0697 9.00247 12.1122C9.00043 12.2508 9.11287 12.3635 9.25147 12.3635H9.84253C9.98 12.3635 10.0914 12.2525 10.0936 12.1151C10.0943 12.0737 10.0951 12.038 10.0961 12.0189C10.1251 11.4328 10.278 11.1262 10.5508 10.7851C10.8953 10.3259 11.4006 10.0999 12.0943 10.0999C12.7134 10.0999 13.1776 10.2578 13.4979 10.5782C13.8033 10.8963 13.9625 11.3294 13.9625 11.8726C13.9625 12.2435 13.8281 12.5967 13.5549 12.948C13.4678 13.0568 13.3425 13.1862 12.9388 13.5899C12.3012 14.1474 11.9073 14.601 11.6993 15.0468C11.5282 15.3888 11.441 15.7775 11.441 16.1954V16.4772C11.441 16.6153 11.5529 16.7272 11.691 16.7272H12.2956C12.4336 16.7272 12.5456 16.6153 12.5456 16.4772V16.1954C12.5456 15.8413 12.6327 15.5237 12.8133 15.2141C12.9486 14.9841 13.1223 14.8038 13.4251 14.5389C14.0321 13.9897 14.3689 13.6625 14.5198 13.4705C14.8821 12.9923 15.0671 12.4446 15.0671 11.8454C15.0671 11.0185 14.8075 10.355 14.288 9.86441ZM11.7046 17.8181C11.5666 17.8181 11.4546 17.93 11.4546 18.0681V18.659C11.4546 18.7971 11.5666 18.909 11.7046 18.909H12.2956C12.4336 18.909 12.5456 18.7971 12.5456 18.659V18.0681C12.5456 17.93 12.4336 17.8181 12.2956 17.8181H11.7046Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save