From e77a931ef2d2967a9717e27b187d68512c01284f Mon Sep 17 00:00:00 2001 From: kailong321200875 <321200875@qq.com> Date: Sun, 27 Dec 2020 19:43:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20=E6=96=B0=E5=A2=9EDetail?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E7=BB=84=E4=BB=B6=E5=B9=B6=E7=BB=99=E5=87=BA?= =?UTF-8?q?=E7=9B=B8=E5=BA=94=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Detail/index.vue | 207 ++++++++++++++ src/components/More/index.vue | 57 ++-- src/components/Setting/index.vue | 16 +- .../Table/components/TableColumn.vue | 8 +- src/components/Table/index.vue | 10 +- src/components/TagsView/index.vue | 2 +- src/components/index.ts | 2 + src/pages/index/App.vue | 21 +- src/pages/index/router/index.ts | 8 + src/pages/index/store/modules/app.ts | 10 + .../views/components-demo/detail/index.vue | 263 ++++++++++++++++++ .../views/components-demo/detail/types.ts | 16 ++ .../views/components-demo/more/index.vue | 89 +++++- .../example-demo/example-dialog/index.vue | 12 +- .../views/example-demo/example-page/index.vue | 12 +- src/pages/index/views/login/index.vue | 6 +- .../views/table-demo/basic-table/index.vue | 6 +- .../views/table-demo/border-table/index.vue | 6 +- .../views/table-demo/custom-header/index.vue | 6 +- .../views/table-demo/custom-index/index.vue | 8 +- .../views/table-demo/expand-row/index.vue | 8 +- .../table-demo/fixed-column-header/index.vue | 14 +- .../views/table-demo/fixed-column/index.vue | 14 +- .../views/table-demo/fixed-header/index.vue | 6 +- .../views/table-demo/fluid-height/index.vue | 14 +- .../views/table-demo/merge-table/index.vue | 20 +- .../views/table-demo/multi-header/index.vue | 14 +- .../table-demo/multiple-choice/index.vue | 6 +- .../views/table-demo/page-table/index.vue | 6 +- .../views/table-demo/screen-table/index.vue | 12 +- .../views/table-demo/single-choice/index.vue | 6 +- .../views/table-demo/sort-table/index.vue | 6 +- .../views/table-demo/state-table/index.vue | 6 +- .../views/table-demo/stripe-table/index.vue | 6 +- .../index/views/table-demo/test/table.vue | 30 +- .../index/views/table-demo/test/table2.tsx | 12 +- .../views/table-demo/total-table/index.vue | 20 +- .../views/table-demo/tree-and-load/index.vue | 16 +- src/styles/glob.less | 11 + 39 files changed, 800 insertions(+), 192 deletions(-) create mode 100644 src/components/Detail/index.vue create mode 100644 src/pages/index/views/components-demo/detail/index.vue create mode 100644 src/pages/index/views/components-demo/detail/types.ts diff --git a/src/components/Detail/index.vue b/src/components/Detail/index.vue new file mode 100644 index 0000000..f9a6e13 --- /dev/null +++ b/src/components/Detail/index.vue @@ -0,0 +1,207 @@ + + + + + diff --git a/src/components/More/index.vue b/src/components/More/index.vue index 0972698..4f4d7a4 100644 --- a/src/components/More/index.vue +++ b/src/components/More/index.vue @@ -1,11 +1,11 @@ diff --git a/src/pages/index/router/index.ts b/src/pages/index/router/index.ts index 10466eb..9ba9466 100644 --- a/src/pages/index/router/index.ts +++ b/src/pages/index/router/index.ts @@ -188,6 +188,14 @@ export const asyncRouterMap: AppRouteRecordRaw[] = [ meta: { title: '显示更多' } + }, + { + path: 'detail', + component: () => import('_p/index/views/components-demo/detail/index.vue'), + name: 'DetailDemo', + meta: { + title: '详情组件' + } } ] }, diff --git a/src/pages/index/store/modules/app.ts b/src/pages/index/store/modules/app.ts index 97d8705..454e9af 100644 --- a/src/pages/index/store/modules/app.ts +++ b/src/pages/index/store/modules/app.ts @@ -15,6 +15,7 @@ export interface AppState { title: String logoTitle: String userInfo: String + greyMode: Boolean } @Module({ dynamic: true, namespaced: true, store, name: 'app' }) @@ -32,6 +33,7 @@ class App extends VuexModule implements AppState { public title = 'vue-element-plus-admin' // 标题 public logoTitle = 'vue-ElPlus-admin' // logo标题 public userInfo = 'userInfo' // 登录信息存储字段-建议每个项目换一个字段,避免与其他项目冲突 + public greyMode = false // 是否开始灰色模式,用于特殊悼念日 @Mutation private SET_COLLAPSED(collapsed: boolean): void { @@ -81,6 +83,10 @@ class App extends VuexModule implements AppState { private SET_LOGOTITLE(logoTitle: string): void { this.logoTitle = logoTitle } + @Mutation + private SET_GREYMODE(greyMode: boolean): void { + this.greyMode = greyMode + } @Action public SetCollapsed(collapsed: boolean): void { @@ -130,6 +136,10 @@ class App extends VuexModule implements AppState { public SetLogoTitle(logoTitle: string): void { this.SET_LOGOTITLE(logoTitle) } + @Action + public SetGreyMode(greyMode: boolean): void { + this.SET_GREYMODE(greyMode) + } } export const appStore = getModule(App) diff --git a/src/pages/index/views/components-demo/detail/index.vue b/src/pages/index/views/components-demo/detail/index.vue new file mode 100644 index 0000000..591b1e8 --- /dev/null +++ b/src/pages/index/views/components-demo/detail/index.vue @@ -0,0 +1,263 @@ + + + + + diff --git a/src/pages/index/views/components-demo/detail/types.ts b/src/pages/index/views/components-demo/detail/types.ts new file mode 100644 index 0000000..f7fe20e --- /dev/null +++ b/src/pages/index/views/components-demo/detail/types.ts @@ -0,0 +1,16 @@ +export interface InfoWriteParams { + title: string + id?: string + author: string + importance: string + display_time: string + pageviews: number +} + +export interface InfoWriteRules { + title?: any[] + author?: any[] + importance?: any[] + display_time?: any[] + pageviews?: any[] +} diff --git a/src/pages/index/views/components-demo/more/index.vue b/src/pages/index/views/components-demo/more/index.vue index de9af5c..a6acd6f 100644 --- a/src/pages/index/views/components-demo/more/index.vue +++ b/src/pages/index/views/components-demo/more/index.vue @@ -3,30 +3,89 @@ +
+
+ + +
+
+ + +
+
-
- -
- -
- +
+
+ + +
+
+ + +
diff --git a/src/pages/index/views/example-demo/example-dialog/index.vue b/src/pages/index/views/example-demo/example-dialog/index.vue index ef2a8df..b5303d8 100644 --- a/src/pages/index/views/example-demo/example-dialog/index.vue +++ b/src/pages/index/views/example-demo/example-dialog/index.vue @@ -78,31 +78,31 @@ const searchData = [ const columns = [ { - key: 'title', + field: 'title', label: '标题', showOverflowTooltip: true }, { - key: 'author', + field: 'author', label: '作者' }, { - key: 'display_time', + field: 'display_time', label: '创建时间' }, { - key: 'importance', + field: 'importance', label: '重要性', slots: { default: 'importance' } }, { - key: 'pageviews', + field: 'pageviews', label: '阅读数' }, { - key: 'action', + field: 'action', label: '操作', width: '150px', slots: { diff --git a/src/pages/index/views/example-demo/example-page/index.vue b/src/pages/index/views/example-demo/example-page/index.vue index dfa7b99..bcca963 100644 --- a/src/pages/index/views/example-demo/example-page/index.vue +++ b/src/pages/index/views/example-demo/example-page/index.vue @@ -74,31 +74,31 @@ const searchData = [ const columns = [ { - key: 'title', + field: 'title', label: '标题', showOverflowTooltip: true }, { - key: 'author', + field: 'author', label: '作者' }, { - key: 'display_time', + field: 'display_time', label: '创建时间' }, { - key: 'importance', + field: 'importance', label: '重要性', slots: { default: 'importance' } }, { - key: 'pageviews', + field: 'pageviews', label: '阅读数' }, { - key: 'action', + field: 'action', label: '操作', width: '150px', slots: { diff --git a/src/pages/index/views/login/index.vue b/src/pages/index/views/login/index.vue index 04cdef4..8ae232d 100644 --- a/src/pages/index/views/login/index.vue +++ b/src/pages/index/views/login/index.vue @@ -96,11 +96,11 @@ export default defineComponent({ passWord: [{ required: true, message: '请输入密码' }] }) async function login(): Promise { - const form = unref(loginForm) as any - if (!form) return + const formWrap = unref(loginForm) as any + if (!formWrap) return loading.value = true try { - form.validate((valid: boolean) => { + formWrap.validate((valid: boolean) => { if (valid) { permissionStore.GenerateRoutes().then(() => { permissionStore.addRouters.forEach(async(route: RouteRecordRaw) => { diff --git a/src/pages/index/views/table-demo/basic-table/index.vue b/src/pages/index/views/table-demo/basic-table/index.vue index 8fc89af..b40b09e 100644 --- a/src/pages/index/views/table-demo/basic-table/index.vue +++ b/src/pages/index/views/table-demo/basic-table/index.vue @@ -16,15 +16,15 @@ import { defineComponent, ref } from 'vue' const columns = [ { - key: 'date', + field: 'date', label: '日期' }, { - key: 'name', + field: 'name', label: '姓名' }, { - key: 'address', + field: 'address', label: '地址' } ] diff --git a/src/pages/index/views/table-demo/border-table/index.vue b/src/pages/index/views/table-demo/border-table/index.vue index 749bd71..345b41a 100644 --- a/src/pages/index/views/table-demo/border-table/index.vue +++ b/src/pages/index/views/table-demo/border-table/index.vue @@ -21,15 +21,15 @@ import { defineComponent, ref } from 'vue' const columns = [ { - key: 'date', + field: 'date', label: '日期' }, { - key: 'name', + field: 'name', label: '姓名' }, { - key: 'address', + field: 'address', label: '地址' } ] diff --git a/src/pages/index/views/table-demo/custom-header/index.vue b/src/pages/index/views/table-demo/custom-header/index.vue index bb57ae7..54ce7d4 100644 --- a/src/pages/index/views/table-demo/custom-header/index.vue +++ b/src/pages/index/views/table-demo/custom-header/index.vue @@ -39,15 +39,15 @@ import { defineComponent, ref } from 'vue' const columns = [ { - key: 'date', + field: 'date', label: '日期' }, { - key: 'name', + field: 'name', label: '姓名' }, { - key: 'action', + field: 'action', slots: { header: 'actionHeader', default: 'action' diff --git a/src/pages/index/views/table-demo/custom-index/index.vue b/src/pages/index/views/table-demo/custom-index/index.vue index c67d6c3..7c323cb 100644 --- a/src/pages/index/views/table-demo/custom-index/index.vue +++ b/src/pages/index/views/table-demo/custom-index/index.vue @@ -48,22 +48,22 @@ export default defineComponent({ const columns = ref([ { - key: 'index', + field: 'index', type: 'index', index: (index: number) => { return index * 2 } }, { - key: 'date', + field: 'date', label: '日期' }, { - key: 'name', + field: 'name', label: '姓名' }, { - key: 'address', + field: 'address', label: '地址' } ]) diff --git a/src/pages/index/views/table-demo/expand-row/index.vue b/src/pages/index/views/table-demo/expand-row/index.vue index 708e322..f31b716 100644 --- a/src/pages/index/views/table-demo/expand-row/index.vue +++ b/src/pages/index/views/table-demo/expand-row/index.vue @@ -47,22 +47,22 @@ import { defineComponent, ref } from 'vue' const columns = [ { - key: 'id', + field: 'id', type: 'expand', slots: { default: 'id' } }, { - key: 'id', + field: 'id', label: '商品ID' }, { - key: 'name', + field: 'name', label: '商品名称' }, { - key: 'desc', + field: 'desc', label: '描述' } ] diff --git a/src/pages/index/views/table-demo/fixed-column-header/index.vue b/src/pages/index/views/table-demo/fixed-column-header/index.vue index c3a437a..7db336c 100644 --- a/src/pages/index/views/table-demo/fixed-column-header/index.vue +++ b/src/pages/index/views/table-demo/fixed-column-header/index.vue @@ -28,38 +28,38 @@ import { defineComponent, ref } from 'vue' const columns = [ { - key: 'date', + field: 'date', label: '日期', fixed: true, width: '150' }, { - key: 'name', + field: 'name', label: '姓名', width: '120' }, { - key: 'province', + field: 'province', label: '省份', width: '120' }, { - key: 'city', + field: 'city', label: '市区', width: '120' }, { - key: 'address', + field: 'address', label: '地址', width: '300' }, { - key: 'zip', + field: 'zip', label: '邮编', width: '120' }, { - key: 'action', + field: 'action', label: '操作', width: '100', fixed: 'right', diff --git a/src/pages/index/views/table-demo/fixed-column/index.vue b/src/pages/index/views/table-demo/fixed-column/index.vue index 8fc3361..5a8195e 100644 --- a/src/pages/index/views/table-demo/fixed-column/index.vue +++ b/src/pages/index/views/table-demo/fixed-column/index.vue @@ -27,38 +27,38 @@ import { defineComponent, ref } from 'vue' const columns = [ { - key: 'date', + field: 'date', label: '日期', fixed: true, width: '150' }, { - key: 'name', + field: 'name', label: '姓名', width: '120' }, { - key: 'province', + field: 'province', label: '省份', width: '120' }, { - key: 'city', + field: 'city', label: '市区', width: '120' }, { - key: 'address', + field: 'address', label: '地址', width: '300' }, { - key: 'zip', + field: 'zip', label: '邮编', width: '120' }, { - key: 'action', + field: 'action', label: '操作', width: '100', fixed: 'right', diff --git a/src/pages/index/views/table-demo/fixed-header/index.vue b/src/pages/index/views/table-demo/fixed-header/index.vue index fea7ef7..397738d 100644 --- a/src/pages/index/views/table-demo/fixed-header/index.vue +++ b/src/pages/index/views/table-demo/fixed-header/index.vue @@ -22,15 +22,15 @@ import { defineComponent, ref } from 'vue' const columns = [ { - key: 'date', + field: 'date', label: '日期' }, { - key: 'name', + field: 'name', label: '姓名' }, { - key: 'address', + field: 'address', label: '地址' } ] diff --git a/src/pages/index/views/table-demo/fluid-height/index.vue b/src/pages/index/views/table-demo/fluid-height/index.vue index d6926ba..087561a 100644 --- a/src/pages/index/views/table-demo/fluid-height/index.vue +++ b/src/pages/index/views/table-demo/fluid-height/index.vue @@ -27,38 +27,38 @@ import { defineComponent, ref } from 'vue' const columns = [ { - key: 'date', + field: 'date', label: '日期', fixed: true, width: '150' }, { - key: 'name', + field: 'name', label: '姓名', width: '120' }, { - key: 'province', + field: 'province', label: '省份', width: '120' }, { - key: 'city', + field: 'city', label: '市区', width: '120' }, { - key: 'address', + field: 'address', label: '地址', width: '300' }, { - key: 'zip', + field: 'zip', label: '邮编', width: '120' }, { - key: 'action', + field: 'action', label: '操作', width: '100', fixed: 'right', diff --git a/src/pages/index/views/table-demo/merge-table/index.vue b/src/pages/index/views/table-demo/merge-table/index.vue index bd29260..1071e9c 100644 --- a/src/pages/index/views/table-demo/merge-table/index.vue +++ b/src/pages/index/views/table-demo/merge-table/index.vue @@ -31,25 +31,25 @@ import { defineComponent, ref } from 'vue' const columns = [ { - key: 'id', + field: 'id', label: 'ID' }, { - key: 'name', + field: 'name', label: '姓名' }, { - key: 'amount1', + field: 'amount1', label: '数值1', sortable: true }, { - key: 'amount2', + field: 'amount2', label: '数值2', sortable: true }, { - key: 'amount3', + field: 'amount3', label: '数值4', sortable: true } @@ -57,23 +57,23 @@ const columns = [ const columns1 = [ { - key: 'id', + field: 'id', label: 'ID' }, { - key: 'name', + field: 'name', label: '姓名' }, { - key: 'amount1', + field: 'amount1', label: '数值1(元)' }, { - key: 'amount2', + field: 'amount2', label: '数值2(元)' }, { - key: 'amount3', + field: 'amount3', label: '数值4(元)' } ] diff --git a/src/pages/index/views/table-demo/multi-header/index.vue b/src/pages/index/views/table-demo/multi-header/index.vue index f303f2a..70eb683 100644 --- a/src/pages/index/views/table-demo/multi-header/index.vue +++ b/src/pages/index/views/table-demo/multi-header/index.vue @@ -27,7 +27,7 @@ import { defineComponent, ref } from 'vue' const columns = [ { - key: 'date', + field: 'date', label: '日期', fixed: true, width: '150' @@ -36,7 +36,7 @@ const columns = [ label: '配送信息', children: [ { - key: 'name', + field: 'name', label: '姓名', width: '120' }, @@ -44,24 +44,24 @@ const columns = [ label: '地址', children: [ { - key: 'province', + field: 'province', label: '省份', width: '120' }, { - key: 'city', + field: 'city', label: '市区', width: '120' }, { - key: 'address', + field: 'address', label: '地址', slots: { default: 'address' } }, { - key: 'zip', + field: 'zip', label: '邮编', width: '120' } @@ -70,7 +70,7 @@ const columns = [ ] }, { - key: 'action', + field: 'action', label: '操作', width: '100', slots: { diff --git a/src/pages/index/views/table-demo/multiple-choice/index.vue b/src/pages/index/views/table-demo/multiple-choice/index.vue index 4cc0c3f..2f036cf 100644 --- a/src/pages/index/views/table-demo/multiple-choice/index.vue +++ b/src/pages/index/views/table-demo/multiple-choice/index.vue @@ -28,15 +28,15 @@ import { defineComponent, ref, unref } from 'vue' const columns = [ { - key: 'date', + field: 'date', label: '日期' }, { - key: 'name', + field: 'name', label: '姓名' }, { - key: 'address', + field: 'address', label: '地址' } ] diff --git a/src/pages/index/views/table-demo/page-table/index.vue b/src/pages/index/views/table-demo/page-table/index.vue index c793576..9a8569f 100644 --- a/src/pages/index/views/table-demo/page-table/index.vue +++ b/src/pages/index/views/table-demo/page-table/index.vue @@ -26,15 +26,15 @@ import { defineComponent, ref } from 'vue' const columns = [ { - key: 'date', + field: 'date', label: '日期' }, { - key: 'name', + field: 'name', label: '姓名' }, { - key: 'address', + field: 'address', label: '地址' } ] diff --git a/src/pages/index/views/table-demo/screen-table/index.vue b/src/pages/index/views/table-demo/screen-table/index.vue index 8270d30..4d0cbde 100644 --- a/src/pages/index/views/table-demo/screen-table/index.vue +++ b/src/pages/index/views/table-demo/screen-table/index.vue @@ -12,7 +12,7 @@ ([ { - key: 'date', + field: 'date', label: '日期', sortable: true, width: '180', - columnKey: 'date', + columnfield: 'date', filters: [{ text: '2016-05-01', value: '2016-05-01' }, { text: '2016-05-02', value: '2016-05-02' }, { text: '2016-05-03', value: '2016-05-03' }, { text: '2016-05-04', value: '2016-05-04' }], filterMethod: filterHandler }, { - key: 'name', + field: 'name', label: '姓名', sortable: true }, { - key: 'address', + field: 'address', label: '地址' }, { - key: 'tag', + field: 'tag', label: '标签', filters: [{ text: '家', value: '家' }, { text: '公司', value: '公司' }], filterMethod: filterTag, diff --git a/src/pages/index/views/table-demo/single-choice/index.vue b/src/pages/index/views/table-demo/single-choice/index.vue index fa433d5..d5c21ac 100644 --- a/src/pages/index/views/table-demo/single-choice/index.vue +++ b/src/pages/index/views/table-demo/single-choice/index.vue @@ -28,15 +28,15 @@ import { defineComponent, ref, unref } from 'vue' const columns = [ { - key: 'date', + field: 'date', label: '日期' }, { - key: 'name', + field: 'name', label: '姓名' }, { - key: 'address', + field: 'address', label: '地址' } ] diff --git a/src/pages/index/views/table-demo/sort-table/index.vue b/src/pages/index/views/table-demo/sort-table/index.vue index 5156dfe..82af451 100644 --- a/src/pages/index/views/table-demo/sort-table/index.vue +++ b/src/pages/index/views/table-demo/sort-table/index.vue @@ -22,17 +22,17 @@ import { defineComponent, ref } from 'vue' const columns = [ { - key: 'date', + field: 'date', label: '日期', sortable: true }, { - key: 'name', + field: 'name', label: '姓名', sortable: true }, { - key: 'address', + field: 'address', label: '地址' } ] diff --git a/src/pages/index/views/table-demo/state-table/index.vue b/src/pages/index/views/table-demo/state-table/index.vue index d47b459..e735110 100644 --- a/src/pages/index/views/table-demo/state-table/index.vue +++ b/src/pages/index/views/table-demo/state-table/index.vue @@ -21,15 +21,15 @@ import { defineComponent, ref } from 'vue' const columns = [ { - key: 'date', + field: 'date', label: '日期' }, { - key: 'name', + field: 'name', label: '姓名' }, { - key: 'address', + field: 'address', label: '地址' } ] diff --git a/src/pages/index/views/table-demo/stripe-table/index.vue b/src/pages/index/views/table-demo/stripe-table/index.vue index 61f880e..07424c4 100644 --- a/src/pages/index/views/table-demo/stripe-table/index.vue +++ b/src/pages/index/views/table-demo/stripe-table/index.vue @@ -21,15 +21,15 @@ import { defineComponent, ref } from 'vue' const columns = [ { - key: 'date', + field: 'date', label: '日期' }, { - key: 'name', + field: 'name', label: '姓名' }, { - key: 'address', + field: 'address', label: '地址' } ] diff --git a/src/pages/index/views/table-demo/test/table.vue b/src/pages/index/views/table-demo/test/table.vue index 430d376..4c04ebb 100644 --- a/src/pages/index/views/table-demo/test/table.vue +++ b/src/pages/index/views/table-demo/test/table.vue @@ -1,20 +1,20 @@