): void {
app.component('SvgIcon', SvgIcon)
app.component('ComSearch', ComSearch)
app.component('ComDialog', ComDialog)
app.component('ComDetail', ComDetail)
+ app.component('ComTable', ComTable)
}
diff --git a/src/router/index.ts b/src/router/index.ts
index 6e9d2a2..45814be 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -216,182 +216,190 @@ export const asyncRouterMap: AppRouteRecordRaw[] = [
meta: {
title: '文字高亮'
}
+ },
+ {
+ path: 'watermark',
+ component: () => import('_v/components-demo/watermark/index.vue'),
+ name: 'WatermarkDemo',
+ meta: {
+ title: '水印'
+ }
}
]
},
- // {
- // path: '/table-demo',
- // component: Layout,
- // redirect: '/table-demo/basic-table',
- // name: 'TableDemo',
- // meta: {
- // title: '表格',
- // icon: 'table',
- // alwaysShow: true
- // },
- // children: [
- // {
- // path: 'basic-table',
- // component: () => import('_v/table-demo/basic-table/index.vue'),
- // name: 'BasicTable',
- // meta: {
- // title: '基础表格'
- // }
- // },
- // {
- // path: 'page-table',
- // component: () => import('_v/table-demo/page-table/index.vue'),
- // name: 'PageTable',
- // meta: {
- // title: '分页表格'
- // }
- // },
- // {
- // path: 'stripe-table',
- // component: () => import('_v/table-demo/stripe-table/index.vue'),
- // name: 'StripeTable',
- // meta: {
- // title: '带斑马纹表格'
- // }
- // },
- // {
- // path: 'border-table',
- // component: () => import('_v/table-demo/border-table/index.vue'),
- // name: 'BorderTable',
- // meta: {
- // title: '带边框表格'
- // }
- // },
- // {
- // path: 'state-table',
- // component: () => import('_v/table-demo/state-table/index.vue'),
- // name: 'StateTable',
- // meta: {
- // title: '带状态表格'
- // }
- // },
- // {
- // path: 'fixed-header',
- // component: () => import('_v/table-demo/fixed-header/index.vue'),
- // name: 'FixedHeader',
- // meta: {
- // title: '固定表头'
- // }
- // },
- // {
- // path: 'fixed-column',
- // component: () => import('_v/table-demo/fixed-column/index.vue'),
- // name: 'FixedColumn',
- // meta: {
- // title: '固定列'
- // }
- // },
- // {
- // path: 'fixed-column-header',
- // component: () => import('_v/table-demo/fixed-column-header/index.vue'),
- // name: 'FixedColumnHeader',
- // meta: {
- // title: '固定列和表头'
- // }
- // },
- // {
- // path: 'fluid-height',
- // component: () => import('_v/table-demo/fluid-height/index.vue'),
- // name: 'FluidHeight',
- // meta: {
- // title: '流体高度'
- // }
- // },
- // {
- // path: 'multi-header',
- // component: () => import('_v/table-demo/multi-header/index.vue'),
- // name: 'MultiHeader',
- // meta: {
- // title: '多级表头'
- // }
- // },
- // {
- // path: 'single-choice',
- // component: () => import('_v/table-demo/single-choice/index.vue'),
- // name: 'SingleChoice',
- // meta: {
- // title: '单选'
- // }
- // },
- // {
- // path: 'multiple-choice',
- // component: () => import('_v/table-demo/multiple-choice/index.vue'),
- // name: 'MultipleChoice',
- // meta: {
- // title: '多选'
- // }
- // },
- // {
- // path: 'sort-table',
- // component: () => import('_v/table-demo/sort-table/index.vue'),
- // name: 'SortTable',
- // meta: {
- // title: '排序'
- // }
- // },
- // {
- // path: 'screen-table',
- // component: () => import('_v/table-demo/screen-table/index.vue'),
- // name: 'ScreenTable',
- // meta: {
- // title: '筛选'
- // }
- // },
- // {
- // path: 'expand-row',
- // component: () => import('_v/table-demo/expand-row/index.vue'),
- // name: 'ExpandRow',
- // meta: {
- // title: '展开行'
- // }
- // },
- // {
- // path: 'tree-and-load',
- // component: () => import('_v/table-demo/tree-and-load/index.vue'),
- // name: 'TreeAndLoad',
- // meta: {
- // title: '树形数据与懒加载'
- // }
- // },
- // {
- // path: 'custom-header',
- // component: () => import('_v/table-demo/custom-header/index.vue'),
- // name: 'CustomHeader',
- // meta: {
- // title: '自定义表头'
- // }
- // },
- // {
- // path: 'total-table',
- // component: () => import('_v/table-demo/total-table/index.vue'),
- // name: 'TotalTable',
- // meta: {
- // title: '表尾合计行'
- // }
- // },
- // {
- // path: 'merge-table',
- // component: () => import('_v/table-demo/merge-table/index.vue'),
- // name: 'MergeTable',
- // meta: {
- // title: '合并行或列'
- // }
- // },
- // {
- // path: 'custom-index',
- // component: () => import('_v/table-demo/custom-index/index.vue'),
- // name: 'CustomIndex',
- // meta: {
- // title: '自定义索引'
- // }
- // }
- // ]
- // },
+ {
+ path: '/table-demo',
+ component: Layout,
+ redirect: '/table-demo/basic-table',
+ name: 'TableDemo',
+ meta: {
+ title: '表格',
+ icon: 'table',
+ alwaysShow: true
+ },
+ children: [
+ {
+ path: 'basic-table',
+ component: () => import('_v/table-demo/basic-table/index.vue'),
+ name: 'BasicTable',
+ meta: {
+ title: '基础表格'
+ }
+ }
+ // {
+ // path: 'page-table',
+ // component: () => import('_v/table-demo/page-table/index.vue'),
+ // name: 'PageTable',
+ // meta: {
+ // title: '分页表格'
+ // }
+ // },
+ // {
+ // path: 'stripe-table',
+ // component: () => import('_v/table-demo/stripe-table/index.vue'),
+ // name: 'StripeTable',
+ // meta: {
+ // title: '带斑马纹表格'
+ // }
+ // },
+ // {
+ // path: 'border-table',
+ // component: () => import('_v/table-demo/border-table/index.vue'),
+ // name: 'BorderTable',
+ // meta: {
+ // title: '带边框表格'
+ // }
+ // },
+ // {
+ // path: 'state-table',
+ // component: () => import('_v/table-demo/state-table/index.vue'),
+ // name: 'StateTable',
+ // meta: {
+ // title: '带状态表格'
+ // }
+ // },
+ // {
+ // path: 'fixed-header',
+ // component: () => import('_v/table-demo/fixed-header/index.vue'),
+ // name: 'FixedHeader',
+ // meta: {
+ // title: '固定表头'
+ // }
+ // },
+ // {
+ // path: 'fixed-column',
+ // component: () => import('_v/table-demo/fixed-column/index.vue'),
+ // name: 'FixedColumn',
+ // meta: {
+ // title: '固定列'
+ // }
+ // },
+ // {
+ // path: 'fixed-column-header',
+ // component: () => import('_v/table-demo/fixed-column-header/index.vue'),
+ // name: 'FixedColumnHeader',
+ // meta: {
+ // title: '固定列和表头'
+ // }
+ // },
+ // {
+ // path: 'fluid-height',
+ // component: () => import('_v/table-demo/fluid-height/index.vue'),
+ // name: 'FluidHeight',
+ // meta: {
+ // title: '流体高度'
+ // }
+ // },
+ // {
+ // path: 'multi-header',
+ // component: () => import('_v/table-demo/multi-header/index.vue'),
+ // name: 'MultiHeader',
+ // meta: {
+ // title: '多级表头'
+ // }
+ // },
+ // {
+ // path: 'single-choice',
+ // component: () => import('_v/table-demo/single-choice/index.vue'),
+ // name: 'SingleChoice',
+ // meta: {
+ // title: '单选'
+ // }
+ // },
+ // {
+ // path: 'multiple-choice',
+ // component: () => import('_v/table-demo/multiple-choice/index.vue'),
+ // name: 'MultipleChoice',
+ // meta: {
+ // title: '多选'
+ // }
+ // },
+ // {
+ // path: 'sort-table',
+ // component: () => import('_v/table-demo/sort-table/index.vue'),
+ // name: 'SortTable',
+ // meta: {
+ // title: '排序'
+ // }
+ // },
+ // {
+ // path: 'screen-table',
+ // component: () => import('_v/table-demo/screen-table/index.vue'),
+ // name: 'ScreenTable',
+ // meta: {
+ // title: '筛选'
+ // }
+ // },
+ // {
+ // path: 'expand-row',
+ // component: () => import('_v/table-demo/expand-row/index.vue'),
+ // name: 'ExpandRow',
+ // meta: {
+ // title: '展开行'
+ // }
+ // },
+ // {
+ // path: 'tree-and-load',
+ // component: () => import('_v/table-demo/tree-and-load/index.vue'),
+ // name: 'TreeAndLoad',
+ // meta: {
+ // title: '树形数据与懒加载'
+ // }
+ // },
+ // {
+ // path: 'custom-header',
+ // component: () => import('_v/table-demo/custom-header/index.vue'),
+ // name: 'CustomHeader',
+ // meta: {
+ // title: '自定义表头'
+ // }
+ // },
+ // {
+ // path: 'total-table',
+ // component: () => import('_v/table-demo/total-table/index.vue'),
+ // name: 'TotalTable',
+ // meta: {
+ // title: '表尾合计行'
+ // }
+ // },
+ // {
+ // path: 'merge-table',
+ // component: () => import('_v/table-demo/merge-table/index.vue'),
+ // name: 'MergeTable',
+ // meta: {
+ // title: '合并行或列'
+ // }
+ // },
+ // {
+ // path: 'custom-index',
+ // component: () => import('_v/table-demo/custom-index/index.vue'),
+ // name: 'CustomIndex',
+ // meta: {
+ // title: '自定义索引'
+ // }
+ // }
+ ]
+ },
// {
// path: '/directives-demo',
// component: Layout,
diff --git a/src/utils/index.ts b/src/utils/index.ts
index 0e96e52..182bf69 100644
--- a/src/utils/index.ts
+++ b/src/utils/index.ts
@@ -129,7 +129,7 @@ export function exportFile(response: AxiosResponse) {
? response.headers['content-disposition'].split(';')[1].split('=')[1]
: 'test'
)
- const blob = new Blob([response.data], {
+ const blob = new Blob([response.data as Blob], {
type: response.headers['content-type']
})
if (typeof (window.navigator as any).msSaveBlob !== 'undefined') {
diff --git a/src/views/components-demo/watermark/index.vue b/src/views/components-demo/watermark/index.vue
new file mode 100644
index 0000000..7b08996
--- /dev/null
+++ b/src/views/components-demo/watermark/index.vue
@@ -0,0 +1,26 @@
+
+
+
+ 创建水印
+ 清除水印
+
+ 重置水印
+
+
+
+
+
diff --git a/src/views/table-demo/basic-table/index.vue b/src/views/table-demo/basic-table/index.vue
new file mode 100644
index 0000000..0d8b659
--- /dev/null
+++ b/src/views/table-demo/basic-table/index.vue
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/table-demo/border-table/index.vue b/src/views/table-demo/border-table/index.vue
new file mode 100644
index 0000000..e8fcc0f
--- /dev/null
+++ b/src/views/table-demo/border-table/index.vue
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/table-demo/custom-header/index.vue b/src/views/table-demo/custom-header/index.vue
new file mode 100644
index 0000000..88c42b0
--- /dev/null
+++ b/src/views/table-demo/custom-header/index.vue
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+ Edit
+ Delete
+
+
+
+
+
+
+
+
diff --git a/src/views/table-demo/custom-index/index.vue b/src/views/table-demo/custom-index/index.vue
new file mode 100644
index 0000000..4ccb8b2
--- /dev/null
+++ b/src/views/table-demo/custom-index/index.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/table-demo/expand-row/index.vue b/src/views/table-demo/expand-row/index.vue
new file mode 100644
index 0000000..d40d1db
--- /dev/null
+++ b/src/views/table-demo/expand-row/index.vue
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
+ {{ scope.row.name }}
+
+
+ {{ scope.row.shop }}
+
+
+ {{ scope.row.id }}
+
+
+ {{ scope.row.shopId }}
+
+
+ {{ scope.row.category }}
+
+
+ {{ scope.row.address }}
+
+
+ {{ scope.row.desc }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/table-demo/fixed-column-header/index.vue b/src/views/table-demo/fixed-column-header/index.vue
new file mode 100644
index 0000000..f7dceec
--- /dev/null
+++ b/src/views/table-demo/fixed-column-header/index.vue
@@ -0,0 +1,149 @@
+
+
+
+
+
+ 查看
+ 编辑
+
+
+
+
+
+
+
+
diff --git a/src/views/table-demo/fixed-column/index.vue b/src/views/table-demo/fixed-column/index.vue
new file mode 100644
index 0000000..2060338
--- /dev/null
+++ b/src/views/table-demo/fixed-column/index.vue
@@ -0,0 +1,110 @@
+
+
+
+
+
+ 查看
+ 编辑
+
+
+
+
+
+
+
+
diff --git a/src/views/table-demo/fixed-header/index.vue b/src/views/table-demo/fixed-header/index.vue
new file mode 100644
index 0000000..0ca4c2d
--- /dev/null
+++ b/src/views/table-demo/fixed-header/index.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/table-demo/fluid-height/index.vue b/src/views/table-demo/fluid-height/index.vue
new file mode 100644
index 0000000..a614cff
--- /dev/null
+++ b/src/views/table-demo/fluid-height/index.vue
@@ -0,0 +1,147 @@
+
+
+
+
+
+ 移除
+
+
+
+
+
+
+
+
diff --git a/src/views/table-demo/merge-table/index.vue b/src/views/table-demo/merge-table/index.vue
new file mode 100644
index 0000000..d026cb8
--- /dev/null
+++ b/src/views/table-demo/merge-table/index.vue
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/table-demo/multi-header/index.vue b/src/views/table-demo/multi-header/index.vue
new file mode 100644
index 0000000..1a2332f
--- /dev/null
+++ b/src/views/table-demo/multi-header/index.vue
@@ -0,0 +1,145 @@
+
+
+
+
+ 地址是: {{ scope.row.address }}
+
+ 移除
+
+
+
+
+
+
+
+
diff --git a/src/views/table-demo/multiple-choice/index.vue b/src/views/table-demo/multiple-choice/index.vue
new file mode 100644
index 0000000..2b2ae21
--- /dev/null
+++ b/src/views/table-demo/multiple-choice/index.vue
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+ 切换第二、第三行的选中状态
+ 取消选择
+
+
+
+
+
+
+
diff --git a/src/views/table-demo/page-table/index.vue b/src/views/table-demo/page-table/index.vue
new file mode 100644
index 0000000..e93cc00
--- /dev/null
+++ b/src/views/table-demo/page-table/index.vue
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/table-demo/screen-table/index.vue b/src/views/table-demo/screen-table/index.vue
new file mode 100644
index 0000000..79bca74
--- /dev/null
+++ b/src/views/table-demo/screen-table/index.vue
@@ -0,0 +1,124 @@
+
+
+
+ 清除日期过滤器
+ 清除所有过滤器
+
+
+ {{ scope.row.tag }}
+
+
+
+
+
+
+
+
diff --git a/src/views/table-demo/single-choice/index.vue b/src/views/table-demo/single-choice/index.vue
new file mode 100644
index 0000000..7fbb29d
--- /dev/null
+++ b/src/views/table-demo/single-choice/index.vue
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+ 选中第二行
+ 取消选择
+
+
+
+
+
+
+
diff --git a/src/views/table-demo/sort-table/index.vue b/src/views/table-demo/sort-table/index.vue
new file mode 100644
index 0000000..1b9e360
--- /dev/null
+++ b/src/views/table-demo/sort-table/index.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/table-demo/state-table/index.vue b/src/views/table-demo/state-table/index.vue
new file mode 100644
index 0000000..d28bae5
--- /dev/null
+++ b/src/views/table-demo/state-table/index.vue
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/table-demo/stripe-table/index.vue b/src/views/table-demo/stripe-table/index.vue
new file mode 100644
index 0000000..6159c96
--- /dev/null
+++ b/src/views/table-demo/stripe-table/index.vue
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/table-demo/total-table/index.vue b/src/views/table-demo/total-table/index.vue
new file mode 100644
index 0000000..a0d393b
--- /dev/null
+++ b/src/views/table-demo/total-table/index.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/table-demo/tree-and-load/index.vue b/src/views/table-demo/tree-and-load/index.vue
new file mode 100644
index 0000000..c1622ac
--- /dev/null
+++ b/src/views/table-demo/tree-and-load/index.vue
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
+
+
+
+
+