From f30a2c7d3cd1b6b689511ef5a129e4e6dcc9ff04 Mon Sep 17 00:00:00 2001 From: 91zhangliying <1663782157@qq.com> Date: Sun, 14 Aug 2022 18:58:00 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/QuickTable/index.vue | 1 + src/components/QuickToolbar/index.vue | 4 + src/types/table.ts | 1 + src/views/resource/attachment/index.vue | 214 +++++++++++++++ src/views/resource/sms/config/index.vue | 243 ++++++++++++++++ src/views/resource/sms/signature/index.vue | 275 +++++++++++++++++++ src/views/resource/sms/template/index.vue | 266 ++++++++++++++++++ src/views/resource/storage/general/index.vue | 214 +++++++++++++++ src/views/resource/storage/object/index.vue | 230 ++++++++++++++++ 9 files changed, 1448 insertions(+) create mode 100644 src/views/resource/attachment/index.vue create mode 100644 src/views/resource/sms/config/index.vue create mode 100644 src/views/resource/sms/signature/index.vue create mode 100644 src/views/resource/sms/template/index.vue create mode 100644 src/views/resource/storage/general/index.vue create mode 100644 src/views/resource/storage/object/index.vue diff --git a/src/components/QuickTable/index.vue b/src/components/QuickTable/index.vue index cbb0782..f4c7dc1 100644 --- a/src/components/QuickTable/index.vue +++ b/src/components/QuickTable/index.vue @@ -146,6 +146,7 @@ onMounted(() => { :align="item.align" :formatter="item.format" show-overflow-tooltip + :fixed="item.fixed" > { .toobar { margin-bottom: 10px; } + +.el-upload { + display: inline-flex; +} diff --git a/src/types/table.ts b/src/types/table.ts index acb40b6..b6f88e4 100644 --- a/src/types/table.ts +++ b/src/types/table.ts @@ -5,6 +5,7 @@ export interface Column { type?: string align?: string slot?: boolean + fixed?: boolean format?(row: any, column?: any, cellValue?: any, index?: number): void } export interface Btns { diff --git a/src/views/resource/attachment/index.vue b/src/views/resource/attachment/index.vue new file mode 100644 index 0000000..da131b5 --- /dev/null +++ b/src/views/resource/attachment/index.vue @@ -0,0 +1,214 @@ + + diff --git a/src/views/resource/sms/config/index.vue b/src/views/resource/sms/config/index.vue new file mode 100644 index 0000000..fcfcce5 --- /dev/null +++ b/src/views/resource/sms/config/index.vue @@ -0,0 +1,243 @@ + + diff --git a/src/views/resource/sms/signature/index.vue b/src/views/resource/sms/signature/index.vue new file mode 100644 index 0000000..3e0405b --- /dev/null +++ b/src/views/resource/sms/signature/index.vue @@ -0,0 +1,275 @@ + + diff --git a/src/views/resource/sms/template/index.vue b/src/views/resource/sms/template/index.vue new file mode 100644 index 0000000..fd533d2 --- /dev/null +++ b/src/views/resource/sms/template/index.vue @@ -0,0 +1,266 @@ + + diff --git a/src/views/resource/storage/general/index.vue b/src/views/resource/storage/general/index.vue new file mode 100644 index 0000000..71f7ad6 --- /dev/null +++ b/src/views/resource/storage/general/index.vue @@ -0,0 +1,214 @@ + + diff --git a/src/views/resource/storage/object/index.vue b/src/views/resource/storage/object/index.vue new file mode 100644 index 0000000..7754329 --- /dev/null +++ b/src/views/resource/storage/object/index.vue @@ -0,0 +1,230 @@ + + -- Gitee From c0d6725d0deb71ac9820d6094ce04abb42129ecd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9C=9F=E8=B1=86=E5=93=A5?= Date: Tue, 16 Aug 2022 15:21:20 +0800 Subject: [PATCH 02/12] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E7=AE=A1=E7=90=86=E5=92=8C=E6=9D=83=E9=99=90=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/QuickToolbar/index.vue | 2 +- src/pages/login/index.vue | 2 +- src/types/menu.ts | 4 +- src/types/user.ts | 16 +- src/utils/index.ts | 2 +- src/views/permission/assignUser/index.vue | 79 ++++---- src/views/permission/rolePermission/index.vue | 103 +++++----- src/views/system/dept/index.vue | 61 +++--- src/views/system/dictionary/index.vue | 75 ++++---- src/views/system/dictionaryType/index.vue | 40 ++-- src/views/system/log/error.vue | 124 ++++++------ src/views/system/log/operate.vue | 125 +++++++------ src/views/system/menu/index.vue | 54 +++--- src/views/system/role/index.vue | 12 +- src/views/system/user/index.vue | 176 +++++++++--------- 15 files changed, 457 insertions(+), 418 deletions(-) diff --git a/src/components/QuickToolbar/index.vue b/src/components/QuickToolbar/index.vue index 4df432e..a0f13ac 100644 --- a/src/components/QuickToolbar/index.vue +++ b/src/components/QuickToolbar/index.vue @@ -171,7 +171,7 @@ const handleCustomClick = (item: any) => { @click="emits('onRefresh')" >{{ refreshButtonName }} - + -``` - -2. composition API (setup) - -```vue - - - -``` - -3. composition API(语法糖) - -```vue - - - -``` - -### 持久化 - -1.安装 - -``` -pnpm install pinia-plugin-persist -``` - -2.导入 - -```ts -import { createPinia } from 'pinia' -import persist from 'pinia-plugin-persist' - -const pinia = createPinia() -pinia.use(persist) -export { pinia } -``` - -3.配置使用 - -```ts -import { defineStore } from 'pinia' - -interface UserState { - token: string -} - -export const useUserStore = defineStore('userStore', { - state: (): UserState => { - return { - token: '', - } - }, - getters: { - getToken(): string { - return this.token - }, - }, - actions: { - setToken(token: string) { - this.token = token - }, - }, - //核心配置 - persist: { - enabled: true, //启用 - strategies: [ - { - key: 'user', //存储的key - storage: localStorage, //存储方式sessionStorage|localStorage//默认sessionStorage - paths: ['token'], //要存储的属性 - }, - ], - }, -}) -``` - -4.自定义存储方式 - -```ts -const cookiesStorage: Storage = { - setItem(key, state) { - return Cookies.set('accessToken', state.accessToken, { expires: 3 }) - }, - getItem(key) { - return JSON.stringify({ - accessToken: Cookies.getJSON('accessToken'), - }) - }, -} -import { defineStore } from 'pinia' - -interface UserState { - accessToken: string -} - -export const useUserStore = defineStore('userStore', { - state: (): UserState => { - return { - accessToken: '', - } - }, - getters: { - getToken(): string { - return this.accessToken - }, - }, - actions: { - setToken(accessToken: string) { - this.accessToken = accessToken - }, - }, - //核心配置 - persist: { - enabled: true, //启用 - strategies: [ - { - key: 'user', //存储的key - storage: cookiesStorage, //自定义 - paths: ['accessToken'], //要存储的属性 - }, - ], - }, -}) -``` - -5.效果 - -![mock服务使用例子图片](../public/images/pinia-1.png) - -::: warning 警告 - -1.只配置 enabled 为 true 默认会以模块 id 为 key,存储当前模块所有的状态; - -2.路由跳转会刷新掉 store,尽量放在路由刷新后存储。 -::: - -### 持久化并加密 - -pinia-use-persist - -用法官方: -https://www.npmjs.com/package/pinia-use-persist - -```ts -persist: { - enabled: true, - encryptionKey: 'myTest', - } -``` - -## element-plus - -### 介绍 - -基于 Vue 3,面向设计师和开发者的组件库,官网地址:https://element-plus.gitee.io/zh-CN/ - -### 安装 - -安装命令 - -```sh -pnpm install element-plus --save -``` - -### 完整引入 - -如果你对打包后的文件大小不是很在乎,那么使用完整导入会更方便。 - -```ts -... -// main.ts -import ElementPlus from 'element-plus' -import 'element-plus/dist/index.css' -app.use(ElementPlus) -... -``` - -volar 配置 - -如果您使用 Volar,请在 tsconfig.json 中通过 compilerOptions.type 指定全局组件类型。 - -```ts -// tsconfig.json -{ - "compilerOptions": { - // ... - "types": ["element-plus/global"] - } -} -``` - -### 按需导入 - -参考官网:https://element-plus.gitee.io/zh-CN/guide/quickstart.html#%E6%8C%89%E9%9C%80%E5%AF%BC%E5%85%A5 - -## i18n - -### 介绍 - -Vue I18n 是 Vue.js 的国际化插件。它可以轻松地将一些本地化功能集成到你的 Vue.js 应用程序中。 - -官网地址:https://kazupon.github.io/vue-i18n/zh/ - -### 安装 - -```sh -pnpm install vue-i18n -``` - -### 配置 - -1.在 src 目录下创建 i18n 目录 - -2.在 i18n 目录下创建 index.ts 文件和 lang 目录 - -3.在 lang 目录下创建 en.json 和 zh.json,文件内容如下: - -```json -// en.json -{ - "title": "aini team" -} -``` - -```json -// zh.json -{ - "title": "艾尼科技" -} -``` - -3.index 的配置如下 - -```ts -// index.ts -import { createI18n } from 'vue-i18n' -import pinia from '../store' -import { useAppStore } from '../store/modules/app' - -import zhLocale from './lang/zh.json' -import enLocale from './lang/en.json' - -const messages = { - zh: zhLocale, - en: enLocale, -} -const appStore = useAppStore(pinia) - -const i18n = createI18n({ - locale: appStore.getLanguage, - messages, - globalInjection: true, //解决Uncaught (in promise) TypeError: _ctx.$t is not a function - allowComposition: true, // 使用新特性 例如:useI18n - legacy: false, // 使用组合式api -}) - -export default i18n -``` - -### 常见错误 - -#### 错误: - -::: danger 错误信息 -Uncaught (in promise) TypeError: \_ctx.$t is not a function -::: - -解决方案 1: - -```ts -const i18n = createI18n({ - ... - globalInjection: true,//增加此属性 - ... -}) -``` - -解决方案 2: -升级 vue-i18n 到 9.2.0-beta.35 - -## axios - -### 介绍 - -官网: - -Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。 -axios 本质上也是对原生 XHR 的封装,只不过它是 Promise 的实现版本,符合最新的 ES 规范。 -axios 时目前最流行的 ajax 封装库之一,用于很方便地实现 ajax 请求的发送。 - -### 安装 - -```sh -pnpm install axios -``` - -### 封装 axios 拦截器 - -1.在 utils 目录下创建 request.ts,配置如下: - -```ts -// request.ts -import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios' - -const baseURL = import.meta.env.VITE_APP_BASE_URL -const request: AxiosInstance = axios.create({ - baseURL: baseURL, - timeout: 1000 * 15, - headers: { - 'Content-Type': 'application/json;charset=utf-8', - }, -}) - -// 请求拦截器 -request.interceptors.request.use( - (config: AxiosRequestConfig) => { - // const token = '' - // config.headers.token = `Bearer ${token}` - return config - }, - (error) => { - console.error(error) - return Promise.reject(error) - } -) - -// 响应拦截器 -request.interceptors.response.use( - (res: AxiosResponse) => { - const { data } = res - const { code, data: payload, msg } = data - if (code === '200') { - return Promise.resolve(payload) - } - return Promise.reject(msg) - }, - (error) => { - console.error(error) - return Promise.reject(error) - } -) - -export default request -``` - -### 使用 - -```ts -import request from '@/utils/request' - -request({ - url: "/api/user/getUserList", - method: "GET", - ... - }); -``` - -## mock - -### 介绍 - -官网地址:http://mockjs.com/examples.html - -1.mock 是模拟数据,方便前端和后端交互,提高工作效率。在接口未开发或者未完成时,前后端只需要规范接口的规则,前端通过接口规则去生成模拟数据。这样前端就不需要等待后端,此时可以使用 mock 来模拟后端数据完成前端的逻辑,待后端接口提供后再切换到真实接口即可。 - -2.后端还可以用做单元测试 - -### 方案 - -方案一:变量 - -```ts -const data = [ - { - id: 1, - name: '张三', - }, -] -console.log(data) -``` - -方案二:文件(json、ts、js 等) - -下面使用 json 文件举例 - -1.创建 json 文件及定义 json - -```json -// list.json -{ - "list": [ - { - "id": 1, - "name": "张三" - } - ] -} -``` - -2.导入 json 文件使用 - -```ts -import json from '路径/list.json' -console.log('data', json) -``` - -方案三:本地 mock(不推荐,由于会写很多与项目无关的 mock 代码) - -方式是使用拦截请求 - -方案四:mock 服务(当下推荐的方式) - -1.使用 apipost 工具提供的 mock 服务 - -官网文档地址:https://wiki.apipost.cn/document/00091641-1e36-490d-9caf-3e47cd38bcde/832f6d9f-7951-4361-b959-229666685ba9 - -下图是我自己使用的 apipost 工具 mock 配置截图 - -![mock服务使用例子图片](../public/images/mock-server.jpg) - -2.其他工具提供的 mock 服务; - -3.自己搭建 mock 服务; - -## husky - -### 介绍 - -git 提交时校验 eslint 的方案之一 - -### 安装 husky - -```sh -pnpm install husky --save-dev -``` - -### 安装配置文件 - -```sh -npx husky install -npm set-script prepare "husky install" -npx husky add .husky/pre-commit "npm test" -``` - -### 配置 - -修改 pre-commit 文件 - -``` -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - -npm test //-- -pnpm run lint-fix //++ -git add //++ - -``` - -## 流水线 - -### 介绍 - -流水线是 CICD 工具,可提供持续集成、持续交付(部署)能力,帮助企业不断提升应用交付的质量和效率。通过构建自动化、测试自动化、部署自动化,完成从代码提交到应用交付的自动化。通过交付流程度量,发现效率问题,并推荐优化方案。 - -### 方案 - -1.码云提供的 Gitee Go; - -2.阿里云-云效 Codeup - -3.百度效率云 - -4.华为开源平台 - -5.码市; - -6.coding; - -### 配置 - -1. 阿里云-云效 Codeup - -2. 码云的 gitee go 配置文件 - -gitee 流水线中增加流水线及配置流水线,配置完后产生的配置文件如下: - -```yml -// .workflow/master-pipeline.yml -version: '1.0' -name: master-line -displayName: master分支流水线 -triggers: - trigger: auto - push: - branches: - precise: - - master -stages: - - name: stage-afddc16e - displayName: 构建 - strategy: naturally - trigger: auto - executor: [] - steps: - - step: build@nodejs - name: build_nodejs - displayName: Nodejs 构建 - nodeVersion: 14.16.0 - commands: - - npm install && rm -rf ./dist && npm run build - artifacts: - - name: BUILD_ARTIFACT - path: - - ./dist - - step: publish@general_artifacts - name: publish_general_artifacts - displayName: 上传制品 - dependArtifact: BUILD_ARTIFACT - artifactName: output - dependsOn: build_nodejs - - name: stage-cb94206a - displayName: 发布 - strategy: naturally - trigger: auto - executor: [] - steps: - - step: publish@release_artifacts - name: publish_release_artifacts - displayName: 发布 - dependArtifact: output - version: 1.0.0.0 - autoIncrement: true - - name: stage-dd45b99f - displayName: 部署 - strategy: naturally - trigger: auto - executor: [] - steps: - - step: deploy@agent - name: deploy_agent - displayName: 主机部署 - hostGroupID: 部署服务器1 - deployArtifact: - - source: build - name: output - target: /www/wwwroot/quick.com/gitee_go/deploy - dependArtifact: BUILD_ARTIFACT - script: |- - # 请在此输入部署脚本或者需要执行的部署脚本文件 - - # 压缩方式备份部署目录到backup目录下 - cd /www/wwwroot/quick.com/dist - tar -zcvf /www/wwwroot/quick.com/backup/dist.tar.gz /www/wwwroot/quick.com/dist - # 备份后删除部署目录 - rm -rf /www/wwwroot/quick.com/dist - # 解压部署包到部署目录下 - tar -zxvf /www/wwwroot/quick.com/gitee_go/deploy/output.tar.gz -C /www/wwwroot/quick.com - echo "Finish" -permissions: - - role: admin - members: [] - - -``` - -### tar 压缩和解压 - -1. 压缩: - -语法 - -``` -tar -zcvf 目标目录/压缩后的文件名称.tar.gz 源目录 -``` - -例子 - -``` -tar -zcvf /www/wwwroot/quick.com/backup/dist.tar.gz /www/wwwroot/quick.com/dist -``` - -2. 解压: - -语法 - -``` -tar -zxvf 源目录/output.tar.gz -C 目标目录 -``` - -例子 - -``` -tar -zxvf /www/wwwroot/quick.com/gitee_go/deploy/output.tar.gz -C /www/wwwroot/quick.com -``` - -3. tar 命令的常用参数 - -``` --c, --create 创建一个新归档 --x, --extract, --get 从归档中解出文件 --f, --file=ARCHIVE 使用归档文件 --z, 是否需要用gzip压缩 --C, --directory=DIR 改变至目录 DIR --v, 压缩的过程中显示档案 -``` - -3.其他方案的配置参考各个平台提供的教程 - -## webhooks - -### 介绍 - -1.反向 api 2.回调 3.推送; 4.订阅; 5.事件触发; - -### 安装 - -### 配置 - -## volar - -volar 插件改名为 Vue Language Features (Volar) - -vscode 插件市场安装 volar 即可 - -## eslint - -### 介绍 - -eslint 是代码规范 - -### 安装 - -1.安装 eslint - -```sh -pnpm install eslint --save-dev -``` - -::: tip 注意 -eslint 只有开发阶段需要,因此添加到开发阶段的依赖中即可 -::: - -2.配置 eslint - -在项目的根目录下创建.eslintrc.js 的 eslint 配置文件 - -```js -// .eslintrc.js -module.exports = { - root: true, - env: { - browser: true, // browser global variables - es2021: true, // adds all ECMAScript 2021 globals and automatically sets the ecmaVersion parser option to 12. - }, - parserOptions: { - ecmaVersion: 12, - }, -} -``` - -3.安装 vue 的 eslint 插件 - -```sh -pnpm install eslint-plugin-vue --save-dev -``` - -4.配置 vue 的 eslint 插件 - -```js -// .eslintrc.js -... -extends: [ - 'plugin:vue/vue3-recommended' // ++ -] -... -``` - -5.安装 Airbnb 基础规则的 eslint 插件 - -```sh -// npm version > 5 -npx install-peerdeps --dev eslint-config-airbnb-base - -pnpm install eslint-config-airbnb-base eslint-plugin-import --save-dev -``` - -4.配置 Airbnb 基础规则的 eslint 插件 - -```js -// .eslintrc.js -... -extends: [ - 'plugin:vue/vue3-recommended', - 'airbnb-base', // ++ -], -... -``` - -5.安装 prettier 风格插件 -本次项目不单独引入 prettier,而是使用 eslint 插件将 prettier 作为 eslint 规则执行。 - -```sh -pnpm install --save-dev eslint-plugin-prettier -pnpm install --save-dev --save-exact prettier -``` - -6.配置 prettier 风格插件 - -```js -// .eslintrc.js -... -plugins: ['prettier'], // ++ -rules: { - 'prettier/prettier': 'error', // ++ -}, -... -``` - -::: warning 警告 -配置到此时,就会遇到 eslint 规则和 prettier 规则冲突的情况。 - -eslint 告诉我们要使用单引号,但是改为单引号以后,prettier 又告诉我们要使用双引号。 - -这时候就需要另一个 eslint 的插件 eslint-config-prettier,这个插件的作用是禁用所有与格式相关的 eslint 规则,也就是说把所有格式相关的校验都交给 prettier 处理。 - -为了解决 eslint 和 prettier 冲突,安装下面插件即可。 -::: - -7.安装禁用 eslint 风格规则的 eslint-config-prettier 插件 - -```sh -pnpm install --save-dev eslint-config-prettier -``` - -8.配置禁用 eslint 风格规则的 eslint-config-prettier 插件 - -```js -// .eslintrc.js -... -plugins: ['prettier'], -extends: [ - 'plugin:vue/vue3-recommended', - 'airbnb-base', - 'plugin:prettier/recommended', // ++ -], -rules: { - 'prettier/prettier': 'error', -}, -... -``` - -9.自定义 prettier 的规则 - -在项目的根目录下创建.prettierrc.js 的 prettier 配置文件 - -```js -// .prettierrc.js -module.exports = { - ... - semi: false, //句末是否有分号 - singleQuote: true, //是否使用单引号 - arrowParens: 'avoid',//箭头函数一个参数时省略函数圆括号 - endOfLine: 'auto', - ... -} -``` - -10.配置 eslint 检测 ts 文件(非 typscript 不需要配置此项即可) - -::: tip 注意 -由于性能问题,TypeScript 官方决定全面采用 ESLint,甚至把仓库(Repository)作为测试平台,而 ESLint 的 TypeScript 解析器也成为独立项目,专注解决双方兼容性问题。 - -JavaScript 代码检验工具 ESLint 在 TypeScript 团队发布全面采用 ESLint 之后,发布 typescript-eslint 项目,以集中解决 TypeScript 和 ESLint 兼容性问题。而 ESLint 团队将不再维护 typescript-eslint-parser,也不会在 Npm 上发布,TypeScript 解析器转移至 Github 的 typescript-eslint/parser。 -::: - -安装 ESLint 的解析器,用于解析 typescript,从而检查和规范 Typescript 代码 - -```sh -pnpm install @typescript-eslint/parser --save-dev -``` - -安装 typescript 代码的规范插件 - -```sh -pnpm install @typescript-eslint/eslint-plugin --save-dev -``` - -配置 eslint 支持 typescript - -```ts -module.exports = { - root: true, - env: { - browser: true, // browser global variables - node: true,//++ - es2021: true, // adds all ECMAScript 2021 globals and automatically sets the ecmaVersion parser option to 12. - }, - parserOptions: { - ecmaVersion: 12, - "parser": "@typescript-eslint/parser", - }, - plugins: [ - "prettier", - "@typescript-eslint", //++ - ], - extends: [ - "plugin:vue/vue3-recommended", - "airbnb-base", - "plugin:@typescript-eslint/recommended", //++ - "plugin:prettier/recommended", - ], - rules: { - ... - 'prettier/prettier': 'error', - ... - }, - parser: "@typescript-eslint/parser",//++ //定义ESLint的解析器 -}; -``` - -11.eslint 测试配置 - -package.json 中配置 - -```json -... - "scripts": { - "dev": "vite", - "build": "vue-tsc --noEmit && vite build", - "preview": "vite preview", - "lint": "eslint --ext .js,ts,.vue, src",//++ - "lint-fix": "eslint --ext .js,ts,.vue, src --fix"//++ - }, - ... -``` - -12.eslint 测试 - -```sh -pnpm run lint # 只检测 - -pnpm run lint-fix # 检测并使用配置的规则去格式化 -``` - -13.配置 eslint 不需要检测的目录及文件: - -在项目根目录下创建.eslintignore 文件 - -``` -// .eslintignore -build -src/assets -public -dist -``` - -14.eslint 配置后常见错误 - -错误一: -::: danger 错误 -配置 eslint 后,执行检测后,会报错误 CR 错误,配置此文件即可解决。 -::: - -![错误图片](../public/images/eslint-err-1.jpg) - -解决方案: - -在项目根目录下创建.editorconfig 文件 - -``` -// .editorconfig -root = true - -[*] -charset = utf-8 -end_of_line = crlf //++ -``` - -### eslint 完整配置文件 - -```js -// .eslintr.js -module.exports = { - root: true, - env: { - browser: true, // browser global variables - node: true, - es2021: true, // adds all ECMAScript 2021 globals and automatically sets the ecmaVersion parser option to 12. - }, - parserOptions: { - ecmaVersion: 2020, - parser: '@typescript-eslint/parser', - sourceType: 'module', - }, - plugins: ['prettier', '@typescript-eslint'], - extends: [ - 'plugin:vue/vue3-recommended', - 'airbnb-base', - 'plugin:@typescript-eslint/recommended', - 'plugin:prettier/recommended', - ], - rules: { - 'prettier/prettier': 'error', - 'import/prefer-default-export': 'off', - 'import/no-unresolved': 'off', - 'import/extensions': 'off', - 'import/no-absolute-path': 'off', - 'import/no-extraneous-dependencies': 'off', - 'vue/multi-word-component-names': 0, - 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', - 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', - }, - // parser: '@typescript-eslint/parser', //定义ESLint的解析器 - parser: 'vue-eslint-parser', -} -``` - -### eslint 常用规则配置 - -```js -// .eslintr.js -... -rules: { - 'prettier/prettier': 'error', - 'import/prefer-default-export': 'off',//禁用必须使用export default - 'import/no-unresolved': 'off', - 'import/extensions': 'off', - 'import/no-absolute-path': 'off', - 'import/no-extraneous-dependencies': 'off', - 'vue/multi-word-component-names': 0, - 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', - 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', - }, - ... -``` - -### prettier 常用规则配置 - -```js -// .prettierrc.js -module.exports = { - ... - semi: false, //句末是否有分号 - singleQuote: true, //是否使用单引号 - arrowParens: 'avoid',//箭头函数一个参数时省略函数圆括号 - endOfLine: 'auto', - ... -} -``` - -## sass 安装 - -### 介绍 - -### 安装 - -::: tip 注意 -以前用 vuecli 的时候,还要安装 sass-loader、node-sass 什么的,但是 vite 其实安装 sass 就可以了。 -::: - -```sh - -npm install --save-dev sass - -``` - -### 配置 - -1.全局引入 - -vite.config.ts 中配置 - -```ts -export default defineConfig({ - ... - css: { - preprocessorOptions: { - scss: { - /* - 引入var.scss全局预定义变量, - 如果引入多个文件, - 可以使用 - '@import "@/assets/scss/globalVariable1.scss";@import "@/assets/scss/globalVariable2.scss";' - 这种格式 - */ - additionalData: '@import "@/assets/scss/globalVariable.scss";', - }, - }, - }, - ... -}) -``` - -2.局部引入(混合 ) - -新建一个 mixin.scss 文件,放到 src/assets/scss/目录下,内容大概如下: - -```css -// flex布局 -@mixin layout($dir: column, $justify: center, $align: right) { - display: flex; - flex-direction: $dir; - justify-content: $justify; - align-items: $align; -} -@mixin userselect($val: none) { - -webkit-user-select: $val; - -moz-user-select: $val; - -ms-user-select: $val; - user-select: $val; -} -``` - -3.局部引入 - -新建一个 variable.scss 文件,放到 src/assets/scss/目录下,内容大概如下: - -```css -$page-user-select: none; -``` - -### 使用 - -::: tip 组件里面使用 scss 注意点主要就这几点 -1、style 标签上添加 lang="scss" - -2、这里用到了 alias 别名,用不用别名其实都照样引入,别名可以看之前在下写的 vite 配置 alias 别名的那篇。 别名@这里配置的是 src 目录 - -3、全局 scss 变量在 vite.config.ts 里配置了就不需要引入了,直接用就可以了。 -::: - -在 vue 组件里面引入 scss 变量并使用 - -```css - -``` - -## vitepress - -### 介绍 - -VitePress (文档框架)是 vuePress 的下一代,是基于 vite 构建,为了解决 vuePress 构建慢等缺点。vuePress 使用的是 webpack 构建,由于 webpack 的自身缺陷也就造成的 vuePress 的缺陷,但这也是生存必经之路。 - -vitepress 官网地址:https://fttp.jjf-tech.cn/vitepress/guide/getting-started.html - -vuepress 官网地址:https://vuepress.vuejs.org/zh/ - -### 安装 - -1.初始化 - -::: tip 注意 -如果文档单独项目,执行下面初始化命令。会生成 package.json 文件 - -如果是安装到现有项目,就不需要初始化。然后在项目根目录下创建 docs 目录,配置的全部在此目录下即可。 -::: - -```sh -yarn init -``` - -2.安装 vitepress - -```sh -yarn add --dev vitepress -``` - -3.创建 docs 目录 - -4.在 docs 目录下创建 index.md 文件(首页) - -```yaml -# index.md ---- -home: true -heroImage: /logo.svg -heroAlt: logo -heroText: aini-vue3-admin -tagline: aini-vue3-admin文档站点,此站点基于vitepress开发 -actionText: 快速开始 → -actionLink: /guide/index -features: - - title: 💡 极速的服务启动 - details: 使用原生 ESM 文件,无需打包! - - title: ⚡️ 轻量快速的热重载 - details: 无论应用程序大小如何,都始终极快的模块热重载(HMR) - - title: 🛠️ 丰富的功能 - details: 对 TypeScript、JSX、CSS 等支持开箱即用。 - - title: 📦 优化的构建 - details: 可选 “多页应用” 或 “库” 模式的预配置 Rollup 构建 - - title: 🔩 通用的插件 - details: 在开发和构建之间共享 Rollup-superset 插件接口。 - - title: 🔑 完全类型化的API - details: 灵活的 API 和完整的 TypeScript 类型。 -footer: MIT Licensed | Copyright © 2021-present CoolDream ---- -``` - -5.在 docs 目录下创建 public 目录存放 logo,favicon 等资源文件。 - -- 引用 public 下的资源文件 - -``` -/logo.png 或 public/logo.png -``` - -- 使用基础 URL 引用 public 下的资源文件 - -``` -$withBase('/logo.png') -``` - -::: tip 参考 -上面的使用方式如果不能正常使用,[请参考官网](https://fttp.jjf-tech.cn/vitepress/guide/assets.html#%E5%85%AC%E5%BC%80%E6%96%87%E4%BB%B6) -::: - -6.在 public 目录下创建 images 存放图片文件。 - -7.添加脚本 - -```json -// package.json -{ - ... - "scripts": { - "docs:dev": "vitepress dev docs", - "docs:build": "vitepress build docs", - "docs:serve": "vitepress serve docs" - } - ... -} -``` - -6.启动 - -```sh -yarn docs:dev # 开发环境运行 -``` - -7.打包 - -```sh -yarn docs:build # 打包生成dist -``` - -8.预览 - -```sh -yarn docs:serve # 每次代码变更,需要预览必须重新build -``` - -### 配置 - -1.在 docs 目录下创建目录 vitepres - -2.创建 config.js 文件 - -3.配置首页,首页使用的是 yaml 配置文件方式 - -常用配置参数: - -| 参数名 | 描述 | -| :--------- | :----------------------------------------------------------- | -| home | 是否显示首页 | -| heroImage | logo 地址 | -| heroAlt | logo 图片异常,显示的内容 | -| heroText | 主标题 | -| tagline | 副标题 | -| actionText | 进入按钮文本 | -| actionLink | 进入按钮链接 | -| features | 特性,特性节点下有两个属性 title:特性标题,details:特性详情 | -| footer | 底部 | - -::: tip 注意 -插入表情方法 - -``` -:tada: :100: -``` - -如果需要更多表情,[去寻找需要的表情](https://github.com/markdown-it/markdown-it-emoji/blob/master/lib/data/full.json) -::: - -更多配置查看官方配置文档,[去官网](https://fttp.jjf-tech.cn/vitepress/) - -4.配置 config.js - -```js -// config.js -module.exports = { - base: '/', //基础url,必须以/开头及结尾,例:/quick/ - lang: 'zh-CN', - title: 'quick-doc', - description: 'quick-doc.', - // locales:{}, - head: [ - [ - 'link', - { - rel: 'icon', - href: '/favicon.ico', - }, - ], - [ - 'meta', - { - name: 'keywords', - content: ' 后台 管理 平台', - }, - ], - [ - 'meta', - { - name: 'description', - content: 'quick-vue3-doc是基于vitepress使用Markdown语法编写的文档。', - }, - ], - ], - themeConfig: { - logo: '/logo.svg', - search: true, - searchMaxSuggestions: 10, - // smoothScroll: true, - repo: 'vuejs/vitepress', - // docsDir: "docs", - // lastUpdated: true, - // lastUpdated: 'Last Updated', - // editLinks: true, - // editLinkText: '为此页提供修改建议', - - nav: [], //导航配置 - sidebar: {}, //左侧栏配置 - }, -} -``` - -::: tip 提示 -导航配置:[go 导航配置](http://localhost:3000/guide/install.html#%E5%AF%BC%E8%88%AA) - -左侧栏配置:[go 左侧栏配置](http://localhost:3000/guide/install.html#%E5%B7%A6%E4%BE%A7%E6%A0%8F) -::: - -config.js 常用配置参数 - -1.站点配置参数 - -| 参数名 | 描述 | -| :---------- | :------------- | -| base | 前缀 | -| lang | 语言 | -| title | 标题 | -| description | 描述 | -| locales | 国际化 | -| head | 注入 head 标签 | -| themeConfig | 皮肤配置 | - -2.皮肤配置参数 - -| 参数名 | 描述 | -| :------------------- | :------------------------------------------- | -| logo | 左上角 logo | -| search | 右上角搜索 | -| searchMaxSuggestions | 搜索最大字符 | -| smoothScroll | 丝滑滚动条 | -| repo | 仓库路径,配置此参数导航栏会显示 GitHub 导航 | -| docsDir | doc 目录 | -| lastUpdated | 显示更新时间 | -| editLinks | 是否有编辑链接 | -| editLinkText | 编辑链接文本 | -| nav | 导航 | -| sidebar | 左侧栏 | - -更多配置,[去官网查看](https://fttp.jjf-tech.cn/vitepress/guide/global-computed.html) - -### 导航 - -1.导航配置 - -```js -// config.js -themeConfig:{ - ... - nav: [ - { - text: "指南", - link: "/guide/index", - activeMatch: "^/$|^/guide/", - }, - { - text: "组件", - link: "/components/index", - }, - { - text: "版本", - items: [ - { - text: "1.x", - link: "http://localhost:3000/v1", - }, - { - text: "2.x", - link: "http://localhost:3000/v2", - }, - ], - }, - { - text: "选择语言", - - items: [ - { - text: "简体中文", - link: "/zh", - }, - { - text: "English", - link: "/en", - }, - ], - }, - ], - ... -} -``` - -导航参数 - -| 参数名 | 描述 | -| :---------- | :------- | -| text | 导航文本 | -| link | 导航地址 | -| activeMatch | 当前激活 | -| items | 子导航 | - -2.在 docs 目录下创建导航对应的文件夹 - -### 左侧栏 - -1.左侧栏配置 - -```js -// config.js -themeConfig:{ - ... - sidebar: { - "/guide/": [ - { - text: "介绍", - children: [ - { - text: "quick-doc是什么?", - link: "/guide/introduction", - children: [], - }, - { - text: "安装", - link: "/guide/install", - children: [], - }, - ], - }, - ], - "/components/": [ - { - text: "安装", - children: [], - }, - ], - }, - ... -} -``` - -左侧栏参数 - -| 参数名 | 描述 | -| :------- | :--------- | -| text | 左侧栏文本 | -| link | 左侧栏地址 | -| children | 子 | - -### 自定义皮肤 - -1.在 docs/.vitepress 目录下创建皮肤目录 theme - -2.在 docs/.vitepress/theme 目录下创建 index.js - -配置: - -```js -// .vitepress/theme/index.js -import Layout from './Layout.vue' - -export default { - Layout, - NotFound: () => 'custom 404', // <- this is a Vue 3 functional component - enhanceApp({ app, router, siteData }) { - // app is the Vue 3 app instance from `createApp()`. router is VitePress' - // custom router. `siteData`` is a `ref`` of current site-level metadata. - }, -} -``` - -3.docs/.vitepress/theme 目录下创建 layout.vue 文件 - -配置 - -```vue - - -``` - -4.如果仅仅是扩展默认主题 - -```js -// .vitepress/theme/index.js -import DefaultTheme from 'vitepress/dist/client/theme-default' - -export default { - ...DefaultTheme, -} -``` - -### 插件 diff --git a/docs/guide/introduction.md b/docs/guide/introduction.md deleted file mode 100644 index 09db1ca..0000000 --- a/docs/guide/introduction.md +++ /dev/null @@ -1,7 +0,0 @@ -# 什么是 quick框架? - -quick框架是基于vue3技术栈和vite构建工具搭建的一套后台管理系统框架。旨在方便开发者快速高效的工作。 - -## quick 的功能模块有哪些? - -用户管理、角色管理、权限管理等等。 diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index 2876891..0000000 --- a/docs/index.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -home: true -heroImage: /logo.svg -heroAlt: logo -heroText: quick框架 -tagline: quick框架是基于vue3技术栈和vite构建工具搭建的一套后台管理系统框架 -actionText: 快速开始 → -actionLink: /guide/index -features: - - title: 💡 极速的服务启动 - details: 使用原生 ESM 文件,无需打包! - - title: ⚡️ 轻量快速的热重载 - details: 无论应用程序大小如何,都始终极快的模块热重载(HMR) - - title: 🛠️ 丰富的功能 - details: 对 TypeScript、JSX、CSS 等支持开箱即用。 - - title: 📦 优化的构建 - details: 可选 “多页应用” 或 “库” 模式的预配置 Rollup 构建 - - title: 🔩 通用的插件 - details: 在开发和构建之间共享 Rollup-superset 插件接口。 - - title: 🔑 完全类型化的API - details: 灵活的 API 和完整的 TypeScript 类型。 -footer: MIT Licensed | Copyright © 2021-present CoolDream ---- diff --git a/docs/public/favicon.svg b/docs/public/favicon.svg deleted file mode 100644 index de4aedd..0000000 --- a/docs/public/favicon.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/docs/public/images/eslint-err-1.jpg b/docs/public/images/eslint-err-1.jpg deleted file mode 100644 index 1170132b5499ac9e89761146ab00bcdc42a29d00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30961 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 M3a|LX@%Q@w0!l>tCjbBd diff --git a/docs/public/images/mock-server.jpg b/docs/public/images/mock-server.jpg deleted file mode 100644 index 772a486be28a67f8a49d7b3b7476c628a3a894cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128015 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

~wq~obsDPA9 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�dd^ z0jZ}E-(whc!{|Ttrb7YTGE8s8nW$ec`rMTY+b5rR!TD0^W%dmb4^~7hS{Et0N#f_k ze2tJKav=&I)jk6sTrh#Q@Iay%33a_RwNM5;0L4@wnLY|cmL^}<6fs9eg+5-55Q3He z{-_mzMm1Szx~Xj-O?1DW9EtH|z(53;(sHkRWp+xDB$SyqiadouZ+a}FQ{iyxN#Mmp zVS6YL;h{b5$(rTh#MM=cK*=aPXXQiLkFV+>1gPG}5wIKr%2?H^Z*xeVk`hFC5mSD> z**)F#5^x}(8Raw2s^;u=S_UEx zg5Ps0p(3(JgsLG8g99YPz0WR?BgX7EYO&BNA69xJeTGB1o0f@0`b(qjX^maPSO&=g z?vF#4U3Q6%zRf^NKi4sw%`d%fR<-AC8+Kz%a)E)ESSm59B?>SA0dO$LE>uF<#Xypv zvqvOcb4Ns=z4JZ-^|2jKBuQieT{uxT}v_5MnTSM`A1yX$auN&zJ!iX=bI z>n0LhcVmg0$?gj_Pn*Wl9XnvlB*Y22^JEeQCkU&xa^)fPudP*2T7zd*>|Mlsje)U3 zq$E6$a8BS+zwQP{?6!oUR6N+8s6C7-JDf*fVl z&yacaz4>=3Y0XF-d*@t71QGhh*W|DO@JO%TPjVIjKb64uATtfE17b%eg#p2K3(`F| zwvT{S^f+c&m;nI$;%hSRPENeobM@%zu6v*)36up*hyK-Dj&u6{l+Tp+cG?4))jkB} zGy${-D2Y$bwISPp=>eXQtt&znlrdnH80r}Y)FZ7@4h&GW>(?q(qm_+%aOw&q`J)c* z55VA`jhO0yy&IbI!I01Ub68A^XzeDXrRn_mwbXg~JF1sbKND?9ZI05)6zJnal6&W+ zX<=hmv_??Dnm90rkW=<6qoKHWKc}uJm0WJ(RwJqn$NScz9GS8G z>!R&RK3xA#Z-_1a%bzts<`!w8fYak5^BU5W$-R#L3`_sxhF-~;NM1$8e76{oEo4wu z9Sui;K>+kIn=&cTAB{Z)ZeCapeE`7S(P?^}=)fzv4lMxEw?P!CZ+9=Kfu)r_H|?{@ zX>wXaEy=)|mT|%he5yhetmNd4X_eex7u)Z#8)t9@LoquzU_26yq6DNgLeX$p5;BB$ z3GD?^#oufy@Qq=tUSM#xROxvi==N{UOr+9O=xIA>iic_{zxzdj#�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%0Af+Wmf~r*L*E&>@qVSNmu_ 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�}nDsje5*B;138{u}W26 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 A3;+NC diff --git a/docs/public/logo.svg b/docs/public/logo.svg deleted file mode 100644 index de4aedd..0000000 --- a/docs/public/logo.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/package.json b/package.json index 17b337e..7199b46 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "quick-server", + "name": "quick-vue3-admin", "private": true, - "version": "quick-server", + "version": "1.0.0", "scripts": { "dev": "vite", "build": "vite build", @@ -9,10 +9,7 @@ "preview": "vite preview", "lint": "eslint --ext .js,ts,.vue, src", "lint-fix": "eslint --ext .js,ts,.vue, src --fix", - "prepare": "husky install", - "docs:dev": "vitepress dev docs", - "docs:build": "vitepress build docs", - "docs:serve": "vitepress serve docs" + "prepare": "husky install" }, "dependencies": { "@element-plus/icons": "^0.0.11", @@ -51,12 +48,11 @@ "unplugin-vue-define-options": "^0.6.1", "vite": "^2.9.5", "vite-plugin-html": "^3.2.0", - "vitepress": "^0.22.4", "vue-tsc": "^0.34.7" }, - "description": "quick-server", + "description": "quick-vue3-admin是一套快速搭建后台系统框架,基于vite2+element-plus进行二次封装,使用最新技术栈vite2,vue3,typescript,pinia等等。", "main": "index.js", - "repository": "https://gitee.com/ainikeji/quick-vue3-admin.git", - "author": "15229380174 ", + "repository": "https://gitee.com/zhanglp520/quick-vue3-admin.git", + "author": "15229380174 ", "license": "MIT" } diff --git a/src/components/QuickCrud/index.vue b/src/components/QuickCrud/index.vue index 3050cce..ef14734 100644 --- a/src/components/QuickCrud/index.vue +++ b/src/components/QuickCrud/index.vue @@ -11,6 +11,7 @@ import { onActivated, } from 'vue' import { ElMessage, ElTree, FormInstance } from 'element-plus' +import { number } from 'echarts' import QuickSearch from '@/components/QuickSearch/index.vue' import QuickTable from '@/components/QuickTable/index.vue' import QuickToolbar from '@/components/QuickToolbar/index.vue' @@ -91,6 +92,10 @@ const props = defineProps({ type: Boolean, default: false, }, + height: { + type: [Boolean, Number], + default: false, + }, }) /** * props to ref @@ -110,6 +115,7 @@ const { formItems, formInline, loading, + height, } = toRefs(props) as { searchFormModel: Ref searchFormItems: Ref @@ -125,6 +131,7 @@ const { tableToolbar: Ref page: Ref loading: Ref + height: Ref } /** * 类型转换 @@ -503,6 +510,7 @@ onActivated(() => { :hidden-edit-button="actionbar?.hiddenEditButton" :hidden-delete-button="actionbar?.hiddenDeleteButton" :hidden-detail-button="actionbar?.hiddenDetailButton" + :height="height" @on-row-edit="handleEdit" @on-row-delete="handleDelete" @on-row-detail="handleDetail" diff --git a/src/components/QuickTable/index.vue b/src/components/QuickTable/index.vue index 9f7e70e..0d8527d 100644 --- a/src/components/QuickTable/index.vue +++ b/src/components/QuickTable/index.vue @@ -27,8 +27,8 @@ const props = defineProps({ }, }, height: { - type: Number, - default: 575, + type: [Boolean, Number], + default: false, }, rowKey: { type: String, @@ -86,7 +86,7 @@ const { } = toRefs(props) as { data: Ref columns: Ref - height: Ref + height: Ref rowKey: Ref loading: Ref tableActionbar: Ref @@ -102,6 +102,7 @@ const { */ const actionbar = tableActionbar.value as Actionbar const tableRef = ref>() +const tableHeight = height.value as number /** * emits */ @@ -132,12 +133,14 @@ onMounted(() => { }) + diff --git a/src/config/index.ts b/src/config/index.ts new file mode 100644 index 0000000..faecb96 --- /dev/null +++ b/src/config/index.ts @@ -0,0 +1,3 @@ +export default { + tabCache: true, +} diff --git a/src/layout/components/AiniSidebar/index.vue b/src/layout/components/AiniSidebar/index.vue index 5a89099..b4d9e0b 100644 --- a/src/layout/components/AiniSidebar/index.vue +++ b/src/layout/components/AiniSidebar/index.vue @@ -42,12 +42,15 @@ const goHome = () => {

{{ title }}
- + + + diff --git a/src/router/dynamicRouter.ts b/src/router/dynamicRouter.ts index 4380ae2..1fc9c02 100644 --- a/src/router/dynamicRouter.ts +++ b/src/router/dynamicRouter.ts @@ -59,6 +59,8 @@ const formatRouter = (data: Menu[]) => { routerObj.redirect = childMenu[0].path childMenu.forEach((childElement: Menu) => { if (childElement.link) return + console.log('childElement', childElement.menuName) + const component = getComponent(childElement) const childRouterObj: RouteRecordRaw = { name: childElement.menuId, diff --git a/src/store/modules/menu.ts b/src/store/modules/menu.ts index 939ff2b..41bcd79 100644 --- a/src/store/modules/menu.ts +++ b/src/store/modules/menu.ts @@ -27,6 +27,9 @@ export const useMenuStore = defineStore('menuStore', { setActiveMenuId(activeMenuId: string) { this.activeMenuId = activeMenuId }, + clear() { + this.permissionMenuTreeList = [] + }, }, persist: { enabled: true, diff --git a/src/store/modules/tab.ts b/src/store/modules/tab.ts index 5734a25..4b2570b 100644 --- a/src/store/modules/tab.ts +++ b/src/store/modules/tab.ts @@ -49,6 +49,9 @@ export const useTabStore = defineStore('tabStore', { this.tabList = this.tabList.filter((x) => x.id !== id) } }, + clear() { + this.tabList = this.tabList.filter((x) => x.id === 'home') + }, }, persist: { enabled: true, diff --git a/src/views/help/productIntroduction/index.vue b/src/views/help/productIntroduction/index.vue new file mode 100644 index 0000000..98796a3 --- /dev/null +++ b/src/views/help/productIntroduction/index.vue @@ -0,0 +1,198 @@ + + + + diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue index 4fc5c18..1495b26 100644 --- a/src/views/system/menu/index.vue +++ b/src/views/system/menu/index.vue @@ -340,8 +340,12 @@ const formItems = reactive>([ }, ]) const handleFormSubmit = (form: Menu, done: any) => { - if (form.id) { - updateMenu(form).then(() => { + const model = { ...form } + if (!model.pid) { + model.pid = '0' + } + if (model.id) { + updateMenu(model).then(() => { ElMessage({ type: 'success', message: '菜单修改成功', @@ -349,7 +353,7 @@ const handleFormSubmit = (form: Menu, done: any) => { done() }) } else { - addMenu(form).then(() => { + addMenu(model).then(() => { ElMessage({ type: 'success', message: '菜单创建成功', -- Gitee From 3330b45b8ea0e6b9d42366e5a6ecd9ad8b09db4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9C=9F=E8=B1=86=E5=93=A5?= Date: Sat, 20 Aug 2022 17:07:14 +0800 Subject: [PATCH 08/12] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7a199a8..67d5f58 100644 --- a/README.md +++ b/README.md @@ -28,15 +28,19 @@ quick-vue3-admin 是一款免费开源快速搭建中后台系统框架。本框 演示账号密码:admin/123456 -## 文档 -- [quick-vue3-template](https://template.ainiteam.com/) - quick帮助文档 +## 开发文档 + +- [quick-vue3-template](https://doc.ainiteam.com/) - quick-vue3-admin 开发文档 + +## 组件文档 + +- [quick-vue3-template](https://template.ainiteam.com/) - quick-vue3-admin 帮助文档 账号密码:admin/123456 ## 接口文档 -- [quick接口文档](https://console-docs.apipost.cn/preview/0e11a2eb3c3883a7/4fff7a394c074ac7) - quick接口文档 - +- [quick 接口文档](https://console-docs.apipost.cn/preview/0e11a2eb3c3883a7/4fff7a394c074ac7) - quick 接口文档 ## 安装使用 -- Gitee From e9d9451aea6737cd50c656af16a9458acbe995ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9C=9F=E8=B1=86=E5=93=A5?= Date: Mon, 22 Aug 2022 21:35:21 +0800 Subject: [PATCH 09/12] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E5=85=AC?= =?UTF-8?q?=E5=85=B1=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/QuickCrud/index.vue | 15 ++- src/components/QuickDetail/index.vue | 162 ++++++++++++++++++++++++++ src/components/QuickForm/index.vue | 2 +- src/components/QuickSearch/index.vue | 2 +- src/components/QuickTable/index.vue | 2 +- src/components/QuickToolbar/index.vue | 4 - src/components/QuickUpload/index.vue | 68 +++++++++++ src/layout/index.vue | 6 - 8 files changed, 240 insertions(+), 21 deletions(-) create mode 100644 src/components/QuickDetail/index.vue create mode 100644 src/components/QuickUpload/index.vue diff --git a/src/components/QuickCrud/index.vue b/src/components/QuickCrud/index.vue index ef14734..4f4fe28 100644 --- a/src/components/QuickCrud/index.vue +++ b/src/components/QuickCrud/index.vue @@ -10,13 +10,12 @@ import { nextTick, onActivated, } from 'vue' -import { ElMessage, ElTree, FormInstance } from 'element-plus' -import { number } from 'echarts' +import { ElMessage, ElTree } from 'element-plus' import QuickSearch from '@/components/QuickSearch/index.vue' import QuickTable from '@/components/QuickTable/index.vue' import QuickToolbar from '@/components/QuickToolbar/index.vue' import QuickForm from '@/components/QuickForm/index.vue' -import { Actionbar, Toolbar } from '@/types/table' +import { Actionbar, Column, Toolbar } from '@/types/table' import { FormItem } from '@/types/form' import { Page } from '@/types/page' import { LeftTree, Tree } from '@/types/tree' @@ -118,18 +117,18 @@ const { height, } = toRefs(props) as { searchFormModel: Ref - searchFormItems: Ref + searchFormItems: Ref> dialogTitle: Ref formModel: Ref - formItems: Ref + formItems: Ref> formInline: Ref - leftTree: Ref + leftTree: Ref leftTreeRefresh: Ref tableData: Ref - tableColumns: Ref + tableColumns: Ref> tableActionbar: Ref tableToolbar: Ref - page: Ref + page: Ref loading: Ref height: Ref } diff --git a/src/components/QuickDetail/index.vue b/src/components/QuickDetail/index.vue new file mode 100644 index 0000000..2eab1e3 --- /dev/null +++ b/src/components/QuickDetail/index.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/src/components/QuickForm/index.vue b/src/components/QuickForm/index.vue index 537643f..74a3f06 100644 --- a/src/components/QuickForm/index.vue +++ b/src/components/QuickForm/index.vue @@ -49,7 +49,7 @@ const { model, formInline, formItems, formType, actionSlot, hiddenAction } = toRefs(props) as { model: Ref formInline: Ref - formItems: Ref + formItems: Ref> formType: Ref actionSlot: Ref hiddenAction: Ref diff --git a/src/components/QuickSearch/index.vue b/src/components/QuickSearch/index.vue index 583bb35..2bca2c0 100644 --- a/src/components/QuickSearch/index.vue +++ b/src/components/QuickSearch/index.vue @@ -32,7 +32,7 @@ const props = defineProps({ const { model, items, searchButtonName, resetButtonName, hiddenResetButton } = toRefs(props) as { model: Ref - items: Ref + items: Ref> searchButtonName: Ref resetButtonName: Ref hiddenResetButton: Ref diff --git a/src/components/QuickTable/index.vue b/src/components/QuickTable/index.vue index 0d8527d..5264347 100644 --- a/src/components/QuickTable/index.vue +++ b/src/components/QuickTable/index.vue @@ -85,7 +85,7 @@ const { hiddenDetailButton, } = toRefs(props) as { data: Ref - columns: Ref + columns: Ref> height: Ref rowKey: Ref loading: Ref diff --git a/src/components/QuickToolbar/index.vue b/src/components/QuickToolbar/index.vue index 6f361a8..f828aee 100644 --- a/src/components/QuickToolbar/index.vue +++ b/src/components/QuickToolbar/index.vue @@ -172,8 +172,4 @@ const handleCustomClick = (item: any) => { .toobar { margin-bottom: 10px; } - -.el-upload { - display: inline-flex; -} diff --git a/src/components/QuickUpload/index.vue b/src/components/QuickUpload/index.vue new file mode 100644 index 0000000..35646c9 --- /dev/null +++ b/src/components/QuickUpload/index.vue @@ -0,0 +1,68 @@ + + + + + + diff --git a/src/layout/index.vue b/src/layout/index.vue index 33550e2..10c55ff 100644 --- a/src/layout/index.vue +++ b/src/layout/index.vue @@ -104,7 +104,6 @@ watch(tabList, (val) => { v-model="editableTabsValue" type="card" closable - class="demo-tabs" @edit="handleTabsEdit" @tab-change="handleClick" > @@ -144,11 +143,6 @@ watch(tabList, (val) => { } diff --git a/src/components/QuickDetail/index.vue b/src/components/QuickDetail/index.vue deleted file mode 100644 index 2eab1e3..0000000 --- a/src/components/QuickDetail/index.vue +++ /dev/null @@ -1,162 +0,0 @@ - - - - - diff --git a/src/components/QuickForm/index.vue b/src/components/QuickForm/index.vue deleted file mode 100644 index 74a3f06..0000000 --- a/src/components/QuickForm/index.vue +++ /dev/null @@ -1,382 +0,0 @@ - - - diff --git a/src/components/QuickSearch/index.vue b/src/components/QuickSearch/index.vue deleted file mode 100644 index 2bca2c0..0000000 --- a/src/components/QuickSearch/index.vue +++ /dev/null @@ -1,63 +0,0 @@ - - diff --git a/src/components/QuickTable/index.vue b/src/components/QuickTable/index.vue deleted file mode 100644 index 5264347..0000000 --- a/src/components/QuickTable/index.vue +++ /dev/null @@ -1,241 +0,0 @@ - - - diff --git a/src/components/QuickToolbar/index.vue b/src/components/QuickToolbar/index.vue deleted file mode 100644 index f828aee..0000000 --- a/src/components/QuickToolbar/index.vue +++ /dev/null @@ -1,175 +0,0 @@ - - - diff --git a/src/components/QuickUpload/index.vue b/src/components/QuickUpload/index.vue deleted file mode 100644 index 35646c9..0000000 --- a/src/components/QuickUpload/index.vue +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - diff --git a/src/main.ts b/src/main.ts index 1cce46c..ccbf26c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -4,6 +4,7 @@ import 'element-plus/dist/index.css' import zhCn from 'element-plus/es/locale/lang/zh-cn' import en from 'element-plus/es/locale/lang/en' import * as Elicons from '@element-plus/icons-vue' +import quick from 'quick-vue3-ui' import 'quick-vue3-ui/dist/style.css' import * as echarts from 'echarts' import App from './App.vue' @@ -12,6 +13,8 @@ import pinia from './store' import i18n from './i18n' import { useAppStore } from './store/modules/app' +console.log('quick', quick) + const app = createApp(App) const appStore = useAppStore(pinia) @@ -23,6 +26,7 @@ app .use(ElementPlus, { locale: appStore.getLanguage === 'zh' ? zhCn : en, }) + .use(quick) .use(pinia) .use(router) .use(i18n) diff --git a/src/types/detail.ts b/src/types/detail.ts new file mode 100644 index 0000000..9a08c5f --- /dev/null +++ b/src/types/detail.ts @@ -0,0 +1,18 @@ +import { Column } from './table' + +export interface Tab { + label: string + name: string + type?: string + title?: string + column?: number + border?: boolean + direction?: string + columns: Array + titles?: Array +} + +export interface Detail { + tabName: string + data: Array +} diff --git a/src/views/help/productIntroduction/index.vue b/src/views/help/productIntroduction/index.vue index 98796a3..a4262f6 100644 --- a/src/views/help/productIntroduction/index.vue +++ b/src/views/help/productIntroduction/index.vue @@ -1,6 +1,6 @@