diff --git a/.commitlintrc.js b/.commitlintrc.js
new file mode 100644
index 00000000..7c2e3279
--- /dev/null
+++ b/.commitlintrc.js
@@ -0,0 +1,71 @@
+// @ts-check
+/** @type {import('cz-git').UserConfig} */
+module.exports = {
+ extends: ['@commitlint/config-conventional'],
+ rules: {
+ 'body-leading-blank': [2, 'always'],
+ 'footer-leading-blank': [1, 'always'],
+ 'header-max-length': [2, 'always', 108],
+ 'subject-empty': [2, 'never'],
+ 'type-empty': [2, 'never'],
+ 'subject-case': [0],
+ 'type-enum': [
+ 2,
+ 'always',
+ [
+ 'feat',
+ 'fix',
+ 'perf',
+ 'style',
+ 'docs',
+ 'test',
+ 'refactor',
+ 'build',
+ 'ci',
+ 'chore',
+ 'revert',
+ 'wip',
+ 'workflow',
+ 'types',
+ 'release'
+ ]
+ ]
+ },
+ prompt: {
+ // 中英文对照版
+ // messages: {
+ // type: '选择你要提交的类型 :',
+ // scope: '选择一个提交范围 (可选):',
+ // customScope: '请输入自定义的提交范围 :',
+ // subject: '填写简短精炼的变更描述 :\n',
+ // body: '填写更加详细的变更描述 (可选)。使用 "|" 换行 :\n',
+ // breaking: '列举非兼容性重大的变更 (可选)。使用 "|" 换行 :\n',
+ // footerPrefixsSelect: '选择关联issue前缀 (可选):',
+ // customFooterPrefixs: '输入自定义issue前缀 :',
+ // footer: '列举关联issue (可选) 例如: #31, #I3244 :\n',
+ // confirmCommit: '是否提交或修改commit ?'
+ // },
+ // types: [
+ // { value: 'feat', name: 'feat: 新增功能' },
+ // { value: 'fix', name: 'fix: 修复缺陷' },
+ // { value: 'docs', name: 'docs: 文档变更' },
+ // { value: 'style', name: 'style: 代码格式' },
+ // { value: 'refactor', name: 'refactor: 代码重构' },
+ // { value: 'perf', name: 'perf: 性能优化' },
+ // { value: 'test', name: 'test: 添加疏漏测试或已有测试改动' },
+ // {
+ // value: 'build',
+ // name: 'build: 构建流程、外部依赖变更 (如升级 npm 包、修改打包配置等)'
+ // },
+ // { value: 'ci', name: 'ci: 修改 CI 配置、脚本' },
+ // { value: 'revert', name: 'revert: 回滚 commit' },
+ // {
+ // value: 'chore',
+ // name: 'chore: 对构建过程或辅助工具和库的更改 (不影响源文件、测试用例)'
+ // },
+ // { value: 'wip', name: 'wip: 正在开发中' },
+ // { value: 'workflow', name: 'workflow: 工作流程改进' },
+ // { value: 'types', name: 'types: 类型定义文件修改' }
+ // ]
+ }
+}
diff --git a/.env.development b/.env.development
index 6161f509..74c2b448 100644
--- a/.env.development
+++ b/.env.development
@@ -1,2 +1,4 @@
-VITE_BASE_URL=http://dev.ccwin-in.com:25300/api/admin-api
-VITE_BASE_URL_IMAGE=http://dev.ccwin-in.com:25300/admin-api
\ No newline at end of file
+
+VITE_BASE_URL=http://localhost:12080/admin-api
+#VITE_BASE_URL=http://dev.ccwin-in.com:25203/api/admin-api
+VITE_BASE_URL_IMAGE=http://localhost:12080/admin-api
\ No newline at end of file
diff --git a/.env.hella13 b/.env.hella13
deleted file mode 100644
index 3512fc6e..00000000
--- a/.env.hella13
+++ /dev/null
@@ -1,2 +0,0 @@
-VITE_BASE_URL=http://172.21.32.13:81/api/admin-api
-VITE_BASE_URL_IMAGE=http://172.21.32.13:81/admin-api
\ No newline at end of file
diff --git a/.env.hella14 b/.env.hella14
deleted file mode 100644
index ba00ae52..00000000
--- a/.env.hella14
+++ /dev/null
@@ -1,2 +0,0 @@
-VITE_BASE_URL=http://172.21.32.14:81/api/admin-api
-VITE_BASE_URL_IMAGE=http://172.21.32.14:81/admin-api
\ No newline at end of file
diff --git a/.env.hella15 b/.env.hella15
deleted file mode 100644
index 054fde1c..00000000
--- a/.env.hella15
+++ /dev/null
@@ -1,2 +0,0 @@
-VITE_BASE_URL=http://172.21.32.15:81/api/admin-api
-VITE_BASE_URL_IMAGE=http://172.21.32.15:81/admin-api
\ No newline at end of file
diff --git a/.env.hella16 b/.env.hella16
deleted file mode 100644
index f53c372b..00000000
--- a/.env.hella16
+++ /dev/null
@@ -1,2 +0,0 @@
-VITE_BASE_URL=http://172.21.32.16:81/api/admin-api
-VITE_BASE_URL_IMAGE=http://172.21.32.16:81/admin-api
\ No newline at end of file
diff --git a/.env.hella8 b/.env.hella8
deleted file mode 100644
index 0cc65e7d..00000000
--- a/.env.hella8
+++ /dev/null
@@ -1,2 +0,0 @@
-VITE_BASE_URL=http://172.22.32.8:81/api/admin-api
-VITE_BASE_URL_IMAGE=http://172.22.32.8:81/admin-api
\ No newline at end of file
diff --git a/.env.hella9 b/.env.hella9
deleted file mode 100644
index d399e4d7..00000000
--- a/.env.hella9
+++ /dev/null
@@ -1,2 +0,0 @@
-VITE_BASE_URL=http://172.22.32.9:81/api/admin-api
-VITE_BASE_URL_IMAGE=http://172.22.32.9:81/admin-api
\ No newline at end of file
diff --git a/.env.production b/.env.production
new file mode 100644
index 00000000..c4663c1d
--- /dev/null
+++ b/.env.production
@@ -0,0 +1,4 @@
+# VITE_BASE_URL=http://dev.ccwin-in.com:23111/app
+# VITE_BASE_URL_IMAGE=http://dev.ccwin-in.com:23111
+VITE_BASE_URL=https://tmsapp.hongxianggroup.com.cn
+VITE_BASE_URL_IMAGE=https://tmsapp.hongxianggroup.com.cn
\ No newline at end of file
diff --git a/.env.test b/.env.test
index c00b9fbb..9d265b12 100644
--- a/.env.test
+++ b/.env.test
@@ -1,3 +1,2 @@
-
-VITE_BASE_URL=http://dev.ccwin-in.com:25300/api/admin-api
-VITE_BASE_URL_IMAGE=http://dev.ccwin-in.com:25300/admin-api
\ No newline at end of file
+VITE_BASE_URL=http://dev.ccwin-in.com:25203/api/admin-api
+VITE_BASE_URL_IMAGE=http://dev.ccwin-in.com:25203/api/admin-api
\ No newline at end of file
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 00000000..516b6f07
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1,2 @@
+dist
+*.nvue
\ No newline at end of file
diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 00000000..8dcaad30
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,49 @@
+{
+ "parser": "vue-eslint-parser",
+ "env": {
+ "browser": true,
+ "commonjs": true,
+ "es2021": true
+ },
+ "parserOptions": {
+ "ecmaVersion": 2021,
+ "parser": "@typescript-eslint/parser",
+ "sourceType": "module",
+ "ecmaFeatures": {
+ "jsx": true
+ }
+ },
+ "extends": [
+ "airbnb-base",
+ "eslint:recommended",
+ "plugin:prettier/recommended",
+ "plugin:vue/vue3-essential",
+ "plugin:@typescript-eslint/recommended"
+ ],
+ "plugins": ["vue", "@typescript-eslint", "todo-ddl"],
+ "rules": {
+ "@typescript-eslint/ban-types": "off",
+ "@typescript-eslint/no-explicit-any": "off",
+ "@typescript-eslint/explicit-module-boundary-types": "off",
+ "import/extensions": "off",
+ "quotes": ["warn", "single"],
+ "semi": ["warn", "never"],
+ "import/no-unresolved": "off",
+ "todo-ddl/diy": "warn",
+ "import/prefer-default-export": "off",
+ "no-param-reassign": "warn",
+ "import/no-extraneous-dependencies": "off",
+ "max-len": "warn",
+ "no-restricted-syntax": "off",
+ "no-bitwise": "off",
+ "camelcase": "off",
+ "no-case-declarations": "off",
+ "@typescript-eslint/no-namespace": "off",
+ "no-undef": "off",
+ "no-promise-executor-return": "off",
+ "vue/multi-word-component-names": "off",
+ "@typescript-eslint/no-non-null-assertion": "off",
+ "@typescript-eslint/ban-ts-comment": "off",
+ "linebreak-style": "off"
+ }
+}
diff --git a/.gitignore b/.gitignore
index 7ce6e504..482ead4e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,21 +1,31 @@
-# Logs
-logs
-*.log
+.DS_Store
+node_modules/
+unpackage/
+dist/
+wxcomponents
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
-pnpm-debug.log*
-lerna-debug.log*
-
-node_modules
-.DS_Store
-dist
-*.local
# Editor directories and files
+.project
.idea
+.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
-*.sw?
\ No newline at end of file
+*.sw*
+.hbuilderx
+
+.gitee
+.github
+
+package-lock.json
+yarn.lock
\ No newline at end of file
diff --git a/.hbuilderx/debug.config.json b/.hbuilderx/debug.config.json
deleted file mode 100644
index 2d620d9f..00000000
--- a/.hbuilderx/debug.config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "rootPathIndex": 1,
- "webRoot": "${projectDir}"
-}
diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json
deleted file mode 100644
index 8fec1895..00000000
--- a/.hbuilderx/launch.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
- // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
- "version" : "0.0",
- "configurations" : [
- {
- "app-plus" : {
- "launchtype" : "local"
- },
- "default" : {
- "launchtype" : "local"
- },
- "type" : "uniCloud"
- },
- {
- "openVueDevtools" : true,
- "type" : "uni-app:h5"
- },
- {
- "playground" : "custom",
- "type" : "uni-app:app-android"
- }
- ]
-}
diff --git a/.prettierrc.js b/.prettierrc.js
new file mode 100644
index 00000000..2a1f249c
--- /dev/null
+++ b/.prettierrc.js
@@ -0,0 +1,9 @@
+module.exports = {
+ printWidth: 700, // 一行的字符数,如果超过会进行换行,默认为80
+ tabWidth: 2, // 一个 tab 代表几个空格数,默认为 2 个
+ useTabs: false, //是否使用 tab 进行缩进,默认为false,表示用空格进行缩减
+ singleQuote: true, // 字符串是否使用单引号,默认为 false,使用双引号
+ semi: false, // 行尾是否使用分号,默认为true
+ trailingComma: 'none', // 是否使用尾逗号
+ bracketSpacing: true // 对象大括号直接是否有空格,默认为 true,效果:{ a: 1 }
+}
diff --git a/Dockerfile b/Dockerfile
index 9b03057b..063a4455 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,7 +1,7 @@
# 设置基础镜像
FROM win-nginx
-WORKDIR /opt/sfms3.0-uniapp
+WORKDIR /opt/eam-pda
COPY nginx.conf /usr/local/nginx/conf/nginx.conf
-# 将dist/build/h5/文件中的内容复制到 /opt/sfms3.0-uniapp 这个目录下面
-COPY dist/build/h5/ /opt/sfms3.0-uniapp
+# 将dist/build/h5/文件中的内容复制到 /opt/eam-pda 这个目录下面
+COPY dist/build/h5/ /opt/eam-pda
diff --git a/Dockerfile_prod b/Dockerfile_prod
deleted file mode 100644
index 116cbdac..00000000
--- a/Dockerfile_prod
+++ /dev/null
@@ -1,7 +0,0 @@
-# 设置基础镜像
-FROM win-nginx
-
-WORKDIR /opt/sfms3.0-uniapp
-COPY nginx_prod.conf /usr/local/nginx/conf/nginx.conf
-# 将dist/build/h5/文件中的内容复制到 /opt/sfms3.0-uniapp 这个目录下面
-COPY dist/build/h5/ /opt/sfms3.0-uniapp
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 00000000..529534e2
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021 sugar
+
+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/README.md b/README.md
new file mode 100644
index 00000000..deeba2d6
--- /dev/null
+++ b/README.md
@@ -0,0 +1,260 @@
+# uni-vue3-ts-template
+uni-app Vue3 + TypeScript + Vite + Pinia + Unocss 模板项目
+
+支持小程序,H5,App
+
+![图片](https://img.cdn.sugarat.top/mdImg/MTY1MzIxODc4OTk1OQ==653218789959)
+
+![Unocss](https://fastly.jsdelivr.net/gh/MellowCo/image-host/2022/202211121156442.png)
+
+| H5 | 微信小程序 | App(iOS) | App(Android) |
+| :-------------------------------------------------------------------------: | :-------------------------------------------------------------------------: | :-------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------: |
+| ![图片](https://img.cdn.sugarat.top/mdImg/MTY1MzE5Mzc4MzUyMQ==653193783521) | ![图片](https://img.cdn.sugarat.top/mdImg/MTY1MzE5Mzc1Mzk1MQ==653193753951) | ![图片](https://img.cdn.sugarat.top/mdImg/MTY1MzIxMDc2NTcwNg==653210765706) | |
+
+其它模板
+* Vue3的uni-app 纯js模板:[uni-app-template](https://github.com/ATQQ/uni-app-template)
+* Vue3的Web应用模板:[vite-vue3-template](https://github.com/ATQQ/vite-vue3-template)
+
+## Env Suggest
+**Node >= 14.19**
+
+**pnpm 7**
+
+**Registry taobao - https://registry.npmmirror.com/**
+
+## Use This Template
+```sh
+npx degit atqq/uni-vue3-ts-template#main my-uni-vue3-ts-vite-project
+```
+## Feature
+### Prod
+* [x] [Vue3](https://vuejs.org/)
+* [x] [Pinia](https://pinia.vuejs.org/) - replace vuex
+* [x] [Axios](https://github.com/axios/axios)
+* UI/组件库
+ * [x] [uView](https://vkuviewdoc.fsq.pub/) - vk-uview-ui
+ * [ ] [uni-ui](https://github.com/dcloudio/uni-ui) - 待接入
+### Dev
+* [x] [Vite](https://github.com/vitejs/vite)
+* [x] [TypeScript](https://github.com/microsoft/TypeScript/#readme)
+* [x] [Sass](https://github.com/sass/sass)
+* [x] [Less](https://github.com/less/less.js)
+* [x] [Eslint](https://eslint.org/)
+* [x] [Prettier](https://prettier.io/)
+* [x] [Vitest](https://vitest.dev/) - replace jest
+* [x] [unocss](https://github.com/unocss/unocss) - 即时按需原子 css 引擎
+* [x] GitHooks [simple-git-hooks](https://github.com/toplenboren/simple-git-hooks#readme)
+* ~~LintStaged~~
+* ~~StyleLint~~
+
+## 使用
+### 安装依赖
+**建议使用pnpm,依赖安装速度更快**
+```sh
+npm i -g pnpm
+```
+
+```sh
+pnpm install
+```
+
+**MAC M1(ARM芯片),其它操作系统无需关注**,正常运行需要手动安装 `esbuild-darwin-64`即可
+```sh
+pnpm add esbuild-darwin-64@0.15.13 -D
+```
+
+## 本地启动
+### 微信小程序
+```sh
+# 构建出产物
+pnpm dev:mp-weixin
+```
+
+> **Q1:** 如果dev的时候发现报错,可以尝试删除`node_modules`之后再在命令行中运行`pnpm install --shamefully-hoist`重新安装依赖再`pnpm dev:mp-weixin`
+>
+> [详细参考文档](https://pnpm.io/zh/faq#%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%883)
+
+> **Q2:** 如果运行白屏,有报错信息 “app.js错误ReferenceError: regeneratorRuntime is not defined”
+>
+> 参考[解决方案](https://blog.csdn.net/FUFCY/article/details/125160828) 给微信小程序IDE开启**增强编译选项**
+
+然后将编译结果`dist/dev/mp-weixin`导入微信开发者工具即可运行
+
+点击查看 导入详细步骤
+
+![图片](https://img.cdn.sugarat.top/mdImg/MTYzNzQxNjc3MjA4Mw==637416772083)
+
+![图片](https://img.cdn.sugarat.top/mdImg/MTYzNzQxNjg4MTUwNA==637416881504)
+
+![图片](https://img.cdn.sugarat.top/mdImg/MTYzNzQxNjY3OTY0NQ==637416679645)
+
+点击查看 详细步骤
+
+先通过 HBuilderX 修改模拟器端口为 `62001`
+
+![图片](https://img.cdn.sugarat.top/mdImg/MTY1MzIxNDAzMjIwNg==653214032206)
+
+打开夜神模拟器
+
+![图片](https://img.cdn.sugarat.top/mdImg/MTY1MzIxNDA5OTYxNg==653214099616)
+
+选择运行到 Android 基座
+
+![图片](https://img.cdn.sugarat.top/mdImg/MTY1MzIxNDEzMzI0OA==653214133248)
+
+选择已经打开的模拟器,点击运行即可
+![图片](https://img.cdn.sugarat.top/mdImg/MTY1MzIxNDIxNjczNw==653214216737)
+
+![图片](https://img.cdn.sugarat.top/mdImg/MTY1MzIxMzkyOTQxNg==653213929416)
+
+