htui-yllkbz 1.2.25 → 1.2.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "htui-yllkbz",
3
- "version": "1.2.25",
3
+ "version": "1.2.29",
4
4
  "typings": "types/index.d.ts",
5
5
  "main": "lib/htui.common.js",
6
6
  "style": "lib/htui.css",
@@ -22,7 +22,6 @@
22
22
  "axios": "^0.21.0",
23
23
  "core-js": "^3.6.5",
24
24
  "element-ui": "^2.14.1",
25
- "htui-yllkbz": "^1.2.6",
26
25
  "vue": "^2.6.11",
27
26
  "vue-class-component": "^7.2.3",
28
27
  "vue-kst-auth": "^2.1.15",
@@ -0,0 +1,16 @@
1
+ /*
2
+ * @Descripttion:
3
+ * @version:
4
+ * @Author: hutao
5
+ * @Date: 2021-11-15 15:00:57
6
+ * @LastEditors: hutao
7
+ * @LastEditTime: 2021-12-09 14:21:20
8
+ */
9
+ import HtTable from "./index.vue";
10
+
11
+ (HtTable as any).install = function (Vue: any) {
12
+
13
+ Vue.component("HtTable", HtTable);
14
+ };
15
+
16
+ export default HtTable;
@@ -0,0 +1,266 @@
1
+
2
+ <!--
3
+ * @Descripttion: ht-table
4
+ * @version:
5
+ * @Author: hutao
6
+ * @Date: 2021-11-11 11:23:24
7
+ * @LastEditors: hutao
8
+ * @LastEditTime: 2021-12-13 15:02:13
9
+ -->
10
+ <template>
11
+ <div v-loading="state.loading">
12
+ <article>
13
+
14
+ <el-table ref="comTable"
15
+ :height="height"
16
+ :max-height="maxHeight"
17
+ :border="border"
18
+ :stripe="stripe"
19
+ :size="size"
20
+ :fit="fit"
21
+ :show-header="showHeader"
22
+ :empty-text="emptyText||'暂无数据'"
23
+ :row-style="rowStyle"
24
+ :row-class-name="rowClassName"
25
+ :current-row-key="currentRowKey"
26
+ :highlight-current-row="highlightCurrentRow"
27
+ :row-key="rowKey||'id'"
28
+ :data="data"
29
+ tooltip-effect="dark"
30
+ @row-click="(row, column, event)=>$emit('row-click',row, column, event)"
31
+ @row-contextmenu="(row, column, event)=>$emit('row-contextmenu',row, column, event)"
32
+ @row-dblclick="(row, column, event)=>$emit('row-dblclick',row, column, event)"
33
+ @header-click="( column, event)=>$emit('header-click', column, event)"
34
+ @header-contextmenu="( column, event)=>$emit('header-contextmenu', column, event)"
35
+ @sort-change="({ column, prop, order})=>$emit('sort-change', { column, prop, order})"
36
+ @filter-change="(filter)=>$emit('filter-change', filter)"
37
+ @current-change="(currentRow, oldCurrentRow)=>$emit('current-change', currentRow, oldCurrentRow)"
38
+ @select="(selection, row)=>$emit('select',selection, row)"
39
+ @select-all="(selection)=>$emit('select-all',selection)"
40
+ @selection-change="(selection)=>$emit('selection-change',selection)"
41
+ @cell-mouse-enter="(row, column, cell, event)=>$emit('cell-mouse-enter',row, column, cell, event)"
42
+ @cell-mouse-leave="(row, column, cell, event)=>$emit('cell-mouse-leave',row, column, cell, event)"
43
+ @cell-click="(row, column, cell, event)=>$emit('cell-click',row, column, cell, event)"
44
+ @cell-dblclick="(row, column, cell, event)=>$emit('cell-dblclick',row, column, cell, event)">
45
+ <el-table-column width="55"
46
+ v-if="checked"
47
+ :reserve-selection="reserveSelection"
48
+ :selectable="selectable"
49
+ type='selection'>
50
+ </el-table-column>
51
+ <el-table-column v-if="!hideOrder"
52
+ :label="keyName||''"
53
+ :align="'center'"
54
+ width="55">
55
+ <template slot="header">
56
+ <slot :name="'header_order'"></slot>
57
+ </template>
58
+ <template slot-scope="scope">
59
+ {{(state.pageInfo.currentPage-1)*state.pageInfo.pageSize+(scope.$index+1)}}
60
+ </template>
61
+ </el-table-column>
62
+ <template v-for="item in columns">
63
+ <el-table-column :label="item.title"
64
+ :key='item.key'
65
+ :fixed="item.fixed"
66
+ :align="item.align"
67
+ v-if="!item.hide"
68
+ :header-align="item.headerAlign"
69
+ :column-key="item.columnKey"
70
+ :class-name="item.className"
71
+ :prop="item.key"
72
+ :show-overflow-tooltip="item.type==='org'||item.type==='userId'?false:(item.showOverflowTooltip===false?false:true)"
73
+ :sortable="item.sortable"
74
+ :sort-method="item.sortMethod"
75
+ :sort-orders="item.sortOrders"
76
+ :formatter="item.formatter"
77
+ :sort-by="item.sortBy"
78
+ :min-width="item.minWidth"
79
+ :width="item.width">
80
+ <template slot-scope="{row,column,rowIndex}">
81
+ <slot :name="item.key"
82
+ :row="row"
83
+ :column="column"
84
+ :rowIndex="rowIndex">
85
+ <!-- 处理部门 -->
86
+ <template v-if="item.type==='org'">
87
+ <common-org-info v-if="getPropByPath(row,item.key)"
88
+ :org-id="getPropByPath(row,item.key)"
89
+ type="tag"></common-org-info>
90
+ <span v-else>--</span>
91
+ </template>
92
+ <!-- 处理部门人员 -->
93
+ <template v-else-if="item.type==='userId'">
94
+ <div is='common-datas-info-id'
95
+ v-if="getPropByPath(row,item.key)"
96
+ :user-id="JSON.stringify(getPropByPath(row,item.key))"
97
+ :base-data-info='true'></div>
98
+ <span v-else>--</span>
99
+ </template>
100
+ <!-- 处理时间 -->
101
+ <template v-else-if="item.type==='time'">
102
+ <span v-if='getPropByPath(row,item.key)'>{{getPropByPath(row,item.key).replace('T', ' ').slice(0,19)}}</span>
103
+ <span v-else>--</span>
104
+ </template>
105
+ <!-- 其他 -->
106
+ <span v-else>{{getPropByPath(row,item.key)}}</span>
107
+ </slot>
108
+
109
+ </template>
110
+ <template slot-scope="{column,$index}"
111
+ slot="header">
112
+ <slot :name="'header_'+item.key"
113
+ :column="column"
114
+ :$index="$index">{{item.title}}</slot>
115
+ </template>
116
+ </el-table-column>
117
+ </template>
118
+
119
+ </el-table>
120
+ </article>
121
+ <footer v-if="!hidePage">
122
+ <el-row>
123
+ <el-col :span="24"
124
+ name="footer">
125
+
126
+ <slot name="footerLeft"></slot>
127
+
128
+ <el-col :span="12">
129
+ <!-- <p style="width:90px;float:left">共{{data.length}}条</p> -->
130
+ <PageInfo :hide-on-single-page="pagination&&pagination.hideOnSinglePage"
131
+ :small="pagination&&pagination.small"
132
+ @onchange="(e)=>$emit('onchange',e)"
133
+ :page-sizes="pagination&&pagination.pageSizes"
134
+ :page-info="state.pageInfo"></PageInfo>
135
+ </el-col>
136
+ </el-col>
137
+
138
+ </el-row>
139
+ </footer>
140
+ </div>
141
+ </template>
142
+ <script lang='ts'>
143
+ import { Component, Prop, Vue, Watch } from "vue-property-decorator";
144
+ import { _axios } from "vue-kst-auth";
145
+ import { Column, PageInfoType } from "@/packages/type";
146
+ import PageInfo from "@/packages/PageInfo/index.vue";
147
+ interface State {
148
+ pageInfo: PageInfoType;
149
+ loading: boolean;
150
+ }
151
+ @Component({
152
+ name: "HtTable",
153
+ components: {
154
+ PageInfo,
155
+ },
156
+ })
157
+ export default class HtTable extends Vue {
158
+ /** 默认的table头 */
159
+ @Prop() columns!: Column[];
160
+ @Prop() data!: any[];
161
+ /** 序号对应的名称 */
162
+ @Prop() keyName?: string;
163
+ /** 是否隐藏分页 */
164
+ @Prop() hidePage!: boolean;
165
+ /** 是否启用复选框 */
166
+ @Prop() checked!: boolean;
167
+ /** 仅对 type=selection 的列有效,类型为 Boolean,为 true 则会在数据更新之后保留之前选中的数据(需指定 row-key) */
168
+ @Prop() reserveSelection!: boolean;
169
+ @Prop() height?: string | number;
170
+ @Prop() maxHeight?: string | number;
171
+ @Prop() rowKey?: string;
172
+ @Prop() stripe?: boolean;
173
+ @Prop() border?: boolean;
174
+ @Prop() size?: "medium" | "small" | "mini";
175
+ @Prop() fit?: boolean;
176
+ @Prop() showHeader?: boolean;
177
+ @Prop() rowClassName?: any;
178
+ /** 仅对 type=selection 的列有效,类型为 Function,Function 的返回值用来决定这一行的 CheckBox 是否可以勾选 */
179
+ @Prop() selectable?: any;
180
+ @Prop() currentRowKey?: string | number;
181
+ @Prop() highlightCurrentRow?: boolean;
182
+ @Prop() rowStyle?: any;
183
+ @Prop() hideOrder?: boolean;
184
+ @Prop() pageInfo?: PageInfoType;
185
+ @Prop() emptyText?: string | number;
186
+ /** 分页的所有额外信息通过此参数传递 */
187
+ @Prop() pagination?: any;
188
+ state: State = {
189
+ loading: false,
190
+ pageInfo: {
191
+ currentPage: 1,
192
+ pageSize: 10,
193
+ skipCount: 0,
194
+ totalCount: 0,
195
+ },
196
+ };
197
+ created() {
198
+ // console.log("this", this.$props);
199
+ this.setPageInfo(this.pageInfo);
200
+ }
201
+ getPropByPath(obj: any, path: string, strict: boolean) {
202
+ let tempObj = obj;
203
+ path = path.replace(/\[(\w+)\]/g, ".$1");
204
+ path = path.replace(/^\./, "");
205
+
206
+ const keyArr = path.split(".");
207
+ let i = 0;
208
+ for (let len = keyArr.length; i < len - 1; ++i) {
209
+ if (!tempObj && !strict) break;
210
+ const key = keyArr[i];
211
+ if (key in tempObj) {
212
+ tempObj = tempObj[key];
213
+ } else {
214
+ if (strict) {
215
+ throw new Error("please transfer a valid prop path to form item!");
216
+ }
217
+ break;
218
+ }
219
+ }
220
+ // return {
221
+ // o: tempObj,
222
+ // k: keyArr[i],
223
+ // v: tempObj ? tempObj[keyArr[i]] : null,
224
+ // };
225
+ return tempObj ? tempObj[keyArr[i]] : null;
226
+ }
227
+ /** 遍历循环展示row数据 */
228
+ showValue(row: any, key: string) {
229
+ if (key) {
230
+ if (key.includes(".")) {
231
+ //存在多级的情况
232
+ //console.log("eval", key, eval(row[key]));
233
+ // const arrKey = key.split(".");
234
+ // let data = row;
235
+ // arrKey.forEach((item) => {
236
+ // if (data[item]) {
237
+ // data = data[item];
238
+ // } else {
239
+ // data = "";
240
+ // }
241
+ // });
242
+ return "";
243
+ } else {
244
+ //如果不存在多级数据
245
+ return row[key];
246
+ }
247
+ } else {
248
+ return "";
249
+ }
250
+ }
251
+ /** 监听 */
252
+ @Watch("pageInfo")
253
+ setPageInfo(val?: PageInfoType) {
254
+ if (val) {
255
+ const pageInfo: PageInfoType = val;
256
+ this.state.pageInfo = {
257
+ currentPage: Number(pageInfo.currentPage),
258
+ pageSize: Number(pageInfo.pageSize),
259
+ skipCount: Number(pageInfo.skipCount),
260
+ totalCount: Number(pageInfo.totalCount),
261
+ };
262
+ }
263
+ }
264
+ }
265
+ </script>
266
+ <style lang='scss' scoped></style>
@@ -0,0 +1,16 @@
1
+ /*
2
+ * @Descripttion:导出公共组件Excel
3
+ * @version:
4
+ * @Author: hutao
5
+ * @Date: 2021-11-15 15:00:57
6
+ * @LastEditors: hutao
7
+ * @LastEditTime: 2021-12-19 13:38:48
8
+ */
9
+ import HtExport from "./index.vue";
10
+
11
+ (HtExport as any).install = function (Vue: any) {
12
+
13
+ Vue.component("HtExport", HtExport);
14
+ };
15
+
16
+ export default HtExport;
@@ -0,0 +1,137 @@
1
+ <!--
2
+ * @Descripttion: 文件导出按钮
3
+ * @version:
4
+ * @Author: hutao
5
+ * @Date: 2021-09-02 09:03:43
6
+ * @LastEditors: hutao
7
+ * @LastEditTime: 2021-12-19 14:04:05
8
+ -->
9
+ <template>
10
+ <span>
11
+ <slot @click="exportExcel"
12
+ v-loading="state.loading">
13
+ <el-button type="primary">
14
+ 导出Excel
15
+ </el-button>
16
+ </slot>
17
+ </span>
18
+ </template>
19
+ <script lang='ts'>
20
+ import { Component, Prop, Vue } from "vue-property-decorator";
21
+ import { AxiosRequestConfig, Method } from "axios";
22
+ import { _axios } from "vue-kst-auth";
23
+
24
+ /** 设置axios返回类型 */
25
+ Vue.config.productionTip = false;
26
+ interface State {
27
+ /** 数据状态 */
28
+ loading: boolean;
29
+ }
30
+ @Component
31
+ export default class Index extends Vue {
32
+ /** 请求方式 */
33
+ @Prop() method!: Method;
34
+ /** 请求地址 */
35
+ @Prop() url!: string;
36
+ /** 请求参数 */
37
+ @Prop() params?: object;
38
+ /** 下载的文件名 */
39
+ @Prop() fileName!: string;
40
+ /** 下载之前的验证 */
41
+ @Prop() exportBefore!: boolean;
42
+
43
+ /** 数据 */
44
+ state: State = {
45
+ loading: false,
46
+ };
47
+ /** 生命周期 */
48
+ /** 方法 */
49
+
50
+ /** 导出方法 */
51
+ exportExcel() {
52
+ if (this.exportBefore !== false) {
53
+ //return false;
54
+ this.state.loading = true;
55
+ let fileName = this.fileName || "未知文件名.xlsx";
56
+ let config: AxiosRequestConfig = {
57
+ responseType: "blob",
58
+ params: {},
59
+ };
60
+ if (this.params) {
61
+ config = this.params;
62
+ }
63
+ if (this.url) {
64
+ if (this.method === "post") {
65
+ _axios
66
+ .post(this.url, config, { responseType: "blob" })
67
+ .then((res) => {
68
+ const content = res.data;
69
+ if (!this.fileName) {
70
+ const headers = res.headers["content-disposition"];
71
+ if (!headers) {
72
+ this.$notify.warning("暂无数据导出");
73
+ return;
74
+ }
75
+ fileName = decodeURIComponent(
76
+ headers.split("filename*=UTF-8")[1]
77
+ ).replace("''", "");
78
+ }
79
+ const blob = new Blob([content as any]);
80
+ if ("download" in document.createElement("a")) {
81
+ // 非IE下载
82
+ const elink = document.createElement("a");
83
+ elink.download = fileName;
84
+ elink.style.display = "none";
85
+ elink.href = URL.createObjectURL(blob);
86
+ document.body.appendChild(elink);
87
+ elink.click();
88
+ URL.revokeObjectURL(elink.href); // 释放URL 对象
89
+ document.body.removeChild(elink);
90
+ } else {
91
+ // IE10+下载
92
+ (navigator as any).msSaveBlob(blob, fileName);
93
+ }
94
+ })
95
+ .finally(() => {
96
+ this.state.loading = false;
97
+ });
98
+ } else {
99
+ _axios
100
+ .get(this.url, { responseType: "blob", params: config })
101
+ .then((res) => {
102
+ const content = res.data;
103
+ if (!this.fileName) {
104
+ const headers = res.headers["content-disposition"];
105
+ fileName = decodeURIComponent(
106
+ headers.split("filename*=UTF-8")[1]
107
+ ).replace("''", "");
108
+ }
109
+ const blob = new Blob([content as any]);
110
+ if ("download" in document.createElement("a")) {
111
+ // 非IE下载
112
+ const elink = document.createElement("a");
113
+ elink.download = fileName;
114
+ elink.style.display = "none";
115
+ elink.href = URL.createObjectURL(blob);
116
+ document.body.appendChild(elink);
117
+ elink.click();
118
+ URL.revokeObjectURL(elink.href); // 释放URL 对象
119
+ document.body.removeChild(elink);
120
+ } else {
121
+ // IE10+下载
122
+ (navigator as any).msSaveBlob(blob, fileName);
123
+ }
124
+ })
125
+ .finally(() => {
126
+ this.state.loading = false;
127
+ });
128
+ }
129
+ }
130
+ }
131
+ }
132
+ /** 监听 */
133
+ /** 计算属性 */
134
+ }
135
+ </script>
136
+
137
+ <style lang='scss' scoped></style>
@@ -5,12 +5,11 @@
5
5
  * @Author: hutao
