From fc25792e619516843ec11da5d1d67b160820a90f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=A6=86=E9=92=B1=E8=90=BD=E5=B0=BD=E6=A7=BF=E8=8A=B1?=
=?UTF-8?q?=E7=A8=80?= <2675540038@qq.com>
Date: Tue, 9 Jul 2024 18:07:55 +0800
Subject: [PATCH] 1
---
.editorconfig | 14 +
.env | 2 +
.env.development | 2 +
.env.site | 2 +
.eslintignore | 3 +
.eslintrc | 76 ++
.gitignore | 13 +
.husky/commit-msg | 4 +
.husky/pre-commit | 4 +
.husky/prepare-commit-msg | 4 +
.prettierrc.js | 39 +
.stylelintignore | 8 +
LICENSE | 9 +
PROXY.md | 22 +
README-zh_CN.md | 115 ++
README.md | 94 ++
cache.dockerfile | 15 +
commitlint.config.js | 1 +
globals.d.ts | 13 +
index.html | 68 +
jsx.d.ts | 13 +
package.json | 92 ++
public/favicon.ico | Bin 0 -> 9662 bytes
shims-vue.d.ts | 5 +
src/App.vue | 35 +
src/assets/assets-login-bg-black.png | Bin 0 -> 807777 bytes
src/assets/assets-login-bg-white.png | Bin 0 -> 2412043 bytes
src/assets/assets-logo-full.svg | 39 +
src/assets/assets-product-1.svg | 5 +
src/assets/assets-product-2.svg | 5 +
src/assets/assets-product-3.svg | 5 +
src/assets/assets-product-4.svg | 5 +
src/assets/assets-result-403.svg | 32 +
src/assets/assets-result-404.svg | 36 +
src/assets/assets-result-500.svg | 32 +
src/assets/assets-result-ie.svg | 33 +
src/assets/assets-result-maintenance.svg | 49 +
src/assets/assets-result-wifi.svg | 23 +
src/assets/assets-setting-auto.svg | 13 +
src/assets/assets-setting-dark.svg | 5 +
src/assets/assets-setting-light.svg | 13 +
src/assets/assets-t-logo.svg | 41 +
src/components/color/index.vue | 35 +
src/components/product-card/index.vue | 121 ++
src/components/result/index.vue | 118 ++
src/components/thumbnail/index.vue | 49 +
src/components/trend/index.vue | 105 ++
src/config/color.ts | 30 +
src/config/global.ts | 2 +
src/config/host.ts | 26 +
src/config/style.ts | 14 +
src/constants/index.ts | 46 +
src/interface.ts | 39 +
src/layouts/blank.vue | 12 +
src/layouts/components/Breadcrumb.vue | 39 +
src/layouts/components/Content.vue | 43 +
src/layouts/components/Footer.vue | 27 +
src/layouts/components/Header.vue | 338 +++++
src/layouts/components/LayoutContent.vue | 168 +++
src/layouts/components/LayoutHeader.vue | 52 +
src/layouts/components/LayoutSidebar.vue | 51 +
src/layouts/components/MenuContent.vue | 109 ++
src/layouts/components/Notice.vue | 221 ++++
src/layouts/components/Search.vue | 134 ++
src/layouts/components/SideNav.vue | 157 +++
src/layouts/index.vue | 100 ++
src/layouts/setting.vue | 404 ++++++
src/main.jsx | 50 +
src/pages/activity/activity_index.vue | 1102 +++++++++++++++++
src/pages/activity/activity_top.vue | 160 +++
src/pages/association/carousel.vue | 201 +++
src/pages/association/index.vue | 286 +++++
src/pages/association/opinion.vue | 75 ++
src/pages/association/person.vue | 209 ++++
src/pages/association/system.vue | 255 ++++
src/pages/business/business_type.vue | 136 ++
src/pages/business/index.vue | 264 ++++
.../dashboard/base/components/MiddleChart.vue | 158 +++
.../base/components/OutputOverview.vue | 189 +++
.../dashboard/base/components/RankList.vue | 111 ++
.../dashboard/base/components/TopPanel.vue | 246 ++++
src/pages/dashboard/base/index.ts | 703 +++++++++++
src/pages/dashboard/base/index.vue | 53 +
src/pages/dashboard/detail/index.ts | 267 ++++
src/pages/dashboard/detail/index.vue | 242 ++++
src/pages/login/index.less | 202 +++
src/pages/login/index.vue | 186 +++
src/pages/news/news_index.vue | 393 ++++++
src/pages/news/news_type.vue | 136 ++
src/pages/register/index.less | 202 +++
src/pages/register/index.vue | 721 +++++++++++
src/pages/user/user_add.vue | 755 +++++++++++
src/pages/user/user_edit.vue | 844 +++++++++++++
src/pages/user/user_edit_shen.vue | 306 +++++
src/pages/user/user_index.vue | 234 ++++
src/pages/user/user_info.vue | 214 ++++
src/pages/user/user_invoice.vue | 204 +++
src/pages/user/user_line.vue | 136 ++
src/pages/user/user_plan.vue | 156 +++
src/pages/user/user_region.vue | 128 ++
src/permission.js | 57 +
src/router/index.js | 50 +
src/router/modules/base.ts | 23 +
src/router/modules/components.ts | 150 +++
src/service/service-advance.ts | 233 ++++
src/service/service-base.ts | 205 +++
src/service/service-detail-base.ts | 84 ++
src/service/service-detail-deploy.ts | 234 ++++
src/service/service-detail.ts | 57 +
src/service/service-user.ts | 64 +
src/store/index.ts | 22 +
src/store/modules/notification.ts | 90 ++
src/store/modules/permission.ts | 65 +
src/store/modules/setting.ts | 122 ++
src/store/modules/tab-router.ts | 83 ++
src/store/modules/user.ts | 105 ++
src/style/font-family.less | 6 +
src/style/index.less | 5 +
src/style/layout.less | 201 +++
src/style/reset.less | 78 ++
src/style/variables.less | 27 +
src/utils/charts.ts | 38 +
src/utils/color.ts | 118 ++
src/utils/date.ts | 12 +
src/utils/request.ts | 69 ++
stylelint.config.js | 5 +
tsconfig.json | 26 +
vite.config.js | 59 +
128 files changed, 15241 insertions(+)
create mode 100644 .editorconfig
create mode 100644 .env
create mode 100644 .env.development
create mode 100644 .env.site
create mode 100644 .eslintignore
create mode 100644 .eslintrc
create mode 100644 .gitignore
create mode 100644 .husky/commit-msg
create mode 100644 .husky/pre-commit
create mode 100644 .husky/prepare-commit-msg
create mode 100644 .prettierrc.js
create mode 100644 .stylelintignore
create mode 100644 LICENSE
create mode 100644 PROXY.md
create mode 100644 README-zh_CN.md
create mode 100644 README.md
create mode 100644 cache.dockerfile
create mode 100644 commitlint.config.js
create mode 100644 globals.d.ts
create mode 100644 index.html
create mode 100644 jsx.d.ts
create mode 100644 package.json
create mode 100644 public/favicon.ico
create mode 100644 shims-vue.d.ts
create mode 100644 src/App.vue
create mode 100644 src/assets/assets-login-bg-black.png
create mode 100644 src/assets/assets-login-bg-white.png
create mode 100644 src/assets/assets-logo-full.svg
create mode 100644 src/assets/assets-product-1.svg
create mode 100644 src/assets/assets-product-2.svg
create mode 100644 src/assets/assets-product-3.svg
create mode 100644 src/assets/assets-product-4.svg
create mode 100644 src/assets/assets-result-403.svg
create mode 100644 src/assets/assets-result-404.svg
create mode 100644 src/assets/assets-result-500.svg
create mode 100644 src/assets/assets-result-ie.svg
create mode 100644 src/assets/assets-result-maintenance.svg
create mode 100644 src/assets/assets-result-wifi.svg
create mode 100644 src/assets/assets-setting-auto.svg
create mode 100644 src/assets/assets-setting-dark.svg
create mode 100644 src/assets/assets-setting-light.svg
create mode 100644 src/assets/assets-t-logo.svg
create mode 100644 src/components/color/index.vue
create mode 100644 src/components/product-card/index.vue
create mode 100644 src/components/result/index.vue
create mode 100644 src/components/thumbnail/index.vue
create mode 100644 src/components/trend/index.vue
create mode 100644 src/config/color.ts
create mode 100644 src/config/global.ts
create mode 100644 src/config/host.ts
create mode 100644 src/config/style.ts
create mode 100644 src/constants/index.ts
create mode 100644 src/interface.ts
create mode 100644 src/layouts/blank.vue
create mode 100644 src/layouts/components/Breadcrumb.vue
create mode 100644 src/layouts/components/Content.vue
create mode 100644 src/layouts/components/Footer.vue
create mode 100644 src/layouts/components/Header.vue
create mode 100644 src/layouts/components/LayoutContent.vue
create mode 100644 src/layouts/components/LayoutHeader.vue
create mode 100644 src/layouts/components/LayoutSidebar.vue
create mode 100644 src/layouts/components/MenuContent.vue
create mode 100644 src/layouts/components/Notice.vue
create mode 100644 src/layouts/components/Search.vue
create mode 100644 src/layouts/components/SideNav.vue
create mode 100644 src/layouts/index.vue
create mode 100644 src/layouts/setting.vue
create mode 100644 src/main.jsx
create mode 100644 src/pages/activity/activity_index.vue
create mode 100644 src/pages/activity/activity_top.vue
create mode 100644 src/pages/association/carousel.vue
create mode 100644 src/pages/association/index.vue
create mode 100644 src/pages/association/opinion.vue
create mode 100644 src/pages/association/person.vue
create mode 100644 src/pages/association/system.vue
create mode 100644 src/pages/business/business_type.vue
create mode 100644 src/pages/business/index.vue
create mode 100644 src/pages/dashboard/base/components/MiddleChart.vue
create mode 100644 src/pages/dashboard/base/components/OutputOverview.vue
create mode 100644 src/pages/dashboard/base/components/RankList.vue
create mode 100644 src/pages/dashboard/base/components/TopPanel.vue
create mode 100644 src/pages/dashboard/base/index.ts
create mode 100644 src/pages/dashboard/base/index.vue
create mode 100644 src/pages/dashboard/detail/index.ts
create mode 100644 src/pages/dashboard/detail/index.vue
create mode 100644 src/pages/login/index.less
create mode 100644 src/pages/login/index.vue
create mode 100644 src/pages/news/news_index.vue
create mode 100644 src/pages/news/news_type.vue
create mode 100644 src/pages/register/index.less
create mode 100644 src/pages/register/index.vue
create mode 100644 src/pages/user/user_add.vue
create mode 100644 src/pages/user/user_edit.vue
create mode 100644 src/pages/user/user_edit_shen.vue
create mode 100644 src/pages/user/user_index.vue
create mode 100644 src/pages/user/user_info.vue
create mode 100644 src/pages/user/user_invoice.vue
create mode 100644 src/pages/user/user_line.vue
create mode 100644 src/pages/user/user_plan.vue
create mode 100644 src/pages/user/user_region.vue
create mode 100644 src/permission.js
create mode 100644 src/router/index.js
create mode 100644 src/router/modules/base.ts
create mode 100644 src/router/modules/components.ts
create mode 100644 src/service/service-advance.ts
create mode 100644 src/service/service-base.ts
create mode 100644 src/service/service-detail-base.ts
create mode 100644 src/service/service-detail-deploy.ts
create mode 100644 src/service/service-detail.ts
create mode 100644 src/service/service-user.ts
create mode 100644 src/store/index.ts
create mode 100644 src/store/modules/notification.ts
create mode 100644 src/store/modules/permission.ts
create mode 100644 src/store/modules/setting.ts
create mode 100644 src/store/modules/tab-router.ts
create mode 100644 src/store/modules/user.ts
create mode 100644 src/style/font-family.less
create mode 100644 src/style/index.less
create mode 100644 src/style/layout.less
create mode 100644 src/style/reset.less
create mode 100644 src/style/variables.less
create mode 100644 src/utils/charts.ts
create mode 100644 src/utils/color.ts
create mode 100644 src/utils/date.ts
create mode 100644 src/utils/request.ts
create mode 100644 stylelint.config.js
create mode 100644 tsconfig.json
create mode 100644 vite.config.js
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..4fc13c7
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,14 @@
+root = true
+
+[*]
+indent_style = space
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[*.md]
+trim_trailing_whitespace = false
+
+[*.{ts,js,vue,css}]
+indent_size = 2
diff --git a/.env b/.env
new file mode 100644
index 0000000..9465e81
--- /dev/null
+++ b/.env
@@ -0,0 +1,2 @@
+# 打包路径 根据项目不同按需配置
+VITE_BASE_URL = ./
diff --git a/.env.development b/.env.development
new file mode 100644
index 0000000..c9080bb
--- /dev/null
+++ b/.env.development
@@ -0,0 +1,2 @@
+# 打包路径
+VITE_BASE_URL = ./
diff --git a/.env.site b/.env.site
new file mode 100644
index 0000000..9465e81
--- /dev/null
+++ b/.env.site
@@ -0,0 +1,2 @@
+# 打包路径 根据项目不同按需配置
+VITE_BASE_URL = ./
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 0000000..d631784
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1,3 @@
+dist
+node_modules
+!.prettierrc.js
diff --git a/.eslintrc b/.eslintrc
new file mode 100644
index 0000000..875ec75
--- /dev/null
+++ b/.eslintrc
@@ -0,0 +1,76 @@
+{
+ "extends": ["airbnb-base", "prettier", "plugin:@typescript-eslint/recommended", "plugin:vue/essential"],
+ "env": {
+ "browser": true,
+ "node": true,
+ "jest": true,
+ "es6": true
+ },
+ "globals": {
+ "cy": "readonly"
+ },
+ "plugins": ["vue", "@typescript-eslint"],
+ "parserOptions": {
+ "parser": "@typescript-eslint/parser",
+ "sourceType": "module",
+ "allowImportExportEverywhere": true,
+ "ecmaFeatures": {
+ "jsx": true
+ }
+ },
+ "rules": {
+ "@typescript-eslint/ban-ts-ignore": 0,
+ "@typescript-eslint/no-explicit-any": 0,
+ "@typescript-eslint/no-require-imports": 0,
+ "@typescript-eslint/no-var-requires": 0,
+ "@typescript-eslint/prefer-for-of": 0,
+ "@typescript-eslint/explicit-function-return-type": 0,
+ "@typescript-eslint/explicit-module-boundary-types": 0,
+ "import/no-extraneous-dependencies": 0,
+ "import/extensions": 0,
+ "import/no-unresolved": 0,
+ "indent": [2, 2],
+ "camelcase": 0,
+ "class-methods-use-this": 0,
+ "new-cap": 0,
+ "no-new": 1,
+ "no-shadow": 0,
+ "no-console": 0,
+ "no-underscore-dangle": 0,
+ "no-confusing-arrow": 0,
+ "no-plusplus": [
+ "error",
+ {
+ "allowForLoopAfterthoughts": true
+ }
+ ],
+ "no-param-reassign": 0,
+ "func-style": 0,
+ "prefer-default-export": 0,
+ "max-len": 0,
+ "consistent-return": 0
+ },
+ "overrides": [
+ {
+ "files": ["*.vue"],
+ "rules": {
+ "vue/return-in-computed-property": 1,
+ "vue/order-in-components": 2,
+ "vue/component-name-in-template-casing": [2, "kebab-case"],
+ "vue/require-default-prop": 0,
+ "@typescript-eslint/explicit-module-boundary-types": "off",
+ "import/order": "off"
+ }
+ },
+ {
+ "files": ["src/*", "*.js"],
+ "rules": {
+ "no-var-requires": 0,
+ "no-console": 0,
+ "no-unused-expressions": 0,
+ "@typescript-eslint/explicit-module-boundary-types": "off",
+ "import/order": "off"
+ }
+ }
+ ]
+}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2c4cd52
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,13 @@
+node_modules
+.DS_Store
+dist
+dist-ssr
+*.local
+.vscode
+.history
+README.html
+
+.stylelintcache
+.idea
+yarn.lock
+package-lock.json
\ No newline at end of file
diff --git a/.husky/commit-msg b/.husky/commit-msg
new file mode 100644
index 0000000..ccfec39
--- /dev/null
+++ b/.husky/commit-msg
@@ -0,0 +1,4 @@
+#!/bin/sh
+. "$(dirname "$0")/_/husky.sh"
+
+npx --no-install commitlint -e $GIT_PARAMS
\ No newline at end of file
diff --git a/.husky/pre-commit b/.husky/pre-commit
new file mode 100644
index 0000000..c37466e
--- /dev/null
+++ b/.husky/pre-commit
@@ -0,0 +1,4 @@
+#!/bin/sh
+. "$(dirname "$0")/_/husky.sh"
+
+npx lint-staged
\ No newline at end of file
diff --git a/.husky/prepare-commit-msg b/.husky/prepare-commit-msg
new file mode 100644
index 0000000..71fe5b3
--- /dev/null
+++ b/.husky/prepare-commit-msg
@@ -0,0 +1,4 @@
+#!/bin/sh
+. "$(dirname "$0")/_/husky.sh"
+
+exec < /dev/tty && npx git-cz --hook || true
\ No newline at end of file
diff --git a/.prettierrc.js b/.prettierrc.js
new file mode 100644
index 0000000..5e92232
--- /dev/null
+++ b/.prettierrc.js
@@ -0,0 +1,39 @@
+module.exports = {
+ // 一行最多 120 字符
+ printWidth: 120,
+ // 使用 2 个空格缩进
+ tabWidth: 2,
+ // 不使用缩进符,而使用空格
+ useTabs: false,
+ // 行尾需要有分号
+ semi: true,
+ // 使用单引号
+ singleQuote: true,
+ // 对象的 key 仅在必要时用引号
+ quoteProps: 'as-needed',
+ // jsx 不使用单引号,而使用双引号
+ jsxSingleQuote: false,
+ // 末尾需要有逗号
+ trailingComma: 'all',
+ // 大括号内的首尾需要空格
+ bracketSpacing: true,
+ // jsx 标签的反尖括号需要换行
+ jsxBracketSameLine: false,
+ // 箭头函数,只有一个参数的时候,也需要括号
+ arrowParens: 'always',
+ // 每个文件格式化的范围是文件的全部内容
+ rangeStart: 0,
+ rangeEnd: Infinity,
+ // 不需要写文件开头的 @prettier
+ requirePragma: false,
+ // 不需要自动在文件开头插入 @prettier
+ insertPragma: false,
+ // 使用默认的折行标准
+ proseWrap: 'preserve',
+ // 根据显示样式决定 html 要不要折行
+ htmlWhitespaceSensitivity: 'css',
+ // vue 文件中的 script 和 style 内不用缩进
+ vueIndentScriptAndStyle: false,
+ // 换行符使用 lf
+ endOfLine: 'lf',
+};
diff --git a/.stylelintignore b/.stylelintignore
new file mode 100644
index 0000000..1b7da3c
--- /dev/null
+++ b/.stylelintignore
@@ -0,0 +1,8 @@
+# .stylelintignore
+# 旧的不需打包的样式库
+*.min.css
+
+# 其他类型文件
+*.js
+*.jpg
+*.woff
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..789cbde
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,9 @@
+MIT License
+
+Copyright (c) 2021-present TDesign
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/PROXY.md b/PROXY.md
new file mode 100644
index 0000000..8a56932
--- /dev/null
+++ b/PROXY.md
@@ -0,0 +1,22 @@
+# TDesign starter 本地开发联调
+
+## 工具准备
+
+- 浏览器插件:[SwitchyOmega](https://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif?hl=zh-CNhttps://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif?hl=zh-CN)
+- 调试代理工具:[whistle](https://wproxy.org/whistle/)
+
+## 代理配置
+
+`npm run dev`开启本地服务后,可以配置代理将线上域名的非后台 api 路径(如`/api`)的静态文件请求代理到本地,这样就可以进行本地联调和前端代码热更新了。
+
+举例子:
+
+```
+/tdesign.tencent.com(?!\/api)/ 127.0.0.1:3001
+```
+
+其中:
+
+- tdesign.tencent.com:修改你的线上域名
+- /api:修改成后台请求路径
+- 3001:修改成本地服务端口
diff --git a/README-zh_CN.md b/README-zh_CN.md
new file mode 100644
index 0000000..cb90038
--- /dev/null
+++ b/README-zh_CN.md
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+简体中文 | [English](./README.md)
+
+### 项目简介
+
+TDesign Vue Starter 是一个基于 tdesign-vue,使用 `Vue2`、`Vite`开发,可进行个性化主题配置,旨在提供项目开箱即用的、配置式的中后台项目。
+
+
+ 在线预览
+ ·
+ 使用文档
+
+
+
+
+
+### 特性
+
+- 内置多种常用的中后台页面
+- 完善的目录结构
+- 完善的代码规范配置
+- 支持暗黑模式
+- 自定义主题颜色
+- 多种空间布局
+- 内置 Mock 数据方案
+
+### 使用
+
+> 通过 [tdesign-starter-cli](https://www.npmjs.com/package/tdesign-starter-cli) 初始化项目仓库
+
+```bash
+## 1、安装 tdesign-starter-cli
+npm i tdesign-starter-cli@latest -g
+
+## 2、创建项目
+td-starter init
+```
+
+### 开发
+
+```bash
+## 安装依赖
+npm install
+
+## 启动项目
+npm run dev
+```
+
+### 构建
+
+```bash
+## 构建正式环境
+npm run build
+
+## 构建测试环境
+npm run build:test
+```
+
+### 其他
+
+```bash
+## 预览构建产物
+npm run preview
+
+## 代码格式检查
+npm run lint
+
+## 代码格式检查与自动修复
+npm run lint:fix
+
+## style格式检查
+npm run stylelint
+
+## style格式检查与自动修复
+npm run stylelint:fix
+```
+
+### 如何贡献
+
+非常欢迎您的贡献!提交您的 [Issue](https://github.com/tencent/tdesign-vue-starter/issues/new/choose) 或者提交 [Pull Request](https://github.com/Tencent/tdesign-vue-starter/pulls)。
+
+#### 贡献提交规范
+
+- [Angular Convention](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular)
+- [Vue Style Guide](https://v3.vuejs.org/style-guide/#rule-categories)
+
+### 兼容性
+
+| [
](http://godban.github.io/browsers-support-badges/) IE / Edge | [
](http://godban.github.io/browsers-support-badges/)Firefox | [
](http://godban.github.io/browsers-support-badges/)Chrome | [
](http://godban.github.io/browsers-support-badges/)Safari |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Edge >=84 | Firefox >=83 | Chrome >=84 | Safari >=14.1 |
+
+### 社区版本
+
+基于 TDesign Vue 的 starter-kit 有多种社区版本,访问 [社区链接](https://tdesign.tencent.com/starter/docs/vue/community-link) 可以访问更多版本。
+如果您也开发了 TDesign Starter 的社区版本,可以提交 Issue 或者直接给我们提Pull Request 😊。
+
+### 开源协议
+
+TDesign 遵循 [MIT 协议](https://github.com/Tencent/tdesign-vue-starter/LICENSE)。
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..4ead8fd
--- /dev/null
+++ b/README.md
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+English | [简体中文](./README-zh_CN.md)
+### Introduction
+
+TDesign Vue Starter is a TDesign-based project developed with `Vue2`, `Vite`. It can be customized theme configuration, and aims to provide project out-of-the-box, configuration-style middle and background projects.
+
+
+ Live Preview
+ ·
+ Documentation
+
+
+
+
+### Features
+
+- Various provided pages for develop
+- Complete directory structure for develop
+- Code specification configuration
+- Support dark mode
+- Custom theme colors
+- Various space layouts
+- Mock data scheme
+
+### Usage
+
+> Initialize project with our CLI tool `tdesign-starter-cli`
+
+```bash
+## install tdesign-starter-cli
+npm i tdesign-starter-cli@latest -g
+
+## create project
+td-starter init
+```
+
+### Develop
+
+```bash
+## install dependencies
+npm install
+
+## set up
+npm run dev
+```
+
+### Build
+
+```bash
+## build
+npm run build
+
+## build for test
+npm run build:test
+```
+
+
+### Contributing Guide
+
+We welcome contributions to our project. Create your [Issue](https://github.com/tencent/tdesign-vue-starter/issues/new/choose) or Submit your [Pull Request](https://github.com/Tencent/tdesign-vue-starter/pulls).
+
+#### Commit Specification
+
+- [Angular Convention](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular)
+- [Vue Style Guide](https://v3.vuejs.org/style-guide/#rule-categories)
+
+### Browser Support
+
+| [
](http://godban.github.io/browsers-support-badges/) IE / Edge | [
](http://godban.github.io/browsers-support-badges/)Firefox | [
](http://godban.github.io/browsers-support-badges/)Chrome | [
](http://godban.github.io/browsers-support-badges/)Safari |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Edge >=84 | Firefox >=83 | Chrome >=84 | Safari >=14.1 |
+
+### Community Versions
+
+There are kinds of community versions of starter-kit based on TDesign Vue Next, visit [community-link](https://tdesign.tencent.com/starter/docs/vue-next/community-link) for more detail. If you developed a community versions of tdesign starter, please create a issue or submit a pull request to let us know 😊.
+
+### License
+
+The MIT License. Please see [the license file](LICENSE) for more information.
diff --git a/cache.dockerfile b/cache.dockerfile
new file mode 100644
index 0000000..5e0cae1
--- /dev/null
+++ b/cache.dockerfile
@@ -0,0 +1,15 @@
+# 选择一个 Base 镜像
+FROM node:12
+
+# 设置工作目录
+WORKDIR /space
+
+# 将 by 中的文件列表 COPY 过来
+COPY . .
+
+# 根据 COPY 过来的文件进行依赖的安装
+RUN npm i
+
+# 设置好需要的环境变量
+ENV NODE_PATH=/space/node_modules
+
diff --git a/commitlint.config.js b/commitlint.config.js
new file mode 100644
index 0000000..422b194
--- /dev/null
+++ b/commitlint.config.js
@@ -0,0 +1 @@
+module.exports = { extends: ['@commitlint/config-conventional'] };
diff --git a/globals.d.ts b/globals.d.ts
new file mode 100644
index 0000000..09a605d
--- /dev/null
+++ b/globals.d.ts
@@ -0,0 +1,13 @@
+// 通用声明
+declare type ClassName = { [className: string]: any } | ClassName[] | string;
+
+declare interface ImportMeta {
+ env: {
+ MODE: 'mock' | 'development' | 'test' | 'release' | 'site';
+ };
+}
+
+declare module '*.svg' {
+ const content: string;
+ export default content;
+}
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..8a8e00c
--- /dev/null
+++ b/index.html
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jsx.d.ts b/jsx.d.ts
new file mode 100644
index 0000000..84f32e2
--- /dev/null
+++ b/jsx.d.ts
@@ -0,0 +1,13 @@
+import Vue, { VNode } from 'vue';
+
+
+declare global {
+ namespace JSX {
+ type Element = VNode;
+ type ElementClass = Vue;
+ interface IntrinsicElements {
+ [elem: string]: any;
+ }
+ type IntrinsicAttributes = any;
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..8905c08
--- /dev/null
+++ b/package.json
@@ -0,0 +1,92 @@
+{
+ "name": "yunshangxie",
+ "version": "0.6.2",
+ "scripts": {
+ "dev:mock": "vite --open --mode mock",
+ "dev": "vite --open --mode development",
+ "dev:linux": "vite --mode development",
+ "build:test": "vite build --mode test",
+ "build": "vite build --mode release",
+ "build:site": "vite build --mode site",
+ "site:preview": "npm run build && cp -r dist _site",
+ "preview": "vite preview",
+ "lint": "eslint --ext .vue,.js,.jsx,.ts,.tsx ./ --max-warnings 0",
+ "lint:fix": "eslint --ext .vue,.js,jsx,.ts,.tsx ./ --max-warnings 0 --fix",
+ "stylelint": "stylelint src/**/*.{html,vue,sass,less}",
+ "stylelint:fix": "stylelint --cache --fix src/**/*.{html,vue,vss,sass,less}",
+ "prepare": "node -e \"if(require('fs').existsSync('.git')){process.exit(1)}\" || is-ci || husky install",
+ "test": "echo \"no test specified,work in process\"",
+ "test:coverage": "echo \"no test:coverage specified,work in process\""
+ },
+ "dependencies": {
+ "@wangeditor/editor-for-vue": "^1.0.2",
+ "axios": "^1.1.3",
+ "dayjs": "^1.10.8",
+ "echarts": "5.1.2",
+ "lodash": "^4.17.21",
+ "nprogress": "^0.2.0",
+ "qrcode.vue": "^1.7.0",
+ "tdesign-icons-vue": "^0.1.11",
+ "tdesign-vue": "^1.9.0",
+ "tvision-color": "~1.6.0",
+ "vue": "~2.6.14",
+ "vue-clipboard2": "^0.3.1",
+ "vue-cropper": "^0.6.5",
+ "vue-qr": "^4.0.9",
+ "vue-router": "^3.5.1",
+ "vuex": "^3.6.2",
+ "vuex-router-sync": "^5.0.0"
+ },
+ "devDependencies": {
+ "@commitlint/cli": "^17.0.3",
+ "@commitlint/config-conventional": "^17.1.0",
+ "@types/vue-color": "^2.4.3",
+ "@typescript-eslint/eslint-plugin": "^6.17.0",
+ "@typescript-eslint/parser": "^6.17.0",
+ "commitizen": "^4.2.3",
+ "eslint": "^7.22.0",
+ "eslint-config-airbnb-base": "^14.2.1",
+ "eslint-config-prettier": "^8.5.0",
+ "eslint-import-resolver-alias": "^1.1.2",
+ "eslint-plugin-import": "^2.22.1",
+ "eslint-plugin-vue": "^7.8.0",
+ "husky": "^8.0.1",
+ "less": "^4.1.0",
+ "lint-staged": "^13.0.3",
+ "mockjs": "^1.1.0",
+ "prettier": "^2.6.0",
+ "stylelint": "~13.13.1",
+ "stylelint-config-prettier": "~9.0.3",
+ "stylelint-less": "1.0.5",
+ "stylelint-order": "~4.1.0",
+ "typescript": "^5.4.5",
+ "vite": "^4.1.4",
+ "vite-plugin-mock": "^3.0.0",
+ "vite-plugin-theme": "^0.8.1",
+ "vite-plugin-vue2": "^2.0.1",
+ "vite-plugin-vue2-svg": "~0.4.0",
+ "vue-template-compiler": "~2.6.14"
+ },
+ "config": {
+ "commitizen": {
+ "path": "./node_modules/cz-conventional-changelog"
+ }
+ },
+ "husky": {
+ "hooks": {
+ "pre-commit": "lint-staged",
+ "prepare-commit-msg": "exec < /dev/tty && git cz --hook || true",
+ "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
+ }
+ },
+ "lint-staged": {
+ "*.{js,jsx,vue,ts,tsx}": [
+ "prettier --write",
+ "npm run lint:fix"
+ ],
+ "*.{html,vue,vss,sass,less}": [
+ "npm run stylelint:fix"
+ ]
+ },
+ "description": "云商协"
+}
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..47a62f630dbe178b591cc23a759d24441ba7a347
GIT binary patch
literal 9662
zcmeI1QHYgA6vw~K(1`F#L`X#IgNaCpgoK2&A|WAS5fKqSTp~<-2oVV%qFs>)3E2nn
zNqUfw3W?|;d=PPEkq`+Hk%%q!ibRM=H$pO8_xAf;@8H+xy))l;ch!CHEdP7HnK^Uj
z%*;7w=KD6w2KZaGD&u!a_Vx2w_H>qI%K=qc9a!I{rMKC`--jzO2Up+`Y+4M~f;!j%
zJ^{PIcCZPo0FQyWLfZTy7zO9RKcE%CE!wVt@4&lYA$Sn>y#9NBlkmytf#Y5N#F4(=7rNAX^86XfknJzquM{c?@}O7uNXyD>7`
z^dt(8ft0P?+W(}VbC-;1%iZKcopUtSXNx=z&w`-8DmSLpAsO$BzzGo3^DpgnFjIO0
z1*br4tTJs|3Wlttd_1AoIm~1qT&u&0G0NDk%sx;g_v9B4)1fc*8xQq_?%24+Hgium
z+CXJ0|6V|*YF>JZKG#6ej(*E$(AA4xrr{)r={C1kp@Rs=^i^#ePYiCH{T3P1^WoWq
zj?k=}=VDbGd^1#%qdxK%kcn>-VP=blTmkn4T(aljsV$Gc~-gE1q?|^m}fk?n|DN
z6A>M~ba$&aE?)yx=re@7=?ZoAgtFDNr}9D2mExDs<$A=(cJuTz;60F9yYG>S(M}pu
zc9m^+zf*VpPm#F@Vr%C4eHu8fckgf);qfjyLQPrw%E)cIYlJ%$#)Ww)rbpZL!IwI6
z&NFtNRk;_(#~?qw6~S
zC>RBq48{+}h8b
z!8moDymK7sJnw?X>?+&lnyXhj2khrJfo^23_yd&Ht(-n-Y)NZD=v&6OgKUcHi@rZi
zcJ!Mgd(i|9DSe^cdx7y~{+4_%$@e#RybWTxG3ZKh&o%WaR|mc57!4_1wqFKc0PkIS
za-GZ%`p1kBWa_c)(t-REBPISncM%^!8(nOTPX_E06~6vsDjy#cIu4`SnP?8p^$
zoAT#h&q9Hb
zOy^P@t5|mIs&RKTr`P-&&T$@llD2LI%7>g;yhCrGZ4$U2l527j^g1W>u{EG7Y42s=
zT3iGAZ;Cb|P+YrJ)ajGnyS@TH1AV8sm*(}uz`5mh?4{f<8E+w<>Z{8Wid=tVB&@x5
zxR0lRXZr-OP8(N(BH2H`@Ak27CS=@%7`w{zx)RDfbCuOr_t16lyNq*l{a*z|f7YM!
zckZ*47lGLz=MeV6x%iF6*wZf0$2!;vwt$f1yc=Br`mgc23~T}mL6O!|;hs2OF%Epc
zoK4bJeJG4!PS^~zC-{ut2b@D#H{;HJlJhN+{&)!F{mplX;=QoguivtJY~BlVFlSr@
zA$OeNc^mM5E#ZG!`tL5Fo%)RB4M07?FV%MiYz1Nec)Vw%|GNIc?)-d=Rc+k^J_6eA
z^LgO>%w<7d?)$Ol@nUd4$#v3iT}Qvu=WR+oJ8$FI+!*$W#|K9Gm9elN90L=;yQ*t#
z9x?}+PxNiiThD}I{-J8lkb9$_8{3{!bJd10;H|;tyk-kNI`zRN`H$1X
+
+
+
+
+
diff --git a/src/assets/assets-login-bg-black.png b/src/assets/assets-login-bg-black.png
new file mode 100644
index 0000000000000000000000000000000000000000..b4dde4b65eb949a4c98105612dda0c02528f2fa3
GIT binary patch
literal 807777
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