diff --git a/.github/scripts/gen_changelog.py b/.github/scripts/gen_changelog.py new file mode 100644 index 000000000..91793c919 --- /dev/null +++ b/.github/scripts/gen_changelog.py @@ -0,0 +1,139 @@ +#!/usr/bin/env python3 +""" +If version already exists in changelog.md, exit 0 without modification. +Usage: python .github/scripts/gen_changelog.py v4.10.9 +""" +from __future__ import annotations +import sys, json, re, html, urllib.request +from datetime import datetime, timezone, timedelta +from pathlib import Path + +API_URL = "https://community.fit2cloud.com/v1/products/dataease/releases" +CHANGELOG = Path('docs/changelog.md') +MARKER = '## 2 更新内容' +TZ = timezone(timedelta(hours=8)) + +TITLE_MAP = { + '安全漏洞修复': ('Warning', '**安全漏洞修复**', 'fix'), + '新增功能': ('Abstract', '新增功能 :star2:', 'feat'), + '功能优化': ('Abstract', '功能优化 :sunflower:', 'refactor'), + '问题修复': ('Abstract', '问题修复 :palm_tree:', 'fix'), + "What's new": ('Abstract', '新增功能 :star2:', 'feat'), + 'Improvements': ('Abstract', '功能优化 :sunflower:', 'refactor'), + 'Bug fixes': ('Abstract', '问题修复 :palm_tree:', 'fix'), +} +H2_UL = re.compile(r'

]*>([^<]+)

\n?()', re.S) +# 【新增】用于抓取 h2 后面紧跟的 p 标签 (感谢信息) +# 逻辑:匹配

...

后面可能有的换行,然后匹配

...

+H2_P_THANKS = re.compile(r'

]*>[^<]*

\n?(

.*?

)', re.S) +LI = re.compile(r'
  • (.*?)
  • ', re.S) + + +def fetch(): + with urllib.request.urlopen(API_URL, timeout=30) as r: + return json.loads(r.read().decode()) + + +def normalize(v: str) -> str: + return v.replace('-lts','') + + +def find_release(target: str, data): + for rel in data: + if normalize(rel.get('version','')) == target: + return rel + return None + + +def build_block(rel: dict): + version = normalize(rel['version']) + ts = rel.get('publishTime') + dt = datetime.fromtimestamp(ts/1000, tz=TZ) if ts else datetime.now(tz=TZ) + date_str = f"{dt.year}年{dt.month}月{dt.day}日" + html_content = rel.get('releaseNoteH', '') + sections = [] + + for title, ul_html in H2_UL.findall(html_content): + items = LI.findall(ul_html) + cleaned = [] + for it in items: + if not it.strip(): + continue + # 处理 CVE 链接:将 CVE-XXX 转换为 [(CVE-XXX)](url) + def replace_cve_link(match): + url = match.group(1) + cve_text = html.unescape(re.sub(r'<[^>]+>', '', match.group(2)).strip()) + return f'[({cve_text})]({url})' + # 先处理 CVE 链接 + processed = re.sub(r']*>(.*?)', replace_cve_link, it) + # 再清理其他 HTML 标签 + processed = html.unescape(re.sub(r'\s+', ' ', re.sub(r'<[^>]+>', '', processed)).strip()) + if processed: + cleaned.append(processed) + thanks_note = "" + # 简单有效的正则:查找当前 title 对应的 h2 后面的 p + # 构造动态正则:

    ...Title...

    ... ...

    (内容)

    + # 由于 ul_html 内容可能很长且有特殊字符,直接用 title 定位最安全 + safe_title = re.escape(title.strip()) + # 正则解释:匹配包含 title 的 h2,后面任意字符(非贪婪),然后匹配一个

    ...

    + p_pattern = re.compile(r'

    ]*>' + safe_title + r'

    .*?

    (.*?)

    ', re.S) + p_match = p_pattern.search(html_content) + if p_match: + p_content = p_match.group(1) + # 清理 HTML 标签,只留文本 + clean_p = html.unescape(re.sub(r'<[^>]+>', '', p_content)).strip() + # 只有当内容包含"感谢"或者标题包含"安全"/"漏洞"时,才采纳 + if "感谢" in clean_p and "漏洞" in title: + thanks_note = f"\n {clean_p}" + if not cleaned: + continue + admon, nice, tag = TITLE_MAP.get(title, ('info', title, 'note')) + lines = '\n'.join(f" - {i}" for i in cleaned) + if thanks_note: + if lines: + lines += "\n" + thanks_note + sections.append(f"!!! {admon} \"{nice}\"\n\n{lines}\n") + if not sections: + clean = html.unescape(re.sub(r'<[^>]+>','', html_content)).strip() + if clean: + sections.append(f"!!! info \"发布说明\"\n - note: {clean}\n") + block = '\n'.join([f"### {version}", date_str, ''] + sections) + return block + + +def main(): + if len(sys.argv) < 2: + print('Version arg required, e.g. v2.10.1 or v2.10.1-lts or 2.10.1', file=sys.stderr) + return 1 + raw = sys.argv[1].strip() + # Accept forms: v2.10.1 or v2.10.1-lts or 2.10.1 + if not raw.startswith('v'): + raw = 'v' + raw + target = normalize(raw) # remove -lts suffix if present + data = fetch() + rel = find_release(target, data) + if not rel: + print(f'Target version {raw} (normalized {target}) not found in API list', file=sys.stderr) + return 1 + if not CHANGELOG.exists(): + print('Changelog file missing.') + return 1 + content = CHANGELOG.read_text(encoding='utf-8') + # 【修复】使用正则严格匹配 Markdown 标题行 (例如: ### v2.10.19) + # ^ 表示行首,#+ 表示一个或多个#,\s* 表示可选空格,re.escape 防止版本号中的点被当作通配符 + pattern = re.compile(r'^#+\s*' + re.escape(target) + r'\s*$', re.MULTILINE) + + if pattern.search(content): + print(f'⚠️ Version {target} already exists in changelog.md (Detected by regex). Skip.') + return 0 + block = build_block(rel) + if MARKER in content: + new_content = content.replace(MARKER, MARKER + '\n\n' + block, 1) + else: + new_content = MARKER + '\n\n' + block + content + CHANGELOG.write_text(new_content, encoding='utf-8') + print('Inserted changelog for', target) + return 0 + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/.github/workflows/auto-changelog.yml b/.github/workflows/auto-changelog.yml deleted file mode 100644 index 0716384ba..000000000 --- a/.github/workflows/auto-changelog.yml +++ /dev/null @@ -1,98 +0,0 @@ -name: Auto Changelog - -on: - workflow_dispatch: - schedule: - - cron: '00 2-12/2 * * *' - -permissions: - contents: write - pull-requests: write - -jobs: - changelog: - runs-on: ubuntu-latest - steps: - - name: Checkout (full history) - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Setup Python - uses: actions/setup-python@v5 - with: - python-version: '3.x' - - - name: Detect latest & base branch - id: detect - run: | - set -e - raw=$(curl -s https://community.fit2cloud.com/v1/products/dataease/releases | jq -r '.[0].version') - if [ -z "$raw" ] || [ "$raw" = "null" ]; then echo "No version"; exit 1; fi - version=${raw%-lts} - major=$(echo "$version" | sed -E 's/^v([0-9]+).*/\1/') - base_branch="v${major}" - echo "Latest version: $version (major=$major base=$base_branch)" - # verify base branch exists - if ! git ls-remote --exit-code --heads origin "$base_branch" >/dev/null 2>&1; then - echo "Base branch $base_branch not found. Skipping." >&2 - echo "update=false" >> $GITHUB_OUTPUT - echo "version=$version" >> $GITHUB_OUTPUT - echo "base=$base_branch" >> $GITHUB_OUTPUT - exit 0 - fi - # Check remote file content without checkout to avoid ambiguity/detached HEAD issues - if git show "origin/$base_branch:docs/changelog.md" | grep -q "^$version$"; then - echo "Already present in changelog."; upd=false - else - upd=true - fi - echo "version=$version" >> $GITHUB_OUTPUT - echo "base=$base_branch" >> $GITHUB_OUTPUT - echo "update=$upd" >> $GITHUB_OUTPUT - - - name: Generate changelog entry - if: ${{ steps.detect.outputs.update == 'true' }} - run: | - # 先切换到目标基础分支,确保读取正确的 changelog.md - git checkout -B "${{ steps.detect.outputs.base }}" "origin/${{ steps.detect.outputs.base }}" - python .github/scripts/gen_changelog.py "${{ steps.detect.outputs.version }}" - echo 'Preview:' - grep -n "^${{ steps.detect.outputs.version }}$" -A12 docs/changelog.md || true - - - name: Stage changes - if: ${{ steps.detect.outputs.update == 'true' }} - run: | - set -e - # Ensure we are on the correct base branch before staging - base="${{ steps.detect.outputs.base }}" - git checkout -B "$base" "origin/$base" - - # Run generation again to ensure file is updated in the correct branch context if needed - # (Optional, but safe if the previous step modified a file in a detached head or different branch) - python .github/scripts/gen_changelog.py "${{ steps.detect.outputs.version }}" - - git config user.name 'github-actions[bot]' - git config user.email 'github-actions[bot]@users.noreply.github.com' - git add docs/changelog.md - - - name: Create Pull Request - if: ${{ steps.detect.outputs.update == 'true' }} - uses: peter-evans/create-pull-request@v6 - with: - branch: chore/changelog-${{ steps.detect.outputs.version }} - title: "chore: add changelog for ${{ steps.detect.outputs.version }}" - commit-message: "chore: add changelog for ${{ steps.detect.outputs.version }}" - body: | - 自动生成的更新日志条目: **${{ steps.detect.outputs.version }}** - - 目标基础分支: `${{ steps.detect.outputs.base }}` - - 请 @Jackwonder 审核。 - base: ${{ steps.detect.outputs.base }} - reviewers: Jackwonder - delete-branch: true - - - name: Skip - if: ${{ steps.detect.outputs.update != 'true' }} - run: echo "No changelog update needed (version=${{ steps.detect.outputs.version }}, base=${{ steps.detect.outputs.base }})." diff --git a/.github/workflows/mike-deploy.yml b/.github/workflows/mike-deploy.yml new file mode 100644 index 000000000..9038630f7 --- /dev/null +++ b/.github/workflows/mike-deploy.yml @@ -0,0 +1,35 @@ +name: Mkdocs Build + +on: + push: + branches: [ "v1", "v2" ] + workflow_dispatch: + +jobs: + mike-deploy: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + with: + token: ${{ secrets.GITHUB_TOKEN }} + - name: Set up Python + uses: actions/setup-python@v3 + with: + python-version: '3.*' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install setuptools==80.10.2 + pip install -r requirements/requirements.txt + pip install mike==1.1.2 + - name: Config Git + run: | + git config user.name "$(git log -n 1 --pretty=format:%an)" + git config user.email "$(git log -n 1 --pretty=format:%ae)" + - name: Build package + run: | + git fetch origin deploy:deploy + mike deploy --push --branch deploy --rebase ${{ github.ref_name }} + mike set-default -b deploy ${{ github.ref_name }} diff --git a/.github/workflows/oss-deploy.yml b/.github/workflows/oss-deploy.yml deleted file mode 100644 index 6a04eb879..000000000 --- a/.github/workflows/oss-deploy.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: Deploy Docs to OSS -on: - push: - branches: [ "deploy" ] - workflow_dispatch: -jobs: - ssh-deploy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Install ossutil - run: | - sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash - - - name: Deploy OSS - env: - ACCESS_KEY_ID: ${{ secrets.DATAEASE_OSS_AK }} - ACCESS_KEY_SECRET: ${{ secrets.DATAEASE_OSS_SK }} - ACCESS_KEY_BUCKET: ${{ secrets.DATAEASE_OSS_BUCKET }} - run: | - ossutil cp -r -f ./ oss://$ACCESS_KEY_BUCKET/docs --access-key-id=$ACCESS_KEY_ID --access-key-secret=$ACCESS_KEY_SECRET --endpoint=oss-cn-zhangjiakou.aliyuncs.com --exclude '.git*' diff --git a/.github/workflows/ssh-deploy-cn.yml b/.github/workflows/ssh-deploy-cn.yml deleted file mode 100644 index a8818f20e..000000000 --- a/.github/workflows/ssh-deploy-cn.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: Deploy to dataease.cn server -on: - workflow_dispatch: -jobs: - deploy-to-server: - runs-on: ubuntu-latest - steps: - - name: Check - uses: actions/checkout@v4 - - name: ssh deploy - uses: easingthemes/ssh-deploy@v2.2.11 - with: - SSH_PRIVATE_KEY: ${{ secrets.DE_CN_HOST_KEY }} - REMOTE_HOST: ${{ secrets.DE_CN_HOST }} - REMOTE_USER: ${{ secrets.DE_CN_HOST_USERNAME }} - SOURCE: ./ - TARGET: /opt/dataease/docs/ - # Arguments to pass to rsync - ARGS: "-rltgoDzvO --delete" - # An array of folder to exclude - EXCLUDE: ".git/" diff --git a/.github/workflows/ssh-deploy.yml b/.github/workflows/ssh-deploy.yml deleted file mode 100644 index 68f400ec5..000000000 --- a/.github/workflows/ssh-deploy.yml +++ /dev/null @@ -1,39 +0,0 @@ -# This is a basic workflow to help you get started with Actions - -name: Deploy Docs to Server - -# Controls when the workflow will run -on: - # Triggers the workflow on push or pull request events but only for the "master" branch - push: - branches: [ "deploy" ] - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel -jobs: - # This workflow contains a single job called "build" - ssh-deploy: - # The type of runner that the job will run on - runs-on: ubuntu-latest - - # Steps represent a sequence of tasks that will be executed as part of the job - steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 - - - name: ssh deploy - uses: easingthemes/ssh-deploy@v2.2.11 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - SSH_PRIVATE_KEY: ${{ secrets.SSH_KEY }} - REMOTE_HOST: dataease.io - REMOTE_USER: root - SOURCE: ./ - TARGET: /opt/dataease/docs - # Arguments to pass to rsync - ARGS: "-rltgoDzvO --delete" - # An array of folder to exclude - EXCLUDE: ".git/" diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..7af512651 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.idea/ +*.iml +target/ +.DS_Store diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..f288702d2 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md index daa7a9998..794381e5a 100644 --- a/README.md +++ b/README.md @@ -1 +1,79 @@ -# deploy branch +本仓库保存了 [DataEase 项目]() 的 [官方文档](https://dataease.cn/docs/),该文档使用 [MkDocs]() 文档框架下的 [Material for MkDocs]() 主题进行构建。 + +## 本地开发 + +### 克隆本仓库 +```bash +git clone https://github.com/dataease/docs.git +``` + +### 安装依赖 +```bash +cd docs +pip install -r requirements/requirements.txt +``` + +### 修改文档内容 +本文档的文档结构定义在 `mkdocs.yml` 文件中,文档的具体内容均在 `docs` 目录中。 +```yaml +.......... +nav: + - 项目介绍: index.md + - 系统架构: system_arch.md + - 安装部署: + - 在线安装: installation/online_installation.md + - 离线安装: installation/offline_installation.md + - 在线升级: installation/online_upgrade.md + - 离线升级: installation/offline_upgrade.md + - 用户手册: + - 通用功能: user_manual/general.md + - 数据源: user_manual/datasource_configuration.md + - 数据集: user_manual/dataset_configuration.md + - 图表: user_manual/view_generation.md + - 仪表板: user_manual/dashboard_generation.md + - 系统管理: + - 用户管理: user_manual/system_management/user.md + - 模版管理: user_manual/system_management/module.md + - 使用教程: + - 使用 DataEase 制作销售仪表板: manual_demo/sales_dashboard.md + - 常见问题: + - 安装配置: faq/configuration_faq.md + - 系统管理: faq/system_management.md + - 数据集: faq/dataset_faq.md + - 开发文档: dev_manual.md + - 关于: + - 更新说明: about/changelog.md + - 联系我们: about/contact.md +.......... +``` + +文档内容使用 markdown 语法编写,若要添加新的文档,需要先在 `mkdocs.yml` 文件中的 `nav` 部分增加对应章节导航。 + +### 本地调试文档 +```bash +mkdocs serve +``` +执行上述命令后,可通过 `http://127.0.0.1:8000` 地址查看生成的文档内容,当修改文档后,页面内容会自动更新。 + +### 构建文档 +```bash +mkdocs build +``` + +执行上述命令后,会在 `site` 目录下生成文档站点的静态文件,将目录中的内容复制到任意 HTTP 服务器上即可完成文档的部署。 + +## 帮助完善文档 + +### Fork 文档仓库 +点击仓库右上角的 `fork` 按钮,复制本仓库到自己的 github 账号。 + +### 克隆 fork 后的仓库 +```bash +git clone https://github.com/your-github-account/docs.git +``` + +### 本地修改并调试 + +### Push 修改内容到 GitHub 仓库 + +### 提交 Pull Request 到本仓库 diff --git a/docs/best_practices.md b/docs/best_practices.md new file mode 100644 index 000000000..01712b65f --- /dev/null +++ b/docs/best_practices.md @@ -0,0 +1,27 @@ +## 1 功能实践篇 + +!!! Abstract "" + - [DataEase 应用的管理与使用](https://kb.fit2cloud.com/?p=211) + - [DataEase 邮箱设置配置流程](https://kb.fit2cloud.com/?p=190) + - [使用 DataEase 数据集关联跨库数据](https://kb.fit2cloud.com/?p=100) + - [使用计算字段做数据字典映射](https://kb.fit2cloud.com/?p=47) + - [使用 Tab 组件做多屏仪表板及自动轮播](https://kb.fit2cloud.com/?p=231) + - [从搭建 Keycloak 到 DataEase 配置 OIDC 实现单点登录](https://kb.fit2cloud.com/?p=121) + + +## 2 场景实践篇 + +!!! Abstract "" + - [阿里云 IDaas 对接](https://kb.fit2cloud.com/?p=184) + - [如何将 DataEase 嵌入第三方系统](https://kb.fit2cloud.com/?p=122) + - [如何给明细表添加分组排序](https://kb.fit2cloud.com/?p=219) + - [如何实现显示数据排名](https://kb.fit2cloud.com/?p=166) + - [文本搜索组件如何实现搜索时忽略字母大小写?](https://kb.fit2cloud.com/?p=f5c49148-a168-41dc-bbd2-65effd22d65e) + + +## 3 扩展学习篇 + +!!! Abstract "" + - [数据分析与 BI 的异同](https://kb.fit2cloud.com/?p=149) + - [【间距意识】一个最容易被忽视的细节](https://kb.fit2cloud.com/?p=164) + - [【色彩搭配】轻松搞定仪表板配色](https://kb.fit2cloud.com/?p=148) diff --git a/docs/change-v2-1.md b/docs/change-v2-1.md new file mode 100644 index 000000000..0d6fc0346 --- /dev/null +++ b/docs/change-v2-1.md @@ -0,0 +1,48 @@ +# 更新日志 + +## 1 模板中心 + +### 1.1 工作台新增模板中心和使用模板新建的快速入口 +![更新1](./newimg/v2-1-1.PNG){ width="900px" } + +### 1.2 新增【模板管理】 + +!!! Abstract "" + 可用来自行管理自己 DataEase 内上传的模板,并通过分类来做标记。 + 请注意:v2 的模版管理不再区分用户模板与系统模板,均是全局可用的。 +![更新1](./newimg/v2-1-2.PNG){ width="900px" } + +### 1.3 仪表板与数据大屏均增加使用模板新建的入口 +![更新1](./newimg/v2-1-3.png){ width="900px" } + +### 1.4 支持仪表板或数据大屏导出为模板 +![更新1](./newimg/v2-1-4.png){ width="900px" } + +![更新1](./newimg/v2-1-5.png){ width="900px" } + +## 2 数据准备 +### 2.1 支持数据集的复制 +!!! Abstract "" + 可快速基于已有数据集创建新数据集,复制完成后自动进入新复制数据集的编辑界面。 +![更新1](./newimg/v2-1-6.png){ width="900px" } + +## 3 系统设置 +!!! Abstract "" + 新增系统设置模块。 +![更新1](./newimg/v2-1-7.png){ width="900px" } +### 3.1 参数设置 +![更新1](./newimg/v2-1-8.png){ width="900px" } +### 3.2 嵌入式管理(XPack) +!!! Abstract "" + 用于做嵌入式集成,每个 DataEase 默认最多可创建 5 个嵌入式应用。创建完嵌入式应用后,可以获取到该应用对应的 APP ID 和 APP Secret(嵌入式对接时需要用到)。 +![更新1](./newimg/v2-1-9.png){ width="900px" } +### 3.3 飞书对接(XPack) +!!! Abstract "" + 新增飞书对接,可通过扫码方式登录 DataEase。 +![更新1](./newimg/v2-1-10.png){ width="900px" } +![更新1](./newimg/v2-1-11.png){ width="900px" } +## 4 其他 +### 4.1 API Key 管理(XPack) +!!! Abstract "" + 新增 API Key 配置与管理页面。 +![更新1](./newimg/v2-1-12.png){ width="900px" } \ No newline at end of file diff --git a/docs/change-v2-10-1.md b/docs/change-v2-10-1.md new file mode 100644 index 000000000..7d8f38529 --- /dev/null +++ b/docs/change-v2-10-1.md @@ -0,0 +1,59 @@ +# 更新日志 + +## 1 仪表板与数据大屏 + +### 1.1 同环比增加具体数值选项 + +![更新1](./newimg/同环比增加具体数值.png){ width="900px" } + +### 1.2 仪表板和数据大屏支持浏览器整体刷新 +!!! Abstract "" + 仪表板和数据大屏会在每次刷新时重载整个浏览器页面内容。 + **注意:整体刷新仅公共链接和新 Tab 预览生效,避免在设计时频繁刷新影响编辑体验。** + +![更新1](../img/dashboard_generation/仪表板刷新设置.png){ width="900px" } +![更新1](../img/dashboard_generation/数据大屏刷新设置.png){ width="900px" } + +### 1.3 Tab 组件支持整个 Tab 页的内容复制 + +![更新1](./newimg/Tab页整页复制.gif){ width="900px" } + +### 1.4 新增双线组合图 + +![更新1](./newimg/新增双轴组合图.png){ width="900px" } + + +### 1.5 分组柱线组合图支持子类别排序 +!!! Abstract "" + 分组柱线组合图可基于类别进行排序,还可以在类别内设置子类型的顺序。 + +![更新1](./newimg/分组柱状组合图支持子类别排序.png){ width="900px" } + +### 1.6 跳转设置中打开方式支持弹窗页面 +!!! Abstract "" + 外部链接和仪表板跳转,均支持弹窗页面方式打开。此外,还支持设置弹窗的窗口大小。 + +![更新1](./newimg/跳转打开方式新增弹窗.png){ width="900px" } + + +## 2 数据准备 + +### 2.1 数据填报在下发任务时,支持表单模板设置(XPack) +!!! Abstract "" + 数据提交方式为【数据更新】时,会出现【表单模板设置】选项,可以设置表单中的表单项是否允许被修改。 + +![更新1](./newimg/表单模板设置.png){ width="900px" } +![更新1](./newimg/模板设置.png){ width="900px" } + +## 3 组织管理中心(XPack) +### 3.1 定时报告增加水印设置 +!!! Abstract "" + 当定时报告所指定的仪表板或数据大屏开启水印,定时报告中支持水印设置。 +![更新1](./newimg/定时报告水印设置.png){ width="900px" } + +## 4 系统设置 +### 4.1 新增 OAuth2 认证支持(XPack) + +![更新1](./newimg/oauth2设置.png){ width="900px" } + + diff --git a/docs/change-v2-10-2.md b/docs/change-v2-10-2.md new file mode 100644 index 000000000..ebd0c485a --- /dev/null +++ b/docs/change-v2-10-2.md @@ -0,0 +1,302 @@ +# 更新日志 + +## 1 仪表板与数据大屏 + +### 1.1 更新地图文件 +!!! Abstract "" + 新增了新加坡和深圳大鹏新区等地区的详细地图支持。 +![更新1](./newimg/更新地图文件1.PNG){ width="900px" } + +![更新1](./newimg/更新地图文件2.PNG){ width="900px" } + +### 1.2 表格条件样式支持动态值设定 + +![更新1](./newimg/表格条件样式支持动态值设定1.PNG){ width="900px" } + +![更新1](./newimg/表格条件样式支持动态值设定2.PNG){ width="900px" } + +### 1.3 表格自适应模式铺满组件 +!!! Abstract "" + 明细表和汇总表列宽的【自适应】选项,会根据内容宽度比例自动调整组件容器宽度,实现组件的全宽铺满显示。 + +![更新1](./newimg/表格自适应模式铺满组件.PNG){ width="900px" } + +### 1.4 查询组件支持自定义背景图片 + +![更新1](./newimg/查询组件支持自定义背景图片.png){ width="900px" } + + +### 1.5 查询组件支持在年月日时间参数下选择时间粒度为年、年月或年月日 + +![更新1](./newimg/查询组件支持在年月日时间参数下选择时间粒度为年、年月或年月日.png){ width="900px" } + +### 1.6 时间范围组件支持分别绑定开始时间和结束时间参数 +!!! Abstract "" + 当选择时间类型参数时,系统默认设置为时间类型。点击【时间】后的编辑按钮,可以进一步选择该参数为开始时间或结束时间。 + +![更新1](./newimg/时间范围组件支持分别绑定开始时间和结束时间参数1.png){ width="900px" } + +![更新1](./newimg/时间范围组件支持分别绑定开始时间和结束时间参数2.png){ width="900px" } + +### 1.7 查询组件支持配置外部显示或隐藏精确匹配和模糊匹配 + +![更新1](./newimg/查询组件支持配置外部显示或隐藏精确匹配和模糊匹配%20%5B图片%5D.png){ width="900px" } + +### 1.8 查询组件支持数值区间 +!!! Abstract "" + 在设置查询条件时,支持选择指标字段选择【数值区间】作为过滤组件,便于根据特定数值范围筛选数据。 + + - 应用场景:适用于需要在特定数值范围内进行数据筛选的场景,例如筛选预算、实际金额等数值类型字段。 + +![更新1](./newimg/查询组件支持数值区间1.png){ width="900px" } + +![更新1](./newimg/查询组件支持数值区间2.png){ width="900px" } + +### 1.9 查询组件支持配置清空和重置按钮的颜色 + +![更新1](./newimg/查询组件支持配置清空和重置按钮的颜色%20%5B图片%5D.png){ width="900px" } + +### 1.10 查询组件支持自定义提示词内容设置 +!!! Abstract "" + 可以针对每个查询条件设置不同的提示词,同时支持文字颜色和大小的自定义设置。 + +![更新1](./newimg/查询组件支持自定义提示词内容设置.png){ width="900px" } + +### 1.11 图表过滤条件的日期字段新增“为空/不为空”筛选选项 + +![更新1](./newimg/图表过滤条件的日期字段新增为空不为空筛选选项.png){ width="900px" } + +### 1.12 柱状图均支持圆角设置(不包括瀑布图、K 线图) + +![更新1](./newimg/柱状图均支持圆角设置.png){ width="900px" } + +### 1.13 堆叠柱状图的总计标签与主标签支持单独控制 + +![更新1](./newimg/堆叠柱状图的总计标签与主标签支持单独控制1.png){ width="900px" } + +![更新1](./newimg/堆叠柱状图的总计标签与主标签支持单独控制2.png){ width="900px" } + +### 1.14 符号地图现支持自定义气泡大小范围 +!!! Abstract "" + + - 【数据】中拖入字段到【气泡大小】栏后,【样式】中的【大小】会自动禁用,同时启用【大小区间】设置。通过调整【大小区间】的最小值和最大值,可灵活控制气泡的尺寸范围。 + - 【气泡大小】中未拖入字段时,【样式】中的【大小】滑块将保持启用,允许手动统一调整气泡大小。 + +![更新1](./newimg/符号地图现支持自定义气泡大小范围.png){ width="900px" } + +### 1.15 Tab 组件操作优化 +!!! Abstract "" + 支持从上部拖动组件移出 Tab 组件。当图表从 Tab 组件中移出后,图表将自动放置在鼠标当前位置。 + +![更新1](./newimg/Tab%20组件操作优化.gif){ width="900px" } + +### 1.16 地图和气泡地图支持区域填充功能 + +![更新1](./newimg/地图和气泡地图支持区域填充功能.png){ width="900px" } + +### 1.17 新增图片组组件 +!!! Abstract "" + 支持简单的图片上传和轮播功能。 +![更新1](./newimg/新增图片组组件1.png){ width="900px" } + +!!! Abstract "" + 图片组还支持与指定数据集关联设置条件样式,根据数据集的变化展示不同的图片。 + +![更新1](./newimg/新增图片组组件2.png){ width="900px" } +![更新1](./newimg/新增图片组组件.gif){ width="900px" } + +### 1.18 明细表和汇总表支持行列冻结 + +![更新1](./newimg/明细表和汇总表支持行列冻结.png){ width="900px" } + +![更新1](./newimg/明细表和汇总表支持行列冻结.gif){ width="900px" } + +### 1.19 明细表和汇总表支持隐藏字段 +!!! Abstract "" + 允许用户将数据表中的某些字段设置为“隐藏”状态,这样这些列就不会被显示出来。 + + - 适用于当用户需要使用特定字段进行排序,但又不希望这些字段在表中显示的情况。 +![更新1](./newimg/明细表和汇总表支持隐藏字段.png){ width="900px" } + +### 1.20 地图支持自定义图例区间 +!!! Abstract "" + 地图图例提供【自动】和【自定义】两种模式,用户通过【自定义】选择【等分区间】或【自定义区间】,可以更加灵活控制各区域的颜色填充,从而更清晰地反映不同区间的数据分布情况。 + + - 等分区间:系统自动将最小值和最大值之间的区间等分成指定数量的图例。 + - 自定义区间:用户可以手动设置每个图例的区间值,实现更灵活的展示效果。 + +![更新1](./newimg/地图支持自定义图例区间1.png){ width="900px" } + +![更新1](./newimg/地图支持自定义图例区间2.png){ width="900px" } + +### 1.21 支持自定义地图风格 +!!! Abstract "" + 用户可在高德地图上创建并发布自定义地图样式,并将生成的地图 URL 及 API Key 添加至 DataEase 的地图设置中。设置完成后,可在地图图表中选择自定义地图风格,以实现个性化的地图展示效果求。 + 登录高德地图网站,访问高德地图的样式编辑页面:https://geohub.amap.com/mapstyle/index。 + +![更新1](./newimg/自定义地图风格1.png){ width="900px" } + +!!! Abstract "" + 创建自定义地图:在已有地图的基础上,选择“标准地图”作为模板,进入编辑界面。可在地图编辑界面中找到相应的资源选项,通过改变显隐、颜色纹理等来更改地图元素。 + +![更新1](./newimg/自定义地图风格2.png){ width="900px" } + +!!! Abstract "" + 在发布后的自定义地图页面,点击“分享”按钮。复制生成的地图访问 URL,用于后续的地图配置。 + +![更新1](./newimg/自定义地图风格3.png){ width="900px" } + +![更新1](./newimg/自定义地图风格4.png){ width="900px" } + +!!! Abstract "" + 登录高德地图开发者控制台:https://console.amap.com/dev/key/app。在【我的应用】中找到对应的 API Key 和安全密钥。 + +![更新1](./newimg/自定义地图风格5.png){ width="900px" } + +!!! Abstract "" + 如果没有应用,可以新建应用和添加 Web 端(JS API) 的 Key 获取。 + +![更新1](./newimg/自定义地图风格6.png){ width="900px" } + +!!! Abstract "" + 在 DataEase 的【系统设置】页面,将从高德地图获取的 API Key 和安全密钥填入相应位置。 + +![更新1](./newimg/自定义地图风格7.png){ width="900px" } + +!!! Abstract "" + 在制作在线地图时,地图风格选择【自定义】,URL 填入高德自定义地图分享的 URL 即可。 + +![更新1](./newimg/自定义地图风格8.png){ width="900px" } + +### 1.22 在线地图功能增强,支持设置标签控制、默认缩放等级和中心点 +!!! Abstract "" + + - 地名标签控制:支持在线地图的地名标签显示设置,用户可自由开启或关闭地名标签。 + - 缩放级别:新增默认缩放级别配置(取消自适应缩放后生效),用户可指定地图加载时的初始缩放比例。 + - 中心点:支持设置地图的默认中心点经纬度(取消自适应缩放后生效),便于地图聚焦于特定区域。 + +![更新1](./newimg/在线地图功能增强.png){ width="900px" } + +### 1.23 下钻字段支持自定义显示名称和排序设置 + +![更新1](./newimg/下钻字段支持自定义显示名称和排序设置.png){ width="900px" } + +### 1.24 标签显示支持全量和自适应两种模式 +!!! Abstract "" + + - 全量显示:所有标签全部展示,无论重叠与否均展示。 + - 自适应显示:标签根据布局自动调整显示,避免重叠,确保清晰度。 + +![更新1](./newimg/标签显示支持全量和自适应两种模式.png){ width="900px" } + +### 1.25 符号地图支持自定义符号形状 + +![更新1](./newimg/符号地图支持自定义符号形状.png){ width="900px" } + +### 1.26 表格支持用复制多个单元格的数据 +!!! Abstract "" + 可通过鼠标拖动选择表格中的多个数据单元格,右键点击后即可快速复制所选数据。 + +![更新1](./newimg/表格支持用复制多个单元格的数据.png){ width="900px" } + +![更新1](./newimg/表格支持用复制多个单元格的数据.gif){ width="900px" } + +### 1.27 移动端支持独立样式配置 +!!! Abstract "" + 仪表板组件在移动端支持独立样式配置,便于与PC端样式区分,更好地适配移动端展示需求。 + +![更新1](./newimg/移动端支持独立样式配置1.png){ width="900px" } + +![更新1](./newimg/移动端支持独立样式配置2.png){ width="900px" } + +### 1.28 图表、仪表板、数据大屏支持查看资源 ID + +![更新1](./newimg/查看资源%20ID1.png){ width="900px" } + +![更新1](./newimg/查看资源%20ID2.png){ width="900px" } + +![更新1](./newimg/查看资源%20ID3.png){ width="900px" } + + +### 1.29 明细表支持单元格合并 + +![更新1](./newimg/明细表支持单元格合并.png){ width="900px" } + +## 2 数据准备 + +### 2.1 数据集的批量管理中字段增加表名列 + +![更新1](./newimg/数据集的批量管理中字段增加表名列.png){ width="900px" } + +### 2.2 支持 Elasticsearch 数据源 + +![更新1](./newimg/支持 Elasticsearch 数据源1.png){ width="900px" } + +![更新1](./newimg/支持 Elasticsearch 数据源2.png){ width="900px" } + +### 2.3 增加数据源状态显示 + +![更新1](./newimg/增加数据源状态显示.png){ width="900px" } + +### 2.4 调整替换 Excel 数据源时 sheet 变化的处理方式 + +!!! Abstract "" + 替换 Excel 数据源时,按以下规则处理: + + - 若新文件中包含相同的 sheet 页,则直接替换。 + - 若新文件的 sheet 页不一致(发生变化): + - 对于新文件中缺失的原有 sheet 页,保持不变。 + - 对于新文件中新增的 sheet 页,自动创建新数据集。 + +### 2.5 数据填报添加任务时支持设置校验字段及相应的规则(XPack) +!!! Abstract "" + 在创建或更新数据类型的填报任务时,在填报任务的【模板设置】中支持设置校验字段及其规则。 + +![更新1](./newimg/数据填报添加任务时支持设置校验字段及相应的规则2.png){ width="900px" } + +!!! Abstract "" + 目前支持的规则之间的逻辑关系为“与”(AND)。 +![更新1](./newimg/数据填报添加任务时支持设置校验字段及相应的规则1.png){ width="900px" } + +!!! Abstract "" + 当用户在界面中填写数据时,系统会实时检查每个字段的输入是否符合已设置的校验规则。如果发现不符合要求的输入,系统会进行提示。 +![更新1](./newimg/数据填报添加任务时支持设置校验字段及相应的规则3.png){ width="900px" } + +## 3 组织管理中心(XPack) +### 3.1 阈值告警规则支持动态值设置 +!!! Abstract "" + 数值类型字段则支持二次计算选项,例如最小值、最大值和平均值。 +![更新1](./newimg/阈值告警规则支持动态值设置1.png){ width="900px" } + +!!! Abstract "" + 时间类型字段的动态值类似于查询组件中的时间组件,能够根据图表中时间字段的显示格式自动设定时间粒度。 +![更新1](./newimg/阈值告警规则支持动态值设置2.png){ width="900px" } + +## 4 系统设置 +### 4.1 新增全局禁用分享链接设置 +!!! Abstract "" + 系统设置支持全局禁用分享链接功能。禁用后,所有在此之前创建的分享链接将无法访问。 +![更新1](./newimg/新增全局禁用分享链接设置1.png){ width="900px" } + +!!! Abstract "" + 禁用分享后访问分享链接将显示以下页面: +![更新1](./newimg/新增全局禁用分享链接设置2.png){ width="900px" } + +### 4.2 新增全局分享链接有效期和密码必填设置 +!!! Abstract "" + 系统设置支持分享链接的有效期和密码必填设置。开启该选项后,之前创建的所有分享链接将无法访问。 +![更新1](./newimg/新增全局分享链接有效期和密码必填设置1.png){ width="900px" } + +!!! Abstract "" + 创建分享链接时,系统将提示有效期和密码为必填项。 +![更新1](./newimg/新增全局分享链接有效期和密码必填设置2.png){ width="900px" } + +!!! Abstract "" + 未设置有效期和密码的分享链接访问时会显示以下页面: +![更新1](./newimg/新增全局分享链接有效期和密码必填设置3.png){ width="900px" } + +### 4.3 默认文案跟随外观配置网站名称(XPack) +!!! Abstract "" + 页面相关文案也跟随网站名称设置。 +![更新1](./newimg/默认文案跟随外观配置网站名称.png){ width="900px" } + diff --git a/docs/change-v2-10-3.md b/docs/change-v2-10-3.md new file mode 100644 index 000000000..7fb96ad2a --- /dev/null +++ b/docs/change-v2-10-3.md @@ -0,0 +1,282 @@ +# 更新日志 + +## 1 仪表板与数据大屏 + +### 1.1 选项卡支持关闭 Tab 标签进行标题隐藏 + +![更新1](./newimg/%20选项卡支持关闭%20Tab%20标签进行标题隐藏.PNG){ width="900px" } + +### 1.2 数据大屏设计面板支持开启辅助网格线 + +![更新1](./newimg/数据大屏设计面板支持开启辅助网格线.PNG){ width="900px" } + +### 1.3 图表跳转支持携带查询组件的过滤值并传递给外部参数 +!!! Abstract "" + 在目标仪表板上创建外部参数,添加所需的外部参数,并选择与其关联的查询组件或图表。 + +![更新1](./newimg/1.3%20图表跳转支持携带查询组件的过滤值并传递给外部参数1.PNG){ width="900px" } + +!!! Abstract "" + 在跳转仪表板上配置跳转设置,选择需要支持跳转功能的图表进入跳转配置界面。 + + 如果目标仪表板中有多个图表需要联动,可在【联动图表】中进行字段关联设置。 + +![更新1](./newimg/1.3%20图表跳转支持携带查询组件的过滤值并传递给外部参数2.PNG){ width="900px" } + +!!! Abstract "" + 切换【携带查询条件】,将源仪表板的查询组件值绑定到目标仪表板的外部参数。 + +![更新1](./newimg/1.3%20图表跳转支持携带查询组件的过滤值并传递给外部参数3.PNG){ width="900px" } + +!!! Abstract "" + 可将源仪表板上的查询条件动态传递至目标仪表板,实现跨仪表板的图表联动。 + +![更新1](./newimg/1.3%20图表跳转支持携带查询组件的过滤值并传递给外部参数.gif){ width="900px" } + + +### 1.4 地图和气泡地图支持配置边线和区块填充透明度 + +![更新1](./newimg/地图和气泡地图支持配置边线和区块填充透明度1.png){ width="900px" } + +![更新1](./newimg/地图和气泡地图支持配置边线和区块填充透明度2.png){ width="900px" } + + +### 1.5 线图和面积图支持设置条件样式 +!!! Abstract "" + 设置的条件样式将影响折线图的线条(或面积)和标签文字的颜色。 + +![更新1](./newimg/折线图和面积图支持设置条件样式.png){ width="900px" } + +### 1.6 折线图和面积图支持配置标签位置 + +![更新1](./newimg/折线图和面积图支持配置标签位置.png){ width="900px" } + +### 1.7 数据大屏缩放方式增加不缩放模式 + +![更新1](./newimg/数据大屏缩放方式增加不缩放模式1.png){ width="900px" } + +!!! Abstract "" + 当显示设备尺寸大于或者小于数据大屏的设计尺寸时,内容将按设计尺寸显示,不进行拉伸或缩放。 + +![更新1](./newimg/数据大屏缩放方式增加不缩放模式2.png){ width="900px" } + + +### 1.8 明细表支持自动换行 +!!! Abstract "" + 注意:自动换行功能启用后,表头的行高无法固定。在开启合并单元格时,自动换行则会失效。 + +![更新1](./newimg/明细表支持自动换行.png){ width="900px" } + +### 1.9 数据大屏中 Tab 组件支持标签排序 +!!! Abstract "" + 可以通过鼠标右键点击选项卡,选择【排序】功能对 Tab 标签进行自定义排序,影响标签的显示顺序。 + +![更新1](./newimg/数据大屏中%20Tab%20组件支持标签排序1.png){ width="900px" } + +![更新1](./newimg/数据大屏中%20Tab%20组件支持标签排序2.png){ width="900px" } + +### 1.10 Tab 组件在调整大小时,支持设置内部组件的大小是否自动调整 +!!! Abstract "" + 在调整 Tab 组件大小时勾选【调整大小保持内部组件尺寸】,Tab 组件大小变化将不会影响内部组件的大小。 + +![更新1](./newimg/1.10%20Tab%20组件在调整大小时,支持设置内部组件的大小是否自动调整1.png){ width="900px" } + +![更新1](./newimg/1.10%20Tab%20组件在调整大小时,支持设置内部组件的大小是否自动调整2.gif){ width="900px" } + +### 1.11 数据大屏支持按住空格键时拖动画布 +!!! Abstract "" + 按住空格键并同时使用鼠标或者触摸板,可自由移动数据大屏的画布位置。 + +![更新1](./newimg/数据大屏支持按住空格键时拖动画布.gif){ width="900px" } + +### 1.12 支持移动端访问数据大屏 + +![更新1](./newimg/支持移动端访问数据大屏.png){ width="900px" } + +### 1.13 查询组件支持自定义排序 + +!!! Abstract "" + 当显示字段与排序字段相同时,文本下拉和数值下拉支持选择自定义排序规则。且勾选后,下拉查询组件的默认值选项将按照自定义排序显示。 + +![更新1](./newimg/查询组件支持自定义排序1.png){ width="900px" } + +![更新1](./newimg/查询组件支持自定义排序2.png){ width="900px" } + +![更新1](./newimg/查询组件支持自定义排序3.png){ width="900px" } + +### 1.14 查询组件支持内边距和圆角设置 + +![更新1](./newimg/查询组件支持内边距和圆角设置1.png){ width="900px" } + +### 1.15 时间查询组件支持设置时间筛选范围 +!!! Abstract "" + 区间类型支持以下设置:开始于、结束于、时间区间。 + + - 开始于:【开始于】日期前的日期无法被选择。 + - 结束于:【结束于】日期后的日期无法被选择。 + - 时间区间:只能选择该区间内的日期进行查询。 + - 以上区间类型均支持设置【固定时间】与【动态时间】。 + +![更新1](./newimg/时间查询组件支持设置时间筛选范围.png){ width="900px" } + +### 1.16 查询条件支持单独设置宽度 +!!! Abstract "" + 允许为每个查询条件单独设置宽度,实现更灵活的布局调整。 + +![更新1](./newimg/查询条件支持单独设置宽度.png){ width="900px" } + +### 1.17 支持组件背景模糊/毛玻璃效果 +!!! Abstract "" + 支持设置组件背景模糊,该效果能够透过组件展示并模糊下层内容,透明区域也将应用模糊处理。若为图片,需确保其具有透明背景以生效。 + +![更新1](./newimg/支持组件背景模糊:毛玻璃效果.png){ width="900px" } + +### 1.18 明细表支持总计 + +![更新1](./newimg/明细表支持总计.png){ width="900px" } + + +### 1.19 条形图的纵轴支持设置显示标签的长度限制 + +![更新1](./newimg/条形图的纵轴支持设置显示标签的长度限制.png){ width="900px" } + +### 1.20 图例支持设置图标大小 + +![更新1](./newimg/图例支持设置图标大小.png){ width="900px" } + +### 1.21 仪表盘标签支持显示占比 + +![更新1](./newimg/仪表盘标签支持显示占比.png){ width="900px" } + +### 1.22 进度条标签支持自定义显示指标或百分比 + +![更新1](./newimg/进度条标签支持自定义显示指标或百分比.png){ width="900px" } + +### 1.23 雷达图支持设置辅助点显示、大小及面积显示 + +![更新1](./newimg/雷达图支持设置辅助点显示、大小及面积显示.png){ width="900px" } + +### 1.24 地图支持自定义区域及其区域下钻 +!!! Abstract "" + 在【系统设置】→【系统参数】→【地图设置】中,可以添加自定义地理区域,并对中国省份进行自定义组合。 + +![更新1](./newimg/地图支持自定义区域及其区域下钻.png){ width="900px" } + +![更新1](./newimg/地图支持自定义区域及其区域下钻2.png){ width="900px" } + +!!! Abstract "" + 在地图和气泡地图等离线地图中,可以选择并显示自定义区域,在维度中添加区域字段(数据值如东区、南区、北区)。配置区域与省份的下钻,可支持从区域下钻到省份。 + +![更新1](./newimg/地图支持自定义区域及其区域下钻3.png){ width="900px" } + +![更新1](./newimg/地图支持自定义区域及其区域下钻.gif){ width="900px" } + +### 1.25 仪表板和数据大屏支持字体更换 + +![更新1](./newimg/仪表板和数据大屏支持字体更换.png){ width="900px" } + +![更新1](./newimg/%20仪表板和数据大屏支持字体更换2.png){ width="900px" } + +## 2 数据准备 + +### 2.1 API 数据源支持主键设置及基于主键的增量同步更新 +!!! Abstract "" + 注意: + + - API 数据源支持设置字段类型、长度以及是否为主键。 + - 增量更新时,系统会根据主键自动更新已存在的数据。 + - 仅在新建 API 数据源表时,才能为选定的字段设置主键,已有数据源表不支持修改主键设置。 + +![更新1](./newimg/API%20数据源支持主键设置及基于主键的增量同步更新.png){ width="900px" } + +### 2.2 上传 Excel 数据源时支持字段选择 +!!! Abstract "" + 注意: + + - 在上传 Excel 数据源时,支持选择指定字段进行导入,无需导入全部数据。选择字段时可自定义设置字段长度。 + - 对已有 Excel 数据源进行数据替换时,同样支持字段选择和字段长度调整。 + +![更新1](./newimg/上传%20Excel%20数据源时支持字段选择.png){ width="900px" } + +### 2.3 数据填报支持多条录入并新增“快速确认完成”按钮 +!!! Abstract "" + 可以在同一界面填写多条记录并提交,增加每条记录的状态标签。并提供“快速确认完成”按钮,支持用户快速修改单条记录状态或批量设置为完成。 + +![更新1](./newimg/数据填报支持多条录入并新增“快速确认完成”按钮.png){ width="900px" } + +## 3 组织管理中心(XPack) +### 3.1 权限管理新增导出控制 +!!! Abstract "" + 导出权限具体包括: + + - 资源权限:控制图片、PDF、模板等资源的导出权限。 + - 图表权限:支持以 Excel 格式导出图表展示的数据的导出权限。 + - 明细权限:支持导出图表对应的详细数据的导出权限。 +![更新1](./newimg/权限管理新增导出控制.png){ width="900px" } + +### 3.2 同步管理目标数据源支持自定义配置 Doris 的 FE/BE 端口地址 +!!! Abstract "" + 可以分别设置 Doris FE(前端)和 BE(后端)的 IP 地址、查询端口及 HTTP 端口,提供更灵活的配置选项,以满足不同环境下的部署需求。 + +![更新1](./newimg/同步管理目标数据源支持自定义配置 Doris 的 FE:BE 端口地址.png){ width="900px" } + + +## 4 系统设置 +### 4.1 支持设置用户登录限制 + +![更新1](./newimg/支持设置用户登录限制.png){ width="900px" } + +### 4.2 系统设置增加页面打开方式选项 + +![更新1](./newimg/系统设置增加页面打开方式选项.png){ width="900px" } + +### 4.3 增加资源默认排序方式的配置项 +!!! Abstract "" + 系统管理员可以设置各类资源的默认排序方式,用户则可以根据个人需求调整资源的排序。用户自定义的排序方式将保存在浏览器本地,优先级高于系统默认设置。 + +![更新1](./newimg/增加资源默认排序方式的配置项.png){ width="900px" } + +### 4.4 新增游离资源管理(XPack) +!!! Abstract "" + 游离资源是指在没有组织管理下创建的资源,如在社区版中创建的资源,或是许可证到期后创建的资源。系统管理员可以在【系统设置】中管理这些游离资源,具体功能如下: + + - 查看游离资源:可查看所有无组织关联的资源,包括可视化资源(如仪表板、数据大屏)、数据集和数据源。 + - 资源血缘关系:支持查看选中资源的血缘关系,帮助了解资源之间的依赖和联系。 + - 资源迁移:提供一键迁移和单资源迁移两种方式。通过一键迁移,所有游离资源可统一迁移到指定组织下;在单个资源迁移时,系统会提示是否一并迁移相关联的资源。 + - 资源删除:支持一键删除和单资源删除操作。删除前会弹出确认提示,避免误操作;删除单个资源时,会显示该资源的血缘关系。 + +![更新1](./newimg/新增游离资源管理.png){ width="900px" } + +![更新1](./newimg/新增游离资源管理2.png){ width="900px" } + +## 5 嵌入式(XPack) + +### 5.1 嵌入式应用指定密钥长度 + +![更新1](./newimg/嵌入式应用指定密钥长度.png){ width="900px" } + +### 5.2 支持嵌入 Tab 和组合形式的组件 + +![更新1](./newimg/支持嵌入 Tab 和组合形式的组件.png){ width="900px" } + +![更新1](./newimg/支持嵌入 Tab 和组合形式的组件2.png){ width="900px" } + +![更新1](./newimg/支持嵌入 Tab 和组合形式的组件3.png){ width="900px" } + +### 5.3 支持嵌入数据填报 +!!! Abstract "" + 支持嵌入【数据填报列表】和【我的填报】页面。 + +![更新1](./newimg/支持嵌入数据填报.png){ width="900px" } + +## 6 其他 +### 6.1 资源树节点支持拖拽移动位置 + +![更新1](./newimg/资源树节点支持拖拽移动位置.gif){ width="900px" } + +### 6.2 新增消息中心 + +![更新1](./newimg/新增消息中心1.png){ width="900px" } + +![更新1](./newimg/新增消息中心2.png){ width="900px" } + diff --git a/docs/change-v2-10-4.md b/docs/change-v2-10-4.md new file mode 100644 index 000000000..510cf7be7 --- /dev/null +++ b/docs/change-v2-10-4.md @@ -0,0 +1,219 @@ +# 更新日志 + +## 1 仪表板与数据大屏 + +### 1.1 选项卡 Tab 标签支持下划线、加粗、斜体样式设置 + +![更新1](./newimg/1.1%20%20选项卡%20Tab%20标签支持下划线、加粗、斜体样式设置.PNG){ width="900px" } + +### 1.2 数据大屏 Tab 组件支持图表以组合的形式进行拖入操作 +!!! Abstract "" + Tab 组件的图表组合支持规则: + + - 支持 Tab 组件与其他组件进行组合操作。 + - 支持普通组合(不包含 Tab 组件)拖入 Tab 组件。若组合中包含 Tab 组件,则该组合无法拖入其他 Tab 组件。 + + +![更新1](./newimg/1.2%20数据大屏%20Tab%20组件支持图表以组合的形式进行拖入操作.gif){ width="900px" } + +### 1.3 新增圆形填充图 + +![更新1](./newimg/1.3%20%20%20新增圆形填充图.PNG){ width="900px" } + +### 1.4 柱状图和符号地图支持条件样式设置 + +![更新1](./newimg/1.4%20%20柱状图和符号地图支持条件样式设置1.PNG){ width="900px" } + +![更新1](./newimg/1.4%20%20柱状图和符号地图支持条件样式设置2.png){ width="900px" } + + +### 1.5 柱状图支持自定义柱宽 + +![更新1](./newimg/1.5%20%20柱状图支持自定义柱宽.png){ width="900px" } + +### 1.6 透视表支持为表头单独设置背景颜色 +!!! Abstract "" + 透视表支持分别设置行背景、列背景和角背景的样式,包括背景颜色、文本颜色和字体格式。 + +![更新1](./newimg/透视表支持为表头单独设置背景颜色.png){ width="900px" } + +### 1.7 地图缩放等级可精确设置至 0.1 + +![更新1](./newimg/1.7%20地图缩放等级可精确设置至%200.1.png){ width="900px" } + +## 2 数据准备 + +### 2.1 API 数据源支持分页获取数据 +!!! Abstract "" + 支持两种分页方式:【页码+大小】和【游标+大小】。 + 【页码+大小】示例: + + - 选择分页方式为“页码+大小”。 + - 在请求参数中设置页码和分页大小的默认值。 + - 在响应参数中填写总数字段的 JsonPath。 + - 在 Query 参数中,将页码和大小参数与内置分页参数进行映射。 + +![更新1](./newimg/2.1%20API%20数据源支持分页获取数据1.png){ width="900px" } + +![更新1](./newimg/2.1%20API%20数据源支持分页获取数据2.png){ width="900px" } + +!!! Abstract "" + 【页码+大小】同时支持将页码和大小参数嵌入 URL 路径中(如 DataEase 分页 API)。使用时,可按照下图所示,在路径中直接使用 ${pageNumber} 和 ${pageSize} 引用内置分页参数,总数字段的设置与前述方法一致。 + +![更新1](./newimg/2.1%20API%20数据源支持分页获取数据3.png){ width="900px" } + +!!! Abstract "" + 【游标+大小】示例: + + - 在请求参数中设置游标和分页大小的默认值。 + - 在响应参数中,指定游标字段的 JsonPath。 + - 在 Query 参数中,将页码和大小参数映射到内置分页参数。 + +![更新1](./newimg/2.1%20API%20数据源支持分页获取数据4.png){ width="900px" } + +![更新1](./newimg/2.1%20API%20数据源支持分页获取数据5.png){ width="900px" } + + +### 2.2 Excel 数据源追加策略调整 +!!! Abstract "" + + - 只有新上传的 Excel 文件的 Sheet 页与原数据源的 Sheet 页匹配时,才会执行数据追加。匹配后,将新数据追加到原 Sheet 页,且不进行主键替换。 + - 如果新上传的 Excel 文件中包含原数据源中不存在的 Sheet 页,则不处理这些不匹配的 Sheet 页。 + +### 2.3 数据集自定义 SQL 时支持选择系统变量作为查询条件 +!!! Abstract "" + 在 SQL 查询中可以使用系统变量,实现行权限的效果。该条件在数据集预览和仪表板/数据大屏展示中均会生效。 + +![更新1](./newimg/2.3%20数据集自定义%20SQL%20时支持选择系统变量作为查询条件(XPack).png){ width="900px" } + +## 3 组织管理中心(XPack) +### 3.1 数据源新增查看权限 +!!! Abstract "" + 查看权限: + + - 允许操作: + + - 查看数据源的基本信息(例如名称、描述、连接方式、数据表结构等)。 + - 通过数据集读取数据(用户有权限访问与该数据源相关联的已公开数据集)。 + + - 禁止操作: + + - 编辑数据源:用户无权修改数据源配置,如连接字符串、用户名和密码。 + - 基于数据源创建数据集:用户在创建数据集时,无法选择该数据源作为基础数据源。 + - 数据源不可见:在“创建数据集”界面,用户无权看到该数据源。 + - 修改已包含数据源的数据集:如果用户对某数据集有编辑权限,但该数据集依赖一个用户无查看权限的数据源,则在编辑数据集时,将提示“权限不足,无法修改”。禁止保存对数据集的任何更改。 +![更新1](./newimg/3.1 数据源新增查看权限.png){ width="900px" } + +### 3.2 新增 Webhook 管理 +!!! Abstract "" + + Webhook 是组织级别的内容,以便于统一管理和扩展消息推送,当前主要用于图表的阈值告警推送。 + 字段说明: + + - 名称:简短描述 Webhook 的用途,便于快速理解和区分。 + - URL:DataEase 将告警信息回调给指定 URL。 + - 内容类型:指定 Webhook 数据发送的内容类型(如 application/json 或 application/x-www-form-urlencoded)。 + - Secret(可选):如果填写 Secret,DataEase 会使用它计算加密的哈希签名,用于数据加密和验证。 + +![更新1](./newimg/3.2%20新增%20Webhook%20管理1.png){ width="900px" } +!!! Abstract "" + 在具体图表的阈值告警中,可以选择需要生效的 Webhook。 + +![更新1](./newimg/3.2%20新增%20Webhook%20管理2.png){ width="900px" } + + +### 3.3 支持 Elasticsearch 数据源作为数据同步的源数据源 + +![更新1](./newimg/3.3%20支持%20Elasticsearch%20数据源作为数据同步的源数据源.png){ width="900px" } + +![更新1](./newimg/3.3%20支持%20Elasticsearch%20数据源作为数据同步的源数据源2.png){ width="900px" } + +## 4 系统设置 +### 4.1 新增 MFA 支持(XPack) +!!! Abstract "" + 系统管理员可以在“系统设置 > 安全设置”中配置多因素认证(MFA)。 + 配置说明: + + - 全局启用 MFA 认证:可以选择启用或禁用全局 MFA 功能。 + - 第三方认证启用 MFA:设置三方登录方式(OIDC、CAS)是否开启 MFA 绑定。 + - MFA 校验有效期:设置 MFA 校验码的有效时间(单位:秒),默认值为 30 秒。 + - OTP 延迟有效次数:设置用户 OTP 验证的允许失败次数。 + - 扫描名称配置:可自定义用户扫描绑定 MFA 时的名称显示。 +![更新1](./newimg/4.1%20新增%20MFA%20支持1.png){ width="900px" } + +!!! Abstract "" + 在系统设置中,系统管理员可以配置全局 MFA 设置,用于控制 MFA 的强制生效范围。 + + - 未启用:不强制使用 MFA,但用户可根据自身需要自行开启 MFA。 + - 所有用户:所有用户登录时必须使用 MFA(钉钉等第三方平台扫码方式除外,以及第三方认证开启默认不开启MFA)。 + - 仅系统管理员:仅强制 admin 用户使用 MFA。 + + **注意:若用户未绑定 MFA,但系统已启用 MFA,用户在常规登录后,进入 MFA 验证页面时将出现绑定页面,包含 App下载链接和用于扫码绑定 MFA。** + +![更新1](./newimg/4.1%20新增%20MFA%20支持2.png){ width="900px" } + +!!! Abstract "" + 用户绑定 MFA 操作流程: + +![更新1](./newimg/4.1%20新增%20MFA%20支持3.png){ width="900px" } + +!!! Abstract "" + 扫码下载 MFA 应用: + +![更新1](./newimg/4.1%20新增%20MFA%20支持4.png){ width="900px" } + +!!! Abstract "" + 绑定 MFA 多因子认证: + +![更新1](./newimg/4.1%20新增%20MFA%20支持5.png){ width="900px" } + +!!! Abstract "" + 用户绑定并开启 MFA 后,登陆后进行 MFA 多因子认证: + +![更新1](./newimg/4.1%20新增%20MFA%20支持6.png){ width="900px" } + +!!! Abstract "" + **注意:钉钉等第三方平台扫码方式不需要进行 MFA 多因子认证,第三方认证登陆时默认不开启 MFA。** + +### 4.2 OIDC 认证配置现支持字段映射功能(XPack) + +![更新1](./newimg/4.2%20OIDC%20认证配置现支持字段映射功能.png){ width="900px" } + + +## 5 嵌入式(XPack) + +### 5.1 Copilot 支持嵌入 + +![更新1](./newimg/5.1%20Copilot%20支持嵌入.png){ width="900px" } + +### 5.2 网页组件支持通过 PostMessage 的方式向外层仪表板传递参数 + +!!! Abstract "" + 在仪表板和数据大屏中,支持嵌入网页组件实现组件内操作与外部仪表板视图的联动。网页组件通过类似 PostMessage 的方式向外层仪表板传递包含图表 ID 和参数值的消息,触发视图更新。 + + ``` + 参数说明: + { + type: 'webParams', + targetSourceId: '${仪表板或数据大屏ID}', + params: { + '${图表ID}': [ + { + fieldId: '${数据集字段ID}', + operator: 'in', + value: ['${字段值}'], + viewIds: ['${图表ID}''] + } + ] + } + } + + ``` +!!! Abstract "" + 传参示例: + +![更新1](./newimg/5.2%20网页组件支持通过类似%20%20PostMessage%20的方式向外层仪表板传递参数.png){ width="900px" } + +![更新1](./newimg/5.2%20网页组件支持通过类似%20%20PostMessage%20的方式向外层仪表板传递参数.gif){ width="900px" } + + diff --git a/docs/change-v2-10-5.md b/docs/change-v2-10-5.md new file mode 100644 index 000000000..d8c86bd61 --- /dev/null +++ b/docs/change-v2-10-5.md @@ -0,0 +1,91 @@ +# 更新日志 + +## 1 仪表板与数据大屏 + +### 1.1 仪表板支持画布比例和组件比例两种缩放方式设置 +!!! Abstract "" + 仪表板提供两种缩放显示方式,满足不同场景需求: + + - 按画布比例缩放:高度和宽度独立按画布比例缩放。组件在设计阶段于画布中所占的比例将在预览阶段保持一致,从而确保布局的高度还原。 + - 按组件比例缩放:保持组件高度与宽度的比例固定。设计阶段设置的组件高度与宽度的比例将在预览阶段严格保持不变,确保视觉一致性。 + +![更新1](./newimg/仪表板支持画布比例和组件比例两种缩放方式设置.PNG){ width="900px" } + +### 1.2 仪表板和数据大屏支持更多组件修改名称 +!!! Abstract "" + 所有组件均支持通过双击组件编辑区域的名称进行改名操作。 + +![更新1](./newimg/仪表板和数据大屏支持更多组件修改名称.gif){ width="900px" } + +### 1.3 数据大屏新建图表后自动定位到屏幕中心 +!!! Abstract "" + 在数据大屏中新建组件时,新组件将自动显示在屏幕中心位置,同时画布区域也会同步定位到屏幕中心。 + +![更新1](./newimg/数据大屏新建图表后自动定位到屏幕中心.gif){ width="900px" } + +### 1.4 跳转设置的弹窗页面样式变更为内嵌式弹窗 +!!! Abstract "" + 跳转设置的弹窗页面已优化为内嵌式 DIV 弹窗样式。 + +![更新1](./newimg/跳转设置的弹窗页面样式变更为内嵌式弹窗.gif){ width="900px" } + +### 1.5 富文本支持指标同环比功能 +!!! Abstract "" + 富文本组件现已支持同环比功能,但使用该功能时需确保维度字段类型为日期类型。 + +![更新1](./newimg/富文本支持指标同环比功能.png){ width="900px" } + + +## 2 数据准备 + +### 2.1 计算字段编辑页面支持语法校验功能 + +!!! Abstract "" + 在计算字段编辑页面新增校验按钮,用户可在保存前对计算字段的语法有效性进行校验,确保配置正确。 + +![更新1](./newimg/计算字段编辑页面支持语法校验功能1.png){ width="900px" } + +![更新1](./newimg/计算字段编辑页面支持语法校验功能2.png){ width="900px" } + +### 2.2 PostgreSQL 支持外部表功能 +!!! Abstract "" + PostgreSQL 现已支持外部表功能,允许通过外部数据源访问和查询数据。 + 示例外部表结构: + + ```` + CREATE foreign TABLE jinlong.foreign_books + ( + "_id" varchar(255) NOT NULL, + author varchar(255) NULL, + category varchar(255) NULL, + "createdDate" date NULL, + "onSale" varchar(255) NULL, + price float4 NULL, + title varchar(255) NULL + ) + SERVER foreign_server_pg + OPTIONS (schema_name 'public', table_name 'books'); + + ```` +!!! Abstract "" + 支持对外部表数据进行单源查询及跨源查询,同时支持外部表数据的图形化展示。 +![更新1](./newimg/PostgreSQL 支持外部表功能.png){ width="900px" } + + +### 2.3 数据填报单选和单选框组件支持额外关联字段查询与展示功能(XPack) +!!! Abstract "" + 单选和单选框组件在绑定数据源时,现支持选择添加字段描述。 + +![更新1](./newimg/数据填表单选和单选框组件支持额外关联字段查询与展示功能1.png){ width="900px" } + +![更新1](./newimg/数据填表单选和单选框组件支持额外关联字段查询与展示功能2.png){ width="900px" } + +!!! Abstract "" + 在单选或下拉框中选择选项后,设置的字段描述将显示在下方。如果描述内容超过 6 个,可以点击【查看更多】以查看完整描述。 + +![更新1](./newimg/数据填表单选和单选框组件支持额外关联字段查询与展示功能3.png){ width="900px" } + +## 3 组织管理中心(XPack) +### 3.1 禁止用户将资源移入【迁移资源】目录 + +![更新1](./newimg/禁止用户将资源移入【迁移资源】目录.png){ width="900px" } diff --git a/docs/change-v2-10-6.md b/docs/change-v2-10-6.md new file mode 100644 index 000000000..8a3ee46db --- /dev/null +++ b/docs/change-v2-10-6.md @@ -0,0 +1,251 @@ +# 更新日志 + +## 1 仪表板与数据大屏 + +### 1.1 仪表板支持组件隐藏 +!!! Abstract "" + 仪表板编辑页面新增 【隐藏设置】 按钮,可在 PC 端样式中隐藏指定组件。隐藏后原有布局会受到影响,其他组件将自动补位,但不影响移动端显示。 + + 隐藏设置操作: + + - 组件隐藏入口:点击仪表板顶部菜单栏【隐藏设置】按钮,进入组件隐藏设置状态。 + - 隐藏组件:左侧组件的隐藏图标,点击该图标可将组件加入 已隐藏组件列表。 + - 查看已隐藏组件:右侧显示已隐藏组件列表,可随时查看隐藏的组件状态。点击已隐藏组件,即可恢复显示。 + + + 隐藏设置状态的退出方式: + + - 点击仪表板顶部菜单栏【隐藏设置】按钮可退出。 + - 点击除组件右上角隐藏图标以外的任意区域,如点击仪表板,显示仪表板属性设置栏。 + - 点击顶部功能按钮(如外部参数、仪表板配置、移动端布局、图表、复用等),退出隐藏设置状态并执行相应操作。 + +![更新1](./newimg/仪表板支持组件隐藏1.PNG){ width="900px" } + +!!! Abstract "" + 在单个组件的右上角菜单中,点击【隐藏】选项,可直接进入隐藏设置状态,并将该组件添加至【已隐藏组件列表】。其余操作与隐藏设置流程一致。 + +![更新1](./newimg/仪表板支持组件隐藏2.PNG){ width="900px" } + +!!! Abstract "" + 在【已隐藏组件】列表中,点击组件可恢复显示,操作方式与移动端布局一致。 + +![更新1](./newimg/仪表板支持组件隐藏3.gif){ width="900px" } + +### 1.2 Tab 组件的标题支持背景设置 +!!! Abstract "" + Tab 组件新增标题背景设置项,可自定义内边距、圆角、背景色、背景图和边框样式。 + +![更新1](./newimg/Tab 组件的标题支持背景设置.PNG){ width="900px" } + +### 1.3 数据大屏在选中多个组件时支持按住 Ctrl 键取消已选中的组件 + +![更新1](./newimg/数据大屏在选中多个组件时支持按住 Ctrl 键取消已选中的组件.gif){ width="900px" } + +### 1.4 移动端组件新增 PC 样式同步功能 +!!! Abstract "" + 同步后,移动端组件的样式将与 PC 端保持一致;未同步时,若未单独设置移动端样式,则为最初选中时的 PC 端样式。 + +![更新1](./newimg/移动端组件新增%20PC%20样式同步功能.png){ width="900px" } + +### 1.5 图表指标支持快速计算累加 +!!! Abstract "" + 柱状图、折线图、条形图等图表均支持,以下类型不支持: + + - 指标类图表:仪表盘、水波图、指标卡。 + - 表格类图表:明细表、热力图(无快速计算功能,亦不支持累加)。 + - 柱/条形图类:百分比柱状图、百分比条形图、进度条、K 线图(百分比基于当前分组维度计算,跨分组累加不适用)。 + - 其他图表类型:分布图、地图、关系图。 + +![更新1](./newimg/图表指标支持快速计算累加.png){ width="900px" } + +### 1.6 明细表支持表头分组 +!!! Abstract "" + 明细表表头选项新增【表头分组】功能。 + +![更新1](./newimg/明细表支持表头分组1.png){ width="900px" } + +!!! Abstract "" + 在表头分组设置页,可按住 Ctrl/Cmd 键选择表头列进行合并分组。注意:仅同级别表头可合并。 + +![更新1](./newimg/明细表支持表头分组2.png){ width="900px" } + +!!! Abstract "" + 已合并的表头可通过左键选中,右键打开操作菜单进行管理。 + +![更新1](./newimg/明细表支持表头分组3.png){ width="900px" } + +### 1.7 横纵轴支持快捷启用与禁用轴名称 + +![更新1](./newimg/横纵轴支持快捷启用与禁用轴名称.png){ width="900px" } + +### 1.8 新增轴线颜色自定义设置 +!!! Abstract "" + 支持自定义轴线的显示,并调整其颜色、形状和宽度。 + +![更新1](./newimg/新增轴线颜色自定义设置.png){ width="900px" } + +### 1.9 明细表在合并单元格状态下禁用斑马纹配置 + +![更新1](./newimg/明细表在合并单元格状态下禁用斑马纹配置.png){ width="900px" } + +### 1.10 数字下拉组件的显示字段支持选择文本类型字段 + +![更新1](./newimg/数字下拉组件的显示字段支持选择文本类型字段.png){ width="900px" } + +### 1.11 时间范围筛选组件支持同时使用动态参数和时间维度字段 +!!! Abstract "" + 注意:数据集进行日期范围参数传递时,SQL 语法需使用 BETWEEN 或者用 <、 > ,写法如下: + + - SELECT * FROM SALES WHERE 记录时间 BETWEEN '${BEGINTIME}' AND '${ENDTIME}'; + - SELECT * FROM SALES WHERE 记录时间 > '${BEGINTIME}' AND 记录时间 < '${ENDTIME}'; + +![更新1](./newimg/时间范围筛选组件支持同时使用动态参数和时间维度字段.png){ width="900px" } + +### 1.12 查询组件支持文本搜索时按回车键触发查询 + +![更新1](./newimg/查询组件支持文本搜索时按回车键触发查询.gif){ width="900px" } + + + + +## 2 数据准备 + +### 2.1 新增数据集分组字段功能 + +!!! Abstract "" + 【分组字段】功能支持用户通过可视化方式对字段值进行分类,无需编写 SQL 语法或使用函数,即可完成数据分组。例如,可将“广东省”归入“华南”区域,实现灵活的数据分类与分析。 + +![更新1](./newimg/新增数据集分组字段功能1.png){ width="900px" } + +!!! Abstract "" + 【新建分组字段】设置: + + - 设置字段信息:输入新建分组字段名称(如“区域”)。选择需要分组的字段(如“province”)。 + - 配置分组规则:添加分组类别(如“华北”“华南”),并将相应字段值拖入或选择归属类别。可添加默认“其他”类别,存放未分组的值。 + 创建分组字段后,可直接在数据预览界面查看分组结果,分组字段会新增至维度列表中。 + +![更新1](./newimg/新增数据集分组字段功能2.png){ width="900px" } + +### 2.2 新增远程 Excel/CSV 数据源 +!!! Abstract "" + 支持通过 HTTP(S)/FTP 协议远程读取 Excel/CSV 文件,并将数据存入本地数据库。同时,可结合 API 数据源的定时同步功能,定期从指定路径获取最新的 Excel/CSV 文件并更新数据。 + + + **注意:远程 Excel/CSV 数据源是 DataEase 从远程服务器读取的 Excel 或 CSV 文件。而本地 Excel/CSV 指的是用户通过浏览器,将本地的 Excel/CSV 文件上传到 DataEase 中。** + +![更新1](./newimg/新增远程 Excel:CSV 数据源1.png){ width="900px" } + +!!! Abstract "" + 选择新建数据源,配置数据源基本信息: + + - 数据源名称:输入数据源的名称。 + - 远程 Excel/CSV 地址:填写远程数据文件的 HTTP(S) 或 FTP 访问链接。 + - 填写认证信息(如适用):如果远程服务器需要身份验证,输入用户名和对应密码。 + 可点击 【加载数据】进行数据预览,以确保远程文件能够正确解析。点击 【校验】 以验证数据源的连通性。 + +![更新1](./newimg/新增远程 Excel:CSV 数据源2.png){ width="900px" } + +!!! Abstract "" + 配置数据更新,设置更新方式和更新频率,可定期拉取远程 Excel/CSV 文件实现数据自动更新。 + +![更新1](./newimg/新增远程 Excel:CSV 数据源3.png){ width="900px" } + +![更新1](./newimg/新增远程 Excel:CSV 数据源4.png){ width="900px" } + + +### 2.3 数据填报的表单中的下拉框和多选框组件支持关联所有有效数据源(XPack) + +![更新1](./newimg/数据填报的表单中的下拉框和多选框组件支持关联所有有效数据源.png){ width="900px" } + +### 2.4 数据填报支持绑定已有数据表(XPack) + +!!! Abstract "" + 数据填报表单可绑定现有数据库表,表单字段可选择与数据库表字段绑定,系统将自动匹配字段类型。对于未绑定的新增字段,系统将在目标数据表中创建对应的数据库字段,填报数据也将同步插入原数据表。 + +![更新1](./newimg/%20数据填报支持绑定已有数据表.png){ width="900px" } + +### 2.5 数据填报的日期组件支持设置默认值,默认填充当前日期时间(XPack) + +![更新1](./newimg/数据填报的日期组件支持设置默认值,默认填充当前日期时间.png){ width="900px" } + +### 2.6 数据填报的表单数据支持按字段过滤查询(XPack) + +![更新1](./newimg/数据填报的表单数据支持按字段过滤查询1.png){ width="900px" } + +![更新1](./newimg/数据填报的表单数据支持按字段过滤查询2.png){ width="900px" } + + +### 2.7 数据填报的表单数据支持一键清空(XPack) + +!!! Abstract "" + 一键清空时会弹出删除确认,确认后成功删除数据。 + +![更新1](./newimg/数据填报的表单数据支持一键清空1.png){ width="900px" } + +![更新1](./newimg/数据填报的表单数据支持一键清空2.png){ width="900px" } + +![更新1](./newimg/数据填报的表单数据支持一键清空3.png){ width="900px" } + +## 3 组织管理中心(XPack) +### 3.1 Doris 类型的目标数据源支持忽略 BE 节点设置,并允许配置副本数 + +!!! Abstract "" + BE 节点设置为可选非必选项,但 BE 副本数必须小于等于 BE 节点数。 + +![更新1](./newimg/Doris 类型的目标数据源支持忽略 BE 节点设置,并允许配置副本数1.png){ width="900px" } + +![更新1](./newimg/Doris 类型的目标数据源支持忽略 BE 节点设置,并允许配置副本数2.png){ width="900px" } + + +## 4 系统设置 +### 4.1 新增飞书数据源插件(XPack) + +![更新1](./newimg/新增飞书数据源插件1.png){ width="900px" } + +![更新1](./newimg/新增飞书数据源插件2.png){ width="900px" } + +!!! Abstract "" + 插件涉及以下 API 接口:查询记录、列出视图、列出数据表。 + 飞书数据源需通过【系统设置】>【平台对接】中的飞书应用进行数据读取。当【平台对接】中的飞书设置无效或被禁用时,飞书数据源将无法使用。 + +![更新1](./newimg/新增飞书数据源插件3.png){ width="900px" } + +!!! Abstract "" + 除了对接飞书应用,在使用飞书数据源前,需要确认飞书多维表格已授权该飞书应用访问相关数据。根据权限要求的不同,存在两种授权方式,选择其中一种即可: + + - 由企业管理员开通多维表格权限,仅提供只读权限。 + +![更新1](./newimg/新增飞书数据源插件4.png){ width="900px" } + +!!! Abstract "" + + - 由普通管理员开通云文档权限,具备编辑权限。 + +![更新1](./newimg/新增飞书数据源插件5.png){ width="900px" } + +!!! Abstract "" + 在使用飞书数据源时,也需要对应的飞书多维表格已对该飞书应用做了相关授权。 + +![更新1](./newimg/新增飞书数据源插件6.png){ width="900px" } + +![更新1](./newimg/新增飞书数据源插件7.png){ width="900px" } + +!!! Abstract "" + 飞书数据源的操作方式与 API 数据源类似。访问多维表格的文档地址从 URL 中最后一个 / 与 ? 之间提取 app_token。 + +![更新1](./newimg/新增飞书数据源插件8.png){ width="900px" } + +!!! Abstract "" + 数据源配置页面输入 app_token ,点击【获取数据表】和【获取视图】,系统将自动加载该多维表格下的数据表和视图。 + +![更新1](./newimg/新增飞书数据源插件9.png){ width="900px" } + +!!! Abstract "" + 飞书数据源支持定时同步,操作方式与 API 数据源一致,可按需设置定时同步规则。 + +![更新1](./newimg/新增飞书数据源插件10.png){ width="900px" } + + +### 4.2 移动端支持 OIDC、LDAP、CAS、OAuth2 等认证方式登录(XPack) + +![更新1](./newimg/移动端支持 OIDC、LDAP、CAS、OAuth2 等认证方式登录.png){ width="400px" } diff --git a/docs/change-v2-10-7.md b/docs/change-v2-10-7.md new file mode 100644 index 000000000..1a8e35175 --- /dev/null +++ b/docs/change-v2-10-7.md @@ -0,0 +1,259 @@ +# 更新日志 + +## 1 仪表板与数据大屏 + +### 1.1 在线地图支持天地图、腾讯地图 +!!! Abstract "" + 在线地图目前支持高德、天地图和腾讯地图。管理员可在系统设置的【地图设置】中选择所需的地图服务,当前页面保存地图服务即为 DataEase 仪表板和数据大屏中使用的地图服务。更改地图服务后,需刷新仪表板或数据大屏以使更改生效。 + +!!! Abstract "" + 天地图: + + - 创建 Key 的官方文档:[天地图授权指南](http://lbs.tianditu.gov.cn/authorization/authorization.html)。 + - 限制: + - 不支持去除地图标注。 + - 不支持地图倾斜。 + +![更新1](./newimg/在线地图支持天地图、腾讯地图1.PNG){ width="900px" } + +!!! Abstract "" + 腾讯地图: + + - 创建 Key 的官方文档:[腾讯地图开发指南](https://lbs.qq.com/mobile/androidMapSDK/developerGuide/getKey)。 + - 主题配置参考:[个性地图](https://lbs.qq.com/dev/console/custom/mapStyle)。 + +![更新1](./newimg/在线地图支持天地图、腾讯地图2.PNG){ width="900px" } + +### 1.2 数量单位支持英文简称 + +![更新1](./newimg/数量单位支持英文简称.PNG){ width="500px" } + +### 1.3 公共连接复制链接和密码可以直接访问 + +![更新1](./newimg/公共连接复制链接和密码可以直接访问.PNG){ width="900px" } + +### 1.4 仪表板查询组件支持顶部冻结 +!!! Abstract "" + 仪表板查询组件新增位置设置,当选择【置顶】时,查询组件在仪表板滚动至其触及画布上边界时会自动固定在顶部。 + **注意:每个仪表板仅支持一个查询组件置顶,若已有置顶查询组件,再次置顶其他查询组件时,原有组件将自动取消置顶。** +![更新1](./newimg/仪表板查询组件支持顶部冻结1.png){ width="900px" } + +![更新1](./newimg/仪表板查询组件支持顶部冻结2.png){ width="900px" } + +![更新1](./newimg/仪表板查询组件支持顶部冻结.gif){ width="900px" } + +### 1.5 仪表板新增间距大小设置,支持自定义组件间距 +!!! Abstract "" + 提供大、中、小三种内置间距选项,同时支持自定义间距,范围为 0 到 10。 + +![更新1](./newimg/仪表板新增间距大小设置,支持自定义组件间距1.png){ width="900px" } + +![更新1](./newimg/仪表板新增间距大小设置,支持自定义组件间距2.png){ width="900px" } + +### 1.6 仪表板和数据大屏支持发布功能 +!!! Abstract "" + 仪表板和数据大屏提供发布版本与草稿版本两种版本,支持保存、发布、取消发布、恢复及预览操作。其中发布与取消发布影响发布版本,而保存和恢复至发布版本则作用于草稿版本。 + 使用示例: + + - 新建仪表板并修改内容,此时仅能【保存】为草稿,不能直接预览或分享。 + - 点击【发布】,草稿版本正式成为发布版本,供用户查看和使用,可以访问、分享和收藏。 + - 点击【取消发布】,则撤销已发布版本,使其变为草稿版本。 + - 若需要调整内容,可修改并【保存】,生成新的草稿版本。点击【恢复到已发布版本】,放弃当前修改,将草稿版本还原至已发布版本。 + +![更新1](./newimg/仪表板和数据大屏支持发布功能1.png){ width="900px" } + +![更新1](./newimg/仪表板和数据大屏支持发布功能2.png){ width="900px" } + +!!! Abstract "" + **功能与逻辑介绍:** + + - **发布与取消发布** + - 发布逻辑:发布操作用于发布草稿版本,仅当存在草稿版本时可执行发布。 + - 取消发布逻辑: + - 仅存在已发布版本时,如果取消发布后,已发布版本变为草稿版本; + - 同时存在草稿版本和已发布版本 ,在取消发布后,已发布版本被放弃,仅保留草稿版本; + - 无已发布版本时,无法执行取消发布,只能保存草稿版本。 + + - **预览和查看** + - 预览页查看的是已发布的仪表板版本,而非未发布的草稿版本。 + - 若存在已发布版本和草稿版本,则预览显示已发布版本; + - 若仅存在草稿版本,则无法预览。 + - 预览页的仪表板信息栏新增状态提示,若存在未发布的草稿版本,则显示【有更新】。 + + - **列表展示** + - 取消发布或者仅存在草稿版本在列表中置灰,不可查看、分享、收藏; + - 已发布过的仪表板和数据大屏若取消发布后(即仅存在草稿版本),原先创建的分享链接和收藏记录不删除。通过分享链接访问时,将提示仪表板未发布,同时在收藏栏中无法点击查看。 + +![更新1](./newimg/仪表板和数据大屏支持发布功能3.png){ width="900px" } + +![更新1](./newimg/仪表板和数据大屏支持发布功能4.png){ width="900px" } + + +### 1.7 联动按钮固定悬浮在页面右上角 +!!! Abstract "" + 联动按钮始终固定在页面右上角,不随页面滚动而上移。 + +![更新1](./newimg/联动按钮固定悬浮在页面右上角.gif){ width="900px" } + +### 1.8 排序支持设置优先级 +!!! Abstract "" + 排序功能现已支持配置多个字段(维度和指标)的排序优先级,系统将根据设置的优先级顺序依次进行排序。 + +![更新1](./newimg/排序支持设置优先级1.png){ width="900px" } + +![更新1](./newimg/排序支持设置优先级2.png){ width="900px" } + +![更新1](./newimg/排序支持设置优先级3.png){ width="900px" } + +### 1.9 分组柱状图支持组内按指标排序 +!!! Abstract "" + 排序结果受排序优先级设置影响,按照配置的优先级顺序进行排列。 + +![更新1](./newimg/分组柱状图支持组内按指标排序1.png){ width="900px" } + +![更新1](./newimg/分组柱状图支持组内按指标排序2.png){ width="900px" } + +### 1.10 折线图图例支持排序 + +![更新1](./newimg/%20折线图图例支持排序.png){ width="900px" } + +### 1.11 明细表合并单元格支持显示图片 + +![更新1](./newimg/%20明细表合并单元格支持显示图片.png){ width="900px" } + +### 1.12 图表支持配置提示信息轮播功能 + +!!! Abstract "" + 柱状图、组合图、饼图等图表现已支持启用提示信息轮播功能,支持设置提示的轮播停留时长与间隔,便于在无需鼠标悬停的情况下自动轮播展示各数据项的详情。 + 支持的图表类型包括: + + - 饼图 / 环形图 + - 基础折线图 / 面积图 + - 基础柱状图 + - 双轴图(全部类型) + +![更新1](./newimg/%20图表支持配置提示信息轮播功能.png){ width="900px" } + +![更新1](./newimg/%20图表支持配置提示信息轮播功能.gif){ width="900px" } + +### 1.13 汇总表总计支持数值字段汇总方式配置 + +!!! Abstract "" + 可根据字段需求选择求和、平均值、最大值、最小值等进行汇总展示。 + +![更新1](./newimg/汇总表总计支持数值字段汇总方式配置.png){ width="900px" } + +### 1.14 汇总表支持分页展示 + +!!! Abstract "" + 注意:该功能存在兼容性变化,历史汇总表默认将启用分页显示,如需恢复为不分页模式,可在配置中手动关闭分页选项。 + +![更新1](./newimg/汇总表支持分页展示.png){ width="900px" } + + +### 1.15 组合图副轴支持同环比显示 + +![更新1](./newimg/组合图副轴支持同环比显示.png){ width="900px" } + + +### 1.16 辅助线新增【最后一项】选项 + +!!! Abstract "" + 适用图表类型:线面图、双轴图、柱条图(瀑布图、百分比柱条图、区间条形图、对称条形图、子弹图除外)。 + **注意:为确保【最后一项】值(即尾值)的稳定性,需要设置字段排序,从而有稳定的排序规则。** + +![更新1](./newimg/%20辅助线新增【最后一项】选项1.png){ width="900px" } + +![更新1](./newimg/辅助线新增【最后一项】选项2.png){ width="900px" } + +### 1.17 透视表支持配置指标总计的显示名称 + +!!! Abstract "" + 透视表汇总别名配置项,同时支持为总计项及字段项设置别名。 + +![更新1](./newimg/透视表支持配置指标总计的显示名称1.png){ width="900px" } + +![更新1](./newimg/透视表支持配置指标总计的显示名称2.png){ width="900px" } + +### 1.18 数据大屏时间组件支持显示星期 + +![更新1](./newimg/数据大屏时间组件支持显示星期.png){ width="900px" } + + +### 1.19 时间范围组件的默认值支持设置更多常用时间范围 + +!!! Abstract "" + 默认值设置中新增常用时间范围选项,如“本周”、“本季度”等常用时间范围。 + + - 当时间粒度为【年月】时,默认值的可选项新增:“本季度”。 + - 当时间粒度为【年月日】或【年月日时分秒】时,默认值的可选项新增:“本周”(默认采用自然周,周一至周日)。 + +![更新1](./newimg/时间范围组件的默认值支持设置更多常用时间范围1.png){ width="900px" } + +![更新1](./newimg/时间范围组件的默认值支持设置更多常用时间范围2.png){ width="900px" } + +### 1.20 查询组件下拉树支持选择数据集并配置图表关联 + +!!! Abstract "" + 查询组件的下拉树现已支持选择数据集。在添加下拉树层级时,系统将自动关联同一数据集下图表的对应字段。 + + - 点击【关联图表】或左侧层级字段,可进一步配置各层级与图表字段的关联关系。 + - 支持按需为图表组件仅关联某一特定层级。例如,下图中“明细表-不同数据集”图表仅在第二层级(区域)关联了“地区”字段。 + **注意:切换下拉树类型时,已配置的层级信息将被清空,请谨慎操作。** + +![更新1](./newimg/查询组件下拉树支持选择数据集并配置图表关联1.png){ width="900px" } + +![更新1](./newimg/查询组件下拉树支持选择数据集并配置图表关联2.png){ width="900px" } + +### 1.21 新增子弹图 + +!!! Abstract "" + 子弹图支持在同一图形中展示实际值、目标值与参考值,用于衡量业务完成情况,常用于 KPI 监控等场景。 配置说明: + + - 实际值/指标:代表当前实际完成情况(如销售量)。 + - 目标值/指标:表示目标任务(如月 KPI)。 + - 参考值/指标:可选项,用于展示上级目标或基准线(如年目标)。 + +![更新1](./newimg/%20新增子弹图.png){ width="900px" } + +### 1.22 透视表新增行列转置功能 + +!!! Abstract "" + 指标展示支持选择按行头或列头展示,灵活调整展示方式。 + +![更新1](./newimg/透视表新增行列转置功能.png){ width="900px" } + +### 1.23 移动端支持收藏仪表板 + +!!! Abstract "" + +![更新1](./newimg/移动端支持收藏仪表板1.png){ width="450px" } ![更新1](./newimg/移动端支持收藏仪表板2.png){ width="450px" } + + + +## 2 数据准备 + +### 2.1 Excel 数据源支持上传后修改字段类型功能 + +!!! Abstract "" + 包括本地 Excel/CSV 和远程 Excel/CSV,上传后可在字段选择中设置字段类型以及字段长度。 + +![更新1](./newimg/%20Excel%20数据源支持上传后修改字段类型.png){ width="900px" } + +### 2.2 移动端支持展示数据填报,并支持移动端填报数据(XPack) + +![更新1](./newimg/移动端支持展示数据填报,并支持移动端填报数据1.png){ width="450px" } ![更新1](./newimg/移动端支持展示数据填报,并支持移动端填报数据2.png){ width="450px" } + + +### 2.3 数据填报的提交记录日志支持清理(XPack) + +![更新1](./newimg/数据填报的提交记录日志支持清理.png){ width="900px" } + +![更新1](./newimg/数据填报的提交记录日志支持清理2.png){ width="900px" } + +## 3 嵌入式(XPack) + +### 3.1 模板管理页面支持嵌入 + +![更新1](./newimg/模板管理页面支持嵌入.png){ width="900px" } + diff --git a/docs/change-v2-10.md b/docs/change-v2-10.md new file mode 100644 index 000000000..ef6789f81 --- /dev/null +++ b/docs/change-v2-10.md @@ -0,0 +1,336 @@ +# 更新日志 + +## 1 仪表板与数据大屏 + +### 1.1 Tab 组件支持轮播 +![更新1](./newimg/1.1%20Tab%20组件支持轮播1.PNG){ width="900px" } +!!! Abstract "" + Tab 组件的轮播在编辑状态下不生效,在预览模式下才会生效。 + +![更新1](./newimg/1.1%20Tab%20组件支持轮播2.gif){ width="900px" } + +### 1.2 图片、富文本、指标卡、图形、图标组件支持事件设置 +!!! Abstract "" + **仪表板中支持的事件:** + + - 跳转:跳转到指定 URL + - 刷新:刷新整个仪表板 + - 下载:将当前仪表板导出为图片 + - 分享 :弹出仪表板分享弹窗 + - 全屏:点击后数据大屏全屏展示 + + **数据大屏中支持的事件:** + + - 跳转:跳转到指定 URL + - 刷新:刷新整个数据大屏 + - 弹窗区域:控制弹窗区显示 + - 下载:将当前数据大屏导出为图片 + - 全屏:点击后数据大屏全屏展示 + + **注意:事件绑定需退出编辑模式后生效,富文本开启绑定事件则内部点击事件失效。** + +![更新1](./newimg/1.2 图片、富文本、指标卡、图形、图标组件支持事件设置.PNG){ width="900px" } + + +### 1.3 支持原始明细数据导出 + +![更新1](./newimg/1.3%20支持原始明细数据导出.PNG){ width="900px" } + +### 1.4 支持设置组件边框 + +![更新1](./newimg/1.4%20支持设置组件边框.png){ width="900px" } + + +### 1.5 支持地图、气泡地图、符号地图的提示轮播展示 +!!! Abstract "" + 地图和气泡地图按照地图映射顺序轮播,符号地图按照数据顺序轮播。 + +![更新1](./newimg/1.5%20支持地图、气泡地图、符号地图的提示轮播展示1.png){ width="900px" } + +![更新1](./newimg/1.5%20支持地图、气泡地图、符号地图的提示轮播展示2.gif){ width="900px" } + + +### 1.6 堆叠组合图支持根据堆叠项进行排序 + +![更新1](./newimg/1.6%20堆叠组合图支持根据堆叠项进行排序.png){ width="900px" } + +### 1.7 明细表支持显示图片 +!!! Abstract "" + 数据集字段类型新增“URL”类型。 + +![更新1](./newimg/1.7%20明细表支持显示图片1.png){ width="900px" } + +!!! Abstract "" + 目前 URL 字段被自动展示为图片,后续会支持细分扩展,如 URL 图片、URL 链接等。 + +![更新1](./newimg/1.7%20明细表支持显示图片2.png){ width="900px" } + +!!! Abstract "" + 图片展示高度根据所设置单元格行高自适应。 + +![更新1](./newimg/1.7%20明细表支持显示图片3.png){ width="900px" } + +!!! Abstract "" + 鼠标悬浮在单元格上,会出现图片原始链接。 + +![更新1](./newimg/1.7%20明细表支持显示图片4.png){ width="900px" } + +!!! Abstract "" + 鼠标点击单元格图片,图片会放大展示。 + +![更新1](./newimg/1.7%20明细表支持显示图片5.png){ width="900px" } + +### 1.8 图表过滤器支持动态日期 +!!! Abstract "" + 当图表需要依赖动态日期展示内容时,不再完全依赖筛选组件,而可以通过在图表自己的过滤器中配置来实现。 + +![更新1](./newimg/1.8%20图表过滤器支持动态日期1.png){ width="900px" } + +![更新1](./newimg/1.8%20图表过滤器支持动态日期2.png){ width="900px" } + +### 1.9 指标卡支持显示同环比数据 +!!! Abstract "" + **注意:** + + - 指标卡的同环比同其他图表组件的同环比规则,可支持查询组件过滤,但不支持图表过滤器过滤; + - 在同环比的情况下,先进行同环比计算,再加入查询组件的查询限制; + - 而图表过滤器的查询在同环比计算之前,在同时使用图表过滤器时,会存在数据不符合预期的情况。 + +![更新1](./newimg/1.9%20%20指标卡支持显示同环比数据1.png){ width="900px" } +![更新1](./newimg/1.9%20%20指标卡支持显示同环比数据2.png){ width="900px" } + +### 1.10 漏斗图支持展示转化率 + +![更新1](./newimg/1.10%20%20漏斗图支持展示转化率.png){ width="900px" } + +### 1.11 词云图支持轴值设置 +!!! Abstract "" + 词云图中的轴值可作为指标值的过滤条件,仅显示轴值范围内的数据。 + +![更新1](./newimg/1.11%20词云图支持轴值设置.png){ width="900px" } + + +### 1.12 弹窗区查询按钮支持显示控制 +!!! Abstract "" + 打开预览时弹窗区域的控制按钮,则支持用户预览数据大屏时动态调整弹窗区域的显隐。 +![更新1](./newimg/1.12%20弹窗区查询按钮支持显示控制1.png){ width="900px" } + +![更新1](./newimg/1.12%20弹窗区查询按钮支持显示控制2.gif){ width="900px" } + +!!! Abstract "" + 关闭预览时弹窗区域的控制按钮,则弹窗区域被完全隐藏,且用户无法在预览界面手动调出弹窗区域。 + +![更新1](./newimg/1.12%20弹窗区查询按钮支持显示控制3.png){ width="900px" } + +![更新1](./newimg/1.12%20弹窗区查询按钮支持显示控制4.png){ width="900px" } + +### 1.13 数据大屏支持 Tab 组件 +!!! Abstract "" + 同仪表板 Tab 组件功能,且同时支持轮播。 +![更新1](./newimg/1.13 数据大屏支持 Tab 组件.png){ width="900px" } + +### 1.14 数据大屏支持缩放方式设置 +!!! Abstract "" + 数据大屏新增三种缩放方式选择:宽度优先、高度优先、铺满全屏。 + +![更新1](./newimg/1.14%20数据大屏支持缩放方式设置1.png){ width="900px" } + +!!! Abstract "" + 宽度优先:以画布宽度完整显示为前提,等比缩放高度显示。 + +![更新1](./newimg/1.14%20数据大屏支持缩放方式设置2.png){ width="900px" } + +!!! Abstract "" + 高度优先:以画布高度完整显示为前提,等比缩放宽度显示。 + +![更新1](./newimg/1.14%20数据大屏支持缩放方式设置3.png){ width="900px" } + +!!! Abstract "" + 铺满全屏:按屏幕尺寸缩放画布,会出现组件比例变形的情况。 + +![更新1](./newimg/1.14%20数据大屏支持缩放方式设置4.png){ width="900px" } + + +### 1.15 数据大屏组件支持 3D 设置 +!!! Abstract "" + 数据大屏中所有组件均支持 3D 设置,且支持组件组合后进行 3D 设置。 +![更新1](./newimg/1.15%20数据大屏组件支持%203D%20设置.png){ width="900px" } + +### 1.16 查询组件中的日期范围组件支持常用区间值选择 +!!! Abstract "" + 在使用日期范围类型且选择动态时间时,下拉选项提供了更多常用区间值。 +![更新1](./newimg/1.16%20查询组件中的日期范围组件支持常用区间值选择.png){ width="900px" } + +### 1.17 气泡地图事件触发区域改为气泡触发 +!!! Abstract "" + 气泡地图的事件改为点击到气泡才触发。 +![更新1](./newimg/1.17%20气泡地图事件触发区域改为气泡触发.png){ width="900px" } + +### 1.18 新增热力图 + +![更新1](./newimg/1.18%20新增热力图.png){ width="900px" } + +### 1.19 外部传参支持绑定数据集变量 +!!! Abstract "" + 之前版本里,参数关联查询组件时,不需要选择关联条件,一般使用场景中,一个关联条件应该对应一个参数。之前版本中若查询组件存在多个关联条件,且与外部参数做了关联的话,在新版本中会删除该查询组件的所有关联,需要重新添加。 仅存在一个关联关系的查询组件不受影响。 + +![更新1](./newimg/1.19%20外部传参支持绑定数据集变量1.png){ width="900px" } + +!!! Abstract "" + 之前版本中,外部参数关联组件时,是直接将所有组件列出,让用户一一选择组件及联动字段。 + +![更新1](./newimg/1.19%20外部传参支持绑定数据集变量2.png){ width="900px" } + +!!! Abstract "" + 新版本中,对关联组件做了分类,分为查询组件和图表两类。查询组件的关联需要选择关联条件。图表关联则可以通过数据集批量关联,减少重复操作。且图表的关联支持直接选择与数据集参数进行关联。 + **注意:外部传参同时关联查询组件与图表时,以查询组件的优先级优先。** + + +![更新1](./newimg/1.19%20外部传参支持绑定数据集变量3.png){ width="900px" } + + +### 1.20 富文本支持空值处理 +!!! Abstract "" + 富文本空值默认置为 "-",也可以自定义为任意内容,比如 0。 + +![更新1](./newimg/1.20%20富文本支持空值处理.png){ width="900px" } + +### 1.21 K 线图支持设置图例 + +![更新1](./newimg/1.21%20%20K%20线图支持设置图例.png){ width="900px" } + +### 1.22 透视表汇总支持自定义聚合公式 + +![更新1](./newimg/1.22 透视表汇总支持自定义聚合公式1.png){ width="900px" } + +!!! Abstract "" + 支持自己编写聚合公式。 + +![更新1](./newimg/1.22 透视表汇总支持自定义聚合公式2.png){ width="900px" } + + + +## 2 数据准备 + +### 2.1 API 数据源支持时间函数 +!!! Abstract "" + API 数据源在请求参数的请求头、QUERY 参数、请求体(form-data、x-www-form-urlencoded)均增加时间函数支持。目前内置的时间函数有当天(yyyy-MM-DD)、当天(yyyy/MM/DD)。 + +![更新1](./newimg/2.2%20API%20数据源支持时间函数.png){ width="900px" } + +### 2.2 支持数据集数据导出 + +![更新1](./newimg/2.4%20支持数据集数据导出1.png){ width="900px" } + +### 2.3 SQL 片段支持注释 + +![更新1](./newimg/2.5%20SQL%20片段支持注释.png){ width="900px" } + +### 2.4 新增数据填报(XPack) +!!! Abstract "" + 新增【数据填报】模块。可以管理填报表单并下发填报任务。 + +![更新1](./newimg/2.6%20新增数据填报(XPack)1.png){ width="900px" } + +!!! Abstract "" + 创建填报表单,配置表单字段。 + +![更新1](./newimg/2.6%20新增数据填报(XPack)2.png){ width="900px" } + +!!! Abstract "" + 保存表单时选择一个具体的数据源(也可以选择内建数据库,即 DataEase 系统数据库),并设置对应表名及表单各个字段对应的数据库表字段名称。后续所填写的表单数据将会被保存至该数据源的库表下。 + +![更新1](./newimg/2.6%20新增数据填报(XPack)3.png){ width="900px" } + +!!! Abstract "" + 表单创建完成后所具备的基础功能如下: + +![更新1](./newimg/2.6%20新增数据填报(XPack)4.png){ width="900px" } + +!!! Abstract "" + 在【工作台-我的填报】里可以查看和用户相关的填报任务,可以填写和修改表单数据。 + +![更新1](./newimg/2.6%20新增数据填报(XPack)5.png){ width="900px" } + + + +## 3 组织管理中心 +### 3.1 新增血缘分析(XPack) +!!! Abstract "" + 【组织管理中心】新增【血缘分析】,可以通过列表、脑图两种形式查看资源的关联关系。 + +![更新1](./newimg/3.1%20新增血缘分析(XPack)1.png){ width="900px" } + +![更新1](./newimg/3.1%20新增血缘分析(XPack)2.png){ width="900px" } + +!!! Abstract "" + 脑图形式查看时,点击资源节点,可以查看该节点的详情,以及该资源节点相关的资源依赖。 + +![更新1](./newimg/3.1%20新增血缘分析(XPack)3.png){ width="900px" } + +!!! Abstract "" + 通过【新页面打开】功能,可以直接跳转到该资源的预览页。血缘分析中可以看到所有关联的资源,比如可以看到基于指定数据集所创建的所有仪表板。但是通过【新页面打开】功能访问这些仪表板时,若当前用户无权限,会提示权限错误而无法访问。 + +![更新1](./newimg/3.1%20新增血缘分析(XPack)4.gif){ width="900px" } + +!!! Abstract "" + 删除数据源或数据集资源时,若存在基于该资源创建的内容,系统会给出相关提示,用户可通过点击【查看血缘关系】按钮查看关联资源。 + +![更新1](./newimg/3.1%20新增血缘分析(XPack)5.png){ width="900px" } + +![更新1](./newimg/3.1%20新增血缘分析(XPack)6.png){ width="900px" } + + +### 3.2 新增告警管理(XPack) + +!!! Abstract "" + 富文本、图表、表格支持在【高级】中设置阈值告警。 配置通知机制,告警及时传达给相关人员。 + +![更新1](../newimg/3.2 新增告警管理(XPack)1.png){ width="900px" } + +![告警通知](../img/xpack/创建告警机制.png){ width="900px" } + +![告警通知](../img/xpack/告警通知.png){ width="900px" } + + + +## 4 系统设置 +### 4.1 新增字体管理 +!!! Abstract "" + 新增字体管理,字体类型分为系统内置和自定义两类。系统内置字体不可删除,且不带字库文件,但用户可自行上传字库文件。 + +![更新1](./newimg/4.1%20新增字体管理1.png){ width="900px" } + +!!! Abstract "" + 支持用户添加新的字体,添加新字体时可选择是否同时上传字库文件。已创建的字体名称不允许修改且新建字体名称不允许重复。 + +![更新1](./newimg/4.1%20新增字体管理2.png){ width="900px" } + +!!! Abstract "" + 可以给还没有字库文件的字体类型上传字库文件,或是给已经存在字库文件的字体替换字库文件。 + +![更新1](./newimg/4.1%20新增字体管理3.png){ width="900px" } + +!!! Abstract "" + 可将自己上传的字体设置为系统默认字体,默认字体将影响系统字体显示。 + +![更新1](./newimg/4.1%20新增字体管理4.png){ width="900px" } + +!!! Abstract "" + 在【字体管理】中的所有字体,均可用于仪表板和数据大屏中能够设置字体的选项中。 + +![更新1](./newimg/4.1%20新增字体管理5.png){ width="900px" } + +### 4.2 支持配置移动端登录界面(XPack) +!!! Abstract "" + 外观配置支持设置移动端登录 Logo 及背景图。 + +![更新1](./newimg/4.2 支持配置移动端登录界面(XPack).png){ width="900px" } + +### 4.3 新增达梦数据源插件(XPack) +!!! Abstract "" + 对接测试版本为 DM8(dm8_20240715_rev232765_x86_rh6_64)。 + +![更新1](./newimg/4.3 新增达梦数据源插件(XPack)1.png){ width="900px" } + +![更新1](./newimg/4.3 新增达梦数据源插件(XPack)2.png){ width="900px" } diff --git a/docs/change-v2-2.md b/docs/change-v2-2.md new file mode 100644 index 000000000..2857317b3 --- /dev/null +++ b/docs/change-v2-2.md @@ -0,0 +1,59 @@ +# 更新日志 + +## 1 模板中心 + +### 1.1 模板管理支持批量操作 +!!! Abstract "" + - 支持批量修改模板分类 + - 支持批量删除模板 +![更新1](./newimg/v2-2-1.PNG){ width="900px" } + +### 1.2 优化 DataEase 环境无法访问在线模板市场时的模板中心与使用模板创建页面 + +!!! Abstract "" + 只显示 DataEase 系统内模板管理中的模板。 +![更新1](./newimg/v2-2-2.PNG){ width="900px" } + +## 2 数据准备 +### 2.1 数据集编辑界面支持下拉框搜索 +![更新1](./newimg/v2-2-3.PNG){ width="900px" } + +### 2.2 继续创建数据源时保持上一次的默认文件夹 +!!! Abstract "" + 在具体数据源文件夹下点击创建数据源。 +![更新1](./newimg/v2-2-4.PNG){ width="900px" } +!!! Abstract "" + 保存时的默认文件夹为创建时所选择的。 + +![更新1](./newimg/v2-2-5.PNG){ width="900px" } + +!!! Abstract "" + 此时点击继续创建,则下一个数据源保存时的默认文件夹与本次自动保持一致。 +![更新1](./newimg/v2-2-6.png){ width="900px" } + +## 3 仪表板与数据大屏 +### 3.1 查询组件支持下拉选项设置为必填 +![更新1](./newimg/v2-2-7.png){ width="900px" } +![更新1](./newimg/v2-2-8.png){ width="900px" } +### 3.2 组件组合后,在图层管理中可以按照分组查看组件列表 +![更新1](./newimg/v2-2-9.png){ width="900px" } +### 3.3 支持分组内部移动定位操作 +!!! Abstract "" + 多个组件创建分组后,可以作为分组整体移动,如果需要单独调整分组内组件的位置,可以通过双击该组件,然后移动该组件的所在位置。 +![更新1](./newimg/v2-2-10.gif){ width="900px" } +### 3.4 放大缩小组合时其内部组件同比放大缩小 +![更新1](./newimg/v2-2-11.gif){ width="900px" } +### 3.5 画布放大缩小其图表支持同比放大缩小 +![更新1](./newimg/v2-2-12.gif){ width="900px" } + +## 4 其他 +### 4.1 允许社区版修改 admin 账号的密码 +![更新1](./newimg/v2-2-14.png){ width="900px" } +![更新1](./newimg/v2-2-15.png){ width="900px" } +### 4.2 优化版本切换脚本 +!!! Abstract "" + v2.2.0 开始,修改 .env 文件的 DE_INSTALL_MODE 后,可以通过以下三种方式使配置生效,推荐 dectl reload。 + + - 重新执行 install.sh + - dectl reload + - dectl restart \ No newline at end of file diff --git a/docs/change-v2-3.md b/docs/change-v2-3.md new file mode 100644 index 000000000..bede09a21 --- /dev/null +++ b/docs/change-v2-3.md @@ -0,0 +1,95 @@ +# 更新日志 + +## 1 数据准备 + +### 1.1 支持 Db2 数据源 +!!! Abstract "" + 支持 Db2 11 及以上版本。 +![更新1](./newimg/v2-3-1.PNG){ width="900px" } + +### 1.2 数据源与数据集列表树过滤支持大小写 + +![更新1](./newimg/v2-3-2.PNG){ width="900px" } +![更新1](./newimg/v2-3-3.PNG){ width="900px" } + +## 2. 仪表板与数据大屏 +### 2.1 仪表板:新建组件自动横向占位 +!!! Abstract "" + 新添加组件的时候,会优先向右侧布局,位置不够的时候,才会自动换行添加。 +![更新1](./newimg/v2-3-4.PNG){ width="900px" } +![更新1](./newimg/v2-3-5.PNG){ width="900px" } + +### 2.2 仪表板:新增年月时间范围支持 +!!! Abstract "" +![更新1](./newimg/v2-3-6.png){ width="900px" } + +### 2.3 数据大屏:支持多个组件上下左右快速对齐 +!!! Abstract "" + 选择多个组件后,可以快速对齐,支持左对齐、右对齐、上对齐、下对齐、水平居中、垂直居中。 +![更新1](./newimg/v2-3-7.png){ width="900px" } + +### 2.4 数据大屏:屏幕尺寸上限调整 +!!! Abstract "" + 调整数据大屏宽高上限为 50000。 +![更新1](./newimg/v2-3-8.png){ width="900px" } + +### 2.5 新增透视表 +!!! Abstract "" + 仪表板与数据大屏均增加透视表组件。 +![更新1](./newimg/v2-3-9.png){ width="900px" } +### 2.6 新增指标卡 +!!! Abstract "" + 仪表板与数据大屏均增加指标卡组件。 +![更新1](./newimg/v2-3-10.png){ width="900px" } + +### 2.7 社区版支持公共链接功能 +![更新1](./newimg/v2-3-11.png){ width="900px" } + +## 3 组织管理中心 +### 3.1 增加同步管理模块(XPack) +!!! Abstract "" + 支持将用户自己数据库里的数据同步到如 Apache Doris 等高性能实时的分析型数据库中。 + + - 当前支持同步的源数据库:Db2、MySQL、Oracle、SQL Server + - 当前支持的目标数据库:Apache Doris(v1.2 及以上版本) +![更新1](./newimg/v2-3-12.png){ width="900px" } +![更新1](./newimg/v2-3-13.png){ width="900px" } +![更新1](./newimg/v2-3-14.png){ width="900px" } +### 3.2 支持水印设置(XPack) +![更新1](./newimg/v2-3-15.png){ width="900px" } + +## 4 工具箱 +### 4.1 增加操作日志模块(XPack) +!!! Abstract "" + 系统管理员可以查看所有日志,包括组织管理员在内的其他用户只能查看自己的所有日志,包括该用户所在的所有组织下的操作日志。 +![更新1](./newimg/v2-3-16.png){ width="900px" } +!!! Abstract "" + 可根据操作类型、操作用户、所属组织、操作时间等查询系统操作日志。 +![更新1](./newimg/v2-3-17.png){ width="900px"} + +## 5 其他 + +### 5.1 支持 API 文档(XPack) +!!! Abstract "" + API Key 页面新增【查看API】功能,可以通过点击该按钮跳转到 API 文档页面查看相关调用文档,并在线调试。 +![更新1](./newimg/v2-3-18.png){ width="900px"} + +![更新1](./newimg/v2-3-19.png){ width="900px"} + +### 5.2 嵌入式支持增强(XPack) +!!! Abstract "" + 嵌入式支持嵌入仪表板、数据大屏、数据源、数据集页面(带左侧的树形菜单)。 + 以下是嵌入式示例工程运行后的效果,顶部菜单的右侧 4 个菜单对应的即为仪表板、数据大屏、数据源、数据集页面(带左侧的树形菜单)。 +![更新1](./newimg/v2-3-20.png){ width="900px"} + +### 5.3 dectl 脚本支持查询最新版本信息 +!!! Abstract "" + dectl version 命令在历史版本中只会获取当前 DataEase 的版本信息,本次新增从 GitHub 检测最新版本号。 + + + ``` + dectl version + current version is v2.2.0 + 检测 github.com …… ok + latest version is v2.2.0 + ``` \ No newline at end of file diff --git a/docs/change-v2-4.md b/docs/change-v2-4.md new file mode 100644 index 000000000..4a2de1c6e --- /dev/null +++ b/docs/change-v2-4.md @@ -0,0 +1,103 @@ +# 更新日志 + +## 1 通用功能 + +### 1.1 树列表侧边栏支持展开与收起 +!!! Abstract "" + 数据源、数据集、数据大屏、仪表板界面均支持展开或收起左侧树形菜单栏。 +![更新1](./newimg/更新v2-4-0-1.PNG){ width="900px" } +![更新1](./newimg/更新v2-4-0-2.PNG){ width="900px" } + +## 2 移动端 仪表板与数据大屏 + +### 2.1 数据大屏新增图形素材 + +![更新1](./newimg/更新v2-4-0-3.PNG){ width="900px" } +![更新1](./newimg/更新v2-4-0-4.PNG){ width="900px" } + +### 2.2 富文本组件支持撤销操作 +!!! Abstract "" + 使用组件自带的按键或键盘快捷键均可。 +![更新1](./newimg/更新v2-4-0-5.PNG){ width="900px" } +### 2.3 明细表/汇总表支持按列设置宽度 +!!! Abstract "" + 方式一:手动针对各个字段配置所占表格宽度的百分比。 +![更新1](./newimg/更新v2-4-0-6.png){ width="900px" } +!!! Abstract "" + 方式二:手动拖拉。 +![更新1](./newimg/更新v2-4-0-7.png){ width="900px" } +!!! Abstract "" + 请注意,在预览界面与编辑界面均支持手动拖拉表格宽度,但只有编辑界面下拖拉完成保存后生效,在预览界面拖拉仅用于临时使用,刷新页面后将还原。 +![更新1](./newimg/更新v2-4-0-8.png){ width="900px" } +### 2.4 表格支持斑马纹 +![更新1](./newimg/更新v2-4-0-9.png){ width="900px" } +### 2.5 表格支持右键复制单元格内容 +!!! Abstract "" + 鼠标悬浮到某一单元格上,点击右键,即可复制当前单元格内容。(注意,这里不会另外弹出复制按钮,右键之后就已经完成了复制) +![更新1](./newimg/更新v2-4-0-10.gif){ width="900px" } + +## 3 移动端 + +### 3.1 新增移动端支持 +!!! Abstract "" + 功能说明: + + - 移动端共有“工作台”、“仪表板”和“我的”三个 Tab 栏; + - 工作台类似 PC 端工作台场景,可以查看“最近使用”、“我的收藏”、“我的分享”; + - 移动端仅支持查看仪表板资源(数据大屏由于使用场景和分辨率问题,不考虑在移动端支持); + - 支持在“我的”中切换当前组织。 +!!! Abstract "" + 配置仪表板移动端: + +![更新1](./newimg/更新v2-4-0-11-移动端设置.png){ width="900px" } +![更新1](./newimg/更新v2-4-0-12-移动端样式.png){ width="900px" } + +!!! Abstract "" + 移动端界面: +![更新1](./newimg/更新v2-4-0-13移动端界面.png){ width="900px" } + +## 4 系统设置 +### 4.1 平台对接支持企业微信、钉钉、Lark(XPack) +!!! Abstract "" + 可通过企业微信、钉钉、Lark扫码方式登录 DataEase。 +![更新1](./newimg/Group 1 (4).png){ width="900px" } + +### 4.2 新增外观配置(XPack) +!!! Abstract "" + 外观配置包括平台显示主题、平台登录设置与平台设置三类。 +![更新1](./newimg/更新v2-4-0-15外观设置.png){ width="900px" } +![更新1](./newimg/更新v2-4-0-16外观设置2.png){ width="900px" } +![更新1](./newimg/更新v2-4-0-17外观设置3.png){ width="900px" } +### 4.3 支持引擎设置 +!!! Abstract "" + 可将 Excel 数据及 API 数据同步至该引擎数据库中,仅支持 MySQL。 +![更新1](../newimg/更新v2-4-0-引擎设置.png){ width="900px" } + + +## 5 组织管理中心(XPack) +### 5.1 同步管理功能优化 +!!! Abstract "" + 同步任务支持设置增量同步 + + - 全量:全量覆盖同步 + - 增量:根据增量字段增量同步,增量字段必须是整型或时间类型 +![更新1](./newimg/更新v2-4-0-18增量同步.png){ width="900px" } + +!!! Abstract "" + 支持手动终止执行中的任务 +![更新1](./newimg/更新v2-4-0-19终止任务.png){ width="900px" } + +## 6 工作台 +### 6.1 支持在我的收藏页取消收藏操作 +![更新1](./newimg/更新v2-4-0-20工作台.png){ width="900px" } + +## 7 服务运维 +### 7.1 dectl 增加备份与恢复操作 +!!! Abstract "" + dectl 命令新增 backup 和 restore 功能: + + - 备份操作:dectl backup + - 恢复操作:dectl restore DataEase备份文件.tar.gz + + dectl backup 命令将 DataEase 排除日志目录以外的运行目录(如 /opt/dataease2.0)进行备份压缩,生成备份文件 DataEase备份文件.tar.gz。在安装了同样版本的 DataEase 服务器上,用户可以通过执行 dectl restore DataEase备份文件.tar.gz 将 DataEase 还原为备份的内容。 + **请注意:备份文件中并不包含完整的镜像文件,所以备份和还原操作只能在同版本的情况下执行。** diff --git a/docs/change-v2-5.md b/docs/change-v2-5.md new file mode 100644 index 000000000..da69d6bf3 --- /dev/null +++ b/docs/change-v2-5.md @@ -0,0 +1,96 @@ +# 更新日志 + +## 1 仪表板与数据大屏 + +### 1.1 仪表板、数据大屏等页面的资源树支持排序 +!!! Abstract "" + 仪表板、数据大屏、数据集、数据源模块的资源树,支持按照资源的创建时间、名称进行升序和降序排列。 +![更新1](./newimg/1.1%20仪表板、数据大屏等页面的资源树支持排序.png){ width="900px" } + +### 1.2 仪表板支持外部参数功能 + +![更新1](./newimg/1.2可视化资源支持外部参数功能.png){ width="900px" } + + +### 1.3 数据大屏增加时钟组件 + +![更新1](./newimg/1.3%20数据大屏增加时钟组件.png){ width="900px" } + +### 1.4 数据大屏支持多个组件批量移动 +!!! Abstract "" + 数据大屏支持选择多个组件后批量移动。 +![更新1](./newimg/1.4%20数据大屏支持多个组件批量移动.gif){ width="900px" } + +### 1.5 日期查询组件可设置查询的起止日期 +!!! Abstract "" + 区间类型支持以下设置:开始于、结束于、时间区间、动态查询时间窗口(单次查询最多 N 天)。 +![更新1](./newimg/1.5%20日期查询组件可设置查询的起止日期1.png){ width="900px" } +!!! Abstract "" + 开始于:【开始于】日期前的日期无法被选择,支持设置【固定时间】与【动态时间】。比如,以下设置【开始于】日期为 2024-03-29,则 2024-03-29 前的日期无法再被选择。 +![更新1](./newimg/1.5%20日期查询组件可设置查询的起止日期2.png){ width="900px" } +![更新1](./newimg/1.5%20日期查询组件可设置查询的起止日期3.png){ width="900px" } +!!! Abstract "" + 结束于:【结束于】日期后的日期无法被选择,支持设置【固定时间】与【动态时间】。比如,以下设置【结束于】日期为 2024-03-29,则 2024-03-29 后的日期无法再被选择。 +![更新1](./newimg/1.5%20日期查询组件可设置查询的起止日期4.png){ width="900px" } +![更新1](./newimg/1.5%20日期查询组件可设置查询的起止日期5.png){ width="900px" } +!!! Abstract "" + 时间区间:只能选择该区间内的日期进行查询,支持设置【固定时间】与【动态时间】。比如如下设置了一个月的动态时间,则查询组件只能选今天起前一个月内的日期。 +![更新1](./newimg/1.5%20日期查询组件可设置查询的起止日期6.png){ width="900px" } +![更新1](./newimg/1.5%20日期查询组件可设置查询的起止日期7.png){ width="900px" } +!!! Abstract "" + 动态查询窗口:一次最多只能查询 N 天的日期范围,如下所示,设置单次查询时间最多 5 天,则在使用日期范围组件时,无法一次性选择大于 5 天的时间范围。 +![更新1](./newimg/1.5%20日期查询组件可设置查询的起止日期8.png){ width="900px" } +![更新1](./newimg/1.5%20日期查询组件可设置查询的起止日期9.png){ width="900px" } + +### 1.6 新增气泡地图 +![更新1](./newimg/1.6%20新增气泡地图.png){ width="900px" } + +### 1.7 增加配置:开启移动端 +!!! Abstract "" + 可在移动端的编辑界面设置是否【开启移动端】。 +![更新1](./newimg/1.7%20增加配置:开启移动端.png){ width="900px" } + +## 2 数据准备 + +### 2.1 支持获取数据源数据表以及数据集字段的描述信息 + +![更新1](./newimg/2.1%20支持获取数据源数据表以及数据集字段的描述信息.png){ width="900px" } +![更新1](./newimg/2.1%20支持获取数据源数据表以及数据集字段的描述信息2.png){ width="900px" } + +### 2.2 计算字段支持被二次引用 + +![更新1](./newimg/2.2%20计算字段支持被二次引用.png){ width="900px" } + + +## 3 系统设置 +### 3.1 支持从个人信息处绑定第三方平台账号 +!!! Abstract "" + 支持从个人信息处绑定第三方平台账号,前提是已经在系统设置的平台对接中对接了第三方平台。 +![更新1](./newimg/3.1%20支持从个人信息处绑定第三方平台账号.png){ width="900px" } + +## 4 其他 +### 4.1 支持配置是否启用 HTML 缓存 +!!! Abstract "" + 支持在 /opt/dataease2.0/conf/application.yml 配置文件中,通过设置参数 dataease.http.cache 来控制是否启用 html 缓存,默认情况下关闭 html 缓存。 + + ``` + server: + tomcat: + connection-timeout: 70000 + spring: + servlet: + multipart: + max-file-size: 500MB + max-request-size: 500MB + datasource: + url: jdbc:mysql://mysql-de:3306/dataease? + username: root + password: Password123@mysql + dataease: + http: + cache: true + + ``` +### 4.2 集成 MaxKB,新增 DataEaseAI 小助手 +![更新1](./newimg/4.2%20集成%20MaxKB,新增%20DataEaseAI%20小助手.png){ width="900px" } + diff --git a/docs/change-v2-6.md b/docs/change-v2-6.md new file mode 100644 index 000000000..13ab95930 --- /dev/null +++ b/docs/change-v2-6.md @@ -0,0 +1,141 @@ +# 更新日志 + +## 1 仪表板与数据大屏 + +### 1.1 新增象限图 + +![更新1](./newimg/1.1 新增象限图.png){ width="900px" } + +### 1.2 新增组合图 + +![更新1](./newimg/1.2 新增组合图.png){ width="900px" } + +### 1.3 地图组件支持地名映射配置 + +![更新1](./newimg/1.3 地图组件支持地名映射配置.png){ width="900px" } + +### 1.4 地图支持缩放 +![更新1](./newimg/1.4 地图支持缩放.png){ width="900px" } + +### 1.5 指标卡支持设置名称和值的间距 + +![更新1](./newimg/1.5 指标卡支持设置名称和值的间距.png){ width="900px" } + +### 1.6 表格支持悬停展示表头和表格内容 +!!! Abstract "" + 当单元格内容过多,没有显示完全时,可开启此功能,鼠标悬浮在表头或单元格上,自动显示其完整内容。 +![更新1](./newimg/1.6 表格支持悬停展示表头和表格内容.png){ width="900px" } + +### 1.7 词云图支持配置字号大小区间和文字间距 +![更新1](./newimg/1.7 词云图支持配置字号大小区间和文字间距.png){ width="900px" } + +### 1.8 透视表支持树形展示 +!!! Abstract "" + 透视表支持在样式中设置【平铺展示】或【树形展示】,树形展示支持手动点击将下级字段聚合或展开。 +!!! Abstract "" + 平铺展示示例: +![更新1](./newimg/1.8 透视表支持树形展示1.png){ width="900px" } +!!! Abstract "" + 树形展示示例: +![更新1](./newimg/1.8 透视表支持树形展示2.gif){ width="900px" } + +### 1.9 饼图/环形图支持合并数据为其他 +!!! Abstract "" + 饼图和环形图均支持 TopN 设置,即显示 TopN,其余的可以合并为其他。 +![更新1](./newimg/1.9 饼图:环形图支持合并数据为其他1.png){ width="900px" } +![更新1](./newimg/1.9 饼图:环形图支持合并数据为其他2.png){ width="900px" } + +### 1.10 下钻和联动支持配置同时触发 +!!! Abstract "" + 当一个图表同时配置了【下钻】与【联动】时,可以选择单独触发,如下图所示,根据提示选择当前执行下钻还是联动。 +![更新1](./newimg/1.10 下钻和联动支持配置同时触发1.png){ width="900px" } + +!!! Abstract "" + 也可以选择在配置联动设置时,选择“同时触发联动和下钻”,这样当点击该图表时将同时执行下钻与联动动作。 +![更新1](./newimg/1.10 下钻和联动支持配置同时触发2.png){ width="900px" } + +![更新1](./newimg/1.10 下钻和联动支持配置同时触发3.gif){ width="900px" } + +### 1.11 制作图表时支持批量选择与拖动字段 +!!! Abstract "" + 通过 shift 多选或通过 cmd 多次选择后,可将已选择的多个字段批量拖入维度/指标中。 +![更新1](./newimg/1.11 制作图表时支持批量选择与拖动字段.gif){ width="900px" } + +### 1.12 查询组件支持设置文本搜索 +!!! Abstract "" + + - 条件类型:单条件、与条件、或条件 + - 搜索模式:精确匹配、模糊匹配 +![更新1](./newimg/1.12 查询组件支持设置文本搜索1.png){ width="900px" } +![更新1](./newimg/1.12 查询组件支持设置文本搜索2.png){ width="900px" } + +### 1.13 文本下拉和数字下拉查询组件支持设置显示字段和排序字段 +!!! Abstract "" + + - 前提条件:选项值来源选择【选择数据集】。 + - 查询字段:用作后台查询条件。 + - 显示字段:用作前端显示内容。 + - 排序字段:影响前段展示的排序顺序。 +![更新1](./newimg/1.13 文本下拉和数字下拉查询组件支持设置显示字段和排序字段.png){ width="900px" } + +### 1.14 外部参数支持关联查询组件 +!!! Abstract "" + 外部参数支持传参到仪表板的查询组件中。 +![更新1](./newimg/1.14 外部参数支持关联查询组件.png){ width="900px" } + +### 1.15 跳转设置支持选择目标仪表板中的查询组件 +!!! Abstract "" + 跳转设置可选择传参到目标仪表板的查询组件中。 +![更新1](./newimg/1.15 跳转设置支持选择目标仪表板中的查询组件.png){ width="900px" } + +### 1.16 新增网页组件 +!!! Abstract "" + 在仪表板编辑界面的顶部菜单栏,点击【更多】->【网页】即可引入网页组件。在配置网站地址时请注意:部分网站可能设置不允许嵌入而无法显示。 +![更新1](./newimg/1.16 新增网页组件.png){ width="900px" } + +### 1.18 数据大屏多选组件后,可在没有组合的情况下整体变更组件大小 +!!! Abstract "" + 可通过鼠标框选或按住 Ctrl 点选的方式完成多选,选中后可整体调整组件大小。 +![更新1](./newimg/1.18 数据大屏多选组件后,可在没有组合的情况下整体变更组件大小.gif){ width="900px" } + +### 1.19 仪表板矩阵密度调整 +!!! Abstract "" + 仪表板矩阵密度细化为之前密度的 2 倍,可以更精细化调整组件的位置及大小。 +![更新1](./newimg/1.19 仪表板矩阵密度调整.png){ width="900px" } + +### 1.20 优化鼠标和触控板方向探测逻辑,触控板的内外伸缩可以直接控制大屏缩放,鼠标滚轮只控制滚动条 + +### 1.21 支持自定义公共链接后缀 +![更新1](./newimg/1.21 支持自定义公共链接后缀1.png){ width="500px" } +![更新1](./newimg/1.21 支持自定义公共链接后缀2.png){ width="500px" } +![更新1](./newimg/1.21 支持自定义公共链接后缀3.png){ width="900px" } + +### 1.22 公共链接支持自定义密码 +![更新1](./newimg/1.22 公共链接支持自定义密码.png){ width="500px" } + +### 1.23 Pad 端访问公共链接,以 PC 端布局展示 + +## 2 数据准备 + +### 2.1 单源数据集写 SQL 时使用对应数据库的 JDBC 语法 + +### 2.2 创建数据集时,同一个数据表可被多次引用 + +![更新1](./newimg/2.2 创建数据集时,同一个数据表可被多次引用.png){ width="900px" } + + +## 3 平台对接(XPack) +### 3.1 第三方平台支持免密登录 +!!! Abstract "" + 支持从个人信息处绑定第三方平台账号,前提是已经在系统设置的平台对接中对接了第三方平台。 +![对接企业微信](../img/xpack/企业微信应用首页.png){ width="900px" } + +![对接钉钉平台](../img/xpack/钉钉免密登陆配置.png){ width="900px" } + +![对接飞书平台](../img/xpack/飞书免密配置.png){ width="900px" } + +## 4 其他 +### 4.1 增加 AI 助手的首次指引 + +![更新1](./newimg/4.1 增加 AI 助手的首次指引.png){ width="900px" } + diff --git a/docs/change-v2-7.md b/docs/change-v2-7.md new file mode 100644 index 000000000..8212c787b --- /dev/null +++ b/docs/change-v2-7.md @@ -0,0 +1,169 @@ +# 更新日志 + +## 1 仪表板与数据大屏 + +### 1.1 增加高级样式设置 +!!! Abstract "" + 仪表板与数据大屏均增加高级样式设置,包括分页器配色,联动、钻取、跳转的图标颜色,钻取层级展示颜色。 + +![更新1](./newimg/1.1 增加高级样式设置.png){ width="900px" } +![更新1](./newimg/1.1 增加高级样式设置2.png){ width="900px" } + +### 1.2 图表过滤器支持复杂的与或条件设置 +!!! Abstract "" + 过滤器配置方式有调整,直接点击配置,而非之前的拖动字段配置,即目前的配置方式与 v1 统一。 +![更新1](./newimg/1.2 图表过滤器支持复杂的与或条件设置.png){ width="900px" } + +### 1.3 富文本组件增加字间距配置项 + +![更新1](./newimg/1.3 富文本组件增加字间距配置项.png){ width="900px" } + +### 1.4 导出图片时支持选择尺寸 +![更新1](./newimg/1.4 导出图片时支持选择尺寸.png){ width="900px" } + +### 1.5 数据大屏支持查询组件 +!!! Abstract "" + 数据大屏新增支持查询组件,与仪表板查询组件一致。 +![更新1](./newimg/1.5 数据大屏支持查询组件.png){ width="900px" } + +### 1.6 图表、查询组件等可以直接在右侧编辑区修改标题 +!!! Abstract "" + 双击右侧编辑区的标题即可修改标题。 +![更新1](./newimg/1.6%20图表、查询组件等可以直接在右侧编辑区修改标题.gif){ width="900px" } + +### 1.7 指标卡阈值支持设置背景色 +![更新1](./newimg/1.7 指标卡阈值支持设置背景色.png){ width="900px" } + +### 1.8 水波图支持设置阈值 +![更新1](./newimg/1.8%20水波图支持设置阈值.gif){ width="900px" } + +### 1.9 表格阈值支持非指标字段 +![更新1](./newimg/1.9 表格阈值支持非指标字段.png){ width="900px" } + +### 1.10 新增桑基图 +![更新1](./newimg/1.10 新增桑基图.png){ width="900px" } + +### 1.11 新增流向地图 +![更新1](./newimg/1.11%20新增流向地图.png){ width="900px" } + +### 1.12 新增进度条图 +!!! Abstract "" + 通过实际值与目标值自动计算当前完成比例。 +![更新1](./newimg/1.12 新增进度条图.png){ width="900px" } + +### 1.13 新增对称条形图 +![更新1](./newimg/1.13 新增对称条形图.png){ width="900px" } + +### 1.14 新增区间条形图 +![更新1](./newimg/1.14 新增区间条形图.png){ width="900px" } + +### 1.15 新增流媒体组件 +!!! Abstract "" + 流媒体只支持 flv 格式,如果需要使用 rtsp 格式,可参考知识库文章:https://kb.fit2cloud.com/?p=182 。 +![更新1](./newimg/1.15 新增流媒体组件.png){ width="900px" } + +### 1.16 新增视频组件 +!!! Abstract "" + 不能上传本地视频,需要填写视频链接信息。如果需要搭建视频服务器可参考知识库:https://kb.fit2cloud.com/?p=0e763f1d-a175-49e0-ac69-af8d39fb789b、https://kb.fit2cloud.com/?p=15 。 +![更新1](./newimg/1.16 新增视频组件.png){ width="900px" } + +### 1.17 象限图恒线支持设置小数及负数 +![更新1](./newimg/1.17%20象限图恒线支持设置小数及负数.png){ width="900px" } + +### 1.18 数据大屏新增跑马灯组件 +!!! Abstract "" + 数据大屏新增跑马灯组件,实现文字的循环滚动。支持设置文字颜色、字间距、字体大小、透明度、播放速度等选项。 +![更新1](./newimg/1.18 数据大屏新增跑马灯组件.png){ width="900px" } + +### 1.19 查询组件下拉列表选项优化 +!!! Abstract "" + + - 如果未设置显示和排序字段,或者这两个字段与查询字段相同,则获取 1000 个选项进行过滤,而不是获取 1000 条数据。 + - 在上述条件下,支持类似 v1 版本的动态过滤功能,允许在下拉选择框中输入查询内容,实时从数据库中查询最多 1000 个选项。 + - 当显示和排序字段与查询字段不同时,无论是默认下拉选项还是动态查询选项,都获取 1000 条数据进行过滤。 + +### 1.20 查询组件绑定参数的方式优化 +!!! Abstract "" + 参数绑定的操作前置到字段选择。 + 当绑定参数时,选项值来源不能为自动,否则选项值为空。因此当绑定了图表的参数时,将选项值来源的「自动」选项置灰,为不可用状态 +![更新1](./newimg/1.20 查询组件绑定参数的方式优化.png){ width="900px" } +![更新1](./newimg/1.20 查询组件绑定参数的方式优化2.png){ width="900px" } + +### 1.21 Pad 端访问公共链接,以 PC 端布局展示 + +## 2 数据准备 + +### 2.1 数据源支持直接输入 jdbc url 字符串进行数据连接 +![更新1](./newimg/2.1 数据源支持直接输入 jdbc url 字符串进行数据连接.png){ width="900px" } + + +## 3 组织管理中心(XPack) +### 3.1 支持定时报告 +!!! Abstract "" + 第一步:基础信息配置: +![更新1](./newimg/3.1 支持定时报告1.png){ width="900px" } +!!! Abstract "" + 第二步:接收人配置 + 目前只支持邮件和飞书接收通知。 +![更新1](./newimg/3.1 支持定时报告2.png){ width="900px" } +!!! Abstract "" + 选择内部收件人可以按照角色或用户维度多选。 +![更新1](./newimg/3.1 支持定时报告3.png){ width="900px" } +!!! Abstract "" + 需要发送给外部邮箱可以通过【邮件通知】输入框输入,输入完邮箱后点击回车即可。 +![更新1](./newimg/3.1 支持定时报告4.png){ width="900px" } +!!! Abstract "" + 第三步:配置发送设置 +![更新1](./newimg/3.1 支持定时报告5.png){ width="900px" } + + +## 4 系统设置(XPack) +### 4.1 外观配置优化 +!!! Abstract "" + 支持设置 AI 助手按钮、文档按钮、关于按钮的【显示】、【隐藏】或【Iframe中隐藏】。 + + - 显示 - 在各种模式下均显示 + - 隐藏 - 在各种模式下均隐藏 + - Iframe 中隐藏 - 主要用在嵌入式场景中,平台访问均显示,Iframe 嵌入的场景中会不显示 +![更新1](./newimg/4.1 外观配置优化1.png){ width="900px" } +![更新1](./newimg/4.1 外观配置优化2.png){ width="900px" } +### 4.2 支持禁用初始密码及配置密码有效期 +![更新1](./newimg/4.2 支持禁用初始密码及配置密码有效期.png){ width="900px" } + +### 4.3 支持第三方平台移动端免密登录 + +### 4.4 支持在系统设置中配置认证对接信息 +!!! Abstract "" + 以前版本设置过 CAS、OIDC 的这里不用再设置,会自动添加到 DataEase 的控制台参数中。 +![更新1](./newimg/4.4%20支持在系统设置中配置认证对接信息.png){ width="900px" } + +### 4.5 支持设置系统变量 +!!! Abstract "" + 系统管理员可以使用【系统变量】模块,在该模块中为全局添加自定义变量。变量分为三种类型: + + - 文本 + - 数值 + - 日期 +![更新1](./newimg/添加系统变量.png){ width="900px" } +!!! Abstract "" + 系统管理员可以为文本型变量添加可选值,为数值和日期类型变量设置范围值。 +![更新1](./newimg/用户添加参数.png){ width="900px" } +!!! Abstract "" + 系统管理员设置好系统变量后,组织管理员可以为组织内成员配置这些系统变量。 +![更新1](./newimg/用户配置多个参数.png){ width="900px" } +!!! Abstract "" + 在配置数据集的行权限时,除了系统内置的变量外,可以使用这些自定义的系统变量。 +![更新1](./newimg/数据集权限匹配参数.png){ width="900px" } + +## 5 嵌入式(XPack) +### 5.1 Iframe、Div 方式嵌入仪表板、数据大屏、图表时支持外部参数 +!!! Abstract "" + 其配置方式与使用方法与公共链接一致。 + +## 6 其他 +### 6.1 新增数据导出中心 +!!! Abstract "" + 图表的 Excel 数据导出功能已进行优化升级。原本版本直接生成 Excel 文件进行导出的机制,现改进为引入一个全新的数据导出中心,以便统一管理所有导出任务。 + 该导出中心默认支持 10 个并发导出任务,并会自动将生成的数据文件导出至 DataEase 服务器。导出任务完成后,用户将会接收到通知,随时可前往导出中心下载文件。 +![更新1](./newimg/6.1 新增数据导出中心.png){ width="900px" } +![更新1](./newimg/6.1 新增数据导出中心2.png){ width="900px" } \ No newline at end of file diff --git a/docs/change-v2-8.md b/docs/change-v2-8.md new file mode 100644 index 000000000..b0863c4c3 --- /dev/null +++ b/docs/change-v2-8.md @@ -0,0 +1,207 @@ +# 更新日志 + +## 1 仪表板与数据大屏 + +### 1.1 Tab 组件支持排序 + +![更新1](./newimg/1.1%20Tab%20组件支持排序.PNG){ width="900px" } + +### 1.2 公共链接分享支持 Ticket 方式 +!!! Abstract "" + 公共链接功能现已集成 Ticket 机制,增强了链接的安全性和灵活性。每个 Ticket 均可独立设定有效期。此外,相较于之前版本需要对外部参数进行 Base64 编码处理,现在的公共链接外部参数可以直接在 Ticket 参数中简易设置。 + 打开 Ticket 设置: +![更新1](./newimg/公共链接分享支持Ticket方式.png){ width="900px" } + +!!! Abstract "" + 新建一条 Ticket 并单独配置其有效期与参数,例如配置有效期为 30 天,参数为 {"name":"Tony","age":10}: +![更新1](./newimg/1.2%20公共链接分享支持%20Ticket%20方式2.PNG){ width="500px" } + +!!! Abstract "" + 复制 Ticket 链接,那么,使用 Ticket 的公共链接格式为 https://example.dataease.com/link/bcg48L2W?ticket=xk59xiHJ。在此情况下,无需传递 Ticket 参数,DataEase 将从数据库自动获取 Ticket 相关参数。 + +![更新1](./newimg/1.2%20公共链接分享支持%20Ticket%20方式3.PNG){ width="500px" } + +!!! Abstract "" + 当启用 Ticket “必选”选项时,只有在 URL 中附带 ticket 参数的情况下,公共链接才能被成功访问。 + +![更新1](./newimg/1.2%20公共链接分享支持%20Ticket%20方式4.PNG){ width="500px" } + +### 1.3 仪表板联动设置优化 +!!! Abstract "" + + - 在选择图表时,图表会被自动区分为同数据集或不同数据集; + - 支持一键全选同数据集所有图表,方便统一配置。 + +![更新1](./newimg/1.3%20仪表板联动设置优化1.png){ width="900px" } + +![更新1](./newimg/1.3%20仪表板联动设置优化2.png){ width="900px" } + +### 1.4 支持日期型字段参与联动、跳转 +![更新1](./newimg/1.4%20支持日期型字段参与联动、跳转1.png){ width="900px" } +![更新1](./newimg/1.4%20支持日期型字段参与联动、跳转2.png){ width="900px" } + +### 1.5 支持维度被联动后高亮显示 +!!! Abstract "" +![更新1](./newimg/1.5%20支持维度被联动后高亮显示1.png){ width="900px" } + +### 1.6 支持一键全屏预览 + +![更新1](./newimg/1.6%20支持一键全屏预览1.png){ width="900px" } +![更新1](./newimg/1.6%20支持一键全屏预览2.png){ width="900px" } + +### 1.7 支持组件背景上传 svg 类型图片 +!!! Abstract "" + 支持上传 svg 动图,支持上传 svg 边框等。 +![更新1](./newimg/1.7%20支持组件背景上传%20svg%20类型图片1.png){ width="900px" } +![更新1](./newimg/1.7%20支持组件背景上传%20svg%20类型图片2.png){ width="900px" } + +### 1.8 支持从图表中复制字段 +!!! Abstract "" + 复制的字段在后台仅存储在特定图表中,只有在该图表中才能看到,因此在数据集中不可见。复制字段适用于同一个字段需要不同计算方式的场景。 +![更新1](./newimg/1.8%20支持从图表中复制字段.png){ width="900px" } + +### 1.9 新增分组柱线组合图 +![更新1](./newimg/1.9 新增分组柱线组合图.png){ width="900px" } + +### 1.10 新增堆叠柱线组合图 +![更新1](./newimg/1.10 新增堆叠柱线组合图.png){ width="900px" } + +### 1.11 新增热力地图 +![更新1](./newimg/1.11 新增热力地图.png){ width="900px" } + +### 1.12 新增符号地图 +![更新1](./newimg/1.12 新增符号地图.png){ width="900px" } + +### 1.13 新增 K 线图 +!!! Abstract "" + 放置指标时需要注意字段的放置顺序:开盘价->收盘价->最低价->最高价。 +![更新1](./newimg/1.13 新增 K 线图.png){ width="900px" } + +### 1.14 支持明细表分页器风格设置 +![更新1](./newimg/1.14 支持明细表分页器风格设置.png){ width="900px" } + +### 1.15 柱形图/条形图支持设置圆角 +![更新1](./newimg/1.15 柱形图:条形图支持设置圆角.png){ width="900px" } + +### 1.16 地图颜色支持设置渐变色及自定义渐变色 +!!! Abstract "" + 目前只有基础的地图支持了渐变色。 +![更新1](./newimg/1.16 地图颜色支持设置渐变色及自定义渐变色1.png){ width="900px" } + +!!! Abstract "" + 在自定义渐变色时,可以通过设置起始和结束颜色,DataEase 会自动计算中间渐变色。 +![更新1](./newimg/1.16 地图颜色支持设置渐变色及自定义渐变色2.png){ width="900px" } + +### 1.17 地图支持自定义图例区间及图例个数 +![更新1](./newimg/1.17 地图支持自定义图例区间及图例个数.png){ width="900px" } + +### 1.18 数据大屏增加刻度尺指示功能 +!!! Abstract "" + 在数据大屏上选择组件后,对应的轴上会高亮组件的宽高区域。 +![更新1](./newimg/1.18%20数据大屏增加刻度尺指示功能.gif){ width="900px" } + +### 1.19 数据大屏支持复用组件 +![更新1](./newimg/1.19 数据大屏支持复用组件.png){ width="900px" } + + +### 1.20 数据大屏支持外部参数设置 +![更新1](./newimg/1.20 数据大屏支持外部参数设置.png){ width="900px" } + +### 1.21 查询组件支持级联设置 +!!! Abstract "" + + - 展示类型为文本下拉组件和数字下拉组件; + - 选项值来源为数据集; + - 支持跨源级联,目前初版仅支持 2 级级联。 + +![更新1](./newimg/1.20 查询组件支持级联设置1.png){ width="900px" } +![更新1](./newimg/1.20 查询组件支持级联设置2.png){ width="900px" } + + +### 1.22 查询组件支持下拉树 +!!! Abstract "" + 注意:下拉树不支持跨源。 + +![更新1](./newimg/1.21 查询组件支持下拉树.png){ width="900px" } +![更新1](./newimg/1.21 查询组件支持下拉树2.png){ width="900px" } + + +### 1.23 查询组件日期筛选支持周、月、年等快捷查询 +![更新1](./newimg/1.22 查询组件日期筛选支持周、月、年等快捷查询.png){ width="900px" } + +### 1.24 支持透视表导出渲染后的表格 +!!! Abstract "" + 选择导出->Excel(带格式): +![更新1](./newimg/1.23 支持透视表导出渲染后的表格1.png){ width="900px" } +!!! Abstract "" + 导出后的 Excel 会保持透视表的渲染格式: + +![更新1](./newimg/1.23 支持透视表导出渲染后的表格2.png){ width="900px" } + +### 1.25 富文本支持阈值设置 +![更新1](./newimg/1.25%20富文本支持阈值设置.png){ width="900px" } + +### 1.26 数据集数据预览列表支持调整宽度 +![更新1](./newimg/1.26%20%20数据集数据预览列表支持调整宽度.gif){ width="900px" } + + + +## 2 数据准备 + +### 2.1 数据集表关联时支持设置全连接 +!!! Abstract "" + + - MySQL,API,Excel 数据源目前不支持全连接; + - 由于交互问题,校验放在后端执行,若不支持全连接,会返回提示。 +![更新1](./newimg/2.1 数据集表关联时支持设置全连接.png){ width="900px" } + +### 2.2 API 数据源支持参数提取 +!!! Abstract "" + API 数据源新增接口参数设置,支持从 API 请求的响应数据中提取结果作为 API 数据表的请求参数,可以用于 API token 获取等场景。 + 提取参数: +![更新1](./newimg/2.2%20API%20数据源支持参数提取.png){ width="900px" } + +!!! Abstract "" + 配置参数: +![更新1](./newimg/2.2%20API%20数据源支持参数提取2.png){ width="900px" } + + +## 3 系统设置(XPack) +### 3.1 插件管理 +!!! Abstract "" + + - 新增插件管理模块,支持数据源插件和图表插件; + - 安装插件时即时生效,但更新与卸载插件需要重启服务后生效。 +![更新1](./newimg/3.1%20插件管理.png){ width="900px" } + +### 3.2 支持 CAS 配置时填写回调域名 + +![更新1](./newimg/3.2 支持 CAS 配置时填写回调域名.png){ width="900px" } + +### 3.3 APISIX路由初始化过程优化 +!!! Abstract "" + 之前版本的路由初始化通过 shell 脚本实现,常导致初始化失败。新版本中,DataEase 启动后会自动检测和初始化 APISIX 配置。 + +## 4 组织管理中心(XPack) +### 4.1 权限中增加预览图表导出的控制 +!!! Abstract "" + 支持同时控制仪表板和数据大屏的导出以及图表数据的导出。 +![更新1](./newimg/4.2 权限中增加预览图表导出的控制.png){ width="900px" } + +### 4.2 支持定时报告设置查询组件默认值 +!!! Abstract "" + 新增了查询组件参数设置功能,可以覆盖指定仪表板或数据大屏中的查询组件默认值。 +![更新1](./newimg/4.3 支持定时报告设置查询组件默认值.png){ width="900px" } +![更新1](./newimg/4.3 支持定时报告设置查询组件默认值2.png){ width="900px" } +![更新1](./newimg/4.3 支持定时报告设置查询组件默认值3.png){ width="900px" } + + +## 5 其他 +### 5.1 支持在数据导出中心查看导出失败原因 +!!! Abstract "" + 当存在导出失败的数据时,可以点击“导出失败”,查看具体失败原因。 +![更新1](./newimg/5.1 支持在数据导出中心查看导出失败原因.png){ width="900px" } + +### 5.2 移动端支持跳转 + +![更新1](./newimg/5.2%20移动端支持跳转.gif){ width="400px" } \ No newline at end of file diff --git a/docs/change-v2-9.md b/docs/change-v2-9.md new file mode 100644 index 000000000..1dcc7a45a --- /dev/null +++ b/docs/change-v2-9.md @@ -0,0 +1,218 @@ +# 更新日志 + +## 1 仪表板与数据大屏 + +### 1.1 图片组件支持不同的适应方式 +!!! Abstract "" + + - 适应组件:长宽均跟随组件变化而变化; + - 原始尺寸:图片原始大小,不跟随组件大小改变而改变; + - 等比适应:跟随组件大小改变而改变,但是图片原始比例不跟随改变。 + +![更新1](./newimg/1.1%20图片组件支持不同的适应方式.PNG){ width="900px" } + +### 1.2 地图、气泡地图提示信息增强 +!!! Abstract "" + 支持在提示信息中选择显示未参与图表制作的其他指标字段。 + +![更新1](./newimg/1.2%20地图、气泡地图提示信息增强.PNG){ width="900px" } + +![更新1](./newimg/1.2%20地图、气泡地图提示信息增强2.PNG){ width="900px" } + +### 1.3 线面图与柱条图类型支持最值显示 +!!! Abstract "" + 线/面图和柱/条图类型的图表中,不包含子类别和堆叠项的情况下,可以设置显示最值。开启【显示最值】后,图中的最大值和最小值的标签会以专属的样式呈现。 + +![更新1](./newimg/1.3%20线面图与柱条图类型支持最值显示1.PNG){ width="900px" } + +![更新1](./newimg/1.3%20线面图与柱条图类型支持最值显示2.PNG){ width="900px" } + +### 1.4 支持按图例设置颜色 +!!! Abstract "" + 分布图、关系图、柱/条图、线/面图支持在基础样式中通过自定义颜色,为图例设置不同的颜色。 + +![更新1](./newimg/1.4%20支持按图例设置颜色.png){ width="900px" } + + +### 1.5 数据大屏新增弹窗区支持 +!!! Abstract "" + 打开弹窗区域。 + +![更新1](./newimg/1.5%20数据大屏新增弹窗区支持1.png){ width="900px" } + +!!! Abstract "" + 在弹窗区域中添加查询组件。 + +![更新1](./newimg/1.5%20数据大屏新增弹窗区支持2.png){ width="900px" } + +!!! Abstract "" + 在全屏或预览的界面下,当设置了弹窗区时,数据大屏右下侧会出现查询按钮,点击可唤出弹窗区。弹窗区的查询组件功能同普通查询组件,同时也支持外部传参。 + +![更新1](./newimg/1.5%20数据大屏新增弹窗区支持3.gif){ width="900px" } + +### 1.6 查询组件中的文本下拉选项支持全部和默认两种选择 +!!! Abstract "" + 历史版本的选项值默认为 1000 条,新版本提供【全部】的选项。 + + - 默认:如果未设置显示和排序字段,或者这两个字段与查询字段相同,则获取 1000 个选项进行过滤;当显示和排序字段与查询字段不同时,无论是默认下拉选项还是动态查询选项,都获取 1000 条数据进行过滤。 + - 全部:对所有数据进行查询并返回,在数据量大的情况下,可能会存在性能问题,如等待时间长,加载慢,甚至浏览器内存不足,故使用时需注意。 + +![更新1](./newimg/1.6%20查询组件中的文本下拉选项支持全部和默认两种选择.png){ width="900px" } + +### 1.7 查询组件支持无查询按钮直接查询 +!!! Abstract "" + 支持在【展示按钮】处去掉【查询】的勾选,在不展示【查询】按钮的情况下,选择完下拉选项后会立即触发数据查询。 + +![更新1](./newimg/1.7%20查询组件支持无查询按钮直接查询.png){ width="900px" } + +### 1.8 汇总表支持显示总计 + +![更新1](./newimg/1.8 汇总表支持显示总计.png){ width="900px" } + +### 1.9 数据大屏支持切换图表类型 +!!! Abstract "" + 支持在数据大屏中,将已存在图表切换成其他图表类型。 + +![更新1](./newimg/1.9%20数据大屏支持切换图表类型1.png){ width="900px" } + +### 1.10 气泡地图添加水波纹动画配置 + +![更新1](./newimg/1.10%20气泡地图添加水波纹动画配置.gif){ width="900px" } + +### 1.11 流向地图支持配置起止点名称及更多动效 +!!! Abstract "" + 支持配置起点名称、终点名称、线条粗细。 +![更新1](./newimg/1.11%20流向地图支持配置起止点名称及更多动效.png){ width="900px" } + +!!! Abstract "" + 支持通过【标注】功能,设置起始位置文字样式及标注点样式。 + +![更新1](./newimg/1.11%20流向地图支持配置起止点名称及更多动效2.png){ width="900px" } + +!!! Abstract "" + 支持配置气泡动效:进入【高级】并打开【气泡动效】开关。。 +![更新1](./newimg/1.11%20流向地图支持配置起止点名称及更多动效.gif){ width="900px" } + +### 1.12 表格的表头/单元格/斑马纹均支持单独设置透明度 + +![更新1](./newimg/1.12 表格的表头:单元格:斑马纹均支持单独设置透明度.png){ width="900px" } + +### 1.13 表格字体支持设置加粗和斜体 + +![更新1](./newimg/1.13 表格字体支持设置加粗和斜体.png){ width="900px" } + +### 1.14 表格支持单独控制表头和单元格的横纵边框显隐 + +![更新1](./newimg/1.14 表格支持单独控制表头和单元格的横纵边框显隐.png){ width="900px" } + +### 1.15 数据大屏支持批量设置样式 + +![更新1](./newimg/1.15 数据大屏支持批量设置样式.png){ width="900px" } + + +## 2 数据准备 + +### 2.1 数据源支持 ssh 隧道 +!!! Abstract "" + 支持 ssh 隧道方式,通过跳板机连接其他网络环境中的数据源。支持密码和密钥两种方式。 +![更新1](./newimg/2.1 数据源支持 ssh 隧道.png){ width="900px" } + +### 2.2 API 数据源支持自定义参数前后缀 +!!! Abstract "" + 功能背景可参考:https://github.com/dataease/dataease/issues/11010 。 +![更新1](./newimg/2.2 API 数据源支持自定义参数前后缀.png){ width="900px" } + +### 2.3 数据源支持复制 +!!! Abstract "" + 除 Excel 数据源外,其他数据源支持复制功能。 +![更新1](./newimg/数据源支持复制.png){ width="900px" } + + +## 3 系统设置(XPack) +### 3.1 支持 LDAP 认证 +!!! Abstract "" + 注意:LDAP 实现方式与 APISIX 无关,特别注意 LDAP 属性映射里的字段名。 + +![更新1](./newimg/3.1 支持 LDAP 认证.png){ width="900px" } + +### 3.2 支持配置默认登录方式 +!!! Abstract "" + 在已配置其他登录方式(LDAP、CAS、OIDC)的情况下,并将其配置为默认登录方式,则在访问 DataEase 时,登录页面会自动跳转到相应登录页面。在配置了其他默认登录方式的情况下,如果需要使用 DataEase 原有登录方式,可以访问 URL:http(s)://de_server_ip:de_port/#/admin-login,可支持所有用户的普通登录。 + +![更新1](./newimg/3.2%20支持配置默认登录方式.png){ width="900px" } + +![更新1](./newimg/3.2%20支持配置默认登录方式2.png){ width="900px" } + +### 3.3 OIDC 配置项 Realm 优化为非必填项 + +![更新1](./newimg/3.3 OIDC 配置项 Realm 优化为非必填项.png){ width="900px" } + + +### 3.4 增加导出仪表板或数据大屏图片的接口 + +![更新1](./newimg/3.4%20增加导出仪表板或数据大屏图片的接口%20.png){ width="900px" } + +## 4 组织管理中心(XPack) +### 4.1 定时报告增加出错重试设置 +!!! Abstract "" + 当定时报告发送失败后自动按照重试设置进行重发尝试。 + +![更新1](./newimg/4.1 定时报告增加出错重试设置.png){ width="900px" } + +### 4.2 支持通过 Excel 批量导入第三方平台用户 +!!! Abstract "" + 导入模板新增【外部用户唯一标识】字段,用于填写第三方平台的用户 ID。 + 用户来源支持的选项同【用户管理】中的【用户来源】字段:LOCAL、企业微信、钉钉、飞书、国际飞书、CAS、OIDC、LDAP。 + +![更新1](./newimg/4.2%20支持通过%20Excel%20批量导入第三方平台用户1.png){ width="900px" } + +![更新1](./newimg/4.2%20支持通过%20Excel%20批量导入第三方平台用户2.png){ width="500px" } + +![更新1](./newimg/4.2%20支持通过%20Excel%20批量导入第三方平台用户3.png){ width="900px" } + +![更新1](./newimg/4.2%20支持通过%20Excel%20批量导入第三方平台用户4.png){ width="900px" } + +### 4.3 支持多条行权限配置取并集 +!!! Abstract "" + 用户如果适用数据集的多条行权限规则,则会取所有规则的并集(历史版本中是取交集)。 + +![更新1](./newimg/4.3 支持多条行权限配置取并集.png){ width="900px" } + +## 5 其他 +### 5.1 新增应用功能 +!!! Abstract "" + 支持将仪表板和数据大屏以应用的形式进行导出。 + 在 DataEase v2 中,应用作为模板的其中一种形式,和模板同时放在【模板管理】中管理。关于模板文件与应用文件的区别可参考:https://kb.fit2cloud.com/?p=211。 + 可将自己的仪表板/数据大屏导出为【应用】。 + +![更新1](./newimg/5.1 新增应用功能1.png){ width="900px" } + +![更新1](./newimg/5.1 新增应用功能2.png){ width="900px" } +!!! Abstract "" + 可在【模板管理】中上传应用。 +![更新1](./newimg/5.1 新增应用功能3.png){ width="900px" } +!!! Abstract "" + 使用模板新建仪表板或数据大屏时可选择使用存在的应用文件。 + +![更新1](./newimg/5.1 新增应用功能4.png){ width="900px" } + +![更新1](./newimg/5.1 新增应用功能5.png){ width="900px" } +!!! Abstract "" + 使用应用创建的资源,会自动弹出相关配置项,需要用户进一步填写。 + +![更新1](./newimg/5.1 新增应用功能6.png){ width="900px" } +### 5.2 新增 Copilot 对话分析功能 +!!! Abstract "" + 用户可以先选择一个数据集,并围绕该数据集的相关信息与 Copilot 进行对话。Copilot 将通过表格、折线图等形式展示相关的分析数据。 + 上下文关联与历史记录:用户当前数据集的所有对话都存在上下文关系,并且所有对话历史记录都会保存在数据库中。当用户从其他页面返回到 Copilot 对话分析页面时,系统会自动恢复之前针对该数据集的所有对话历史。需要注意的是,由于会话历史数据的增加,会影响 Copilot 的响应速度,所以在以后版本中这里可能会调整。 + 会话切换:在用户切换数据集或组织时,会自动开启一个全新的会话,以确保不同数据集和组织之间的对话互不干扰。 + 数据源类型支持:目前,Copilot 支持以下数据源类型,需要注意的是,MySQL 和 PostgreSQL 有更好的支持效果,其他类型数据库的支持目前会差一些。 + + - MySQL + - PostgreSQL + - Oracle + - SQLServer +![更新1](./newimg/5.2%20新增%20Copilot%20对话分析功能1.png){ width="900px" } + +![更新1](./newimg/5.2%20新增%20Copilot%20对话分析功能2.png){ width="900px" } + diff --git a/docs/changelog.md b/docs/changelog.md new file mode 100644 index 000000000..730a09b62 --- /dev/null +++ b/docs/changelog.md @@ -0,0 +1,3871 @@ +# 更新日志 + +## 1 版本说明 + +!!! Abstract "" + **版本号说明:** 像其它优秀开源项目一样,DataEase 将保持每月发布一个新的功能版本,功能版本中如遇较为紧急或严重的 Bug,将及时推出 + Bug 修复的小版本。 + **DataEase 版本号命名规则为:** v 大版本.功能版本. Bug 修复版本,示例如下: + + - v2.0.1 是 v2.0.0 之后的 Bug 修复版本 + - v2.1.0 是 v2.0.0 之后的功能版本 + +## 2 更新内容 + +### v2.10.23 +2026年5月28日 + +!!! Warning "**安全漏洞修复(DE - 2026.05.28)** " + + - fix(漏洞): 修复DataEase模板静态资源存在认证型存储型跨站脚本(XSS)漏洞 + - fix(漏洞): 修复数据集SQL变量存在的SQL注入漏洞([(CVE-2026-45535)](https://github.com/dataease/dataease/security/advisories/GHSA-pv23-p64m-4pxf)) + - fix(漏洞): 修复JDBC RCE漏洞([(CVE-2026-45534)](https://github.com/dataease/dataease/security/advisories/GHSA-cv4c-8rpv-2x97)) + - fix(漏洞): 修复路径遍历漏洞([(CVE-2026-45533)](https://github.com/dataease/dataease/security/advisories/GHSA-mwr5-hw6p-cqmg)) + - fix(漏洞): 修复路径遍历漏洞([(CVE-2026-45532)](https://github.com/dataease/dataease/security/advisories/GHSA-2mqc-w4hm-f3p9)) + - fix(漏洞): 修复公开外观图片接口存在Base64解码后路径穿越读文件风险([(CVE-2026-45419)](https://github.com/dataease/dataease/security/advisories/GHSA-83fh-fgh3-g9f9)) + - fix(漏洞): 修复DataEase存在的SQL注入漏洞([(CVE-2026-45417)](https://github.com/dataease/dataease/security/advisories/GHSA-rg6c-r9mv-39fr)) + - fix(漏洞): 修复通过 Zip 协议和文件投放器进行远程代码执行 (RCE)的漏洞 + - fix(漏洞): 修复角色、用户接口排序字段的SQL注入漏洞 + - fix(漏洞): 修复在预览路径中执行任意SQL的漏洞 + - fix(漏洞): 修复File upload/path有效性校验漏洞 + - fix(漏洞): 修复在数据导出中心存在的IDOR(不安全直接对象引用)漏洞 + - fix(漏洞): 修复XSS漏洞:多处v-html渲染用户可控内容 + - fix(漏洞): 修复同步模块JDBC URL安全校验,增强数据源配置安全性 + - fix(漏洞): 修复第三方登录平台token未验签即可换正式token问题 + - fix(漏洞): 修复全局静态后缀白名单匹配过宽漏洞 + - fix(漏洞): 修复核心JDBC URL/Driver校验分散漏洞 + - fix(漏洞):导出中心公开下载链接有效期接口存在未授权请求漏洞 + + 感谢社区用户 sondt99、 vinch3s、 unam4、 Zjackky、 4ra1n、 PineBlizz、 Yuremin、 FORIMOC、 invoke1442、 xpp3901、 28Hus发现并向 DataEase 开源社区反馈上述漏洞。 + +!!! Abstract "新增功能 :star2:" + + - feat(图表): 新增表格空数据提示样式设置功能 + - feat(仪表板、数据大屏): 图表预览操作按钮支持显示控制 + - feat(嵌入式): 嵌入式场景支持嵌入数据导出中心模块 + - feat(查询组件): 新增年到上月月末时间范围筛选 + - feat(X-Pack): [数据填报]新增发送填报任务支持邮件或企业微信通知功能 + - feat(X-Pack): [数据填报]新增数据填报异步导出功能 + - feat(X-Pack): 数据集行权限新增"开始以""结束以"筛选方式 #18322 + - feat(X-Pack): 系统设置中新增嵌入式场景下数据导出方式配置 + +!!! Abstract "功能优化 :sunflower:" + + - refactor(仪表板、数据大屏): 优化表格无数据提示,支持自定义提示字体大小和颜色 #18296 + - refactor(仪表板、数据大屏): 优化Tab组件,支持Tab组件懒加载 + - refactor: 优化application.yml文件,支持指定包含其他配置文件 + - refactor(X-Pack): 优化数据同步功能,源数据源Oracle支持同步视图数据 #18344 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(数据源): 修复PostgreSQL视图描述问题 + - fix(数据源): 修复远程数据源加载数据后置空必填参数提示不明显问题 + - fix(数据源): 修复远程数据源新增sheet页后点击立即执行数据出现重叠问题 + - fix(数据源): 修复数据源重命名接口参数字段异常问题 + - fix(图表): 修复条件样式提示文案异常 + - fix(图表): 修复隐藏指标字段导出Excel表格后指标后维度字段数据显示问题 #18367 + - fix(图表): 修复堆叠柱线组合图堆叠项排序后右值轴渲染错误 #18283 + - fix(图表): 修复表格初始化时总计标签位置渲染错误 + - fix(图表): 修复表格分组配置页面数据较少时表头渲染错误 + - fix(图表): 修复表格开启总计后导出总计标签位置显示错误 + - fix(图表): 修复表格序号列左边框线和最右列边框线不显示问题 + - fix(图表): 修复表格自定义模式最右侧边框不显示问题 + - fix(图表): 修复表格下钻后调整浏览器窗口大小表格恢复初始显示状态问题 + - fix(图表): 修复对称条形图空值处理设置为忽略空值后显示错误 + - fix(图表): 修复图表预览界面双击可以修改标题问题 + - fix(图表): 修复下钻到最后一层后继续下钻时没有提示的问题 + - fix(图表): 修复透视表表头颜色与大屏配置表头颜色不一致问题 + - fix(图表): 修复多维散点图横轴缺少对应数值格式化问题 + - fix(图表): 修复图表样式设置边框样式不一致问题 + - fix(图表): 修复表格明细表开启自动换行缩小列宽后换行出错 #18376 + - fix(图表): 修复表格明细表自动换行时带换行符的数据居中不生效问题 + - fix(图表): 修复在数据大屏中图层管理缺少多维散点图标识问题 + - fix(图表): 修复导出过程中对图片进行了修改的问题 + - fix(图表): 拆分了双向条形图标签的格式化器 + - fix(图表): 拆分了组合图图表的提示框格式化器 + - fix(图表): 修复下钻后导出格式错位问题 + - fix(图表): 修复图表条件样式提示文案异常问题 + - fix(仪表板、数据大屏): 修复Tab组件在Tab组件中图表二次联动后点击清除联动设置不完全生效问题 #18347 + - fix(仪表板、数据大屏): 修复Tab组件内图表在关闭图标操作按钮情况下依然可见问题 + - fix(仪表板、数据大屏): 修复透视表表头颜色与大屏配置表头颜色不一致问题 + - fix(仪表板、数据大屏): 修复外部参数匹配过滤组件可能出现类型不匹配问题 + - fix(嵌入式): 修复iframe嵌入数据填报新建任务页面无法向下滚动问题 + - fix(嵌入式): 修复iframe嵌入的汇总表下钻后导出excel缺失表头问题 + - fix(嵌入式): 修复嵌入式环境无法正常打开问题 + - fix(工作台): 修复模板中心数据大屏无法正常显示问题 + - fix(数据集): 修复参数数据集预览时全局生效保存提示异常问题 + - fix(数据集): 修复数据集在可编辑数据集越权查看并选择未授权数据源问题 + - fix(数据集): 修复时间参数筛选失效问题 + - fix(查询组件): 修复级联父项清空后,子级选择器未同步清空问题 + - fix(查询组件): 修复日期、数值类型字段转为文本类型后筛选报错问题 + - fix: 修复Excel下载路径失效问题 + - fix: 修复导出行数限制配置未生效问题 + - fix(X-Pack): 修复定时报告-设置额外等待时间过长导致超时错误 + - fix(X-Pack): 修复阈值告警-消息预览没有实时更新问题 + - fix(X-Pack): 修复钉钉客户端环境无法加载问题 + - fix(X-Pack): 修复数据同步取消目标数据源Doris自动获取以及校验Backend节点数的逻辑 + - fix(X-Pack): 修复数据同步添加任务Oracle源数据库表出现已删除在回收站中表的问题 + - fix(X-Pack): 修复数据同步Oracle无法获取物化视图问题 + - fix(X-Pack): 修复数据同步同步管理创建任务源数据源表格列表选项显示不安全问题 + - fix(X-Pack): 修复数据集行权限类型为角色时编辑不显示角色下全部用户问题 + - fix(X-Pack): 修复数据填报上传Excel文件校验重复值提示文字错误 + - fix(X-Pack): 修复数据填报下拉选项框点击后跳回顶部问题 + - fix(X-Pack): 修复数据填报任务管理-模版设置-预览表单时禁用状态不正确问题 + - fix(X-Pack): 修复数据填报勾选角色接收人导致搜索框发生变化问题 + - fix(X-Pack): 修复数据填报输入多个字符导致预览超界问题 + - fix(X-Pack): 修复切换数据库后登录报错问题 #18359 + - fix(X-Pack): 修复系统设置更新或添加插件刷新页面提示异常问题 + +### v2.10.22 +2026 年04月22日 +!!! Abstract "新增功能 :star2:" + + - feat(X-Pack): 新增 HMAC 支持设置签名有效期功能 +!!! Abstract "功能优化 :sunflower:" + + - refactor: 优化历史数据适配功能 + - refactor (X-Pack): 优化 HMAC 减少冗余请求 + +!!! Abstract "问题修复 :palm_tree:" + + - fix: 修复多层弹窗跳转仪表板时页面空白的问题 #17550 + - fix: 修复图表标题位置向下偏移的问题 + - fix: 修复自定义 SQL 使用系统内置手机号变量数据筛选失败的问题 + - fix (地图): 修复地图、气泡地图下钻至村级无内容展示的问题 + - fix(仪表板): 修复时间范围快捷方式下周存在的问题 + +### v2.10.21 +2026 年04月16日 +!!! Warning "**注意(DE - 2026.04.16)** " + + v2.10.21 版本前端用户信息增加前缀,之前对接时用到的凭证名称会有相应的修改,例如 user.token 需要改成 de_v2_user.token。 + + 相关产品影响:SQLBot 高级应用需要调整凭证名称 + +!!! Warning "**安全漏洞修复** " + + - fix(漏洞): 修复数据集导出中的 SQL 注入漏洞[(CVE-2026-33082)](https://github.com/dataease/dataease/security/advisories/GHSA-xxpw-2c8q-g693) + - fix(漏洞): 修复 ORDER BY 子句中的 SQL 注入漏洞[(CVE-2026-33083)](https://github.com/dataease/dataease/security/advisories/GHSA-f443-95cf-m837) + - fix(漏洞): 修复 getFieldEnumObj 端点中的 SQL 注入漏洞[(CVE-2026-33084)](https://github.com/dataease/dataease/security/advisories/GHSA-r897-r9q8-3p2x) + - fix(漏洞): 修复数据源保存流中的 SQL 注入漏洞[(CVE-2026-33121)](https://github.com/dataease/dataease/security/advisories/GHSA-fg4m-q7ch-jqv5) + - fix(漏洞): 修复数据源管理中的 SQL 注入漏洞[(CVE-2026-33122)](https://github.com/dataease/dataease/security/advisories/GHSA-28vg-3hv7-w92f) + - fix(漏洞): 修复CalciteProvider 存在的SQL注入漏洞[(CVE-2026-33207)](https://github.com/dataease/dataease/security/advisories/GHSA-pgh3-rgw3-xjmm) + - fix(漏洞): 修复Arbitrary File Read (Credential Exfiltration)[漏洞](https://github.com/dataease/dataease/security/advisories/GHSA-944x-93jf-h3rx) + - fix(漏洞): 修复Quartz中包含的远程执行[漏洞组件](https://github.com/dataease/dataease/security/advisories/GHSA-gm5q-g72w-c466) + - fix(漏洞): 修复SQL Injection via Stacked Queries[漏洞](https://github.com/dataease/dataease/security/advisories/GHSA-vqxf-84ph-j3vx) + - fix(漏洞): 修复分享链接认证机制存在认证伪造绕过漏洞问题 + - fix(漏洞): 修复XXE Injection in SAML Response Parser漏洞 + + 感谢社区用户 [PineBlizz](https://github.com/PineBlizz)发现并向 DataEase 开源社区反馈上述漏洞。 + +!!! Abstract "Skills :star2:" + + - 新增(Skills): 新增 DataEase Skills技能,详见 [GitHub 仓库](https://github.com/dataease/DataEase-skills) + +!!! Abstract "新增功能 :star2:" + + - feat(图表): 新增仪表板/数据大屏默认标签字体颜色设置功能 #17881 + - feat(图表): 新增多维散点图支持 + - feat(图表): 明细表分页字体大小支持配置 #18000 + - feat(组件): 下拉树层级支持默认字母升序 #18096 + - feat(仪表板、数据大屏): Tab 组件支持单Tab的隐藏与显示设置 #17984 + - feat(数据源): API数据时间参数新增前一天选项 #18184 + - feat(移动端): 移动端新增改密功能 #18143 + - feat(移动端): 新增骨架屏显示 + - feat(X-Pack): 权限配置中系统变量新增"手机号"字段,支持基于用户手机号进行数据权限匹配与控制 + - feat(X-Pack): 数据填报新增SQL SERVER数据源插件 + - feat(X-Pack): 数据填报新建表时支持为记录设置表备注 + - feat(X-Pack): 定时报告新增钉钉群推送渠道 + - feat(X-Pack): 定时报告 Playwright 增加默认时区设置 + - feat(X-Pack): 新增系统变量规则行权限白名单指定角色功能 #18126 + - feat(X-Pack): 新增嵌入式 Token 注销 API + - feat(X-Pack): 新增 Hmac-auth 配置支持 + - feat(X-Pack): LDAP 用户支持配置默认邮箱后缀 + +!!! Abstract "功能优化 :sunflower:" + + - refactor: 优化查询组件修改 PC 端默认值,移动端也能更新 #17895 + - refactor(仪表板、数据大屏): 升级流媒体播放器插件,支持H.265编码 + - refactor: 优化组件嵌入自动适配缩放功能 + - refactor: 优化tab排序标题双击修改名称功能 + - refactor: 优化tab页隐藏后不参与轮播功能 + - refactor: 优化图表表头样式 + - refactor (X-Pack): 优化第三方认证平台表单校验 + - refactor (X-Pack): 优化嵌入式 Token 黑名单清理机制 + - refactor (X-Pack): 定时报告条件配置样式优化 + - refactor (X-Pack): 定时报告消息渠道相互阻塞问题优化 + - refactor (X-Pack): 定时报告视图显示优化 + - refactor (X-Pack): 前端用户信息增加前缀避免 localStorage-key 冲突 + - refactor (X-Pack): 同步管理模块升级 Spring Boot 版本为 3.3.8 + - refactor: 更新 calcite + +!!! Abstract "问题修复 :palm_tree:" + + - fix (图表): 修复明细表导出时包含隐藏字段,导致指标格式化错误的问题 #17737 + - fix (图表): 修复分组堆叠柱状图子维度或堆叠项为空时图表渲染异常问题 + - fix (图表): 修复汇总表同环比和占比计算同时开启时占比计算错误问题 #17995 + - fix (图表): 修复明细表隐藏字段后导出失败问题 + - fix (图表): 修复从支持下钻的图表下钻后切换到不支持下钻图表时下钻路径及字段不清空问题 + - fix (图表): 修复当图表标题字体过小时鼠标悬浮图表存在抖动问题 + - fix (图表): 修复查询条件值存在单引号时无法匹配数据问题 + - fix (图表): 修复编辑页面开启图表刷新后退出编辑再进入关闭刷新时联动图表仍继续刷新问题 + - fix (图表): 修复表格总计行标签复制错误问题 + - fix (图表): 修复数据大屏隐藏图表轮播提示显示在左上角问题 + - fix (图表): 修复气泡地图轮播时鼠标悬浮提示没有消失问题 + - fix (图表): 修复鼠标悬浮在图表上轮播提示不会暂停问题 + - fix (图表): 修复图表提示配置自定义显示指标字段时非数值类型图表报错问题 + - fix (图表): 修复Edge浏览器中公共链接图表带轮播全屏预览放大后退出全屏轮播提示显示位置不正确问题 + - fix (图表): 修复折线图子维度为日期时图例显示和提示不一致问题 + - fix (图表): 修复子弹图调整图例图标时区间背景配置被还原问题 + - fix (图表): 修复子弹图横轴标签长度限制失效问题 + - fix (图表): 修复子弹图禁用区间背景提示字段依然存在提示可正常显示问题 + - fix (图表): 修复子弹图区间背景设置固定值后调整图例大小导致图例显示形状变化问题 + - fix (图表): 修复子弹图区间背景选择固定值配置项输入空时调整图例图标报错问题 + - fix (图表): 优化子弹图图例配置中图标配置选择器长度 + - fix (图表): 修复明细表开启总计导出excel时,总计没有导出 #18114 + - fix (查询组件): 修复默认日期为动态时间点击重置总是重置到设置查询组件日期没有动态变化问题 #18219 + - fix (查询组件): 修复时间范围1号选择月初至昨天(当月)无法保存问题 #18178 + - fix (地图): 修复数据大屏中默认图表尺寸无法显示世界地图边界问题 + - fix (数据大屏): 修复大屏导出为模板再应用模板新建大屏时图表标题显示不全问题 + - fix (数据大屏): 修复指标卡条件样式背景颜色样式不正确问题 + - fix (数据大屏): 修复tab组件三个标识颜色不统一问题 + - fix (数据集): 修复过滤器筛选包含逗号固定值时被错误解析为多个值导致筛选失效问题 #18082 + - fix (仪表板、数据大屏): 修复配置查询条件不点击查询但放大图表时过滤条件已生效问题 #18089 + - fix (仪表板、数据大屏): 修复图表刷新后使用下拉树组件勾选选项但不点击查询图表依然发生过滤问题 + - fix (仪表板、数据大屏): 修复仪表板预览界面跳转弹窗按钮高度较低时无法显示完整问题 + - fix (仪表板、数据大屏): 修复应用跳转链接带字段显示[undefined]问题 + - fix (仪表板、数据大屏): 修复批量配置tab组件边框不生效问题 + - fix (仪表板、数据大屏): 修复编辑状态下有查询组件的删除后图表仍维持过滤状态问题 + - fix (仪表板、数据大屏): 修复组合组件嵌入式缩放问题 + - fix (仪表板、数据大屏): 修复跳转联动小菜单可能被上方组件遮挡问题 + - fix (仪表板): 修复移动端跳转问题 + - fix (X-Pack): 修复组织管理中心导航栏内容显示不全问题 + - fix (X-Pack): 修复查询角色接口参数 keyword 失效问题 #18001 + - fix (X-Pack): 修复定时报告选择导出图表双线组合图缺失对应图标问题 + - fix (X-Pack): 修复阈值告警条件判断为空时没有提示内容问题 + - fix (数据源): 修复Oracle concat function问题 #18208 + - fix (数据源): 修复远程Excel数据源对接大屏应用模板时匹配本地Excel数据源报错问题 #18102 + - fix: 修复移动端配置过滤组件查询条件部分样式不生效问题 #18103 + - fix: 优化部分页面控制台报错问题 + +### v2.10.20 +2026 年03月12日 + +!!! Warning "**安全漏洞修复(DE - 2026.03.12)** " + + - fix(漏洞): 修复上传 SVG图片 存在 XSS 攻击问题[(CVE-2026-32139)](https://github.com/dataease/dataease/security/advisories/GHSA-wx8m-vf8v-crvr) + - fix(漏洞): 修复 JDBC RCE Bypass 的问题 [(CVE-2026-32140)](https://github.com/dataease/dataease/security/advisories/GHSA-jc9q-3jfw-mch4) + - fix(漏洞): 修复数据源 SQL 注入漏洞的问题 [(CVE-2026-32137)](https://github.com/dataease/dataease/security/advisories/GHSA-vgm2-269h-8624) + + 感谢社区用户 [Ray-778](https://github.com/Ray-778)、[Fushuling](https://github.com/Fushuling)、[JiLinXiangYun-lab](https://github.com/JiLinXiangYun-lab) 发现并向 DataEase 开源社区反馈上述漏洞。 +!!! Abstract "新增功能 :star2:" + + - feat(图表): 世界地图支持下钻到国家 + - feat(图表): 明细表支持自定义汇总 #17539 + - feat(图表): 透视表支持设置行头宽度 #16764 + - feat(图表): 表格条件样式支持设置其他字段样式或者整行样式 #16478 #17273 + - feat(X-Pack): 新增 Playwright 替换 Selenium,提升定时报告生成效率 + - feat(X-Pack): 同步管理,源数据源支持 PostgreSQL + - feat(X-Pack): 新增定时报告-支持数据权限设置 + + +!!! Abstract "功能优化 :sunflower:" + + - refactor(仪表板、数据大屏): 优化查询组件修改 PC 端默认值,移动端也能更新 #17895 + - refactor(仪表板、数据大屏): 优化富文本弹框位置 #17938 + - refactor(图表): 优化地图空值情况下图例创建逻辑 + - refactor: 优化系统启动时清理无用数据 + - refactor(X-Pack): 优化定时报告条件配置样式 + - refactor(X-Pack): 新增升级 SeaTunnel 版本为 3.0.0 + - refactor(X-Pack): 权限配置页面按用户排序显示 + - refactor(X-Pack): 组织管理中心的用户管理页面按字典序排序 + + +!!! Abstract "问题修复 :palm_tree:" + + - fix(仪表板、数据大屏): 修复 Tab 组件样式使用问题 #17923 + - fix(仪表板): 修复样式配置滚动条抖动的问题 + - fix(仪表板): 修复查询组件下拉树清除选项时不生效的问题 + - fix(仪表板): 修复查询组件默认值在不同用户权限下显示错误的问题 + - fix(图表): 修复在世界地图的图例中,选择自动图例时,默认会固定创建 9 个图例的问题 + - fix(图表): 修复仪表盘、水波图的条件样式中,阈值区间只能输入整数的问题 #17927 + - fix(图表): 修复仪表盘指标设置为百分比格式时,数值计算错误的问题 #17936 + - fix(图表): 修复地图-世界地图-提示开启轮播-随后钻取到国家,始终只显示一个州或者城市的数据的问题 + - fix(图表): 修复地图图表的高级配置中,地名映射输入框允许为空的问题 + - fix(图表): 修复明细表和汇总表序号列条件样式不生效的问题 + - fix(图表): 修复明细表开启自动换行之后表头居中计算错误的问题 #17767 + - fix(图表): 修复明细表开启自动换行后自动滚动有概率失效的问题 + - fix(图表): 修复气泡地图存在空值情况下无法轮播提示的问题 + - fix(图表): 修复移动端双击标题会进入编辑状态的问题 #17075 + - fix(图表): 修复编辑状态下指标卡触发点击事件之后,回到编辑页面指标卡会跟随鼠标移动的问题 #17704 + - fix(图表): 修复表头分组后自定义列对齐显示异常的问题 + - fix(图表): 修复表格切换页面条数之后未重置页码的问题 + - fix(图表): 修复表格条件样式中时分秒格式的组件输入不正确的问题 + - fix(图表): 修复透视表条件样式日期字段动态值无效的问题 + - fix(图表): 修复透视表在大屏中行头宽度渲染错误的问题 + - fix(图表): 修复透视表树形模式下点击行头后无法复制的问题 + - fix(图表): 圆形填充图标签选项最少保留一项 + - fix(图表): 隐藏批量设置中无用的设置项 + - fix(图表): 优化地图图例数量计算逻辑并修复空值处理问题 + - fix(数据集): 修复数据集自定义 SQL,admin 作为数据里的用户名时没正常解出来的问题 #17899 + - fix(数据源): 修复 CK 支持 HTTPS 的问题 + - fix(数据源): 修复 Oracle 数据源会显示回收站中元数据的问题 + - fix(查询组件): 修复时间范围组件清空默认值时出现的异常 + - fix(移动端): 修复移动端访问预览首次访问显示空白,需要二次刷新的问题 + - fix(移动端): 修复移动端图片组件无法跳转到外部链接问题 + - fix(数据导出中心): 修复数据集导出失败的问题 + - fix(数据导出中心): 修复通过仪表板导出的 Excel 在数据导出中心的进度条没有加载动画的问题 + - fix: 修复图表组上传图片出错时等的显示问题 + - fix: 修复使用模板新建预览时,部分屏幕尺寸展示不全问题 + - ix: 修复大屏编辑界面的右键菜单可能在仪表板编辑界面显示问题 #17942 + - fix: 修复指标卡无法联动不同数据集创建的图表的问题 + - fix: 修复桌面版部分资源删除提示错误问题 #17894 + - fix: 修复 Token 过期需要刷新才能退出的问题 + - fix: 固定 l7 和 l7plot 版本 + - fix: 修复在系统设置-地图设置里,国家字段按英文搜索无法找到对应国家的问题 + - fix(X-Pack): 修复 [数据填报] 表单任务为数据追加时,查看任务填报人员列表不准确的问题 + - fix(X-Pack): 修复 [数据填报] 任务为追加时,下发任务列表内的完成率计算不正确问题 + - fix(X-Pack): 修复 [数据填报] 提交记录列表查看数据时提示 400 的问题 + - fix(X-Pack): 修复 [数据填报] 表单模板设置失效的问题 + - fix(X-Pack): 修复 [数据填报] 对于主键名不是 ID 的表,用户完成填报后,页面仍显示未填报的问题 + - fix(X-Pack): 修复 [同步管理] 同步任务抽取数据方式为 SQL,并且 SQL 末尾包含分号时,增量同步报错的问题 + - fix(X-Pack): 修复 [同步管理] 同步任务的超时时间以及失败重试次数无法置空的问题 + - fix(X-Pack): 修复 [定时报告] 大屏超长报告缺失部分内容 #17853 + - fix(X-Pack): 修复 [定时报告] 过滤未发布资源的问题 + - fix(X-Pack): 修复 [定时报告] 大屏超长报告缺失部分内容 #17853 + - fix(X-Pack): 修复权限配置页面过滤失效的问题 + - fix(X-Pack): 固定 less 版本 + +### v2.10.19 +2025 年12月22日 + +!!! Abstract "新增功能 :star2:" + + - feat(图表): 在线地图在隐藏缩放按钮时会自动禁用缩放及拖拽操作 #17703 + - feat(图表): 水波图新增同时展示具体数值和所占百分比的功能 #17726 + - feat(数据大屏): 外部参数关联查询组件现支持控制其选项值的取值范围 + - feat(数据大屏): 配置跳转动作时,支持自动携带查询组件的当前过滤条件至目标页面 #17595 + +!!! Abstract "功能优化 :sunflower:" + + - refactor(图表): 堆叠柱状图/条形图的标签默认显示指标信息 + - refactor(图表): 优化水波图标签的文本显示样式,提升可读性 + - refactor(仪表板、数据大屏): 优化Tab组件标题栏的背景样式 #17672 + - refactor(仪表板): 复制仪表板时,其内部图表之间已配置的联动关系现支持一并复制 #17770 + - refactor(仪表板、数据大屏): 对数字格式化功能可添加的后缀长度进行限制,避免显示异常 + - refactor(数据大屏): 优化组合组件内右键菜单的弹出位置,使其更准确 + - refactor(查询条件): 优化首选项默认值的处理逻辑,提升稳定性 + - refactor(查询组件): 调整查询组件的编辑界面样式,优化操作体验 + - refactor(查询组件): 时间范围查询组件增加“动态设置默认值”的配置选项 + - refactor(嵌入式): 通过嵌入链接或分享链接访问时,初次加载页面会增加加载动画效果 + - refactor(嵌入式): 修复Div嵌入模式下,切换语言后整个页面意外刷新的问题 + - refactor(数据集): 优化保存数据集时的错误信息提示,使其更明确易懂 #17671 + - refactor(移动端): 将PC端工作台和移动端首页的默认页面调整为“我的收藏” #17637 + - refactor: 应用模板创建时支持名称重复性校验 + - refactor: 升级 easyexcel 依赖至 4.0.3 版本 + - refactor: 升级 spring-boot 框架至 3.3.13 版本 + - refactor(X-Pack): 升级 Apisix 网关至 3.14.1 版本 + - refactor(X-Pack): 优化 OAuth2 认证相关的图标显示样式 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(X-Pack): 同步管理中,修复修改字段类型时,对于不支持长度的字段类型,其字段长度值未正确清空的问题 #17698 + - fix(X-Pack): 同步管理中,修复处于停止状态的定时任务在服务器重启后状态误显示为“任务结束”的问题 + - fix(X-Pack): 修复第三方客户端单点登录(SSO)时报“账号密码错误”的问题 + - fix(图表): 优化在线地图(高德、腾讯)导出为PNG图片时,内容图层无法导出的问题 + - fix(图表): 修复当使用Tab组件切换显示多个地图时,导出整个仪表板为PNG图片后地图不显示的问题 #17700 + - fix(图表): 修复图表自定义排序功能受“自定义SQL全局预览生效”参数影响的问题 #17734 + - fix(图表): 修复地图、气泡地图在禁用拖拽操作后,于移动端仍可通过双指手势进行旋转和缩放的问题 + - fix(图表): 修复地图、气泡地图在禁用拖拽操作后,仍可通过按住鼠标右键进行拖拽的问题 + - fix(图表): 修复地图组件风格样式显示错误的问题 + - fix(图表): 修复堆叠柱状图/条形图中,自定义图例顺序与自定义数据排序效果冲突的问题 #17649 + - fix(图表): 修复天地图(Tianditu)导出为PNG图片时,内容图层无法导出的问题 + - fix(图表): 修复子弹图提示框(tooltip)中区间值格式化无效的问题 + - fix(图表): 修复表格类图表开启自动换行后,设置表头对齐方式可能引发异常的问题 + - fix(图表): 修复明细表在进行单元格合并且合并字段为单一字段时,计算结果错误的问题 #17472 + - fix(图表): 修复图表中最大值/最小值标签的显示可能遮挡下方数据图形点击事件的问题 + - fix(图表): 修复当表格的指标列被用作维度时,其单元格数值格式化失效的问题 + - fix(图表): 修复表格中对日期字段设置条件样式时,判空条件不生效的问题 #17710 + - fix(图表): 修复透视表带有格式导出至Excel时,空值(null)的显示与页面图表内显示不一致的问题 + - fix(图表): 修复明细表开启换行功能后,设置表头对齐方式可能引发异常的问题 + - fix(图表): 修复明细表在开启表头分组及合并单元格后,导出至Excel时出现的边框线条缺失问题 + - fix(安装):修复在WSL环境中使用Docker Desktop部署时,出现的“docker.service not found”错误 + - fix(嵌入式): 修复嵌入式数据大屏在手机端无法正常显示或布局错乱的问题 #17685 + - fix(查询组件): 修复查询组件在iOS设备上的特定兼容性问题 + - fix(查询组件): 修复当查询项为时间范围且默认值设为“月初至昨日”时,每月第一天无法查询到数据的问题 #17783 + - fix(查询组件): 修复级联查询组件在设置完成后,关联查询字段的默认值不生效的问题 #17655 + - fix(移动端): 修复移动端告警消息的红框提示长时间不自动消失的问题 #17740 + - fix(仪表板): 修复删除仪表板时,其对应的分享记录未被同步清理的问题 + - fix: 修复一处潜在的JWT Token安全漏洞 + - fix: 修复切换系统主题时导致部分个性化配置丢失的问题 + - fix: 修复图片组件因默认值排序靠前而导致后置条件判断失效,以及未对图片地址进行空值校验的问题 + - fix: 修复当外部参数存在多个时,默认值与传入值不能混合使用的问题 + - fix: 修复在富文本组件中为数值类型字段设置条件样式时,空值判断提示异常的问题 + - fix: 修复当过滤组件和图表组合后添加到Tab组件中时,在外部参数设置界面过滤组件不可见的问题 + - fix: 修复系统字体设置不支持名称中包含空格的字体的问题 + - fix: 修复从编辑界面跳转至其他仪表板后,图表放大和下载功能失效的问题 + - fix: 修复页面跳转时,部分外部参数的默认值未正确显示的问题 + - fix: 修复部分公共链接在移动端访问时参数解析出现编码错误提示的问题 + - fix: 修复部分情况下控制台因外部参数问题报错的问题 + - fix: 修复部分预览界面中过滤组件意外处于可编辑状态的问题 + - fix: 修复切换自定义国际化语言包后,登录页面未相应切换的问题 + - fix: 修复复制图表时,旧图表字段信息被携带导致阈值告警功能异常的问题 + - fix: 修复明细表导出数据时,进度条不显示的问题 + +### v2.10.18 +2025 年12月19日 + +!!! Abstract "新增功能 :star2:" + + - feat(仪表板):通过预览链接访问仪表板时,现同样支持移动端样式适配。 + - feat(仪表板、数据大屏):通用设置中新增对数值格式的统一处理功能。 + - feat(图表):当地图、气泡地图设置为不显示缩放按钮时,将同步禁用地图的缩放与拖拽交互。#17506 + - feat(图表):热力图的指标支持格式设置。#17529 + - feat(数据集):数据集新增排序字段,便于在导出时对数据进行排序。 + - feat(组件):级联组件支持下拉树形态。 + - feat(X-Pack): 阈值告警支持设置告警数据 #17526 + +!!! Abstract "功能优化 :sunflower:" + + - refactor(仪表板、数据大屏):仪表板与数据大屏的弹窗现支持配色设置。#17503 + - refactor(仪表板、数据大屏):优化复用功能,使其能够适配主题中的数字格式。 + - refactor(数据大屏):数据大屏的跳转弹框现支持配色设置。 + - refactor(组件):优化下拉树组件的查询逻辑。 + - refactor(图表):调整图表属性配置区域的样式。 + - refactor(图表): 优化气泡和符号地图速率和环数最小值限制不能等于 0,并且最小值为 0.1 + - refactor(X-Pack):优化同步管理界面,解决任务与数据源列表分页器被批量操作栏遮盖的问题。 + - refactor(X-Pack):操作日志功能扩展,支持记录数据同步任务及相关数据源的操作。#17153 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(查询组件):修复查询组件绑定图表时,因图表数据请求晚于组件完成而导致数据加载异常的问题。 + - fix(查询组件):修复查询组件切换过快时,偶发缺失获取数据请求的问题。#17498 + - fix(仪表板):修复下拉树创建级联时,当为相同数据集且无关联字段时仍需用户手动设置的问题。 + - fix(仪表板):修复仪表板创建查询条件后,关闭窗口失败并提示前端异常的问题。 + - fix(仪表板):修复新建目录后,所有之前已收起的目录被自动展开的问题。 + - fix(仪表板): 修复查询组件的宽度较小时,勾选的图标会偏移在框外的问题 #17563 + - fix(图表):修复创建并执行任务后,无相应记录产生的问题。 + - fix(图表):修复在图表中可重复拖入相同字段的问题。#17576 + - fix(图表):修复地图、气泡地图在隐藏缩放按钮后,双击地图仍会放大的问题。 + - fix(图表):修复子弹图显示数据错误的问题。#17559 + - fix(图表):修复拖拽多个字段到数据列指定位置时,顺序发生颠倒的问题。#17490 + - fix(图表):修复通过插件导出原始明细数据失败的问题。 + - fix(图表):修复当 SQL Server 数据源在IP地址后附加实例名时,任务执行失败的问题。 + - fix(图表):修复瀑布图联动与跳转设置项不显示的问题。#17521 + - fix(图表):修复百分比条形图数据标签不显示的问题。#17509 + - fix(图表):修复表格提示信息消失过快的问题。#15359 #17360 + - fix(图表):修复象限图中点击标签无法触发联动与跳转的问题。 + - fix(图表):修复透视表在列维度为空时,排序优先级失效的问题。#17217 + - fix(图表): 修复弹窗跳转后提示还会留在页面的问题 #17513 + - fix(图表): 修复滚动提示位置偏移不及时的问题 + - fix(图表): 修复透视表树形模式表头条件样式不生效 #17585 + - fix(图表): 修复瀑布图提示的格式化错误 + - fix(图表): 修复含有地图数据的仪表板以及大屏,导出应用模版和样式模版,snapshop快照中地图缺失的问题 #17051 + - fix(图表): 修复堆叠条形图,当堆叠项/维度是数值时,下钻异常的问题 + - fix(图表): 修复混合图副值轴和过滤组件日期字段联动时同环比计算错误 + - fix(图表): 修复汇总表设置自定义汇总后排序报错 #17594 + - fix(嵌入式):修复嵌入式应用中富文本组件报错的问题。 + - fix(数据大屏):修复开启分享后,修改密码触发校验异常,且关闭窗口后校验状态持续存在的问题。 + - fix(数据大屏):优化查询组件在移动端的适配性。 + - fix(数据大屏):修复跑马灯组件样式显示不正确的问题。 + - fix(数据大屏):修复鼠标悬浮时显示异常的问题。 + - fix(仪表板、数据大屏): 修复外部参数默认值被组件默认值覆盖问题 + - fix(数据集):修复关联 MySQL 数据表时刷新数据出错的问题。#17531 + - fix(数据集):修复创建数据集保存后,点击返回按钮仍提示未保存的问题。 + - fix(数据集):修复关联表字段重名引发的报错问题。 + - fix(SQLBot):修复 SQLBot 高级应用无法使用 Elasticsearch 的问题。 + - fix(应用):修复应用导出后文件内容空白的问题。 + - fix(应用):修复应用模板导入名称与导出名称不一致的问题。 + - fix(主题):修复标签数字格式未跟随大屏/仪表板整体格式设置的问题。 + - fix(X-Pack):修复同步管理任务日志中缺少操作日志记录的问题。 + - fix(X-Pack):修复创建同步任务页面存在缓存的问题。 + - fix(X-Pack):修复同步任务无法同步中文字段的问题。 + - fix(X-Pack):优化同步管理中的任务终止逻辑。 + - fix(X-Pack): 修复清理日志提示异常和日志中没有对终止同步进行归类的问题 + +### v2.10.17 +2025 年11月20日 + +!!! Warning "**安全漏洞修复(DE - 2025.11.20)** " + + - fix(漏洞): 修复 DataEase DB2 JNDI 注入漏洞 [(CVE-2025-64428)](https://github.com/dataease/dataease/security/advisories/GHSA-88ph-3236-2m2h) + + 感谢社区用户 [ez-lbz](https://github.com/ez-lbz) 发现并向 DataEase 开源社区反馈上述漏洞。 + +!!! Abstract "新增功能 :star2:" + + - feat(图表): 柱状图维度字段支持设置长度限制 #16566 + - feat(图表): 表格条件样式支持指标和日期字段的空值判断 #17193 + - feat(查询组件): 文本下拉组件支持平铺展示风格 #13146 + - feat(数据源): API 数据源支持添加时间戳参数 #17244 + +!!! Abstract "功能优化 :sunflower:" + + - refactor(查询组件): 优化查询组件下拉框的加载速度 + - refactor(缓存): 优化集群环境中 Redis 缓存中间件的 KEYS 操作使用 + - refactor(图表): 优化组合图中折线图的标签显示效果 + - refactor(图表): 调整图表背景配置模式 + - refactor(数据大屏/仪表板): 更换图片导出组件,优化导出逻辑 + - refactor(数据大屏): 调整数据大屏 Tab 组件的设置样式 + - refactor(X-Pack): 优化同步管理任务超时时间与失败重试次数的前端设置 + - refactor(X-Pack): 操作日志支持记录定时报告的变更 #17153 + - refactor(X-Pack): 移动端打开预览链接时正确跳转到资源页面 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(仪表板): 修复配置图表时字段无法拖拽至目标位置的问题 #17406 + - fix(仪表板): 修复嵌入式场景下复制仪表板报无权限错误的问题 + - fix(仪表板/数据大屏): 修复部分组件边框圆角设置仅在编辑时生效的问题 #17393 + - fix(图表): 修复柱状图开启条件样式后提示无法关闭的问题 + - fix(图表): 修复表格字段较多时表头分组设置菜单显示错位的问题 #16791 + - fix(图表): 修复明细表下拉模式导出 Excel 后变为翻页模式的问题 #17358 + - fix(图表): 修复图表展示数据与导出数据不一致的问题 #17349 + - fix(外观设置): 修复仪表板、数据大屏等图标颜色未随系统主题切换的问题 + - fix(外观设置): 统一系统主题切换的样式表现 + - fix(数据大屏): 修复嵌入式场景下复制数据大屏报无权限错误的问题 + - fix(嵌入式): 修复编辑仪表板后返回时未定位到当前仪表板的问题 + - fix(数据大屏): 修复添加查询条件后数据大屏无法缩放的问题 #17278 + - fix(数据大屏): 修复数据大屏过滤组件失效的问题 + - fix(数据集): 修复新建分组字段后计算字段创建时不显示分组字段的问题 #17455 + - fix(数据集): 修复自定义 SQL 修改后保存无成功提示的问题 #17442 + - fix(查询组件): 修复动态时间设置为"最近六个月"时实际显示七个月的问题 #17456 + - fix(数据源): 修复第 50002 行被误识别为标题导致数据格式错误的问题 + - fix(数据源): 修复 API 数据源时间戳参数相关问题 #17244 + - fix(X-Pack): 修复已同步任务的目标表字段列表显示为空的问题 + - fix(X-Pack): 修复同步管理任务状态与日志状态不一致的问题 + - fix(X-Pack): 修复同步管理任务中 executorTimeout 和 executorFailRetryCount 为空时保存报错的问题 + +### v2.10.16 +2025 年11月5日 + +!!! Abstract "新增功能 :star2:" + + - feat(图表): 水波图支持边框设置 #17351 + - feat(图表): 汇总表支持自定义汇总 #16766 #16890 + - feat(图表): 指标名称增加位置配置选项 + - feat(X-Pack): 行权限白名单在姓名后增加账号用来区别同名用户 #17298 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(仪表板): 修复仪表板未显示悬浮按钮问题 #17355 + - fix(图表): 修复汇总表自定义汇总空值导致图表渲染失败 + - fix(工作台): 修复存在 url 参数的数据源在 SQLBot 问数中报错的问题 + - fix(数据大屏): 修复数据大屏铺满全屏模式的样式模板重新导入时可能出现组件错位的问题 #17159 + - fix(数据源): 修复 StarRocks 数据源保存后控制台的报错 + - fix(查询组件): 修复数据过滤异常 + - fix(移动端): 修复仪表板排序没有按系统默认排序的问题 #17346 + +### v2.10.15 +2025 年11月1日 + +!!! Warning "**安全漏洞修复(DE - 2025.10.17)** " + + - fix(漏洞): 修复 Oracle JNDI 注入漏洞 [(CVE-2025-64164)](https://github.com/dataease/dataease/security/advisories/GHSA-q754-4pc2-wjqw) + - fix(漏洞): 修复 DB2 SSRF 漏洞 [(CVE-2025-64163)](https://github.com/dataease/dataease/security/advisories/GHSA-8397-v66p-539m) + + 感谢用户[ez-lbz](https://github.com/ez-lbz)发现并向 DataEase 开源社区反馈上述漏洞。 + +!!! Abstract "新增功能 :star2:" + + - feat(图表): 堆叠条形图标签支持显示总计 #16795 + - feat(X-Pack): [数据填报] 增加定时任务清理操作日志 + - feat(X-Pack): [数据填报] 用户追加填报页面支持批量添加多条数据 + +!!! Abstract "功能优化 :sunflower:" + + - refactor(图表): 优化明细表合并单元格的显示效果,不显示被覆盖单元格的文字和背景颜色 + - refactor(数据大屏): 运行大屏移动端访问时使用事件配置 + - refactor(X-Pack): 默认登录方式支持设置为 Saml2 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(仪表板): 修复某些情况下文件夹需要多次移动的问题 + - fix(仪表板、数据大屏): 修复边框背景圆角历史模板适配问题 + - fix(仪表板、数据大屏): 修复边框背景圆角编辑预览不一致的问题 + - fix(仪表板、数据大屏): 修复部分模板标题错位的问题 + - fix(图表): 修复 Safari 浏览器导出图表为 PNG 图片时报错的问题 #17210 + - fix(图表): 修复折线图在所有指标值均为 1 的情况下无法渲染的问题 #17205 + - fix(图表): 修复指标卡弹窗区域事件不生效的问题 + - fix(图表): 图表导出图片功能兼容 Safari 浏览器 + - fix(图表): 修复表格条件样式设置 [小于等于] 或 [大于等于] 0 时,空数据也会被标记样式的问题 #17191 + - fix(嵌入式): 修复div嵌入报错的问题 + - fix(数据大屏): 修复批量复制粘贴时聚焦组件多一个的问题 + - fix(数据大屏): 修复数据大屏指标卡事件跳转相关问题 + - fix(查询组件): 修复设置首项导致无法保存的问题 + - fix(X-Pack): 同步管理中添加或修改数据源时,用户名称为必填项 + - fix(X-Pack): 修复第三方平台用户解绑后无法登录的问题 + +### v2.10.14 +2025 年10月20日 + +!!! Warning "**安全漏洞修复(DE - 2025.10.17)** " + + - fix(漏洞): 修复H2 RCE漏洞 [(CVE-2025-62420)](https://github.com/dataease/dataease/security/advisories/GHSA-7wcv-j6gc-qc7q) + - fix(漏洞): 修复 jdbc 绕过漏洞 [(CVE-2025-62419)](https://github.com/dataease/dataease/security/advisories/GHSA-x4x9-mjcf-99r9) + - fix(漏洞): 修复 XSS 漏洞 [(CVE-2025-62421)](https://github.com/dataease/dataease/security/advisories/GHSA-2wmv-rr3p-pf43) + - fix(漏洞): 修复数据集存在 SQL 注入漏洞 [(CVE-2025-62422)](https://github.com/dataease/dataease/security/advisories/GHSA-54m5-xrw4-mv36) + + 感谢[腾讯悟空代码安全团队](https://github.com/TencentAISec),社区用户 [zoiltin](https://github.com/zoiltin)、[wude1988](https://github.com/wude1988)、[httpwwwcom](https://github.com/httpwwwcom) 发现并向 DataEase 开源社区反馈上述漏洞。 + + +!!! Abstract "新增功能 :star2:" + + - feat(图表): 组合图副值轴支持设置同环比 + - feat(图表): 指标卡支持跳转设置,支持携带查询组件的值 + - feat(查询组件): 筛选时间时,支持通过控件的形式选择日期 + - feat(查询组件): 文本下拉组件,选项值设置为多选时,也可以设置首选默认值 #17088 + - feat(查询组件): 时间范围在年月的时候增加年初至本月 #17101 + - feat(查询组件): 查询条件【选项值数量】的【默认】加个提示 #17091 + - feat(仪表板): 添加组件内边距模式选择功能 + - feat(数据集): 筛选时间时,支持通过控件的形式选择日期 + - feat(应用): 应用导入的时候可以选择已有的数据集创建仪表板 + - feat(X-Pack): 支持 SAML2 认证 + +!!! Abstract "功能优化 :sunflower:" + + - refactor(图表): 明细表跳转字段支持一个跳转字段自定义携带的跳转维度 + - refactor(图表): 汇总表支持指标联动 + - refactor(查询组件): 查询组件去除聚合字段 + - refactor(仪表板): 仪表板导出增加日志记录 + - refactor(数据大屏): 修改大屏最小尺寸 #17097 + - refactor(数据大屏): 优化大屏联动图标显示方式 + - refactor(仪表板、数据大屏): 空值不参与跳转 + - refactor(仪表板、数据大屏): 优化静态图片上传,防止伪装文件上传到服务器 + - refactor(仪表板、数据大屏): 优化携带查询组件跳转时,目标仪表板内含有 key-value 配置的查询组件时,防止出现 value 未匹配的情况 + - refactor(数据源): 添加数据源校验失败日志 + - refactor(数据源): 调整API数据源的查询超时时间 + - refactor(定时报告): 优化定时报告查询组件默认值设置 + - refactor(X-Pack): 扩大 OIDC 中的 Scope 字段长度 + - refactor: 前端缓存清除机制优化 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(图表): 去除地图地名映射中名称为空的选项 + - fix(图表): 修复明细表在隐藏某一列后,导出数据出现错乱的问题 #16785 + - fix(查询组件): 时间范围的动态时间自定义会出现 默认值超出日期筛选范围内 + - fix(查询组件): 修复移动端查询组件异常 #17074 + - fix(仪表板): 修复开启首选项后禁用默认值,但规则中依然显示的问题 + - fix(仪表板、数据大屏): 修复设置多组级联,搭配外部参数使用传入多参数,只有一组生效的问题 #17035 + - fix(仪表板、数据大屏): 修复跳转关联多个字段,部分字段存在空值时跳转失败问题 + - fix(仪表板、数据大屏): 修复部分联动报错问题 + - fix(同步管理): 优化任务的启动停止逻辑 + - fix(工作台): 修复名称过长导致超出显示范围的问题 + - fix(数据集): 修复导出条件中无法删除条件的问题 + - fix(数据源): 修复 API 数据源提取字段时,字段名称显示不完整的问题 + - fix(数据源): 修复对接 SQLBot 列权限全字段禁用无效的问题 + - fix(数据源): 修复H2数据源报错的问题 + - fix(数据源): 修复数据源国际化问题 + - fix(定时报告): 修复定时报告开启首选项定时报告的默认参数赋值问题 + - fix(X-Pack): 修复权限配置-按用户配置资源,在数据量大的场景下页面卡死的问题 + - fix: 修复安装时磁盘大小包含小数导致安装脚本报错问题 + +### v2.10.13 +2025年9月12日 +!!! Abstract "新增功能 :star2:" + + - feat(智能问数): 支持嵌入 SQLBot 实现 AI 智能问数 + - feat(仪表板、数据大屏): 通用配色增加斑马纹配色 + - feat(查询组件): 日期查询组件增加快捷选项 + - feat(系统设置): 系统变量值支持设置别名 #16713 + - feat(X-Pack): [数据填报]内置数据源增加支持数据填报功能配置 + +!!! Abstract "功能优化 :sunflower:" + + - refactor(图表): 优化移动端跳转问题 + - refactor(数据大屏、仪表板): 资源发布时,清理无用数据 #16749 + - refactor(X-Pack): [定时报告]页面增加额外等待时间设置 + - refactor(X-Pack): [用户管理]创建用户 API 接口返回数据增加用户 ID #16825 + - refactor(X-Pack): [同步管理]使用 Quartz 统一管理任务调度 + - refactor(X-Pack): [同步管理]对 Elasticsearch 数据源时间类型字段优化,默认映射为 Doris 的 String 类型 + - refactor(X-Pack): [同步管理]优化任务状态刷新机制 + - refactor(X-Pack): [同步管理]优化数据同步结果处理 + - refactor(X-Pack): [同步管理]优化同步日志提示信息 + - refactor(X-Pack): [同步管理]优化同步配置参数传递逻辑 + - refactor: 更新移动端样式 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(图表): 修复放大 Tab 中图表并执行导出图片操作后,轮播提示显示异常的问题 + - fix(图表): 修复明细表合并单元格后,维度存在空值时导出失败的问题 #16777 + - fix(图表): 修复明细表基础样式勾选“自动换行”后,表头会出现部分信息不显示的问题 #16804 + - fix(图表): 修复明细表字段全都是维度时,导出的 Excel 文件中单元格合并失效的问题 + - fix(图表): 修复水波图标签被裁剪的问题 #16798 + - fix(图表): 修复查询组件首选项会影响跳转条件的问题 + - fix(图表): 修复透视表列维度为空时,带格式导出会失败的问题 + - fix(图表): 开启轮播提示的图表启用缩略轴时,禁用轮播提示 + - fix(图表): 修复透视表自定义汇总时,通过搜索添加字段会报错的问题 + - fix(图表): 修复地图中福州与福清、平潭的连线出现多余连接线的问题 #16877 + - fix(图表): 字段自定义排序去除空值 #16307 + - fix(图表): 修复明细表隐藏列后,导出数据出现错乱的问题 #16785 + - fix(查询组件): 修复设置默认值+必填项+隐藏查询按钮时,输入任意值回车后均会重置为默认值的问题 #16750 + - fix(查询组件): 修复手动输入型选项值在查看时,默认值显示为未勾选状态的问题 #16709 + - fix(查询组件): 修复开启首选项时未关闭查询按钮,导致查询按钮失效的问题 #16894 + - fix(查询组件): 修复文本搜索需两次回车才能返回结果,首次触发显示"暂无数据"的问题 + - fix(查询组件): 修复时间范围组件默认值提示"超出日期筛选范围"的问题 #16914 + - fix(查询组件): 修复行权限与过滤组件"首项"默认值同时使用时,导致过滤功能失效的问题 + - fix(仪表板): 修复手动输入型查询组件出现样式错位的问题 + - fix(仪表板): 修复仪表板缩放模式切换为"按组件比例缩放"后,保存发布再次查看不生效问题 #16885 + - fix(数据大屏): 修复 Tab 及内部组件的右键菜单定位偏移问题 + - fix(仪表板、数据大屏): 修复设置图表背景图时出现多余滚动条问题 + - fix(数据源): 修复调整浏览器窗口大小时,Excel 字段选择器的选中状态被隐藏的问题 + - fix(数据源): 修复无数据源时点击创建数据集,页面卡死且控制台报错的问题 #16831 + - fix(数据源): 修复飞书渠道查看更新记录提示异常 + - fix(数据源): 修复 SQL Server 数据过滤异常 + - fix(数据源): 修复 Calcite 转 SQL Server 时 CONCAT 函数异常 #16860 + - fix(数据源): 修复 SQL Server 下拉树组件报错问题 + - fix(数据集): 修复字段表达式引用新建计算参数失效的问题 + - fix(数据集): 修复自定义 SQL 未保存直接关闭时缺少提示信息的问题 + - fix(系统设置): 修复三方嵌入配置仅保存不验证时,错误触发应用状态变更的问题 + - fix(系统设置): 修复弹窗层级显示异常 + - fix(X-Pack): [同步管理]修复 SQL 查询验证错误 + - fix(X-Pack): [同步管理]修复 SqlServer 表名含 @ 符号时任务创建失败的问题 + - fix(X-Pack): [同步管理]修复下次执行时间计算错乱 + - fix(X-Pack): [同步管理]修复数据源异常时同步日志丢失问题 + - fix(X-Pack): [同步管理]修复 SqlServer uniqueidentifier 字段导致定时任务创建失败 + - fix(X-Pack): [同步管理]修复字段数量过多导致任务创建失败 + - fix(X-Pack): 修复权限配置-按用户配置时,用户量过大导致页面卡顿的问题 + - fix(X-Pack): 修复移动仪表板后后台缓存未即时刷新的问题 + - fix(X-Pack): 修复组织管理中修改名称需刷新浏览器才能生效的问题 #16751 + - fix(漏洞): 修复 DB2 LDAP 存在的 SSRF 漏洞 + - fix(漏洞): 修复 Impala 数据源 JDBC 攻击漏洞 + - fix: 修复模板市场地址提示错误 #16858 + - fix: 统一数据大屏与仪表板事件触发规则,编辑状态下禁止触发 + - fix: 修复存储单位判断脚本中非 GB 单位的处理问题 + +### v2.10.12 +2025年8月15日 +!!! Abstract "新增功能 :star2:" + + - feat(图表): 图表提示的背景颜色支持配置透明度 + - feat(图表): 桑基图提示信息支持配置总出占比显示 #16476 + - feat(图表): 线面图纵轴轴值自动分档的最小值,根据数据自动计算最小刻度值 + - feat(图表): 堆叠条形图/柱状图可以设置图例排序 #16424 + - feat(图表): 基础条形图/柱状图支持点击阴影部分执行下钻、联动、跳转 #16489 + - feat(查询组件): 下拉组件 tag 背景颜色支持自定义 + - feat(仪表板、数据大屏): 图片组支持设置刷新频率 #16584 + - feat(数据源): API 数据源接口参数可以调用已创建接口参数 #16470 + - feat(X-Pack): 【同步管理】增量同步支持指定正负偏移量 + - feat(X-Pack): 【同步管理】支持 CTE 查询 #16281 + - feat(X-Pack): 【数据填报】批量上传增加单条记录的提交信息 + - feat(X-Pack): 【外观设置】增加是否显示 Slogan 配置项 #16437 + + +!!! Abstract "功能优化 :sunflower:" + + - refactor(图表): 跳转配置时不生效的指标字段不再显示 #16525 + - refactor(图表): 气泡地图、符号地图动效支持小数设置 + - refactor(图表): 表格分组名称长度限制增加到 50 #16552 + - refactor(图表): 透视表汇总行列字体默认加粗 #16436 + - refactor(数据大屏): 装饰组件支持配色 + - refactor(仪表板、数据大屏): 图片组样式调整 + - refactor(仪表板、数据大屏): 调整查询组件的文字大小范围 #16517 + - refactor(仪表板、数据大屏): 空值不参与联动 + - refactor(移动端): 修改未开启移动端访问时的错误提示 #16514 + - refactor(数据大屏): SVG 性能优化 + - refactor(X-Pack): 阈值告警-标题优化为三级标题 #16482 + - refactor(X-Pack): 阈值告警-告警内容包含多个指标值的消息模版 #16480 + - refactor(X-Pack): 调整外部用户字符串长度限制 #16578 + - refactor(X-Pack): 认证对接-认证失败禁止注销SSO信息 #16615 + - refactor(嵌入式): 滚动条 css 样式加上类名,避免在 div 嵌入时冲突 #16455 + - build: 修复依赖错误导致打包失败 #16520 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(图表): 修复仪表盘和水波图值为 0 时显示异常 #16419 + - fix(图表): 修复热力图颜色字段为计算字段时,图表报错的问题 #16471 + - fix(图表): 修复线面图开启缩略轴时,纵轴最小值不立即自动计算的问题 + - fix(图表): 修复透视表设置数值格式之后带格式导出单元格为非数值类型的问题 #16431 + - fix(图表): 修复公共链接携带参数,刷新图表数据导致参数丢失,没有传入富文本中的问题 #16579 + - fix(图表): 修复明细表下载表头缺失的问题 #16497 + - fix(图表): 修复地图配色存在相同颜色时图例显示异常 #16203 + - fix(图表): 修复最值在部分浏览器(Safari)中不显示的问题 #16479 + - fix(图表): 修复多个tab 页中,tab2 的提示显示到 tab1 的问题 #16271 + - fix(图表): 修复明细表合并单元格之后导出的表格没有合并单元格 #16589 + - fix(图表): 修复移动端表格第二层无法下钻的问题 #16633 #16485 + - fix(仪表板): 修复移动端部分查询组件悬浮移位问题 + - fix(数据大屏): 修复图层名称长度未校验的问题 + - fix(查询组件): 修复升级后文本下拉多选 UI 发生变化的问题 #16443 + - fix(查询组件): 修复查询组件默认值"首项"搭配行权限使用时,会使得查询组件失效的问题 + - fix(查询组件): 修复数字下拉组件无法设置默认值的问题 + - fix(查询组件): 查询组件背景色匹配仪表板深色模式 + - fix(数据大屏): 修复跑马灯组件预览字体和编辑字体大小不一致问题 #16323 + - fix(数据大屏): 修复地图类图表隐藏再显示导致图表变形问题 + - fix(数据大屏): 修复部分场景放大缩小按钮无效问题 + - fix(仪表板、数据大屏): 优化空资源提示 #16567 + - fix(仪表板、数据大屏): 修复历史数据中出现重复 id 的组件无法删除的问题 + - fix(仪表板、数据大屏): 修复图表,数据集、外置参数配置等文本标题超出问题 + - fix(仪表板、数据大屏): 修复富文本双击出现悬浮设置,导致页面出现滚动条问题 + - fix(仪表板、数据大屏): 修复模板更换数据集时提示偏移问题 + - fix(仪表板、数据大屏): 修复调用浏览器打印功能,出现部分页码空白问题 + - fix(仪表板、数据大屏): 修复看板的外部参数使用默认值向自定义 SQL 传参时,拼接的 SQL 存在问题导致数据无法正常显示的问题 #16577 + - fix(仪表板、数据大屏): 修复外部参数关联数据集参数时,参数类型显示不正确问题 + - fix(仪表板、数据大屏): 修复导出应用模板不会将筛选器使用的数据集也一起导出的问题 #16362 + - fix(仪表板、数据大屏): 修复部分 tab 组件可能在控制台打印异常问题 + - fix(仪表板、数据大屏): 修复部分富文本下拉选项不显示问题 + - fix(仪表板、数据大屏): 修复双击富文本进入编辑模式时,画布可能出现滚动条问题 + - fix(仪表板、数据大屏): 修复从告警管理的告警入口进入仪表板,无法保存告警的问题 + - fix(仪表板、数据大屏): 修复跳转时可能出现控制台异常信息打印的问题 + - fix(数据集): 修复 SQLServer 数据集导出按日期过滤时无法导出数据的问题 #16519 + - fix(数据集): 修复 Doris、SQLServer ( holo 数据库)数据源,数据库原始数据不存在重复,数据集导出时存在重复数据的问题 #16452 + - fix(数据源): 修复复制数据源丢失信息的问题 + - fix(X-Pack): 修复编辑页面数据集选择框下的数据集新建按钮权限控制 + - fix(X-Pack): 【数据填报】修复字符串类型的主键会强制校验为数值类型的问题 + - fix(X-Pack): 修复阈值告警以 div 方式嵌入时,告警表单无法弹出的问题 + - fix(X-Pack): 修复定时报告选项卡组件中的视图无法导出数据的问题 + - fix(X-Pack): 修复阈值告警中动态时间小时粒度格式错误 + - fix(X-Pack): 数据同步,创建任务增量同步时,禁止 date 类型可偏移天以下的单位 + - fix(X-Pack): 修复调用定时报告导出接口设置额外等待时间无效的问题 #16528 + - fix(X-Pack): 修复绑定 MFA 导致 MFA_KEY 重复的问题 + - fix(X-Pack): 【数据同步】修复 Oracle 的 Schemas 是 C## 前缀时,无法同步的问题 + - fix(X-Pack): 【数据同步】修复 Oracle 查询 SQL 语句末尾添加分号后查询失败的问题 + - fix(X-Pack): 【数据同步】修复 DB2 查询语句不支持反引号,导致增量同步失败的问题 + - fix(X-Pack): 【数据同步】修复 DB2 首次同步数据时,增量字段为空,导致第二次同步失败的问题 + - fix(X-Pack): 【数据同步】修复 Elasticsearch、SQL Server 未支持数据类型,无法创建任务的问题 + - fix(X-Pack): 修复账号校验规则错误 #16569 + - fix(X-Pack): 修复组织管理中可以操作无权限组织的问题 + - fix: 【漏洞】Dataease H2 JDBC RCE Bypass's Bypass + - fix: 【漏洞】修复桌面版Aspectjweaver 反序列化任意文件写入漏洞 + - fix: close FileOutputStream to prevent resource leak in downloadFile + +### v2.10.11 +2025年6月26日 +!!! Abstract "新增功能 :star2:" + + - feat(图表): 汇总表支持表头分组 #16302 + - feat(查询组件): 查询框可以调整高度 #16027 + - feat(查询组件): 文本下拉框默认值支持设置为首项 #12071 + - feat(仪表板、数据大屏): 仪表板、数据大屏配置增加透视表的颜色配置 #16347 + - feat(嵌入式): div嵌入数据集页时,导出数据集可直接下载 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(图表): 修复直辖市地图下钻时无法正常跳转的问题 + - fix(图表): 修复下钻时导出的图表部分数据不显示的问题 + - fix(图表): 修复透视表数值维度排序错误 #16321 + - fix(图表): 修复热力地图标签未居中 #16187 + - fix(图表): 透视表带格式导出显示数值类型 + - fix(图表): 修复明细表表头分组后导出表头出现的名称错误 + - fix(图表): 修复透视表指标排序不生效的问题 + - fix(图表): 修复散点图下钻之后提示显示错误 #16345 + - fix(图表): 修复子弹图提示中,实际值与目标值显示错误的问题 #16308 + - fix(图表): 修复子弹图,当实际值与目标值中任意字段与区间字段是同一个字段时,字段数据被求和的问题 + - fix(查询组件): 修复查询组件在查询条件内容过长时,选择全选或者多选出现的下拉框样式错位问题 #15554 + - fix(查询组件): 修复时间范围组件在选择时间范围后,切换浏览器Tab页导致再次查看时,选项依旧处于展示状态的问题 + - fix(仪表板): 修复图表插件在使用了查询组件并设置默认值后,初次渲染未做过滤的问题 #15955 + - fix(仪表板): 修复长时间不登录,再次登录时首次访问仪表板会出现数据加载失败的问题 #16285 + - fix(仪表板): 修复排序优先级表头文案存在白底白字的问题 + - fix(仪表板): 修复删除过滤规则没有对数据进行更新的问题 + - fix(仪表板、数据大屏): 修复仪表板、数据大屏整体资源复制后复制的图表不展示的问题 + - fix(仪表板、数据大屏): 修复即使关闭了图表加载提示,仍然会有loading遮罩层的问题 #16247 + - fix(仪表板、数据大屏): 修复tooltips轮播导致tab组件内的tooltips显示叠加问题 #16271 + - fix(仪表板、数据大屏): 修复置顶查询组件与取消联动按钮发生重叠的问题 + - fix(仪表板、数据大屏): 修复Tab中图表提示重复问题 + - fix(数据集): 修复在删除包含异常计算字段节点时出现的错误 #16314 + - fix(数据集): 修复PostgreSQL数据集导出的数据超过5万行的所有数值格式都成文本类型的错误 #16128 + - fix(数据集): 修复编辑SQL时默认值不生效的问题 + - fix(数据集): 修复分组字段参与计算字段的计算时出现的取值错误 #16380 + - fix(数据源): 修复DM数据源在schema带"-"的情况下,数据集拖拽表报错的问题 #16310 + - fix(数据源): 远程Excel认证时对密码中的特殊字符进行编码处理 #16089 + - fix(工作台): 修复特殊情况下查看全部模板时无法显示模板的问题 + - fix(X-Pack): 修复阈值告警数字格式错误 + - fix(X-Pack): 修复血缘分析无法找到创建的大屏和仪表板的问题 + - fix(X-Pack): 修复用户查看数据填报已填报列表可能为空的问题 + - fix(X-Pack): 修复编辑或查看数据填报时,下拉框值为空的情况下,会展示模版中设置值的问题 + - fix(X-Pack): 修复阈值告警指标重复的问题 #16301 + - fix(X-Pack): 修复权限配置在按资源授权时,菜单授权只有用户列表的问题 #16338 + - fix(X-Pack): 修复因过滤组件复制导致定时报告编辑失败问题 + - fix(X-Pack): 修复阈值告警在表格场景下仅根据第一页数据判断的问题 + - fix(漏洞): 修复H2 JDBC远程代码执行漏洞 + - fix(数据导出中心): 明细表字段隐藏后,导出数据不包含隐藏字段 + - fix(数据导出中心): 修复高可用环境下,导出Excel文件报错的问题 #16287 + - fix: 升级MySQL版本到v8.4.5 #16254 + + + + +### v2.10.10 +2025年6月03日 + +!!! Abstract "新增功能 :star2:" + + - feat(查询组件): 下拉树支持末级为空的数据 #15959 + +!!! Abstract "功能优化 :sunflower:" + + - refactor(图表): 图表的数据导出名称优化 #16126 + - refactor(图表): 图形和图标内边距支持设置为 0 #16143 + - refactor(仪表板、数据大屏): 增加仪表板大屏查询索引,同时过滤非必要的图表信息以优化查询速度 + - refactor(仪表板、数据大屏): 复用图表组件时不展示当前仪表板或者大屏 #15917 + - refactor(数据集): 取消数据集 SQL 的重重解析,降低耗时 + - refactor(数据集): 重构 SQL 变量实现,支持数据源原生函数 + - refactor: UI 库升级 + - refactor: 优化用户列表接口 + - refactor: 修改 MySQL 日志保留时间 + - refactor:【操作日志】新增操作类型"导出"和"下载" + +!!! Abstract "问题修复 :palm_tree:" + + - fix(图表): 修复堆叠条形图标签数值格式配置失效问题 #16056 + - fix(图表): 修复查询组件通过新建计算字段关联组合图报错的问题 + - fix(图表): 对热力图的空值数据进行过滤 #16130 + - fix(图表): 修复汇总表同环比在查询组件过滤之后失效的问题 #16161 + - fix(图表): 修复透视表平铺模式下,指标在行头带格式导出时出现行头错位的问题 #16134 + - fix(图表): 修复汇总表分页场景下,在分享链接界面导出时只导出第一页数据的问题 #16167 + - fix(图表): 修复条形图类别轴文本字段有数字时指标排序失效的问题 + - fix(图表): 修复仪表盘动态值数值为 0 时无法渲染的问题 + - fix(图表): 修复柱条图配置圆角会影响条件样式的问题 + - fix(图表): 修复折线图开启动态标签后,鼠标悬浮至点位显示异常的问题 + - fix(图表): 修复表格动态字段为空导致图表渲染错误 + - fix(图表): 修复地图图表自定义图例数量,当图例为1时,最大值显示异常的问题 + - fix(图表): 修复散点图标签格式化失效的问题 + - fix(查询组件): 修复 iPhone 手机不显示时间查询框中动态时间的问题 #16011 + - fix(查询组件): 修复查询组件的时间范围默认预览MySQL数据源数据会缺少一个月数据的问题 + - fix(仪表板): 修复移动端访问带密码的分享链接报错的问题 #15961 + - fix(数据大屏): 修复调整视窗大小会导致Tab组件内的图表大小发生变化问题 + - fix(数据大屏): 修复大屏复用图表名称时依旧显示修改前名称的问题 #15917 + - fix(数据大屏): 修复跳转配置界面联动配置高度不够,部分信息被隐藏问题 + - fix(仪表板、数据大屏): 修复 Tab 组件拖入图表,图表会消失的问题 #16145 + - fix(仪表板、数据大屏): 修复图片组导出模版未导出图片的问题 #16162 + - fix(仪表板、数据大屏): 修复外部参数请求完成后级联时二级级联查询没有被筛选的问题 #16059 + - fix(数据源): 修复 Oracle 数据库文本转日期有格式错误时,导致查询组件查询报错的问题 #16035 + - fix(数据源): 修复对接版本小于 10 的 PostgreSQL 数据源时,获取表结构方法报错的问题 + - fix(数据源): Excel 中的空值,导入到数据源后,保持为空 #16204 + - fix(嵌入式): 修复数据集以 iframe 方式嵌入,保存数据集并返回时,能保存成功但是会报错的问题 + - fix(嵌入式): 修复编辑数据集时页面无响应,控制台报错的问题 + - fix: editMode为"preview"时,禁用 v-query 的查询条件编辑功能 + - fix: 修复定时器报错 + - fix: 修复导出中心权限错误 + - fix: 修复社区版存在的权限绕过漏洞 + - fix: 过滤 MySQL、Redshift 的非法参数 + +### v2.10.9 +2025年4月30日 + +!!! Abstract "新增功能 :star2:" + + - feat(图表): 调整图表提示框内的冒号显示位置 #15883 + - feat(图表): 透视表支持控制行头冻结 #15952 + - feat(X-Pack): [数据填报]支持绑定 PostgreSQL 自增主键的表 + - feat(X-Pack): [同步管理]任务目标表支持设置表备注 + +!!! Abstract "功能优化 :sunflower:" + + - refactor(图表): 图表字段名称限制增加到200 #15980 + - refactor(查询组件): 多选框宽度自适应 #15986 + - refactor(仪表板、数据大屏): 优化飞书过滤组件缩放方式 + - refactor: 优化菜单查询接口查询速度 + - refactor: 优化保存系统参数接口逻辑 + - refactor: 修改 MySQL 日志保留时间 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(图表): 修复从其他设置了辅助线的图表切换象限图和散点图会显示辅助线的问题 + - fix(图表): 修复明细表开启表头分组和总计后单元格区域高度计算错误 #15972 + - fix(图表): 修复明细表表头分组列数选择过多时部分未合并 #15472 + - fix(图表): 修复组合图 getData 接口 response 中 SQL 没有加密的问题 #15968 + - fix(图表): 修复表格移动端无法关闭提示 #15953 + - fix(查询组件): 修复 Tab 组件组合后,Tab 内部的查询条件失效且该查询图层不能操作的问题 #15969 + - fix(仪表板、数据大屏): 修复移动端访问带密码的分享链接时出现的密码错误 #15961 + - fix(数据集): 修复 SQL 内置系统变量错误 + - fix(数据集): 解决数据集保存一直转圈的问题 + - fix(数据集): 修复应用中包括 Excel 数据集时没有自动替换自定义 SQL 中的表名问题 + - fix(数据源): 过滤 Redshift 非法参数 + +### v2.10.8 +2025年4月22日 + +!!! Abstract "新增功能 :star2:" + + - feat(图表): 柱形图、条形图图、柱线组合图增加顶部圆角选项 #15759 + - feat(数据集): 数据节点支持跨源单源类型设置 + - feat(X-Pack): [数据填报]支持 Oracle 数据源插件 + - feat(X-Pack): [数据填报]支持 Oracle 的 CLOB 字段类型 + - feat(X-Pack): [数据填报]支持跟随数据源管理配置的字符集编码 + - feat(X-Pack): [数据填报]表单绑定 MySQL 与 PostgreSQL 的已有表,支持使用其自增主键 + - feat(X-Pack): 新增还原至社区版功能 + + +!!! Abstract "功能优化 :sunflower:" + + - refactor(图表): 优化鼠标点击图表的定位精度 + - refactor(图表): 指标卡同时使用联动和外部事件时,在非编辑界面可以使用弹框选择执行事件 + - refactor(图表): 指标卡字体大小上限调整 #15882 + - refactor(图表): 优化图表操作下拉菜单与 tooltip 的显示问题 + - refactor(图表): 仪表盘水波图动态字段显示优化 + - refactor(图表): 图表操作弹窗优化,下拉菜单显示隐藏时,仅操作图表的 tooltip + - refactor(仪表板): 对仪表板计算字段进行加密 + - refactor(移动端): 移动端图表在 Tab 内进行修改时,增加 Tab 内图表样式的同步功能 + - refactor(X-Pack): 优化因异步执行导致默认登录方式无效的情况 + - refactor: 优化外部参数名称长度校验规则 + - refactor: 国际化文案变更 #15464 + - refactor: 接口 SQL 参数加密 + - refactor: 接口计算字段加密 + - refactor: 移除外部参数请求中包含的 SQL 片段 #15770 + - refactor: 轮播文案调整 + - refactor: 优化工作台未发布资源操作按钮样式 + + +!!! Abstract "问题修复 :palm_tree:" + + - fix(X-Pack): [同步管理]修复使用表同步报错的问题 + - fix(图表): 修复部分图表导出图片失败的问题 + - fix(图表): 仪表盘在动态字段中除数值、数值小数字段以外其他字段类型汇总方式为计数 + - fix(图表): 修复仪表盘大小选项中的动态字段无法选择计算字段的问题 #15693 + - fix(图表): 修复区间条形图数据不全,配置圆角导致前端报错的问题 + - fix(图表): 修复双轴图无法显示的问题 + - fix(图表): 修复图表获取数据出错之后没有显示错误信息的问题 + - fix(图表): 修复堆叠柱状图以及百分比柱状图没有提示轮播配置项的问题 + - fix(图表): 修复开启条件样式后,圆角失效的问题 + - fix(图表): 修复汇总表同环比失效的问题 + - fix(图表): 修复组合图右轴的线图空值处理置为 0 不生效的问题 + - fix(图表): 修复组合图左轴与横轴字体设置不生效的问题 #15876 + - fix(图表): 修复表格选中单个单元格复制出错的问题 #15836 + - fix(图表): 修复象限图隐藏纵轴轴名称后,整个图表都不显示的问题 #15628 + - fix(图表): 修复透视表行列排序不生效的问题 #15798 + - fix(图表): 修复仪表板中存在空的查询组件时,联动失效的问题 + - fix(图表): 修复汇总表导出 Excel 只有第一页数据的问题 #15899 + - fix(图表): 修复富文本内容不能复制的问题 #15858 + - fix(查询组件): 修复查询组件完成级联配置后,新开页面预览时级联查询数据显示不正确的问题 + - fix(查询组件): 修复外部参数关联下拉树和数值区间组件时,组件未生效的问题 + - fix(仪表板): 修复移动端设计,明细表同步 PC 端设计时一直 loading 的问题 + - fix(数据大屏): 修复 Tab 内组合中的组件,跳转外部 Tab 时,没有跟随大小改变问题,以及全屏预览突然出现的大小变化问题 #15380 + - fix(数据大屏): 修复当前页面打开方式,退出编辑到预览时也可粘贴图表的问题 + - fix(数据大屏): 修复复用大屏时,界面发生变化的问题 + - fix(数据大屏): 修复大屏编辑界面全屏预览未发布的图表,跳转到目标仪表板资源未产生联动的问题 + - fix(数据大屏): 修复 Tab 组件中的组合取消并修改内容后出现的显示异常 #15532 + - fix(仪表板、数据大屏): 修复设置外部参数时,可能显示已删除的图表的问题 + - fix(仪表板、数据大屏): 修复图表设置跳转到其他仪表板,联动图表为 Tab 中图表时,跳转后联动没有生效的问题 + - fix(仪表板、数据大屏): 修复仪表板跳转,目标仪表板重新发布后,源仪表板的联动图表,携带查询条件被删除的问题 + - fix(数据集): 修复新建分组字段后,没有转换指标/维度按钮,且批量设置里修改了数据类型,刷新数据后不生效的问题 #15854 + - fix(数据集): 修复新建计算字段函数包含空格会报错的问题 #15797 + - fix(数据源): API 数据源某条记录不包含某个字段时置空处理 + - fix(移动端): 修复移动端访问时,如果当前仪表板未发布,Tab 内预览会显示未发布标志的问题 + - fix(移动端): 修复 iOS 设备水印显示过小的问题 + - fix: 修复数据导出中心切换 Tab 页导致 CPU 暴增的问题 + - fix: 修复 H2 存在的 SQL 远程执行漏洞 + - fix: 修复 SQL 加密导致的一些问题 + - fix: 修复应用模板时,设置的数据集分组的名称与已有数据集的名称相同时, 会提示"数据集分组名称已存在"的问题 #15611 + +### v2.10.7 +2025年4月10日 + +!!! Abstract "新增功能 :star2:" + + - feat(图表): 分组柱状图支持组内按指标排序 #14154 + - feat(图表): 折线图图例支持排序 #13256 + - feat(图表): 新增子弹图 #12362 + - feat(图表): 在线地图支持天地图 #14449 + - feat(图表): 在线地图支持腾讯地图 + - feat(图表): 数值格式的数量单位支持配置英文简称 #14335 + - feat(图表): 明细表支持图片字段的合并 #14767 + - feat(图表): 柱状图、双轴图、饼图等图表组件的提示支持轮播 #13275 + - feat(图表): 汇总表总计支持数值类字段汇总进行计算方式选择 #12878 + - feat(图表): 汇总表支持分页 #11689 #12662 + - feat(图表): 双轴图副轴支持同环比 #15034 + - feat(图表): 辅助线动态值支持选择最后一项 #14417 + - feat(图表): 透视表支持将指标进行行头展示 #15095 + - feat(图表): 透视表支持单独配置指标的总计名称 #14790 + - feat(图表): 图表数据栏新增字段排序优先级支持 #12551 #12454 + - feat(查询组件): 时间范围组件默认值设置支持常用时间范围 #14253 #15128 + - feat(查询组件): 下拉树支持关联不同数据集的图表组件 #14728 + - feat(仪表板): 分享链接带密码支持直接访问 #15392 + - feat(仪表板): 仪表板查询组件支持悬浮在顶部 #15435 + - feat(仪表板): 组件间距支持自定义设置大小 #15009 + - feat(数据大屏): 时间组件支持显示星期 #14937 + - feat(仪表板、数据大屏): 新增发布功能 #12628 #12905 #13460 + - feat(仪表板、数据大屏): 联动按钮固定悬浮在页面右上角 #15276 + - feat(数据源): 本地 Excel/CSV 和远程 Excel/CSV 数据源在创建时支持修改字段类型 + - feat(数据源): Oracle 数据源支持获取与查询物化视图 #15511 + - feat(数据源): PostgreSql 数据源可获取视图 、实体化视图 #15429 + - feat(数据源): Oracle 数据源支持指定编码 #15032 + - feat(移动端): 移动端支持收藏仪表板 #15094 + - feat(嵌入式): 模板管理页面支持嵌入 #14924 + - feat(X-Pack): [数据填报]提交记录支持日志清理 + - feat(X-Pack): [数据填报]移动端支持展示「我的填报」,并支持移动端填报 #12110 #15005 + - feat(X-Pack): OAuth2 对接用户支持多集属性映射 #15523 + - feat: dectl 命令增加清理日志功能 #15563 + + +!!! Abstract "功能优化 :sunflower:" + + - refactor(图表): 优化组件事件弹窗的窗口打开方式 #15087 + - refactor(图表): 优化条形图、区间条形图、散点图的点击效果,点击标签可直接跳转 #11355 #12727 + - refactor(仪表板): 分享 Ticket 参数格式适配外部参数 + - refactor(仪表板): 创建文件夹或资源时,左侧资源树保持原状 #15423 + - refactor(仪表板、数据大屏): 地图点击激活后,鼠标滚动可缩放地图大小 #14921 + - refactor(数据集): 计算字段中的 SQL 片段在传输过程中进行加密处理 #15446 + - refactor(X-Pack): OAuth2 支持 client_secret_jwt 方式认证 + - refactor(X-Pack): OAuth2 跳转 state 参数禁用横线 #15039 + - refactor(X-Pack): [数据填报]对于批量导入的操作在日志中只记录一次 #15352 + - refactor: 资源名称区分字母大小写 #15426 + + +!!! Abstract "问题修复 :palm_tree:" + + - fix(图表): 修复分组柱状图子维度为空时不显示的问题 + - fix(图表): 修复地图在部分设备上显示异常的问题 + - fix(图表): 修复地图设置图例等分区间钻取后显示数值不正确的问题 + - fix(图表): 修复嵌入式场景下表格无法复制的问题 + - fix(图表): 修复明细表和汇总表开启总计后,序号列计算错误以及图片不显示的问题 + - fix(图表): 修复表格显示总计时滚动条遮挡内容的问题 #15244 #15210 + - fix(图表): 修复透视表树形模式下自定义汇总列小计不显示的问题 + - fix(图表): 修复透视表自定义汇总列总计中的行小计不显示的问题 + - fix(图表): 修复明细表表头合并后导出数据样式的问题 + - fix(图表): 修复 NVARCHAR 字段类型无法过滤的问题 #15597 + - fix(图表): 修复仪表盘底部显示不全的问题 #15197 + - fix(查询组件): 修复日期范围组件配置查询范围时,设置结束时间为月底时不生效的问题 #15465 + - fix(查询组件): 修复查询条件名称设置为上方显示并进行隐藏时,选项框的位置未变化的问题 #15491 + - fix(查询组件): 修复查询组件在级联时,下级配置了默认值和必填选项导致的错误 #14949 + - fix(仪表板): 修复切换 Tab 页明细表无法显示的问题 + - fix(仪表板): 修复动态路径场景下,移动端分享链接无法访问的问题 + - fix(仪表板): 修复图表类型选择页面左右窗口未联动滚动的问题 #15424 + - fix(仪表板、数据大屏): 修复跳转目标是空仪表板或者含有空过滤组件时可能无法加载的问题 + - fix(数据源):修复 http 方式添加远程文件,文件名中包含空格,获取数据失败的问题 + - fix(数据源): 修复 Excel 数据源中文本类数值被转换成数值类型字段的问题 + - fix(X-Pack): 修复同步管理新建任务时在自定义 SQL 中没办法识别注释的问题 + - fix(X-Pack): 修复定时报告导出的图表数据只有一页的问题 + - fix(X-Pack): 修复定时报告查询组件没有作用于导出的图表数据的问题 + - fix(X-Pack): 修复移动端开启 MFA 后使用 CAS、OIDC 无法登录的问题 + - fix(X-Pack): 修复定时报告下载附件时的错误 + - fix(X-Pack): 修复复制浏览器选项卡导致 Token 失效的问题 + - fix: 修复 Token 失效后会停留在空白页面的问题 + - fix: 修复数据大屏导出图表数据没有表头的问题 + - fix: 修复 Demo 数据源删掉后,重启系统又恢复的问题 #15393 + +### v2.10.6 +2025年3月13日 + +!!! Abstract "新增功能 :star2:" + + - feat(图表): 图表指标的快速计算支持累加计算 #8939 + - feat(图表): 明细表支持字段分组 + - feat(图表): 缩略轴的图表在联动时不刷新当前图表 #13338 #13722 + - feat(图表): 横纵轴支持轴名称快捷启用与禁用 #14120 + - feat(图表): 移动端点击表格单元格支持查看对应内容 #14769 + - feat(图表): 表格合并单元格状态下禁用斑马纹的配置 + - feat(图表): 优化图表过滤器枚举筛选时文字过多显示 #14124 + - feat(图表): 透视表树形模式下支持设置默认展开层级 #14460 + - feat(图表): 透视表总计显示支持设置为无 #9732 + - feat(图表): 透视表自适应模式下自动填满图表 #13402 + - feat(图表): 横轴和纵轴的轴线支持自定义配置颜色、线条样式、线宽#14102 + - feat(查询组件): 取色器增加透明度设置项 + - feat(查询组件): 数字下拉组件的显示字段支持选择文本类型字段 #14731 + - feat(查询组件): 时间范围筛选组件可以同时支持动态参数和时间维度 #14421 + - feat(查询组件): 查询组件文本搜索时,支持回车触发查询 #14809 + - feat(仪表板): 仪表板支持组件的隐藏设置 #14749 + - feat(数据大屏): 分组选择后支持按住 Ctrl 键取消其中一个已选中的组件 #13698 + - feat(仪表板、数据大屏): Tab 组件标题支持设置背景 #13384 + - feat(仪表板、数据大屏): 仪表板或者数据大屏支持嵌入加载完成后的回调事件 + - feat(仪表板、数据大屏): 预览增加加载动画 + - feat(数据集): 数据集增加分组字段功能 + - feat(数据源): 新增远程 Excel/CSV 数据源 #14681 + - feat(嵌入式): 仪表板和数据大屏编辑器在 DIV 嵌入方式下支持宽高自适应 #14869 + - feat(X-Pack): 支持飞书数据源插件 + - feat(X-Pack): 数据填报新建表单支持绑定已有数据表 #12788 + - feat(X-Pack): 数据填报的日期组件增加设置默认项,默认当前日期时间 #14040 + - feat(X-Pack): 数据填报表单的下拉框和多选框组件支持绑定所有有效数据源表 + - feat(X-Pack): 数据填报表单数据支持字段过滤查询 + - feat(X-Pack): 同步管理任务列表添加查看任务 ID,增加执行一次接口 + - feat(X-Pack): 同步管理目标数据源 Doris 支持配置 BE 副本数 #13614 + - feat(X-Pack): 移动端支持第三方平台认证 #14747 + - feat(X-Pack): 创建组织、角色的 API 接口返回对应资源 ID + - feat(X-Pack): 组织管理页面增加分页以及懒加载 + +!!! Abstract "功能优化 :sunflower:" + + - refactor(图表): 去除进度条的纵轴位置设置 + - refactor(图表): 优化明细表合并单元格关于序号计算的提示 + - refactor(图表): 优化条件样式配置界面的初始化配置 + - refactor(图表): 优化折线图提示在移动端的显示样式 + - refactor(图表): 调整辅助线的配置样式 + - refactor(图表): 分组堆叠柱状图堆叠项支持联动 + - refactor(图表): 调整图表异常时明细显示的样式问题 + - refactor(图表): 优化圆形填充图的现实以及操作逻辑 + - refactor(图表): 优化柱条分组堆叠联动时的高亮效果 + - refactor(仪表板): 仪表板拖拽定位到第二屏时可以直接拖入第二屏 #11849 + - refactor(仪表板): 仪表板预览显示,文案等优化 + - refactor(仪表板): 移动端组件增加 PC 样式同步功能 + - refactor(仪表板): 调整模板图表在移动端的配置显示 + - refactor(数据大屏): 数据大屏过滤弹窗按钮如果出现滚动,固定到屏幕指定位置 + - refactor(数据大屏): 数据大屏中滚动条默认样式优化 #15240 + - refactor(仪表板、数据大屏): 模版更换数据集的提示优化 #13626 #14101 + - refactor(仪表板、数据大屏): 优化跳转、联动、提示同时存在,操作上小菜单会被遮挡问题 #15037 + - refactor(工作台): 当系统打开模式是当前页面时,应用增加返回功能 #14367 + - refactor(X-Pack): 同步管理的目标数据源文案修改 + - refactor(X-Pack): 阈值告警的高级内容的富文本编辑器删除表格、多媒体、链接组件 + - refactor(文档): 优化 API 文档信息 + - refactor: 登录页面表单输入框高度样式优化 + - refactor: 删除存在 SQL 注入风险的代码 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(图表): 修复 iOS 设备明细表分页位置不对问题 + - fix(图表): 修复富文本内表格的宽高设置无效的问题 #13872 + - fix(图表): 修复仪表板页面导出 PDF 及图片时,最值标签显示空白的问题 #15093 + - fix(图表): 修复仪表盘、水波图遇空数据时的显示错误 + - fix(图表): 修复仪表盘、水波图配置固定值失效的问题 #14922 #14952 + - fix(图表): 修复地图图例划分为自定义时,部分地图内容无法正常显示的问题 + - fix(图表): 修复及优化地图、符号地图的提示样式 + - fix(图表): 修复以 DIV 方式同时嵌入多个仪表板时,富文本部分内容不显示的问题 + - fix(图表): 修复图表放大后提示无法显示的问题 + - fix(图表): 修复圆形填充图点击标签区域无法触发事件的问题 + - fix(图表): 修复图表导出图片时不携带最值标签的问题 + - fix(图表): 修复地图指标为 0 时标签不显示指标值的问题 #14918 + - fix(图表): 修复以 DIV 方式嵌入多仪表板时,部分公共属性相互影响问题 + - fix(图表): 修复对称条形图右轴禁用轴名称设置但不生效的问题 + - fix(图表): 修复在非预览状态下导出地图图片或者 PDF 时地图空白的问题 + - fix(图表): 修复 DIV 方式嵌入仪表板指标卡/富文本,无法跳转到其他仪表板的问题 + - fix(图表): 修复新建仪表盘、水波图时出现的异常问题 + - fix(图表): 修复最值及标签没有按照自定义轴值的最大最小值进行显示,以及轴值中有 0 值时,最值显示不正确的问题 + - fix(图表): 修复标签数值为小数时的四舍五入错误 + - fix(图表): 修复表格 TINYINT 字段类型没有提示的问题 + - fix(图表): 修复视图提示名称过长导致展示错位的问题 #14639 + - fix(图表): 修复计算参数不生效的问题 #14991 + - fix(图表): 修复透明度在渐变状态下仅对上半部分起作用的问题 #14761 + - fix(图表): 修复透视表在列维度为空时首次列总计显示为 0 的问题 + - fix(图表): 修复透视表带格式导出无响应的问题 #15051 + - fix(图表): 修复透视表标题带特殊字符无法带格式导出的问题 + - fix(图表): 修复透视表自定义汇总失效的问题 + - fix(图表): 修复轴值配置了最小值时,数据不显示最小值的问题 + - fix(图表): 修复饼图中存在负数数据时显示异常的问题 + - fix(图表): 修复全屏状态下组件标题会随机丢失的问题 #13218 + - fix(图表): 隐藏透视表不支持的自动换行选项 #15078 + - fix(图表): 修复透视表和汇总表斑马纹失效的问题 + - fix(图表): 修复组合图纵轴线无法修改颜色、样式、大小的问题 + - fix(图表): 修复移动端图表的提示无法正常隐藏的问题 #15117 + - fix(图表): 修复透视表列小计自定义汇总未定义导致图表渲染失败的问题 + - fix(图表): 修复移动端明细表表头排序失效的问题 + - fix(图表): 修复导出 Excel 时数值格式设置失效的问题 + - fix(图表): 修复明细表数据导出格式问题 #14946 + - fix(图表): 修复明细表斑马纹透明度保存无效的问题 + - fix(图表): 修复柱线图的轴线宽度和网格线宽度缩放不一致的问题 + - fix(图表): 修复仪表盘的自定义配色重置按钮无效的问题 + - fix(查询组件): 修复文本搜索的边框颜色不生效的问题 + - fix(查询组件): 修复查询条件宽度设置不生效的问题 + - fix(查询组件): 修复移动端在 iOS 下使用时间筛选组件会报错的问题 #12396 + - fix(查询组件): 修复级联查询组件下级配置了默认值和必填值的情况下,点击查询会报错的问题 #14949 + - fix(查询组件): 修复查询组件没法过滤 Tab 组件下的组合的问题 #15189 + - fix(仪表板): 修复部分组件删除异常 + - fix(仪表板): 修复嵌入式下以新窗口打开跳转的目标仪表板时会报错的问题 + - fix(仪表板): 修复明细表调整单元格背景颜色的不透明度,保存后仍是百分之百的问题 + - fix(仪表板): 修复未登录状态访问仪表板预览页面未能正常跳转到登录页面的问题 + - fix(仪表板): 修复仪表板图表分享后无法导出的问题 #14830 + - fix(仪表板): 修复批量设置查询组件时部分样式不适用问题 + - fix(数据大屏): 修复全屏预览时会存在数据集下拉框的问题 + - fix(数据大屏): 修复大屏配置了缩放方式,在不做缩放的情况下画板没有居中显示的问题 + - fix(数据大屏): 修复弹窗区查询组件右键菜单出现偏移、时间过滤弹框编辑时不显示、控制台异常等问题 + - fix(数据大屏): 修复 Tab 内图表在放大查看时,背景色叠加不准确的问题 #14803 + - fix(数据大屏): 修复数据大屏设置图层组合后,从全屏预览回到编辑状态时,组件会聚集的问题 #14998 + - fix(数据大屏): 修复数据大屏在复用组件时选择保持原样式,组件的尺寸有出入的问题 + - fix(数据大屏): 修复组合中的查询组件,移动到大屏弹窗区没有生效问题 + - fix(数据大屏): 修复编辑状态下,大比例放大画布时可能出现组件超出画布的问题 + - fix(数据大屏): 修复查询组件右键菜单二级弹窗可能悬浮在编辑栏上的问题 + - fix(数据大屏): 修复查询组件右键菜单弹窗位置不准确问题 + - fix(数据大屏): 修复组件组合后拖入 Tab 组件后,数据大屏无法导出应用的问题 #15248 + - fix(仪表板、数据大屏): 修复 iOS 系统中富文本文字会跟着数值一起刷新问题 #12555 + - fix(仪表板、数据大屏): 修复 Iframe 嵌入图表时,图表没有明细下载选项的问题 + - fix(仪表板、数据大屏): 修复不同定时任务使用同一个仪表板或数据大屏时,配置查询组件可能报错的问题 + - fix(仪表板、数据大屏): 修复仪表板改名后,在移动端无法查看,需要再进去保存才看得见的问题 #14423 + - fix(仪表板、数据大屏): 修复外部参数对跳转链接的影响 + - fix(仪表板、数据大屏): 修复查询组件显示字段和查询字段不一致,在跳转配置查询组件时,与查询组件相关的图表过滤失败的问题 + - fix(仪表板、数据大屏): 修复导出图片或者 PDF 时水印会出现变色的问题 + - fix(仪表板、数据大屏): 修复数据大屏 Tab 组件标题缩放的问题 #13441 + - fix(仪表板、数据大屏): 修复新建的 Tab 组件可能无法拖动的问题 + - fix(仪表板、数据大屏): 钉钉全屏问题修复 + - fix(仪表板、数据大屏): 修复联动配置页面可能出现两个滚动条的问题 + - fix(仪表板、数据大屏): 修复数据大屏图表跳转无法选择 Tab 页内的过滤条件的问题 #15203 + - fix(数据集): 修复 SQL 数据集系统变量替换问题 + - fix(数据源): 修复 Oracle 数据源 Schema 过多时页面会崩溃的问题 #14920 + - fix(数据源): 修复数据源重命名报错的问题 + - fix(数据源): 修复数据源点击编辑后不弹出确认框的问题 + - fix(数据源): 解决 API 数据源同步日志较多时,切换数据源查看页面卡顿的问题 + - fix(数据源): 修复 MySQL 的 JDBC 连接参数可能导致任意文件读取的漏洞 + - fix(数据源): 修复 cron 表达式设置页面存在滚动条的问题 + - fix(X-Pack): 移动端修复切换至「我的」页面后,下侧的菜单栏不显示的问题 + - fix(X-Pack): 移动端修复组织数量较多的情况下无法查看全部组织进行组织切换的问题 + - fix(X-Pack): 定时报告修复仪表板中如果存在空的查询条件时,定时报告发送失败的问题 #14880 + - fix(X-Pack): 同步管理修复可能出现的任务一直处于同步中状态的问题 + - fix(X-Pack): 同步管理修复从任务列表查看任务日志时查询日志无效的问题 + - fix(X-Pack): 同步管理修复同步失败时,提示非法 Base64 字符的问题 + - fix(X-Pack): 同步管理修复增量同步时,出现数据遗漏的问题 + - fix(X-Pack): 同步管理修复无法新建目标数据源的问题,优化同步任务执行逻辑 + - fix(X-Pack): 同步管理源数据源、目标数据源列表以及任务列表-查询条件存在 SQL 注入风险 + - fix(X-Pack): 同步管理修复 SQL 中包含双引号时无法创建同步任务的问题 + - fix(X-Pack): 修复嵌入式下,弹窗方式进行跳转时会缺失 Token 的问题 + - fix(X-Pack): 修复用户管理列表查询条件存在的 SQL 注入风险 + - fix: 修复 SQL Injection 漏洞 + - fix: 修复数据源插件加载问题 + + +### v2.10.5 +2025年1月23日 + +!!! Abstract "新增功能 :star2:" + + - feat(仪表板): 仪表板支持画布比例和组件比例两种缩放方式设置 #14027 + - feat(仪表板、数据大屏): Tab 组件轮播支持鼠标悬停停止 #13838 + - feat(仪表板、数据大屏): 仪表板、数据大屏更多的组件支持改名,且标题栏和图层栏名称保持一致 #14110 + - feat(数据集): 计算字段编辑页面支持校验计算字段语法 #14332 + - feat(数据集): SQL 参数支持写在 join on 条件后 + - feat(数据源): PostgreSQL 支持外部表 #14324 + - feat(查询组件): 查询条件首次从”自动“切到”选择数据集“时,自动选择当前图表对应的数据集,以及图表当前选择的字段作为查询、显示和排序字段 #14033 + - feat(X-Pack): 同步管理中存量定时同步任务在未同步过任何数据到目标表时,允许修改目标表的结构 #14362 + - feat(X-Pack): 权限配置中的资源树排序规则与资源列表页排序一致 #14117 + - feat(数据填报): 单选和单选框组件支持增加额外关联字段查询展示功能 + +!!! Abstract "功能优化 :sunflower:" + + - refactor(数据大屏): 数据大屏新建图表后画布区域定位到屏幕中心点 #13946 + - refactor(数据大屏): 新 Tab 预览无需进行浏览器刷新,防止请求阻塞造成异常退出 #14498 + - refactor(数据大屏): 调整滚轮连续移动缩放计算时间,防止卡顿情况 + - refactor(仪表板、数据大屏): 当前页面跳转的弹窗样式变更为内嵌式弹窗 #14264 + - refactor(仪表板、数据大屏): 优化批量操作字段 #14169 + - refactor(图表): 富文本支持同环比,优化富文本返回数据性能 + - refactor(图表): 指标卡条件样式弹窗样式调整 + - refactor(图表): 优化基础样式配色方案,以及多维度时维度名称的显示样式 + - refactor(图表): 去掉词云图、K线图维度以及指标的排序功能 + - refactor(图表): 计算字段变更后,维度、指标栏自动更新 + - refactor(数据集): SQL 片段去掉 JSqlParser + - refactor(X-Pack): 禁止移动资源到【迁移资源】目录 + - refactor: 保存资源名称时,去掉名称开头和结尾用户添加上去的空格 #14125 + - refactor: Copilot 仅支持 MySQL 数据源 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(仪表板): 修复 SQLServer 跨源数据集做图表联动无效的问题 #13486 + - fix(仪表板): 修复仅剩一个 Ticket 时无法删除 Ticket 的问题 + - fix(数据大屏): 修复过滤组件图层标题名称未同步的问题 + - fix(仪表板、数据大屏): 修复直接输入数字的属性样式变更可能导致仪表板编辑时保存按钮被重复激活的问题 + - fix(仪表板、数据大屏): 图表数据导出 excel,如果做空值处理时按照处理后的结果导出 #13976 + - fix(图表): 修复仪表盘、水波图拖入计算字段报错的问题 #14466 + - fix(图表): 修复图表样式中修改的标题,图层名称没有同步的问题 + - fix(图表): 修复外部参数跳转,级联条件容易受初始条件影响而不准确问题 #14656 #14352 + - fix(图表): 修复存量透视表表头颜色的错误 + - fix(图表): 修复明细表常规分页模式切换分页数量后序号计算的错误 #14601 + - fix(图表): 修复水波图指标是记录数时,大小栏的最大最小值无法选择动态值的问题 + - fix(图表): 修复地图导出图片空白的问题 #12319 + - fix(图表): 修复跳转弹窗打开,图表提示框容易遮挡弹框的问题 + - fix(图表): 修复堆叠柱状图辅助线平均值的错误 #14464 + - fix(数据源): 数据源与文件夹名称不能为空 + - fix(数据源): 修复不同组织数据源根目录下无法创建同名资源的问题 + - fix(数据源): 修复 API 数据源校验的错误 + - fix(数据源): 修复旧版本 AP I数据源在升级到 v2.10.4 版本后无法正常同步的问题 #14682 + - fix(数据源): 修复 API 名称输入后可以触发回车事件 + - fix(数据源): 修复 API 数据源分页的错误 + - fix(数据源): 修复 Doris 数据源间隔一天左右就提示连接无效的问题 #14561 + - fix(数据集): 修复 Excel 数据导出格式化的问题 + - fix(数据集): 修复数据集执行 SQL 的报错 + - fix(数据导出中心): 修复数据集字段为带小数数值类型时,表格导出为 Excel 会将 0 存为 0E-8 的问题 + - fix(X-Pack): 修复定时报告地图空白的问题 #12319 + - fix(X-Pack): 修复同步管理中,ES 数据类型不支持 GEO_POINT, GEO_SHAPE 的问题 + - fix(X-Pack): 修复数据集权限控制中角色名称显示的问题 #14704 + - fix: 修复硬编码 API 凭据的漏洞 + - fix: 修复部分包含富文本的模版导入失败的问题 + +### v2.10.4 +2025年1月9日 + +!!! Abstract "新增功能 :star2:" + + - feat(仪表板、数据大屏):Tab 表头支持下划线、加粗、斜体样式 #13540 + - feat(仪表板、数据大屏):支持网页组件向外层仪表板或数据大屏传递参数 + - feat(仪表板、数据大屏):仪表板和数据大屏可以互相跳转并传参 #13334 + - feat(数据大屏):数据大屏的 Tab 组件支持图表组合后拖入 + - feat(图表):区间条形图的开始时间默认按升序排列 + - feat(图表):图表下钻后,点击放大按钮可显示下钻后的状态 #11208 + - feat(图表):新增圆形填充图 + - feat(图表):柱状图支持设置条件样式 + - feat(图表):柱状图支持设置柱宽 + - feat(图表):符号地图支持条件样式 #13785 + - feat(图表):透视表行汇总和小计可以根据维度灵活配置 #11336 + - feat(图表):透视表表头支持分开设置背景颜色 #13538 + - feat(数据源):API 数据源支持分页获取数据 + - feat(数据集):SQL 数据集参数支持绑定系统变量 + - feat(嵌入式):Copilot 支持嵌入 + - feat(X-Pack):数据填报任务增加立即下发选项 + - feat(X-Pack):数据填报调整“我的填报”列表 + - feat(X-Pack):同步管理新增支持 Elasticsearch 的源数据源 + - feat(X-Pack):新增安全设置模块,支持 MFA 设置 + - feat(X-Pack):数据源新增查看权限 + - feat(X-Pack):移动端登录增加密码限制机制 #14147 + - feat(X-Pack):新增 Webhook 管理功能 + - feat(X-Pack):阈值告警新增 Webhook 通知方式 #13239 + - feat(X-Pack):OIDC 认证配置支持字段映射配置 + - feat(X-Pack):图表导出 Excel 支持水印设置 + - feat:字体管理中上传字体文件时自动识别字体名称 + - feat:新增语言选项 + - feat:支持自定义外部国际化文件 + - feat:新增桌面版 + +!!! Abstract "功能优化 :sunflower:" + + - refactor(仪表板、数据大屏):优化画布编辑镜像记录,修复含查询组件的画布无法点击恢复按钮的问题 #13937 + - refactor(仪表板、数据大屏):外部参数支持传入比对操作模式,修复日期跳转外部参数无法查询到数据的问题 + - refactor(仪表板、数据大屏):配置查询条件的关联图表及字段时,选择图表后支持字段智能选入 + - refactor(仪表板):优化分享弹框交互 + - refactor(图表):优化同环比计算公式提示 + - refactor(图表):地图中无数据的区域,移除跳转、下钻、联动等事件展示 + - refactor(图表):优化字段显示名称提示 + - refactor(图表):树型展示透视表行小计禁用维度配置 + - refactor(图表):符号地图、流向地图、热力地图对经纬度增加字段类型校验 + - refactor(图表):优化符号地图大小配置项 + - refactor(图表):优化 Iframe 组件内部参数发送逻辑 + - refactor(图表):优化 Tab 标签切换的内部组件刷新逻辑 + - refactor(图表):优化上传图片拦截方式 #14149 + - refactor(图表):优化跳转联动样式 #14186 + - refactor(图表):变更事件归类 #14099 + - refactor(图表):图表插件渲染逻辑优化 + - refactor(图表):修改地图缩放精度为 0.1 + - refactor(图表):联动配置弹窗标题的提示信息框根据内容自适应宽度 + - refactor(数据源):创建 Excel、API 数据源时,根据引擎类型决定是否可设置主键 + - refactor(X-Pack):游离资源迁移时,资源目录无子节点则隐藏 #14194 + - refactor(X-Pack):优化认证设置 URL 长度限制 #13984 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(仪表板、数据大屏):修复因加密导致 Excel 应用导入报错的问题 + - fix(仪表板、数据大屏):修复恢复缓存时可能出现位置错乱的问题 + - fix(仪表板、数据大屏):修复新建仪表板保存后做撤销操作会重新新建的问题 #13936 + - fix(仪表板、数据大屏):修复部分 Div 嵌入参数未生效的问题 + - fix(仪表板、数据大屏):修复特定图片不能上传问题 + - fix(仪表板、数据大屏):修复联动跳转含 Tab 图表时,显示不全的问题 + - fix(仪表板、数据大屏):修复日期范围组件不包含边界的问题 #13935 + - fix(仪表板、数据大屏): 修复重做撤回操作时部分信息冲突的问题 + - fix(查询组件): 修复下拉树设置好层级后,勾选其他图表后层级就会清空的问题 + - fix(查询组件): 修复下拉框滚动条始终显示的问题 #14418 + - fix(查询组件): 修复下拉框点击失焦的问题 + - fix(查询组件): 修复动态日期传入 SQL 和实际偏差 8 小时的问题 #14426 + - fix(查询组件): 修复时间查询组件默认值设置为动态日期本月时查询报错的问题 #14445 + - fix(查询组件): 修复查询组件下拉框多选的时候,点击其他下拉框不会收起的问题 #14162 + - fix(仪表板): 去除 URL 重定向多余参数 + - fix(仪表板): 修复分享链接使用浏览器返回功能报错的问题 #14358 + - fix(仪表板): 修复查询组件设置在切换关联字段时展示类型未同步更新的问题 + - fix(仪表板): 修复查询组件滚动条导致样式变形的问题 + - fix(仪表板): 修复仪表板复制 Tab 中的组件时图层叠加,无法拖动问题 #14550 + - fix(数据大屏): 修复弹窗区域禁用时,默认值依然影响大屏数据的问题 + - fix(数据大屏): 修复组合图表时数据集 ID 被误清理的问题 + - fix(数据大屏): 移动端屏蔽弹窗按钮 + - fix(数据大屏): 修复缩放大屏时,Tab 组件内的元素大小/位置会变的问题 #13857 + - fix(数据大屏): 修复 Windows 系统 edge 浏览器连续加入图标等 svg 组件造成页面卡顿的问题 + - fix(图表): 修复图表图片导出背景图片不全的问题 + - fix(图表): 修复富文本编辑预览时可以双击编辑的问题 #14357 + - fix(图表): 修复仪表盘最大值为空的问题 + - fix(图表): 修复切换图表编辑背景,但背景图未切换的问题 #13687 + - fix(图表): 修复双线组合图左右轴线宽与折点大小样式设置同样数值但是展示大小不一致的问题 + - fix(图表): 修复图表在没有配置整体字体时,配置字体大小无效的问题 + - fix(图表): 修复地图下钻后,点击放大按钮无法加载地图的问题 #11208 + - fix(图表): 修复地图自适应失效的问题 #14020 + - fix(图表): 修复富文本条件样式没有实时刷新问题 + - fix(图表): 修复指标卡详细数据和实际展示数据对不上的问题 #14018 + - fix(图表): 修复散点图和象限图时间字段显示的异常 + - fix(图表): 修复明细表自动换行,当高度不够放下一行时内容的最后字符显示为省略的问题 + - fix(图表): 修复标签设置百分比格式后会带有其他格式配置的后缀问题 + - fix(图表): 修复热力图多个字段设置排序导致图表显示数据丢失的问题 + - fix(图表): 修复移动端图表开启提示之后不会自动消失的问题 #13276 #14337 + - fix(图表): 修复自定义地图重置效果的异常 #13938 + - fix(图表): 修复表格类图表在没有配置整体字体时,配置字体大小无效的问题 + - fix(图表): 修复透视表树形模式在列维度为空的情况下自定义行总计小计无效的问题 + - fix(图表): 修复雷达图开启标签之后无法触发联动或跳转事件的问题 + - fix(图表): 地图去除苏州工业园区 #13801 + - fix(图表): 修复明细表分页情况下自定义列宽未铺满的问题 #14114 + - fix(图表): 修复指标卡批量设置颜色后不生效的问题 #14321 + - fix(图表): 修复重庆市地图文件错误 #14361 + - fix(图表): 修复明细表负数配置千分位时出现导出的异常 #14161 + - fix(图表): 修复下拉模式明细表导出 Excel 为空的问题 #13892 #13962 + - fix(嵌入式): 修复 Iframe 嵌入后,进行两次跳转会提示“token为 空“的问题 + - fix(嵌入式): 修复 Iframe 方式嵌入的仪表板编辑页面新建或编辑数据集,跳转后无法返回到上一页的问题 + - fix(嵌入式): 修复嵌入仪表板设计器,仪表板编辑页面点击新页面预览报错 404 的问题 + - fix(工作台): Copilot 选择数据集时,数据集的排序规则和数据集树设置的保持一致 #14109 + - fix(工作台): 修复 Copilot 超出一页页面无法滚动的问题 + - fix(工作台): 修复应用无法获取数据源列表问题 + - fix(工作台): 修复模板市场按照模板类型筛选无效问题 + - fix(工作台): 修复部分模板解析错误 + - fix(工作台): 修复公共链接分享 tooltip 失效的问题 + - fix(工作台): 修复打开帮助文档后,无法返回工作界面的问题 + - fix(数据源): 修复在低分辨率小屏幕设备中上传 Excel 看不到预览数据问题 #13979 + - fix(数据源): 修复数据源树排序后,新建数据源保存时选择数据源文件夹没有按照设置的排序方式排列的问题 + - fix(数据源): 修复查看数据源提示没有权限的问题 + - fix(数据源): 修复 SSH 连接方式下,数据源定时状态检测的错误 #14561 + - fix(数据源): 修复 Doris 表字段描述没有正确显示的问题 #13879 + - fix(数据源): 修复 Excel 类型判断错误 + - fix(数据源): Excel 文件过大而无法上传时,提示文件大小超出限制,请修改相关配置文件 + - fix(数据源): 修复名称超过 40 字符的 CSV 文件导入失败的问题 + - fix(数据集): 修复获取字段没有添加 schema 的问题 #14453 + - fix(数据集): 修复数据集设置规则导出,导出失败的问题 + - fix(数据集): 修复新建数据集,保存时的树排序和数据集树的设置不一致的问题 #14111 + - fix(模板管理): 修复下拉菜单中样式字体大小不一致的问题 + - fix(移动端): 修复仪表板 Tab 组件内图表在移动端缩放异常的问题 #14156 + - fix(移动端): 修复移动端使用时间查询组件选中日期后无法清空的问题 + - fix(系统设置): 阈值告警使用服务器默认时区 + - fix(数据导出中心): 修复数据导出中心全部下载功能失效的问题 + - fix(X-Pack): 修复 CAS 登录失败后未清除缓存的问题 #13896 + - fix(X-Pack): 修复 LDAP 对接 AD 域可以免密登录的问题 + - fix(X-Pack): 同步管理修复固定频率的任务,执行时间不准确的问题 + - fix(X-Pack): 同步管理修复任务状态枚举取值错误 + - fix(X-Pack): 同步管理修复 Oracle 按时间字段增量同步失败的问题,及优化增量同步的逻辑 + - fix(X-Pack): 同步管理修复同步 Oracle 源数据源时,提示字符集错误的问题 #14365 + - fix(X-Pack): 同步管理修复同步中任务无法直接查看同步中日志的问题 + - fix(X-Pack): 同步管理修复执行任务后,日志未更新以及无法读取到日志内容的问题 + - fix(X-Pack): 同步管理修复数值类型的增量添加了时间格式的问题,以及添加支持增量同步字段类型(DECIMAL、DOUBLE、FLOAT) + - fix(X-Pack): 同步管理修复清理任务日志文件不全的问题 + - fix(X-Pack): 同步管理修复清理日志后,日志列表状态显示不正确的问题 + - fix(X-Pack): 同步管理处理 Oracle 查询字段信息出现的版本差异问题 + - fix(X-Pack): 同步管理修复新建任务后,任务列表无法显示的问题 + - fix(X-Pack): 同步管理调整 Oracle 字段类型与 Doris 字段类型映射关系,以及优化 Oracle 的表及字段的查询速度 + - fix(X-Pack): 同步管理修复创建任务提示成功,但未出现在任务列表中的问题 + - fix(X-Pack): 修复外观配置上传 svg 无法展示的问题 #13958 + - fix(X-Pack): 修复 dataease.login_timeout 参数无效的问题 + - fix: 修复潜在越权漏洞 + +### v2.10.3 +2024年12月5日 + +!!! Abstract "新增功能 :star2:" + + - feat(仪表板): 支持拖拽式移动资源树节点资源位置 #12982 + - feat(仪表板): 编辑仪表板时如果数据异常,提供详细且明确的错误信息。 + - feat(数据大屏): Tab 组件支持标签排序功能 #12487 + - feat(数据大屏): Tab 组件每页支持展示在图层区域,并进行图层相关信息管理 #12118 + - feat(数据大屏): Tab 组件在调整大小的时候,可以选择 Tab 组件内的组件是否自适应调整大小 #12888 + - feat(数据大屏): 数据大屏支持按住空格键时使用鼠标直接移动整个大屏 #12787 + - feat(数据大屏): 数据大屏放开移动端访问限制,允许移动端访问 + - feat(数据大屏): 数据大屏增加不缩放的预览模式 + - feat(仪表板、数据大屏): Tab 组件支持隐藏标题 #12729 #13205 + - feat(仪表板、数据大屏): 当仪表板或数据大屏在编辑到保存的过程中被他人保存时,系统应提示用户并支持覆盖和取消 + - feat(仪表板、数据大屏): 嵌入式支持嵌入 Tab、组合形式的组件,同时支持 Tab 分组内部图表展示 + - feat(仪表板、数据大屏): 数据大屏设计面板支持辅助网格线 #12591 + - feat(仪表板、数据大屏): 跳转支持携带过滤参数 #12866 + - feat(仪表板,数据大屏): 增加图例中图标的大小设置项 + - feat(仪表板,数据大屏): 支持整体字体设置 #13408 + - feat(查询组件): 下拉查询组件支持自定义排序 #12387 + - feat(查询组件): 支持设置查询组件的内边距 #12960 + - feat(查询组件): 时间查询组件支持设置时间筛选范围 #12822 + - feat(查询组件): 时间组件默认值增加月底选项 #10776 + - feat(查询组件): 查询条件的宽度支持单独调整 + - feat(图表): 仪表盘标签支持显示数值和百分比 + - feat(图表): 地图、气泡地图的边线以及底色支持配置透明色 + - feat(图表): 地图、气泡地图支持自定义区域 + - feat(图表): 折线图支持设置条件样式 + - feat(图表): 折线图支持配置标签的位置 + - feat(图表): 折线图标签颜色支持根据范围设定 #12536 + - feat(图表): 明细表、汇总表无数据时,显示暂无数据 #13037 + - feat(图表): 明细表支持总计 #12650 + - feat(图表): 明细表支持自动换行 #12084 #12344 + - feat(图表): 条形图纵轴支持设置显示标签的文字长度 #13161 #12639 + - feat(图表): 进度条支持显示实际数值 #12469 + - feat(图表): 雷达图支持更改折点的显示和隐藏以及颜色覆盖开关 #12916 + - feat(图表): 支持组件背景模糊/毛玻璃效果 + - feat(数据源): API 数据源支持设置主键,增量同步可根据主键更新已同步的数据 + - feat(数据源): 上传 Excel 支持列选择 + - feat(数据源): 数据源连接信息 AES 加密存储 + - feat(数据集): 数据集参数支持 union + - feat(数据集): 数据集预览表格时,当某个字段的内容过多进行单行省略显示 ,点击字段时显示完整内容 #12802 + - feat(系统设置): 增加资源默认排序方式的配置项 #13050 + - feat(系统设置): 系统设置增加页面打开方式的选项 + - feat(消息中心): 新增消息中心 + - feat(X-Pack): 【数据填报】插件化支持 + - feat(X-Pack): 【数据填报】支持嵌入式 + - feat(X-Pack): 【数据填报】增加统计用户待填报任务条数接口 + - feat(X-Pack): 【数据填报】数据填报支持多条录入并新增“快速确认完成”按钮 + - feat(X-Pack): 【同步管理】同步管理目标数据源支持自定义配置 Doris 的 FE/BE 端口地址 #13196 + - feat(X-Pack): 增加用户限制登录设置 #12638 + - feat(X-Pack): 导出类权限独立控制 #12840 + - feat(X-Pack): 新增游离资源管理 + - feat(X-Pack): 按资源授权增加全选功能 + - feat(X-Pack): 嵌入式应用支持指定密钥长度 + - feat(X-Pack): 增加跨域校验相关配置 + + +!!! Abstract "功能优化 :sunflower:" + + - refactor(仪表板): 公共链接过期后禁止加载资源请求 + - refactor(仪表板): 移动端分享过期后禁止加载资源请求 + - refactor(仪表板): 新增图表时自动滚动到最终添加图表的位置 + - refactor(数据大屏): 大屏辅助网格与刻度尺保持缩放一致 + - refactor(数据大屏): 数据大屏支持批量隐藏 + - refactor(数据大屏): Tab 组件支持图层侧拖拽排序 + - refactor(数据大屏): 优化大屏右键菜单显示 + - refactor(数据大屏): 大屏字体修改时同步修改图表标题字体 + - refactor(数据大屏): 调整大屏拖动样式,防止出现额外的滚动条 + - refactor(仪表板、数据大屏): 优化仪表板展示速度优化 + - refactor(仪表板、数据大屏): 优化外部参数 ID 存储方式,相同名称修改后ID保持不变 + - refactor(仪表板、数据大屏): 优化编辑保存冲突时的提示逻辑 + - refactor(仪表板、数据大屏): 优化页面打开方式 + - refactor(仪表板、数据大屏): 嵌入式优化,增加 Tab、组合等组件 ID 展示 + - refactor(仪表板、数据大屏): 携带过滤条件跳转优化,增加目标资源权限校验及提示 + - refactor(仪表板、数据大屏): 组件可设置更大字体 + - refactor(仪表板、数据大屏): 外部参数名称禁止重复或未配置,修改跳转条件匹配外部参数问题 + - refactor(图表): 优化预览图表处理速度 + - refactor(图表): 图片组件优化,修改未设置事件时鼠标样式 #12685 + - refactor(图表): 图表导出权限控制优化 + - refactor(图表): 表格固定列宽适应缩放 + - refactor(图表): 表格渲染优化 + - refactor(图表): 调整 Tab 组件大小变化时内部组件调整模式,防止出现偏移 + - refactor(图表): 解除表格行高 100 的限制 #13385 + - refactor(图表): 调整表格滚动条的宽度 + - refactor(图表): 下钻层级间箭头颜色跟随文字设置的颜色 #13589 + - refactor(图表): 优化富文本查询速度 + - refactor(图表): 跳转选择仪表板或大屏时,资源列表按照预览列表排序方式进行排序 + - refactor(图表): 透明度增加 0 选项,组件允许完全透明 + - refactor(图表): 优化 Mac 系统对默认字体的适配 + - refactor(图表): 优化标签在 canvas 内显示 + - refactor(图表): 刻度值的数值格式与指标的数值格式保持一致 #12339 + - refactor(图表): 图表在不显示标题时,联动、跳转等图标样式优化 + - refactor(图表): 明细表调整冻结以及自动换行的提示 + - refactor(图表): 联动到符号地图时,中心位置聚焦到数据点 + - refactor(图表): 透视表排序逻辑优化 #13127 + - refactor(查询组件): 文本下拉-手工输入选项值字符长度调整为 64 #13303 + - refactor(数据集): 增加聚合运算的补充说明 #9724 (#13235) + - refactor(数据源): 对返回数据源信息进行加密 + - refactor(移动端): 调整数据大屏在移动端的缩放比率 + - refactor(系统设置): 系统参数分类优化 + - refactor(X-Pack): CAS 和 OIDC 插件自动化配置 + - refactor(X-Pack): CAS 方式登录 API 鉴权 + - refactor(X-Pack): 简化 CAS 和 OIDC 配置 + - refactor(X-Pack): Token 刷新机制弃用时间点比较,采用相对时间比较方式 + - refactor(X-Pack): 日志区分客户端类型 + - refactor(X-Pack): 自定义角色权限默认为空,按用户授权增加全选功能 + - refactor(X-Pack): 【同步管理】对返回数据源信息进行加密 + - refactor: 调整部分控制台日志级别 + - refactor: 系统内的滚动条宽度用全局变量统一控制 + - refactor: 登录页面删除前端校验规则 + - refactor: 社区版获取客户端 IP 信息 + - refactor: 非社区版默认禁用初始密码 + + +!!! Abstract "问题修复 :palm_tree:" + + - fix(仪表板): 修复数据中存在空值时,下载 Excel 报 NPE 的问题 + - fix(仪表板): 修复 PC 端查询条件设置默认值且被隐藏后,该查询条件添加至移动端后没有进行过滤的问题 + - fix(仪表板): 修复 date 类型时间范围不包含边界的问题 + - fix(仪表板): 修复数值下拉选项出现科学计数格式的问题 + - fix(仪表板): 修复分享链接中在线地图无法加载的问题 + - fix(仪表板): 修复分享链接带密码访问时,提示不支持当前 URL 的问题 + - fix(仪表板): 修复分享链接中过滤器请求失败的问题 + - fix(仪表板): 修复分享链接自定义密码无错误提示的问题 + - fix(仪表板): 修复同一个仪表板中使用两个数据集的参数查询会报错的问题 + - fix(仪表板): 修复社区版中数值区间查询组件在缺少最大/最小值的时候没有给出提示的问题 + - fix(仪表板): 修复时间筛选范围设置时,关闭设置弹窗导致下拉框出现偏移的问题 + - fix(仪表板): 修复多个图表连续设置标题时,生效目标出现错误的问题 #13237 + - fix(数据大屏): 修复尺寸较小的画布没有定位到中心点的问题 + - fix(数据大屏): 修复三角形组件无法关闭边框的问题 + - fix(数据大屏): 修复多选组件无法使用快捷键移动的问题 + - fix(仪表板、数据大屏): 修复在预览页退出,重新登录后无法查看预览页面的问题 + - fix(仪表板、数据大屏): 修复复制资源没有校验父文件夹权限的问题 + - fix(仪表板、数据大屏): 修复预览界面路由切换后首次访问未刷新页面的问题 #13362 + - fix(仪表板、数据大屏): 修复批量设置中,部分组件没有背景色选项的问题 + - fix(图表): 修复样式设置时可能出现的对其他组件样式产生影响的问题 #13299 + - fix(图表): 修复区间条形图对时间类型进行排序后图表会报错的问题 + - fix(图表): 修复图表在不显示标题时,显示联动、跳转等标识的图标占用图表高度,导致图表出现抖动假相的问题 + - fix(图表): 修复地图、气泡地图重置默认缩放比例时显示不正确的问题 + - fix(图表): 修复地图没有根据自定义区间正确取色的问题 #13327 + - fix(图表): 修复折线图最值标签被遮挡的问题,超过显示范围时,最值标签显示在数据点下方的问题 #13354 + - fix(图表): 修复数值格式后的值出现 -0 或者 -0.00(即负零)的问题,将视为 0 或者 0.00 #13222 + - fix(图表): 修复明细表分页导致字体渲染模糊的问题 + - fix(图表): 修复明细表自定义列宽时的宽度计算错误 + - fix(图表): 修复汇总表冻结列无法编辑的问题 + - fix(图表): 修复透视表自定义计算存在空数据时渲染失败的问题 + - fix(图表): 修复双线图标签展示不全的问题 + - fix(图表): 堆叠折线图取消条件样式功能 + - fix(图表): 修复雷达图部分基础配置项未进行专属判断的问题 + - fix(图表): 修复部分数据集下的图片组无法进行联动的问题 + - fix(图表): 修复折线图下钻类别轴错误 #13045 + - fix(图表): 修复分组柱状图下钻字段自定义排序失效 #13598 + - fix(图表): 修复水波图导出 Excel 报错的问题 + - fix(图表): 修复下钻字段包含’\‘时下钻失败的问题 #13031 + - fix(图表): 修复明细表合并单元格计算的错误 #13283 + - fix(图表): 修复显示最值勾选后,如果切换其他视图仍然会显示的问题 #13215 + - fix(图表): 修复仪表盘设置好了以后,点其他地方后再重新点仪表盘样式会还原的问题 #13434 + - fix(图表): 修复透视表树形模式下行小计的计算错误 #12928 + - fix(图表): 修复堆叠状图和条形图指标排序导致图例自定义颜色错误 #13341 + - fix(查询组件): 修复时间范围组件设置时间筛选范围后,时间上限选择仍能越界的问题 #13533 + - fix(查询组件): 修复查询组件下拉框宽度默认太小的问题 #12853 + - fix(查询组件): 修复查询组件在选择数据集时,样式出现错乱的问题 + - fix(查询组件): 修复级联查询中,如果第二级中的存在多对一的关系,查询框内容未刷新导致查询内容不正确的问题 #13314 + - fix(嵌入式): 修复上传自定义字体后,在添加了 content-path 的情况下,DIV 嵌入数据大屏会提示字体请求不到的问题 + - fix(嵌入式): 修复插件无法正常加载的问题 + - fix(嵌入式): 修复 DIV 方式同时嵌入两个仪表板后,用 destroy 方法注销实其中一个仪表板,而另一个仪表板的图片会出现加载异常的问题 + - fix(工作台): 修复社区版最近使用资源不显示创建人名称,显示的是 ID 的问题 + - fix(数据源): 修复 API 数据源定时任务无法停止的问题 + - fix(数据源): 修复 ES 特殊字符出错的问题 + - fix(数据源): 修复数据源 schema 名称是关键字时会报错的问题 #13189 + - fix(数据源): 修复数据源列表页排序图标不对的问题 + - fix(数据源): 修复数据源校验通过并保存后,预览时提示无法链接的问题 + - fix(数据集): 修复 SQL 片段报错 + - fix(数据集): 修复 SQL 误判断注释错误 #13403 + - fix(数据集): 修复数值下拉多选时出错的问题 #13449 + - fix(数据集): 修复计算字段排序出错的问题 + - fix(数据集): 修复更改数据集字段类型时,弹框超出了屏幕边界的问题 + - fix(数据集): 修复数据集使用参数时无法保存的问题 #13317 + - fix(数据源): 修复复杂 SQL 片段包含多个 CTE 执行报错的问题 + - fix(移动端): 修复移动端通过公共链接访问时,文本搜索组件无法进行输入的问题 #13236 + - fix(数据导出中心): 修复导出仪表板图表数据,报用户权限已更改且导出未执行的问题 + - fix(数据导出中心): 修复获取图表路径出错的问题 + - fix(数据导出中心): 修复超出 100W 的数据,导出后在新 Sheet 页中出现重复数据的问题 + - fix(系统设置): 修复导航菜单样式不正确的问题 + - fix(系统设置): 修复批量导入用户时,邮箱包含下划线会出错的问题 #13176 + - fix(X-Pack): 【数据填报】修复在工作台中,仅给角色分配数据填报的权限时,填报人无法查看自己的填报任务的问题 + - fix(X-Pack): 【数据填报】修复批量导入数据时多选框显示不全的问题 + - fix(X-Pack): 【同步管理】修复编辑任务但是不做修改而直接保存时,提示更新失败的问题 + - fix(X-Pack): 修复数据填报获取数据失败的问题 + - fix(X-Pack): 修复定时报告默认参数时间组件年显示异常的问题 + - fix(X-Pack): 修复第三方平台客户端登录时忽略了 URL 中动态路径的问题 + - fix: 修复 Windows 静态地图资源 URL 路径不正确的问题 #13748 + - fix: 修复 YUI 2.9.0 组件漏洞 + - fix: 修复 dectl 脚本在恢复 MySQL 时可能会出现的无法启动的问题 + - fix: 修复初次安装时 docker 服务没有启动的问题 #13208 + - fix: 修复渗透测试中发现的 SQL 注入的问题 + - fix: 普通用户不显示数据源配置信息 + - fix: 禁用不安全的请求类型 + - fix: 限制 MySQL 非法参数 + - fix: 非管理员无权访问引擎接口 + +### v2.10.2 +2024年11月7日 + +!!! Abstract "新增功能 :star2:" + + - feat(仪表板): 复制仪表板和数据大屏操作时增加 loading 提示 #12289 + - feat(仪表板): 移动端支持独立样式设计 #10822 + - feat(数据大屏): 跑马灯组件支持首位衔接滚动 #10197 + - feat(仪表板、数据大屏): Tab 内组件支持向上移出 + - feat(仪表板、数据大屏): 新增图片组组件 + - feat(仪表板、数据大屏): 预览时增加放大、导出按钮等 #9673 + - feat(查询条件): 新增查询条件时自动定位到该新增条件,并处于选中状态 + - feat(查询组件): 新增数值区间组件,且可支持绑定最大值和最小值两个参数 #11788 #12263 + - feat(查询组件): 时间范围组件可以支持绑定开始时间和结束时间两个参数 + - feat(查询组件): 查询组件 placeholder 内容支持设置 #11881 #11523 + - feat(查询组件): 查询组件支持设置图片背景 #11585 + - feat(查询组件): 查询组件在参数是年月日的情况下,时间粒度可以选择年月或者年 #12118 + - feat(查询组件): 查询组件支持配置精确匹配和模糊匹配的显隐 #12183 + - feat(查询组件): 查询组件支持配置清空重置按钮颜色 #11440 + - feat(查询组件): 设置的默认值在隐藏的查询条件时依旧生效 #12714 + - feat(查询组件): 过滤组件优化 #11696 #12111 + - feat(图表): 下钻字段支持重命名和排序 #9700 #12491 + - feat(图表): 标签显示支持全量和自适应两种模式 #9829 + - feat(图表): 在线地图支持控制地图的标签显隐 + - feat(图表): 在线地图支持自定义地图风格 #10408 + - feat(图表): 在线地图支持设置默认缩放等级和中心点 #10816 + - feat(图表): 地图和气泡地图支持区域填充功能 #11900 + - feat(图表): 地图支持自定义图例区间 #11350 #12212 + - feat(图表): 明细表和汇总表支持隐藏字段 #10700 + - feat(图表): 明细表和汇总表支持行列冻结 #10838 #11482 #11630 + - feat(图表): 汇总表总计行和数据行间的留白优化 #12243 + - feat(图表): 百分比柱状图、百分比条形图支持添加辅助线功能 #11865 + - feat(图表): 符号地图支持自定义气泡大小区间 #12432 + - feat(图表): 符号地图支持自定义符号 #10408 + - feat(图表): 表格条件样式支持动态值设定 #11695 + - feat(图表): 表格支持隐藏鼠标悬浮样式 #12755 + - feat(图表): 表格自适应模式铺满组件 #11640 #11704 + - feat(图表): 表格边框支持透明度设置 + - feat(图表): 透视表树形模式支持带格式导出 #12320 + - feat(图表): 图表过滤器日期字段支持选择是否为空的条件 #12229 + - feat(图表): 表格单元格支持多选复制 #11368 + - feat(图表): 雷达图支持设置自定义轴值 + - feat(图表): 明细表支持合并单元格 #8830 + - feat(数据源): 支持 Elasticsearch 数据源 #9583 + - feat(数据集): 数据集的批量管理中字段增加表名列 + - feat(系统设置): 支持全局禁用分享链接设置 #12815 + - feat(系统设置): 支持分享链接有效期和密码必填设置 #12816 + - feat(嵌入式): 支持在同一个页面上,嵌入来自不同仪表板或数据大屏的图表 + - feat(嵌入式): 图表、仪表板、数据大屏支持查看资源 ID + - feat(嵌入式): 移动端嵌入仪表板后自动在仪表板上展示标题 + - feat(嵌入式): 嵌入式单图表渲染优化,支持增加图表 ID 后缀等操作 + - feat(嵌入式): 支持相同界面嵌入多个相同图表 + - feat(数据导出中心): 支持大数据量文件下载,支持断点续传 + - feat(X-Pack): 【数据填报】用户填报多条数据任务的列表内,支持拖动调整列宽 + - feat(X-Pack): 【数据填报】表单中的组件状态为禁止填写时,组件置灰 + - feat(X-Pack): 【数据填报】任务下发列表增加自动刷新功能 + - feat(X-Pack): 【数据填报】任务增加立即下发选项 + - feat(X-Pack): 【数据填报】任务设置中模版设置增加对数字输入框的校验规则设置 #12115 + - feat(X-Pack): 【数据填报】按条件下发数据增加条件过滤功能 + - feat(X-Pack): 【数据填报】表单数据页面,用户仅被授权查看权限时只会看到最近提交为该用户的数据 #12139 + - feat(X-Pack): 【数据填报】用户查看填报任务列表,多条数据情况下增加填报状态展示 + - feat(X-Pack): 【数据填报】调整下发任务日志 + - feat(X-Pack): 【阈值告警】告警规则增加动态值支持 #12612 #12634 + +!!! Abstract "功能优化 :sunflower:" + + - refactor(仪表板): 优化复用仪表板组件最终放置位置,防止复用仪表板较长时,复用的图表在仪表板中部 + - refactor(仪表板): 优化移动端设计面板部分交互的问题 + - refactor(仪表板): 移动端设计面板支持 Tab 内的组件样式设计 + - refactor(仪表板): 优化图表过滤器中日期动态值组件样式 + - refactor(数据大屏): 优化数据大屏缩放逻辑,防止进行面板反复缩放时可能出现的卡顿现象 + - refactor(数据大屏): 调整屏幕展示模式转变导致部分大屏超出边框的问题 + - refactor(数据大屏): 调整跑马灯滚动速度逻辑,调整速度范围,防止不同宽度速度可能不一致的问题 + - refactor(仪表板、数据大屏): 仪表板数据大屏删除时,相关资源改为物理删除 + - refactor(仪表板、数据大屏): 优化图表编辑区域,防止切换数据集时部分图表可能会出现多次渲染的问题 + - refactor(仪表板、数据大屏): 优化图表编辑区域样式 + - refactor(仪表板、数据大屏): 调整图表编辑数据集选择样式 + - refactor(仪表板、数据大屏): 优化外部参数必填参数校验空值样式等 + - refactor(仪表板、数据大屏): 外部参数默认值配置增加格式校验等,解析规范默认值格式 + - refactor(图表): 在线地图复用底图 + - refactor(图表): 调整高级样式设置界面布局 + - refactor(图表): 3D 旋转增加自动边界计算 + - refactor(图表): 更新地图文件 #11659 + - refactor(图表): 关闭饼图动画 + - refactor(图表): 分组堆叠柱状图去除总计标签 + - refactor(图表): 图表条件样式优化 + - refactor(图表): 堆叠柱状图指标标签和总计标签分开控制#10895 + - refactor(图表): 扩大提示的触发范围 #11331 #12044 #12168 + - refactor(图表): 折线图图例符号修改为实心 #12168 + - refactor(图表): 统一图例的图标大小和样式 + - refactor(图表): 优化联动同环比计算 #12370 + - refactor(图表): 表格滚动到底部后停留 1.5 秒再回到顶部 #12677 + - refactor(图表): 优化通用背景选择边框显示 + - refactor(图表): 修改饼图、玫瑰图指标文案 + - refactor(图表): 调整 3D 旋转样式 + - refactor(图表): 优化明细表以及汇总表最后一列的排序方式会被遮挡的问题 #12063 + - refactor(图表): 取消指标卡、水波图、仪表盘的指标排序功能 + - refactor(图表): 优化图表标题备注样式 + - refactor(图表): 图表标题备注的长度限制调整到 512 + - refactor(图表): 指标显示名称字符数调整 #12145 #12485 + - refactor(图表): 当切换图表类型时,如果图表缺字段展示不出来而显示空白时,那么显示当前图表类型的图标 + - refactor(图表): 指标以及维度的显示名称输入框去掉最大长度限制,使用表单的限制为准,限制为 50 + - refactor(图表): 标签的全量显示配置优化及符号地图支持标签的全量显示 + - refactor(图表): 配置表格条件样式时,背景色默认配置为单元格的背景色 #12055 + - refactor(图表): 跳转支持将时间点转为时间范围传递给范围组件 #12600 + - refactor(工作台): 优化模板市场样式 + - refactor(工作台): 历史模版可兼容支持最新特性 #12666 + - refactor(数据源): 优化 SQL Server 过滤 + - refactor(数据源): 优化数据源连接池 #12606 + - refactor(数据源): SQL Server 区分版本 + - refactor(数据源): Excel 数据源 sheet 变化后处理方式调整 #12329 + - refactor(数据集): 优化数据预览条数 + - refactor(X-Pack): 外观配置 label 行高调整为 22px + - refactor(X-Pack): 外观配置-平台设置-radio 间距设置为 24px + - refactor(X-Pack): 优化外观配置-自定义主题色 UI + - refactor(X-Pack): 优化权限配置页面加载机制 + - refactor(X-Pack): 优化社区版 token 刷新和验证机制 + - refactor(X-Pack): 前端同步请求优化合并 + - refactor(X-Pack): 后台导出仪表板并发参数可配置 + - refactor(X-Pack): 外观配置-默认文案跟随网站名称设置 + - refactor(X-Pack): 外观配置-默认登录欢迎语优化 + - refactor(X-Pack): 多 DataEase 节点场景自动设置 Apisix 上游 Host 节点 + - refactor(X-Pack): 社区版本取消 X-Pack 请求 + - refactor(X-Pack): 角色名称长度限制优化为 2-64 + - refactor(X-Pack): 阈值告警-仅组织默认管理员可查看组织下所有告警 + - refactor(X-Pack): 阈值告警-告警记录文案优化 + - refactor(X-Pack): 阈值告警-非默认管理员用户仅能看到自己创建的记录 + - refactor(X-Pack): 集群环境中 redis 缓存清除机制 + - refactor(X-Pack): 调整数据填报表单关联字段校验文字提示 + - refactor(X-Pack): 数据源插件增加标识字段 + - refactor(X-Pack): 调整数据填报下发任务 JOB_GROUP 名称 + - refactor: 新安装时对 Docker 日志大小和数量进行控制 + - refactor: 添加安装脚本的控制参数 + - refactor: 优化安装脚本中的数据库参数配置 #13033 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(仪表板): 修复 CAS 方式登录后预览页 URL 无法访问的问题 + - fix(仪表板): 修复世界地图缺失新加坡区域的问题 + - fix(仪表板): 修复 view 加载报错 + - fix(仪表板): 修复查询组件时间范围过滤异常的问题 + - fix(仪表板): 修复富文本的图标颜色不能跟随系统主题变化的问题 + - fix(仪表板): 修复跳转关联查询组件时偶现查询组件显示内容与过滤内容不符的问题 #12909 + - fix(仪表板): 修复分享链接可以获取到分享者敏感信息的问题 #13135 + - fix(数据大屏): 修复 Tab、分组组件内组件在坐标系里的定位不正确的问题 + - fix(数据大屏): 修复 Tab 组件内组件在坐标系里的定位不正确的问题 #12586 #12898 + - fix(数据大屏): 修复快捷键删除多选区域仅删除最有一个组件的问题 + - fix(数据大屏): 修复数据大屏中 Tab 内组件反复预览可能出现的错位的问题 + - fix(数据大屏): 修复有背景的大屏全屏后屏幕会滑动的问题 #12408 + - fix(数据大屏): 修复组合后的富文本,复制整个组合后无法双击修改富文本内容的问题 #11437 + - fix(数据大屏): 修复部分快捷键批量操作不准确的问题 + - fix(数据大屏): 修复部分操作系统数据大屏编辑时边缘出现滚动条的问题 + - fix(数据大屏): 修复部分缩放比例下,编辑位置区域数字增加出现跳跃的问题 + - fix(数据大屏): 修复鼠标操作图层置顶时的出错的问题 #12593 + - fix(数据大屏): 修复数据大屏中时间组件预览未出现等问题 #12118 + - fix(数据大屏): 修复数据大屏批量锁定失效问题 #12783 + - fix(仪表板、数据大屏): 修复 Tab 内组件小尺寸移动可能未保存的问题 + - fix(仪表板、数据大屏): 修复 DIV 嵌入仪表板设计器,编辑保存后,修改了第三方系统的路由的问题 + - fix(仪表板、数据大屏): 修复 Tab、分组内部组件快捷键移动未保存的问题 + - fix(仪表板、数据大屏): 修复含有分组、Tab 的资源导出模板再导入时出现图片裂开的问题 + - fix(仪表板、数据大屏): 修复导出事件因仪表板或数据大屏特殊命名导致图片文件没有后缀的问题 #12198 + - fix(仪表板、数据大屏): 修复可能出现资源名称的重复的问题 #12670 + - fix(仪表板、数据大屏): 修复 Tab 移入移出因事件销毁异常导致多出空白组件的问题 #12726 + - fix(图表): 修复世界地图提示轮播数据缺失的问题 #12679 + - fix(图表): 修复从其他图表切换到地图或者气泡地图时,缺少地区的选择时,无法显示缩略图的问题 + - fix(图表): 修复修改指标显示名称后,无法显示最值的问题 + - fix(图表): 修复切换图表后,标签位置选项显示位置不正确的问题 + - fix(图表): 修复双轴折线图左轴折线属性调整不生效问题 #12894 + - fix(图表): 修复同环比排序导致无法获取图表数据的问题 #12407 #12594 #12701 + - fix(图表): 修复图表的数据集切换后,数据集中的计算参数未跟随切换,显示的还是之前数据集的计算参数的问题 #12196 + - fix(图表): 修复地图提示轮播时,中国地图无法轮播的问题,以及地图自定义区间样式优化 + - fix(图表): 修复地图渐变色颜色配置不能连续生效的问题 + - fix(图表): 修复堆叠条形图移除指标字段后,保存再拖入其他指标字段无法显示数据的问题 + - fix(图表): 修复指标卡配置数值格式后被重置的问题 #12199 + - fix(图表): 修复无法识别到 SQL Server 数据源的视图的问题 #11887 + - fix(图表): 修复更新图表数据时,所有图表都显示 svg 的问题 + - fix(图表): 修复条件字段删除后,打开配置条件样式时卡页面卡死的问题 + - fix(图表): 修复样式中配色方案不生效的问题 + - fix(图表): 修复桑基图目的维度自定义排序选项展示错误的问题 #12330 + - fix(图表): 修复双轴图未拖入允许为空字段时,无法显示数据的问题 + - fix(图表): 修复表格文本类型设置动态条件样式失效的问题 + - fix(图表): 修复表格样式条件选择动态值时,条件字段被清空的问题 + - fix(图表): 修复透视表带格式导出数据为 0 时单元格实际为空的问题 #12088 + - fix(图表): 修复通过时间过滤数据为空时,依然显示最值的问题 #12074 + - fix(图表): 修复部分组件缩放后偶现字体模糊的问题 #12138 #12098 #12148 + - fix(图表): 修复分组柱状图日期子维度排序无效的问题 + - fix(图表): 富文本的维度与指标字段允许为空 + - fix(图表): 修复带默认过滤参数的图表无法自定义图例颜色的问题 + - fix(图表): 修复日期类型的子维度图例显示不全的问题 + - fix(图表): 修复流向地图修改线条颜色时,地图风格也会改变的问题 #12614 + - fix(图表): 修复表格表头和单元格背景颜色一样时边框颜色深浅不一的问题 #12663 + - fix(图表): 修复表格表头背景透明的情况下打开序号列左侧显示白线的问题 #12242 + - fix(图表): 修复表格铺满之后出现滚动条的问题 #12461 + - fix(图表): 修复透视表树形模式自定义汇总列总计显示错误 #12291 + - fix(图表): 修复透视表没有列维度时自定义行总计显示错误 #12081 + - fix(图表): 面积图多序列去除堆叠 #12124 + - fix(图表): 修复符号地图无法更新数据的问题#12384 + - fix(图表): 修复富文本表格拖动的相关问题 + - fix(图表): 修复富文本超链接不支持跳转当前窗口的问题 + - fix(图表): 修复插件不显示维度和指标的问题 + - fix(图表): 修复地图、气泡地图、符号地图提示显示不全的问题 #12254 + - fix(图表): 修复热力图缺少颜色字段时,图表显示报错的问题 + - fix(图表): 修复跳转设置,当前页面打开外部链接,不会跳转到目标链接,会把当前页面重新刷新一下的问题 #13058 + - fix(图表): 修复部分数据源无法展示动态辅助线的问题 #13114 + - fix(图表): 修复图表数据导出,部分导出数据不是十进制格式的问题 #12946 + - fix(图表): 修复图表提示被遮挡的问题 #12616 + - fix(查询组件): 修复查询组件图表样式问题 + - fix(查询组件): 修复设置时间区间范围,通过直接修改时间数字可绕过时间区间的设置的问题 + - fix(查询组件): 查询组件日期规则和文本数值规则默认提示统一 + - fix(查询组件): 修复查询组件背景图片和背景颜色同时显示的问题 + - fix(查询组件): 修复查询组件设置默认值清除默认值后依然存留数值的问题 + - fix(查询组件): 修复查询组件级联的级联状态不能重置的问题 #12885 + - fix(查询组件): 修复文本下拉组件切换数据集后,再变更为下拉树时无法获取数据问题 #12990 + - fix(数据源): 修复 ClickHouse 日期格式化的问题 + - fix(数据源): 修复 SQL Server 参数化无法过滤中文的问题 + - fix(数据源): 修复 SQL Server 过滤中文无结果的问题 #12759 + - fix(数据源): 修复 date 类型过滤出错的问题 #12912 #12913 + - fix(数据源): 修复 MongoDB BI 表名或字段带中文时无法查询数据表的问题 #12659 + - fix(数据集): 修复对查询重命名没有实时更新的问题 + - fix(数据集): 修复小数类型字段出现科学计数的问题 + - fix(数据导出中心): 修复导出中文名称的数据集出错 + - fix(数据导出中心): 解决文件名乱码的问题 + - fix(数据导出中心): 解决死循环的问题 + - fix(数据导出中心): 修复批量下载 Excel 出现文件丢失的问题 + - fix(数据导出中心): 修复图表名称带"/",导出 Excel 会失败的问题 #12883 + - fix(X-Pack): 修复 Iframe 嵌入式数据集无法复制的问题 #12769 + - fix(X-Pack): 修复数据填报批量上传数据页面有多余的滚动条的问题 + - fix(X-Pack): 修复数据填报下发数据不能正常获取数据的问题 + - fix(X-Pack): 修复数据填报任务下发会卡在等待发送的问题 + - fix(X-Pack): 修复数据填报任务过滤数据下发会有 NPE 错误的问题 + - fix(X-Pack): 修复社区版无法打开仪表板编辑页面的问题 + - fix(X-Pack): 首次导入许可证同步游离资源过滤掉复制未保存的可视化资源 + - fix(X-Pack): 修复外观设置修改相关内容后,在链接跳转过程中仍会显示 DataEase 原生内容的问题 + - fix(X-Pack): 修复用户登录状态时管理员删除该用户后,用户未退出登录的问题 #13084 + - fix(同步管理): MySQL 数据类型自定义 valueOf 方法 #12384 + - fix(同步管理): 修复同步 SQL Server 数据库任务时,Doris 表字段备注被设置为字符串 null 的问题 + - fix(同步管理): 修复通过表名获取字段信息时,未指定数据库参数导致获取不同数据库下相同表名字段信息的问题 + - fix(同步管理): 修复新建任务时无法识别 MySQL 数据类型为 BIGINT UNSIGNED 的问题 + - fix(嵌入式): 修复同一图表多次嵌入参数发送时相互影响的问题 + - fix: 修复静态资源映射代码错误 #12780 + + +### v2.10.1 +2024年9月23日 + +!!! Abstract "新增功能 :star2:" + + - feat(数据源): PostgreSQL 支持展示分区前的表 #12016 + - feat(仪表板): 修复 Tab 中的组件在编辑的时候有空隙,在预览界面无空隙问题 #12132 + - feat(仪表板): 增加分享相关 API 接口文档 #11855 + - feat(仪表板、数据大屏): Tab 组件支持整个 Tab 页的内容复制 #10828 + - feat(仪表板、数据大屏): 跳转支持弹窗方式打开 + - feat(仪表板、数据大屏): 支持浏览器整体刷新 #11378 + - feat(仪表板、数据大屏): 外部参数必传校验、支持默认值 #11501 + - feat(图表): 分组柱线组合图子类别增加排序 + - feat(图表): 同环比增加具体数值选项 + - feat(图表): 堆叠柱状图支持显示总计 #10895 + - feat(图表): 支持双线组合图 + - feat(图表): 对称条形图、进度条支持圆角效果 #11542 + - feat(数据大屏): 数据大屏预览支持下载图表数据等 + - feat(嵌入式): 嵌入式支持多仪表板嵌入 + - feat(X-Pack): 数据填报支持表单数据下载 + - feat(X-Pack): 定时报告增加水印设置 + - feat(X-Pack): 操作日志中记录数据填报的操作 + - feat(X-Pack): 支持 OAuth2 认证 #11745 + - feat(X-Pack): 用户列表-过滤条件增加用户来源字段 + +!!! Abstract "功能优化 :sunflower:" + + - refactor(数据源): 优化数据源校验逻辑 + - refactor(数据集): 图表获取数据集方式优化 + - refactor(数据集): 数据集预览界面数据加载速度 #12099 + - refactor(仪表板): 公共链接视图明细导出优化 #11487 + - refactor(仪表板、数据大屏): 修改跳转非法 URL 告警信息 + - refactor(仪表板、数据大屏): 删除组件分享事件 + - refactor(仪表板、数据大屏): 资源名称长度校验规则修改 + - refactor(仪表板、数据大屏): 图片上传验证优化 + - refactor(图表): 减少重复渲染 + - refactor(图表): 去除图表数据编辑区域的横向滚动条 + - refactor(图表): 禁用图表数据编辑区域的横向滚动手势 + - refactor(工作台): 优化从模板市场获取模版方式,支持模板市场记录下载数量,修复模板市场中的部分模板使用时报“解析错误” #12039 + - refactor(数据大屏): 组件组合后图层列表默认展开组合明细 + - refactor(数据大屏): 调整数据大屏组件位置调整设置频度为 1 #11549 + - refactor(查询组件): 日期查询组件动态默认值根据时间粒度自动调整 #11878 + - refactor(X-Pack): 优化阈值告警的时间字段规则 + - refactor: 登录页在页面组件加载完成前显示加载动画 + - refactor: 删除无效 SVG 文件 + - refactor: 设置线程池并发数量,防止抢占过多系统资源 + + +!!! Abstract "问题修复 :palm_tree:" + + - fix(仪表板): 修复图标 hover 样式,hover 背景和 icon 的上下左右间距为 4px,圆角为 4px + - fix(仪表板): 修复钉钉内打开分享链接,页面 Title 显示不正确的问题 + - fix(图表): 修复图表复制字段无法保存的问题 + - fix(图表): 修复汇总表以及透视表的同环比指标排序无效的问题 + - fix(图表): 修复汇总表以及透视表的同环比,通过组件过滤器过滤数据时,先过滤数据再进行同环比的问题 + - fix(图表): 修复自定义图例颜色无法保存的问题 #11820 + - fix(图表): 修复表格关闭表头之后还会显示一条表头单元格颜色横线的问题 + - fix(图表): 修复部分场景下自定义图例颜色选框无法触发 + - fix(仪表板、数据大屏): 修复日期过滤存在时区差异的问题 + - fix(数据大屏): 修复使用位置编辑按钮移动位置时,保存后的分组和 Tab 组件位置可能被还原问题 + - fix(数据大屏): 修复多选移入大屏会出错问题 + - fix(数据大屏): 修复组合图开启 3d 后解除组合,后续创建组件持续开启 3d 问题 + - fix(数据大屏): 修复部分图片点击时控制台会报错问题 + - fix(数据源): 修复 H2 漏洞 + - fix(数据源): 修复创建 SQLServer 数据源时不输入连接字符串,提示异常后持续加载,无法恢复的问题 + - fix(数据源): 修复数据类型判断错误 + - fix(数据集): 修复数据集保存按钮可以反复点击,导致反复加载数据的问题 #12156 + - fix(数据集): 修复数据集创建自定义 SQL 节点时,字段参考按钮被遮挡的问题 #12237 + - fix(数据集): 修复导出数据集限制条数失效 + - fix(查询组件): 查询组件中 “选择关联图表及字段” 的“维度”和“参数”混淆,选择“维度”后显示的仍然是“参数”的过滤数据 #12236 + - fix(X-Pack): 修复数据填报-待填报任务排序错误 + - fix(X-Pack): 修复数据填报-批量上传表格预览可能显示白色文字的问题 + - fix(X-Pack): 修复数据填报分页列表多选数据后,多选操作界面展示不正确问题 + - fix(X-Pack): 修复查询组件参数的默认值丢失问题 + - fix(X-Pack): 修复定时报告导出双轴图数据时报错的问题 + - fix(X-Pack): 修复密码有效期机制引发登录无法跳转到主页的问题 + - fix(X-Pack): 修复阈值告警可能存在的 NPE + - fix(X-Pack): 修复阈值告警图表数据异常导致的NPE + - fix: 修复 SVG 上传时内容被篡改引起的 XXE 注入问题 + - fix: 移除 MySQL 配置文件中重复的参数 #12117 + - fix: 修复导出数据集数据时出现的空指针 + - fix: 修复部分接口请求参数不准确 + - fix: 修复可能的内存泄露问题,确保 IO 资源正确关闭,改用 ProtectionDomain 进行资源加载 + - fix: fixed Schema enable & phone & phonePrefix + - fix(substitute): ConditionalOnMissingBean value mistake + +### v2.10.0 +2024年9月5日 + +!!! Abstract "新增功能 :star2:" + + - feat(X-Pack): 新增数据填报模块 + - feat(X-Pack): 新增阈值告警模块 #10950 + - feat(X-Pack): 新增血缘分析模块 + - feat(X-Pack): 外观配置支持隐藏 Copilot 按钮 #11458 #11605 + - feat(X-Pack): 嵌入式 token 增加传参加密支持 + - feat(X-Pack): 嵌入式 token 增加有效期机制 + - feat(X-Pack): 默认组织管理员可以查看组织下的所有日志 #10897 + - feat(X-Pack): 支持移动端外观的配置 #11096 + - feat(仪表板): Tab 组件支持轮播 #9566 #10275 + - feat(仪表板): 支持导出图表原始明细数据 #9671 + - feat(仪表板): 明细数据和图表放大支持水印覆盖,放大导出图片支持连同水印一起导出 #10798 + - feat(图表): 区间条形图选择时间范围后,横轴格式跟随指标的日期显示设置 + - feat(图表): 地图、气泡地图、符号地图的提示支持轮播展示 + - feat(图表): 堆叠组合图支持根据堆叠项进行排序 #10957 + - feat(图表): 新增矩阵热力图 #10689 + - feat(图表): 明细表支持显示图片 #10621 #11566 + - feat(图表): 图表过滤器支持设置动态时间 #10386 + - feat(图表): 透视表支持自定义汇总 #10997 + - feat(图表): K 线图支持配置图例的文字样式,包括颜色及大小 + - feat(图表): 指标卡支持显示同环比数据 #10532 + - feat(图表): 漏斗图支持展示转化率 #9194 + - feat(图表): 词云图支持自定义数据区间和字体大小 #9722 + - feat(数据大屏): 数据大屏的图片组件支持背景设置 #11582 + - feat(数据大屏): 支持弹窗区查询按钮的显示控制 + - feat(数据大屏): 数据大屏支持 Tab 组件#9449 + - feat(数据大屏): 数据大屏支持不同伸缩方式设置 + - feat(数据大屏): 组件支持 3D 方向设置 #10607 + - feat(仪表板、数据大屏): 复用组件主体适配组件伸缩方式优化,支持原尺寸 #10952 #11170 + - feat(仪表板、数据大屏): 外部参数优化,支持自定义参数设置等 #9619 + - feat(仪表板、数据大屏): 富文本图表空值处理支持自定义 + - feat(仪表板、数据大屏): 图片、富文本、指标卡、图形、图标组件支持事件设置 #10960 #10812 + - feat(仪表板、数据大屏): 组件支持传统边框 + - feat(仪表板、数据大屏): 富文本、指标卡支持跳转 #10996 + - feat(数据集): SQL 片段支持注释 #11546 + - feat(数据集): 数据集计算字段支持设置参数 + - feat(数据集): 支持数据集数据的导出 #11420 + - feat(数据集): SQL 参数支持 having 语法 + - feat(数据集): 支持解析多重小括号的 SQL + - feat(数据源): API 数据源支持时间参数 #8378 + - feat(查询组件): 下拉树多选的情况下,增加「清空」和「确定」按钮 + - feat(查询组件): 查询组件中的日期范围组件支持常用区间值选择 #11283 #11379 + - feat(系统设置): 新增字体管理模块 + +!!! Abstract "功能优化 :sunflower:" + + - refactor(X-Pack): 优化系统设置-邮件设置表单交互 + - refactor(X-Pack): 定时报告任务管理点击任务名称打开详情页面 + - refactor(X-Pack): 定时报告接入企业微信和钉钉消息 + - refactor(X-Pack): 定时报告选择接收人搜索后全选选中全部数据 + - refactor(X-Pack): 更新子模块索引 + - refactor(X-Pack): 禁用的用户不参与用户数量计数 + - refactor(X-Pack): 简化动态路径场景下 CAS 配置流程 + - refactor(X-Pack): 嵌入式场景下使浏览器 title 无效,使用第三方设置 + - refactor(X-Pack): 定时报告任务名称 hover 样式去掉下划线 + - refactor(X-Pack): 优化登录页面二维码容器边框颜色 + - refactor(仪表板): 优化仪表板画布,画布设计时底部留存一定空间便于组件布局 + - refactor(仪表板): 外部组件移入 Tab 时放入最底端,防止影响之前布局 #11147 + - refactor(图表): AntV 图表加载优化 #11098 + - refactor(图表): 双轴图图例优化 + - refactor(图表): 增加图表联动、跳转快速删除配置功能 + - refactor(图表): 表格按列配置最大宽度限制 0-200 + - refactor(图表): 表格表头排序字体大小调整为 14px + - refactor(图表): 气泡地图的触发事件优化,由原来的区域触发改为气泡触发 + - refactor(图表): 流向地图修改线条默认颜色 + - refactor(图表): 流向地图标注文本及标注点样式调整 + - refactor(图表): 流向地图添加线条粗细注释图标及标注配置文案修改 + - refactor(图表): 漏斗图遇到空值时,计算结果显示横杠 + - refactor(图表): 表格隐藏表头之后去除白线 #11550 + - refactor(工作台): 模板限制大小为 35MB,同时前端增加大小校验 + - refactor(数据大屏): 优化 Tab 内部画布,防止内部组件变形比例不协调问题 + - refactor(数据大屏): 优化全屏退出逻辑,解决部分图表因销毁异常导致无法退出全屏的问题 + - refactor(数据大屏): 优化分组刷新 + - refactor(数据大屏): 优化大屏拖拽逻辑和样式 + - refactor(数据大屏): 优化批量上移下移置顶置底等批操作位移逻辑 + - refactor(数据大屏): 优化数据大屏 Tab 内组件的图层调整逻辑 + - refactor(数据大屏): 图层管理移动优化 + - refactor(数据大屏): 外部参数优化,支持设置 Tab 和分组内的查询组件 + - refactor(数据大屏): 多选支持选择分组 + - refactor(数据大屏): 拖拽定位组件样式修改 + - refactor(数据大屏): 明细表分页,公共样式设置等样式调整 + - refactor(仪表板、数据大屏): 优化跳转图表过滤逻辑,禁用无数据集图表 + - refactor(仪表板、数据大屏): 图表导出增加空数据提示 + - refactor(仪表板、数据大屏): 外部参数配置优化 + - refactor(仪表板、数据大屏): 富文本数据集清理优化,查询组件禁用未选数据集的组件 #11324 + - refactor(仪表板、数据大屏): Tab 组件优化 #9449 + - refactor(仪表板、数据大屏): 优化 Tab 标题点击事件,点击标题不计入批量选择 + - refactor(仪表板、数据大屏): 图片上传类型和大小判断优化 + - refactor(仪表板、数据大屏): 优化刷新时间样式 + - refactor(仪表板、数据大屏): 子画布中组件删除逻辑优化,防止删除子画布本身 + - refactor(数据集): 计算字段更换图标 + - refactor(数据源): 优化 Calcite 的 null 值排序规则 + - refactor(数据源): 优化插件加载展示 + - refactor(数据源): 升级 Calcite 依赖,支持低版本 SQL Server 数据源 + - refactor(系统设置): 优化平台设置按钮之间间距 + - refactor: 改善 Dockerfile 创建插件存储的命令可读性 + - refactor: 调整 MySQL 镜像为 8.4.0-oraclelinux8 + - refactor: 调整 SQL 日志级别为 debug #11315 + - refactor: 优化 token 过期提示 #11577 + - refactor: 优化控制台日志 + + +!!! Abstract "问题修复 :palm_tree:" + + - fix(X-Pack): 修复重启服务会重置 APISIX 动态路径的问题 + - fix(X-Pack): 修复仪表板加载时间过长导致 token 失效而退出登录的问题 #11267 + - fix(X-Pack): 修复日志列表模糊搜索结果不准确的问题 + - fix(X-Pack): 修复登录页面中,二维码和 LDAP 选项交互错误的问题 + - fix(X-Pack): 修复社区版本启动有 X-Pack 报错信息的问题 #11317 + - fix(X-Pack): 修复被禁用的用户依然可以使用嵌入式的问题 + - fix(X-Pack): 修复同步管理中,SQL Server 数据同步报错的问题 + - fix(X-Pack): 调整同步管理中 SQL 验证规则,不限制特殊符号,仅验证是否包含非法操作 + - fix(仪表板): 修复编辑时追加组件到仪表板底部,但水印覆盖范围没有追加的问题 + - fix(仪表板): 修复批量设置无法选中 tab 组件内组件的问题 + - fix(仪表板): 修复查询组件设置默认值和富文本一起放在 tab 组件中,预览时查询条件不生效的问题 #11382 + - fix(仪表板): 修复双轴图基础设置-设置颜色时色域偏移至页面左上角的问题 + - fix(仪表板): 修复图表-导出-点击「数据导出中心」无响应,右侧未弹出「数据导出中心」的问题 + - fix(仪表板): 修复富文本的图标颜色不能跟随系统主题变化的问题 + - fix(仪表板): 修复时间过滤规则动态时间设置可以输入小数的问题 + - fix(仪表板): 修复时间过滤规则显示为文本下拉的问题 + - fix(仪表板): 修复移动端查看公共链接时,ticket 无效的问题 + - fix(仪表板): 修复过滤组件-查询条件名称过长-hover提示未显示完整的问题 + - fix(仪表板、数据大屏): 优化深度复制,修复含有自定义动态过滤时间的图表复制后,首次刷新报错的问题 + - fix(仪表板、数据大屏): 修复因存在无数据集组件而导致数据大屏或者仪表板前端无法导出应用的问题 + - fix(仪表板、数据大屏): 修复应用模板创建应用后,数据集计算字段无效的问题 + - fix(仪表板、数据大屏): 应用提示文案修改 + - fix(图表): 修复 SQL Server 明细表排序报错的问题 + - fix(图表): 修复从分组柱线图切换堆叠柱线组合图后,堆叠项排序选项不正确的问题 + - fix(图表): 修复分组和堆叠类型图表下钻错误的问题 + - fix(图表): 修复图表复制字段无法使用汇总方式的问题 + - fix(图表): 修复堆叠柱线组合图下钻后,横轴发生错位的问题 #11587 + - fix(图表): 修复复用时部分图表不显示的问题 + - fix(图表): 修复新建堆叠柱线组合图右轴自定义颜色与图表显示颜色不一致的问题 + - fix(图表): 修复明细表分页器在单页情况下,常规分页器没有展示,精简分页器却展示的问题 + - fix(图表): 修复明细表分页逻辑错误的问题 + - fix(图表): 修复最值 ID 重复的问题 + - fix(图表): 修复最值无法显示的问题,并去空值去最小值,以及最值标注添加重叠显隐 + - fix(图表): 修复柱线组合图左轴无法根据维度进行自定义颜色的问题 + - fix(图表): 修复模板应用数据集后,维度指标栏中字段名称一致,却依然有红色提示的问题 + - fix(图表): 修复放大图表后点击关闭,图表最值消失的问题 + - fix(图表): 修复流向地图新加的字段无法保存的问题 + - fix(图表): 修复移除指标及维度后重新添加无法显示图表内容的问题 + - fix(图表): 修复跨源情况下,关联日期字段出现的错误 #11339 + - fix(图表): 处理最值在图表数据量大的情况下出现的卡顿的问题 + - fix(图表): 修复表格背景颜色错误的问题 #11652 + - fix(图表): 处理辅助线提示框触发区域颜色不明显的问题 + - fix(图表):修复标签编辑中刷新后无法获取上次编辑内容的问题 + - fix(图表):双轴类型图表无法根据维度进行自定义颜色的问题 + - fix(图表): 修复 K 线图未按照日期维度配置的格式进行显示的问题 #11354 + - fix(图表): 修复双轴类型图表中,折线图开启缩略轴后切换组合图,组合图也会有缩略轴的问题 + - fix(图表): 修复地图空值处理隐藏空值时,图表无法正常显示的问题 + - fix(图表): 修复基础折线图子类别自定义排序无效的问题 + - fix(图表): 修复基础折线图自定义排序后,图例个数超过 9 个时,图例 marker 未着色的问题 + - fix(图表): 修复新建基础折线图时,无法显示内容的问题 + - fix(图表): 修复对称条形图无法配置右轴数据标签样式的问题 + - fix(图表): 修复玫瑰环形图、矩形树图开启提示后导致图表无法显示的问题 + - fix(图表): 修复从符号地图切换图表类型时,前端报错的问题,以及自定义提示无法换行的问题 + - fix(图表): 修复符号地图气泡大小字段配置汇总方式无效的问题 + - fix(图表): 修复符号地图查看数据时,总是会显示记录数的问题 + - fix(嵌入式): 修复 Iframe 方式嵌入时,图表预览失败的问题 + - fix(嵌入式): 修复嵌入式版本中,图表的放大、查看数据功能无法使用的问题 + - fix(嵌入式): 修复嵌入式由于无法访问数据导出中心,无法导出图表数据的问题 #10529 + - fix(工作台): 修复 hover 卡片时缺少投影的问题 + - fix(工作台): 修复导出的模板再导入到模板管理后无法使用的问题 + - fix(数据大屏): 修复分组未参与批量设置问题 + - fix(数据大屏): 修复数据大屏预览后,重新进入编辑界面导致的 Tab 时钟不显示等问题 + - fix(数据大屏): 修复弹窗区域禁用时,外部参数依然可以使弹窗区域过滤条件生效问题 + - fix(数据大屏): 修复弹窗区设置过滤规则默认参数,随后将规则作为外部参数传递图表时可能会发起两次请求的问题 + - fix(数据大屏): 修复部分表单输入数值后回车键导致页面刷新,路由发生改变问题 + - fix(数据大屏): 修复新建数据大屏并创建组件后,改变大屏大小导致组件大小发生变化问题 + - fix(数据大屏): 修复数据大屏空白处无法粘贴组件问题 #11438 + - fix(数据大屏、仪表板): 修复 Tab 内图表不支持自动刷新问题 + - fix(数据大屏、仪表板): 修复 Tab 页初次预览不显示问题 + - fix(数据大屏、仪表板): 修复 Tab 组件轮播时间输入回车后页面会刷新的问题 + - fix(数据大屏、仪表板): 修复导出应用没有包含数据集计算字段问题 #11816 + - fix(数据大屏、仪表板): 修复嵌入式仪表板设置多个外部参数时,过滤条件叠加造成的过滤结果不准确问题 + - fix(数据大屏、仪表板): 修复画布缩放偏离较大时,Tab 表头非激活字体和预设值偏离较大问题 + - fix(数据大屏、仪表板): 修改部分批量设置属性失效问题 + - fix(数据源): 在不同组织根目录创建资源不允许重名 + - fix(数据源): 修复 Oracle 数据源创建数据集提示 no match found 的问题 + - fix(数据源): 修复 Doris 数据源获取字段失败的问题 + - fix(数据源): 修复 Excel 数据源字段类型识别错误问题 + - fix(数据源): 修复 API 数据源参数不显示的问题 + - fix(数据源): 修复低版本的 ClickHouse 无法获取表的问题 + - fix(数据源): 数据源加载 schema 时增加加载效果 #11877 + - fix(数据源): 修复 StarRocks 数据源无法显示表字段备注的问题 #11433 + - fix(数据集): 修复 Oracle 获取数据为空的问题 + - fix(数据集): 修复 SQL 片段分号结尾后有空格、换行符报错的问题 + - fix(数据集): 修复 SQL Server 2019 使用自建 schema 时,无法读取数据的问题 #11202 + - fix(数据集): 修复 ClickHouse 时间格式化异常的问题 #11763 + - fix(数据集): 修复已有新建计算字段的数据集进行关联,字段全选后,刷新数据会报错的问题 #11263 + - fix(数据集): 修复数据集导出时,SQL 的拼接错误问题 + - fix(数据集): 修复数值字段超过 18 位时,数据集查询异常的问题 #9186 + - fix(查询组件): 修复移动端日期范围组件查询异常的问题 #11756 + - fix(查询组件): 修复查询组件显示错位的问题 #11574 + - fix(系统设置): 修复移动端的登录按钮颜色显示错误 + - fix(系统设置): 修复自定义主题颜色没有同步的问题 #11340 + - fix: 修复 imgUtils 中 downloadCanvas 报错 + + +### v2.9.0 +2024年8月1日 + +!!! Abstract "新增功能 :star2:" + + - feat(数据大屏、仪表板): 新增应用导出、导入功能 + - feat(数据大屏、仪表板): 图片组件支持不同的组件适应方式 #10168 + - feat(数据大屏、仪表板): 仪表板刷新支持富文本内容和跑马灯(仅数据大屏)内容刷新 + - feat(数据大屏): 新增弹窗区,支持隐藏查询组件 #9069 + - feat(数据大屏): 支持批量设置图表样式 #6728 + - feat(数据大屏): 支持数据大屏切换图表类型 #9601 + - feat(图表): 地图、气泡地图的提示支持显示其他指标字段 #9628 + - feat(图表): 新增最值显示(基础折线图、面积图、基础柱状图、分组柱状图等) + - feat(图表): 支持按图例设置颜色 #10309 + - feat(图表): 表格字体支持设置加粗和斜体 #9077 + - feat(图表): 表格支持单独控制表头和单元格的横纵边框显隐 #10609 + - feat(图表): 表格表头、单元格背景颜色、斑马纹支持单独设置透明度 #10308 + - feat(图表): 表格鼠标悬停暂停滚动 #9106 #9750 #10502 + - feat(图表): 汇总表支持显示总计 #9589 + - feat(图表): 气泡地图新增气泡水波纹动画配置 #10872 + - feat(图表): 流向地图新增起止点名称配置 #10263 + - feat(图表): 流向地图支持线条字段设置 #10264 + - feat(查询组件): 下拉组件的下拉选择展示支持全部和默认两种选择 #10770 + - feat(查询组件): 查询 button 允许配置显示或者不显示 + - feat(查询组件): 查询组件允许配置组合里的图表 #10247 + - feat(数据源): 数据源支持 SSH 隧道连接 #10445 + - feat(数据源): 新增 API 数据源请求头自定义前缀的功能 #11010 + - feat(数据源): 数据源支持复制 #10623 + - feat(Copilot): 新增 DataEase AI Copilot 功能 + - feat(嵌入式): 移动端访问第三方系统时展示移动端布局的功能 + - feat(嵌入式): DIV 嵌入方式下数据源树和数据集树可以新建资源的功能 + - feat(嵌入式): DIV 嵌入方式下仪表板和数据大屏的新建和编辑页面新增返回按钮 + - feat(X-Pack): 系统变量支持同一个变量名,变量值可以多选 #10190 #10823 #10956 + - feat(X-Pack): 权限配置系统内置角色可以配置数据集的行列权限 + - feat(X-Pack): 增加后台导出仪表板、大屏图片 API 接口 + - feat(X-Pack): 增加默认登录方式配置功能#10614 + - feat(X-Pack): 定时报告增加失败重试机制 #10171 + - feat(X-Pack): 新增 Excel 批量导入第三方平台用户功能 + - feat(X-Pack): 新增 LDAP 认证 + - feat(X-Pack): 增加 API 限流机制 + + +!!! Abstract "功能优化 :sunflower:" + + - refactor(仪表板): 优化仪表板中的明细表下钻功能,只有在当前下钻路径的字段上才会出现下钻选项 #9094 + - refactor(仪表板): 支持 Tab 组件中过滤组件可以过滤 Tab 组件外的图表 + - refactor(数据大屏): 优化过滤组件右键菜单显示位置,防止过滤组件右键菜单偏移太多的问题 + - refactor(图表): 仪表盘和水波图最大值默认设置为 1 #10479 + - refactor(图表): 优化富文本字体大小选择 + - refactor(图表): 优化位于钻取的维度也可以选择联动#10330 + - refactor(图表): 去除地名映射空白时的图标 + - refactor(图表): 优化明细表、汇总表多事件弹框,解决未设置联动或跳转字段依然可以有全部事件弹框问题 #10832 + - refactor(图表): 标签字体大小统一优化为 12 + - refactor(图表): 优化标签跟随主体自动适配 + - refactor(图表): 汇总表汇总行字体使用单元格对齐方式 + - refactor(图表): 表格跳转优化,支持明细表和汇总表点击维度和指标使用不同的跳转逻辑 + - refactor(图表): 辅助线格式化提示 #10416 + - refactor(图表): 优化透视表树形模式为默认折叠 #8509 #10458 + - refactor(图表): 图表展示的屏幕自适应 #9726 + - refactor(数据集): 优化多角色多条行权限之间逻辑,由交集改为取并集 + - style(图表): 符号地图根据数据自适应缩放 + - style(图表): 优化图表数据异常的提示 + - style(图表): 去掉热力地图未用到的初始化配置项 + - perf(X-Pack): 优化 OIDC 配置项 Realm 为非必填 #10641 + - perf(X-Pack): 优化删除用户会有两条日志记录 + - perf(X-Pack): 兼容嵌入式应用域名带 "/" + - perf(X-Pack): 优化导航栏组织切换器加载慢的问题 + - perf(X-Pack): 优化默认登录方式,在默认非普通登录方式场景下增加 admin-login 路由,并且不展示未开启的平台 + - refactor: APISIX 端口支持可配 + - refactor: 数据库初始密码支持特殊字符 + + +!!! Abstract "问题修复 :palm_tree:" + + - fix(数据大屏、仪表板): 修复仪表板和数据大屏在外部跳转时原页面报错的问题 #10852 + - fix(仪表板): 修复因在编辑界面点击撤销或重做导致的 Tab 页布局变化的问题 + - fix(仪表板): 修复新建仪表板并将图表添加至 Tab 组件中提示异常的问题 + - fix(仪表板): 修复 Ta b页内组件批量样式修改,部分设置不生效的问题 #10366 + - fix(仪表板): 修复 Tab 页制作的仪表板,在移动端的显示问题 #10430 + - fix(仪表板): 修复公共链接修改 url 参数回车无效的问题 #10778 + - fix(仪表板): 修复堆叠组合图自定义排序拖动异常的问题 + - fix(仪表板): 修复外部参数跳转设置保存后,仪表板保存按钮未处于激活状态的问题 + - fix(仪表板): 修复导出结束时状态没有及时变更的问题 + - fix(数据大屏): 修复大屏预览右侧有部分空白的问题 + - fix(数据大屏): 修复导出图片时存在滚动条的问题 + - fix(数据大屏): 修复视图复用勾选要复用的视图后取消勾选,点击确认后取消勾选的视图依然被复用了的问题 + - fix(数据大屏): 修复部分浏览器预览存在滚动条的问题 + - fix(数据大屏): 修复大屏联动有时无法清除、双向联动相互影响等问题 + - fix(数据大屏): 修复跑马灯文字中出现空格或特殊字符时会出现转义字符的问题 #10597 + - fix(图表): 修复透视表计数字段汇总计算错误的问题 #10499 + - fix(图表): 修复世界地图标签未显示的问题 #9890 #10282 + - fix(图表): 修复图表添加新的字段后,存量图表在将字段拖入时报错的问题 + - fix(图表): 修复富文本初始化可能未使用默认参数的问题 #11047 #11034 #10912 + - fix(图表): 修复条形图横轴轴值设置不生效的问题 + - fix(图表): 修复条形图辅助线导致渲染失败的问题 + - fix(图表): 修复对称条形图标签位置默认值不正确的问题 + - fix(图表): 修复对称条形图“纵轴”表述不正确,且字体颜色和大小设置无效的问题 #10837 + - fix(图表): 修复对称条形图的横轴标签颜色没办法修改、右侧标签修改不生效的问题 #11020 + - fix(图表): 修复表格滚动时拖动变形的问题 #10686 + - fix(图表): 修复表格表头为字符串类型字段时的排序错误的问题 + - fix(图表): 修复在线地图的 key 未刷新导致地图不能正常显示的问题 #10219 #10974 + - fix(图表): 修复地图图表切换后地名映射列表未更新的问题 + - fix(图表): 修复透视表切换时汇总计算配置未刷新的问题 #11024 + - fix(图表): 修复基础折线图添加子类别维度后,无法显示标签的问题 + - fix(图表): 修改模板中的透视表无法渲染的问题 + - fix(图表): 修复折线图标签字体配置无效的问题 + - fix(图表): 修复汇总表布尔类型字段汇总计算错误的问题 + - fix(图表): 修复透视表排序字段选择失效的问题 + - fix(图表): 修复符号地图无法获取计算字段数据的问题 + - fix(图表): 修复分组柱状图下钻后变成单维,且指标值异常的问题 #10875 + - fix(数据集): 修复数据集创建时,左侧数据表栏宽度调整无效的问题 #10844 + - fix(数据源): 修复 API 数据源接口参数抽屉标题不正确的问题 + - fix(数据源): 修复 MongoDB 数据源报错的问题 #10953 + - fix(数据源): 修复新建数据源,在配置信息页点击上一步返回到选择数据源,没有记住数据源类型选择状态,进入下一步报错的问题 + - fix(数据源): 修复 PostgreSQL 数据源创建数据集时,获取的表字段多了一个导致刷新数据失败的问题 + - fix(导出中心): 修复嵌入式导出数据失败的问题 + - fix(嵌入式): 修复数据集树进入新建数据集页面无法退出创建页面的问题 + - fix(嵌入式): 修复仪表板预览时被纵向压缩无法正确展示的问题 + - fix(嵌入式): 修复嵌入式页面中导出数据文件为空的问题 + - fix(数据同步): 修复创建任务时,输入已存在的目标表,提示失败,第二次却能成功的问题,以及数据源状态更新逻辑优化 + - fix(查询组件): 修复查询组件编辑完成后,只刷新了查询组件,没有根据查询组件的选项值重新触发一次图表数据请求的问题 + - fix(查询组件): 修复文本搜索组件,设置默认值同时设置必填,不能识别默认值报错无选项值的问题 #10853 + - fix(查询组件): 修复下拉树层级可以选择重复字段的问题 + - fix(查询组件): 修复仪表板移动端布局中,日期筛选组件无法正常使用的问题 #11042 + - fix(查询组件): 修复文本搜索条件设置为必填项后,输入搜索内容依然提示需要设置选项值的问题 + - fix(查询组件): 修复图表所使用的数据集不同, 无法展示配置项的问题 #10821 + - fix(查询组件): 修复筛选组件的查询条件配置一个和图表所使用的不同的数据集时,保存完仪表板再进入会丢失的问题 #11048 + - fix(查询组件): 修复设置固定默认值未生效,大屏编辑页面编辑过滤组件默认值后,点击预览后默认值被清空的问题 + - fix(查询组件): 修复过滤组件没有查询按钮情况下无法触发清空和重置的问题 + - fix(移动端): 修复移动端编辑时文字缩放过小的问题 #10817 + - fix(移动端): 修复移动端设置视图设置了新开页面跳转,点击进行跳转时新页面打不开的问题 + - fix(X-Pack): 修复定时报告收件人模糊搜索无法使用的问题 + - fix(X-Pack): 修复定时报告导出 Excel 包含 IP 地址最后的 0 字符串被忽略的问题 + - fix(X-Pack): 修复设置动态访问路径后 API 页面无法查看的问题 #10975 + - fix(X-Pack): 修复配置动态 url 前缀的场景下无法进行 CAS/OIDC 认证的问题 + - fix(X-Pack): 修复系统变量动态设置权限不生效的问题 #10784 + + +### v2.8.1 +2024年7月17日 + +!!! Abstract "新增功能 :star2:" + + - feat(数据大屏): 数据大屏支持弹窗区 + + +!!! Abstract "问题修复 :palm_tree:" + + - fix(查询组件): 修复查询条件设置时不支持跨数据源字段选择的问题 #10821 + - fix(数据大屏): 修复大屏预览右侧有部分空白的问题 + - fix(数据大屏): 修复导出图片时存在滚动条的问题 + - fix(数据大屏、仪表板): 修复导出结束时状态没有及时变更的问题 + +### v2.8.0 +2024年7月4日 + +!!! Abstract "新增功能 :star2:" + + - feat(X-Pack): CAS 配置增加回调域名设置 + - feat(X-Pack): DataEase 启动时自动检测 APISIX 配置并初始化 + - feat(X-Pack): 新增系统设置-插件管理模块 + - feat(X-Pack): 权限配置-用户增加账号提示 + - feat(X-Pack): 定时报告新增查询组件默认值设置支持 + - feat(仪表板): Tab 组件支持排序 + - feat(仪表板): 仪表板分享功能增加 Ticket 设置 #9835 + - feat(仪表板): 仪表板联动支持区分同数据集图表,并支持同数据集图表一键全选及自动匹配字段 + - feat(仪表板): 新增批量获取数据集字段列表接口 + - feat(仪表板): 联动维度支持点击后高亮显示 #9848 + - feat(仪表板): 时间字段支持跳转和联动 + - feat(仪表板、数据大屏): 支持一键全屏预览 + - feat(仪表板、数据大屏): 支持背景上传 SVG 动图 #7169 + - feat(数据大屏): 数据大屏增加刻度尺指示功能 + - feat(数据大屏): 数据大屏支持复用组件功能 #9545 + - feat(数据大屏): 数据大屏支持外部参数设置 #9107 #9246 + - feat(查询组件): 新增下拉树组件 + - feat(查询组件): 支持级联组件 + - feat(查询组件): 日期筛选支持周,月等快捷查询 #7310 + - feat(图表): 图表插件化 + - feat(图表): 图表中支持复制字段 + - feat(图表): 拆分双轴图左右轴数据 + - feat(图表): 新增分组柱线组合图 + - feat(图表): 新增堆叠柱线组合图 + - feat(图表): 新增热力图 + - feat(图表): 新增符号地图 + - feat(图表): 新增 K 线图 + - feat(图表): 明细表新增分页器风格设置 + - feat(图表): 柱形图/条形图支持设置柱形为圆角 + - feat(图表): 地图颜色支持设置渐变色及自定义渐变色 + - feat(图表): 地图支持自定义图例区间及图例个数 #9493 #10164 + - feat(仪表板、数据大屏): 富文本支持阈值设置 #9371 #9627 + - feat(数据集): 数据集支持全连接 + - feat(数据集): 数据集数据预览列表支持调整宽度 #10145 #9769 + - feat(数据源): API 数据源支持参数提取 #9189 + - feat: dectl 命令支持直接显示帮助信息 + - feat: 数据导出中心支持查看失败原因 + - feat(移动端): 支持移动端的跳转和联动功能 #9828 + +!!! Abstract "功能优化 :sunflower:" + + - chore(X-Pack): X-Pack 前端默认使用分离式打包 + - perf(X-Pack): 嵌入式版本数据集限制的问题优化 #10459 + - refactor(X-Pack): 处理 APISIX key 中可能包含的无法使用的字符 + - refactor(X-Pack): 修改 APISIX 的路由初始化方式 + - style(X-Pack): 优化外观配置-头部标题间距样式 + - style(X-Pack): 外观配置-radio 选项去掉白色背景 + - refactor(X-Pack): 优化仪表板大屏定时报告预览 + - refactor(X-Pack): 支持行列权限选择默认角色 + - refactor(仪表板): 优化仪表板排序事件接收 + - refactor(仪表板): 导出权限中增加预览图表导出的控制 #9836 + - refactor(仪表板、数据大屏): 优化全屏组件,解决因局部全屏导致的查询组件下拉框,提示等组件无法显示的问题 + - refactor(仪表板、数据大屏): 调整功能菜单顺序 + - refactor(仪表板): 优化初始化矩阵排序,解决仪表板保存后再次编辑可能出现的图表位置错乱的问题 + - refactor(仪表板): 编辑界面组件改为跟随窗口大小缩放的模式 #10397 + - refactor(仪表板): 优化仪表板缩放模式,修改为宽度和高度缩放的较小值,解决仪表板屏幕浏览器高度尺寸变小时,图表高度自适应导致图表内容展示不全的问题 + - refactor(仪表板): 水印等样式调整 + - style(仪表板): 联动点击样式优化 + - style(仪表板,数据大屏): 优化外部参数选中样式 + - style(数据大屏): 调整邮件菜单样式 + - refactor(数据大屏): 优化新建组件存在的主题适配问题 + - refactor(数据大屏): 优化跑马灯的滚动速度计算方式,以 px 为单位同时兼顾缩放的效果 + - refactor(数据大屏): 跑马灯优化初始化位置等问题 + - refactor(数据大屏): 修改大屏预览加载逻辑 + - refactor(数据大屏、仪表板): 更新内置模板 + - refactor(查询组件): 查询组件不返回空值 + - refactor(查询组件): 优化查询组件默认值配置样式 + - refactor(图表): 优化同环比日期字段过滤逻辑 + - refactor(图表): 优化导出权限判断 + - refactor(图表): 变更文本样式 + - perf(图表): 折线图渐变色显示效果优化 + - refactor(图表): 指标卡背景默认为透明 + - style(图表): 原配色方案为渐变,切换为不支持渐变颜色方案的图表时,颜色方案配置改为默认配色 + - style(图表): 调整富文本 toolbar 样式 + - perf(图表): 透视表支持导出透视表样式的表格 + - perf(图表): 区间条形图去除轴值设置 + - refactor(图表): 图表详情的表格关闭滚动 + - refactor(图表): 汇总表列宽模式设置样式调整 + - refactor(数据集): 优化计算字段中聚合函数匹配逻辑 + - refactor(数据集): 移除 SQL 参数配置界面中,参数类型下拉框的滚动条 #10758 + + +!!! Abstract "问题修复 :palm_tree:" + + - fix(X-Pack): 修复导航栏组织切换器组织名称不显示的问题 + - fix(X-Pack): 修复同步管理菜单无法展示的问题 + - fix(X-Pack): 修复定时报告-富文本编辑器相关问题 + - fix(X-Pack): 修复定时报告选择图表时有多余图表和查询组件的问题 + - fix(X-Pack): 修复定时报告默认值设置相关问题 + - fix(X-Pack): 修复 CAS 不能使用 https 方式的问题 + - fix(X-Pack): 修复企业微信设置编辑页面标题错误的问题 #10764 + - fix(仪表板): 修复 tab 组件样式设置提示为空的问题 + - fix(仪表板): 修复历史主题未适配高级配置的问题 + - fix(仪表板): 修复数据大屏查询组件确定按钮保存失败的问题 #10291 + - fix(仪表板): 修复部分图片组件上传图片报错问题 + - fix(仪表板): 公共链接兼容 2.4 之前版本 #9755 + - fix(仪表板): 公共链接权限受当前浏览器中登录用户的权限影响 + - fix(仪表板): 修复图表过滤取查看带选字段部分字段没有类型标识的问题 + - fix(仪表板): 修复批量操作时标题为空的问题 + - fix(仪表板): 修复图表过滤器的字段选择筛选框输入无反应的问题 + - fix(仪表板): 修复过滤条件为枚举时,选择固定值后,再通过手动输入相同值,已添加的固定值显示重复的问题 + - fix(仪表板): 修复预览页面无法下载的问题 + - fix(仪表板): 修复带 Tab 页的仪表板导出为模板非首页 Tab 项可能无法显示的问题 + - fix(仪表板): 修复内部模板应用出错的问题 + - fix(仪表板): 修复分离部署富文本无法显示的问题 + - fix(仪表板、数据大屏): 修复预览水印可能未铺满的问题 + - fix(仪表板、数据大屏): 修复社区版本重命名未校验重名的问题 + - fix(仪表板、数据大屏): 修复图片上传时快速切换组件导致图片上传失败的问题 + - fix(仪表板、数据大屏): 修复富文本退出编辑赋值反馈不及时的问题 + - fix(仪表板、数据大屏): 修复部分富文本图表多次模板应用出现报错的情况 #10384 + - fix(数据大屏): 修复全屏时出现多个清除按钮的问题 + - fix(数据大屏): 修复数据大屏导入模版后,组合图层大小不一致的问题 #10144 + - fix(数据大屏): 修复组合图可能显示不出来的问题 + - fix(数据大屏): 修复数据大屏复用后的组合需要移动才能显示的问题 + - fix(数据大屏): 修复直接拖动左侧图层排序无法触发保存按钮事件的问题 #10254 + - fix(查询组件): 修复仪表板在编辑状态时,新建数据集后,查询条件不能获取最新数据集的问题 + - fix(查询组件): 修复其中一个查询条件的选项类型修改为多选时,其余查询条件的选项类型也显示为多选的问题 + - fix(查询组件): 修复查询条件名称字号设置超过 30,名称显示被遮挡的问题 + - fix(查询组件): 修复查询组件保存字段关联失效的问题 + - fix(查询组件): 查询组件支持名称和组件间距调整 + - fix(图表): 修复下钻日期 SQL 拼接错误的问题 + - fix(图表): 修复区间条形图使用时间维度范围时查询数据报错的问题 + - fix(图表): 修复图表添加或移出 tab 组件会导致联动为失效状态的问题 + - fix(图表): 修复图表被删除后,联动外部参数等依然可以选到的问题 + - fix(图表): 修复富文本添加字段时控制台出现的异常 + - fix(图表): 修改富文本阈值设置后没有及时显示颜色的问题 + - fix(图表): 修复象限图无法触发联动的问题 + - fix(图表): 修复散点图提示显示值不正确的问题 + - fix(图表): 修复散点图设置气泡大小失败的问题 + - fix(图表): 修复流向地图配置好线条颜色后,修改大屏主题颜色,流线颜色未适配的问题 + - fix(图表): 修复固定值辅助线显示异常的问题 + - fix(图表): 修复堆叠图详情显示错误的问题 + - fix(图表): 修复日期下钻失败的问题 + - fix(图表): 修复禁用标题时,图表仍会显示备注的问题 + - fix(图表): 修复基础样式透明度输入框无法限制 0-100 整数的问题 + - fix(图表): 修复跳转取消对应的字段时跳转依然有效的问题 + - fix(图表): 修复流向地图,同样流向线的宽度,在不同线类型时,看起来宽度不一样的问题 + - fix(图表): 修复富文本这个指标条件颜色时,因格式化导致设置失效的问题 + - fix(图表): 修复带子维度的图表,下钻路径中有时间维度时出现的显示错误问题 + - fix(图表): 修复玫瑰图、饼图时间字段排序无效的问题 + - fix(图表): 修复仪表盘标签字体大小无效的问题 + - fix(图表): 修复漏斗图时间维度显示异常的问题 + - fix(数据集): SQL 变动增加字段时不影响到历史字段的使用 + - fix(数据集): 修复多个数据节点关联时,SQL 数据节点在映射过程中会导致该数据节点丢失的问题 #9973 + - fix(数据集): 修复 SQL 参数设置时间格式错误的问题 + - fix(数据集): 修复不能跨组织创建同名数据集和目录的问题 + - fix(数据集): 修复数据集字段类型改变不生效的问题 + - fix(数据集): 修复创建 Oracle 数据集时出现的崩溃问题 #9307 + - fix(数据集): 在数据集编辑自定义 SQL 时,增加表结构 comment 备注提示 #10022 + - fix(数据集): 修复新建数据集时,数据源的名称过长,拖拽表显示右侧抽屉后数据源名称显示超出的问题 + - fix(数据源): 修复 API 数据源表单名称过长,创建成功后显示样式超出显示范围的问题 + - fix(数据源): 修复 impala jdbc 展示错误的问题 + - fix(数据源): 修复 SQL 参数中日期类型错误的问题 + - fix(数据源): 修复数据源定时检测失败的问题 + - fix(数据源): 修复 API 数据源参数校验问题 + - fix(数据源): 修复社区版数据源重名校验失败的问题 + - fix(系统设置): 修复数据导出中心没有所属组织的问题 + - fix(系统设置): 修复数据导出中心在图表的标题较长时,导出成功提示显示异常的问题 + - fix(移动端): 修复数据大屏的公共链接通过手机打开会显示“资源不存在或已经被删除”的问题 #9971 + - fix(嵌入式): 修复仪表板树 Iframe 嵌入界面,仪表板预览页的全屏按钮无效的问题 + - fix(嵌入式): 修复仪表板树的 DIV 嵌入页面,仪表板预览界面缺少全屏、预览、编辑功能的问题 + - fix(嵌入式): 修复 DIV 嵌入时,仪表板或大屏的分享弹窗显示超出边界,且无法通过点击空白处关闭分享弹窗的问题 + - fix(嵌入式): 修复数据集页面通过 Iframe 方式嵌入后,编辑数据集,保存退出后页面一直在滚动的问题 + - fix: 修复升级时安装路径被修改为默认 /opt 目录的问题 + + + +### v2.7.1 +2024年6月13日 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(图表): 指标卡默认透明背景 + - fix(数据集): 修复SQL参数设置时间格式错误 + - fix: 修复升级时安装路径被修改为默认 /opt 目录的问题 + + + +### v2.7.0 +2024年6月6日 + +!!! Abstract "新增功能 :star2:" + + - feat(X-Pack): X-Pack 前端支持分离部署打包 + - feat(X-Pack): 新增定时报告 + - feat(X-Pack): 支持可配置小助手、帮助、关于等模块入口的显隐 #9483 + - feat(X-Pack): 新增密码策略 #9231 + - feat(X-Pack): 第三方平台移动端支持免密登录 + - feat(X-Pack): 第三方平台认证配置迁移到系统设置中 + - feat(X-Pack): 同步管理模块,支持 Doris 自定义 BE 端口 + - feat(X-Pack): 新增自定义系统变量功能 + - feat(X-Pack): 导入许可证之后自动同步游离数据 + - feat(嵌入式): Iframe 嵌入支持外部参数变动 + - feat(嵌入式): 嵌入式图表支持接收外部参数 + - feat(嵌入式): 嵌入式大屏、图表支持向外部系统传参 + - feat(仪表板): 仪表板配置增加高级样式设置,增加分页器配色、钻取配色等设置项 #8443 #8435 + - feat(仪表板): 富文本组件增加字间距调整功能 #9542 + - feat(仪表板): 图片导出支持选择尺寸 #8916 + - feat(仪表板): 支持仪表板级别设置图表颜色等高级设置 + - feat(仪表板/数据大屏): 新增流媒体组件 + - feat(仪表板/数据大屏): 新增视频组件 + - feat(图表): 仪表盘新增刻度相关设置项 #9510 + - feat(图表): 图表、查询组件等可以直接在右侧编辑区修改标题 #8867 + - feat(图表): 图表过滤器支持复杂的与或条件设置 + - feat(图表): 指标卡阈值支持设置背景色 #9370 + - feat(图表): 支持网格线设置为虚线 + - feat(图表): 新增对称柱状图 + - feat(图表): 新增桑基图 + - feat(图表): 新增流向地图 + - feat(图表): 新增进度条图 + - feat(图表): 明细表和汇总表支持隐藏表头 #8834 + - feat(图表): 水波图支持阈值 #9370 + - feat(图表): 表格提示可自定义背景颜色、字体大小、字体颜色 #9675 #9834 + - feat(图表): 表格阈值支持选择非指标字段作为条件 #8111 + - feat(图表): 隐藏图表标题的联动跳转等按钮,仅鼠标 hover 时显示 #8834 + - feat(图表): 象限图的恒线支持设置小数以及负数 + - feat(数据大屏): 支持跑马灯组件 + - feat(数据大屏): 数据大屏支持画布高级配色 + - feat(数据大屏): 数据大屏支持查询组件 + - feat(数据源): 支持直接输入 JDBC URL 字符串连接数据源 + - feat(数据源): API 数据源支持设置请求超时时间 + - feat(移动端): 仪表板列表支持搜索、排序 + - feat: 新增数据导出中心 + +!!! Abstract "功能优化 :sunflower:" + + - chore(X-Pack): 删除不必要的主工程依赖 + - chore: 优化 Spring 对应 Maven 的插件版本 + - chore: 升级 JDK 至 21 + - chore: 升级 Spring 相关依赖版本 + - perf(X-Pack): 用户管理列表增加用户来源字段 + - perf(X-Pack): 第三方平台扫码登录接口删除 secret 字段 + - refactor(嵌入式): DIV 嵌入式支持跨域设置 + - refactor(嵌入式): 优化嵌入式 iframe 传参,增加仪表板 ID 校验等 + - refactor(嵌入式): 优化嵌入式图表消息的发送 + - refactor(嵌入式): 嵌入式交互参数数据结构优化 + - refactor(嵌入式): 支持跳转,且支持局部刷新 + - refactor(仪表板): 优化仪表板缓存,更换文案图标等 + - refactor(仪表板): 优化截图组件,修复查询组件截图可能不全问题 #9641 + - refactor(仪表板): 优化下钻弹框的弹出位置,避免超出图表可视范围 + - refactor(仪表板): 图表配置项与滚动条间距优化 + - refactor(图表): 优化富文本工具栏显示 + - refactor(图表): 优化图表分类和名称 + - refactor(图表): 统一表格提示开关 + - refactor(图表): 图例样式中,仅当需要设置图例方向时显示竖线样式 + - refactor(图表): 优化象限图样式属性的交互 + - refactor(工作台): 优化模板查询,防止超时导致无法显示内部模板 + - refactor(工作台): 优化首页资源跳转,解决收藏资源点击未跳转到指定页面的问题 + - refactor(工作台): 仪表板及大屏模板的数据适配 + - refactor(数据大屏): 优化大屏组件修改名称时样式与大屏不匹配的问题 + - refactor(数据大屏): 优化组合菜单显示,防止组合右键菜单弹出偏移过大的问题 + - refactor(数据大屏): 属性设置区域标题跟随组件类型 + - refactor(数据大屏): 媒体文案样式修改 + - refactor(数据大屏): 数据大屏支持前端缓存,异常退出可恢复 + - refactor(查询组件): 优化下拉列表选项 + - refactor(查询组件): 优化参数绑定方式 + - refactor(数据集): 数据集中支持显示表的 comment 信息 #9301 + - refactor: dectl 备份文件显示全路径 + - refactor: 删除 import element-plus-secondary/es/css #9624 + + +!!! Abstract "问题修复 :palm_tree:" + + - fix(X-Pack): 修复邮件设置校验失败的问题 + - fix(X-Pack): 修复终止任务后,目标数据可能会被清空的问题以及依赖问题 + - fix(X-Pack): 修复同步管理模块 SQL 输入中包含换行时,保存任务失败的问题 + - fix(仪表板): 仪表板支持前端缓存,异常退出可恢复之前仪表板设置 + - fix(仪表板): 修复仪表板过滤时出现的错误 + - fix(仪表板): 修复 Tab 组件仅切换 Tab 页导致保存按钮高亮的问题 + - fix(仪表板): 修复 DIV 方式嵌入,滚动条样式设置和集成站点冲突,导致所有滚动条隐藏的问题 + - fix(仪表板): 修复复制历史仪表板时出现的大小变形问题 #9596 + - fix(仪表板): 修复新复制的仪表板未保存时,切换到移动端会提示权限的问题 + - fix(仪表板): 修复无法批量设置透明度等样式信息的问题 + - fix(仪表板): 修复移动端中列表可能不显示的问题 + - fix(仪表板): 修复编辑状态预览可能出现编辑框未隐藏的问题 + - fix(仪表板): 修复进入仪表板,首次操作未计入画布变更的问题 + - fix(仪表板): 修复部分模板创建仪表板时可能会出错的问题 + - fix(仪表板): 修复移动端布局样式不对的问题 + - fix(图表): 修复区间条形图没设置轴值,更新图表数据页面时会报错的问题 + - fix(图表): 修复区间条形图值轴选择纬度时,勾选聚合时间维度,无法获取间隔值的问题 + - fix(图表): 修复部分图表导出的 Excel 无内容或者缺少内容的问题 #9676 + - fix(图表): 修复瀑布图汇总显示错误的问题 #9318 + - fix(图表): 修复透视图行列小计开关不生效的问题 + - fix(图表): 修复计算字段作为横纵轴时,象限图无法正常显示的问题 + - fix(图表): 修复多系列标签和提示字体大小未适应缩放的问题 + - fix(图表): 修复表格自定义宽度下钻后下钻字段宽度改变的问题 + - fix(嵌入式): 修复 DIV 嵌入的仪表板列表页,使用模板新建仪表板失败的问题 + - fix(嵌入式): 修复嵌入第三方系统后,第三方系统的网站、Logo 和网站名称被替换,且替换后 DataEase 内配置的 Logo 也无法展示的问题 + - fix(数据大屏): 修复多选图层时方向键失效的问题 #9766 + - fix(数据大屏): 修复组件批量框选后可能无法批量删除的问题 + - fix(数据大屏): 修复编辑状态下的全屏预览可以删除组件的问题 + - fix(数据大屏): 修复在网页组件中,输入地址后按回车键导致网页刷新的问题 + - fix(数据大屏): 修复部分大屏应用后组件位置产生变化的问题 + - fix(数据大屏): 修复多选图层,组合移动之后保存返回,多一个图层框的问题 + - fix(数据源): 修复 Excel 文件上传超过 1 分钟后被自动取消,但系统无提示信息给用户的问题 + - fix(数据源): 修复 API 数据源数据量较大时页面发生卡顿导致页面直接跳转到完成,随后没有创建成功的问题 + - fix(数据源): 修复 Doris DECIMAL 类型转换异常 + - fix(数据源): 修复在数据源处创建数据集没有进行 table 定位的问题 + - fix(数据源): 修复数据源表没有显示备注信息的问题 + - fix(数据集): 修复参数类型选择日期相关参数时,后面的选择框没有对齐的问题 + - fix(数据集): 修复数据源无效状态下,查询数据没报错的问题 + - fix(数据集): 修复数据集预览总数不正确的问题 + - fix(数据集): 修复计算字段引用报错的问题 + - fix(数据集): 修复计算字段表达式语法提示错误的问题 + - fix(数据集): 修复计算预览总数时没有带上行权限的问题 + - fix(移动端): 移动端标识修改 + - fix: 修复数据集、数据源列表的排序切换页面后会变化的问题 #10023 + - fix: 修复 Calcite 解析 SQL 单引号报错的问题 + - fix: 修复 eslint 报错的问题 + - fix: 修复公共链接分享弹框未开启时,分享无法关闭的问题 + - fix: 所有 delete 类型请求被判为跨域 + - fix: 处理老版本 commons-compress 存在的 CVE-2024-26308以及CVE-2024-25710 漏洞 + + +### v2.6.0 +2024年5月9日 + +!!! Abstract "新增功能 :star2:" + + - feat(嵌入式): DIV 嵌入支持新增仪表板和新增数据大屏 + - feat(X-Pack): 钉钉、飞书、企业微信客户端支持免密登录 + - feat(X-Pack): 同步管理-任务管理中任务列表支持通过点击任务名称进入任务日志列表 + - feat(X-Pack): 同步管理-任务管理支持数据同步 SQL 支持使用 % + - feat(仪表板): 增加配置项,下钻和联动可同时触发 #8701 + - feat(仪表板): 外部参数支持配置到查询组件 #9033 + - feat(仪表板): 支持批量拖拽字段 + - feat(仪表板): 跳转支持匹配目标仪表板过滤组件 #8656 + - feat(仪表板): 新增网页组件 + - feat(查询组件): 查询组件文本下拉支持显示字段和排序字段设置 #8657, #7343 + - feat(查询组件): 查询组件支持文本搜索 #7715 + - feat(图表): 地图增加缩放按钮配配置项,适应浅色和深色模式 + - feat(图表): 地图支持地名映射 #7514 + - feat(图表): 地图深色模式按钮样式改为黑底白字 + - feat(图表): 富文本组件支持设置垂直方向的位置 #6734 + - feat(图表): 指标卡支持设置名称和值间距 + - feat(图表): 新增柱线组合图 #7377, #8710 + - feat(图表): 新增象限图 #8517 + - feat(图表): 标题可识别空格 + - feat(图表): 表格支持悬停展示表头和表格内容 #8540 + - feat(图表): 词云图支持配置字号大小区间和文字间距 + - feat(图表): 透视表支持树形展示 #8509 + - feat(图表): 饼图/环形图支持合并数据为其他 + - feat(数据大屏): 支持 ctrl 加鼠标点选组件批量操作 + - feat(数据大屏): 支持批量选中组件变更组件大小 + - feat(数据集): 增加数据集修改后不保存点返回按钮的二次确认提示 #8853 + - feat(系统管理): 系统设置、组织管理中心、工具箱的侧边栏可展开收起 + - feat: 公共链接后缀可自定义 #8195 + - feat: 分享功能密码增强 #8593 + +!!! Abstract "功能优化 :sunflower:" + + - perf: Pad 端自动识别为 PC 端布局 #8858 + - perf: redis 缓存增加前缀避免重复 + - refactor(图表): 水波图和仪表盘无数据不渲染 + - refactor(图表): 表格无数据不滚动 + - refactor(图表): 优化富文本弹出样式 + - refactor(图表): 优化表格拖拽区域,防止于表格滚动条冲突 + - refactor(图表): 修改公共组件样式展示方式 + - refactor(图表): 减小图例下方的留白,高度和字体匹配 + - refactor(图表): 禁用地图方向键事件 + - refactor(图表): 杭州市下属区县行政区划更新 #8439 + - refactor(图表): 图表标题和绘图区间隔调整 + - refactor(图表): 地图透明度位置调整 + - refactor(仪表板): 优化外部参数,兼容查询组件 + - refactor(仪表板): 优化联动跳转下钻同时配置时弹出界面显示逻辑,当联动配置同时触发下钻时,在弹出界面选择联动依然适用此逻辑 #8701 + - refactor(仪表板): 调整仪表板矩阵密度,组件可以更精细化调整位置大小 + - refactor(仪表板): 下拉框支持显示值和绑定值 #7343 + - style(仪表板): 优化仪表板整体配置样式 + - style(仪表板): 调整下钻弹框样式 + - refactor(仪表板): 新增数据集模式自动选择显示字段逻辑优化 + - refactor(仪表板): 查询组件按钮调整为居中 + - refactor(数据大屏): 优化批量改变组件大小逻辑,修改为按照初始占比放大缩小 + - refactor(数据大屏): 优化鼠标和 Mac 触控板方向探测逻辑,针对 Mac 触控板的内外伸缩可以控制大屏缩放,鼠标滚轮控制上下移动 + - style(数据大屏): 图标组件样式调整 + - refactor(工作台): AI 助手增加首次指引和样式修改 + - refactor(工作台): 优化模板中心文案和图标样式 + - refactor(工作台): 模板增加资源版本号等基础信息 + - refactor(工作台): 调整模版市场新建模式,兼容嵌入式 + - refactor(工作台): 工作台最近使用列表点击可以直接跳转到对应的资源界面 + - style(同步管理): 同步频率 UX 优化 + - style(数据源): API 数据源的数据更新更新频率 UX 优化 + - refactor(数据集): 编辑数据集页面首先验证数据源是否存在 + - refactor(数据集): 单一数据源的数据集、图表使用对应数据库语法和函数 + - refactor: 优化 dectl 备份脚本,支持备份前停止服务 + - refactor: 优化 Dockerfile 启动命令 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(仪表板): 修复仪表板控制台报错的问题 + - fix(仪表板): 修复含有水印的仪表板在嵌入网页时可能出现底部部分空白区域的问题 + - fix(仪表板): 修复圆角属性无法影响图片等组件的问题 + - fix(仪表板): 修复复制配置联动的图表,联动标识未消失的问题 + - fix(仪表板): 修复存量指标卡批量设置属性时可能因为缺少属性导致编辑区空白的问题 + - fix(仪表板): 修复批量设置指标卡颜色未生效的问题 + - fix(仪表板): 修复移动端布局后仪表板无法继续向 Tab 组件添加图表的问题 + - fix(仪表板): 修复联动跳转弹出框可能被遮挡的问题 + - fix(仪表板): 修复表格类联动跳转同时进行出现交互的错误的问题 + - fix(仪表板): 修复被联动图表被删除后,联动配置没有清理的问题 + - fix(图表): 修复地图从世界下钻到国家显示异常的问题 + - fix(图表): 修复地图关闭悬浮后未隐藏缩放按钮的问题 + - fix(图表): 修复明细表分页报错的问题 + - fix(图表): 修复明细表有总数据条数在预览时被遮挡的问题 + - fix(图表): 修复汇总表序号列斑马纹无效的问题 + - fix(图表): 修复透视表行列定义,和 v1 保持一致 #9238 + - fix(图表): 修复多序列提示删除失败的问题 + - fix(图表): 修复提示中指标下拉框显示重复数据的问题 + - fix(图表): 修复提示指标下拉框数据,有可能存在缺失的问题 + - fix(数据大屏): 修复在点选组件后组合部分情况可能会删除选中组件问题 + - fix(数据大屏): 修复指标卡图标不显示问题 + - fix(数据大屏): 修复移动按键和地图内部位移事件冲突的问题 + - fix(数据大屏): 修复组合大小变化后再点击组合按钮,时间生成的组合组件还是原来大小的问题 + - fix(数据大屏): 修复组合移动在大屏那已经存在组合的情况下容易出现拖拽轨迹的问题 + - fix(数据源): 修复获取字段重复的问题 + - fix(数据集): 修复 MySQL 和 SQLServer 数据库的表跨源关联后,MySQL 数据表的字段重复显示,SQLServer 数据表的字段缺少的问题 + - fix(数据集): 修复使用自定义 SQL 创建数据集,SQL 编辑器关闭后,没有获取并加载字段的问题 + - fix(数据集): 修复修改数据集 SQL 没有弹出字段确认的问题 + - fix(数据集): 修复数据集表名搜索不区分大小写的问题 #8852 + - fix(移动端): 修复 Tab 组件布局丢失问题 + - fix(移动端): 修复移动端布局后仪表板无法继续向 Tab 组件添加图表的问题 + - fix(嵌入式): 修复数据源树 DIV 嵌入,设置 DIV 长度和高度,数据源左侧部分的高度变了,整体和右侧部分没变的问题 + - fix(嵌入式): 修复大屏树 DIV 嵌入,新建数据大屏界面图层、画布、大屏配置错位的问题 + - fix(X-Pack): 修复同步管理任务管理中新建任务时,SQLServer 数据源表中存在自增主键列时会报错的问题 + - fix(X-Pack): 修复 OIDC 退出登录报错的问题 + - fix: 修复 iframe 嵌入式使用模版新建丢失 Token 的问题 + - fix: 修复日期过滤逻辑错误 #9155 + +### v2.5.0 +2024年4月7日 + +!!! Abstract "新增功能 :star2:" + + - feat(X-Pack): 第三方平台飞书,企业微信,钉钉支持绑定用户 + - feat(仪表板): 仪表板的公共链接支持在移动端打开 + - feat(仪表板): 仪表板资源树支持排序 + - feat(仪表板): 公共链接打开后,浏览器网页标题提示支持显示为仪表板和数据大屏的名称 + - feat(仪表板): 可视化资源支持外部参数功能 #8257 + - feat(仪表板): 增加开启/关闭移动端功能 + - feat(图表): 支持地图图例显示为整数 #8202 + - feat(图表): 地图增加恢复初始状态按钮 + - feat(图表): 富文本视图增加点击字段既可选中设置样式的效果 + - feat(图表): 支持气泡地图 + - feat(图表): 明细表/汇总表支持控制表头排序开关和图标颜色 #8147 + - feat(图表): 表格支持平滑滚动 #7277 + - feat(工作台): 支持点击工作台列表中的大屏或仪表板跳转到资源预览界面 + - feat(数据大屏): 增加时间组件 #8157 + - feat(数据大屏): 支持鼠标选中一些区域后,区域内的组件可通过滑动鼠标,批量移动 + - feat(数据集): 支持 DataEase v2 版本仪表板名称、文件夹名称等按照名称进行升序 #7741 + - feat(数据集): 支持一个计算字段作为整体进行二次计算引用 + - feat(查询组件): 日期范围查询组件支持设置查询时间时可选的范围 #6005 + - feat(查询组件): 过滤组件支持空数据逻辑 + - feat: 支持配置是否启用浏览器缓存 + - feat: 新增 DataEase 智能小助手 + +!!! Abstract "功能优化 :sunflower:" + + - build: 升级 Calcite 版本 + - perf(嵌入式): iframe 嵌入式新增数据集页面优化 + - perf(嵌入式): iframe 嵌入式编辑数据集页面优化 + - refactor(仪表板): 仪表板内通过复制组件向画布内增加新组件,默认选中新添加的组件 + - refactor(仪表板): 可视化资源树排序改为前端排序 #7741 + - refactor(仪表板): 调整公共样式设置区域样式 + - refactor(仪表板): 资源树中的资源图标增加移动端标识 + - refactor(图表): 图表明细支持大数据量导出 + - refactor(图表): 图表详情查看优化: 非表格类型统一样式,表格类型使用自身样式。 + - refactor(图表): 明细导出样式等优化 + - refactor(工作台): 优化工作台可视化资源跳转样式,逻辑 + - refactor(工作台): 当模板管理新添加分类成功后,分类列表中默认选中新添加的分类 + - refactor(数据大屏): 优化外部参数,解决外部参数对所有图表兼容性问题 + - refactor(数据大屏): 时间组件样式设置区域调整 + - refactor(数据大屏): 添加样式设置区域部分样式属性 + - refactor(数据大屏): 组件通用样式区域样式组件优化 + - refactor(数据集): 修改了数据集内容后,字段选择交互优化 + - refactor(系统设置): 模版名称校验优化 + - refactor(系统设置): 模版管理批量操作修改分类是当分类完全相同默认显示分类标签 + - refactor: UI 库升级 + - refactor: 优化安装脚本对本地已有镜像的判断逻辑 + - refactor: 优化社区版升级企业版脚本,通过 bash install.sh 即可升级 + - refactor: 关闭不必要的容器端口 + - refactor: 减少安装脚本中对不必要的本地镜像的判断 + - refactor: 去掉 installer 无用代码 + - style(X-Pack): 外观设置的卡片以及底部按钮样式修改 + - style(X-Pack): 外观设置次要按钮背景色值修改 + - style(仪表板): 修复资源树部分颜色未跟随主题色问题 + - style(系统设置): 侧边菜单悬浮以及选中样式 + - style: 浅色头部背景文案颜色改为黑色 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(X-Pack): 修复 API 调用 /user/byCurOrg 接口报错 + - fix(X-Pack): 修复外观设置设计页面文案错误 + - fix(X-Pack): 修复权限体系报错信息空格未转义错误 + - fix(仪表板): 修复指标卡批量设置部分样式参数设置无效的问题 + - fix(仪表板): 修复查询组件只过滤 Tab 组件第一页的问题 + - fix(仪表板): 修复任意上传文件不安全操作路径的缺陷 + - fix(仪表板): 修复切换到移动端需要先检查仪表板保存状态的问题 + - fix(仪表板): 修复移动端制作模型未按比例缩放的问题 + - fix(仪表板): 修复移动端布局复制已添加至布局中的图表会直接进入左侧无需再布置的问题 + - fix(仪表板): 修复移动端设计页面,点击 checkbox 无法选择组件的问题 + - fix(仪表板): 修复新建仪表板未保存时切换到移动端配置提示权限变更的问题 + - fix(仪表板): 修复移动端配置首次添加表格时没有数据的问题 + - fix(仪表板): 修复移动端配置切换至 PC 端布局图表样式问题 + - fix(仪表板): 修复移动端配置模型顶部状态栏底部背景色不是白色的问题 + - fix(仪表板): 修复指标卡批量设置时颜色设置无效问题 + - fix(图表): 修复地图区域选择框丢失的问题 + - fix(图表): 修复富文本框华文仿宋字体加粗没反应的问题 #8174 + - fix(图表): 修复瀑布图图例选项无效的问题 + - fix(图表): 修复缩放导致表格滚动距离计算错误的问题 + - fix(图表): 修复表格在 http 环境下无法复制的问题 + - fix(图表): 修复表格排序按钮在公共链接点击无效的问题 #8543 + - fix(图表): 修复表格数据筛选到导出的 Excel 仍然为筛选前的数据问题 + - fix(图表): 修复透视表字段名称修改无效的问题 #8546 + - fix(图表): 修复富文本内部超链接无法打开当前 DE 系统的公共链接的问题 #8696 + - fix(嵌入式): 修复 DIV 嵌入方式,没有应用系统的外观配置的问题 + - fix(嵌入式): 修复仪表板/数据大屏设计器嵌入尺寸不对的问题 + - fix(嵌入式): 修复仪表板/数据大屏预览尺寸不对的问题 + - fix(嵌入式): 修复后端未适配动态前缀路径的问题 + - fix(嵌入式): 修复 iframe 嵌入式仪表板树无法使用新页面预览功能的问题 + - fix(嵌入式): 修复 iframe 嵌入式打开多个新窗口 token 失效的问题 + - fix(工作台): 修复我的分享 Tab icon 样式跟其他 Tab 不一致,尺寸不对的问题 + - fix(数据集): 修复仪表板移动端配置导致创建数据集NPE的问题 + - fix(数据源): 修复字段描述不展示的问题 + - fix(移动端): 修复移动端设计页面样式问题 + - fix(移动端): 修复移动端面包屑错误 + - fix(系统设置): 修复地图设置-地理信息不安全路径操作问题 + - fix(系统设置): 修复工具箱-操作日志 icon 样式问题 + - fix(系统设置): 修复系统参数-地图设置-地理信息区域代码字段规则限制的问题 + - fix(系统设置): 调整系统参数-地图设置上级区域为空时显示 - + - fix(系统设置): 修复不支持引擎设置的问题 + - fix: 调整 dectl 清理旧镜像时的判断逻辑 + - fix: 修复浅色背景下左上方 logo 色值错误 + - fix: 修复 installer 停止服务的逻辑判断错误 + - fix: 修复 installer 重复安装及升级时无法启动的问题 + - fix: 修复 SQL 注入漏洞 + - fix: 修复 DataEase 未授权漏洞 + + +### v2.4.1 +2024年3月13日 +!!! Abstract "问题修复 :palm_tree:" + + - fix: 修复 installer 停止服务的逻辑判断错误 + - fix: 修复 installer 重复安装及升级时无法启动的问题 + +### v2.4.0 +2024年3月7日 + +!!! Abstract "新增功能 :star2:" + + - feat(X-Pack): 支持企业微信配置及扫码登录 + - feat(X-Pack): 支持国际版飞书配置及扫码登录 + - feat(X-Pack): 支持钉钉配置及扫码登录 + - feat(X-Pack): 支持系统外观配置 + - feat(X-Pack): 支持第三方平台用户组织角色配置 + - feat(仪表板): 支持树列表侧边栏展开、收起功能 + - feat(同步管理-任务管理): 支持增量同步 + - feat(同步管理-任务管理): 支持终止执行中的任务 + - feat(嵌入式): 模块嵌入支持 iframe 嵌入方式 + - feat(工作台): 工作台我的收藏页增加直接取消收藏操作 + - feat(数据大屏): 增加图形组件 #7274 + - feat(数据大屏): 组件的宽高增加宽高比例锁定功能,可以等比放大缩小 + - feat(数据集): 树列表侧边栏新增展开、收起功能 + - feat(系统设置): 支持引擎设置 + - feat(图表): 明细表/汇总表支持按列设置宽度,拖拽调整宽度 #7707 + - feat(图表): 支持右键复制表格指定单元格内容 #5884 + - feat(图表): 支持表格斑马纹 + - feat(图表): 富文本图表支持指数格式化 #7444 + - feat: dectl 增加备份和恢复功能 #6602 + - feat: 增加访问前缀配置 #7999 + - feat: 添加 v2 版本的 quick_start.sh 安装脚本 + - feat: 支持移动端配置及访问 + +!!! Abstract "功能优化 :sunflower:" + + - perf(X-Pack): flyway 中声明的字符集以及排序相关语句 + - refactor(嵌入式): DIV 嵌入图表优化 + - refactor(嵌入式): DIV 嵌入式优化 + - refactor(嵌入式): 优化首次加载时长 + - refactor(数据大屏): 优化保存按钮,防止重复提交 + - refactor(数据大屏): 修改图形组件默认样式 + - refactor(数据大屏): 图形组件增加 Svg 矢量图形 + - refactor(数据大屏): 富文本组件支持撤销操作 + - refactor(数据大屏): 调整位置属性面板处手动设置宽高逻辑,适配保持宽高比例 + - refactor(系统设置): 更新水印管理权限的 flyway + - refactor(图表): 优化图表的默认标签配置 + - refactor(图表): 优化图表默认图例配置 + - refactor(图表): 优化饼图/玫瑰图默认外径为 80 + - refactor: Calcite SQL 适配自定义函数 + - refactor: Dockerfile 文件中去掉和 X-Pack 相关的语句 + - refactor: uninstall.sh 卸载脚本优化提示 #7955 + - refactor: 优化 Calcite 自定义函数性能 + - refactor: 使用 Calcite 新方法替换过时方法 + - style(同步管理-任务管理): 更新任务执行中状态的图标 + - style:优化右侧抽屉页面(编辑表单、过滤条件)底部样式 + - style:优化登录页面页脚样式 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(X-Pack): 修复登录不存在的账号时提示信息错误 + - fix(X-Pack): 修复社区版本系统参数设置报错 + - fix(X-Pack): 平台对接中 icon 样式问题 + - fix(仪表板): 修复仪表板复用缩放按钮显示不正确的问题 + - fix(仪表板): 修复仪表板移动端配置每次保存后退出在此进行保存提示都会 +1 的问题 + - fix(仪表板): 修复仪表板联动后查看仪表板配置,依然显示清除所有联动的问题 + - fix(仪表板): 修复因与 XPack 冲突导致富文本组件不可用的问题 + - fix(仪表板): 修复富文本组件华文仿宋等部分字体加粗没反应的问题 #8174 + - fix(仪表板): 修复社区板仪表板因不支持水印设置导致的控制台报错的问题 + - fix(仪表板): 修复切换导航主菜单时,闪现其他的空状态图片的问题 + - fix(仪表板): 修复弹窗内按钮组件次要按钮交互样式不对的问题 + - fix(仪表板): 修复次要按钮交互样式不对的问题 + - fix(仪表板): 修复编辑主题名称异常提示和封面字体重叠的问题 + - fix(仪表板): 调整表格右侧拖拽区域,防止影响列宽调整 + - fix(仪表板): 修改颜色选择弹框中内置的颜色 + - fix(同步管理): 修复非管理员查看数据连接管理菜单无权限的问题 + - fix(同步管理-任务管理): 修复全量同步时,源数据库表数据被删除,目标数据库表数据不能同步删除的问题 + - fix(嵌入式): 修复 DIV 嵌入式的样式冲突问题 + - fix(嵌入式): 修复 Iframe 嵌入式模块树无法加载的问题 + - fix(嵌入式): 修复 Iframe 嵌入高度丢失的问题 + - fix(工作台): 修复导入模板时,选择分类列表,添加分类功能挡住了最后一个分组的问题 + - fix(工作台): 模板中心间距调整为 16px + - fix(工作台): 点击 logo 返回工作台 + - fix(工具箱): 修复模板管理导入模板弹窗-选择分类-添加分类选项固定在下拉列表底部的问题 + - fix(工具箱): 模板中心间距调整为 16px + - fix(数据大屏): 修复保持宽高比时部分拖拽点拖拽时同时出现位移的问题 + - fix(数据大屏): 修复宽高比保持时大幅度移动出现比例改变的问题 + - fix(数据大屏): 修复对标线未显示的问题 + - fix(数据大屏): 修复控制台异常报错关闭 sourcemap 等问题 + - fix(数据大屏): 修复数据大屏中的组合组件内部视图标题缩放比例不正确的问题 + - fix(数据大屏): 修复组件保持宽高比例时,快速来回拖拽可能导致宽高比例有微小偏差的问题 + - fix(数据大屏): 修复组件缩放到很小时右下拖拽点会使产生位置移的问题 + - fix(数据大屏): 修复组件角落处移动点保持宽高比拖动时出现闪动的问题 + - fix(数据大屏): 修复编辑图标的颜色属性,在透明度输入框中使用删除键,会删掉对应的图表的问题 + - fix(数据大屏): 切换导航主菜单时,闪现其他的空状态图片的问题 + - fix(数据大屏): 对齐标线调试 + - fix(数据源): 修复切换导航主菜单时,闪现其他的空状态图片的问题 + - fix(数据集): 自定义 SQL 节点点击编辑字段 + - fix(系统设置): 修复模版列表导入时中选择的分类可能和右侧展示的模版分类不一致的问题 + - fix(系统设置): 修复显示、隐藏 icon 的 hover 文案不对的问题 + - fix(系统设置): 修复次要按钮 hover 样式不对的问题 + - fix(图表): 修复明细表分页状态下只能导出当前页数据的问题 #7972 + - fix(图表): 修复指标卡名称修改后不生效的问题 #8122 + - fix(图表): 修复横向柱状图横轴格式化不显示的问题 + - fix(图表): 修复表格开启序号后拖拽无法保存序号列宽的问题 + - fix(图表): 修复富文本组件文本组件数字段落失效的问题 + - fix(图表): 修复指标表格式化百分比类型下单位后缀不生效的问题 + - fix: 修复 dectl 脚本在停止服务时无法停止同步管理服务的问题 + - fix: 修复 Impala 分页需先排序的问题 + - fix: 升级 Calcite 版本修复日期格式错乱的问题 #8032 + - fix: 修复嵌入式引入路径错误的问题 + - fix: 修复首次上传 license 同步社区版资源包含已删除业务资源的问题 + + +### v2.3.0 +2024年2月1日 + +!!! Abstract "新增功能 :star2:" + + - feat(数据源): 支持 Db2 + - feat(数据源): 数据源、数据集过滤区分大小写 + - feat(仪表板): 仪表板点击组件可连续横向自动占位排列 + - feat(仪表板): 新增年月时间范围支持 #7271 + - feat(数据大屏): 支持多个组件上下左右快速对齐 + - feat(图表): 标题字体大小调整为默认 16 #6729 + - feat(图表): 新增透视表 + - feat(图表): 新增指标卡 + - feat(图表): 图表标题右侧图标修改为按比例展示大小 + - feat(图表): 明细表/汇总表支持表头排序 #6754 + - feat(系统设置): 系统参数设置支持前端超时时间设置 + - feat(X-Pack): 增加同步管理模块 + - feat(X-Pack): 可视化资源支持显示水印 + - feat(X-Pack): 增加 API 文档入口 + - feat(X-Pack): 嵌入式支持嵌入仪表板、数据大屏、数据源、数据集页面(带左侧的树形菜单) + - feat(X-Pack): 支持社区版首次升级企业版时游离资源可同步到企业版 + - feat(X-Pack): 新增操作日志模块 + - feat: 公共链接功能从企业版迁移到社区版 #7148 + +!!! Abstract "功能优化 :sunflower:" + + - refactor(数据源): 创建完上一个数据源后,继续创建操作的默认文件夹仍然保持为同一个 + - refactor(数据集): 详细展示 Calcite 执行 SQL 时的报错提示 + - refactor(仪表板): 优化仪表板样式缩放比例、组件内边距缩放比例 + - refactor(仪表板): 增加 Tab 标题字符限制长度为 50 + - refactor(仪表板): 仪表板保存按钮,文字大小改为 12px + - refactor(仪表板): 仪表板编辑框样式调整 + - refactor(数据大屏): 优化组件组合相关操作 + - refactor(数据大屏): 大屏位置定位数据变更为展示原始数据不再随缩放改变 + - refactor(数据大屏): 调整屏幕尺寸的上限 + - refactor(数据大屏): 优化大屏样式 + - refactor(数据大屏): 批量操作优化 + - refactor(数据大屏): 画布样式逻辑调整 + - refactor(图表): 优化指标卡批量操作逻辑 + - refactor(图表): 图表放大时禁用联动跳转等操作 + - refactor(图表): 富文本新增阿里巴巴普惠体 + - refactor(图表): 富文本视图富文本组件进入编辑状态自动聚焦在文档末尾 + - refactor(工作台): 工作台中的推荐模板中可以展示自定义的用户模板 + - refactor(工作台): 工作台模板展示优化 + - refactor(模板管理): 优化模板管理命名限制 + - refactor(模板管理): 模板管理预览列表带入过滤条件查询 + - refactor: 左侧菜单树去掉描边 + - refactor: 优化模板按钮显示样式 + - refactor: 优化工具箱样式 + - refactor: 优化系统设置样式 + - refactor: 优化系统升级后静态资源可能还是使用的历史的缓存版本造成错误的问题 + - refactor: 优化 dectl 脚本,获取当前版本的同时可以查询最新版本 #7492 + - refactor: installer 脚本适配 Ubuntu 操作系统 + - refactor: 镜像未变化时,升级安装不重复加载镜像文件 + - refactor: 帮助文档 popover 使用 hover 触发 + - refactor: 升级 json-path 依赖 + - refactor: 移除 hutool 中间件 #7096 + + +!!! Abstract "问题修复 :palm_tree:" + + - fix(数据源): 修复 API 数据源数据表请求参数全部填满后最后一条参数无法删除的问题 #7336 + - fix(数据源): 优化 Excel 数据源替换数据,文件较大时加载时间长,且没有加载图标,体验不佳的问题 + - fix(数据源): 修复重命名数据源名称与编辑数据源名称长度限制规则不一致的问题 + - fix(数据源): 修复数据源日志报错的问题 + - fix(数据源): 修复数据源校验返回信息错误的问题 + - fix(数据源): 修复 csv 字段类型识别错误的问题 + - fix(数据源): 修复没有数据源的空文件夹不显示在列表的问题 + - fix(数据源): 限制 MySQL 非法参数 + - fix(数据源): 修复本地 Excel 文件创建的数据源数据预览为空的问题 #7722 + - fix(数据源): 修复重命名数据源名称与编辑数据源名称长度限制规则不一致的问题 + - fix(数据源): 修复无法查看 Oracle 视图表的问题 #7526 #7539 + - fix(数据集): 修复数据集预览报错提示 + - fix(数据集): 修复不同数据源同名的表无法选中做关联的问题 + - fix(数据集): 修复批量管理新建计算字段字段类型不显示的问题 + - fix(数据集): 修复数据源名称过长,创建数据集选择数据源时勾选框与名称重叠的问题 + - fix(数据集): 修复自定义 SQL 设置参数并设置 limit 后,数据查询不出的问题 #7130 + - fix(数据集): 修复数据集计算字段使用日期函数(如 WEEK、YEAR、DAY等)抛异常的问题 #7619 + - fix(仪表板): 修复仪表板 Tab 内外相同字号在预览界面显示不同的问题 + - fix(仪表板): 修复通过仪表板配置设置历史仪表板的图表标题字号,只有个别图表生效的问题 + - fix(仪表板): 修复查询条件点击删除后,右侧编辑还存在的问题 + - fix(仪表板): 修复查询组件,组件间间隔不一致的问题 + - fix(数据大屏): 修复展开图表下拉框滚动滚轮导致画板缩放的问题 + - fix(数据大屏): 修复组件组合以后,手动编辑组合 W/H,改变的只有组合框,组合内的组件无大小变化的问题 + - fix(数据大屏): 修复分组中富文本编辑状态还可以移动的问题 + - fix(数据大屏): 数据大屏键盘移动组件移动后没有触发保存的问题 #7695 + - fix(数据大屏): 修复 icon 色值不对,暗色下对应 N600-DARK(#A6A6A6) + - fix(数据大屏): 修复右键图标后,鼠标点击图层位置,组件处弹出的菜单不会隐藏的问题 + - fix(数据大屏): 修复图表剪切后选择其他组件可直接对剪切图表组合并显示的问题 + - fix(数据大屏): 修复大尺寸数据大屏初始化未移动到中心点,可能把位置坐标置空的问题 + - fix(数据大屏): 修复数据大屏非图表组件输入样式后回车出现跳转的问题 + - fix(图表): 修复水波图数值过大显示异常的问题 + - fix(图表): 修复表格横向拖动滚动条时表头显示异常的问题 #7510 + - fix(图表): 带钻取等操作的图表切换为水波图、仪表盘、指标卡后将清空钻取框 + - fix: 修复仪表板、数据大屏预览页的标题栏未垂直居中对齐的问题 + - fix: 修复仪表板、数据大屏内修改名称出现的提示内容错误的问题 + - fix: 修复新建可视化资源控制台有异常错误信息的问题 + - fix(模板中心): 修复部分场景模板中心没有出现应用按钮的问题 + - fix(系统设置): 修复查看世界村地图数据,加载时间过长,可能导致浏览器崩溃的问题 + - fix(嵌入式): 修复图表预览中无法展示数据大屏中组合图表的问题 + - fix(嵌入式): 修复嵌入式字体样式问题 + - fix(嵌入式): 修复嵌入式权限问题 + - fix(嵌入式): 修复嵌入式下组合图的问题 + - fix(X-Pack): 修复复制可视化资源出现权限变更的问题 + - fix(X-Pack): 修复没有仪表板创建权限,在工作台可以点击使用模板新建跳转到创建页面的问题 + - fix(X-Pack): 修复认证设置同步失败的问题 + - fix: 修复 dectl 脚本执行条件的判断逻辑 + - fix: 搜索结果页的标题显示与设计稿不符的问题 + - fix: 修复登录日志导致社区版无 license 无法登录的问题 + - fix: 修复资源文件夹可以移动到其自身的子文件夹造成移动后文件夹不显示问题 + + +### v2.2.0 +2024年1月4日 + +!!! Abstract "新增功能 :star2:" + + - feat(数据集): 创建数据集的下拉框⽀持搜索 + - feat(仪表板): 查询组件⽀持下拉选项设置为必填项 + - feat(数据⼤屏): ⽀持分组内组件移动定位操作 + - feat(数据⼤屏): ⽀持双击分组内组件直接编辑组件属性 + - feat(数据⼤屏): 组合到⼀个分组后,在图层管理中,可以查看该分组下的组件列表 + - feat(数据⼤屏): 分组放⼤缩⼩其内部组件同⽐放⼤缩⼩ + - feat(数据⼤屏): 画布放⼤缩⼩其图表⽀持同⽐放⼤缩⼩ + - feat(X-Pack): 列权限⽩名单⽤户设置增加搜索功能 + - feat: 新增 API 接⼝⽂档 + - feat: 新增嵌⼊式应⽤⽇志 + - feat: 模板管理⽀持批量操作 + - feat: 前端静态资源增加访问前缀 + +!!! Abstract "功能优化 :sunflower:" + + - refactor(数据集): 计算字段提示⽂案修改 #7260 + - refactor(数据集): 修改新建计算字段提示 #7168 + - refactor(数据源): 创建完上⼀个数据源后的继续创建操作的默认⽂件夹仍然保持为同⼀个 + - refactor(仪表板): 查询组件配置去除缓存 + - refactor(数据⼤屏): 优化复制操作 + - refactor(数据⼤屏): 图层样式优化 + - refactor(数据⼤屏): ⼤屏分组样式调整 + - refactor(数据⼤屏): 数据⼤屏右键菜单优化 + - refactor(数据⼤屏): 批量操作时,屏蔽其他⽆关操作 + - refactor(X-Pack): ⽤户管理筛选条件优化 + - refactor: 优化模板管理 + - refactor: 模板中⼼按钮⾃适应宽度 + - refactor: 优化模板中⼼默认展开分类 + - refactor: 地理信息上传地图⽂件验证 + - refactor: 优化安装脚本提示 #7247 + - refactor: 优化运⾏模式转换脚本 + - refactor: 处理地理信息树节点超出⻓度时的样式 + - refactor: 持久化⾃定义地图⽂件 + - refactor: 允许社区版修改 admin 密码 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(⼯作台): 处理⼯作台填充⾊内的图标⼤⼩,与仪表板等模块的⼤⼩保持⼀致 + - fix(⼯作台): 修复最近使⽤列表按照最近编辑时间排序的错误 + - fix(数据集): 修复复制数据集并替换数据表保存时出现的异常问题 + - fix(数据源): 修复 API 数据源⽆法更新数据的问题 + - fix(数据源): 修复 Excel 字段类型错误 + - fix(数据源): 修复本地 Excel ⽂件创建的数据源数据预览为空的问题 + - fix(数据源): 修复 API 数据源界⾯自动添加⾏问题 #7335 + - fix(数据源): 修复 API 数据源数据表请求参数全部填满后最后⼀条参数⽆法删除的问题 #733650 fix(图表): 修复汇总表脱敏字段显示不正确的问题 + - fix(图表): 修复表格组合后点击⻚⾯下钻的问题 + - fix(仪表板): 修复查询组件时间范围绑定参数,⽆法获取可绑定参数的问题 + - fix(仪表板): 修复在仪表板⽂件夹上应⽤模板创建仪表板,保存时没有⾃动选择⽂件夹问题 + - fix(仪表板): 修复预览时 Tab 组件也可修改标题的问题 + - fix(仪表板): 修复动态时间范围不正确的问题 + - fix(仪表板): 修复⽇期范围参数化问题 + - fix(仪表板): 查询组件去除包含列权限脱敏和禁⽤的列 + - fix(仪表板): 修复查询组件字段切换的问题 + - fix(仪表板): 修复查询组件的动态时间默认值没有随时间推移⽽⾃动更新的问题 + - fix(仪表板): 修复查询组件中时间范围设置动态默认时间,退出编辑后默认时间清空的问题 + - fix(仪表板): 修复时间戳年⽉组件过滤失效的问题 #7313 + - fix(数据⼤屏): 修复设置⼤屏百分⽐时容易触发删除热键的问题 #7131 + - fix(数据⼤屏): 修复 MAC 端,在⼤屏编辑界⾯按 shift 键后,⽆法使⽤ command 键选择图层进⾏组合的问题 + - fix(数据⼤屏): 修复⼤屏预览分组位置定位不准确的问题 + - fix(系统设置): 基础设置中数据源检测时间间隔限制数值边界 + - fix(系统设置): 修复查看世界村地图数据,加载时间过⻓,可能导致浏览器崩溃的问题 + - fix(X-Pack): 修复删除⽤户后其名下资源⽆法查看的问题 + - fix(X-Pack): 修复在⼩屏幕下横向滚动⽤户列表,列表内容会与操作按钮重叠的问题 + - fix(X-Pack): 开源版可以看到⾏列权限菜单,但切换后显示空⽩⻚⾯ + - fix(X-Pack): 修复权限设置存在的未保存变更切换权限维度的逻辑 + - fix(X-Pack): 修复⽤户批量导⼊使⽤的不是默认密码的问题 + - fix(X-Pack): 修复⽤户批量导⼊的国际化错误问题 + - fix(X-Pack): 脱敏字段删除改为标记 + - fix: 修复升级脚本⽆法在线升级的问题 + - fix: 修改安装脚本⽂案 + - fix: 处理关于⻚⾯备注为空时的显示效果 + - fix: 修复模板管理重命名失效的问题 +### v2.1.0 +2023年12月7日 + +!!! Abstract "新增功能 :star2:" + + - feat(图表): AntV 散点图类别支持重命名 + - feat(数据集): 支持数据集的复制 + - feat(数据源): 支持数据源的复制 + - feat(系统设置): 新增系统参数-基础设置 + - feat(系统设置): 新增系统参数-地图设置 + - feat(X-Pack): 新增平台对接-飞书设置 + - feat(X-Pack): 新增嵌入式管理 + - feat: 新增模板中心 + - feat: 新增模板管理 + - feat: 新增 API Key 配置页 + +!!! Abstract "功能优化 :sunflower:" + + - refactor(工作台): 优化最近使用的查询逻辑 + - refactor(图表): 优化组合图默认图表类型,第一个指标为柱状图,第二个指标为折线图 + - refactor(图表): 富文本、表格等模板适配优化 + - refactor(仪表板): 仪表板、数据大屏中的图表联动字段使用图表制作中参与的字段 + - refactor(仪表板): 社区版仪表板无需展示创建者 + - refactor(数据大屏): 大屏编辑预览状态禁用鼠标比例伸缩功能 + - refactor: 优化预览页按钮样式 + - refactor: 优化 dectl 命令状态检查方法 + - refactor: apisix 支持 Origin 请求头穿透 + - refactor: askToken 认证机制 + - refactor: 菜单缓存机制禁止持久化 + +!!! Abstract "问题修复 :palm_tree:" + + - fix(工作台): 修复工作台间距 + - fix(图表): 修复地图导出图片和 PDF 出现区域空白的问题 + - fix(图表): 修复富文本图表不识别记录数字段的问题 + - fix(查询组件): 修复查询组件参数化未获取最新数据的问题 + - fix(查询组件): 修复外部参数数字区间查询组件数值匹配不正确的问题 + - fix(查询组件): 查询组件配置去除缓存 + - fix(查询组件): 修复查询条件设置默认值为固定时间,保存后默认值被置空的问题 + - fix(媒体组件): 修复反复切换图片组件样式中缩略图没有变化的问题 + - fix(仪表板): 修复编辑仪表板时,新添加图表后,设置图表导致联动、跳转,导致原有图表的联动、跳转标识丢失的问题 + - fix(仪表板): 修复画布区域删除 Tab 组件 Tab 页后,激活的 Tab 页无法立即渲染的问题 + - fix(仪表板): 修复空值联动异常的问题 + - fix(数据大屏): 修复大屏伸缩比例直接输入数字未生效的问题 + - fix(数据大屏): 修复使用快捷键反复切换桌面应用导致的数据大屏组件移动失效的问题 + - fix(公共链接): 修复公共链接文案错误的问题 + - fix(数据集): 修复数据集重命名字段名过长的情况下,右侧功能菜单消失,无法进行其他操作的问题 + - fix(数据集): 修复自定义 SQL 编辑页无法调节左侧侧边栏宽度的问题 #6535 + - fix(数据源): 修复一些数据库不支持的类型 + - fix(数据源): 修复初始化数据引擎失败的问题 + - fix(X-Pack): 修复嵌入式的场景下部分静态资源无法加载的问题 + - fix(X-Pack): 嵌入式下隐藏跳转 + - fix(X-Pack): 修复列权限自定义脱敏格式显示不正确的问题 + - fix(X-Pack): 修复删除用户后其名下资源无法查看的问题 + - fix(X-Pack): 修复某些情况下无法切换组织的问题 + - fix(X-Pack): 修复用户批量导入失败的问题 + - fix: 修复社区版浏览器控制台报错没有许可的问题 + - fix: 修复资源列表树,子目录展开后没有收起,导致上层目录点击收起无响应的问题 + - fix: 修复 docker-compose 文件版本 + - fix: 修改帮助文档链接 + - fix: 修改密码验证规则 + +### v2.0.0 +2023年11月2日 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + 功能模块 + + 功能 + + 功能描述 +
    + 工作台 + + 工作台 + + 支持统计并展示用户信息及个人权限内的资源信息 +
    + 支持快速创建数据源、数据集、仪表板、数据大屏 +
    + 支持搜索及查看最近使用的资源 +
    + 支持查看我的收藏 +
    + 支持查看我的分享 +
    + 仪表板 + + 图表组件 + + 支持通过简单的拖拉或点击操作,制作图表 +
    + 支持多种图表类型,仪表盘、水波图、明细表、汇总表、基础折线图、面积图、堆叠折线图、基础柱状图、堆叠柱状图、百分比柱状图、分组柱状图、分组堆叠柱状图、瀑布图、横向柱状图、横向堆叠柱状图、横向百分比柱状图、饼图、环形图、玫瑰图、玫瑰环形图、雷达图、矩形树图、词云图、地图、散点图、漏斗图、富文本视图等 +
    + 支持指标的多种汇总计算方式,例如求和、平均、最大值、最小值、标准差、方差、计数、去重计数等 +
    + 支持指标的高级计算,例如同环比与占比 +
    + 支持设置指标数值格式,例如小数位数、数量单位、单位后缀、千分符等 +
    + 支持制作图表时快速切换图表类型与关联数据集 +
    + 支持设置钻取、过滤、刷新频率、结果展示条数 +
    + 支持丰富的图表背景、基础样式、标签、提示、标题、图例等设置 +
    + 支持图表联动设置与跳转设置 +
    + 支持柱状图、折线图设置缩略轴与阈值辅助线 +
    + 支持仪表盘设置阈值区间 +
    + 支持表格设置自动滚动、阈值样式 +
    + 支持图表复制、放大、查看数据、导出 Excel 或图片等功能操作 +
    + 其他组件 + + 支持在仪表板中加入查询组件,可定义查询组件样式及标签,可为查询组件设置查询、清空、重置按钮。支持文本下拉、数字下拉、时间、时间范围等类型查询 +
    + 支持富文本组件,可自定义文字内容,可绑定后台动态数据 +
    + 支持图片等媒体组件 +
    + 支持 Tab 组件,支持 Tab 组件样式设置,支持 Tab 每个页签下放入多个其他组件 +
    + 仪表板制作 + + 支持在线编辑仪表板,支持放入各种图表与其他组件 +
    + 支持仪表板通过矩阵模式布局 +
    + 支持仪表板多种配置,包括风格、主题色、组件间隙、刷新频率、图表结果数量、仪表板背景、图表与其他组件的整体配置等 +
    + 支持图表与组件的复制与删除 +
    + 支持图表与组件的批量复制、批量设置、批量删除 +
    + 支持撤销及一键清空仪表板画布内容 +
    + 仪表板管理 + + 支持仪表板的新建、重命名、删除、复制、移动、搜索、预览等 +
    + 支持仪表板分组的新建、重命名、删除、移动等 +
    + 支持以树状形式展示仪表板分组 +
    + 支持导出仪表板为 PDF 或图片 +
    + 支持仪表板生成公共分享链接,并可设置链接有效期及访问密码 +
    + 支持用户收藏仪表板 +
    + 数据大屏 + + 图表组件 + + 支持通过简单的拖拉或点击操作,制作图表 +
    + 支持多种图表类型,仪表盘、水波图、明细表、汇总表、基础折线图、面积图、堆叠折线图、基础柱状图、堆叠柱状图、百分比柱状图、分组柱状图、分组堆叠柱状图、瀑布图、横向柱状图、横向堆叠柱状图、横向百分比柱状图、饼图、环形图、玫瑰图、玫瑰环形图、雷达图、矩形树图、词云图、地图、散点图、漏斗图、富文本视图等 +
    + 支持指标的多种汇总计算方式,例如求和、平均、最大值、最小值、标准差、方差、计数、去重计数等 +
    + 支持指标的高级计算,例如同环比与占比 +
    + 支持设置指标数值格式,例如小数位数、数量单位、单位后缀、千分符等 +
    + 支持制作图表时快速切换关联数据集 +
    + 支持设置钻取、过滤、刷新频率、结果展示条数 +
    + 支持丰富的图表背景、基础样式、标签、提示、标题、图例等设置 +
    + 支持图表联动设置与跳转设置 +
    + 支持柱状图、折线图设置缩略轴与阈值辅助线 +
    + 支持仪表盘设置阈值区间 +
    + 支持表格设置自动滚动、阈值样式 +
    + 其他组件 + + 支持富文本组件,可自定义文字内容,可绑定后台动态数据 +
    + 支持图片等媒体组件 +
    + 支持边框、图标等素材组件 +
    + 大屏制作 + + 支持在线编辑大屏,支持放入各种图表与其他组件 +
    + 支持大屏通过精确定位模式进行布局 +
    + 支持大屏多种配置,包括尺寸、背景、配色、表格配色、刷新配置等 +
    + 支持图表与组件的复制、粘贴、剪切、删除等操作 +
    + 支持图层管理,包括上移、下移、置顶、置底、隐藏、锁定等操作 +
    + 支持编辑大屏时使用快捷键操作 +
    + 支持撤销操作 +
    + 大屏管理 + + 支持大屏的新建、重命名、删除、复制、移动、搜索、预览等 +
    + 支持大屏分组的新建、重命名、删除、移动等 +
    + 支持以树状形式展示大屏分组 +
    + 支持导出大屏为 PDF 或图片 +
    + 支持大屏生成公共分享链接,并可设置链接有效期及访问密码 +
    + 支持用户收藏大屏 +
    + 数据准备 + + 数据集 + + 支持数据集的创建、移动、重命名、删除、预览 +
    + 支持数据集文件夹的创建、移动、重命名、删除 +
    + 支持通过拖拉拽的方式引用数据表 +
    + 支持自定义 SQL,支持快速复制表名与字段名、运行查看结果、设置 SQL 动态参数 +
    + 支持设置多表关联,包括左连接、右连接、内连接 +
    + 支持编辑数据集字段,包括指标与维度切换、更换字段类型、重命名、复制、删除 +
    + 支持批量管理数据集字段 +
    + 支持新建计算字段,内置常用计算函数,支持聚合计算 +
    + 支持二次计算,即基于计算字段创建新的计算字段 +
    + 支持 SQL 加密传输 +
    + 数据源 + + 支持多种数据源,包括多 Sheet 页的 Excel 文件,MySQL / Oracle / SQL Server / MariaDB / PostgreSQL / MongoDB-BI / Db2 / TiDB / Apache Doris / ClickHouse / StarRocks / AWS Redshift / Apache Impala / API 数据源等 +
    + 支持数据源的新建、编辑、重命名、移动、删除 +
    + 支持数据源配置的预览,数据源表的预览 +
    + 支持数据源文件夹的创建、移动、重命名、删除 +
    + 支持数据源有效性校验 +
    + 支持定时检测数据源的连接状态 +
    + 支持 Excel 数据源替换数据与追加数据 +
    + 系统管理
    (X-Pack) +
    + 用户管理 + + 支持用户的新建、编辑、删除、修改密码、启用、禁用、搜索、批量导入等 +
    + 支持为用户分配一个或多个角色 +
    + 支持用户通过切换组织管理及使用不同组织下的资源 +
    + 角色管理 + + 支持角色的新建、编辑、删除、搜索等 +
    + 支持系统内置角色(系统管理员、组织管理员、普通用户)与自定义角色,支持自定义角色继承于系统内置角色 +
    + 支持为角色添加与移除用户 +
    + 组织管理 + + 支持组织的新建、编辑、删除、搜索、排序、移动等 +
    + 支持多级组织的创建与管理 +
    + 支持组织间的用户与资源隔离 +
    + 权限管理 + + 支持按照用户视角窗口或资源视角窗口配置权限 +
    + 支持菜单权限管理,包括工作台、仪表板、数据大屏、数据集、数据源模块的权限管理 +
    + 支持资源权限管理,包括仪表板、数据大屏、数据集、数据源模块下的资源权限管理 +
    + 支持数据集的行级权限控制、支持行级权限使用系统内置变量(用户 ID、用户名、组织、邮箱等) +
    + 支持数据集的列级权限控制,支持设置列的禁用或脱敏,支持自定义脱敏规则 +
    + 支持行列权限的白名单设置 +
    + 集成与扩展
    (X-Pack) +
    + REST API + + 支持完善的 API 接口及文档 +
    + 嵌入式能力 + + 支持通过 DIV 或 iframe 的方式将 DataEase 的单个视图、仪表板或数据大屏页面、仪表板或数据大屏设计器嵌入到第三方系统 +
    diff --git a/docs/chart_style_analysis.md b/docs/chart_style_analysis.md new file mode 100644 index 000000000..142011fb3 --- /dev/null +++ b/docs/chart_style_analysis.md @@ -0,0 +1,288 @@ +!!! Abstract "" + 使用数据可视化分析工具时,图表样式是展现数据的关键因素之一。在 DataEase 开源数据可视化分析平台上,提供了多种图表样式,包括折线图、柱状图、饼图、雷达图、散点图等。不同的图表样式适用于不同的数据类型和数据分析需求,因此在使用 DataEase 时选择合适的图表样式非常重要。 + + 以下将介绍饼图、柱状图、折线图、南丁格尔玫瑰图、漏斗图、雷达图、瀑布图、词云图等图表样式,对 DataEas 的多种图表样式进行解析,旨在帮助用户更好地展现数据并深入地理解数据的内涵。 +## 1 饼图 + +!!! Abstract "" + **释义:** + 饼图,或称饼状图,是一个划分为几个扇形的圆形统计图表,用于描述量、频率或百分比之间的相对关系,每个扇区的弧长(以及圆心角和面积)大小为其所表示的数量的比例。 +![饼图解释](https://blog.fit2cloud.com/upload/%E5%9B%BE01.png){ width="900px" } +!!! Abstract "" + **适用场景:** + + * 想要突出表示某个部分在整体中所占比例; + * 分类数量最好不大于 5 个; + * 各不同分类间的占比差异明显。 + + **辅助使用方式:** + + * 显示出各扇区占比数据,可以起到辅助阅读的作用; + * 将数值进行排序,扇区按照大小顺序依次展示,可以起到辅助阅读的作用。 + +![饼图扇区占比数据](https://blog.fit2cloud.com/upload/%E5%9B%BE02.png){ width="900px" } + +![饼图扇区顺序依次展示](https://blog.fit2cloud.com/upload/%E5%9B%BE03.png){ width="900px" } + +!!! Abstract "" + **不适用场景:** + + * 需要精确表达信息时或者数据之间差异较小的情况下; + + 部分统计学家认为,将饼图用于表达信息的效果很差。虽然饼图在商业领域和杂志中的使用非常广泛,但在科学文献中却很少用到饼图。原因是饼图用面积取代了长度,这样就加大了对各个数据进行比较的难度。由于感知力的差异与实际差异呈线性相关,长度更适宜用于量度。考虑到这种情况,当数值较为接近时或在信息上我们更倾向于精确的表达时,比起饼图更建议使用柱状图。 + * 当图表需要展现的类型过多时。 + +![饼图信息展示](https://blog.fit2cloud.com/upload/%E5%9B%BE04.png){ width="900px" } + +![饼图类别展示](https://blog.fit2cloud.com/upload/%E5%9B%BE05.png){ width="900px" } + +## 2 柱状图 + +!!! Abstract "" + **释义:** + 柱状图是一种以长方形的长度为变量的统计图表。柱状图用来比较两个或以上的价值(不同时间或者不同条件),只有一个变量,通常利用于较小的数据集分析,柱状图亦可横向排列。 +![柱状图数据](https://blog.fit2cloud.com/upload/%E5%9B%BE06.png){ width="900px" } + +![柱状图展示](https://blog.fit2cloud.com/upload/%E5%9B%BE07.png){ width="900px" } +!!! Abstract "" + 作为人们最常用的图表之一,柱状图也衍生出了多种多样的图表形式。例如,将多个并列的类别聚类、形成一组,再在组与组之间进行比较,这种图表叫做“分组柱状图”或“簇状柱形图”;将类别拆分称多个子类别,形成“堆叠柱状图”;也可以将柱形图与折线图结合起来,共同绘制在一张图上,形成“双轴图”。 +!!! Abstract "" + **分组柱状图:** + 由子类别来划分一组有几条柱子,形成分组柱状图 +![分组柱状图展示](https://blog.fit2cloud.com/upload/%E5%9B%BE08.png){ width="900px" } +!!! Abstract "" + **堆叠柱状图:** + 由堆叠项将一个类别拆成多个子类别形成堆叠柱状图。 +![堆叠柱状图展示](https://blog.fit2cloud.com/upload/%E5%9B%BE09.png){ width="900px" } +!!! Abstract "" + **双轴图:** + 双轴图的指标分为左侧指标和右侧指标,对应的坐标轴分别为坐标 Y 轴的左轴(主轴)和右轴(副轴)。通常采用柱状图与折线图搭配使用的方式,下图展示了一年中各个月份的销量(柱状图)与目标完成率(折线图) +![双轴图展示](https://blog.fit2cloud.com/upload/%E5%9B%BE10-ypwv.png){ width="900px" } + + +!!! Abstract "" + **适用场景:** + + * 柱状图最适合对分类的数据进行比较,尤其是当数值比较接近的时候。由于人眼对于高度的感知优于其他视觉元素(例如面积、角度等),因此使用柱状图更加合适。 + + **不适用场景:** + + * 柱状图最核心的功能是比较,比较的核心是高度。如果人为地改变高度,那么数据间的比例关系会失常。如下图,当柱状图的起始值不为 0 时,则很难通过柱状图体现出数据间的差值和比例关系。 + +![柱状图场景展示](https://blog.fit2cloud.com/upload/%E5%9B%BE11.png){ width="900px" } + +## 3 折线图 + +!!! Abstract "" + **释义:** + 折线图是把许多的点用直线连接形成的统计图表。折线图是许多领域都会使用到的基础图表,常用来观察数据在一段时间之内的变化,因此其X轴常为时间,这种折线图又称为趋势图。折线图用于分析事物随时间或有序类别而变化的趋势。如果有多组数据,则可用于分析多组数据随时间变化或有序类别的相互作用和影响。折线的方向表示正/负变化,折线的斜率则表示变化的程度。 +![折线图解释](https://blog.fit2cloud.com/upload/%E5%9B%BE12.png){ width="900px" } +!!! Abstract "" + **适用场景:** + + * 同一变量随时间或有序类别的变化。如下图所示,该折线图可以表现某公司一年中各个月份的销量数据变化趋势; + + * 多个变量随时间或有序类别的变化,可同时观察单变量的走势以及多变量的对比,例如以下两个场景: + 不同年份下各个月之间的销售额对比;不同指标变量之间是否存在影响关系。 + +![折线图场景展示1](https://blog.fit2cloud.com/upload/%E5%9B%BE13.png){ width="900px" } + +![折线图场景展示2](https://blog.fit2cloud.com/upload/%E5%9B%BE14.png){ width="900px" } + + +!!! Abstract "" + **不适用场景:** + + * 节点过多,整体展示过于密集,对于每个点的信息很难准确地对应; + * 同一图中指标数据过多,多折线造成堆积,难以聚焦到重点; + * 变量数值大多数情况为 0。 +![折线图不适用场景1](https://blog.fit2cloud.com/upload/%E5%9B%BE15.png){ width="900px" } + +![折线图不适用场景2](https://blog.fit2cloud.com/upload/%E5%9B%BE16.png){ width="900px" } + +![折线图不适用场景3](https://blog.fit2cloud.com/upload/%E5%9B%BE17.png){ width="900px" } + +!!! Abstract "" + **辅助用法:** + + * 使用缩略轴辅助 X 轴数据点过于密集的情况。 + + 做成可交互版本,打开图表的缩略轴,设置一个默认展示范围,让用户集中在一个特定的时间选区。 + + * 设置预警线,辅助识别“标准值”以外的数据。 + +![折线图辅助用法1](https://blog.fit2cloud.com/upload/%E5%9B%BE18.png){ width="900px" } +!!! Abstract "" + + 分析数据时可以拖动缩略轴查看不同的时间段,或是拖动缩略轴的起始/终止点,用来扩大/缩小每次的数据展示范围。 + +![折线图辅助用法2](https://blog.fit2cloud.com/upload/%E5%9B%BE19.png){ width="900px" } + +![折线图辅助用法3](https://blog.fit2cloud.com/upload/%E5%9B%BE20.png){ width="900px" } +!!! Abstract "" + + 当以时间作为 X 轴画折线图时,数据必须有着一致的时间间隔,否则数据会产生误导(如下图所示)。画图时需务必保证时间间隔的一致性。 +![折线图注意事项](https://blog.fit2cloud.com/upload/%E5%9B%BE21.png){ width="900px" } + +## 4 南丁格尔玫瑰图 + +!!! Abstract "" + **释义:** + 南丁格尔玫瑰图又名鸡冠花图、极坐标区域图。尽管外形很像饼图,但本质上来说,南丁格尔玫瑰图更像在极坐标下绘制的柱状图或堆叠柱状图,只不过它是用半径来反映数值(而饼图是以扇形的弧度来表示数据的)。 + + 由于半径和面积之间是平方的关系,视觉上南丁格尔玫瑰图会将数据的比例夸大。因此,当我们追求数据的准确性时,南丁格尔玫瑰图不一定是个好的选择。但反过来说,当我们需要对比非常相近的数值时,适当的夸大会有助于分辨数据的差异性。 + +![南丁格尔玫瑰图数据](https://blog.fit2cloud.com/upload/%E5%9B%BE22.png){ width="900px" } + +![南丁格尔玫瑰图数据](https://blog.fit2cloud.com/upload/%E5%9B%BE23.png){ width="900px" } + + + +!!! Abstract "" + **适用场景:** + + * 对比不同分类的大小,且各分类值差异不是太大。 + + +![南丁格尔玫瑰图场景展示](https://blog.fit2cloud.com/upload/%E5%9B%BE24.png){ width="900px" } + +!!! Abstract "" + **不适用场景:** + + * 分类过少的场景。例如,只有 2 类时,可直接用饼图或者环图来表示。 + * 当数值差异较大、或者希望精确地比较数值大小。南丁格尔玫瑰图是将数值映射到半径上,而扇形的面积和半径是平方关系,这样从视觉上看,数值的差异会被扩大。因此,当数值差异较大、或者希望精确地比较数值大小时,推荐使用柱状图。 + + +![南丁格尔玫瑰图不适用场景展示1](https://blog.fit2cloud.com/upload/%E5%9B%BE26.png){ width="900px" } + +![南丁格尔玫瑰图不适用场景展示2](https://blog.fit2cloud.com/upload/%E5%9B%BE27.png){ width="900px" } + +## 5 漏斗图 + +!!! Abstract "" + **释义:** + 漏斗图适用于业务流程比较规范、周期长、环节多的单流程单向分析。通过漏斗各环节业务数据的比较,能够直观地发现和说明问题所在的环节,进而做出决策。 + + 漏斗图的起始总是 100%,并在各个环节依次减少,漏斗图用梯形面积表示某个环节业务量与上一个环节之间的差异。漏斗图从上到下,有逻辑上的顺序关系,表现了随着业务流程的推进业务目标完成的情况,比如用户的转化情况、订单的处理情况、招聘的录用情况等。一般来说,所有梯形的高度应该是一致的,这有助于用户辨别数值间的差异。 + + +![漏斗图展示](https://blog.fit2cloud.com/upload/%E5%9B%BE28.png){ width="900px" } + + +!!! Abstract "" + **适用场景:** + + 对比不同分类的大小,且各分类值差异不是太大。 + + +![漏斗图场景展示](https://blog.fit2cloud.com/upload/%E5%9B%BE29.png){ width="900px" } + +!!! Abstract "" + **不适用场景:** + + * 漏斗图不适合没有逻辑关系的数据。换句话说,如果数据不构成“流程”,那么就不能使用漏斗图。如下图所示,该漏斗图展示了大学一些课程的学生到课率,每门课之间的到课人数没有逻辑上的影响关系,不构成漏斗的流程。 + + +![漏斗图适用场景展示1](https://blog.fit2cloud.com/upload/%E5%9B%BE30.png){ width="900px" } + +!!! Abstract "" + 作为一种统计图表,漏斗图的“长相”本质上是由数据决定的。梯形的高度、面积都是有意义的,不可以随意篡改。在传达数据时,漏斗图是通过面积表示的,对于人眼来说,面积的识别本来就不太容易,因此如果我们在制作漏斗图时,改变漏斗中每一个梯形的高度,那么识别起来就十分困难。 + +## 6 雷达图 + +!!! Abstract "" + **释义:** + 雷达图是一种显示多变量数据的图形方法。雷达图通常从同一中心点开始等角度间隔地射出三个以上的轴,每个轴代表一个定量变量,各轴上的点依次连接成线或几何图形。每个变量都具有自己的轴,彼此间的距离相等,所有轴都有相同的刻度。在将数据映射到这些轴上时,需要注意预先对数值进行标准化处理,保证各个轴之间的数值比例能够进行同级别的比较。 + + +![雷达图展示](https://blog.fit2cloud.com/upload/%E5%9B%BE31.png){ width="900px" } + +![雷达图数据展示](https://blog.fit2cloud.com/upload/%E5%9B%BE32.png){ width="900px" } + + +!!! Abstract "" + **适用场景:** + + * 雷达图可以用来在变量间进行对比,或者查看变量中有没有异常值。如下图所示,该人员在所需的各项技能上,数据分析这一项明显较为薄弱。 + * 多幅雷达图之间或者雷达图的多层数据线之间,还可以进行总体数值情况的对比。以下面两张图为例,对甲乙两位员工的技能进行对比,可以较明显地比较出两位员工分别擅长与不擅长的事情。 + * 在某一数据对象由多个特征类别构成的情况下,用雷达图来描绘这个数据对象,例如食品的营养成分(糖、维生素、矿物质、脂肪、水等)。 + +![雷达图适用场景展示1](https://blog.fit2cloud.com/upload/%E5%9B%BE33.png){ width="900px" } + +![雷达图适用场景展示2](https://blog.fit2cloud.com/upload/%E5%9B%BE34.png){ width="900px" } + +![雷达图适用场景展示3](https://blog.fit2cloud.com/upload/%E5%9B%BE35.png){ width="900px" } + +!!! Abstract "" + **不适用场景:** + + * 分类类型过多,导致轴过多,显示混乱; + * 不可在统一程度上标准化的情况; + * 雷达图中层叠的多边形过多的情况。 + + + +![雷达图不适用场景展示1](https://blog.fit2cloud.com/upload/%E5%9B%BE36.png){ width="900px" } + +![雷达图不适用场景展示2](https://blog.fit2cloud.com/upload/%E5%9B%BE37.png){ width="900px" } + +##7 瀑布图 + +!!! Abstract "" + **释义:** + 瀑布图是由麦肯锡顾问公司所独创的图表类型,因为形似瀑布流水而称之为瀑布图。此种图表采用绝对值与相对值结合的方式,适用于表达数个特定数值之间的数量变化关系 + + +![瀑布图展示](https://blog.fit2cloud.com/upload/%E5%9B%BE38.png){ width="900px" } +!!! Abstract "" + 在瀑布图中,图表的每个柱子的起始位置为上一根柱子的顶端,若数值增加(正数),柱子则向上延伸,若数值减少(负数),柱子则向下延伸;每个柱子的顶端即为当前变化情况下的最终数量,即小计,最后的柱子即为最终数据的最终数量,即总计。通常我们将上升与下降的柱子使用不同的颜色标识,更加有利于查看。 +![瀑布图数据展示](https://blog.fit2cloud.com/upload/%E5%9B%BE39.png){ width="900px" } + + +!!! Abstract "" + **适用场景:** + + * 显示结果累积的过程,解释从一个数字到另一个数据的变化过程,表达数量的变化关系。如下图所示,该瀑布图展示了公司每年的人员流动情况,每年的入职与离职人数变化。 + * 展示总分结构,通过柱图垂直高度展示数据,直观地展示指标的构成,可以帮助用户快速地找到影响总值的关键因素。相比饼图或常规的柱形图,瀑布图可以将总体值与细分维度值同时展示出来。如下图所示,该瀑布图展示了公司各项成本的支出情况,左侧各个柱子为各项子类的数值,数值越大则对应的柱子高度越高,最右侧的柱子则展示了各个子类所汇总的总数据,即公司总的支出金额。 + +![瀑布图适用场景展示1](https://blog.fit2cloud.com/upload/%E5%9B%BE40.png){ width="900px" } + +![瀑布图适用场景展示2](https://blog.fit2cloud.com/upload/%E5%9B%BE41.png){ width="900px" } + + +!!! Abstract "" + **不适用场景:** + + * 如果数据没有共同的基线,那么就无法在同一标准线上衡量各个子类的详细数值差异。 + +## 8 词云图 + +!!! Abstract "" + **释义:** + 词云图又称文字云,是文本数据的视觉表示,由词汇组成类似云的彩色图形,可以用于展示大量文本数据。每个词的重要性以字体大小或颜色显示,文本出现次数越多,字体就越大,更容易被看到。 + + 词云图可以对出现频率较高的“关键词”予以视觉上的突出展示,形成关键词云层,从而过滤掉大量冗余的文本信息,使浏览者只要一眼扫过文本就可以接收到重点。词云图的优势在于可以快速感知最突出的文字信息,或者区别权重不同的文字,而且可以展示大量文本。 + + +![词云图展示](https://blog.fit2cloud.com/upload/%E5%9B%BE42.png){ width="900px" } + +!!! Abstract "" + **适用场景:** + + * 显做用户画像,对用户进行聚类,实现精细化营销; + * 直观展示文本频率,对比文字重要程度,突出重点文字。 + + **不适用场景:** + + * 不适合展现数据太少的数据集; + * 不适合展现区分度不大的数据,即无重点关键词的情况; + * 在展示时无法区分出各个数值之间具体的差异大小。 + +![词云图不适用场景展示1](https://blog.fit2cloud.com/upload/%E5%9B%BE43.png){ width="900px" } + +![词云图不适用场景展示2](https://blog.fit2cloud.com/upload/%E5%9B%BE44.png){ width="900px" } + +!!! Abstract "" + DataEase 开源数据可视化分析平台中的多种图表样式,包括饼图、柱状图、折线图、南丁格尔玫瑰图、漏斗图、雷达图、瀑布图和词云图,这些图表样式可以帮助用户更好地展示和解析数据,满足不同场景的需求。 + + 在未来的产品迭代中,DataEase 将会提供更多的图表样式,满足用户更多的场景需求,帮助用户根据不同的数据特点,灵活准确地解析和展示数据 \ No newline at end of file diff --git a/docs/contact.md b/docs/contact.md new file mode 100644 index 000000000..8d2e2281d --- /dev/null +++ b/docs/contact.md @@ -0,0 +1,29 @@ +## 1 微信公众号 + +![wechat-official](img/wechat-official.jpg) + +## 2 开源社区论坛 + +!!! Abstract "" + 大家可以在这里搜索、咨询、讨论问题,发表自己的见解与想法。 + **飞致云官方开源社区论坛**:[开源社区论坛](https://bbs.fit2cloud.com/c/de/6) + +## 3 学习认证 + +![wechat-official](img/学习认证.jpg){ width="156px" } + +## 4 项目地址 + +!!! Abstract "" + - [DataEase][dataease] ![dataease stars][dataease stars] + +## 5 联系方式 + +!!! Abstract "" + - 官网:http://www.dataease.cn + - 邮箱:support@fit2cloud.com + - 电话:400-052-0755 + + +[dataease]: https://github.com/dataease/dataease +[dataease stars]: https://img.shields.io/github/stars/dataease/dataease.svg \ No newline at end of file diff --git a/v2/css/extra.css b/docs/css/extra.css similarity index 100% rename from v2/css/extra.css rename to docs/css/extra.css diff --git a/docs/customercase.md b/docs/customercase.md new file mode 100644 index 000000000..e094311be --- /dev/null +++ b/docs/customercase.md @@ -0,0 +1,27 @@ +## 1 案例研究 + +!!! Abstract "" + - [辛格林电梯借助 DataEase 实现数据整合与智能展示](https://blog.fit2cloud.com/?p=a3cf8301-f10e-4597-87bb-76bb59c7ebc2) + - [DataEase 助力众陶联应对产业链数据可视化挑战](https://blog.fit2cloud.com/?p=1a4f85dd-c73c-4286-a667-3596514cf617) + - [百果园选择 DataEase 搭档蜜蜂微搭实现企业数据应用一体化](https://blog.fit2cloud.com/?p=364cd03d-9e73-4bed-8add-5d8ec4d9bf6d) + - [作为一家BI厂商,飞致云是如何人人使用 DataEase 的?](https://blog.fit2cloud.com/?p=69eecf17-13c0-4994-8bba-a2a76352d2b4) + - [北京交通大学基于 DataEase 开展多场景校园数据分析与展示](https://blog.fit2cloud.com/?p=9cdd8a00-5094-49c9-879e-a419546a0592) + - [DataEase助力无锡布勒业务数据可视化建设](https://blog.fit2cloud.com/?p=075bcf97-132f-4e79-b993-a1ec744859b5) + - [DataEase 助力亚加达智能医学实验室场景 BI 展示](https://blog.fit2cloud.com/?p=e1d298cf-c239-438f-807c-19ab1e8bac20) + - [企业 BI 选型:从 Quick BI、Superset 到 DataEase](https://blog.fit2cloud.com/?p=b86347ff-628f-4d97-b63c-308aea74adf9) + - [DataEase 助力丹霞生物实现数据驱动的企业管理](https://blog.fit2cloud.com/?p=cdf2a37f-c11b-46cb-b287-8bc32dabd879) + - [小牛电动通过 DataEase 进行业务数据可视化分析](https://blog.fit2cloud.com/?p=edb31b15-4ce2-4fde-bf3b-3aa6cf185031) + - [用 DataEase 开源 BI 工具分析店铺营收未达预期原因](https://blog.fit2cloud.com/?p=3937) + +## 2 仪表板展示 + +!!! Abstract "" + - [DataEase 看世界:数据呈现世界油价变化](https://blog.fit2cloud.com/?p=9d29cdbf-88c7-40e5-8ab5-0d42af7f54ad) + - [X-lab 开放实验室 GitHub 开源项目洞察大屏](https://blog.fit2cloud.com/?p=47292073-965b-49c3-a56b-92c9d3e915ed) + - [DataEase 看中国:数据呈现中国能源发展情况](https://blog.fit2cloud.com/?p=5367) + - [DataEase 看中国:数据呈现中国农业经济发展情况](https://blog.fit2cloud.com/?p=3830) + - [DataEase 看中国:数据呈现中国资本市场](https://blog.fit2cloud.com/?p=3701) + - [使用 DataEase 分析高三月考成绩](https://blog.fit2cloud.com/?p=3550) + - [使用 DataEase 开源工具实时直击上海疫情](https://blog.fit2cloud.com/?p=3522) + - [使用 DataEase 开源工具制作游戏数据仪表板](https://blog.fit2cloud.com/?p=3515) + - [使用 DataEase 开源工具制作集团网点运营驾驶舱](https://blog.fit2cloud.com/?p=3388) diff --git a/.nojekyll b/docs/dashboardcase.md similarity index 100% rename from .nojekyll rename to docs/dashboardcase.md diff --git a/docs/desktop.md b/docs/desktop.md new file mode 100644 index 000000000..908060790 --- /dev/null +++ b/docs/desktop.md @@ -0,0 +1,93 @@ +## 1 桌面版介绍 +!!! Abstract "" + [**DataEase 桌面版**](https://www.dataease.cn/)是一款永久免费的 BI 工具。更符合国人使用习惯,提供简单易用的数据可视化分析功能。 + + - 常用的数据源支持:支持 OLTP、OLAP、数据仓库、数据湖、数据文件和 API 接口等多种数据源。 + - 多样的图表支持:支持指标图、表格、线/面图、柱/条图、分布图、地图、关系图、双轴图等各种图表类型。 + - 丰富的业务场景模板:提供 200+ 高质量大屏模板,覆盖制造、零售电商、银行金融、医药健康、交通物流等各行各业。 + +![桌面版介绍](newimg/桌面版效果.gif){ width="900px" } + + +## 2 安装指南 +### 2.1 安装准备 +!!! Abstract "" + + - 端口检查:DataEase 的访问端口为 8100,请确保本机的 8100 端口未被占用,以避免端口冲突。 + - 版本检查:请确认本机未安装其他版本的 DataEase(如社区版、企业版等),以防止配置冲突。 + - 离线安装包下载:[**访问 DataEase 桌面版官方网站**](https://www.dataease.cn/),点击 【立即下载】 按钮,系统将根据您的操作系统自动下载对应版本的安装包。 + + **注意:当前支持的系统和版本(其他平台暂不支持)**: + + - Windows 系统 - [Windows(x86)](https://community.fit2cloud.com/download/de-desktop/latest?arch=win_amd64) :支持 Windows 10 或更高版本。 + - MacOS 系统 - MacOS ([x86](https://community.fit2cloud.com/download/de-desktop/latest?arch=mac_amd64) & [arm64](https://community.fit2cloud.com/download/de-desktop/latest?arch=mac_arm64)):支持 MacOS 11(Big Sur)或更高版本。 + - Linux 系统 - [Linux(x86)](https://community.fit2cloud.com/download/de-desktop/latest?arch=linux_amd64):只支持 64 位 Linux,不支持 32 位 Linux。 + + +### 2.2 安装步骤 + +!!! Abstract "" + **Windows 系统**: + + 安装包解压后,进入解压后的文件夹,双击 DataEase.exe 启动程序。如果弹出安全提示或者访问网络安全等,一律信任。 + +!!! Abstract "" + **MacOS 系统**: + + 双击解压文件后,点击应用图标启动程序。如有安全提示,一律信任。 + + 注意:如 M1 等 arm 架构的设备提示文件损坏,可参考:https://kb.fit2cloud.com/?p=2b3dcedd-bec9-47dd-863f-ef8e1571fc51。 + + +!!! Abstract "" + **Linux 系统**: + 以 Ubuntu 系统为例的安装步骤: + + - 安装命令:sudo dpkg -i [package],例如:sudo dpkg -i dataease_1.0.0_amd64.deb。 + - 在启动台找到 DataEase 图标,点击启动。 + + 注意:Ubuntu、Debian、openSUSE 等系统时,请勿使用 root 用户,需使用普通用户安装。卸载使用 sudo dpkg -P dataease。卸载使用 sudo dpkg -P dataease。 + + + +### 2.3 升级操作 + +!!! Abstract "" + 下载最新版对离线安装包:[**DataEase 桌面版官方网站**](https://www.dataease.cn/)。 + + - Windows 系统和 MacOS 系统在原存储位置进行解压,解压完成即可完成升级。 + - Linux 系统利用命令行安装后完成升级, + +### 2.4 备份还原 + +!!! Abstract "" + DataEase 静态资源目录为用户主目录,具体存放位置根据系统有所区别: + + - Windows:<系统盘>:/Users/<用户名> + - Mac:/Users/<用户名> + - Linux:/home/<用户名> + + + **注意:桌面版不支持回退操作,如果要运行新版本,建议先数据备份。备份 DataEase 将数据目录进行备份压缩即可。还原 DataEase 则把原环境里的运行目录进行覆盖。** + +!!! Abstract "" + 如果曾使用过公测版的 DataEase 桌面版,在切换到正式版后,需要手动调整引擎设置中的 URL,将其修改为用户主目录路径。例如: + + - 公测版 URL:jdbc:h2:/opt/... + - 正式版 URL:jdbc:h2:/Users//opt/... + + +## 3 注意事项 +### 3.1 桌面版与服务器版差异 +!!! Abstract "" + 桌面版因架构不同,无法支持以下服务器版的部分功能: + + - 分享链接:不支持创建公共连接,无法分享仪表板或数据大屏链接。 + - 消息中心:不支持消息通知功能,无法接收系统推送的通知。 + - 帮助功能:无法访问帮助、论坛、博客以及企业版试用功能。 + - 系统设置:不支持系统设置中的“新页面打开方式”选项。 + - 字体管理:不支持自定义字体的添加与管理功能。 + - 移动端支持:仅限桌面环境运行,不支持移动设备访问。 + - **X-Pack 功能:不支持升级为企业版,无法使用如平台对接等功能。** + + 详细功能请参考本文档 [**快速入门**](../quick_start/) 和 [**功能手册**](../user_manual/general/) 。 diff --git a/docs/dev_manual/dev_datasource_plugin.md b/docs/dev_manual/dev_datasource_plugin.md new file mode 100644 index 000000000..5d54a1b80 --- /dev/null +++ b/docs/dev_manual/dev_datasource_plugin.md @@ -0,0 +1,251 @@ +!!! Abstract "" + DataEase 支持引入数据源插件机制以提高系统可扩展性,本文介绍如何从零开始开发一个 DataEase 数据源插件。 + **注意:** 插件开发面向程序员,涉及到的技术有 Java 、Vue。 + +## 1 插件框架 + +### 1.1 获取框架 + +!!! Abstract "" + 进入 GitHub 下载源码:https://github.com/dataease/dataease/tree/dev/extensions 。 + +### 1.2 安装依赖 + +!!! Abstract "" + 如果能正常安装所有依赖则跳过此步骤,否则继续: + 插件框架依赖 dataease-extension-sdk,如果提示缺少这部分依赖,需要下载 sdk 源码手动安装; + sdk 源码地址:https://github.com/dataease/dataease/tree/dev/sdk 。 + 下载完成在根目录下执行: + ```shell + mvn clean install + ``` + 完成后请再刷新插件框架 Maven 依赖。 + + +### 1.3 运行测试 + +!!! Abstract "" + 在插件框架根目录 dataease-extensions 下执行: + ```shell + cd dataease-extensions-view/kingbase/kingbase-frontend + npm i + npm run dev(打包指令:npm run buildPlugin) + ``` + 如下图所示,能正常运行说明框架没有问题。 + +![kingbase-frontend](../img/dev_manual/kingbase-frontend.png){ width="900px" } + +## 2 插件 demo + +!!! Abstract "" + 下面以 Kingbase V8 数据库为例,详细描述如何使用插件框架开发一个数据源插件。 + +### 2.1 创建 demo 工程 + +!!! Abstract "" + 使用 IDEA 创建 Maven 工程名为 kingbase,删除 src,修改 pom.xml 并增加如下配置。 + **提示: 创建的 demo 工程可以是独立的,不是一定要在框架源码中创建。** + +![demo-pom](../img/dev_manual/demo-pom_kingbase.png){ width="900px" } + +!!! Abstract "" + **前端代码:** + 如下示例图,在前面下载的插件框架中找到插件前端 demo ,整个文件夹复制到上步创建好的 kingbase 工程下,并重命名为 kingbase-frontend 。 + +![kingbase-frontend-dome](../img/dev_manual/kingbase-frontend-dome.png){ width="900px" } + +!!! Abstract "" + **修改 kingbase-frontend 目录下的 pom.xml 。** + +![view-3dpie-front-pom.png](../img/dev_manual/kingbase-frontend-pom.png){ width="900px" } + +!!! Abstract "" + **把修改完成的 pom 加载为 Maven 模块。** + +![maven](../img/dev_manual/maven_kingbase.png){ width="900px" } + +!!! Abstract "" + **修改 kingbase/pom.xml 建立父子级关系,注意一定是 frontend 在前。** + +![kingbase](../img/dev_manual/kingbase-pom2.png){ width="900px" } + +!!! Abstract "" + **提示:后端代码同上操作。** + +### 2.2 前端实现 + +!!! Abstract "" + 将 dm.vue 重命名为 kingbase.vue,然后写入前端代码,包括金仓数据源连接信息录入样式以及对应的逻辑。 + +![kingbase_vue](../img/dev_manual/kingbase_vue.png){ width="900px" } + +!!! Abstract "" + 修改对应的多语言文件(zh.js/tw.js/en.js)。 + +![en_js](../img/dev_manual/en_js.png){ width="900px" } +![tw_js](../img/dev_manual/tw_js.png){ width="900px" } +![zh_js](../img/dev_manual/zh_js.png){ width="900px" } + +!!! Abstract "" + 代码修改完成后需要配置 webpack 插件打包,此配置可分别打包 Vue 成单独的 js 文件。 + +![webpack](../img/dev_manual/webpack.png){ width="900" } + +!!! Abstract "" + 图片文件调整,如下图所示。 + +![picture](../img/dev_manual/picture.png){ width="900px" } + +### 2.3 后台实现 + +!!! Abstract "" + 首先将 dm 文件夹重命名为 kingbase,以及其他相关的后台逻辑文件重命名为 kingbaseXXX。 + +![kingbase](../img/dev_manual/kingbase.png){ width="900px" } + +!!! Abstract "" + 在 KingbaseConfig.java 文件中写入驱动信息。 + +![KingBaseConfig](../img/dev_manual/KingBaseConfig.png){ width="900px" } + +!!! Abstract "" + 在 KingbaseDsProvider.java 文件中写入数据库信息获取逻辑。 + +![KingBaseDsProvider](../img/dev_manual/KingBaseDsProvider.png){ width="900px" } + +!!! Abstract "" + 在 KingbaseConstants.java 文件中写入基本的数据库关键字。 + +![KingBaseConstants](../img/dev_manual/KingBaseConstants.png){ width="900px" } + +!!! Abstract "" + 在 KingbaseQueryProvider.java 文件中写入查询逻辑。 + +![KingBaseQueryProvider](../img/dev_manual/KingBaseQueryProvider.png){ width="900px" } + +!!! Abstract "" + 在 KingbaseService.java 文件中写入连接数据源的一些基础信息。 + +![KingBaseService](../img/dev_manual/KingBaseService.png){ width="900px" } + +!!! Abstract "" + 在 kingbase 目录下创建文件夹 kingbaseDriver,并将数据库驱动文件放入此文件夹中。 + +![kingbaseDriver](../img/dev_manual/kingbaseDriver.png){ width="900px" } + +### 2.4 打包测试 + +!!! Abstract "" + **在根目录下执行:** + ```shell + mvn clean package + ``` + +![package_kingbase](../img/dev_manual/package_kingbase.png){ width="900px" } + +!!! Abstract "" + 如下示例图,在前面下载的插件框架中找到 demo 中的 plugin.json 文件以及 build.sh 文件,将文件复制到上步创建好的 kingbase 工程下。 + +![plugin_build_json](../img/dev_manual/plugin_build_json.png){ width="900px" } + +!!! Abstract "" + 将 build.sh 和 plugin.json 文件进行修改,如下图所示。 + +![build_json](../img/dev_manual/build_json.png){ width="900px" } + +![plugin_json](../img/dev_manual/plugin_json.png){ width="900px" } + + + + + + + + + + + + + + + + + + + + + + + + + +
    + name + + 插件名称(保证唯一) +
    + store + + 来源 +
    + free + + 是否免费 +
    + cost + + 多少钱 +
    + category + + 插件类别 +
    + descript + + 描述 +
    + version + + 版本对应的后台工程版本 +
    + creator + + 作者 +
    + moduleName + + 模块名称对应后台工程模块名称 +
    + require + + 要求 DataEase 最低版本 +
    + dsType + + 数据来源类型 +
    + +!!! Abstract "" + 在 kingbase 目录下执行: + ```shell + sh bulid.sh + ``` + +![build](../img/dev_manual/build1.png){ width="900px" } + +![build](../img/dev_manual/build2.png){ width="900px" } + + +### 2.5 安装插件 + +!!! Abstract "" + **在【系统管理】插件管理安装插件,上传已打包的 kingbase.zip 文件。** + +![安装插件_kingbase](../img/dev_manual/安装插件_kingbase.png){ width="900px" } + +!!! Abstract "" + 安装成功后,在插件管理列表多一条记录,同时新建插件的类型选项也会多出一种类型。 + **提示:** 如果页面没显示新的数据源插件类型,请清除浏览器缓存重新登录。 + +![kingbase_数据源插件](../img/dev_manual/kingbase_数据源插件.png){ width="900px" } + diff --git a/docs/dev_manual/dev_deployment.md b/docs/dev_manual/dev_deployment.md new file mode 100644 index 000000000..6f7859471 --- /dev/null +++ b/docs/dev_manual/dev_deployment.md @@ -0,0 +1,368 @@ +!!! Abstract "" + **本文以 CentOS 8.3 为例,举例说明如何以源码的形式编译 DataEase 工程,并进行前后端分离部署。** + 本文所有操作均在阿里云(新加坡区)4C8G 环境中执行。 + +## 工具准备 + +### 1.安装 Git 和 jdk 8 + +!!! Abstract "" + ```shell + yum install -y git java-1.8.0-openjdk* + ``` + +### 2.安装配置 Maven + +!!! Abstract "" + ```shell + # 下载并安装 Maven + wget https://dlcdn.apache.org/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz + + tar zxvf apache-maven-3.8.4-bin.tar.gz + + mv apache-maven-3.8.4 /opt + + echo "export M2_HOME=/opt/apache-maven-3.8.4" >> ~/.bashrc + + echo "export PATH=\$PATH:\$M2_HOME/bin" >> ~/.bashrc + + source ~/.bashrc + ``` + 默认安装 Maven 后,在 Maven 安装目录中有配置文件 settings.xml,**该文件中默认开启了 mirror,可以将该 mirror 设置注释掉:** + ```xml + + maven-default-http-blocker + external:http:* + Pseudo repository to mirror external repositories initially using HTTP. + http://0.0.0.0/ + true + + ``` + +### 3.安装配置 nodejs + +!!! Abstract "" + ```shell + wget https://nodejs.org/dist/v16.13.0/node-v16.13.0-linux-x64.tar.xz + + tar xvf node-v16.13.0-linux-x64.tar.xz + + mv node-v16.13.0-linux-x64 /opt + + echo "export PATH=\$PATH:/opt/node-v16.13.0-linux-x64/bin" >> ~/.bashrc + + source ~/.bashrc + ``` + +## 配置及环境准备 + +### 1.操作系统参数设置 + +!!! Abstract "" + 增加系统监听文件数量: + ```shell + echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p + ``` + +### 2.MySQL 配置 + +!!! Abstract "" + 以下是推荐的 MySQL 配置: + ```inf + [mysqld] + datadir=/var/lib/mysql + default-storage-engine=INNODB + character_set_server=utf8 + lower_case_table_names=1 + table_open_cache=128 + max_connections=2000 + max_connect_errors=6000 + innodb_file_per_table=1 + innodb_buffer_pool_size=1G + max_allowed_packet=64M + transaction_isolation=READ-COMMITTED + innodb_flush_method=O_DIRECT + innodb_lock_wait_timeout=1800 + innodb_flush_log_at_trx_commit=0 + sync_binlog=0 + group_concat_max_len=1024000 + sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION + skip-name-resolve + ``` + + **特别注意以下几个参数的设置:** + ``` + character_set_server=utf8 + lower_case_table_names=1 + group_concat_max_len=1024000 + ``` + +### 3.创建 MySQL 数据库 + +!!! Abstract "" + 登录要连接的 MySQL 服务器,创建 DataEase 运行时使用的数据库,此处示例数据库名为 dataease-wei。 + + ```mysql + CREATE DATABASE `dataease-wei` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ``` + +### 4.创建 DataEase 配置文件及日志相关 + +!!! Abstract "" + ```shell + mkdir -p /opt/dataease/conf + mkdir -p /opt/dataease/logs + + # 添加 DataEase 运行配置文件,除了 MySQL 连接信息必须正确外,Kettle 和 Doris 如不用的话,相关信息可不修改 + cat <> /opt/dataease/conf/dataease.properties + # 数据库配置 + spring.datasource.url=jdbc:mysql://192.168.1.100:3306/dataease-wei?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false + spring.datasource.username=root + spring.datasource.password=Password123@mysql + + carte.host=kettle + carte.port=18080 + carte.user=cluster + carte.passwd=cluster + + doris.db=dataease + doris.user=root + doris.password=Password123@doris + doris.host=doris-fe + doris.port=9030 + doris.httpPort=8030 + + #新建用户初始密码 + dataease.init_password=DataEase123456 + #登录超时时间单位min 如果不设置 默认8小时也就是480 + dataease.login_timeout=480 + + logger.level=INFO + EOF + ``` + + +## 源码准备 + +### 1.下载代码 + +!!! Abstract "" + 此处以 v1.4 分支举例 + ```shell + git clone -b v1.4 https://github.com/dataease/dataease.git + ``` + +### 2.地图库准备 + +!!! Abstract "" + DataEase 从 1.2 版本开始支持地图组件。在 DataEase 源码工程的目录下有一个地图文件目录 mapFiles/full,需要将该目录下的文件放置到 /opt/dataease/data/feature/full 目录下 + ```shell + mkdir -p /opt/dataease/data/feature + cd dataease + cp -r mapFiles/full /opt/dataease/data/feature/full + ``` + +### 3.驱动库准备 + +!!! Abstract "" + DataEase 从 1.4 版本开始将数据源连接用的驱动库独立在 drivers 目录中。 在 DataEase 源码工程的目录下有一个驱动文件目录 drivers,需要将该目录放置到 /opt/dataease/drivers 下 + ```shell + mkdir -p /opt/dataease/drivers + cp -rp drivers/* /opt/dataease/drivers/ + ``` + +## 编译运行(v1.7.0 及以前) + +### 1.编译前端 + +!!! Abstract "" + ```shell + cd frontend + npm i + ``` + +![npm-install](../img/dev_manual/npm-install.png){width="800px"} + +!!! Abstract "" + **注意:国内使用 npm 时经常会遇到网络问题,可以考虑将 npm 源替换为国内的源。** + 可以参考文档 https://segmentfault.com/a/1190000023314583。 + +### 2.运行前端 + +!!! Abstract "" + 前端运行有两种方式: + + - npm 运行(适用于开发场景) + - nginx 运行(适用于稳定运行场景) + +!!! Abstract "方式一、npm 运行" + 进入前端目录 frontend,修改 .env.development 文件中的 VUE_APP_BASE_API,将 IP 地址设置为本机 IP,后端默认运行端口为 8081: +![frontend-development-env](../img/dev_manual/frontend-development-env.png){width="800px"} + +!!! Abstract "" + 修改后执行命令运行: + ```shell + npm run serve + ``` + +!!! Warning "注意" + 以 npm 方式运行前端,默认会运行在本地的 9528 端口上,通过浏览器访问 http://ip:9528 即可。 + +!!! Abstract "方式二、nginx 运行" + 以 nginx、apache 等运行前端,则修改 .env.production 文件中的 VUE_APP_BASE_API,将 IP 地址设置为本机 IP,后端默认运行端口为 8081: +![frontend-production-env](../img/dev_manual/frontend-production-env.png){width="800px"} + +!!! Abstract "" + 修改后执行命令进行编辑,生成 dist 目录: + ```shell + npm run build + # 将 dist 目录放置到 /opt/dataease/frontend/dist + mkdir -p /opt/dataease/frontend + cp -r dist /opt/dataease/frontend/dist + ``` + 配置 nginx: + 此处假设 DataEase 前端运行在 8000 端口,后端运行在 8081,且 DataEase 前端编译后生成的 dist 目录存放到路径为 /opt/dataease/frontend/dist,相应的 nginx 配置如下: + ```conf + server { + listen 8000; + server_name localhost; + location / { + root /opt/dataease/frontend/dist; + index index.html index.htm; + } + + # 此处为公共链接请求转发,8081 为后端运行端口 + location /link/ { + proxy_pass http://$host:8081; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $http_host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + } + ``` + +!!! Warning "注意" + + nginx 默认以 nobody 用户身份运行,可能会遇到 403 的错误。可以授予 dist 目录访问权限,或者将 nginx 设置为 root 用户运行。 + +### 3.编译后端 + +!!! Abstract "" + 进入后端代码目录 backend,修改 pom.xml,去掉默认的打包前端代码的部分 +![remove-frontend](../img/dev_manual/remove-frontend.png){width="800px"} + +!!! Abstract "" + 执行编译命令: + ```shell + mvn clean package + ``` + +!!! Warning "注意" + 在编译后端代码时如遇到依赖无法下载的问题,可以在百度网盘上下载一下最小化的 dataease 依赖包。链接: https://pan.baidu.com/s/1fWv_ze-QKUew3ND4NAdt8Q 提取码: rpzi + +### 4.运行后端 + +!!! Abstract "" + 后端代码编译完成后,会在 backend/target 目录下生成一个 backend-1.4.0.jar,可以通过命令运行后端: + ```shell + nohup java -jar backend-1.4.0.jar & + ``` + +## 编译运行(v1.8.0 及以后) + +### 1.源码编译打包 + +!!! Abstract "" + **打包 backend** + 在backend目录下,执行下面命令。 + + ```shell + mvn clean package -Pstage + ``` + + **注意:** + + 1. 在 backend 目录下,不是 dataease 目录; + 2. 命令一定要加 -Pstage; + 3. 运行文件为 target/backend-1.8.0.jar。 + + **打包 frontend** + 在 frontend 目录下,执行下面命令,注意命令后缀。 + + ```shell + npm run build:stage + ``` + + **打包 mobile** + 在 mobile 目录下,执行下面命令,注意命令后缀。 + + ```shell + npm run build:stage + ``` + +### 2.nginx 配置 + +!!! Abstract "" + 假设各个文件分别按如下路径放置: + + - frontend 编译后文件存放目录 + /opt/dataease/frontend/dist + - mobile 编译后文件存放目录 + /opt/mobile/frontend/dist + - nginx 配置文件路径 + /usr/local/etc/nginx/nginx.conf + + 在dataease工程目录下执行: + ```shell + mkdir -p /opt/dataease/frontend/dist + cp -r frontend/dist/* /opt/dataease/frontend/dist + + mkdir -p /opt/dataease/mobile/dist + cp -r mobile/dist/* /opt/dataease/mobile/dist + mv /opt/dataease/mobile/dist/index.html /opt/dataease/mobile/dist/app.html + ``` + + **修改 nginx.conf 配置** + ``` + server { + listen 8000; + server_name localhost; + + location / { + root /opt/dataease/frontend/dist/; + index index.html; + } + + location /app.html { + root /opt/dataease/mobile/dist/; + } + + location /de-app/ { + alias /opt/dataease/mobile/dist/; + } + + location /de-api/ { + proxy_pass http://localhost:8081/; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host:8000; + server_name_in_redirect on; + } + } + ``` + +### 3.运行测试 + +!!! Abstract "" + 访问 http://localhost:8000。 + +## 其他注意事项 + +!!! Abstract "" + 内置示例数据以 flyway 的形式在 DataEase 启动时自动插入到了 MySQL 数据库中,在源码运行的情况下,需要登录到 DataEase 控制台,进入到【数据源】页面,选择 "demo" 数据源,将 "demo" 数据源的相关连接信息修改正确,保存后即可正常使用内置示例数据。 +![modify-demo-dataset](../img/dev_manual/modify-demo-dataset.png){width="800px"} + + + + + diff --git a/docs/dev_manual/dev_deployment/attention.md b/docs/dev_manual/dev_deployment/attention.md new file mode 100644 index 000000000..f45c788f1 --- /dev/null +++ b/docs/dev_manual/dev_deployment/attention.md @@ -0,0 +1,13 @@ +## 1 其他注意事项 + +!!! Abstract "" + 内置示例数据以 flyway 的形式在 DataEase 启动时自动插入到了 MySQL 数据库中,在源码运行的情况下,需要登录到 DataEase 控制台,进入到【数据源】页面,选择 "demo" 数据源,将 "demo" 数据源的相关连接信息修改正确,保存后即可正常使用内置示例数据。 + +![modify-demo-dataset](../../img/dev_manual/modify-demo-dataset1.png){width="900px"} + +![modify-demo-dataset](../../img/dev_manual/modify-demo-dataset.png){width="900px"} + + + + + diff --git a/docs/dev_manual/dev_deployment/code.md b/docs/dev_manual/dev_deployment/code.md new file mode 100644 index 000000000..c0dd03d9e --- /dev/null +++ b/docs/dev_manual/dev_deployment/code.md @@ -0,0 +1,41 @@ +**以 v.1.18.10 版本为例:** +## 1 下载代码 + +!!! Abstract "" + ```shell + git clone -b v1.8 https://github.com/dataease/dataease.git + ``` + **注意:源码工程目录在下载后的内容的 /core 目录下。** +## 2 地图库准备 + +!!! Abstract "" + **在 DataEase 源码工程的目录下有一个地图文件目录 mapFiles/full,需要将该目录下的文件放置到 /opt/dataease/data/feature/full 目录下:** + ```shell + mkdir -p /opt/dataease/data/feature + cd dataease + cp -r mapFiles/full /opt/dataease/data/feature/full + ``` + +## 3 驱动库准备 + +!!! Abstract "" + **在 DataEase 源码工程的目录下有一个驱动文件目录 drivers,需要将该目录放置到 /opt/dataease/drivers 下:** + ```shell + mkdir -p /opt/dataease/drivers + cp -rp drivers/* /opt/dataease/drivers/ + ``` + +## 4 插件库准备 + +!!! Abstract "" + **DataEase 支持以插件的形式导入组件与数据源;** + 方式一:插件源码目录在 extensions 目录; + ```shell + cd extensions + ``` + 在各个插件目录下执行 bash build.sh 进行插件的编译打包,最终生成 xxx.zip,在系统管理的【插件管理】界面进行上传安装; + 方式二:使用容器的方式安装 DataEase,执行以下命令从镜像里拷贝插件 jar 包,将拷贝的文件放置到 /opt/dataease/plugins/default 下; + ``` + docker cp dataease:/opt/dataease/plugins/default /opt/dataease/plugins/ + ``` + **提示:** 目前 Tab 组件插件需要以方式二进行拷贝。 \ No newline at end of file diff --git a/docs/dev_manual/dev_deployment/compile.md b/docs/dev_manual/dev_deployment/compile.md new file mode 100644 index 000000000..92855ba8c --- /dev/null +++ b/docs/dev_manual/dev_deployment/compile.md @@ -0,0 +1,198 @@ +## 1 编译运行(v1.8.0 及以后) + +### 1.1 源码编译打包 + +!!! Abstract "" + **v1.8.0 及以后分支,请参考以下步骤进行编译打包。** + **打包 backend:** + 在 backend 目录下,执行下面命令。 + + ```shell + mvn clean package -Pstage + ``` + + **注意:** + + 1. 在 backend 目录下,不是 dataease 目录; + 2. 命令一定要加 -Pstage; + 3. 运行文件为 target/backend-1.8.0.jar。 + + **运行 backend:** + ```shell + nohup java -jar backend-1.8.0.jar & + ``` + + **编译打包 frontend:** + 在 frontend 目录下,执行下面命令,构建测试环境,注意命令后缀(带 stage)。 + + ```shell + npm i + npm run build:stage + ``` + + **编译打包 mobile:** + 在 mobile 目录下,执行下面命令,构建测试环境,注意命令后缀(带 stage)。 + + ```shell + npm i + npm run build:stage + ``` + +### 1.2 Nginx 配置 + +!!! Abstract "" + **假设各个文件分别按如下路径放置:** + + - frontend 编译后文件存放目录 + /opt/dataease/frontend/dist + - mobile 编译后文件存放目录 + /opt/dataease/mobile/dist + - nginx 配置文件路径 + /usr/local/etc/nginx/nginx.conf + + **在dataease工程目录下执行:** + ```shell + mkdir -p /opt/dataease/frontend/dist + cp -r frontend/dist/* /opt/dataease/frontend/dist + + mkdir -p /opt/dataease/mobile/dist + cp -r mobile/dist/* /opt/dataease/mobile/dist + mv /opt/dataease/mobile/dist/index.html /opt/dataease/mobile/dist/app.html + ``` + + **修改 nginx.conf 配置:** + ``` + server { + listen 8000; + server_name localhost; + + location / { + root /opt/dataease/frontend/dist/; + index index.html; + } + + location /app.html { + root /opt/dataease/mobile/dist/; + } + + location /de-app/ { + alias /opt/dataease/mobile/dist/; + } + + location /de-api/ { + proxy_pass http://localhost:8081/; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host:8000; + server_name_in_redirect on; + } + } + ``` + **注意:** 前后端分离部署时,假若无法访问静态资源,可参考[知识库](https://kb.fit2cloud.com/?p=156)。 + +### 1.3 运行测试 + +!!! Abstract "" + 访问 http://localhost:8000。 + +## 2 编译运行(v1.7.0 及以前) + +### 2.1 编译前端 + +!!! Abstract "" + ```shell + cd frontend + npm i + ``` + **注意:国内使用 npm 时经常会遇到网络问题,可以考虑将 npm 源替换为国内的源。** + 可以参考文档 https://segmentfault.com/a/1190000023314583。 + +![npm-install](../../img/dev_manual/npm-install.png){width="900px"} + +### 2.2 运行前端 + +!!! Abstract "" + **前端运行有两种方式:** + + - npm 运行(适用于开发场景) + - nginx 运行(适用于稳定运行场景) + +!!! Abstract "" + **方式一 npm 运行:** + 进入前端目录 frontend,修改 .env.development 文件中的 VUE_APP_BASE_API,将 IP 地址设置为本机 IP,后端默认运行端口为 8081: + +![frontend-development-env](../../img/dev_manual/frontend-development-env.png){width="900px"} + +!!! Abstract "" + **修改后执行命令运行:** + ```shell + npm run serve + ``` + **注意:** 以 npm 方式运行前端,默认会运行在本地的 9528 端口上,通过浏览器访问 http://ip:9528 即可。 + +!!! Abstract "" + **方式二 Nginx 运行:** + 以 Nginx、Apache 等运行前端,则修改 .env.production 文件中的 VUE_APP_BASE_API,将 IP 地址设置为本机 IP,后端默认运行端口为 8081,如下示例配置 Nginx 运行。 + +![frontend-production-env](../../img/dev_manual/frontend-production-env.png){width="900px"} + +!!! Abstract "" + **修改后执行命令进行编辑,生成 dist 目录:** + ```shell + npm run build + # 将 dist 目录放置到 /opt/dataease/frontend/dist + mkdir -p /opt/dataease/frontend + cp -r dist /opt/dataease/frontend/dist + ``` + **配置 nginx:** + 此处假设 DataEase 前端运行在 8000 端口,后端运行在 8081,且 DataEase 前端编译后生成的 dist 目录存放到路径为 /opt/dataease/frontend/dist,相应的 nginx 配置如下: + ```conf + server { + listen 8000; + server_name localhost; + location / { + root /opt/dataease/frontend/dist; + index index.html index.htm; + } + + # 此处为公共链接请求转发,8081 为后端运行端口 + location /link/ { + proxy_pass http://$host:8081; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $http_host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + # 注意配置域名代理访问的时候,注释下面这个代理配置,否则导致分享仪表板公共链接无法访问 + # location /link/ { + # proxy_pass http://$host:8081; + # porxy_pass https://dataease; + # proxy_set_header X-Real-IP $remote_addr; + # proxy_set_header Host $http_host; + # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + # } + + } + ``` + **注意:** nginx 默认以 nobody 用户身份运行,可能会遇到 403 的错误。可以授予 dist 目录访问权限,或者将 nginx 设置为 root 用户运行。 + +### 2.3 编译后端 + +!!! Abstract "" + **进入后端代码目录 backend,修改 pom.xml,去掉默认的打包前端代码的部分:** + +![remove-frontend](../../img/dev_manual/remove-frontend.png){width="900px"} + +!!! Abstract "" + **执行编译命令:** + ```shell + mvn clean package + ``` + **注意:** 在编译后端代码时如遇到依赖无法下载的问题,可以在百度网盘上下载一下最小化的 dataease 依赖包。链接: https://pan.baidu.com/s/1fWv_ze-QKUew3ND4NAdt8Q 提取码: rpzi + +### 2.4 运行后端 + +!!! Abstract "" + **后端代码编译完成后,会在 backend/target 目录下生成一个 backend-1.4.0.jar,可以通过命令运行后端:** + ```shell + nohup java -jar backend-1.4.0.jar & + ``` \ No newline at end of file diff --git a/docs/dev_manual/dev_deployment/environment.md b/docs/dev_manual/dev_deployment/environment.md new file mode 100644 index 000000000..16b20ab1f --- /dev/null +++ b/docs/dev_manual/dev_deployment/environment.md @@ -0,0 +1,87 @@ +## 1 操作系统参数设置 + +!!! Abstract "" + **增加系统监听文件数量:** + ```shell + echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p + ``` + +## 2 MySQL 配置 + +!!! Abstract "" + **以下是推荐的 MySQL 配置:** + ```inf + [mysqld] + datadir=/var/lib/mysql + default-storage-engine=INNODB + character_set_server=utf8 + lower_case_table_names=1 + table_open_cache=128 + max_connections=2000 + max_connect_errors=6000 + innodb_file_per_table=1 + innodb_buffer_pool_size=1G + max_allowed_packet=64M + transaction_isolation=READ-COMMITTED + innodb_flush_method=O_DIRECT + innodb_lock_wait_timeout=1800 + innodb_flush_log_at_trx_commit=0 + sync_binlog=0 + group_concat_max_len=1024000 + sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION + skip-name-resolve + ``` + + **特别注意以下几个参数的设置:** + ``` + character_set_server=utf8 + lower_case_table_names=1 + group_concat_max_len=1024000 + ``` + +## 3 创建 MySQL 数据库 + +!!! Abstract "" + **登录要连接的 MySQL 服务器,创建 DataEase 运行时使用的数据库,此处示例数据库名为 dataease-wei:** + + ```mysql + CREATE DATABASE `dataease-wei` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ``` + +## 4 创建 DataEase 配置文件及日志相关 + +!!! Abstract "" + ```shell + mkdir -p /opt/dataease/conf + mkdir -p /opt/dataease/logs + + # 添加 DataEase 运行配置文件,除了 MySQL 连接信息必须正确外,Kettle 和 Doris 如不用的话,相关信息可不修改 + cat <> /opt/dataease/conf/dataease.properties + # 数据库配置 + spring.datasource.url=jdbc:mysql://192.168.1.100:3306/dataease-wei?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false + spring.datasource.username=root + spring.datasource.password=Password123@mysql + + carte.host=kettle + carte.port=18080 + carte.user=cluster + carte.passwd=cluster + + doris.db=dataease + doris.user=root + doris.password=Password123@doris + doris.host=doris-fe + doris.port=9030 + doris.httpPort=8030 + + #新建用户初始密码 + dataease.init_password=DataEase123456 + #登录超时时间单位min 如果不设置 默认8小时也就是480 + dataease.login_timeout=480 + + logger.level=INFO + + #DE运行模式,可选值有 local、simple、cluster,分别对应本地模式、精简模式、集群模式 + engine_mode=simple + EOF + ``` diff --git a/docs/dev_manual/dev_deployment/tool.md b/docs/dev_manual/dev_deployment/tool.md new file mode 100644 index 000000000..fc4eba637 --- /dev/null +++ b/docs/dev_manual/dev_deployment/tool.md @@ -0,0 +1,51 @@ +## 1 安装 Git 和 jdk 8 + +!!! Abstract "" + **本文以 CentOS 8.3 为例,举例说明如何以源码的形式编译 DataEase 工程,并进行前后端分离部署。** + 本文所有操作均在阿里云(新加坡区)4C8G 环境中执行。 + ```shell + yum install -y git java-1.8.0-openjdk* + ``` + +## 2 安装配置 Maven + +!!! Abstract "" + ```shell + # 下载并安装 Maven + wget https://dlcdn.apache.org/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz + + tar zxvf apache-maven-3.8.4-bin.tar.gz + + mv apache-maven-3.8.4 /opt + + echo "export M2_HOME=/opt/apache-maven-3.8.4" >> ~/.bashrc + + echo "export PATH=\$PATH:\$M2_HOME/bin" >> ~/.bashrc + + source ~/.bashrc + ``` + 默认安装 Maven 后,在 Maven 安装目录中有配置文件 settings.xml,**该文件中默认开启了 mirror,可以将该 mirror 设置注释掉:** + ```xml + + maven-default-http-blocker + external:http:* + Pseudo repository to mirror external repositories initially using HTTP. + http://0.0.0.0/ + true + + ``` + +## 3 安装配置 nodejs + +!!! Abstract "" + ```shell + wget https://nodejs.org/dist/v16.13.0/node-v16.13.0-linux-x64.tar.xz + + tar xvf node-v16.13.0-linux-x64.tar.xz + + mv node-v16.13.0-linux-x64 /opt + + echo "export PATH=\$PATH:/opt/node-v16.13.0-linux-x64/bin" >> ~/.bashrc + + source ~/.bashrc + ``` diff --git a/docs/dev_manual/dev_manual.md b/docs/dev_manual/dev_manual.md new file mode 100644 index 000000000..2ba20e523 --- /dev/null +++ b/docs/dev_manual/dev_manual.md @@ -0,0 +1,295 @@ +## 1 项目结构 + +``` +. +├── Dockerfile # 构建容器镜像使用的 dockerfile +├── LICENSE # License 申明 +├── README.md +├── backend # 后端项目主目录 +├── frontend # 前端项目主目录 +├── mobile # 移动端项目主目录 +└── pom.xml # 整体 maven 项目使用的 pom 文件 +``` + +## 2 配置开发环境 +### 2.1 环境准备 + + +!!! Abstract "" + **后端:** + DataEase 后端使用了 Java 语言的 Spring Boot 框架,并使用 Maven 作为项目管理工具。开发者需要先在开发环境中安装 JDK 11 及 Maven。 + **前端:** + DataEase 前端使用了 Vue.js 作为前端框架,ElementUI 作为 UI 框架,并使用 npm 作为包管理工具。开发者请先下载 Node.js 作为运行环境,IDEA 用户建议安装 Vue.js 插件,便于开发。 + **安装 npm:** + 进入网站 https://nodejs.org/en/download/, 选择相应的安装包进行安装即可。 + +### 2.2 初始化配置 + +!!! Abstract "" + **数据库初始化:** + DataEase 使用 MySQL 数据库,推荐使用 MySQL 5.7 版本。同时 DataEase 对数据库部分配置项有要求,请参考下附的数据库配置,修改开发环境中的数据库配置文件(以下配置有部分参数可能并不适用 MySQL 8.x 版本) + + ``` + [mysqld] + datadir=/var/lib/mysql + default-storage-engine=INNODB + character_set_server=utf8 + lower_case_table_names=1 + table_open_cache=128 + max_connections=2000 + max_connect_errors=6000 + innodb_file_per_table=1 + innodb_buffer_pool_size=1G + max_allowed_packet=64M + transaction_isolation=READ-COMMITTED + innodb_flush_method=O_DIRECT + innodb_lock_wait_timeout=1800 + innodb_flush_log_at_trx_commit=0 + sync_binlog=0 + group_concat_max_len=1024000 + sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION + skip-name-resolve + ``` + **注意:Windows 系统数据库初始化配置应删除 innodb_flush_method 参数,请参考[文章](https://bugs.mysql.com/bug.php?id=40757)。** + + 请参考文档中的建库语句创建 DataEase 使用的数据库,**DataEase 后端服务启动时会自动在配置的库中创建所需的表结构及初始化数据。** + ```mysql + CREATE DATABASE `dataease` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ``` + +!!! Abstract "" + **配置文件:** + DataEase 会默认加载该路径下的配置文件 /opt/dataease/conf/dataease.properties,**请参考下面配置创建对应目录及配置文件**。 + **提示:** 请自行将 MYSQL_HOST 配置为自己的 MySQL 地址。 + + ```properties + # 数据库配置 + spring.datasource.url=jdbc:mysql://MYSQL_HOST:3306/dataease?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false + spring.datasource.username=root + spring.datasource.password=Password123@mysql + + carte.host=kettle + carte.port=18080 + carte.user=cluster + carte.passwd=cluster + + doris.db=dataease + doris.user=root + doris.password=Password123@doris + doris.host=doris-fe + doris.port=9030 + doris.httpPort=8030 + + #新建用户初始密码 + dataease.init_password=DataEase123456 + #登录超时时间单位min 如果不设置 默认8小时也就是480 + dataease.login_timeout=480 + + logger.level=INFO + + #DE运行模式,可选值有 local、simple、cluster,分别对应本地模式、精简模式、集群模式 + engine_mode=simple + ``` + **地图文件:** + DataEase 从 1.2 版本开始支持地图组件。在 DataEase 源码工程的目录下有一个地图文件目录 mapFiles/full,需要将该目录下的文件放置到 /opt/dataease/data/feature/full 目录下。如果是 Windows 的话,可以在工程目录所在盘的根目录下,创建 opt/dataease/data/feature/full 目录。 + + **插件文件:** + DataEase 从 1.9 版本开始支持以插件的形式导入组件与数据源,可以下载 dataease-extensions 工程源码,在本地打包下,需要将打包后生成的 jar 包放置到 /opt/dataease/plugins/default 目录下。如果是 Windows 的话,可以在工程所在盘的根目录下,创建 /opt/dataease/plugins/default 目录,如下示例图。 + +![dataease-extensions](../img/dev_manual/dataease-extensions.png){ width="900px" } + +## 3 代码运行 + +### 3.1 IDEA 方式运行 + +!!! Abstract "" + **Windows 下环境配置(可选):** + 在 Windows 环境下对配置文件的路径会有所要求,一般可以采用下面两种配置方案里的一种,非 Windows 环境以下方案可跳过。 + **方案一(推荐):** + 将配置文件放置到工程源码的所在盘的指定路径下,以 dataease.properties 配置文件举例,如源码工程在 D 盘下,则配置文件存放路径为 d:\opt\dataease\conf\dataease.properties。其他配置文件类似。 + 此方案中不需要对 DataEase 的源码进行任何修改。 +![方案一](../img/dev_manual/windows-idea-1.png){width="900px"} + +!!! Abstract "" + **方案二:** + 配置文件可以随意放置在任意路径下,但需要修改工程源码中配置文件的路径信息。以 dataease.properties 配置文件举例,如该配置文件存放在 D 盘根目录下,则需要按下图修改三个地方的配置路径: +![方案二](../img/dev_manual/windows-idea-2.png){width="900px"} + +!!! Abstract "" + **运行后端服务:** + 新建一个 git 项目 输入主工程 git 地址: git@github.com:dataease/dataease.git + +![新建工程](../img/dev_manual/new-project.png){width="900px"} + +!!! Abstract "" + **配置 maven 并引入 pom.xml:** + +![引入pom-1](../img/dev_manual/import-pom1.png){width="900px"} + +![引入pom-2](../img/dev_manual/import-pom2.png){width="900px"} + +!!! Abstract "" + **启动后端,两种启动方式:** + + - 可以使用 io.dataease.Application 入口方法直接启动 + - 可以使用 maven 插件中的 backend>spring-boot>spring-boot:start 启动 + +![启动后端](../img/dev_manual/run-backend.png){width="900px"} + +!!! Abstract "" + **运行前端:** + 进入工程目录下的子目录 frontend, 用 npm i 安装前端依赖包 + 安装完成后,使用 npm run serve 命名启动前端,前端启动后即可通过 http://localhost:9528/ 地址访问 + +![安装前端](../img/dev_manual/install-frontend.png){width="900px"} + +### 3.2 本地 jar 包方式运行 + +!!! Abstract "" + + 1.下载 DataEase 工程源码(工程地址:https://github.com/dataease/dataease.git) ; + 2.进入工程目录后,执行 mvn clean package 进行编译; + 3.编译完成后,在工程目录的 backend/target 目录下,会生成一个 backend-x.y.z.jar (xyz代表版本号,xyz具体值视具体版本而定) 的可运行 jar 包。可以通过 java -jar backend-x.y.z.jar 来运行 DataEase; + 4.服务完全启动后,可以在本地浏览器访问 http://localhost:8081 来访问 DataEase 服务。 + + +## 4 本地运行 Kettle 和 Doris (可选) + +!!! Abstract "" + **注意:** 若需要调试 Excel 和定时同步模式数据集的话,需要此支持; + **提示:** 进行以下步骤前需提前准备 Docker 与 Docker-Compose 环境。 + +### 4.1 准备运行环境 + +!!! Abstract "" + **下载 installer 工程:** + ```shell + git clone https://github.com/dataease/installer.git + ``` + **初始化目录:** + ```shell + mkdir -p /opt/dataease/conf + mkdir -p /opt/dataease/data/kettle + mkdir -p /opt/dataease/data/fe + mkdir -p /opt/dataease/data/be + mkdir -p /opt/dataease/logs + ``` + **准备配置文件:** + ```shell + cd installer/dataease/templates && cp -rp fe.conf be.conf dataease.properties .kettle /opt/dataease/conf && cd - + + # v1.4.0 及以前版本执行以下命令 + cd installer/dataease && cp docker-compose-kettle-doris.yml /opt/dataease/ && cd - + + # v1.5.0 及以后版本可以手动把 installer/dataease 目录下的 docker-compose-kettle.yml docker-compose-doris.yml 内容合并起来(去掉重复的 version 和 services 定义),命名为 docker-compose-kettle-doris.yml,放置到 /opt/dataease 目录下 + ``` + **按实际情况修改配置文件: + fe.conf、be.conf、.kettle 一般情况下不需要修改,其他配置文件的修改可以参考下面示例: + 修改 dataease.properties 文件,设置 MySQL、Kettle 和 Doris 的连接信息,以本机 IP(192.168.1.9)为例:** + ```properties + # 数据库配置 + spring.datasource.url=jdbc:mysql://192.168.1.9:3306/dataease?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false + spring.datasource.username=root + spring.datasource.password=Password123@mysql + + carte.host=192.168.1.9 + carte.port=18080 + carte.user=cluster + carte.passwd=cluster + + doris.db=dataease + doris.user=root + doris.password=Password123@doris + doris.host=192.168.1.9 + doris.port=9030 + doris.httpPort=8030 + + #新建用户初始密码 + dataease.init_password=DataEase123456 + #登录超时时间单位min 如果不设置 默认8小时也就是480 + dataease.login_timeout=480 + + logger.level=INFO + ``` + + **修改 docker-compose-kettle-doris.yml,将 ${DE_BASE} 替换为 /opt,将 doris-fe 和 kettle 的运行端口暴露出来,增加网络定义部分:** + ```yml + version: '2.1' + services: + + doris-fe: + image: registry.cn-qingdao.aliyuncs.com/dataease/doris:0.15 + container_name: doris-fe + ports: + - 8030:8030 + - 9030:9030 + environment: + - DORIS_ROLE=fe-leader + volumes: + - /opt/dataease/data/fe:/opt/doris/fe/doris-meta + - /opt/dataease/logs/fe:/opt/doris/fe/log + - /opt/dataease/conf/fe.conf:/opt/doris/fe/conf/fe.conf + networks: + dataease-network : + ipv4_address: 172.19.0.198 + restart: always + + doris-be: + image: registry.cn-qingdao.aliyuncs.com/dataease/doris:0.15 + container_name: doris-be + environment: + - DORIS_ROLE=be + volumes: + - /opt/dataease/data/be:/opt/doris/be/storage + - /opt/dataease/logs/be:/opt/doris/be/log + - /opt/dataease/conf/be.conf:/opt/doris/be/conf/be.conf + networks: + dataease-network : + ipv4_address: 172.19.0.199 + restart: always + + kettle: + image: registry.cn-qingdao.aliyuncs.com/dataease/kettle:8.3-v1.2 + container_name: kettle + ports: + - 18080:18080 + volumes: + - /opt/dataease/conf/:/opt/dataease/conf + - /opt/dataease/data/kettle:/opt/dataease/data/kettle + networks: + - dataease-network + restart: always + + networks: + dataease-network: + driver: bridge + ipam: + driver: default + config: + - subnet: 172.19.0.0/16 + gateway: 172.19.0.1 + ``` + +### 4.2 运行 Kettle 和 Doris 组件 + +!!! Abstract "" + **执行命令运行组件:** + ```shell + cd /opt/dataease + docker-compose -f docker-compose-kettle-doris.yml up -d + ``` + +## 5 镜像打包(推荐) + +!!! Abstract "" + 源码中包含 Dockerfile 文件,建议将项目打包成镜像运行,具体可参考[如何打包 DataEase 镜像](https://kb.fit2cloud.com/?p=70)、[DataEase 二次开发如何替换镜像](https://kb.fit2cloud.com/?p=125)。 + +## 6 其他注意事项 + +!!! Abstract "" + 内置示例数据以 flyway 的形式在 DataEase 启动时自动插入到了 MySQL 数据库中,在源码运行的情况下,需要登录到 DataEase 控制台,进入到【数据源】页面,选择 "demo" 数据源,将 "demo" 数据源的相关连接信息修改正确,保存后即可正常使用内置示例数据; + **提示:Windows 使用 docker-compose 部署 Kettle 及 Doris ,若出现 doris-fe 无限重启问题,可参考此篇[知识库](https://kb.fit2cloud.com/?p=134)。** + +![modify-demo-dataset](../img/dev_manual/modify-demo-dataset1.png){width="900px"} + +![modify-demo-dataset](../img/dev_manual/modify-demo-dataset.png){width="900px"} \ No newline at end of file diff --git a/docs/dev_manual/dev_view_plugin.md b/docs/dev_manual/dev_view_plugin.md new file mode 100644 index 000000000..0bd4dcb32 --- /dev/null +++ b/docs/dev_manual/dev_view_plugin.md @@ -0,0 +1,274 @@ +!!! Abstract "" + DataEase 支持引入视图插件机制以提高系统可扩展性,本文介绍如何从零开始开发一个 DataEase 视图插件。 + **注意:** 插件开发面向程序员,涉及到的技术有 Java 、Vue。 + +## 1 插件框架 + +### 1.1 获取框架 + +!!! Abstract "" + 进入 GitHub 下载源码:https://github.com/dataease/dataease/tree/dev/extensions。 + +### 1.2 安装依赖 + +!!! Abstract "" + 如果能正常安装所有依赖则跳过此步骤,否则继续: + 插件框架依赖 dataease-extension-sdk,如果提示缺少这部分依赖,需要下载 sdk 源码手动安装。 + sdk 源码地址:https://github.com/dataease/dataease/tree/dev/sdk 。 + 下载完成在根目录下执行: + ```shell + mvn clean install + ``` + 完成后请再刷新插件框架 Maven 依赖。 + + +### 1.3 运行测试 + +!!! Abstract "" + 在插件框架根目录 dataease-extensions 下执行: + ```shell + cd dataease-extensions-view/view-bubblemap/view-bubblemap-frontend + npm i + npm run dev + ``` + 如下图所示,能正常运行说明框架没有问题。 + +![view-bubblemap-frontend](../img/dev_manual/view-bubblemap-frontend.png){ width="900px" } + +## 2 插件 demo + +!!! Abstract "" + 下面以 HighCharts 中 3D 饼图为例,详细描述如何使用插件框架开发一个 3D 饼图。 + +### 2.1 创建 demo 工程 + +!!! Abstract "" + 使用 IDEA 创建 Maven 工程名为 view-3dpie,删除 src,修改 pom.xml 并增加如下配置。 + **提示: 创建的 demo 工程可以是独立的,不是一定要在框架源码中创建。** + +![demo-pom](../img/dev_manual/demo-pom.png){ width="900px" } + +!!! Abstract "" + **前端代码:** + 如下示例图,在前面下载的插件框架中找到插件前端 demo ,整个文件夹复制到上步创建好的 view-3dpie 工程下,并重命名为 view-3dpie-frontend 。 + +![view-bubblemap-frontend-dome](../img/dev_manual/view-bubblemap-frontend-dome.png){ width="900px" } + +!!! Abstract "" + **修改 view-3dpie-frontend 目录下的 pom.xml 。** + +![view-3dpie-front-pom.png](../img/dev_manual/view-3dpie-front-pom.png){ width="900px" } + +!!! Abstract "" + **把修改完成的 pom 加载为 Maven 模块。** + +![maven](../img/dev_manual/maven.png){ width="900px" } + +!!! Abstract "" + **修改 view-3dpie/pom.xml 建立父子级关系,注意一定是 frontend 在前。** + +![view-3dpie-pom2](../img/dev_manual/view-3dpie-pom2.png){ width="900px" } + +### 2.2 前端实现 + +!!! Abstract "" + **图表类型:** + 在 src/view/ 新建 highcharts/3dpie 目录,在 3dpie/ 新建 type.vue,type 内容对应视图编辑界面中图表类型内容。 + +![图表类型](../img/dev_manual/图表类型.png){ width="900px" } + +!!! Abstract "" + type.vue 的内容可以直接复制视图插件框架中对应的气泡地图中的内容,修改下面内容,请注意这里的 value 和 label 。 + +![type_vue](../img/dev_manual/type_vue.png){ width="900px" } +![type_vue2](../img/dev_manual/type_vue2.png){ width="900px" } + +!!! Abstract "" + **图表字段:** + 在 3dpie/ 新建 data.vue ,对应的图表字段选择。 + +![图表字段](../img/dev_manual/图表字段.png){ width="900" } + +!!! Abstract "" + data.vue 内容也可从气泡图复制过来再修改,一般的图表类型,如下示例图中的字段就可满足。 + **注意:** 少数特殊类型的图表需自定义。 + +![data_vue](../img/dev_manual/data_vue.png){ width="900px" } + +!!! Abstract "" + **图表样式:** + 在 3dpie/ 新建 style.vue,对应视图编辑界面中图表样式内容。 + +![图表样式](../img/dev_manual/图表样式.png){ width="900" } + +!!! Abstract "" + DataEase 主工程中使用了两种图库,分别是 ECharts 和 AntV ,当前插件使用的是 HighCharts 图库。所以很多样式属性并不通用,这里需要插件内部自定义。 + +![style_vue](../img/dev_manual/style_vue.png){ width="900px" } + +!!! Abstract "" + **图表内容:** + 在 3dpie/ 新建 index.vue,这里为图表内容,具体实现参考代码。 + **注意:** 在填充图表属性的过程中一定要把 DataEase 属性转换为对应图表属性。 + +![index_vue](../img/dev_manual/index_vue.png){ width="900px" } +![3dpie_js](../img/dev_manual/3dpie_js.png){ width="900px" } + +!!! Abstract "" + 代码完成后需要配置 webpack 插件打包,此配置可分别打包 Vue 成单独的 js 文件。 + +![webpack.async-plugins](../img/dev_manual/webpack.async-plugins.png){ width="900px" } + +### 2.3 后台实现 + +![viewType](../img/dev_manual/viewType.png){ width="900px" } + +!!! Abstract "" + 图表类型关系到下图内容: + +![图表类型选择](../img/dev_manual/图表类型选择.png){ width="900px" } + +![staticResources](../img/dev_manual/staticResources.png){ width="900px" } +![PluginViewParam](../img/dev_manual/PluginViewParam.png){ width="900px" } + + +!!! Abstract "" + 后台这里有两个方法可重写以覆盖父类的默认实现(一般的图表类型无需重写)。 + +![ViewPluginService_class](../img/dev_manual/ViewPluginService_class.png){ width="900px" } + +!!! Abstract "" + 父类的默认实现在 dataease-extensions-sdk 工程,可在 GitHub 搜索,分别是生成 sql 语句的实现、处理结果集的实现。 + +![ViewPluginService_java](../img/dev_manual/ViewPluginService_java.png){ width="900px" } + +### 2.4 打包测试 + +!!! Abstract "" + **在根目录下执行:** + ```shell + mvn clean package + ``` + 得到 view-3dpie-backend-1.0-SNAPSHOT.jar 与插件描述文件(plugin.json)一起打包成 zip 格式。 + +![package](../img/dev_manual/package.png){ width="900px" } + +!!! Abstract "" + **插件描述文件格式如下,保存文件并命名为 plugin.json :** + ```json + { + "name": "xxxx 视图插件", + "store": "xxxx 公司", + "free": 0, + "cost": 0, + "category": "view", + "descript": "xxxx 插件,物超所值", + "version": "1.0-SNAPSHOT", + "creator": "your name", + "loadMybatis": 0, + "moduleName": "view-3dpie-backend", + "require": "1.9.0" + } + ``` + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + name + + 插件名称(保证唯一) +
    + store + + 您的公司名称 +
    + free + + 是否免费 +
    + cost + + 多少钱 +
    + category + + 插件类别 +
    + descript + + 描述 +
    + version + + 版本对应的后台工程版本 +
    + creator + + 作者 +
    + loadMybatis + + 是否使用 Mybatis +
    + moduleName + + 模块名称对应后台工程模块名称 +
    + require + + 要求 DataEase 最低版本 +
    + +### 2.5 安装插件 + +!!! Abstract "" + **在【系统管理】插件管理安装插件,上传已打包的 plugin.zip 文件。** + +![安装插件](../img/dev_manual/安装插件.png){ width="900px" } + +!!! Abstract "" + 安装成功后,在插件管理列表多一条记录,同时新建插件的类型选项也会多出一种类型。 + **提示:** 如果页面没显示新的图表类型,请清除浏览器缓存重新登录。 + +![图标类型选择](../img/dev_manual/图表类型选择.png){ width="900px" } + +## 3 注意事项 + +!!! Abstract "" + **图表库:** + DataEase 内置了 ECharts 和 AntV 两种图库,如果您使用这两种图库作为视图插件扩展,无需额外引用图表库,可以直接使用,具体可参考气泡地图实现代码。 + +!!! Abstract "" + **国际化:** + 在插件内部增加国际化内容如何映射到 DataEase 主工程中?可参考下图。 + +![图表库](../img/dev_manual/图表库.png){ width="900px" } + +!!! Abstract "" + **类型图标:** + 在插件内部增加了图表类型的 icon 如何映射到 DataEase 主工程中?可参考下图。 + +![类型图标](../img/dev_manual/类型图标.png){ width="900px" } \ No newline at end of file diff --git a/docs/embedded.md b/docs/embedded.md new file mode 100644 index 000000000..4ddf82763 --- /dev/null +++ b/docs/embedded.md @@ -0,0 +1,2618 @@ + + +!!! Abstract "" + 本嵌入式文档,环境要求 DataEase >= v2.10.10 ,嵌入式能力企业版、专业版、嵌入式版均支持。文中所使用代码为 DataEase 项目组官方嵌入式代码示例,主要步骤均注释说明。如有问题,请联系客户成功人员咨询。 + +## 1 DataEase 嵌入式概述 +!!! Abstract "" + DataEase v2 嵌入式提供了丰富的嵌入式功能,实现多种业务场景嵌入式需求,可根据业务需要选择对应的可视化资源或模块进行嵌入,DataEase 提供了完整的流程以及方法,对接 DataEase 封装好的方法及模块即可实现嵌入式。 +### 1.1 嵌入模块说明 +!!! Abstract "" + DataEase 提供了丰富的嵌入式功能,包括可视化看板单独嵌入,系统模块嵌入等,DataEase 提供封装好的方法及模块,用户在代码中参考官方示例即可完成嵌入操作。 +![1.1嵌入模块说明](img/embedded/1.1嵌入模块说明.jpg){ width="900px" } + +!!! Abstract "" + DataEase 嵌入式支持 DIV 和 Iframe 两种嵌入方式,支持按照单个可视化资源,以及现有数据集、数据源、数据大屏、仪表板等完整模块的嵌入。可根据需要自行选择对应方式进行丰富的嵌入需求。 + + DataEase 同时提供了丰富的 API 接口,包括仪表板管理、数据大屏管理,数据集管理、权限管理、用户管理等模块,可根据实际的业务需求调用 DataEase 的接口完成业务要求,API 说明入口位于 【系统设置】->【API Key】->【查看 API】。 +![1.1嵌入式BI功能架构(1)](img/embedded/1.1嵌入式BI功能架构(1).png){ width="900px" } +![1.1 嵌入式BI功能架构(2)](img/embedded/1.1 嵌入式BI功能架构(2).png){ width="900px" } +### 1.2 嵌入式场景效果预览 +!!! Abstract "" + 官方演示环境,嵌入式官方体验环境,可查看嵌入式效果。 + + 官方demo 代码, Layui 框架代码 ,Vue3 代码 。 +!!! Abstract "" + - 数据大屏及数据大屏设计器嵌入。 +![1.2 嵌入场景预览(1)](img/embedded/1.2 嵌入场景预览(1).PNG){ width="900px" } +![1.2 嵌入场景预览(11).PNG](img/embedded/1.2 嵌入场景预览(11).PNG){ width="900px" } + +!!! Abstract "" + - 仪表板及仪表板设计器嵌入。 +![1.2 嵌入场景预览(2).png](img/embedded/1.2 嵌入场景预览(2).png){ width="900px" } +![1.2 嵌入场景预览(22).png](img/embedded/1.2 嵌入场景预览(22).png){ width="900px" } + +!!! Abstract "" + - 模块嵌入。 +![1.2 嵌入场景预览(3).png](img/embedded/1.2 嵌入场景预览(3).png){ width="900px" } + +## 2 DataEase 嵌入式流程 +!!! Abstract "" + DataEase 支持使用 Iframe 以及 DIV 进行嵌入,两种方法的流程如下。 + + **注意:嵌入需要在 DataEase 的配置文件 /opt/dataease2.0/conf/application.yml 里增加 origin-list 配置,并重启服务。详细见常见问题 4.2。** +!!! Abstract "" + DIV 嵌入式流程 + + 在 DataEase 中创建嵌入式应用后,首先获取其 APP ID 和 APP Secret,同时获取 DataEase 用户账号。使用这些信息生成 token,并利用生成的 token 进行认证。引入 DataEase 提供的嵌入式 js 文件后,使用指定参数创建 DataEaseBi 对象,并渲染 DIV 容器即可实现嵌入式应用的集成与展示。 +![2. DataEase 嵌入式流程.jpg](img/embedded/2. DataEase 嵌入式流程.jpg){ width="900px" } + +!!! Abstract "" + Iframe 嵌入式流程 + + 在 DataEase 中创建嵌入式应用后,首先获取其 APP ID 和 APP Secret,同时获取 DataEase 用户账号。使用这些信息生成 token,并利用生成的 token 进行认证。使用 postMessage 通信并传入相应参数,即可实现嵌入式应用的集成与展示。 +![2. DataEase 嵌入式流程(2).jpg](img/embedded/2. DataEase 嵌入式流程(2).jpg){ width="900px" } + +### 2.1 DataEase 端口说明 +!!! Abstract "" + **注意:企业版(嵌入式版)使用端口为 9080,需要开放此端口访问。** + +| 端口 | 作用 | 说明 | +|------|:--------:|:---------------:| +| 9080 | Apisix 服务 | 企业版、专业版、嵌入式版使用 apisix 的 9080 端口进行嵌入及访问 | + +### 2.2 嵌入式 APP 创建 +!!! Abstract "" + 点击【系统设置】,进入【嵌入式管理】页面创建嵌入式应用。 + + **注意:嵌入式 License 最多可创建 5 个嵌入式应用,其它版本无此限制。** + + 嵌入式应用创建后,可以获取 APP ID、APP Secret。 + + APP ID:嵌入式获取 JWT token 需要填写的 ID。 + + APP Secret :嵌入式获取 JWT token 需要填写的 Secret。 +![2.2嵌入式 APP 创建.png](img/embedded/2.2嵌入式 APP 创建.png){ width="900px" } +![2.2嵌入式 APP 创建(2).png](img/embedded/2.2嵌入式 APP 创建(2).png){ width="900px" } +![2.2嵌入式 APP 创建(3).png](img/embedded/2.2嵌入式 APP 创建(3).png){ width="900px" } + +!!! Abstract "" + - 应用名称:嵌入式应用名称,可自定义。 + - 跨域设置:嵌入系统的访问地址。 + + 提示:跨域指两个域名不同的网页之间进行通信,填写嵌入系统的访问地址,跨域限制是由浏览器的同源策略(Same-Origin Policy)决定的。这是一种安全机制,旨在防止恶意网站读取其他网站的敏感数据。 + +### 2.2.1 跨域说明 + +!!! Abstract "" + 浏览器的同源策略(Same-Origin Policy)规定,只有当协议(protocol)、域名(domain)和端口(port)完全相同的情况下,网页才能自由访问另一个源的资源。如果请求的资源与当前网页的源不同,为跨域请求。具体如下: + + 1. 不同的协议 + ``` + 示例:从 http://example.com 请求 https://example.com。 + 原因:即使主机名和端口相同,协议不同也算跨域。 + ``` + + 2. 不同的端口 + ``` + 示例:从 http://example.com:3000 请求 http://example.com:4000。 + 原因:端口不同,即使协议和主机名相同。 + ``` + + 3. 不同的顶级域名 + ``` + 示例:从 http://example.com 请求 http://anotherexample.com。 + 原因:顶级域名不同。 + ``` + + 4. 子域名和顶级域名 + ``` + 示例:从 http://sub.example.com 请求 http://example.com。 + 原因:子域名和顶级域名不同,也算跨域。 + ``` + + 5. 子域名和子域名 + ``` + 示例:从 http://sub1.example.com 请求 http://sub2.example.com。 + 原因:子域名和子域名不同,也算跨域。 + ``` +### 2.3 ID 获取 +!!! Abstract "" + - 数据大屏 ID(编辑或预览界面均可获取) 及图表 ID 获取。 +![1数据大屏id.jpg](img/embedded/1数据大屏id.jpg){ width="900px" } +![1数据大屏-图表 id.jpg](img/embedded/1数据大屏-图表 id.jpg){ width="900px" } + +!!! Abstract "" + - 仪表板 ID(编辑或预览界面均可获取)以及图表ID 获取。 +![1图表id.jpg](img/embedded/1图表id.jpg){ width="900px" } +![1仪表板-图表id.jpg](img/embedded/1仪表板-图表id.jpg){ width="900px" } + +## 3. DataEase 嵌入式示例 +!!! Abstract "" + **注意:本文档所使用代码均为嵌入式官方 demo 代码。并在此基础上进行代码的修改进行演示。** + +### 3.1 嵌入式 Token +!!! Abstract "" + 采用 JWT 认证 ,官方嵌入式代码生成 token 方式如下,需要获取 DataEase 嵌入式应用的 APP ID、APP Secret,以及 DataEase 中的用户账号。 + + 2.10.0 版本开始,支持设置 token 有效时间。 Token 可根据实际情况使用其它类型语言生成,代码实现方式不唯一。 + + ``` + @RestController + public class IndexController { + + # 嵌入式 appId + private static String appId = ""; + + # 嵌入式 appSecret + private static String appSecret = ""; + + #DataEase 用户名 + private static String account = ""; + + # + ## 获取 DataEase 嵌入式 Token + ## DataEase 嵌入式 Token 使用的是 JWT 认证,由 appId、appSecret 以及 DataEase 用户名生成。 + ## Java 程序可直接引用 java-jwt (https://mvnrepository.com/artifact/com.auth0/java-jwt) 依赖,其它后端语言可自行百度加密代码。 + ## 注意,嵌入式 Token 的过期时间默认为 480 分钟,可通过修改 application.yml 进行调整 + ## 配置参数名称为 dataease.embedded-exp + + @GetMapping("/api/token") + public String generateToken () { + + String user = "小王"; + List users = Arrays.asList("小王","小李"); + String status = "ASSIGNED"; + + Algorithm algorithm = Algorithm.HMAC256(appSecret); + JWTCreator.Builder builder = JWT.create(); + builder.withClaim("account", account).withClaim("appId", appId); + builder.withIssuedAt(new Date()); + ## 只过滤 user = 小王 + ## builder.withClaim("user", user); + ## 过滤 user = 小王 或者 小李的数据 + ## builder.withClaim("user", JSONObject.toJSONString(users)); + ## 过滤 user = 小王 或者 小李 以及 设备状态等于 ASSIGNED 的数据 + ## 参数可根据业务需要选择设置或者不设置 + ## user 、设备状态 为仪表板参数设置里面的参数名 + ## builder.withClaim("user", JSONObject.toJSONString(users)).withClaim("设备状态", status); + return builder.sign(algorithm); + } + } + ``` +!!! Abstract "" + account 获取方式,见下图,可以使用任意符合业务需求的账号,不仅限于 admin 账户,也不推荐使用 admin 账户进行嵌入。 +![3.1嵌入式 Token.png](img/embedded/3.1嵌入式 Token.png){ width="900px" } + +### 3.2 DataEase 嵌入式 JS +!!! Abstract "" + 当使用 DIV 嵌入时,需引入 DataEase 提供内置的 js 模块,如下 。 + + 引入 js 后,即可使用 js 模块提供好的类及方法完成 DIV 的嵌入。 + + **注意:需要将 js 引入到页面的 head 中,保证依赖的正确加载。** + + ``` + ## {domain}js/div_import_0.0.0-dataease.js DataEase 提供好的 js 模版, + ## 访问地址为 http://ip:9080/js/div_import_0.0.0-dataease.js + + ``` + +### 3.3 外部参数 +!!! Abstract "" + 嵌入式支持外部参数传递,可以使用该功能根据第三方系统传递的参数在 DataEase 中进行数据的过滤,或者 DataEase 向第三方系统传递参数,外部参数可根据业务需求选择使用或者不使用。 +!!! Abstract "" + 目前支持参数及场景如下,使用参数需在仪表板或者数据大屏首先做好参数设置。 + +### 3.3.1 外部参数传递支持场景 +!!! Abstract "" + - Iframe 嵌入图表、仪表板、数据大屏。 + - DIV 嵌入图表、仪表板 、数据大屏。 + +### 3.3.2 外部参数设置 +!!! Abstract "" + 使用外部参数,需要先在 DataEase 系统中设置好数据大屏或者仪表板外部参数,具体设置可见操作手册。 +![3.3.2 外部参数设置.png](img/embedded/3.3.2 外部参数设置.png){ width="900px" } + +### 3.3.3 嵌入式参数以及外部参数说明 +!!! Abstract "" + 以下列出两种嵌入方式所有的参数以及外部参数设置示例。 + Iframe 嵌入式参数以及外部参数示例。 + + ``` + ## 嵌入式参数 + const params = { + busiFlag: busiFlag, ## 业务标识 仪表板 dashboard / 数据大屏 dataV + type:type ## 类型 + dvId: dvId, ## 看板id + "de-embedded" : true ## 嵌入式标志 + chartId: chartId, ## 图表 id + embeddedToken: token, ## 嵌入式 token + outerParams: JSON.stringify(initParams) ## 外部参数 + } + ## 外部参数 + const initParams = { + callBackFlag: "yes", ## 打开 DataEase 往外部系统传参数开关 + attachParams: { ## json 拼接外部参数,如有多个外部参数,则拼接多个 json key + name: "name1" + } + } + ``` + + DIV 嵌入式参数以及外部参数示例。 + + ``` + ## 嵌入式参数 + const dataease = new DataEaseBi('ViewWrapper', { + baseUrl: domain, ## baseUrl:DataEase 企业版访问地址。 + token: token, ## 嵌入式 token + dvId: dvId, ## 看板id + opt:opt, ## 固定写法,设计器嵌入需要,默认为 create + chartId: chartId, ## 图表id + busiFlag: busiFlag, ## 业务标识 仪表板 dashboard / 数据大屏 dataV + outerParams: JSON.stringify(initParams) ## 外部参数,json 格式 + }) + ## 外部参数 + const initParams = { + callBackFlag: "yes", ## 打开 DataEase 往外部系统传参数开关 + attachParams: { ## json 拼接外部参数,如有多个外部参数,则拼接多个 json key + name: "name1" + } + } + ``` +### 3.4 DIV 嵌入 +!!! Abstract "" + DIV 嵌入支持嵌入单个数据大屏、仪表板,图表资源。也支持数据集、数据源,仪表板,数据大屏等模块嵌入,提供一个模块的完整能力,可根据实际需要进行选择。 + + DIV 嵌入需引入 DataEase 嵌入式 JS。 + + DIV 嵌入的初始化图表不依赖监听触发,DIV 嵌入需要定义好容器的大小 。 + + **注意:嵌入需要在 DataEase 的配置文件 /opt/dataease2.0/conf/application.yml 里增加 origin-list 配置,并重启服务。详细见常见问题 4.2。** + +### 3.4.1 仪表板嵌入 +!!! Abstract "" + 仪表板嵌入支持嵌入单个仪表板,并可浏览嵌入的仪表板。仪表板嵌入还支持外部参数设置。 + + ``` + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板 ID。 + 5、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + + 双向传参应用场景: + 一、第三方系统向 DataEase 传参,依赖于 DataEase 仪表板/数据大屏外部参数实现。 + 1、初始化看板时,由第三方系统向 DataEase 传参过滤数据。 + a) 前端传参 + b) 后端传参 + 2、查看看板时,可点击第三方系统的查询组件等,过滤 DataEase 的看板数据。 + 二、DataEase 向第三方系统传参 + 1、查看看板时,可点击 DataEase 里的各个组件,向第三方系统传递当前点击的内容。 + # + + + + @/api/hook + ``` + +#### 3.4.1.1 仪表板双向参数传递 + +!!! Abstract "" + 使用仪表板、数据大屏、图表嵌入,可以通过嵌入式外部参数进行系统的数据交互,具体使用如下,代码采用 Vue3 代码 ,仪表板、数据大屏、图表双向参数传递等场景参考示例代码中相应部分。 + + 使用外部参数,需要在仪表板或者数据大屏设置好外部参数,具体见外部参数设置。 +双向传参应用场景:
    + +第三方系统向 DataEase 传参,依赖于 DataEase 仪表板/数据大屏外部参数实现。 +!!! Abstract "" + + 1.初始化看板时,由第三方系统向 DataEase 传参过滤数据。 + + a) 前端传参 + 在仪表板嵌入的基础上,加入外部参数即可。 + ``` + + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板 ID。 + 5、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + # + + ``` + + b) 后端传参 + DataEase 支持后端 token 加密传参。 + ``` + @RestController + public class TokenApi { + # + ## 获取 DataEase 嵌入式 Token + ## DataEase 嵌入式 Token 使用的是 JWT 认证,由 appId、appSecret 以及 DataEase 用户名生成。 + ## Java 程序可直接引用 java-jwt (https://mvnrepository.com/artifact/com.auth0/java-jwt) 依赖,其它后端语言可自行百度加密代码。 + ## 注意,嵌入式 Token 的过期时间默认为 480 分钟,可通过修改 application.yml 进行调整 + ## 配置参数名称为 dataease.embedded-exp + # + + @GetMapping("/token/{account}") + public String generate(@PathVariable("account") String account) throws JsonProcessingException { + SettingVO vo = SettingUtils.read(); + # vo.getAppSecret() 实际为创建的嵌入式应用的 APP Secret 。 + Algorithm algorithm = Algorithm.HMAC256(vo.getAppSecret()); + JWTCreator.Builder builder = JWT.create(); + List ipList = new ArrayList<>(); + ipList.add("192.168.1.10"); + ipList.add("192.168.1.20"); + ObjectMapper objectMapper = new ObjectMapper(); + String json = objectMapper.writeValueAsString(ipList); + # vo.getAppId(): 实际为创建的嵌入式应用的 APP ID。account 用户账号。 + # arg 参数,参数值多个使用 json 格式 + builder.withClaim("account", account).withClaim("appId", vo.getAppId()).withClaim("arg1", "参数值1").withClaim("arg2", json); + #设置令牌生成时间, + builder.withIssuedAt(new Date()); + # 返回 token + return builder.sign(algorithm); + } + } + ``` + 2. 查看看板时,可点击第三方系统的查询组件等,过滤 DataEase 的看板数据。 + ``` + + + ``` +DataEase 向第三方系统传参 +!!! Abstract "" + 1.查看看板时,可点击 DataEase 里的各个组件,向第三方系统传递当前点击的内容,具体内容可通过解析传递的 message,获取相应的信息。 + + 以下为 DataEase 传递内部消息的解析后得到的参数例子,这些参数均可以在 DataEase 获取数据大屏的接口详情里得到。 + + ``` + 1.完整 data json 如下。 + { + "msgOrigin": "de-fit2cloud", + "type": "dataease-embedded-interactive", + "eventName": "de_inner_params", + "args": { + "sourceDvId": "1029081671057674240", + "sourceViewId": "7237349581229395968", + "message": + "eyJvcHRpb24iOiJwb2ludENsaWNrIiwibmFtZSI6IjE3MTQwOTczMjY2OTQiLCJ2aWV3SWQiOiI3MjM3MzQ5NTgxMjI5Mzk1OTY4IiwiZGltZW5zaW9uTGlzdCI6W3siaWQiOiIxNzE0MDk3MzI2NjkzIiwidmFsdWUiOjB9LHsiaWQiOiIxNzE0MDk3MzI2Njk0IiwidmFsdWUiOiJCb2IifV0sInF1b3RhTGlzdCI6W119" + } + } + + 2.message base64解码 json 如下。 + { + "option": "pointClick", + "name": "1714097326694", + "viewId": "7237349581229395968", + "dimensionList": [ + { + "id": "1714097326693", + "value": 0 + }, + { + "id": "1714097326694", + "value": "Bob"} + ], + "quotaList": [ ]} + ``` + + ``` + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板 ID。 + 5、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + # + + + ``` +### 3.4.2 仪表板设计器嵌入 +!!! Abstract "" + 仪表板编辑嵌入,嵌入整个仪表板设计器界面,可浏览嵌入仪表板也可编辑该仪表板。 + + ``` + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板 ID。 + 5、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + # + + + + @/api/hook + ``` +### 3.4.3 数据大屏嵌入 +!!! Abstract "" + 数据大屏嵌入支持嵌入单个数据大屏,并可浏览嵌入的数据大屏。数据大屏嵌入还支持外部参数设置。 + + ``` + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取数据大屏 ID。 + 5、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + + 双向传参应用场景: + 一、第三方系统向 DataEase 传参,依赖于 DataEase 仪表板/数据大屏外部参数实现。 + 1、初始化看板时,由第三方系统向 DataEase 传参过滤数据。 + a) 前端传参 + b) 后端传参 + 2、查看看板时,可点击第三方系统的查询组件等,过滤 DataEase 的看板数据。 + 二、DataEase 向第三方系统传参 + 1、查看看板时,可点击 DataEase 里的各个组件,向第三方系统传递当前点击的内容。 + # + + + + @/api/hook + ``` +3.4.3.1 数据大屏双向参数传递 +!!! Abstract "" + 参考 DIV 仪表板双向参数传递以及 DIV 数据大屏嵌入,将相应 busiFlag 修改对应。 +### 3.4.4 数据大屏设计器嵌入 +!!! Abstract "" + 数据大屏设计器嵌入,嵌入整个数据大屏设计器界面,可浏览嵌入数据大屏也可编辑该数据大屏。 + + ``` + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取数据大屏 ID。 + 5、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + # + + + + @/api/hook + ``` +### 3.4.5 图表嵌入 +!!! Abstract "" + 图表嵌入支持嵌入单个图表,并可浏览嵌入的图表。图表嵌入还支持外部参数设置。 + + ``` + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板/数据大屏 ID以及图表 ID。 + 5、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + + 双向传参应用场景: + 一、第三方系统向 DataEase 传参,依赖于 DataEase 仪表板/数据大屏外部参数实现。 + 1、初始化看板时,由第三方系统向 DataEase 传参过滤数据。 + a) 前端传参 + b) 后端传参 + 2、查看看板时,可点击第三方系统的查询组件等,过滤 DataEase 的看板数据。 + 二、DataEase 向第三方系统传参 + 1、查看看板时,可点击 DataEase 里的各个组件,向第三方系统传递当前点击的内容。 + # + + + + @/api/hook + ``` +3.4.5.1 图表双向参数传递 +!!! Abstract "" + 参考 DIV 仪表板双向参数传递以及 DIV 图表嵌入。 + +### 3.4.6 我的填报嵌入 +!!! Abstract "" + 支持我的填报的嵌入,查看填报信息。 + + ``` + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 5、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + # + + + + ``` + +### 3.4.7 模块嵌入 +!!! Abstract "" + DataEase 现有模块,数据源、数据集、数据大屏、仪表板等模块均可实现嵌入式。 + +3.4.7.1 仪表板模块 +!!! Abstract "" + 嵌入整个仪表板模块,嵌入后可实现仪表板模块的整体使用,包括新建仪表板,编辑仪表板、删除仪表板。 + + ``` + + + + @/api/hook + ``` + +3.4.7.2 数据大屏模块 +!!! Abstract "" + 嵌入整个数据大屏模块,嵌入后可实现数据大屏模块的整体使用,包括新建数据大屏,编辑数据大屏,删除数大屏。 + + ``` + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + # + + + + ``` +3.4.7.3 数据集模块 +!!! Abstract "" + 嵌入整个数据集模块,嵌入后可实现数据集模块的整体使用,包括新建数据集,编辑数据集,删除数集。 + + ``` + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + # + + + + + @/api/hook + ``` + +3.4.7.4 数据源模块 +!!! Abstract "" + 嵌入整个数据源,嵌入后可实现数据源模块的整体使用,包括新建数据源,编辑数据源,删除数源。 + + ``` + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + # + + + + + @/api/hook + ``` +3.4.7.5 数据填报模块 +!!! Abstract "" + 嵌入整个数据源,嵌入后可实现数据源模块的整体使用,包括新建数据源,编辑数据源,删除数源。 + + ``` + + + + @/api/hook + ``` + +3.4.7.6 Copilot 模块 +!!! Abstract "" + 嵌入 Copilot 模块。 + + ``` + + + + @/api/hook + ``` +3.4.7.7 模版管理模块 +!!! Abstract "" + + ``` + + + + @/api/hook + ``` +### 3.5 Iframe 嵌入 +!!! Abstract "" + Iframe 嵌入支持嵌入单个数据大屏、仪表板,图表资源。也支持数据集、数据源,仪表板,数据大屏等模块嵌入,提供一个模块的完整能力,可根据实际需要进行选择。 + + 使用 postMessage 方式实现 DataEase 和嵌入系统的页面信息交互。 + + (postMessage 是挂载在 window下的一个方法,用于不同域名下的两个页面的信息交互,父子页面通过 postMessage()发送消息,再通过监听 message 事件接收信息。)Iframe 嵌入必须在监听触发后,再初始化图表。 + + **注意:嵌入需要在 DataEase 的配置文件 /opt/dataease2.0/conf/application.yml 里增加 origin-list 配置,并重启服务。详细见常见问题 4.2。** + +### 3.5.1 仪表板嵌入 +!!! Abstract "" + 仪表板嵌入支持嵌入单个仪表板,并可浏览嵌入的仪表板。仪表板嵌入还支持外部参数设置。 + + ``` + # + 一、公共链接嵌入(数据不敏感或内网环境可用,使用 ticket 的方式会较为安全)。 + 1、获取仪表板公共链接 + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、设置 iframe 容器的 src 为仪表板公共链接。 + + 二、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板 ID。 + 5、构建初始化参数。 + 6、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + + 双向传参应用场景: + 一、第三方系统向 DataEase 传参,依赖于 DataEase 仪表板/数据大屏外部参数实现。 + 1、初始化看板时,由第三方系统向 DataEase 传参过滤数据。 + a) 公共链接拼接 attachParams 过滤数据。 + b) 公共链接使用 ticket 设置参数过滤数据。 + b) DataEase 推荐的 iframe 嵌入方式前端传参过滤数据。 + b) DataEase 推荐的 iframe 嵌入方式后端传参过滤数据。 + 2、查看看板时,可点击第三方系统的查询组件等,过滤 DataEase 的看板数据。 + 二、DataEase 向第三方系统传参 + 1、查看看板时,可点击 DataEase 里的各个组件,向第三方系统传递当前点击的内容。 + # + + + + + ``` +3.5.1.1 仪表板双向参数传递 +!!! Abstract "" + 使用仪表板、数据大屏、图表嵌入,可以通过嵌入式外部参数进行系统的数据交互,具体使用如下,代码采用 Vue3 代码 ,仪表板、数据大屏、图表双向参数传递等场景参考示例代码中相应部分。 + + 使用外部参数,需要在仪表板或者数据大屏设置好外部参数,具体见外部参数设置。 + +双向传参应用场景:
    + +第三方系统向 DataEase 传参,依赖于 DataEase 仪表板/数据大屏外部参数实现。 + +!!! Abstract "" + 1.初始化看板时,由第三方系统向 DataEase 传参过滤数据。 + + a) 公共链接拼接 attachParams 过滤数据。 + + ``` + # + 一、公共链接嵌入(数据不敏感或内网环境可用,使用 ticket 的方式会较为安全)。 + 1、获取仪表板公共链接 + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、设置 iframe 容器的 src 为仪表板公共链接。 + # + + + ``` + b) 公共链接使用 ticket 设置参数过滤数据。 + ``` + # + 一、公共链接嵌入(数据不敏感或内网环境可用,使用 ticket 的方式会较为安全)。 + 1、获取仪表板公共链接 + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、设置 iframe 容器的 src 为仪表板公共链接。 + # + + ``` + c) DataEase 推荐的 iframe 嵌入方式前端传参过滤数据。 + ``` + # + 二、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板 ID。 + 5、构建初始化参数。 + 6、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + ``` +DataEase 向第三方系统传参 +!!! Abstract "" + 查看看板时,可点击 DataEase 里的各个组件,向第三方系统传递当前点击的内容,具体内容可通过解析传递的 message,获取相应的信息。 + + 以下为 DataEase 传递内部消息的解析后得到的参数例子,这些参数均可以在 DataEase 获取数据大屏的接口详情里得到。 + + ``` + 1.完整 data json 如下。 + { + "msgOrigin": "de-fit2cloud", + "type": "dataease-embedded-interactive", + "eventName": "de_inner_params", + "args": { + "sourceDvId": "1029081671057674240", + "sourceViewId": "7237349581229395968", + "message": + "eyJvcHRpb24iOiJwb2ludENsaWNrIiwibmFtZSI6IjE3MTQwOTczMjY2OTQiLCJ2aWV3SWQiOiI3MjM3MzQ5NTgxMjI5Mzk1OTY4IiwiZGltZW5zaW9uTGlzdCI6W3siaWQiOiIxNzE0MDk3MzI2NjkzIiwidmFsdWUiOjB9LHsiaWQiOiIxNzE0MDk3MzI2Njk0IiwidmFsdWUiOiJCb2IifV0sInF1b3RhTGlzdCI6W119" + } + } + + 2.message base64解码 json 如下。 + { + "option": "pointClick", + "name": "1714097326694", + "viewId": "7237349581229395968", + "dimensionList": [ + { + "id": "1714097326693", + "value": 0 + }, + { + "id": "1714097326694", + "value": "Bob"} + ], + "quotaList": [ ]} + ``` + + ``` + # + 二、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板 ID。 + 5、构建初始化参数。 + 6、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + ``` +### 3.5.2 仪表板设计器嵌入 +!!! Abstract "" + 仪表板编辑嵌入支持嵌入整个仪表板设计器界面,用户不仅可以浏览嵌入的仪表板,还可以对其进行编辑: + + ``` + # + 一、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板 ID。 + 5、构建初始化参数。 + 6、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + + ``` + +### 3.5.3 数据大屏嵌入 +!!! Abstract "" + 数据大屏嵌入支持嵌入整个数据大屏,用户可以浏览嵌入的数据大屏,数据大屏嵌入还支持外部参数设置。 + + ``` + # + 一、公共链接嵌入(数据不敏感或内网环境可用,使用 ticket 的方式会较为安全)。 + 1、获取数据大屏公共链接 + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、设置 iframe 容器的 src 为数据大屏公共链接。 + + 二、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取数据大屏 ID。 + 5、构建初始化参数。 + 6、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + + 双向传参应用场景: + 一、第三方系统向 DataEase 传参,依赖于 DataEase 仪表板/数据大屏外部参数实现。 + 1、初始化看板时,由第三方系统向 DataEase 传参过滤数据。 + a) 公共链接拼接 attachParams 过滤数据。 + b) 公共链接使用 ticket 设置参数过滤数据。 + b) DataEase 推荐的 iframe 嵌入方式前端传参过滤数据。 + b) DataEase 推荐的 iframe 嵌入方式后端传参过滤数据。 + 2、查看看板时,可点击第三方系统的查询组件等,过滤 DataEase 的看板数据。 + 二、DataEase 向第三方系统传参 + 1、查看看板时,可点击 DataEase 里的各个组件,向第三方系统传递当前点击的内容。 + # + + + + + ``` +3.5.3.1 数据大屏双向参数传递 +!!! Abstract "" + 参考 Ifram 仪表板双向参数传递以及 Iframe 数据大屏嵌入,将相应 busiFlag 修改对应。 + +### 3.5.4 数据大屏设计器嵌入 +!!! Abstract "" + 数据大屏设计器嵌入支持嵌入整个数据大屏设计器界面,用户不仅可以浏览嵌入的数据大屏,还可以对其进行编辑: + + ``` + # + 一、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板 ID。 + 5、构建初始化参数。 + 6、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + + + ``` + +### 3.5.5 图表嵌入 +!!! Abstract "" + 图表嵌入支持嵌入单个图表,并可浏览嵌入的图表。图表嵌入还支持外部参数设置。 + + ``` + # + 一、、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板/数据大屏 ID 以及图表 ID。 + 5、构建初始化参数。 + 6、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + + 双向传参应用场景: + 一、第三方系统向 DataEase 传参,依赖于 DataEase 仪表板/数据大屏外部参数实现。 + 1、初始化看板时,由第三方系统向 DataEase 传参过滤数据。 + a) DataEase 推荐的 iframe 嵌入方式前端传参过滤数据。 + b) DataEase 推荐的 iframe 嵌入方式后端传参过滤数据。 + 2、查看看板时,可点击第三方系统的查询组件等,过滤 DataEase 的看板数据。 + 二、DataEase 向第三方系统传参 + 1、查看看板时,可点击 DataEase 里的各个组件,向第三方系统传递当前点击的内容。 + # + + + + + ``` +3.5.5.1 图表双向参数传递 +!!! Abstract "" + 参考 Iframe 仪表板双向参数传递以及 iframe 图表嵌入。 + +### 3.5.6 我的填报嵌入 +!!! Abstract "" + 支持我的填报嵌入,填报模块信息。 + + ``` + # + DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、构建初始化参数。 + 5、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + + + ``` +### 3.5.7 模块嵌入 +3.5.7.1 仪表板模块 +!!! Abstract "" + 嵌入整个仪表板模块后,可以实现对仪表板模块的整体使用,包括新建、编辑和删除仪表板: + + ``` + # + DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、构建初始化参数。 + 5、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + + + ``` +3.5.7.2 数据大屏模块 +!!! Abstract "" + 嵌入整个数据大屏模块后,可以实现对数据大屏模块的整体使用,包括新建、编辑和删除数据大屏。 + + ``` + # + 一、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、构建初始化参数。 + 5、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + + + ``` +3.5.7.3 数据集模块 +!!! Abstract "" + 嵌入整个数据集模块,嵌入后可实现数据集模块的整体使用,包括新建数据集,编辑数据集,删除数集。 + + ``` + # + 一、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、构建初始化参数。 + 5、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + + + ``` + +3.5.7.4 数据源模块 +!!! Abstract "" + 嵌入整个数据源,嵌入后可实现数据源模块的整体使用,包括新建数据源,编辑数据源,删除数源。 + + ``` + # + 一、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、构建初始化参数。 + 5、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + + + ``` + +3.5.7.5 数据填报模块 +!!! Abstract "" + 嵌入整个数据填报,嵌入后可实现数据填报模块的整体使用。 + + ``` + # + 一、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、构建初始化参数。 + 5、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + + + ``` + + +3.5.7.6 Copilot 模块 +!!! Abstract "" + 嵌入 Copilot 模块。 + + ``` + # + 一、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、构建初始化参数。 + 5、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + + + ``` + +3.5.7.7 模版管理模块 +!!! Abstract "" + + ``` + # + 一、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、构建初始化参数。 + 5、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + + + ``` + +## 4 嵌入式常见问题 + +### 4.1 DIV 嵌入后,页面打开空白,浏览器控制台有跨域相关的异常报错 +!!! Abstract "" + 如下所示: +![4. 嵌入式常见问题(1).png](img/embedded/4. 嵌入式常见问题(1).png){ width="900px" } + + +!!! Abstract "" + 解决方案:检查嵌入式应用的跨域设置,与提示报错的 origin 是否相同。 +![4. 嵌入式常见问题(2).png](img/embedded/4. 嵌入式常见问题(2).png){ width="900px" } + + +### 4.2 Iframe DIV 嵌入后,提示域名匹配错误 +!!! Abstract "" + 如下所示: +![4. 嵌入式常见问题(3).png](img/embedded/4. 嵌入式常见问题(3).png){ width="900px" } + +!!! Abstract "" + 解决方案 1:Iframe DIV 嵌入需要在 DataEase 的配置文件 /opt/dataease2.0/conf/application.yml 里增加 origin-list 配置访问 DataEase 地址,多个地址以逗号隔开并重启 DataEase 服务,如下所示: + + ``` + origin-list: http://localhost:8000,访问 DataEase 地址1(9080),访问 DataEase 地址2(9080) + ``` + + ``` + #重启 DataEase 服务 + dectl restart + ``` +![4. 嵌入式常见问题(4).png](img/embedded/4. 嵌入式常见问题(4).png){ width="900px" } + + +!!! Abstract "" + 解决方案 2:如果已经填写上述内容后依旧报错,需注意如下 + 检查嵌入系统访问域名和嵌入式 APP 里面的跨域设置是否一样,需要保持一致。 + + +### 4.3 DIV 嵌入后,页面打开空白,浏览器控制台提示 DataEaseBi is not defined +!!! Abstract "" + 如下所示: +![4. 嵌入式常见问题(5).png](img/embedded/4. 嵌入式常见问题(5).png){ width="900px" } + +!!! Abstract "" + 解决方案: + + 该问题可能由两种情况导致: + + 情况一:DataEase JS 未正确引入,如下所示,打开浏览器控制台,在 Network 页签选择 JS ,搜索 dataease 查看是否存在相关 JS 即可判断。 +![4. 嵌入式常见问题(6).png](img/embedded/4. 嵌入式常见问题(6).png){ width="900px" } + +!!! Abstract "" + 情况二:加载嵌入式页面时,DataEase JS 未加载完成。可通过 window.onload 或 setTimeOut(不建议) 等方式,等待 JS 加载完成后,再初始化 DataEaseBI 。 + +### 4.4 页面提示 500,查看 DataEase 容器日志提示 token is empty for uri +!!! Abstract "" + 如下所示: +![4. 嵌入式常见问题(7).png](img/embedded/4. 嵌入式常见问题(7).png){ width="900px" } +![4. 嵌入式常见问题(8).png](img/embedded/4. 嵌入式常见问题(8).png){ width="900px" } + +!!! Abstract "" + 解决方案: 该问题为使用社区版的 8100 端口进行嵌入式的调试,将端口修改为 9080 即可。 + +### 4.5 DIV 嵌入后,页面打开空白,浏览器控制台无任何报错,且 JS 加载等均正常 +!!! Abstract "" + 如下所示: +![4. 嵌入式常见问题(9).png](img/embedded/4. 嵌入式常见问题(9).png){ width="900px" } + +!!! Abstract "" + 解决方案: 该问题是由于未对 DIV 容器设置初始大小导致,手动设置 DIV 容器大小后即可解决。 + +### 4.6 DIV 嵌入时创建数据源弹框超出 DIV 范围 +!!! Abstract "" + 如下所示: +![4. 嵌入式常见问题(10).png](img/embedded/4. 嵌入式常见问题(10).png){ width="900px" } + +!!! Abstract "" + 解决方案: + + - 方案一:DIV 嵌入特性如此,可以在嵌入的目标系统中通过 CSS 类名 datasource-drawer-fullscreen 来设置样式。 + - 方案二:iFrame 嵌入无此问题,也可使用iFrame 方式嵌入。 + +### 4.7 DIV 嵌入时点击预览按钮提示域名匹配错误 +!!! Abstract "" + 如下所示: +![4. 嵌入式常见问题(11).png](img/embedded/4. 嵌入式常见问题(11).png){ width="900px" } + +!!! Abstract "" + 解决方案:需要新开标签页访问的的地址都要配置 origin-list,参考 4.2 处理。 + + +### 4.8 DIV 嵌入白屏,网络请求 401,iFrame 嵌入网络请求状态码 400 +!!! Abstract "" + 如下所示: + + DIV 嵌入时页面白屏,或列表为空,浏览器控制台查看网络请求状态有 401 状态码 +![4. 嵌入式常见问题(12).png](img/embedded/4. 嵌入式常见问题(12).png){ width="900px" } + +!!! Abstract "" + iFrame 嵌入时提示 Request failed with status code 400 + + 网络请求返回异常:Request processing failed: com.auth0.jwt.exceptions.InvalidClaimException: The Token can't be used before Wed Jan 08 13:42:29 CST 2025. +![4. 嵌入式常见问题(13).png](img/embedded/4. 嵌入式常见问题(13).png){ width="900px" } + +!!! Abstract "" + 解决方案: + + - 保证要嵌入的目标系统和 DataEase 服务器时间保持一致。 + - 嵌入式 Token 生成的时间需要与 DataEase 服务器时间保持一致,根据异常信息可知,Token 生成的时间是 Wed Jan 08 13:42:29 CST 2025,所以如果 DataEase 服务器时间早于此时间就会出现此问题。 +### 4.9 嵌入时,切换 id 实例化不同资源,出现白屏 +!!! Abstract "" + 解决方法: 切换 id 重新实例化前,先调用一下 destroy 方法,然后再实例化。 + +## 5. DataEase 嵌入式附加功能 + +### 5.1 单点登录 +!!! Abstract "" + 单点协议支持目前支持 OIDC、CAS ,使用方式如下: + +### 5.1.1 OIDC +!!! Abstract "" + DataEase 企业版支持 OIDC 协议,【系统设置】-> 【认证设置】-> 【OIDC】中进行设置。 + + 点击 OIDC 编辑。即可设置 OIDC,填写完相关信息后,测试连接显示成功,即配置成功。 +![5.1 单点登录(1).png](img/embedded/5.1 单点登录(1).png){ width="900px" } + +!!! Abstract "" + - Client ID:客户端 id。 + - Client Secret:客户端密码。 + - Discovery:OIDC 发现服务。 + - Realm:用于身份验证的领域,此处可自定义。 + - Scope:返回的有关经过身份验证的用户的信息,也称为声明,可通过发现服务获取,多个参数使用英文逗号分开。 + - Use Pkce:访问令牌。设置为 true 时,在请求标头中设置访问令牌。 + - Redirect Uri:重定向回的 URL。 +![5.1 单点登录(2).png](img/embedded/5.1 单点登录(2).png){ width="900px" } + +### 5.1.2 CAS +!!! Abstract "" + DataEase 企业版支持 CAS 协议,【系统设置】-> 【认证设置】-> 【CAS】中进行设置。 + + 点击 CAS 编辑。即可设置 CAS,填写完相关信息后,测试连接显示成功,即配置成功。 +![5.1 单点登录(3).png](img/embedded/5.1 单点登录(3).png){ width="900px" } + +!!! Abstract "" + - IdpUri:IdP 的 URI。 + - 回调域名:登录或注销后,回调的重定向 uri。 +![5.1 单点登录(4).png](img/embedded/5.1 单点登录(4).png){ width="900px" } + +### 5.1.3 LDAP +!!! Abstract "" + DataEase 企业版支持 LDAP 协议,【系统设置】-> 【认证设置】-> 【LDAP】中进行设置。 + + 点击 LDAP 编辑,即可设置 LDAP,填写完相关信息后,测试连接显示成功,即配置成功。 +![5.1 单点登录(5).png](img/embedded/5.1 单点登录(5).png){ width="900px" } + +!!! Abstract "" + - DAP地址: LDAP 服务器的地址。 + - 绑定DN:用于认证 LDAP 服务器的身份标识,即登录到 LDAP 服务器时使用的用户身份。 + - 密码:与绑定 DN 配对使用的密码,用于验证绑定 DN 的身份。 + - 用户OU:OU 是组织单元(Organizational Unit)的缩写,用来表示 LDAP 树中存放用户的特定路径(子树或分支)。 + - 用户过滤器:这是一个 LDAP 查询字符串,用于筛选特定的用户对象。可以用来查找满足条件的用户。 + - LDAP属性映射:将 LDAP 服务器中的属性对应到 DataEase 中的字段,account、name、email 为 DataEase 用户信息字段。 + +### 5.1.4 OAuth2 +![5.1 单点登录(6).png](img/embedded/5.1 单点登录(6).png){ width="900px" } +!!! Abstract "" + - 授权端地址:用户进行授权时访问的 URL,通常用于获取授权码(Authorization Code)。 + - Token 端地址:交换授权码(Authorization Code)或凭证(Client Credentials)以获取访问令牌(Access Token)。 + - 用户信息获取地址:授权服务器提供的 API 端点,用于在获得访问令牌后获取用户的个人信息(如用户名、邮箱等)。 + - 连接范围(scope):定义应用程序可以访问的资源范围,如用户信息、电子邮件、角色等。 + - 客户端 :OAuth2 应用的唯一标识。 + - 客户端密钥:与 Client ID 配合使用,确保应用身份验证的安全性。 + - 回调地址:OAuth2 认证完成后,重定向回应用的地址。 + - 字段映射:将 OAuth2 服务器中的属性对应到 DataEase 中的字段,account、name、email 为 DataEase 用户信息字段。 + + +## 5.2 模拟登录 +!!! Abstract "" + 模拟登录指:A 系统后台请求 DataEase 的登录接口,将登录成功的 Token 写入 LocalStorage 中,来模拟用户登录的过程,省去用户自己输入密码登录的过程。 + + 模拟登录又分同域和跨域两种方式,文章中会详细介绍。 + + 但有时受限于实际情况,比如没有搭建 SSO 系统,这时则可使用模拟登录方式,需要做一些开发,同样可以实现集成。 + +### 5.2.1 模拟登录方案介绍 +!!! Abstract "" + DataEase 的认证 token 是放在 LocalStorage 里面的,调用 /de2api/login/localLogin 接口可以拿到 Token 信息。关键问题在于怎么将 DataEase 的认证信息放到 LocalStorage 里面去。根据处理方案的不同,分为同域模拟登陆和跨域模拟登陆。 + + 同域模拟登陆是指 A 系统与 DataEase 在同一域名下。比如DataEase访问地址为:a.fit2cloud.com/dataease,A系统的访问地址为:a.fit2cloud.com/aSystem,它们使用的域名都是 a.fit2cloud.com。这种情况下,A 系统可以将 user.token 信息存放在 a.fit2cloud.com 域名的 Local storage 下,DataEase 也可以获取 a.fit2cloud.com 域名下的 Local storage,以此实现模拟登录认证。 + + 跨域模拟登陆是指 A 系统与 DataEase 不在同一域名下。这种情况下,A 系统携带 Token 信息访问 DataEase 系统(只是通过特定的路径),Nginx 通过特定路径拦截到请求重定向至自定义的 HTML 页面,然后通过 HTML 页面中的 JS 代码将 Token 信息写入到 LocalStorage 中去,然后再跳转到 DataEase 正常的访问路径,至此完成模拟登录。 + +### 5.2.2 同域模拟登陆 + +5.2.2.1 流程描述
    +![5.2模拟登录(1).png](img/embedded/5.2模拟登录(1).png){ width="900px" } +!!! Abstract "" + 1. 用户登录 A 系统 + 2. 用户在 A 系统中通过 Iframe 访问 A 系统的模拟登录接口 + 3. A 系统根据已登录的用户信息请求 DataEase 的用户查询接口,获取到 DataEase 系统中对应的用户 ID + 4. A 系统根据用户 ID 调用 DataEase 重置用户密码的接口 /user/resetPwd,重置用户密码 + 5. A 系统调用 DataEase 的模拟登录接口获取 Token + 6. A 系统将 Token 信息写入当前域名的 LocalStorage 下,然后再跳转到 DataEase 正常的访问路径 + +5.2.2.2 开发指南 +!!! Abstract "" + 此方案需要 A 系统提供一个模拟登录接口,模拟登陆接口中获取用户 Token(如果需要使用动态的用户进行登陆认证,则需要调用获取用户接口和修改用户密码接口来保证模拟登录成功),前端将获取到的token写入当前域名的LocalStorage下,然后再跳转到 DataEase 正常的访问路径,至此完成模拟登录。 + + 参考示例代码:dataease-login-adpter-demo +![5.2模拟登录(2).png](img/embedded/5.2模拟登录(2).png){ width="900px" } +![5.2模拟登录(3).png](img/embedded/5.2模拟登录(3).png){ width="900px" } + +### 5.2.3 跨域模拟登陆 + +5.2.3.1 流程描述 + +![5.2模拟登录(4).png](img/embedded/5.2模拟登录(4).png){ width="900px" } +!!! Abstract "" + 1. 用户登录 A 系统 + 2. 用户在 A 系统中通过 Iframe 访问 A 系统的模拟登录接口 + 3. A 系统根据已登录的用户信息请求 DataEase 的用户查询接口,获取到 DataEase 系统中对应的用户 ID + 4. A 系统根据用户 ID 调用 DataEase 重置用户密码的接口 /user/resetPwd,重置用户密码 + 5. A 系统调用 DataEase 的模拟登录接口获取 Token + 6. A 系统携带 Token 信息访问 DataEase 系统(只是通过特定的路径) + 7. Nginx 通过特定路径拦截到请求重定向至自定义的 HTML 页面,然后通过 HTML 页面中的 JS 代码将 Token 信息写入到 LocalStorage 中去,然后再跳转到 DataEase 正常的访问路径 + +5.2.3.2 开发指南 +!!! Abstract "" + 此方案需要 A 系统提供一个模拟登录接口,模拟登陆接口中获取用户 Token,并返回重定向地址,重定向地址携带 Token 信息重定向到特定路径(如果需要使用动态的用户进行登陆认证,则需要调用获取用户接口和修改用户密码接口来保证模拟登录成功)。 + + Nginx 通过特定路径拦截到请求重定向至自定义的 HTML 页面,然后通过 HTML 页面中的 JS 代码将 Token 信息写入到 LocalStorage 中去,然后再跳转到 DataEase 正常的访问路径,至此完成模拟登录。 + + 参考示例代码:dataease-login-adpter-demo +![5.2模拟登录(5).png](img/embedded/5.2模拟登录(5).png){ width="900px" } +![5.2模拟登录(6).png](img/embedded/5.2模拟登录(6).png){ width="900px" } + +5.2.3.3 Nginx配置 +!!! Abstract "" + Nginx 还需要配置一个静态网页,用于设置 LocalStorage 用。Nginx 配置参考如下: + + ``` + location / { + proxy_pass + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $http_host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + location /sso { + # 请将此配置 [./src/main/resources/templates] 修改为 login-template.html 存放路径 + # login-template.html 取自示例代码的 src/main/resources/templates/ 目录 + # 将其与 nginx 放置于同一服务器,然后在 nginx 配置文件中将此配置项填写为 login-template.html 的所在目录; + alias ./src/main/resources/templates + index login-template.html; + } + ``` \ No newline at end of file diff --git a/docs/embedded/app.md b/docs/embedded/app.md new file mode 100644 index 000000000..f561e11f7 --- /dev/null +++ b/docs/embedded/app.md @@ -0,0 +1,20 @@ +!!! Abstract "" + 点击【系统设置】,进入【嵌入式管理】页面创建嵌入式应用。 + + **注意:嵌入式版本最多可创建 5 个嵌入式应用,其它版本无此限制。** + +!!! Abstract "" + 嵌入式应用创建后,可以获取 APP ID、APP Secret。 + + APP ID:嵌入式获取 JWT token 需要填写的 ID。 + + APP Secret :嵌入式获取 JWT token 需要填写的 Secret。 +![2.2嵌入式 APP 创建.png](../img/embedded/2.2嵌入式 APP 创建.png){ width="900px" } +![2.2嵌入式 APP 创建(2).png](../img/embedded/2.2嵌入式 APP 创建(2).png){ width="900px" } +![2.2嵌入式 APP 创建(3).png](../img/embedded/2.2嵌入式 APP 创建(3).png){ width="900px" } + +!!! Abstract "" + - 应用名称:嵌入式应用名称,可自定义。 + - 跨域设置:嵌入系统的访问地址。 + + 提示:跨域指两个域名不同的网页之间进行通信,填写嵌入系统的访问地址,跨域限制是由浏览器的同源策略(Same-Origin Policy)决定的。这是一种安全机制,旨在防止恶意网站读取其他网站的敏感数据。 diff --git a/docs/embedded/cross.md b/docs/embedded/cross.md new file mode 100644 index 000000000..95bf6dcee --- /dev/null +++ b/docs/embedded/cross.md @@ -0,0 +1,33 @@ + +!!! Abstract "" + 浏览器的同源策略(Same-Origin Policy)规定,只有当协议(protocol)、域名(domain)和端口(port)完全相同的情况下,网页才能自由访问另一个源的资源。如果请求的资源与当前网页的源不同,为跨域请求。具体如下: + + 1. 不同的协议 + ``` + 示例:从 http://example.com 请求 https://example.com。 + 原因:即使主机名和端口相同,协议不同也算跨域。 + ``` + + 2. 不同的端口 + ``` + 示例:从 http://example.com:3000 请求 http://example.com:4000。 + 原因:端口不同,即使协议和主机名相同。 + ``` + + 3. 不同的顶级域名 + ``` + 示例:从 http://example.com 请求 http://anotherexample.com。 + 原因:顶级域名不同。 + ``` + + 4. 子域名和顶级域名 + ``` + 示例:从 http://sub.example.com 请求 http://example.com。 + 原因:子域名和顶级域名不同,也算跨域。 + ``` + + 5. 子域名和子域名 + ``` + 示例:从 http://sub1.example.com 请求 http://sub2.example.com。 + 原因:子域名和子域名不同,也算跨域。 + ``` \ No newline at end of file diff --git a/docs/embedded/div.md b/docs/embedded/div.md new file mode 100644 index 000000000..0f8ab9193 --- /dev/null +++ b/docs/embedded/div.md @@ -0,0 +1,825 @@ +!!! Abstract "" + DIV 嵌入支持嵌入单个数据大屏、仪表板,图表资源。也支持数据集、数据源,仪表板,数据大屏等模块嵌入,提供一个模块的完整能力,可根据实际需要进行选择。 + + DIV 嵌入需引入 DataEase 嵌入式 JS。 + + DIV 嵌入的初始化图表不依赖监听触发,DIV 嵌入需要定义好容器的大小 。 + + **注意:嵌入需要在 DataEase 的配置文件 /opt/dataease2.0/conf/application.yml 里增加 origin-list 配置,并重启服务。详细见[嵌入式常见问题 2](https://dataease.cn/docs/v2/embedded/question/#2-iframe-div)。** + +## 1 仪表板嵌入 +!!! Abstract "" + 仪表板嵌入支持嵌入单个仪表板,并可浏览嵌入的仪表板。仪表板嵌入还支持外部参数设置。 + + ``` + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板 ID。 + 5、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + + 双向传参应用场景: + 一、第三方系统向 DataEase 传参,依赖于 DataEase 仪表板/数据大屏外部参数实现。 + 1、初始化看板时,由第三方系统向 DataEase 传参过滤数据。 + a) 前端传参 + b) 后端传参 + 2、查看看板时,可点击第三方系统的查询组件等,过滤 DataEase 的看板数据。 + 二、DataEase 向第三方系统传参 + 1、查看看板时,可点击 DataEase 里的各个组件,向第三方系统传递当前点击的内容。 + # + + + + @/api/hook + ``` + +### 1.1 仪表板双向参数传递 + +!!! Abstract "" + 使用仪表板、数据大屏、图表嵌入,可以通过嵌入式外部参数进行系统的数据交互,具体使用如下,代码采用 [Vue3 代码](https://github.com/dataease/embedded-demo/tree/isv-embedded-demo) ,仪表板、数据大屏、图表双向参数传递等场景参考示例代码中相应部分。 + + 使用外部参数,需要在仪表板或者数据大屏设置好外部参数,具体见外部参数设置。 +双向传参应用场景:
    + +!!! Abstract "" + 第三方系统向 DataEase 传参,依赖于 DataEase 仪表板/数据大屏外部参数实现。 + + 1.初始化看板时,由第三方系统向 DataEase 传参过滤数据。 + + a) 前端传参 + 在仪表板嵌入的基础上,加入外部参数即可。 + ``` + + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板 ID。 + 5、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + # + + ``` + + b) 后端传参 + DataEase 支持后端 token 加密传参。 + ``` + @RestController + public class TokenApi { + # + ## 获取 DataEase 嵌入式 Token + ## DataEase 嵌入式 Token 使用的是 JWT 认证,由 appId、appSecret 以及 DataEase 用户名生成。 + ## Java 程序可直接引用 java-jwt (https://mvnrepository.com/artifact/com.auth0/java-jwt) 依赖,其它后端语言可自行百度加密代码。 + ## 注意,嵌入式 Token 的过期时间默认为 480 分钟,可通过修改 application.yml 进行调整 + ## 配置参数名称为 dataease.embedded-exp + # + + @GetMapping("/token/{account}") + public String generate(@PathVariable("account") String account) throws JsonProcessingException { + SettingVO vo = SettingUtils.read(); + # vo.getAppSecret() 实际为创建的嵌入式应用的 APP Secret 。 + Algorithm algorithm = Algorithm.HMAC256(vo.getAppSecret()); + JWTCreator.Builder builder = JWT.create(); + List ipList = new ArrayList<>(); + ipList.add("192.168.1.10"); + ipList.add("192.168.1.20"); + ObjectMapper objectMapper = new ObjectMapper(); + String json = objectMapper.writeValueAsString(ipList); + # vo.getAppId(): 实际为创建的嵌入式应用的 APP ID。account 用户账号。 + # arg 参数,参数值多个使用 json 格式 + builder.withClaim("account", account).withClaim("appId", vo.getAppId()).withClaim("arg1", "参数值1").withClaim("arg2", json); + #设置令牌生成时间, + builder.withIssuedAt(new Date()); + # 返回 token + return builder.sign(algorithm); + } + } + ``` + 2. 查看看板时,可点击第三方系统的查询组件等,过滤 DataEase 的看板数据。 + ``` + + + ``` +!!! Abstract "" + DataEase 向第三方系统传参 + + 1.查看看板时,可点击 DataEase 里的各个组件,向第三方系统传递当前点击的内容,具体内容可通过解析传递的 message,获取相应的信息。 + + 以下为 DataEase 传递内部消息的解析后得到的参数例子,这些参数均可以在 DataEase 获取数据大屏的接口详情里得到。 + + ``` + 1.完整 data json 如下。 + { + "msgOrigin": "de-fit2cloud", + "type": "dataease-embedded-interactive", + "eventName": "de_inner_params", + "args": { + "sourceDvId": "1029081671057674240", + "sourceViewId": "7237349581229395968", + "message": + "eyJvcHRpb24iOiJwb2ludENsaWNrIiwibmFtZSI6IjE3MTQwOTczMjY2OTQiLCJ2aWV3SWQiOiI3MjM3MzQ5NTgxMjI5Mzk1OTY4IiwiZGltZW5zaW9uTGlzdCI6W3siaWQiOiIxNzE0MDk3MzI2NjkzIiwidmFsdWUiOjB9LHsiaWQiOiIxNzE0MDk3MzI2Njk0IiwidmFsdWUiOiJCb2IifV0sInF1b3RhTGlzdCI6W119" + } + } + + 2.message base64解码 json 如下。 + { + "option": "pointClick", + "name": "1714097326694", + "viewId": "7237349581229395968", + "dimensionList": [ + { + "id": "1714097326693", + "value": 0 + }, + { + "id": "1714097326694", + "value": "Bob"} + ], + "quotaList": [ ]} + ``` + + ``` + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板 ID。 + 5、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + # + + + ``` +## 2 仪表板设计器嵌入 +!!! Abstract "" + 仪表板编辑嵌入,嵌入整个仪表板设计器界面,可浏览嵌入仪表板也可编辑该仪表板。 + + ``` + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板 ID。 + 5、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + # + + + + @/api/hook + ``` +## 3 数据大屏嵌入 +!!! Abstract "" + 数据大屏嵌入支持嵌入单个数据大屏,并可浏览嵌入的数据大屏。数据大屏嵌入还支持外部参数设置。 + + ``` + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取数据大屏 ID。 + 5、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + + 双向传参应用场景: + 一、第三方系统向 DataEase 传参,依赖于 DataEase 仪表板/数据大屏外部参数实现。 + 1、初始化看板时,由第三方系统向 DataEase 传参过滤数据。 + a) 前端传参 + b) 后端传参 + 2、查看看板时,可点击第三方系统的查询组件等,过滤 DataEase 的看板数据。 + 二、DataEase 向第三方系统传参 + 1、查看看板时,可点击 DataEase 里的各个组件,向第三方系统传递当前点击的内容。 + # + + + + @/api/hook + ``` +### 3.1 数据大屏双向参数传递 +!!! Abstract "" + 参考 [1.1 仪表板双向参数传递](https://dataease.cn/docs/v2/embedded/div/#11)以及 [3 数据大屏嵌入](https://dataease.cn/docs/v2/embedded/div/#3),将相应 busiFlag 修改对应。 + + - 仪表板图表 busiFlag: dashboard + - 数据大屏图表 busiFlag: dataV + +## 4 数据大屏设计器嵌入 +!!! Abstract "" + 数据大屏设计器嵌入,嵌入整个数据大屏设计器界面,可浏览嵌入数据大屏也可编辑该数据大屏。 + + ``` + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取数据大屏 ID。 + 5、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + # + + + + @/api/hook + ``` +## 5 图表嵌入 +!!! Abstract "" + 图表嵌入支持嵌入单个图表,并可浏览嵌入的图表。图表嵌入还支持外部参数设置。 + + ``` + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板/数据大屏 ID以及图表 ID。 + 5、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + + 双向传参应用场景: + 一、第三方系统向 DataEase 传参,依赖于 DataEase 仪表板/数据大屏外部参数实现。 + 1、初始化看板时,由第三方系统向 DataEase 传参过滤数据。 + a) 前端传参 + b) 后端传参 + 2、查看看板时,可点击第三方系统的查询组件等,过滤 DataEase 的看板数据。 + 二、DataEase 向第三方系统传参 + 1、查看看板时,可点击 DataEase 里的各个组件,向第三方系统传递当前点击的内容。 + # + + + + @/api/hook + ``` +### 5.1 图表双向参数传递 +!!! Abstract "" + 参考 [1.1 仪表板双向参数传递](https://dataease.cn/docs/v2/embedded/div/#11)以及 [5 图表嵌入](https://dataease.cn/docs/v2/embedded/div/#5)。 + +## 6 我的填报嵌入 +!!! Abstract "" + 支持我的填报的嵌入,查看填报信息。 + + ``` + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 5、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + # + + + + ``` + +## 7 模块嵌入 +!!! Abstract "" + DataEase 现有模块,数据源、数据集、数据大屏、仪表板等模块均可实现嵌入式。 + +### 7.1 仪表板模块 +!!! Abstract "" + 嵌入整个仪表板模块,嵌入后可实现仪表板模块的整体使用,包括新建仪表板,编辑仪表板、删除仪表板。 + + ``` + + + + @/api/hook + ``` + +### 7.2 数据大屏模块 +!!! Abstract "" + 嵌入整个数据大屏模块,嵌入后可实现数据大屏模块的整体使用,包括新建数据大屏,编辑数据大屏,删除数大屏。 + + ``` + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + # + + + + ``` +### 7.3 数据集模块 +!!! Abstract "" + 嵌入整个数据集模块,嵌入后可实现数据集模块的整体使用,包括新建数据集,编辑数据集,删除数集。 + + ``` + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + # + + + + + @/api/hook + ``` + +### 7.4 数据源模块 +!!! Abstract "" + 嵌入整个数据源,嵌入后可实现数据源模块的整体使用,包括新建数据源,编辑数据源,删除数源。 + + ``` + # + 1、DIV 嵌入需要引用嵌入式 JS,一般可以在 index.html 里进行引用. + 2、定义一个 DIV 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、创建 DataEaseBi 对象,传入相应参数,渲染 DIV 容器,完成嵌入。 + # + + + + + @/api/hook + ``` +### 7.5 数据填报模块 +!!! Abstract "" + 嵌入整个数据源,嵌入后可实现数据源模块的整体使用,包括新建数据源,编辑数据源,删除数源。 + + ``` + + + + @/api/hook + ``` + +### 7.6 Copilot 模块 +!!! Abstract "" + 嵌入 Copilot 模块。 + + ``` + + + + @/api/hook + ``` +### 7.7 模版管理模块 +!!! Abstract "" + + ``` + + + + @/api/hook + ``` \ No newline at end of file diff --git a/docs/embedded/effect.md b/docs/embedded/effect.md new file mode 100644 index 000000000..3fd71a66b --- /dev/null +++ b/docs/embedded/effect.md @@ -0,0 +1,17 @@ +!!! Abstract "" + 官方演示环境,嵌入式官方体验环境,可查看嵌入式效果。 + + 官方 demo 代码, Layui 框架代码 ,Vue3 代码 。 +!!! Abstract "" + 数据大屏及数据大屏设计器嵌入。 +![1.2 嵌入场景预览(1)](../img/embedded/1.2 嵌入场景预览(1).PNG){ width="900px" } +![1.2 嵌入场景预览(11).PNG](../img/embedded/1.2 嵌入场景预览(11).PNG){ width="900px" } + +!!! Abstract "" + 仪表板及仪表板设计器嵌入。 +![1.2 嵌入场景预览(2).png](../img/embedded/1.2 嵌入场景预览(2).png){ width="900px" } +![1.2 嵌入场景预览(22).png](../img/embedded/1.2 嵌入场景预览(22).png){ width="900px" } + +!!! Abstract "" + 模块嵌入。 +![1.2 嵌入场景预览(3).png](../img/embedded/1.2 嵌入场景预览(3).png){ width="900px" } \ No newline at end of file diff --git a/docs/embedded/id.md b/docs/embedded/id.md new file mode 100644 index 000000000..b976f3775 --- /dev/null +++ b/docs/embedded/id.md @@ -0,0 +1,10 @@ + +!!! Abstract "" + 数据大屏 ID(编辑或预览界面均可获取) 及图表 ID 获取。 +![1数据大屏id.jpg](../img/embedded/1数据大屏id.jpg){ width="900px" } +![1数据大屏-图表 id.jpg](../img/embedded/1数据大屏-图表 id.jpg){ width="900px" } + +!!! Abstract "" + 仪表板 ID(编辑或预览界面均可获取)以及图表ID 获取。 +![1图表id.jpg](../img/embedded/1图表id.jpg){ width="900px" } +![1仪表板-图表id.jpg](../img/embedded/1仪表板-图表id.jpg){ width="900px" } \ No newline at end of file diff --git a/docs/embedded/iframe.md b/docs/embedded/iframe.md new file mode 100644 index 000000000..6caa5db50 --- /dev/null +++ b/docs/embedded/iframe.md @@ -0,0 +1,1286 @@ +!!! Abstract "" + Iframe 嵌入支持嵌入单个数据大屏、仪表板,图表资源。也支持数据集、数据源,仪表板,数据大屏等模块嵌入,提供一个模块的完整能力,可根据实际需要进行选择。 + + 使用 postMessage 方式实现 DataEase 和嵌入系统的页面信息交互。 + + (postMessage 是挂载在 window下的一个方法,用于不同域名下的两个页面的信息交互,父子页面通过 postMessage() 发送消息,再通过监听 message 事件接收信息。)Iframe 嵌入必须在监听触发后,再初始化图表。 + + **注意:嵌入需要在 DataEase 的配置文件 /opt/dataease2.0/conf/application.yml 里增加 origin-list 配置,并重启服务。详细见[嵌入式常见问题 2](https://dataease.cn/docs/v2/embedded/question/#2-iframe-div)。** + +## 1 仪表板嵌入 +!!! Abstract "" + 仪表板嵌入支持嵌入单个仪表板,并可浏览嵌入的仪表板。仪表板嵌入还支持外部参数设置。 + + ``` + # + 一、公共链接嵌入(数据不敏感或内网环境可用,使用 ticket 的方式会较为安全)。 + 1、获取仪表板公共链接 + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、设置 iframe 容器的 src 为仪表板公共链接。 + + 二、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板 ID。 + 5、构建初始化参数。 + 6、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + + 双向传参应用场景: + 一、第三方系统向 DataEase 传参,依赖于 DataEase 仪表板/数据大屏外部参数实现。 + 1、初始化看板时,由第三方系统向 DataEase 传参过滤数据。 + a) 公共链接拼接 attachParams 过滤数据。 + b) 公共链接使用 ticket 设置参数过滤数据。 + b) DataEase 推荐的 iframe 嵌入方式前端传参过滤数据。 + b) DataEase 推荐的 iframe 嵌入方式后端传参过滤数据。 + 2、查看看板时,可点击第三方系统的查询组件等,过滤 DataEase 的看板数据。 + 二、DataEase 向第三方系统传参 + 1、查看看板时,可点击 DataEase 里的各个组件,向第三方系统传递当前点击的内容。 + # + + + + + ``` +### 1.1 仪表板双向参数传递 +!!! Abstract "" + 使用仪表板、数据大屏、图表嵌入,可以通过嵌入式外部参数进行系统的数据交互,具体使用如下,代码采用 [Vue3 代码](https://github.com/dataease/embedded-demo/tree/isv-embedded-demo) ,仪表板、数据大屏、图表双向参数传递等场景参考示例代码中相应部分。 + + 使用外部参数,需要在仪表板或者数据大屏设置好外部参数,具体见外部参数设置。 + +双向传参应用场景:
    +!!! Abstract "" + 第三方系统向 DataEase 传参,依赖于 DataEase 仪表板/数据大屏外部参数实现。 + + 1.初始化看板时,由第三方系统向 DataEase 传参过滤数据。
    + + a) 公共链接拼接 attachParams 过滤数据。 + ``` + # + 一、公共链接嵌入(数据不敏感或内网环境可用,使用 ticket 的方式会较为安全)。 + 1、获取仪表板公共链接 + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、设置 iframe 容器的 src 为仪表板公共链接。 + # + + + ``` + b) 公共链接使用 ticket 设置参数过滤数据。 + ``` + # + 一、公共链接嵌入(数据不敏感或内网环境可用,使用 ticket 的方式会较为安全)。 + 1、获取仪表板公共链接 + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、设置 iframe 容器的 src 为仪表板公共链接。 + # + + ``` + c) DataEase 推荐的 iframe 嵌入方式前端传参过滤数据。 + ``` + # + 二、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板 ID。 + 5、构建初始化参数。 + 6、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + ``` +!!! Abstract "" + DataEase 向第三方系统传参
    + + 查看看板时,可点击 DataEase 里的各个组件,向第三方系统传递当前点击的内容,具体内容可通过解析传递的 message,获取相应的信息。 + + 以下为 DataEase 传递内部消息的解析后得到的参数例子,这些参数均可以在 DataEase 获取数据大屏的接口详情里得到。 + + ``` + 1.完整 data json 如下。 + { + "msgOrigin": "de-fit2cloud", + "type": "dataease-embedded-interactive", + "eventName": "de_inner_params", + "args": { + "sourceDvId": "1029081671057674240", + "sourceViewId": "7237349581229395968", + "message": + "eyJvcHRpb24iOiJwb2ludENsaWNrIiwibmFtZSI6IjE3MTQwOTczMjY2OTQiLCJ2aWV3SWQiOiI3MjM3MzQ5NTgxMjI5Mzk1OTY4IiwiZGltZW5zaW9uTGlzdCI6W3siaWQiOiIxNzE0MDk3MzI2NjkzIiwidmFsdWUiOjB9LHsiaWQiOiIxNzE0MDk3MzI2Njk0IiwidmFsdWUiOiJCb2IifV0sInF1b3RhTGlzdCI6W119" + } + } + + 2.message base64解码 json 如下。 + { + "option": "pointClick", + "name": "1714097326694", + "viewId": "7237349581229395968", + "dimensionList": [ + { + "id": "1714097326693", + "value": 0 + }, + { + "id": "1714097326694", + "value": "Bob"} + ], + "quotaList": [ ]} + ``` + 示例代码: + ``` + # + 二、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板 ID。 + 5、构建初始化参数。 + 6、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + ``` +## 2 仪表板设计器嵌入 +!!! Abstract "" + 仪表板编辑嵌入支持嵌入整个仪表板设计器界面,用户不仅可以浏览嵌入的仪表板,还可以对其进行编辑: + + ``` + # + 一、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板 ID。 + 5、构建初始化参数。 + 6、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + + ``` + +## 3 数据大屏嵌入 +!!! Abstract "" + 可以将数据大屏嵌入到第三方业务系统中,用户通过第三方系统访问数据大屏,同时支持外部参数过滤设置。 + + ``` + # + 一、公共链接嵌入(数据不敏感或内网环境可用,使用 ticket 的方式会较为安全)。 + 1、获取数据大屏公共链接 + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、设置 iframe 容器的 src 为数据大屏公共链接。 + + 二、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取数据大屏 ID。 + 5、构建初始化参数。 + 6、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + + 双向传参应用场景: + 一、第三方系统向 DataEase 传参,依赖于 DataEase 仪表板/数据大屏外部参数实现。 + 1、初始化看板时,由第三方系统向 DataEase 传参过滤数据。 + a) 公共链接拼接 attachParams 过滤数据。 + b) 公共链接使用 ticket 设置参数过滤数据。 + b) DataEase 推荐的 iframe 嵌入方式前端传参过滤数据。 + b) DataEase 推荐的 iframe 嵌入方式后端传参过滤数据。 + 2、查看看板时,可点击第三方系统的查询组件等,过滤 DataEase 的看板数据。 + 二、DataEase 向第三方系统传参 + 1、查看看板时,可点击 DataEase 里的各个组件,向第三方系统传递当前点击的内容。 + # + + + + + ``` +### 3.1 数据大屏双向参数传递 +!!! Abstract "" + 参考 [1.1 仪表板双向参数传递](https://dataease.cn/docs/v2/embedded/iframe/#11)以及 [3 数据大屏嵌入](https://dataease.cn/docs/v2/embedded/iframe/#3)。以及 Iframe 数据大屏嵌入,将相应 busiFlag 修改对应。 + + - 仪表板图表 busiFlag: dashboard + - 数据大屏图表 busiFlag: dataV + +## 4 数据大屏设计器嵌入 +!!! Abstract "" + 支持嵌入整个数据大屏设计器界面,用户不仅可以浏览嵌入的数据大屏,还可以对其进行编辑: + + ``` + # + 一、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板 ID。 + 5、构建初始化参数。 + 6、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + + + ``` + +## 5 图表嵌入 +!!! Abstract "" + 图表嵌入支持嵌入单个图表,并可浏览嵌入的图表。图表嵌入还支持外部参数设置。 + + ``` + # + 一、、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、获取仪表板/数据大屏 ID 以及图表 ID。 + 5、构建初始化参数。 + 6、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + + 双向传参应用场景: + 一、第三方系统向 DataEase 传参,依赖于 DataEase 仪表板/数据大屏外部参数实现。 + 1、初始化看板时,由第三方系统向 DataEase 传参过滤数据。 + a) DataEase 推荐的 iframe 嵌入方式前端传参过滤数据。 + b) DataEase 推荐的 iframe 嵌入方式后端传参过滤数据。 + 2、查看看板时,可点击第三方系统的查询组件等,过滤 DataEase 的看板数据。 + 二、DataEase 向第三方系统传参 + 1、查看看板时,可点击 DataEase 里的各个组件,向第三方系统传递当前点击的内容。 + # + + + + + ``` +### 5.1 图表双向参数传递 +!!! Abstract "" + 参考 Iframe 仪表板双向参数传递以及 iframe 图表嵌入。 + +## 6 我的填报嵌入 +!!! Abstract "" + 支持我的填报嵌入,填报模块信息。 + + ``` + # + DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、构建初始化参数。 + 5、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + + + ``` + +## 7 模块嵌入 + +### 7.1 仪表板模块 +!!! Abstract "" + 嵌入整个仪表板模块后,可以实现对仪表板模块的整体使用,包括新建、编辑和删除仪表板。 + + ``` + # + DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、构建初始化参数。 + 5、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + + + ``` +### 7.2 数据大屏模块 +!!! Abstract "" + 嵌入整个数据大屏模块后,可以实现对数据大屏模块的整体使用,包括新建、编辑和删除数据大屏。 + + ``` + # + 一、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、构建初始化参数。 + 5、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + + + ``` +### 7.3 数据集模块 +!!! Abstract "" + 嵌入整个数据集模块,嵌入后可实现数据集模块的整体使用,包括新建数据集,编辑数据集,删除数集。 + + ``` + # + 一、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、构建初始化参数。 + 5、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + + + ``` + +### 7.4 数据源模块 +!!! Abstract "" + 嵌入整个数据源,嵌入后可实现数据源模块的整体使用,包括新建数据源,编辑数据源,删除数源。 + + ``` + # + 一、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、构建初始化参数。 + 5、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + + + ``` + +### 7.5 数据填报模块 +!!! Abstract "" + 嵌入整个数据填报,嵌入后可实现数据填报模块的整体使用。 + + ``` + # + 一、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、构建初始化参数。 + 5、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + + + ``` + + +### 7.6 Copilot 模块 +!!! Abstract "" + 嵌入 Copilot 模块。 + + ``` + # + 一、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、构建初始化参数。 + 5、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + + + ``` + +### 7.7 模版管理模块 +!!! Abstract "" + + ``` + # + 一、DataEase 嵌入式推荐的 iframe 嵌入 + 1、iframe 嵌入需要先在 application.yml 里添加 origin-list + 2、定义一个 iframe 容器,并且设置好宽高。 + 3、调用嵌入式 Token 生成接口,获取嵌入式 Token。 + 4、构建初始化参数。 + 5、监听来自 DataEase 事件的 msgOrigin ,如果 msgOrigin 为 de-fit2cloud ,则通过 postMessage 发送初始化参数,渲染看板。 + # + + + + + ``` diff --git a/docs/embedded/interaction.md b/docs/embedded/interaction.md new file mode 100644 index 000000000..536a63fc5 --- /dev/null +++ b/docs/embedded/interaction.md @@ -0,0 +1,61 @@ +!!! Abstract "" + 嵌入式支持外部参数传递,可以使用该功能根据第三方系统传递的参数在 DataEase 中进行数据的过滤,或者 DataEase 向第三方系统传递参数,外部参数可根据业务需求选择使用或者不使用。 +!!! Abstract "" + 目前支持参数及场景如下,使用参数需在仪表板或者数据大屏首先做好参数设置。 + +## 1 外部参数传递支持场景 +!!! Abstract "" + - Iframe 嵌入图表、仪表板、数据大屏。 + - DIV 嵌入图表、仪表板 、数据大屏。 + +## 2 外部参数设置 +!!! Abstract "" + 使用外部参数,需要先在 DataEase 系统中设置好数据大屏或者仪表板外部参数,具体设置可见[操作手册](https://dataease.cn/docs/v2/user_manual/dashboard_basicfunctions/#6)。 +![3.3.2 外部参数设置.png](../img/embedded/3.3.2 外部参数设置.png){ width="900px" } + +## 3 嵌入式参数以及外部参数说明 +!!! Abstract "" + 以下列出两种嵌入方式所有的参数以及外部参数设置示例。 + Iframe 嵌入式参数以及外部参数示例。 + + ``` + ## 嵌入式参数 + const params = { + busiFlag: busiFlag, ## 业务标识 仪表板 dashboard / 数据大屏 dataV + type:type ## 类型 + dvId: dvId, ## 看板id + "de-embedded" : true ## 嵌入式标志 + chartId: chartId, ## 图表 id + embeddedToken: token, ## 嵌入式 token + outerParams: JSON.stringify(initParams) ## 外部参数 + } + ## 外部参数 + const initParams = { + callBackFlag: "yes", ## 打开 DataEase 往外部系统传参数开关 + attachParams: { ## json 拼接外部参数,如有多个外部参数,则拼接多个 json key + name: "name1" + } + } + ``` + + DIV 嵌入式参数以及外部参数示例。 + + ``` + ## 嵌入式参数 + const dataease = new DataEaseBi('ViewWrapper', { + baseUrl: domain, ## baseUrl:DataEase 企业版访问地址。 + token: token, ## 嵌入式 token + dvId: dvId, ## 看板id + opt:opt, ## 固定写法,设计器嵌入需要,默认为 create + chartId: chartId, ## 图表id + busiFlag: busiFlag, ## 业务标识 仪表板 dashboard / 数据大屏 dataV + outerParams: JSON.stringify(initParams) ## 外部参数,json 格式 + }) + ## 外部参数 + const initParams = { + callBackFlag: "yes", ## 打开 DataEase 往外部系统传参数开关 + attachParams: { ## json 拼接外部参数,如有多个外部参数,则拼接多个 json key + name: "name1" + } + } + ``` \ No newline at end of file diff --git a/docs/embedded/module.md b/docs/embedded/module.md new file mode 100644 index 000000000..86cb8f2ee --- /dev/null +++ b/docs/embedded/module.md @@ -0,0 +1,12 @@ + +!!! Abstract "" + DataEase 提供了丰富的嵌入式功能,包括可视化看板单独嵌入,系统模块嵌入等,DataEase 提供封装好的方法及模块,用户在代码中参考官方示例即可完成嵌入操作。 +![1.1嵌入模块说明.jpg](../img/embedded/1.1嵌入模块说明.jpg){ width="900px" } + +!!! Abstract "" + DataEase 嵌入式支持 DIV 和 Iframe 两种嵌入方式,支持按照单个可视化资源,以及现有数据集、数据源、数据大屏、仪表板等完整模块的嵌入。可根据需要自行选择对应方式进行丰富的嵌入需求。 + + DataEase 同时提供了丰富的 API 接口,包括仪表板管理、数据大屏管理,数据集管理、权限管理、用户管理等模块,可根据实际的业务需求调用 DataEase 的接口完成业务要求,API 说明入口位于 【系统设置】->【API Key】->【查看 API】。 + ![1.1嵌入式BI功能架构(1).png](../img/embedded/1.1嵌入式BI功能架构(1).png){ width="900px" } + ![1.1 嵌入式BI功能架构(2)](../img/embedded/1.1 嵌入式BI功能架构(2).png){ width="900px" } + diff --git a/docs/embedded/port.md b/docs/embedded/port.md new file mode 100644 index 000000000..6d05b5b66 --- /dev/null +++ b/docs/embedded/port.md @@ -0,0 +1,7 @@ + +!!! Abstract "" + **注意:企业版(嵌入式版)使用端口为 9080,需要开放此端口访问。** + +| 端口 | 作用 | 说明 | +|------|:--------:|:---------------:| +| 9080 | Apisix 服务 | 企业版、专业版、嵌入式版使用 apisix 的 9080 端口进行嵌入及访问 | \ No newline at end of file diff --git a/docs/embedded/process.md b/docs/embedded/process.md new file mode 100644 index 000000000..6af652cd6 --- /dev/null +++ b/docs/embedded/process.md @@ -0,0 +1,92 @@ +## 1 流程概述 +!!! Abstract "" + DataEase 支持使用 Iframe 以及 DIV 进行嵌入,两种方法的流程如下。 + + **注意:嵌入需要在 DataEase 的配置文件 /opt/dataease2.0/conf/application.yml 里增加 origin-list 配置,并重启服务。详细见[嵌入式常见问题 2](https://dataease.cn/docs/v2/embedded/question/#2-iframe-div)。** +### 1.1 DIV 嵌入式流程 + +!!! Abstract "" + 在 DataEase 中创建嵌入式应用后,首先获取其 APP ID 和 APP Secret,同时获取 DataEase 用户账号。使用这些信息生成 token,并利用生成的 token 进行认证。引入 DataEase 提供的嵌入式 js 文件后,使用指定参数创建 DataEaseBi 对象,并渲染 DIV 容器即可实现嵌入式应用的集成与展示。 +![2. DataEase 嵌入式流程.jpg](../img/embedded/2. DataEase 嵌入式流程.jpg){ width="900px" } + +### 1.2 Iframe 嵌入式流程 +!!! Abstract "" + 在 DataEase 中创建嵌入式应用后,首先获取其 APP ID 和 APP Secret,同时获取 DataEase 用户账号。使用这些信息生成 token,并利用生成的 token 进行认证。使用 postMessage 通信并传入相应参数,即可实现嵌入式应用的集成与展示。 +![2. DataEase 嵌入式流程(2).jpg](../img/embedded/2. DataEase 嵌入式流程(2).jpg){ width="900px" } + +## 2 端口说明 +!!! Abstract "" + **注意:企业版(嵌入式版)使用端口为 9080,需要开放此端口访问。** + +| 端口 | 作用 | 说明 | +|------|:--------:|:---------------:| +| 9080 | Apisix 服务 | 企业版、专业版、嵌入式版使用 apisix 的 9080 端口进行嵌入及访问 | + +## 3 APP 创建 +!!! Abstract "" + 点击【系统设置】,进入【嵌入式管理】页面创建嵌入式应用。 + + **注意:嵌入式 License 最多可创建 5 个嵌入式应用,其它版本无此限制。** + +!!! Abstract "" + 嵌入式应用创建后,可以获取 APP ID、APP Secret。 + + - APP ID:嵌入式获取 JWT token 需要填写的 ID。 + + - APP Secret :嵌入式获取 JWT token 需要填写的 Secret。 +![2.2嵌入式 APP 创建.png](../img/embedded/2.2嵌入式 APP 创建.png){ width="900px" } +![2.2嵌入式 APP 创建(2).png](../img/embedded/2.2嵌入式 APP 创建(2).png){ width="900px" } +![2.2嵌入式 APP 创建(3).png](../img/embedded/2.2嵌入式 APP 创建(3).png){ width="900px" } + +!!! Abstract "" + - 应用名称:嵌入式应用名称,可自定义。 + - 跨域设置:嵌入系统的访问地址。 + + 提示:跨域指两个域名不同的网页之间进行通信,填写嵌入系统的访问地址,跨域限制是由浏览器的同源策略(Same-Origin Policy)决定的。这是一种安全机制,旨在防止恶意网站读取其他网站的敏感数据。 + +### 3.1 跨域说明 + +!!! Abstract "" + 浏览器的同源策略(Same-Origin Policy)规定,只有当协议(protocol)、域名(domain)和端口(port)完全相同的情况下,网页才能自由访问另一个源的资源。如果请求的资源与当前网页的源不同,为跨域请求。具体如下: + + 1. 不同的协议 + ``` + 示例:从 http://example.com 请求 https://example.com。 + 原因:即使主机名和端口相同,协议不同也算跨域。 + ``` + + 2. 不同的端口 + ``` + 示例:从 http://example.com:3000 请求 http://example.com:4000。 + 原因:端口不同,即使协议和主机名相同。 + ``` + + 3. 不同的顶级域名 + ``` + 示例:从 http://example.com 请求 http://anotherexample.com。 + 原因:顶级域名不同。 + ``` + + 4. 子域名和顶级域名 + ``` + 示例:从 http://sub.example.com 请求 http://example.com。 + 原因:子域名和顶级域名不同,也算跨域。 + ``` + + 5. 子域名和子域名 + ``` + 示例:从 http://sub1.example.com 请求 http://sub2.example.com。 + 原因:子域名和子域名不同,也算跨域。 + ``` + +## 4 ID 获取 + +!!! Abstract "" + 数据大屏 ID(编辑或预览界面均可获取) 及图表 ID 获取。 +![1数据大屏id.jpg](../img/embedded/1数据大屏id.jpg){ width="900px" } +![1数据大屏-图表 id.jpg](../img/embedded/1数据大屏-图表 id.jpg){ width="900px" } + +!!! Abstract "" + 仪表板 ID(编辑或预览界面均可获取)以及图表ID 获取。 +![1图表id.jpg](../img/embedded/1图表id.jpg){ width="900px" } +![1仪表板-图表id.jpg](../img/embedded/1仪表板-图表id.jpg){ width="900px" } \ No newline at end of file diff --git a/docs/embedded/question.md b/docs/embedded/question.md new file mode 100644 index 000000000..e5c460f10 --- /dev/null +++ b/docs/embedded/question.md @@ -0,0 +1,110 @@ + +## 1 DIV 嵌入后,页面打开空白,浏览器控制台有跨域相关的异常报错 +!!! Abstract "" + 如下所示: +![4. 嵌入式常见问题(1).png](../img/embedded/4. 嵌入式常见问题(1).png){ width="900px" } + + +!!! Abstract "" + 解决方案:检查嵌入式应用的跨域设置,与提示报错的 origin 是否相同。 +![4. 嵌入式常见问题(2).png](../img/embedded/4. 嵌入式常见问题(2).png){ width="900px" } + + +## 2 Iframe DIV 嵌入后,提示域名匹配错误 +!!! Abstract "" + 如下所示: +![4. 嵌入式常见问题(3).png](../img/embedded/4. 嵌入式常见问题(3).png){ width="900px" } + +!!! Abstract "" + 解决方案 1:Iframe DIV 嵌入需要在 DataEase 的配置文件 /opt/dataease2.0/conf/application.yml 里增加 origin-list 配置访问 DataEase 地址,多个地址以逗号隔开并重启 DataEase 服务,如下所示: + + ``` + origin-list: http://localhost:8000,访问 DataEase 地址1(9080),访问 DataEase 地址2(9080) + ``` + + ``` + #重启 DataEase 服务 + dectl restart + ``` +![4. 嵌入式常见问题(4).png](../img/embedded/4. 嵌入式常见问题(4).png){ width="900px" } + + +!!! Abstract "" + 解决方案 2:如果已经填写上述内容后依旧报错,需注意如下 + 检查嵌入系统访问域名和嵌入式 APP 里面的跨域设置是否一样,需要保持一致。 + + +## 3 DIV 嵌入后,页面打开空白,浏览器控制台提示 DataEaseBi is not defined +!!! Abstract "" + 如下所示: +![4. 嵌入式常见问题(5).png](../img/embedded/4. 嵌入式常见问题(5).png){ width="900px" } + +!!! Abstract "" + 解决方案: + + 该问题可能由两种情况导致: + + 情况一:DataEase JS 未正确引入,如下所示,打开浏览器控制台,在 Network 页签选择 JS ,搜索 dataease 查看是否存在相关 JS 即可判断。 +![4. 嵌入式常见问题(6).png](../img/embedded/4. 嵌入式常见问题(6).png){ width="900px" } + +!!! Abstract "" + 情况二:加载嵌入式页面时,DataEase JS 未加载完成。可通过 window.onload 或 setTimeOut(不建议) 等方式,等待 JS 加载完成后,再初始化 DataEaseBI 。 + +## 4 页面提示 500,查看 DataEase 容器日志提示 token is empty for uri +!!! Abstract "" + 如下所示: +![4. 嵌入式常见问题(7).png](../img/embedded/4. 嵌入式常见问题(7).png){ width="900px" } +![4. 嵌入式常见问题(8).png](../img/embedded/4. 嵌入式常见问题(8).png){ width="900px" } + +!!! Abstract "" + 解决方案: 该问题为使用社区版的 8100 端口进行嵌入式的调试,将端口修改为 9080 即可。 + +## 5 DIV 嵌入后,页面打开空白,浏览器控制台无任何报错,且 JS 加载等均正常 +!!! Abstract "" + 如下所示: +![4. 嵌入式常见问题(9).png](../img/embedded/4. 嵌入式常见问题(9).png){ width="900px" } + +!!! Abstract "" + 解决方案: 该问题是由于未对 DIV 容器设置初始大小导致,手动设置 DIV 容器大小后即可解决。 + +## 6 DIV 嵌入时创建数据源弹框超出 DIV 范围 +!!! Abstract "" + 如下所示: +![4. 嵌入式常见问题(10).png](../img/embedded/4. 嵌入式常见问题(10).png){ width="900px" } + +!!! Abstract "" + 解决方案: + + - 方案一:DIV 嵌入特性如此,可以在嵌入的目标系统中通过 CSS 类名 datasource-drawer-fullscreen 来设置样式。 + - 方案二:iFrame 嵌入无此问题,也可使用iFrame 方式嵌入。 + +## 7 DIV 嵌入时点击预览按钮提示域名匹配错误 +!!! Abstract "" + 如下所示: +![4. 嵌入式常见问题(11).png](../img/embedded/4. 嵌入式常见问题(11).png){ width="900px" } + +!!! Abstract "" + 解决方案:需要新开标签页访问的的地址都要配置 origin-list,参考 4.2 处理。 + + +## 8 DIV 嵌入白屏,网络请求 401,iFrame 嵌入网络请求状态码 400 +!!! Abstract "" + 如下所示: + + DIV 嵌入时页面白屏,或列表为空,浏览器控制台查看网络请求状态有 401 状态码 +![4. 嵌入式常见问题(12).png](../img/embedded/4. 嵌入式常见问题(12).png){ width="900px" } + +!!! Abstract "" + iFrame 嵌入时提示 Request failed with status code 400 + + 网络请求返回异常:Request processing failed: com.auth0.jwt.exceptions.InvalidClaimException: The Token can't be used before Wed Jan 08 13:42:29 CST 2025. +![4. 嵌入式常见问题(13).png](../img/embedded/4. 嵌入式常见问题(13).png){ width="900px" } + +!!! Abstract "" + 解决方案: + + - 保证要嵌入的目标系统和 DataEase 服务器时间保持一致。 + - 嵌入式 Token 生成的时间需要与 DataEase 服务器时间保持一致,根据异常信息可知,Token 生成的时间是 Wed Jan 08 13:42:29 CST 2025,所以如果 DataEase 服务器时间早于此时间就会出现此问题。 +## 9 嵌入时,切换 id 实例化不同资源,出现白屏 +!!! Abstract "" + 解决方法: 切换 id 重新实例化前,先调用一下 destroy 方法,然后再实例化。 diff --git a/docs/embedded/setting.md b/docs/embedded/setting.md new file mode 100644 index 000000000..ef637026e --- /dev/null +++ b/docs/embedded/setting.md @@ -0,0 +1,73 @@ +!!! Abstract "" + 注意:本文档所使用代码均为嵌入式官方 [demo 代码](https://github.com/dataease/embedded-demo/tree/isv-embedded-demo)。并在此基础上进行代码的修改进行演示。 + +## 1 嵌入式 Token +!!! Abstract "" + 采用 JWT 认证 ,官方嵌入式代码生成 token 方式如下,需要获取 DataEase 嵌入式应用的 APP ID、APP Secret,以及 DataEase 中的用户账号。 + + - APP ID:嵌入式获取 JWT token 需要填写的 ID。 + + - APP Secret :嵌入式获取 JWT token 需要填写的 Secret。 + + 2.10.0 版本开始,支持设置 token 有效时间。 Token 可根据实际情况使用其它类型语言生成,代码实现方式不唯一。 + + ``` + @RestController + public class IndexController { + + # 嵌入式 appId + private static String appId = ""; + + # 嵌入式 appSecret + private static String appSecret = ""; + + #DataEase 用户名 + private static String account = ""; + + # + ## 获取 DataEase 嵌入式 Token + ## DataEase 嵌入式 Token 使用的是 JWT 认证,由 appId、appSecret 以及 DataEase 用户名生成。 + ## Java 程序可直接引用 java-jwt (https://mvnrepository.com/artifact/com.auth0/java-jwt) 依赖,其它后端语言可自行百度加密代码。 + ## 注意,嵌入式 Token 的过期时间默认为 480 分钟,可通过修改 application.yml 进行调整 + ## 配置参数名称为 dataease.embedded-exp + + @GetMapping("/api/token") + public String generateToken () { + + String user = "小王"; + List users = Arrays.asList("小王","小李"); + String status = "ASSIGNED"; + + Algorithm algorithm = Algorithm.HMAC256(appSecret); + JWTCreator.Builder builder = JWT.create(); + builder.withClaim("account", account).withClaim("appId", appId); + builder.withIssuedAt(new Date()); + ## 只过滤 user = 小王 + ## builder.withClaim("user", user); + ## 过滤 user = 小王 或者 小李的数据 + ## builder.withClaim("user", JSONObject.toJSONString(users)); + ## 过滤 user = 小王 或者 小李 以及 设备状态等于 ASSIGNED 的数据 + ## 参数可根据业务需要选择设置或者不设置 + ## user 、设备状态 为仪表板参数设置里面的参数名 + ## builder.withClaim("user", JSONObject.toJSONString(users)).withClaim("设备状态", status); + return builder.sign(algorithm); + } + } + ``` +!!! Abstract "" + account 获取方式,见下图,可以使用任意符合业务需求的账号,不仅限于 admin 账户,也不推荐使用 admin 账户进行嵌入。 +![3.1嵌入式 Token.png](../img/embedded/3.1嵌入式 Token.png){ width="900px" } + +## 2 DataEase 嵌入式 JS +!!! Abstract "" + 当使用 DIV 嵌入时,需引入 DataEase 提供内置的 js 模块,如下 。 + + 引入 js 后,即可使用 js 模块提供好的类及方法完成 DIV 的嵌入。 + + **注意:需要将 js 引入到页面的 head 中,保证依赖的正确加载。** + + ``` + ## 将下方代码中的 src 地址改为静态 js 的访问地址即可。 + ## 访问地址为 http://ip:9080/js/div_import_0.0.0-dataease.js + + ``` \ No newline at end of file diff --git a/docs/embedded/simulated.md b/docs/embedded/simulated.md new file mode 100644 index 000000000..79c7c667d --- /dev/null +++ b/docs/embedded/simulated.md @@ -0,0 +1,81 @@ +!!! Abstract "" + 本文假设需要将DataEase嵌入第三方业务系统(简称A系统)。 + + 有时受限于实际情况,比如企业内部未搭建 SS0 系统,这时可以使用模拟登录方式实现嵌入式用户登录集成 + + 模拟登录指:A 系统后台请求 DataEase 的登录接口,将登录成功的 Token 写入 LocalStorage 中,来模拟用户登录的过程,省去用户自己输入密码登录的过程。 + + 模拟登录又分同域和跨域两种方式,文章中会详细介绍。 + +## 1 模拟登录方案介绍 +!!! Abstract "" + DataEase 的认证 token 是放在 LocalStorage 里面的,调用 /de2api/login/localLogin 接口可以拿到 Token 信息。关键问题在于怎么将 DataEase 的认证信息放到 LocalStorage 里面去。根据处理方案的不同,分为同域模拟登陆和跨域模拟登陆。 + + 同域模拟登陆是指 A 系统与 DataEase 在同一域名下。比如DataEase访问地址为:a.fit2cloud.com/dataease,A系统的访问地址为:a.fit2cloud.com/aSystem,它们使用的域名都是 a.fit2cloud.com。这种情况下,A 系统可以将 user.token 信息存放在 a.fit2cloud.com 域名的 Local storage 下,DataEase 也可以获取 a.fit2cloud.com 域名下的 Local storage,以此实现模拟登录认证。 + + 跨域模拟登陆是指 A 系统与 DataEase 不在同一域名下。这种情况下,A 系统携带 Token 信息访问 DataEase 系统(只是通过特定的路径),Nginx 通过特定路径拦截到请求重定向至自定义的 HTML 页面,然后通过 HTML 页面中的 JS 代码将 Token 信息写入到 LocalStorage 中去,然后再跳转到 DataEase 正常的访问路径,至此完成模拟登录。 + +## 2 同域模拟登陆 + +### 2.1 流程描述 +![同域.pic.jpg](../img/embedded/同域.pic.jpg){ width="900px" } +!!! Abstract "" + 1. 用户登录 A 系统 + 2. 用户在 A 系统中通过 Iframe 访问 A 系统的模拟登录接口 + 3. A 系统根据已登录的用户信息请求 DataEase 的用户查询接口,获取到 DataEase 系统中对应的用户 ID + 4. A 系统根据用户 ID 调用 DataEase 重置用户密码的接口 /user/resetPwd,重置用户密码 + 5. A 系统调用 DataEase 的模拟登录接口获取 Token + 6. A 系统将 Token 信息写入当前域名的 LocalStorage 下,然后再跳转到 DataEase 正常的访问路径 + +### 2.2 开发指南 +!!! Abstract "" + 此方案需要 A 系统提供一个模拟登录接口,模拟登陆接口中获取用户 Token(如果需要使用动态的用户进行登陆认证,则需要调用获取用户接口和修改用户密码接口来保证模拟登录成功),前端将获取到的token写入当前域名的LocalStorage下,然后再跳转到 DataEase 正常的访问路径,至此完成模拟登录。 + + 参考示例代码:[dataease-login-adpter-demo](https://github.com/liuboF2c/dataease-login-adpter-demo/tree/dev_v2) +![5.2模拟登录(2).png](../img/embedded/5.2模拟登录(2).png){ width="900px" } +![5.2模拟登录(3).png](../img/embedded/5.2模拟登录(3).png){ width="900px" } + +## 3 跨域模拟登陆 + +### 3.1 流程描述 + +![跨域.pic.jpg](../img/embedded/跨域.pic.jpg){ width="900px" } +!!! Abstract "" + 1. 用户登录 A 系统 + 2. 用户在 A 系统中通过 Iframe 访问 A 系统的模拟登录接口 + 3. A 系统根据已登录的用户信息请求 DataEase 的用户查询接口,获取到 DataEase 系统中对应的用户 ID + 4. A 系统根据用户 ID 调用 DataEase 重置用户密码的接口 /user/resetPwd,重置用户密码 + 5. A 系统调用 DataEase 的模拟登录接口获取 Token + 6. A 系统携带 Token 信息访问 DataEase 系统(只是通过特定的路径) + 7. Nginx 通过特定路径拦截到请求重定向至自定义的 HTML 页面,然后通过 HTML 页面中的 JS 代码将 Token 信息写入到 LocalStorage 中去,然后再跳转到 DataEase 正常的访问路径 + +### 3.2 开发指南 +!!! Abstract "" + 此方案需要 A 系统提供一个模拟登录接口,模拟登陆接口中获取用户 Token,并返回重定向地址,重定向地址携带 Token 信息重定向到特定路径(如果需要使用动态的用户进行登陆认证,则需要调用获取用户接口和修改用户密码接口来保证模拟登录成功)。 + + Nginx 通过特定路径拦截到请求重定向至自定义的 HTML 页面,然后通过 HTML 页面中的 JS 代码将 Token 信息写入到 LocalStorage 中去,然后再跳转到 DataEase 正常的访问路径,至此完成模拟登录。 + + 参考示例代码:[dataease-login-adpter-demo](https://github.com/liuboF2c/dataease-login-adpter-demo/tree/dev_v2) +![5.2模拟登录(5).png](../img/embedded/5.2模拟登录(5).png){ width="900px" } +![5.2模拟登录(6).png](../img/embedded/5.2模拟登录(6).png){ width="900px" } + +### 3.3 Nginx配置 +!!! Abstract "" + Nginx 还需要配置一个静态网页,用于设置 LocalStorage 用。Nginx 配置参考如下: + + ``` + location / { + proxy_pass + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $http_host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + location /sso { + # 请将此配置 [./src/main/resources/templates] 修改为 login-template.html 存放路径 + # login-template.html 取自示例代码的 src/main/resources/templates/ 目录 + # 将其与 nginx 放置于同一服务器,然后在 nginx 配置文件中将此配置项填写为 login-template.html 的所在目录; + alias ./src/main/resources/templates + index login-template.html; + } + ``` \ No newline at end of file diff --git a/docs/embedded/sso.md b/docs/embedded/sso.md new file mode 100644 index 000000000..6c8d290a8 --- /dev/null +++ b/docs/embedded/sso.md @@ -0,0 +1,60 @@ + +!!! Abstract "" + 单点协议支持目前支持 OIDC、CAS ,使用方式如下: + +## 1 OIDC +!!! Abstract "" + DataEase 企业版支持 OIDC 协议,【系统设置】-> 【认证设置】-> 【OIDC】中进行设置。 + + 点击 OIDC 编辑。即可设置 OIDC,填写完相关信息后,测试连接显示成功,即配置成功。 +![5.1 单点登录(1).png](../img/embedded/5.1 单点登录(1).png){ width="900px" } + +!!! Abstract "" + - Client ID:客户端 id。 + - Client Secret:客户端密码。 + - Discovery:OIDC 发现服务。 + - Realm:用于身份验证的领域,此处可自定义。 + - Scope:返回的有关经过身份验证的用户的信息,也称为[声明](https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims),可通过发现服务获取,多个参数使用英文逗号分开。 + - Use Pkce:访问令牌。设置为 true 时,在请求标头中设置访问令牌。 + - Redirect Uri:重定向回的 URL。 +![5.1 单点登录(2).png](../img/embedded/5.1 单点登录(2).png){ width="900px" } + +## 2 CAS +!!! Abstract "" + DataEase 企业版支持 CAS 协议,【系统设置】-> 【认证设置】-> 【CAS】中进行设置。 + + 点击 CAS 编辑。即可设置 CAS,填写完相关信息后,测试连接显示成功,即配置成功。 +![5.1 单点登录(3).png](../img/embedded/5.1 单点登录(3).png){ width="900px" } + +!!! Abstract "" + - IdpUri:IdP 的 URI。 + - 回调域名:登录或注销后,回调的重定向 uri。 +![5.1 单点登录(4).png](../img/embedded/5.1 单点登录(4).png){ width="900px" } + +## 3 LDAP +!!! Abstract "" + DataEase 企业版支持 LDAP 协议,【系统设置】-> 【认证设置】-> 【LDAP】中进行设置。 + + 点击 LDAP 编辑,即可设置 LDAP,填写完相关信息后,测试连接显示成功,即配置成功。 +![5.1 单点登录(5).png](../img/embedded/5.1 单点登录(5).png){ width="900px" } + +!!! Abstract "" + - DAP地址: LDAP 服务器的地址。 + - 绑定DN:用于认证 LDAP 服务器的身份标识,即登录到 LDAP 服务器时使用的用户身份。 + - 密码:与绑定 DN 配对使用的密码,用于验证绑定 DN 的身份。 + - 用户OU:OU 是组织单元(Organizational Unit)的缩写,用来表示 LDAP 树中存放用户的特定路径(子树或分支)。 + - 用户过滤器:这是一个 LDAP 查询字符串,用于筛选特定的用户对象。可以用来查找满足条件的用户。 + - LDAP属性映射:将 LDAP 服务器中的属性对应到 DataEase 中的字段,account、name、email 为 DataEase 用户信息字段。 + +## 4 OAuth2 +![5.1 单点登录(6).png](../img/embedded/5.1 单点登录(6).png){ width="900px" } +!!! Abstract "" + - 授权端地址:用户进行授权时访问的 URL,通常用于获取授权码(Authorization Code)。 + - Token 端地址:交换授权码(Authorization Code)或凭证(Client Credentials)以获取访问令牌(Access Token)。 + - 用户信息获取地址:授权服务器提供的 API 端点,用于在获得访问令牌后获取用户的个人信息(如用户名、邮箱等)。 + - 连接范围(scope):定义应用程序可以访问的资源范围,如用户信息、电子邮件、角色等。 + - 客户端 :OAuth2 应用的唯一标识。 + - 客户端密钥:与 Client ID 配合使用,确保应用身份验证的安全性。 + - 回调地址:OAuth2 认证完成后,重定向回应用的地址。 + - 字段映射:将 OAuth2 服务器中的属性对应到 DataEase 中的字段,account、name、email 为 DataEase 用户信息字段。 + diff --git a/docs/embedded/summary.md b/docs/embedded/summary.md new file mode 100644 index 000000000..8efbd7039 --- /dev/null +++ b/docs/embedded/summary.md @@ -0,0 +1,35 @@ + + +## 1 模块说明 + +!!! Abstract "" + DataEase 提供了丰富的嵌入式功能,包括可视化看板单独嵌入,系统模块嵌入等,DataEase 提供封装好的方法及模块,用户在代码中参考官方示例即可完成嵌入操作。 +![1.1嵌入模块说明.jpg](../img/embedded/1.1嵌入模块说明.jpg){ width="900px" } + +!!! Abstract "" + DataEase 嵌入式支持 DIV 和 Iframe 两种嵌入方式,支持按照单个可视化资源,以及现有数据集、数据源、数据大屏、仪表板等完整模块的嵌入。可根据需要自行选择对应方式进行嵌入。 + + DataEase 同时提供了丰富的 API 接口,包括仪表板管理、数据大屏管理,数据集管理、权限管理、用户管理等模块,可根据实际的业务需求调用 DataEase 的接口完成业务要求,API 说明入口位于 【系统设置】->【API Key】->【查看 API】。 +![1.1嵌入式BI功能架构(1).png](../img/embedded/1.1嵌入式BI功能架构(1).png){ width="900px" } +![1.1 嵌入式BI功能架构(2)](../img/embedded/1.1 嵌入式BI功能架构(2).png){ width="900px" } + +## 2 嵌入式场景效果预览 +!!! Abstract "" + [官方演示环境](https://embedded-bi.dataease.cn/#/home/index),嵌入式官方体验环境,可查看嵌入式效果。 + + 官方 demo 代码, [Layui 框架代码](https://github.com/dataease/embedded-demo/tree/main) ,[Vue3 代码](https://github.com/dataease/embedded-demo/tree/isv-embedded-demo) 。 + + **注意:如果项目的前端使用的是 Vue3 的框架,建议参考 Vue3 的代码进行嵌入;其他前端框架可参考 LayUl 框架的代码进行嵌入。** +!!! Abstract "" + 数据大屏及数据大屏设计器嵌入。 +![1.2 嵌入场景预览(1)](../img/embedded/1.2 嵌入场景预览(1).PNG){ width="900px" } +![1.2 嵌入场景预览(11).PNG](../img/embedded/1.2 嵌入场景预览(11).PNG){ width="900px" } + +!!! Abstract "" + 仪表板及仪表板设计器嵌入。 +![1.2 嵌入场景预览(2).png](../img/embedded/1.2 嵌入场景预览(2).png){ width="900px" } +![1.2 嵌入场景预览(22).png](../img/embedded/1.2 嵌入场景预览(22).png){ width="900px" } + +!!! Abstract "" + 模块嵌入。 +![1.2 嵌入场景预览(3).png](../img/embedded/1.2 嵌入场景预览(3).png){ width="900px" } \ No newline at end of file diff --git a/docs/faq/backup_faq.md b/docs/faq/backup_faq.md new file mode 100644 index 000000000..5a025dd4c --- /dev/null +++ b/docs/faq/backup_faq.md @@ -0,0 +1,29 @@ +## 1 如何备份还原 DataEase? + +!!! Abstract "" + **DataEase安装后,相关文件的分布路径如下:** + + - /opt/dataease - 默认运行路径,在安装时可设置。主要存放 DataEase 运行时所需的配置文件及运行时产生的数据,包括日志文件等 + - /usr/bin - 默认 docker 及 docker-compose 的运行程序被放置在此目录下 + - /usr/local/bin/dectl - DataEase 的命令行工具 + - /var/lib/docker - 默认 docker 镜像加载在此 + +!!! Abstract "" + **综上所述,备份 DataEase 主要需要备份运行路径,如 /opt/dataease 目录即可。还原步骤如下:** + + - **该方式适用于相同版本 DataEase 的迁移,请在新环境里安装同一个版本的 DataEase,安装时请选择相同的配置参数** + - 停止两个环境里的 DataEase 服务,执行命令: service dataease stop + - 把原环境里的运行目录 /opt/dataease 整个目录覆盖掉新环境里的 /opt/dataease 目录 + - 启动新环境里的 DataEase 服务: service dataease start + + +!!! Abstract "" + **使用 dectl 命令备份与恢复操作** + + - 备份操作:dectl backup + - 恢复操作:dectl restore DataEase备份文件.tar.gz + + dectl backup 命令将 DataEase 排除日志目录以外的运行目录(如 /opt/dataease)进行备份压缩,生成备份文件 DataEase备份文件.tar.gz。 + 在安装了同样版本的 DataEase 服务器上,用户可以通过执行 dectl restore DataEase备份文件.tar.gz 将 DataEase 还原为备份的内容。 + **注意:备份文件中并不包含完整的镜像文件,所以备份和还原操作只能在同版本的情况下执行。** + diff --git a/docs/faq/enterprise_faq.md b/docs/faq/enterprise_faq.md new file mode 100644 index 000000000..f32d3cff4 --- /dev/null +++ b/docs/faq/enterprise_faq.md @@ -0,0 +1,9 @@ +## 1 DataEase 不同版本有什么区别? + +![版本对比图](../newimg/product_acceptance/版本对比.jpg){ width="1024px" } + +## 2 如何申请 DataEase 企业版试用? + +!!! Abstract "" + **DataEase 企业版试用申请请点击:https://jinshuju.net/f/TK5TTd** + 我们会安排专人与您联系。 diff --git a/docs/faq/system_management.md b/docs/faq/system_management.md new file mode 100644 index 000000000..f1fbb3d47 --- /dev/null +++ b/docs/faq/system_management.md @@ -0,0 +1,37 @@ +## 1 如何修改密码? + +!!! Abstract "" + 登录后,查看界面右上角。 点击用户图标(通常是您的个人头像或一个头像图标)以打开用户菜单,点击【修改密码】选项,系统会将跳转到修改密码页面。 + **注意:如果忘记原始密码(当前密码),则需要到数据库重置密码** + +![调整超时时间](../newimg/修改密码入口.png){ width="900" } + +![调整超时时间](../newimg/修改密码界面.png){ width="900" } + + +## 2 忘记了登录密码如何处理? + +!!! Abstract "" + **当系统管理员忘记密码时,需要通过数据库操作重置密码:** + 先查看 /opt/dataease2.0/conf/mysql.env 文件,获取当前系统数据库的密码。 使用该数据库密码连接到 DataEase 使用的 MySQL 数据库。 + 执行以下 SQL 语句来重置密码,将 DataEase 的用户信息存放在数据库中的 `per_user` 表中,其中 password 字段为用户密码的 `md5` 值。 + ```sql + update per_user set pwd='504c8c8dfcbbe5b50d676ad65ef43909' where account='admin'; + ``` + 连接到数据库后,执行上面的 SQL 语句可以将用户 `admin` 的密码重置为 `DataEase@123456`。 + +## 3 遇到系统超时如何处理? + +!!! Abstract "" + **如遇网络不通畅,系统报 ”timeout of xxx exceeded“ 等相关超时错误,则可在【系统管理】【系统参数】的基础设置增大超时时间,同时支持在数据源的【高级设置】修改查询超时时间。** + +![调整超时时间](../newimg/调整超时时间.png){ width="900" } + +![调整超时时间](../newimg/设置超时时间2.png){ width="900" } + + +## 4 流向地图、符号地图等在线地图添加后白屏、无法使用 + +!!! Abstract "" + **流向地图、符号地图等组件使用的是高德在线地图,需能够连接外网高德服务器,如遇组件白屏,可自行申请在线地图 Key 并配置,参考[在线地图 Key 申请](https://dataease.cn/docs/v2/user_manual/system_management/param/#31)。** + diff --git a/v2/get-pip.py b/docs/get-pip.py similarity index 100% rename from v2/get-pip.py rename to docs/get-pip.py diff --git a/v2/img.png b/docs/img.png similarity index 100% rename from v2/img.png rename to docs/img.png diff --git "a/v2/img/01-API\346\225\260\346\215\256\346\272\220.png" "b/docs/img/01-API\346\225\260\346\215\256\346\272\220.png" old mode 100644 new mode 100755 similarity index 100% rename from "v2/img/01-API\346\225\260\346\215\256\346\272\220.png" rename to "docs/img/01-API\346\225\260\346\215\256\346\272\220.png" diff --git "a/v2/img/02-\350\241\250\346\240\274\351\253\230\347\272\247\345\212\237\350\203\275.png" "b/docs/img/02-\350\241\250\346\240\274\351\253\230\347\272\247\345\212\237\350\203\275.png" old mode 100644 new mode 100755 similarity index 100% rename from "v2/img/02-\350\241\250\346\240\274\351\253\230\347\272\247\345\212\237\350\203\275.png" rename to "docs/img/02-\350\241\250\346\240\274\351\253\230\347\272\247\345\212\237\350\203\275.png" diff --git "a/v2/img/03-\346\237\245\350\257\242\347\273\204\344\273\266\345\217\212SQL\344\274\240\345\217\202.png" "b/docs/img/03-\346\237\245\350\257\242\347\273\204\344\273\266\345\217\212SQL\344\274\240\345\217\202.png" old mode 100644 new mode 100755 similarity index 100% rename from "v2/img/03-\346\237\245\350\257\242\347\273\204\344\273\266\345\217\212SQL\344\274\240\345\217\202.png" rename to "docs/img/03-\346\237\245\350\257\242\347\273\204\344\273\266\345\217\212SQL\344\274\240\345\217\202.png" diff --git "a/v2/img/04-\345\244\226\351\203\250\345\217\202\346\225\260\344\270\216Ticket.png" "b/docs/img/04-\345\244\226\351\203\250\345\217\202\346\225\260\344\270\216Ticket.png" old mode 100644 new mode 100755 similarity index 100% rename from "v2/img/04-\345\244\226\351\203\250\345\217\202\346\225\260\344\270\216Ticket.png" rename to "docs/img/04-\345\244\226\351\203\250\345\217\202\346\225\260\344\270\216Ticket.png" diff --git "a/v2/img/05-\345\233\276\347\211\207\347\273\204\344\273\266\345\222\214\344\272\213\344\273\266\347\273\221\345\256\232.png" "b/docs/img/05-\345\233\276\347\211\207\347\273\204\344\273\266\345\222\214\344\272\213\344\273\266\347\273\221\345\256\232.png" old mode 100644 new mode 100755 similarity index 100% rename from "v2/img/05-\345\233\276\347\211\207\347\273\204\344\273\266\345\222\214\344\272\213\344\273\266\347\273\221\345\256\232.png" rename to "docs/img/05-\345\233\276\347\211\207\347\273\204\344\273\266\345\222\214\344\272\213\344\273\266\347\273\221\345\256\232.png" diff --git "a/v2/img/1-1 \350\257\276\347\250\213\347\256\200\344\273\213.png" "b/docs/img/1-1 \350\257\276\347\250\213\347\256\200\344\273\213.png" old mode 100644 new mode 100755 similarity index 100% rename from "v2/img/1-1 \350\257\276\347\250\213\347\256\200\344\273\213.png" rename to "docs/img/1-1 \350\257\276\347\250\213\347\256\200\344\273\213.png" diff --git "a/v1/img/app/\344\270\273\351\241\265.jpeg" "b/docs/img/app/\344\270\273\351\241\265.jpeg" similarity index 100% rename from "v1/img/app/\344\270\273\351\241\265.jpeg" rename to "docs/img/app/\344\270\273\351\241\265.jpeg" diff --git "a/v1/img/app/\344\273\252\350\241\250\346\235\277\346\237\245\347\234\213.jpeg" "b/docs/img/app/\344\273\252\350\241\250\346\235\277\346\237\245\347\234\213.jpeg" similarity index 100% rename from "v1/img/app/\344\273\252\350\241\250\346\235\277\346\237\245\347\234\213.jpeg" rename to "docs/img/app/\344\273\252\350\241\250\346\235\277\346\237\245\347\234\213.jpeg" diff --git "a/v1/img/app/\346\210\221\347\232\204.jpeg" "b/docs/img/app/\346\210\221\347\232\204.jpeg" similarity index 100% rename from "v1/img/app/\346\210\221\347\232\204.jpeg" rename to "docs/img/app/\346\210\221\347\232\204.jpeg" diff --git "a/v1/img/app/\347\233\256\345\275\225.png" "b/docs/img/app/\347\233\256\345\275\225.png" similarity index 100% rename from "v1/img/app/\347\233\256\345\275\225.png" rename to "docs/img/app/\347\233\256\345\275\225.png" diff --git "a/v1/img/app/\347\247\273\345\212\250\347\253\257-\344\270\273\351\241\265.png" "b/docs/img/app/\347\247\273\345\212\250\347\253\257-\344\270\273\351\241\265.png" similarity index 100% rename from "v1/img/app/\347\247\273\345\212\250\347\253\257-\344\270\273\351\241\265.png" rename to "docs/img/app/\347\247\273\345\212\250\347\253\257-\344\270\273\351\241\265.png" diff --git "a/v1/img/app/\347\247\273\345\212\250\347\253\257-\344\273\252\350\241\250\346\235\277\346\237\245\347\234\213.png" "b/docs/img/app/\347\247\273\345\212\250\347\253\257-\344\273\252\350\241\250\346\235\277\346\237\245\347\234\213.png" similarity index 100% rename from "v1/img/app/\347\247\273\345\212\250\347\253\257-\344\273\252\350\241\250\346\235\277\346\237\245\347\234\213.png" rename to "docs/img/app/\347\247\273\345\212\250\347\253\257-\344\273\252\350\241\250\346\235\277\346\237\245\347\234\213.png" diff --git "a/v1/img/app/\347\247\273\345\212\250\347\253\257-\346\210\221\347\232\204.png" "b/docs/img/app/\347\247\273\345\212\250\347\253\257-\346\210\221\347\232\204.png" similarity index 100% rename from "v1/img/app/\347\247\273\345\212\250\347\253\257-\346\210\221\347\232\204.png" rename to "docs/img/app/\347\247\273\345\212\250\347\253\257-\346\210\221\347\232\204.png" diff --git "a/v1/img/app/\347\247\273\345\212\250\347\253\257-\347\233\256\345\275\225.png" "b/docs/img/app/\347\247\273\345\212\250\347\253\257-\347\233\256\345\275\225.png" similarity index 100% rename from "v1/img/app/\347\247\273\345\212\250\347\253\257-\347\233\256\345\275\225.png" rename to "docs/img/app/\347\247\273\345\212\250\347\253\257-\347\233\256\345\275\225.png" diff --git "a/v1/img/app/\347\247\273\345\212\250\347\253\257\345\205\245\345\217\243.png" "b/docs/img/app/\347\247\273\345\212\250\347\253\257\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/app/\347\247\273\345\212\250\347\253\257\345\205\245\345\217\243.png" rename to "docs/img/app/\347\247\273\345\212\250\347\253\257\345\205\245\345\217\243.png" diff --git "a/v1/img/app/\347\247\273\345\212\250\347\253\257\345\270\203\345\261\200.png" "b/docs/img/app/\347\247\273\345\212\250\347\253\257\345\270\203\345\261\200.png" similarity index 100% rename from "v1/img/app/\347\247\273\345\212\250\347\253\257\345\270\203\345\261\200.png" rename to "docs/img/app/\347\247\273\345\212\250\347\253\257\345\270\203\345\261\200.png" diff --git "a/v1/img/app/\347\247\273\345\212\250\347\253\257\345\270\203\345\261\200\346\240\207\350\257\206.png" "b/docs/img/app/\347\247\273\345\212\250\347\253\257\345\270\203\345\261\200\346\240\207\350\257\206.png" similarity index 100% rename from "v1/img/app/\347\247\273\345\212\250\347\253\257\345\270\203\345\261\200\346\240\207\350\257\206.png" rename to "docs/img/app/\347\247\273\345\212\250\347\253\257\345\270\203\345\261\200\346\240\207\350\257\206.png" diff --git "a/v1/img/app_template_market/\344\270\212\344\274\240\344\270\272\345\272\224\347\224\250.png" "b/docs/img/app_template_market/\344\270\212\344\274\240\344\270\272\345\272\224\347\224\250.png" similarity index 100% rename from "v1/img/app_template_market/\344\270\212\344\274\240\344\270\272\345\272\224\347\224\250.png" rename to "docs/img/app_template_market/\344\270\212\344\274\240\344\270\272\345\272\224\347\224\250.png" diff --git "a/v1/img/app_template_market/\344\270\212\344\274\240\344\270\272\345\272\224\347\224\2501.png" "b/docs/img/app_template_market/\344\270\212\344\274\240\344\270\272\345\272\224\347\224\2501.png" similarity index 100% rename from "v1/img/app_template_market/\344\270\212\344\274\240\344\270\272\345\272\224\347\224\2501.png" rename to "docs/img/app_template_market/\344\270\212\344\274\240\344\270\272\345\272\224\347\224\2501.png" diff --git "a/v1/img/app_template_market/\345\257\274\345\207\272\344\270\272\345\272\224\347\224\250.png" "b/docs/img/app_template_market/\345\257\274\345\207\272\344\270\272\345\272\224\347\224\250.png" similarity index 100% rename from "v1/img/app_template_market/\345\257\274\345\207\272\344\270\272\345\272\224\347\224\250.png" rename to "docs/img/app_template_market/\345\257\274\345\207\272\344\270\272\345\272\224\347\224\250.png" diff --git "a/v1/img/app_template_market/\345\257\274\345\207\272\344\270\272\345\272\224\347\224\2501.png" "b/docs/img/app_template_market/\345\257\274\345\207\272\344\270\272\345\272\224\347\224\2501.png" similarity index 100% rename from "v1/img/app_template_market/\345\257\274\345\207\272\344\270\272\345\272\224\347\224\2501.png" rename to "docs/img/app_template_market/\345\257\274\345\207\272\344\270\272\345\272\224\347\224\2501.png" diff --git "a/v1/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\206.png" "b/docs/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\206.png" similarity index 100% rename from "v1/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\206.png" rename to "docs/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\206.png" diff --git "a/v1/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2061.png" "b/docs/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2061.png" similarity index 100% rename from "v1/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2061.png" rename to "docs/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2061.png" diff --git "a/v1/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2062.png" "b/docs/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2062.png" similarity index 100% rename from "v1/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2062.png" rename to "docs/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2062.png" diff --git "a/v1/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2063.png" "b/docs/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2063.png" similarity index 100% rename from "v1/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2063.png" rename to "docs/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2063.png" diff --git "a/v1/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2064.png" "b/docs/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2064.png" similarity index 100% rename from "v1/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2064.png" rename to "docs/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2064.png" diff --git "a/v1/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2065.png" "b/docs/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2065.png" similarity index 100% rename from "v1/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2065.png" rename to "docs/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2065.png" diff --git "a/v1/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2066.png" "b/docs/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2066.png" similarity index 100% rename from "v1/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2066.png" rename to "docs/img/app_template_market/\345\272\224\347\224\250\347\256\241\347\220\2066.png" diff --git a/v1/img/components.png b/docs/img/components.png similarity index 100% rename from v1/img/components.png rename to docs/img/components.png diff --git "a/v2/img/dashboard_generation/2.0Tab\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/2.0Tab\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0Tab\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/2.0Tab\347\273\204\344\273\266.png" diff --git "a/v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\346\225\264\344\275\223\351\205\215\347\275\256.png" "b/docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\346\225\264\344\275\223\351\205\215\347\275\256.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\346\225\264\344\275\223\351\205\215\347\275\256.png" rename to "docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\346\225\264\344\275\223\351\205\215\347\275\256.png" diff --git "a/v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\346\246\202\350\247\210.png" "b/docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\346\246\202\350\247\210.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\346\246\202\350\247\210.png" rename to "docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\346\246\202\350\247\210.png" diff --git "a/v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\347\273\204\344\273\266\345\233\276\347\211\207\350\276\271\346\241\206.png" "b/docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\347\273\204\344\273\266\345\233\276\347\211\207\350\276\271\346\241\206.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\347\273\204\344\273\266\345\233\276\347\211\207\350\276\271\346\241\206.png" rename to "docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\347\273\204\344\273\266\345\233\276\347\211\207\350\276\271\346\241\206.png" diff --git "a/v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\347\273\204\344\273\266\346\240\267\345\274\217.png" "b/docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\347\273\204\344\273\266\346\240\267\345\274\217.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\347\273\204\344\273\266\346\240\267\345\274\217.png" rename to "docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\347\273\204\344\273\266\346\240\267\345\274\217.png" diff --git "a/v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\347\273\204\344\273\266\350\276\271\346\241\206\351\200\211\346\213\251.png" "b/docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\347\273\204\344\273\266\350\276\271\346\241\206\351\200\211\346\213\251.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\347\273\204\344\273\266\350\276\271\346\241\206\351\200\211\346\213\251.png" rename to "docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\347\273\204\344\273\266\350\276\271\346\241\206\351\200\211\346\213\251.png" diff --git "a/v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\201\224\345\212\250\346\225\210\346\236\234.png" "b/docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\201\224\345\212\250\346\225\210\346\236\234.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\201\224\345\212\250\346\225\210\346\236\234.png" rename to "docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\201\224\345\212\250\346\225\210\346\236\234.png" diff --git "a/v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\201\224\345\212\250\346\225\210\346\236\234\346\270\205\351\231\244.png" "b/docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\201\224\345\212\250\346\225\210\346\236\234\346\270\205\351\231\244.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\201\224\345\212\250\346\225\210\346\236\234\346\270\205\351\231\244.png" rename to "docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\201\224\345\212\250\346\225\210\346\236\234\346\270\205\351\231\244.png" diff --git "a/v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\203\214\346\231\257.png" "b/docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\203\214\346\231\257.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\203\214\346\231\257.png" rename to "docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\203\214\346\231\257.png" diff --git "a/v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\247\206\345\233\276\350\201\224\345\212\250.png" "b/docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\247\206\345\233\276\350\201\224\345\212\250.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\247\206\345\233\276\350\201\224\345\212\250.png" rename to "docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\247\206\345\233\276\350\201\224\345\212\250.png" diff --git "a/v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\247\206\345\233\276\350\256\276\347\275\256\345\244\247\345\260\217.png" "b/docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\247\206\345\233\276\350\256\276\347\275\256\345\244\247\345\260\217.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\247\206\345\233\276\350\256\276\347\275\256\345\244\247\345\260\217.png" rename to "docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\247\206\345\233\276\350\256\276\347\275\256\345\244\247\345\260\217.png" diff --git "a/v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\247\206\345\233\276\350\267\263\350\275\254\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\247\206\345\233\276\350\267\263\350\275\254\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\247\206\345\233\276\350\267\263\350\275\254\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\247\206\345\233\276\350\267\263\350\275\254\350\256\276\347\275\256.png" diff --git "a/v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\267\263\350\275\254\345\244\226\351\203\250\351\223\276\346\216\245.png" "b/docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\267\263\350\275\254\345\244\226\351\203\250\351\223\276\346\216\245.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\267\263\350\275\254\345\244\226\351\203\250\351\223\276\346\216\245.png" rename to "docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\267\263\350\275\254\345\244\226\351\203\250\351\223\276\346\216\245.png" diff --git "a/v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\267\263\350\275\254\346\226\260\344\273\252\350\241\250\346\235\277.png" "b/docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\267\263\350\275\254\346\226\260\344\273\252\350\241\250\346\235\277.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\267\263\350\275\254\346\226\260\344\273\252\350\241\250\346\235\277.png" rename to "docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\267\263\350\275\254\346\226\260\344\273\252\350\241\250\346\235\277.png" diff --git "a/v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\350\201\224\345\212\250\350\256\276\347\275\256..png" "b/docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\350\201\224\345\212\250\350\256\276\347\275\256..png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\350\201\224\345\212\250\350\256\276\347\275\256..png" rename to "docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\350\201\224\345\212\250\350\256\276\347\275\256..png" diff --git "a/v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\350\201\224\345\212\250\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\350\201\224\345\212\250\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\350\201\224\345\212\250\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\350\201\224\345\212\250\350\256\276\347\275\256.png" diff --git "a/v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\350\201\224\345\212\250\350\256\276\347\275\2562.png" "b/docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\350\201\224\345\212\250\350\256\276\347\275\2562.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\350\201\224\345\212\250\350\256\276\347\275\2562.png" rename to "docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\350\201\224\345\212\250\350\256\276\347\275\2562.png" diff --git "a/v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\350\267\263\350\275\254.png" "b/docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\350\267\263\350\275\254.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\350\267\263\350\275\254.png" rename to "docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\350\267\263\350\275\254.png" diff --git "a/v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\350\267\263\350\275\254\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\350\267\263\350\275\254\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\350\267\263\350\275\254\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\350\267\263\350\275\254\350\256\276\347\275\256.png" diff --git "a/v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\351\205\215\347\275\256.png" "b/docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\351\205\215\347\275\256.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\351\205\215\347\275\256.png" rename to "docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\351\205\215\347\275\256.png" diff --git "a/v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\351\243\216\346\240\274.png" "b/docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\351\243\216\346\240\274.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\351\243\216\346\240\274.png" rename to "docs/img/dashboard_generation/2.0\344\273\252\350\241\250\346\235\277\351\243\216\346\240\274.png" diff --git "a/v2/img/dashboard_generation/2.0\344\277\235\345\255\230.png" "b/docs/img/dashboard_generation/2.0\344\277\235\345\255\230.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\344\277\235\345\255\230.png" rename to "docs/img/dashboard_generation/2.0\344\277\235\345\255\230.png" diff --git "a/v2/img/dashboard_generation/2.0\345\210\267\346\226\260\351\242\221\347\216\207.png" "b/docs/img/dashboard_generation/2.0\345\210\267\346\226\260\351\242\221\347\216\207.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\345\210\267\346\226\260\351\242\221\347\216\207.png" rename to "docs/img/dashboard_generation/2.0\345\210\267\346\226\260\351\242\221\347\216\207.png" diff --git "a/v2/img/dashboard_generation/2.0\345\233\276\350\241\250\346\240\207\351\242\230.png" "b/docs/img/dashboard_generation/2.0\345\233\276\350\241\250\346\240\207\351\242\230.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\345\233\276\350\241\250\346\240\207\351\242\230.png" rename to "docs/img/dashboard_generation/2.0\345\233\276\350\241\250\346\240\207\351\242\230.png" diff --git "a/v2/img/dashboard_generation/2.0\345\233\276\350\241\250\346\240\267\345\274\217.png" "b/docs/img/dashboard_generation/2.0\345\233\276\350\241\250\346\240\267\345\274\217.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\345\233\276\350\241\250\346\240\267\345\274\217.png" rename to "docs/img/dashboard_generation/2.0\345\233\276\350\241\250\346\240\267\345\274\217.png" diff --git "a/v2/img/dashboard_generation/2.0\345\233\276\350\241\250\351\205\215\350\211\262.png" "b/docs/img/dashboard_generation/2.0\345\233\276\350\241\250\351\205\215\350\211\262.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\345\233\276\350\241\250\351\205\215\350\211\262.png" rename to "docs/img/dashboard_generation/2.0\345\233\276\350\241\250\351\205\215\350\211\262.png" diff --git "a/v2/img/dashboard_generation/2.0\345\244\215\345\210\266\344\273\252\350\241\250\346\235\277.png" "b/docs/img/dashboard_generation/2.0\345\244\215\345\210\266\344\273\252\350\241\250\346\235\277.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\345\244\215\345\210\266\344\273\252\350\241\250\346\235\277.png" rename to "docs/img/dashboard_generation/2.0\345\244\215\345\210\266\344\273\252\350\241\250\346\235\277.png" diff --git "a/v2/img/dashboard_generation/2.0\345\244\215\345\210\266\344\273\252\350\241\250\346\235\2772.png" "b/docs/img/dashboard_generation/2.0\345\244\215\345\210\266\344\273\252\350\241\250\346\235\2772.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\345\244\215\345\210\266\344\273\252\350\241\250\346\235\2772.png" rename to "docs/img/dashboard_generation/2.0\345\244\215\345\210\266\344\273\252\350\241\250\346\235\2772.png" diff --git "a/v2/img/dashboard_generation/2.0\345\244\215\347\224\250.png" "b/docs/img/dashboard_generation/2.0\345\244\215\347\224\250.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\345\244\215\347\224\250.png" rename to "docs/img/dashboard_generation/2.0\345\244\215\347\224\250.png" diff --git "a/v2/img/dashboard_generation/2.0\345\252\222\344\275\223\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/2.0\345\252\222\344\275\223\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\345\252\222\344\275\223\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/2.0\345\252\222\344\275\223\347\273\204\344\273\266.png" diff --git "a/v2/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\346\217\222\345\205\245\345\233\276\347\211\207\346\210\226\350\200\205\345\252\222\344\275\223.png" "b/docs/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\346\217\222\345\205\245\345\233\276\347\211\207\346\210\226\350\200\205\345\252\222\344\275\223.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\346\217\222\345\205\245\345\233\276\347\211\207\346\210\226\350\200\205\345\252\222\344\275\223.png" rename to "docs/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\346\217\222\345\205\245\345\233\276\347\211\207\346\210\226\350\200\205\345\252\222\344\275\223.png" diff --git "a/v2/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\346\217\222\345\205\245\345\252\222\344\275\223.png" "b/docs/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\346\217\222\345\205\245\345\252\222\344\275\223.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\346\217\222\345\205\245\345\252\222\344\275\223.png" rename to "docs/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\346\217\222\345\205\245\345\252\222\344\275\223.png" diff --git "a/v2/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\346\240\267\345\274\217\350\260\203\346\225\264.png" "b/docs/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\346\240\267\345\274\217\350\260\203\346\225\264.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\346\240\267\345\274\217\350\260\203\346\225\264.png" rename to "docs/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\346\240\267\345\274\217\350\260\203\346\225\264.png" diff --git "a/v2/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266.png" diff --git "a/v2/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266\347\202\271\345\207\273.png" "b/docs/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266\347\202\271\345\207\273.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266\347\202\271\345\207\273.png" rename to "docs/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266\347\202\271\345\207\273.png" diff --git "a/v2/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266\347\274\226\350\276\221.png" "b/docs/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266\347\274\226\350\276\221.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266\347\274\226\350\276\221.png" rename to "docs/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266\347\274\226\350\276\221.png" diff --git "a/v2/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\350\241\250\346\240\274.png" "b/docs/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\350\241\250\346\240\274.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\350\241\250\346\240\274.png" rename to "docs/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\350\241\250\346\240\274.png" diff --git "a/v2/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\350\241\250\346\240\274\345\261\236\346\200\247\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\350\241\250\346\240\274\345\261\236\346\200\247\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\350\241\250\346\240\274\345\261\236\346\200\247\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\350\241\250\346\240\274\345\261\236\346\200\247\350\256\276\347\275\256.png" diff --git "a/v2/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\350\241\250\346\240\274\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\350\241\250\346\240\274\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\350\241\250\346\240\274\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/2.0\345\257\214\346\226\207\346\234\254\350\241\250\346\240\274\350\256\276\347\275\256.png" diff --git "a/v2/img/dashboard_generation/2.0\345\271\264\344\273\275\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/2.0\345\271\264\344\273\275\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\345\271\264\344\273\275\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/2.0\345\271\264\344\273\275\347\273\204\344\273\266.png" diff --git "a/v2/img/dashboard_generation/2.0\345\271\264\346\234\210\346\227\245\350\277\207\346\273\244.png" "b/docs/img/dashboard_generation/2.0\345\271\264\346\234\210\346\227\245\350\277\207\346\273\244.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\345\271\264\346\234\210\346\227\245\350\277\207\346\273\244.png" rename to "docs/img/dashboard_generation/2.0\345\271\264\346\234\210\346\227\245\350\277\207\346\273\244.png" diff --git "a/v2/img/dashboard_generation/2.0\346\201\242\345\244\215.png" "b/docs/img/dashboard_generation/2.0\346\201\242\345\244\215.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\346\201\242\345\244\215.png" rename to "docs/img/dashboard_generation/2.0\346\201\242\345\244\215.png" diff --git "a/v2/img/dashboard_generation/2.0\346\210\220\345\212\237\344\270\212\344\274\240\350\256\276\347\275\256\345\233\276\347\211\207.png" "b/docs/img/dashboard_generation/2.0\346\210\220\345\212\237\344\270\212\344\274\240\350\256\276\347\275\256\345\233\276\347\211\207.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\346\210\220\345\212\237\344\270\212\344\274\240\350\256\276\347\275\256\345\233\276\347\211\207.png" rename to "docs/img/dashboard_generation/2.0\346\210\220\345\212\237\344\270\212\344\274\240\350\256\276\347\275\256\345\233\276\347\211\207.png" diff --git "a/v2/img/dashboard_generation/2.0\346\211\271\351\207\217\346\223\215\344\275\234.png" "b/docs/img/dashboard_generation/2.0\346\211\271\351\207\217\346\223\215\344\275\234.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\346\211\271\351\207\217\346\223\215\344\275\234.png" rename to "docs/img/dashboard_generation/2.0\346\211\271\351\207\217\346\223\215\344\275\234.png" diff --git "a/v2/img/dashboard_generation/2.0\346\211\271\351\207\217\346\240\267\345\274\217\350\260\203\346\225\264.png" "b/docs/img/dashboard_generation/2.0\346\211\271\351\207\217\346\240\267\345\274\217\350\260\203\346\225\264.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\346\211\271\351\207\217\346\240\267\345\274\217\350\260\203\346\225\264.png" rename to "docs/img/dashboard_generation/2.0\346\211\271\351\207\217\346\240\267\345\274\217\350\260\203\346\225\264.png" diff --git "a/v2/img/dashboard_generation/2.0\346\222\244\351\224\200.png" "b/docs/img/dashboard_generation/2.0\346\222\244\351\224\200.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\346\222\244\351\224\200.png" rename to "docs/img/dashboard_generation/2.0\346\222\244\351\224\200.png" diff --git "a/v2/img/dashboard_generation/2.0\346\225\260\345\255\227\344\270\213\346\213\211\347\273\223\346\236\234.png" "b/docs/img/dashboard_generation/2.0\346\225\260\345\255\227\344\270\213\346\213\211\347\273\223\346\236\234.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\346\225\260\345\255\227\344\270\213\346\213\211\347\273\223\346\236\234.png" rename to "docs/img/dashboard_generation/2.0\346\225\260\345\255\227\344\270\213\346\213\211\347\273\223\346\236\234.png" diff --git "a/v2/img/dashboard_generation/2.0\346\226\207\346\234\254\344\270\213\346\213\211\350\277\207\346\273\244\347\273\223\346\236\234.png" "b/docs/img/dashboard_generation/2.0\346\226\207\346\234\254\344\270\213\346\213\211\350\277\207\346\273\244\347\273\223\346\236\234.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\346\226\207\346\234\254\344\270\213\346\213\211\350\277\207\346\273\244\347\273\223\346\236\234.png" rename to "docs/img/dashboard_generation/2.0\346\226\207\346\234\254\344\270\213\346\213\211\350\277\207\346\273\244\347\273\223\346\236\234.png" diff --git "a/v2/img/dashboard_generation/2.0\346\226\260\345\273\272tab.png" "b/docs/img/dashboard_generation/2.0\346\226\260\345\273\272tab.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\346\226\260\345\273\272tab.png" rename to "docs/img/dashboard_generation/2.0\346\226\260\345\273\272tab.png" diff --git "a/v2/img/dashboard_generation/2.0\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277.png" "b/docs/img/dashboard_generation/2.0\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277.png" rename to "docs/img/dashboard_generation/2.0\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277.png" diff --git "a/v2/img/dashboard_generation/2.0\346\226\260\345\273\272\344\273\252\350\241\250\346\235\2772.png" "b/docs/img/dashboard_generation/2.0\346\226\260\345\273\272\344\273\252\350\241\250\346\235\2772.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\346\226\260\345\273\272\344\273\252\350\241\250\346\235\2772.png" rename to "docs/img/dashboard_generation/2.0\346\226\260\345\273\272\344\273\252\350\241\250\346\235\2772.png" diff --git "a/v2/img/dashboard_generation/2.0\346\227\266\345\210\206\347\247\222\350\277\207\346\273\244.png" "b/docs/img/dashboard_generation/2.0\346\227\266\345\210\206\347\247\222\350\277\207\346\273\244.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\346\227\266\345\210\206\347\247\222\350\277\207\346\273\244.png" rename to "docs/img/dashboard_generation/2.0\346\227\266\345\210\206\347\247\222\350\277\207\346\273\244.png" diff --git "a/v2/img/dashboard_generation/2.0\346\237\245\350\257\242\346\235\241\344\273\266\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/2.0\346\237\245\350\257\242\346\235\241\344\273\266\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\346\237\245\350\257\242\346\235\241\344\273\266\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/2.0\346\237\245\350\257\242\346\235\241\344\273\266\350\256\276\347\275\256.png" diff --git "a/v2/img/dashboard_generation/2.0\346\237\245\350\257\242\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/2.0\346\237\245\350\257\242\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\346\237\245\350\257\242\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/2.0\346\237\245\350\257\242\347\273\204\344\273\266.png" diff --git "a/v2/img/dashboard_generation/2.0\346\237\245\350\257\242\347\273\204\344\273\266\346\240\267\345\274\217.png" "b/docs/img/dashboard_generation/2.0\346\237\245\350\257\242\347\273\204\344\273\266\346\240\267\345\274\217.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\346\237\245\350\257\242\347\273\204\344\273\266\346\240\267\345\274\217.png" rename to "docs/img/dashboard_generation/2.0\346\237\245\350\257\242\347\273\204\344\273\266\346\240\267\345\274\217.png" diff --git "a/v2/img/dashboard_generation/2.0\346\237\245\350\257\242\347\273\204\344\273\266\346\240\267\345\274\217\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/2.0\346\237\245\350\257\242\347\273\204\344\273\266\346\240\267\345\274\217\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\346\237\245\350\257\242\347\273\204\344\273\266\346\240\267\345\274\217\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/2.0\346\237\245\350\257\242\347\273\204\344\273\266\346\240\267\345\274\217\350\256\276\347\275\256.png" diff --git "a/v2/img/dashboard_generation/2.0\346\237\245\350\257\242\347\273\223\346\236\234.png" "b/docs/img/dashboard_generation/2.0\346\237\245\350\257\242\347\273\223\346\236\234.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\346\237\245\350\257\242\347\273\223\346\236\234.png" rename to "docs/img/dashboard_generation/2.0\346\237\245\350\257\242\347\273\223\346\236\234.png" diff --git "a/v2/img/dashboard_generation/2.0\346\267\273\345\212\240\346\237\245\350\257\242\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/2.0\346\267\273\345\212\240\346\237\245\350\257\242\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\346\267\273\345\212\240\346\237\245\350\257\242\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/2.0\346\267\273\345\212\240\346\237\245\350\257\242\347\273\204\344\273\266.png" diff --git "a/v2/img/dashboard_generation/2.0\347\202\271\345\207\273\344\270\212\344\274\240\345\233\276\347\211\207.png" "b/docs/img/dashboard_generation/2.0\347\202\271\345\207\273\344\270\212\344\274\240\345\233\276\347\211\207.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\347\202\271\345\207\273\344\270\212\344\274\240\345\233\276\347\211\207.png" rename to "docs/img/dashboard_generation/2.0\347\202\271\345\207\273\344\270\212\344\274\240\345\233\276\347\211\207.png" diff --git "a/v2/img/dashboard_generation/2.0\347\202\271\345\207\273\350\201\224\345\212\250\346\214\211\351\222\256.png" "b/docs/img/dashboard_generation/2.0\347\202\271\345\207\273\350\201\224\345\212\250\346\214\211\351\222\256.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\347\202\271\345\207\273\350\201\224\345\212\250\346\214\211\351\222\256.png" rename to "docs/img/dashboard_generation/2.0\347\202\271\345\207\273\350\201\224\345\212\250\346\214\211\351\222\256.png" diff --git "a/v2/img/dashboard_generation/2.0\347\202\271\345\207\273\350\267\263\350\275\254\346\214\211\351\222\256.png" "b/docs/img/dashboard_generation/2.0\347\202\271\345\207\273\350\267\263\350\275\254\346\214\211\351\222\256.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\347\202\271\345\207\273\350\267\263\350\275\254\346\214\211\351\222\256.png" rename to "docs/img/dashboard_generation/2.0\347\202\271\345\207\273\350\267\263\350\275\254\346\214\211\351\222\256.png" diff --git "a/v2/img/dashboard_generation/2.0\347\273\204\344\273\266\346\240\267\345\274\217\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/2.0\347\273\204\344\273\266\346\240\267\345\274\217\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\347\273\204\344\273\266\346\240\267\345\274\217\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/2.0\347\273\204\344\273\266\346\240\267\345\274\217\350\256\276\347\275\256.png" diff --git "a/v2/img/dashboard_generation/2.0\347\273\204\345\273\272\347\274\226\350\276\221\345\237\272\347\241\200\345\212\237\350\203\275.png" "b/docs/img/dashboard_generation/2.0\347\273\204\345\273\272\347\274\226\350\276\221\345\237\272\347\241\200\345\212\237\350\203\275.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\347\273\204\345\273\272\347\274\226\350\276\221\345\237\272\347\241\200\345\212\237\350\203\275.png" rename to "docs/img/dashboard_generation/2.0\347\273\204\345\273\272\347\274\226\350\276\221\345\237\272\347\241\200\345\212\237\350\203\275.png" diff --git "a/v2/img/dashboard_generation/2.0\347\274\226\350\276\221tab\346\240\207\351\242\230.png" "b/docs/img/dashboard_generation/2.0\347\274\226\350\276\221tab\346\240\207\351\242\230.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\347\274\226\350\276\221tab\346\240\207\351\242\230.png" rename to "docs/img/dashboard_generation/2.0\347\274\226\350\276\221tab\346\240\207\351\242\230.png" diff --git "a/v2/img/dashboard_generation/2.0\347\274\226\350\276\221\344\273\252\350\241\250\346\235\277.png" "b/docs/img/dashboard_generation/2.0\347\274\226\350\276\221\344\273\252\350\241\250\346\235\277.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\347\274\226\350\276\221\344\273\252\350\241\250\346\235\277.png" rename to "docs/img/dashboard_generation/2.0\347\274\226\350\276\221\344\273\252\350\241\250\346\235\277.png" diff --git "a/v2/img/dashboard_generation/2.0\350\247\206\345\233\276\345\210\240\351\231\244.png" "b/docs/img/dashboard_generation/2.0\350\247\206\345\233\276\345\210\240\351\231\244.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\247\206\345\233\276\345\210\240\351\231\244.png" rename to "docs/img/dashboard_generation/2.0\350\247\206\345\233\276\345\210\240\351\231\244.png" diff --git "a/v2/img/dashboard_generation/2.0\350\247\206\345\233\276\345\244\215\345\210\266.png" "b/docs/img/dashboard_generation/2.0\350\247\206\345\233\276\345\244\215\345\210\266.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\247\206\345\233\276\345\244\215\345\210\266.png" rename to "docs/img/dashboard_generation/2.0\350\247\206\345\233\276\345\244\215\345\210\266.png" diff --git "a/v2/img/dashboard_generation/2.0\350\247\206\345\233\276\345\277\253\346\215\267\345\244\215\345\210\266.png" "b/docs/img/dashboard_generation/2.0\350\247\206\345\233\276\345\277\253\346\215\267\345\244\215\345\210\266.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\247\206\345\233\276\345\277\253\346\215\267\345\244\215\345\210\266.png" rename to "docs/img/dashboard_generation/2.0\350\247\206\345\233\276\345\277\253\346\215\267\345\244\215\345\210\266.png" diff --git "a/v2/img/dashboard_generation/2.0\350\247\206\345\233\276\347\273\223\346\236\234\346\225\260\351\207\217.png" "b/docs/img/dashboard_generation/2.0\350\247\206\345\233\276\347\273\223\346\236\234\346\225\260\351\207\217.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\247\206\345\233\276\347\273\223\346\236\234\346\225\260\351\207\217.png" rename to "docs/img/dashboard_generation/2.0\350\247\206\345\233\276\347\273\223\346\236\234\346\225\260\351\207\217.png" diff --git "a/v2/img/dashboard_generation/2.0\350\256\276\347\275\256\345\271\264\344\273\275\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/2.0\350\256\276\347\275\256\345\271\264\344\273\275\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\256\276\347\275\256\345\271\264\344\273\275\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/2.0\350\256\276\347\275\256\345\271\264\344\273\275\347\273\204\344\273\266.png" diff --git "a/v2/img/dashboard_generation/2.0\350\256\276\347\275\256\345\271\264\346\234\210\346\227\245\350\277\207\346\273\244\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/2.0\350\256\276\347\275\256\345\271\264\346\234\210\346\227\245\350\277\207\346\273\244\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\256\276\347\275\256\345\271\264\346\234\210\346\227\245\350\277\207\346\273\244\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/2.0\350\256\276\347\275\256\345\271\264\346\234\210\346\227\245\350\277\207\346\273\244\350\256\276\347\275\256.png" diff --git "a/v2/img/dashboard_generation/2.0\350\256\276\347\275\256\345\271\264\346\234\210\350\277\207\346\273\244.png" "b/docs/img/dashboard_generation/2.0\350\256\276\347\275\256\345\271\264\346\234\210\350\277\207\346\273\244.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\256\276\347\275\256\345\271\264\346\234\210\350\277\207\346\273\244.png" rename to "docs/img/dashboard_generation/2.0\350\256\276\347\275\256\345\271\264\346\234\210\350\277\207\346\273\244.png" diff --git "a/v2/img/dashboard_generation/2.0\350\256\276\347\275\256\346\225\260\345\255\227\344\270\213\346\213\211\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/2.0\350\256\276\347\275\256\346\225\260\345\255\227\344\270\213\346\213\211\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\256\276\347\275\256\346\225\260\345\255\227\344\270\213\346\213\211\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/2.0\350\256\276\347\275\256\346\225\260\345\255\227\344\270\213\346\213\211\347\273\204\344\273\266.png" diff --git "a/v2/img/dashboard_generation/2.0\350\256\276\347\275\256\346\226\207\346\234\254\344\270\213\346\213\211\350\277\207\346\273\244.png" "b/docs/img/dashboard_generation/2.0\350\256\276\347\275\256\346\226\207\346\234\254\344\270\213\346\213\211\350\277\207\346\273\244.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\256\276\347\275\256\346\226\207\346\234\254\344\270\213\346\213\211\350\277\207\346\273\244.png" rename to "docs/img/dashboard_generation/2.0\350\256\276\347\275\256\346\226\207\346\234\254\344\270\213\346\213\211\350\277\207\346\273\244.png" diff --git "a/v2/img/dashboard_generation/2.0\350\256\276\347\275\256\346\227\266\351\227\264\350\214\203\345\233\264\350\277\207\346\273\244\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/2.0\350\256\276\347\275\256\346\227\266\351\227\264\350\214\203\345\233\264\350\277\207\346\273\244\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\256\276\347\275\256\346\227\266\351\227\264\350\214\203\345\233\264\350\277\207\346\273\244\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/2.0\350\256\276\347\275\256\346\227\266\351\227\264\350\214\203\345\233\264\350\277\207\346\273\244\347\273\204\344\273\266.png" diff --git "a/v2/img/dashboard_generation/2.0\350\256\276\347\275\256\350\277\207\346\273\244\346\235\241\344\273\266.png" "b/docs/img/dashboard_generation/2.0\350\256\276\347\275\256\350\277\207\346\273\244\346\235\241\344\273\266.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\256\276\347\275\256\350\277\207\346\273\244\346\235\241\344\273\266.png" rename to "docs/img/dashboard_generation/2.0\350\256\276\347\275\256\350\277\207\346\273\244\346\235\241\344\273\266.png" diff --git "a/v2/img/dashboard_generation/2.0\350\266\205\351\223\276\346\216\245\346\225\210\346\236\234.png" "b/docs/img/dashboard_generation/2.0\350\266\205\351\223\276\346\216\245\346\225\210\346\236\234.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\266\205\351\223\276\346\216\245\346\225\210\346\236\234.png" rename to "docs/img/dashboard_generation/2.0\350\266\205\351\223\276\346\216\245\346\225\210\346\236\234.png" diff --git "a/v2/img/dashboard_generation/2.0\350\266\205\351\223\276\346\216\245\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/2.0\350\266\205\351\223\276\346\216\245\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\266\205\351\223\276\346\216\245\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/2.0\350\266\205\351\223\276\346\216\245\350\256\276\347\275\256.png" diff --git "a/v2/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266.png" diff --git "a/v2/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266\345\217\202\346\225\260\347\273\221\345\256\232.png" "b/docs/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266\345\217\202\346\225\260\347\273\221\345\256\232.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266\345\217\202\346\225\260\347\273\221\345\256\232.png" rename to "docs/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266\345\217\202\346\225\260\347\273\221\345\256\232.png" diff --git "a/v2/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266\345\244\232\351\200\211\347\241\256\345\256\232.png" "b/docs/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266\345\244\232\351\200\211\347\241\256\345\256\232.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266\345\244\232\351\200\211\347\241\256\345\256\232.png" rename to "docs/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266\345\244\232\351\200\211\347\241\256\345\256\232.png" diff --git "a/v2/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266\346\213\226\346\213\275\345\255\227\346\256\265.png" "b/docs/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266\346\213\226\346\213\275\345\255\227\346\256\265.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266\346\213\226\346\213\275\345\255\227\346\256\265.png" rename to "docs/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266\346\213\226\346\213\275\345\255\227\346\256\265.png" diff --git "a/v2/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266\347\274\226\350\276\221.png" "b/docs/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266\347\274\226\350\276\221.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266\347\274\226\350\276\221.png" rename to "docs/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266\347\274\226\350\276\221.png" diff --git "a/v2/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266\351\200\211\351\241\271\345\244\232\351\200\211\347\241\256\350\256\244.png" "b/docs/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266\351\200\211\351\241\271\345\244\232\351\200\211\347\241\256\350\256\244.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266\351\200\211\351\241\271\345\244\232\351\200\211\347\241\256\350\256\244.png" rename to "docs/img/dashboard_generation/2.0\350\277\207\346\273\244\347\273\204\344\273\266\351\200\211\351\241\271\345\244\232\351\200\211\347\241\256\350\256\244.png" diff --git "a/v2/img/dashboard_generation/2.0\350\277\224\345\233\236.png" "b/docs/img/dashboard_generation/2.0\350\277\224\345\233\236.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\277\224\345\233\236.png" rename to "docs/img/dashboard_generation/2.0\350\277\224\345\233\236.png" diff --git "a/v2/img/dashboard_generation/2.0\350\277\233\350\241\214\345\244\215\347\224\250.png" "b/docs/img/dashboard_generation/2.0\350\277\233\350\241\214\345\244\215\347\224\250.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\277\233\350\241\214\345\244\215\347\224\250.png" rename to "docs/img/dashboard_generation/2.0\350\277\233\350\241\214\345\244\215\347\224\250.png" diff --git "a/v2/img/dashboard_generation/2.0\350\277\233\350\241\214\345\271\264\346\234\210\350\277\207\346\273\244.png" "b/docs/img/dashboard_generation/2.0\350\277\233\350\241\214\345\271\264\346\234\210\350\277\207\346\273\244.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\277\233\350\241\214\345\271\264\346\234\210\350\277\207\346\273\244.png" rename to "docs/img/dashboard_generation/2.0\350\277\233\350\241\214\345\271\264\346\234\210\350\277\207\346\273\244.png" diff --git "a/v2/img/dashboard_generation/2.0\350\277\233\350\241\214\346\227\266\345\210\206\347\247\222\350\277\207\346\273\244\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/2.0\350\277\233\350\241\214\346\227\266\345\210\206\347\247\222\350\277\207\346\273\244\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\277\233\350\241\214\346\227\266\345\210\206\347\247\222\350\277\207\346\273\244\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/2.0\350\277\233\350\241\214\346\227\266\345\210\206\347\247\222\350\277\207\346\273\244\350\256\276\347\275\256.png" diff --git "a/v2/img/dashboard_generation/2.0\350\277\233\350\241\214\346\227\266\351\227\264\350\214\203\345\233\264\350\277\207\346\273\244.png" "b/docs/img/dashboard_generation/2.0\350\277\233\350\241\214\346\227\266\351\227\264\350\214\203\345\233\264\350\277\207\346\273\244.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\277\233\350\241\214\346\227\266\351\227\264\350\214\203\345\233\264\350\277\207\346\273\244.png" rename to "docs/img/dashboard_generation/2.0\350\277\233\350\241\214\346\227\266\351\227\264\350\214\203\345\233\264\350\277\207\346\273\244.png" diff --git "a/v2/img/dashboard_generation/2.0\350\277\233\350\241\214\346\237\245\350\257\242.png" "b/docs/img/dashboard_generation/2.0\350\277\233\350\241\214\346\237\245\350\257\242.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\350\277\233\350\241\214\346\237\245\350\257\242.png" rename to "docs/img/dashboard_generation/2.0\350\277\233\350\241\214\346\237\245\350\257\242.png" diff --git "a/v2/img/dashboard_generation/2.0\351\200\211\346\213\251tab1.png" "b/docs/img/dashboard_generation/2.0\351\200\211\346\213\251tab1.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\351\200\211\346\213\251tab1.png" rename to "docs/img/dashboard_generation/2.0\351\200\211\346\213\251tab1.png" diff --git "a/v2/img/dashboard_generation/2.0\351\200\211\346\213\251tab2.png" "b/docs/img/dashboard_generation/2.0\351\200\211\346\213\251tab2.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\351\200\211\346\213\251tab2.png" rename to "docs/img/dashboard_generation/2.0\351\200\211\346\213\251tab2.png" diff --git "a/v2/img/dashboard_generation/2.0\351\253\230\347\272\247\350\256\276\347\275\256\346\240\267\345\274\217.png" "b/docs/img/dashboard_generation/2.0\351\253\230\347\272\247\350\256\276\347\275\256\346\240\267\345\274\217.png" similarity index 100% rename from "v2/img/dashboard_generation/2.0\351\253\230\347\272\247\350\256\276\347\275\256\346\240\267\345\274\217.png" rename to "docs/img/dashboard_generation/2.0\351\253\230\347\272\247\350\256\276\347\275\256\346\240\267\345\274\217.png" diff --git "a/v1/img/dashboard_generation/Tab\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/Tab\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/dashboard_generation/Tab\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/Tab\347\273\204\344\273\266.png" diff --git "a/v1/img/dashboard_generation/Tab\347\273\204\344\273\266\345\255\227\344\275\223\345\244\247\345\260\217.png" "b/docs/img/dashboard_generation/Tab\347\273\204\344\273\266\345\255\227\344\275\223\345\244\247\345\260\217.png" similarity index 100% rename from "v1/img/dashboard_generation/Tab\347\273\204\344\273\266\345\255\227\344\275\223\345\244\247\345\260\217.png" rename to "docs/img/dashboard_generation/Tab\347\273\204\344\273\266\345\255\227\344\275\223\345\244\247\345\260\217.png" diff --git "a/v1/img/dashboard_generation/Tab\351\241\265\345\206\205\351\203\250\346\240\267\345\274\217\347\274\226\350\276\221.png" "b/docs/img/dashboard_generation/Tab\351\241\265\345\206\205\351\203\250\346\240\267\345\274\217\347\274\226\350\276\221.png" similarity index 100% rename from "v1/img/dashboard_generation/Tab\351\241\265\345\206\205\351\203\250\346\240\267\345\274\217\347\274\226\350\276\221.png" rename to "docs/img/dashboard_generation/Tab\351\241\265\345\206\205\351\203\250\346\240\267\345\274\217\347\274\226\350\276\221.png" diff --git "a/v1/img/dashboard_generation/Tab\351\241\265\345\206\205\351\203\250\346\240\267\345\274\217\347\274\226\350\276\221\346\277\200\346\264\273\345\255\227\344\275\223\345\244\247\345\260\217.png" "b/docs/img/dashboard_generation/Tab\351\241\265\345\206\205\351\203\250\346\240\267\345\274\217\347\274\226\350\276\221\346\277\200\346\264\273\345\255\227\344\275\223\345\244\247\345\260\217.png" similarity index 100% rename from "v1/img/dashboard_generation/Tab\351\241\265\345\206\205\351\203\250\346\240\267\345\274\217\347\274\226\350\276\221\346\277\200\346\264\273\345\255\227\344\275\223\345\244\247\345\260\217.png" rename to "docs/img/dashboard_generation/Tab\351\241\265\345\206\205\351\203\250\346\240\267\345\274\217\347\274\226\350\276\221\346\277\200\346\264\273\345\255\227\344\275\223\345\244\247\345\260\217.png" diff --git "a/v1/img/dashboard_generation/Tab\351\241\265\345\261\225\347\244\272\350\247\206\345\233\276.png" "b/docs/img/dashboard_generation/Tab\351\241\265\345\261\225\347\244\272\350\247\206\345\233\276.png" similarity index 100% rename from "v1/img/dashboard_generation/Tab\351\241\265\345\261\225\347\244\272\350\247\206\345\233\276.png" rename to "docs/img/dashboard_generation/Tab\351\241\265\345\261\225\347\244\272\350\247\206\345\233\276.png" diff --git "a/v1/img/dashboard_generation/Tab\351\241\265\350\247\206\345\233\276\344\270\213\351\222\273.png" "b/docs/img/dashboard_generation/Tab\351\241\265\350\247\206\345\233\276\344\270\213\351\222\273.png" similarity index 100% rename from "v1/img/dashboard_generation/Tab\351\241\265\350\247\206\345\233\276\344\270\213\351\222\273.png" rename to "docs/img/dashboard_generation/Tab\351\241\265\350\247\206\345\233\276\344\270\213\351\222\273.png" diff --git "a/v1/img/dashboard_generation/Tab\351\241\265\350\275\256\346\222\255.png" "b/docs/img/dashboard_generation/Tab\351\241\265\350\275\256\346\222\255.png" similarity index 100% rename from "v1/img/dashboard_generation/Tab\351\241\265\350\275\256\346\222\255.png" rename to "docs/img/dashboard_generation/Tab\351\241\265\350\275\256\346\222\255.png" diff --git "a/v1/img/dashboard_generation/tab\347\273\204\344\273\266\350\275\256\346\222\255\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/tab\347\273\204\344\273\266\350\275\256\346\222\255\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/dashboard_generation/tab\347\273\204\344\273\266\350\275\256\346\222\255\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/tab\347\273\204\344\273\266\350\275\256\346\222\255\350\256\276\347\275\256.png" diff --git "a/v1/img/dashboard_generation/tab\351\200\211\351\241\271.png" "b/docs/img/dashboard_generation/tab\351\200\211\351\241\271.png" similarity index 100% rename from "v1/img/dashboard_generation/tab\351\200\211\351\241\271.png" rename to "docs/img/dashboard_generation/tab\351\200\211\351\241\271.png" diff --git "a/v1/img/dashboard_generation/\344\270\213\346\213\211\346\240\221\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\344\270\213\346\213\211\346\240\221\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\270\213\346\213\211\346\240\221\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\344\270\213\346\213\211\346\240\221\347\273\204\344\273\266.png" diff --git "a/v1/img/dashboard_generation/\344\270\213\346\213\211\346\240\221\347\273\204\344\273\266\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\344\270\213\346\213\211\346\240\221\347\273\204\344\273\266\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\270\213\346\213\211\346\240\221\347\273\204\344\273\266\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\344\270\213\346\213\211\346\240\221\347\273\204\344\273\266\345\205\245\345\217\243.png" diff --git "a/v1/img/dashboard_generation/\344\270\213\346\213\211\346\240\221\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" "b/docs/img/dashboard_generation/\344\270\213\346\213\211\346\240\221\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\270\213\346\213\211\346\240\221\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" rename to "docs/img/dashboard_generation/\344\270\213\346\213\211\346\240\221\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" diff --git "a/v2/img/dashboard_generation/\344\272\213\344\273\266\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/\344\272\213\344\273\266\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/dashboard_generation/\344\272\213\344\273\266\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/\344\272\213\344\273\266\350\256\276\347\275\256.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\344\277\235\345\255\230.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\344\277\235\345\255\230.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\344\277\235\345\255\230.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\344\277\235\345\255\230.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\344\277\235\345\255\230\344\270\272\346\250\241\347\211\210.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\344\277\235\345\255\230\344\270\272\346\250\241\347\211\210.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\344\277\235\345\255\230\344\270\272\346\250\241\347\211\210.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\344\277\235\345\255\230\344\270\272\346\250\241\347\211\210.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\205\263\351\227\255.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\205\263\351\227\255.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\205\263\351\227\255.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\205\263\351\227\255.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\205\266\344\273\226\346\240\267\345\274\217.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\205\266\344\273\226\346\240\267\345\274\217.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\205\266\344\273\226\346\240\267\345\274\217.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\205\266\344\273\226\346\240\267\345\274\217.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\206\344\272\253.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\206\344\272\253.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\206\344\272\253.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\206\344\272\253.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\206\344\272\253\347\224\250\346\210\267.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\206\344\272\253\347\224\250\346\210\267.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\206\344\272\253\347\224\250\346\210\267.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\206\344\272\253\347\224\250\346\210\267.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\206\344\272\253\347\273\231.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\206\344\272\253\347\273\231.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\206\344\272\253\347\273\231.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\206\344\272\253\347\273\231.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245_\345\244\215\345\210\266\351\223\276\346\216\245.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245_\345\244\215\345\210\266\351\223\276\346\216\245.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245_\345\244\215\345\210\266\351\223\276\346\216\245.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245_\345\244\215\345\210\266\351\223\276\346\216\245.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245_\345\244\226\351\203\250\345\217\202\346\225\260.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245_\345\244\226\351\203\250\345\217\202\346\225\260.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245_\345\244\226\351\203\250\345\217\202\346\225\260.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245_\345\244\226\351\203\250\345\217\202\346\225\260.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245_\345\257\274\345\207\272PDF.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245_\345\257\274\345\207\272PDF.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245_\345\257\274\345\207\272PDF.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245_\345\257\274\345\207\272PDF.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245_\350\277\224\345\233\236.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245_\350\277\224\345\233\236.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245_\350\277\224\345\233\236.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245_\350\277\224\345\233\236.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\217\221\345\270\203.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\217\221\345\270\203.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\217\221\345\270\203.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\217\221\345\270\203.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\217\226\346\266\210\345\217\221\345\270\203.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\217\226\346\266\210\345\217\221\345\270\203.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\217\226\346\266\210\345\217\221\345\270\203.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\217\226\346\266\210\345\217\221\345\270\203.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\233\276\350\241\250\346\240\207\351\242\230.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\233\276\350\241\250\346\240\207\351\242\230.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\233\276\350\241\250\346\240\207\351\242\230.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\233\276\350\241\250\346\240\207\351\242\230.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\244\215\345\210\266.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\244\215\345\210\266.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\244\215\345\210\266.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\244\215\345\210\266.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\244\215\347\224\250.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\244\215\347\224\250.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\244\215\347\224\250.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\244\215\347\224\250.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\244\215\347\224\2502.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\244\215\347\224\2502.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\244\215\347\224\2502.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\244\215\347\224\2502.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266\345\205\245\345\217\243.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\205\245\346\250\241\346\235\277.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\205\245\346\250\241\346\235\277.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\205\245\346\250\241\346\235\277.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\205\245\346\250\241\346\235\277.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272pdf\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272pdf\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272pdf\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272pdf\345\205\245\345\217\243.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272pdf\351\242\204\350\247\210.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272pdf\351\242\204\350\247\210.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272pdf\351\242\204\350\247\210.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272pdf\351\242\204\350\247\210.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272\344\270\272\346\250\241\346\235\277.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272\344\270\272\346\250\241\346\235\277.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272\344\270\272\346\250\241\346\235\277.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272\344\270\272\346\250\241\346\235\277.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272\344\270\272\346\250\241\347\211\210.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272\344\270\272\346\250\241\347\211\210.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272\344\270\272\346\250\241\347\211\210.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272\344\270\272\346\250\241\347\211\210.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272\345\233\276\347\211\207.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272\345\233\276\347\211\207.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272\345\233\276\347\211\207.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272\345\233\276\347\211\207.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272\345\272\224\347\224\250.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272\345\272\224\347\224\250.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272\345\272\224\347\224\250.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272\345\272\224\347\224\250.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272\350\247\206\345\233\276\345\233\276\347\211\207.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272\350\247\206\345\233\276\345\233\276\347\211\207.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272\350\247\206\345\233\276\345\233\276\347\211\207.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\257\274\345\207\272\350\247\206\345\233\276\345\233\276\347\211\207.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\267\262\344\270\213\346\236\266.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\267\262\344\270\213\346\236\266.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\267\262\344\270\213\346\236\266.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\345\267\262\344\270\213\346\236\266.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\211\213\345\212\250\345\210\267\346\226\260\346\214\211\351\222\256.jpg" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\211\213\345\212\250\345\210\267\346\226\260\346\214\211\351\222\256.jpg" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\211\213\345\212\250\345\210\267\346\226\260\346\214\211\351\222\256.jpg" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\211\213\345\212\250\345\210\267\346\226\260\346\214\211\351\222\256.jpg" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\211\213\345\212\250\345\210\267\346\226\260\346\214\211\351\222\256.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\211\213\345\212\250\345\210\267\346\226\260\346\214\211\351\222\256.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\211\213\345\212\250\345\210\267\346\226\260\346\214\211\351\222\256.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\211\213\345\212\250\345\210\267\346\226\260\346\214\211\351\222\256.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\211\271\351\207\217\346\223\215\344\275\234.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\211\271\351\207\217\346\223\215\344\275\234.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\211\271\351\207\217\346\223\215\344\275\234.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\211\271\351\207\217\346\223\215\344\275\234.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\211\271\351\207\217\346\223\215\344\275\234_\345\205\261\346\200\247\345\261\236\346\200\247.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\211\271\351\207\217\346\223\215\344\275\234_\345\205\261\346\200\247\345\261\236\346\200\247.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\211\271\351\207\217\346\223\215\344\275\234_\345\205\261\346\200\247\345\261\236\346\200\247.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\211\271\351\207\217\346\223\215\344\275\234_\345\205\261\346\200\247\345\261\236\346\200\247.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\224\266\350\227\217.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\224\266\350\227\217.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\224\266\350\227\217.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\224\266\350\227\217.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\224\266\350\227\217\345\210\227\350\241\250.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\224\266\350\227\217\345\210\227\350\241\250.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\224\266\350\227\217\345\210\227\350\241\250.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\224\266\350\227\217\345\210\227\350\241\250.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\224\276\345\244\247.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\224\276\345\244\247.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\224\276\345\244\247.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\224\276\345\244\247.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\237\245\347\234\213.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\237\245\347\234\213.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\237\245\347\234\213.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\237\245\347\234\213.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\237\245\347\234\213\351\273\230\350\256\244\344\273\252\350\241\250\346\235\277.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\237\245\347\234\213\351\273\230\350\256\244\344\273\252\350\241\250\346\235\277.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\237\245\347\234\213\351\273\230\350\256\244\344\273\252\350\241\250\346\235\277.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\346\237\245\347\234\213\351\273\230\350\256\244\344\273\252\350\241\250\346\235\277.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\347\273\204\344\273\266\351\205\215\350\211\262.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\347\273\204\344\273\266\351\205\215\350\211\262.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\347\273\204\344\273\266\351\205\215\350\211\262.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\347\273\204\344\273\266\351\205\215\350\211\262.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\347\274\226\350\276\221.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\347\274\226\350\276\221.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\347\274\226\350\276\221.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\347\274\226\350\276\221.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\347\274\226\350\276\221_\351\200\200\345\207\272\347\241\256\350\256\244\346\217\220\347\244\272.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\347\274\226\350\276\221_\351\200\200\345\207\272\347\241\256\350\256\244\346\217\220\347\244\272.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\347\274\226\350\276\221_\351\200\200\345\207\272\347\241\256\350\256\244\346\217\220\347\244\272.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\347\274\226\350\276\221_\351\200\200\345\207\272\347\241\256\350\256\244\346\217\220\347\244\272.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\350\207\252\345\212\250\345\210\267\346\226\260\351\205\215\347\275\256.jpg" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\350\207\252\345\212\250\345\210\267\346\226\260\351\205\215\347\275\256.jpg" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\350\207\252\345\212\250\345\210\267\346\226\260\351\205\215\347\275\256.jpg" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\350\207\252\345\212\250\345\210\267\346\226\260\351\205\215\347\275\256.jpg" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\350\207\252\345\212\250\345\210\267\346\226\260\351\205\215\347\275\256.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\350\207\252\345\212\250\345\210\267\346\226\260\351\205\215\347\275\256.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\350\207\252\345\212\250\345\210\267\346\226\260\351\205\215\347\275\256.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\350\207\252\345\212\250\345\210\267\346\226\260\351\205\215\347\275\256.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\350\242\253\345\210\206\344\272\253.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\350\242\253\345\210\206\344\272\253.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\350\242\253\345\210\206\344\272\253.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\350\242\253\345\210\206\344\272\253.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\350\276\205\345\212\251\350\256\276\350\256\241\347\275\221\346\240\274.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\350\276\205\345\212\251\350\256\276\350\256\241\347\275\221\346\240\274.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\350\276\205\345\212\251\350\256\276\350\256\241\347\275\221\346\240\274.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\350\276\205\345\212\251\350\256\276\350\256\241\347\275\221\346\240\274.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\350\277\207\346\273\244\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\350\277\207\346\273\244\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\350\277\207\346\273\244\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\350\277\207\346\273\244\347\273\204\344\273\266.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\351\242\204\350\247\210.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\351\242\204\350\247\210.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\351\242\204\350\247\210.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277_\351\242\204\350\247\210.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\344\270\273\351\242\230.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\344\270\273\351\242\230.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\344\270\273\351\242\230.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\344\270\273\351\242\230.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\344\270\273\351\242\230\350\211\262\343\200\201\347\273\204\344\273\266\351\227\264\351\232\231.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\344\270\273\351\242\230\350\211\262\343\200\201\347\273\204\344\273\266\351\227\264\351\232\231.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\344\270\273\351\242\230\350\211\262\343\200\201\347\273\204\344\273\266\351\227\264\351\232\231.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\344\270\273\351\242\230\350\211\262\343\200\201\347\273\204\344\273\266\351\227\264\351\232\231.png" diff --git "a/v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\344\275\277\347\224\250\345\272\224\347\224\250\345\210\233\345\273\272.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\344\275\277\347\224\250\345\272\224\347\224\250\345\210\233\345\273\272.png" similarity index 100% rename from "v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\344\275\277\347\224\250\345\272\224\347\224\250\345\210\233\345\273\272.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\344\275\277\347\224\250\345\272\224\347\224\250\345\210\233\345\273\272.png" diff --git "a/v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\205\250\345\261\217.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\205\250\345\261\217.png" similarity index 100% rename from "v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\205\250\345\261\217.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\205\250\345\261\217.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\210\267\346\226\260\346\227\266\351\227\264.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\210\267\346\226\260\346\227\266\351\227\264.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\210\267\346\226\260\346\227\266\351\227\264.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\210\267\346\226\260\346\227\266\351\227\264.png" diff --git "a/v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\210\267\346\226\260\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\210\267\346\226\260\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\210\267\346\226\260\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\210\267\346\226\260\350\256\276\347\275\256.png" diff --git "a/v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\210\267\346\226\260\351\242\221\347\216\207.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\210\267\346\226\260\351\242\221\347\216\207.png" similarity index 100% rename from "v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\210\267\346\226\260\351\242\221\347\216\207.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\210\267\346\226\260\351\242\221\347\216\207.png" diff --git "a/v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\222\214\346\225\260\346\215\256\345\244\247\345\261\217\346\224\257\346\214\201\345\255\227\344\275\223\346\233\264\346\215\242.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\222\214\346\225\260\346\215\256\345\244\247\345\261\217\346\224\257\346\214\201\345\255\227\344\275\223\346\233\264\346\215\242.png" similarity index 100% rename from "v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\222\214\346\225\260\346\215\256\345\244\247\345\261\217\346\224\257\346\214\201\345\255\227\344\275\223\346\233\264\346\215\242.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\222\214\346\225\260\346\215\256\345\244\247\345\261\217\346\224\257\346\214\201\345\255\227\344\275\223\346\233\264\346\215\242.png" diff --git "a/v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\233\276\347\211\207\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\233\276\347\211\207\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\233\276\347\211\207\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\233\276\347\211\207\347\273\204\344\273\266.png" diff --git "a/v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\244\226\351\203\250\344\274\240\345\217\202.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\244\226\351\203\250\344\274\240\345\217\202.png" similarity index 100% rename from "v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\244\226\351\203\250\344\274\240\345\217\202.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\244\226\351\203\250\344\274\240\345\217\202.png" diff --git "a/v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\244\226\351\203\250\345\217\202\346\225\260\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\244\226\351\203\250\345\217\202\346\225\260\345\205\245\345\217\243.png" similarity index 100% rename from "v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\244\226\351\203\250\345\217\202\346\225\260\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\244\226\351\203\250\345\217\202\346\225\260\345\205\245\345\217\243.png" diff --git "a/v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\255\227\344\275\223\346\233\264\346\215\242.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\255\227\344\275\223\346\233\264\346\215\242.png" similarity index 100% rename from "v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\255\227\344\275\223\346\233\264\346\215\242.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\255\227\344\275\223\346\233\264\346\215\242.png" diff --git "a/v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\257\274\345\207\272.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\257\274\345\207\272.png" similarity index 100% rename from "v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\257\274\345\207\272.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\345\257\274\345\207\272.png" diff --git "a/v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\346\265\201\345\252\222\344\275\223\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\346\265\201\345\252\222\344\275\223\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\346\265\201\345\252\222\344\275\223\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\346\265\201\345\252\222\344\275\223\347\273\204\344\273\266.png" diff --git "a/v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\273\204\344\273\266\346\240\267\345\274\217\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\273\204\344\273\266\346\240\267\345\274\217\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\273\204\344\273\266\346\240\267\345\274\217\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\273\204\344\273\266\346\240\267\345\274\217\350\256\276\347\275\256.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\223\345\255\230.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\223\345\255\230.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\223\345\255\230.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\223\345\255\230.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221_\345\237\272\347\241\200\345\212\237\350\203\275.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221_\345\237\272\347\241\200\345\212\237\350\203\275.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221_\345\237\272\347\241\200\345\212\237\350\203\275.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221_\345\237\272\347\241\200\345\212\237\350\203\275.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221_\347\273\204\344\273\266\346\267\273\345\212\240.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221_\347\273\204\344\273\266\346\267\273\345\212\240.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221_\347\273\204\344\273\266\346\267\273\345\212\240.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221_\347\273\204\344\273\266\346\267\273\345\212\240.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221_\347\273\204\344\273\266\347\274\226\350\276\221.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221_\347\273\204\344\273\266\347\274\226\350\276\221.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221_\347\273\204\344\273\266\347\274\226\350\276\221.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221_\347\273\204\344\273\266\347\274\226\350\276\221.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221_\350\247\206\345\233\276\346\267\273\345\212\240.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221_\350\247\206\345\233\276\346\267\273\345\212\240.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221_\350\247\206\345\233\276\346\267\273\345\212\240.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221_\350\247\206\345\233\276\346\267\273\345\212\240.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221_\350\256\276\350\256\241.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221_\350\256\276\350\256\241.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221_\350\256\276\350\256\241.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221_\350\256\276\350\256\241.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\347\274\226\350\276\221\345\205\245\345\217\243.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\203\214\346\231\257.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\203\214\346\231\257.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\203\214\346\231\257.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\203\214\346\231\257.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\247\206\345\233\276\347\273\223\346\236\234\345\261\225\347\244\272.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\247\206\345\233\276\347\273\223\346\236\234\345\261\225\347\244\272.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\247\206\345\233\276\347\273\223\346\236\234\345\261\225\347\244\272.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\247\206\345\233\276\347\273\223\346\236\234\345\261\225\347\244\272.png" diff --git "a/v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\247\206\351\242\221\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\247\206\351\242\221\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\247\206\351\242\221\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\247\206\351\242\221\347\273\204\344\273\266.png" diff --git "a/v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\256\276\347\275\256\345\244\226\351\203\250\350\277\236\346\216\245\350\267\263\350\275\254.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\256\276\347\275\256\345\244\226\351\203\250\350\277\236\346\216\245\350\267\263\350\275\254.png" similarity index 100% rename from "v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\256\276\347\275\256\345\244\226\351\203\250\350\277\236\346\216\245\350\267\263\350\275\254.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\256\276\347\275\256\345\244\226\351\203\250\350\277\236\346\216\245\350\267\263\350\275\254.png" diff --git "a/v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\256\276\347\275\256\350\267\263\350\275\254\345\206\205\345\256\271.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\256\276\347\275\256\350\267\263\350\275\254\345\206\205\345\256\271.png" similarity index 100% rename from "v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\256\276\347\275\256\350\267\263\350\275\254\345\206\205\345\256\271.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\256\276\347\275\256\350\267\263\350\275\254\345\206\205\345\256\271.png" diff --git "a/v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\345\210\206\344\272\253.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\345\210\206\344\272\253.png" similarity index 100% rename from "v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\345\210\206\344\272\253.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\350\277\233\350\241\214\345\210\206\344\272\253.png" diff --git "a/v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\351\242\204\350\247\210.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\351\242\204\350\247\210.png" similarity index 100% rename from "v2/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\351\242\204\350\247\210.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\346\235\277\351\242\204\350\247\210.png" diff --git "a/v1/img/dashboard_generation/\344\273\252\350\241\250\347\233\230\347\274\226\350\276\221_\345\205\266\344\273\226\347\273\204\344\273\266\346\267\273\345\212\240.png" "b/docs/img/dashboard_generation/\344\273\252\350\241\250\347\233\230\347\274\226\350\276\221_\345\205\266\344\273\226\347\273\204\344\273\266\346\267\273\345\212\240.png" similarity index 100% rename from "v1/img/dashboard_generation/\344\273\252\350\241\250\347\233\230\347\274\226\350\276\221_\345\205\266\344\273\226\347\273\204\344\273\266\346\267\273\345\212\240.png" rename to "docs/img/dashboard_generation/\344\273\252\350\241\250\347\233\230\347\274\226\350\276\221_\345\205\266\344\273\226\347\273\204\344\273\266\346\267\273\345\212\240.png" diff --git "a/v2/img/dashboard_generation/\344\275\277\347\224\250\346\250\241\346\235\277\347\225\214\351\235\242.png" "b/docs/img/dashboard_generation/\344\275\277\347\224\250\346\250\241\346\235\277\347\225\214\351\235\242.png" similarity index 100% rename from "v2/img/dashboard_generation/\344\275\277\347\224\250\346\250\241\346\235\277\347\225\214\351\235\242.png" rename to "docs/img/dashboard_generation/\344\275\277\347\224\250\346\250\241\346\235\277\347\225\214\351\235\242.png" diff --git "a/v2/img/dashboard_generation/\344\277\256\346\224\271\345\257\206\347\240\201.png" "b/docs/img/dashboard_generation/\344\277\256\346\224\271\345\257\206\347\240\201.png" similarity index 100% rename from "v2/img/dashboard_generation/\344\277\256\346\224\271\345\257\206\347\240\201.png" rename to "docs/img/dashboard_generation/\344\277\256\346\224\271\345\257\206\347\240\201.png" diff --git "a/v1/img/dashboard_generation/\345\205\203\347\264\240\344\270\272\347\237\251\351\230\265\346\210\226\346\202\254\346\265\256-\345\215\225\347\213\254\344\277\256\346\224\271\345\205\203\347\264\240.png" "b/docs/img/dashboard_generation/\345\205\203\347\264\240\344\270\272\347\237\251\351\230\265\346\210\226\346\202\254\346\265\256-\345\215\225\347\213\254\344\277\256\346\224\271\345\205\203\347\264\240.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\205\203\347\264\240\344\270\272\347\237\251\351\230\265\346\210\226\346\202\254\346\265\256-\345\215\225\347\213\254\344\277\256\346\224\271\345\205\203\347\264\240.png" rename to "docs/img/dashboard_generation/\345\205\203\347\264\240\344\270\272\347\237\251\351\230\265\346\210\226\346\202\254\346\265\256-\345\215\225\347\213\254\344\277\256\346\224\271\345\205\203\347\264\240.png" diff --git "a/v1/img/dashboard_generation/\345\210\207\346\215\242\347\273\204\344\273\266\345\210\206\345\270\203\346\226\271\345\274\217_\345\237\272\347\241\200\345\212\237\350\203\275.png" "b/docs/img/dashboard_generation/\345\210\207\346\215\242\347\273\204\344\273\266\345\210\206\345\270\203\346\226\271\345\274\217_\345\237\272\347\241\200\345\212\237\350\203\275.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\210\207\346\215\242\347\273\204\344\273\266\345\210\206\345\270\203\346\226\271\345\274\217_\345\237\272\347\241\200\345\212\237\350\203\275.png" rename to "docs/img/dashboard_generation/\345\210\207\346\215\242\347\273\204\344\273\266\345\210\206\345\270\203\346\226\271\345\274\217_\345\237\272\347\241\200\345\212\237\350\203\275.png" diff --git "a/v2/img/dashboard_generation/\345\210\233\345\273\272\344\273\252\350\241\250\346\235\277.png" "b/docs/img/dashboard_generation/\345\210\233\345\273\272\344\273\252\350\241\250\346\235\277.png" similarity index 100% rename from "v2/img/dashboard_generation/\345\210\233\345\273\272\344\273\252\350\241\250\346\235\277.png" rename to "docs/img/dashboard_generation/\345\210\233\345\273\272\344\273\252\350\241\250\346\235\277.png" diff --git "a/v2/img/dashboard_generation/\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245.png" "b/docs/img/dashboard_generation/\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245.png" similarity index 100% rename from "v2/img/dashboard_generation/\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245.png" rename to "docs/img/dashboard_generation/\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245.png" diff --git "a/v1/img/dashboard_generation/\345\233\276\347\211\207.png" "b/docs/img/dashboard_generation/\345\233\276\347\211\207.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\233\276\347\211\207.png" rename to "docs/img/dashboard_generation/\345\233\276\347\211\207.png" diff --git "a/v1/img/dashboard_generation/\345\233\276\347\211\207_\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\345\233\276\347\211\207_\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\233\276\347\211\207_\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\345\233\276\347\211\207_\345\205\245\345\217\243.png" diff --git "a/v2/img/dashboard_generation/\345\244\226\351\203\250\344\274\240\345\217\202\347\244\272\344\276\213.png" "b/docs/img/dashboard_generation/\345\244\226\351\203\250\344\274\240\345\217\202\347\244\272\344\276\213.png" similarity index 100% rename from "v2/img/dashboard_generation/\345\244\226\351\203\250\344\274\240\345\217\202\347\244\272\344\276\213.png" rename to "docs/img/dashboard_generation/\345\244\226\351\203\250\344\274\240\345\217\202\347\244\272\344\276\213.png" diff --git "a/v1/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256.png" diff --git "a/v2/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256.\344\273\252\350\241\250\346\235\277png.png" "b/docs/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256.\344\273\252\350\241\250\346\235\277png.png" similarity index 100% rename from "v2/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256.\344\273\252\350\241\250\346\235\277png.png" rename to "docs/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256.\344\273\252\350\241\250\346\235\277png.png" diff --git "a/v1/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256_\345\244\232\345\217\202.png" "b/docs/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256_\345\244\232\345\217\202.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256_\345\244\232\345\217\202.png" rename to "docs/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256_\345\244\232\345\217\202.png" diff --git "a/v1/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256_\345\244\232\345\217\2021.png" "b/docs/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256_\345\244\232\345\217\2021.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256_\345\244\232\345\217\2021.png" rename to "docs/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256_\345\244\232\345\217\2021.png" diff --git "a/v1/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256_\345\244\232\345\217\2022.png" "b/docs/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256_\345\244\232\345\217\2022.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256_\345\244\232\345\217\2022.png" rename to "docs/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256_\345\244\232\345\217\2022.png" diff --git "a/v1/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256_\346\225\210\346\236\234\351\242\204\350\247\210.png" "b/docs/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256_\346\225\210\346\236\234\351\242\204\350\247\210.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256_\346\225\210\346\236\234\351\242\204\350\247\210.png" rename to "docs/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256_\346\225\210\346\236\234\351\242\204\350\247\210.png" diff --git "a/v1/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256_\346\225\260\347\273\204.png" "b/docs/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256_\346\225\260\347\273\204.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256_\346\225\260\347\273\204.png" rename to "docs/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256_\346\225\260\347\273\204.png" diff --git "a/v1/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256\345\205\245\345\217\243.png" diff --git "a/v2/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256\351\241\265\351\235\242.png" "b/docs/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256\351\241\265\351\235\242.png" similarity index 100% rename from "v2/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256\351\241\265\351\235\242.png" rename to "docs/img/dashboard_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256\351\241\265\351\235\242.png" diff --git "a/v1/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\345\212\237\350\203\275.png" "b/docs/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\345\212\237\350\203\275.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\345\212\237\350\203\275.png" rename to "docs/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\345\212\237\350\203\275.png" diff --git "a/v1/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\345\233\276\347\211\207.png" "b/docs/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\345\233\276\347\211\207.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\345\233\276\347\211\207.png" rename to "docs/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\345\233\276\347\211\207.png" diff --git "a/v1/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\345\252\222\344\275\223.png" "b/docs/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\345\252\222\344\275\223.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\345\252\222\344\275\223.png" rename to "docs/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\345\252\222\344\275\223.png" diff --git "a/v1/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\350\241\250\346\240\274.png" "b/docs/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\350\241\250\346\240\274.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\350\241\250\346\240\274.png" rename to "docs/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\350\241\250\346\240\274.png" diff --git "a/v1/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\350\260\203\346\225\264\346\240\267\345\274\217.png" "b/docs/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\350\260\203\346\225\264\346\240\267\345\274\217.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\350\260\203\346\225\264\346\240\267\345\274\217.png" rename to "docs/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\350\260\203\346\225\264\346\240\267\345\274\217.png" diff --git "a/v1/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\350\266\205\351\223\276\346\216\245.png" "b/docs/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\350\266\205\351\223\276\346\216\245.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\350\266\205\351\223\276\346\216\245.png" rename to "docs/img/dashboard_generation/\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266_\350\266\205\351\223\276\346\216\245.png" diff --git "a/v1/img/dashboard_generation/\345\257\274\345\207\272\345\233\276\347\211\207.png" "b/docs/img/dashboard_generation/\345\257\274\345\207\272\345\233\276\347\211\207.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\257\274\345\207\272\345\233\276\347\211\207.png" rename to "docs/img/dashboard_generation/\345\257\274\345\207\272\345\233\276\347\211\207.png" diff --git "a/v1/img/dashboard_generation/\345\271\264\344\273\275\347\273\204\344\273\266-\345\212\250\346\200\201\345\271\264\344\273\275\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/\345\271\264\344\273\275\347\273\204\344\273\266-\345\212\250\346\200\201\345\271\264\344\273\275\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\271\264\344\273\275\347\273\204\344\273\266-\345\212\250\346\200\201\345\271\264\344\273\275\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/\345\271\264\344\273\275\347\273\204\344\273\266-\345\212\250\346\200\201\345\271\264\344\273\275\350\256\276\347\275\256.png" diff --git "a/v1/img/dashboard_generation/\345\271\264\344\273\275\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\345\271\264\344\273\275\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\271\264\344\273\275\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\345\271\264\344\273\275\347\273\204\344\273\266.png" diff --git "a/v1/img/dashboard_generation/\345\271\264\344\273\275\347\273\204\344\273\266\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\345\271\264\344\273\275\347\273\204\344\273\266\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\271\264\344\273\275\347\273\204\344\273\266\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\345\271\264\344\273\275\347\273\204\344\273\266\345\205\245\345\217\243.png" diff --git "a/v1/img/dashboard_generation/\345\271\264\344\273\275\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" "b/docs/img/dashboard_generation/\345\271\264\344\273\275\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\271\264\344\273\275\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" rename to "docs/img/dashboard_generation/\345\271\264\344\273\275\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" diff --git "a/v1/img/dashboard_generation/\345\271\264\346\234\210\347\273\204\344\273\266-\345\212\250\346\200\201\345\271\264\346\234\210\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/\345\271\264\346\234\210\347\273\204\344\273\266-\345\212\250\346\200\201\345\271\264\346\234\210\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\271\264\346\234\210\347\273\204\344\273\266-\345\212\250\346\200\201\345\271\264\346\234\210\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/\345\271\264\346\234\210\347\273\204\344\273\266-\345\212\250\346\200\201\345\271\264\346\234\210\350\256\276\347\275\256.png" diff --git "a/v1/img/dashboard_generation/\345\271\264\346\234\210\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\345\271\264\346\234\210\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\271\264\346\234\210\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\345\271\264\346\234\210\347\273\204\344\273\266.png" diff --git "a/v1/img/dashboard_generation/\345\271\264\346\234\210\347\273\204\344\273\266\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\345\271\264\346\234\210\347\273\204\344\273\266\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\271\264\346\234\210\347\273\204\344\273\266\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\345\271\264\346\234\210\347\273\204\344\273\266\345\205\245\345\217\243.png" diff --git "a/v1/img/dashboard_generation/\345\271\264\346\234\210\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" "b/docs/img/dashboard_generation/\345\271\264\346\234\210\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\271\264\346\234\210\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" rename to "docs/img/dashboard_generation/\345\271\264\346\234\210\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" diff --git "a/v1/img/dashboard_generation/\345\274\200\345\220\257\350\275\256\346\222\255.png" "b/docs/img/dashboard_generation/\345\274\200\345\220\257\350\275\256\346\222\255.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\274\200\345\220\257\350\275\256\346\222\255.png" rename to "docs/img/dashboard_generation/\345\274\200\345\220\257\350\275\256\346\222\255.png" diff --git "a/v1/img/dashboard_generation/\345\275\223\345\211\215\345\205\203\347\264\240\347\247\273\345\205\245\345\210\206\345\270\203\346\226\271\345\274\217.png" "b/docs/img/dashboard_generation/\345\275\223\345\211\215\345\205\203\347\264\240\347\247\273\345\205\245\345\210\206\345\270\203\346\226\271\345\274\217.png" similarity index 100% rename from "v1/img/dashboard_generation/\345\275\223\345\211\215\345\205\203\347\264\240\347\247\273\345\205\245\345\210\206\345\270\203\346\226\271\345\274\217.png" rename to "docs/img/dashboard_generation/\345\275\223\345\211\215\345\205\203\347\264\240\347\247\273\345\205\245\345\210\206\345\270\203\346\226\271\345\274\217.png" diff --git "a/v2/img/dashboard_generation/\345\277\205\351\200\211\351\241\271\345\222\214\351\273\230\350\256\244\345\200\274.png" "b/docs/img/dashboard_generation/\345\277\205\351\200\211\351\241\271\345\222\214\351\273\230\350\256\244\345\200\274.png" similarity index 100% rename from "v2/img/dashboard_generation/\345\277\205\351\200\211\351\241\271\345\222\214\351\273\230\350\256\244\345\200\274.png" rename to "docs/img/dashboard_generation/\345\277\205\351\200\211\351\241\271\345\222\214\351\273\230\350\256\244\345\200\274.png" diff --git "a/v1/img/dashboard_generation/\346\222\244\351\224\200.png" "b/docs/img/dashboard_generation/\346\222\244\351\224\200.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\222\244\351\224\200.png" rename to "docs/img/dashboard_generation/\346\222\244\351\224\200.png" diff --git "a/v2/img/dashboard_generation/\346\224\276\345\244\247\345\257\274\345\207\272\345\233\276\347\211\207.png" "b/docs/img/dashboard_generation/\346\224\276\345\244\247\345\257\274\345\207\272\345\233\276\347\211\207.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\224\276\345\244\247\345\257\274\345\207\272\345\233\276\347\211\207.png" rename to "docs/img/dashboard_generation/\346\224\276\345\244\247\345\257\274\345\207\272\345\233\276\347\211\207.png" diff --git "a/v1/img/dashboard_generation/\346\225\260\345\200\274\345\214\272\351\227\264\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\346\225\260\345\200\274\345\214\272\351\227\264\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\225\260\345\200\274\345\214\272\351\227\264\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\346\225\260\345\200\274\345\214\272\351\227\264\347\273\204\344\273\266.png" diff --git "a/v1/img/dashboard_generation/\346\225\260\345\200\274\345\214\272\351\227\264\347\273\204\344\273\266\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\346\225\260\345\200\274\345\214\272\351\227\264\347\273\204\344\273\266\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\225\260\345\200\274\345\214\272\351\227\264\347\273\204\344\273\266\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\346\225\260\345\200\274\345\214\272\351\227\264\347\273\204\344\273\266\345\205\245\345\217\243.png" diff --git "a/v1/img/dashboard_generation/\346\225\260\345\200\274\345\214\272\351\227\264\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" "b/docs/img/dashboard_generation/\346\225\260\345\200\274\345\214\272\351\227\264\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\225\260\345\200\274\345\214\272\351\227\264\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" rename to "docs/img/dashboard_generation/\346\225\260\345\200\274\345\214\272\351\227\264\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" diff --git "a/v1/img/dashboard_generation/\346\225\260\345\255\227\344\270\213\346\213\211\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\346\225\260\345\255\227\344\270\213\346\213\211\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\225\260\345\255\227\344\270\213\346\213\211\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\346\225\260\345\255\227\344\270\213\346\213\211\347\273\204\344\273\266.png" diff --git "a/v1/img/dashboard_generation/\346\225\260\345\255\227\344\270\213\346\213\211\347\273\204\344\273\266_\346\250\241\347\263\212\345\214\271\351\205\215.png" "b/docs/img/dashboard_generation/\346\225\260\345\255\227\344\270\213\346\213\211\347\273\204\344\273\266_\346\250\241\347\263\212\345\214\271\351\205\215.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\225\260\345\255\227\344\270\213\346\213\211\347\273\204\344\273\266_\346\250\241\347\263\212\345\214\271\351\205\215.png" rename to "docs/img/dashboard_generation/\346\225\260\345\255\227\344\270\213\346\213\211\347\273\204\344\273\266_\346\250\241\347\263\212\345\214\271\351\205\215.png" diff --git "a/v1/img/dashboard_generation/\346\225\260\345\255\227\344\270\213\346\213\211\347\273\204\344\273\266\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\346\225\260\345\255\227\344\270\213\346\213\211\347\273\204\344\273\266\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\225\260\345\255\227\344\270\213\346\213\211\347\273\204\344\273\266\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\346\225\260\345\255\227\344\270\213\346\213\211\347\273\204\344\273\266\345\205\245\345\217\243.png" diff --git "a/v1/img/dashboard_generation/\346\225\260\345\255\227\344\270\213\346\213\211\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" "b/docs/img/dashboard_generation/\346\225\260\345\255\227\344\270\213\346\213\211\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\225\260\345\255\227\344\270\213\346\213\211\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" rename to "docs/img/dashboard_generation/\346\225\260\345\255\227\344\270\213\346\213\211\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" diff --git "a/v1/img/dashboard_generation/\346\225\260\345\255\227\345\210\227\350\241\250\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\346\225\260\345\255\227\345\210\227\350\241\250\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\225\260\345\255\227\345\210\227\350\241\250\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\346\225\260\345\255\227\345\210\227\350\241\250\347\273\204\344\273\266.png" diff --git "a/v1/img/dashboard_generation/\346\225\260\345\255\227\345\210\227\350\241\250\347\273\204\344\273\266\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\346\225\260\345\255\227\345\210\227\350\241\250\347\273\204\344\273\266\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\225\260\345\255\227\345\210\227\350\241\250\347\273\204\344\273\266\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\346\225\260\345\255\227\345\210\227\350\241\250\347\273\204\344\273\266\345\205\245\345\217\243.png" diff --git "a/v1/img/dashboard_generation/\346\225\260\345\255\227\345\210\227\350\241\250\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" "b/docs/img/dashboard_generation/\346\225\260\345\255\227\345\210\227\350\241\250\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\225\260\345\255\227\345\210\227\350\241\250\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" rename to "docs/img/dashboard_generation/\346\225\260\345\255\227\345\210\227\350\241\250\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\205\250\345\261\217.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\205\250\345\261\217.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\205\250\345\261\217.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\205\250\345\261\217.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\210\267\346\226\260.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\210\267\346\226\260.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\210\267\346\226\260.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\210\267\346\226\260.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\210\267\346\226\260\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\210\267\346\226\260\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\210\267\346\226\260\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\210\267\346\226\260\350\256\276\347\275\256.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\210\267\346\226\260\351\242\221\347\216\207.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\210\267\346\226\260\351\242\221\347\216\207.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\210\267\346\226\260\351\242\221\347\216\207.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\210\267\346\226\260\351\242\221\347\216\207.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\244\226\351\203\250\344\274\240\345\217\202.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\244\226\351\203\250\344\274\240\345\217\202.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\244\226\351\203\250\344\274\240\345\217\202.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\244\226\351\203\250\344\274\240\345\217\202.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\257\214\346\226\207\346\234\254\347\273\204\344\273\266.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\257\274\345\207\272.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\257\274\345\207\272.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\257\274\345\207\272.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\257\274\345\207\272.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\271\264\346\234\210\346\227\245\347\255\233\351\200\211.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\271\264\346\234\210\346\227\245\347\255\233\351\200\211.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\271\264\346\234\210\346\227\245\347\255\233\351\200\211.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\271\264\346\234\210\346\227\245\347\255\233\351\200\211.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\225\260\345\255\227\344\270\213\346\213\211.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\225\260\345\255\227\344\270\213\346\213\211.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\225\260\345\255\227\344\270\213\346\213\211.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\225\260\345\255\227\344\270\213\346\213\211.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\225\260\345\255\227\347\255\233\351\200\211.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\225\260\345\255\227\347\255\233\351\200\211.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\225\260\345\255\227\347\255\233\351\200\211.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\225\260\345\255\227\347\255\233\351\200\211.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\344\270\213\346\213\211.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\344\270\213\346\213\211.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\344\270\213\346\213\211.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\344\270\213\346\213\211.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\346\220\234\347\264\242.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\346\220\234\347\264\242.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\346\220\234\347\264\242.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\346\220\234\347\264\242.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\346\220\234\347\264\242\345\214\271\351\205\215\346\250\241\345\274\217.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\346\220\234\347\264\242\345\214\271\351\205\215\346\250\241\345\274\217.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\346\220\234\347\264\242\345\214\271\351\205\215\346\250\241\345\274\217.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\346\220\234\347\264\242\345\214\271\351\205\215\346\250\241\345\274\217.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\346\250\241\347\263\212\346\220\234\347\264\242.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\346\250\241\347\263\212\346\220\234\347\264\242.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\346\250\241\347\263\212\346\220\234\347\264\242.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\346\250\241\347\263\212\346\220\234\347\264\242.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\350\277\207\346\273\244.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\350\277\207\346\273\244.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\350\277\207\346\273\244.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\350\277\207\346\273\244.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\227\266\351\227\264\350\214\203\345\233\264\345\214\272\351\227\264\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\227\266\351\227\264\350\214\203\345\233\264\345\214\272\351\227\264\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\227\266\351\227\264\350\214\203\345\233\264\345\214\272\351\227\264\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\227\266\351\227\264\350\214\203\345\233\264\345\214\272\351\227\264\350\256\276\347\275\256.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\227\266\351\227\264\350\214\203\345\233\264\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\227\266\351\227\264\350\214\203\345\233\264\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\227\266\351\227\264\350\214\203\345\233\264\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\227\266\351\227\264\350\214\203\345\233\264\347\273\204\344\273\266.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\227\266\351\227\264\350\214\203\345\233\264\347\273\204\344\273\266\346\225\210\346\236\234.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\227\266\351\227\264\350\214\203\345\233\264\347\273\204\344\273\266\346\225\210\346\236\234.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\227\266\351\227\264\350\214\203\345\233\264\347\273\204\344\273\266\346\225\210\346\236\234.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\227\266\351\227\264\350\214\203\345\233\264\347\273\204\344\273\266\346\225\210\346\236\234.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\237\245\350\257\242\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\237\245\350\257\242\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\237\245\350\257\242\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\237\245\350\257\242\347\273\204\344\273\266.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\345\205\254\345\205\261\351\223\276\346\216\245.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\345\205\254\345\205\261\351\223\276\346\216\245.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\345\205\254\345\205\261\351\223\276\346\216\245.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\345\205\254\345\205\261\351\223\276\346\216\245.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\267\221\351\251\254\347\201\257\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\267\221\351\251\254\347\201\257\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\267\221\351\251\254\347\201\257\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\267\221\351\251\254\347\201\257\347\273\204\344\273\266.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\346\237\245\350\257\242.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\346\237\245\350\257\242.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\346\237\245\350\257\242.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\346\237\245\350\257\242.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\345\213\276\351\200\211\345\200\274.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\345\213\276\351\200\211\345\200\274.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\345\213\276\351\200\211\345\200\274.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\345\213\276\351\200\211\345\200\274.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\345\271\264.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\345\271\264.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\345\271\264.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\345\271\264.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\345\271\264\346\234\210.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\345\271\264\346\234\210.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\345\271\264\346\234\210.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\345\271\264\346\234\210.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\345\271\264\346\234\210\346\227\245.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\345\271\264\346\234\210\346\227\245.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\345\271\264\346\234\210\346\227\245.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\345\271\264\346\234\210\346\227\245.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\346\240\267\345\274\217.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\346\240\267\345\274\217.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\346\240\267\345\274\217.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\346\240\267\345\274\217.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\347\255\233\351\200\211\345\271\264.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\347\255\233\351\200\211\345\271\264.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\347\255\233\351\200\211\345\271\264.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\347\255\233\351\200\211\345\271\264.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\347\255\233\351\200\211\345\271\264\346\234\210.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\347\255\233\351\200\211\345\271\264\346\234\210.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\347\255\233\351\200\211\345\271\264\346\234\210.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\347\273\204\344\273\266\347\255\233\351\200\211\345\271\264\346\234\210.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\350\256\276\347\275\256\346\227\266\345\210\206\347\247\222.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\350\256\276\347\275\256\346\227\266\345\210\206\347\247\222.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\350\256\276\347\275\256\346\227\266\345\210\206\347\247\222.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\350\256\276\347\275\256\346\227\266\345\210\206\347\247\222.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\233\350\241\214\345\210\206\344\272\253.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\233\350\241\214\345\210\206\344\272\253.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\233\350\241\214\345\210\206\344\272\253.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\233\350\241\214\345\210\206\344\272\253.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\233\350\241\214\345\210\206\344\272\2532.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\233\350\241\214\345\210\206\344\272\2532.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\233\350\241\214\345\210\206\344\272\2532.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\233\350\241\214\345\210\206\344\272\2532.png" diff --git "a/v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\351\242\204\350\247\210.png" "b/docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\351\242\204\350\247\210.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\351\242\204\350\247\210.png" rename to "docs/img/dashboard_generation/\346\225\260\346\215\256\345\244\247\345\261\217\351\242\204\350\247\210.png" diff --git "a/v1/img/dashboard_generation/\346\226\207\345\255\227\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\346\226\207\345\255\227\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\207\345\255\227\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\346\226\207\345\255\227\347\273\204\344\273\266.png" diff --git "a/v1/img/dashboard_generation/\346\226\207\345\255\227\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" "b/docs/img/dashboard_generation/\346\226\207\345\255\227\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\207\345\255\227\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" rename to "docs/img/dashboard_generation/\346\226\207\345\255\227\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" diff --git "a/v1/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266.jpeg" "b/docs/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266.jpeg" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266.jpeg" rename to "docs/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266.jpeg" diff --git "a/v1/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266.png" diff --git "a/v1/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266_\346\250\241\347\263\212\345\214\271\351\205\215.png" "b/docs/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266_\346\250\241\347\263\212\345\214\271\351\205\215.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266_\346\250\241\347\263\212\345\214\271\351\205\215.png" rename to "docs/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266_\346\250\241\347\263\212\345\214\271\351\205\215.png" diff --git "a/v1/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266\345\205\245\345\217\243.png" diff --git "a/v1/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266\346\216\222\345\272\217.png" "b/docs/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266\346\216\222\345\272\217.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266\346\216\222\345\272\217.png" rename to "docs/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266\346\216\222\345\272\217.png" diff --git "a/v1/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" "b/docs/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" rename to "docs/img/dashboard_generation/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" diff --git "a/v1/img/dashboard_generation/\346\226\207\346\234\254\345\210\227\350\241\250\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\346\226\207\346\234\254\345\210\227\350\241\250\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\207\346\234\254\345\210\227\350\241\250\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\346\226\207\346\234\254\345\210\227\350\241\250\347\273\204\344\273\266.png" diff --git "a/v1/img/dashboard_generation/\346\226\207\346\234\254\345\210\227\350\241\250\347\273\204\344\273\266\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\346\226\207\346\234\254\345\210\227\350\241\250\347\273\204\344\273\266\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\207\346\234\254\345\210\227\350\241\250\347\273\204\344\273\266\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\346\226\207\346\234\254\345\210\227\350\241\250\347\273\204\344\273\266\345\205\245\345\217\243.png" diff --git "a/v1/img/dashboard_generation/\346\226\207\346\234\254\345\210\227\350\241\250\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" "b/docs/img/dashboard_generation/\346\226\207\346\234\254\345\210\227\350\241\250\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\207\346\234\254\345\210\227\350\241\250\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" rename to "docs/img/dashboard_generation/\346\226\207\346\234\254\345\210\227\350\241\250\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" diff --git "a/v1/img/dashboard_generation/\346\226\207\346\234\254\346\220\234\347\264\242\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\346\226\207\346\234\254\346\220\234\347\264\242\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\207\346\234\254\346\220\234\347\264\242\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\346\226\207\346\234\254\346\220\234\347\264\242\347\273\204\344\273\266.png" diff --git "a/v1/img/dashboard_generation/\346\226\207\346\234\254\346\220\234\347\264\242\347\273\204\344\273\266\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\346\226\207\346\234\254\346\220\234\347\264\242\347\273\204\344\273\266\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\207\346\234\254\346\220\234\347\264\242\347\273\204\344\273\266\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\346\226\207\346\234\254\346\220\234\347\264\242\347\273\204\344\273\266\345\205\245\345\217\243.png" diff --git "a/v1/img/dashboard_generation/\346\226\207\346\234\254\346\220\234\347\264\242\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234..png" "b/docs/img/dashboard_generation/\346\226\207\346\234\254\346\220\234\347\264\242\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234..png" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\207\346\234\254\346\220\234\347\264\242\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234..png" rename to "docs/img/dashboard_generation/\346\226\207\346\234\254\346\220\234\347\264\242\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234..png" diff --git "a/v1/img/dashboard_generation/\346\226\207\346\234\254\346\220\234\347\264\242\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" "b/docs/img/dashboard_generation/\346\226\207\346\234\254\346\220\234\347\264\242\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\207\346\234\254\346\220\234\347\264\242\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" rename to "docs/img/dashboard_generation/\346\226\207\346\234\254\346\220\234\347\264\242\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" diff --git "a/v1/img/dashboard_generation/\346\226\207\346\234\254\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\346\226\207\346\234\254\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\207\346\234\254\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\346\226\207\346\234\254\347\273\204\344\273\266.png" diff --git "a/v1/img/dashboard_generation/\346\226\260\345\242\236Tab\351\241\265.png" "b/docs/img/dashboard_generation/\346\226\260\345\242\236Tab\351\241\265.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\260\345\242\236Tab\351\241\265.png" rename to "docs/img/dashboard_generation/\346\226\260\345\242\236Tab\351\241\265.png" diff --git "a/v1/img/dashboard_generation/\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277_\345\244\215\347\224\250\346\250\241\347\211\210.png" "b/docs/img/dashboard_generation/\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277_\345\244\215\347\224\250\346\250\241\347\211\210.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277_\345\244\215\347\224\250\346\250\241\347\211\210.png" rename to "docs/img/dashboard_generation/\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277_\345\244\215\347\224\250\346\250\241\347\211\210.png" diff --git "a/v1/img/dashboard_generation/\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277_\345\257\274\345\205\245\346\250\241\347\211\210.png" "b/docs/img/dashboard_generation/\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277_\345\257\274\345\205\245\346\250\241\347\211\210.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277_\345\257\274\345\205\245\346\250\241\347\211\210.png" rename to "docs/img/dashboard_generation/\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277_\345\257\274\345\205\245\346\250\241\347\211\210.png" diff --git "a/v1/img/dashboard_generation/\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277_\350\207\252\345\256\232\344\271\211.png" "b/docs/img/dashboard_generation/\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277_\350\207\252\345\256\232\344\271\211.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277_\350\207\252\345\256\232\344\271\211.png" rename to "docs/img/dashboard_generation/\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277_\350\207\252\345\256\232\344\271\211.png" diff --git "a/v1/img/dashboard_generation/\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277\345\205\245\345\217\243.png" diff --git "a/v1/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266.png" diff --git "a/v1/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266\345\205\245\345\217\243.png" diff --git "a/v1/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234..png" "b/docs/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234..png" similarity index 100% rename from "v1/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234..png" rename to "docs/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234..png" diff --git "a/v1/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" "b/docs/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" rename to "docs/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" diff --git "a/v1/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266\347\232\204\346\227\266\345\210\206\347\247\222.png" "b/docs/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266\347\232\204\346\227\266\345\210\206\347\247\222.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266\347\232\204\346\227\266\345\210\206\347\247\222.png" rename to "docs/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266\347\232\204\346\227\266\345\210\206\347\247\222.png" diff --git "a/v1/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266\347\232\204\346\227\266\345\210\206\347\247\222\346\230\276\347\244\272\346\225\210\346\236\234.png" "b/docs/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266\347\232\204\346\227\266\345\210\206\347\247\222\346\230\276\347\244\272\346\225\210\346\236\234.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266\347\232\204\346\227\266\345\210\206\347\247\222\346\230\276\347\244\272\346\225\210\346\236\234.png" rename to "docs/img/dashboard_generation/\346\227\245\346\234\237\347\273\204\344\273\266\347\232\204\346\227\266\345\210\206\347\247\222\346\230\276\347\244\272\346\225\210\346\236\234.png" diff --git "a/v1/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266.png" diff --git "a/v1/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\205\245\345\217\243.png" diff --git "a/v1/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\212\250\346\200\201\345\217\202\346\225\260.png" "b/docs/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\212\250\346\200\201\345\217\202\346\225\260.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\212\250\346\200\201\345\217\202\346\225\260.png" rename to "docs/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\212\250\346\200\201\345\217\202\346\225\260.png" diff --git "a/v1/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\212\250\346\200\201\345\217\202\346\225\2601.png" "b/docs/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\212\250\346\200\201\345\217\202\346\225\2601.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\212\250\346\200\201\345\217\202\346\225\2601.png" rename to "docs/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\212\250\346\200\201\345\217\202\346\225\2601.png" diff --git "a/v1/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\212\250\346\200\201\345\217\202\346\225\2602.png" "b/docs/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\212\250\346\200\201\345\217\202\346\225\2602.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\212\250\346\200\201\345\217\202\346\225\2602.png" rename to "docs/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\212\250\346\200\201\345\217\202\346\225\2602.png" diff --git "a/v1/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\212\250\346\200\201\345\217\202\346\225\2603.png" "b/docs/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\212\250\346\200\201\345\217\202\346\225\2603.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\212\250\346\200\201\345\217\202\346\225\2603.png" rename to "docs/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\212\250\346\200\201\345\217\202\346\225\2603.png" diff --git "a/v1/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\277\253\346\215\267\346\237\245\350\257\242.png" "b/docs/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\277\253\346\215\267\346\237\245\350\257\242.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\277\253\346\215\267\346\237\245\350\257\242.png" rename to "docs/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\277\253\346\215\267\346\237\245\350\257\242.png" diff --git "a/v1/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\346\227\266\345\210\206\347\247\222.png" "b/docs/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\346\227\266\345\210\206\347\247\222.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\346\227\266\345\210\206\347\247\222.png" rename to "docs/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\346\227\266\345\210\206\347\247\222.png" diff --git "a/v1/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" "b/docs/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" rename to "docs/img/dashboard_generation/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\346\230\276\347\244\272\346\225\210\346\236\234.png" diff --git "a/v1/img/dashboard_generation/\346\227\266\351\227\264.png" "b/docs/img/dashboard_generation/\346\227\266\351\227\264.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\227\266\351\227\264.png" rename to "docs/img/dashboard_generation/\346\227\266\351\227\264.png" diff --git "a/v2/img/dashboard_generation/\346\227\266\351\227\264\347\273\204\344\273\266\350\277\207\346\273\244\350\214\203\345\233\264.png" "b/docs/img/dashboard_generation/\346\227\266\351\227\264\347\273\204\344\273\266\350\277\207\346\273\244\350\214\203\345\233\264.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\227\266\351\227\264\347\273\204\344\273\266\350\277\207\346\273\244\350\214\203\345\233\264.png" rename to "docs/img/dashboard_generation/\346\227\266\351\227\264\347\273\204\344\273\266\350\277\207\346\273\244\350\214\203\345\233\264.png" diff --git "a/v1/img/dashboard_generation/\346\230\216\347\273\206\345\257\274\345\207\272\347\273\223\346\236\234.png" "b/docs/img/dashboard_generation/\346\230\216\347\273\206\345\257\274\345\207\272\347\273\223\346\236\234.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\230\216\347\273\206\345\257\274\345\207\272\347\273\223\346\236\234.png" rename to "docs/img/dashboard_generation/\346\230\216\347\273\206\345\257\274\345\207\272\347\273\223\346\236\234.png" diff --git "a/v2/img/dashboard_generation/\346\234\252\345\221\275\345\220\215.png" "b/docs/img/dashboard_generation/\346\234\252\345\221\275\345\220\215.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\234\252\345\221\275\345\220\215.png" rename to "docs/img/dashboard_generation/\346\234\252\345\221\275\345\220\215.png" diff --git "a/v2/img/dashboard_generation/\346\237\245\347\234\213\346\230\216\347\273\206.png" "b/docs/img/dashboard_generation/\346\237\245\347\234\213\346\230\216\347\273\206.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\237\245\347\234\213\346\230\216\347\273\206.png" rename to "docs/img/dashboard_generation/\346\237\245\347\234\213\346\230\216\347\273\206.png" diff --git "a/v2/img/dashboard_generation/\346\237\245\347\234\213\346\230\216\347\273\206\345\222\214\346\224\276\345\244\247.png" "b/docs/img/dashboard_generation/\346\237\245\347\234\213\346\230\216\347\273\206\345\222\214\346\224\276\345\244\247.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\237\245\347\234\213\346\230\216\347\273\206\345\222\214\346\224\276\345\244\247.png" rename to "docs/img/dashboard_generation/\346\237\245\347\234\213\346\230\216\347\273\206\345\222\214\346\224\276\345\244\247.png" diff --git "a/v2/img/dashboard_generation/\346\237\245\347\234\213\346\230\216\347\273\206\346\225\260\346\215\256.png" "b/docs/img/dashboard_generation/\346\237\245\347\234\213\346\230\216\347\273\206\346\225\260\346\215\256.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\237\245\347\234\213\346\230\216\347\273\206\346\225\260\346\215\256.png" rename to "docs/img/dashboard_generation/\346\237\245\347\234\213\346\230\216\347\273\206\346\225\260\346\215\256.png" diff --git "a/v1/img/dashboard_generation/\346\237\245\350\257\242\346\214\211\351\222\256\347\273\204\344\273\266.png" "b/docs/img/dashboard_generation/\346\237\245\350\257\242\346\214\211\351\222\256\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\237\245\350\257\242\346\214\211\351\222\256\347\273\204\344\273\266.png" rename to "docs/img/dashboard_generation/\346\237\245\350\257\242\346\214\211\351\222\256\347\273\204\344\273\266.png" diff --git "a/v1/img/dashboard_generation/\346\237\245\350\257\242\346\214\211\351\222\256\347\273\204\344\273\266_\345\205\263\350\201\224.png" "b/docs/img/dashboard_generation/\346\237\245\350\257\242\346\214\211\351\222\256\347\273\204\344\273\266_\345\205\263\350\201\224.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\237\245\350\257\242\346\214\211\351\222\256\347\273\204\344\273\266_\345\205\263\350\201\224.png" rename to "docs/img/dashboard_generation/\346\237\245\350\257\242\346\214\211\351\222\256\347\273\204\344\273\266_\345\205\263\350\201\224.png" diff --git "a/v1/img/dashboard_generation/\346\237\245\350\257\242\346\214\211\351\222\256\347\273\204\344\273\266_\346\230\276\347\244\272\346\225\210\346\236\234.png" "b/docs/img/dashboard_generation/\346\237\245\350\257\242\346\214\211\351\222\256\347\273\204\344\273\266_\346\230\276\347\244\272\346\225\210\346\236\234.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\237\245\350\257\242\346\214\211\351\222\256\347\273\204\344\273\266_\346\230\276\347\244\272\346\225\210\346\236\234.png" rename to "docs/img/dashboard_generation/\346\237\245\350\257\242\346\214\211\351\222\256\347\273\204\344\273\266_\346\230\276\347\244\272\346\225\210\346\236\234.png" diff --git "a/v1/img/dashboard_generation/\346\237\245\350\257\242\346\214\211\351\222\256\347\273\204\344\273\266_\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/\346\237\245\350\257\242\346\214\211\351\222\256\347\273\204\344\273\266_\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\237\245\350\257\242\346\214\211\351\222\256\347\273\204\344\273\266_\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/\346\237\245\350\257\242\346\214\211\351\222\256\347\273\204\344\273\266_\350\256\276\347\275\256.png" diff --git "a/v2/img/dashboard_generation/\346\237\245\350\257\242\346\235\241\344\273\266\346\224\257\346\214\201\345\215\225\347\213\254\350\256\276\347\275\256\345\256\275\345\272\246.png" "b/docs/img/dashboard_generation/\346\237\245\350\257\242\346\235\241\344\273\266\346\224\257\346\214\201\345\215\225\347\213\254\350\256\276\347\275\256\345\256\275\345\272\246.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\237\245\350\257\242\346\235\241\344\273\266\346\224\257\346\214\201\345\215\225\347\213\254\350\256\276\347\275\256\345\256\275\345\272\246.png" rename to "docs/img/dashboard_generation/\346\237\245\350\257\242\346\235\241\344\273\266\346\224\257\346\214\201\345\215\225\347\213\254\350\256\276\347\275\256\345\256\275\345\272\246.png" diff --git "a/v2/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\346\227\240\346\237\245\350\257\242\346\214\211\351\222\256\347\233\264\346\216\245\346\237\245\350\257\242.png" "b/docs/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\346\227\240\346\237\245\350\257\242\346\214\211\351\222\256\347\233\264\346\216\245\346\237\245\350\257\242.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\346\227\240\346\237\245\350\257\242\346\214\211\351\222\256\347\233\264\346\216\245\346\237\245\350\257\242.png" rename to "docs/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\346\227\240\346\237\245\350\257\242\346\214\211\351\222\256\347\233\264\346\216\245\346\237\245\350\257\242.png" diff --git "a/v2/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\347\272\247\350\201\224\350\256\276\347\275\2561.png" "b/docs/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\347\272\247\350\201\224\350\256\276\347\275\2561.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\347\272\247\350\201\224\350\256\276\347\275\2561.png" rename to "docs/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\347\272\247\350\201\224\350\256\276\347\275\2561.png" diff --git "a/v2/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\347\272\247\350\201\224\350\256\276\347\275\2562.png" "b/docs/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\347\272\247\350\201\224\350\256\276\347\275\2562.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\347\272\247\350\201\224\350\256\276\347\275\2562.png" rename to "docs/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\347\272\247\350\201\224\350\256\276\347\275\2562.png" diff --git "a/v2/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\350\207\252\345\256\232\344\271\211\346\217\220\347\244\272\350\257\215\345\206\205\345\256\271\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\350\207\252\345\256\232\344\271\211\346\217\220\347\244\272\350\257\215\345\206\205\345\256\271\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\350\207\252\345\256\232\344\271\211\346\217\220\347\244\272\350\257\215\345\206\205\345\256\271\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\350\207\252\345\256\232\344\271\211\346\217\220\347\244\272\350\257\215\345\206\205\345\256\271\350\256\276\347\275\256.png" diff --git "a/v2/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\350\207\252\345\256\232\344\271\211\350\203\214\346\231\257\345\233\276\347\211\207.png" "b/docs/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\350\207\252\345\256\232\344\271\211\350\203\214\346\231\257\345\233\276\347\211\207.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\350\207\252\345\256\232\344\271\211\350\203\214\346\231\257\345\233\276\347\211\207.png" rename to "docs/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\350\207\252\345\256\232\344\271\211\350\203\214\346\231\257\345\233\276\347\211\207.png" diff --git "a/v2/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\351\205\215\347\275\256\346\270\205\347\251\272\345\222\214\351\207\215\347\275\256\346\214\211\351\222\256\347\232\204\351\242\234\350\211\262.png" "b/docs/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\351\205\215\347\275\256\346\270\205\347\251\272\345\222\214\351\207\215\347\275\256\346\214\211\351\222\256\347\232\204\351\242\234\350\211\262.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\351\205\215\347\275\256\346\270\205\347\251\272\345\222\214\351\207\215\347\275\256\346\214\211\351\222\256\347\232\204\351\242\234\350\211\262.png" rename to "docs/img/dashboard_generation/\346\237\245\350\257\242\347\273\204\344\273\266\346\224\257\346\214\201\351\205\215\347\275\256\346\270\205\347\251\272\345\222\214\351\207\215\347\275\256\346\214\211\351\222\256\347\232\204\351\242\234\350\211\262.png" diff --git "a/v1/img/dashboard_generation/\346\240\267\345\274\217.png" "b/docs/img/dashboard_generation/\346\240\267\345\274\217.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\240\267\345\274\217.png" rename to "docs/img/dashboard_generation/\346\240\267\345\274\217.png" diff --git "a/v1/img/dashboard_generation/\346\265\201\345\252\222\344\275\223.png" "b/docs/img/dashboard_generation/\346\265\201\345\252\222\344\275\223.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\265\201\345\252\222\344\275\223.png" rename to "docs/img/dashboard_generation/\346\265\201\345\252\222\344\275\223.png" diff --git "a/v2/img/dashboard_generation/\346\267\273\345\212\240\350\277\207\346\273\244\345\255\227\346\256\265.png" "b/docs/img/dashboard_generation/\346\267\273\345\212\240\350\277\207\346\273\244\345\255\227\346\256\265.png" similarity index 100% rename from "v2/img/dashboard_generation/\346\267\273\345\212\240\350\277\207\346\273\244\345\255\227\346\256\265.png" rename to "docs/img/dashboard_generation/\346\267\273\345\212\240\350\277\207\346\273\244\345\255\227\346\256\265.png" diff --git "a/v1/img/dashboard_generation/\346\270\205\347\251\272\346\214\211\351\222\256\347\273\204\344\273\266_\346\230\276\347\244\272\346\225\210\346\236\234.png" "b/docs/img/dashboard_generation/\346\270\205\347\251\272\346\214\211\351\222\256\347\273\204\344\273\266_\346\230\276\347\244\272\346\225\210\346\236\234.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\270\205\347\251\272\346\214\211\351\222\256\347\273\204\344\273\266_\346\230\276\347\244\272\346\225\210\346\236\234.png" rename to "docs/img/dashboard_generation/\346\270\205\347\251\272\346\214\211\351\222\256\347\273\204\344\273\266_\346\230\276\347\244\272\346\225\210\346\236\234.png" diff --git "a/v1/img/dashboard_generation/\346\270\205\347\251\272\347\224\273\345\270\203.png" "b/docs/img/dashboard_generation/\346\270\205\347\251\272\347\224\273\345\270\203.png" similarity index 100% rename from "v1/img/dashboard_generation/\346\270\205\347\251\272\347\224\273\345\270\203.png" rename to "docs/img/dashboard_generation/\346\270\205\347\251\272\347\224\273\345\270\203.png" diff --git "a/v2/img/dashboard_generation/\347\202\271\345\207\273\345\272\224\347\224\250\346\250\241\346\235\277.png" "b/docs/img/dashboard_generation/\347\202\271\345\207\273\345\272\224\347\224\250\346\250\241\346\235\277.png" similarity index 100% rename from "v2/img/dashboard_generation/\347\202\271\345\207\273\345\272\224\347\224\250\346\250\241\346\235\277.png" rename to "docs/img/dashboard_generation/\347\202\271\345\207\273\345\272\224\347\224\250\346\250\241\346\235\277.png" diff --git "a/v2/img/dashboard_generation/\347\202\271\345\207\273\346\267\273\345\212\240\346\237\245\350\257\242\346\235\241\344\273\266.png" "b/docs/img/dashboard_generation/\347\202\271\345\207\273\346\267\273\345\212\240\346\237\245\350\257\242\346\235\241\344\273\266.png" similarity index 100% rename from "v2/img/dashboard_generation/\347\202\271\345\207\273\346\267\273\345\212\240\346\237\245\350\257\242\346\235\241\344\273\266.png" rename to "docs/img/dashboard_generation/\347\202\271\345\207\273\346\267\273\345\212\240\346\237\245\350\257\242\346\235\241\344\273\266.png" diff --git "a/v1/img/dashboard_generation/\347\225\214\351\235\242\345\212\237\350\203\275\345\214\272.png" "b/docs/img/dashboard_generation/\347\225\214\351\235\242\345\212\237\350\203\275\345\214\272.png" similarity index 100% rename from "v1/img/dashboard_generation/\347\225\214\351\235\242\345\212\237\350\203\275\345\214\272.png" rename to "docs/img/dashboard_generation/\347\225\214\351\235\242\345\212\237\350\203\275\345\214\272.png" diff --git "a/v1/img/dashboard_generation/\347\237\251\345\275\242\346\241\206.png" "b/docs/img/dashboard_generation/\347\237\251\345\275\242\346\241\206.png" similarity index 100% rename from "v1/img/dashboard_generation/\347\237\251\345\275\242\346\241\206.png" rename to "docs/img/dashboard_generation/\347\237\251\345\275\242\346\241\206.png" diff --git "a/v1/img/dashboard_generation/\347\273\204\344\273\266\344\270\212\347\247\273_\345\237\272\347\241\200\345\212\237\350\203\275.png" "b/docs/img/dashboard_generation/\347\273\204\344\273\266\344\270\212\347\247\273_\345\237\272\347\241\200\345\212\237\350\203\275.png" similarity index 100% rename from "v1/img/dashboard_generation/\347\273\204\344\273\266\344\270\212\347\247\273_\345\237\272\347\241\200\345\212\237\350\203\275.png" rename to "docs/img/dashboard_generation/\347\273\204\344\273\266\344\270\212\347\247\273_\345\237\272\347\241\200\345\212\237\350\203\275.png" diff --git "a/v1/img/dashboard_generation/\347\273\204\344\273\266\344\270\213\347\247\273_\345\237\272\347\241\200\345\212\237\350\203\275.png" "b/docs/img/dashboard_generation/\347\273\204\344\273\266\344\270\213\347\247\273_\345\237\272\347\241\200\345\212\237\350\203\275.png" similarity index 100% rename from "v1/img/dashboard_generation/\347\273\204\344\273\266\344\270\213\347\247\273_\345\237\272\347\241\200\345\212\237\350\203\275.png" rename to "docs/img/dashboard_generation/\347\273\204\344\273\266\344\270\213\347\247\273_\345\237\272\347\241\200\345\212\237\350\203\275.png" diff --git "a/v1/img/dashboard_generation/\347\273\204\344\273\266\344\275\215\347\275\256\345\217\212\345\244\247\345\260\217\350\260\203\346\225\264.png" "b/docs/img/dashboard_generation/\347\273\204\344\273\266\344\275\215\347\275\256\345\217\212\345\244\247\345\260\217\350\260\203\346\225\264.png" similarity index 100% rename from "v1/img/dashboard_generation/\347\273\204\344\273\266\344\275\215\347\275\256\345\217\212\345\244\247\345\260\217\350\260\203\346\225\264.png" rename to "docs/img/dashboard_generation/\347\273\204\344\273\266\344\275\215\347\275\256\345\217\212\345\244\247\345\260\217\350\260\203\346\225\264.png" diff --git "a/v1/img/dashboard_generation/\347\273\204\344\273\266\345\210\240\351\231\244_\345\237\272\347\241\200\345\212\237\350\203\275.png" "b/docs/img/dashboard_generation/\347\273\204\344\273\266\345\210\240\351\231\244_\345\237\272\347\241\200\345\212\237\350\203\275.png" similarity index 100% rename from "v1/img/dashboard_generation/\347\273\204\344\273\266\345\210\240\351\231\244_\345\237\272\347\241\200\345\212\237\350\203\275.png" rename to "docs/img/dashboard_generation/\347\273\204\344\273\266\345\210\240\351\231\244_\345\237\272\347\241\200\345\212\237\350\203\275.png" diff --git "a/v1/img/dashboard_generation/\347\273\204\344\273\266\345\244\215\345\210\266_\345\237\272\347\241\200\345\212\237\350\203\275.png" "b/docs/img/dashboard_generation/\347\273\204\344\273\266\345\244\215\345\210\266_\345\237\272\347\241\200\345\212\237\350\203\275.png" similarity index 100% rename from "v1/img/dashboard_generation/\347\273\204\344\273\266\345\244\215\345\210\266_\345\237\272\347\241\200\345\212\237\350\203\275.png" rename to "docs/img/dashboard_generation/\347\273\204\344\273\266\345\244\215\345\210\266_\345\237\272\347\241\200\345\212\237\350\203\275.png" diff --git "a/v1/img/dashboard_generation/\347\273\204\344\273\266\346\240\267\345\274\217.png" "b/docs/img/dashboard_generation/\347\273\204\344\273\266\346\240\267\345\274\217.png" similarity index 100% rename from "v1/img/dashboard_generation/\347\273\204\344\273\266\346\240\267\345\274\217.png" rename to "docs/img/dashboard_generation/\347\273\204\344\273\266\346\240\267\345\274\217.png" diff --git "a/v1/img/dashboard_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\350\276\271\346\241\206\351\242\234\350\211\262.png" "b/docs/img/dashboard_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\350\276\271\346\241\206\351\242\234\350\211\262.png" similarity index 100% rename from "v1/img/dashboard_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\350\276\271\346\241\206\351\242\234\350\211\262.png" rename to "docs/img/dashboard_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\350\276\271\346\241\206\351\242\234\350\211\262.png" diff --git "a/v1/img/dashboard_generation/\347\273\204\344\273\266\346\240\267\345\274\217\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\347\273\204\344\273\266\346\240\267\345\274\217\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\347\273\204\344\273\266\346\240\267\345\274\217\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\347\273\204\344\273\266\346\240\267\345\274\217\345\205\245\345\217\243.png" diff --git "a/v1/img/dashboard_generation/\347\273\204\344\273\266\346\240\267\345\274\217\350\276\271\346\241\206.png" "b/docs/img/dashboard_generation/\347\273\204\344\273\266\346\240\267\345\274\217\350\276\271\346\241\206.png" similarity index 100% rename from "v1/img/dashboard_generation/\347\273\204\344\273\266\346\240\267\345\274\217\350\276\271\346\241\206.png" rename to "docs/img/dashboard_generation/\347\273\204\344\273\266\346\240\267\345\274\217\350\276\271\346\241\206.png" diff --git "a/v1/img/dashboard_generation/\347\273\204\344\273\266\347\274\226\350\276\221_\345\237\272\347\241\200\345\212\237\350\203\275.png" "b/docs/img/dashboard_generation/\347\273\204\344\273\266\347\274\226\350\276\221_\345\237\272\347\241\200\345\212\237\350\203\275.png" similarity index 100% rename from "v1/img/dashboard_generation/\347\273\204\344\273\266\347\274\226\350\276\221_\345\237\272\347\241\200\345\212\237\350\203\275.png" rename to "docs/img/dashboard_generation/\347\273\204\344\273\266\347\274\226\350\276\221_\345\237\272\347\241\200\345\212\237\350\203\275.png" diff --git "a/v1/img/dashboard_generation/\347\273\204\344\273\266\347\275\256\345\272\225_\345\237\272\347\241\200\345\212\237\350\203\275.png" "b/docs/img/dashboard_generation/\347\273\204\344\273\266\347\275\256\345\272\225_\345\237\272\347\241\200\345\212\237\350\203\275.png" similarity index 100% rename from "v1/img/dashboard_generation/\347\273\204\344\273\266\347\275\256\345\272\225_\345\237\272\347\241\200\345\212\237\350\203\275.png" rename to "docs/img/dashboard_generation/\347\273\204\344\273\266\347\275\256\345\272\225_\345\237\272\347\241\200\345\212\237\350\203\275.png" diff --git "a/v1/img/dashboard_generation/\347\273\204\344\273\266\347\275\256\351\241\266_\345\237\272\347\241\200\345\212\237\350\203\275.png" "b/docs/img/dashboard_generation/\347\273\204\344\273\266\347\275\256\351\241\266_\345\237\272\347\241\200\345\212\237\350\203\275.png" similarity index 100% rename from "v1/img/dashboard_generation/\347\273\204\344\273\266\347\275\256\351\241\266_\345\237\272\347\241\200\345\212\237\350\203\275.png" rename to "docs/img/dashboard_generation/\347\273\204\344\273\266\347\275\256\351\241\266_\345\237\272\347\241\200\345\212\237\350\203\275.png" diff --git "a/v1/img/dashboard_generation/\347\273\204\344\273\266\350\203\214\346\231\257\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/\347\273\204\344\273\266\350\203\214\346\231\257\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/dashboard_generation/\347\273\204\344\273\266\350\203\214\346\231\257\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/\347\273\204\344\273\266\350\203\214\346\231\257\350\256\276\347\275\256.png" diff --git "a/v1/img/dashboard_generation/\347\275\221\351\241\265.png" "b/docs/img/dashboard_generation/\347\275\221\351\241\265.png" similarity index 100% rename from "v1/img/dashboard_generation/\347\275\221\351\241\265.png" rename to "docs/img/dashboard_generation/\347\275\221\351\241\265.png" diff --git "a/v1/img/dashboard_generation/\347\275\221\351\241\265_\346\223\215\344\275\234.png" "b/docs/img/dashboard_generation/\347\275\221\351\241\265_\346\223\215\344\275\234.png" similarity index 100% rename from "v1/img/dashboard_generation/\347\275\221\351\241\265_\346\223\215\344\275\234.png" rename to "docs/img/dashboard_generation/\347\275\221\351\241\265_\346\223\215\344\275\234.png" diff --git "a/v1/img/dashboard_generation/\350\201\224\345\212\250\346\270\205\351\231\244.png" "b/docs/img/dashboard_generation/\350\201\224\345\212\250\346\270\205\351\231\244.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\201\224\345\212\250\346\270\205\351\231\244.png" rename to "docs/img/dashboard_generation/\350\201\224\345\212\250\346\270\205\351\231\244.png" diff --git "a/v1/img/dashboard_generation/\350\201\224\345\212\250\347\273\223\346\236\234.png" "b/docs/img/dashboard_generation/\350\201\224\345\212\250\347\273\223\346\236\234.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\201\224\345\212\250\347\273\223\346\236\234.png" rename to "docs/img/dashboard_generation/\350\201\224\345\212\250\347\273\223\346\236\234.png" diff --git "a/v1/img/dashboard_generation/\350\201\224\345\212\250\350\256\276\347\275\256_\345\255\227\346\256\265\345\205\263\350\201\224.png" "b/docs/img/dashboard_generation/\350\201\224\345\212\250\350\256\276\347\275\256_\345\255\227\346\256\265\345\205\263\350\201\224.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\201\224\345\212\250\350\256\276\347\275\256_\345\255\227\346\256\265\345\205\263\350\201\224.png" rename to "docs/img/dashboard_generation/\350\201\224\345\212\250\350\256\276\347\275\256_\345\255\227\346\256\265\345\205\263\350\201\224.png" diff --git "a/v1/img/dashboard_generation/\350\201\224\345\212\250\350\256\276\347\275\256\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\350\201\224\345\212\250\350\256\276\347\275\256\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\201\224\345\212\250\350\256\276\347\275\256\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\350\201\224\345\212\250\350\256\276\347\275\256\345\205\245\345\217\243.png" diff --git "a/v1/img/dashboard_generation/\350\201\224\345\212\250\351\200\211\346\213\251.png" "b/docs/img/dashboard_generation/\350\201\224\345\212\250\351\200\211\346\213\251.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\201\224\345\212\250\351\200\211\346\213\251.png" rename to "docs/img/dashboard_generation/\350\201\224\345\212\250\351\200\211\346\213\251.png" diff --git "a/v2/img/dashboard_generation/\350\247\206\345\233\276\345\257\274\345\207\272.png" "b/docs/img/dashboard_generation/\350\247\206\345\233\276\345\257\274\345\207\272.png" similarity index 100% rename from "v2/img/dashboard_generation/\350\247\206\345\233\276\345\257\274\345\207\272.png" rename to "docs/img/dashboard_generation/\350\247\206\345\233\276\345\257\274\345\207\272.png" diff --git "a/v1/img/dashboard_generation/\350\247\206\351\242\221.png" "b/docs/img/dashboard_generation/\350\247\206\351\242\221.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\247\206\351\242\221.png" rename to "docs/img/dashboard_generation/\350\247\206\351\242\221.png" diff --git "a/v2/img/dashboard_generation/\350\256\276\347\275\256\345\205\254\345\205\261\351\223\276\346\216\245.png" "b/docs/img/dashboard_generation/\350\256\276\347\275\256\345\205\254\345\205\261\351\223\276\346\216\245.png" similarity index 100% rename from "v2/img/dashboard_generation/\350\256\276\347\275\256\345\205\254\345\205\261\351\223\276\346\216\245.png" rename to "docs/img/dashboard_generation/\350\256\276\347\275\256\345\205\254\345\205\261\351\223\276\346\216\245.png" diff --git "a/v2/img/dashboard_generation/\350\256\276\347\275\256\345\257\206\347\240\201\344\277\235\346\212\244.png" "b/docs/img/dashboard_generation/\350\256\276\347\275\256\345\257\206\347\240\201\344\277\235\346\212\244.png" similarity index 100% rename from "v2/img/dashboard_generation/\350\256\276\347\275\256\345\257\206\347\240\201\344\277\235\346\212\244.png" rename to "docs/img/dashboard_generation/\350\256\276\347\275\256\345\257\206\347\240\201\344\277\235\346\212\244.png" diff --git "a/v1/img/dashboard_generation/\350\267\263\350\275\254\347\273\223\346\236\234_\344\273\252\350\241\250\346\235\277\351\227\264.png" "b/docs/img/dashboard_generation/\350\267\263\350\275\254\347\273\223\346\236\234_\344\273\252\350\241\250\346\235\277\351\227\264.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\267\263\350\275\254\347\273\223\346\236\234_\344\273\252\350\241\250\346\235\277\351\227\264.png" rename to "docs/img/dashboard_generation/\350\267\263\350\275\254\347\273\223\346\236\234_\344\273\252\350\241\250\346\235\277\351\227\264.png" diff --git "a/v1/img/dashboard_generation/\350\267\263\350\275\254\347\273\223\346\236\234_\345\244\226\351\203\250\351\223\276\346\216\245.png" "b/docs/img/dashboard_generation/\350\267\263\350\275\254\347\273\223\346\236\234_\345\244\226\351\203\250\351\223\276\346\216\245.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\267\263\350\275\254\347\273\223\346\236\234_\345\244\226\351\203\250\351\223\276\346\216\245.png" rename to "docs/img/dashboard_generation/\350\267\263\350\275\254\347\273\223\346\236\234_\345\244\226\351\203\250\351\223\276\346\216\245.png" diff --git "a/v1/img/dashboard_generation/\350\267\263\350\275\254\347\273\223\346\236\234\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\350\267\263\350\275\254\347\273\223\346\236\234\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\267\263\350\275\254\347\273\223\346\236\234\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\350\267\263\350\275\254\347\273\223\346\236\234\345\205\245\345\217\243.png" diff --git "a/v1/img/dashboard_generation/\350\267\263\350\275\254\350\256\276\347\275\256_\344\273\252\350\241\250\346\235\277\351\227\264.png" "b/docs/img/dashboard_generation/\350\267\263\350\275\254\350\256\276\347\275\256_\344\273\252\350\241\250\346\235\277\351\227\264.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\267\263\350\275\254\350\256\276\347\275\256_\344\273\252\350\241\250\346\235\277\351\227\264.png" rename to "docs/img/dashboard_generation/\350\267\263\350\275\254\350\256\276\347\275\256_\344\273\252\350\241\250\346\235\277\351\227\264.png" diff --git "a/v1/img/dashboard_generation/\350\267\263\350\275\254\350\256\276\347\275\256_\345\244\226\351\203\250\351\223\276\346\216\245.png" "b/docs/img/dashboard_generation/\350\267\263\350\275\254\350\256\276\347\275\256_\345\244\226\351\203\250\351\223\276\346\216\245.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\267\263\350\275\254\350\256\276\347\275\256_\345\244\226\351\203\250\351\223\276\346\216\245.png" rename to "docs/img/dashboard_generation/\350\267\263\350\275\254\350\256\276\347\275\256_\345\244\226\351\203\250\351\223\276\346\216\245.png" diff --git "a/v1/img/dashboard_generation/\350\267\263\350\275\254\350\256\276\347\275\256\345\205\245\345\217\243.png" "b/docs/img/dashboard_generation/\350\267\263\350\275\254\350\256\276\347\275\256\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\267\263\350\275\254\350\256\276\347\275\256\345\205\245\345\217\243.png" rename to "docs/img/dashboard_generation/\350\267\263\350\275\254\350\256\276\347\275\256\345\205\245\345\217\243.png" diff --git "a/v1/img/dashboard_generation/\350\275\254\347\273\223\346\236\234_\344\273\252\350\241\250\346\235\277\351\227\264.png" "b/docs/img/dashboard_generation/\350\275\254\347\273\223\346\236\234_\344\273\252\350\241\250\346\235\277\351\227\264.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\275\254\347\273\223\346\236\234_\344\273\252\350\241\250\346\235\277\351\227\264.png" rename to "docs/img/dashboard_generation/\350\275\254\347\273\223\346\236\234_\344\273\252\350\241\250\346\235\277\351\227\264.png" diff --git "a/v1/img/dashboard_generation/\350\276\205\345\212\251\347\275\221\346\240\274\350\256\276\350\256\241.png" "b/docs/img/dashboard_generation/\350\276\205\345\212\251\347\275\221\346\240\274\350\256\276\350\256\241.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\276\205\345\212\251\347\275\221\346\240\274\350\256\276\350\256\241.png" rename to "docs/img/dashboard_generation/\350\276\205\345\212\251\347\275\221\346\240\274\350\256\276\350\256\241.png" diff --git "a/v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\344\275\215\347\275\256\350\260\203\346\225\264.png" "b/docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\344\275\215\347\275\256\350\260\203\346\225\264.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\344\275\215\347\275\256\350\260\203\346\225\264.png" rename to "docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\344\275\215\347\275\256\350\260\203\346\225\264.png" diff --git "a/v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\345\205\254\345\205\261\346\240\267\345\274\217\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\345\205\254\345\205\261\346\240\267\345\274\217\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\345\205\254\345\205\261\346\240\267\345\274\217\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\345\205\254\345\205\261\346\240\267\345\274\217\350\256\276\347\275\256.png" diff --git "a/v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\345\244\232\345\255\227\346\256\265\350\277\207\346\273\244.png" "b/docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\345\244\232\345\255\227\346\256\265\350\277\207\346\273\244.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\345\244\232\345\255\227\346\256\265\350\277\207\346\273\244.png" rename to "docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\345\244\232\345\255\227\346\256\265\350\277\207\346\273\244.png" diff --git "a/v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\345\255\227\346\256\265\351\200\211\346\213\251.png" "b/docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\345\255\227\346\256\265\351\200\211\346\213\251.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\345\255\227\346\256\265\351\200\211\346\213\251.png" rename to "docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\345\255\227\346\256\265\351\200\211\346\213\251.png" diff --git "a/v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\346\216\222\345\272\217.png" "b/docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\346\216\222\345\272\217.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\346\216\222\345\272\217.png" rename to "docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\346\216\222\345\272\217.png" diff --git "a/v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\346\216\222\345\272\217\347\273\223\346\236\234.png" "b/docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\346\216\222\345\272\217\347\273\223\346\236\234.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\346\216\222\345\272\217\347\273\223\346\236\234.png" rename to "docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\346\216\222\345\272\217\347\273\223\346\236\234.png" diff --git "a/v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\346\240\207\351\242\230\350\256\276\347\275\256.png" "b/docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\346\240\207\351\242\230\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\346\240\207\351\242\230\350\256\276\347\275\256.png" rename to "docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\346\240\207\351\242\230\350\256\276\347\275\256.png" diff --git "a/v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\350\276\223\345\205\245\346\241\206.png" "b/docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\350\276\223\345\205\245\346\241\206.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\350\276\223\345\205\245\346\241\206.png" rename to "docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\350\276\223\345\205\245\346\241\206.png" diff --git "a/v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\350\276\223\345\205\245\346\241\206\350\260\203\346\225\264.png" "b/docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\350\276\223\345\205\245\346\241\206\350\260\203\346\225\264.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\350\276\223\345\205\245\346\241\206\350\260\203\346\225\264.png" rename to "docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\350\276\223\345\205\245\346\241\206\350\260\203\346\225\264.png" diff --git "a/v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\351\200\220\347\272\247\350\277\224\345\233\236.png" "b/docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\351\200\220\347\272\247\350\277\224\345\233\236.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\351\200\220\347\272\247\350\277\224\345\233\236.png" rename to "docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\351\200\220\347\272\247\350\277\224\345\233\236.png" diff --git "a/v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\351\200\220\347\272\247\350\277\224\345\233\236\350\257\264\346\230\216.png" "b/docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\351\200\220\347\272\247\350\277\224\345\233\236\350\257\264\346\230\216.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\351\200\220\347\272\247\350\277\224\345\233\236\350\257\264\346\230\216.png" rename to "docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266_\351\200\220\347\272\247\350\277\224\345\233\236\350\257\264\346\230\216.png" diff --git "a/v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266\351\200\232\347\224\250\345\212\237\350\203\275.png" "b/docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266\351\200\232\347\224\250\345\212\237\350\203\275.png" similarity index 100% rename from "v1/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266\351\200\232\347\224\250\345\212\237\350\203\275.png" rename to "docs/img/dashboard_generation/\350\277\207\346\273\244\347\273\204\344\273\266\351\200\232\347\224\250\345\212\237\350\203\275.png" diff --git "a/v2/img/dashboard_generation/\350\277\233\350\241\214\345\210\267\346\226\260.png" "b/docs/img/dashboard_generation/\350\277\233\350\241\214\345\210\267\346\226\260.png" similarity index 100% rename from "v2/img/dashboard_generation/\350\277\233\350\241\214\345\210\267\346\226\260.png" rename to "docs/img/dashboard_generation/\350\277\233\350\241\214\345\210\267\346\226\260.png" diff --git "a/v2/img/dashboard_generation/\350\277\233\350\241\214\346\224\276\345\244\247.png" "b/docs/img/dashboard_generation/\350\277\233\350\241\214\346\224\276\345\244\247.png" similarity index 100% rename from "v2/img/dashboard_generation/\350\277\233\350\241\214\346\224\276\345\244\247.png" rename to "docs/img/dashboard_generation/\350\277\233\350\241\214\346\224\276\345\244\247.png" diff --git "a/v1/img/dashboard_generation/\351\207\215\345\201\232.png" "b/docs/img/dashboard_generation/\351\207\215\345\201\232.png" similarity index 100% rename from "v1/img/dashboard_generation/\351\207\215\345\201\232.png" rename to "docs/img/dashboard_generation/\351\207\215\345\201\232.png" diff --git "a/v2/img/dataset_configuration/API\346\225\260\346\215\256\351\233\206\344\277\235\345\255\230\346\210\220\345\212\237.png" "b/docs/img/dataset_configuration/API\346\225\260\346\215\256\351\233\206\344\277\235\345\255\230\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/dataset_configuration/API\346\225\260\346\215\256\351\233\206\344\277\235\345\255\230\346\210\220\345\212\237.png" rename to "docs/img/dataset_configuration/API\346\225\260\346\215\256\351\233\206\344\277\235\345\255\230\346\210\220\345\212\237.png" diff --git "a/v2/img/dataset_configuration/Excel\346\225\260\346\215\256\351\233\206\344\277\235\345\255\230\346\210\220\345\212\237.png" "b/docs/img/dataset_configuration/Excel\346\225\260\346\215\256\351\233\206\344\277\235\345\255\230\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/dataset_configuration/Excel\346\225\260\346\215\256\351\233\206\344\277\235\345\255\230\346\210\220\345\212\237.png" rename to "docs/img/dataset_configuration/Excel\346\225\260\346\215\256\351\233\206\344\277\235\345\255\230\346\210\220\345\212\237.png" diff --git "a/v2/img/dataset_configuration/SQL \345\217\202\346\225\260\350\256\276\347\275\256.png" "b/docs/img/dataset_configuration/SQL \345\217\202\346\225\260\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/dataset_configuration/SQL \345\217\202\346\225\260\350\256\276\347\275\256.png" rename to "docs/img/dataset_configuration/SQL \345\217\202\346\225\260\350\256\276\347\275\256.png" diff --git "a/v2/img/dataset_configuration/SQL \345\217\202\346\225\260\350\256\276\347\275\2562.png" "b/docs/img/dataset_configuration/SQL \345\217\202\346\225\260\350\256\276\347\275\2562.png" similarity index 100% rename from "v2/img/dataset_configuration/SQL \345\217\202\346\225\260\350\256\276\347\275\2562.png" rename to "docs/img/dataset_configuration/SQL \345\217\202\346\225\260\350\256\276\347\275\2562.png" diff --git "a/v2/img/dataset_configuration/SQL \345\217\202\346\225\260\350\256\276\347\275\2563.png" "b/docs/img/dataset_configuration/SQL \345\217\202\346\225\260\350\256\276\347\275\2563.png" similarity index 100% rename from "v2/img/dataset_configuration/SQL \345\217\202\346\225\260\350\256\276\347\275\2563.png" rename to "docs/img/dataset_configuration/SQL \345\217\202\346\225\260\350\256\276\347\275\2563.png" diff --git "a/v2/img/dataset_configuration/SQL\344\274\240\345\217\202\345\256\211\345\205\250.png" "b/docs/img/dataset_configuration/SQL\344\274\240\345\217\202\345\256\211\345\205\250.png" similarity index 100% rename from "v2/img/dataset_configuration/SQL\344\274\240\345\217\202\345\256\211\345\205\250.png" rename to "docs/img/dataset_configuration/SQL\344\274\240\345\217\202\345\256\211\345\205\250.png" diff --git "a/v2/img/dataset_configuration/SQL\345\213\276\351\200\211\345\255\227\346\256\265.png" "b/docs/img/dataset_configuration/SQL\345\213\276\351\200\211\345\255\227\346\256\265.png" similarity index 100% rename from "v2/img/dataset_configuration/SQL\345\213\276\351\200\211\345\255\227\346\256\265.png" rename to "docs/img/dataset_configuration/SQL\345\213\276\351\200\211\345\255\227\346\256\265.png" diff --git "a/v2/img/dataset_configuration/SQL\345\217\202\346\225\260\345\217\230\351\207\217\347\261\273\345\236\213.png" "b/docs/img/dataset_configuration/SQL\345\217\202\346\225\260\345\217\230\351\207\217\347\261\273\345\236\213.png" similarity index 100% rename from "v2/img/dataset_configuration/SQL\345\217\202\346\225\260\345\217\230\351\207\217\347\261\273\345\236\213.png" rename to "docs/img/dataset_configuration/SQL\345\217\202\346\225\260\345\217\230\351\207\217\347\261\273\345\236\213.png" diff --git "a/v2/img/dataset_configuration/SQL\345\217\202\346\225\260\347\224\237\346\225\210\346\250\241\345\274\217.png" "b/docs/img/dataset_configuration/SQL\345\217\202\346\225\260\347\224\237\346\225\210\346\250\241\345\274\217.png" similarity index 100% rename from "v2/img/dataset_configuration/SQL\345\217\202\346\225\260\347\224\237\346\225\210\346\250\241\345\274\217.png" rename to "docs/img/dataset_configuration/SQL\345\217\202\346\225\260\347\224\237\346\225\210\346\250\241\345\274\217.png" diff --git "a/v2/img/dataset_configuration/SQL\345\241\253\345\206\231\345\217\202\346\225\260-\345\272\237.png" "b/docs/img/dataset_configuration/SQL\345\241\253\345\206\231\345\217\202\346\225\260-\345\272\237.png" similarity index 100% rename from "v2/img/dataset_configuration/SQL\345\241\253\345\206\231\345\217\202\346\225\260-\345\272\237.png" rename to "docs/img/dataset_configuration/SQL\345\241\253\345\206\231\345\217\202\346\225\260-\345\272\237.png" diff --git "a/v2/img/dataset_configuration/SQL\345\241\253\345\206\231\345\217\202\346\225\2602-\345\272\237.png" "b/docs/img/dataset_configuration/SQL\345\241\253\345\206\231\345\217\202\346\225\2602-\345\272\237.png" similarity index 100% rename from "v2/img/dataset_configuration/SQL\345\241\253\345\206\231\345\217\202\346\225\2602-\345\272\237.png" rename to "docs/img/dataset_configuration/SQL\345\241\253\345\206\231\345\217\202\346\225\2602-\345\272\237.png" diff --git "a/v2/img/dataset_configuration/SQL\345\255\227\346\256\265\351\200\211\346\213\251.png" "b/docs/img/dataset_configuration/SQL\345\255\227\346\256\265\351\200\211\346\213\251.png" similarity index 100% rename from "v2/img/dataset_configuration/SQL\345\255\227\346\256\265\351\200\211\346\213\251.png" rename to "docs/img/dataset_configuration/SQL\345\255\227\346\256\265\351\200\211\346\213\251.png" diff --git "a/v2/img/dataset_configuration/SQL\346\225\260\346\215\256\351\233\206\351\242\204\350\247\210.png" "b/docs/img/dataset_configuration/SQL\346\225\260\346\215\256\351\233\206\351\242\204\350\247\210.png" similarity index 100% rename from "v2/img/dataset_configuration/SQL\346\225\260\346\215\256\351\233\206\351\242\204\350\247\210.png" rename to "docs/img/dataset_configuration/SQL\346\225\260\346\215\256\351\233\206\351\242\204\350\247\210.png" diff --git "a/v2/img/dataset_configuration/SQL\346\237\245\350\257\242\350\277\220\350\241\214.png" "b/docs/img/dataset_configuration/SQL\346\237\245\350\257\242\350\277\220\350\241\214.png" similarity index 100% rename from "v2/img/dataset_configuration/SQL\346\237\245\350\257\242\350\277\220\350\241\214.png" rename to "docs/img/dataset_configuration/SQL\346\237\245\350\257\242\350\277\220\350\241\214.png" diff --git "a/v2/img/dataset_configuration/SQL\347\211\207\346\256\265\346\224\257\346\214\201\346\263\250\351\207\212.png" "b/docs/img/dataset_configuration/SQL\347\211\207\346\256\265\346\224\257\346\214\201\346\263\250\351\207\212.png" similarity index 100% rename from "v2/img/dataset_configuration/SQL\347\211\207\346\256\265\346\224\257\346\214\201\346\263\250\351\207\212.png" rename to "docs/img/dataset_configuration/SQL\347\211\207\346\256\265\346\224\257\346\214\201\346\263\250\351\207\212.png" diff --git "a/v2/img/dataset_configuration/SQL\347\274\226\350\276\221\347\225\214\351\235\242.png" "b/docs/img/dataset_configuration/SQL\347\274\226\350\276\221\347\225\214\351\235\242.png" similarity index 100% rename from "v2/img/dataset_configuration/SQL\347\274\226\350\276\221\347\225\214\351\235\242.png" rename to "docs/img/dataset_configuration/SQL\347\274\226\350\276\221\347\225\214\351\235\242.png" diff --git "a/v2/img/dataset_configuration/SQL\350\257\255\345\217\245\347\274\226\345\206\231.png" "b/docs/img/dataset_configuration/SQL\350\257\255\345\217\245\347\274\226\345\206\231.png" similarity index 100% rename from "v2/img/dataset_configuration/SQL\350\257\255\345\217\245\347\274\226\345\206\231.png" rename to "docs/img/dataset_configuration/SQL\350\257\255\345\217\245\347\274\226\345\206\231.png" diff --git "a/v2/img/dataset_configuration/\344\277\235\345\255\230Excel\346\225\260\346\215\256\351\233\206.png" "b/docs/img/dataset_configuration/\344\277\235\345\255\230Excel\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v2/img/dataset_configuration/\344\277\235\345\255\230Excel\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/dataset_configuration/\344\277\235\345\255\230Excel\346\225\260\346\215\256\351\233\206.png" diff --git "a/v2/img/dataset_configuration/\344\277\235\345\255\230SQL\346\225\260\346\215\256\351\233\206.png" "b/docs/img/dataset_configuration/\344\277\235\345\255\230SQL\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v2/img/dataset_configuration/\344\277\235\345\255\230SQL\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/dataset_configuration/\344\277\235\345\255\230SQL\346\225\260\346\215\256\351\233\206.png" diff --git "a/v2/img/dataset_configuration/\344\277\235\345\255\230\346\225\260\346\215\256\345\272\223\346\225\260\346\215\256\351\233\206.png" "b/docs/img/dataset_configuration/\344\277\235\345\255\230\346\225\260\346\215\256\345\272\223\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v2/img/dataset_configuration/\344\277\235\345\255\230\346\225\260\346\215\256\345\272\223\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/dataset_configuration/\344\277\235\345\255\230\346\225\260\346\215\256\345\272\223\346\225\260\346\215\256\351\233\206.png" diff --git "a/v2/img/dataset_configuration/\345\205\263\350\201\224\346\225\260\346\215\256\351\233\206\344\277\235\345\255\230\346\210\220\345\212\237.png" "b/docs/img/dataset_configuration/\345\205\263\350\201\224\346\225\260\346\215\256\351\233\206\344\277\235\345\255\230\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/dataset_configuration/\345\205\263\350\201\224\346\225\260\346\215\256\351\233\206\344\277\235\345\255\230\346\210\220\345\212\237.png" rename to "docs/img/dataset_configuration/\345\205\263\350\201\224\346\225\260\346\215\256\351\233\206\344\277\235\345\255\230\346\210\220\345\212\237.png" diff --git "a/v2/img/dataset_configuration/\345\205\263\350\201\224\346\225\260\346\215\256\351\242\204\350\247\210.png" "b/docs/img/dataset_configuration/\345\205\263\350\201\224\346\225\260\346\215\256\351\242\204\350\247\210.png" similarity index 100% rename from "v2/img/dataset_configuration/\345\205\263\350\201\224\346\225\260\346\215\256\351\242\204\350\247\210.png" rename to "docs/img/dataset_configuration/\345\205\263\350\201\224\346\225\260\346\215\256\351\242\204\350\247\210.png" diff --git "a/v2/img/dataset_configuration/\345\206\205\350\277\236\346\216\245.png" "b/docs/img/dataset_configuration/\345\206\205\350\277\236\346\216\245.png" similarity index 100% rename from "v2/img/dataset_configuration/\345\206\205\350\277\236\346\216\245.png" rename to "docs/img/dataset_configuration/\345\206\205\350\277\236\346\216\245.png" diff --git "a/v2/img/dataset_configuration/\345\210\207\346\215\242\347\273\264\345\272\246.png" "b/docs/img/dataset_configuration/\345\210\207\346\215\242\347\273\264\345\272\246.png" similarity index 100% rename from "v2/img/dataset_configuration/\345\210\207\346\215\242\347\273\264\345\272\246.png" rename to "docs/img/dataset_configuration/\345\210\207\346\215\242\347\273\264\345\272\246.png" diff --git "a/v2/img/dataset_configuration/\345\210\233\345\273\272\345\205\263\350\201\224\345\205\263\347\263\273.png" "b/docs/img/dataset_configuration/\345\210\233\345\273\272\345\205\263\350\201\224\345\205\263\347\263\273.png" similarity index 100% rename from "v2/img/dataset_configuration/\345\210\233\345\273\272\345\205\263\350\201\224\345\205\263\347\263\273.png" rename to "docs/img/dataset_configuration/\345\210\233\345\273\272\345\205\263\350\201\224\345\205\263\347\263\273.png" diff --git "a/v2/img/dataset_configuration/\345\215\225\346\272\220\350\267\250\346\272\220\351\200\211\351\241\271.png" "b/docs/img/dataset_configuration/\345\215\225\346\272\220\350\267\250\346\272\220\351\200\211\351\241\271.png" similarity index 100% rename from "v2/img/dataset_configuration/\345\215\225\346\272\220\350\267\250\346\272\220\351\200\211\351\241\271.png" rename to "docs/img/dataset_configuration/\345\215\225\346\272\220\350\267\250\346\272\220\351\200\211\351\241\271.png" diff --git "a/v2/img/dataset_configuration/\345\217\263\350\277\236\346\216\245.png" "b/docs/img/dataset_configuration/\345\217\263\350\277\236\346\216\245.png" similarity index 100% rename from "v2/img/dataset_configuration/\345\217\263\350\277\236\346\216\245.png" rename to "docs/img/dataset_configuration/\345\217\263\350\277\236\346\216\245.png" diff --git "a/v2/img/dataset_configuration/\345\244\232\346\254\241\345\274\225\347\224\250.png" "b/docs/img/dataset_configuration/\345\244\232\346\254\241\345\274\225\347\224\250.png" similarity index 100% rename from "v2/img/dataset_configuration/\345\244\232\346\254\241\345\274\225\347\224\250.png" rename to "docs/img/dataset_configuration/\345\244\232\346\254\241\345\274\225\347\224\250.png" diff --git "a/v2/img/dataset_configuration/\345\255\227\346\256\265\345\210\240\351\231\244.png" "b/docs/img/dataset_configuration/\345\255\227\346\256\265\345\210\240\351\231\244.png" similarity index 100% rename from "v2/img/dataset_configuration/\345\255\227\346\256\265\345\210\240\351\231\244.png" rename to "docs/img/dataset_configuration/\345\255\227\346\256\265\345\210\240\351\231\244.png" diff --git "a/v2/img/dataset_configuration/\345\255\227\346\256\265\345\244\215\345\210\266.png" "b/docs/img/dataset_configuration/\345\255\227\346\256\265\345\244\215\345\210\266.png" similarity index 100% rename from "v2/img/dataset_configuration/\345\255\227\346\256\265\345\244\215\345\210\266.png" rename to "docs/img/dataset_configuration/\345\255\227\346\256\265\345\244\215\345\210\266.png" diff --git "a/v2/img/dataset_configuration/\345\255\227\346\256\265\346\227\266\351\227\264\350\247\243\346\236\220.png" "b/docs/img/dataset_configuration/\345\255\227\346\256\265\346\227\266\351\227\264\350\247\243\346\236\220.png" similarity index 100% rename from "v2/img/dataset_configuration/\345\255\227\346\256\265\346\227\266\351\227\264\350\247\243\346\236\220.png" rename to "docs/img/dataset_configuration/\345\255\227\346\256\265\346\227\266\351\227\264\350\247\243\346\236\220.png" diff --git "a/v2/img/dataset_configuration/\345\267\246\350\277\236\346\216\245.png" "b/docs/img/dataset_configuration/\345\267\246\350\277\236\346\216\245.png" similarity index 100% rename from "v2/img/dataset_configuration/\345\267\246\350\277\236\346\216\245.png" rename to "docs/img/dataset_configuration/\345\267\246\350\277\236\346\216\245.png" diff --git "a/v2/img/dataset_configuration/\346\213\226\346\213\275\345\205\263\350\201\224\350\241\250.png" "b/docs/img/dataset_configuration/\346\213\226\346\213\275\345\205\263\350\201\224\350\241\250.png" similarity index 100% rename from "v2/img/dataset_configuration/\346\213\226\346\213\275\345\205\263\350\201\224\350\241\250.png" rename to "docs/img/dataset_configuration/\346\213\226\346\213\275\345\205\263\350\201\224\350\241\250.png" diff --git "a/v2/img/dataset_configuration/\346\224\257\346\214\201\345\233\276\347\211\207url.png" "b/docs/img/dataset_configuration/\346\224\257\346\214\201\345\233\276\347\211\207url.png" similarity index 100% rename from "v2/img/dataset_configuration/\346\224\257\346\214\201\345\233\276\347\211\207url.png" rename to "docs/img/dataset_configuration/\346\224\257\346\214\201\345\233\276\347\211\207url.png" diff --git "a/v2/img/dataset_configuration/\346\225\260\346\215\256\345\272\223\346\225\260\346\215\256\351\233\206\344\277\235\345\255\230\346\210\220\345\212\237.png" "b/docs/img/dataset_configuration/\346\225\260\346\215\256\345\272\223\346\225\260\346\215\256\351\233\206\344\277\235\345\255\230\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/dataset_configuration/\346\225\260\346\215\256\345\272\223\346\225\260\346\215\256\351\233\206\344\277\235\345\255\230\346\210\220\345\212\237.png" rename to "docs/img/dataset_configuration/\346\225\260\346\215\256\345\272\223\346\225\260\346\215\256\351\233\206\344\277\235\345\255\230\346\210\220\345\212\237.png" diff --git "a/v2/img/dataset_configuration/\346\225\260\346\215\256\346\272\220\346\237\245\347\234\213\346\225\260\346\215\256\350\241\250.png" "b/docs/img/dataset_configuration/\346\225\260\346\215\256\346\272\220\346\237\245\347\234\213\346\225\260\346\215\256\350\241\250.png" similarity index 100% rename from "v2/img/dataset_configuration/\346\225\260\346\215\256\346\272\220\346\237\245\347\234\213\346\225\260\346\215\256\350\241\250.png" rename to "docs/img/dataset_configuration/\346\225\260\346\215\256\346\272\220\346\237\245\347\234\213\346\225\260\346\215\256\350\241\250.png" diff --git "a/v2/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265\346\233\264\346\224\271\347\261\273\345\236\213.png" "b/docs/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265\346\233\264\346\224\271\347\261\273\345\236\213.png" similarity index 100% rename from "v2/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265\346\233\264\346\224\271\347\261\273\345\236\213.png" rename to "docs/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265\346\233\264\346\224\271\347\261\273\345\236\213.png" diff --git "a/v2/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265\351\200\211\344\270\255.png" "b/docs/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265\351\200\211\344\270\255.png" similarity index 100% rename from "v2/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265\351\200\211\344\270\255.png" rename to "docs/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265\351\200\211\344\270\255.png" diff --git "a/v2/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265\351\207\215\345\221\275\345\220\215.png" "b/docs/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265\351\207\215\345\221\275\345\220\215.png" similarity index 100% rename from "v2/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265\351\207\215\345\221\275\345\220\215.png" rename to "docs/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265\351\207\215\345\221\275\345\220\215.png" diff --git "a/v2/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\347\225\214\351\235\242.png" "b/docs/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\347\225\214\351\235\242.png" similarity index 100% rename from "v2/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\347\225\214\351\235\242.png" rename to "docs/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\347\225\214\351\235\242.png" diff --git "a/v2/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\347\274\226\350\276\221\347\225\214\351\235\242.png" "b/docs/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\347\274\226\350\276\221\347\225\214\351\235\242.png" similarity index 100% rename from "v2/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\347\274\226\350\276\221\347\225\214\351\235\242.png" rename to "docs/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\347\274\226\350\276\221\347\225\214\351\235\242.png" diff --git "a/v2/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\351\200\211\346\213\251\346\225\260\346\215\256\346\272\220\345\222\214\346\225\260\346\215\256\350\241\250.png" "b/docs/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\351\200\211\346\213\251\346\225\260\346\215\256\346\272\220\345\222\214\346\225\260\346\215\256\350\241\250.png" similarity index 100% rename from "v2/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\351\200\211\346\213\251\346\225\260\346\215\256\346\272\220\345\222\214\346\225\260\346\215\256\350\241\250.png" rename to "docs/img/dataset_configuration/\346\225\260\346\215\256\351\233\206\351\200\211\346\213\251\346\225\260\346\215\256\346\272\220\345\222\214\346\225\260\346\215\256\350\241\250.png" diff --git "a/v2/img/dataset_configuration/\346\226\260\345\273\272\345\205\263\350\201\224\346\225\260\346\215\256\351\233\206.png" "b/docs/img/dataset_configuration/\346\226\260\345\273\272\345\205\263\350\201\224\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v2/img/dataset_configuration/\346\226\260\345\273\272\345\205\263\350\201\224\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/dataset_configuration/\346\226\260\345\273\272\345\205\263\350\201\224\346\225\260\346\215\256\351\233\206.png" diff --git "a/v2/img/dataset_configuration/\346\226\260\345\273\272\346\225\260\346\215\256\345\272\223\346\225\260\346\215\256\351\233\206.png" "b/docs/img/dataset_configuration/\346\226\260\345\273\272\346\225\260\346\215\256\345\272\223\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v2/img/dataset_configuration/\346\226\260\345\273\272\346\225\260\346\215\256\345\272\223\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/dataset_configuration/\346\226\260\345\273\272\346\225\260\346\215\256\345\272\223\346\225\260\346\215\256\351\233\206.png" diff --git "a/v2/img/dataset_configuration/\346\226\260\345\273\272\346\225\260\346\215\256\351\233\206.png" "b/docs/img/dataset_configuration/\346\226\260\345\273\272\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v2/img/dataset_configuration/\346\226\260\345\273\272\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/dataset_configuration/\346\226\260\345\273\272\346\225\260\346\215\256\351\233\206.png" diff --git "a/v2/img/dataset_configuration/\346\226\260\345\273\272\350\256\241\347\256\227\345\255\227\346\256\265.png" "b/docs/img/dataset_configuration/\346\226\260\345\273\272\350\256\241\347\256\227\345\255\227\346\256\265.png" similarity index 100% rename from "v2/img/dataset_configuration/\346\226\260\345\273\272\350\256\241\347\256\227\345\255\227\346\256\265.png" rename to "docs/img/dataset_configuration/\346\226\260\345\273\272\350\256\241\347\256\227\345\255\227\346\256\265.png" diff --git "a/v2/img/dataset_configuration/\346\226\260\345\273\272\350\256\241\347\256\227\345\255\227\346\256\265\350\256\276\350\256\241.png" "b/docs/img/dataset_configuration/\346\226\260\345\273\272\350\256\241\347\256\227\345\255\227\346\256\265\350\256\276\350\256\241.png" similarity index 100% rename from "v2/img/dataset_configuration/\346\226\260\345\273\272\350\256\241\347\256\227\345\255\227\346\256\265\350\256\276\350\256\241.png" rename to "docs/img/dataset_configuration/\346\226\260\345\273\272\350\256\241\347\256\227\345\255\227\346\256\265\350\256\276\350\256\241.png" diff --git "a/v2/img/dataset_configuration/\346\227\266\351\227\264\344\274\240\345\217\202\346\220\255\351\205\215\350\277\207\346\273\244\347\273\204\344\273\266.png" "b/docs/img/dataset_configuration/\346\227\266\351\227\264\344\274\240\345\217\202\346\220\255\351\205\215\350\277\207\346\273\244\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/dataset_configuration/\346\227\266\351\227\264\344\274\240\345\217\202\346\220\255\351\205\215\350\277\207\346\273\244\347\273\204\344\273\266.png" rename to "docs/img/dataset_configuration/\346\227\266\351\227\264\344\274\240\345\217\202\346\220\255\351\205\215\350\277\207\346\273\244\347\273\204\344\273\266.png" diff --git "a/v2/img/dataset_configuration/\346\227\266\351\227\264\350\277\207\346\273\244\344\274\240\345\217\202.png" "b/docs/img/dataset_configuration/\346\227\266\351\227\264\350\277\207\346\273\244\344\274\240\345\217\202.png" similarity index 100% rename from "v2/img/dataset_configuration/\346\227\266\351\227\264\350\277\207\346\273\244\344\274\240\345\217\202.png" rename to "docs/img/dataset_configuration/\346\227\266\351\227\264\350\277\207\346\273\244\344\274\240\345\217\202.png" diff --git "a/v2/img/dataset_configuration/\346\267\273\345\212\240API\346\225\260\346\215\256\351\233\206.png" "b/docs/img/dataset_configuration/\346\267\273\345\212\240API\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v2/img/dataset_configuration/\346\267\273\345\212\240API\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/dataset_configuration/\346\267\273\345\212\240API\346\225\260\346\215\256\351\233\206.png" diff --git "a/v2/img/dataset_configuration/\346\267\273\345\212\240Excel\346\225\260\346\215\256\351\233\206.png" "b/docs/img/dataset_configuration/\346\267\273\345\212\240Excel\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v2/img/dataset_configuration/\346\267\273\345\212\240Excel\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/dataset_configuration/\346\267\273\345\212\240Excel\346\225\260\346\215\256\351\233\206.png" diff --git "a/v2/img/dataset_configuration/\347\263\273\347\273\237\345\217\230\351\207\217\344\275\234\344\270\272\346\237\245\350\257\242\346\235\241\344\273\266.png" "b/docs/img/dataset_configuration/\347\263\273\347\273\237\345\217\230\351\207\217\344\275\234\344\270\272\346\237\245\350\257\242\346\235\241\344\273\266.png" similarity index 100% rename from "v2/img/dataset_configuration/\347\263\273\347\273\237\345\217\230\351\207\217\344\275\234\344\270\272\346\237\245\350\257\242\346\235\241\344\273\266.png" rename to "docs/img/dataset_configuration/\347\263\273\347\273\237\345\217\230\351\207\217\344\275\234\344\270\272\346\237\245\350\257\242\346\235\241\344\273\266.png" diff --git "a/v2/img/dataset_configuration/\350\277\207\346\273\244\347\273\204\344\273\266\350\256\276\347\275\256\345\217\202\346\225\260.png" "b/docs/img/dataset_configuration/\350\277\207\346\273\244\347\273\204\344\273\266\350\256\276\347\275\256\345\217\202\346\225\260.png" similarity index 100% rename from "v2/img/dataset_configuration/\350\277\207\346\273\244\347\273\204\344\273\266\350\256\276\347\275\256\345\217\202\346\225\260.png" rename to "docs/img/dataset_configuration/\350\277\207\346\273\244\347\273\204\344\273\266\350\256\276\347\275\256\345\217\202\346\225\260.png" diff --git "a/v2/img/dataset_configuration/\351\200\211\346\213\251SQL\346\225\260\346\215\256\351\233\206.png" "b/docs/img/dataset_configuration/\351\200\211\346\213\251SQL\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v2/img/dataset_configuration/\351\200\211\346\213\251SQL\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/dataset_configuration/\351\200\211\346\213\251SQL\346\225\260\346\215\256\351\233\206.png" diff --git a/docs/img/datasource_configuration/.DS_Store b/docs/img/datasource_configuration/.DS_Store new file mode 100644 index 000000000..5008ddfcf Binary files /dev/null and b/docs/img/datasource_configuration/.DS_Store differ diff --git "a/v2/img/datasource_configuration/API\344\277\235\345\255\230\346\210\220\345\212\237.png" "b/docs/img/datasource_configuration/API\344\277\235\345\255\230\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/datasource_configuration/API\344\277\235\345\255\230\346\210\220\345\212\237.png" rename to "docs/img/datasource_configuration/API\344\277\235\345\255\230\346\210\220\345\212\237.png" diff --git "a/v2/img/datasource_configuration/API\346\214\207\345\256\232JsonPath.png" "b/docs/img/datasource_configuration/API\346\214\207\345\256\232JsonPath.png" similarity index 100% rename from "v2/img/datasource_configuration/API\346\214\207\345\256\232JsonPath.png" rename to "docs/img/datasource_configuration/API\346\214\207\345\256\232JsonPath.png" diff --git "a/v2/img/datasource_configuration/API\346\225\260\346\215\256\347\273\223\346\236\204.png" "b/docs/img/datasource_configuration/API\346\225\260\346\215\256\347\273\223\346\236\204.png" similarity index 100% rename from "v2/img/datasource_configuration/API\346\225\260\346\215\256\347\273\223\346\236\204.png" rename to "docs/img/datasource_configuration/API\346\225\260\346\215\256\347\273\223\346\236\204.png" diff --git "a/v2/img/datasource_configuration/API\346\240\241\351\252\214\346\210\220\345\212\237.png" "b/docs/img/datasource_configuration/API\346\240\241\351\252\214\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/datasource_configuration/API\346\240\241\351\252\214\346\210\220\345\212\237.png" rename to "docs/img/datasource_configuration/API\346\240\241\351\252\214\346\210\220\345\212\237.png" diff --git "a/v2/img/datasource_configuration/API\346\267\273\345\212\240\346\225\260\346\215\256\350\241\250.png" "b/docs/img/datasource_configuration/API\346\267\273\345\212\240\346\225\260\346\215\256\350\241\250.png" similarity index 100% rename from "v2/img/datasource_configuration/API\346\267\273\345\212\240\346\225\260\346\215\256\350\241\250.png" rename to "docs/img/datasource_configuration/API\346\267\273\345\212\240\346\225\260\346\215\256\350\241\250.png" diff --git "a/v2/img/datasource_configuration/API\350\256\276\347\275\256\350\257\267\346\261\202\345\217\202\346\225\260.png" "b/docs/img/datasource_configuration/API\350\256\276\347\275\256\350\257\267\346\261\202\345\217\202\346\225\260.png" similarity index 100% rename from "v2/img/datasource_configuration/API\350\256\276\347\275\256\350\257\267\346\261\202\345\217\202\346\225\260.png" rename to "docs/img/datasource_configuration/API\350\256\276\347\275\256\350\257\267\346\261\202\345\217\202\346\225\260.png" diff --git "a/v2/img/datasource_configuration/API\350\257\267\346\261\202\345\217\202\346\225\260.png" "b/docs/img/datasource_configuration/API\350\257\267\346\261\202\345\217\202\346\225\260.png" similarity index 100% rename from "v2/img/datasource_configuration/API\350\257\267\346\261\202\345\217\202\346\225\260.png" rename to "docs/img/datasource_configuration/API\350\257\267\346\261\202\345\217\202\346\225\260.png" diff --git "a/v2/img/datasource_configuration/API\351\205\215\347\275\256\344\277\241\346\201\257.png" "b/docs/img/datasource_configuration/API\351\205\215\347\275\256\344\277\241\346\201\257.png" similarity index 100% rename from "v2/img/datasource_configuration/API\351\205\215\347\275\256\344\277\241\346\201\257.png" rename to "docs/img/datasource_configuration/API\351\205\215\347\275\256\344\277\241\346\201\257.png" diff --git a/v1/img/datasource_configuration/AWS_Redshift.png b/docs/img/datasource_configuration/AWS_Redshift.png similarity index 100% rename from v1/img/datasource_configuration/AWS_Redshift.png rename to docs/img/datasource_configuration/AWS_Redshift.png diff --git a/v1/img/datasource_configuration/AWS_Redshift1.png b/docs/img/datasource_configuration/AWS_Redshift1.png similarity index 100% rename from v1/img/datasource_configuration/AWS_Redshift1.png rename to docs/img/datasource_configuration/AWS_Redshift1.png diff --git a/v1/img/datasource_configuration/AWS_Redshift2.png b/docs/img/datasource_configuration/AWS_Redshift2.png similarity index 100% rename from v1/img/datasource_configuration/AWS_Redshift2.png rename to docs/img/datasource_configuration/AWS_Redshift2.png diff --git a/v1/img/datasource_configuration/AWS_Redshift3.png b/docs/img/datasource_configuration/AWS_Redshift3.png similarity index 100% rename from v1/img/datasource_configuration/AWS_Redshift3.png rename to docs/img/datasource_configuration/AWS_Redshift3.png diff --git "a/v2/img/datasource_configuration/AWS\346\240\241\351\252\214\346\210\220\345\212\237.png" "b/docs/img/datasource_configuration/AWS\346\240\241\351\252\214\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/datasource_configuration/AWS\346\240\241\351\252\214\346\210\220\345\212\237.png" rename to "docs/img/datasource_configuration/AWS\346\240\241\351\252\214\346\210\220\345\212\237.png" diff --git "a/v2/img/datasource_configuration/AWS\350\216\267\345\217\226Schema.png" "b/docs/img/datasource_configuration/AWS\350\216\267\345\217\226Schema.png" similarity index 100% rename from "v2/img/datasource_configuration/AWS\350\216\267\345\217\226Schema.png" rename to "docs/img/datasource_configuration/AWS\350\216\267\345\217\226Schema.png" diff --git "a/v2/img/datasource_configuration/AWS\351\223\276\346\216\245\344\277\241\346\201\257.png" "b/docs/img/datasource_configuration/AWS\351\223\276\346\216\245\344\277\241\346\201\257.png" similarity index 100% rename from "v2/img/datasource_configuration/AWS\351\223\276\346\216\245\344\277\241\346\201\257.png" rename to "docs/img/datasource_configuration/AWS\351\223\276\346\216\245\344\277\241\346\201\257.png" diff --git "a/v2/img/datasource_configuration/CH\346\240\241\351\252\214\346\210\220\345\212\237.png" "b/docs/img/datasource_configuration/CH\346\240\241\351\252\214\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/datasource_configuration/CH\346\240\241\351\252\214\346\210\220\345\212\237.png" rename to "docs/img/datasource_configuration/CH\346\240\241\351\252\214\346\210\220\345\212\237.png" diff --git "a/v2/img/datasource_configuration/CH\351\223\276\346\216\245\344\277\241\346\201\257.png" "b/docs/img/datasource_configuration/CH\351\223\276\346\216\245\344\277\241\346\201\257.png" similarity index 100% rename from "v2/img/datasource_configuration/CH\351\223\276\346\216\245\344\277\241\346\201\257.png" rename to "docs/img/datasource_configuration/CH\351\223\276\346\216\245\344\277\241\346\201\257.png" diff --git a/v1/img/datasource_configuration/ClickHouse1.png b/docs/img/datasource_configuration/ClickHouse1.png similarity index 100% rename from v1/img/datasource_configuration/ClickHouse1.png rename to docs/img/datasource_configuration/ClickHouse1.png diff --git a/v1/img/datasource_configuration/ClickHouse2.png b/docs/img/datasource_configuration/ClickHouse2.png similarity index 100% rename from v1/img/datasource_configuration/ClickHouse2.png rename to docs/img/datasource_configuration/ClickHouse2.png diff --git a/v1/img/datasource_configuration/ClickHouse3.png b/docs/img/datasource_configuration/ClickHouse3.png similarity index 100% rename from v1/img/datasource_configuration/ClickHouse3.png rename to docs/img/datasource_configuration/ClickHouse3.png diff --git "a/v2/img/datasource_configuration/DB2\346\240\241\351\252\214\346\210\220\345\212\237.png" "b/docs/img/datasource_configuration/DB2\346\240\241\351\252\214\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/datasource_configuration/DB2\346\240\241\351\252\214\346\210\220\345\212\237.png" rename to "docs/img/datasource_configuration/DB2\346\240\241\351\252\214\346\210\220\345\212\237.png" diff --git "a/v2/img/datasource_configuration/DB2\350\216\267\345\217\226Schema.png" "b/docs/img/datasource_configuration/DB2\350\216\267\345\217\226Schema.png" similarity index 100% rename from "v2/img/datasource_configuration/DB2\350\216\267\345\217\226Schema.png" rename to "docs/img/datasource_configuration/DB2\350\216\267\345\217\226Schema.png" diff --git "a/v2/img/datasource_configuration/DB2\351\223\276\346\216\245\344\277\241\346\201\257.png" "b/docs/img/datasource_configuration/DB2\351\223\276\346\216\245\344\277\241\346\201\257.png" similarity index 100% rename from "v2/img/datasource_configuration/DB2\351\223\276\346\216\245\344\277\241\346\201\257.png" rename to "docs/img/datasource_configuration/DB2\351\223\276\346\216\245\344\277\241\346\201\257.png" diff --git a/v1/img/datasource_configuration/DM1.png b/docs/img/datasource_configuration/DM1.png similarity index 100% rename from v1/img/datasource_configuration/DM1.png rename to docs/img/datasource_configuration/DM1.png diff --git a/v1/img/datasource_configuration/DM2.png b/docs/img/datasource_configuration/DM2.png similarity index 100% rename from v1/img/datasource_configuration/DM2.png rename to docs/img/datasource_configuration/DM2.png diff --git a/v1/img/datasource_configuration/DM3.png b/docs/img/datasource_configuration/DM3.png similarity index 100% rename from v1/img/datasource_configuration/DM3.png rename to docs/img/datasource_configuration/DM3.png diff --git a/v1/img/datasource_configuration/Db21.png b/docs/img/datasource_configuration/Db21.png similarity index 100% rename from v1/img/datasource_configuration/Db21.png rename to docs/img/datasource_configuration/Db21.png diff --git a/v1/img/datasource_configuration/Db22.png b/docs/img/datasource_configuration/Db22.png similarity index 100% rename from v1/img/datasource_configuration/Db22.png rename to docs/img/datasource_configuration/Db22.png diff --git a/v1/img/datasource_configuration/Db23.png b/docs/img/datasource_configuration/Db23.png similarity index 100% rename from v1/img/datasource_configuration/Db23.png rename to docs/img/datasource_configuration/Db23.png diff --git a/v1/img/datasource_configuration/Doris1.png b/docs/img/datasource_configuration/Doris1.png similarity index 100% rename from v1/img/datasource_configuration/Doris1.png rename to docs/img/datasource_configuration/Doris1.png diff --git a/v1/img/datasource_configuration/Doris2.png b/docs/img/datasource_configuration/Doris2.png similarity index 100% rename from v1/img/datasource_configuration/Doris2.png rename to docs/img/datasource_configuration/Doris2.png diff --git a/v1/img/datasource_configuration/Doris3.png b/docs/img/datasource_configuration/Doris3.png similarity index 100% rename from v1/img/datasource_configuration/Doris3.png rename to docs/img/datasource_configuration/Doris3.png diff --git "a/v2/img/datasource_configuration/Doris\346\240\241\351\252\214\346\210\220\345\212\237.png" "b/docs/img/datasource_configuration/Doris\346\240\241\351\252\214\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/datasource_configuration/Doris\346\240\241\351\252\214\346\210\220\345\212\237.png" rename to "docs/img/datasource_configuration/Doris\346\240\241\351\252\214\346\210\220\345\212\237.png" diff --git "a/v2/img/datasource_configuration/Doris\351\223\276\346\216\245\344\277\241\346\201\257.png" "b/docs/img/datasource_configuration/Doris\351\223\276\346\216\245\344\277\241\346\201\257.png" similarity index 100% rename from "v2/img/datasource_configuration/Doris\351\223\276\346\216\245\344\277\241\346\201\257.png" rename to "docs/img/datasource_configuration/Doris\351\223\276\346\216\245\344\277\241\346\201\257.png" diff --git a/v2/img/datasource_configuration/Elasticsearch1.png b/docs/img/datasource_configuration/Elasticsearch1.png similarity index 100% rename from v2/img/datasource_configuration/Elasticsearch1.png rename to docs/img/datasource_configuration/Elasticsearch1.png diff --git a/v2/img/datasource_configuration/Elasticsearch2.png b/docs/img/datasource_configuration/Elasticsearch2.png similarity index 100% rename from v2/img/datasource_configuration/Elasticsearch2.png rename to docs/img/datasource_configuration/Elasticsearch2.png diff --git a/v2/img/datasource_configuration/Elasticsearch3.png b/docs/img/datasource_configuration/Elasticsearch3.png similarity index 100% rename from v2/img/datasource_configuration/Elasticsearch3.png rename to docs/img/datasource_configuration/Elasticsearch3.png diff --git "a/v2/img/datasource_configuration/Excel\344\270\212\344\274\240.png" "b/docs/img/datasource_configuration/Excel\344\270\212\344\274\240.png" similarity index 100% rename from "v2/img/datasource_configuration/Excel\344\270\212\344\274\240.png" rename to "docs/img/datasource_configuration/Excel\344\270\212\344\274\240.png" diff --git "a/v2/img/datasource_configuration/Excel\344\270\212\344\274\240\346\210\220\345\212\237\351\242\204\350\247\210.png" "b/docs/img/datasource_configuration/Excel\344\270\212\344\274\240\346\210\220\345\212\237\351\242\204\350\247\210.png" similarity index 100% rename from "v2/img/datasource_configuration/Excel\344\270\212\344\274\240\346\210\220\345\212\237\351\242\204\350\247\210.png" rename to "docs/img/datasource_configuration/Excel\344\270\212\344\274\240\346\210\220\345\212\237\351\242\204\350\247\210.png" diff --git "a/v2/img/datasource_configuration/Excel\344\277\235\345\255\230\346\210\220\345\212\237.png" "b/docs/img/datasource_configuration/Excel\344\277\235\345\255\230\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/datasource_configuration/Excel\344\277\235\345\255\230\346\210\220\345\212\237.png" rename to "docs/img/datasource_configuration/Excel\344\277\235\345\255\230\346\210\220\345\212\237.png" diff --git a/v1/img/datasource_configuration/Hive1.png b/docs/img/datasource_configuration/Hive1.png similarity index 100% rename from v1/img/datasource_configuration/Hive1.png rename to docs/img/datasource_configuration/Hive1.png diff --git a/v1/img/datasource_configuration/Hive2.png b/docs/img/datasource_configuration/Hive2.png similarity index 100% rename from v1/img/datasource_configuration/Hive2.png rename to docs/img/datasource_configuration/Hive2.png diff --git a/v1/img/datasource_configuration/Hive3.png b/docs/img/datasource_configuration/Hive3.png similarity index 100% rename from v1/img/datasource_configuration/Hive3.png rename to docs/img/datasource_configuration/Hive3.png diff --git a/v1/img/datasource_configuration/Impala1.png b/docs/img/datasource_configuration/Impala1.png similarity index 100% rename from v1/img/datasource_configuration/Impala1.png rename to docs/img/datasource_configuration/Impala1.png diff --git a/v1/img/datasource_configuration/Impala2.png b/docs/img/datasource_configuration/Impala2.png similarity index 100% rename from v1/img/datasource_configuration/Impala2.png rename to docs/img/datasource_configuration/Impala2.png diff --git a/v1/img/datasource_configuration/Impala3.png b/docs/img/datasource_configuration/Impala3.png similarity index 100% rename from v1/img/datasource_configuration/Impala3.png rename to docs/img/datasource_configuration/Impala3.png diff --git "a/v2/img/datasource_configuration/Impala\346\240\241\351\252\214\346\210\220\345\212\237.png" "b/docs/img/datasource_configuration/Impala\346\240\241\351\252\214\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/datasource_configuration/Impala\346\240\241\351\252\214\346\210\220\345\212\237.png" rename to "docs/img/datasource_configuration/Impala\346\240\241\351\252\214\346\210\220\345\212\237.png" diff --git "a/v2/img/datasource_configuration/Impala\351\223\276\346\216\245\344\277\241\346\201\257.png" "b/docs/img/datasource_configuration/Impala\351\223\276\346\216\245\344\277\241\346\201\257.png" similarity index 100% rename from "v2/img/datasource_configuration/Impala\351\223\276\346\216\245\344\277\241\346\201\257.png" rename to "docs/img/datasource_configuration/Impala\351\223\276\346\216\245\344\277\241\346\201\257.png" diff --git a/v1/img/datasource_configuration/KingBase1.png b/docs/img/datasource_configuration/KingBase1.png similarity index 100% rename from v1/img/datasource_configuration/KingBase1.png rename to docs/img/datasource_configuration/KingBase1.png diff --git a/v1/img/datasource_configuration/KingBase2.png b/docs/img/datasource_configuration/KingBase2.png similarity index 100% rename from v1/img/datasource_configuration/KingBase2.png rename to docs/img/datasource_configuration/KingBase2.png diff --git a/v1/img/datasource_configuration/KingBase3.png b/docs/img/datasource_configuration/KingBase3.png similarity index 100% rename from v1/img/datasource_configuration/KingBase3.png rename to docs/img/datasource_configuration/KingBase3.png diff --git a/v1/img/datasource_configuration/KingBase_Schema.png b/docs/img/datasource_configuration/KingBase_Schema.png similarity index 100% rename from v1/img/datasource_configuration/KingBase_Schema.png rename to docs/img/datasource_configuration/KingBase_Schema.png diff --git a/v1/img/datasource_configuration/Kylin1.png b/docs/img/datasource_configuration/Kylin1.png similarity index 100% rename from v1/img/datasource_configuration/Kylin1.png rename to docs/img/datasource_configuration/Kylin1.png diff --git a/v1/img/datasource_configuration/Kylin2.png b/docs/img/datasource_configuration/Kylin2.png similarity index 100% rename from v1/img/datasource_configuration/Kylin2.png rename to docs/img/datasource_configuration/Kylin2.png diff --git a/v1/img/datasource_configuration/Kylin3.png b/docs/img/datasource_configuration/Kylin3.png similarity index 100% rename from v1/img/datasource_configuration/Kylin3.png rename to docs/img/datasource_configuration/Kylin3.png diff --git "a/v2/img/datasource_configuration/MYSQL\344\277\241\346\201\257.png" "b/docs/img/datasource_configuration/MYSQL\344\277\241\346\201\257.png" similarity index 100% rename from "v2/img/datasource_configuration/MYSQL\344\277\241\346\201\257.png" rename to "docs/img/datasource_configuration/MYSQL\344\277\241\346\201\257.png" diff --git "a/v2/img/datasource_configuration/MYSQL\346\240\241\351\252\214\346\210\220\345\212\237.png" "b/docs/img/datasource_configuration/MYSQL\346\240\241\351\252\214\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/datasource_configuration/MYSQL\346\240\241\351\252\214\346\210\220\345\212\237.png" rename to "docs/img/datasource_configuration/MYSQL\346\240\241\351\252\214\346\210\220\345\212\237.png" diff --git a/v1/img/datasource_configuration/MariaDB1.png b/docs/img/datasource_configuration/MariaDB1.png similarity index 100% rename from v1/img/datasource_configuration/MariaDB1.png rename to docs/img/datasource_configuration/MariaDB1.png diff --git a/v1/img/datasource_configuration/MariaDB2.png b/docs/img/datasource_configuration/MariaDB2.png similarity index 100% rename from v1/img/datasource_configuration/MariaDB2.png rename to docs/img/datasource_configuration/MariaDB2.png diff --git a/v1/img/datasource_configuration/MariaDB3.png b/docs/img/datasource_configuration/MariaDB3.png similarity index 100% rename from v1/img/datasource_configuration/MariaDB3.png rename to docs/img/datasource_configuration/MariaDB3.png diff --git "a/v2/img/datasource_configuration/MariaDB\344\277\241\346\201\257.png" "b/docs/img/datasource_configuration/MariaDB\344\277\241\346\201\257.png" similarity index 100% rename from "v2/img/datasource_configuration/MariaDB\344\277\241\346\201\257.png" rename to "docs/img/datasource_configuration/MariaDB\344\277\241\346\201\257.png" diff --git "a/v2/img/datasource_configuration/MariaDB\346\240\241\351\252\214\346\210\220\345\212\237.png" "b/docs/img/datasource_configuration/MariaDB\346\240\241\351\252\214\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/datasource_configuration/MariaDB\346\240\241\351\252\214\346\210\220\345\212\237.png" rename to "docs/img/datasource_configuration/MariaDB\346\240\241\351\252\214\346\210\220\345\212\237.png" diff --git a/v1/img/datasource_configuration/Maxcompute1.png b/docs/img/datasource_configuration/Maxcompute1.png similarity index 100% rename from v1/img/datasource_configuration/Maxcompute1.png rename to docs/img/datasource_configuration/Maxcompute1.png diff --git a/v1/img/datasource_configuration/Maxcompute2.png b/docs/img/datasource_configuration/Maxcompute2.png similarity index 100% rename from v1/img/datasource_configuration/Maxcompute2.png rename to docs/img/datasource_configuration/Maxcompute2.png diff --git a/v1/img/datasource_configuration/Maxcompute3.png b/docs/img/datasource_configuration/Maxcompute3.png similarity index 100% rename from v1/img/datasource_configuration/Maxcompute3.png rename to docs/img/datasource_configuration/Maxcompute3.png diff --git a/v1/img/datasource_configuration/MongoDB1.png b/docs/img/datasource_configuration/MongoDB1.png similarity index 100% rename from v1/img/datasource_configuration/MongoDB1.png rename to docs/img/datasource_configuration/MongoDB1.png diff --git a/v1/img/datasource_configuration/MongoDB2.png b/docs/img/datasource_configuration/MongoDB2.png similarity index 100% rename from v1/img/datasource_configuration/MongoDB2.png rename to docs/img/datasource_configuration/MongoDB2.png diff --git a/v1/img/datasource_configuration/MongoDB3.png b/docs/img/datasource_configuration/MongoDB3.png similarity index 100% rename from v1/img/datasource_configuration/MongoDB3.png rename to docs/img/datasource_configuration/MongoDB3.png diff --git "a/v2/img/datasource_configuration/Mongodb-BI\351\223\276\346\216\245\344\277\241\346\201\257.png" "b/docs/img/datasource_configuration/Mongodb-BI\351\223\276\346\216\245\344\277\241\346\201\257.png" similarity index 100% rename from "v2/img/datasource_configuration/Mongodb-BI\351\223\276\346\216\245\344\277\241\346\201\257.png" rename to "docs/img/datasource_configuration/Mongodb-BI\351\223\276\346\216\245\344\277\241\346\201\257.png" diff --git "a/v2/img/datasource_configuration/Mongodb\346\240\241\351\252\214\346\210\220\345\212\237.png" "b/docs/img/datasource_configuration/Mongodb\346\240\241\351\252\214\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/datasource_configuration/Mongodb\346\240\241\351\252\214\346\210\220\345\212\237.png" rename to "docs/img/datasource_configuration/Mongodb\346\240\241\351\252\214\346\210\220\345\212\237.png" diff --git "a/v2/img/datasource_configuration/Mongodb\351\223\276\346\216\245\344\277\241\346\201\257.png" "b/docs/img/datasource_configuration/Mongodb\351\223\276\346\216\245\344\277\241\346\201\257.png" similarity index 100% rename from "v2/img/datasource_configuration/Mongodb\351\223\276\346\216\245\344\277\241\346\201\257.png" rename to "docs/img/datasource_configuration/Mongodb\351\223\276\346\216\245\344\277\241\346\201\257.png" diff --git a/v1/img/datasource_configuration/MySQL1.png b/docs/img/datasource_configuration/MySQL1.png similarity index 100% rename from v1/img/datasource_configuration/MySQL1.png rename to docs/img/datasource_configuration/MySQL1.png diff --git a/v1/img/datasource_configuration/MySQL2.png b/docs/img/datasource_configuration/MySQL2.png similarity index 100% rename from v1/img/datasource_configuration/MySQL2.png rename to docs/img/datasource_configuration/MySQL2.png diff --git a/v1/img/datasource_configuration/MySQL3.png b/docs/img/datasource_configuration/MySQL3.png similarity index 100% rename from v1/img/datasource_configuration/MySQL3.png rename to docs/img/datasource_configuration/MySQL3.png diff --git a/v1/img/datasource_configuration/Oracle1.png b/docs/img/datasource_configuration/Oracle1.png similarity index 100% rename from v1/img/datasource_configuration/Oracle1.png rename to docs/img/datasource_configuration/Oracle1.png diff --git a/v1/img/datasource_configuration/Oracle2.png b/docs/img/datasource_configuration/Oracle2.png similarity index 100% rename from v1/img/datasource_configuration/Oracle2.png rename to docs/img/datasource_configuration/Oracle2.png diff --git a/v1/img/datasource_configuration/Oracle3.png b/docs/img/datasource_configuration/Oracle3.png similarity index 100% rename from v1/img/datasource_configuration/Oracle3.png rename to docs/img/datasource_configuration/Oracle3.png diff --git a/v1/img/datasource_configuration/Oracle_Schema.png b/docs/img/datasource_configuration/Oracle_Schema.png similarity index 100% rename from v1/img/datasource_configuration/Oracle_Schema.png rename to docs/img/datasource_configuration/Oracle_Schema.png diff --git "a/v2/img/datasource_configuration/Oracle\346\240\241\351\252\214\346\210\220\345\212\237.png" "b/docs/img/datasource_configuration/Oracle\346\240\241\351\252\214\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/datasource_configuration/Oracle\346\240\241\351\252\214\346\210\220\345\212\237.png" rename to "docs/img/datasource_configuration/Oracle\346\240\241\351\252\214\346\210\220\345\212\237.png" diff --git "a/v2/img/datasource_configuration/Oracle\350\216\267\345\217\226Schema.png" "b/docs/img/datasource_configuration/Oracle\350\216\267\345\217\226Schema.png" similarity index 100% rename from "v2/img/datasource_configuration/Oracle\350\216\267\345\217\226Schema.png" rename to "docs/img/datasource_configuration/Oracle\350\216\267\345\217\226Schema.png" diff --git "a/v2/img/datasource_configuration/Oracle\351\223\276\346\216\245\344\277\241\346\201\257.png" "b/docs/img/datasource_configuration/Oracle\351\223\276\346\216\245\344\277\241\346\201\257.png" similarity index 100% rename from "v2/img/datasource_configuration/Oracle\351\223\276\346\216\245\344\277\241\346\201\257.png" rename to "docs/img/datasource_configuration/Oracle\351\223\276\346\216\245\344\277\241\346\201\257.png" diff --git a/v1/img/datasource_configuration/PostgreSQL1.png b/docs/img/datasource_configuration/PostgreSQL1.png similarity index 100% rename from v1/img/datasource_configuration/PostgreSQL1.png rename to docs/img/datasource_configuration/PostgreSQL1.png diff --git a/v1/img/datasource_configuration/PostgreSQL2.png b/docs/img/datasource_configuration/PostgreSQL2.png similarity index 100% rename from v1/img/datasource_configuration/PostgreSQL2.png rename to docs/img/datasource_configuration/PostgreSQL2.png diff --git a/v1/img/datasource_configuration/PostgreSQL3.png b/docs/img/datasource_configuration/PostgreSQL3.png similarity index 100% rename from v1/img/datasource_configuration/PostgreSQL3.png rename to docs/img/datasource_configuration/PostgreSQL3.png diff --git a/v1/img/datasource_configuration/PostgreSQL_Schema.png b/docs/img/datasource_configuration/PostgreSQL_Schema.png similarity index 100% rename from v1/img/datasource_configuration/PostgreSQL_Schema.png rename to docs/img/datasource_configuration/PostgreSQL_Schema.png diff --git "a/v2/img/datasource_configuration/PostgreSQL\346\240\241\351\252\214\346\210\220\345\212\237.png" "b/docs/img/datasource_configuration/PostgreSQL\346\240\241\351\252\214\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/datasource_configuration/PostgreSQL\346\240\241\351\252\214\346\210\220\345\212\237.png" rename to "docs/img/datasource_configuration/PostgreSQL\346\240\241\351\252\214\346\210\220\345\212\237.png" diff --git "a/v2/img/datasource_configuration/PostgreSQL\350\216\267\345\217\226Schema.png" "b/docs/img/datasource_configuration/PostgreSQL\350\216\267\345\217\226Schema.png" similarity index 100% rename from "v2/img/datasource_configuration/PostgreSQL\350\216\267\345\217\226Schema.png" rename to "docs/img/datasource_configuration/PostgreSQL\350\216\267\345\217\226Schema.png" diff --git "a/v2/img/datasource_configuration/PostgreSQL\351\223\276\346\216\245\344\277\241\346\201\257.png" "b/docs/img/datasource_configuration/PostgreSQL\351\223\276\346\216\245\344\277\241\346\201\257.png" similarity index 100% rename from "v2/img/datasource_configuration/PostgreSQL\351\223\276\346\216\245\344\277\241\346\201\257.png" rename to "docs/img/datasource_configuration/PostgreSQL\351\223\276\346\216\245\344\277\241\346\201\257.png" diff --git a/v1/img/datasource_configuration/Presto1.png b/docs/img/datasource_configuration/Presto1.png similarity index 100% rename from v1/img/datasource_configuration/Presto1.png rename to docs/img/datasource_configuration/Presto1.png diff --git a/v1/img/datasource_configuration/Presto2.png b/docs/img/datasource_configuration/Presto2.png similarity index 100% rename from v1/img/datasource_configuration/Presto2.png rename to docs/img/datasource_configuration/Presto2.png diff --git a/v1/img/datasource_configuration/Presto3.png b/docs/img/datasource_configuration/Presto3.png similarity index 100% rename from v1/img/datasource_configuration/Presto3.png rename to docs/img/datasource_configuration/Presto3.png diff --git "a/v2/img/datasource_configuration/SQLServer\346\240\241\351\252\214\346\210\220\345\212\237.png" "b/docs/img/datasource_configuration/SQLServer\346\240\241\351\252\214\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/datasource_configuration/SQLServer\346\240\241\351\252\214\346\210\220\345\212\237.png" rename to "docs/img/datasource_configuration/SQLServer\346\240\241\351\252\214\346\210\220\345\212\237.png" diff --git "a/v2/img/datasource_configuration/SQLServer\350\216\267\345\217\226schema.png" "b/docs/img/datasource_configuration/SQLServer\350\216\267\345\217\226schema.png" similarity index 100% rename from "v2/img/datasource_configuration/SQLServer\350\216\267\345\217\226schema.png" rename to "docs/img/datasource_configuration/SQLServer\350\216\267\345\217\226schema.png" diff --git "a/v2/img/datasource_configuration/SQLServer\351\223\276\346\216\245\344\277\241\346\201\257.png" "b/docs/img/datasource_configuration/SQLServer\351\223\276\346\216\245\344\277\241\346\201\257.png" similarity index 100% rename from "v2/img/datasource_configuration/SQLServer\351\223\276\346\216\245\344\277\241\346\201\257.png" rename to "docs/img/datasource_configuration/SQLServer\351\223\276\346\216\245\344\277\241\346\201\257.png" diff --git a/v1/img/datasource_configuration/SQL_Server1.png b/docs/img/datasource_configuration/SQL_Server1.png similarity index 100% rename from v1/img/datasource_configuration/SQL_Server1.png rename to docs/img/datasource_configuration/SQL_Server1.png diff --git a/v1/img/datasource_configuration/SQL_Server2.png b/docs/img/datasource_configuration/SQL_Server2.png similarity index 100% rename from v1/img/datasource_configuration/SQL_Server2.png rename to docs/img/datasource_configuration/SQL_Server2.png diff --git a/v1/img/datasource_configuration/SQL_Server3.png b/docs/img/datasource_configuration/SQL_Server3.png similarity index 100% rename from v1/img/datasource_configuration/SQL_Server3.png rename to docs/img/datasource_configuration/SQL_Server3.png diff --git a/v1/img/datasource_configuration/SQL_Server_Schema.png b/docs/img/datasource_configuration/SQL_Server_Schema.png similarity index 100% rename from v1/img/datasource_configuration/SQL_Server_Schema.png rename to docs/img/datasource_configuration/SQL_Server_Schema.png diff --git a/v1/img/datasource_configuration/StarRocks1.png b/docs/img/datasource_configuration/StarRocks1.png similarity index 100% rename from v1/img/datasource_configuration/StarRocks1.png rename to docs/img/datasource_configuration/StarRocks1.png diff --git a/v1/img/datasource_configuration/StarRocks2.png b/docs/img/datasource_configuration/StarRocks2.png similarity index 100% rename from v1/img/datasource_configuration/StarRocks2.png rename to docs/img/datasource_configuration/StarRocks2.png diff --git a/v1/img/datasource_configuration/StarRocks3.png b/docs/img/datasource_configuration/StarRocks3.png similarity index 100% rename from v1/img/datasource_configuration/StarRocks3.png rename to docs/img/datasource_configuration/StarRocks3.png diff --git "a/v2/img/datasource_configuration/StarRocks\346\240\241\351\252\214\346\210\220\345\212\237.png" "b/docs/img/datasource_configuration/StarRocks\346\240\241\351\252\214\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/datasource_configuration/StarRocks\346\240\241\351\252\214\346\210\220\345\212\237.png" rename to "docs/img/datasource_configuration/StarRocks\346\240\241\351\252\214\346\210\220\345\212\237.png" diff --git "a/v2/img/datasource_configuration/StarRocks\351\223\276\346\216\245\344\277\241\346\201\257.png" "b/docs/img/datasource_configuration/StarRocks\351\223\276\346\216\245\344\277\241\346\201\257.png" similarity index 100% rename from "v2/img/datasource_configuration/StarRocks\351\223\276\346\216\245\344\277\241\346\201\257.png" rename to "docs/img/datasource_configuration/StarRocks\351\223\276\346\216\245\344\277\241\346\201\257.png" diff --git a/v1/img/datasource_configuration/TiDB1.png b/docs/img/datasource_configuration/TiDB1.png similarity index 100% rename from v1/img/datasource_configuration/TiDB1.png rename to docs/img/datasource_configuration/TiDB1.png diff --git a/v1/img/datasource_configuration/TiDB2.png b/docs/img/datasource_configuration/TiDB2.png similarity index 100% rename from v1/img/datasource_configuration/TiDB2.png rename to docs/img/datasource_configuration/TiDB2.png diff --git a/v1/img/datasource_configuration/TiDB3.png b/docs/img/datasource_configuration/TiDB3.png similarity index 100% rename from v1/img/datasource_configuration/TiDB3.png rename to docs/img/datasource_configuration/TiDB3.png diff --git "a/v2/img/datasource_configuration/TiDB\346\240\241\351\252\214\346\210\220\345\212\237.png" "b/docs/img/datasource_configuration/TiDB\346\240\241\351\252\214\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/datasource_configuration/TiDB\346\240\241\351\252\214\346\210\220\345\212\237.png" rename to "docs/img/datasource_configuration/TiDB\346\240\241\351\252\214\346\210\220\345\212\237.png" diff --git "a/v2/img/datasource_configuration/TiDB\351\223\276\346\216\245\344\277\241\346\201\257.png" "b/docs/img/datasource_configuration/TiDB\351\223\276\346\216\245\344\277\241\346\201\257.png" similarity index 100% rename from "v2/img/datasource_configuration/TiDB\351\223\276\346\216\245\344\277\241\346\201\257.png" rename to "docs/img/datasource_configuration/TiDB\351\223\276\346\216\245\344\277\241\346\201\257.png" diff --git "a/v1/img/datasource_configuration/\344\270\212\344\274\240\351\251\261\345\212\250.png" "b/docs/img/datasource_configuration/\344\270\212\344\274\240\351\251\261\345\212\250.png" similarity index 100% rename from "v1/img/datasource_configuration/\344\270\212\344\274\240\351\251\261\345\212\250.png" rename to "docs/img/datasource_configuration/\344\270\212\344\274\240\351\251\261\345\212\250.png" diff --git "a/v1/img/datasource_configuration/\344\277\235\345\255\230api\346\225\260\346\215\256\346\272\220.png" "b/docs/img/datasource_configuration/\344\277\235\345\255\230api\346\225\260\346\215\256\346\272\220.png" similarity index 100% rename from "v1/img/datasource_configuration/\344\277\235\345\255\230api\346\225\260\346\215\256\346\272\220.png" rename to "docs/img/datasource_configuration/\344\277\235\345\255\230api\346\225\260\346\215\256\346\272\220.png" diff --git "a/v1/img/datasource_configuration/\345\237\272\347\241\200\344\277\241\346\201\257.png" "b/docs/img/datasource_configuration/\345\237\272\347\241\200\344\277\241\346\201\257.png" similarity index 100% rename from "v1/img/datasource_configuration/\345\237\272\347\241\200\344\277\241\346\201\257.png" rename to "docs/img/datasource_configuration/\345\237\272\347\241\200\344\277\241\346\201\257.png" diff --git "a/v1/img/datasource_configuration/\346\224\257\346\214\201\347\232\204\346\225\260\346\215\256\346\272\220\347\261\273\345\236\213.png" "b/docs/img/datasource_configuration/\346\224\257\346\214\201\347\232\204\346\225\260\346\215\256\346\272\220\347\261\273\345\236\213.png" similarity index 100% rename from "v1/img/datasource_configuration/\346\224\257\346\214\201\347\232\204\346\225\260\346\215\256\346\272\220\347\261\273\345\236\213.png" rename to "docs/img/datasource_configuration/\346\224\257\346\214\201\347\232\204\346\225\260\346\215\256\346\272\220\347\261\273\345\236\213.png" diff --git "a/v1/img/datasource_configuration/\346\225\260\346\215\256\345\272\223\346\225\260\346\215\256\346\272\220\344\277\235\345\255\230.png" "b/docs/img/datasource_configuration/\346\225\260\346\215\256\345\272\223\346\225\260\346\215\256\346\272\220\344\277\235\345\255\230.png" similarity index 100% rename from "v1/img/datasource_configuration/\346\225\260\346\215\256\345\272\223\346\225\260\346\215\256\346\272\220\344\277\235\345\255\230.png" rename to "docs/img/datasource_configuration/\346\225\260\346\215\256\345\272\223\346\225\260\346\215\256\346\272\220\344\277\235\345\255\230.png" diff --git "a/v2/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\346\224\257\346\214\201\345\217\202\346\225\260\346\217\220\345\217\226.png" "b/docs/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\346\224\257\346\214\201\345\217\202\346\225\260\346\217\220\345\217\226.png" similarity index 100% rename from "v2/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\346\224\257\346\214\201\345\217\202\346\225\260\346\217\220\345\217\226.png" rename to "docs/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\346\224\257\346\214\201\345\217\202\346\225\260\346\217\220\345\217\226.png" diff --git "a/v2/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\346\224\257\346\214\201\345\217\202\346\225\260\346\217\220\345\217\2262.png" "b/docs/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\346\224\257\346\214\201\345\217\202\346\225\260\346\217\220\345\217\2262.png" similarity index 100% rename from "v2/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\346\224\257\346\214\201\345\217\202\346\225\260\346\217\220\345\217\2262.png" rename to "docs/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\346\224\257\346\214\201\345\217\202\346\225\260\346\217\220\345\217\2262.png" diff --git "a/v2/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\346\224\257\346\214\201\346\227\266\351\227\264\345\207\275\346\225\260.png" "b/docs/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\346\224\257\346\214\201\346\227\266\351\227\264\345\207\275\346\225\260.png" similarity index 100% rename from "v2/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\346\224\257\346\214\201\346\227\266\351\227\264\345\207\275\346\225\260.png" rename to "docs/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\346\224\257\346\214\201\346\227\266\351\227\264\345\207\275\346\225\260.png" diff --git "a/v1/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\347\256\241\347\220\206_\346\267\273\345\212\240\351\251\261\345\212\250.png" "b/docs/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\347\256\241\347\220\206_\346\267\273\345\212\240\351\251\261\345\212\250.png" similarity index 100% rename from "v1/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\347\256\241\347\220\206_\346\267\273\345\212\240\351\251\261\345\212\250.png" rename to "docs/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\347\256\241\347\220\206_\346\267\273\345\212\240\351\251\261\345\212\250.png" diff --git "a/v1/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\347\256\241\347\220\206\351\241\265\351\235\242.png" "b/docs/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\347\256\241\347\220\206\351\241\265\351\235\242.png" similarity index 100% rename from "v1/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\347\256\241\347\220\206\351\241\265\351\235\242.png" rename to "docs/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\347\256\241\347\220\206\351\241\265\351\235\242.png" diff --git "a/v1/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\351\251\261\345\212\250\347\256\241\347\220\206\345\205\245\345\217\243.png" "b/docs/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\351\251\261\345\212\250\347\256\241\347\220\206\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\351\251\261\345\212\250\347\256\241\347\220\206\345\205\245\345\217\243.png" rename to "docs/img/datasource_configuration/\346\225\260\346\215\256\346\272\220\351\251\261\345\212\250\347\256\241\347\220\206\345\205\245\345\217\243.png" diff --git "a/v1/img/datasource_configuration/\346\225\260\346\215\256\350\241\250.png" "b/docs/img/datasource_configuration/\346\225\260\346\215\256\350\241\250.png" similarity index 100% rename from "v1/img/datasource_configuration/\346\225\260\346\215\256\350\241\250.png" rename to "docs/img/datasource_configuration/\346\225\260\346\215\256\350\241\250.png" diff --git "a/v1/img/datasource_configuration/\346\226\260\345\242\236.png" "b/docs/img/datasource_configuration/\346\226\260\345\242\236.png" similarity index 100% rename from "v1/img/datasource_configuration/\346\226\260\345\242\236.png" rename to "docs/img/datasource_configuration/\346\226\260\345\242\236.png" diff --git "a/v1/img/datasource_configuration/\346\226\260\345\242\236api\346\225\260\346\215\256\346\272\220.png" "b/docs/img/datasource_configuration/\346\226\260\345\242\236api\346\225\260\346\215\256\346\272\220.png" similarity index 100% rename from "v1/img/datasource_configuration/\346\226\260\345\242\236api\346\225\260\346\215\256\346\272\220.png" rename to "docs/img/datasource_configuration/\346\226\260\345\242\236api\346\225\260\346\215\256\346\272\220.png" diff --git "a/v1/img/datasource_configuration/\346\240\241\351\252\214.png" "b/docs/img/datasource_configuration/\346\240\241\351\252\214.png" similarity index 100% rename from "v1/img/datasource_configuration/\346\240\241\351\252\214.png" rename to "docs/img/datasource_configuration/\346\240\241\351\252\214.png" diff --git "a/v1/img/datasource_configuration/\346\240\241\351\252\214api\346\225\260\346\215\256\346\272\220.png" "b/docs/img/datasource_configuration/\346\240\241\351\252\214api\346\225\260\346\215\256\346\272\220.png" similarity index 100% rename from "v1/img/datasource_configuration/\346\240\241\351\252\214api\346\225\260\346\215\256\346\272\220.png" rename to "docs/img/datasource_configuration/\346\240\241\351\252\214api\346\225\260\346\215\256\346\272\220.png" diff --git "a/v2/img/datasource_configuration/\346\267\273\345\212\240Excel.png" "b/docs/img/datasource_configuration/\346\267\273\345\212\240Excel.png" similarity index 100% rename from "v2/img/datasource_configuration/\346\267\273\345\212\240Excel.png" rename to "docs/img/datasource_configuration/\346\267\273\345\212\240Excel.png" diff --git "a/v1/img/datasource_configuration/\346\267\273\345\212\240api\346\225\260\346\215\256\350\241\250.png" "b/docs/img/datasource_configuration/\346\267\273\345\212\240api\346\225\260\346\215\256\350\241\250.png" similarity index 100% rename from "v1/img/datasource_configuration/\346\267\273\345\212\240api\346\225\260\346\215\256\350\241\250.png" rename to "docs/img/datasource_configuration/\346\267\273\345\212\240api\346\225\260\346\215\256\350\241\250.png" diff --git "a/v2/img/datasource_configuration/\346\267\273\345\212\240\350\277\234\347\250\213Excel.png" "b/docs/img/datasource_configuration/\346\267\273\345\212\240\350\277\234\347\250\213Excel.png" similarity index 100% rename from "v2/img/datasource_configuration/\346\267\273\345\212\240\350\277\234\347\250\213Excel.png" rename to "docs/img/datasource_configuration/\346\267\273\345\212\240\350\277\234\347\250\213Excel.png" diff --git "a/v1/img/datasource_configuration/\347\274\226\350\276\221.png" "b/docs/img/datasource_configuration/\347\274\226\350\276\221.png" similarity index 100% rename from "v1/img/datasource_configuration/\347\274\226\350\276\221.png" rename to "docs/img/datasource_configuration/\347\274\226\350\276\221.png" diff --git "a/v1/img/datasource_configuration/\350\257\267\346\261\202\345\217\202\346\225\260.png" "b/docs/img/datasource_configuration/\350\257\267\346\261\202\345\217\202\346\225\260.png" similarity index 100% rename from "v1/img/datasource_configuration/\350\257\267\346\261\202\345\217\202\346\225\260.png" rename to "docs/img/datasource_configuration/\350\257\267\346\261\202\345\217\202\346\225\260.png" diff --git "a/v1/img/datasource_configuration/\350\257\267\346\261\202\345\217\202\346\225\2602.png" "b/docs/img/datasource_configuration/\350\257\267\346\261\202\345\217\202\346\225\2602.png" similarity index 100% rename from "v1/img/datasource_configuration/\350\257\267\346\261\202\345\217\202\346\225\2602.png" rename to "docs/img/datasource_configuration/\350\257\267\346\261\202\345\217\202\346\225\2602.png" diff --git "a/v2/img/datasource_configuration/\350\257\267\346\261\202\345\217\202\346\225\2603.png" "b/docs/img/datasource_configuration/\350\257\267\346\261\202\345\217\202\346\225\2603.png" similarity index 100% rename from "v2/img/datasource_configuration/\350\257\267\346\261\202\345\217\202\346\225\2603.png" rename to "docs/img/datasource_configuration/\350\257\267\346\261\202\345\217\202\346\225\2603.png" diff --git "a/v1/img/datasource_configuration/\350\257\267\346\261\202\345\217\202\346\225\2604.png" "b/docs/img/datasource_configuration/\350\257\267\346\261\202\345\217\202\346\225\2604.png" similarity index 100% rename from "v1/img/datasource_configuration/\350\257\267\346\261\202\345\217\202\346\225\2604.png" rename to "docs/img/datasource_configuration/\350\257\267\346\261\202\345\217\202\346\225\2604.png" diff --git "a/v1/img/datasource_configuration/\350\266\205\346\227\266\346\227\266\351\227\264.png" "b/docs/img/datasource_configuration/\350\266\205\346\227\266\346\227\266\351\227\264.png" similarity index 100% rename from "v1/img/datasource_configuration/\350\266\205\346\227\266\346\227\266\351\227\264.png" rename to "docs/img/datasource_configuration/\350\266\205\346\227\266\346\227\266\351\227\264.png" diff --git "a/v2/img/datasource_configuration/\351\200\211\346\213\251API.png" "b/docs/img/datasource_configuration/\351\200\211\346\213\251API.png" similarity index 100% rename from "v2/img/datasource_configuration/\351\200\211\346\213\251API.png" rename to "docs/img/datasource_configuration/\351\200\211\346\213\251API.png" diff --git "a/v2/img/datasource_configuration/\351\200\211\346\213\251AWSRedshift.png" "b/docs/img/datasource_configuration/\351\200\211\346\213\251AWSRedshift.png" similarity index 100% rename from "v2/img/datasource_configuration/\351\200\211\346\213\251AWSRedshift.png" rename to "docs/img/datasource_configuration/\351\200\211\346\213\251AWSRedshift.png" diff --git "a/v2/img/datasource_configuration/\351\200\211\346\213\251ClickHouse\346\225\260\346\215\256\346\272\220.png" "b/docs/img/datasource_configuration/\351\200\211\346\213\251ClickHouse\346\225\260\346\215\256\346\272\220.png" similarity index 100% rename from "v2/img/datasource_configuration/\351\200\211\346\213\251ClickHouse\346\225\260\346\215\256\346\272\220.png" rename to "docs/img/datasource_configuration/\351\200\211\346\213\251ClickHouse\346\225\260\346\215\256\346\272\220.png" diff --git "a/v2/img/datasource_configuration/\351\200\211\346\213\251DB2.png" "b/docs/img/datasource_configuration/\351\200\211\346\213\251DB2.png" similarity index 100% rename from "v2/img/datasource_configuration/\351\200\211\346\213\251DB2.png" rename to "docs/img/datasource_configuration/\351\200\211\346\213\251DB2.png" diff --git "a/v2/img/datasource_configuration/\351\200\211\346\213\251Doris.png" "b/docs/img/datasource_configuration/\351\200\211\346\213\251Doris.png" similarity index 100% rename from "v2/img/datasource_configuration/\351\200\211\346\213\251Doris.png" rename to "docs/img/datasource_configuration/\351\200\211\346\213\251Doris.png" diff --git "a/v2/img/datasource_configuration/\351\200\211\346\213\251Impala.png" "b/docs/img/datasource_configuration/\351\200\211\346\213\251Impala.png" similarity index 100% rename from "v2/img/datasource_configuration/\351\200\211\346\213\251Impala.png" rename to "docs/img/datasource_configuration/\351\200\211\346\213\251Impala.png" diff --git "a/v2/img/datasource_configuration/\351\200\211\346\213\251MariaDB.png" "b/docs/img/datasource_configuration/\351\200\211\346\213\251MariaDB.png" similarity index 100% rename from "v2/img/datasource_configuration/\351\200\211\346\213\251MariaDB.png" rename to "docs/img/datasource_configuration/\351\200\211\346\213\251MariaDB.png" diff --git "a/v2/img/datasource_configuration/\351\200\211\346\213\251Mongodb-BI.png" "b/docs/img/datasource_configuration/\351\200\211\346\213\251Mongodb-BI.png" similarity index 100% rename from "v2/img/datasource_configuration/\351\200\211\346\213\251Mongodb-BI.png" rename to "docs/img/datasource_configuration/\351\200\211\346\213\251Mongodb-BI.png" diff --git "a/v2/img/datasource_configuration/\351\200\211\346\213\251Oracle.png" "b/docs/img/datasource_configuration/\351\200\211\346\213\251Oracle.png" similarity index 100% rename from "v2/img/datasource_configuration/\351\200\211\346\213\251Oracle.png" rename to "docs/img/datasource_configuration/\351\200\211\346\213\251Oracle.png" diff --git "a/v2/img/datasource_configuration/\351\200\211\346\213\251PostgreSQL.png" "b/docs/img/datasource_configuration/\351\200\211\346\213\251PostgreSQL.png" similarity index 100% rename from "v2/img/datasource_configuration/\351\200\211\346\213\251PostgreSQL.png" rename to "docs/img/datasource_configuration/\351\200\211\346\213\251PostgreSQL.png" diff --git "a/v2/img/datasource_configuration/\351\200\211\346\213\251SQLServer.png" "b/docs/img/datasource_configuration/\351\200\211\346\213\251SQLServer.png" similarity index 100% rename from "v2/img/datasource_configuration/\351\200\211\346\213\251SQLServer.png" rename to "docs/img/datasource_configuration/\351\200\211\346\213\251SQLServer.png" diff --git "a/v2/img/datasource_configuration/\351\200\211\346\213\251StarRocks.png" "b/docs/img/datasource_configuration/\351\200\211\346\213\251StarRocks.png" similarity index 100% rename from "v2/img/datasource_configuration/\351\200\211\346\213\251StarRocks.png" rename to "docs/img/datasource_configuration/\351\200\211\346\213\251StarRocks.png" diff --git "a/v2/img/datasource_configuration/\351\200\211\346\213\251TiDB.png" "b/docs/img/datasource_configuration/\351\200\211\346\213\251TiDB.png" similarity index 100% rename from "v2/img/datasource_configuration/\351\200\211\346\213\251TiDB.png" rename to "docs/img/datasource_configuration/\351\200\211\346\213\251TiDB.png" diff --git "a/v1/img/datasource_configuration/\351\200\211\346\213\251\344\270\212\344\274\240\347\232\204\351\251\261\345\212\250.png" "b/docs/img/datasource_configuration/\351\200\211\346\213\251\344\270\212\344\274\240\347\232\204\351\251\261\345\212\250.png" similarity index 100% rename from "v1/img/datasource_configuration/\351\200\211\346\213\251\344\270\212\344\274\240\347\232\204\351\251\261\345\212\250.png" rename to "docs/img/datasource_configuration/\351\200\211\346\213\251\344\270\212\344\274\240\347\232\204\351\251\261\345\212\250.png" diff --git "a/v1/img/datasource_configuration/\351\200\211\346\213\251\345\255\227\347\254\246\351\233\206.png" "b/docs/img/datasource_configuration/\351\200\211\346\213\251\345\255\227\347\254\246\351\233\206.png" similarity index 100% rename from "v1/img/datasource_configuration/\351\200\211\346\213\251\345\255\227\347\254\246\351\233\206.png" rename to "docs/img/datasource_configuration/\351\200\211\346\213\251\345\255\227\347\254\246\351\233\206.png" diff --git "a/v2/img/datasource_configuration/\351\200\211\346\213\251\346\225\260\346\215\256\346\272\2201.png" "b/docs/img/datasource_configuration/\351\200\211\346\213\251\346\225\260\346\215\256\346\272\2201.png" similarity index 100% rename from "v2/img/datasource_configuration/\351\200\211\346\213\251\346\225\260\346\215\256\346\272\2201.png" rename to "docs/img/datasource_configuration/\351\200\211\346\213\251\346\225\260\346\215\256\346\272\2201.png" diff --git "a/v1/img/datasource_configuration/\351\200\211\346\213\251\351\251\261\345\212\250.png" "b/docs/img/datasource_configuration/\351\200\211\346\213\251\351\251\261\345\212\250.png" similarity index 100% rename from "v1/img/datasource_configuration/\351\200\211\346\213\251\351\251\261\345\212\250.png" rename to "docs/img/datasource_configuration/\351\200\211\346\213\251\351\251\261\345\212\250.png" diff --git a/v1/img/dev_manual/3dpie_js.png b/docs/img/dev_manual/3dpie_js.png similarity index 100% rename from v1/img/dev_manual/3dpie_js.png rename to docs/img/dev_manual/3dpie_js.png diff --git a/v1/img/dev_manual/KingBaseConfig.png b/docs/img/dev_manual/KingBaseConfig.png similarity index 100% rename from v1/img/dev_manual/KingBaseConfig.png rename to docs/img/dev_manual/KingBaseConfig.png diff --git a/v1/img/dev_manual/KingBaseConstants.png b/docs/img/dev_manual/KingBaseConstants.png similarity index 100% rename from v1/img/dev_manual/KingBaseConstants.png rename to docs/img/dev_manual/KingBaseConstants.png diff --git a/v1/img/dev_manual/KingBaseDsProvider.png b/docs/img/dev_manual/KingBaseDsProvider.png similarity index 100% rename from v1/img/dev_manual/KingBaseDsProvider.png rename to docs/img/dev_manual/KingBaseDsProvider.png diff --git a/v1/img/dev_manual/KingBaseQueryProvider.png b/docs/img/dev_manual/KingBaseQueryProvider.png similarity index 100% rename from v1/img/dev_manual/KingBaseQueryProvider.png rename to docs/img/dev_manual/KingBaseQueryProvider.png diff --git a/v1/img/dev_manual/KingBaseService.png b/docs/img/dev_manual/KingBaseService.png similarity index 100% rename from v1/img/dev_manual/KingBaseService.png rename to docs/img/dev_manual/KingBaseService.png diff --git a/v1/img/dev_manual/PluginViewParam.png b/docs/img/dev_manual/PluginViewParam.png similarity index 100% rename from v1/img/dev_manual/PluginViewParam.png rename to docs/img/dev_manual/PluginViewParam.png diff --git a/v1/img/dev_manual/ViewPluginService_class.png b/docs/img/dev_manual/ViewPluginService_class.png similarity index 100% rename from v1/img/dev_manual/ViewPluginService_class.png rename to docs/img/dev_manual/ViewPluginService_class.png diff --git a/v1/img/dev_manual/ViewPluginService_java.png b/docs/img/dev_manual/ViewPluginService_java.png similarity index 100% rename from v1/img/dev_manual/ViewPluginService_java.png rename to docs/img/dev_manual/ViewPluginService_java.png diff --git a/v1/img/dev_manual/build1.png b/docs/img/dev_manual/build1.png similarity index 100% rename from v1/img/dev_manual/build1.png rename to docs/img/dev_manual/build1.png diff --git a/v1/img/dev_manual/build2.png b/docs/img/dev_manual/build2.png similarity index 100% rename from v1/img/dev_manual/build2.png rename to docs/img/dev_manual/build2.png diff --git a/v1/img/dev_manual/build_json.png b/docs/img/dev_manual/build_json.png similarity index 100% rename from v1/img/dev_manual/build_json.png rename to docs/img/dev_manual/build_json.png diff --git a/v1/img/dev_manual/data_vue.png b/docs/img/dev_manual/data_vue.png similarity index 100% rename from v1/img/dev_manual/data_vue.png rename to docs/img/dev_manual/data_vue.png diff --git a/v1/img/dev_manual/dataease-extensions.png b/docs/img/dev_manual/dataease-extensions.png similarity index 100% rename from v1/img/dev_manual/dataease-extensions.png rename to docs/img/dev_manual/dataease-extensions.png diff --git a/v1/img/dev_manual/demo-pom.png b/docs/img/dev_manual/demo-pom.png similarity index 100% rename from v1/img/dev_manual/demo-pom.png rename to docs/img/dev_manual/demo-pom.png diff --git a/v1/img/dev_manual/demo-pom_kingbase.png b/docs/img/dev_manual/demo-pom_kingbase.png similarity index 100% rename from v1/img/dev_manual/demo-pom_kingbase.png rename to docs/img/dev_manual/demo-pom_kingbase.png diff --git a/v1/img/dev_manual/en_js.png b/docs/img/dev_manual/en_js.png similarity index 100% rename from v1/img/dev_manual/en_js.png rename to docs/img/dev_manual/en_js.png diff --git a/v1/img/dev_manual/env.png b/docs/img/dev_manual/env.png similarity index 100% rename from v1/img/dev_manual/env.png rename to docs/img/dev_manual/env.png diff --git a/v1/img/dev_manual/frontend-development-env.png b/docs/img/dev_manual/frontend-development-env.png similarity index 100% rename from v1/img/dev_manual/frontend-development-env.png rename to docs/img/dev_manual/frontend-development-env.png diff --git a/v1/img/dev_manual/frontend-production-env.png b/docs/img/dev_manual/frontend-production-env.png similarity index 100% rename from v1/img/dev_manual/frontend-production-env.png rename to docs/img/dev_manual/frontend-production-env.png diff --git a/v1/img/dev_manual/import-pom1.png b/docs/img/dev_manual/import-pom1.png similarity index 100% rename from v1/img/dev_manual/import-pom1.png rename to docs/img/dev_manual/import-pom1.png diff --git a/v1/img/dev_manual/import-pom2.png b/docs/img/dev_manual/import-pom2.png similarity index 100% rename from v1/img/dev_manual/import-pom2.png rename to docs/img/dev_manual/import-pom2.png diff --git a/v1/img/dev_manual/index_vue.png b/docs/img/dev_manual/index_vue.png similarity index 100% rename from v1/img/dev_manual/index_vue.png rename to docs/img/dev_manual/index_vue.png diff --git a/v1/img/dev_manual/install-frontend.png b/docs/img/dev_manual/install-frontend.png similarity index 100% rename from v1/img/dev_manual/install-frontend.png rename to docs/img/dev_manual/install-frontend.png diff --git a/v1/img/dev_manual/kingbase-frontend-dome.png b/docs/img/dev_manual/kingbase-frontend-dome.png similarity index 100% rename from v1/img/dev_manual/kingbase-frontend-dome.png rename to docs/img/dev_manual/kingbase-frontend-dome.png diff --git a/v1/img/dev_manual/kingbase-frontend-pom.png b/docs/img/dev_manual/kingbase-frontend-pom.png similarity index 100% rename from v1/img/dev_manual/kingbase-frontend-pom.png rename to docs/img/dev_manual/kingbase-frontend-pom.png diff --git a/v1/img/dev_manual/kingbase-frontend.png b/docs/img/dev_manual/kingbase-frontend.png similarity index 100% rename from v1/img/dev_manual/kingbase-frontend.png rename to docs/img/dev_manual/kingbase-frontend.png diff --git a/v1/img/dev_manual/kingbase-pom2.png b/docs/img/dev_manual/kingbase-pom2.png similarity index 100% rename from v1/img/dev_manual/kingbase-pom2.png rename to docs/img/dev_manual/kingbase-pom2.png diff --git a/v1/img/dev_manual/kingbase.png b/docs/img/dev_manual/kingbase.png similarity index 100% rename from v1/img/dev_manual/kingbase.png rename to docs/img/dev_manual/kingbase.png diff --git a/v1/img/dev_manual/kingbaseDriver.png b/docs/img/dev_manual/kingbaseDriver.png similarity index 100% rename from v1/img/dev_manual/kingbaseDriver.png rename to docs/img/dev_manual/kingbaseDriver.png diff --git a/v1/img/dev_manual/kingbase_vue.png b/docs/img/dev_manual/kingbase_vue.png similarity index 100% rename from v1/img/dev_manual/kingbase_vue.png rename to docs/img/dev_manual/kingbase_vue.png diff --git "a/v1/img/dev_manual/kingbase_\346\225\260\346\215\256\346\272\220\346\217\222\344\273\266.png" "b/docs/img/dev_manual/kingbase_\346\225\260\346\215\256\346\272\220\346\217\222\344\273\266.png" similarity index 100% rename from "v1/img/dev_manual/kingbase_\346\225\260\346\215\256\346\272\220\346\217\222\344\273\266.png" rename to "docs/img/dev_manual/kingbase_\346\225\260\346\215\256\346\272\220\346\217\222\344\273\266.png" diff --git a/v1/img/dev_manual/maven.png b/docs/img/dev_manual/maven.png similarity index 100% rename from v1/img/dev_manual/maven.png rename to docs/img/dev_manual/maven.png diff --git a/v1/img/dev_manual/maven_kingbase.png b/docs/img/dev_manual/maven_kingbase.png similarity index 100% rename from v1/img/dev_manual/maven_kingbase.png rename to docs/img/dev_manual/maven_kingbase.png diff --git a/v1/img/dev_manual/modify-demo-dataset.png b/docs/img/dev_manual/modify-demo-dataset.png similarity index 100% rename from v1/img/dev_manual/modify-demo-dataset.png rename to docs/img/dev_manual/modify-demo-dataset.png diff --git a/v1/img/dev_manual/modify-demo-dataset1.png b/docs/img/dev_manual/modify-demo-dataset1.png similarity index 100% rename from v1/img/dev_manual/modify-demo-dataset1.png rename to docs/img/dev_manual/modify-demo-dataset1.png diff --git a/v1/img/dev_manual/new-project.png b/docs/img/dev_manual/new-project.png similarity index 100% rename from v1/img/dev_manual/new-project.png rename to docs/img/dev_manual/new-project.png diff --git a/v1/img/dev_manual/npm-install.png b/docs/img/dev_manual/npm-install.png similarity index 100% rename from v1/img/dev_manual/npm-install.png rename to docs/img/dev_manual/npm-install.png diff --git a/v1/img/dev_manual/package.png b/docs/img/dev_manual/package.png similarity index 100% rename from v1/img/dev_manual/package.png rename to docs/img/dev_manual/package.png diff --git a/v1/img/dev_manual/package_kingbase.png b/docs/img/dev_manual/package_kingbase.png similarity index 100% rename from v1/img/dev_manual/package_kingbase.png rename to docs/img/dev_manual/package_kingbase.png diff --git a/v1/img/dev_manual/picture.png b/docs/img/dev_manual/picture.png similarity index 100% rename from v1/img/dev_manual/picture.png rename to docs/img/dev_manual/picture.png diff --git a/v1/img/dev_manual/plugin_build_json.png b/docs/img/dev_manual/plugin_build_json.png similarity index 100% rename from v1/img/dev_manual/plugin_build_json.png rename to docs/img/dev_manual/plugin_build_json.png diff --git a/v1/img/dev_manual/plugin_json.png b/docs/img/dev_manual/plugin_json.png similarity index 100% rename from v1/img/dev_manual/plugin_json.png rename to docs/img/dev_manual/plugin_json.png diff --git a/v1/img/dev_manual/remove-frontend.png b/docs/img/dev_manual/remove-frontend.png similarity index 100% rename from v1/img/dev_manual/remove-frontend.png rename to docs/img/dev_manual/remove-frontend.png diff --git a/v1/img/dev_manual/run-backend.png b/docs/img/dev_manual/run-backend.png similarity index 100% rename from v1/img/dev_manual/run-backend.png rename to docs/img/dev_manual/run-backend.png diff --git a/v1/img/dev_manual/staticResources.png b/docs/img/dev_manual/staticResources.png similarity index 100% rename from v1/img/dev_manual/staticResources.png rename to docs/img/dev_manual/staticResources.png diff --git a/v1/img/dev_manual/style_vue.png b/docs/img/dev_manual/style_vue.png similarity index 100% rename from v1/img/dev_manual/style_vue.png rename to docs/img/dev_manual/style_vue.png diff --git a/v1/img/dev_manual/tw_js.png b/docs/img/dev_manual/tw_js.png similarity index 100% rename from v1/img/dev_manual/tw_js.png rename to docs/img/dev_manual/tw_js.png diff --git a/v1/img/dev_manual/type_vue.png b/docs/img/dev_manual/type_vue.png similarity index 100% rename from v1/img/dev_manual/type_vue.png rename to docs/img/dev_manual/type_vue.png diff --git a/v1/img/dev_manual/type_vue2.png b/docs/img/dev_manual/type_vue2.png similarity index 100% rename from v1/img/dev_manual/type_vue2.png rename to docs/img/dev_manual/type_vue2.png diff --git a/v1/img/dev_manual/view-3dpie-front-pom.png b/docs/img/dev_manual/view-3dpie-front-pom.png similarity index 100% rename from v1/img/dev_manual/view-3dpie-front-pom.png rename to docs/img/dev_manual/view-3dpie-front-pom.png diff --git a/v1/img/dev_manual/view-3dpie-pom2.png b/docs/img/dev_manual/view-3dpie-pom2.png similarity index 100% rename from v1/img/dev_manual/view-3dpie-pom2.png rename to docs/img/dev_manual/view-3dpie-pom2.png diff --git a/v1/img/dev_manual/view-bubblemap-frontend-dome.png b/docs/img/dev_manual/view-bubblemap-frontend-dome.png similarity index 100% rename from v1/img/dev_manual/view-bubblemap-frontend-dome.png rename to docs/img/dev_manual/view-bubblemap-frontend-dome.png diff --git a/v1/img/dev_manual/view-bubblemap-frontend.png b/docs/img/dev_manual/view-bubblemap-frontend.png similarity index 100% rename from v1/img/dev_manual/view-bubblemap-frontend.png rename to docs/img/dev_manual/view-bubblemap-frontend.png diff --git a/v1/img/dev_manual/viewType.png b/docs/img/dev_manual/viewType.png similarity index 100% rename from v1/img/dev_manual/viewType.png rename to docs/img/dev_manual/viewType.png diff --git a/v1/img/dev_manual/webpack.async-plugins.png b/docs/img/dev_manual/webpack.async-plugins.png similarity index 100% rename from v1/img/dev_manual/webpack.async-plugins.png rename to docs/img/dev_manual/webpack.async-plugins.png diff --git a/v1/img/dev_manual/webpack.png b/docs/img/dev_manual/webpack.png similarity index 100% rename from v1/img/dev_manual/webpack.png rename to docs/img/dev_manual/webpack.png diff --git a/v1/img/dev_manual/windows-idea-1.png b/docs/img/dev_manual/windows-idea-1.png similarity index 100% rename from v1/img/dev_manual/windows-idea-1.png rename to docs/img/dev_manual/windows-idea-1.png diff --git a/v1/img/dev_manual/windows-idea-2.png b/docs/img/dev_manual/windows-idea-2.png similarity index 100% rename from v1/img/dev_manual/windows-idea-2.png rename to docs/img/dev_manual/windows-idea-2.png diff --git a/v1/img/dev_manual/zh_js.png b/docs/img/dev_manual/zh_js.png similarity index 100% rename from v1/img/dev_manual/zh_js.png rename to docs/img/dev_manual/zh_js.png diff --git "a/v1/img/dev_manual/\345\233\276\350\241\250\345\255\227\346\256\265.png" "b/docs/img/dev_manual/\345\233\276\350\241\250\345\255\227\346\256\265.png" similarity index 100% rename from "v1/img/dev_manual/\345\233\276\350\241\250\345\255\227\346\256\265.png" rename to "docs/img/dev_manual/\345\233\276\350\241\250\345\255\227\346\256\265.png" diff --git "a/v1/img/dev_manual/\345\233\276\350\241\250\345\272\223.png" "b/docs/img/dev_manual/\345\233\276\350\241\250\345\272\223.png" similarity index 100% rename from "v1/img/dev_manual/\345\233\276\350\241\250\345\272\223.png" rename to "docs/img/dev_manual/\345\233\276\350\241\250\345\272\223.png" diff --git "a/v1/img/dev_manual/\345\233\276\350\241\250\346\240\267\345\274\217.png" "b/docs/img/dev_manual/\345\233\276\350\241\250\346\240\267\345\274\217.png" similarity index 100% rename from "v1/img/dev_manual/\345\233\276\350\241\250\346\240\267\345\274\217.png" rename to "docs/img/dev_manual/\345\233\276\350\241\250\346\240\267\345\274\217.png" diff --git "a/v1/img/dev_manual/\345\233\276\350\241\250\347\261\273\345\236\213.png" "b/docs/img/dev_manual/\345\233\276\350\241\250\347\261\273\345\236\213.png" similarity index 100% rename from "v1/img/dev_manual/\345\233\276\350\241\250\347\261\273\345\236\213.png" rename to "docs/img/dev_manual/\345\233\276\350\241\250\347\261\273\345\236\213.png" diff --git "a/v1/img/dev_manual/\345\233\276\350\241\250\347\261\273\345\236\213\351\200\211\346\213\251.png" "b/docs/img/dev_manual/\345\233\276\350\241\250\347\261\273\345\236\213\351\200\211\346\213\251.png" similarity index 100% rename from "v1/img/dev_manual/\345\233\276\350\241\250\347\261\273\345\236\213\351\200\211\346\213\251.png" rename to "docs/img/dev_manual/\345\233\276\350\241\250\347\261\273\345\236\213\351\200\211\346\213\251.png" diff --git "a/v1/img/dev_manual/\345\256\211\350\243\205\346\217\222\344\273\266.png" "b/docs/img/dev_manual/\345\256\211\350\243\205\346\217\222\344\273\266.png" similarity index 100% rename from "v1/img/dev_manual/\345\256\211\350\243\205\346\217\222\344\273\266.png" rename to "docs/img/dev_manual/\345\256\211\350\243\205\346\217\222\344\273\266.png" diff --git "a/v1/img/dev_manual/\345\256\211\350\243\205\346\217\222\344\273\266_kingbase.png" "b/docs/img/dev_manual/\345\256\211\350\243\205\346\217\222\344\273\266_kingbase.png" similarity index 100% rename from "v1/img/dev_manual/\345\256\211\350\243\205\346\217\222\344\273\266_kingbase.png" rename to "docs/img/dev_manual/\345\256\211\350\243\205\346\217\222\344\273\266_kingbase.png" diff --git "a/v1/img/dev_manual/\347\261\273\345\236\213\345\233\276\346\240\207.png" "b/docs/img/dev_manual/\347\261\273\345\236\213\345\233\276\346\240\207.png" similarity index 100% rename from "v1/img/dev_manual/\347\261\273\345\236\213\345\233\276\346\240\207.png" rename to "docs/img/dev_manual/\347\261\273\345\236\213\345\233\276\346\240\207.png" diff --git "a/v2/img/embedded/1.1 \345\265\214\345\205\245\345\274\217BI\345\212\237\350\203\275\346\236\266\346\236\204\357\274\2102\357\274\211.png" "b/docs/img/embedded/1.1 \345\265\214\345\205\245\345\274\217BI\345\212\237\350\203\275\346\236\266\346\236\204\357\274\2102\357\274\211.png" similarity index 100% rename from "v2/img/embedded/1.1 \345\265\214\345\205\245\345\274\217BI\345\212\237\350\203\275\346\236\266\346\236\204\357\274\2102\357\274\211.png" rename to "docs/img/embedded/1.1 \345\265\214\345\205\245\345\274\217BI\345\212\237\350\203\275\346\236\266\346\236\204\357\274\2102\357\274\211.png" diff --git "a/v2/img/embedded/1.1\345\265\214\345\205\245\345\274\217BI\345\212\237\350\203\275\346\236\266\346\236\204\357\274\2101\357\274\211.png" "b/docs/img/embedded/1.1\345\265\214\345\205\245\345\274\217BI\345\212\237\350\203\275\346\236\266\346\236\204\357\274\2101\357\274\211.png" similarity index 100% rename from "v2/img/embedded/1.1\345\265\214\345\205\245\345\274\217BI\345\212\237\350\203\275\346\236\266\346\236\204\357\274\2101\357\274\211.png" rename to "docs/img/embedded/1.1\345\265\214\345\205\245\345\274\217BI\345\212\237\350\203\275\346\236\266\346\236\204\357\274\2101\357\274\211.png" diff --git "a/v2/img/embedded/1.1\345\265\214\345\205\245\346\250\241\345\235\227\350\257\264\346\230\216.jpg" "b/docs/img/embedded/1.1\345\265\214\345\205\245\346\250\241\345\235\227\350\257\264\346\230\216.jpg" similarity index 100% rename from "v2/img/embedded/1.1\345\265\214\345\205\245\346\250\241\345\235\227\350\257\264\346\230\216.jpg" rename to "docs/img/embedded/1.1\345\265\214\345\205\245\346\250\241\345\235\227\350\257\264\346\230\216.jpg" diff --git "a/v2/img/embedded/1.2 \345\265\214\345\205\245\345\234\272\346\231\257\351\242\204\350\247\210\357\274\21011\357\274\211.PNG" "b/docs/img/embedded/1.2 \345\265\214\345\205\245\345\234\272\346\231\257\351\242\204\350\247\210\357\274\21011\357\274\211.PNG" similarity index 100% rename from "v2/img/embedded/1.2 \345\265\214\345\205\245\345\234\272\346\231\257\351\242\204\350\247\210\357\274\21011\357\274\211.PNG" rename to "docs/img/embedded/1.2 \345\265\214\345\205\245\345\234\272\346\231\257\351\242\204\350\247\210\357\274\21011\357\274\211.PNG" diff --git "a/v2/img/embedded/1.2 \345\265\214\345\205\245\345\234\272\346\231\257\351\242\204\350\247\210\357\274\2101\357\274\211.PNG" "b/docs/img/embedded/1.2 \345\265\214\345\205\245\345\234\272\346\231\257\351\242\204\350\247\210\357\274\2101\357\274\211.PNG" similarity index 100% rename from "v2/img/embedded/1.2 \345\265\214\345\205\245\345\234\272\346\231\257\351\242\204\350\247\210\357\274\2101\357\274\211.PNG" rename to "docs/img/embedded/1.2 \345\265\214\345\205\245\345\234\272\346\231\257\351\242\204\350\247\210\357\274\2101\357\274\211.PNG" diff --git "a/v2/img/embedded/1.2 \345\265\214\345\205\245\345\234\272\346\231\257\351\242\204\350\247\210\357\274\21022\357\274\211.png" "b/docs/img/embedded/1.2 \345\265\214\345\205\245\345\234\272\346\231\257\351\242\204\350\247\210\357\274\21022\357\274\211.png" similarity index 100% rename from "v2/img/embedded/1.2 \345\265\214\345\205\245\345\234\272\346\231\257\351\242\204\350\247\210\357\274\21022\357\274\211.png" rename to "docs/img/embedded/1.2 \345\265\214\345\205\245\345\234\272\346\231\257\351\242\204\350\247\210\357\274\21022\357\274\211.png" diff --git "a/v2/img/embedded/1.2 \345\265\214\345\205\245\345\234\272\346\231\257\351\242\204\350\247\210\357\274\2102\357\274\211.png" "b/docs/img/embedded/1.2 \345\265\214\345\205\245\345\234\272\346\231\257\351\242\204\350\247\210\357\274\2102\357\274\211.png" similarity index 100% rename from "v2/img/embedded/1.2 \345\265\214\345\205\245\345\234\272\346\231\257\351\242\204\350\247\210\357\274\2102\357\274\211.png" rename to "docs/img/embedded/1.2 \345\265\214\345\205\245\345\234\272\346\231\257\351\242\204\350\247\210\357\274\2102\357\274\211.png" diff --git "a/v2/img/embedded/1.2 \345\265\214\345\205\245\345\234\272\346\231\257\351\242\204\350\247\210\357\274\2103\357\274\211.png" "b/docs/img/embedded/1.2 \345\265\214\345\205\245\345\234\272\346\231\257\351\242\204\350\247\210\357\274\2103\357\274\211.png" similarity index 100% rename from "v2/img/embedded/1.2 \345\265\214\345\205\245\345\234\272\346\231\257\351\242\204\350\247\210\357\274\2103\357\274\211.png" rename to "docs/img/embedded/1.2 \345\265\214\345\205\245\345\234\272\346\231\257\351\242\204\350\247\210\357\274\2103\357\274\211.png" diff --git "a/v2/img/embedded/1\344\273\252\350\241\250\346\235\277-\345\233\276\350\241\250id.jpg" "b/docs/img/embedded/1\344\273\252\350\241\250\346\235\277-\345\233\276\350\241\250id.jpg" similarity index 100% rename from "v2/img/embedded/1\344\273\252\350\241\250\346\235\277-\345\233\276\350\241\250id.jpg" rename to "docs/img/embedded/1\344\273\252\350\241\250\346\235\277-\345\233\276\350\241\250id.jpg" diff --git "a/v2/img/embedded/1\345\233\276\350\241\250id.jpg" "b/docs/img/embedded/1\345\233\276\350\241\250id.jpg" similarity index 100% rename from "v2/img/embedded/1\345\233\276\350\241\250id.jpg" rename to "docs/img/embedded/1\345\233\276\350\241\250id.jpg" diff --git "a/v2/img/embedded/1\346\225\260\346\215\256\345\244\247\345\261\217-\345\233\276\350\241\250 id.jpg" "b/docs/img/embedded/1\346\225\260\346\215\256\345\244\247\345\261\217-\345\233\276\350\241\250 id.jpg" similarity index 100% rename from "v2/img/embedded/1\346\225\260\346\215\256\345\244\247\345\261\217-\345\233\276\350\241\250 id.jpg" rename to "docs/img/embedded/1\346\225\260\346\215\256\345\244\247\345\261\217-\345\233\276\350\241\250 id.jpg" diff --git "a/v2/img/embedded/1\346\225\260\346\215\256\345\244\247\345\261\217id.jpg" "b/docs/img/embedded/1\346\225\260\346\215\256\345\244\247\345\261\217id.jpg" similarity index 100% rename from "v2/img/embedded/1\346\225\260\346\215\256\345\244\247\345\261\217id.jpg" rename to "docs/img/embedded/1\346\225\260\346\215\256\345\244\247\345\261\217id.jpg" diff --git "a/v2/img/embedded/2. DataEase \345\265\214\345\205\245\345\274\217\346\265\201\347\250\213.jpg" "b/docs/img/embedded/2. DataEase \345\265\214\345\205\245\345\274\217\346\265\201\347\250\213.jpg" similarity index 100% rename from "v2/img/embedded/2. DataEase \345\265\214\345\205\245\345\274\217\346\265\201\347\250\213.jpg" rename to "docs/img/embedded/2. DataEase \345\265\214\345\205\245\345\274\217\346\265\201\347\250\213.jpg" diff --git "a/v2/img/embedded/2. DataEase \345\265\214\345\205\245\345\274\217\346\265\201\347\250\213\357\274\2102\357\274\211.jpg" "b/docs/img/embedded/2. DataEase \345\265\214\345\205\245\345\274\217\346\265\201\347\250\213\357\274\2102\357\274\211.jpg" similarity index 100% rename from "v2/img/embedded/2. DataEase \345\265\214\345\205\245\345\274\217\346\265\201\347\250\213\357\274\2102\357\274\211.jpg" rename to "docs/img/embedded/2. DataEase \345\265\214\345\205\245\345\274\217\346\265\201\347\250\213\357\274\2102\357\274\211.jpg" diff --git "a/v2/img/embedded/2.2\345\265\214\345\205\245\345\274\217 APP \345\210\233\345\273\272.png" "b/docs/img/embedded/2.2\345\265\214\345\205\245\345\274\217 APP \345\210\233\345\273\272.png" similarity index 100% rename from "v2/img/embedded/2.2\345\265\214\345\205\245\345\274\217 APP \345\210\233\345\273\272.png" rename to "docs/img/embedded/2.2\345\265\214\345\205\245\345\274\217 APP \345\210\233\345\273\272.png" diff --git "a/v2/img/embedded/2.2\345\265\214\345\205\245\345\274\217 APP \345\210\233\345\273\272\357\274\2102\357\274\211.png" "b/docs/img/embedded/2.2\345\265\214\345\205\245\345\274\217 APP \345\210\233\345\273\272\357\274\2102\357\274\211.png" similarity index 100% rename from "v2/img/embedded/2.2\345\265\214\345\205\245\345\274\217 APP \345\210\233\345\273\272\357\274\2102\357\274\211.png" rename to "docs/img/embedded/2.2\345\265\214\345\205\245\345\274\217 APP \345\210\233\345\273\272\357\274\2102\357\274\211.png" diff --git "a/v2/img/embedded/2.2\345\265\214\345\205\245\345\274\217 APP \345\210\233\345\273\272\357\274\2103\357\274\211.png" "b/docs/img/embedded/2.2\345\265\214\345\205\245\345\274\217 APP \345\210\233\345\273\272\357\274\2103\357\274\211.png" similarity index 100% rename from "v2/img/embedded/2.2\345\265\214\345\205\245\345\274\217 APP \345\210\233\345\273\272\357\274\2103\357\274\211.png" rename to "docs/img/embedded/2.2\345\265\214\345\205\245\345\274\217 APP \345\210\233\345\273\272\357\274\2103\357\274\211.png" diff --git "a/v2/img/embedded/2.3ID \350\216\267\345\217\226\357\274\2101\357\274\211.png" "b/docs/img/embedded/2.3ID \350\216\267\345\217\226\357\274\2101\357\274\211.png" similarity index 100% rename from "v2/img/embedded/2.3ID \350\216\267\345\217\226\357\274\2101\357\274\211.png" rename to "docs/img/embedded/2.3ID \350\216\267\345\217\226\357\274\2101\357\274\211.png" diff --git "a/v2/img/embedded/2.3ID \350\216\267\345\217\226\357\274\2102\357\274\211.png" "b/docs/img/embedded/2.3ID \350\216\267\345\217\226\357\274\2102\357\274\211.png" similarity index 100% rename from "v2/img/embedded/2.3ID \350\216\267\345\217\226\357\274\2102\357\274\211.png" rename to "docs/img/embedded/2.3ID \350\216\267\345\217\226\357\274\2102\357\274\211.png" diff --git "a/v2/img/embedded/3.1\345\265\214\345\205\245\345\274\217 Token.png" "b/docs/img/embedded/3.1\345\265\214\345\205\245\345\274\217 Token.png" similarity index 100% rename from "v2/img/embedded/3.1\345\265\214\345\205\245\345\274\217 Token.png" rename to "docs/img/embedded/3.1\345\265\214\345\205\245\345\274\217 Token.png" diff --git "a/v2/img/embedded/3.3.2 \345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256.png" "b/docs/img/embedded/3.3.2 \345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/embedded/3.3.2 \345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256.png" rename to "docs/img/embedded/3.3.2 \345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256.png" diff --git "a/v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\21010\357\274\211.png" "b/docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\21010\357\274\211.png" similarity index 100% rename from "v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\21010\357\274\211.png" rename to "docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\21010\357\274\211.png" diff --git "a/v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\21011\357\274\211.png" "b/docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\21011\357\274\211.png" similarity index 100% rename from "v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\21011\357\274\211.png" rename to "docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\21011\357\274\211.png" diff --git "a/v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\21012\357\274\211.png" "b/docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\21012\357\274\211.png" similarity index 100% rename from "v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\21012\357\274\211.png" rename to "docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\21012\357\274\211.png" diff --git "a/v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\21013\357\274\211.png" "b/docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\21013\357\274\211.png" similarity index 100% rename from "v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\21013\357\274\211.png" rename to "docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\21013\357\274\211.png" diff --git "a/v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2101\357\274\211.png" "b/docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2101\357\274\211.png" similarity index 100% rename from "v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2101\357\274\211.png" rename to "docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2101\357\274\211.png" diff --git "a/v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2102\357\274\211.png" "b/docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2102\357\274\211.png" similarity index 100% rename from "v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2102\357\274\211.png" rename to "docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2102\357\274\211.png" diff --git "a/v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2103\357\274\211.png" "b/docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2103\357\274\211.png" similarity index 100% rename from "v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2103\357\274\211.png" rename to "docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2103\357\274\211.png" diff --git "a/v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2104\357\274\211.png" "b/docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2104\357\274\211.png" similarity index 100% rename from "v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2104\357\274\211.png" rename to "docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2104\357\274\211.png" diff --git "a/v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2105\357\274\211.png" "b/docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2105\357\274\211.png" similarity index 100% rename from "v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2105\357\274\211.png" rename to "docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2105\357\274\211.png" diff --git "a/v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2106\357\274\211.png" "b/docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2106\357\274\211.png" similarity index 100% rename from "v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2106\357\274\211.png" rename to "docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2106\357\274\211.png" diff --git "a/v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2107\357\274\211.png" "b/docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2107\357\274\211.png" similarity index 100% rename from "v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2107\357\274\211.png" rename to "docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2107\357\274\211.png" diff --git "a/v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2108\357\274\211.png" "b/docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2108\357\274\211.png" similarity index 100% rename from "v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2108\357\274\211.png" rename to "docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2108\357\274\211.png" diff --git "a/v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2109\357\274\211.png" "b/docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2109\357\274\211.png" similarity index 100% rename from "v2/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2109\357\274\211.png" rename to "docs/img/embedded/4. \345\265\214\345\205\245\345\274\217\345\270\270\350\247\201\351\227\256\351\242\230\357\274\2109\357\274\211.png" diff --git "a/v2/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2101\357\274\211.png" "b/docs/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2101\357\274\211.png" similarity index 100% rename from "v2/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2101\357\274\211.png" rename to "docs/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2101\357\274\211.png" diff --git "a/v2/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2102\357\274\211.png" "b/docs/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2102\357\274\211.png" similarity index 100% rename from "v2/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2102\357\274\211.png" rename to "docs/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2102\357\274\211.png" diff --git "a/v2/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2103\357\274\211.png" "b/docs/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2103\357\274\211.png" similarity index 100% rename from "v2/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2103\357\274\211.png" rename to "docs/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2103\357\274\211.png" diff --git "a/v2/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2104\357\274\211.png" "b/docs/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2104\357\274\211.png" similarity index 100% rename from "v2/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2104\357\274\211.png" rename to "docs/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2104\357\274\211.png" diff --git "a/v2/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2105\357\274\211.png" "b/docs/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2105\357\274\211.png" similarity index 100% rename from "v2/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2105\357\274\211.png" rename to "docs/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2105\357\274\211.png" diff --git "a/v2/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2106\357\274\211.png" "b/docs/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2106\357\274\211.png" similarity index 100% rename from "v2/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2106\357\274\211.png" rename to "docs/img/embedded/5.1 \345\215\225\347\202\271\347\231\273\345\275\225\357\274\2106\357\274\211.png" diff --git "a/v2/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2101\357\274\211.png" "b/docs/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2101\357\274\211.png" similarity index 100% rename from "v2/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2101\357\274\211.png" rename to "docs/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2101\357\274\211.png" diff --git "a/v2/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2102\357\274\211.png" "b/docs/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2102\357\274\211.png" similarity index 100% rename from "v2/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2102\357\274\211.png" rename to "docs/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2102\357\274\211.png" diff --git "a/v2/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2103\357\274\211.png" "b/docs/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2103\357\274\211.png" similarity index 100% rename from "v2/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2103\357\274\211.png" rename to "docs/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2103\357\274\211.png" diff --git "a/v2/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2104\357\274\211.png" "b/docs/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2104\357\274\211.png" similarity index 100% rename from "v2/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2104\357\274\211.png" rename to "docs/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2104\357\274\211.png" diff --git "a/v2/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2105\357\274\211.png" "b/docs/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2105\357\274\211.png" similarity index 100% rename from "v2/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2105\357\274\211.png" rename to "docs/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2105\357\274\211.png" diff --git "a/v2/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2106\357\274\211.png" "b/docs/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2106\357\274\211.png" similarity index 100% rename from "v2/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2106\357\274\211.png" rename to "docs/img/embedded/5.2\346\250\241\346\213\237\347\231\273\345\275\225\357\274\2106\357\274\211.png" diff --git "a/v2/img/embedded/\345\220\214\345\237\237.pic.jpg" "b/docs/img/embedded/\345\220\214\345\237\237.pic.jpg" similarity index 100% rename from "v2/img/embedded/\345\220\214\345\237\237.pic.jpg" rename to "docs/img/embedded/\345\220\214\345\237\237.pic.jpg" diff --git "a/v2/img/embedded/\350\267\250\345\237\237.pic.jpg" "b/docs/img/embedded/\350\267\250\345\237\237.pic.jpg" similarity index 100% rename from "v2/img/embedded/\350\267\250\345\237\237.pic.jpg" rename to "docs/img/embedded/\350\267\250\345\237\237.pic.jpg" diff --git a/v1/img/facio.ico b/docs/img/facio.ico similarity index 100% rename from v1/img/facio.ico rename to docs/img/facio.ico diff --git a/v1/img/faq/address-space.png b/docs/img/faq/address-space.png similarity index 100% rename from v1/img/faq/address-space.png rename to docs/img/faq/address-space.png diff --git a/v1/img/faq/dataease_verison.png b/docs/img/faq/dataease_verison.png similarity index 100% rename from v1/img/faq/dataease_verison.png rename to docs/img/faq/dataease_verison.png diff --git a/v1/img/faq/doris-invalid.png b/docs/img/faq/doris-invalid.png similarity index 100% rename from v1/img/faq/doris-invalid.png rename to docs/img/faq/doris-invalid.png diff --git a/v1/img/faq/install-error.png b/docs/img/faq/install-error.png similarity index 100% rename from v1/img/faq/install-error.png rename to docs/img/faq/install-error.png diff --git a/v1/img/faq/mysql-char.png b/docs/img/faq/mysql-char.png similarity index 100% rename from v1/img/faq/mysql-char.png rename to docs/img/faq/mysql-char.png diff --git a/v1/img/faq/mysql-concat.png b/docs/img/faq/mysql-concat.png similarity index 100% rename from v1/img/faq/mysql-concat.png rename to docs/img/faq/mysql-concat.png diff --git a/v1/img/faq/mysql-lowercase.png b/docs/img/faq/mysql-lowercase.png similarity index 100% rename from v1/img/faq/mysql-lowercase.png rename to docs/img/faq/mysql-lowercase.png diff --git a/v1/img/faq/no-map.png b/docs/img/faq/no-map.png similarity index 100% rename from v1/img/faq/no-map.png rename to docs/img/faq/no-map.png diff --git a/v1/img/faq/no-map2.png b/docs/img/faq/no-map2.png similarity index 100% rename from v1/img/faq/no-map2.png rename to docs/img/faq/no-map2.png diff --git a/v1/img/faq/no-map3.png b/docs/img/faq/no-map3.png similarity index 100% rename from v1/img/faq/no-map3.png rename to docs/img/faq/no-map3.png diff --git a/v1/img/faq/plugins-dependency-2.png b/docs/img/faq/plugins-dependency-2.png similarity index 100% rename from v1/img/faq/plugins-dependency-2.png rename to docs/img/faq/plugins-dependency-2.png diff --git a/v1/img/faq/plugins-dependency.png b/docs/img/faq/plugins-dependency.png similarity index 100% rename from v1/img/faq/plugins-dependency.png rename to docs/img/faq/plugins-dependency.png diff --git a/v1/img/faq/sql-v64.png b/docs/img/faq/sql-v64.png similarity index 100% rename from v1/img/faq/sql-v64.png rename to docs/img/faq/sql-v64.png diff --git "a/v1/img/faq/\346\212\245\351\224\231\346\227\245\345\277\227.png" "b/docs/img/faq/\346\212\245\351\224\231\346\227\245\345\277\227.png" similarity index 100% rename from "v1/img/faq/\346\212\245\351\224\231\346\227\245\345\277\227.png" rename to "docs/img/faq/\346\212\245\351\224\231\346\227\245\345\277\227.png" diff --git "a/v1/img/faq/\346\226\271\346\263\2251.png" "b/docs/img/faq/\346\226\271\346\263\2251.png" similarity index 100% rename from "v1/img/faq/\346\226\271\346\263\2251.png" rename to "docs/img/faq/\346\226\271\346\263\2251.png" diff --git "a/v1/img/faq/\346\226\271\346\263\2252.png" "b/docs/img/faq/\346\226\271\346\263\2252.png" similarity index 100% rename from "v1/img/faq/\346\226\271\346\263\2252.png" rename to "docs/img/faq/\346\226\271\346\263\2252.png" diff --git "a/v1/img/faq/\346\227\240\346\263\225\350\256\277\351\227\256.png" "b/docs/img/faq/\346\227\240\346\263\225\350\256\277\351\227\256.png" similarity index 100% rename from "v1/img/faq/\346\227\240\346\263\225\350\256\277\351\227\256.png" rename to "docs/img/faq/\346\227\240\346\263\225\350\256\277\351\227\256.png" diff --git a/docs/img/function_general/.DS_Store b/docs/img/function_general/.DS_Store new file mode 100644 index 000000000..19b8a6b61 Binary files /dev/null and b/docs/img/function_general/.DS_Store differ diff --git "a/v1/img/function_general/\345\210\240\351\231\244.png" "b/docs/img/function_general/\345\210\240\351\231\244.png" similarity index 100% rename from "v1/img/function_general/\345\210\240\351\231\244.png" rename to "docs/img/function_general/\345\210\240\351\231\244.png" diff --git "a/v1/img/function_general/\345\210\240\351\231\244\345\205\245\345\217\243.png" "b/docs/img/function_general/\345\210\240\351\231\244\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/function_general/\345\210\240\351\231\244\345\205\245\345\217\243.png" rename to "docs/img/function_general/\345\210\240\351\231\244\345\205\245\345\217\243.png" diff --git "a/v1/img/function_general/\345\244\215\345\210\266.png" "b/docs/img/function_general/\345\244\215\345\210\266.png" similarity index 100% rename from "v1/img/function_general/\345\244\215\345\210\266.png" rename to "docs/img/function_general/\345\244\215\345\210\266.png" diff --git "a/v1/img/function_general/\346\220\234\347\264\242.png" "b/docs/img/function_general/\346\220\234\347\264\242.png" similarity index 100% rename from "v1/img/function_general/\346\220\234\347\264\242.png" rename to "docs/img/function_general/\346\220\234\347\264\242.png" diff --git "a/v1/img/function_general/\346\267\273\345\212\240\345\210\206\347\273\204.png" "b/docs/img/function_general/\346\267\273\345\212\240\345\210\206\347\273\204.png" similarity index 100% rename from "v1/img/function_general/\346\267\273\345\212\240\345\210\206\347\273\204.png" rename to "docs/img/function_general/\346\267\273\345\212\240\345\210\206\347\273\204.png" diff --git "a/v1/img/function_general/\346\267\273\345\212\240\345\234\272\346\231\257.png" "b/docs/img/function_general/\346\267\273\345\212\240\345\234\272\346\231\257.png" similarity index 100% rename from "v1/img/function_general/\346\267\273\345\212\240\345\234\272\346\231\257.png" rename to "docs/img/function_general/\346\267\273\345\212\240\345\234\272\346\231\257.png" diff --git "a/v1/img/function_general/\346\267\273\345\212\240\347\233\256\345\275\225.png" "b/docs/img/function_general/\346\267\273\345\212\240\347\233\256\345\275\225.png" similarity index 100% rename from "v1/img/function_general/\346\267\273\345\212\240\347\233\256\345\275\225.png" rename to "docs/img/function_general/\346\267\273\345\212\240\347\233\256\345\275\225.png" diff --git "a/v1/img/function_general/\347\247\273\345\212\250-\347\233\256\346\240\207\344\275\215\347\275\256.png" "b/docs/img/function_general/\347\247\273\345\212\250-\347\233\256\346\240\207\344\275\215\347\275\256.png" similarity index 100% rename from "v1/img/function_general/\347\247\273\345\212\250-\347\233\256\346\240\207\344\275\215\347\275\256.png" rename to "docs/img/function_general/\347\247\273\345\212\250-\347\233\256\346\240\207\344\275\215\347\275\256.png" diff --git "a/v1/img/function_general/\347\247\273\345\212\250\345\210\260.png" "b/docs/img/function_general/\347\247\273\345\212\250\345\210\260.png" similarity index 100% rename from "v1/img/function_general/\347\247\273\345\212\250\345\210\260.png" rename to "docs/img/function_general/\347\247\273\345\212\250\345\210\260.png" diff --git "a/v1/img/function_general/\347\277\273\351\241\265.png" "b/docs/img/function_general/\347\277\273\351\241\265.png" similarity index 100% rename from "v1/img/function_general/\347\277\273\351\241\265.png" rename to "docs/img/function_general/\347\277\273\351\241\265.png" diff --git "a/v1/img/function_general/\350\257\255\350\250\200\345\210\207\346\215\242.png" "b/docs/img/function_general/\350\257\255\350\250\200\345\210\207\346\215\242.png" similarity index 100% rename from "v1/img/function_general/\350\257\255\350\250\200\345\210\207\346\215\242.png" rename to "docs/img/function_general/\350\257\255\350\250\200\345\210\207\346\215\242.png" diff --git "a/v1/img/function_general/\351\207\215\345\221\275\345\220\215.png" "b/docs/img/function_general/\351\207\215\345\221\275\345\220\215.png" similarity index 100% rename from "v1/img/function_general/\351\207\215\345\221\275\345\220\215.png" rename to "docs/img/function_general/\351\207\215\345\221\275\345\220\215.png" diff --git "a/v1/img/function_general/\351\207\215\345\221\275\345\220\215\345\205\245\345\217\243.png" "b/docs/img/function_general/\351\207\215\345\221\275\345\220\215\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/function_general/\351\207\215\345\221\275\345\220\215\345\205\245\345\217\243.png" rename to "docs/img/function_general/\351\207\215\345\221\275\345\220\215\345\205\245\345\217\243.png" diff --git "a/v1/img/homepage/\351\246\226\351\241\265.png" "b/docs/img/homepage/\351\246\226\351\241\265.png" similarity index 100% rename from "v1/img/homepage/\351\246\226\351\241\265.png" rename to "docs/img/homepage/\351\246\226\351\241\265.png" diff --git "a/v1/img/index/DataEase\345\212\237\350\203\275\346\236\266\346\236\204\345\233\276.jpg" "b/docs/img/index/DataEase\345\212\237\350\203\275\346\236\266\346\236\204\345\233\276.jpg" similarity index 100% rename from "v1/img/index/DataEase\345\212\237\350\203\275\346\236\266\346\236\204\345\233\276.jpg" rename to "docs/img/index/DataEase\345\212\237\350\203\275\346\236\266\346\236\204\345\233\276.jpg" diff --git "a/v1/img/index/\346\250\241\346\235\277\345\270\202\345\234\272.gif" "b/docs/img/index/\346\250\241\346\235\277\345\270\202\345\234\272.gif" similarity index 100% rename from "v1/img/index/\346\250\241\346\235\277\345\270\202\345\234\272.gif" rename to "docs/img/index/\346\250\241\346\235\277\345\270\202\345\234\272.gif" diff --git "a/v1/img/index/\346\250\241\346\235\277\345\270\202\345\234\272\345\261\225\347\244\272\345\212\250\345\233\276.gif" "b/docs/img/index/\346\250\241\346\235\277\345\270\202\345\234\272\345\261\225\347\244\272\345\212\250\345\233\276.gif" similarity index 100% rename from "v1/img/index/\346\250\241\346\235\277\345\270\202\345\234\272\345\261\225\347\244\272\345\212\250\345\233\276.gif" rename to "docs/img/index/\346\250\241\346\235\277\345\270\202\345\234\272\345\261\225\347\244\272\345\212\250\345\233\276.gif" diff --git "a/v1/img/index/\347\225\214\351\235\242\345\261\225\347\244\272.gif" "b/docs/img/index/\347\225\214\351\235\242\345\261\225\347\244\272.gif" similarity index 100% rename from "v1/img/index/\347\225\214\351\235\242\345\261\225\347\244\272.gif" rename to "docs/img/index/\347\225\214\351\235\242\345\261\225\347\244\272.gif" diff --git "a/v1/img/installation/1panel\345\256\211\350\243\2051.png" "b/docs/img/installation/1panel\345\256\211\350\243\2051.png" similarity index 100% rename from "v1/img/installation/1panel\345\256\211\350\243\2051.png" rename to "docs/img/installation/1panel\345\256\211\350\243\2051.png" diff --git "a/v1/img/installation/1panel\345\256\211\350\243\20510.png" "b/docs/img/installation/1panel\345\256\211\350\243\20510.png" similarity index 100% rename from "v1/img/installation/1panel\345\256\211\350\243\20510.png" rename to "docs/img/installation/1panel\345\256\211\350\243\20510.png" diff --git "a/v1/img/installation/1panel\345\256\211\350\243\20511.png" "b/docs/img/installation/1panel\345\256\211\350\243\20511.png" similarity index 100% rename from "v1/img/installation/1panel\345\256\211\350\243\20511.png" rename to "docs/img/installation/1panel\345\256\211\350\243\20511.png" diff --git "a/v1/img/installation/1panel\345\256\211\350\243\20512.png" "b/docs/img/installation/1panel\345\256\211\350\243\20512.png" similarity index 100% rename from "v1/img/installation/1panel\345\256\211\350\243\20512.png" rename to "docs/img/installation/1panel\345\256\211\350\243\20512.png" diff --git "a/v1/img/installation/1panel\345\256\211\350\243\2052.png" "b/docs/img/installation/1panel\345\256\211\350\243\2052.png" similarity index 100% rename from "v1/img/installation/1panel\345\256\211\350\243\2052.png" rename to "docs/img/installation/1panel\345\256\211\350\243\2052.png" diff --git "a/v1/img/installation/1panel\345\256\211\350\243\2053.png" "b/docs/img/installation/1panel\345\256\211\350\243\2053.png" similarity index 100% rename from "v1/img/installation/1panel\345\256\211\350\243\2053.png" rename to "docs/img/installation/1panel\345\256\211\350\243\2053.png" diff --git "a/v1/img/installation/1panel\345\256\211\350\243\2054.png" "b/docs/img/installation/1panel\345\256\211\350\243\2054.png" similarity index 100% rename from "v1/img/installation/1panel\345\256\211\350\243\2054.png" rename to "docs/img/installation/1panel\345\256\211\350\243\2054.png" diff --git "a/v1/img/installation/1panel\345\256\211\350\243\2055.png" "b/docs/img/installation/1panel\345\256\211\350\243\2055.png" similarity index 100% rename from "v1/img/installation/1panel\345\256\211\350\243\2055.png" rename to "docs/img/installation/1panel\345\256\211\350\243\2055.png" diff --git "a/v1/img/installation/1panel\345\256\211\350\243\2056.png" "b/docs/img/installation/1panel\345\256\211\350\243\2056.png" similarity index 100% rename from "v1/img/installation/1panel\345\256\211\350\243\2056.png" rename to "docs/img/installation/1panel\345\256\211\350\243\2056.png" diff --git "a/v1/img/installation/1panel\345\256\211\350\243\2057.png" "b/docs/img/installation/1panel\345\256\211\350\243\2057.png" similarity index 100% rename from "v1/img/installation/1panel\345\256\211\350\243\2057.png" rename to "docs/img/installation/1panel\345\256\211\350\243\2057.png" diff --git "a/v1/img/installation/1panel\345\256\211\350\243\2058.png" "b/docs/img/installation/1panel\345\256\211\350\243\2058.png" similarity index 100% rename from "v1/img/installation/1panel\345\256\211\350\243\2058.png" rename to "docs/img/installation/1panel\345\256\211\350\243\2058.png" diff --git "a/v1/img/installation/1panel\345\256\211\350\243\2059.png" "b/docs/img/installation/1panel\345\256\211\350\243\2059.png" similarity index 100% rename from "v1/img/installation/1panel\345\256\211\350\243\2059.png" rename to "docs/img/installation/1panel\345\256\211\350\243\2059.png" diff --git "a/v1/img/installation/HA/Kettle \350\256\276\347\275\256.png" "b/docs/img/installation/HA/Kettle \350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/installation/HA/Kettle \350\256\276\347\275\256.png" rename to "docs/img/installation/HA/Kettle \350\256\276\347\275\256.png" diff --git a/v1/img/installation/HA/check_nfs.png b/docs/img/installation/HA/check_nfs.png similarity index 100% rename from v1/img/installation/HA/check_nfs.png rename to docs/img/installation/HA/check_nfs.png diff --git "a/v1/img/installation/HA/doris-\346\243\200\346\237\245.png" "b/docs/img/installation/HA/doris-\346\243\200\346\237\245.png" similarity index 100% rename from "v1/img/installation/HA/doris-\346\243\200\346\237\245.png" rename to "docs/img/installation/HA/doris-\346\243\200\346\237\245.png" diff --git "a/v1/img/installation/HA/keepalived-\345\220\257\345\212\250.png" "b/docs/img/installation/HA/keepalived-\345\220\257\345\212\250.png" similarity index 100% rename from "v1/img/installation/HA/keepalived-\345\220\257\345\212\250.png" rename to "docs/img/installation/HA/keepalived-\345\220\257\345\212\250.png" diff --git "a/v1/img/installation/HA/keepalived-\346\237\245\347\234\213ip.png" "b/docs/img/installation/HA/keepalived-\346\237\245\347\234\213ip.png" similarity index 100% rename from "v1/img/installation/HA/keepalived-\346\237\245\347\234\213ip.png" rename to "docs/img/installation/HA/keepalived-\346\237\245\347\234\213ip.png" diff --git "a/v1/img/installation/HA/keepalived-\346\237\245\347\234\213ip2-1.png" "b/docs/img/installation/HA/keepalived-\346\237\245\347\234\213ip2-1.png" similarity index 100% rename from "v1/img/installation/HA/keepalived-\346\237\245\347\234\213ip2-1.png" rename to "docs/img/installation/HA/keepalived-\346\237\245\347\234\213ip2-1.png" diff --git "a/v1/img/installation/HA/keepalived-\346\237\245\347\234\213ip2.png" "b/docs/img/installation/HA/keepalived-\346\237\245\347\234\213ip2.png" similarity index 100% rename from "v1/img/installation/HA/keepalived-\346\237\245\347\234\213ip2.png" rename to "docs/img/installation/HA/keepalived-\346\237\245\347\234\213ip2.png" diff --git "a/v1/img/installation/HA/keepalived-\346\237\245\347\234\213\350\204\232\346\234\254.png" "b/docs/img/installation/HA/keepalived-\346\237\245\347\234\213\350\204\232\346\234\254.png" similarity index 100% rename from "v1/img/installation/HA/keepalived-\346\237\245\347\234\213\350\204\232\346\234\254.png" rename to "docs/img/installation/HA/keepalived-\346\237\245\347\234\213\350\204\232\346\234\254.png" diff --git "a/v1/img/installation/HA/kettle-\347\212\266\346\200\201.png" "b/docs/img/installation/HA/kettle-\347\212\266\346\200\201.png" similarity index 100% rename from "v1/img/installation/HA/kettle-\347\212\266\346\200\201.png" rename to "docs/img/installation/HA/kettle-\347\212\266\346\200\201.png" diff --git "a/v1/img/installation/HA/mysql-\345\210\233\345\273\272\346\225\260\346\215\256\345\272\223.png" "b/docs/img/installation/HA/mysql-\345\210\233\345\273\272\346\225\260\346\215\256\345\272\223.png" similarity index 100% rename from "v1/img/installation/HA/mysql-\345\210\233\345\273\272\346\225\260\346\215\256\345\272\223.png" rename to "docs/img/installation/HA/mysql-\345\210\233\345\273\272\346\225\260\346\215\256\345\272\223.png" diff --git "a/v1/img/installation/HA/mysql-\345\210\235\345\247\213\345\214\226\345\257\206\347\240\201.png" "b/docs/img/installation/HA/mysql-\345\210\235\345\247\213\345\214\226\345\257\206\347\240\201.png" similarity index 100% rename from "v1/img/installation/HA/mysql-\345\210\235\345\247\213\345\214\226\345\257\206\347\240\201.png" rename to "docs/img/installation/HA/mysql-\345\210\235\345\247\213\345\214\226\345\257\206\347\240\201.png" diff --git "a/v1/img/installation/HA/mysql-\347\212\266\346\200\201.png" "b/docs/img/installation/HA/mysql-\347\212\266\346\200\201.png" similarity index 100% rename from "v1/img/installation/HA/mysql-\347\212\266\346\200\201.png" rename to "docs/img/installation/HA/mysql-\347\212\266\346\200\201.png" diff --git "a/v1/img/installation/HA/mysql-\351\205\215\347\275\256.png" "b/docs/img/installation/HA/mysql-\351\205\215\347\275\256.png" similarity index 100% rename from "v1/img/installation/HA/mysql-\351\205\215\347\275\256.png" rename to "docs/img/installation/HA/mysql-\351\205\215\347\275\256.png" diff --git "a/v1/img/installation/HA/mysql-\351\205\215\347\275\2562.png" "b/docs/img/installation/HA/mysql-\351\205\215\347\275\2562.png" similarity index 100% rename from "v1/img/installation/HA/mysql-\351\205\215\347\275\2562.png" rename to "docs/img/installation/HA/mysql-\351\205\215\347\275\2562.png" diff --git "a/v1/img/installation/HA/nginx-\347\212\266\346\200\201.png" "b/docs/img/installation/HA/nginx-\347\212\266\346\200\201.png" similarity index 100% rename from "v1/img/installation/HA/nginx-\347\212\266\346\200\201.png" rename to "docs/img/installation/HA/nginx-\347\212\266\346\200\201.png" diff --git "a/v1/img/installation/HA/nginx-\351\205\215\347\275\256.png" "b/docs/img/installation/HA/nginx-\351\205\215\347\275\256.png" similarity index 100% rename from "v1/img/installation/HA/nginx-\351\205\215\347\275\256.png" rename to "docs/img/installation/HA/nginx-\351\205\215\347\275\256.png" diff --git "a/v1/img/installation/HA/redis-\346\237\245\347\234\213\351\233\206\347\276\244.png" "b/docs/img/installation/HA/redis-\346\237\245\347\234\213\351\233\206\347\276\244.png" similarity index 100% rename from "v1/img/installation/HA/redis-\346\237\245\347\234\213\351\233\206\347\276\244.png" rename to "docs/img/installation/HA/redis-\346\237\245\347\234\213\351\233\206\347\276\244.png" diff --git "a/v1/img/installation/HA/redis-\347\212\266\346\200\201.png" "b/docs/img/installation/HA/redis-\347\212\266\346\200\201.png" similarity index 100% rename from "v1/img/installation/HA/redis-\347\212\266\346\200\201.png" rename to "docs/img/installation/HA/redis-\347\212\266\346\200\201.png" diff --git "a/v1/img/installation/HA/redis-\351\205\215\347\275\256\351\233\206\347\276\244.png" "b/docs/img/installation/HA/redis-\351\205\215\347\275\256\351\233\206\347\276\244.png" similarity index 100% rename from "v1/img/installation/HA/redis-\351\205\215\347\275\256\351\233\206\347\276\244.png" rename to "docs/img/installation/HA/redis-\351\205\215\347\275\256\351\233\206\347\276\244.png" diff --git "a/v1/img/installation/HA/redis-\351\205\215\347\275\256\351\233\206\347\276\2442.png" "b/docs/img/installation/HA/redis-\351\205\215\347\275\256\351\233\206\347\276\2442.png" similarity index 100% rename from "v1/img/installation/HA/redis-\351\205\215\347\275\256\351\233\206\347\276\2442.png" rename to "docs/img/installation/HA/redis-\351\205\215\347\275\256\351\233\206\347\276\2442.png" diff --git "a/v1/img/installation/HA/\350\256\276\347\275\256 demo \346\225\260\346\215\256\346\272\220.png" "b/docs/img/installation/HA/\350\256\276\347\275\256 demo \346\225\260\346\215\256\346\272\220.png" similarity index 100% rename from "v1/img/installation/HA/\350\256\276\347\275\256 demo \346\225\260\346\215\256\346\272\220.png" rename to "docs/img/installation/HA/\350\256\276\347\275\256 demo \346\225\260\346\215\256\346\272\220.png" diff --git "a/v1/img/installation/HA/\350\256\276\347\275\256 demo \346\225\260\346\215\256\346\272\2201.png" "b/docs/img/installation/HA/\350\256\276\347\275\256 demo \346\225\260\346\215\256\346\272\2201.png" similarity index 100% rename from "v1/img/installation/HA/\350\256\276\347\275\256 demo \346\225\260\346\215\256\346\272\2201.png" rename to "docs/img/installation/HA/\350\256\276\347\275\256 demo \346\225\260\346\215\256\346\272\2201.png" diff --git "a/v1/img/installation/HA/\350\256\276\347\275\256\345\274\225\346\223\216.png" "b/docs/img/installation/HA/\350\256\276\347\275\256\345\274\225\346\223\216.png" similarity index 100% rename from "v1/img/installation/HA/\350\256\276\347\275\256\345\274\225\346\223\216.png" rename to "docs/img/installation/HA/\350\256\276\347\275\256\345\274\225\346\223\216.png" diff --git a/v1/img/installation/VirtualBox1.png b/docs/img/installation/VirtualBox1.png similarity index 100% rename from v1/img/installation/VirtualBox1.png rename to docs/img/installation/VirtualBox1.png diff --git a/v1/img/installation/VirtualBox2.png b/docs/img/installation/VirtualBox2.png similarity index 100% rename from v1/img/installation/VirtualBox2.png rename to docs/img/installation/VirtualBox2.png diff --git a/v1/img/installation/VirtualBox3.png b/docs/img/installation/VirtualBox3.png similarity index 100% rename from v1/img/installation/VirtualBox3.png rename to docs/img/installation/VirtualBox3.png diff --git a/v1/img/installation/VirtualBox4.png b/docs/img/installation/VirtualBox4.png similarity index 100% rename from v1/img/installation/VirtualBox4.png rename to docs/img/installation/VirtualBox4.png diff --git a/v1/img/installation/VirtualBox5.png b/docs/img/installation/VirtualBox5.png similarity index 100% rename from v1/img/installation/VirtualBox5.png rename to docs/img/installation/VirtualBox5.png diff --git a/v1/img/installation/VirtualBox6.png b/docs/img/installation/VirtualBox6.png similarity index 100% rename from v1/img/installation/VirtualBox6.png rename to docs/img/installation/VirtualBox6.png diff --git a/v1/img/installation/VirtualBox7.png b/docs/img/installation/VirtualBox7.png similarity index 100% rename from v1/img/installation/VirtualBox7.png rename to docs/img/installation/VirtualBox7.png diff --git a/v1/img/installation/check-docker.png b/docs/img/installation/check-docker.png similarity index 100% rename from v1/img/installation/check-docker.png rename to docs/img/installation/check-docker.png diff --git a/v1/img/installation/check-version-1.png b/docs/img/installation/check-version-1.png similarity index 100% rename from v1/img/installation/check-version-1.png rename to docs/img/installation/check-version-1.png diff --git a/v1/img/installation/check-version-2.png b/docs/img/installation/check-version-2.png similarity index 100% rename from v1/img/installation/check-version-2.png rename to docs/img/installation/check-version-2.png diff --git "a/v2/img/installation/de\345\217\202\346\225\260\350\256\276\347\275\256.png" "b/docs/img/installation/de\345\217\202\346\225\260\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/installation/de\345\217\202\346\225\260\350\256\276\347\275\256.png" rename to "docs/img/installation/de\345\217\202\346\225\260\350\256\276\347\275\256.png" diff --git a/v1/img/installation/docker-settings.png b/docs/img/installation/docker-settings.png similarity index 100% rename from v1/img/installation/docker-settings.png rename to docs/img/installation/docker-settings.png diff --git a/v1/img/installation/launch-ubuntu.png b/docs/img/installation/launch-ubuntu.png similarity index 100% rename from v1/img/installation/launch-ubuntu.png rename to docs/img/installation/launch-ubuntu.png diff --git "a/v2/img/installation/mysql\345\217\202\346\225\260\350\256\276\347\275\256.PNG" "b/docs/img/installation/mysql\345\217\202\346\225\260\350\256\276\347\275\256.PNG" similarity index 100% rename from "v2/img/installation/mysql\345\217\202\346\225\260\350\256\276\347\275\256.PNG" rename to "docs/img/installation/mysql\345\217\202\346\225\260\350\256\276\347\275\256.PNG" diff --git "a/v2/img/installation/mysql\345\256\211\350\243\205\345\256\214\346\210\220.png" "b/docs/img/installation/mysql\345\256\211\350\243\205\345\256\214\346\210\220.png" similarity index 100% rename from "v2/img/installation/mysql\345\256\211\350\243\205\345\256\214\346\210\220.png" rename to "docs/img/installation/mysql\345\256\211\350\243\205\345\256\214\346\210\220.png" diff --git "a/v1/img/installation/ova\351\203\250\347\275\262\345\256\211\350\243\205VirtualBox1.png" "b/docs/img/installation/ova\351\203\250\347\275\262\345\256\211\350\243\205VirtualBox1.png" similarity index 100% rename from "v1/img/installation/ova\351\203\250\347\275\262\345\256\211\350\243\205VirtualBox1.png" rename to "docs/img/installation/ova\351\203\250\347\275\262\345\256\211\350\243\205VirtualBox1.png" diff --git "a/v1/img/installation/ova\351\203\250\347\275\262\345\256\211\350\243\205VirtualBox2.png" "b/docs/img/installation/ova\351\203\250\347\275\262\345\256\211\350\243\205VirtualBox2.png" similarity index 100% rename from "v1/img/installation/ova\351\203\250\347\275\262\345\256\211\350\243\205VirtualBox2.png" rename to "docs/img/installation/ova\351\203\250\347\275\262\345\256\211\350\243\205VirtualBox2.png" diff --git a/v1/img/installation/powershell.png b/docs/img/installation/powershell.png similarity index 100% rename from v1/img/installation/powershell.png rename to docs/img/installation/powershell.png diff --git a/v1/img/installation/windows-install-ipaddr.png b/docs/img/installation/windows-install-ipaddr.png similarity index 100% rename from v1/img/installation/windows-install-ipaddr.png rename to docs/img/installation/windows-install-ipaddr.png diff --git a/v1/img/installation/windows-install-portproxy.png b/docs/img/installation/windows-install-portproxy.png similarity index 100% rename from v1/img/installation/windows-install-portproxy.png rename to docs/img/installation/windows-install-portproxy.png diff --git a/v1/img/installation/windows-install-ubuntu.png b/docs/img/installation/windows-install-ubuntu.png similarity index 100% rename from v1/img/installation/windows-install-ubuntu.png rename to docs/img/installation/windows-install-ubuntu.png diff --git a/v1/img/installation/windows-install.png b/docs/img/installation/windows-install.png similarity index 100% rename from v1/img/installation/windows-install.png rename to docs/img/installation/windows-install.png diff --git "a/v2/img/installation/windows\346\243\200\346\237\245\347\212\266\346\200\201.png" "b/docs/img/installation/windows\346\243\200\346\237\245\347\212\266\346\200\201.png" similarity index 100% rename from "v2/img/installation/windows\346\243\200\346\237\245\347\212\266\346\200\201.png" rename to "docs/img/installation/windows\346\243\200\346\237\245\347\212\266\346\200\201.png" diff --git "a/v2/img/installation/windows\350\256\277\351\227\256dataease.png" "b/docs/img/installation/windows\350\256\277\351\227\256dataease.png" similarity index 100% rename from "v2/img/installation/windows\350\256\277\351\227\256dataease.png" rename to "docs/img/installation/windows\350\256\277\351\227\256dataease.png" diff --git "a/v2/img/installation/\344\270\213\350\275\275OVA\345\256\211\350\243\205\346\226\207\344\273\266.png" "b/docs/img/installation/\344\270\213\350\275\275OVA\345\256\211\350\243\205\346\226\207\344\273\266.png" similarity index 100% rename from "v2/img/installation/\344\270\213\350\275\275OVA\345\256\211\350\243\205\346\226\207\344\273\266.png" rename to "docs/img/installation/\344\270\213\350\275\275OVA\345\256\211\350\243\205\346\226\207\344\273\266.png" diff --git "a/v1/img/installation/\344\270\213\350\275\275OVA\346\226\207\344\273\266.png" "b/docs/img/installation/\344\270\213\350\275\275OVA\346\226\207\344\273\266.png" similarity index 100% rename from "v1/img/installation/\344\270\213\350\275\275OVA\346\226\207\344\273\266.png" rename to "docs/img/installation/\344\270\213\350\275\275OVA\346\226\207\344\273\266.png" diff --git "a/v1/img/installation/\344\270\213\350\275\275\345\206\205\345\256\271.png" "b/docs/img/installation/\344\270\213\350\275\275\345\206\205\345\256\271.png" similarity index 100% rename from "v1/img/installation/\344\270\213\350\275\275\345\206\205\345\256\271.png" rename to "docs/img/installation/\344\270\213\350\275\275\345\206\205\345\256\271.png" diff --git "a/v1/img/installation/\344\270\213\350\275\275\345\256\211\350\243\205\345\214\205.png" "b/docs/img/installation/\344\270\213\350\275\275\345\256\211\350\243\205\345\214\205.png" similarity index 100% rename from "v1/img/installation/\344\270\213\350\275\275\345\256\211\350\243\205\345\214\205.png" rename to "docs/img/installation/\344\270\213\350\275\275\345\256\211\350\243\205\345\214\205.png" diff --git "a/v2/img/installation/\344\273\243\347\240\201\345\260\261\347\273\252.png" "b/docs/img/installation/\344\273\243\347\240\201\345\260\261\347\273\252.png" similarity index 100% rename from "v2/img/installation/\344\273\243\347\240\201\345\260\261\347\273\252.png" rename to "docs/img/installation/\344\273\243\347\240\201\345\260\261\347\273\252.png" diff --git "a/v1/img/installation/\345\210\233\345\273\272SSH\350\277\236\346\216\245.jpg" "b/docs/img/installation/\345\210\233\345\273\272SSH\350\277\236\346\216\245.jpg" similarity index 100% rename from "v1/img/installation/\345\210\233\345\273\272SSH\350\277\236\346\216\245.jpg" rename to "docs/img/installation/\345\210\233\345\273\272SSH\350\277\236\346\216\245.jpg" diff --git "a/v1/img/installation/\345\220\257\345\212\2501.png" "b/docs/img/installation/\345\220\257\345\212\2501.png" similarity index 100% rename from "v1/img/installation/\345\220\257\345\212\2501.png" rename to "docs/img/installation/\345\220\257\345\212\2501.png" diff --git "a/v1/img/installation/\345\220\257\345\212\2502.png" "b/docs/img/installation/\345\220\257\345\212\2502.png" similarity index 100% rename from "v1/img/installation/\345\220\257\345\212\2502.png" rename to "docs/img/installation/\345\220\257\345\212\2502.png" diff --git "a/v1/img/installation/\345\220\257\345\212\2503.png" "b/docs/img/installation/\345\220\257\345\212\2503.png" similarity index 100% rename from "v1/img/installation/\345\220\257\345\212\2503.png" rename to "docs/img/installation/\345\220\257\345\212\2503.png" diff --git "a/v1/img/installation/\345\220\257\345\212\2504.png" "b/docs/img/installation/\345\220\257\345\212\2504.png" similarity index 100% rename from "v1/img/installation/\345\220\257\345\212\2504.png" rename to "docs/img/installation/\345\220\257\345\212\2504.png" diff --git "a/v1/img/installation/\345\220\257\345\212\250\350\231\232\346\213\237\346\234\272\350\276\223\345\205\245\345\257\206\347\240\201.png" "b/docs/img/installation/\345\220\257\345\212\250\350\231\232\346\213\237\346\234\272\350\276\223\345\205\245\345\257\206\347\240\201.png" similarity index 100% rename from "v1/img/installation/\345\220\257\345\212\250\350\231\232\346\213\237\346\234\272\350\276\223\345\205\245\345\257\206\347\240\201.png" rename to "docs/img/installation/\345\220\257\345\212\250\350\231\232\346\213\237\346\234\272\350\276\223\345\205\245\345\257\206\347\240\201.png" diff --git "a/v1/img/installation/\345\244\215\345\210\266\345\234\260\345\235\200.png" "b/docs/img/installation/\345\244\215\345\210\266\345\234\260\345\235\200.png" similarity index 100% rename from "v1/img/installation/\345\244\215\345\210\266\345\234\260\345\235\200.png" rename to "docs/img/installation/\345\244\215\345\210\266\345\234\260\345\235\200.png" diff --git "a/v1/img/installation/\345\256\211\350\243\205FinalShell1.png" "b/docs/img/installation/\345\256\211\350\243\205FinalShell1.png" similarity index 100% rename from "v1/img/installation/\345\256\211\350\243\205FinalShell1.png" rename to "docs/img/installation/\345\256\211\350\243\205FinalShell1.png" diff --git "a/v1/img/installation/\345\256\211\350\243\205FinalShell2.png" "b/docs/img/installation/\345\256\211\350\243\205FinalShell2.png" similarity index 100% rename from "v1/img/installation/\345\256\211\350\243\205FinalShell2.png" rename to "docs/img/installation/\345\256\211\350\243\205FinalShell2.png" diff --git "a/v1/img/installation/\345\257\274\345\205\2451.png" "b/docs/img/installation/\345\257\274\345\205\2451.png" similarity index 100% rename from "v1/img/installation/\345\257\274\345\205\2451.png" rename to "docs/img/installation/\345\257\274\345\205\2451.png" diff --git "a/v1/img/installation/\345\257\274\345\205\2452.png" "b/docs/img/installation/\345\257\274\345\205\2452.png" similarity index 100% rename from "v1/img/installation/\345\257\274\345\205\2452.png" rename to "docs/img/installation/\345\257\274\345\205\2452.png" diff --git "a/v1/img/installation/\345\257\274\345\205\2453.png" "b/docs/img/installation/\345\257\274\345\205\2453.png" similarity index 100% rename from "v1/img/installation/\345\257\274\345\205\2453.png" rename to "docs/img/installation/\345\257\274\345\205\2453.png" diff --git "a/v1/img/installation/\345\257\274\345\205\2454.png" "b/docs/img/installation/\345\257\274\345\205\2454.png" similarity index 100% rename from "v1/img/installation/\345\257\274\345\205\2454.png" rename to "docs/img/installation/\345\257\274\345\205\2454.png" diff --git "a/v1/img/installation/\345\257\274\345\205\2455.png" "b/docs/img/installation/\345\257\274\345\205\2455.png" similarity index 100% rename from "v1/img/installation/\345\257\274\345\205\2455.png" rename to "docs/img/installation/\345\257\274\345\205\2455.png" diff --git "a/v1/img/installation/\345\257\274\345\205\2456.png" "b/docs/img/installation/\345\257\274\345\205\2456.png" similarity index 100% rename from "v1/img/installation/\345\257\274\345\205\2456.png" rename to "docs/img/installation/\345\257\274\345\205\2456.png" diff --git "a/v1/img/installation/\345\257\274\345\205\245OVA\345\214\2051.png" "b/docs/img/installation/\345\257\274\345\205\245OVA\345\214\2051.png" similarity index 100% rename from "v1/img/installation/\345\257\274\345\205\245OVA\345\214\2051.png" rename to "docs/img/installation/\345\257\274\345\205\245OVA\345\214\2051.png" diff --git "a/v1/img/installation/\346\210\220\345\212\237\345\210\233\345\273\272\350\277\236\346\216\245.jpg" "b/docs/img/installation/\346\210\220\345\212\237\345\210\233\345\273\272\350\277\236\346\216\245.jpg" similarity index 100% rename from "v1/img/installation/\346\210\220\345\212\237\345\210\233\345\273\272\350\277\236\346\216\245.jpg" rename to "docs/img/installation/\346\210\220\345\212\237\345\210\233\345\273\272\350\277\236\346\216\245.jpg" diff --git "a/v2/img/installation/\346\210\220\345\212\237\347\274\226\350\257\2211.png" "b/docs/img/installation/\346\210\220\345\212\237\347\274\226\350\257\2211.png" similarity index 100% rename from "v2/img/installation/\346\210\220\345\212\237\347\274\226\350\257\2211.png" rename to "docs/img/installation/\346\210\220\345\212\237\347\274\226\350\257\2211.png" diff --git "a/v2/img/installation/\346\211\276\345\210\260v2.png" "b/docs/img/installation/\346\211\276\345\210\260v2.png" similarity index 100% rename from "v2/img/installation/\346\211\276\345\210\260v2.png" rename to "docs/img/installation/\346\211\276\345\210\260v2.png" diff --git "a/v2/img/installation/\346\234\215\345\212\241\347\212\266\346\200\201.png" "b/docs/img/installation/\346\234\215\345\212\241\347\212\266\346\200\201.png" similarity index 100% rename from "v2/img/installation/\346\234\215\345\212\241\347\212\266\346\200\201.png" rename to "docs/img/installation/\346\234\215\345\212\241\347\212\266\346\200\201.png" diff --git "a/v1/img/installation/\346\237\245\347\234\213\350\231\232\346\213\237\346\234\272IP.png" "b/docs/img/installation/\346\237\245\347\234\213\350\231\232\346\213\237\346\234\272IP.png" similarity index 100% rename from "v1/img/installation/\346\237\245\347\234\213\350\231\232\346\213\237\346\234\272IP.png" rename to "docs/img/installation/\346\237\245\347\234\213\350\231\232\346\213\237\346\234\272IP.png" diff --git "a/v1/img/installation/\346\263\250\346\204\217\344\272\213\351\241\271.png" "b/docs/img/installation/\346\263\250\346\204\217\344\272\213\351\241\271.png" similarity index 100% rename from "v1/img/installation/\346\263\250\346\204\217\344\272\213\351\241\271.png" rename to "docs/img/installation/\346\263\250\346\204\217\344\272\213\351\241\271.png" diff --git "a/v1/img/installation/\347\231\273\345\275\2251.png" "b/docs/img/installation/\347\231\273\345\275\2251.png" similarity index 100% rename from "v1/img/installation/\347\231\273\345\275\2251.png" rename to "docs/img/installation/\347\231\273\345\275\2251.png" diff --git "a/v1/img/installation/\347\255\211\345\276\205\345\256\214\346\210\220OVA\345\257\274\345\205\245.png" "b/docs/img/installation/\347\255\211\345\276\205\345\256\214\346\210\220OVA\345\257\274\345\205\245.png" similarity index 100% rename from "v1/img/installation/\347\255\211\345\276\205\345\256\214\346\210\220OVA\345\257\274\345\205\245.png" rename to "docs/img/installation/\347\255\211\345\276\205\345\256\214\346\210\220OVA\345\257\274\345\205\245.png" diff --git "a/v1/img/installation/\347\262\230\350\264\264\345\244\215\345\210\266\351\223\276\346\216\245.png" "b/docs/img/installation/\347\262\230\350\264\264\345\244\215\345\210\266\351\223\276\346\216\245.png" similarity index 100% rename from "v1/img/installation/\347\262\230\350\264\264\345\244\215\345\210\266\351\223\276\346\216\245.png" rename to "docs/img/installation/\347\262\230\350\264\264\345\244\215\345\210\266\351\223\276\346\216\245.png" diff --git "a/v2/img/installation/\347\274\226\350\257\221\345\256\214\346\210\220.png" "b/docs/img/installation/\347\274\226\350\257\221\345\256\214\346\210\220.png" similarity index 100% rename from "v2/img/installation/\347\274\226\350\257\221\345\256\214\346\210\220.png" rename to "docs/img/installation/\347\274\226\350\257\221\345\256\214\346\210\220.png" diff --git "a/v2/img/installation/\347\274\226\350\257\221\346\210\220\345\212\2372.png" "b/docs/img/installation/\347\274\226\350\257\221\346\210\220\345\212\2372.png" similarity index 100% rename from "v2/img/installation/\347\274\226\350\257\221\346\210\220\345\212\2372.png" rename to "docs/img/installation/\347\274\226\350\257\221\346\210\220\345\212\2372.png" diff --git "a/v1/img/installation/\350\231\232\346\213\237\346\234\272\345\257\274\345\205\245\345\256\214\346\210\220.png" "b/docs/img/installation/\350\231\232\346\213\237\346\234\272\345\257\274\345\205\245\345\256\214\346\210\220.png" similarity index 100% rename from "v1/img/installation/\350\231\232\346\213\237\346\234\272\345\257\274\345\205\245\345\256\214\346\210\220.png" rename to "docs/img/installation/\350\231\232\346\213\237\346\234\272\345\257\274\345\205\245\345\256\214\346\210\220.png" diff --git "a/v2/img/installation/\350\256\277\351\227\256v2.png" "b/docs/img/installation/\350\256\277\351\227\256v2.png" similarity index 100% rename from "v2/img/installation/\350\256\277\351\227\256v2.png" rename to "docs/img/installation/\350\256\277\351\227\256v2.png" diff --git "a/v2/img/installation/\350\256\277\351\227\256\346\234\215\345\212\241.png" "b/docs/img/installation/\350\256\277\351\227\256\346\234\215\345\212\241.png" similarity index 100% rename from "v2/img/installation/\350\256\277\351\227\256\346\234\215\345\212\241.png" rename to "docs/img/installation/\350\256\277\351\227\256\346\234\215\345\212\241.png" diff --git "a/v1/img/installation/\350\276\223\345\205\245\350\277\236\346\216\245\351\205\215\347\275\256.jpg" "b/docs/img/installation/\350\276\223\345\205\245\350\277\236\346\216\245\351\205\215\347\275\256.jpg" similarity index 100% rename from "v1/img/installation/\350\276\223\345\205\245\350\277\236\346\216\245\351\205\215\347\275\256.jpg" rename to "docs/img/installation/\350\276\223\345\205\245\350\277\236\346\216\245\351\205\215\347\275\256.jpg" diff --git "a/v2/img/installation/\350\276\223\345\207\272\346\227\245\345\277\227.png" "b/docs/img/installation/\350\276\223\345\207\272\346\227\245\345\277\227.png" similarity index 100% rename from "v2/img/installation/\350\276\223\345\207\272\346\227\245\345\277\227.png" rename to "docs/img/installation/\350\276\223\345\207\272\346\227\245\345\277\227.png" diff --git "a/v1/img/installation/\350\277\236\346\216\245\344\270\273\346\234\272\346\210\220\345\212\237.jpg" "b/docs/img/installation/\350\277\236\346\216\245\344\270\273\346\234\272\346\210\220\345\212\237.jpg" similarity index 100% rename from "v1/img/installation/\350\277\236\346\216\245\344\270\273\346\234\272\346\210\220\345\212\237.jpg" rename to "docs/img/installation/\350\277\236\346\216\245\344\270\273\346\234\272\346\210\220\345\212\237.jpg" diff --git "a/v1/img/installation/\351\200\211\346\213\251\347\243\201\347\233\230\347\251\272\351\227\264.png" "b/docs/img/installation/\351\200\211\346\213\251\347\243\201\347\233\230\347\251\272\351\227\264.png" similarity index 100% rename from "v1/img/installation/\351\200\211\346\213\251\347\243\201\347\233\230\347\251\272\351\227\264.png" rename to "docs/img/installation/\351\200\211\346\213\251\347\243\201\347\233\230\347\251\272\351\227\264.png" diff --git "a/v2/img/installation/\351\225\234\345\203\217.png" "b/docs/img/installation/\351\225\234\345\203\217.png" similarity index 100% rename from "v2/img/installation/\351\225\234\345\203\217.png" rename to "docs/img/installation/\351\225\234\345\203\217.png" diff --git a/v1/img/logo-white.png b/docs/img/logo-white.png similarity index 100% rename from v1/img/logo-white.png rename to docs/img/logo-white.png diff --git "a/v2/img/panel_generation/2.0\345\210\233\345\273\272\346\225\260\346\215\256\345\244\247\345\261\217.png" "b/docs/img/panel_generation/2.0\345\210\233\345\273\272\346\225\260\346\215\256\345\244\247\345\261\217.png" similarity index 100% rename from "v2/img/panel_generation/2.0\345\210\233\345\273\272\346\225\260\346\215\256\345\244\247\345\261\217.png" rename to "docs/img/panel_generation/2.0\345\210\233\345\273\272\346\225\260\346\215\256\345\244\247\345\261\217.png" diff --git "a/v2/img/panel_generation/2.0\345\233\276\345\261\202\345\205\266\344\273\226\346\223\215\344\275\234.png" "b/docs/img/panel_generation/2.0\345\233\276\345\261\202\345\205\266\344\273\226\346\223\215\344\275\234.png" similarity index 100% rename from "v2/img/panel_generation/2.0\345\233\276\345\261\202\345\205\266\344\273\226\346\223\215\344\275\234.png" rename to "docs/img/panel_generation/2.0\345\233\276\345\261\202\345\205\266\344\273\226\346\223\215\344\275\234.png" diff --git "a/v2/img/panel_generation/2.0\345\233\276\345\261\202\346\226\207\344\273\266\346\223\215\344\275\234.png" "b/docs/img/panel_generation/2.0\345\233\276\345\261\202\346\226\207\344\273\266\346\223\215\344\275\234.png" similarity index 100% rename from "v2/img/panel_generation/2.0\345\233\276\345\261\202\346\226\207\344\273\266\346\223\215\344\275\234.png" rename to "docs/img/panel_generation/2.0\345\233\276\345\261\202\346\226\207\344\273\266\346\223\215\344\275\234.png" diff --git "a/v2/img/panel_generation/2.0\345\233\276\345\261\202\347\256\241\347\220\2061.png" "b/docs/img/panel_generation/2.0\345\233\276\345\261\202\347\256\241\347\220\2061.png" similarity index 100% rename from "v2/img/panel_generation/2.0\345\233\276\345\261\202\347\256\241\347\220\2061.png" rename to "docs/img/panel_generation/2.0\345\233\276\345\261\202\347\256\241\347\220\2061.png" diff --git "a/v2/img/panel_generation/2.0\345\233\276\345\261\202\347\273\204\345\220\2102.png" "b/docs/img/panel_generation/2.0\345\233\276\345\261\202\347\273\204\345\220\2102.png" similarity index 100% rename from "v2/img/panel_generation/2.0\345\233\276\345\261\202\347\273\204\345\220\2102.png" rename to "docs/img/panel_generation/2.0\345\233\276\345\261\202\347\273\204\345\220\2102.png" diff --git "a/v2/img/panel_generation/2.0\345\233\276\345\261\202\351\224\201\345\256\232.png" "b/docs/img/panel_generation/2.0\345\233\276\345\261\202\351\224\201\345\256\232.png" similarity index 100% rename from "v2/img/panel_generation/2.0\345\233\276\345\261\202\351\224\201\345\256\232.png" rename to "docs/img/panel_generation/2.0\345\233\276\345\261\202\351\224\201\345\256\232.png" diff --git "a/v2/img/panel_generation/2.0\345\233\276\345\261\202\351\232\220\350\227\217.png" "b/docs/img/panel_generation/2.0\345\233\276\345\261\202\351\232\220\350\227\217.png" similarity index 100% rename from "v2/img/panel_generation/2.0\345\233\276\345\261\202\351\232\220\350\227\217.png" rename to "docs/img/panel_generation/2.0\345\233\276\345\261\202\351\232\220\350\227\217.png" diff --git "a/v2/img/panel_generation/2.0\345\233\276\345\261\202\351\241\272\345\272\217\350\256\276\347\275\256.png" "b/docs/img/panel_generation/2.0\345\233\276\345\261\202\351\241\272\345\272\217\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/panel_generation/2.0\345\233\276\345\261\202\351\241\272\345\272\217\350\256\276\347\275\256.png" rename to "docs/img/panel_generation/2.0\345\233\276\345\261\202\351\241\272\345\272\217\350\256\276\347\275\256.png" diff --git "a/v2/img/panel_generation/2.0\345\244\215\345\210\266\346\225\260\346\215\256\345\244\247\345\261\217.png" "b/docs/img/panel_generation/2.0\345\244\215\345\210\266\346\225\260\346\215\256\345\244\247\345\261\217.png" similarity index 100% rename from "v2/img/panel_generation/2.0\345\244\215\345\210\266\346\225\260\346\215\256\345\244\247\345\261\217.png" rename to "docs/img/panel_generation/2.0\345\244\215\345\210\266\346\225\260\346\215\256\345\244\247\345\261\217.png" diff --git "a/v2/img/panel_generation/2.0\345\244\215\345\210\266\346\225\260\346\215\256\345\244\247\345\261\217\347\241\256\350\256\244.png" "b/docs/img/panel_generation/2.0\345\244\215\345\210\266\346\225\260\346\215\256\345\244\247\345\261\217\347\241\256\350\256\244.png" similarity index 100% rename from "v2/img/panel_generation/2.0\345\244\215\345\210\266\346\225\260\346\215\256\345\244\247\345\261\217\347\241\256\350\256\244.png" rename to "docs/img/panel_generation/2.0\345\244\215\345\210\266\346\225\260\346\215\256\345\244\247\345\261\217\347\241\256\350\256\244.png" diff --git "a/v2/img/panel_generation/2.0\345\244\247\345\261\217\346\246\202\350\247\210.png" "b/docs/img/panel_generation/2.0\345\244\247\345\261\217\346\246\202\350\247\210.png" similarity index 100% rename from "v2/img/panel_generation/2.0\345\244\247\345\261\217\346\246\202\350\247\210.png" rename to "docs/img/panel_generation/2.0\345\244\247\345\261\217\346\246\202\350\247\210.png" diff --git "a/v2/img/panel_generation/2.0\345\244\247\345\261\217\347\274\226\350\276\221\347\225\214\351\235\242.png" "b/docs/img/panel_generation/2.0\345\244\247\345\261\217\347\274\226\350\276\221\347\225\214\351\235\242.png" similarity index 100% rename from "v2/img/panel_generation/2.0\345\244\247\345\261\217\347\274\226\350\276\221\347\225\214\351\235\242.png" rename to "docs/img/panel_generation/2.0\345\244\247\345\261\217\347\274\226\350\276\221\347\225\214\351\235\242.png" diff --git "a/v2/img/panel_generation/2.0\345\244\247\345\261\217\350\256\276\347\275\256\351\205\215\350\211\262.png" "b/docs/img/panel_generation/2.0\345\244\247\345\261\217\350\256\276\347\275\256\351\205\215\350\211\262.png" similarity index 100% rename from "v2/img/panel_generation/2.0\345\244\247\345\261\217\350\256\276\347\275\256\351\205\215\350\211\262.png" rename to "docs/img/panel_generation/2.0\345\244\247\345\261\217\350\256\276\347\275\256\351\205\215\350\211\262.png" diff --git "a/v2/img/panel_generation/2.0\345\244\247\345\261\217\351\205\215\347\275\256.png" "b/docs/img/panel_generation/2.0\345\244\247\345\261\217\351\205\215\347\275\256.png" similarity index 100% rename from "v2/img/panel_generation/2.0\345\244\247\345\261\217\351\205\215\347\275\256.png" rename to "docs/img/panel_generation/2.0\345\244\247\345\261\217\351\205\215\347\275\256.png" diff --git "a/v2/img/panel_generation/2.0\345\244\247\345\261\217\351\205\215\347\275\256\350\203\214\346\231\257\351\242\234\350\211\262.png" "b/docs/img/panel_generation/2.0\345\244\247\345\261\217\351\205\215\347\275\256\350\203\214\346\231\257\351\242\234\350\211\262.png" similarity index 100% rename from "v2/img/panel_generation/2.0\345\244\247\345\261\217\351\205\215\347\275\256\350\203\214\346\231\257\351\242\234\350\211\262.png" rename to "docs/img/panel_generation/2.0\345\244\247\345\261\217\351\205\215\347\275\256\350\203\214\346\231\257\351\242\234\350\211\262.png" diff --git "a/v2/img/panel_generation/2.0\345\260\272\345\257\270\350\260\203\346\225\264.png" "b/docs/img/panel_generation/2.0\345\260\272\345\257\270\350\260\203\346\225\264.png" similarity index 100% rename from "v2/img/panel_generation/2.0\345\260\272\345\257\270\350\260\203\346\225\264.png" rename to "docs/img/panel_generation/2.0\345\260\272\345\257\270\350\260\203\346\225\264.png" diff --git "a/v2/img/panel_generation/2.0\345\260\272\345\257\270\350\266\205\345\207\272.png" "b/docs/img/panel_generation/2.0\345\260\272\345\257\270\350\266\205\345\207\272.png" similarity index 100% rename from "v2/img/panel_generation/2.0\345\260\272\345\257\270\350\266\205\345\207\272.png" rename to "docs/img/panel_generation/2.0\345\260\272\345\257\270\350\266\205\345\207\272.png" diff --git "a/v2/img/panel_generation/2.0\345\260\272\345\257\270\350\266\205\345\207\272\351\242\204\350\247\210.png" "b/docs/img/panel_generation/2.0\345\260\272\345\257\270\350\266\205\345\207\272\351\242\204\350\247\210.png" similarity index 100% rename from "v2/img/panel_generation/2.0\345\260\272\345\257\270\350\266\205\345\207\272\351\242\204\350\247\210.png" rename to "docs/img/panel_generation/2.0\345\260\272\345\257\270\350\266\205\345\207\272\351\242\204\350\247\210.png" diff --git "a/v2/img/panel_generation/2.0\346\210\220\345\212\237\345\244\215\345\210\266\346\225\260\346\215\256\345\244\247\345\261\217.png" "b/docs/img/panel_generation/2.0\346\210\220\345\212\237\345\244\215\345\210\266\346\225\260\346\215\256\345\244\247\345\261\217.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\210\220\345\212\237\345\244\215\345\210\266\346\225\260\346\215\256\345\244\247\345\261\217.png" rename to "docs/img/panel_generation/2.0\346\210\220\345\212\237\345\244\215\345\210\266\346\225\260\346\215\256\345\244\247\345\261\217.png" diff --git "a/v2/img/panel_generation/2.0\346\214\207\346\240\207\345\277\253\351\200\237\350\256\241\347\256\227.png" "b/docs/img/panel_generation/2.0\346\214\207\346\240\207\345\277\253\351\200\237\350\256\241\347\256\227.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\214\207\346\240\207\345\277\253\351\200\237\350\256\241\347\256\227.png" rename to "docs/img/panel_generation/2.0\346\214\207\346\240\207\345\277\253\351\200\237\350\256\241\347\256\227.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\275\215\347\275\256\345\261\236\346\200\247\350\256\276\347\275\256.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\275\215\347\275\256\345\261\236\346\200\247\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\275\215\347\275\256\345\261\236\346\200\247\350\256\276\347\275\256.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\275\215\347\275\256\345\261\236\346\200\247\350\256\276\347\275\256.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\275\215\347\275\256\347\247\273\345\212\250.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\275\215\347\275\256\347\247\273\345\212\250.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\275\215\347\275\256\347\247\273\345\212\250.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\275\215\347\275\256\347\247\273\345\212\250.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\277\235\345\255\230.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\277\235\345\255\230.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\277\235\345\255\230.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\277\235\345\255\230.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\277\235\345\255\230\347\241\256\350\256\244.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\277\235\345\255\230\347\241\256\350\256\244.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\277\235\345\255\230\347\241\256\350\256\244.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\277\235\345\255\230\347\241\256\350\256\244.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\210\267\346\226\260\351\242\221\347\216\207.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\210\267\346\226\260\351\242\221\347\216\207.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\210\267\346\226\260\351\242\221\347\216\207.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\210\267\346\226\260\351\242\221\347\216\207.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\345\261\202\347\256\241\347\220\206.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\345\261\202\347\256\241\347\220\206.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\345\261\202\347\256\241\347\220\206.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\345\261\202\347\256\241\347\220\206.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\350\241\250\347\274\226\350\276\221.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\350\241\250\347\274\226\350\276\221.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\350\241\250\347\274\226\350\276\221.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\350\241\250\347\274\226\350\276\221.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\244\247\345\260\217\350\260\203\346\225\264.gif" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\244\247\345\260\217\350\260\203\346\225\264.gif" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\244\247\345\260\217\350\260\203\346\225\264.gif" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\244\247\345\260\217\350\260\203\346\225\264.gif" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\244\247\345\260\217\350\260\203\346\225\264.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\244\247\345\260\217\350\260\203\346\225\264.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\244\247\345\260\217\350\260\203\346\225\264.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\244\247\345\260\217\350\260\203\346\225\264.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\270\203\345\261\200.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\270\203\345\261\200.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\270\203\345\261\200.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\270\203\345\261\200.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\201\242\345\244\215.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\201\242\345\244\215.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\201\242\345\244\215.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\201\242\345\244\215.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\222\244\351\224\200.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\222\244\351\224\200.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\222\244\351\224\200.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\222\244\351\224\200.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\270\205\351\231\244\350\201\224\345\212\250.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\270\205\351\231\244\350\201\224\345\212\250.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\270\205\351\231\244\350\201\224\345\212\250.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\270\205\351\231\244\350\201\224\345\212\250.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\202\271\345\207\273\350\201\224\345\212\250.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\202\271\345\207\273\350\201\224\345\212\250.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\202\271\345\207\273\350\201\224\345\212\250.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\202\271\345\207\273\350\201\224\345\212\250.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\202\271\345\207\273\350\267\263\350\275\254.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\202\271\345\207\273\350\267\263\350\275\254.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\202\271\345\207\273\350\267\263\350\275\254.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\202\271\345\207\273\350\267\263\350\275\254.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\202\271\345\207\273\350\277\233\350\241\214\350\267\263\350\275\254.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\202\271\345\207\273\350\277\233\350\241\214\350\267\263\350\275\254.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\202\271\345\207\273\350\277\233\350\241\214\350\267\263\350\275\254.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\202\271\345\207\273\350\277\233\350\241\214\350\267\263\350\275\254.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\204\344\273\266\346\240\267\345\274\217\345\205\245\345\217\243.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\204\344\273\266\346\240\267\345\274\217\345\205\245\345\217\243.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\204\344\273\266\346\240\267\345\274\217\345\205\245\345\217\243.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\204\344\273\266\346\240\267\345\274\217\345\205\245\345\217\243.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\204\344\273\266\350\203\214\346\231\257\345\233\276\347\211\207\350\256\276\347\275\256.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\204\344\273\266\350\203\214\346\231\257\345\233\276\347\211\207\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\204\344\273\266\350\203\214\346\231\257\345\233\276\347\211\207\350\256\276\347\275\256.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\204\344\273\266\350\203\214\346\231\257\345\233\276\347\211\207\350\256\276\347\275\256.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\204\344\273\266\350\203\214\346\231\257\350\276\271\346\241\206\351\200\211\346\213\251.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\204\344\273\266\350\203\214\346\231\257\350\276\271\346\241\206\351\200\211\346\213\251.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\204\344\273\266\350\203\214\346\231\257\350\276\271\346\241\206\351\200\211\346\213\251.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\204\344\273\266\350\203\214\346\231\257\350\276\271\346\241\206\351\200\211\346\213\251.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\201\224\345\212\250\350\256\276\347\275\256.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\201\224\345\212\250\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\201\224\345\212\250\350\256\276\347\275\256.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\201\224\345\212\250\350\256\276\347\275\256.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\345\244\226\351\203\250\351\223\276\346\216\245\350\267\263\350\275\254.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\345\244\226\351\203\250\351\223\276\346\216\245\350\267\263\350\275\254.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\345\244\226\351\203\250\351\223\276\346\216\245\350\267\263\350\275\254.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\345\244\226\351\203\250\351\223\276\346\216\245\350\267\263\350\275\254.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\350\201\224\345\212\250.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\350\201\224\345\212\250.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\350\201\224\345\212\250.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\350\201\224\345\212\250.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\350\267\263\350\275\254.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\350\267\263\350\275\254.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\350\267\263\350\275\254.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\350\267\263\350\275\254.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\267\263\350\275\254\345\210\260\345\244\226\351\203\250\351\223\276\346\216\245.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\267\263\350\275\254\345\210\260\345\244\226\351\203\250\351\223\276\346\216\245.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\267\263\350\275\254\345\210\260\345\244\226\351\203\250\351\223\276\346\216\245.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\267\263\350\275\254\345\210\260\345\244\226\351\203\250\351\223\276\346\216\245.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\267\263\350\275\254\345\212\240\350\201\224\345\212\250.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\267\263\350\275\254\345\212\240\350\201\224\345\212\250.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\267\263\350\275\254\345\212\240\350\201\224\345\212\250.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\267\263\350\275\254\345\212\240\350\201\224\345\212\250.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\267\263\350\275\254\350\256\276\347\275\256.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\267\263\350\275\254\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\267\263\350\275\254\350\256\276\347\275\256.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\267\263\350\275\254\350\256\276\347\275\256.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\267\263\350\275\254\350\256\276\347\275\256\350\267\263\350\275\254\345\244\247\345\261\217.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\267\263\350\275\254\350\256\276\347\275\256\350\267\263\350\275\254\345\244\247\345\261\217.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\267\263\350\275\254\350\256\276\347\275\256\350\267\263\350\275\254\345\244\247\345\261\217.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\267\263\350\275\254\350\256\276\347\275\256\350\267\263\350\275\254\345\244\247\345\261\217.png" diff --git "a/v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\277\224\345\233\236.png" "b/docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\277\224\345\233\236.png" similarity index 100% rename from "v2/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\277\224\345\233\236.png" rename to "docs/img/panel_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\277\224\345\233\236.png" diff --git "a/v2/img/panel_generation/2.0\347\202\271\345\207\273\347\274\226\350\276\221\346\225\260\346\215\256\345\244\247\345\261\217.png" "b/docs/img/panel_generation/2.0\347\202\271\345\207\273\347\274\226\350\276\221\346\225\260\346\215\256\345\244\247\345\261\217.png" similarity index 100% rename from "v2/img/panel_generation/2.0\347\202\271\345\207\273\347\274\226\350\276\221\346\225\260\346\215\256\345\244\247\345\261\217.png" rename to "docs/img/panel_generation/2.0\347\202\271\345\207\273\347\274\226\350\276\221\346\225\260\346\215\256\345\244\247\345\261\217.png" diff --git "a/v2/img/panel_generation/2.0\347\273\204\344\273\266\345\244\215\345\210\266.png" "b/docs/img/panel_generation/2.0\347\273\204\344\273\266\345\244\215\345\210\266.png" similarity index 100% rename from "v2/img/panel_generation/2.0\347\273\204\344\273\266\345\244\215\345\210\266.png" rename to "docs/img/panel_generation/2.0\347\273\204\344\273\266\345\244\215\345\210\266.png" diff --git "a/v2/img/panel_generation/2.0\350\201\224\345\212\250\346\225\210\346\236\234.gif" "b/docs/img/panel_generation/2.0\350\201\224\345\212\250\346\225\210\346\236\234.gif" similarity index 100% rename from "v2/img/panel_generation/2.0\350\201\224\345\212\250\346\225\210\346\236\234.gif" rename to "docs/img/panel_generation/2.0\350\201\224\345\212\250\346\225\210\346\236\234.gif" diff --git "a/v2/img/panel_generation/2.0\350\201\224\345\212\250\346\225\210\346\236\234.png" "b/docs/img/panel_generation/2.0\350\201\224\345\212\250\346\225\210\346\236\234.png" similarity index 100% rename from "v2/img/panel_generation/2.0\350\201\224\345\212\250\346\225\210\346\236\234.png" rename to "docs/img/panel_generation/2.0\350\201\224\345\212\250\346\225\210\346\236\234.png" diff --git "a/v2/img/panel_generation/2.0\350\203\214\346\231\257\350\256\276\347\275\256\345\233\276\347\211\207.png" "b/docs/img/panel_generation/2.0\350\203\214\346\231\257\350\256\276\347\275\256\345\233\276\347\211\207.png" similarity index 100% rename from "v2/img/panel_generation/2.0\350\203\214\346\231\257\350\256\276\347\275\256\345\233\276\347\211\207.png" rename to "docs/img/panel_generation/2.0\350\203\214\346\231\257\350\256\276\347\275\256\345\233\276\347\211\207.png" diff --git "a/v2/img/panel_generation/2.0\350\247\206\345\233\276\345\233\276\345\261\202\347\273\204\345\220\210.png" "b/docs/img/panel_generation/2.0\350\247\206\345\233\276\345\233\276\345\261\202\347\273\204\345\220\210.png" similarity index 100% rename from "v2/img/panel_generation/2.0\350\247\206\345\233\276\345\233\276\345\261\202\347\273\204\345\220\210.png" rename to "docs/img/panel_generation/2.0\350\247\206\345\233\276\345\233\276\345\261\202\347\273\204\345\220\210.png" diff --git "a/v2/img/panel_generation/\344\273\252\350\241\250\346\235\277\345\222\214\346\225\260\346\215\256\345\244\247\345\261\217\346\224\257\346\214\201\346\233\264\345\244\232\347\273\204\344\273\266\344\277\256\346\224\271\345\220\215\347\247\260.gif" "b/docs/img/panel_generation/\344\273\252\350\241\250\346\235\277\345\222\214\346\225\260\346\215\256\345\244\247\345\261\217\346\224\257\346\214\201\346\233\264\345\244\232\347\273\204\344\273\266\344\277\256\346\224\271\345\220\215\347\247\260.gif" similarity index 100% rename from "v2/img/panel_generation/\344\273\252\350\241\250\346\235\277\345\222\214\346\225\260\346\215\256\345\244\247\345\261\217\346\224\257\346\214\201\346\233\264\345\244\232\347\273\204\344\273\266\344\277\256\346\224\271\345\220\215\347\247\260.gif" rename to "docs/img/panel_generation/\344\273\252\350\241\250\346\235\277\345\222\214\346\225\260\346\215\256\345\244\247\345\261\217\346\224\257\346\214\201\346\233\264\345\244\232\347\273\204\344\273\266\344\277\256\346\224\271\345\220\215\347\247\260.gif" diff --git "a/v2/img/panel_generation/\344\275\277\347\224\250\346\250\241\346\235\277\345\210\233\345\273\272\346\225\260\346\215\256\345\244\247\345\261\217.png" "b/docs/img/panel_generation/\344\275\277\347\224\250\346\250\241\346\235\277\345\210\233\345\273\272\346\225\260\346\215\256\345\244\247\345\261\217.png" similarity index 100% rename from "v2/img/panel_generation/\344\275\277\347\224\250\346\250\241\346\235\277\345\210\233\345\273\272\346\225\260\346\215\256\345\244\247\345\261\217.png" rename to "docs/img/panel_generation/\344\275\277\347\224\250\346\250\241\346\235\277\345\210\233\345\273\272\346\225\260\346\215\256\345\244\247\345\261\217.png" diff --git "a/v2/img/panel_generation/\345\210\233\345\273\272\346\225\260\346\215\256\345\244\247\345\261\217.png" "b/docs/img/panel_generation/\345\210\233\345\273\272\346\225\260\346\215\256\345\244\247\345\261\217.png" similarity index 100% rename from "v2/img/panel_generation/\345\210\233\345\273\272\346\225\260\346\215\256\345\244\247\345\261\217.png" rename to "docs/img/panel_generation/\345\210\233\345\273\272\346\225\260\346\215\256\345\244\247\345\261\217.png" diff --git "a/v2/img/panel_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256\351\241\265\351\235\242.png" "b/docs/img/panel_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256\351\241\265\351\235\242.png" similarity index 100% rename from "v2/img/panel_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256\351\241\265\351\235\242.png" rename to "docs/img/panel_generation/\345\244\226\351\203\250\345\217\202\346\225\260\350\256\276\347\275\256\351\241\265\351\235\242.png" diff --git "a/v2/img/panel_generation/\345\277\253\351\200\237\345\257\271\351\275\220.png" "b/docs/img/panel_generation/\345\277\253\351\200\237\345\257\271\351\275\220.png" similarity index 100% rename from "v2/img/panel_generation/\345\277\253\351\200\237\345\257\271\351\275\220.png" rename to "docs/img/panel_generation/\345\277\253\351\200\237\345\257\271\351\275\220.png" diff --git "a/v2/img/panel_generation/\346\214\207\346\240\207\345\215\241\346\224\257\346\214\201\346\230\276\347\244\272\345\220\214\347\216\257\346\257\224\346\225\260\346\215\2561.png" "b/docs/img/panel_generation/\346\214\207\346\240\207\345\215\241\346\224\257\346\214\201\346\230\276\347\244\272\345\220\214\347\216\257\346\257\224\346\225\260\346\215\2561.png" similarity index 100% rename from "v2/img/panel_generation/\346\214\207\346\240\207\345\215\241\346\224\257\346\214\201\346\230\276\347\244\272\345\220\214\347\216\257\346\257\224\346\225\260\346\215\2561.png" rename to "docs/img/panel_generation/\346\214\207\346\240\207\345\215\241\346\224\257\346\214\201\346\230\276\347\244\272\345\220\214\347\216\257\346\257\224\346\225\260\346\215\2561.png" diff --git "a/v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\344\272\213\344\273\266\345\212\237\350\203\275.png" "b/docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\344\272\213\344\273\266\345\212\237\350\203\275.png" similarity index 100% rename from "v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\344\272\213\344\273\266\345\212\237\350\203\275.png" rename to "docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\344\272\213\344\273\266\345\212\237\350\203\275.png" diff --git "a/v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\344\275\277\347\224\250\345\272\224\347\224\250\345\210\233\345\273\272\345\244\247\345\261\217.png" "b/docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\344\275\277\347\224\250\345\272\224\347\224\250\345\210\233\345\273\272\345\244\247\345\261\217.png" similarity index 100% rename from "v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\344\275\277\347\224\250\345\272\224\347\224\250\345\210\233\345\273\272\345\244\247\345\261\217.png" rename to "docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\344\275\277\347\224\250\345\272\224\347\224\250\345\210\233\345\273\272\345\244\247\345\261\217.png" diff --git "a/v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\244\226\351\203\250\344\274\240\345\217\202.png" "b/docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\244\226\351\203\250\344\274\240\345\217\202.png" similarity index 100% rename from "v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\244\226\351\203\250\344\274\240\345\217\202.png" rename to "docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\244\226\351\203\250\344\274\240\345\217\202.png" diff --git "a/v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\257\274\345\207\272\345\272\224\347\224\250.png" "b/docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\257\274\345\207\272\345\272\224\347\224\250.png" similarity index 100% rename from "v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\257\274\345\207\272\345\272\224\347\224\250.png" rename to "docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\257\274\345\207\272\345\272\224\347\224\250.png" diff --git "a/v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\274\200\345\220\257\350\267\263\350\275\254\350\256\276\347\275\256\344\273\245\345\217\212\350\256\276\347\275\256\345\206\205\345\256\271.png" "b/docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\274\200\345\220\257\350\267\263\350\275\254\350\256\276\347\275\256\344\273\245\345\217\212\350\256\276\347\275\256\345\206\205\345\256\271.png" similarity index 100% rename from "v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\274\200\345\220\257\350\267\263\350\275\254\350\256\276\347\275\256\344\273\245\345\217\212\350\256\276\347\275\256\345\206\205\345\256\271.png" rename to "docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\345\274\200\345\220\257\350\267\263\350\275\254\350\256\276\347\275\256\344\273\245\345\217\212\350\256\276\347\275\256\345\206\205\345\256\271.png" diff --git "a/v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\224\257\346\214\201\345\244\215\347\224\250\347\273\204\344\273\266.png" "b/docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\224\257\346\214\201\345\244\215\347\224\250\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\224\257\346\214\201\345\244\215\347\224\250\347\273\204\344\273\266.png" rename to "docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\224\257\346\214\201\345\244\215\347\224\250\347\273\204\344\273\266.png" diff --git "a/v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\224\257\346\214\201\346\214\211\344\275\217\347\251\272\346\240\274\351\224\256\346\227\266\346\213\226\345\212\250\347\224\273\345\270\203.gif" "b/docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\224\257\346\214\201\346\214\211\344\275\217\347\251\272\346\240\274\351\224\256\346\227\266\346\213\226\345\212\250\347\224\273\345\270\203.gif" similarity index 100% rename from "v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\224\257\346\214\201\346\214\211\344\275\217\347\251\272\346\240\274\351\224\256\346\227\266\346\213\226\345\212\250\347\224\273\345\270\203.gif" rename to "docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\224\257\346\214\201\346\214\211\344\275\217\347\251\272\346\240\274\351\224\256\346\227\266\346\213\226\345\212\250\347\224\273\345\270\203.gif" diff --git "a/v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\260\345\242\236\345\274\271\347\252\227\345\214\272\345\237\237.png" "b/docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\260\345\242\236\345\274\271\347\252\227\345\214\272\345\237\237.png" similarity index 100% rename from "v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\260\345\242\236\345\274\271\347\252\227\345\214\272\345\237\237.png" rename to "docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\260\345\242\236\345\274\271\347\252\227\345\214\272\345\237\237.png" diff --git "a/v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\260\345\273\272\345\233\276\350\241\250\345\220\216\350\207\252\345\212\250\345\256\232\344\275\215\345\210\260\345\261\217\345\271\225\344\270\255\345\277\203.gif" "b/docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\260\345\273\272\345\233\276\350\241\250\345\220\216\350\207\252\345\212\250\345\256\232\344\275\215\345\210\260\345\261\217\345\271\225\344\270\255\345\277\203.gif" similarity index 100% rename from "v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\260\345\273\272\345\233\276\350\241\250\345\220\216\350\207\252\345\212\250\345\256\232\344\275\215\345\210\260\345\261\217\345\271\225\344\270\255\345\277\203.gif" rename to "docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\226\260\345\273\272\345\233\276\350\241\250\345\220\216\350\207\252\345\212\250\345\256\232\344\275\215\345\210\260\345\261\217\345\271\225\344\270\255\345\277\203.gif" diff --git "a/v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\347\202\271\345\207\273\345\272\224\347\224\250.png" "b/docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\347\202\271\345\207\273\345\272\224\347\224\250.png" similarity index 100% rename from "v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\347\202\271\345\207\273\345\272\224\347\224\250.png" rename to "docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\347\202\271\345\207\273\345\272\224\347\224\250.png" diff --git "a/v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\347\273\204\344\273\266\346\224\257\346\214\2013D\350\256\276\347\275\256.png" "b/docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\347\273\204\344\273\266\346\224\257\346\214\2013D\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\347\273\204\344\273\266\346\224\257\346\214\2013D\350\256\276\347\275\256.png" rename to "docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\347\273\204\344\273\266\346\224\257\346\214\2013D\350\256\276\347\275\256.png" diff --git "a/v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\207\252\345\256\232\344\271\211\345\210\227\345\256\275.png" "b/docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\207\252\345\256\232\344\271\211\345\210\227\345\256\275.png" similarity index 100% rename from "v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\207\252\345\256\232\344\271\211\345\210\227\345\256\275.png" rename to "docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\207\252\345\256\232\344\271\211\345\210\227\345\256\275.png" diff --git "a/v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\207\252\345\256\232\344\271\211\345\210\227\345\256\275\346\211\213\345\212\250.gif" "b/docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\207\252\345\256\232\344\271\211\345\210\227\345\256\275\346\211\213\345\212\250.gif" similarity index 100% rename from "v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\207\252\345\256\232\344\271\211\345\210\227\345\256\275\346\211\213\345\212\250.gif" rename to "docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\207\252\345\256\232\344\271\211\345\210\227\345\256\275\346\211\213\345\212\250.gif" diff --git "a/v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\241\250\346\240\274\345\244\215\345\210\266\345\206\205\345\256\271.gif" "b/docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\241\250\346\240\274\345\244\215\345\210\266\345\206\205\345\256\271.gif" similarity index 100% rename from "v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\241\250\346\240\274\345\244\215\345\210\266\345\206\205\345\256\271.gif" rename to "docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\241\250\346\240\274\345\244\215\345\210\266\345\206\205\345\256\271.gif" diff --git "a/v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\345\244\226\351\203\250\350\277\236\346\216\245\350\267\263\350\275\254.png" "b/docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\345\244\226\351\203\250\350\277\236\346\216\245\350\267\263\350\275\254.png" similarity index 100% rename from "v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\345\244\226\351\203\250\350\277\236\346\216\245\350\267\263\350\275\254.png" rename to "docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\345\244\226\351\203\250\350\277\236\346\216\245\350\267\263\350\275\254.png" diff --git "a/v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\350\267\263\350\275\254\345\206\205\345\256\271.png" "b/docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\350\267\263\350\275\254\345\206\205\345\256\271.png" similarity index 100% rename from "v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\350\267\263\350\275\254\345\206\205\345\256\271.png" rename to "docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\350\267\263\350\275\254\345\206\205\345\256\271.png" diff --git "a/v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\233\350\241\214\345\210\206\344\272\253.png" "b/docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\233\350\241\214\345\210\206\344\272\253.png" similarity index 100% rename from "v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\233\350\241\214\345\210\206\344\272\253.png" rename to "docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\233\350\241\214\345\210\206\344\272\253.png" diff --git "a/v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\233\350\241\214\345\210\206\344\272\2532.png" "b/docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\233\350\241\214\345\210\206\344\272\2532.png" similarity index 100% rename from "v2/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\233\350\241\214\345\210\206\344\272\2532.png" rename to "docs/img/panel_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\233\350\241\214\345\210\206\344\272\2532.png" diff --git "a/v1/img/quick_start/\344\270\213\351\222\273\345\261\225\347\244\272.png" "b/docs/img/quick_start/\344\270\213\351\222\273\345\261\225\347\244\272.png" similarity index 100% rename from "v1/img/quick_start/\344\270\213\351\222\273\345\261\225\347\244\272.png" rename to "docs/img/quick_start/\344\270\213\351\222\273\345\261\225\347\244\272.png" diff --git "a/v1/img/quick_start/\344\273\252\350\241\250\346\235\277\347\225\214\351\235\242.png" "b/docs/img/quick_start/\344\273\252\350\241\250\346\235\277\347\225\214\351\235\242.png" similarity index 100% rename from "v1/img/quick_start/\344\273\252\350\241\250\346\235\277\347\225\214\351\235\242.png" rename to "docs/img/quick_start/\344\273\252\350\241\250\346\235\277\347\225\214\351\235\242.png" diff --git "a/v1/img/quick_start/\345\210\233\345\273\272\344\273\252\350\241\250\346\235\277.png" "b/docs/img/quick_start/\345\210\233\345\273\272\344\273\252\350\241\250\346\235\277.png" similarity index 100% rename from "v1/img/quick_start/\345\210\233\345\273\272\344\273\252\350\241\250\346\235\277.png" rename to "docs/img/quick_start/\345\210\233\345\273\272\344\273\252\350\241\250\346\235\277.png" diff --git "a/v1/img/quick_start/\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245.png" "b/docs/img/quick_start/\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245.png" similarity index 100% rename from "v1/img/quick_start/\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245.png" rename to "docs/img/quick_start/\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\245.png" diff --git "a/v1/img/quick_start/\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\2452.png" "b/docs/img/quick_start/\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\2452.png" similarity index 100% rename from "v1/img/quick_start/\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\2452.png" rename to "docs/img/quick_start/\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\2452.png" diff --git "a/v1/img/quick_start/\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\2453.png" "b/docs/img/quick_start/\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\2453.png" similarity index 100% rename from "v1/img/quick_start/\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\2453.png" rename to "docs/img/quick_start/\345\210\233\345\273\272\345\205\254\345\205\261\351\223\276\346\216\2453.png" diff --git "a/v1/img/quick_start/\345\257\274\350\210\252\346\240\217.png" "b/docs/img/quick_start/\345\257\274\350\210\252\346\240\217.png" similarity index 100% rename from "v1/img/quick_start/\345\257\274\350\210\252\346\240\217.png" rename to "docs/img/quick_start/\345\257\274\350\210\252\346\240\217.png" diff --git "a/v1/img/quick_start/\345\272\224\347\224\250.png" "b/docs/img/quick_start/\345\272\224\347\224\250.png" similarity index 100% rename from "v1/img/quick_start/\345\272\224\347\224\250.png" rename to "docs/img/quick_start/\345\272\224\347\224\250.png" diff --git "a/v1/img/quick_start/\346\225\260\346\215\256\346\272\220\347\225\214\351\235\242.png" "b/docs/img/quick_start/\346\225\260\346\215\256\346\272\220\347\225\214\351\235\242.png" similarity index 100% rename from "v1/img/quick_start/\346\225\260\346\215\256\346\272\220\347\225\214\351\235\242.png" rename to "docs/img/quick_start/\346\225\260\346\215\256\346\272\220\347\225\214\351\235\242.png" diff --git "a/v2/img/quick_start/\346\225\260\346\215\256\351\233\206\346\216\222\345\272\217.png" "b/docs/img/quick_start/\346\225\260\346\215\256\351\233\206\346\216\222\345\272\217.png" similarity index 100% rename from "v2/img/quick_start/\346\225\260\346\215\256\351\233\206\346\216\222\345\272\217.png" rename to "docs/img/quick_start/\346\225\260\346\215\256\351\233\206\346\216\222\345\272\217.png" diff --git "a/v2/img/quick_start/\346\225\260\346\215\256\351\233\206\346\216\222\345\272\2172.png" "b/docs/img/quick_start/\346\225\260\346\215\256\351\233\206\346\216\222\345\272\2172.png" similarity index 100% rename from "v2/img/quick_start/\346\225\260\346\215\256\351\233\206\346\216\222\345\272\2172.png" rename to "docs/img/quick_start/\346\225\260\346\215\256\351\233\206\346\216\222\345\272\2172.png" diff --git "a/v1/img/quick_start/\346\225\260\346\215\256\351\233\206\347\225\214\351\235\242.png" "b/docs/img/quick_start/\346\225\260\346\215\256\351\233\206\347\225\214\351\235\242.png" similarity index 100% rename from "v1/img/quick_start/\346\225\260\346\215\256\351\233\206\347\225\214\351\235\242.png" rename to "docs/img/quick_start/\346\225\260\346\215\256\351\233\206\347\225\214\351\235\242.png" diff --git "a/v1/img/quick_start/\346\237\245\347\234\213\344\273\252\350\241\250\346\235\277.png" "b/docs/img/quick_start/\346\237\245\347\234\213\344\273\252\350\241\250\346\235\277.png" similarity index 100% rename from "v1/img/quick_start/\346\237\245\347\234\213\344\273\252\350\241\250\346\235\277.png" rename to "docs/img/quick_start/\346\237\245\347\234\213\344\273\252\350\241\250\346\235\277.png" diff --git "a/v1/img/quick_start/\346\250\241\346\235\277\345\270\202\345\234\272.png" "b/docs/img/quick_start/\346\250\241\346\235\277\345\270\202\345\234\272.png" similarity index 100% rename from "v1/img/quick_start/\346\250\241\346\235\277\345\270\202\345\234\272.png" rename to "docs/img/quick_start/\346\250\241\346\235\277\345\270\202\345\234\272.png" diff --git "a/v1/img/quick_start/\346\267\273\345\212\240\346\225\260\346\215\256\346\272\220.png" "b/docs/img/quick_start/\346\267\273\345\212\240\346\225\260\346\215\256\346\272\220.png" similarity index 100% rename from "v1/img/quick_start/\346\267\273\345\212\240\346\225\260\346\215\256\346\272\220.png" rename to "docs/img/quick_start/\346\267\273\345\212\240\346\225\260\346\215\256\346\272\220.png" diff --git "a/v1/img/quick_start/\346\267\273\345\212\240\346\225\260\346\215\256\351\233\206.png" "b/docs/img/quick_start/\346\267\273\345\212\240\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v1/img/quick_start/\346\267\273\345\212\240\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/quick_start/\346\267\273\345\212\240\346\225\260\346\215\256\351\233\206.png" diff --git "a/v1/img/quick_start/\346\267\273\345\212\240\346\225\260\346\215\256\351\233\2061.png" "b/docs/img/quick_start/\346\267\273\345\212\240\346\225\260\346\215\256\351\233\2061.png" similarity index 100% rename from "v1/img/quick_start/\346\267\273\345\212\240\346\225\260\346\215\256\351\233\2061.png" rename to "docs/img/quick_start/\346\267\273\345\212\240\346\225\260\346\215\256\351\233\2061.png" diff --git "a/v1/img/quick_start/\346\267\273\345\212\240\350\247\206\345\233\276.png" "b/docs/img/quick_start/\346\267\273\345\212\240\350\247\206\345\233\276.png" similarity index 100% rename from "v1/img/quick_start/\346\267\273\345\212\240\350\247\206\345\233\276.png" rename to "docs/img/quick_start/\346\267\273\345\212\240\350\247\206\345\233\276.png" diff --git "a/v1/img/quick_start/\346\267\273\345\212\240\350\247\206\345\233\2762.png" "b/docs/img/quick_start/\346\267\273\345\212\240\350\247\206\345\233\2762.png" similarity index 100% rename from "v1/img/quick_start/\346\267\273\345\212\240\350\247\206\345\233\2762.png" rename to "docs/img/quick_start/\346\267\273\345\212\240\350\247\206\345\233\2762.png" diff --git "a/v1/img/quick_start/\346\267\273\345\212\240\350\247\206\345\233\2763.png" "b/docs/img/quick_start/\346\267\273\345\212\240\350\247\206\345\233\2763.png" similarity index 100% rename from "v1/img/quick_start/\346\267\273\345\212\240\350\247\206\345\233\2763.png" rename to "docs/img/quick_start/\346\267\273\345\212\240\350\247\206\345\233\2763.png" diff --git "a/v1/img/quick_start/\346\267\273\345\212\240\350\247\206\345\233\2764.png" "b/docs/img/quick_start/\346\267\273\345\212\240\350\247\206\345\233\2764.png" similarity index 100% rename from "v1/img/quick_start/\346\267\273\345\212\240\350\247\206\345\233\2764.png" rename to "docs/img/quick_start/\346\267\273\345\212\240\350\247\206\345\233\2764.png" diff --git "a/v1/img/quick_start/\347\263\273\347\273\237\347\256\241\347\220\206\347\225\214\351\235\242.png" "b/docs/img/quick_start/\347\263\273\347\273\237\347\256\241\347\220\206\347\225\214\351\235\242.png" similarity index 100% rename from "v1/img/quick_start/\347\263\273\347\273\237\347\256\241\347\220\206\347\225\214\351\235\242.png" rename to "docs/img/quick_start/\347\263\273\347\273\237\347\256\241\347\220\206\347\225\214\351\235\242.png" diff --git a/v1/img/release_notes/API_keys.png b/docs/img/release_notes/API_keys.png similarity index 100% rename from v1/img/release_notes/API_keys.png rename to docs/img/release_notes/API_keys.png diff --git "a/v1/img/release_notes/API_\344\270\273\351\242\230\350\256\276\347\275\256.png" "b/docs/img/release_notes/API_\344\270\273\351\242\230\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/release_notes/API_\344\270\273\351\242\230\350\256\276\347\275\256.png" rename to "docs/img/release_notes/API_\344\270\273\351\242\230\350\256\276\347\275\256.png" diff --git "a/v1/img/release_notes/API\346\225\260\346\215\256\350\241\250.png" "b/docs/img/release_notes/API\346\225\260\346\215\256\350\241\250.png" similarity index 100% rename from "v1/img/release_notes/API\346\225\260\346\215\256\350\241\250.png" rename to "docs/img/release_notes/API\346\225\260\346\215\256\350\241\250.png" diff --git "a/v1/img/release_notes/AntV\345\233\276\345\272\223\346\240\207\351\242\230\344\277\256\346\224\271.png" "b/docs/img/release_notes/AntV\345\233\276\345\272\223\346\240\207\351\242\230\344\277\256\346\224\271.png" similarity index 100% rename from "v1/img/release_notes/AntV\345\233\276\345\272\223\346\240\207\351\242\230\344\277\256\346\224\271.png" rename to "docs/img/release_notes/AntV\345\233\276\345\272\223\346\240\207\351\242\230\344\277\256\346\224\271.png" diff --git "a/v1/img/release_notes/AntV\345\233\276\345\272\223\346\270\220\345\217\230\350\211\262.png" "b/docs/img/release_notes/AntV\345\233\276\345\272\223\346\270\220\345\217\230\350\211\262.png" similarity index 100% rename from "v1/img/release_notes/AntV\345\233\276\345\272\223\346\270\220\345\217\230\350\211\262.png" rename to "docs/img/release_notes/AntV\345\233\276\345\272\223\346\270\220\345\217\230\350\211\262.png" diff --git "a/v1/img/release_notes/AntV\350\241\250\346\240\274\346\273\232\345\212\250\346\235\2411.png" "b/docs/img/release_notes/AntV\350\241\250\346\240\274\346\273\232\345\212\250\346\235\2411.png" similarity index 100% rename from "v1/img/release_notes/AntV\350\241\250\346\240\274\346\273\232\345\212\250\346\235\2411.png" rename to "docs/img/release_notes/AntV\350\241\250\346\240\274\346\273\232\345\212\250\346\235\2411.png" diff --git "a/v1/img/release_notes/AntV\350\241\250\346\240\274\346\273\232\345\212\250\346\235\2412.png" "b/docs/img/release_notes/AntV\350\241\250\346\240\274\346\273\232\345\212\250\346\235\2412.png" similarity index 100% rename from "v1/img/release_notes/AntV\350\241\250\346\240\274\346\273\232\345\212\250\346\235\2412.png" rename to "docs/img/release_notes/AntV\350\241\250\346\240\274\346\273\232\345\212\250\346\235\2412.png" diff --git "a/v1/img/release_notes/Antv\346\212\230\347\272\277\345\233\276\345\210\206\347\273\204.png" "b/docs/img/release_notes/Antv\346\212\230\347\272\277\345\233\276\345\210\206\347\273\204.png" similarity index 100% rename from "v1/img/release_notes/Antv\346\212\230\347\272\277\345\233\276\345\210\206\347\273\204.png" rename to "docs/img/release_notes/Antv\346\212\230\347\272\277\345\233\276\345\210\206\347\273\204.png" diff --git "a/v1/img/dataset_configuration/CSV_\346\240\274\345\274\217\346\226\207\344\273\266.png" "b/docs/img/release_notes/CSV_\346\240\274\345\274\217\346\226\207\344\273\266.png" similarity index 100% rename from "v1/img/dataset_configuration/CSV_\346\240\274\345\274\217\346\226\207\344\273\266.png" rename to "docs/img/release_notes/CSV_\346\240\274\345\274\217\346\226\207\344\273\266.png" diff --git "a/v1/img/dataset_configuration/CSV_\346\240\274\345\274\217\346\226\207\344\273\2661.png" "b/docs/img/release_notes/CSV_\346\240\274\345\274\217\346\226\207\344\273\2661.png" similarity index 100% rename from "v1/img/dataset_configuration/CSV_\346\240\274\345\274\217\346\226\207\344\273\2661.png" rename to "docs/img/release_notes/CSV_\346\240\274\345\274\217\346\226\207\344\273\2661.png" diff --git "a/v1/img/release_notes/ECharts\345\234\260\345\233\276.png" "b/docs/img/release_notes/ECharts\345\234\260\345\233\276.png" similarity index 100% rename from "v1/img/release_notes/ECharts\345\234\260\345\233\276.png" rename to "docs/img/release_notes/ECharts\345\234\260\345\233\276.png" diff --git "a/v1/img/release_notes/ECharts\345\234\260\345\233\276\345\210\207\346\215\242\346\214\207\346\240\207.png" "b/docs/img/release_notes/ECharts\345\234\260\345\233\276\345\210\207\346\215\242\346\214\207\346\240\207.png" similarity index 100% rename from "v1/img/release_notes/ECharts\345\234\260\345\233\276\345\210\207\346\215\242\346\214\207\346\240\207.png" rename to "docs/img/release_notes/ECharts\345\234\260\345\233\276\345\210\207\346\215\242\346\214\207\346\240\207.png" diff --git "a/v1/img/release_notes/ECharts\345\234\260\345\233\276\346\230\276\351\232\220\350\256\276\347\275\2561.png" "b/docs/img/release_notes/ECharts\345\234\260\345\233\276\346\230\276\351\232\220\350\256\276\347\275\2561.png" similarity index 100% rename from "v1/img/release_notes/ECharts\345\234\260\345\233\276\346\230\276\351\232\220\350\256\276\347\275\2561.png" rename to "docs/img/release_notes/ECharts\345\234\260\345\233\276\346\230\276\351\232\220\350\256\276\347\275\2561.png" diff --git "a/v1/img/release_notes/ECharts\345\234\260\345\233\276\346\230\276\351\232\220\350\256\276\347\275\2562.png" "b/docs/img/release_notes/ECharts\345\234\260\345\233\276\346\230\276\351\232\220\350\256\276\347\275\2562.png" similarity index 100% rename from "v1/img/release_notes/ECharts\345\234\260\345\233\276\346\230\276\351\232\220\350\256\276\347\275\2562.png" rename to "docs/img/release_notes/ECharts\345\234\260\345\233\276\346\230\276\351\232\220\350\256\276\347\275\2562.png" diff --git "a/v1/img/release_notes/ECharts\345\234\260\345\233\276\346\270\220\345\217\230\350\211\2621.png" "b/docs/img/release_notes/ECharts\345\234\260\345\233\276\346\270\220\345\217\230\350\211\2621.png" similarity index 100% rename from "v1/img/release_notes/ECharts\345\234\260\345\233\276\346\270\220\345\217\230\350\211\2621.png" rename to "docs/img/release_notes/ECharts\345\234\260\345\233\276\346\270\220\345\217\230\350\211\2621.png" diff --git "a/v1/img/release_notes/ECharts\345\234\260\345\233\276\346\270\220\345\217\230\350\211\2622.png" "b/docs/img/release_notes/ECharts\345\234\260\345\233\276\346\270\220\345\217\230\350\211\2622.png" similarity index 100% rename from "v1/img/release_notes/ECharts\345\234\260\345\233\276\346\270\220\345\217\230\350\211\2622.png" rename to "docs/img/release_notes/ECharts\345\234\260\345\233\276\346\270\220\345\217\230\350\211\2622.png" diff --git "a/v1/img/release_notes/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235.png" "b/docs/img/release_notes/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235.png" similarity index 100% rename from "v1/img/release_notes/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235.png" rename to "docs/img/release_notes/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235.png" diff --git "a/v1/img/release_notes/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235_\345\256\236\351\231\205\350\267\235\347\246\273.png" "b/docs/img/release_notes/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235_\345\256\236\351\231\205\350\267\235\347\246\273.png" similarity index 100% rename from "v1/img/release_notes/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235_\345\256\236\351\231\205\350\267\235\347\246\273.png" rename to "docs/img/release_notes/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235_\345\256\236\351\231\205\350\267\235\347\246\273.png" diff --git "a/v1/img/release_notes/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235_\347\231\276\345\210\206\346\257\224.png" "b/docs/img/release_notes/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235_\347\231\276\345\210\206\346\257\224.png" similarity index 100% rename from "v1/img/release_notes/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235_\347\231\276\345\210\206\346\257\224.png" rename to "docs/img/release_notes/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235_\347\231\276\345\210\206\346\257\224.png" diff --git "a/v1/img/release_notes/Kylin_\346\225\260\346\215\256\346\272\220.png" "b/docs/img/release_notes/Kylin_\346\225\260\346\215\256\346\272\220.png" similarity index 100% rename from "v1/img/release_notes/Kylin_\346\225\260\346\215\256\346\272\220.png" rename to "docs/img/release_notes/Kylin_\346\225\260\346\215\256\346\272\220.png" diff --git "a/v1/img/release_notes/MySQL \346\227\266\351\227\264\345\255\227\346\256\265\346\224\257\346\214\201\346\214\211\345\255\243\345\272\246\343\200\201\345\221\250\347\273\237\350\256\241 1.png" "b/docs/img/release_notes/MySQL \346\227\266\351\227\264\345\255\227\346\256\265\346\224\257\346\214\201\346\214\211\345\255\243\345\272\246\343\200\201\345\221\250\347\273\237\350\256\241 1.png" similarity index 100% rename from "v1/img/release_notes/MySQL \346\227\266\351\227\264\345\255\227\346\256\265\346\224\257\346\214\201\346\214\211\345\255\243\345\272\246\343\200\201\345\221\250\347\273\237\350\256\241 1.png" rename to "docs/img/release_notes/MySQL \346\227\266\351\227\264\345\255\227\346\256\265\346\224\257\346\214\201\346\214\211\345\255\243\345\272\246\343\200\201\345\221\250\347\273\237\350\256\241 1.png" diff --git "a/v1/img/release_notes/MySQL \346\227\266\351\227\264\345\255\227\346\256\265\346\224\257\346\214\201\346\214\211\345\255\243\345\272\246\343\200\201\345\221\250\347\273\237\350\256\241 2.png" "b/docs/img/release_notes/MySQL \346\227\266\351\227\264\345\255\227\346\256\265\346\224\257\346\214\201\346\214\211\345\255\243\345\272\246\343\200\201\345\221\250\347\273\237\350\256\241 2.png" similarity index 100% rename from "v1/img/release_notes/MySQL \346\227\266\351\227\264\345\255\227\346\256\265\346\224\257\346\214\201\346\214\211\345\255\243\345\272\246\343\200\201\345\221\250\347\273\237\350\256\241 2.png" rename to "docs/img/release_notes/MySQL \346\227\266\351\227\264\345\255\227\346\256\265\346\224\257\346\214\201\346\214\211\345\255\243\345\272\246\343\200\201\345\221\250\347\273\237\350\256\241 2.png" diff --git "a/v1/img/release_notes/MySQL \346\227\266\351\227\264\345\255\227\346\256\265\346\224\257\346\214\201\346\214\211\345\255\243\345\272\246\343\200\201\345\221\250\347\273\237\350\256\241 3.png" "b/docs/img/release_notes/MySQL \346\227\266\351\227\264\345\255\227\346\256\265\346\224\257\346\214\201\346\214\211\345\255\243\345\272\246\343\200\201\345\221\250\347\273\237\350\256\241 3.png" similarity index 100% rename from "v1/img/release_notes/MySQL \346\227\266\351\227\264\345\255\227\346\256\265\346\224\257\346\214\201\346\214\211\345\255\243\345\272\246\343\200\201\345\221\250\347\273\237\350\256\241 3.png" rename to "docs/img/release_notes/MySQL \346\227\266\351\227\264\345\255\227\346\256\265\346\224\257\346\214\201\346\214\211\345\255\243\345\272\246\343\200\201\345\221\250\347\273\237\350\256\241 3.png" diff --git "a/v1/img/release_notes/Oracle\346\225\260\346\215\256\346\272\220.png" "b/docs/img/release_notes/Oracle\346\225\260\346\215\256\346\272\220.png" similarity index 100% rename from "v1/img/release_notes/Oracle\346\225\260\346\215\256\346\272\220.png" rename to "docs/img/release_notes/Oracle\346\225\260\346\215\256\346\272\220.png" diff --git "a/v1/img/release_notes/SQL\346\225\260\346\215\256\351\233\206_\346\225\260\346\215\256\345\217\202\350\200\203.png" "b/docs/img/release_notes/SQL\346\225\260\346\215\256\351\233\206_\346\225\260\346\215\256\345\217\202\350\200\203.png" similarity index 100% rename from "v1/img/release_notes/SQL\346\225\260\346\215\256\351\233\206_\346\225\260\346\215\256\345\217\202\350\200\203.png" rename to "docs/img/release_notes/SQL\346\225\260\346\215\256\351\233\206_\346\225\260\346\215\256\345\217\202\350\200\203.png" diff --git "a/v1/img/release_notes/SQL\346\225\260\346\215\256\351\233\206_\346\225\260\346\215\256\345\217\202\350\200\2031.png" "b/docs/img/release_notes/SQL\346\225\260\346\215\256\351\233\206_\346\225\260\346\215\256\345\217\202\350\200\2031.png" similarity index 100% rename from "v1/img/release_notes/SQL\346\225\260\346\215\256\351\233\206_\346\225\260\346\215\256\345\217\202\350\200\2031.png" rename to "docs/img/release_notes/SQL\346\225\260\346\215\256\351\233\206_\346\225\260\346\215\256\345\217\202\350\200\2031.png" diff --git "a/v1/img/release_notes/SQL\346\225\260\346\215\256\351\233\206\345\217\230\351\207\217_\346\227\266\351\227\264\347\261\273\345\236\213.png" "b/docs/img/release_notes/SQL\346\225\260\346\215\256\351\233\206\345\217\230\351\207\217_\346\227\266\351\227\264\347\261\273\345\236\213.png" similarity index 100% rename from "v1/img/release_notes/SQL\346\225\260\346\215\256\351\233\206\345\217\230\351\207\217_\346\227\266\351\227\264\347\261\273\345\236\213.png" rename to "docs/img/release_notes/SQL\346\225\260\346\215\256\351\233\206\345\217\230\351\207\217_\346\227\266\351\227\264\347\261\273\345\236\213.png" diff --git "a/v1/img/release_notes/SQL\346\225\260\346\215\256\351\233\206\345\217\230\351\207\217_\346\227\266\351\227\264\347\261\273\345\236\2131.png" "b/docs/img/release_notes/SQL\346\225\260\346\215\256\351\233\206\345\217\230\351\207\217_\346\227\266\351\227\264\347\261\273\345\236\2131.png" similarity index 100% rename from "v1/img/release_notes/SQL\346\225\260\346\215\256\351\233\206\345\217\230\351\207\217_\346\227\266\351\227\264\347\261\273\345\236\2131.png" rename to "docs/img/release_notes/SQL\346\225\260\346\215\256\351\233\206\345\217\230\351\207\217_\346\227\266\351\227\264\347\261\273\345\236\2131.png" diff --git "a/v1/img/release_notes/SQL\346\225\260\346\215\256\351\233\206\345\217\230\351\207\217_\346\227\266\351\227\264\347\261\273\345\236\2132.png" "b/docs/img/release_notes/SQL\346\225\260\346\215\256\351\233\206\345\217\230\351\207\217_\346\227\266\351\227\264\347\261\273\345\236\2132.png" similarity index 100% rename from "v1/img/release_notes/SQL\346\225\260\346\215\256\351\233\206\345\217\230\351\207\217_\346\227\266\351\227\264\347\261\273\345\236\2132.png" rename to "docs/img/release_notes/SQL\346\225\260\346\215\256\351\233\206\345\217\230\351\207\217_\346\227\266\351\227\264\347\261\273\345\236\2132.png" diff --git "a/v1/img/release_notes/Tab\347\273\204\344\273\266.png" "b/docs/img/release_notes/Tab\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/release_notes/Tab\347\273\204\344\273\266.png" rename to "docs/img/release_notes/Tab\347\273\204\344\273\266.png" diff --git "a/v1/img/release_notes/Tab\347\273\204\344\273\266_\350\267\263\350\275\254.png" "b/docs/img/release_notes/Tab\347\273\204\344\273\266_\350\267\263\350\275\254.png" similarity index 100% rename from "v1/img/release_notes/Tab\347\273\204\344\273\266_\350\267\263\350\275\254.png" rename to "docs/img/release_notes/Tab\347\273\204\344\273\266_\350\267\263\350\275\254.png" diff --git "a/v1/img/release_notes/Tab\347\273\204\344\273\266\345\255\227\344\275\223\345\244\247\345\260\217.png" "b/docs/img/release_notes/Tab\347\273\204\344\273\266\345\255\227\344\275\223\345\244\247\345\260\217.png" similarity index 100% rename from "v1/img/release_notes/Tab\347\273\204\344\273\266\345\255\227\344\275\223\345\244\247\345\260\217.png" rename to "docs/img/release_notes/Tab\347\273\204\344\273\266\345\255\227\344\275\223\345\244\247\345\260\217.png" diff --git "a/v1/img/release_notes/Tab\347\273\204\344\273\266\350\275\256\346\222\255.png" "b/docs/img/release_notes/Tab\347\273\204\344\273\266\350\275\256\346\222\255.png" similarity index 100% rename from "v1/img/release_notes/Tab\347\273\204\344\273\266\350\275\256\346\222\255.png" rename to "docs/img/release_notes/Tab\347\273\204\344\273\266\350\275\256\346\222\255.png" diff --git a/v1/img/release_notes/mongo-bi.png b/docs/img/release_notes/mongo-bi.png similarity index 100% rename from v1/img/release_notes/mongo-bi.png rename to docs/img/release_notes/mongo-bi.png diff --git "a/v1/img/release_notes/\344\270\200\351\224\256\345\244\215\345\210\266\350\241\250\345\220\215.png" "b/docs/img/release_notes/\344\270\200\351\224\256\345\244\215\345\210\266\350\241\250\345\220\215.png" similarity index 100% rename from "v1/img/release_notes/\344\270\200\351\224\256\345\244\215\345\210\266\350\241\250\345\220\215.png" rename to "docs/img/release_notes/\344\270\200\351\224\256\345\244\215\345\210\266\350\241\250\345\220\215.png" diff --git "a/v1/img/release_notes/\344\270\213\351\222\273\345\214\272\345\237\237\346\226\207\345\255\227.png" "b/docs/img/release_notes/\344\270\213\351\222\273\345\214\272\345\237\237\346\226\207\345\255\227.png" similarity index 100% rename from "v1/img/release_notes/\344\270\213\351\222\273\345\214\272\345\237\237\346\226\207\345\255\227.png" rename to "docs/img/release_notes/\344\270\213\351\222\273\345\214\272\345\237\237\346\226\207\345\255\227.png" diff --git "a/v1/img/release_notes/\344\270\213\351\222\273\345\214\272\345\237\237\346\226\207\345\255\2271.png" "b/docs/img/release_notes/\344\270\213\351\222\273\345\214\272\345\237\237\346\226\207\345\255\2271.png" similarity index 100% rename from "v1/img/release_notes/\344\270\213\351\222\273\345\214\272\345\237\237\346\226\207\345\255\2271.png" rename to "docs/img/release_notes/\344\270\213\351\222\273\345\214\272\345\237\237\346\226\207\345\255\2271.png" diff --git "a/v1/img/release_notes/\344\270\226\347\225\214\345\234\260\345\233\276.png" "b/docs/img/release_notes/\344\270\226\347\225\214\345\234\260\345\233\276.png" similarity index 100% rename from "v1/img/release_notes/\344\270\226\347\225\214\345\234\260\345\233\276.png" rename to "docs/img/release_notes/\344\270\226\347\225\214\345\234\260\345\233\276.png" diff --git "a/v1/img/release_notes/\344\270\255\346\226\207\346\216\222\345\272\217.png" "b/docs/img/release_notes/\344\270\255\346\226\207\346\216\222\345\272\217.png" similarity index 100% rename from "v1/img/release_notes/\344\270\255\346\226\207\346\216\222\345\272\217.png" rename to "docs/img/release_notes/\344\270\255\346\226\207\346\216\222\345\272\217.png" diff --git "a/v1/img/release_notes/\344\270\273\351\242\230\350\256\276\347\275\256_\347\263\273\347\273\237\344\270\273\351\242\230.png" "b/docs/img/release_notes/\344\270\273\351\242\230\350\256\276\347\275\256_\347\263\273\347\273\237\344\270\273\351\242\230.png" similarity index 100% rename from "v1/img/release_notes/\344\270\273\351\242\230\350\256\276\347\275\256_\347\263\273\347\273\237\344\270\273\351\242\230.png" rename to "docs/img/release_notes/\344\270\273\351\242\230\350\256\276\347\275\256_\347\263\273\347\273\237\344\270\273\351\242\230.png" diff --git "a/v1/img/release_notes/\344\270\273\351\242\230\350\256\276\347\275\256_\347\274\226\350\276\221.png" "b/docs/img/release_notes/\344\270\273\351\242\230\350\256\276\347\275\256_\347\274\226\350\276\221.png" similarity index 100% rename from "v1/img/release_notes/\344\270\273\351\242\230\350\256\276\347\275\256_\347\274\226\350\276\221.png" rename to "docs/img/release_notes/\344\270\273\351\242\230\350\256\276\347\275\256_\347\274\226\350\276\221.png" diff --git "a/v1/img/release_notes/\344\273\252\350\241\250\346\235\277\344\270\273\351\242\230\350\211\262.png" "b/docs/img/release_notes/\344\273\252\350\241\250\346\235\277\344\270\273\351\242\230\350\211\262.png" similarity index 100% rename from "v1/img/release_notes/\344\273\252\350\241\250\346\235\277\344\270\273\351\242\230\350\211\262.png" rename to "docs/img/release_notes/\344\273\252\350\241\250\346\235\277\344\270\273\351\242\230\350\211\262.png" diff --git "a/v1/img/release_notes/\344\273\252\350\241\250\346\235\277\344\277\241\346\201\257.png" "b/docs/img/release_notes/\344\273\252\350\241\250\346\235\277\344\277\241\346\201\257.png" similarity index 100% rename from "v1/img/release_notes/\344\273\252\350\241\250\346\235\277\344\277\241\346\201\257.png" rename to "docs/img/release_notes/\344\273\252\350\241\250\346\235\277\344\277\241\346\201\257.png" diff --git "a/v1/img/release_notes/\344\273\252\350\241\250\346\235\277\345\210\267\346\226\260.png" "b/docs/img/release_notes/\344\273\252\350\241\250\346\235\277\345\210\267\346\226\260.png" similarity index 100% rename from "v1/img/release_notes/\344\273\252\350\241\250\346\235\277\345\210\267\346\226\260.png" rename to "docs/img/release_notes/\344\273\252\350\241\250\346\235\277\345\210\267\346\226\260.png" diff --git "a/v1/img/release_notes/\344\273\252\350\241\250\346\235\277\345\217\226\346\266\210\345\217\221\345\270\203\346\217\220\347\244\272.png" "b/docs/img/release_notes/\344\273\252\350\241\250\346\235\277\345\217\226\346\266\210\345\217\221\345\270\203\346\217\220\347\244\272.png" similarity index 100% rename from "v1/img/release_notes/\344\273\252\350\241\250\346\235\277\345\217\226\346\266\210\345\217\221\345\270\203\346\217\220\347\244\272.png" rename to "docs/img/release_notes/\344\273\252\350\241\250\346\235\277\345\217\226\346\266\210\345\217\221\345\270\203\346\217\220\347\244\272.png" diff --git "a/v1/img/release_notes/\344\273\252\350\241\250\346\235\277\345\270\203\345\261\200\344\274\230\345\214\226.png" "b/docs/img/release_notes/\344\273\252\350\241\250\346\235\277\345\270\203\345\261\200\344\274\230\345\214\226.png" similarity index 100% rename from "v1/img/release_notes/\344\273\252\350\241\250\346\235\277\345\270\203\345\261\200\344\274\230\345\214\226.png" rename to "docs/img/release_notes/\344\273\252\350\241\250\346\235\277\345\270\203\345\261\200\344\274\230\345\214\226.png" diff --git "a/v1/img/release_notes/\344\273\252\350\241\250\346\235\277\345\270\203\345\261\200\344\274\230\345\214\226_\345\233\276\346\240\207\350\257\264\346\230\216.png" "b/docs/img/release_notes/\344\273\252\350\241\250\346\235\277\345\270\203\345\261\200\344\274\230\345\214\226_\345\233\276\346\240\207\350\257\264\346\230\216.png" similarity index 100% rename from "v1/img/release_notes/\344\273\252\350\241\250\346\235\277\345\270\203\345\261\200\344\274\230\345\214\226_\345\233\276\346\240\207\350\257\264\346\230\216.png" rename to "docs/img/release_notes/\344\273\252\350\241\250\346\235\277\345\270\203\345\261\200\344\274\230\345\214\226_\345\233\276\346\240\207\350\257\264\346\230\216.png" diff --git "a/v1/img/release_notes/\344\273\252\350\241\250\346\235\277\345\270\203\345\261\200\344\274\230\345\214\226_\346\240\267\345\274\217.png" "b/docs/img/release_notes/\344\273\252\350\241\250\346\235\277\345\270\203\345\261\200\344\274\230\345\214\226_\346\240\267\345\274\217.png" similarity index 100% rename from "v1/img/release_notes/\344\273\252\350\241\250\346\235\277\345\270\203\345\261\200\344\274\230\345\214\226_\346\240\267\345\274\217.png" rename to "docs/img/release_notes/\344\273\252\350\241\250\346\235\277\345\270\203\345\261\200\344\274\230\345\214\226_\346\240\267\345\274\217.png" diff --git "a/v1/img/release_notes/\344\273\252\350\241\250\346\235\277\346\240\267\345\274\217\345\217\212\344\270\273\351\242\230\350\256\276\347\275\256.png" "b/docs/img/release_notes/\344\273\252\350\241\250\346\235\277\346\240\267\345\274\217\345\217\212\344\270\273\351\242\230\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/release_notes/\344\273\252\350\241\250\346\235\277\346\240\267\345\274\217\345\217\212\344\270\273\351\242\230\350\256\276\347\275\256.png" rename to "docs/img/release_notes/\344\273\252\350\241\250\346\235\277\346\240\267\345\274\217\345\217\212\344\270\273\351\242\230\350\256\276\347\275\256.png" diff --git "a/v1/img/release_notes/\344\273\252\350\241\250\346\235\277\346\240\267\345\274\217\345\217\212\344\270\273\351\242\230\350\256\276\347\275\256\345\216\237\346\234\254.png" "b/docs/img/release_notes/\344\273\252\350\241\250\346\235\277\346\240\267\345\274\217\345\217\212\344\270\273\351\242\230\350\256\276\347\275\256\345\216\237\346\234\254.png" similarity index 100% rename from "v1/img/release_notes/\344\273\252\350\241\250\346\235\277\346\240\267\345\274\217\345\217\212\344\270\273\351\242\230\350\256\276\347\275\256\345\216\237\346\234\254.png" rename to "docs/img/release_notes/\344\273\252\350\241\250\346\235\277\346\240\267\345\274\217\345\217\212\344\270\273\351\242\230\350\256\276\347\275\256\345\216\237\346\234\254.png" diff --git "a/v1/img/release_notes/\344\273\252\350\241\250\346\235\277\347\275\256\351\241\266.png" "b/docs/img/release_notes/\344\273\252\350\241\250\346\235\277\347\275\256\351\241\266.png" similarity index 100% rename from "v1/img/release_notes/\344\273\252\350\241\250\346\235\277\347\275\256\351\241\266.png" rename to "docs/img/release_notes/\344\273\252\350\241\250\346\235\277\347\275\256\351\241\266.png" diff --git "a/v1/img/release_notes/\344\273\252\350\241\250\346\235\277\350\257\246\346\203\205\345\274\271\346\241\206_\347\224\250\346\210\267\345\220\215.png" "b/docs/img/release_notes/\344\273\252\350\241\250\346\235\277\350\257\246\346\203\205\345\274\271\346\241\206_\347\224\250\346\210\267\345\220\215.png" similarity index 100% rename from "v1/img/release_notes/\344\273\252\350\241\250\346\235\277\350\257\246\346\203\205\345\274\271\346\241\206_\347\224\250\346\210\267\345\220\215.png" rename to "docs/img/release_notes/\344\273\252\350\241\250\346\235\277\350\257\246\346\203\205\345\274\271\346\241\206_\347\224\250\346\210\267\345\220\215.png" diff --git "a/v1/img/release_notes/\344\273\252\350\241\250\346\235\277\351\242\204\350\247\210\351\241\265\344\272\244\344\272\222\350\256\276\350\256\241\344\274\230\345\214\226 1.png" "b/docs/img/release_notes/\344\273\252\350\241\250\346\235\277\351\242\204\350\247\210\351\241\265\344\272\244\344\272\222\350\256\276\350\256\241\344\274\230\345\214\226 1.png" similarity index 100% rename from "v1/img/release_notes/\344\273\252\350\241\250\346\235\277\351\242\204\350\247\210\351\241\265\344\272\244\344\272\222\350\256\276\350\256\241\344\274\230\345\214\226 1.png" rename to "docs/img/release_notes/\344\273\252\350\241\250\346\235\277\351\242\204\350\247\210\351\241\265\344\272\244\344\272\222\350\256\276\350\256\241\344\274\230\345\214\226 1.png" diff --git "a/v1/img/release_notes/\344\273\252\350\241\250\346\235\277\351\242\204\350\247\210\351\241\265\344\272\244\344\272\222\350\256\276\350\256\241\344\274\230\345\214\226 2.png" "b/docs/img/release_notes/\344\273\252\350\241\250\346\235\277\351\242\204\350\247\210\351\241\265\344\272\244\344\272\222\350\256\276\350\256\241\344\274\230\345\214\226 2.png" similarity index 100% rename from "v1/img/release_notes/\344\273\252\350\241\250\346\235\277\351\242\204\350\247\210\351\241\265\344\272\244\344\272\222\350\256\276\350\256\241\344\274\230\345\214\226 2.png" rename to "docs/img/release_notes/\344\273\252\350\241\250\346\235\277\351\242\204\350\247\210\351\241\265\344\272\244\344\272\222\350\256\276\350\256\241\344\274\230\345\214\226 2.png" diff --git "a/v1/img/release_notes/\344\273\252\350\241\250\347\233\230_\345\212\250\346\200\201\345\200\274.png" "b/docs/img/release_notes/\344\273\252\350\241\250\347\233\230_\345\212\250\346\200\201\345\200\274.png" similarity index 100% rename from "v1/img/release_notes/\344\273\252\350\241\250\347\233\230_\345\212\250\346\200\201\345\200\274.png" rename to "docs/img/release_notes/\344\273\252\350\241\250\347\233\230_\345\212\250\346\200\201\345\200\274.png" diff --git "a/v1/img/release_notes/\344\274\230\345\214\226\346\267\261\350\211\262\344\270\273\351\242\230\344\270\213\345\233\276\344\276\213\347\277\273\351\241\265\346\240\207\350\257\206 1.png" "b/docs/img/release_notes/\344\274\230\345\214\226\346\267\261\350\211\262\344\270\273\351\242\230\344\270\213\345\233\276\344\276\213\347\277\273\351\241\265\346\240\207\350\257\206 1.png" similarity index 100% rename from "v1/img/release_notes/\344\274\230\345\214\226\346\267\261\350\211\262\344\270\273\351\242\230\344\270\213\345\233\276\344\276\213\347\277\273\351\241\265\346\240\207\350\257\206 1.png" rename to "docs/img/release_notes/\344\274\230\345\214\226\346\267\261\350\211\262\344\270\273\351\242\230\344\270\213\345\233\276\344\276\213\347\277\273\351\241\265\346\240\207\350\257\206 1.png" diff --git "a/v1/img/release_notes/\344\274\230\345\214\226\346\267\261\350\211\262\344\270\273\351\242\230\344\270\213\345\233\276\344\276\213\347\277\273\351\241\265\346\240\207\350\257\206 2.png" "b/docs/img/release_notes/\344\274\230\345\214\226\346\267\261\350\211\262\344\270\273\351\242\230\344\270\213\345\233\276\344\276\213\347\277\273\351\241\265\346\240\207\350\257\206 2.png" similarity index 100% rename from "v1/img/release_notes/\344\274\230\345\214\226\346\267\261\350\211\262\344\270\273\351\242\230\344\270\213\345\233\276\344\276\213\347\277\273\351\241\265\346\240\207\350\257\206 2.png" rename to "docs/img/release_notes/\344\274\230\345\214\226\346\267\261\350\211\262\344\270\273\351\242\230\344\270\213\345\233\276\344\276\213\347\277\273\351\241\265\346\240\207\350\257\206 2.png" diff --git "a/v1/img/release_notes/\345\205\254\345\205\261\351\223\276\346\216\245\345\257\274\345\207\272.png" "b/docs/img/release_notes/\345\205\254\345\205\261\351\223\276\346\216\245\345\257\274\345\207\272.png" similarity index 100% rename from "v1/img/release_notes/\345\205\254\345\205\261\351\223\276\346\216\245\345\257\274\345\207\272.png" rename to "docs/img/release_notes/\345\205\254\345\205\261\351\223\276\346\216\245\345\257\274\345\207\272.png" diff --git "a/v1/img/release_notes/\345\205\254\345\205\261\351\223\276\346\216\245\350\277\224\345\233\236.png" "b/docs/img/release_notes/\345\205\254\345\205\261\351\223\276\346\216\245\350\277\224\345\233\236.png" similarity index 100% rename from "v1/img/release_notes/\345\205\254\345\205\261\351\223\276\346\216\245\350\277\224\345\233\236.png" rename to "docs/img/release_notes/\345\205\254\345\205\261\351\223\276\346\216\245\350\277\224\345\233\236.png" diff --git "a/v1/img/release_notes/\345\210\206\347\273\204\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" "b/docs/img/release_notes/\345\210\206\347\273\204\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" similarity index 100% rename from "v1/img/release_notes/\345\210\206\347\273\204\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" rename to "docs/img/release_notes/\345\210\206\347\273\204\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" diff --git "a/v1/img/release_notes/\345\210\206\347\273\204\345\240\206\345\217\240\346\237\261\347\212\266\345\233\2761.png" "b/docs/img/release_notes/\345\210\206\347\273\204\345\240\206\345\217\240\346\237\261\347\212\266\345\233\2761.png" similarity index 100% rename from "v1/img/release_notes/\345\210\206\347\273\204\345\240\206\345\217\240\346\237\261\347\212\266\345\233\2761.png" rename to "docs/img/release_notes/\345\210\206\347\273\204\345\240\206\345\217\240\346\237\261\347\212\266\345\233\2761.png" diff --git "a/v1/img/release_notes/\345\210\206\347\273\204\346\237\261\347\212\266\345\233\276.png" "b/docs/img/release_notes/\345\210\206\347\273\204\346\237\261\347\212\266\345\233\276.png" similarity index 100% rename from "v1/img/release_notes/\345\210\206\347\273\204\346\237\261\347\212\266\345\233\276.png" rename to "docs/img/release_notes/\345\210\206\347\273\204\346\237\261\347\212\266\345\233\276.png" diff --git "a/v1/img/release_notes/\345\210\206\347\273\204\346\237\261\347\212\266\345\233\276_\345\255\220\347\261\273\345\210\253\346\241\206.png" "b/docs/img/release_notes/\345\210\206\347\273\204\346\237\261\347\212\266\345\233\276_\345\255\220\347\261\273\345\210\253\346\241\206.png" similarity index 100% rename from "v1/img/release_notes/\345\210\206\347\273\204\346\237\261\347\212\266\345\233\276_\345\255\220\347\261\273\345\210\253\346\241\206.png" rename to "docs/img/release_notes/\345\210\206\347\273\204\346\237\261\347\212\266\345\233\276_\345\255\220\347\261\273\345\210\253\346\241\206.png" diff --git "a/v1/img/release_notes/\345\210\227\346\235\203\351\231\220.png" "b/docs/img/release_notes/\345\210\227\346\235\203\351\231\220.png" similarity index 100% rename from "v1/img/release_notes/\345\210\227\346\235\203\351\231\220.png" rename to "docs/img/release_notes/\345\210\227\346\235\203\351\231\220.png" diff --git "a/v1/img/release_notes/\345\210\227\346\235\203\351\231\220\347\231\275\345\220\215\345\215\225\350\256\276\347\275\256.png" "b/docs/img/release_notes/\345\210\227\346\235\203\351\231\220\347\231\275\345\220\215\345\215\225\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/release_notes/\345\210\227\346\235\203\351\231\220\347\231\275\345\220\215\345\215\225\350\256\276\347\275\256.png" rename to "docs/img/release_notes/\345\210\227\346\235\203\351\231\220\347\231\275\345\220\215\345\215\225\350\256\276\347\275\256.png" diff --git "a/v1/img/release_notes/\345\215\225\347\213\254\350\256\276\347\275\256\345\210\267\346\226\260\351\242\221\347\216\207.png" "b/docs/img/release_notes/\345\215\225\347\213\254\350\256\276\347\275\256\345\210\267\346\226\260\351\242\221\347\216\207.png" similarity index 100% rename from "v1/img/release_notes/\345\215\225\347\213\254\350\256\276\347\275\256\345\210\267\346\226\260\351\242\221\347\216\207.png" rename to "docs/img/release_notes/\345\215\225\347\213\254\350\256\276\347\275\256\345\210\267\346\226\260\351\242\221\347\216\207.png" diff --git "a/v1/img/release_notes/\345\221\275\344\273\244\350\241\214\345\267\245\345\205\267.png" "b/docs/img/release_notes/\345\221\275\344\273\244\350\241\214\345\267\245\345\205\267.png" similarity index 100% rename from "v1/img/release_notes/\345\221\275\344\273\244\350\241\214\345\267\245\345\205\267.png" rename to "docs/img/release_notes/\345\221\275\344\273\244\350\241\214\345\267\245\345\205\267.png" diff --git "a/v1/img/release_notes/\345\221\275\344\273\244\350\241\214\345\267\245\345\205\2671.png" "b/docs/img/release_notes/\345\221\275\344\273\244\350\241\214\345\267\245\345\205\2671.png" similarity index 100% rename from "v1/img/release_notes/\345\221\275\344\273\244\350\241\214\345\267\245\345\205\2671.png" rename to "docs/img/release_notes/\345\221\275\344\273\244\350\241\214\345\267\245\345\205\2671.png" diff --git "a/v1/img/release_notes/\345\233\276\350\241\250\346\240\207\347\255\276\345\206\205\345\256\271.png" "b/docs/img/release_notes/\345\233\276\350\241\250\346\240\207\347\255\276\345\206\205\345\256\271.png" similarity index 100% rename from "v1/img/release_notes/\345\233\276\350\241\250\346\240\207\347\255\276\345\206\205\345\256\271.png" rename to "docs/img/release_notes/\345\233\276\350\241\250\346\240\207\347\255\276\345\206\205\345\256\271.png" diff --git "a/v1/img/release_notes/\345\234\260\345\233\276_\346\265\205\350\211\262.png" "b/docs/img/release_notes/\345\234\260\345\233\276_\346\265\205\350\211\262.png" similarity index 100% rename from "v1/img/release_notes/\345\234\260\345\233\276_\346\265\205\350\211\262.png" rename to "docs/img/release_notes/\345\234\260\345\233\276_\346\265\205\350\211\262.png" diff --git "a/v1/img/release_notes/\345\234\260\345\233\276_\346\267\261\350\211\262.png" "b/docs/img/release_notes/\345\234\260\345\233\276_\346\267\261\350\211\262.png" similarity index 100% rename from "v1/img/release_notes/\345\234\260\345\233\276_\346\267\261\350\211\262.png" rename to "docs/img/release_notes/\345\234\260\345\233\276_\346\267\261\350\211\262.png" diff --git "a/v1/img/release_notes/\345\234\260\345\233\276_\350\276\271\347\272\277\351\242\234\350\211\262\351\205\215\347\275\256.png" "b/docs/img/release_notes/\345\234\260\345\233\276_\350\276\271\347\272\277\351\242\234\350\211\262\351\205\215\347\275\256.png" similarity index 100% rename from "v1/img/release_notes/\345\234\260\345\233\276_\350\276\271\347\272\277\351\242\234\350\211\262\351\205\215\347\275\256.png" rename to "docs/img/release_notes/\345\234\260\345\233\276_\350\276\271\347\272\277\351\242\234\350\211\262\351\205\215\347\275\256.png" diff --git "a/v1/img/release_notes/\345\235\220\346\240\207\350\275\264\350\275\264\347\272\277\346\230\276\347\244\272.png" "b/docs/img/release_notes/\345\235\220\346\240\207\350\275\264\350\275\264\347\272\277\346\230\276\347\244\272.png" similarity index 100% rename from "v1/img/release_notes/\345\235\220\346\240\207\350\275\264\350\275\264\347\272\277\346\230\276\347\244\272.png" rename to "docs/img/release_notes/\345\235\220\346\240\207\350\275\264\350\275\264\347\272\277\346\230\276\347\244\272.png" diff --git "a/v1/img/release_notes/\345\237\272\347\241\200\351\235\242\347\247\257\345\233\276.png" "b/docs/img/release_notes/\345\237\272\347\241\200\351\235\242\347\247\257\345\233\276.png" similarity index 100% rename from "v1/img/release_notes/\345\237\272\347\241\200\351\235\242\347\247\257\345\233\276.png" rename to "docs/img/release_notes/\345\237\272\347\241\200\351\235\242\347\247\257\345\233\276.png" diff --git "a/v1/img/release_notes/\345\237\272\347\241\200\351\235\242\347\247\257\345\233\276_\345\240\206\345\217\240\351\235\242\347\247\257\345\233\276.png" "b/docs/img/release_notes/\345\237\272\347\241\200\351\235\242\347\247\257\345\233\276_\345\240\206\345\217\240\351\235\242\347\247\257\345\233\276.png" similarity index 100% rename from "v1/img/release_notes/\345\237\272\347\241\200\351\235\242\347\247\257\345\233\276_\345\240\206\345\217\240\351\235\242\347\247\257\345\233\276.png" rename to "docs/img/release_notes/\345\237\272\347\241\200\351\235\242\347\247\257\345\233\276_\345\240\206\345\217\240\351\235\242\347\247\257\345\233\276.png" diff --git "a/v1/img/release_notes/\345\240\206\345\217\240\351\241\271_\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" "b/docs/img/release_notes/\345\240\206\345\217\240\351\241\271_\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" similarity index 100% rename from "v1/img/release_notes/\345\240\206\345\217\240\351\241\271_\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" rename to "docs/img/release_notes/\345\240\206\345\217\240\351\241\271_\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" diff --git "a/v1/img/release_notes/\345\242\236\345\212\240\347\231\273\345\275\225\351\241\265\350\204\232\346\230\276\347\244\272.png" "b/docs/img/release_notes/\345\242\236\345\212\240\347\231\273\345\275\225\351\241\265\350\204\232\346\230\276\347\244\272.png" similarity index 100% rename from "v1/img/release_notes/\345\242\236\345\212\240\347\231\273\345\275\225\351\241\265\350\204\232\346\230\276\347\244\272.png" rename to "docs/img/release_notes/\345\242\236\345\212\240\347\231\273\345\275\225\351\241\265\350\204\232\346\230\276\347\244\272.png" diff --git "a/v1/img/release_notes/\345\242\236\345\212\240\347\231\273\345\275\225\351\241\265\350\204\232\350\256\276\347\275\256.png" "b/docs/img/release_notes/\345\242\236\345\212\240\347\231\273\345\275\225\351\241\265\350\204\232\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/release_notes/\345\242\236\345\212\240\347\231\273\345\275\225\351\241\265\350\204\232\350\256\276\347\275\256.png" rename to "docs/img/release_notes/\345\242\236\345\212\240\347\231\273\345\275\225\351\241\265\350\204\232\350\256\276\347\275\256.png" diff --git "a/v1/img/release_notes/\345\244\215\345\210\266\350\247\206\345\233\276_\347\204\246\347\202\271.png" "b/docs/img/release_notes/\345\244\215\345\210\266\350\247\206\345\233\276_\347\204\246\347\202\271.png" similarity index 100% rename from "v1/img/release_notes/\345\244\215\345\210\266\350\247\206\345\233\276_\347\204\246\347\202\271.png" rename to "docs/img/release_notes/\345\244\215\345\210\266\350\247\206\345\233\276_\347\204\246\347\202\271.png" diff --git "a/v1/img/release_notes/\345\244\215\347\224\250\346\211\200\346\234\211\347\232\204\347\273\204\344\273\266.png" "b/docs/img/release_notes/\345\244\215\347\224\250\346\211\200\346\234\211\347\232\204\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/release_notes/\345\244\215\347\224\250\346\211\200\346\234\211\347\232\204\347\273\204\344\273\266.png" rename to "docs/img/release_notes/\345\244\215\347\224\250\346\211\200\346\234\211\347\232\204\347\273\204\344\273\266.png" diff --git "a/v1/img/release_notes/\345\244\215\347\224\250\350\247\206\345\233\276.png" "b/docs/img/release_notes/\345\244\215\347\224\250\350\247\206\345\233\276.png" similarity index 100% rename from "v1/img/release_notes/\345\244\215\347\224\250\350\247\206\345\233\276.png" rename to "docs/img/release_notes/\345\244\215\347\224\250\350\247\206\345\233\276.png" diff --git "a/v1/img/release_notes/\345\244\226\350\247\202\351\205\215\347\275\256.png" "b/docs/img/release_notes/\345\244\226\350\247\202\351\205\215\347\275\256.png" similarity index 100% rename from "v1/img/release_notes/\345\244\226\350\247\202\351\205\215\347\275\256.png" rename to "docs/img/release_notes/\345\244\226\350\247\202\351\205\215\347\275\256.png" diff --git "a/v1/img/release_notes/\345\255\227\346\256\265\344\270\213\351\222\273.png" "b/docs/img/release_notes/\345\255\227\346\256\265\344\270\213\351\222\273.png" similarity index 100% rename from "v1/img/release_notes/\345\255\227\346\256\265\344\270\213\351\222\273.png" rename to "docs/img/release_notes/\345\255\227\346\256\265\344\270\213\351\222\273.png" diff --git "a/v1/img/release_notes/\345\255\230\351\207\217\346\225\260\346\215\256\346\272\220.png" "b/docs/img/release_notes/\345\255\230\351\207\217\346\225\260\346\215\256\346\272\220.png" similarity index 100% rename from "v1/img/release_notes/\345\255\230\351\207\217\346\225\260\346\215\256\346\272\220.png" rename to "docs/img/release_notes/\345\255\230\351\207\217\346\225\260\346\215\256\346\272\220.png" diff --git "a/v1/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212 1.png" "b/docs/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212 1.png" similarity index 100% rename from "v1/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212 1.png" rename to "docs/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212 1.png" diff --git "a/v1/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212.png" "b/docs/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212.png" similarity index 100% rename from "v1/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212.png" rename to "docs/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212.png" diff --git "a/v1/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212_\346\211\271\351\207\217\345\210\240\351\231\244.png" "b/docs/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212_\346\211\271\351\207\217\345\210\240\351\231\244.png" similarity index 100% rename from "v1/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212_\346\211\271\351\207\217\345\210\240\351\231\244.png" rename to "docs/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212_\346\211\271\351\207\217\345\210\240\351\231\244.png" diff --git "a/v1/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212\345\257\214\346\226\207\346\234\254\345\206\205\345\256\271.png" "b/docs/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212\345\257\214\346\226\207\346\234\254\345\206\205\345\256\271.png" similarity index 100% rename from "v1/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212\345\257\214\346\226\207\346\234\254\345\206\205\345\256\271.png" rename to "docs/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212\345\257\214\346\226\207\346\234\254\345\206\205\345\256\271.png" diff --git "a/v1/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212\345\257\214\346\226\207\346\234\254\345\206\205\345\256\2711.png" "b/docs/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212\345\257\214\346\226\207\346\234\254\345\206\205\345\256\2711.png" similarity index 100% rename from "v1/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212\345\257\214\346\226\207\346\234\254\345\206\205\345\256\2711.png" rename to "docs/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212\345\257\214\346\226\207\346\234\254\345\206\205\345\256\2711.png" diff --git "a/v1/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212\346\225\260\346\215\256\350\214\203\345\233\264.png" "b/docs/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212\346\225\260\346\215\256\350\214\203\345\233\264.png" similarity index 100% rename from "v1/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212\346\225\260\346\215\256\350\214\203\345\233\264.png" rename to "docs/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212\346\225\260\346\215\256\350\214\203\345\233\264.png" diff --git "a/v1/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212\347\253\213\345\215\263\346\211\247\350\241\214.png" "b/docs/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212\347\253\213\345\215\263\346\211\247\350\241\214.png" similarity index 100% rename from "v1/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212\347\253\213\345\215\263\346\211\247\350\241\214.png" rename to "docs/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212\347\253\213\345\215\263\346\211\247\350\241\214.png" diff --git "a/v1/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212\347\253\213\345\215\263\346\211\247\350\241\2141.png" "b/docs/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212\347\253\213\345\215\263\346\211\247\350\241\2141.png" similarity index 100% rename from "v1/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212\347\253\213\345\215\263\346\211\247\350\241\2141.png" rename to "docs/img/release_notes/\345\256\232\346\227\266\346\212\245\345\221\212\347\253\213\345\215\263\346\211\247\350\241\2141.png" diff --git "a/v1/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276.png" "b/docs/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276.png" similarity index 100% rename from "v1/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276.png" rename to "docs/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276.png" diff --git "a/v1/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276_\345\274\225\347\224\250.png" "b/docs/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276_\345\274\225\347\224\250.png" similarity index 100% rename from "v1/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276_\345\274\225\347\224\250.png" rename to "docs/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276_\345\274\225\347\224\250.png" diff --git "a/v1/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276_\346\230\276\347\244\272.png" "b/docs/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276_\346\230\276\347\244\272.png" similarity index 100% rename from "v1/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276_\346\230\276\347\244\272.png" rename to "docs/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276_\346\230\276\347\244\272.png" diff --git "a/v1/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276_\350\207\252\351\200\202\345\272\224.png" "b/docs/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276_\350\207\252\351\200\202\345\272\224.png" similarity index 100% rename from "v1/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276_\350\207\252\351\200\202\345\272\224.png" rename to "docs/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276_\350\207\252\351\200\202\345\272\224.png" diff --git "a/v1/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276_\350\207\252\351\200\202\345\272\224\347\274\251\346\224\276.png" "b/docs/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276_\350\207\252\351\200\202\345\272\224\347\274\251\346\224\276.png" similarity index 100% rename from "v1/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276_\350\207\252\351\200\202\345\272\224\347\274\251\346\224\276.png" rename to "docs/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276_\350\207\252\351\200\202\345\272\224\347\274\251\346\224\276.png" diff --git "a/v1/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276\346\240\207\351\242\230.png" "b/docs/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276\346\240\207\351\242\230.png" similarity index 100% rename from "v1/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276\346\240\207\351\242\230.png" rename to "docs/img/release_notes/\345\257\214\346\226\207\346\234\254\350\247\206\345\233\276\346\240\207\351\242\230.png" diff --git "a/v1/img/release_notes/\345\257\274\345\207\272\350\247\206\345\233\276\346\230\216\347\273\206.png" "b/docs/img/release_notes/\345\257\274\345\207\272\350\247\206\345\233\276\346\230\216\347\273\206.png" similarity index 100% rename from "v1/img/release_notes/\345\257\274\345\207\272\350\247\206\345\233\276\346\230\216\347\273\206.png" rename to "docs/img/release_notes/\345\257\274\345\207\272\350\247\206\345\233\276\346\230\216\347\273\206.png" diff --git "a/v1/img/release_notes/\345\261\202\347\272\247.png" "b/docs/img/release_notes/\345\261\202\347\272\247.png" similarity index 100% rename from "v1/img/release_notes/\345\261\202\347\272\247.png" rename to "docs/img/release_notes/\345\261\202\347\272\247.png" diff --git "a/v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245.png" "b/docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245.png" similarity index 100% rename from "v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245.png" rename to "docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245.png" diff --git "a/v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\344\274\201\344\270\232\345\276\256\344\277\241\345\271\263\345\217\260.png" "b/docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\344\274\201\344\270\232\345\276\256\344\277\241\345\271\263\345\217\260.png" similarity index 100% rename from "v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\344\274\201\344\270\232\345\276\256\344\277\241\345\271\263\345\217\260.png" rename to "docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\344\274\201\344\270\232\345\276\256\344\277\241\345\271\263\345\217\260.png" diff --git "a/v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\344\274\201\344\270\232\345\276\256\344\277\241\345\271\263\345\217\2602.png" "b/docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\344\274\201\344\270\232\345\276\256\344\277\241\345\271\263\345\217\2602.png" similarity index 100% rename from "v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\344\274\201\344\270\232\345\276\256\344\277\241\345\271\263\345\217\2602.png" rename to "docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\344\274\201\344\270\232\345\276\256\344\277\241\345\271\263\345\217\2602.png" diff --git "a/v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\222\211\351\222\211\345\271\263\345\217\260.png" "b/docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\222\211\351\222\211\345\271\263\345\217\260.png" similarity index 100% rename from "v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\222\211\351\222\211\345\271\263\345\217\260.png" rename to "docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\222\211\351\222\211\345\271\263\345\217\260.png" diff --git "a/v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\222\211\351\222\211\345\271\263\345\217\2602.png" "b/docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\222\211\351\222\211\345\271\263\345\217\2602.png" similarity index 100% rename from "v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\222\211\351\222\211\345\271\263\345\217\2602.png" rename to "docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\222\211\351\222\211\345\271\263\345\217\2602.png" diff --git "a/v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\260.png" "b/docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\260.png" similarity index 100% rename from "v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\260.png" rename to "docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\260.png" diff --git "a/v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\2601.png" "b/docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\2601.png" similarity index 100% rename from "v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\2601.png" rename to "docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\2601.png" diff --git "a/v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\2602.png" "b/docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\2602.png" similarity index 100% rename from "v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\2602.png" rename to "docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\2602.png" diff --git "a/v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\2603.png" "b/docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\2603.png" similarity index 100% rename from "v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\2603.png" rename to "docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\2603.png" diff --git "a/v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\2604.png" "b/docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\2604.png" similarity index 100% rename from "v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\2604.png" rename to "docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\2604.png" diff --git "a/v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\2605.png" "b/docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\2605.png" similarity index 100% rename from "v1/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\2605.png" rename to "docs/img/release_notes/\345\271\263\345\217\260\345\257\271\346\216\245_\351\243\236\344\271\246\345\271\263\345\217\2605.png" diff --git "a/v1/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2271.png" "b/docs/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2271.png" similarity index 100% rename from "v1/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2271.png" rename to "docs/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2271.png" diff --git "a/v1/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2272.png" "b/docs/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2272.png" similarity index 100% rename from "v1/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2272.png" rename to "docs/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2272.png" diff --git "a/v1/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2273.png" "b/docs/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2273.png" similarity index 100% rename from "v1/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2273.png" rename to "docs/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2273.png" diff --git "a/v1/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2276.png" "b/docs/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2276.png" similarity index 100% rename from "v1/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2276.png" rename to "docs/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2276.png" diff --git "a/v1/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2277.png" "b/docs/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2277.png" similarity index 100% rename from "v1/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2277.png" rename to "docs/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2277.png" diff --git "a/v1/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2278.png" "b/docs/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2278.png" similarity index 100% rename from "v1/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2278.png" rename to "docs/img/release_notes/\345\272\224\347\224\250\346\235\277\345\235\2278.png" diff --git "a/v1/img/release_notes/\345\277\253\351\200\237\350\256\241\347\256\227 1.png" "b/docs/img/release_notes/\345\277\253\351\200\237\350\256\241\347\256\227 1.png" similarity index 100% rename from "v1/img/release_notes/\345\277\253\351\200\237\350\256\241\347\256\227 1.png" rename to "docs/img/release_notes/\345\277\253\351\200\237\350\256\241\347\256\227 1.png" diff --git "a/v1/img/release_notes/\345\277\253\351\200\237\350\256\241\347\256\227 2.png" "b/docs/img/release_notes/\345\277\253\351\200\237\350\256\241\347\256\227 2.png" similarity index 100% rename from "v1/img/release_notes/\345\277\253\351\200\237\350\256\241\347\256\227 2.png" rename to "docs/img/release_notes/\345\277\253\351\200\237\350\256\241\347\256\227 2.png" diff --git "a/v1/img/release_notes/\345\277\253\351\200\237\350\256\241\347\256\227 3.png" "b/docs/img/release_notes/\345\277\253\351\200\237\350\256\241\347\256\227 3.png" similarity index 100% rename from "v1/img/release_notes/\345\277\253\351\200\237\350\256\241\347\256\227 3.png" rename to "docs/img/release_notes/\345\277\253\351\200\237\350\256\241\347\256\227 3.png" diff --git "a/v1/img/release_notes/\345\277\253\351\200\237\350\256\241\347\256\227\346\226\271\345\274\217_\345\215\240\346\257\224.png" "b/docs/img/release_notes/\345\277\253\351\200\237\350\256\241\347\256\227\346\226\271\345\274\217_\345\215\240\346\257\224.png" similarity index 100% rename from "v1/img/release_notes/\345\277\253\351\200\237\350\256\241\347\256\227\346\226\271\345\274\217_\345\215\240\346\257\224.png" rename to "docs/img/release_notes/\345\277\253\351\200\237\350\256\241\347\256\227\346\226\271\345\274\217_\345\215\240\346\257\224.png" diff --git "a/v1/img/release_notes/\345\277\253\351\200\237\350\256\241\347\256\227\346\226\271\345\274\217_\345\215\240\346\257\2241.png" "b/docs/img/release_notes/\345\277\253\351\200\237\350\256\241\347\256\227\346\226\271\345\274\217_\345\215\240\346\257\2241.png" similarity index 100% rename from "v1/img/release_notes/\345\277\253\351\200\237\350\256\241\347\256\227\346\226\271\345\274\217_\345\215\240\346\257\2241.png" rename to "docs/img/release_notes/\345\277\253\351\200\237\350\256\241\347\256\227\346\226\271\345\274\217_\345\215\240\346\257\2241.png" diff --git "a/v1/img/release_notes/\346\211\271\351\207\217\345\257\274\345\205\245\347\224\250\346\210\267.png" "b/docs/img/release_notes/\346\211\271\351\207\217\345\257\274\345\205\245\347\224\250\346\210\267.png" similarity index 100% rename from "v1/img/release_notes/\346\211\271\351\207\217\345\257\274\345\205\245\347\224\250\346\210\267.png" rename to "docs/img/release_notes/\346\211\271\351\207\217\345\257\274\345\205\245\347\224\250\346\210\267.png" diff --git "a/v1/img/release_notes/\346\211\271\351\207\217\345\257\274\345\205\245\347\224\250\346\210\267_\346\250\241\347\211\210\346\226\207\344\273\266.png" "b/docs/img/release_notes/\346\211\271\351\207\217\345\257\274\345\205\245\347\224\250\346\210\267_\346\250\241\347\211\210\346\226\207\344\273\266.png" similarity index 100% rename from "v1/img/release_notes/\346\211\271\351\207\217\345\257\274\345\205\245\347\224\250\346\210\267_\346\250\241\347\211\210\346\226\207\344\273\266.png" rename to "docs/img/release_notes/\346\211\271\351\207\217\345\257\274\345\205\245\347\224\250\346\210\267_\346\250\241\347\211\210\346\226\207\344\273\266.png" diff --git "a/v1/img/release_notes/\346\211\271\351\207\217\345\257\274\345\205\245\347\224\250\346\210\267_\346\250\241\347\211\210\346\226\207\344\273\266\344\270\213\350\275\275.png" "b/docs/img/release_notes/\346\211\271\351\207\217\345\257\274\345\205\245\347\224\250\346\210\267_\346\250\241\347\211\210\346\226\207\344\273\266\344\270\213\350\275\275.png" similarity index 100% rename from "v1/img/release_notes/\346\211\271\351\207\217\345\257\274\345\205\245\347\224\250\346\210\267_\346\250\241\347\211\210\346\226\207\344\273\266\344\270\213\350\275\275.png" rename to "docs/img/release_notes/\346\211\271\351\207\217\345\257\274\345\205\245\347\224\250\346\210\267_\346\250\241\347\211\210\346\226\207\344\273\266\344\270\213\350\275\275.png" diff --git "a/v1/img/release_notes/\346\212\230\347\272\277\345\233\276\351\232\220\350\227\217\347\202\2711.png" "b/docs/img/release_notes/\346\212\230\347\272\277\345\233\276\351\232\220\350\227\217\347\202\2711.png" similarity index 100% rename from "v1/img/release_notes/\346\212\230\347\272\277\345\233\276\351\232\220\350\227\217\347\202\2711.png" rename to "docs/img/release_notes/\346\212\230\347\272\277\345\233\276\351\232\220\350\227\217\347\202\2711.png" diff --git "a/v1/img/release_notes/\346\212\230\347\272\277\345\233\276\351\232\220\350\227\217\347\202\2712.png" "b/docs/img/release_notes/\346\212\230\347\272\277\345\233\276\351\232\220\350\227\217\347\202\2712.png" similarity index 100% rename from "v1/img/release_notes/\346\212\230\347\272\277\345\233\276\351\232\220\350\227\217\347\202\2712.png" rename to "docs/img/release_notes/\346\212\230\347\272\277\345\233\276\351\232\220\350\227\217\347\202\2712.png" diff --git "a/v1/img/release_notes/\346\212\230\347\272\277\345\233\276\351\232\220\350\227\217\347\202\2713.png" "b/docs/img/release_notes/\346\212\230\347\272\277\345\233\276\351\232\220\350\227\217\347\202\2713.png" similarity index 100% rename from "v1/img/release_notes/\346\212\230\347\272\277\345\233\276\351\232\220\350\227\217\347\202\2713.png" rename to "docs/img/release_notes/\346\212\230\347\272\277\345\233\276\351\232\220\350\227\217\347\202\2713.png" diff --git "a/v1/img/release_notes/\346\213\226\346\213\275\344\272\213\344\273\266\345\223\215\345\272\224 1.png" "b/docs/img/release_notes/\346\213\226\346\213\275\344\272\213\344\273\266\345\223\215\345\272\224 1.png" similarity index 100% rename from "v1/img/release_notes/\346\213\226\346\213\275\344\272\213\344\273\266\345\223\215\345\272\224 1.png" rename to "docs/img/release_notes/\346\213\226\346\213\275\344\272\213\344\273\266\345\223\215\345\272\224 1.png" diff --git "a/v1/img/release_notes/\346\213\226\346\213\275\344\272\213\344\273\266\345\223\215\345\272\224 2.png" "b/docs/img/release_notes/\346\213\226\346\213\275\344\272\213\344\273\266\345\223\215\345\272\224 2.png" similarity index 100% rename from "v1/img/release_notes/\346\213\226\346\213\275\344\272\213\344\273\266\345\223\215\345\272\224 2.png" rename to "docs/img/release_notes/\346\213\226\346\213\275\344\272\213\344\273\266\345\223\215\345\272\224 2.png" diff --git "a/v1/img/release_notes/\346\217\220\347\244\272\346\226\207\346\241\210\344\274\230\345\214\226 1.png" "b/docs/img/release_notes/\346\217\220\347\244\272\346\226\207\346\241\210\344\274\230\345\214\226 1.png" similarity index 100% rename from "v1/img/release_notes/\346\217\220\347\244\272\346\226\207\346\241\210\344\274\230\345\214\226 1.png" rename to "docs/img/release_notes/\346\217\220\347\244\272\346\226\207\346\241\210\344\274\230\345\214\226 1.png" diff --git "a/v1/img/release_notes/\346\217\220\347\244\272\346\226\207\346\241\210\344\274\230\345\214\226 2.png" "b/docs/img/release_notes/\346\217\220\347\244\272\346\226\207\346\241\210\344\274\230\345\214\226 2.png" similarity index 100% rename from "v1/img/release_notes/\346\217\220\347\244\272\346\226\207\346\241\210\344\274\230\345\214\226 2.png" rename to "docs/img/release_notes/\346\217\220\347\244\272\346\226\207\346\241\210\344\274\230\345\214\226 2.png" diff --git "a/v1/img/release_notes/\346\217\222\344\273\266\347\256\241\347\220\206.png" "b/docs/img/release_notes/\346\217\222\344\273\266\347\256\241\347\220\206.png" similarity index 100% rename from "v1/img/release_notes/\346\217\222\344\273\266\347\256\241\347\220\206.png" rename to "docs/img/release_notes/\346\217\222\344\273\266\347\256\241\347\220\206.png" diff --git "a/v1/img/release_notes/\346\223\215\344\275\234\346\227\245\345\277\227.png" "b/docs/img/release_notes/\346\223\215\344\275\234\346\227\245\345\277\227.png" similarity index 100% rename from "v1/img/release_notes/\346\223\215\344\275\234\346\227\245\345\277\227.png" rename to "docs/img/release_notes/\346\223\215\344\275\234\346\227\245\345\277\227.png" diff --git "a/v1/img/release_notes/\346\224\257\346\214\201\346\225\260\346\215\256\346\272\220\347\232\204\345\244\215\345\210\266.png" "b/docs/img/release_notes/\346\224\257\346\214\201\346\225\260\346\215\256\346\272\220\347\232\204\345\244\215\345\210\266.png" similarity index 100% rename from "v1/img/release_notes/\346\224\257\346\214\201\346\225\260\346\215\256\346\272\220\347\232\204\345\244\215\345\210\266.png" rename to "docs/img/release_notes/\346\224\257\346\214\201\346\225\260\346\215\256\346\272\220\347\232\204\345\244\215\345\210\266.png" diff --git "a/v1/img/release_notes/\346\224\257\346\214\201\350\204\261\346\225\217\350\247\204\345\210\231\350\256\276\347\275\2561.png" "b/docs/img/release_notes/\346\224\257\346\214\201\350\204\261\346\225\217\350\247\204\345\210\231\350\256\276\347\275\2561.png" similarity index 100% rename from "v1/img/release_notes/\346\224\257\346\214\201\350\204\261\346\225\217\350\247\204\345\210\231\350\256\276\347\275\2561.png" rename to "docs/img/release_notes/\346\224\257\346\214\201\350\204\261\346\225\217\350\247\204\345\210\231\350\256\276\347\275\2561.png" diff --git "a/v1/img/release_notes/\346\224\257\346\214\201\350\204\261\346\225\217\350\247\204\345\210\231\350\256\276\347\275\2562.png" "b/docs/img/release_notes/\346\224\257\346\214\201\350\204\261\346\225\217\350\247\204\345\210\231\350\256\276\347\275\2562.png" similarity index 100% rename from "v1/img/release_notes/\346\224\257\346\214\201\350\204\261\346\225\217\350\247\204\345\210\231\350\256\276\347\275\2562.png" rename to "docs/img/release_notes/\346\224\257\346\214\201\350\204\261\346\225\217\350\247\204\345\210\231\350\256\276\347\275\2562.png" diff --git "a/v1/img/release_notes/\346\225\260\345\200\274\346\240\274\345\274\217\345\260\217\346\225\260\344\275\215\346\225\260.png" "b/docs/img/release_notes/\346\225\260\345\200\274\346\240\274\345\274\217\345\260\217\346\225\260\344\275\215\346\225\260.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\345\200\274\346\240\274\345\274\217\345\260\217\346\225\260\344\275\215\346\225\260.png" rename to "docs/img/release_notes/\346\225\260\345\200\274\346\240\274\345\274\217\345\260\217\346\225\260\344\275\215\346\225\260.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\345\220\214\346\255\245_\346\211\271\351\207\217\345\210\240\351\231\244.png" "b/docs/img/release_notes/\346\225\260\346\215\256\345\220\214\346\255\245_\346\211\271\351\207\217\345\210\240\351\231\244.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\345\220\214\346\255\245_\346\211\271\351\207\217\345\210\240\351\231\244.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\345\220\214\346\255\245_\346\211\271\351\207\217\345\210\240\351\231\244.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\346\272\220\344\272\244\344\272\222\344\274\230\345\214\226.png" "b/docs/img/release_notes/\346\225\260\346\215\256\346\272\220\344\272\244\344\272\222\344\274\230\345\214\226.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\346\272\220\344\272\244\344\272\222\344\274\230\345\214\226.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\346\272\220\344\272\244\344\272\222\344\274\230\345\214\226.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\346\272\220\344\272\244\344\272\222\344\274\230\345\214\2261.png" "b/docs/img/release_notes/\346\225\260\346\215\256\346\272\220\344\272\244\344\272\222\344\274\230\345\214\2261.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\346\272\220\344\272\244\344\272\222\344\274\230\345\214\2261.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\346\272\220\344\272\244\344\272\222\344\274\230\345\214\2261.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\346\272\220\344\272\244\344\272\222\344\274\230\345\214\2262.png" "b/docs/img/release_notes/\346\225\260\346\215\256\346\272\220\344\272\244\344\272\222\344\274\230\345\214\2262.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\346\272\220\344\272\244\344\272\222\344\274\230\345\214\2262.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\346\272\220\344\272\244\344\272\222\344\274\230\345\214\2262.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\346\272\220\344\272\244\344\272\222\344\274\230\345\214\2263.png" "b/docs/img/release_notes/\346\225\260\346\215\256\346\272\220\344\272\244\344\272\222\344\274\230\345\214\2263.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\346\272\220\344\272\244\344\272\222\344\274\230\345\214\2263.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\346\272\220\344\272\244\344\272\222\344\274\230\345\214\2263.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\346\272\220\344\272\244\344\272\222\344\274\230\345\214\2264.png" "b/docs/img/release_notes/\346\225\260\346\215\256\346\272\220\344\272\244\344\272\222\344\274\230\345\214\2264.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\346\272\220\344\272\244\344\272\222\344\274\230\345\214\2264.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\346\272\220\344\272\244\344\272\222\344\274\230\345\214\2264.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\346\272\220\345\210\206\347\261\273.png" "b/docs/img/release_notes/\346\225\260\346\215\256\346\272\220\345\210\206\347\261\273.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\346\272\220\345\210\206\347\261\273.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\346\272\220\345\210\206\347\261\273.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\346\272\220\346\225\217\346\204\237\344\277\241\346\201\257\345\212\240\345\257\206 1.png" "b/docs/img/release_notes/\346\225\260\346\215\256\346\272\220\346\225\217\346\204\237\344\277\241\346\201\257\345\212\240\345\257\206 1.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\346\272\220\346\225\217\346\204\237\344\277\241\346\201\257\345\212\240\345\257\206 1.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\346\272\220\346\225\217\346\204\237\344\277\241\346\201\257\345\212\240\345\257\206 1.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\346\272\220\346\225\217\346\204\237\344\277\241\346\201\257\345\212\240\345\257\206 2.png" "b/docs/img/release_notes/\346\225\260\346\215\256\346\272\220\346\225\217\346\204\237\344\277\241\346\201\257\345\212\240\345\257\206 2.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\346\272\220\346\225\217\346\204\237\344\277\241\346\201\257\345\212\240\345\257\206 2.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\346\272\220\346\225\217\346\204\237\344\277\241\346\201\257\345\212\240\345\257\206 2.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\346\272\220\346\234\211\346\225\210\346\200\247\346\243\200\346\265\213.png" "b/docs/img/release_notes/\346\225\260\346\215\256\346\272\220\346\234\211\346\225\210\346\200\247\346\243\200\346\265\213.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\346\272\220\346\234\211\346\225\210\346\200\247\346\243\200\346\265\213.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\346\272\220\346\234\211\346\225\210\346\200\247\346\243\200\346\265\213.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\346\272\220\347\225\214\351\235\242\344\274\230\345\214\226.png" "b/docs/img/release_notes/\346\225\260\346\215\256\346\272\220\347\225\214\351\235\242\344\274\230\345\214\226.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\346\272\220\347\225\214\351\235\242\344\274\230\345\214\226.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\346\272\220\347\225\214\351\235\242\344\274\230\345\214\226.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\351\233\206\344\272\244\344\272\222\344\274\230\345\214\226.png" "b/docs/img/release_notes/\346\225\260\346\215\256\351\233\206\344\272\244\344\272\222\344\274\230\345\214\226.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\351\233\206\344\272\244\344\272\222\344\274\230\345\214\226.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\351\233\206\344\272\244\344\272\222\344\274\230\345\214\226.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\351\233\206\344\272\244\344\272\222\344\274\230\345\214\2261.png" "b/docs/img/release_notes/\346\225\260\346\215\256\351\233\206\344\272\244\344\272\222\344\274\230\345\214\2261.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\351\233\206\344\272\244\344\272\222\344\274\230\345\214\2261.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\351\233\206\344\272\244\344\272\222\344\274\230\345\214\2261.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\351\233\206\344\272\244\344\272\222\344\274\230\345\214\2262.png" "b/docs/img/release_notes/\346\225\260\346\215\256\351\233\206\344\272\244\344\272\222\344\274\230\345\214\2262.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\351\233\206\344\272\244\344\272\222\344\274\230\345\214\2262.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\351\233\206\344\272\244\344\272\222\344\274\230\345\214\2262.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\351\233\206\344\272\244\344\272\222\344\274\230\345\214\2263.png" "b/docs/img/release_notes/\346\225\260\346\215\256\351\233\206\344\272\244\344\272\222\344\274\230\345\214\2263.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\351\233\206\344\272\244\344\272\222\344\274\230\345\214\2263.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\351\233\206\344\272\244\344\272\222\344\274\230\345\214\2263.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\351\233\206\345\220\214\346\255\245\344\273\273\345\212\2411.png" "b/docs/img/release_notes/\346\225\260\346\215\256\351\233\206\345\220\214\346\255\245\344\273\273\345\212\2411.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\351\233\206\345\220\214\346\255\245\344\273\273\345\212\2411.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\351\233\206\345\220\214\346\255\245\344\273\273\345\212\2411.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\351\233\206\345\220\214\346\255\245\344\273\273\345\212\2412.png" "b/docs/img/release_notes/\346\225\260\346\215\256\351\233\206\345\220\214\346\255\245\344\273\273\345\212\2412.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\351\233\206\345\220\214\346\255\245\344\273\273\345\212\2412.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\351\233\206\345\220\214\346\255\245\344\273\273\345\212\2412.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265_\345\205\250\351\200\211\345\205\250\344\270\215\351\200\211.png" "b/docs/img/release_notes/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265_\345\205\250\351\200\211\345\205\250\344\270\215\351\200\211.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265_\345\205\250\351\200\211\345\205\250\344\270\215\351\200\211.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265_\345\205\250\351\200\211\345\205\250\344\270\215\351\200\211.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265_\345\244\215\345\210\266.png" "b/docs/img/release_notes/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265_\345\244\215\345\210\266.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265_\345\244\215\345\210\266.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265_\345\244\215\345\210\266.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\351\233\206\345\257\274\345\207\272Excel.png" "b/docs/img/release_notes/\346\225\260\346\215\256\351\233\206\345\257\274\345\207\272Excel.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\351\233\206\345\257\274\345\207\272Excel.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\351\233\206\345\257\274\345\207\272Excel.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\351\233\206\345\257\274\345\207\272Excel1.png" "b/docs/img/release_notes/\346\225\260\346\215\256\351\233\206\345\257\274\345\207\272Excel1.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\351\233\206\345\257\274\345\207\272Excel1.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\351\233\206\345\257\274\345\207\272Excel1.png" diff --git "a/v1/img/release_notes/\346\225\260\346\215\256\351\233\206\346\227\245\346\234\237\346\240\274\345\274\217.png" "b/docs/img/release_notes/\346\225\260\346\215\256\351\233\206\346\227\245\346\234\237\346\240\274\345\274\217.png" similarity index 100% rename from "v1/img/release_notes/\346\225\260\346\215\256\351\233\206\346\227\245\346\234\237\346\240\274\345\274\217.png" rename to "docs/img/release_notes/\346\225\260\346\215\256\351\233\206\346\227\245\346\234\237\346\240\274\345\274\217.png" diff --git "a/v1/img/release_notes/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266\350\207\252\345\256\232\344\271\211\346\216\222\345\272\2171.png" "b/docs/img/release_notes/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266\350\207\252\345\256\232\344\271\211\346\216\222\345\272\2171.png" similarity index 100% rename from "v1/img/release_notes/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266\350\207\252\345\256\232\344\271\211\346\216\222\345\272\2171.png" rename to "docs/img/release_notes/\346\226\207\346\234\254\344\270\213\346\213\211\347\273\204\344\273\266\350\207\252\345\256\232\344\271\211\346\216\222\345\272\2171.png" diff --git "a/v1/img/release_notes/\346\226\207\346\234\254\345\215\241\346\224\257\346\214\201\351\230\210\345\200\274\350\256\276\347\275\256 1.png" "b/docs/img/release_notes/\346\226\207\346\234\254\345\215\241\346\224\257\346\214\201\351\230\210\345\200\274\350\256\276\347\275\256 1.png" similarity index 100% rename from "v1/img/release_notes/\346\226\207\346\234\254\345\215\241\346\224\257\346\214\201\351\230\210\345\200\274\350\256\276\347\275\256 1.png" rename to "docs/img/release_notes/\346\226\207\346\234\254\345\215\241\346\224\257\346\214\201\351\230\210\345\200\274\350\256\276\347\275\256 1.png" diff --git "a/v1/img/release_notes/\346\226\207\346\234\254\345\215\241\346\224\257\346\214\201\351\230\210\345\200\274\350\256\276\347\275\256 2.png" "b/docs/img/release_notes/\346\226\207\346\234\254\345\215\241\346\224\257\346\214\201\351\230\210\345\200\274\350\256\276\347\275\256 2.png" similarity index 100% rename from "v1/img/release_notes/\346\226\207\346\234\254\345\215\241\346\224\257\346\214\201\351\230\210\345\200\274\350\256\276\347\275\256 2.png" rename to "docs/img/release_notes/\346\226\207\346\234\254\345\215\241\346\224\257\346\214\201\351\230\210\345\200\274\350\256\276\347\275\256 2.png" diff --git "a/v1/img/release_notes/\346\226\207\346\234\254\345\215\241\346\224\257\346\214\201\351\230\210\345\200\274\350\256\276\347\275\256.png" "b/docs/img/release_notes/\346\226\207\346\234\254\345\215\241\346\224\257\346\214\201\351\230\210\345\200\274\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/release_notes/\346\226\207\346\234\254\345\215\241\346\224\257\346\214\201\351\230\210\345\200\274\350\256\276\347\275\256.png" rename to "docs/img/release_notes/\346\226\207\346\234\254\345\215\241\346\224\257\346\214\201\351\230\210\345\200\274\350\256\276\347\275\256.png" diff --git "a/v1/img/release_notes/\346\226\260\345\242\236\347\224\250\346\210\267.png" "b/docs/img/release_notes/\346\226\260\345\242\236\347\224\250\346\210\267.png" similarity index 100% rename from "v1/img/release_notes/\346\226\260\345\242\236\347\224\250\346\210\267.png" rename to "docs/img/release_notes/\346\226\260\345\242\236\347\224\250\346\210\267.png" diff --git "a/v1/img/release_notes/\346\226\260\345\242\236\351\273\230\350\256\244\344\273\252\350\241\250\346\235\277\344\270\273\351\242\230.png" "b/docs/img/release_notes/\346\226\260\345\242\236\351\273\230\350\256\244\344\273\252\350\241\250\346\235\277\344\270\273\351\242\230.png" similarity index 100% rename from "v1/img/release_notes/\346\226\260\345\242\236\351\273\230\350\256\244\344\273\252\350\241\250\346\235\277\344\270\273\351\242\230.png" rename to "docs/img/release_notes/\346\226\260\345\242\236\351\273\230\350\256\244\344\273\252\350\241\250\346\235\277\344\270\273\351\242\230.png" diff --git "a/v1/img/release_notes/\346\226\260\345\273\272\350\256\241\347\256\227\345\255\227\346\256\265.png" "b/docs/img/release_notes/\346\226\260\345\273\272\350\256\241\347\256\227\345\255\227\346\256\265.png" similarity index 100% rename from "v1/img/release_notes/\346\226\260\345\273\272\350\256\241\347\256\227\345\255\227\346\256\265.png" rename to "docs/img/release_notes/\346\226\260\345\273\272\350\256\241\347\256\227\345\255\227\346\256\265.png" diff --git "a/v1/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266SQL\346\225\260\346\215\256\351\233\2061.png" "b/docs/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266SQL\346\225\260\346\215\256\351\233\2061.png" similarity index 100% rename from "v1/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266SQL\346\225\260\346\215\256\351\233\2061.png" rename to "docs/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266SQL\346\225\260\346\215\256\351\233\2061.png" diff --git "a/v1/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266SQL\346\225\260\346\215\256\351\233\2062.png" "b/docs/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266SQL\346\225\260\346\215\256\351\233\2062.png" similarity index 100% rename from "v1/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266SQL\346\225\260\346\215\256\351\233\2062.png" rename to "docs/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266SQL\346\225\260\346\215\256\351\233\2062.png" diff --git "a/v1/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266SQL\346\225\260\346\215\256\351\233\2063.png" "b/docs/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266SQL\346\225\260\346\215\256\351\233\2063.png" similarity index 100% rename from "v1/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266SQL\346\225\260\346\215\256\351\233\2063.png" rename to "docs/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266SQL\346\225\260\346\215\256\351\233\2063.png" diff --git "a/v1/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266_\345\233\272\345\256\232\346\227\266\351\227\264\351\200\211\346\213\251\345\220\214\344\270\200\345\244\251.png" "b/docs/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266_\345\233\272\345\256\232\346\227\266\351\227\264\351\200\211\346\213\251\345\220\214\344\270\200\345\244\251.png" similarity index 100% rename from "v1/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266_\345\233\272\345\256\232\346\227\266\351\227\264\351\200\211\346\213\251\345\220\214\344\270\200\345\244\251.png" rename to "docs/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266_\345\233\272\345\256\232\346\227\266\351\227\264\351\200\211\346\213\251\345\220\214\344\270\200\345\244\251.png" diff --git "a/v1/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266_\345\277\253\346\215\267\351\200\211\351\241\271.png" "b/docs/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266_\345\277\253\346\215\267\351\200\211\351\241\271.png" similarity index 100% rename from "v1/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266_\345\277\253\346\215\267\351\200\211\351\241\271.png" rename to "docs/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266_\345\277\253\346\215\267\351\200\211\351\241\271.png" diff --git "a/v1/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266_\346\230\276\347\244\272\346\227\266\351\227\2641.png" "b/docs/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266_\346\230\276\347\244\272\346\227\266\351\227\2641.png" similarity index 100% rename from "v1/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266_\346\230\276\347\244\272\346\227\266\351\227\2641.png" rename to "docs/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266_\346\230\276\347\244\272\346\227\266\351\227\2641.png" diff --git "a/v1/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266_\346\230\276\347\244\272\346\227\266\351\227\2642.png" "b/docs/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266_\346\230\276\347\244\272\346\227\266\351\227\2642.png" similarity index 100% rename from "v1/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266_\346\230\276\347\244\272\346\227\266\351\227\2642.png" rename to "docs/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266_\346\230\276\347\244\272\346\227\266\351\227\2642.png" diff --git "a/v1/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266_\351\200\211\346\213\251\345\220\214\344\270\200\345\244\251.png" "b/docs/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266_\351\200\211\346\213\251\345\220\214\344\270\200\345\244\251.png" similarity index 100% rename from "v1/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266_\351\200\211\346\213\251\345\220\214\344\270\200\345\244\251.png" rename to "docs/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266_\351\200\211\346\213\251\345\220\214\344\270\200\345\244\251.png" diff --git "a/v1/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\212\250\346\200\201\346\227\266\351\227\264\346\227\266\345\210\206\347\247\222.png" "b/docs/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\212\250\346\200\201\346\227\266\351\227\264\346\227\266\345\210\206\347\247\222.png" similarity index 100% rename from "v1/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\212\250\346\200\201\346\227\266\351\227\264\346\227\266\345\210\206\347\247\222.png" rename to "docs/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\212\250\346\200\201\346\227\266\351\227\264\346\227\266\345\210\206\347\247\222.png" diff --git "a/v1/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\217\230\351\207\217.png" "b/docs/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\217\230\351\207\217.png" similarity index 100% rename from "v1/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\217\230\351\207\217.png" rename to "docs/img/release_notes/\346\227\245\346\234\237\350\214\203\345\233\264\347\273\204\344\273\266\345\217\230\351\207\217.png" diff --git "a/v1/img/release_notes/\346\233\264\346\226\260\345\215\270\350\275\275.png" "b/docs/img/release_notes/\346\233\264\346\226\260\345\215\270\350\275\275.png" similarity index 100% rename from "v1/img/release_notes/\346\233\264\346\226\260\345\215\270\350\275\275.png" rename to "docs/img/release_notes/\346\233\264\346\226\260\345\215\270\350\275\275.png" diff --git "a/v1/img/release_notes/\346\250\252\345\220\221\347\231\276\345\210\206\346\257\224\346\237\261\347\212\266\345\233\276.png" "b/docs/img/release_notes/\346\250\252\345\220\221\347\231\276\345\210\206\346\257\224\346\237\261\347\212\266\345\233\276.png" similarity index 100% rename from "v1/img/release_notes/\346\250\252\345\220\221\347\231\276\345\210\206\346\257\224\346\237\261\347\212\266\345\233\276.png" rename to "docs/img/release_notes/\346\250\252\345\220\221\347\231\276\345\210\206\346\257\224\346\237\261\347\212\266\345\233\276.png" diff --git "a/v1/img/release_notes/\346\260\264\345\215\260\350\256\276\347\275\2561.png" "b/docs/img/release_notes/\346\260\264\345\215\260\350\256\276\347\275\2561.png" similarity index 100% rename from "v1/img/release_notes/\346\260\264\345\215\260\350\256\276\347\275\2561.png" rename to "docs/img/release_notes/\346\260\264\345\215\260\350\256\276\347\275\2561.png" diff --git "a/v1/img/release_notes/\346\260\264\345\215\260\350\256\276\347\275\2562.png" "b/docs/img/release_notes/\346\260\264\345\215\260\350\256\276\347\275\2562.png" similarity index 100% rename from "v1/img/release_notes/\346\260\264\345\215\260\350\256\276\347\275\2562.png" rename to "docs/img/release_notes/\346\260\264\345\215\260\350\256\276\347\275\2562.png" diff --git "a/v1/img/release_notes/\346\260\264\345\215\260\350\256\276\347\275\2563.png" "b/docs/img/release_notes/\346\260\264\345\215\260\350\256\276\347\275\2563.png" similarity index 100% rename from "v1/img/release_notes/\346\260\264\345\215\260\350\256\276\347\275\2563.png" rename to "docs/img/release_notes/\346\260\264\345\215\260\350\256\276\347\275\2563.png" diff --git "a/v1/img/release_notes/\346\260\264\346\263\242\345\233\2761.png" "b/docs/img/release_notes/\346\260\264\346\263\242\345\233\2761.png" similarity index 100% rename from "v1/img/release_notes/\346\260\264\346\263\242\345\233\2761.png" rename to "docs/img/release_notes/\346\260\264\346\263\242\345\233\2761.png" diff --git "a/v1/img/release_notes/\346\267\273\345\212\240\346\270\205\347\251\272\346\214\211\351\222\256.png" "b/docs/img/release_notes/\346\267\273\345\212\240\346\270\205\347\251\272\346\214\211\351\222\256.png" similarity index 100% rename from "v1/img/release_notes/\346\267\273\345\212\240\346\270\205\347\251\272\346\214\211\351\222\256.png" rename to "docs/img/release_notes/\346\267\273\345\212\240\346\270\205\347\251\272\346\214\211\351\222\256.png" diff --git "a/v1/img/release_notes/\346\267\273\345\212\240\347\224\250\346\210\267.png" "b/docs/img/release_notes/\346\267\273\345\212\240\347\224\250\346\210\267.png" similarity index 100% rename from "v1/img/release_notes/\346\267\273\345\212\240\347\224\250\346\210\267.png" rename to "docs/img/release_notes/\346\267\273\345\212\240\347\224\250\346\210\267.png" diff --git "a/v1/img/release_notes/\346\270\205\346\245\232\350\201\224\345\212\250\346\214\211\351\222\256.png" "b/docs/img/release_notes/\346\270\205\346\245\232\350\201\224\345\212\250\346\214\211\351\222\256.png" similarity index 100% rename from "v1/img/release_notes/\346\270\205\346\245\232\350\201\224\345\212\250\346\214\211\351\222\256.png" rename to "docs/img/release_notes/\346\270\205\346\245\232\350\201\224\345\212\250\346\214\211\351\222\256.png" diff --git "a/v1/img/release_notes/\346\270\205\347\251\272\346\214\211\351\222\256.png" "b/docs/img/release_notes/\346\270\205\347\251\272\346\214\211\351\222\256.png" similarity index 100% rename from "v1/img/release_notes/\346\270\205\347\251\272\346\214\211\351\222\256.png" rename to "docs/img/release_notes/\346\270\205\347\251\272\346\214\211\351\222\256.png" diff --git "a/v1/img/release_notes/\347\216\257\345\275\242\345\233\276_\347\216\253\347\221\260\347\216\257\345\275\242\345\233\276.png" "b/docs/img/release_notes/\347\216\257\345\275\242\345\233\276_\347\216\253\347\221\260\347\216\257\345\275\242\345\233\276.png" similarity index 100% rename from "v1/img/release_notes/\347\216\257\345\275\242\345\233\276_\347\216\253\347\221\260\347\216\257\345\275\242\345\233\276.png" rename to "docs/img/release_notes/\347\216\257\345\275\242\345\233\276_\347\216\253\347\221\260\347\216\257\345\275\242\345\233\276.png" diff --git "a/v1/img/release_notes/\347\224\250\346\210\267\346\234\200\347\273\210\346\235\203\351\231\220.png" "b/docs/img/release_notes/\347\224\250\346\210\267\346\234\200\347\273\210\346\235\203\351\231\220.png" similarity index 100% rename from "v1/img/release_notes/\347\224\250\346\210\267\346\234\200\347\273\210\346\235\203\351\231\220.png" rename to "docs/img/release_notes/\347\224\250\346\210\267\346\234\200\347\273\210\346\235\203\351\231\220.png" diff --git "a/v1/img/release_notes/\347\224\250\346\210\267\347\225\214\351\235\242\344\274\230\345\214\226.png" "b/docs/img/release_notes/\347\224\250\346\210\267\347\225\214\351\235\242\344\274\230\345\214\226.png" similarity index 100% rename from "v1/img/release_notes/\347\224\250\346\210\267\347\225\214\351\235\242\344\274\230\345\214\226.png" rename to "docs/img/release_notes/\347\224\250\346\210\267\347\225\214\351\235\242\344\274\230\345\214\226.png" diff --git "a/v1/img/release_notes/\347\231\276\345\210\206\346\257\224\346\237\261\347\212\266\345\233\276_AntV1.png" "b/docs/img/release_notes/\347\231\276\345\210\206\346\257\224\346\237\261\347\212\266\345\233\276_AntV1.png" similarity index 100% rename from "v1/img/release_notes/\347\231\276\345\210\206\346\257\224\346\237\261\347\212\266\345\233\276_AntV1.png" rename to "docs/img/release_notes/\347\231\276\345\210\206\346\257\224\346\237\261\347\212\266\345\233\276_AntV1.png" diff --git "a/v1/img/release_notes/\347\231\276\345\210\206\346\257\224\346\237\261\347\212\266\345\233\276_AntV2.png" "b/docs/img/release_notes/\347\231\276\345\210\206\346\257\224\346\237\261\347\212\266\345\233\276_AntV2.png" similarity index 100% rename from "v1/img/release_notes/\347\231\276\345\210\206\346\257\224\346\237\261\347\212\266\345\233\276_AntV2.png" rename to "docs/img/release_notes/\347\231\276\345\210\206\346\257\224\346\237\261\347\212\266\345\233\276_AntV2.png" diff --git "a/v1/img/release_notes/\347\246\201\346\255\242\346\211\253\347\240\201\350\207\252\345\212\250\345\210\233\345\273\272\347\224\250\346\210\267.png" "b/docs/img/release_notes/\347\246\201\346\255\242\346\211\253\347\240\201\350\207\252\345\212\250\345\210\233\345\273\272\347\224\250\346\210\267.png" similarity index 100% rename from "v1/img/release_notes/\347\246\201\346\255\242\346\211\253\347\240\201\350\207\252\345\212\250\345\210\233\345\273\272\347\224\250\346\210\267.png" rename to "docs/img/release_notes/\347\246\201\346\255\242\346\211\253\347\240\201\350\207\252\345\212\250\345\210\233\345\273\272\347\224\250\346\210\267.png" diff --git "a/v1/img/release_notes/\347\247\273\345\212\250\347\253\257\350\203\214\346\231\257.png" "b/docs/img/release_notes/\347\247\273\345\212\250\347\253\257\350\203\214\346\231\257.png" similarity index 100% rename from "v1/img/release_notes/\347\247\273\345\212\250\347\253\257\350\203\214\346\231\257.png" rename to "docs/img/release_notes/\347\247\273\345\212\250\347\253\257\350\203\214\346\231\257.png" diff --git "a/v1/img/release_notes/\347\252\227\345\217\243\351\253\230\345\272\246.png" "b/docs/img/release_notes/\347\252\227\345\217\243\351\253\230\345\272\246.png" similarity index 100% rename from "v1/img/release_notes/\347\252\227\345\217\243\351\253\230\345\272\246.png" rename to "docs/img/release_notes/\347\252\227\345\217\243\351\253\230\345\272\246.png" diff --git "a/v1/img/release_notes/\347\253\231\345\206\205\346\266\210\346\201\257_\346\211\271\351\207\217\345\210\240\351\231\244.png" "b/docs/img/release_notes/\347\253\231\345\206\205\346\266\210\346\201\257_\346\211\271\351\207\217\345\210\240\351\231\244.png" similarity index 100% rename from "v1/img/release_notes/\347\253\231\345\206\205\346\266\210\346\201\257_\346\211\271\351\207\217\345\210\240\351\231\244.png" rename to "docs/img/release_notes/\347\253\231\345\206\205\346\266\210\346\201\257_\346\211\271\351\207\217\345\210\240\351\231\244.png" diff --git "a/v1/img/release_notes/\347\263\273\347\273\237\345\217\202\346\225\260_\346\250\241\346\235\277\345\270\202\345\234\272.png" "b/docs/img/release_notes/\347\263\273\347\273\237\345\217\202\346\225\260_\346\250\241\346\235\277\345\270\202\345\234\272.png" similarity index 100% rename from "v1/img/release_notes/\347\263\273\347\273\237\345\217\202\346\225\260_\346\250\241\346\235\277\345\270\202\345\234\272.png" rename to "docs/img/release_notes/\347\263\273\347\273\237\345\217\202\346\225\260_\346\250\241\346\235\277\345\270\202\345\234\272.png" diff --git "a/v1/img/release_notes/\347\263\273\347\273\237\345\217\202\346\225\260_\346\250\241\346\235\277\345\270\202\345\234\2721.png" "b/docs/img/release_notes/\347\263\273\347\273\237\345\217\202\346\225\260_\346\250\241\346\235\277\345\270\202\345\234\2721.png" similarity index 100% rename from "v1/img/release_notes/\347\263\273\347\273\237\345\217\202\346\225\260_\346\250\241\346\235\277\345\270\202\345\234\2721.png" rename to "docs/img/release_notes/\347\263\273\347\273\237\345\217\202\346\225\260_\346\250\241\346\235\277\345\270\202\345\234\2721.png" diff --git "a/v1/img/release_notes/\347\263\273\347\273\237\346\227\245\345\277\227IP\345\234\260\345\235\200\344\277\241\346\201\257.png" "b/docs/img/release_notes/\347\263\273\347\273\237\346\227\245\345\277\227IP\345\234\260\345\235\200\344\277\241\346\201\257.png" similarity index 100% rename from "v1/img/release_notes/\347\263\273\347\273\237\346\227\245\345\277\227IP\345\234\260\345\235\200\344\277\241\346\201\257.png" rename to "docs/img/release_notes/\347\263\273\347\273\237\346\227\245\345\277\227IP\345\234\260\345\235\200\344\277\241\346\201\257.png" diff --git "a/v1/img/release_notes/\347\263\273\347\273\237\346\227\245\345\277\227\345\205\254\345\205\261\351\223\276\346\216\245.png" "b/docs/img/release_notes/\347\263\273\347\273\237\346\227\245\345\277\227\345\205\254\345\205\261\351\223\276\346\216\245.png" similarity index 100% rename from "v1/img/release_notes/\347\263\273\347\273\237\346\227\245\345\277\227\345\205\254\345\205\261\351\223\276\346\216\245.png" rename to "docs/img/release_notes/\347\263\273\347\273\237\346\227\245\345\277\227\345\205\254\345\205\261\351\223\276\346\216\245.png" diff --git "a/v1/img/release_notes/\347\263\273\347\273\237\346\227\245\345\277\227\345\205\254\345\205\261\351\223\276\346\216\2451.png" "b/docs/img/release_notes/\347\263\273\347\273\237\346\227\245\345\277\227\345\205\254\345\205\261\351\223\276\346\216\2451.png" similarity index 100% rename from "v1/img/release_notes/\347\263\273\347\273\237\346\227\245\345\277\227\345\205\254\345\205\261\351\223\276\346\216\2451.png" rename to "docs/img/release_notes/\347\263\273\347\273\237\346\227\245\345\277\227\345\205\254\345\205\261\351\223\276\346\216\2451.png" diff --git "a/v1/img/release_notes/\347\263\273\347\273\237\350\256\276\347\275\256\346\227\245\345\277\227\344\277\235\347\225\231\346\234\237\351\231\220.png" "b/docs/img/release_notes/\347\263\273\347\273\237\350\256\276\347\275\256\346\227\245\345\277\227\344\277\235\347\225\231\346\234\237\351\231\220.png" similarity index 100% rename from "v1/img/release_notes/\347\263\273\347\273\237\350\256\276\347\275\256\346\227\245\345\277\227\344\277\235\347\225\231\346\234\237\351\231\220.png" rename to "docs/img/release_notes/\347\263\273\347\273\237\350\256\276\347\275\256\346\227\245\345\277\227\344\277\235\347\225\231\346\234\237\351\231\220.png" diff --git "a/v1/img/release_notes/\347\263\273\347\273\237\350\256\276\347\275\256\351\273\230\350\256\244\350\266\205\346\227\266\346\227\266\351\227\264.png" "b/docs/img/release_notes/\347\263\273\347\273\237\350\256\276\347\275\256\351\273\230\350\256\244\350\266\205\346\227\266\346\227\266\351\227\264.png" similarity index 100% rename from "v1/img/release_notes/\347\263\273\347\273\237\350\256\276\347\275\256\351\273\230\350\256\244\350\266\205\346\227\266\346\227\266\351\227\264.png" rename to "docs/img/release_notes/\347\263\273\347\273\237\350\256\276\347\275\256\351\273\230\350\256\244\350\266\205\346\227\266\346\227\266\351\227\264.png" diff --git "a/v1/img/release_notes/\347\263\273\347\273\237\351\205\215\347\275\256.png" "b/docs/img/release_notes/\347\263\273\347\273\237\351\205\215\347\275\256.png" similarity index 100% rename from "v1/img/release_notes/\347\263\273\347\273\237\351\205\215\347\275\256.png" rename to "docs/img/release_notes/\347\263\273\347\273\237\351\205\215\347\275\256.png" diff --git "a/v1/img/release_notes/\347\273\204\344\273\266\345\244\247\345\260\217\344\275\215\347\275\256\350\256\276\347\275\256.png" "b/docs/img/release_notes/\347\273\204\344\273\266\345\244\247\345\260\217\344\275\215\347\275\256\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/release_notes/\347\273\204\344\273\266\345\244\247\345\260\217\344\275\215\347\275\256\350\256\276\347\275\256.png" rename to "docs/img/release_notes/\347\273\204\344\273\266\345\244\247\345\260\217\344\275\215\347\275\256\350\256\276\347\275\256.png" diff --git "a/v1/img/release_notes/\347\273\204\344\273\266\346\240\267\345\274\217.png" "b/docs/img/release_notes/\347\273\204\344\273\266\346\240\267\345\274\217.png" similarity index 100% rename from "v1/img/release_notes/\347\273\204\344\273\266\346\240\267\345\274\217.png" rename to "docs/img/release_notes/\347\273\204\344\273\266\346\240\267\345\274\217.png" diff --git "a/v1/img/release_notes/\347\273\204\344\273\266\346\240\267\345\274\217\350\256\276\347\275\256.png" "b/docs/img/release_notes/\347\273\204\344\273\266\346\240\267\345\274\217\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/release_notes/\347\273\204\344\273\266\346\240\267\345\274\217\350\256\276\347\275\256.png" rename to "docs/img/release_notes/\347\273\204\344\273\266\346\240\267\345\274\217\350\256\276\347\275\256.png" diff --git "a/v1/img/release_notes/\347\273\204\344\273\266\346\240\267\345\274\217\350\256\276\347\275\256\350\276\271\346\241\206\346\265\217\350\247\210\350\203\214\346\231\257.png" "b/docs/img/release_notes/\347\273\204\344\273\266\346\240\267\345\274\217\350\256\276\347\275\256\350\276\271\346\241\206\346\265\217\350\247\210\350\203\214\346\231\257.png" similarity index 100% rename from "v1/img/release_notes/\347\273\204\344\273\266\346\240\267\345\274\217\350\256\276\347\275\256\350\276\271\346\241\206\346\265\217\350\247\210\350\203\214\346\231\257.png" rename to "docs/img/release_notes/\347\273\204\344\273\266\346\240\267\345\274\217\350\256\276\347\275\256\350\276\271\346\241\206\346\265\217\350\247\210\350\203\214\346\231\257.png" diff --git "a/v1/img/release_notes/\347\273\204\347\273\207\346\210\220\345\221\230.png" "b/docs/img/release_notes/\347\273\204\347\273\207\346\210\220\345\221\230.png" similarity index 100% rename from "v1/img/release_notes/\347\273\204\347\273\207\346\210\220\345\221\230.png" rename to "docs/img/release_notes/\347\273\204\347\273\207\346\210\220\345\221\230.png" diff --git "a/v1/img/release_notes/\347\273\204\347\273\207\347\256\241\347\220\206.png" "b/docs/img/release_notes/\347\273\204\347\273\207\347\256\241\347\220\206.png" similarity index 100% rename from "v1/img/release_notes/\347\273\204\347\273\207\347\256\241\347\220\206.png" rename to "docs/img/release_notes/\347\273\204\347\273\207\347\256\241\347\220\206.png" diff --git "a/v1/img/release_notes/\347\273\264\345\272\246\346\214\207\346\240\207\344\270\200\351\224\256\346\270\205\351\231\244\346\214\211\351\222\256.png" "b/docs/img/release_notes/\347\273\264\345\272\246\346\214\207\346\240\207\344\270\200\351\224\256\346\270\205\351\231\244\346\214\211\351\222\256.png" similarity index 100% rename from "v1/img/release_notes/\347\273\264\345\272\246\346\214\207\346\240\207\344\270\200\351\224\256\346\270\205\351\231\244\346\214\211\351\222\256.png" rename to "docs/img/release_notes/\347\273\264\345\272\246\346\214\207\346\240\207\344\270\200\351\224\256\346\270\205\351\231\244\346\214\211\351\222\256.png" diff --git "a/v1/img/release_notes/\347\274\251\347\225\245\350\275\264\350\203\214\346\231\257\351\242\234\350\211\262.png" "b/docs/img/release_notes/\347\274\251\347\225\245\350\275\264\350\203\214\346\231\257\351\242\234\350\211\262.png" similarity index 100% rename from "v1/img/release_notes/\347\274\251\347\225\245\350\275\264\350\203\214\346\231\257\351\242\234\350\211\262.png" rename to "docs/img/release_notes/\347\274\251\347\225\245\350\275\264\350\203\214\346\231\257\351\242\234\350\211\262.png" diff --git "a/v1/img/release_notes/\350\211\262\345\275\251\345\234\260\345\233\276\345\242\236\345\212\240\346\240\207\350\256\260\345\212\237\350\203\275 1.png" "b/docs/img/release_notes/\350\211\262\345\275\251\345\234\260\345\233\276\345\242\236\345\212\240\346\240\207\350\256\260\345\212\237\350\203\275 1.png" similarity index 100% rename from "v1/img/release_notes/\350\211\262\345\275\251\345\234\260\345\233\276\345\242\236\345\212\240\346\240\207\350\256\260\345\212\237\350\203\275 1.png" rename to "docs/img/release_notes/\350\211\262\345\275\251\345\234\260\345\233\276\345\242\236\345\212\240\346\240\207\350\256\260\345\212\237\350\203\275 1.png" diff --git "a/v1/img/release_notes/\350\211\262\345\275\251\345\234\260\345\233\276\345\242\236\345\212\240\346\240\207\350\256\260\345\212\237\350\203\275 2.png" "b/docs/img/release_notes/\350\211\262\345\275\251\345\234\260\345\233\276\345\242\236\345\212\240\346\240\207\350\256\260\345\212\237\350\203\275 2.png" similarity index 100% rename from "v1/img/release_notes/\350\211\262\345\275\251\345\234\260\345\233\276\345\242\236\345\212\240\346\240\207\350\256\260\345\212\237\350\203\275 2.png" rename to "docs/img/release_notes/\350\211\262\345\275\251\345\234\260\345\233\276\345\242\236\345\212\240\346\240\207\350\256\260\345\212\237\350\203\275 2.png" diff --git "a/v1/img/release_notes/\350\241\200\347\274\230\345\210\206\346\236\220 1.png" "b/docs/img/release_notes/\350\241\200\347\274\230\345\210\206\346\236\220 1.png" similarity index 100% rename from "v1/img/release_notes/\350\241\200\347\274\230\345\210\206\346\236\220 1.png" rename to "docs/img/release_notes/\350\241\200\347\274\230\345\210\206\346\236\220 1.png" diff --git "a/v1/img/release_notes/\350\241\200\347\274\230\345\210\206\346\236\220 2.png" "b/docs/img/release_notes/\350\241\200\347\274\230\345\210\206\346\236\220 2.png" similarity index 100% rename from "v1/img/release_notes/\350\241\200\347\274\230\345\210\206\346\236\220 2.png" rename to "docs/img/release_notes/\350\241\200\347\274\230\345\210\206\346\236\220 2.png" diff --git "a/v1/img/release_notes/\350\241\200\347\274\230\345\210\206\346\236\220 3.png" "b/docs/img/release_notes/\350\241\200\347\274\230\345\210\206\346\236\220 3.png" similarity index 100% rename from "v1/img/release_notes/\350\241\200\347\274\230\345\210\206\346\236\220 3.png" rename to "docs/img/release_notes/\350\241\200\347\274\230\345\210\206\346\236\220 3.png" diff --git "a/v1/img/release_notes/\350\241\200\347\274\230\345\210\206\346\236\220 4.png" "b/docs/img/release_notes/\350\241\200\347\274\230\345\210\206\346\236\220 4.png" similarity index 100% rename from "v1/img/release_notes/\350\241\200\347\274\230\345\210\206\346\236\220 4.png" rename to "docs/img/release_notes/\350\241\200\347\274\230\345\210\206\346\236\220 4.png" diff --git "a/v1/img/release_notes/\350\241\214\346\235\203\351\231\220.png" "b/docs/img/release_notes/\350\241\214\346\235\203\351\231\220.png" similarity index 100% rename from "v1/img/release_notes/\350\241\214\346\235\203\351\231\220.png" rename to "docs/img/release_notes/\350\241\214\346\235\203\351\231\220.png" diff --git "a/v1/img/release_notes/\350\241\214\346\235\203\351\231\2201.png" "b/docs/img/release_notes/\350\241\214\346\235\203\351\231\2201.png" similarity index 100% rename from "v1/img/release_notes/\350\241\214\346\235\203\351\231\2201.png" rename to "docs/img/release_notes/\350\241\214\346\235\203\351\231\2201.png" diff --git "a/v1/img/release_notes/\350\241\214\346\235\203\351\231\220\347\231\275\345\220\215\345\215\225\350\256\276\347\275\256.png" "b/docs/img/release_notes/\350\241\214\346\235\203\351\231\220\347\231\275\345\220\215\345\215\225\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/release_notes/\350\241\214\346\235\203\351\231\220\347\231\275\345\220\215\345\215\225\350\256\276\347\275\256.png" rename to "docs/img/release_notes/\350\241\214\346\235\203\351\231\220\347\231\275\345\220\215\345\215\225\350\256\276\347\275\256.png" diff --git "a/v1/img/release_notes/\350\241\250\346\240\274\345\272\217\345\217\267.png" "b/docs/img/release_notes/\350\241\250\346\240\274\345\272\217\345\217\267.png" similarity index 100% rename from "v1/img/release_notes/\350\241\250\346\240\274\345\272\217\345\217\267.png" rename to "docs/img/release_notes/\350\241\250\346\240\274\345\272\217\345\217\267.png" diff --git "a/v1/img/release_notes/\350\241\250\346\240\274\350\241\250\345\244\264\345\255\227\344\275\223_\345\210\206\345\274\200\350\256\276\347\275\256.png" "b/docs/img/release_notes/\350\241\250\346\240\274\350\241\250\345\244\264\345\255\227\344\275\223_\345\210\206\345\274\200\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/release_notes/\350\241\250\346\240\274\350\241\250\345\244\264\345\255\227\344\275\223_\345\210\206\345\274\200\350\256\276\347\275\256.png" rename to "docs/img/release_notes/\350\241\250\346\240\274\350\241\250\345\244\264\345\255\227\344\275\223_\345\210\206\345\274\200\350\256\276\347\275\256.png" diff --git "a/v1/img/release_notes/\350\247\206\345\233\276\346\224\276\345\244\247_\346\225\210\346\236\234\344\274\230\345\214\2261.png" "b/docs/img/release_notes/\350\247\206\345\233\276\346\224\276\345\244\247_\346\225\210\346\236\234\344\274\230\345\214\2261.png" similarity index 100% rename from "v1/img/release_notes/\350\247\206\345\233\276\346\224\276\345\244\247_\346\225\210\346\236\234\344\274\230\345\214\2261.png" rename to "docs/img/release_notes/\350\247\206\345\233\276\346\224\276\345\244\247_\346\225\210\346\236\234\344\274\230\345\214\2261.png" diff --git "a/v1/img/release_notes/\350\247\206\345\233\276\347\274\226\350\276\221\346\214\211\351\222\256.png" "b/docs/img/release_notes/\350\247\206\345\233\276\347\274\226\350\276\221\346\214\211\351\222\256.png" similarity index 100% rename from "v1/img/release_notes/\350\247\206\345\233\276\347\274\226\350\276\221\346\214\211\351\222\256.png" rename to "docs/img/release_notes/\350\247\206\345\233\276\347\274\226\350\276\221\346\214\211\351\222\256.png" diff --git "a/v1/img/release_notes/\350\247\206\345\233\276\347\274\226\350\276\221\346\214\211\351\222\256\345\214\272.png" "b/docs/img/release_notes/\350\247\206\345\233\276\347\274\226\350\276\221\346\214\211\351\222\256\345\214\272.png" similarity index 100% rename from "v1/img/release_notes/\350\247\206\345\233\276\347\274\226\350\276\221\346\214\211\351\222\256\345\214\272.png" rename to "docs/img/release_notes/\350\247\206\345\233\276\347\274\226\350\276\221\346\214\211\351\222\256\345\214\272.png" diff --git "a/v1/img/release_notes/\350\247\206\345\233\276\350\256\241\347\256\227\345\255\227\346\256\265\346\224\257\346\214\201\345\244\215\345\210\266.png" "b/docs/img/release_notes/\350\247\206\345\233\276\350\256\241\347\256\227\345\255\227\346\256\265\346\224\257\346\214\201\345\244\215\345\210\266.png" similarity index 100% rename from "v1/img/release_notes/\350\247\206\345\233\276\350\256\241\347\256\227\345\255\227\346\256\265\346\224\257\346\214\201\345\244\215\345\210\266.png" rename to "docs/img/release_notes/\350\247\206\345\233\276\350\256\241\347\256\227\345\255\227\346\256\265\346\224\257\346\214\201\345\244\215\345\210\266.png" diff --git "a/v1/img/release_notes/\350\247\206\345\233\276\350\277\207\346\273\244.png" "b/docs/img/release_notes/\350\247\206\345\233\276\350\277\207\346\273\244.png" similarity index 100% rename from "v1/img/release_notes/\350\247\206\345\233\276\350\277\207\346\273\244.png" rename to "docs/img/release_notes/\350\247\206\345\233\276\350\277\207\346\273\244.png" diff --git "a/v1/img/release_notes/\350\247\222\350\211\262\347\256\241\347\220\206.png" "b/docs/img/release_notes/\350\247\222\350\211\262\347\256\241\347\220\206.png" similarity index 100% rename from "v1/img/release_notes/\350\247\222\350\211\262\347\256\241\347\220\206.png" rename to "docs/img/release_notes/\350\247\222\350\211\262\347\256\241\347\220\206.png" diff --git "a/v1/img/release_notes/\350\247\222\350\211\262\347\256\241\347\220\2062.png" "b/docs/img/release_notes/\350\247\222\350\211\262\347\256\241\347\220\2062.png" similarity index 100% rename from "v1/img/release_notes/\350\247\222\350\211\262\347\256\241\347\220\2062.png" rename to "docs/img/release_notes/\350\247\222\350\211\262\347\256\241\347\220\2062.png" diff --git "a/v1/img/release_notes/\350\256\244\350\257\201\350\256\276\347\275\256.png" "b/docs/img/release_notes/\350\256\244\350\257\201\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/release_notes/\350\256\244\350\257\201\350\256\276\347\275\256.png" rename to "docs/img/release_notes/\350\256\244\350\257\201\350\256\276\347\275\256.png" diff --git "a/v1/img/release_notes/\350\256\276\347\275\256\347\263\273\347\273\237\345\233\276\346\240\207.png" "b/docs/img/release_notes/\350\256\276\347\275\256\347\263\273\347\273\237\345\233\276\346\240\207.png" similarity index 100% rename from "v1/img/release_notes/\350\256\276\347\275\256\347\263\273\347\273\237\345\233\276\346\240\207.png" rename to "docs/img/release_notes/\350\256\276\347\275\256\347\263\273\347\273\237\345\233\276\346\240\207.png" diff --git "a/v1/img/release_notes/\350\267\263\350\275\254\350\256\276\347\275\256_\345\255\227\346\256\265\351\200\211\346\213\251.png" "b/docs/img/release_notes/\350\267\263\350\275\254\350\256\276\347\275\256_\345\255\227\346\256\265\351\200\211\346\213\251.png" similarity index 100% rename from "v1/img/release_notes/\350\267\263\350\275\254\350\256\276\347\275\256_\345\255\227\346\256\265\351\200\211\346\213\251.png" rename to "docs/img/release_notes/\350\267\263\350\275\254\350\256\276\347\275\256_\345\255\227\346\256\265\351\200\211\346\213\251.png" diff --git "a/v1/img/release_notes/\350\267\263\350\275\254\350\256\276\347\275\256_\346\214\207\346\240\207\345\255\227\346\256\265.png" "b/docs/img/release_notes/\350\267\263\350\275\254\350\256\276\347\275\256_\346\214\207\346\240\207\345\255\227\346\256\265.png" similarity index 100% rename from "v1/img/release_notes/\350\267\263\350\275\254\350\256\276\347\275\256_\346\214\207\346\240\207\345\255\227\346\256\265.png" rename to "docs/img/release_notes/\350\267\263\350\275\254\350\256\276\347\275\256_\346\214\207\346\240\207\345\255\227\346\256\265.png" diff --git "a/v1/img/release_notes/\350\276\205\345\212\251\347\272\277_\345\212\250\346\200\201\345\200\274.png" "b/docs/img/release_notes/\350\276\205\345\212\251\347\272\277_\345\212\250\346\200\201\345\200\274.png" similarity index 100% rename from "v1/img/release_notes/\350\276\205\345\212\251\347\272\277_\345\212\250\346\200\201\345\200\274.png" rename to "docs/img/release_notes/\350\276\205\345\212\251\347\272\277_\345\212\250\346\200\201\345\200\274.png" diff --git "a/v1/img/release_notes/\350\276\205\345\212\251\347\272\277_\345\212\250\346\200\201\345\200\2741.png" "b/docs/img/release_notes/\350\276\205\345\212\251\347\272\277_\345\212\250\346\200\201\345\200\2741.png" similarity index 100% rename from "v1/img/release_notes/\350\276\205\345\212\251\347\272\277_\345\212\250\346\200\201\345\200\2741.png" rename to "docs/img/release_notes/\350\276\205\345\212\251\347\272\277_\345\212\250\346\200\201\345\200\2741.png" diff --git "a/v1/img/release_notes/\350\276\205\345\212\251\347\272\277\346\225\260\345\200\274\346\240\274\345\274\217\345\214\226.png" "b/docs/img/release_notes/\350\276\205\345\212\251\347\272\277\346\225\260\345\200\274\346\240\274\345\274\217\345\214\226.png" similarity index 100% rename from "v1/img/release_notes/\350\276\205\345\212\251\347\272\277\346\225\260\345\200\274\346\240\274\345\274\217\345\214\226.png" rename to "docs/img/release_notes/\350\276\205\345\212\251\347\272\277\346\225\260\345\200\274\346\240\274\345\274\217\345\214\226.png" diff --git "a/v1/img/release_notes/\350\276\276\346\242\246\346\225\260\346\215\256\345\272\223.png" "b/docs/img/release_notes/\350\276\276\346\242\246\346\225\260\346\215\256\345\272\223.png" similarity index 100% rename from "v1/img/release_notes/\350\276\276\346\242\246\346\225\260\346\215\256\345\272\223.png" rename to "docs/img/release_notes/\350\276\276\346\242\246\346\225\260\346\215\256\345\272\223.png" diff --git "a/v1/img/release_notes/\350\277\207\346\273\244\347\273\204\344\273\266\347\273\221\345\256\232\345\217\202\346\225\260\344\274\230\345\214\226.png" "b/docs/img/release_notes/\350\277\207\346\273\244\347\273\204\344\273\266\347\273\221\345\256\232\345\217\202\346\225\260\344\274\230\345\214\226.png" similarity index 100% rename from "v1/img/release_notes/\350\277\207\346\273\244\347\273\204\344\273\266\347\273\221\345\256\232\345\217\202\346\225\260\344\274\230\345\214\226.png" rename to "docs/img/release_notes/\350\277\207\346\273\244\347\273\204\344\273\266\347\273\221\345\256\232\345\217\202\346\225\260\344\274\230\345\214\226.png" diff --git "a/v1/img/release_notes/\351\200\217\350\247\206\350\241\250_\350\201\232\345\220\210\346\226\271\345\274\217.png" "b/docs/img/release_notes/\351\200\217\350\247\206\350\241\250_\350\201\232\345\220\210\346\226\271\345\274\217.png" similarity index 100% rename from "v1/img/release_notes/\351\200\217\350\247\206\350\241\250_\350\201\232\345\220\210\346\226\271\345\274\217.png" rename to "docs/img/release_notes/\351\200\217\350\247\206\350\241\250_\350\201\232\345\220\210\346\226\271\345\274\217.png" diff --git "a/v1/img/release_notes/\351\200\217\350\247\206\350\241\250\345\210\227\346\261\207\346\200\273\346\224\257\346\214\201\346\214\211\345\220\210\350\256\241\346\216\222\345\272\217.png" "b/docs/img/release_notes/\351\200\217\350\247\206\350\241\250\345\210\227\346\261\207\346\200\273\346\224\257\346\214\201\346\214\211\345\220\210\350\256\241\346\216\222\345\272\217.png" similarity index 100% rename from "v1/img/release_notes/\351\200\217\350\247\206\350\241\250\345\210\227\346\261\207\346\200\273\346\224\257\346\214\201\346\214\211\345\220\210\350\256\241\346\216\222\345\272\217.png" rename to "docs/img/release_notes/\351\200\217\350\247\206\350\241\250\345\210\227\346\261\207\346\200\273\346\224\257\346\214\201\346\214\211\345\220\210\350\256\241\346\216\222\345\272\217.png" diff --git "a/v1/img/release_notes/\351\200\217\350\247\206\350\241\250\345\244\264\350\267\263\350\275\254 1.png" "b/docs/img/release_notes/\351\200\217\350\247\206\350\241\250\345\244\264\350\267\263\350\275\254 1.png" similarity index 100% rename from "v1/img/release_notes/\351\200\217\350\247\206\350\241\250\345\244\264\350\267\263\350\275\254 1.png" rename to "docs/img/release_notes/\351\200\217\350\247\206\350\241\250\345\244\264\350\267\263\350\275\254 1.png" diff --git "a/v1/img/release_notes/\351\200\217\350\247\206\350\241\250\345\244\264\350\267\263\350\275\254 2.png" "b/docs/img/release_notes/\351\200\217\350\247\206\350\241\250\345\244\264\350\267\263\350\275\254 2.png" similarity index 100% rename from "v1/img/release_notes/\351\200\217\350\247\206\350\241\250\345\244\264\350\267\263\350\275\254 2.png" rename to "docs/img/release_notes/\351\200\217\350\247\206\350\241\250\345\244\264\350\267\263\350\275\254 2.png" diff --git "a/v1/img/release_notes/\351\200\217\350\247\206\350\241\250\345\244\264\350\267\263\350\275\254 3.png" "b/docs/img/release_notes/\351\200\217\350\247\206\350\241\250\345\244\264\350\267\263\350\275\254 3.png" similarity index 100% rename from "v1/img/release_notes/\351\200\217\350\247\206\350\241\250\345\244\264\350\267\263\350\275\254 3.png" rename to "docs/img/release_notes/\351\200\217\350\247\206\350\241\250\345\244\264\350\267\263\350\275\254 3.png" diff --git "a/v1/img/release_notes/\351\200\217\350\247\206\350\241\250\345\244\264\350\267\263\350\275\254 4.png" "b/docs/img/release_notes/\351\200\217\350\247\206\350\241\250\345\244\264\350\267\263\350\275\254 4.png" similarity index 100% rename from "v1/img/release_notes/\351\200\217\350\247\206\350\241\250\345\244\264\350\267\263\350\275\254 4.png" rename to "docs/img/release_notes/\351\200\217\350\247\206\350\241\250\345\244\264\350\267\263\350\275\254 4.png" diff --git "a/v1/img/release_notes/\351\200\217\350\247\206\350\241\250\350\241\214\346\261\207\346\200\273.png" "b/docs/img/release_notes/\351\200\217\350\247\206\350\241\250\350\241\214\346\261\207\346\200\273.png" similarity index 100% rename from "v1/img/release_notes/\351\200\217\350\247\206\350\241\250\350\241\214\346\261\207\346\200\273.png" rename to "docs/img/release_notes/\351\200\217\350\247\206\350\241\250\350\241\214\346\261\207\346\200\273.png" diff --git "a/v1/img/release_notes/\351\222\211\351\222\211\345\267\245\344\275\234\345\217\260.png" "b/docs/img/release_notes/\351\222\211\351\222\211\345\267\245\344\275\234\345\217\260.png" similarity index 100% rename from "v1/img/release_notes/\351\222\211\351\222\211\345\267\245\344\275\234\345\217\260.png" rename to "docs/img/release_notes/\351\222\211\351\222\211\345\267\245\344\275\234\345\217\260.png" diff --git "a/v1/img/release_notes/\351\230\210\345\200\274_\350\203\214\346\231\257\350\211\262.png" "b/docs/img/release_notes/\351\230\210\345\200\274_\350\203\214\346\231\257\350\211\262.png" similarity index 100% rename from "v1/img/release_notes/\351\230\210\345\200\274_\350\203\214\346\231\257\350\211\262.png" rename to "docs/img/release_notes/\351\230\210\345\200\274_\350\203\214\346\231\257\350\211\262.png" diff --git "a/v1/img/release_notes/\351\230\210\345\200\274\350\256\276\347\275\256_\346\225\260\345\200\274\344\273\213\344\272\216.png" "b/docs/img/release_notes/\351\230\210\345\200\274\350\256\276\347\275\256_\346\225\260\345\200\274\344\273\213\344\272\216.png" similarity index 100% rename from "v1/img/release_notes/\351\230\210\345\200\274\350\256\276\347\275\256_\346\225\260\345\200\274\344\273\213\344\272\216.png" rename to "docs/img/release_notes/\351\230\210\345\200\274\350\256\276\347\275\256_\346\225\260\345\200\274\344\273\213\344\272\216.png" diff --git "a/v1/img/release_notes/\351\230\210\345\200\274\350\256\276\347\275\256_\346\225\260\345\200\274\344\273\213\344\272\2161.png" "b/docs/img/release_notes/\351\230\210\345\200\274\350\256\276\347\275\256_\346\225\260\345\200\274\344\273\213\344\272\2161.png" similarity index 100% rename from "v1/img/release_notes/\351\230\210\345\200\274\350\256\276\347\275\256_\346\225\260\345\200\274\344\273\213\344\272\2161.png" rename to "docs/img/release_notes/\351\230\210\345\200\274\350\256\276\347\275\256_\346\225\260\345\200\274\344\273\213\344\272\2161.png" diff --git "a/v1/img/release_notes/\351\230\262\346\232\264\345\212\233\347\231\273\345\275\225\350\256\276\347\275\256.png" "b/docs/img/release_notes/\351\230\262\346\232\264\345\212\233\347\231\273\345\275\225\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/release_notes/\351\230\262\346\232\264\345\212\233\347\231\273\345\275\225\350\256\276\347\275\256.png" rename to "docs/img/release_notes/\351\230\262\346\232\264\345\212\233\347\231\273\345\275\225\350\256\276\347\275\256.png" diff --git "a/v1/img/release_notes/\351\230\262\346\232\264\345\212\233\347\231\273\345\275\225\350\256\276\347\275\2561.png" "b/docs/img/release_notes/\351\230\262\346\232\264\345\212\233\347\231\273\345\275\225\350\256\276\347\275\2561.png" similarity index 100% rename from "v1/img/release_notes/\351\230\262\346\232\264\345\212\233\347\231\273\345\275\225\350\256\276\347\275\2561.png" rename to "docs/img/release_notes/\351\230\262\346\232\264\345\212\233\347\231\273\345\275\225\350\256\276\347\275\2561.png" diff --git "a/v1/img/release_notes/\351\230\262\346\232\264\345\212\233\347\231\273\345\275\225\350\256\276\347\275\2562.png" "b/docs/img/release_notes/\351\230\262\346\232\264\345\212\233\347\231\273\345\275\225\350\256\276\347\275\2562.png" similarity index 100% rename from "v1/img/release_notes/\351\230\262\346\232\264\345\212\233\347\231\273\345\275\225\350\256\276\347\275\2562.png" rename to "docs/img/release_notes/\351\230\262\346\232\264\345\212\233\347\231\273\345\275\225\350\256\276\347\275\2562.png" diff --git "a/v1/img/release_notes/\351\232\220\350\227\217\347\251\272\346\225\260\346\215\256.png" "b/docs/img/release_notes/\351\232\220\350\227\217\347\251\272\346\225\260\346\215\256.png" similarity index 100% rename from "v1/img/release_notes/\351\232\220\350\227\217\347\251\272\346\225\260\346\215\256.png" rename to "docs/img/release_notes/\351\232\220\350\227\217\347\251\272\346\225\260\346\215\256.png" diff --git "a/v1/img/release_notes/\351\243\236\344\271\246\345\233\275\351\231\205\347\211\210.png" "b/docs/img/release_notes/\351\243\236\344\271\246\345\233\275\351\231\205\347\211\210.png" similarity index 100% rename from "v1/img/release_notes/\351\243\236\344\271\246\345\233\275\351\231\205\347\211\210.png" rename to "docs/img/release_notes/\351\243\236\344\271\246\345\233\275\351\231\205\347\211\210.png" diff --git "a/v1/img/release_notes/\351\243\236\344\271\246\345\267\245\344\275\234\345\217\260.png" "b/docs/img/release_notes/\351\243\236\344\271\246\345\267\245\344\275\234\345\217\260.png" similarity index 100% rename from "v1/img/release_notes/\351\243\236\344\271\246\345\267\245\344\275\234\345\217\260.png" rename to "docs/img/release_notes/\351\243\236\344\271\246\345\267\245\344\275\234\345\217\260.png" diff --git a/v1/img/system-arch-copy.png b/docs/img/system-arch-copy.png similarity index 100% rename from v1/img/system-arch-copy.png rename to docs/img/system-arch-copy.png diff --git a/v1/img/system-arch.png b/docs/img/system-arch.png similarity index 100% rename from v1/img/system-arch.png rename to docs/img/system-arch.png diff --git "a/v1/img/system_management/Doris\350\256\276\347\275\256.png" "b/docs/img/system_management/Doris\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/system_management/Doris\350\256\276\347\275\256.png" rename to "docs/img/system_management/Doris\350\256\276\347\275\256.png" diff --git "a/v1/img/system_management/Kettle\350\256\276\347\275\256.png" "b/docs/img/system_management/Kettle\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/system_management/Kettle\350\256\276\347\275\256.png" rename to "docs/img/system_management/Kettle\350\256\276\347\275\256.png" diff --git "a/v1/img/system_management/Kettle\350\256\276\347\275\256_\347\274\226\350\276\221.png" "b/docs/img/system_management/Kettle\350\256\276\347\275\256_\347\274\226\350\276\221.png" similarity index 100% rename from "v1/img/system_management/Kettle\350\256\276\347\275\256_\347\274\226\350\276\221.png" rename to "docs/img/system_management/Kettle\350\256\276\347\275\256_\347\274\226\350\276\221.png" diff --git "a/v1/img/system_management/MySQL\350\256\276\347\275\256.png" "b/docs/img/system_management/MySQL\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/system_management/MySQL\350\256\276\347\275\256.png" rename to "docs/img/system_management/MySQL\350\256\276\347\275\256.png" diff --git a/v2/img/system_management/country.png b/docs/img/system_management/country.png similarity index 100% rename from v2/img/system_management/country.png rename to docs/img/system_management/country.png diff --git a/v1/img/system_management/province.png b/docs/img/system_management/province.png similarity index 100% rename from v1/img/system_management/province.png rename to docs/img/system_management/province.png diff --git "a/v2/img/system_management/\344\270\212\344\274\240\346\250\241\346\235\277.png" "b/docs/img/system_management/\344\270\212\344\274\240\346\250\241\346\235\277.png" similarity index 100% rename from "v2/img/system_management/\344\270\212\344\274\240\346\250\241\346\235\277.png" rename to "docs/img/system_management/\344\270\212\344\274\240\346\250\241\346\235\277.png" diff --git "a/v2/img/system_management/\344\270\226\347\225\214\345\234\260\345\233\276.png" "b/docs/img/system_management/\344\270\226\347\225\214\345\234\260\345\233\276.png" similarity index 100% rename from "v2/img/system_management/\344\270\226\347\225\214\345\234\260\345\233\276.png" rename to "docs/img/system_management/\344\270\226\347\225\214\345\234\260\345\233\276.png" diff --git "a/v1/img/system_management/\344\270\252\344\272\272\344\277\241\346\201\257\345\205\245\345\217\243.png" "b/docs/img/system_management/\344\270\252\344\272\272\344\277\241\346\201\257\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/system_management/\344\270\252\344\272\272\344\277\241\346\201\257\345\205\245\345\217\243.png" rename to "docs/img/system_management/\344\270\252\344\272\272\344\277\241\346\201\257\345\205\245\345\217\243.png" diff --git "a/v1/img/system_management/\344\273\273\345\212\241\345\210\227\350\241\250.png" "b/docs/img/system_management/\344\273\273\345\212\241\345\210\227\350\241\250.png" similarity index 100% rename from "v1/img/system_management/\344\273\273\345\212\241\345\210\227\350\241\250.png" rename to "docs/img/system_management/\344\273\273\345\212\241\345\210\227\350\241\250.png" diff --git "a/v1/img/system_management/\344\273\273\345\212\241\345\210\227\350\241\250_\346\232\202\345\201\234\344\273\273\345\212\241.png" "b/docs/img/system_management/\344\273\273\345\212\241\345\210\227\350\241\250_\346\232\202\345\201\234\344\273\273\345\212\241.png" similarity index 100% rename from "v1/img/system_management/\344\273\273\345\212\241\345\210\227\350\241\250_\346\232\202\345\201\234\344\273\273\345\212\241.png" rename to "docs/img/system_management/\344\273\273\345\212\241\345\210\227\350\241\250_\346\232\202\345\201\234\344\273\273\345\212\241.png" diff --git "a/v2/img/system_management/\344\277\204\347\275\227\346\226\257.png" "b/docs/img/system_management/\344\277\204\347\275\227\346\226\257.png" similarity index 100% rename from "v2/img/system_management/\344\277\204\347\275\227\346\226\257.png" rename to "docs/img/system_management/\344\277\204\347\275\227\346\226\257.png" diff --git "a/v2/img/system_management/\344\277\204\347\275\227\346\226\257\345\234\260\345\233\276.png" "b/docs/img/system_management/\344\277\204\347\275\227\346\226\257\345\234\260\345\233\276.png" similarity index 100% rename from "v2/img/system_management/\344\277\204\347\275\227\346\226\257\345\234\260\345\233\276.png" rename to "docs/img/system_management/\344\277\204\347\275\227\346\226\257\345\234\260\345\233\276.png" diff --git "a/v1/img/system_management/\344\277\256\346\224\271\344\270\252\344\272\272\344\277\241\346\201\257.png" "b/docs/img/system_management/\344\277\256\346\224\271\344\270\252\344\272\272\344\277\241\346\201\257.png" similarity index 100% rename from "v1/img/system_management/\344\277\256\346\224\271\344\270\252\344\272\272\344\277\241\346\201\257.png" rename to "docs/img/system_management/\344\277\256\346\224\271\344\270\252\344\272\272\344\277\241\346\201\257.png" diff --git "a/v1/img/system_management/\344\277\256\346\224\271\345\257\206\347\240\201.png" "b/docs/img/system_management/\344\277\256\346\224\271\345\257\206\347\240\201.png" similarity index 100% rename from "v1/img/system_management/\344\277\256\346\224\271\345\257\206\347\240\201.png" rename to "docs/img/system_management/\344\277\256\346\224\271\345\257\206\347\240\201.png" diff --git "a/v1/img/system_management/\344\277\256\346\224\271\345\257\206\347\240\201\345\205\245\345\217\243.png" "b/docs/img/system_management/\344\277\256\346\224\271\345\257\206\347\240\201\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/system_management/\344\277\256\346\224\271\345\257\206\347\240\201\345\205\245\345\217\243.png" rename to "docs/img/system_management/\344\277\256\346\224\271\345\257\206\347\240\201\345\205\245\345\217\243.png" diff --git "a/v1/img/system_management/\344\277\256\346\224\271\350\217\234\345\215\225.png" "b/docs/img/system_management/\344\277\256\346\224\271\350\217\234\345\215\225.png" similarity index 100% rename from "v1/img/system_management/\344\277\256\346\224\271\350\217\234\345\215\225.png" rename to "docs/img/system_management/\344\277\256\346\224\271\350\217\234\345\215\225.png" diff --git "a/v1/img/system_management/\345\210\233\345\273\272\347\224\250\346\210\267.png" "b/docs/img/system_management/\345\210\233\345\273\272\347\224\250\346\210\267.png" similarity index 100% rename from "v1/img/system_management/\345\210\233\345\273\272\347\224\250\346\210\267.png" rename to "docs/img/system_management/\345\210\233\345\273\272\347\224\250\346\210\267.png" diff --git "a/v1/img/system_management/\345\210\233\345\273\272\347\273\204\347\273\207.png" "b/docs/img/system_management/\345\210\233\345\273\272\347\273\204\347\273\207.png" similarity index 100% rename from "v1/img/system_management/\345\210\233\345\273\272\347\273\204\347\273\207.png" rename to "docs/img/system_management/\345\210\233\345\273\272\347\273\204\347\273\207.png" diff --git "a/v1/img/system_management/\345\210\233\345\273\272\350\247\222\350\211\262.png" "b/docs/img/system_management/\345\210\233\345\273\272\350\247\222\350\211\262.png" similarity index 100% rename from "v1/img/system_management/\345\210\233\345\273\272\350\247\222\350\211\262.png" rename to "docs/img/system_management/\345\210\233\345\273\272\350\247\222\350\211\262.png" diff --git "a/v1/img/system_management/\345\210\240\351\231\244\346\250\241\346\235\277.png" "b/docs/img/system_management/\345\210\240\351\231\244\346\250\241\346\235\277.png" similarity index 100% rename from "v1/img/system_management/\345\210\240\351\231\244\346\250\241\346\235\277.png" rename to "docs/img/system_management/\345\210\240\351\231\244\346\250\241\346\235\277.png" diff --git "a/v1/img/system_management/\345\210\240\351\231\244\347\224\250\346\210\267.png" "b/docs/img/system_management/\345\210\240\351\231\244\347\224\250\346\210\267.png" similarity index 100% rename from "v1/img/system_management/\345\210\240\351\231\244\347\224\250\346\210\267.png" rename to "docs/img/system_management/\345\210\240\351\231\244\347\224\250\346\210\267.png" diff --git "a/v1/img/system_management/\345\210\240\351\231\244\347\273\204\347\273\207.png" "b/docs/img/system_management/\345\210\240\351\231\244\347\273\204\347\273\207.png" similarity index 100% rename from "v1/img/system_management/\345\210\240\351\231\244\347\273\204\347\273\207.png" rename to "docs/img/system_management/\345\210\240\351\231\244\347\273\204\347\273\207.png" diff --git "a/v1/img/system_management/\345\210\240\351\231\244\350\247\222\350\211\262.png" "b/docs/img/system_management/\345\210\240\351\231\244\350\247\222\350\211\262.png" similarity index 100% rename from "v1/img/system_management/\345\210\240\351\231\244\350\247\222\350\211\262.png" rename to "docs/img/system_management/\345\210\240\351\231\244\350\247\222\350\211\262.png" diff --git "a/v2/img/system_management/\345\234\260\345\233\276\347\225\214\351\235\242.png" "b/docs/img/system_management/\345\234\260\345\233\276\347\225\214\351\235\242.png" similarity index 100% rename from "v2/img/system_management/\345\234\260\345\233\276\347\225\214\351\235\242.png" rename to "docs/img/system_management/\345\234\260\345\233\276\347\225\214\351\235\242.png" diff --git "a/v2/img/system_management/\345\234\260\345\233\276\350\256\276\347\275\256.png" "b/docs/img/system_management/\345\234\260\345\233\276\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/system_management/\345\234\260\345\233\276\350\256\276\347\275\256.png" rename to "docs/img/system_management/\345\234\260\345\233\276\350\256\276\347\275\256.png" diff --git "a/v1/img/system_management/\345\234\260\345\233\276\350\256\276\347\275\2561.png" "b/docs/img/system_management/\345\234\260\345\233\276\350\256\276\347\275\2561.png" similarity index 100% rename from "v1/img/system_management/\345\234\260\345\233\276\350\256\276\347\275\2561.png" rename to "docs/img/system_management/\345\234\260\345\233\276\350\256\276\347\275\2561.png" diff --git "a/v1/img/system_management/\345\234\260\345\233\276\350\256\276\347\275\2562.png" "b/docs/img/system_management/\345\234\260\345\233\276\350\256\276\347\275\2562.png" similarity index 100% rename from "v1/img/system_management/\345\234\260\345\233\276\350\256\276\347\275\2562.png" rename to "docs/img/system_management/\345\234\260\345\233\276\350\256\276\347\275\2562.png" diff --git "a/v2/img/system_management/\345\234\260\345\233\276\350\256\276\347\275\256geo\346\226\207\344\273\266.png" "b/docs/img/system_management/\345\234\260\345\233\276\350\256\276\347\275\256geo\346\226\207\344\273\266.png" similarity index 100% rename from "v2/img/system_management/\345\234\260\345\233\276\350\256\276\347\275\256geo\346\226\207\344\273\266.png" rename to "docs/img/system_management/\345\234\260\345\233\276\350\256\276\347\275\256geo\346\226\207\344\273\266.png" diff --git "a/v2/img/system_management/\345\234\260\347\220\206\344\277\241\346\201\257.png" "b/docs/img/system_management/\345\234\260\347\220\206\344\277\241\346\201\257.png" similarity index 100% rename from "v2/img/system_management/\345\234\260\347\220\206\344\277\241\346\201\257.png" rename to "docs/img/system_management/\345\234\260\347\220\206\344\277\241\346\201\257.png" diff --git "a/v2/img/system_management/\345\237\272\347\241\200\350\256\276\347\275\256.png" "b/docs/img/system_management/\345\237\272\347\241\200\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/system_management/\345\237\272\347\241\200\350\256\276\347\275\256.png" rename to "docs/img/system_management/\345\237\272\347\241\200\350\256\276\347\275\256.png" diff --git "a/v1/img/system_management/\345\257\274\345\205\245\346\250\241\346\235\277.png" "b/docs/img/system_management/\345\257\274\345\205\245\346\250\241\346\235\277.png" similarity index 100% rename from "v1/img/system_management/\345\257\274\345\205\245\346\250\241\346\235\277.png" rename to "docs/img/system_management/\345\257\274\345\205\245\346\250\241\346\235\277.png" diff --git "a/v2/img/system_management/\345\257\274\345\207\272\344\270\272\346\250\241\346\235\277.png" "b/docs/img/system_management/\345\257\274\345\207\272\344\270\272\346\250\241\346\235\277.png" similarity index 100% rename from "v2/img/system_management/\345\257\274\345\207\272\344\270\272\346\250\241\346\235\277.png" rename to "docs/img/system_management/\345\257\274\345\207\272\344\270\272\346\250\241\346\235\277.png" diff --git "a/v1/img/system_management/\345\257\274\345\207\272\346\223\215\344\275\234\346\227\245\345\277\227.png" "b/docs/img/system_management/\345\257\274\345\207\272\346\223\215\344\275\234\346\227\245\345\277\227.png" similarity index 100% rename from "v1/img/system_management/\345\257\274\345\207\272\346\223\215\344\275\234\346\227\245\345\277\227.png" rename to "docs/img/system_management/\345\257\274\345\207\272\346\223\215\344\275\234\346\227\245\345\277\227.png" diff --git "a/v1/img/system_management/\345\267\262\350\257\273\346\266\210\346\201\257.png" "b/docs/img/system_management/\345\267\262\350\257\273\346\266\210\346\201\257.png" similarity index 100% rename from "v1/img/system_management/\345\267\262\350\257\273\346\266\210\346\201\257.png" rename to "docs/img/system_management/\345\267\262\350\257\273\346\266\210\346\201\257.png" diff --git "a/v1/img/system_management/\345\272\224\347\224\250\344\270\212\344\274\240.png" "b/docs/img/system_management/\345\272\224\347\224\250\344\270\212\344\274\240.png" similarity index 100% rename from "v1/img/system_management/\345\272\224\347\224\250\344\270\212\344\274\240.png" rename to "docs/img/system_management/\345\272\224\347\224\250\344\270\212\344\274\240.png" diff --git "a/v1/img/system_management/\345\272\224\347\224\250\347\256\241\347\220\206.png" "b/docs/img/system_management/\345\272\224\347\224\250\347\256\241\347\220\206.png" similarity index 100% rename from "v1/img/system_management/\345\272\224\347\224\250\347\256\241\347\220\206.png" rename to "docs/img/system_management/\345\272\224\347\224\250\347\256\241\347\220\206.png" diff --git "a/v2/img/system_management/\345\274\225\346\223\216\347\256\241\347\220\206.png" "b/docs/img/system_management/\345\274\225\346\223\216\347\256\241\347\220\206.png" similarity index 100% rename from "v2/img/system_management/\345\274\225\346\223\216\347\256\241\347\220\206.png" rename to "docs/img/system_management/\345\274\225\346\223\216\347\256\241\347\220\206.png" diff --git "a/v1/img/system_management/\346\211\200\346\234\211\346\266\210\346\201\257.png" "b/docs/img/system_management/\346\211\200\346\234\211\346\266\210\346\201\257.png" similarity index 100% rename from "v1/img/system_management/\346\211\200\346\234\211\346\266\210\346\201\257.png" rename to "docs/img/system_management/\346\211\200\346\234\211\346\266\210\346\201\257.png" diff --git "a/v1/img/system_management/\346\211\247\350\241\214\350\256\260\345\275\225.png" "b/docs/img/system_management/\346\211\247\350\241\214\350\256\260\345\275\225.png" similarity index 100% rename from "v1/img/system_management/\346\211\247\350\241\214\350\256\260\345\275\225.png" rename to "docs/img/system_management/\346\211\247\350\241\214\350\256\260\345\275\225.png" diff --git "a/v1/img/system_management/\346\216\245\346\224\266\347\256\241\347\220\206.png" "b/docs/img/system_management/\346\216\245\346\224\266\347\256\241\347\220\206.png" similarity index 100% rename from "v1/img/system_management/\346\216\245\346\224\266\347\256\241\347\220\206.png" rename to "docs/img/system_management/\346\216\245\346\224\266\347\256\241\347\220\206.png" diff --git "a/v1/img/system_management/\346\217\222\344\273\266\347\256\241\347\220\206.png" "b/docs/img/system_management/\346\217\222\344\273\266\347\256\241\347\220\206.png" similarity index 100% rename from "v1/img/system_management/\346\217\222\344\273\266\347\256\241\347\220\206.png" rename to "docs/img/system_management/\346\217\222\344\273\266\347\256\241\347\220\206.png" diff --git "a/v1/img/system_management/\346\220\234\347\264\242\347\224\250\346\210\267.png" "b/docs/img/system_management/\346\220\234\347\264\242\347\224\250\346\210\267.png" similarity index 100% rename from "v1/img/system_management/\346\220\234\347\264\242\347\224\250\346\210\267.png" rename to "docs/img/system_management/\346\220\234\347\264\242\347\224\250\346\210\267.png" diff --git "a/v1/img/system_management/\346\220\234\347\264\242\347\273\204\347\273\207.png" "b/docs/img/system_management/\346\220\234\347\264\242\347\273\204\347\273\207.png" similarity index 100% rename from "v1/img/system_management/\346\220\234\347\264\242\347\273\204\347\273\207.png" rename to "docs/img/system_management/\346\220\234\347\264\242\347\273\204\347\273\207.png" diff --git "a/v1/img/system_management/\346\220\234\347\264\242\350\247\222\350\211\262.png" "b/docs/img/system_management/\346\220\234\347\264\242\350\247\222\350\211\262.png" similarity index 100% rename from "v1/img/system_management/\346\220\234\347\264\242\350\247\222\350\211\262.png" rename to "docs/img/system_management/\346\220\234\347\264\242\350\247\222\350\211\262.png" diff --git "a/v2/img/system_management/\346\225\260\346\215\256\346\226\207\344\273\266.png" "b/docs/img/system_management/\346\225\260\346\215\256\346\226\207\344\273\266.png" similarity index 100% rename from "v2/img/system_management/\346\225\260\346\215\256\346\226\207\344\273\266.png" rename to "docs/img/system_management/\346\225\260\346\215\256\346\226\207\344\273\266.png" diff --git "a/v1/img/system_management/\346\225\260\346\215\256\346\272\220\346\234\211\346\225\210\346\200\247\346\243\200\346\265\213.png" "b/docs/img/system_management/\346\225\260\346\215\256\346\272\220\346\234\211\346\225\210\346\200\247\346\243\200\346\265\213.png" similarity index 100% rename from "v1/img/system_management/\346\225\260\346\215\256\346\272\220\346\234\211\346\225\210\346\200\247\346\243\200\346\265\213.png" rename to "docs/img/system_management/\346\225\260\346\215\256\346\272\220\346\234\211\346\225\210\346\200\247\346\243\200\346\265\213.png" diff --git "a/v2/img/system_management/\346\225\260\346\215\256\346\272\220\346\243\200\346\265\213\346\227\266\351\227\264.png" "b/docs/img/system_management/\346\225\260\346\215\256\346\272\220\346\243\200\346\265\213\346\227\266\351\227\264.png" similarity index 100% rename from "v2/img/system_management/\346\225\260\346\215\256\346\272\220\346\243\200\346\265\213\346\227\266\351\227\264.png" rename to "docs/img/system_management/\346\225\260\346\215\256\346\272\220\346\243\200\346\265\213\346\227\266\351\227\264.png" diff --git "a/v1/img/system_management/\346\226\260\345\273\272\344\273\273\345\212\241.png" "b/docs/img/system_management/\346\226\260\345\273\272\344\273\273\345\212\241.png" similarity index 100% rename from "v1/img/system_management/\346\226\260\345\273\272\344\273\273\345\212\241.png" rename to "docs/img/system_management/\346\226\260\345\273\272\344\273\273\345\212\241.png" diff --git "a/v1/img/system_management/\346\226\260\345\273\272\346\250\241\346\235\277\345\210\206\347\261\273.png" "b/docs/img/system_management/\346\226\260\345\273\272\346\250\241\346\235\277\345\210\206\347\261\273.png" similarity index 100% rename from "v1/img/system_management/\346\226\260\345\273\272\346\250\241\346\235\277\345\210\206\347\261\273.png" rename to "docs/img/system_management/\346\226\260\345\273\272\346\250\241\346\235\277\345\210\206\347\261\273.png" diff --git "a/v1/img/system_management/\346\226\260\345\273\272\347\224\250\346\210\267\345\210\235\345\247\213\345\257\206\347\240\201\351\205\215\347\275\256.png" "b/docs/img/system_management/\346\226\260\345\273\272\347\224\250\346\210\267\345\210\235\345\247\213\345\257\206\347\240\201\351\205\215\347\275\256.png" similarity index 100% rename from "v1/img/system_management/\346\226\260\345\273\272\347\224\250\346\210\267\345\210\235\345\247\213\345\257\206\347\240\201\351\205\215\347\275\256.png" rename to "docs/img/system_management/\346\226\260\345\273\272\347\224\250\346\210\267\345\210\235\345\247\213\345\257\206\347\240\201\351\205\215\347\275\256.png" diff --git "a/v1/img/system_management/\346\230\276\347\244\272\350\256\276\347\275\256.png" "b/docs/img/system_management/\346\230\276\347\244\272\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/system_management/\346\230\276\347\244\272\350\256\276\347\275\256.png" rename to "docs/img/system_management/\346\230\276\347\244\272\350\256\276\347\275\256.png" diff --git "a/v1/img/system_management/\346\230\276\347\244\272\350\256\276\347\275\256\345\274\200\345\247\213\347\274\226\350\276\221.png" "b/docs/img/system_management/\346\230\276\347\244\272\350\256\276\347\275\256\345\274\200\345\247\213\347\274\226\350\276\221.png" similarity index 100% rename from "v1/img/system_management/\346\230\276\347\244\272\350\256\276\347\275\256\345\274\200\345\247\213\347\274\226\350\276\221.png" rename to "docs/img/system_management/\346\230\276\347\244\272\350\256\276\347\275\256\345\274\200\345\247\213\347\274\226\350\276\221.png" diff --git "a/v1/img/system_management/\346\230\276\347\244\272\350\256\276\347\275\256\347\274\226\350\276\221.png" "b/docs/img/system_management/\346\230\276\347\244\272\350\256\276\347\275\256\347\274\226\350\276\221.png" similarity index 100% rename from "v1/img/system_management/\346\230\276\347\244\272\350\256\276\347\275\256\347\274\226\350\276\221.png" rename to "docs/img/system_management/\346\230\276\347\244\272\350\256\276\347\275\256\347\274\226\350\276\221.png" diff --git "a/v1/img/system_management/\346\234\252\350\257\273\346\266\210\346\201\257.png" "b/docs/img/system_management/\346\234\252\350\257\273\346\266\210\346\201\257.png" similarity index 100% rename from "v1/img/system_management/\346\234\252\350\257\273\346\266\210\346\201\257.png" rename to "docs/img/system_management/\346\234\252\350\257\273\346\266\210\346\201\257.png" diff --git "a/v1/img/system_management/\346\234\252\350\257\273\346\266\210\346\201\257\351\200\232\347\237\245.png" "b/docs/img/system_management/\346\234\252\350\257\273\346\266\210\346\201\257\351\200\232\347\237\245.png" similarity index 100% rename from "v1/img/system_management/\346\234\252\350\257\273\346\266\210\346\201\257\351\200\232\347\237\245.png" rename to "docs/img/system_management/\346\234\252\350\257\273\346\266\210\346\201\257\351\200\232\347\237\245.png" diff --git "a/v1/img/system_management/\346\235\203\351\231\220\345\210\227\350\241\250.png" "b/docs/img/system_management/\346\235\203\351\231\220\345\210\227\350\241\250.png" similarity index 100% rename from "v1/img/system_management/\346\235\203\351\231\220\345\210\227\350\241\250.png" rename to "docs/img/system_management/\346\235\203\351\231\220\345\210\227\350\241\250.png" diff --git "a/v1/img/system_management/\346\235\203\351\231\220\351\205\215\347\275\256.png" "b/docs/img/system_management/\346\235\203\351\231\220\351\205\215\347\275\256.png" similarity index 100% rename from "v1/img/system_management/\346\235\203\351\231\220\351\205\215\347\275\256.png" rename to "docs/img/system_management/\346\235\203\351\231\220\351\205\215\347\275\256.png" diff --git "a/v1/img/system_management/\346\237\245\347\234\213\346\223\215\344\275\234\346\227\245\345\277\227.png" "b/docs/img/system_management/\346\237\245\347\234\213\346\223\215\344\275\234\346\227\245\345\277\227.png" similarity index 100% rename from "v1/img/system_management/\346\237\245\347\234\213\346\223\215\344\275\234\346\227\245\345\277\227.png" rename to "docs/img/system_management/\346\237\245\347\234\213\346\223\215\344\275\234\346\227\245\345\277\227.png" diff --git "a/v1/img/system_management/\346\237\245\347\234\213\346\266\210\346\201\257\351\223\203\351\223\233.png" "b/docs/img/system_management/\346\237\245\347\234\213\346\266\210\346\201\257\351\223\203\351\223\233.png" similarity index 100% rename from "v1/img/system_management/\346\237\245\347\234\213\346\266\210\346\201\257\351\223\203\351\223\233.png" rename to "docs/img/system_management/\346\237\245\347\234\213\346\266\210\346\201\257\351\223\203\351\223\233.png" diff --git "a/v2/img/system_management/\346\250\241\346\235\277\345\257\274\345\205\245\346\210\220\345\212\237.png" "b/docs/img/system_management/\346\250\241\346\235\277\345\257\274\345\205\245\346\210\220\345\212\237.png" similarity index 100% rename from "v2/img/system_management/\346\250\241\346\235\277\345\257\274\345\205\245\346\210\220\345\212\237.png" rename to "docs/img/system_management/\346\250\241\346\235\277\345\257\274\345\205\245\346\210\220\345\212\237.png" diff --git "a/v2/img/system_management/\346\250\241\346\235\277\347\256\241\347\220\206\347\225\214\351\235\242.png" "b/docs/img/system_management/\346\250\241\346\235\277\347\256\241\347\220\206\347\225\214\351\235\242.png" similarity index 100% rename from "v2/img/system_management/\346\250\241\346\235\277\347\256\241\347\220\206\347\225\214\351\235\242.png" rename to "docs/img/system_management/\346\250\241\346\235\277\347\256\241\347\220\206\347\225\214\351\235\242.png" diff --git "a/v2/img/system_management/\346\267\273\345\212\240\345\234\260\345\233\276\346\226\207\344\273\266.png" "b/docs/img/system_management/\346\267\273\345\212\240\345\234\260\345\233\276\346\226\207\344\273\266.png" similarity index 100% rename from "v2/img/system_management/\346\267\273\345\212\240\345\234\260\345\233\276\346\226\207\344\273\266.png" rename to "docs/img/system_management/\346\267\273\345\212\240\345\234\260\345\233\276\346\226\207\344\273\266.png" diff --git "a/v1/img/system_management/\347\224\250\346\210\267\345\210\227\350\241\250.png" "b/docs/img/system_management/\347\224\250\346\210\267\345\210\227\350\241\250.png" similarity index 100% rename from "v1/img/system_management/\347\224\250\346\210\267\345\210\227\350\241\250.png" rename to "docs/img/system_management/\347\224\250\346\210\267\345\210\227\350\241\250.png" diff --git "a/v2/img/system_management/\347\231\276\345\256\235\347\256\261.png" "b/docs/img/system_management/\347\231\276\345\256\235\347\256\261.png" similarity index 100% rename from "v2/img/system_management/\347\231\276\345\256\235\347\256\261.png" rename to "docs/img/system_management/\347\231\276\345\256\235\347\256\261.png" diff --git "a/v2/img/system_management/\347\231\276\345\256\235\347\256\261\345\205\245\345\217\243.png" "b/docs/img/system_management/\347\231\276\345\256\235\347\256\261\345\205\245\345\217\243.png" similarity index 100% rename from "v2/img/system_management/\347\231\276\345\256\235\347\256\261\345\205\245\345\217\243.png" rename to "docs/img/system_management/\347\231\276\345\256\235\347\256\261\345\205\245\345\217\243.png" diff --git "a/v1/img/system_management/\347\263\273\347\273\237\346\217\220\347\244\272\347\224\250\346\210\267\344\277\256\346\224\271\345\210\235\345\247\213\345\257\206\347\240\201.png" "b/docs/img/system_management/\347\263\273\347\273\237\346\217\220\347\244\272\347\224\250\346\210\267\344\277\256\346\224\271\345\210\235\345\247\213\345\257\206\347\240\201.png" similarity index 100% rename from "v1/img/system_management/\347\263\273\347\273\237\346\217\220\347\244\272\347\224\250\346\210\267\344\277\256\346\224\271\345\210\235\345\247\213\345\257\206\347\240\201.png" rename to "docs/img/system_management/\347\263\273\347\273\237\346\217\220\347\244\272\347\224\250\346\210\267\344\277\256\346\224\271\345\210\235\345\247\213\345\257\206\347\240\201.png" diff --git "a/v2/img/system_management/\347\263\273\347\273\237\347\256\241\347\220\206\347\225\214\351\235\242.png" "b/docs/img/system_management/\347\263\273\347\273\237\347\256\241\347\220\206\347\225\214\351\235\242.png" similarity index 100% rename from "v2/img/system_management/\347\263\273\347\273\237\347\256\241\347\220\206\347\225\214\351\235\242.png" rename to "docs/img/system_management/\347\263\273\347\273\237\347\256\241\347\220\206\347\225\214\351\235\242.png" diff --git "a/v2/img/system_management/\347\263\273\347\273\237\350\256\276\347\275\256.png" "b/docs/img/system_management/\347\263\273\347\273\237\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/system_management/\347\263\273\347\273\237\350\256\276\347\275\256.png" rename to "docs/img/system_management/\347\263\273\347\273\237\350\256\276\347\275\256.png" diff --git "a/v1/img/system_management/\347\273\204\344\273\266\346\240\267\345\274\217_\350\276\271\346\241\206\351\242\234\350\211\262.png" "b/docs/img/system_management/\347\273\204\344\273\266\346\240\267\345\274\217_\350\276\271\346\241\206\351\242\234\350\211\262.png" similarity index 100% rename from "v1/img/system_management/\347\273\204\344\273\266\346\240\267\345\274\217_\350\276\271\346\241\206\351\242\234\350\211\262.png" rename to "docs/img/system_management/\347\273\204\344\273\266\346\240\267\345\274\217_\350\276\271\346\241\206\351\242\234\350\211\262.png" diff --git "a/v1/img/system_management/\347\273\204\347\273\207\345\210\227\350\241\250.png" "b/docs/img/system_management/\347\273\204\347\273\207\345\210\227\350\241\250.png" similarity index 100% rename from "v1/img/system_management/\347\273\204\347\273\207\345\210\227\350\241\250.png" rename to "docs/img/system_management/\347\273\204\347\273\207\345\210\227\350\241\250.png" diff --git "a/v1/img/system_management/\347\274\226\350\276\221\346\250\241\346\235\277.png" "b/docs/img/system_management/\347\274\226\350\276\221\346\250\241\346\235\277.png" similarity index 100% rename from "v1/img/system_management/\347\274\226\350\276\221\346\250\241\346\235\277.png" rename to "docs/img/system_management/\347\274\226\350\276\221\346\250\241\346\235\277.png" diff --git "a/v1/img/system_management/\347\274\226\350\276\221\347\224\250\346\210\267.png" "b/docs/img/system_management/\347\274\226\350\276\221\347\224\250\346\210\267.png" similarity index 100% rename from "v1/img/system_management/\347\274\226\350\276\221\347\224\250\346\210\267.png" rename to "docs/img/system_management/\347\274\226\350\276\221\347\224\250\346\210\267.png" diff --git "a/v1/img/system_management/\347\274\226\350\276\221\347\273\204\347\273\207.png" "b/docs/img/system_management/\347\274\226\350\276\221\347\273\204\347\273\207.png" similarity index 100% rename from "v1/img/system_management/\347\274\226\350\276\221\347\273\204\347\273\207.png" rename to "docs/img/system_management/\347\274\226\350\276\221\347\273\204\347\273\207.png" diff --git "a/v1/img/system_management/\347\274\226\350\276\221\350\247\222\350\211\262.png" "b/docs/img/system_management/\347\274\226\350\276\221\350\247\222\350\211\262.png" similarity index 100% rename from "v1/img/system_management/\347\274\226\350\276\221\350\247\222\350\211\262.png" rename to "docs/img/system_management/\347\274\226\350\276\221\350\247\222\350\211\262.png" diff --git "a/v1/img/system_management/\350\241\200\347\274\230\345\205\263\347\263\273_\345\210\240\351\231\2441.png" "b/docs/img/system_management/\350\241\200\347\274\230\345\205\263\347\263\273_\345\210\240\351\231\2441.png" similarity index 100% rename from "v1/img/system_management/\350\241\200\347\274\230\345\205\263\347\263\273_\345\210\240\351\231\2441.png" rename to "docs/img/system_management/\350\241\200\347\274\230\345\205\263\347\263\273_\345\210\240\351\231\2441.png" diff --git "a/v1/img/system_management/\350\241\200\347\274\230\345\205\263\347\263\273_\345\210\240\351\231\2442.png" "b/docs/img/system_management/\350\241\200\347\274\230\345\205\263\347\263\273_\345\210\240\351\231\2442.png" similarity index 100% rename from "v1/img/system_management/\350\241\200\347\274\230\345\205\263\347\263\273_\345\210\240\351\231\2442.png" rename to "docs/img/system_management/\350\241\200\347\274\230\345\205\263\347\263\273_\345\210\240\351\231\2442.png" diff --git "a/v1/img/system_management/\350\241\200\347\274\230\345\210\206\346\236\220_\345\205\263\347\263\273\345\233\276\345\261\225\347\244\272.png" "b/docs/img/system_management/\350\241\200\347\274\230\345\210\206\346\236\220_\345\205\263\347\263\273\345\233\276\345\261\225\347\244\272.png" similarity index 100% rename from "v1/img/system_management/\350\241\200\347\274\230\345\210\206\346\236\220_\345\205\263\347\263\273\345\233\276\345\261\225\347\244\272.png" rename to "docs/img/system_management/\350\241\200\347\274\230\345\210\206\346\236\220_\345\205\263\347\263\273\345\233\276\345\261\225\347\244\272.png" diff --git "a/v1/img/system_management/\350\241\200\347\274\230\345\210\206\346\236\220_\350\241\250\346\240\274\345\261\225\347\244\272.png" "b/docs/img/system_management/\350\241\200\347\274\230\345\210\206\346\236\220_\350\241\250\346\240\274\345\261\225\347\244\272.png" similarity index 100% rename from "v1/img/system_management/\350\241\200\347\274\230\345\210\206\346\236\220_\350\241\250\346\240\274\345\261\225\347\244\272.png" rename to "docs/img/system_management/\350\241\200\347\274\230\345\210\206\346\236\220_\350\241\250\346\240\274\345\261\225\347\244\272.png" diff --git "a/v1/img/system_management/\350\247\222\350\211\262\345\210\227\350\241\250.png" "b/docs/img/system_management/\350\247\222\350\211\262\345\210\227\350\241\250.png" similarity index 100% rename from "v1/img/system_management/\350\247\222\350\211\262\345\210\227\350\241\250.png" rename to "docs/img/system_management/\350\247\222\350\211\262\345\210\227\350\241\250.png" diff --git "a/v1/img/system_management/\350\247\222\350\211\262\346\216\210\346\235\203.png" "b/docs/img/system_management/\350\247\222\350\211\262\346\216\210\346\235\203.png" similarity index 100% rename from "v1/img/system_management/\350\247\222\350\211\262\346\216\210\346\235\203.png" rename to "docs/img/system_management/\350\247\222\350\211\262\346\216\210\346\235\203.png" diff --git "a/v1/img/system_management/\350\260\203\346\225\264\350\266\205\346\227\266\346\227\266\351\227\264.png" "b/docs/img/system_management/\350\260\203\346\225\264\350\266\205\346\227\266\346\227\266\351\227\264.png" similarity index 100% rename from "v1/img/system_management/\350\260\203\346\225\264\350\266\205\346\227\266\346\227\266\351\227\264.png" rename to "docs/img/system_management/\350\260\203\346\225\264\350\266\205\346\227\266\346\227\266\351\227\264.png" diff --git "a/v1/img/system_management/\350\266\205\346\227\266\346\227\266\351\227\264.png" "b/docs/img/system_management/\350\266\205\346\227\266\346\227\266\351\227\264.png" similarity index 100% rename from "v1/img/system_management/\350\266\205\346\227\266\346\227\266\351\227\264.png" rename to "docs/img/system_management/\350\266\205\346\227\266\346\227\266\351\227\264.png" diff --git "a/v1/img/system_management/\350\277\220\350\241\214\344\270\200\346\254\241.png" "b/docs/img/system_management/\350\277\220\350\241\214\344\270\200\346\254\241.png" similarity index 100% rename from "v1/img/system_management/\350\277\220\350\241\214\344\270\200\346\254\241.png" rename to "docs/img/system_management/\350\277\220\350\241\214\344\270\200\346\254\241.png" diff --git "a/v2/img/system_management/\351\202\256\344\273\266\350\256\276\347\275\256.png" "b/docs/img/system_management/\351\202\256\344\273\266\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/system_management/\351\202\256\344\273\266\350\256\276\347\275\256.png" rename to "docs/img/system_management/\351\202\256\344\273\266\350\256\276\347\275\256.png" diff --git "a/v2/img/system_management/\351\205\215\347\275\256KEY.png" "b/docs/img/system_management/\351\205\215\347\275\256KEY.png" similarity index 100% rename from "v2/img/system_management/\351\205\215\347\275\256KEY.png" rename to "docs/img/system_management/\351\205\215\347\275\256KEY.png" diff --git "a/v1/img/system_management/\351\207\215\347\275\256\345\257\206\347\240\201.png" "b/docs/img/system_management/\351\207\215\347\275\256\345\257\206\347\240\201.png" similarity index 100% rename from "v1/img/system_management/\351\207\215\347\275\256\345\257\206\347\240\201.png" rename to "docs/img/system_management/\351\207\215\347\275\256\345\257\206\347\240\201.png" diff --git "a/v1/img/system_management/\351\230\262\346\232\264\345\212\233\347\231\273\345\275\225\350\256\276\347\275\256.png" "b/docs/img/system_management/\351\230\262\346\232\264\345\212\233\347\231\273\345\275\225\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/system_management/\351\230\262\346\232\264\345\212\233\347\231\273\345\275\225\350\256\276\347\275\256.png" rename to "docs/img/system_management/\351\230\262\346\232\264\345\212\233\347\231\273\345\275\225\350\256\276\347\275\256.png" diff --git "a/v1/img/system_management/\351\253\230\345\276\267\345\210\233\345\273\272\345\272\224\347\224\250.png" "b/docs/img/system_management/\351\253\230\345\276\267\345\210\233\345\273\272\345\272\224\347\224\250.png" similarity index 100% rename from "v1/img/system_management/\351\253\230\345\276\267\345\210\233\345\273\272\345\272\224\347\224\250.png" rename to "docs/img/system_management/\351\253\230\345\276\267\345\210\233\345\273\272\345\272\224\347\224\250.png" diff --git "a/v1/img/system_management/\351\253\230\345\276\267\345\234\260\345\233\276\346\214\207\345\215\227.PNG" "b/docs/img/system_management/\351\253\230\345\276\267\345\234\260\345\233\276\346\214\207\345\215\227.PNG" similarity index 100% rename from "v1/img/system_management/\351\253\230\345\276\267\345\234\260\345\233\276\346\214\207\345\215\227.PNG" rename to "docs/img/system_management/\351\253\230\345\276\267\345\234\260\345\233\276\346\214\207\345\215\227.PNG" diff --git "a/v1/img/system_management/\351\253\230\345\276\267\345\271\263\345\217\260.PNG" "b/docs/img/system_management/\351\253\230\345\276\267\345\271\263\345\217\260.PNG" similarity index 100% rename from "v1/img/system_management/\351\253\230\345\276\267\345\271\263\345\217\260.PNG" rename to "docs/img/system_management/\351\253\230\345\276\267\345\271\263\345\217\260.PNG" diff --git "a/v1/img/system_management/\351\253\230\345\276\267\345\274\200\345\217\221\346\214\207\345\215\227.PNG" "b/docs/img/system_management/\351\253\230\345\276\267\345\274\200\345\217\221\346\214\207\345\215\227.PNG" similarity index 100% rename from "v1/img/system_management/\351\253\230\345\276\267\345\274\200\345\217\221\346\214\207\345\215\227.PNG" rename to "docs/img/system_management/\351\253\230\345\276\267\345\274\200\345\217\221\346\214\207\345\215\227.PNG" diff --git "a/v1/img/system_management/\351\253\230\345\276\267\346\226\207\346\241\243\346\224\257\346\214\201.PNG" "b/docs/img/system_management/\351\253\230\345\276\267\346\226\207\346\241\243\346\224\257\346\214\201.PNG" similarity index 100% rename from "v1/img/system_management/\351\253\230\345\276\267\346\226\207\346\241\243\346\224\257\346\214\201.PNG" rename to "docs/img/system_management/\351\253\230\345\276\267\346\226\207\346\241\243\346\224\257\346\214\201.PNG" diff --git "a/v1/img/system_management/\351\253\230\345\276\267\346\267\273\345\212\240KEY.png" "b/docs/img/system_management/\351\253\230\345\276\267\346\267\273\345\212\240KEY.png" similarity index 100% rename from "v1/img/system_management/\351\253\230\345\276\267\346\267\273\345\212\240KEY.png" rename to "docs/img/system_management/\351\253\230\345\276\267\346\267\273\345\212\240KEY.png" diff --git "a/v1/img/system_management/\351\253\230\345\276\267\351\252\214\350\257\201\346\210\220\345\212\237.PNG" "b/docs/img/system_management/\351\253\230\345\276\267\351\252\214\350\257\201\346\210\220\345\212\237.PNG" similarity index 100% rename from "v1/img/system_management/\351\253\230\345\276\267\351\252\214\350\257\201\346\210\220\345\212\237.PNG" rename to "docs/img/system_management/\351\253\230\345\276\267\351\252\214\350\257\201\346\210\220\345\212\237.PNG" diff --git a/v2/img/template_market/img.png b/docs/img/template_market/img.png similarity index 100% rename from v2/img/template_market/img.png rename to docs/img/template_market/img.png diff --git "a/v2/img/template_market/\344\270\273\351\242\230\345\210\207\346\215\242.gif" "b/docs/img/template_market/\344\270\273\351\242\230\345\210\207\346\215\242.gif" similarity index 100% rename from "v2/img/template_market/\344\270\273\351\242\230\345\210\207\346\215\242.gif" rename to "docs/img/template_market/\344\270\273\351\242\230\345\210\207\346\215\242.gif" diff --git "a/v1/img/template_market/\344\273\252\350\241\250\346\235\277\345\270\202\345\234\272_\346\240\267\345\274\217\350\260\203\346\225\264.png" "b/docs/img/template_market/\344\273\252\350\241\250\346\235\277\345\270\202\345\234\272_\346\240\267\345\274\217\350\260\203\346\225\264.png" similarity index 100% rename from "v1/img/template_market/\344\273\252\350\241\250\346\235\277\345\270\202\345\234\272_\346\240\267\345\274\217\350\260\203\346\225\264.png" rename to "docs/img/template_market/\344\273\252\350\241\250\346\235\277\345\270\202\345\234\272_\346\240\267\345\274\217\350\260\203\346\225\264.png" diff --git "a/v2/img/template_market/\345\272\224\347\224\250\346\250\241\346\235\277.png" "b/docs/img/template_market/\345\272\224\347\224\250\346\250\241\346\235\277.png" similarity index 100% rename from "v2/img/template_market/\345\272\224\347\224\250\346\250\241\346\235\277.png" rename to "docs/img/template_market/\345\272\224\347\224\250\346\250\241\346\235\277.png" diff --git "a/v2/img/template_market/\346\233\277\346\215\242\346\225\260\346\215\256\351\233\206.png" "b/docs/img/template_market/\346\233\277\346\215\242\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v2/img/template_market/\346\233\277\346\215\242\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/template_market/\346\233\277\346\215\242\346\225\260\346\215\256\351\233\206.png" diff --git "a/v2/img/template_market/\346\240\267\345\274\217\350\260\203\346\225\264.png" "b/docs/img/template_market/\346\240\267\345\274\217\350\260\203\346\225\264.png" similarity index 100% rename from "v2/img/template_market/\346\240\267\345\274\217\350\260\203\346\225\264.png" rename to "docs/img/template_market/\346\240\267\345\274\217\350\260\203\346\225\264.png" diff --git "a/v2/img/template_market/\346\250\241\346\235\277\344\270\213\350\275\275.png" "b/docs/img/template_market/\346\250\241\346\235\277\344\270\213\350\275\275.png" similarity index 100% rename from "v2/img/template_market/\346\250\241\346\235\277\344\270\213\350\275\275.png" rename to "docs/img/template_market/\346\250\241\346\235\277\344\270\213\350\275\275.png" diff --git "a/v2/img/template_market/\346\250\241\346\235\277\345\206\205\345\256\271.png" "b/docs/img/template_market/\346\250\241\346\235\277\345\206\205\345\256\271.png" similarity index 100% rename from "v2/img/template_market/\346\250\241\346\235\277\345\206\205\345\256\271.png" rename to "docs/img/template_market/\346\250\241\346\235\277\345\206\205\345\256\271.png" diff --git "a/v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272.png" "b/docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272.png" similarity index 100% rename from "v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272.png" rename to "docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272.png" diff --git "a/v2/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\2722.png" "b/docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\2722.png" similarity index 100% rename from "v2/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\2722.png" rename to "docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\2722.png" diff --git "a/v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\344\270\212\344\274\240\346\250\241\346\235\277.png" "b/docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\344\270\212\344\274\240\346\250\241\346\235\277.png" similarity index 100% rename from "v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\344\270\212\344\274\240\346\250\241\346\235\277.png" rename to "docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\344\270\212\344\274\240\346\250\241\346\235\277.png" diff --git "a/v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\344\270\213\350\275\275.png" "b/docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\344\270\213\350\275\275.png" similarity index 100% rename from "v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\344\270\213\350\275\275.png" rename to "docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\344\270\213\350\275\275.png" diff --git "a/v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\344\270\213\350\275\275\345\272\224\347\224\250.png" "b/docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\344\270\213\350\275\275\345\272\224\347\224\250.png" similarity index 100% rename from "v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\344\270\213\350\275\275\345\272\224\347\224\250.png" rename to "docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\344\270\213\350\275\275\345\272\224\347\224\250.png" diff --git "a/v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\344\270\273\351\241\265.png" "b/docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\344\270\273\351\241\265.png" similarity index 100% rename from "v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\344\270\273\351\241\265.png" rename to "docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\344\270\273\351\241\265.png" diff --git "a/v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\345\210\206\347\261\273\350\247\206\350\247\222.png" "b/docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\345\210\206\347\261\273\350\247\206\350\247\222.png" similarity index 100% rename from "v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\345\210\206\347\261\273\350\247\206\350\247\222.png" rename to "docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\345\210\206\347\261\273\350\247\206\350\247\222.png" diff --git "a/v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\345\244\215\347\224\250\346\250\241\346\235\277.png" "b/docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\345\244\215\347\224\250\346\250\241\346\235\277.png" similarity index 100% rename from "v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\345\244\215\347\224\250\346\250\241\346\235\277.png" rename to "docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\345\244\215\347\224\250\346\250\241\346\235\277.png" diff --git "a/v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\345\257\274\345\205\245.png" "b/docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\345\257\274\345\205\245.png" similarity index 100% rename from "v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\345\257\274\345\205\245.png" rename to "docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\345\257\274\345\205\245.png" diff --git "a/v2/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\345\272\224\347\224\2502.png" "b/docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\345\272\224\347\224\2502.png" similarity index 100% rename from "v2/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\345\272\224\347\224\2502.png" rename to "docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\345\272\224\347\224\2502.png" diff --git "a/v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\345\277\253\351\200\237\346\243\200\347\264\242.png" "b/docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\345\277\253\351\200\237\346\243\200\347\264\242.png" similarity index 100% rename from "v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\345\277\253\351\200\237\346\243\200\347\264\242.png" rename to "docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\345\277\253\351\200\237\346\243\200\347\264\242.png" diff --git "a/v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277.png" "b/docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277.png" similarity index 100% rename from "v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277.png" rename to "docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\346\226\260\345\273\272\344\273\252\350\241\250\346\235\277.png" diff --git "a/v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\346\233\277\346\215\242\346\225\260\346\215\256.png" "b/docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\346\233\277\346\215\242\346\225\260\346\215\256.png" similarity index 100% rename from "v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\346\233\277\346\215\242\346\225\260\346\215\256.png" rename to "docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\346\233\277\346\215\242\346\225\260\346\215\256.png" diff --git "a/v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\346\233\277\346\215\242\346\225\260\346\215\256\351\233\206.png" "b/docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\346\233\277\346\215\242\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\346\233\277\346\215\242\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\346\233\277\346\215\242\346\225\260\346\215\256\351\233\206.png" diff --git "a/v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\347\263\273\347\273\237\346\250\241\346\235\277.png" "b/docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\347\263\273\347\273\237\346\250\241\346\235\277.png" similarity index 100% rename from "v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\347\263\273\347\273\237\346\250\241\346\235\277.png" rename to "docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\347\263\273\347\273\237\346\250\241\346\235\277.png" diff --git "a/v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\351\242\204\350\247\210.png" "b/docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\351\242\204\350\247\210.png" similarity index 100% rename from "v1/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\351\242\204\350\247\210.png" rename to "docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272_\351\242\204\350\247\210.png" diff --git "a/v2/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272\345\205\245\345\217\243.png" "b/docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272\345\205\245\345\217\243.png" similarity index 100% rename from "v2/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272\345\205\245\345\217\243.png" rename to "docs/img/template_market/\346\250\241\346\235\277\345\270\202\345\234\272\345\205\245\345\217\243.png" diff --git "a/v2/img/template_market/\346\250\241\346\235\277\346\233\277\346\215\242\346\225\260\346\215\256\351\233\206.png" "b/docs/img/template_market/\346\250\241\346\235\277\346\233\277\346\215\242\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v2/img/template_market/\346\250\241\346\235\277\346\233\277\346\215\242\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/template_market/\346\250\241\346\235\277\346\233\277\346\215\242\346\225\260\346\215\256\351\233\206.png" diff --git "a/v2/img/template_market/\346\250\241\346\235\277\347\261\273\345\236\213\345\210\207\346\215\242.gif" "b/docs/img/template_market/\346\250\241\346\235\277\347\261\273\345\236\213\345\210\207\346\215\242.gif" similarity index 100% rename from "v2/img/template_market/\346\250\241\346\235\277\347\261\273\345\236\213\345\210\207\346\215\242.gif" rename to "docs/img/template_market/\346\250\241\346\235\277\347\261\273\345\236\213\345\210\207\346\215\242.gif" diff --git "a/v2/img/template_market/\346\250\241\346\235\277\347\261\273\345\236\213\351\200\211\346\213\251.gif" "b/docs/img/template_market/\346\250\241\346\235\277\347\261\273\345\236\213\351\200\211\346\213\251.gif" similarity index 100% rename from "v2/img/template_market/\346\250\241\346\235\277\347\261\273\345\236\213\351\200\211\346\213\251.gif" rename to "docs/img/template_market/\346\250\241\346\235\277\347\261\273\345\236\213\351\200\211\346\213\251.gif" diff --git "a/v2/img/template_market/\347\202\271\345\207\273\345\272\224\347\224\250\346\250\241\346\235\277.png" "b/docs/img/template_market/\347\202\271\345\207\273\345\272\224\347\224\250\346\250\241\346\235\277.png" similarity index 100% rename from "v2/img/template_market/\347\202\271\345\207\273\345\272\224\347\224\250\346\250\241\346\235\277.png" rename to "docs/img/template_market/\347\202\271\345\207\273\345\272\224\347\224\250\346\250\241\346\235\277.png" diff --git "a/v2/img/template_market/\347\202\271\345\207\273\345\272\224\347\224\250\346\250\241\346\235\2772.png" "b/docs/img/template_market/\347\202\271\345\207\273\345\272\224\347\224\250\346\250\241\346\235\2772.png" similarity index 100% rename from "v2/img/template_market/\347\202\271\345\207\273\345\272\224\347\224\250\346\250\241\346\235\2772.png" rename to "docs/img/template_market/\347\202\271\345\207\273\345\272\224\347\224\250\346\250\241\346\235\2772.png" diff --git "a/v2/img/template_market/\347\211\210\346\234\254\345\210\207\346\215\242.gif" "b/docs/img/template_market/\347\211\210\346\234\254\345\210\207\346\215\242.gif" similarity index 100% rename from "v2/img/template_market/\347\211\210\346\234\254\345\210\207\346\215\242.gif" rename to "docs/img/template_market/\347\211\210\346\234\254\345\210\207\346\215\242.gif" diff --git "a/v2/img/template_market/\347\272\277\344\270\212\346\250\241\346\235\277\345\270\202\345\234\272.png" "b/docs/img/template_market/\347\272\277\344\270\212\346\250\241\346\235\277\345\270\202\345\234\272.png" similarity index 100% rename from "v2/img/template_market/\347\272\277\344\270\212\346\250\241\346\235\277\345\270\202\345\234\272.png" rename to "docs/img/template_market/\347\272\277\344\270\212\346\250\241\346\235\277\345\270\202\345\234\272.png" diff --git "a/v2/img/video/1-1 \350\257\276\347\250\213\347\256\200\344\273\213.png" "b/docs/img/video/1-1 \350\257\276\347\250\213\347\256\200\344\273\213.png" similarity index 100% rename from "v2/img/video/1-1 \350\257\276\347\250\213\347\256\200\344\273\213.png" rename to "docs/img/video/1-1 \350\257\276\347\250\213\347\256\200\344\273\213.png" diff --git "a/v2/img/video/1.1 \350\257\276\347\250\213\347\256\200\344\273\213.png" "b/docs/img/video/1.1 \350\257\276\347\250\213\347\256\200\344\273\213.png" similarity index 100% rename from "v2/img/video/1.1 \350\257\276\347\250\213\347\256\200\344\273\213.png" rename to "docs/img/video/1.1 \350\257\276\347\250\213\347\256\200\344\273\213.png" diff --git "a/v2/img/video/2-1 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\346\216\245\345\205\245.png" "b/docs/img/video/2-1 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\346\216\245\345\205\245.png" similarity index 100% rename from "v2/img/video/2-1 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\346\216\245\345\205\245.png" rename to "docs/img/video/2-1 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\346\216\245\345\205\245.png" diff --git "a/v2/img/video/2-2 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\347\273\204\345\220\210.png" "b/docs/img/video/2-2 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\347\273\204\345\220\210.png" similarity index 100% rename from "v2/img/video/2-2 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\347\273\204\345\220\210.png" rename to "docs/img/video/2-2 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\347\273\204\345\220\210.png" diff --git "a/v2/img/video/2-3 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\345\212\240\345\267\245.png" "b/docs/img/video/2-3 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\345\212\240\345\267\245.png" similarity index 100% rename from "v2/img/video/2-3 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\345\212\240\345\267\245.png" rename to "docs/img/video/2-3 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\345\212\240\345\267\245.png" diff --git "a/v2/img/video/2.1 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\346\216\245\345\205\245.png" "b/docs/img/video/2.1 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\346\216\245\345\205\245.png" similarity index 100% rename from "v2/img/video/2.1 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\346\216\245\345\205\245.png" rename to "docs/img/video/2.1 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\346\216\245\345\205\245.png" diff --git "a/v2/img/video/2.2 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\347\273\204\345\220\210.png" "b/docs/img/video/2.2 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\347\273\204\345\220\210.png" similarity index 100% rename from "v2/img/video/2.2 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\347\273\204\345\220\210.png" rename to "docs/img/video/2.2 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\347\273\204\345\220\210.png" diff --git "a/v2/img/video/2.3 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\345\212\240\345\267\245.png" "b/docs/img/video/2.3 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\345\212\240\345\267\245.png" similarity index 100% rename from "v2/img/video/2.3 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\345\212\240\345\267\245.png" rename to "docs/img/video/2.3 \346\225\260\346\215\256\345\207\206\345\244\207-\346\225\260\346\215\256\345\212\240\345\267\245.png" diff --git "a/v2/img/video/3-1 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\344\273\252\350\241\250\346\235\277\345\237\272\347\241\200\344\273\213\347\273\215.png" "b/docs/img/video/3-1 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\344\273\252\350\241\250\346\235\277\345\237\272\347\241\200\344\273\213\347\273\215.png" similarity index 100% rename from "v2/img/video/3-1 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\344\273\252\350\241\250\346\235\277\345\237\272\347\241\200\344\273\213\347\273\215.png" rename to "docs/img/video/3-1 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\344\273\252\350\241\250\346\235\277\345\237\272\347\241\200\344\273\213\347\273\215.png" diff --git "a/v2/img/video/3-2 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\233\276\350\241\250\346\240\267\345\274\217\345\217\212\351\253\230\347\272\247\351\205\215\347\275\256.png" "b/docs/img/video/3-2 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\233\276\350\241\250\346\240\267\345\274\217\345\217\212\351\253\230\347\272\247\351\205\215\347\275\256.png" similarity index 100% rename from "v2/img/video/3-2 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\233\276\350\241\250\346\240\267\345\274\217\345\217\212\351\253\230\347\272\247\351\205\215\347\275\256.png" rename to "docs/img/video/3-2 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\233\276\350\241\250\346\240\267\345\274\217\345\217\212\351\253\230\347\272\247\351\205\215\347\275\256.png" diff --git "a/v2/img/video/3-3 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\233\276\350\241\250\344\272\244\344\272\222\351\205\215\347\275\256.png" "b/docs/img/video/3-3 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\233\276\350\241\250\344\272\244\344\272\222\351\205\215\347\275\256.png" similarity index 100% rename from "v2/img/video/3-3 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\233\276\350\241\250\344\272\244\344\272\222\351\205\215\347\275\256.png" rename to "docs/img/video/3-3 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\233\276\350\241\250\344\272\244\344\272\222\351\205\215\347\275\256.png" diff --git "a/v2/img/video/3-4 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\205\266\344\273\226\347\273\204\344\273\266\344\273\213\347\273\215.png" "b/docs/img/video/3-4 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\205\266\344\273\226\347\273\204\344\273\266\344\273\213\347\273\215.png" similarity index 100% rename from "v2/img/video/3-4 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\205\266\344\273\226\347\273\204\344\273\266\344\273\213\347\273\215.png" rename to "docs/img/video/3-4 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\205\266\344\273\226\347\273\204\344\273\266\344\273\213\347\273\215.png" diff --git "a/v2/img/video/3-5 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\346\223\215\344\275\234\345\256\236\350\267\265.png" "b/docs/img/video/3-5 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\346\223\215\344\275\234\345\256\236\350\267\265.png" similarity index 100% rename from "v2/img/video/3-5 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\346\223\215\344\275\234\345\256\236\350\267\265.png" rename to "docs/img/video/3-5 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\346\223\215\344\275\234\345\256\236\350\267\265.png" diff --git "a/v2/img/video/3-6 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\270\203\345\261\200\347\276\216\345\214\226\345\217\212\345\210\206\344\272\253.png" "b/docs/img/video/3-6 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\270\203\345\261\200\347\276\216\345\214\226\345\217\212\345\210\206\344\272\253.png" similarity index 100% rename from "v2/img/video/3-6 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\270\203\345\261\200\347\276\216\345\214\226\345\217\212\345\210\206\344\272\253.png" rename to "docs/img/video/3-6 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\270\203\345\261\200\347\276\216\345\214\226\345\217\212\345\210\206\344\272\253.png" diff --git "a/v2/img/video/3-7 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\347\247\273\345\212\250\347\253\257\351\205\215\347\275\256.png" "b/docs/img/video/3-7 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\347\247\273\345\212\250\347\253\257\351\205\215\347\275\256.png" similarity index 100% rename from "v2/img/video/3-7 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\347\247\273\345\212\250\347\253\257\351\205\215\347\275\256.png" rename to "docs/img/video/3-7 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\347\247\273\345\212\250\347\253\257\351\205\215\347\275\256.png" diff --git "a/v2/img/video/3-8 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\346\225\260\346\215\256\345\244\247\345\261\217\345\210\266\344\275\234.png" "b/docs/img/video/3-8 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\346\225\260\346\215\256\345\244\247\345\261\217\345\210\266\344\275\234.png" similarity index 100% rename from "v2/img/video/3-8 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\346\225\260\346\215\256\345\244\247\345\261\217\345\210\266\344\275\234.png" rename to "docs/img/video/3-8 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\346\225\260\346\215\256\345\244\247\345\261\217\345\210\266\344\275\234.png" diff --git "a/v2/img/video/3.1 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\344\273\252\350\241\250\346\235\277\345\237\272\347\241\200\344\273\213\347\273\215.png" "b/docs/img/video/3.1 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\344\273\252\350\241\250\346\235\277\345\237\272\347\241\200\344\273\213\347\273\215.png" similarity index 100% rename from "v2/img/video/3.1 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\344\273\252\350\241\250\346\235\277\345\237\272\347\241\200\344\273\213\347\273\215.png" rename to "docs/img/video/3.1 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\344\273\252\350\241\250\346\235\277\345\237\272\347\241\200\344\273\213\347\273\215.png" diff --git "a/v2/img/video/3.2 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\233\276\350\241\250\346\240\267\345\274\217\345\217\212\351\253\230\347\272\247\351\205\215\347\275\256.png" "b/docs/img/video/3.2 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\233\276\350\241\250\346\240\267\345\274\217\345\217\212\351\253\230\347\272\247\351\205\215\347\275\256.png" similarity index 100% rename from "v2/img/video/3.2 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\233\276\350\241\250\346\240\267\345\274\217\345\217\212\351\253\230\347\272\247\351\205\215\347\275\256.png" rename to "docs/img/video/3.2 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\233\276\350\241\250\346\240\267\345\274\217\345\217\212\351\253\230\347\272\247\351\205\215\347\275\256.png" diff --git "a/v2/img/video/3.3 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\233\276\350\241\250\344\272\244\344\272\222\351\205\215\347\275\256.png" "b/docs/img/video/3.3 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\233\276\350\241\250\344\272\244\344\272\222\351\205\215\347\275\256.png" similarity index 100% rename from "v2/img/video/3.3 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\233\276\350\241\250\344\272\244\344\272\222\351\205\215\347\275\256.png" rename to "docs/img/video/3.3 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\233\276\350\241\250\344\272\244\344\272\222\351\205\215\347\275\256.png" diff --git "a/v2/img/video/3.4 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\205\266\344\273\226\347\273\204\344\273\266\344\273\213\347\273\215.png" "b/docs/img/video/3.4 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\205\266\344\273\226\347\273\204\344\273\266\344\273\213\347\273\215.png" similarity index 100% rename from "v2/img/video/3.4 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\205\266\344\273\226\347\273\204\344\273\266\344\273\213\347\273\215.png" rename to "docs/img/video/3.4 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\205\266\344\273\226\347\273\204\344\273\266\344\273\213\347\273\215.png" diff --git "a/v2/img/video/3.5 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\346\223\215\344\275\234\345\256\236\350\267\265.png" "b/docs/img/video/3.5 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\346\223\215\344\275\234\345\256\236\350\267\265.png" similarity index 100% rename from "v2/img/video/3.5 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\346\223\215\344\275\234\345\256\236\350\267\265.png" rename to "docs/img/video/3.5 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\346\223\215\344\275\234\345\256\236\350\267\265.png" diff --git "a/v2/img/video/3.6 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\270\203\345\261\200\347\276\216\345\214\226\345\217\212\345\210\206\344\272\253.png" "b/docs/img/video/3.6 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\270\203\345\261\200\347\276\216\345\214\226\345\217\212\345\210\206\344\272\253.png" similarity index 100% rename from "v2/img/video/3.6 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\270\203\345\261\200\347\276\216\345\214\226\345\217\212\345\210\206\344\272\253.png" rename to "docs/img/video/3.6 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\345\270\203\345\261\200\347\276\216\345\214\226\345\217\212\345\210\206\344\272\253.png" diff --git "a/v2/img/video/3.7 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\346\225\260\346\215\256\345\244\247\345\261\217\345\210\266\344\275\234.png" "b/docs/img/video/3.7 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\346\225\260\346\215\256\345\244\247\345\261\217\345\210\266\344\275\234.png" similarity index 100% rename from "v2/img/video/3.7 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\346\225\260\346\215\256\345\244\247\345\261\217\345\210\266\344\275\234.png" rename to "docs/img/video/3.7 \345\217\257\350\247\206\345\214\226\345\210\206\346\236\220-\346\225\260\346\215\256\345\244\247\345\261\217\345\210\266\344\275\234.png" diff --git "a/v2/img/video/4.1 \345\267\245\344\275\234\345\217\260\345\217\212\346\250\241\346\235\277\345\270\202\345\234\272\344\273\213\347\273\215.png" "b/docs/img/video/4.1 \345\267\245\344\275\234\345\217\260\345\217\212\346\250\241\346\235\277\345\270\202\345\234\272\344\273\213\347\273\215.png" similarity index 100% rename from "v2/img/video/4.1 \345\267\245\344\275\234\345\217\260\345\217\212\346\250\241\346\235\277\345\270\202\345\234\272\344\273\213\347\273\215.png" rename to "docs/img/video/4.1 \345\267\245\344\275\234\345\217\260\345\217\212\346\250\241\346\235\277\345\270\202\345\234\272\344\273\213\347\273\215.png" diff --git "a/v1/img/video/Excel\346\225\260\346\215\256\351\233\206\345\222\214api\346\225\260\346\215\256\351\233\206.png" "b/docs/img/video/Excel\346\225\260\346\215\256\351\233\206\345\222\214api\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v1/img/video/Excel\346\225\260\346\215\256\351\233\206\345\222\214api\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/video/Excel\346\225\260\346\215\256\351\233\206\345\222\214api\346\225\260\346\215\256\351\233\206.png" diff --git "a/v1/img/video/\345\205\266\344\273\226\347\273\204\344\273\266.png" "b/docs/img/video/\345\205\266\344\273\226\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/video/\345\205\266\344\273\226\347\273\204\344\273\266.png" rename to "docs/img/video/\345\205\266\344\273\226\347\273\204\344\273\266.png" diff --git "a/v1/img/video/\345\210\206\344\272\253\345\222\214\345\257\274\345\207\272.png" "b/docs/img/video/\345\210\206\344\272\253\345\222\214\345\257\274\345\207\272.png" similarity index 100% rename from "v1/img/video/\345\210\206\344\272\253\345\222\214\345\257\274\345\207\272.png" rename to "docs/img/video/\345\210\206\344\272\253\345\222\214\345\257\274\345\207\272.png" diff --git "a/v1/img/video/\345\270\203\345\261\200\347\276\216\345\214\226.png" "b/docs/img/video/\345\270\203\345\261\200\347\276\216\345\214\226.png" similarity index 100% rename from "v1/img/video/\345\270\203\345\261\200\347\276\216\345\214\226.png" rename to "docs/img/video/\345\270\203\345\261\200\347\276\216\345\214\226.png" diff --git "a/v1/img/video/\346\225\260\346\215\256\345\212\240\345\267\245.png" "b/docs/img/video/\346\225\260\346\215\256\345\212\240\345\267\245.png" similarity index 100% rename from "v1/img/video/\346\225\260\346\215\256\345\212\240\345\267\245.png" rename to "docs/img/video/\346\225\260\346\215\256\345\212\240\345\267\245.png" diff --git "a/v1/img/video/\346\225\260\346\215\256\351\233\206\346\225\264\345\220\210.png" "b/docs/img/video/\346\225\260\346\215\256\351\233\206\346\225\264\345\220\210.png" similarity index 100% rename from "v1/img/video/\346\225\260\346\215\256\351\233\206\346\225\264\345\220\210.png" rename to "docs/img/video/\346\225\260\346\215\256\351\233\206\346\225\264\345\220\210.png" diff --git "a/v1/img/video/\346\226\260\345\273\272\350\247\206\345\233\276.png" "b/docs/img/video/\346\226\260\345\273\272\350\247\206\345\233\276.png" similarity index 100% rename from "v1/img/video/\346\226\260\345\273\272\350\247\206\345\233\276.png" rename to "docs/img/video/\346\226\260\345\273\272\350\247\206\345\233\276.png" diff --git "a/v1/img/video/\347\247\273\345\212\250\347\253\257\344\273\213\347\273\215.png" "b/docs/img/video/\347\247\273\345\212\250\347\253\257\344\273\213\347\273\215.png" similarity index 100% rename from "v1/img/video/\347\247\273\345\212\250\347\253\257\344\273\213\347\273\215.png" rename to "docs/img/video/\347\247\273\345\212\250\347\253\257\344\273\213\347\273\215.png" diff --git "a/v1/img/video/\347\273\204\344\273\266\350\267\263\350\275\254.png" "b/docs/img/video/\347\273\204\344\273\266\350\267\263\350\275\254.png" similarity index 100% rename from "v1/img/video/\347\273\204\344\273\266\350\267\263\350\275\254.png" rename to "docs/img/video/\347\273\204\344\273\266\350\267\263\350\275\254.png" diff --git "a/v1/img/video/\350\201\224\345\212\250\345\222\214\344\270\213\351\222\273.png" "b/docs/img/video/\350\201\224\345\212\250\345\222\214\344\270\213\351\222\273.png" similarity index 100% rename from "v1/img/video/\350\201\224\345\212\250\345\222\214\344\270\213\351\222\273.png" rename to "docs/img/video/\350\201\224\345\212\250\345\222\214\344\270\213\351\222\273.png" diff --git "a/v1/img/video/\350\247\206\345\233\276\346\240\267\345\274\217.png" "b/docs/img/video/\350\247\206\345\233\276\346\240\267\345\274\217.png" similarity index 100% rename from "v1/img/video/\350\247\206\345\233\276\346\240\267\345\274\217.png" rename to "docs/img/video/\350\247\206\345\233\276\346\240\267\345\274\217.png" diff --git "a/v1/img/video/\350\247\206\345\233\276\351\253\230\347\272\247\351\205\215\347\275\256\345\217\212\345\256\236\350\267\265.png" "b/docs/img/video/\350\247\206\345\233\276\351\253\230\347\272\247\351\205\215\347\275\256\345\217\212\345\256\236\350\267\265.png" similarity index 100% rename from "v1/img/video/\350\247\206\345\233\276\351\253\230\347\272\247\351\205\215\347\275\256\345\217\212\345\256\236\350\267\265.png" rename to "docs/img/video/\350\247\206\345\233\276\351\253\230\347\272\247\351\205\215\347\275\256\345\217\212\345\256\236\350\267\265.png" diff --git "a/v1/img/video/\350\277\207\346\273\244\347\273\204\344\273\266.png" "b/docs/img/video/\350\277\207\346\273\244\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/video/\350\277\207\346\273\244\347\273\204\344\273\266.png" rename to "docs/img/video/\350\277\207\346\273\244\347\273\204\344\273\266.png" diff --git "a/v1/img/video/\350\277\236\346\216\245\346\225\260\346\215\256\345\272\223\345\271\266\346\267\273\345\212\240\346\225\260\346\215\256\351\233\206.png" "b/docs/img/video/\350\277\236\346\216\245\346\225\260\346\215\256\345\272\223\345\271\266\346\267\273\345\212\240\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v1/img/video/\350\277\236\346\216\245\346\225\260\346\215\256\345\272\223\345\271\266\346\267\273\345\212\240\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/video/\350\277\236\346\216\245\346\225\260\346\215\256\345\272\223\345\271\266\346\267\273\345\212\240\346\225\260\346\215\256\351\233\206.png" diff --git a/docs/img/view_generation/.DS_Store b/docs/img/view_generation/.DS_Store new file mode 100644 index 000000000..84f65ca9d Binary files /dev/null and b/docs/img/view_generation/.DS_Store differ diff --git "a/v2/img/view_generation/2.0t\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\350\241\250\345\212\237\350\203\275\345\214\272.png" "b/docs/img/view_generation/2.0t\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\350\241\250\345\212\237\350\203\275\345\214\272.png" similarity index 100% rename from "v2/img/view_generation/2.0t\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\350\241\250\345\212\237\350\203\275\345\214\272.png" rename to "docs/img/view_generation/2.0t\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\350\241\250\345\212\237\350\203\275\345\214\272.png" diff --git "a/v2/img/view_generation/2.0\344\270\213\351\222\273\347\273\223\346\236\234.png" "b/docs/img/view_generation/2.0\344\270\213\351\222\273\347\273\223\346\236\234.png" similarity index 100% rename from "v2/img/view_generation/2.0\344\270\213\351\222\273\347\273\223\346\236\234.png" rename to "docs/img/view_generation/2.0\344\270\213\351\222\273\347\273\223\346\236\234.png" diff --git "a/v2/img/view_generation/2.0\344\273\252\350\241\250\347\233\230\351\230\210\345\200\274.png" "b/docs/img/view_generation/2.0\344\273\252\350\241\250\347\233\230\351\230\210\345\200\274.png" similarity index 100% rename from "v2/img/view_generation/2.0\344\273\252\350\241\250\347\233\230\351\230\210\345\200\274.png" rename to "docs/img/view_generation/2.0\344\273\252\350\241\250\347\233\230\351\230\210\345\200\274.png" diff --git "a/v2/img/view_generation/2.0\345\217\257\351\200\211\347\273\264\345\272\246\345\210\227\350\241\250.png" "b/docs/img/view_generation/2.0\345\217\257\351\200\211\347\273\264\345\272\246\345\210\227\350\241\250.png" similarity index 100% rename from "v2/img/view_generation/2.0\345\217\257\351\200\211\347\273\264\345\272\246\345\210\227\350\241\250.png" rename to "docs/img/view_generation/2.0\345\217\257\351\200\211\347\273\264\345\272\246\345\210\227\350\241\250.png" diff --git "a/v2/img/view_generation/2.0\345\233\276\344\276\213\346\240\267\345\274\217.png" "b/docs/img/view_generation/2.0\345\233\276\344\276\213\346\240\267\345\274\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\345\233\276\344\276\213\346\240\267\345\274\217.png" rename to "docs/img/view_generation/2.0\345\233\276\344\276\213\346\240\267\345\274\217.png" diff --git "a/v2/img/view_generation/2.0\345\233\276\344\276\213\350\256\276\347\275\256.png" "b/docs/img/view_generation/2.0\345\233\276\344\276\213\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/2.0\345\233\276\344\276\213\350\256\276\347\275\256.png" rename to "docs/img/view_generation/2.0\345\233\276\344\276\213\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/2.0\345\234\260\345\233\276\347\251\272\345\200\274\345\244\204\347\220\206.png" "b/docs/img/view_generation/2.0\345\234\260\345\233\276\347\251\272\345\200\274\345\244\204\347\220\206.png" similarity index 100% rename from "v2/img/view_generation/2.0\345\234\260\345\233\276\347\251\272\345\200\274\345\244\204\347\220\206.png" rename to "docs/img/view_generation/2.0\345\234\260\345\233\276\347\251\272\345\200\274\345\244\204\347\220\206.png" diff --git "a/v2/img/view_generation/2.0\345\235\220\346\240\207\350\275\264\346\240\267\345\274\217.png" "b/docs/img/view_generation/2.0\345\235\220\346\240\207\350\275\264\346\240\267\345\274\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\345\235\220\346\240\207\350\275\264\346\240\267\345\274\217.png" rename to "docs/img/view_generation/2.0\345\235\220\346\240\207\350\275\264\346\240\267\345\274\217.png" diff --git "a/v2/img/view_generation/2.0\345\235\220\346\240\207\350\275\264\347\272\265\350\275\264.png" "b/docs/img/view_generation/2.0\345\235\220\346\240\207\350\275\264\347\272\265\350\275\264.png" similarity index 100% rename from "v2/img/view_generation/2.0\345\235\220\346\240\207\350\275\264\347\272\265\350\275\264.png" rename to "docs/img/view_generation/2.0\345\235\220\346\240\207\350\275\264\347\272\265\350\275\264.png" diff --git "a/v2/img/view_generation/2.0\345\244\215\347\224\250\345\205\266\344\273\226\344\273\252\350\241\250\346\235\277\350\247\206\345\233\276.png" "b/docs/img/view_generation/2.0\345\244\215\347\224\250\345\205\266\344\273\226\344\273\252\350\241\250\346\235\277\350\247\206\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/2.0\345\244\215\347\224\250\345\205\266\344\273\226\344\273\252\350\241\250\346\235\277\350\247\206\345\233\276.png" rename to "docs/img/view_generation/2.0\345\244\215\347\224\250\345\205\266\344\273\226\344\273\252\350\241\250\346\235\277\350\247\206\345\233\276.png" diff --git "a/v2/img/view_generation/2.0\345\244\215\347\224\250\345\244\232\344\270\252\350\247\206\345\233\276.png" "b/docs/img/view_generation/2.0\345\244\215\347\224\250\345\244\232\344\270\252\350\247\206\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/2.0\345\244\215\347\224\250\345\244\232\344\270\252\350\247\206\345\233\276.png" rename to "docs/img/view_generation/2.0\345\244\215\347\224\250\345\244\232\344\270\252\350\247\206\345\233\276.png" diff --git "a/v2/img/view_generation/2.0\346\210\220\345\212\237\346\233\264\346\215\242\345\233\276\350\241\250.png" "b/docs/img/view_generation/2.0\346\210\220\345\212\237\346\233\264\346\215\242\345\233\276\350\241\250.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\210\220\345\212\237\346\233\264\346\215\242\345\233\276\350\241\250.png" rename to "docs/img/view_generation/2.0\346\210\220\345\212\237\346\233\264\346\215\242\345\233\276\350\241\250.png" diff --git "a/v2/img/view_generation/2.0\346\210\220\345\212\237\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206.png" "b/docs/img/view_generation/2.0\346\210\220\345\212\237\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\210\220\345\212\237\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/view_generation/2.0\346\210\220\345\212\237\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206.png" diff --git "a/v2/img/view_generation/2.0\346\212\230\347\272\277\345\233\276\347\251\272\345\200\274\345\244\204\347\220\206.png" "b/docs/img/view_generation/2.0\346\212\230\347\272\277\345\233\276\347\251\272\345\200\274\345\244\204\347\220\206.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\212\230\347\272\277\345\233\276\347\251\272\345\200\274\345\244\204\347\220\206.png" rename to "docs/img/view_generation/2.0\346\212\230\347\272\277\345\233\276\347\251\272\345\200\274\345\244\204\347\220\206.png" diff --git "a/v2/img/view_generation/2.0\346\214\207\346\240\207\345\210\227\350\241\250.png" "b/docs/img/view_generation/2.0\346\214\207\346\240\207\345\210\227\350\241\250.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\214\207\346\240\207\345\210\227\350\241\250.png" rename to "docs/img/view_generation/2.0\346\214\207\346\240\207\345\210\227\350\241\250.png" diff --git "a/v2/img/view_generation/2.0\346\214\207\346\240\207\345\215\241\345\244\247\345\260\217\346\240\267\345\274\217.png" "b/docs/img/view_generation/2.0\346\214\207\346\240\207\345\215\241\345\244\247\345\260\217\346\240\267\345\274\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\214\207\346\240\207\345\215\241\345\244\247\345\260\217\346\240\267\345\274\217.png" rename to "docs/img/view_generation/2.0\346\214\207\346\240\207\345\215\241\345\244\247\345\260\217\346\240\267\345\274\217.png" diff --git "a/v2/img/view_generation/2.0\346\214\207\346\240\207\345\277\253\351\200\237\350\256\241\347\256\227.png" "b/docs/img/view_generation/2.0\346\214\207\346\240\207\345\277\253\351\200\237\350\256\241\347\256\227.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\214\207\346\240\207\345\277\253\351\200\237\350\256\241\347\256\227.png" rename to "docs/img/view_generation/2.0\346\214\207\346\240\207\345\277\253\351\200\237\350\256\241\347\256\227.png" diff --git "a/v2/img/view_generation/2.0\346\214\207\346\240\207\346\261\207\346\200\273\346\226\271\345\274\217.png" "b/docs/img/view_generation/2.0\346\214\207\346\240\207\346\261\207\346\200\273\346\226\271\345\274\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\214\207\346\240\207\346\261\207\346\200\273\346\226\271\345\274\217.png" rename to "docs/img/view_generation/2.0\346\214\207\346\240\207\346\261\207\346\200\273\346\226\271\345\274\217.png" diff --git "a/v2/img/view_generation/2.0\346\214\207\346\240\207\351\200\211\346\213\251.png" "b/docs/img/view_generation/2.0\346\214\207\346\240\207\351\200\211\346\213\251.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\214\207\346\240\207\351\200\211\346\213\251.png" rename to "docs/img/view_generation/2.0\346\214\207\346\240\207\351\200\211\346\213\251.png" diff --git "a/v2/img/view_generation/2.0\346\217\220\347\244\272\350\256\276\347\275\256.png" "b/docs/img/view_generation/2.0\346\217\220\347\244\272\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\217\220\347\244\272\350\256\276\347\275\256.png" rename to "docs/img/view_generation/2.0\346\217\220\347\244\272\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\345\200\274\346\240\274\345\274\217\350\256\276\347\275\256.png" "b/docs/img/view_generation/2.0\346\225\260\345\200\274\346\240\274\345\274\217\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\345\200\274\346\240\274\345\274\217\350\256\276\347\275\256.png" rename to "docs/img/view_generation/2.0\346\225\260\345\200\274\346\240\274\345\274\217\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\344\270\213\351\222\273\346\225\210\346\236\234.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\344\270\213\351\222\273\346\225\210\346\236\234.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\344\270\213\351\222\273\346\225\210\346\236\234.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\344\270\213\351\222\273\346\225\210\346\236\234.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\270\213\346\213\211\346\250\241\345\274\217.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\270\213\346\213\211\346\250\241\345\274\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\270\213\346\213\211\346\250\241\345\274\217.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\270\213\346\213\211\346\250\241\345\274\217.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\273\252\350\241\250\347\233\230\345\212\250\346\200\201\345\200\274.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\273\252\350\241\250\347\233\230\345\212\250\346\200\201\345\200\274.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\273\252\350\241\250\347\233\230\345\212\250\346\200\201\345\200\274.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\273\252\350\241\250\347\233\230\345\212\250\346\200\201\345\200\274.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\273\252\350\241\250\347\233\230\351\230\210\345\200\274.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\273\252\350\241\250\347\233\230\351\230\210\345\200\274.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\273\252\350\241\250\347\233\230\351\230\210\345\200\274.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\344\273\252\350\241\250\347\233\230\351\230\210\345\200\274.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\210\267\346\226\260\344\270\216\347\273\223\346\236\234.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\210\267\346\226\260\344\270\216\347\273\223\346\236\234.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\210\267\346\226\260\344\270\216\347\273\223\346\236\234.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\210\267\346\226\260\344\270\216\347\273\223\346\236\234.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\344\276\213\350\256\276\347\275\256.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\344\276\213\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\344\276\213\350\256\276\347\275\256.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\344\276\213\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\346\240\207.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\346\240\207.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\346\240\207.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\346\240\207.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\350\241\250\346\225\210\346\236\234.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\350\241\250\346\225\210\346\236\234.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\350\241\250\346\225\210\346\236\234.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\350\241\250\346\225\210\346\236\234.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\350\241\250\346\240\267\345\274\217\347\225\214\351\235\242.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\350\241\250\346\240\267\345\274\217\347\225\214\351\235\242.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\350\241\250\346\240\267\345\274\217\347\225\214\351\235\242.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\233\276\350\241\250\346\240\267\345\274\217\347\225\214\351\235\242.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\234\260\345\233\276\347\251\272\345\200\274\345\244\204\347\220\206.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\234\260\345\233\276\347\251\272\345\200\274\345\244\204\347\220\206.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\234\260\345\233\276\347\251\272\345\200\274\345\244\204\347\220\206.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\234\260\345\233\276\347\251\272\345\200\274\345\244\204\347\220\206.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\235\220\346\240\207\350\275\264\345\256\227\350\275\264.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\235\220\346\240\207\350\275\264\345\256\227\350\275\264.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\235\220\346\240\207\350\275\264\345\256\227\350\275\264.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\235\220\346\240\207\350\275\264\345\256\227\350\275\264.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\235\220\346\240\207\350\275\264\346\250\252\350\275\264.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\235\220\346\240\207\350\275\264\346\250\252\350\275\264.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\235\220\346\240\207\350\275\264\346\250\252\350\275\264.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\235\220\346\240\207\350\275\264\346\250\252\350\275\264.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\252\222\344\275\223\347\273\204\344\273\266.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\252\222\344\275\223\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\252\222\344\275\223\347\273\204\344\273\266.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\252\222\344\275\223\347\273\204\344\273\266.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\257\214\346\226\207\346\234\254\345\241\253\345\205\245\346\214\207\346\240\207.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\257\214\346\226\207\346\234\254\345\241\253\345\205\245\346\214\207\346\240\207.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\257\214\346\226\207\346\234\254\345\241\253\345\205\245\346\214\207\346\240\207.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\345\257\214\346\226\207\346\234\254\345\241\253\345\205\245\346\214\207\346\240\207.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\345\217\257\351\200\211\346\241\206..png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\345\217\257\351\200\211\346\241\206..png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\345\217\257\351\200\211\346\241\206..png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\345\217\257\351\200\211\346\241\206..png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\345\217\257\351\200\211\346\241\206.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\345\217\257\351\200\211\346\241\206.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\345\217\257\351\200\211\346\241\206.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\345\217\257\351\200\211\346\241\206.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\345\277\253\351\200\237\350\256\241\347\256\227.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\345\277\253\351\200\237\350\256\241\347\256\227.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\345\277\253\351\200\237\350\256\241\347\256\227.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\345\277\253\351\200\237\350\256\241\347\256\227.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\346\261\207\346\200\273\346\226\271\345\274\217.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\346\261\207\346\200\273\346\226\271\345\274\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\346\261\207\346\200\273\346\226\271\345\274\217.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\346\261\207\346\200\273\346\226\271\345\274\217.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\351\200\211\346\213\251.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\351\200\211\346\213\251.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\351\200\211\346\213\251.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\351\200\211\346\213\251.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\217\220\347\244\272\350\256\276\347\275\256.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\217\220\347\244\272\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\217\220\347\244\272\350\256\276\347\275\256.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\217\220\347\244\272\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\217\222\345\205\245\345\233\276\347\211\207.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\217\222\345\205\245\345\233\276\347\211\207.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\217\222\345\205\245\345\233\276\347\211\207.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\217\222\345\205\245\345\233\276\347\211\207.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\217\222\345\205\245\345\252\222\344\275\223.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\217\222\345\205\245\345\252\222\344\275\223.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\217\222\345\205\245\345\252\222\344\275\223.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\217\222\345\205\245\345\252\222\344\275\223.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\220\234\347\264\242\351\200\211\346\213\251\346\225\260\346\215\256\351\233\206.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\220\234\347\264\242\351\200\211\346\213\251\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\220\234\347\264\242\351\200\211\346\213\251\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\220\234\347\264\242\351\200\211\346\213\251\346\225\260\346\215\256\351\233\206.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\225\260\346\215\256\344\270\213\351\222\273\347\202\271\345\207\273\344\272\221\345\215\227.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\225\260\346\215\256\344\270\213\351\222\273\347\202\271\345\207\273\344\272\221\345\215\227.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\225\260\346\215\256\344\270\213\351\222\273\347\202\271\345\207\273\344\272\221\345\215\227.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\225\260\346\215\256\344\270\213\351\222\273\347\202\271\345\207\273\344\272\221\345\215\227.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\225\260\346\215\256\350\256\276\350\256\241.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\225\260\346\215\256\350\256\276\350\256\241.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\225\260\346\215\256\350\256\276\350\256\241.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\225\260\346\215\256\350\256\276\350\256\241.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\346\240\267\345\274\217\350\260\203\346\225\264.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\346\240\267\345\274\217\350\260\203\346\225\264.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\346\240\267\345\274\217\350\260\203\346\225\264.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\226\207\346\234\254\346\240\267\345\274\217\350\260\203\346\225\264.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\230\216\347\273\206\346\225\260\346\215\256.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\230\216\347\273\206\346\225\260\346\215\256.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\230\216\347\273\206\346\225\260\346\215\256.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\230\216\347\273\206\346\225\260\346\215\256.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\230\276\347\244\272\345\210\253\345\220\215.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\230\276\347\244\272\345\210\253\345\220\215.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\230\276\347\244\272\345\210\253\345\220\215.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\230\276\347\244\272\345\210\253\345\220\215.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206\345\205\245\345\217\243.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206\345\205\245\345\217\243.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206\345\205\245\345\217\243.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206\345\205\245\345\217\243.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\207\347\255\276\350\256\276\347\275\256.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\207\347\255\276\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\207\347\255\276\350\256\276\347\275\256.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\207\347\255\276\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\207\351\242\230\350\256\276\347\275\256.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\207\351\242\230\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\207\351\242\230\350\256\276\347\275\256.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\207\351\242\230\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\267\345\274\217\345\237\272\347\241\200\346\240\267\345\274\217.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\267\345\274\217\345\237\272\347\241\200\346\240\267\345\274\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\267\345\274\217\345\237\272\347\241\200\346\240\267\345\274\217.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\267\345\274\217\345\237\272\347\241\200\346\240\267\345\274\217.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\267\345\274\217\345\244\247\345\260\217\350\256\276\347\275\256.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\267\345\274\217\345\244\247\345\260\217\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\267\345\274\217\345\244\247\345\260\217\350\256\276\347\275\256.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\267\345\274\217\345\244\247\345\260\217\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\267\345\274\217\350\203\214\346\231\257.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\267\345\274\217\350\203\214\346\231\257.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\267\345\274\217\350\203\214\346\231\257.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\267\345\274\217\350\203\214\346\231\257.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\267\345\274\217\350\203\214\346\231\257\350\256\276\347\275\256.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\267\345\274\217\350\203\214\346\231\257\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\267\345\274\217\350\203\214\346\231\257\350\256\276\347\275\256.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\240\267\345\274\217\350\203\214\346\231\257\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\267\273\345\212\240\345\233\276\347\211\207.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\267\273\345\212\240\345\233\276\347\211\207.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\267\273\345\212\240\345\233\276\347\211\207.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\267\273\345\212\240\345\233\276\347\211\207.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\267\273\345\212\240\345\257\214\346\226\207\346\234\254.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\267\273\345\212\240\345\257\214\346\226\207\346\234\254.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\267\273\345\212\240\345\257\214\346\226\207\346\234\254.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\267\273\345\212\240\345\257\214\346\226\207\346\234\254.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\267\273\345\212\240\350\241\250\346\240\274.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\267\273\345\212\240\350\241\250\346\240\274.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\267\273\345\212\240\350\241\250\346\240\274.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\267\273\345\212\240\350\241\250\346\240\274.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\270\220\345\217\230.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\270\220\345\217\230.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\270\220\345\217\230.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\270\220\345\217\230.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\270\220\345\217\230\350\256\276\347\275\256.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\270\220\345\217\230\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\270\220\345\217\230\350\256\276\347\275\256.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\346\270\220\345\217\230\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\202\271\345\207\273\345\233\276\350\241\250\347\273\204\344\273\266.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\202\271\345\207\273\345\233\276\350\241\250\347\273\204\344\273\266.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\202\271\345\207\273\345\233\276\350\241\250\347\273\204\344\273\266.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\202\271\345\207\273\345\233\276\350\241\250\347\273\204\344\273\266.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\251\272\345\200\274\345\244\204\347\220\206.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\251\272\345\200\274\345\244\204\347\220\206.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\251\272\345\200\274\345\244\204\347\220\206.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\251\272\345\200\274\345\244\204\347\220\206.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\251\272\345\200\274\345\244\204\347\220\206\344\277\235\346\214\201\344\270\272\347\251\272.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\251\272\345\200\274\345\244\204\347\220\206\344\277\235\346\214\201\344\270\272\347\251\272.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\251\272\345\200\274\345\244\204\347\220\206\344\277\235\346\214\201\344\270\272\347\251\272.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\251\272\345\200\274\345\244\204\347\220\206\344\277\235\346\214\201\344\270\272\347\251\272.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\251\272\345\200\274\345\244\204\347\220\206\347\275\256\344\270\2720.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\251\272\345\200\274\345\244\204\347\220\206\347\275\256\344\270\2720.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\251\272\345\200\274\345\244\204\347\220\206\347\275\256\344\270\2720.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\251\272\345\200\274\345\244\204\347\220\206\347\275\256\344\270\2720.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\264\240\346\235\220\346\267\273\345\212\240\350\276\271\346\241\206.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\264\240\346\235\220\346\267\273\345\212\240\350\276\271\346\241\206.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\264\240\346\235\220\346\267\273\345\212\240\350\276\271\346\241\206.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\264\240\346\235\220\346\267\273\345\212\240\350\276\271\346\241\206.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\264\345\272\246\345\217\257\351\200\211\346\241\206.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\264\345\272\246\345\217\257\351\200\211\346\241\206.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\264\345\272\246\345\217\257\351\200\211\346\241\206.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\264\345\272\246\345\217\257\351\200\211\346\241\206.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\264\345\272\246\346\216\222\345\272\217.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\264\345\272\246\346\216\222\345\272\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\264\345\272\246\346\216\222\345\272\217.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\264\345\272\246\346\216\222\345\272\217.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\264\345\272\246\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\264\345\272\246\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\264\345\272\246\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\264\345\272\246\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\264\345\272\246\351\200\211\346\213\251.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\264\345\272\246\351\200\211\346\213\251.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\264\345\272\246\351\200\211\346\213\251.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\273\264\345\272\246\351\200\211\346\213\251.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\274\251\347\225\245.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\274\251\347\225\245.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\274\251\347\225\245.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\347\274\251\347\225\245.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\207\252\345\256\232\344\271\211\351\242\234\350\211\262.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\207\252\345\256\232\344\271\211\351\242\234\350\211\262.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\207\252\345\256\232\344\271\211\351\242\234\350\211\262.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\207\252\345\256\232\344\271\211\351\242\234\350\211\262.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\241\250\346\240\274\346\225\210\346\236\234.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\241\250\346\240\274\346\225\210\346\236\234.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\241\250\346\240\274\346\225\210\346\236\234.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\241\250\346\240\274\346\225\210\346\236\234.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\241\250\346\240\274\347\251\272\345\200\274\345\244\204\347\220\206.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\241\250\346\240\274\347\251\272\345\200\274\345\244\204\347\220\206.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\241\250\346\240\274\347\251\272\345\200\274\345\244\204\347\220\206.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\241\250\346\240\274\347\251\272\345\200\274\345\244\204\347\220\206.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\344\270\213\351\222\273.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\344\270\213\351\222\273.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\344\270\213\351\222\273.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\344\270\213\351\222\273.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\346\273\232\345\212\250.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\346\273\232\345\212\250.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\346\273\232\345\212\250.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\346\273\232\345\212\250.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\350\266\205\351\223\276\346\216\245.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\350\266\205\351\223\276\346\216\245.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\350\266\205\351\223\276\346\216\245.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\350\266\205\351\223\276\346\216\245.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\350\276\205\345\212\251\347\272\277.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\350\276\205\345\212\251\347\272\277.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\350\276\205\345\212\251\347\272\277.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\350\276\205\345\212\251\347\272\277.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\351\230\210\345\200\274.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\351\230\210\345\200\274.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\351\230\210\345\200\274.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\351\230\210\345\200\274.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\276\205\345\212\251\347\272\277\345\212\237\350\203\275.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\276\205\345\212\251\347\272\277\345\212\237\350\203\275.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\276\205\345\212\251\347\272\277\345\212\237\350\203\275.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\276\205\345\212\251\347\272\277\345\212\237\350\203\275.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\276\205\345\212\251\347\272\277\346\225\210\346\236\234.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\276\205\345\212\251\347\272\277\346\225\210\346\236\234.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\276\205\345\212\251\347\272\277\346\225\210\346\236\234.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\276\205\345\212\251\347\272\277\346\225\210\346\236\234.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\276\205\345\212\251\347\272\277\350\275\264\345\200\274\345\217\230\345\214\226.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\276\205\345\212\251\347\272\277\350\275\264\345\200\274\345\217\230\345\214\226.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\276\205\345\212\251\347\272\277\350\275\264\345\200\274\345\217\230\345\214\226.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\276\205\345\212\251\347\272\277\350\275\264\345\200\274\345\217\230\345\214\226.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250\346\226\271\345\274\217.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250\346\226\271\345\274\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250\346\226\271\345\274\217.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250\346\226\271\345\274\217.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250\346\236\232\344\270\276.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250\346\236\232\344\270\276.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250\346\236\232\344\270\276.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250\346\236\232\344\270\276.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250\351\200\273\350\276\221\345\210\244\346\226\255.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250\351\200\273\350\276\221\345\210\244\346\226\255.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250\351\200\273\350\276\221\345\210\244\346\226\255.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250\351\200\273\350\276\221\345\210\244\346\226\255.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\200\211\346\213\251\345\233\276\350\241\250.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\200\211\346\213\251\345\233\276\350\241\250.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\200\211\346\213\251\345\233\276\350\241\250.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\200\211\346\213\251\345\233\276\350\241\250.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\200\211\346\213\251\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\200\211\346\213\251\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\200\211\346\213\251\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\200\211\346\213\251\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\200\217\346\230\216\345\272\246.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\200\217\346\230\216\345\272\246.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\200\217\346\230\216\345\272\246.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\200\217\346\230\216\345\272\246.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\205\215\350\211\262\346\226\271\346\241\210.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\205\215\350\211\262\346\226\271\346\241\210.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\205\215\350\211\262\346\226\271\346\241\210.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\205\215\350\211\262\346\226\271\346\241\210.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\230\210\345\200\274\346\225\210\346\236\234.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\230\210\345\200\274\346\225\210\346\236\234.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\230\210\345\200\274\346\225\210\346\236\234.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\230\210\345\200\274\346\225\210\346\236\234.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\232\220\350\227\217\347\251\272\345\200\274.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\232\220\350\227\217\347\251\272\345\200\274.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\232\220\350\227\217\347\251\272\345\200\274.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\232\220\350\227\217\347\251\272\345\200\274.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\253\230\347\272\247\345\212\237\350\203\275.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\253\230\347\272\247\345\212\237\350\203\275.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\253\230\347\272\247\345\212\237\350\203\275.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\345\244\247\345\261\217\351\253\230\347\272\247\345\212\237\350\203\275.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\346\214\207\346\240\207\346\240\274\345\274\217\350\256\276\347\275\256.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\346\214\207\346\240\207\346\240\274\345\274\217\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\346\214\207\346\240\207\346\240\274\345\274\217\350\256\276\347\275\256.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\346\214\207\346\240\207\346\240\274\345\274\217\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/2.0\346\225\260\346\215\256\346\230\216\347\273\206.png" "b/docs/img/view_generation/2.0\346\225\260\346\215\256\346\230\216\347\273\206.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\225\260\346\215\256\346\230\216\347\273\206.png" rename to "docs/img/view_generation/2.0\346\225\260\346\215\256\346\230\216\347\273\206.png" diff --git "a/v2/img/view_generation/2.0\346\233\264\346\215\242\345\233\276\350\241\250.png" "b/docs/img/view_generation/2.0\346\233\264\346\215\242\345\233\276\350\241\250.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\233\264\346\215\242\345\233\276\350\241\250.png" rename to "docs/img/view_generation/2.0\346\233\264\346\215\242\345\233\276\350\241\250.png" diff --git "a/v2/img/view_generation/2.0\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206.png" "b/docs/img/view_generation/2.0\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/view_generation/2.0\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206.png" diff --git "a/v2/img/view_generation/2.0\346\233\264\346\224\271\347\273\264\345\272\246\345\220\215\347\247\260.png" "b/docs/img/view_generation/2.0\346\233\264\346\224\271\347\273\264\345\272\246\345\220\215\347\247\260.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\233\264\346\224\271\347\273\264\345\272\246\345\220\215\347\247\260.png" rename to "docs/img/view_generation/2.0\346\233\264\346\224\271\347\273\264\345\272\246\345\220\215\347\247\260.png" diff --git "a/v2/img/view_generation/2.0\346\237\261\347\212\266\345\233\276\347\251\272\345\200\274\345\244\204\347\220\206.png" "b/docs/img/view_generation/2.0\346\237\261\347\212\266\345\233\276\347\251\272\345\200\274\345\244\204\347\220\206.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\237\261\347\212\266\345\233\276\347\251\272\345\200\274\345\244\204\347\220\206.png" rename to "docs/img/view_generation/2.0\346\237\261\347\212\266\345\233\276\347\251\272\345\200\274\345\244\204\347\220\206.png" diff --git "a/v2/img/view_generation/2.0\346\240\207\351\242\230\350\256\276\347\275\256.png" "b/docs/img/view_generation/2.0\346\240\207\351\242\230\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\240\207\351\242\230\350\256\276\347\275\256.png" rename to "docs/img/view_generation/2.0\346\240\207\351\242\230\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/2.0\346\240\267\345\274\217\345\235\220\346\240\207\350\275\264\346\250\252\350\275\264.png" "b/docs/img/view_generation/2.0\346\240\267\345\274\217\345\235\220\346\240\207\350\275\264\346\250\252\350\275\264.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\240\267\345\274\217\345\235\220\346\240\207\350\275\264\346\250\252\350\275\264.png" rename to "docs/img/view_generation/2.0\346\240\267\345\274\217\345\235\220\346\240\207\350\275\264\346\250\252\350\275\264.png" diff --git "a/v2/img/view_generation/2.0\346\240\267\345\274\217\345\237\272\347\241\200\346\240\267\345\274\217.png" "b/docs/img/view_generation/2.0\346\240\267\345\274\217\345\237\272\347\241\200\346\240\267\345\274\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\240\267\345\274\217\345\237\272\347\241\200\346\240\267\345\274\217.png" rename to "docs/img/view_generation/2.0\346\240\267\345\274\217\345\237\272\347\241\200\346\240\267\345\274\217.png" diff --git "a/v2/img/view_generation/2.0\346\240\267\345\274\217\345\244\247\345\260\217.png" "b/docs/img/view_generation/2.0\346\240\267\345\274\217\345\244\247\345\260\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\240\267\345\274\217\345\244\247\345\260\217.png" rename to "docs/img/view_generation/2.0\346\240\267\345\274\217\345\244\247\345\260\217.png" diff --git "a/v2/img/view_generation/2.0\346\240\267\345\274\217\346\217\220\347\244\272.png" "b/docs/img/view_generation/2.0\346\240\267\345\274\217\346\217\220\347\244\272.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\240\267\345\274\217\346\217\220\347\244\272.png" rename to "docs/img/view_generation/2.0\346\240\267\345\274\217\346\217\220\347\244\272.png" diff --git "a/v2/img/view_generation/2.0\346\240\267\345\274\217\346\240\207\347\255\276.png" "b/docs/img/view_generation/2.0\346\240\267\345\274\217\346\240\207\347\255\276.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\240\267\345\274\217\346\240\207\347\255\276.png" rename to "docs/img/view_generation/2.0\346\240\267\345\274\217\346\240\207\347\255\276.png" diff --git "a/v2/img/view_generation/2.0\346\240\267\345\274\217\346\240\207\347\255\276\350\256\276\347\275\256.png" "b/docs/img/view_generation/2.0\346\240\267\345\274\217\346\240\207\347\255\276\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\240\267\345\274\217\346\240\207\347\255\276\350\256\276\347\275\256.png" rename to "docs/img/view_generation/2.0\346\240\267\345\274\217\346\240\207\347\255\276\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/2.0\346\240\267\345\274\217\346\240\207\351\242\230.png" "b/docs/img/view_generation/2.0\346\240\267\345\274\217\346\240\207\351\242\230.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\240\267\345\274\217\346\240\207\351\242\230.png" rename to "docs/img/view_generation/2.0\346\240\267\345\274\217\346\240\207\351\242\230.png" diff --git "a/v2/img/view_generation/2.0\346\240\267\345\274\217\350\203\214\346\231\257.png" "b/docs/img/view_generation/2.0\346\240\267\345\274\217\350\203\214\346\231\257.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\240\267\345\274\217\350\203\214\346\231\257.png" rename to "docs/img/view_generation/2.0\346\240\267\345\274\217\350\203\214\346\231\257.png" diff --git "a/v2/img/view_generation/2.0\346\240\267\345\274\217\350\203\214\346\231\257\350\256\276\347\275\256.png" "b/docs/img/view_generation/2.0\346\240\267\345\274\217\350\203\214\346\231\257\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\240\267\345\274\217\350\203\214\346\231\257\350\256\276\347\275\256.png" rename to "docs/img/view_generation/2.0\346\240\267\345\274\217\350\203\214\346\231\257\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/2.0\346\267\273\345\212\240\350\247\206\345\233\276.png" "b/docs/img/view_generation/2.0\346\267\273\345\212\240\350\247\206\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\267\273\345\212\240\350\247\206\345\233\276.png" rename to "docs/img/view_generation/2.0\346\267\273\345\212\240\350\247\206\345\233\276.png" diff --git "a/v2/img/view_generation/2.0\346\273\232\345\212\250\345\212\237\350\203\275.png" "b/docs/img/view_generation/2.0\346\273\232\345\212\250\345\212\237\350\203\275.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\273\232\345\212\250\345\212\237\350\203\275.png" rename to "docs/img/view_generation/2.0\346\273\232\345\212\250\345\212\237\350\203\275.png" diff --git "a/v2/img/view_generation/2.0\346\273\232\345\212\250\345\274\200\345\220\257.png" "b/docs/img/view_generation/2.0\346\273\232\345\212\250\345\274\200\345\220\257.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\273\232\345\212\250\345\274\200\345\220\257.png" rename to "docs/img/view_generation/2.0\346\273\232\345\212\250\345\274\200\345\220\257.png" diff --git "a/v2/img/view_generation/2.0\346\273\232\345\212\250\350\256\276\347\275\256.png" "b/docs/img/view_generation/2.0\346\273\232\345\212\250\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/2.0\346\273\232\345\212\250\350\256\276\347\275\256.png" rename to "docs/img/view_generation/2.0\346\273\232\345\212\250\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/2.0\347\202\271\345\207\273\344\270\213\351\222\273.png" "b/docs/img/view_generation/2.0\347\202\271\345\207\273\344\270\213\351\222\273.png" similarity index 100% rename from "v2/img/view_generation/2.0\347\202\271\345\207\273\344\270\213\351\222\273.png" rename to "docs/img/view_generation/2.0\347\202\271\345\207\273\344\270\213\351\222\273.png" diff --git "a/v2/img/view_generation/2.0\347\202\271\345\207\273\346\240\267\345\274\217.png" "b/docs/img/view_generation/2.0\347\202\271\345\207\273\346\240\267\345\274\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\347\202\271\345\207\273\346\240\267\345\274\217.png" rename to "docs/img/view_generation/2.0\347\202\271\345\207\273\346\240\267\345\274\217.png" diff --git "a/v2/img/view_generation/2.0\347\251\272\345\200\274\345\244\204\347\220\206\344\277\235\345\255\230\344\270\272\347\251\272.png" "b/docs/img/view_generation/2.0\347\251\272\345\200\274\345\244\204\347\220\206\344\277\235\345\255\230\344\270\272\347\251\272.png" similarity index 100% rename from "v2/img/view_generation/2.0\347\251\272\345\200\274\345\244\204\347\220\206\344\277\235\345\255\230\344\270\272\347\251\272.png" rename to "docs/img/view_generation/2.0\347\251\272\345\200\274\345\244\204\347\220\206\344\277\235\345\255\230\344\270\272\347\251\272.png" diff --git "a/v2/img/view_generation/2.0\347\251\272\345\200\274\345\244\204\347\220\206\347\275\256\344\270\2720.png" "b/docs/img/view_generation/2.0\347\251\272\345\200\274\345\244\204\347\220\206\347\275\256\344\270\2720.png" similarity index 100% rename from "v2/img/view_generation/2.0\347\251\272\345\200\274\345\244\204\347\220\206\347\275\256\344\270\2720.png" rename to "docs/img/view_generation/2.0\347\251\272\345\200\274\345\244\204\347\220\206\347\275\256\344\270\2720.png" diff --git "a/v2/img/view_generation/2.0\347\251\272\345\200\274\345\244\204\347\220\206\351\232\220\350\227\217\347\251\272\345\200\274.png" "b/docs/img/view_generation/2.0\347\251\272\345\200\274\345\244\204\347\220\206\351\232\220\350\227\217\347\251\272\345\200\274.png" similarity index 100% rename from "v2/img/view_generation/2.0\347\251\272\345\200\274\345\244\204\347\220\206\351\232\220\350\227\217\347\251\272\345\200\274.png" rename to "docs/img/view_generation/2.0\347\251\272\345\200\274\345\244\204\347\220\206\351\232\220\350\227\217\347\251\272\345\200\274.png" diff --git "a/v2/img/view_generation/2.0\347\273\264\345\272\246\345\210\227\350\241\250.png" "b/docs/img/view_generation/2.0\347\273\264\345\272\246\345\210\227\350\241\250.png" similarity index 100% rename from "v2/img/view_generation/2.0\347\273\264\345\272\246\345\210\227\350\241\250.png" rename to "docs/img/view_generation/2.0\347\273\264\345\272\246\345\210\227\350\241\250.png" diff --git "a/v2/img/view_generation/2.0\347\273\264\345\272\246\346\216\222\345\272\217.png" "b/docs/img/view_generation/2.0\347\273\264\345\272\246\346\216\222\345\272\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\347\273\264\345\272\246\346\216\222\345\272\217.png" rename to "docs/img/view_generation/2.0\347\273\264\345\272\246\346\216\222\345\272\217.png" diff --git "a/v2/img/view_generation/2.0\347\273\264\345\272\246\350\256\276\347\275\256\346\225\260\345\200\274\346\240\274\345\274\217.png" "b/docs/img/view_generation/2.0\347\273\264\345\272\246\350\256\276\347\275\256\346\225\260\345\200\274\346\240\274\345\274\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\347\273\264\345\272\246\350\256\276\347\275\256\346\225\260\345\200\274\346\240\274\345\274\217.png" rename to "docs/img/view_generation/2.0\347\273\264\345\272\246\350\256\276\347\275\256\346\225\260\345\200\274\346\240\274\345\274\217.png" diff --git "a/v2/img/view_generation/2.0\347\274\251\347\225\245\345\233\276\350\256\276\347\275\256.png" "b/docs/img/view_generation/2.0\347\274\251\347\225\245\345\233\276\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/2.0\347\274\251\347\225\245\345\233\276\350\256\276\347\275\256.png" rename to "docs/img/view_generation/2.0\347\274\251\347\225\245\345\233\276\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/2.0\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" "b/docs/img/view_generation/2.0\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" rename to "docs/img/view_generation/2.0\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" diff --git "a/v2/img/view_generation/2.0\350\207\252\345\256\232\344\271\211\351\205\215\350\211\262.png" "b/docs/img/view_generation/2.0\350\207\252\345\256\232\344\271\211\351\205\215\350\211\262.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\207\252\345\256\232\344\271\211\351\205\215\350\211\262.png" rename to "docs/img/view_generation/2.0\350\207\252\345\256\232\344\271\211\351\205\215\350\211\262.png" diff --git "a/v2/img/view_generation/2.0\350\207\252\345\256\232\344\271\211\351\205\215\350\211\2622.png" "b/docs/img/view_generation/2.0\350\207\252\345\256\232\344\271\211\351\205\215\350\211\2622.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\207\252\345\256\232\344\271\211\351\205\215\350\211\2622.png" rename to "docs/img/view_generation/2.0\350\207\252\345\256\232\344\271\211\351\205\215\350\211\2622.png" diff --git "a/v2/img/view_generation/2.0\350\207\252\345\256\232\344\271\211\351\242\234\350\211\262\346\270\220\345\217\230\351\200\217\346\230\216\345\272\246.png" "b/docs/img/view_generation/2.0\350\207\252\345\256\232\344\271\211\351\242\234\350\211\262\346\270\220\345\217\230\351\200\217\346\230\216\345\272\246.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\207\252\345\256\232\344\271\211\351\242\234\350\211\262\346\270\220\345\217\230\351\200\217\346\230\216\345\272\246.png" rename to "docs/img/view_generation/2.0\350\207\252\345\256\232\344\271\211\351\242\234\350\211\262\346\270\220\345\217\230\351\200\217\346\230\216\345\272\246.png" diff --git "a/v2/img/view_generation/2.0\350\241\250\346\240\274\345\237\272\347\241\200\346\240\267\345\274\217.png" "b/docs/img/view_generation/2.0\350\241\250\346\240\274\345\237\272\347\241\200\346\240\267\345\274\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\241\250\346\240\274\345\237\272\347\241\200\346\240\267\345\274\217.png" rename to "docs/img/view_generation/2.0\350\241\250\346\240\274\345\237\272\347\241\200\346\240\267\345\274\217.png" diff --git "a/v2/img/view_generation/2.0\350\241\250\346\240\274\347\251\272\345\200\274\345\244\204\347\220\206.png" "b/docs/img/view_generation/2.0\350\241\250\346\240\274\347\251\272\345\200\274\345\244\204\347\220\206.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\241\250\346\240\274\347\251\272\345\200\274\345\244\204\347\220\206.png" rename to "docs/img/view_generation/2.0\350\241\250\346\240\274\347\251\272\345\200\274\345\244\204\347\220\206.png" diff --git "a/v2/img/view_generation/2.0\350\241\250\346\240\274\347\251\272\345\200\274\345\244\204\347\220\2062.png" "b/docs/img/view_generation/2.0\350\241\250\346\240\274\347\251\272\345\200\274\345\244\204\347\220\2062.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\241\250\346\240\274\347\251\272\345\200\274\345\244\204\347\220\2062.png" rename to "docs/img/view_generation/2.0\350\241\250\346\240\274\347\251\272\345\200\274\345\244\204\347\220\2062.png" diff --git "a/v2/img/view_generation/2.0\350\241\250\346\240\274\350\241\250\345\244\264\345\222\214\345\215\225\345\205\203\346\240\274\346\240\267\345\274\217.png" "b/docs/img/view_generation/2.0\350\241\250\346\240\274\350\241\250\345\244\264\345\222\214\345\215\225\345\205\203\346\240\274\346\240\267\345\274\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\241\250\346\240\274\350\241\250\345\244\264\345\222\214\345\215\225\345\205\203\346\240\274\346\240\267\345\274\217.png" rename to "docs/img/view_generation/2.0\350\241\250\346\240\274\350\241\250\345\244\264\345\222\214\345\215\225\345\205\203\346\240\274\346\240\267\345\274\217.png" diff --git "a/v2/img/view_generation/2.0\350\247\206\345\233\276\345\205\245\345\217\243.png" "b/docs/img/view_generation/2.0\350\247\206\345\233\276\345\205\245\345\217\243.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\247\206\345\233\276\345\205\245\345\217\243.png" rename to "docs/img/view_generation/2.0\350\247\206\345\233\276\345\205\245\345\217\243.png" diff --git "a/v2/img/view_generation/2.0\350\247\206\345\233\276\346\246\202\350\247\210.png" "b/docs/img/view_generation/2.0\350\247\206\345\233\276\346\246\202\350\247\210.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\247\206\345\233\276\346\246\202\350\247\210.png" rename to "docs/img/view_generation/2.0\350\247\206\345\233\276\346\246\202\350\247\210.png" diff --git "a/v2/img/view_generation/2.0\350\247\206\345\233\276\347\202\271\345\207\273\345\244\215\347\224\250..png" "b/docs/img/view_generation/2.0\350\247\206\345\233\276\347\202\271\345\207\273\345\244\215\347\224\250..png" similarity index 100% rename from "v2/img/view_generation/2.0\350\247\206\345\233\276\347\202\271\345\207\273\345\244\215\347\224\250..png" rename to "docs/img/view_generation/2.0\350\247\206\345\233\276\347\202\271\345\207\273\345\244\215\347\224\250..png" diff --git "a/v2/img/view_generation/2.0\350\247\206\345\233\276\347\202\271\345\207\273\345\244\215\347\224\250.png" "b/docs/img/view_generation/2.0\350\247\206\345\233\276\347\202\271\345\207\273\345\244\215\347\224\250.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\247\206\345\233\276\347\202\271\345\207\273\345\244\215\347\224\250.png" rename to "docs/img/view_generation/2.0\350\247\206\345\233\276\347\202\271\345\207\273\345\244\215\347\224\250.png" diff --git "a/v2/img/view_generation/2.0\350\247\206\345\233\276\347\273\264\345\272\246\346\214\207\346\240\207\350\256\276\347\275\256.png" "b/docs/img/view_generation/2.0\350\247\206\345\233\276\347\273\264\345\272\246\346\214\207\346\240\207\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\247\206\345\233\276\347\273\264\345\272\246\346\214\207\346\240\207\350\256\276\347\275\256.png" rename to "docs/img/view_generation/2.0\350\247\206\345\233\276\347\273\264\345\272\246\346\214\207\346\240\207\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/2.0\350\247\206\345\233\276\351\200\211\346\213\251\346\225\260\346\215\256\351\233\206.png" "b/docs/img/view_generation/2.0\350\247\206\345\233\276\351\200\211\346\213\251\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\247\206\345\233\276\351\200\211\346\213\251\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/view_generation/2.0\350\247\206\345\233\276\351\200\211\346\213\251\346\225\260\346\215\256\351\233\206.png" diff --git "a/v2/img/view_generation/2.0\350\256\276\347\275\256\345\210\267\346\226\260\351\242\221\347\216\2071.png" "b/docs/img/view_generation/2.0\350\256\276\347\275\256\345\210\267\346\226\260\351\242\221\347\216\2071.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\256\276\347\275\256\345\210\267\346\226\260\351\242\221\347\216\2071.png" rename to "docs/img/view_generation/2.0\350\256\276\347\275\256\345\210\267\346\226\260\351\242\221\347\216\2071.png" diff --git "a/v2/img/view_generation/2.0\350\256\276\347\275\256\345\210\267\346\226\260\351\242\221\347\216\2072.png" "b/docs/img/view_generation/2.0\350\256\276\347\275\256\345\210\267\346\226\260\351\242\221\347\216\2072.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\256\276\347\275\256\345\210\267\346\226\260\351\242\221\347\216\2072.png" rename to "docs/img/view_generation/2.0\350\256\276\347\275\256\345\210\267\346\226\260\351\242\221\347\216\2072.png" diff --git "a/v2/img/view_generation/2.0\350\256\276\347\275\256\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" "b/docs/img/view_generation/2.0\350\256\276\347\275\256\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\256\276\347\275\256\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" rename to "docs/img/view_generation/2.0\350\256\276\347\275\256\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" diff --git "a/v2/img/view_generation/2.0\350\256\276\347\275\256\350\276\205\345\212\251\347\272\277.png" "b/docs/img/view_generation/2.0\350\256\276\347\275\256\350\276\205\345\212\251\347\272\277.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\256\276\347\275\256\350\276\205\345\212\251\347\272\277.png" rename to "docs/img/view_generation/2.0\350\256\276\347\275\256\350\276\205\345\212\251\347\272\277.png" diff --git "a/v2/img/view_generation/2.0\350\256\276\347\275\256\350\276\205\345\212\251\347\272\277\346\225\210\346\236\234.png" "b/docs/img/view_generation/2.0\350\256\276\347\275\256\350\276\205\345\212\251\347\272\277\346\225\210\346\236\234.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\256\276\347\275\256\350\276\205\345\212\251\347\272\277\346\225\210\346\236\234.png" rename to "docs/img/view_generation/2.0\350\256\276\347\275\256\350\276\205\345\212\251\347\272\277\346\225\210\346\236\234.png" diff --git "a/v2/img/view_generation/2.0\350\256\276\347\275\256\351\222\273\345\217\226.png" "b/docs/img/view_generation/2.0\350\256\276\347\275\256\351\222\273\345\217\226.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\256\276\347\275\256\351\222\273\345\217\226.png" rename to "docs/img/view_generation/2.0\350\256\276\347\275\256\351\222\273\345\217\226.png" diff --git "a/v2/img/view_generation/2.0\350\256\276\347\275\256\351\230\210\345\200\274.png" "b/docs/img/view_generation/2.0\350\256\276\347\275\256\351\230\210\345\200\274.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\256\276\347\275\256\351\230\210\345\200\274.png" rename to "docs/img/view_generation/2.0\350\256\276\347\275\256\351\230\210\345\200\274.png" diff --git "a/v2/img/view_generation/2.0\350\276\205\345\212\251\347\272\277\346\225\210\346\236\234.png" "b/docs/img/view_generation/2.0\350\276\205\345\212\251\347\272\277\346\225\210\346\236\234.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\276\205\345\212\251\347\272\277\346\225\210\346\236\234.png" rename to "docs/img/view_generation/2.0\350\276\205\345\212\251\347\272\277\346\225\210\346\236\234.png" diff --git "a/v2/img/view_generation/2.0\350\276\205\345\212\251\347\272\277\350\275\264\345\200\274.png" "b/docs/img/view_generation/2.0\350\276\205\345\212\251\347\272\277\350\275\264\345\200\274.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\276\205\345\212\251\347\272\277\350\275\264\345\200\274.png" rename to "docs/img/view_generation/2.0\350\276\205\345\212\251\347\272\277\350\275\264\345\200\274.png" diff --git "a/v2/img/view_generation/2.0\350\277\207\346\273\244\345\231\250.png" "b/docs/img/view_generation/2.0\350\277\207\346\273\244\345\231\250.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\277\207\346\273\244\345\231\250.png" rename to "docs/img/view_generation/2.0\350\277\207\346\273\244\345\231\250.png" diff --git "a/v2/img/view_generation/2.0\350\277\207\346\273\244\345\231\250\345\255\227\346\256\265\346\236\232\344\270\276.png" "b/docs/img/view_generation/2.0\350\277\207\346\273\244\345\231\250\345\255\227\346\256\265\346\236\232\344\270\276.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\277\207\346\273\244\345\231\250\345\255\227\346\256\265\346\236\232\344\270\276.png" rename to "docs/img/view_generation/2.0\350\277\207\346\273\244\345\231\250\345\255\227\346\256\265\346\236\232\344\270\276.png" diff --git "a/v2/img/view_generation/2.0\350\277\207\346\273\244\345\231\250\351\200\273\350\276\221\346\235\241\344\273\266.png" "b/docs/img/view_generation/2.0\350\277\207\346\273\244\345\231\250\351\200\273\350\276\221\346\235\241\344\273\266.png" similarity index 100% rename from "v2/img/view_generation/2.0\350\277\207\346\273\244\345\231\250\351\200\273\350\276\221\346\235\241\344\273\266.png" rename to "docs/img/view_generation/2.0\350\277\207\346\273\244\345\231\250\351\200\273\350\276\221\346\235\241\344\273\266.png" diff --git "a/v2/img/view_generation/2.0\351\200\211\346\213\251\347\273\264\345\272\246.png" "b/docs/img/view_generation/2.0\351\200\211\346\213\251\347\273\264\345\272\246.png" similarity index 100% rename from "v2/img/view_generation/2.0\351\200\211\346\213\251\347\273\264\345\272\246.png" rename to "docs/img/view_generation/2.0\351\200\211\346\213\251\347\273\264\345\272\246.png" diff --git "a/v2/img/view_generation/2.0\351\230\210\345\200\274\346\225\210\346\236\234.png" "b/docs/img/view_generation/2.0\351\230\210\345\200\274\346\225\210\346\236\234.png" similarity index 100% rename from "v2/img/view_generation/2.0\351\230\210\345\200\274\346\225\210\346\236\234.png" rename to "docs/img/view_generation/2.0\351\230\210\345\200\274\346\225\210\346\236\234.png" diff --git "a/v2/img/view_generation/2.0\351\245\274\345\233\276\346\217\220\347\244\272\346\240\267\345\274\217.png" "b/docs/img/view_generation/2.0\351\245\274\345\233\276\346\217\220\347\244\272\346\240\267\345\274\217.png" similarity index 100% rename from "v2/img/view_generation/2.0\351\245\274\345\233\276\346\217\220\347\244\272\346\240\267\345\274\217.png" rename to "docs/img/view_generation/2.0\351\245\274\345\233\276\346\217\220\347\244\272\346\240\267\345\274\217.png" diff --git "a/v2/img/view_generation/2.0\351\253\230\347\272\247\350\256\276\347\275\256.png" "b/docs/img/view_generation/2.0\351\253\230\347\272\247\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/2.0\351\253\230\347\272\247\350\256\276\347\275\256.png" rename to "docs/img/view_generation/2.0\351\253\230\347\272\247\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/2.\346\225\260\346\215\256\345\244\247\345\261\217\347\273\264\345\272\246\346\240\274\345\274\217\350\256\276\347\275\256.png" "b/docs/img/view_generation/2.\346\225\260\346\215\256\345\244\247\345\261\217\347\273\264\345\272\246\346\240\274\345\274\217\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/2.\346\225\260\346\215\256\345\244\247\345\261\217\347\273\264\345\272\246\346\240\274\345\274\217\350\256\276\347\275\256.png" rename to "docs/img/view_generation/2.\346\225\260\346\215\256\345\244\247\345\261\217\347\273\264\345\272\246\346\240\274\345\274\217\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/2.\346\225\260\346\215\256\345\244\247\345\261\217\351\230\210\345\200\274\345\212\237\350\203\275.png" "b/docs/img/view_generation/2.\346\225\260\346\215\256\345\244\247\345\261\217\351\230\210\345\200\274\345\212\237\350\203\275.png" similarity index 100% rename from "v2/img/view_generation/2.\346\225\260\346\215\256\345\244\247\345\261\217\351\230\210\345\200\274\345\212\237\350\203\275.png" rename to "docs/img/view_generation/2.\346\225\260\346\215\256\345\244\247\345\261\217\351\230\210\345\200\274\345\212\237\350\203\275.png" diff --git "a/v1/img/view_generation/AntV\345\233\276\345\272\223\346\240\207\347\255\276\345\206\205\345\256\271.png" "b/docs/img/view_generation/AntV\345\233\276\345\272\223\346\240\207\347\255\276\345\206\205\345\256\271.png" similarity index 100% rename from "v1/img/view_generation/AntV\345\233\276\345\272\223\346\240\207\347\255\276\345\206\205\345\256\271.png" rename to "docs/img/view_generation/AntV\345\233\276\345\272\223\346\240\207\347\255\276\345\206\205\345\256\271.png" diff --git "a/v1/img/view_generation/AntV\345\233\276\345\272\223\346\240\207\351\242\230.png" "b/docs/img/view_generation/AntV\345\233\276\345\272\223\346\240\207\351\242\230.png" similarity index 100% rename from "v1/img/view_generation/AntV\345\233\276\345\272\223\346\240\207\351\242\230.png" rename to "docs/img/view_generation/AntV\345\233\276\345\272\223\346\240\207\351\242\230.png" diff --git "a/v1/img/view_generation/AntV\346\230\216\347\273\206\350\241\250\345\222\214\346\261\207\346\200\273\350\241\250_\345\272\217\345\217\267\350\256\276\347\275\256.png" "b/docs/img/view_generation/AntV\346\230\216\347\273\206\350\241\250\345\222\214\346\261\207\346\200\273\350\241\250_\345\272\217\345\217\267\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/view_generation/AntV\346\230\216\347\273\206\350\241\250\345\222\214\346\261\207\346\200\273\350\241\250_\345\272\217\345\217\267\350\256\276\347\275\256.png" rename to "docs/img/view_generation/AntV\346\230\216\347\273\206\350\241\250\345\222\214\346\261\207\346\200\273\350\241\250_\345\272\217\345\217\267\350\256\276\347\275\256.png" diff --git "a/v1/img/view_generation/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235.png" "b/docs/img/view_generation/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235.png" similarity index 100% rename from "v1/img/view_generation/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235.png" rename to "docs/img/view_generation/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235.png" diff --git "a/v1/img/view_generation/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235_\345\256\236\351\231\205\350\267\235\347\246\273.png" "b/docs/img/view_generation/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235_\345\256\236\351\231\205\350\267\235\347\246\273.png" similarity index 100% rename from "v1/img/view_generation/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235_\345\256\236\351\231\205\350\267\235\347\246\273.png" rename to "docs/img/view_generation/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235_\345\256\236\351\231\205\350\267\235\347\246\273.png" diff --git "a/v1/img/view_generation/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235_\347\231\276\345\210\206\346\257\224.png" "b/docs/img/view_generation/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235_\347\231\276\345\210\206\346\257\224.png" similarity index 100% rename from "v1/img/view_generation/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235_\347\231\276\345\210\206\346\257\224.png" rename to "docs/img/view_generation/ECharts\350\247\206\345\233\276\345\244\226\350\276\271\350\267\235_\347\231\276\345\210\206\346\257\224.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\344\270\226\347\225\214\345\234\260\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\344\270\226\347\225\214\345\234\260\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\344\270\226\347\225\214\345\234\260\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\344\270\226\347\225\214\345\234\260\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\344\273\252\350\241\250\347\233\230.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\344\273\252\350\241\250\347\233\230.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\344\273\252\350\241\250\347\233\230.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\344\273\252\350\241\250\347\233\230.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\345\210\206\347\273\204\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\345\210\206\347\273\204\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\345\210\206\347\273\204\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\345\210\206\347\273\204\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\345\210\206\347\273\204\346\237\261\347\212\266\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\345\210\206\347\273\204\346\237\261\347\212\266\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\345\210\206\347\273\204\346\237\261\347\212\266\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\345\210\206\347\273\204\346\237\261\347\212\266\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\345\217\214\346\212\230\347\272\277\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\345\217\214\346\212\230\347\272\277\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\345\217\214\346\212\230\347\272\277\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\345\217\214\346\212\230\347\272\277\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\345\234\260\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\345\234\260\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\345\234\260\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\345\234\260\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\345\237\272\347\241\200\346\237\261\347\212\266\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\345\237\272\347\241\200\346\237\261\347\212\266\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\345\237\272\347\241\200\346\237\261\347\212\266\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\345\237\272\347\241\200\346\237\261\347\212\266\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\345\240\206\345\217\240\346\212\230\347\272\277\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\345\240\206\345\217\240\346\212\230\347\272\277\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\345\240\206\345\217\240\346\212\230\347\272\277\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\345\240\206\345\217\240\346\212\230\347\272\277\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\346\212\230\347\272\277\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\346\212\230\347\272\277\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\346\212\230\347\272\277\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\346\212\230\347\272\277\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\346\230\216\347\273\206\350\241\250.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\346\230\216\347\273\206\350\241\250.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\346\230\216\347\273\206\350\241\250.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\346\230\216\347\273\206\350\241\250.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\346\250\252\345\220\221\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\346\250\252\345\220\221\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\346\250\252\345\220\221\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\346\250\252\345\220\221\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\346\250\252\345\220\221\346\237\261\347\212\266\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\346\250\252\345\220\221\346\237\261\347\212\266\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\346\250\252\345\220\221\346\237\261\347\212\266\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\346\250\252\345\220\221\346\237\261\347\212\266\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\346\250\252\345\220\221\347\231\276\345\210\206\346\257\224\346\237\261\347\212\266\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\346\250\252\345\220\221\347\231\276\345\210\206\346\257\224\346\237\261\347\212\266\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\346\250\252\345\220\221\347\231\276\345\210\206\346\257\224\346\237\261\347\212\266\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\346\250\252\345\220\221\347\231\276\345\210\206\346\257\224\346\237\261\347\212\266\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\346\260\224\346\263\241\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\346\260\224\346\263\241\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\346\260\224\346\263\241\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\346\260\224\346\263\241\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\346\260\264\346\263\242\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\346\260\264\346\263\242\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\346\260\264\346\263\242\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\346\260\264\346\263\242\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\346\261\207\346\200\273\350\241\250.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\346\261\207\346\200\273\350\241\250.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\346\261\207\346\200\273\350\241\250.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\346\261\207\346\200\273\350\241\250.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\346\274\217\346\226\227\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\346\274\217\346\226\227\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\346\274\217\346\226\227\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\346\274\217\346\226\227\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\347\200\221\345\270\203\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\347\200\221\345\270\203\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\347\200\221\345\270\203\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\347\200\221\345\270\203\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\347\216\253\347\221\260\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\347\216\253\347\221\260\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\347\216\253\347\221\260\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\347\216\253\347\221\260\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\347\216\253\347\221\260\347\216\257\345\275\242\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\347\216\253\347\221\260\347\216\257\345\275\242\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\347\216\253\347\221\260\347\216\257\345\275\242\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\347\216\253\347\221\260\347\216\257\345\275\242\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\347\216\257\345\275\242\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\347\216\257\345\275\242\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\347\216\257\345\275\242\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\347\216\257\345\275\242\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\347\231\276\345\210\206\346\257\224\346\237\261\347\212\266\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\347\231\276\345\210\206\346\257\224\346\237\261\347\212\266\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\347\231\276\345\210\206\346\257\224\346\237\261\347\212\266\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\347\231\276\345\210\206\346\257\224\346\237\261\347\212\266\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\347\237\251\345\275\242\346\240\221\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\347\237\251\345\275\242\346\240\221\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\347\237\251\345\275\242\346\240\221\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\347\237\251\345\275\242\346\240\221\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\350\257\215\344\272\221\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\350\257\215\344\272\221\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\350\257\215\344\272\221\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\350\257\215\344\272\221\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\351\233\267\350\276\276\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\351\233\267\350\276\276\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\351\233\267\350\276\276\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\351\233\267\350\276\276\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\351\235\242\347\247\257\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\351\235\242\347\247\257\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\351\235\242\347\247\257\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\351\235\242\347\247\257\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/2.0\351\245\274\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/2.0\351\245\274\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/2.0\351\245\274\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/2.0\351\245\274\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\344\270\226\347\225\214\345\234\260\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\344\270\226\347\225\214\345\234\260\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\344\270\226\347\225\214\345\234\260\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\344\270\226\347\225\214\345\234\260\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\344\273\252\350\241\250\347\233\230.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\344\273\252\350\241\250\347\233\230.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\344\273\252\350\241\250\347\233\230.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\344\273\252\350\241\250\347\233\230.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\344\273\252\350\241\250\347\233\230\345\210\273\345\272\246\346\226\207\345\255\227.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\344\273\252\350\241\250\347\233\230\345\210\273\345\272\246\346\226\207\345\255\227.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\344\273\252\350\241\250\347\233\230\345\210\273\345\272\246\346\226\207\345\255\227.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\344\273\252\350\241\250\347\233\230\345\210\273\345\272\246\346\226\207\345\255\227.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\345\215\227\344\270\201\346\240\274\345\260\224\347\216\253\347\221\260\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\345\215\227\344\270\201\346\240\274\345\260\224\347\216\253\347\221\260\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\345\215\227\344\270\201\346\240\274\345\260\224\347\216\253\347\221\260\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\345\215\227\344\270\201\346\240\274\345\260\224\347\216\253\347\221\260\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\345\237\272\347\241\200\346\212\230\347\272\277\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\345\237\272\347\241\200\346\212\230\347\272\277\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\345\237\272\347\241\200\346\212\230\347\272\277\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\345\237\272\347\241\200\346\212\230\347\272\277\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\345\237\272\347\241\200\346\225\243\347\202\271\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\345\237\272\347\241\200\346\225\243\347\202\271\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\345\237\272\347\241\200\346\225\243\347\202\271\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\345\237\272\347\241\200\346\225\243\347\202\271\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\345\237\272\347\241\200\346\237\261\347\212\266\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\345\237\272\347\241\200\346\237\261\347\212\266\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\345\237\272\347\241\200\346\237\261\347\212\266\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\345\237\272\347\241\200\346\237\261\347\212\266\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\345\237\272\347\241\200\351\245\274\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\345\237\272\347\241\200\351\245\274\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\345\237\272\347\241\200\351\245\274\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\345\237\272\347\241\200\351\245\274\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\345\240\206\345\217\240\346\212\230\347\272\277\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\345\240\206\345\217\240\346\212\230\347\272\277\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\345\240\206\345\217\240\346\212\230\347\272\277\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\345\240\206\345\217\240\346\212\230\347\272\277\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\346\214\207\346\240\207\345\215\241.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\346\214\207\346\240\207\345\215\241.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\346\214\207\346\240\207\345\215\241.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\346\214\207\346\240\207\345\215\241.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\346\225\243\347\202\271\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\346\225\243\347\202\271\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\346\225\243\347\202\271\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\346\225\243\347\202\271\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\346\226\207\346\234\254\345\215\241.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\346\226\207\346\234\254\345\215\241.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\346\226\207\346\234\254\345\215\241.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\346\226\207\346\234\254\345\215\241.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\346\230\216\347\273\206\350\241\250.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\346\230\216\347\273\206\350\241\250.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\346\230\216\347\273\206\350\241\250.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\346\230\216\347\273\206\350\241\250.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\346\230\216\347\273\206\350\241\250\345\244\247\345\260\217\350\256\276\347\275\256.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\346\230\216\347\273\206\350\241\250\345\244\247\345\260\217\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\346\230\216\347\273\206\350\241\250\345\244\247\345\260\217\350\256\276\347\275\256.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\346\230\216\347\273\206\350\241\250\345\244\247\345\260\217\350\256\276\347\275\256.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\346\230\216\347\273\206\350\241\250\347\277\273\351\241\265\346\225\210\346\236\234.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\346\230\216\347\273\206\350\241\250\347\277\273\351\241\265\346\225\210\346\236\234.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\346\230\216\347\273\206\350\241\250\347\277\273\351\241\265\346\225\210\346\236\234.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\346\230\216\347\273\206\350\241\250\347\277\273\351\241\265\346\225\210\346\236\234.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\346\231\256\351\200\232\345\234\260\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\346\231\256\351\200\232\345\234\260\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\346\231\256\351\200\232\345\234\260\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\346\231\256\351\200\232\345\234\260\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\346\250\252\345\220\221\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\346\250\252\345\220\221\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\346\250\252\345\220\221\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\346\250\252\345\220\221\345\240\206\345\217\240\346\237\261\347\212\266\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\346\250\252\345\220\221\346\237\261\347\212\266\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\346\250\252\345\220\221\346\237\261\347\212\266\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\346\250\252\345\220\221\346\237\261\347\212\266\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\346\250\252\345\220\221\346\237\261\347\212\266\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\346\260\224\346\263\241\345\234\260\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\346\260\224\346\263\241\345\234\260\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\346\260\224\346\263\241\345\234\260\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\346\260\224\346\263\241\345\234\260\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\346\261\207\346\200\273\350\241\250.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\346\261\207\346\200\273\350\241\250.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\346\261\207\346\200\273\350\241\250.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\346\261\207\346\200\273\350\241\250.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\346\261\207\346\200\273\350\241\250\345\233\272\345\256\232\345\210\227\345\256\275.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\346\261\207\346\200\273\350\241\250\345\233\272\345\256\232\345\210\227\345\256\275.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\346\261\207\346\200\273\350\241\250\345\233\272\345\256\232\345\210\227\345\256\275.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\346\261\207\346\200\273\350\241\250\345\233\272\345\256\232\345\210\227\345\256\275.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\346\274\217\346\226\227\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\346\274\217\346\226\227\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\346\274\217\346\226\227\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\346\274\217\346\226\227\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\347\216\253\347\221\260\347\216\257\345\275\242\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\347\216\253\347\221\260\347\216\257\345\275\242\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\347\216\253\347\221\260\347\216\257\345\275\242\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\347\216\253\347\221\260\347\216\257\345\275\242\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\347\216\257\345\275\242\351\245\274\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\347\216\257\345\275\242\351\245\274\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\347\216\257\345\275\242\351\245\274\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\347\216\257\345\275\242\351\245\274\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\347\237\251\345\275\242\346\240\221\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\347\237\251\345\275\242\346\240\221\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\347\237\251\345\275\242\346\240\221\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\347\237\251\345\275\242\346\240\221\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\347\273\204\345\220\210\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\347\273\204\345\220\210\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\347\273\204\345\220\210\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\347\273\204\345\220\210\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echarts\351\233\267\350\276\276\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/echarts\351\233\267\350\276\276\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echarts\351\233\267\350\276\276\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/echarts\351\233\267\350\276\276\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/echart\346\230\216\347\273\206\350\241\250\344\270\213\346\213\211\346\225\210\346\236\234.png" "b/docs/img/view_generation/view_gallery/ECharts/echart\346\230\216\347\273\206\350\241\250\344\270\213\346\213\211\346\225\210\346\236\234.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/echart\346\230\216\347\273\206\350\241\250\344\270\213\346\213\211\346\225\210\346\236\234.png" rename to "docs/img/view_generation/view_gallery/ECharts/echart\346\230\216\347\273\206\350\241\250\344\270\213\346\213\211\346\225\210\346\236\234.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/\346\214\207\346\240\207\345\215\241.png" "b/docs/img/view_generation/view_gallery/ECharts/\346\214\207\346\240\207\345\215\241.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/\346\214\207\346\240\207\345\215\241.png" rename to "docs/img/view_generation/view_gallery/ECharts/\346\214\207\346\240\207\345\215\241.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/\346\225\243\347\202\271\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/\346\225\243\347\202\271\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/\346\225\243\347\202\271\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/\346\225\243\347\202\271\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/\346\240\207\350\256\260\346\240\267\345\274\217.png" "b/docs/img/view_generation/view_gallery/ECharts/\346\240\207\350\256\260\346\240\267\345\274\217.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/\346\240\207\350\256\260\346\240\267\345\274\217.png" rename to "docs/img/view_generation/view_gallery/ECharts/\346\240\207\350\256\260\346\240\267\345\274\217.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/\346\260\224\346\263\241\345\234\260\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/\346\260\224\346\263\241\345\234\260\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/\346\260\224\346\263\241\345\234\260\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/\346\260\224\346\263\241\345\234\260\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/\347\203\255\345\212\233\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/\347\203\255\345\212\233\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/\347\203\255\345\212\233\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/\347\203\255\345\212\233\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/\347\273\204\345\220\210\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/\347\273\204\345\220\210\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/\347\273\204\345\220\210\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/\347\273\204\345\220\210\345\233\276.png" diff --git "a/v1/img/view_generation/view_gallery/ECharts/\347\273\217\347\272\254\345\272\246\346\211\223\346\240\207\350\256\260.png" "b/docs/img/view_generation/view_gallery/ECharts/\347\273\217\347\272\254\345\272\246\346\211\223\346\240\207\350\256\260.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/ECharts/\347\273\217\347\272\254\345\272\246\346\211\223\346\240\207\350\256\260.png" rename to "docs/img/view_generation/view_gallery/ECharts/\347\273\217\347\272\254\345\272\246\346\211\223\346\240\207\350\256\260.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/\350\261\241\351\231\220\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/\350\261\241\351\231\220\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/\350\261\241\351\231\220\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/\350\261\241\351\231\220\345\233\276.png" diff --git "a/v2/img/view_generation/view_gallery/ECharts/\351\200\217\350\247\206\345\233\276.png" "b/docs/img/view_generation/view_gallery/ECharts/\351\200\217\350\247\206\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/view_gallery/ECharts/\351\200\217\350\247\206\345\233\276.png" rename to "docs/img/view_generation/view_gallery/ECharts/\351\200\217\350\247\206\345\233\276.png" diff --git "a/v1/img/view_generation/\344\270\213\351\222\273.png" "b/docs/img/view_generation/\344\270\213\351\222\273.png" similarity index 100% rename from "v1/img/view_generation/\344\270\213\351\222\273.png" rename to "docs/img/view_generation/\344\270\213\351\222\273.png" diff --git "a/v1/img/view_generation/\344\270\213\351\222\273\350\277\224\345\233\236.png" "b/docs/img/view_generation/\344\270\213\351\222\273\350\277\224\345\233\236.png" similarity index 100% rename from "v1/img/view_generation/\344\270\213\351\222\273\350\277\224\345\233\236.png" rename to "docs/img/view_generation/\344\270\213\351\222\273\350\277\224\345\233\236.png" diff --git "a/v2/img/view_generation/\344\273\252\350\241\250\346\235\277\345\233\276\350\241\250\350\277\207\346\273\244\345\231\250\346\224\257\346\214\201\345\212\250\346\200\201\346\227\245\346\234\237.png" "b/docs/img/view_generation/\344\273\252\350\241\250\346\235\277\345\233\276\350\241\250\350\277\207\346\273\244\345\231\250\346\224\257\346\214\201\345\212\250\346\200\201\346\227\245\346\234\237.png" similarity index 100% rename from "v2/img/view_generation/\344\273\252\350\241\250\346\235\277\345\233\276\350\241\250\350\277\207\346\273\244\345\231\250\346\224\257\346\214\201\345\212\250\346\200\201\346\227\245\346\234\237.png" rename to "docs/img/view_generation/\344\273\252\350\241\250\346\235\277\345\233\276\350\241\250\350\277\207\346\273\244\345\231\250\346\224\257\346\214\201\345\212\250\346\200\201\346\227\245\346\234\237.png" diff --git "a/v2/img/view_generation/\344\273\252\350\241\250\346\235\277\346\235\241\344\273\266\346\240\267\345\274\217\346\225\210\346\236\234.png" "b/docs/img/view_generation/\344\273\252\350\241\250\346\235\277\346\235\241\344\273\266\346\240\267\345\274\217\346\225\210\346\236\234.png" similarity index 100% rename from "v2/img/view_generation/\344\273\252\350\241\250\346\235\277\346\235\241\344\273\266\346\240\267\345\274\217\346\225\210\346\236\234.png" rename to "docs/img/view_generation/\344\273\252\350\241\250\346\235\277\346\235\241\344\273\266\346\240\267\345\274\217\346\225\210\346\236\234.png" diff --git "a/v2/img/view_generation/\344\273\252\350\241\250\346\235\277\350\241\250\346\240\274\346\240\267\345\274\217.png" "b/docs/img/view_generation/\344\273\252\350\241\250\346\235\277\350\241\250\346\240\274\346\240\267\345\274\217.png" similarity index 100% rename from "v2/img/view_generation/\344\273\252\350\241\250\346\235\277\350\241\250\346\240\274\346\240\267\345\274\217.png" rename to "docs/img/view_generation/\344\273\252\350\241\250\346\235\277\350\241\250\346\240\274\346\240\267\345\274\217.png" diff --git "a/v2/img/view_generation/\344\273\252\350\241\250\346\235\277\350\256\276\347\275\256\346\235\241\344\273\266\346\240\267\345\274\217.png" "b/docs/img/view_generation/\344\273\252\350\241\250\346\235\277\350\256\276\347\275\256\346\235\241\344\273\266\346\240\267\345\274\217.png" similarity index 100% rename from "v2/img/view_generation/\344\273\252\350\241\250\346\235\277\350\256\276\347\275\256\346\235\241\344\273\266\346\240\267\345\274\217.png" rename to "docs/img/view_generation/\344\273\252\350\241\250\346\235\277\350\256\276\347\275\256\346\235\241\344\273\266\346\240\267\345\274\217.png" diff --git "a/v2/img/view_generation/\344\273\252\350\241\250\346\235\277\350\277\207\346\273\244\345\231\250.png" "b/docs/img/view_generation/\344\273\252\350\241\250\346\235\277\350\277\207\346\273\244\345\231\250.png" similarity index 100% rename from "v2/img/view_generation/\344\273\252\350\241\250\346\235\277\350\277\207\346\273\244\345\231\250.png" rename to "docs/img/view_generation/\344\273\252\350\241\250\346\235\277\350\277\207\346\273\244\345\231\250.png" diff --git "a/v2/img/view_generation/\344\273\252\350\241\250\346\235\277\350\277\207\346\273\244\345\231\250\350\256\276\347\275\256\346\235\241\344\273\266.png" "b/docs/img/view_generation/\344\273\252\350\241\250\346\235\277\350\277\207\346\273\244\345\231\250\350\256\276\347\275\256\346\235\241\344\273\266.png" similarity index 100% rename from "v2/img/view_generation/\344\273\252\350\241\250\346\235\277\350\277\207\346\273\244\345\231\250\350\256\276\347\275\256\346\235\241\344\273\266.png" rename to "docs/img/view_generation/\344\273\252\350\241\250\346\235\277\350\277\207\346\273\244\345\231\250\350\256\276\347\275\256\346\235\241\344\273\266.png" diff --git "a/v2/img/view_generation/\345\210\206\347\273\204\346\237\261\347\272\277\347\273\204\345\220\210\345\233\276.png" "b/docs/img/view_generation/\345\210\206\347\273\204\346\237\261\347\272\277\347\273\204\345\220\210\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/\345\210\206\347\273\204\346\237\261\347\272\277\347\273\204\345\220\210\345\233\276.png" rename to "docs/img/view_generation/\345\210\206\347\273\204\346\237\261\347\272\277\347\273\204\345\220\210\345\233\276.png" diff --git "a/v2/img/view_generation/\345\214\272\351\227\264\346\235\241\345\275\242\345\233\276.png" "b/docs/img/view_generation/\345\214\272\351\227\264\346\235\241\345\275\242\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/\345\214\272\351\227\264\346\235\241\345\275\242\345\233\276.png" rename to "docs/img/view_generation/\345\214\272\351\227\264\346\235\241\345\275\242\345\233\276.png" diff --git "a/v2/img/view_generation/\345\217\214\347\272\277\347\273\204\345\220\210\345\233\276.png" "b/docs/img/view_generation/\345\217\214\347\272\277\347\273\204\345\220\210\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/\345\217\214\347\272\277\347\273\204\345\220\210\345\233\276.png" rename to "docs/img/view_generation/\345\217\214\347\272\277\347\273\204\345\220\210\345\233\276.png" diff --git "a/v1/img/view_generation/\345\217\257\351\200\211\346\214\207\346\240\207\345\210\227\350\241\250.png" "b/docs/img/view_generation/\345\217\257\351\200\211\346\214\207\346\240\207\345\210\227\350\241\250.png" similarity index 100% rename from "v1/img/view_generation/\345\217\257\351\200\211\346\214\207\346\240\207\345\210\227\350\241\250.png" rename to "docs/img/view_generation/\345\217\257\351\200\211\346\214\207\346\240\207\345\210\227\350\241\250.png" diff --git "a/v1/img/view_generation/\345\217\257\351\200\211\347\273\264\345\272\246\345\210\227\350\241\250.png" "b/docs/img/view_generation/\345\217\257\351\200\211\347\273\264\345\272\246\345\210\227\350\241\250.png" similarity index 100% rename from "v1/img/view_generation/\345\217\257\351\200\211\347\273\264\345\272\246\345\210\227\350\241\250.png" rename to "docs/img/view_generation/\345\217\257\351\200\211\347\273\264\345\272\246\345\210\227\350\241\250.png" diff --git "a/v1/img/view_generation/\345\220\214\346\257\224\347\216\257\346\257\224.png" "b/docs/img/view_generation/\345\220\214\346\257\224\347\216\257\346\257\224.png" similarity index 100% rename from "v1/img/view_generation/\345\220\214\346\257\224\347\216\257\346\257\224.png" rename to "docs/img/view_generation/\345\220\214\346\257\224\347\216\257\346\257\224.png" diff --git "a/v1/img/view_generation/\345\233\276\345\275\242\345\261\236\346\200\247_\344\277\256\346\224\271\351\242\234\350\211\262.png" "b/docs/img/view_generation/\345\233\276\345\275\242\345\261\236\346\200\247_\344\277\256\346\224\271\351\242\234\350\211\262.png" similarity index 100% rename from "v1/img/view_generation/\345\233\276\345\275\242\345\261\236\346\200\247_\344\277\256\346\224\271\351\242\234\350\211\262.png" rename to "docs/img/view_generation/\345\233\276\345\275\242\345\261\236\346\200\247_\344\277\256\346\224\271\351\242\234\350\211\262.png" diff --git "a/v1/img/view_generation/\345\233\276\345\275\242\345\261\236\346\200\247_\346\270\220\345\217\230\350\211\262\346\226\271\346\241\210.png" "b/docs/img/view_generation/\345\233\276\345\275\242\345\261\236\346\200\247_\346\270\220\345\217\230\350\211\262\346\226\271\346\241\210.png" similarity index 100% rename from "v1/img/view_generation/\345\233\276\345\275\242\345\261\236\346\200\247_\346\270\220\345\217\230\350\211\262\346\226\271\346\241\210.png" rename to "docs/img/view_generation/\345\233\276\345\275\242\345\261\236\346\200\247_\346\270\220\345\217\230\350\211\262\346\226\271\346\241\210.png" diff --git "a/v1/img/view_generation/\345\233\276\345\275\242\345\261\236\346\200\247_\346\270\220\345\217\230\351\242\234\350\211\262.png" "b/docs/img/view_generation/\345\233\276\345\275\242\345\261\236\346\200\247_\346\270\220\345\217\230\351\242\234\350\211\262.png" similarity index 100% rename from "v1/img/view_generation/\345\233\276\345\275\242\345\261\236\346\200\247_\346\270\220\345\217\230\351\242\234\350\211\262.png" rename to "docs/img/view_generation/\345\233\276\345\275\242\345\261\236\346\200\247_\346\270\220\345\217\230\351\242\234\350\211\262.png" diff --git "a/v1/img/view_generation/\345\233\276\345\275\242\345\261\236\346\200\247_\350\207\252\345\256\232\344\271\211\351\205\215\350\211\262.png" "b/docs/img/view_generation/\345\233\276\345\275\242\345\261\236\346\200\247_\350\207\252\345\256\232\344\271\211\351\205\215\350\211\262.png" similarity index 100% rename from "v1/img/view_generation/\345\233\276\345\275\242\345\261\236\346\200\247_\350\207\252\345\256\232\344\271\211\351\205\215\350\211\262.png" rename to "docs/img/view_generation/\345\233\276\345\275\242\345\261\236\346\200\247_\350\207\252\345\256\232\344\271\211\351\205\215\350\211\262.png" diff --git "a/v1/img/view_generation/\345\233\276\350\241\250\345\261\225\347\244\272.png" "b/docs/img/view_generation/\345\233\276\350\241\250\345\261\225\347\244\272.png" similarity index 100% rename from "v1/img/view_generation/\345\233\276\350\241\250\345\261\225\347\244\272.png" rename to "docs/img/view_generation/\345\233\276\350\241\250\345\261\225\347\244\272.png" diff --git "a/v2/img/view_generation/\345\233\276\350\241\250\346\214\207\346\240\207\346\224\257\346\214\201\345\277\253\351\200\237\350\256\241\347\256\227\347\264\257\345\212\240\344\273\252\350\241\250\346\235\277.png" "b/docs/img/view_generation/\345\233\276\350\241\250\346\214\207\346\240\207\346\224\257\346\214\201\345\277\253\351\200\237\350\256\241\347\256\227\347\264\257\345\212\240\344\273\252\350\241\250\346\235\277.png" similarity index 100% rename from "v2/img/view_generation/\345\233\276\350\241\250\346\214\207\346\240\207\346\224\257\346\214\201\345\277\253\351\200\237\350\256\241\347\256\227\347\264\257\345\212\240\344\273\252\350\241\250\346\235\277.png" rename to "docs/img/view_generation/\345\233\276\350\241\250\346\214\207\346\240\207\346\224\257\346\214\201\345\277\253\351\200\237\350\256\241\347\256\227\347\264\257\345\212\240\344\273\252\350\241\250\346\235\277.png" diff --git "a/v1/img/view_generation/\345\233\276\350\241\250\347\261\273\345\236\213.png" "b/docs/img/view_generation/\345\233\276\350\241\250\347\261\273\345\236\213.png" similarity index 100% rename from "v1/img/view_generation/\345\233\276\350\241\250\347\261\273\345\236\213.png" rename to "docs/img/view_generation/\345\233\276\350\241\250\347\261\273\345\236\213.png" diff --git "a/v2/img/view_generation/\345\233\276\350\241\250\350\277\207\346\273\244\345\231\250\346\224\257\346\214\201\345\212\250\346\200\201\346\227\245\346\234\2372.png" "b/docs/img/view_generation/\345\233\276\350\241\250\350\277\207\346\273\244\345\231\250\346\224\257\346\214\201\345\212\250\346\200\201\346\227\245\346\234\2372.png" similarity index 100% rename from "v2/img/view_generation/\345\233\276\350\241\250\350\277\207\346\273\244\345\231\250\346\224\257\346\214\201\345\212\250\346\200\201\346\227\245\346\234\2372.png" rename to "docs/img/view_generation/\345\233\276\350\241\250\350\277\207\346\273\244\345\231\250\346\224\257\346\214\201\345\212\250\346\200\201\346\227\245\346\234\2372.png" diff --git "a/v2/img/view_generation/\345\233\276\350\241\250\350\277\207\346\273\244\345\231\250\346\224\257\346\214\201\345\244\215\346\235\202\347\232\204\344\270\216\346\210\226\346\235\241\344\273\266\350\256\276\347\275\256.png" "b/docs/img/view_generation/\345\233\276\350\241\250\350\277\207\346\273\244\345\231\250\346\224\257\346\214\201\345\244\215\346\235\202\347\232\204\344\270\216\346\210\226\346\235\241\344\273\266\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/\345\233\276\350\241\250\350\277\207\346\273\244\345\231\250\346\224\257\346\214\201\345\244\215\346\235\202\347\232\204\344\270\216\346\210\226\346\235\241\344\273\266\350\256\276\347\275\256.png" rename to "docs/img/view_generation/\345\233\276\350\241\250\350\277\207\346\273\244\345\231\250\346\224\257\346\214\201\345\244\215\346\235\202\347\232\204\344\270\216\346\210\226\346\235\241\344\273\266\350\256\276\347\275\256.png" diff --git "a/v1/img/view_generation/\345\234\260\345\233\276\351\222\273\345\217\226\350\256\276\347\275\256.png" "b/docs/img/view_generation/\345\234\260\345\233\276\351\222\273\345\217\226\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/view_generation/\345\234\260\345\233\276\351\222\273\345\217\226\350\256\276\347\275\256.png" rename to "docs/img/view_generation/\345\234\260\345\233\276\351\222\273\345\217\226\350\256\276\347\275\256.png" diff --git "a/v1/img/view_generation/\345\235\220\346\240\207\350\275\264\350\275\264\347\272\277\346\230\276\347\244\272\346\216\247\345\210\266.png" "b/docs/img/view_generation/\345\235\220\346\240\207\350\275\264\350\275\264\347\272\277\346\230\276\347\244\272\346\216\247\345\210\266.png" similarity index 100% rename from "v1/img/view_generation/\345\235\220\346\240\207\350\275\264\350\275\264\347\272\277\346\230\276\347\244\272\346\216\247\345\210\266.png" rename to "docs/img/view_generation/\345\235\220\346\240\207\350\275\264\350\275\264\347\272\277\346\230\276\347\244\272\346\216\247\345\210\266.png" diff --git "a/v2/img/view_generation/\345\240\206\345\217\240\346\237\261\347\272\277\347\273\204\345\220\210\345\233\276.png" "b/docs/img/view_generation/\345\240\206\345\217\240\346\237\261\347\272\277\347\273\204\345\220\210\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/\345\240\206\345\217\240\346\237\261\347\272\277\347\273\204\345\220\210\345\233\276.png" rename to "docs/img/view_generation/\345\240\206\345\217\240\346\237\261\347\272\277\347\273\204\345\220\210\345\233\276.png" diff --git "a/v1/img/view_generation/\345\244\215\347\224\250\350\247\206\345\233\276_\345\205\245\345\217\243.png" "b/docs/img/view_generation/\345\244\215\347\224\250\350\247\206\345\233\276_\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/view_generation/\345\244\215\347\224\250\350\247\206\345\233\276_\345\205\245\345\217\243.png" rename to "docs/img/view_generation/\345\244\215\347\224\250\350\247\206\345\233\276_\345\205\245\345\217\243.png" diff --git "a/v1/img/view_generation/\345\244\215\347\224\250\350\247\206\345\233\276_\347\273\223\346\236\234.png" "b/docs/img/view_generation/\345\244\215\347\224\250\350\247\206\345\233\276_\347\273\223\346\236\234.png" similarity index 100% rename from "v1/img/view_generation/\345\244\215\347\224\250\350\247\206\345\233\276_\347\273\223\346\236\234.png" rename to "docs/img/view_generation/\345\244\215\347\224\250\350\247\206\345\233\276_\347\273\223\346\236\234.png" diff --git "a/v1/img/view_generation/\345\244\215\347\224\250\350\247\206\345\233\276_\351\200\211\346\213\251\350\247\206\345\233\276.png" "b/docs/img/view_generation/\345\244\215\347\224\250\350\247\206\345\233\276_\351\200\211\346\213\251\350\247\206\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/\345\244\215\347\224\250\350\247\206\345\233\276_\351\200\211\346\213\251\350\247\206\345\233\276.png" rename to "docs/img/view_generation/\345\244\215\347\224\250\350\247\206\345\233\276_\351\200\211\346\213\251\350\247\206\345\233\276.png" diff --git "a/v2/img/view_generation/\345\255\220\345\274\271\345\233\276.png" "b/docs/img/view_generation/\345\255\220\345\274\271\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/\345\255\220\345\274\271\345\233\276.png" rename to "docs/img/view_generation/\345\255\220\345\274\271\345\233\276.png" diff --git "a/v1/img/view_generation/\345\255\227\346\256\265\347\274\226\350\276\221.png" "b/docs/img/view_generation/\345\255\227\346\256\265\347\274\226\350\276\221.png" similarity index 100% rename from "v1/img/view_generation/\345\255\227\346\256\265\347\274\226\350\276\221.png" rename to "docs/img/view_generation/\345\255\227\346\256\265\347\274\226\350\276\221.png" diff --git "a/v2/img/view_generation/\345\257\271\347\247\260\346\235\241\345\275\242\345\233\276.png" "b/docs/img/view_generation/\345\257\271\347\247\260\346\235\241\345\275\242\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/\345\257\271\347\247\260\346\235\241\345\275\242\345\233\276.png" rename to "docs/img/view_generation/\345\257\271\347\247\260\346\235\241\345\275\242\345\233\276.png" diff --git "a/v1/img/view_generation/\346\213\226\345\212\250\345\255\227\346\256\265.png" "b/docs/img/view_generation/\346\213\226\345\212\250\345\255\227\346\256\265.png" similarity index 100% rename from "v1/img/view_generation/\346\213\226\345\212\250\345\255\227\346\256\265.png" rename to "docs/img/view_generation/\346\213\226\345\212\250\345\255\227\346\256\265.png" diff --git "a/v1/img/view_generation/\346\214\207\346\240\207_\346\233\264\346\224\271\345\255\227\346\256\265\345\220\215\347\247\260\345\205\245\345\217\243.png" "b/docs/img/view_generation/\346\214\207\346\240\207_\346\233\264\346\224\271\345\255\227\346\256\265\345\220\215\347\247\260\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/view_generation/\346\214\207\346\240\207_\346\233\264\346\224\271\345\255\227\346\256\265\345\220\215\347\247\260\345\205\245\345\217\243.png" rename to "docs/img/view_generation/\346\214\207\346\240\207_\346\233\264\346\224\271\345\255\227\346\256\265\345\220\215\347\247\260\345\205\245\345\217\243.png" diff --git "a/v2/img/view_generation/\346\214\207\346\240\207\345\215\241\346\224\257\346\214\201\346\230\276\347\244\272\345\220\214\347\216\257\346\257\224\346\225\260\346\215\2561.png" "b/docs/img/view_generation/\346\214\207\346\240\207\345\215\241\346\224\257\346\214\201\346\230\276\347\244\272\345\220\214\347\216\257\346\257\224\346\225\260\346\215\2561.png" similarity index 100% rename from "v2/img/view_generation/\346\214\207\346\240\207\345\215\241\346\224\257\346\214\201\346\230\276\347\244\272\345\220\214\347\216\257\346\257\224\346\225\260\346\215\2561.png" rename to "docs/img/view_generation/\346\214\207\346\240\207\345\215\241\346\224\257\346\214\201\346\230\276\347\244\272\345\220\214\347\216\257\346\257\224\346\225\260\346\215\2561.png" diff --git "a/v1/img/view_generation/\346\214\207\346\240\207\345\261\236\346\200\247\350\256\276\347\275\256.png" "b/docs/img/view_generation/\346\214\207\346\240\207\345\261\236\346\200\247\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/view_generation/\346\214\207\346\240\207\345\261\236\346\200\247\350\256\276\347\275\256.png" rename to "docs/img/view_generation/\346\214\207\346\240\207\345\261\236\346\200\247\350\256\276\347\275\256.png" diff --git "a/v1/img/view_generation/\346\214\207\346\240\207\347\273\264\345\272\246\351\200\211\346\213\251.png" "b/docs/img/view_generation/\346\214\207\346\240\207\347\273\264\345\272\246\351\200\211\346\213\251.png" similarity index 100% rename from "v1/img/view_generation/\346\214\207\346\240\207\347\273\264\345\272\246\351\200\211\346\213\251.png" rename to "docs/img/view_generation/\346\214\207\346\240\207\347\273\264\345\272\246\351\200\211\346\213\251.png" diff --git "a/v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\2172.0\350\256\276\347\275\256\350\276\205\345\212\251\347\272\277.png" "b/docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\2172.0\350\256\276\347\275\256\350\276\205\345\212\251\347\272\277.png" similarity index 100% rename from "v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\2172.0\350\256\276\347\275\256\350\276\205\345\212\251\347\272\277.png" rename to "docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\2172.0\350\256\276\347\275\256\350\276\205\345\212\251\347\272\277.png" diff --git "a/v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\2172.0\350\256\276\347\275\256\350\276\205\345\212\251\347\272\277\346\225\210\346\236\234.png" "b/docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\2172.0\350\256\276\347\275\256\350\276\205\345\212\251\347\272\277\346\225\210\346\236\234.png" similarity index 100% rename from "v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\2172.0\350\256\276\347\275\256\350\276\205\345\212\251\347\272\277\346\225\210\346\236\234.png" rename to "docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\2172.0\350\256\276\347\275\256\350\276\205\345\212\251\347\272\277\346\225\210\346\236\234.png" diff --git "a/v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\345\215\241\345\220\214\347\216\257\346\257\224.png" "b/docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\345\215\241\345\220\214\347\216\257\346\257\224.png" similarity index 100% rename from "v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\345\215\241\345\220\214\347\216\257\346\257\224.png" rename to "docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\214\207\346\240\207\345\215\241\345\220\214\347\216\257\346\257\224.png" diff --git "a/v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\224\257\346\214\201\345\210\207\346\215\242\345\233\276\350\241\250\347\261\273\345\236\213.png" "b/docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\224\257\346\214\201\345\210\207\346\215\242\345\233\276\350\241\250\347\261\273\345\236\213.png" similarity index 100% rename from "v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\224\257\346\214\201\345\210\207\346\215\242\345\233\276\350\241\250\347\261\273\345\236\213.png" rename to "docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\224\257\346\214\201\345\210\207\346\215\242\345\233\276\350\241\250\347\261\273\345\236\213.png" diff --git "a/v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\235\241\344\273\266\346\240\267\345\274\217\346\225\210\346\236\234.png" "b/docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\235\241\344\273\266\346\240\267\345\274\217\346\225\210\346\236\234.png" similarity index 100% rename from "v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\235\241\344\273\266\346\240\267\345\274\217\346\225\210\346\236\234.png" rename to "docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\235\241\344\273\266\346\240\267\345\274\217\346\225\210\346\236\234.png" diff --git "a/v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\261\207\346\200\273\350\241\250\345\210\206\351\241\265\345\261\225\347\244\272.png" "b/docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\261\207\346\200\273\350\241\250\345\210\206\351\241\265\345\261\225\347\244\272.png" similarity index 100% rename from "v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\261\207\346\200\273\350\241\250\345\210\206\351\241\265\345\261\225\347\244\272.png" rename to "docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\261\207\346\200\273\350\241\250\345\210\206\351\241\265\345\261\225\347\244\272.png" diff --git "a/v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\261\207\346\200\273\350\241\250\346\200\273\350\256\241\346\224\257\346\214\201\346\225\260\345\200\274\345\255\227\346\256\265\346\261\207\346\200\273\346\226\271\345\274\217\351\205\215\347\275\256.png" "b/docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\261\207\346\200\273\350\241\250\346\200\273\350\256\241\346\224\257\346\214\201\346\225\260\345\200\274\345\255\227\346\256\265\346\261\207\346\200\273\346\226\271\345\274\217\351\205\215\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\261\207\346\200\273\350\241\250\346\200\273\350\256\241\346\224\257\346\214\201\346\225\260\345\200\274\345\255\227\346\256\265\346\261\207\346\200\273\346\226\271\345\274\217\351\205\215\347\275\256.png" rename to "docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\261\207\346\200\273\350\241\250\346\200\273\350\256\241\346\224\257\346\214\201\346\225\260\345\200\274\345\255\227\346\256\265\346\261\207\346\200\273\346\226\271\345\274\217\351\205\215\347\275\256.png" diff --git "a/v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\267\273\345\212\240\346\235\241\344\273\266.png" "b/docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\267\273\345\212\240\346\235\241\344\273\266.png" similarity index 100% rename from "v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\267\273\345\212\240\346\235\241\344\273\266.png" rename to "docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\346\267\273\345\212\240\346\235\241\344\273\266.png" diff --git "a/v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\241\250\346\240\274\346\240\267\345\274\217.png" "b/docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\241\250\346\240\274\346\240\267\345\274\217.png" similarity index 100% rename from "v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\241\250\346\240\274\346\240\267\345\274\217.png" rename to "docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\241\250\346\240\274\346\240\267\345\274\217.png" diff --git "a/v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\241\250\346\240\274\346\240\267\345\274\217\350\256\276\347\275\256.png" "b/docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\241\250\346\240\274\346\240\267\345\274\217\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\241\250\346\240\274\346\240\267\345\274\217\350\256\276\347\275\256.png" rename to "docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\241\250\346\240\274\346\240\267\345\274\217\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\346\235\241\344\273\266\346\240\267\345\274\217.png" "b/docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\346\235\241\344\273\266\346\240\267\345\274\217.png" similarity index 100% rename from "v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\346\235\241\344\273\266\346\240\267\345\274\217.png" rename to "docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\256\276\347\275\256\346\235\241\344\273\266\346\240\267\345\274\217.png" diff --git "a/v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\276\205\345\212\251\347\272\277\346\226\260\345\242\236\343\200\220\346\234\200\345\220\216\344\270\200\351\241\271\343\200\221\351\200\211\351\241\2711.png" "b/docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\276\205\345\212\251\347\272\277\346\226\260\345\242\236\343\200\220\346\234\200\345\220\216\344\270\200\351\241\271\343\200\221\351\200\211\351\241\2711.png" similarity index 100% rename from "v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\276\205\345\212\251\347\272\277\346\226\260\345\242\236\343\200\220\346\234\200\345\220\216\344\270\200\351\241\271\343\200\221\351\200\211\351\241\2711.png" rename to "docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\276\205\345\212\251\347\272\277\346\226\260\345\242\236\343\200\220\346\234\200\345\220\216\344\270\200\351\241\271\343\200\221\351\200\211\351\241\2711.png" diff --git "a/v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\276\205\345\212\251\347\272\277\346\226\260\345\242\236\343\200\220\346\234\200\345\220\216\344\270\200\351\241\271\343\200\221\351\200\211\351\241\2712.png" "b/docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\276\205\345\212\251\347\272\277\346\226\260\345\242\236\343\200\220\346\234\200\345\220\216\344\270\200\351\241\271\343\200\221\351\200\211\351\241\2712.png" similarity index 100% rename from "v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\276\205\345\212\251\347\272\277\346\226\260\345\242\236\343\200\220\346\234\200\345\220\216\344\270\200\351\241\271\343\200\221\351\200\211\351\241\2712.png" rename to "docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\276\205\345\212\251\347\272\277\346\226\260\345\242\236\343\200\220\346\234\200\345\220\216\344\270\200\351\241\271\343\200\221\351\200\211\351\241\2712.png" diff --git "a/v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250.png" "b/docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250.png" similarity index 100% rename from "v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250.png" rename to "docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250.png" diff --git "a/v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250\345\212\250\346\200\201\346\227\266\351\227\264.png" "b/docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250\345\212\250\346\200\201\346\227\266\351\227\264.png" similarity index 100% rename from "v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250\345\212\250\346\200\201\346\227\266\351\227\264.png" rename to "docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\350\277\207\346\273\244\345\231\250\345\212\250\346\200\201\346\227\266\351\227\264.png" diff --git "a/v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\351\200\217\350\247\206\350\241\250\346\226\260\345\242\236\350\241\214\345\210\227\350\275\254\347\275\256\345\212\237\350\203\275.png" "b/docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\351\200\217\350\247\206\350\241\250\346\226\260\345\242\236\350\241\214\345\210\227\350\275\254\347\275\256\345\212\237\350\203\275.png" similarity index 100% rename from "v2/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\351\200\217\350\247\206\350\241\250\346\226\260\345\242\236\350\241\214\345\210\227\350\275\254\347\275\256\345\212\237\350\203\275.png" rename to "docs/img/view_generation/\346\225\260\346\215\256\345\244\247\345\261\217\351\200\217\350\247\206\350\241\250\346\226\260\345\242\236\350\241\214\345\210\227\350\275\254\347\275\256\345\212\237\350\203\275.png" diff --git "a/v1/img/view_generation/view_gallery/AntV/\346\225\260\346\215\256\346\240\267\345\274\217\345\210\207\346\215\242.png" "b/docs/img/view_generation/\346\225\260\346\215\256\346\240\267\345\274\217\345\210\207\346\215\242.png" similarity index 100% rename from "v1/img/view_generation/view_gallery/AntV/\346\225\260\346\215\256\346\240\267\345\274\217\345\210\207\346\215\242.png" rename to "docs/img/view_generation/\346\225\260\346\215\256\346\240\267\345\274\217\345\210\207\346\215\242.png" diff --git "a/v1/img/view_generation/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265\347\256\241\347\220\206\345\205\245\345\217\243.png" "b/docs/img/view_generation/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265\347\256\241\347\220\206\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/view_generation/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265\347\256\241\347\220\206\345\205\245\345\217\243.png" rename to "docs/img/view_generation/\346\225\260\346\215\256\351\233\206\345\255\227\346\256\265\347\256\241\347\220\206\345\205\245\345\217\243.png" diff --git "a/v1/img/view_generation/\346\226\260\345\273\272\350\277\207\346\273\244\347\273\204\344\273\266.png" "b/docs/img/view_generation/\346\226\260\345\273\272\350\277\207\346\273\244\347\273\204\344\273\266.png" similarity index 100% rename from "v1/img/view_generation/\346\226\260\345\273\272\350\277\207\346\273\244\347\273\204\344\273\266.png" rename to "docs/img/view_generation/\346\226\260\345\273\272\350\277\207\346\273\244\347\273\204\344\273\266.png" diff --git "a/v1/img/view_generation/\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206.png" "b/docs/img/view_generation/\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v1/img/view_generation/\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/view_generation/\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206.png" diff --git "a/v1/img/view_generation/\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206\345\205\245\345\217\243.png" "b/docs/img/view_generation/\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/view_generation/\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206\345\205\245\345\217\243.png" rename to "docs/img/view_generation/\346\233\264\346\215\242\346\225\260\346\215\256\351\233\206\345\205\245\345\217\243.png" diff --git "a/v2/img/view_generation/\346\241\221\345\237\272\345\233\276.png" "b/docs/img/view_generation/\346\241\221\345\237\272\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/\346\241\221\345\237\272\345\233\276.png" rename to "docs/img/view_generation/\346\241\221\345\237\272\345\233\276.png" diff --git "a/v2/img/view_generation/\346\265\201\345\220\221\345\234\260\345\233\276.png" "b/docs/img/view_generation/\346\265\201\345\220\221\345\234\260\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/\346\265\201\345\220\221\345\234\260\345\233\276.png" rename to "docs/img/view_generation/\346\265\201\345\220\221\345\234\260\345\233\276.png" diff --git "a/v1/img/view_generation/\346\267\273\345\212\240\345\256\214\346\210\220.png" "b/docs/img/view_generation/\346\267\273\345\212\240\345\256\214\346\210\220.png" similarity index 100% rename from "v1/img/view_generation/\346\267\273\345\212\240\345\256\214\346\210\220.png" rename to "docs/img/view_generation/\346\267\273\345\212\240\345\256\214\346\210\220.png" diff --git "a/v2/img/view_generation/\347\200\221\345\270\203\345\233\276.png" "b/docs/img/view_generation/\347\200\221\345\270\203\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/\347\200\221\345\270\203\345\233\276.png" rename to "docs/img/view_generation/\347\200\221\345\270\203\345\233\276.png" diff --git "a/v2/img/view_generation/\347\203\255\345\212\233\345\234\260\345\233\276.png" "b/docs/img/view_generation/\347\203\255\345\212\233\345\234\260\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/\347\203\255\345\212\233\345\234\260\345\233\276.png" rename to "docs/img/view_generation/\347\203\255\345\212\233\345\234\260\345\233\276.png" diff --git "a/v1/img/view_generation/\347\251\272\345\200\274\345\244\204\347\220\206.png" "b/docs/img/view_generation/\347\251\272\345\200\274\345\244\204\347\220\206.png" similarity index 100% rename from "v1/img/view_generation/\347\251\272\345\200\274\345\244\204\347\220\206.png" rename to "docs/img/view_generation/\347\251\272\345\200\274\345\244\204\347\220\206.png" diff --git "a/v2/img/view_generation/\347\254\246\345\217\267\347\232\204\345\233\276.png" "b/docs/img/view_generation/\347\254\246\345\217\267\347\232\204\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/\347\254\246\345\217\267\347\232\204\345\233\276.png" rename to "docs/img/view_generation/\347\254\246\345\217\267\347\232\204\345\233\276.png" diff --git "a/v2/img/view_generation/\347\264\257\350\256\241\344\270\215\346\224\257\346\214\201\347\261\273\345\236\213.png" "b/docs/img/view_generation/\347\264\257\350\256\241\344\270\215\346\224\257\346\214\201\347\261\273\345\236\213.png" similarity index 100% rename from "v2/img/view_generation/\347\264\257\350\256\241\344\270\215\346\224\257\346\214\201\347\261\273\345\236\213.png" rename to "docs/img/view_generation/\347\264\257\350\256\241\344\270\215\346\224\257\346\214\201\347\261\273\345\236\213.png" diff --git "a/v1/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_AntV.png" "b/docs/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_AntV.png" similarity index 100% rename from "v1/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_AntV.png" rename to "docs/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_AntV.png" diff --git "a/v1/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_AntV1.png" "b/docs/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_AntV1.png" similarity index 100% rename from "v1/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_AntV1.png" rename to "docs/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_AntV1.png" diff --git "a/v1/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_AntV2.png" "b/docs/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_AntV2.png" similarity index 100% rename from "v1/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_AntV2.png" rename to "docs/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_AntV2.png" diff --git "a/v1/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\345\200\274\344\270\216\345\220\215\347\247\260\345\255\227\344\275\223\346\240\267\345\274\217.png" "b/docs/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\345\200\274\344\270\216\345\220\215\347\247\260\345\255\227\344\275\223\346\240\267\345\274\217.png" similarity index 100% rename from "v1/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\345\200\274\344\270\216\345\220\215\347\247\260\345\255\227\344\275\223\346\240\267\345\274\217.png" rename to "docs/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\345\200\274\344\270\216\345\220\215\347\247\260\345\255\227\344\275\223\346\240\267\345\274\217.png" diff --git "a/v1/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\345\233\276\344\276\213.png" "b/docs/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\345\233\276\344\276\213.png" similarity index 100% rename from "v1/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\345\233\276\344\276\213.png" rename to "docs/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\345\233\276\344\276\213.png" diff --git "a/v1/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\346\225\260\345\200\274\346\240\274\345\274\217\345\214\226.png" "b/docs/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\346\225\260\345\200\274\346\240\274\345\274\217\345\214\226.png" similarity index 100% rename from "v1/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\346\225\260\345\200\274\346\240\274\345\274\217\345\214\226.png" rename to "docs/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\346\225\260\345\200\274\346\240\274\345\274\217\345\214\226.png" diff --git "a/v1/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\346\240\207\351\242\230\345\244\207\346\263\250.png" "b/docs/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\346\240\207\351\242\230\345\244\207\346\263\250.png" similarity index 100% rename from "v1/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\346\240\207\351\242\230\345\244\207\346\263\250.png" rename to "docs/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\346\240\207\351\242\230\345\244\207\346\263\250.png" diff --git "a/v1/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\346\240\207\351\242\230\345\255\227\344\275\223\346\240\267\345\274\217.png" "b/docs/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\346\240\207\351\242\230\345\255\227\344\275\223\346\240\267\345\274\217.png" similarity index 100% rename from "v1/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\346\240\207\351\242\230\345\255\227\344\275\223\346\240\267\345\274\217.png" rename to "docs/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\346\240\207\351\242\230\345\255\227\344\275\223\346\240\267\345\274\217.png" diff --git "a/v1/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\347\274\226\350\276\221\346\240\207\351\242\230\345\244\207\346\263\250.png" "b/docs/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\347\274\226\350\276\221\346\240\207\351\242\230\345\244\207\346\263\250.png" similarity index 100% rename from "v1/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\347\274\226\350\276\221\346\240\207\351\242\230\345\244\207\346\263\250.png" rename to "docs/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\347\274\226\350\276\221\346\240\207\351\242\230\345\244\207\346\263\250.png" diff --git "a/v1/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\350\203\214\346\231\257.png" "b/docs/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\350\203\214\346\231\257.png" similarity index 100% rename from "v1/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\350\203\214\346\231\257.png" rename to "docs/img/view_generation/\347\273\204\344\273\266\346\240\267\345\274\217_\350\203\214\346\231\257.png" diff --git "a/v1/img/view_generation/\347\273\223\346\236\234\350\277\207\346\273\244\345\231\250.png" "b/docs/img/view_generation/\347\273\223\346\236\234\350\277\207\346\273\244\345\231\250.png" similarity index 100% rename from "v1/img/view_generation/\347\273\223\346\236\234\350\277\207\346\273\244\345\231\250.png" rename to "docs/img/view_generation/\347\273\223\346\236\234\350\277\207\346\273\244\345\231\250.png" diff --git "a/v1/img/view_generation/\347\273\223\346\236\234\350\277\207\346\273\244\345\231\250\350\256\276\347\275\256.png" "b/docs/img/view_generation/\347\273\223\346\236\234\350\277\207\346\273\244\345\231\250\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/view_generation/\347\273\223\346\236\234\350\277\207\346\273\244\345\231\250\350\256\276\347\275\256.png" rename to "docs/img/view_generation/\347\273\223\346\236\234\350\277\207\346\273\244\345\231\250\350\256\276\347\275\256.png" diff --git "a/v1/img/view_generation/\347\273\264\345\272\246_\346\233\264\346\224\271\345\255\227\346\256\265\345\220\215\347\247\260\345\205\245\345\217\243.png" "b/docs/img/view_generation/\347\273\264\345\272\246_\346\233\264\346\224\271\345\255\227\346\256\265\345\220\215\347\247\260\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/view_generation/\347\273\264\345\272\246_\346\233\264\346\224\271\345\255\227\346\256\265\345\220\215\347\247\260\345\205\245\345\217\243.png" rename to "docs/img/view_generation/\347\273\264\345\272\246_\346\233\264\346\224\271\345\255\227\346\256\265\345\220\215\347\247\260\345\205\245\345\217\243.png" diff --git "a/v1/img/view_generation/\347\273\264\345\272\246_\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" "b/docs/img/view_generation/\347\273\264\345\272\246_\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" similarity index 100% rename from "v1/img/view_generation/\347\273\264\345\272\246_\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" rename to "docs/img/view_generation/\347\273\264\345\272\246_\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217.png" diff --git "a/v1/img/view_generation/\347\273\264\345\272\246_\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217_\346\225\260\345\200\274\345\236\213\344\270\215\346\224\257\346\214\201.png" "b/docs/img/view_generation/\347\273\264\345\272\246_\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217_\346\225\260\345\200\274\345\236\213\344\270\215\346\224\257\346\214\201.png" similarity index 100% rename from "v1/img/view_generation/\347\273\264\345\272\246_\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217_\346\225\260\345\200\274\345\236\213\344\270\215\346\224\257\346\214\201.png" rename to "docs/img/view_generation/\347\273\264\345\272\246_\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217_\346\225\260\345\200\274\345\236\213\344\270\215\346\224\257\346\214\201.png" diff --git "a/v1/img/view_generation/\347\273\264\345\272\246_\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217\350\260\203\346\225\264.png" "b/docs/img/view_generation/\347\273\264\345\272\246_\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217\350\260\203\346\225\264.png" similarity index 100% rename from "v1/img/view_generation/\347\273\264\345\272\246_\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217\350\260\203\346\225\264.png" rename to "docs/img/view_generation/\347\273\264\345\272\246_\350\207\252\345\256\232\344\271\211\346\216\222\345\272\217\350\260\203\346\225\264.png" diff --git "a/v1/img/view_generation/\347\273\264\345\272\246\345\261\236\346\200\247\350\256\276\347\275\256.png" "b/docs/img/view_generation/\347\273\264\345\272\246\345\261\236\346\200\247\350\256\276\347\275\256.png" similarity index 100% rename from "v1/img/view_generation/\347\273\264\345\272\246\345\261\236\346\200\247\350\256\276\347\275\256.png" rename to "docs/img/view_generation/\347\273\264\345\272\246\345\261\236\346\200\247\350\256\276\347\275\256.png" diff --git "a/v1/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265.png" "b/docs/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265.png" similarity index 100% rename from "v1/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265.png" rename to "docs/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265.png" diff --git "a/v1/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265_\346\261\202\345\222\214\345\215\240\346\257\224.png" "b/docs/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265_\346\261\202\345\222\214\345\215\240\346\257\224.png" similarity index 100% rename from "v1/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265_\346\261\202\345\222\214\345\215\240\346\257\224.png" rename to "docs/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265_\346\261\202\345\222\214\345\215\240\346\257\224.png" diff --git "a/v1/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265_\346\261\202\345\222\214\345\215\240\346\257\224_\345\261\225\347\244\272\347\273\223\346\236\2341.png" "b/docs/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265_\346\261\202\345\222\214\345\215\240\346\257\224_\345\261\225\347\244\272\347\273\223\346\236\2341.png" similarity index 100% rename from "v1/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265_\346\261\202\345\222\214\345\215\240\346\257\224_\345\261\225\347\244\272\347\273\223\346\236\2341.png" rename to "docs/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265_\346\261\202\345\222\214\345\215\240\346\257\224_\345\261\225\347\244\272\347\273\223\346\236\2341.png" diff --git "a/v1/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265_\346\261\202\345\222\214\345\215\240\346\257\224_\345\261\225\347\244\272\347\273\223\346\236\2342.png" "b/docs/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265_\346\261\202\345\222\214\345\215\240\346\257\224_\345\261\225\347\244\272\347\273\223\346\236\2342.png" similarity index 100% rename from "v1/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265_\346\261\202\345\222\214\345\215\240\346\257\224_\345\261\225\347\244\272\347\273\223\346\236\2342.png" rename to "docs/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265_\346\261\202\345\222\214\345\215\240\346\257\224_\345\261\225\347\244\272\347\273\223\346\236\2342.png" diff --git "a/v1/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265\345\261\225\347\244\272.png" "b/docs/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265\345\261\225\347\244\272.png" similarity index 100% rename from "v1/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265\345\261\225\347\244\272.png" rename to "docs/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265\345\261\225\347\244\272.png" diff --git "a/v1/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265\347\225\214\351\235\242.png" "b/docs/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265\347\225\214\351\235\242.png" similarity index 100% rename from "v1/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265\347\225\214\351\235\242.png" rename to "docs/img/view_generation/\347\274\226\350\276\221\350\247\206\345\233\276\345\255\227\346\256\265\347\225\214\351\235\242.png" diff --git "a/v2/img/view_generation/\350\202\241\347\245\250\345\233\276.png" "b/docs/img/view_generation/\350\202\241\347\245\250\345\233\276.png" similarity index 100% rename from "v2/img/view_generation/\350\202\241\347\245\250\345\233\276.png" rename to "docs/img/view_generation/\350\202\241\347\245\250\345\233\276.png" diff --git "a/v2/img/view_generation/\350\241\250\346\240\274\346\240\267\345\274\217\350\256\276\347\275\256.png" "b/docs/img/view_generation/\350\241\250\346\240\274\346\240\267\345\274\217\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/\350\241\250\346\240\274\346\240\267\345\274\217\350\256\276\347\275\256.png" rename to "docs/img/view_generation/\350\241\250\346\240\274\346\240\267\345\274\217\350\256\276\347\275\256.png" diff --git "a/v2/img/view_generation/\350\241\250\346\240\274\347\273\237\344\270\200\350\256\276\347\275\256.png" "b/docs/img/view_generation/\350\241\250\346\240\274\347\273\237\344\270\200\350\256\276\347\275\256.png" similarity index 100% rename from "v2/img/view_generation/\350\241\250\346\240\274\347\273\237\344\270\200\350\256\276\347\275\256.png" rename to "docs/img/view_generation/\350\241\250\346\240\274\347\273\237\344\270\200\350\256\276\347\275\256.png" diff --git "a/v1/img/view_generation/\350\247\206\345\233\276_\344\270\273\345\212\237\350\203\275\345\214\272.png" "b/docs/img/view_generation/\350\247\206\345\233\276_\344\270\273\345\212\237\350\203\275\345\214\272.png" similarity index 100% rename from "v1/img/view_generation/\350\247\206\345\233\276_\344\270\273\345\212\237\350\203\275\345\214\272.png" rename to "docs/img/view_generation/\350\247\206\345\233\276_\344\270\273\345\212\237\350\203\275\345\214\272.png" diff --git "a/v1/img/view_generation/\350\247\206\345\233\276_\345\244\215\347\224\250_\345\255\230\351\207\217\350\247\206\345\233\276.png" "b/docs/img/view_generation/\350\247\206\345\233\276_\345\244\215\347\224\250_\345\255\230\351\207\217\350\247\206\345\233\276.png" similarity index 100% rename from "v1/img/view_generation/\350\247\206\345\233\276_\345\244\215\347\224\250_\345\255\230\351\207\217\350\247\206\345\233\276.png" rename to "docs/img/view_generation/\350\247\206\345\233\276_\345\244\215\347\224\250_\345\255\230\351\207\217\350\247\206\345\233\276.png" diff --git "a/v1/img/view_generation/\350\247\206\345\233\276_\346\267\273\345\212\240\346\225\260\346\215\256\351\233\206_\351\200\211\346\213\251\345\233\276\350\241\250.png" "b/docs/img/view_generation/\350\247\206\345\233\276_\346\267\273\345\212\240\346\225\260\346\215\256\351\233\206_\351\200\211\346\213\251\345\233\276\350\241\250.png" similarity index 100% rename from "v1/img/view_generation/\350\247\206\345\233\276_\346\267\273\345\212\240\346\225\260\346\215\256\351\233\206_\351\200\211\346\213\251\345\233\276\350\241\250.png" rename to "docs/img/view_generation/\350\247\206\345\233\276_\346\267\273\345\212\240\346\225\260\346\215\256\351\233\206_\351\200\211\346\213\251\345\233\276\350\241\250.png" diff --git "a/v1/img/view_generation/\350\247\206\345\233\276_\346\267\273\345\212\240\350\247\206\345\233\276_\345\205\245\345\217\243.png" "b/docs/img/view_generation/\350\247\206\345\233\276_\346\267\273\345\212\240\350\247\206\345\233\276_\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/view_generation/\350\247\206\345\233\276_\346\267\273\345\212\240\350\247\206\345\233\276_\345\205\245\345\217\243.png" rename to "docs/img/view_generation/\350\247\206\345\233\276_\346\267\273\345\212\240\350\247\206\345\233\276_\345\205\245\345\217\243.png" diff --git "a/v1/img/view_generation/\350\247\206\345\233\276_\346\267\273\345\212\240\350\247\206\345\233\276_\351\200\211\346\213\251\346\225\260\346\215\256\351\233\206.png" "b/docs/img/view_generation/\350\247\206\345\233\276_\346\267\273\345\212\240\350\247\206\345\233\276_\351\200\211\346\213\251\346\225\260\346\215\256\351\233\206.png" similarity index 100% rename from "v1/img/view_generation/\350\247\206\345\233\276_\346\267\273\345\212\240\350\247\206\345\233\276_\351\200\211\346\213\251\346\225\260\346\215\256\351\233\206.png" rename to "docs/img/view_generation/\350\247\206\345\233\276_\346\267\273\345\212\240\350\247\206\345\233\276_\351\200\211\346\213\251\346\225\260\346\215\256\351\233\206.png" diff --git "a/v1/img/view_generation/\350\247\206\345\233\276\345\210\267\346\226\260\351\242\221\347\216\207.png" "b/docs/img/view_generation/\350\247\206\345\233\276\345\210\267\346\226\260\351\242\221\347\216\207.png" similarity index 100% rename from "v1/img/view_generation/\350\247\206\345\233\276\345\210\267\346\226\260\351\242\221\347\216\207.png" rename to "docs/img/view_generation/\350\247\206\345\233\276\345\210\267\346\226\260\351\242\221\347\216\207.png" diff --git "a/v1/img/view_generation/\350\247\206\345\233\276\345\255\227\346\256\265\347\256\241\347\220\206\345\205\245\345\217\243.png" "b/docs/img/view_generation/\350\247\206\345\233\276\345\255\227\346\256\265\347\256\241\347\220\206\345\205\245\345\217\243.png" similarity index 100% rename from "v1/img/view_generation/\350\247\206\345\233\276\345\255\227\346\256\265\347\256\241\347\220\206\345\205\245\345\217\243.png" rename to "docs/img/view_generation/\350\247\206\345\233\276\345\255\227\346\256\265\347\256\241\347\220\206\345\205\245\345\217\243.png" diff --git "a/v1/img/view_generation/\350\247\206\345\233\276\350\256\276\350\256\241.png" "b/docs/img/view_generation/\350\247\206\345\233\276\350\256\276\350\256\241.png" similarity index 100{"code":"deadline_exceeded","msg":"operation timed out"}