6
6
  * @Date: 2021-11-11 11:23:24
7
7
  * @LastEditors: hutao
8
- * @LastEditTime: 2021-12-13 11:30:26
8
+ * @LastEditTime: 2021-12-14 16:06:12
9
9
  -->
10
10
  <template>
11
11
  <div v-loading="state.loading">
12
12
  <article>
13
-
14
13
  <el-table ref="comTable"
15
14
  :height="height"
16
15
  :max-height="maxHeight"
@@ -49,7 +48,7 @@
49
48
  type='selection'>
50
49
  </el-table-column>
51
50
  <el-table-column v-if="!hideOrder"
52
- label=""
51
+ :label="keyName===undefined?'序号':keyName"
53
52
  :align="'center'"
54
53
  width="55">
55
54
  <template slot="header">
@@ -69,7 +68,7 @@
69
68
  :column-key="item.columnKey"
70
69
  :class-name="item.className"
71
70
  :prop="item.key"
72
- :show-overflow-tooltip="item.type==='org'||item.type==='userId'?false:(item.showOverflowTooltip===false?false:true)"
71
+ :show-overflow-tooltip="item.type==='common'||item.type==='org'||item.type==='userId'?false:(item.showOverflowTooltip===false?false:true)"
73
72
  :sortable="item.sortable"
