diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index f66e4b22..04d81a13 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -30,5 +30,5 @@ categories: - 'workflow' change-template: '- $TITLE (#$NUMBER) @$AUTHOR' template: | - # Changes + # What's Changed $CHANGES diff --git a/README.md b/README.md index a9d8eb00..c447b095 100644 --- a/README.md +++ b/README.md @@ -7,20 +7,18 @@ **中文** -该分支为2.0新分支,使用vue3进行开发。 +该分支为 2.0 新分支,使用 vue3 进行开发。 -1.0分支请切换到`master`分支。1.0采用`vue2.6`+`vue-composition-api`+`vue-cli`开发 +1.0 分支请切换到`master`分支。1.0 采用`vue2.6`+`vue-composition-api`+`vue-cli`开发 一个适合开发中大型项目的基础框架,需要对`vue`,`typescript`有一定的了解,也可以作为了解新写法的一个例子来看,提前适应后续新版本的开发方式 项目基于`ant-design-vue`,`typescript`,`vue3.0`,`vite`,`tailwindcss`,`tsx`实现的 vue3 风格的后台管理系统, - ### gitHub 地址 [vue-vben-admin2.0](https://github.com/anncwb/vue-vben-admin) -

VbenAdmin Logo VbenAdmin Logo @@ -29,11 +27,7 @@ ### 文档 -2.0文档还没开始写。后续补上。。 - - - - +2.0 文档还没开始写。后续补上。。 ## 使用到的技术 @@ -84,7 +78,6 @@ VSCode 插件 - `stylelint`: 样式代码检查 - `Prettier - Code formatter`:代码格式化 - ## 安装 ```js @@ -122,7 +115,6 @@ yarn build:no-cache # 打包 不会使用hardSource进行打包 yarn report # 生成构建包表表预览 ``` - ### 格式化 ```bash @@ -159,7 +151,6 @@ yarn log # 生成CHANGELOG - `mod` 不确定分类的修改 - `wip` 删除文件 - ## 代码贡献 1. Fork 代码! @@ -205,20 +196,19 @@ yarn log # 生成CHANGELOG - [x] 树组件 - [x] 系统性能优化 - [x] 兼容最新`vuex`,`vue-router` -- [] 图片预览组件 +- [x] 图片预览组件 +- [ ] 表格组件 +- [ ] 可编辑表格 - [ ] 图表库 - [ ] 数字动画 - [ ] 主题配置 -- [ ] 表格组件 - [ ] 富文本组件 - [ ] 首屏加载等待动画 - [ ] 上传组件 -- [ ] 可编辑表格 - [ ] 数据导入导出 -- [ ] 搭建`vite`版本 -- [ ] 懒加载组件 - [ ] 黑暗主题 -- [ ] 更多组件/功能/建议/bug/欢迎提交 pr 或者 issue + +更多组件/功能/建议/bug/欢迎提交 pr 或者 issue ## 加入我们 diff --git a/mock/_createProductionServer.ts b/mock/_createProductionServer.ts index a81cebf5..003a0984 100644 --- a/mock/_createProductionServer.ts +++ b/mock/_createProductionServer.ts @@ -1,7 +1,8 @@ import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer'; import userMock from './sys/user'; import menuMock from './sys/menu'; +import tableDemoMock from './demo/table-demo'; export function setupProdMockServer() { - createProdMockServer([...userMock, ...menuMock]); + createProdMockServer([...userMock, ...menuMock, ...tableDemoMock]); } diff --git a/mock/_util.ts b/mock/_util.ts index 6e4dc0ef..bf95ec5c 100644 --- a/mock/_util.ts +++ b/mock/_util.ts @@ -9,12 +9,19 @@ export function resultSuccess(result: T, { message = 'ok' } = {}) { }; } -export function resultPageSuccess(items: T[], total: number, { message = 'ok' } = {}) { +export function resultPageSuccess( + page: number, + pageSize: number, + list: T[], + { message = 'ok' } = {} +) { + const pageData = pagination(page, pageSize, list); + return { code: 0, result: { - items, - total, + items: pageData, + total: list.length, }, message, type: 'success', diff --git a/mock/demo/table-demo.ts b/mock/demo/table-demo.ts new file mode 100644 index 00000000..754007b9 --- /dev/null +++ b/mock/demo/table-demo.ts @@ -0,0 +1,30 @@ +import { MockMethod } from 'vite-plugin-mock'; +import { resultPageSuccess } from '../_util'; + +const demoList = (() => { + const result: any[] = []; + for (let index = 0; index < 60; index++) { + result.push({ + id: `${index}`, + beginTime: '@datetime', + endTime: '@datetime', + address: '@city()', + name: '@cname()', + 'no|100000-10000000': 100000, + 'status|1': ['正常', '启用', '停用'], + }); + } + return result; +})(); + +export default [ + { + url: '/api/table/getDemoList', + timeout: 1000, + method: 'get', + response: ({ query }) => { + const { page = 1, pageSize = 20 } = query; + return resultPageSuccess(page, pageSize, demoList); + }, + }, +] as MockMethod[]; diff --git a/src/App.vue b/src/App.vue index 74625242..586f6f8a 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,10 +1,5 @@ @@ -28,10 +23,9 @@ useInitAppConfigStore(); useListenerNetWork(); createBreakpointListen(); - const { renderEmpty, transformCellText } = useConfigProvider(); + const { transformCellText } = useConfigProvider(); const { on: lockOn } = useLockPage(); return { - renderEmpty, transformCellText, zhCN, lockOn, diff --git a/src/api/demo/model/tableModel.ts b/src/api/demo/model/tableModel.ts new file mode 100644 index 00000000..09b6a303 --- /dev/null +++ b/src/api/demo/model/tableModel.ts @@ -0,0 +1,20 @@ +import { BasicPageParams, BasicFetchResult } from '/@/api/model/baseModel'; +/** + * @description: 请求列表接口参数 + */ +export type DemoParams = BasicPageParams; + +export interface DemoListItem { + id: string; + beginTime: string; + endTime: string; + address: string; + name: string; + no: number; + status: number; +} + +/** + * @description: 请求列表返回值 + */ +export type DemoListGetResultModel = BasicFetchResult; diff --git a/src/api/demo/table.ts b/src/api/demo/table.ts new file mode 100644 index 00000000..e38208e7 --- /dev/null +++ b/src/api/demo/table.ts @@ -0,0 +1,17 @@ +import { defHttp } from '/@/utils/http/axios'; +import { DemoParams, DemoListGetResultModel } from './model/tableModel'; + +enum Api { + DEMO_LIST = '/table/getDemoList', +} + +/** + * @description: 获取示例列表值 + */ +export function demoListApi(params: DemoParams) { + return defHttp.request({ + url: Api.DEMO_LIST, + method: 'GET', + params, + }); +} diff --git a/src/api/model/baseModel.ts b/src/api/model/baseModel.ts new file mode 100644 index 00000000..fc040801 --- /dev/null +++ b/src/api/model/baseModel.ts @@ -0,0 +1,9 @@ +export interface BasicPageParams { + page: number; + pageSize: number; +} + +export interface BasicFetchResult { + items: T; + total: number; +} diff --git a/src/assets/images/lock-page.png b/src/assets/images/lock-page.png deleted file mode 100644 index 645c7e91..00000000 Binary files a/src/assets/images/lock-page.png and /dev/null differ diff --git a/src/assets/images/page_null.png b/src/assets/images/page_null.png deleted file mode 100644 index 5e7cb211..00000000 Binary files a/src/assets/images/page_null.png and /dev/null differ diff --git a/src/components/Basic/index.ts b/src/components/Basic/index.ts index b7b24919..3e792fc4 100644 --- a/src/components/Basic/index.ts +++ b/src/components/Basic/index.ts @@ -1,4 +1,3 @@ export { default as BasicArrow } from './src/BasicArrow.vue'; export { default as BasicHelp } from './src/BasicHelp'; export { default as BasicTitle } from './src/BasicTitle.vue'; -export { default as BasicEmpty } from './src/BasicEmpty.vue'; diff --git a/src/components/Basic/src/BasicArrow.vue b/src/components/Basic/src/BasicArrow.vue index f0c6c467..eb816d5e 100644 --- a/src/components/Basic/src/BasicArrow.vue +++ b/src/components/Basic/src/BasicArrow.vue @@ -43,11 +43,16 @@ &.right { transform: rotate(0deg); + + > span { + transition: all 0.3s ease 0.1s !important; + } } &__active { - transform: rotate(90deg) !important; - transition: all 0.3s ease 0.1s !important; + > span { + transform: rotate(90deg) !important; + } } } diff --git a/src/components/Basic/src/BasicEmpty.vue b/src/components/Basic/src/BasicEmpty.vue deleted file mode 100644 index f0760d15..00000000 --- a/src/components/Basic/src/BasicEmpty.vue +++ /dev/null @@ -1,28 +0,0 @@ - - diff --git a/src/components/Button/index.vue b/src/components/Button/index.vue index 5d4f136a..b3fa3f73 100644 --- a/src/components/Button/index.vue +++ b/src/components/Button/index.vue @@ -1,7 +1,7 @@