74
73
  :sort-method="item.sortMethod"
75
74
  :sort-orders="item.sortOrders"
@@ -89,6 +88,18 @@
89
88
  type="tag"></common-org-info>
90
89
  <span v-else>--</span>
91
90
  </template>
91
+ <template v-else-if="item.type==='common'">
92
+ <div v-if="getPropByPath(row,item.key)"
93
+ is='common-datas-info-id'
94
+ :user-id="item.commonType['userId']?getPropByPath(row,item.key):'[]'"
95
+ :department-id="item.commonType['departmentId']?getPropByPath(row,item.key):'[]'"
96
+ :role-id="item.commonType['roleId']?getPropByPath(row,item.key):'[]'"
97
+ :base-data-id="item.commonType['baseDataId']?getPropByPath(row,item.key):''"
98
+ :base-data-value="item.commonType['baseDataValue']?getPropByPath(row,item.key):''"
99
+ :base-data-name="item.commonType['baseDataName']?getPropByPath(row,item.key):''"
100
+ :base-data-info='true'></div>
101
+ <span v-else>--</span>
102
+ </template>
92
103
  <!-- 处理部门人员 -->
93
104
  <template v-else-if="item.type==='userId'">
94
105
  <div is='common-datas-info-id'
@@ -107,6 +118,7 @@
107
118
  </slot>
108
119
 
109
120
  </template>
121
+ <!-- 处理重定义table头相关信息 header_key -->
110
122
  <template slot-scope="{column,$index}"
111
123
  slot="header">
112
124
  <slot :name="'header_'+item.key"
@@ -119,8 +131,11 @@
119
131
  </el-table>
120
132
  </article>
121
133
  <footer v-if="!hidePage">
122
- <el-row>
123
- <el-col :span="24">
134
+ <el-row name="footer">
135
+ <!-- 此处建议使用el-col -->
136
+ <slot name="footerLeft"></slot>
137
+
138
+ <el-col :span="12">
124
139
  <!-- <p style="width:90px;float:left">共{{data.length}}条</p> -->
125
140
  <PageInfo :hide-on-single-page="pagination&&pagination.hideOnSinglePage"
126
141
  :small="pagination&&pagination.small"
@@ -128,6 +143,7 @@
128
143
  :page-sizes="pagination&&pagination.pageSizes"
129
144
  :page-info="state.pageInfo"></PageInfo>
130
145
  </el-col>
146
+
131
147
  </el-row>
132
148
  </footer>
133
149
  </div>
@@ -151,6 +167,8 @@ export default class HtTable extends Vue {
151
167
  /** 默认的table头 */
152
168
  @Prop() columns!: Column[];
153
169
  @Prop() data!: any[];
170
+ /** 序号对应的名称 */
171
+ @Prop() keyName?: string;
154
172
  /** 是否隐藏分页 */
155
173
  @Prop() hidePage!: boolean;
156
174
  /** 是否启用复选框 */
@@ -186,7 +204,6 @@ export default class HtTable extends Vue {
186
204
  },
187
205
  };
188
206
  created() {
189
- // console.log("this", this.$props);
190
207
  this.setPageInfo(this.pageInfo);
191
208
  }
192
209
  getPropByPath(obj: any, path: string, strict: boolean) {
@@ -4,7 +4,7 @@
4
4
  * @Author: hutao
5
5
  * @Date: 2021-10-21 10:08:41
6
6
  * @LastEditors: hutao
7
- * @LastEditTime: 2021-12-09 17:27:01
7
+ * @LastEditTime: 2021-12-19 13:39:11
8
8
  */
9
9
 
10
10
  // 导入组件
@@ -14,12 +14,10 @@ import HtSelectTable from './SelectTable/index'
14
14
  /** 分页组装配件 */
15
15
  import HtPagination from './PageInfo/index'
16
16
  import HtTable from './HtTable/index'
17
+ import HtExport from './HtExport/index'
17
18
 
18
19
  // 存储组件列表
19
- const components = [
20
- HtSelectTable,
21
- HtPagination, HtTable
22
- ]
20
+ const components = [HtSelectTable, HtPagination, HtTable, HtExport]
23
21
  // 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册
24
22
  const install = function (Vue: any) {
25
23
  // 判断是否安装
@@ -36,6 +34,6 @@ export default {
36
34
  // 导出的对象必须具有 install,才能被 Vue.use() 方法安装
37
35
  install,
38
36
  // 以下是具体的组件列表
39
- HtSelectTable, HtPagination, HtTable
37
+ HtSelectTable, HtPagination, HtTable, HtExport
40
38
  }
41
39
 
@@ -4,7 +4,7 @@
4
4
  * @Author: hutao
5
5
  * @Date: 2021-10-25 17:05:17
6
6
  * @LastEditors: hutao
7
- * @LastEditTime: 2021-12-13 11:16:04
7
+ * @LastEditTime: 2021-12-19 14:00:13
8
8
  */
9
9
  /** 初始的默认条数 */
10
10
  export const defalutPageSize = 10
@@ -67,7 +67,9 @@ export interface Column {
67
67
  /** 是否隐藏当前列 */
68
68
  hide?: boolean;
69
69
  /** 通过type展示相应的数据 用户id|部门id|时间格式化*/
70
- type?: 'userId' | 'org' | 'time',
70
+ type?: 'userId' | 'org' | 'time' | 'common',
71
+ /** 只有当type='common'时候有效 数据类型个ca common里面的一样但不包括时间 时间使用time */
72
+ commonType?: 'userId' | 'departmentId' | 'baseDataId' | 'roleId' | 'baseDataName' | 'baseDataValue',
71
73
  showOverflowTooltip?: boolean,
72
74
  }
73
75
  export interface PageInfoType {
@@ -75,4 +77,4 @@ export interface PageInfoType {
75
77
  pageSize: number;
76
78
  skipCount: number;
77
79
  totalCount: number;
78
- }
80
+ }
@@ -4,7 +4,7 @@
4
4
  * @Author: hutao
5
5
  * @Date: 2021-11-15 14:41:40
6
6
  * @LastEditors: hutao
7
- * @LastEditTime: 2021-12-12 09:03:38
7
+ * @LastEditTime: 2021-12-15 15:46:44
8
8
  -->
9
9
  <template>
10
10
  <div>
@@ -24,6 +24,20 @@
24
24
  <el-tag>年龄{{$index}}</el-tag>
25
25
  </div> -->
26
26
  </HtTable>
27
+ <el-dropdown>
28
+ <el-select placeholder="请选择">
29
+ </el-select>
30
+
31
+ <el-dropdown-menu slot="dropdown">
32
+ <el-dropdown-item>
33
+ <p style="width:300px">re</p>
34
+ </el-dropdown-item>
35
+ <el-dropdown-item>狮子头</el-dropdown-item>
36
+ <el-dropdown-item>螺蛳粉</el-dropdown-item>
37
+ <el-dropdown-item>双皮奶</el-dropdown-item>
38
+ <el-dropdown-item>蚵仔煎</el-dropdown-item>
39
+ </el-dropdown-menu>
40
+ </el-dropdown>
27
41
  </div>
28
42
  </template>
29
43
  <script lang='ts'>