tenghui-ui 1.0.1 → 1.1.0

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.
package/README.md CHANGED
@@ -1,11 +1,26 @@
1
- # Vue 3 + Typescript + Vite
1
+ # tenghui-ui
2
2
 
3
- This template should help get you started developing with Vue 3 and Typescript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
3
+ #### 介绍
4
+ 前端组件库
4
5
 
5
- ## Recommended IDE Setup
6
+ #### 软件架构
7
+ 软件架构说明
6
8
 
7
- - [VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.volar)
8
9
 
9
- ## Type Support For `.vue` Imports in TS
10
+ #### 安装教程
10
11
 
11
- Since TypeScript cannot handle type information for `.vue` imports, they are shimmed to be a generic Vue component type by default. In most cases this is fine if you don't really care about component prop types outside of templates. However, if you wish to get actual prop types in `.vue` imports (for example to get props validation when using manual `h(...)` calls), you can enable Volar's `.vue` type support plugin by running `Volar: Switch TS Plugin on/off` from VSCode command palette.
12
+ 1. npm i
13
+ 2. npm run dev 启动调试
14
+ 3. npm run build 发布
15
+
16
+ #### 使用说明
17
+
18
+ 1. 组件按packages/template 模板开发
19
+ 2. 开发好的组件通过views配置测试组件界面
20
+
21
+ #### 参与贡献
22
+
23
+ 1. Fork 本仓库
24
+ 2. 新建 Feat_xxx 分支
25
+ 3. 提交代码
26
+ 4. 新建 Pull Request
package/dist/style.css CHANGED
@@ -0,0 +1 @@
1
+ .el-menu[data-v-1a7163e6]{width:100%;height:60px!important}.el-submenu .el-menu-item[data-v-1a7163e6]{min-width:unset}.el-submenu__title i[data-v-1a7163e6]{color:unset}.ui-tabs[data-v-65888dc2]{border-bottom:1px solid #ebeef5;padding:0 10px;height:40px;background-color:#fff}.ui-tabs__item[data-v-65888dc2]{float:left;height:31px;border-radius:6px 6px 0 0;border:1px solid #ebeef5;margin-top:10px;box-sizing:border-box;font-size:12px;line-height:30px;padding:0 10px;color:#c0c4cc;cursor:pointer;border-bottom-color:#fff;margin-right:1px;position:relative;transition:all .1s linear}.ui-tabs__item:hover .el-icon-error[data-v-65888dc2]{opacity:1}.ui-tabs__item .el-icon-error[data-v-65888dc2]{position:absolute;right:2px;top:50%;margin-top:-5px;opacity:0;transition:all .1s linear}.ui-tabs__item .el-icon-error[data-v-65888dc2]:hover{color:#409effcc}.ui-tabs__item--active[data-v-65888dc2]{color:#409effcc;padding-right:20px}.ui-tabs__item--active .el-icon-error[data-v-65888dc2]{top:50%;right:5px;font-size:14px;margin-top:-5px;opacity:1}.el-icon-s-tools[data-v-b586e068]{font-size:20px;color:#fff;line-height:60px;margin-right:20px;cursor:pointer}[data-v-613d84c4] .el-dialog__header{border-bottom:1px solid #ededed}[data-v-613d84c4] .el-dialog__header .el-dialog__title{font-size:16px}[data-v-613d84c4] .el-dialog__footer{border-top:1px solid #ededed}[data-v-613d84c4] .el-dialog__body .el-select,[data-v-613d84c4] .el-dialog__body .el-input,[data-v-613d84c4] .el-dialog__body .el-input-number{width:240px}[data-v-613d84c4] .el-dialog__body .el-input-number .el-input__inner{text-align:left}[data-v-613d84c4] .el-dialog__body .ui-item__main{width:100%}[data-v-613d84c4] .el-dialog__body .el-form-item__label{font-size:12px}[data-v-613d84c4] .el-dialog__body .el-input--small .el-input__icon{height:32px}.ui-form__item[data-v-07b0bd64]{display:flex;align-items:center;margin-right:15px}.ui-item__label[data-v-07b0bd64]{margin-right:10px;font-size:12px;width:70px;text-align:right}.ui-operation[data-v-3c6cb9f6]{padding:0 10px}.ui-search[data-v-07c7d454]{margin:10px 10px 0;padding:20px;background-color:#fff;border:1px solid #ebeef5;border-radius:4px}.ui-search__main[data-v-07c7d454]{display:flex}.ui-search__footer[data-v-07c7d454]{margin-top:10px}.ui-search[data-v-07c7d454] .ui-form__item{display:block}.ui-search[data-v-07c7d454] .ui-item__label{width:unset;text-align:left;margin-bottom:5px}.ui-table[data-v-54b3bd8e]{padding:0 10px}.el-table[data-v-54b3bd8e] .el-table__body ::-webkit-scrollbar{width:4px;background-color:#e4e4e5}.el-table[data-v-54b3bd8e] .el-table__body ::-webkit-scrollbar-thumb{border-radius:4px;background-color:#409eff}.ui-pagination[data-v-54b3bd8e]{text-align:center;padding:10px 0}
@@ -1,11 +1,11 @@
1
- var render = function() {
1
+ var render$8 = function() {
2
2
  var _vm = this;
3
3
  var _h = _vm.$createElement;
4
4
  var _c = _vm._self._c || _h;
5
- return _c("div", { staticClass: "ui-template" }, [_c("h1", [_vm._v(_vm._s(_vm.msg))])]);
5
+ return _c("div", { staticClass: "ui-template" }, [_c("h1", [_vm._v(_vm._s(_vm.msg))]), _c("el-table", { staticStyle: { "width": "100%" }, attrs: { "data": _vm.tableData } }, [_c("el-table-column", { attrs: { "prop": "date", "label": "\u65E5\u671F", "width": "180" } }), _c("el-table-column", { attrs: { "prop": "name", "label": "\u59D3\u540D", "width": "180" } }), _c("el-table-column", { attrs: { "prop": "address", "label": "\u5730\u5740" } })], 1)], 1);
6
6
  };
7
- var staticRenderFns = [];
8
- var index_vue_vue_type_style_index_0_scoped_true_lang = "";
7
+ var staticRenderFns$8 = [];
8
+ var index_vue_vue_type_style_index_0_scoped_true_lang$8 = "";
9
9
  function normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {
10
10
  var options = typeof scriptExports === "function" ? scriptExports.options : scriptExports;
11
11
  if (render2) {
@@ -57,31 +57,623 @@ function normalizeComponent(scriptExports, render2, staticRenderFns2, functional
57
57
  options
58
58
  };
59
59
  }
60
- const __vue2_script = {
60
+ const __vue2_script$8 = {
61
61
  name: "ComTemplate",
62
62
  data() {
63
63
  return {
64
- msg: "\u6D4B\u8BD5\u7EC4\u4EF6"
64
+ msg: "\u6D4B\u8BD5\u7EC4\u4EF611111",
65
+ tableData: [{
66
+ date: "2016-05-02",
67
+ name: "\u738B\u5C0F\u864E",
68
+ address: "\u4E0A\u6D77\u5E02\u666E\u9640\u533A\u91D1\u6C99\u6C5F\u8DEF 1518 \u5F04"
69
+ }, {
70
+ date: "2016-05-04",
71
+ name: "\u738B\u5C0F\u864E",
72
+ address: "\u4E0A\u6D77\u5E02\u666E\u9640\u533A\u91D1\u6C99\u6C5F\u8DEF 1517 \u5F04"
73
+ }, {
74
+ date: "2016-05-01",
75
+ name: "\u738B\u5C0F\u864E",
76
+ address: "\u4E0A\u6D77\u5E02\u666E\u9640\u533A\u91D1\u6C99\u6C5F\u8DEF 1519 \u5F04"
77
+ }, {
78
+ date: "2016-05-03",
79
+ name: "\u738B\u5C0F\u864E",
80
+ address: "\u4E0A\u6D77\u5E02\u666E\u9640\u533A\u91D1\u6C99\u6C5F\u8DEF 1516 \u5F04"
81
+ }]
65
82
  };
66
83
  },
67
84
  methods: {}
68
85
  };
86
+ const __cssModules$8 = {};
87
+ var __component__$8 = /* @__PURE__ */ normalizeComponent(__vue2_script$8, render$8, staticRenderFns$8, false, __vue2_injectStyles$8, "183fe45a", null, null);
88
+ function __vue2_injectStyles$8(context) {
89
+ for (let o in __cssModules$8) {
90
+ this[o] = __cssModules$8[o];
91
+ }
92
+ }
93
+ var ComTemplate = /* @__PURE__ */ function() {
94
+ return __component__$8.exports;
95
+ }();
96
+ ComTemplate.install = (app) => {
97
+ app.component(ComTemplate.name, ComTemplate);
98
+ };
99
+ const InComTemplate = ComTemplate;
100
+ var render$7 = function() {
101
+ var _vm = this;
102
+ var _h = _vm.$createElement;
103
+ var _c = _vm._self._c || _h;
104
+ return _c("el-menu", { attrs: { "mode": "horizontal", "background-color": "#545c64", "text-color": "#ccc", "active-text-color": "#FFF", "menu-trigger": "hover", "default-active": _vm.$route.path }, on: { "select": _vm.handleJump } }, [_vm._l(_vm.data, function(item, index) {
105
+ return [item.children ? _c("el-submenu", { attrs: { "index": item.path || item.name } }, [_c("template", { slot: "title" }, [_c("i", { staticClass: "icon-chanpinguanli-chanpinliebiao" }), _c("span", [_vm._v(_vm._s(item.name))])]), _vm._l(item.children, function(_item, _index) {
106
+ return [_item.children ? _c("el-submenu", { attrs: { "index": _item.path || _item.name } }, [_c("template", { slot: "title" }, [_vm._v(_vm._s(_item.name))]), _vm._l(_item.children, function(__item, __index) {
107
+ return _c("el-menu-item", { key: __item.name, attrs: { "index": __item.path || __item.name } }, [_vm._v(_vm._s(__item.name))]);
108
+ })], 2) : _c("el-menu-item", { attrs: { "index": _item.path || _item.name } }, [_vm._v(_vm._s(_item.name))])];
109
+ })], 2) : _c("el-menu-item", { attrs: { "index": item.path || item.name } }, [_c("i", { staticClass: "el-icon-menu" }), _c("span", { attrs: { "slot": "title" }, slot: "title" }, [_vm._v(_vm._s(item.name))])])];
110
+ })], 2);
111
+ };
112
+ var staticRenderFns$7 = [];
113
+ var index_vue_vue_type_style_index_0_scoped_true_lang$7 = "";
114
+ const __vue2_script$7 = {
115
+ name: "ComMenu",
116
+ props: {
117
+ data: {
118
+ type: Array,
119
+ default() {
120
+ return [];
121
+ }
122
+ }
123
+ },
124
+ data() {
125
+ return {};
126
+ },
127
+ computed: {},
128
+ methods: {
129
+ handleJump(path) {
130
+ this.$emit("jump", path);
131
+ }
132
+ }
133
+ };
134
+ const __cssModules$7 = {};
135
+ var __component__$7 = /* @__PURE__ */ normalizeComponent(__vue2_script$7, render$7, staticRenderFns$7, false, __vue2_injectStyles$7, "1a7163e6", null, null);
136
+ function __vue2_injectStyles$7(context) {
137
+ for (let o in __cssModules$7) {
138
+ this[o] = __cssModules$7[o];
139
+ }
140
+ }
141
+ var ComComponent$7 = /* @__PURE__ */ function() {
142
+ return __component__$7.exports;
143
+ }();
144
+ ComComponent$7.install = (app) => {
145
+ app.component(ComComponent$7.name, ComComponent$7);
146
+ };
147
+ const InComComponent$7 = ComComponent$7;
148
+ var render$6 = function() {
149
+ var _vm = this;
150
+ var _h = _vm.$createElement;
151
+ var _c = _vm._self._c || _h;
152
+ return _c("div", { staticClass: "ui-tabs" }, [_c("ul", { staticClass: "clear-fix" }, _vm._l(_vm.data, function(item) {
153
+ return _c("li", { staticClass: "ui-tabs__item", class: { "ui-tabs__item--active": _vm.currentTab.path === item.path }, on: { "click": function($event) {
154
+ return _vm.handleToggle(item.path);
155
+ } } }, [_c("span", [_vm._v(_vm._s(item.name))]), _c("span", { staticClass: "el-icon-error" })]);
156
+ }), 0)]);
157
+ };
158
+ var staticRenderFns$6 = [];
159
+ var index_vue_vue_type_style_index_0_scoped_true_lang$6 = "";
160
+ const __vue2_script$6 = {
161
+ name: "ComTabs",
162
+ props: {
163
+ data: {
164
+ type: Array,
165
+ default() {
166
+ return [];
167
+ }
168
+ },
169
+ currentTab: {
170
+ type: Object,
171
+ default() {
172
+ return {};
173
+ }
174
+ }
175
+ },
176
+ data() {
177
+ return {};
178
+ },
179
+ methods: {
180
+ handleToggle(path) {
181
+ this.$emit("toggle", path);
182
+ }
183
+ }
184
+ };
185
+ const __cssModules$6 = {};
186
+ var __component__$6 = /* @__PURE__ */ normalizeComponent(__vue2_script$6, render$6, staticRenderFns$6, false, __vue2_injectStyles$6, "65888dc2", null, null);
187
+ function __vue2_injectStyles$6(context) {
188
+ for (let o in __cssModules$6) {
189
+ this[o] = __cssModules$6[o];
190
+ }
191
+ }
192
+ var ComComponent$6 = /* @__PURE__ */ function() {
193
+ return __component__$6.exports;
194
+ }();
195
+ ComComponent$6.install = (app) => {
196
+ app.component(ComComponent$6.name, ComComponent$6);
197
+ };
198
+ const InComComponent$6 = ComComponent$6;
199
+ var render$5 = function() {
200
+ var _vm = this;
201
+ var _h = _vm.$createElement;
202
+ var _c = _vm._self._c || _h;
203
+ return _c("el-dropdown", [_c("span", { staticClass: "el-dropdown-link" }, [_c("i", { staticClass: "el-icon-s-tools" })]), _c("el-dropdown-menu", { attrs: { "slot": "dropdown" }, slot: "dropdown" }, [_c("el-dropdown-item", { attrs: { "icon": "icon-tuichudenglu" }, on: { "click": function($event) {
204
+ return _vm.handleOperation("outLogin");
205
+ } } }, [_vm._v("\u9000\u51FA\u767B\u5F55")])], 1)], 1);
206
+ };
207
+ var staticRenderFns$5 = [];
208
+ var index_vue_vue_type_style_index_0_scoped_true_lang$5 = "";
209
+ const __vue2_script$5 = {
210
+ name: "ComTool",
211
+ methods: {
212
+ handleOperation(cmd) {
213
+ switch (cmd) {
214
+ case "outLogin":
215
+ this.$confirm("\u786E\u8BA4\u9000\u51FA\u767B\u5F55?", "\u63D0\u793A", {
216
+ type: "warning"
217
+ }).then(() => {
218
+ console.log("out login");
219
+ });
220
+ break;
221
+ }
222
+ }
223
+ }
224
+ };
225
+ const __cssModules$5 = {};
226
+ var __component__$5 = /* @__PURE__ */ normalizeComponent(__vue2_script$5, render$5, staticRenderFns$5, false, __vue2_injectStyles$5, "b586e068", null, null);
227
+ function __vue2_injectStyles$5(context) {
228
+ for (let o in __cssModules$5) {
229
+ this[o] = __cssModules$5[o];
230
+ }
231
+ }
232
+ var ComComponent$5 = /* @__PURE__ */ function() {
233
+ return __component__$5.exports;
234
+ }();
235
+ ComComponent$5.install = (app) => {
236
+ app.component(ComComponent$5.name, ComComponent$5);
237
+ };
238
+ const InComComponent$5 = ComComponent$5;
239
+ var render$4 = function() {
240
+ var _vm = this;
241
+ var _h = _vm.$createElement;
242
+ var _c = _vm._self._c || _h;
243
+ return _c("el-dialog", { attrs: { "append-to-body": "", "top": _vm.top, "title": _vm.title, "visible": _vm.visible, "width": _vm.width }, on: { "close": _vm.handleClose }, scopedSlots: _vm._u([{ key: "footer", fn: function() {
244
+ return [_vm._t("footer", [_c("el-button", { attrs: { "size": "small" }, on: { "click": function($event) {
245
+ return _vm.$emit("update:visible", false);
246
+ } } }, [_vm._v("\u53D6\u6D88")]), _c("el-button", { attrs: { "size": "small", "type": "primary" }, on: { "click": _vm.handleConfirm } }, [_vm._v("\u786E\u5B9A")])])];
247
+ }, proxy: true }], null, true) }, [_vm._t("default")], 2);
248
+ };
249
+ var staticRenderFns$4 = [];
250
+ var index_vue_vue_type_style_index_0_scoped_true_lang$4 = "";
251
+ const __vue2_script$4 = {
252
+ name: "ComDialog",
253
+ props: {
254
+ visible: {
255
+ type: Boolean,
256
+ default: false
257
+ },
258
+ title: {
259
+ type: String,
260
+ default: "\u6807\u9898"
261
+ },
262
+ width: {
263
+ type: String,
264
+ default: "600px"
265
+ },
266
+ top: {
267
+ type: String,
268
+ default: "50px"
269
+ }
270
+ },
271
+ data() {
272
+ return {
273
+ show: false
274
+ };
275
+ },
276
+ methods: {
277
+ handleClose() {
278
+ this.$emit("close");
279
+ this.$emit("update:visible", false);
280
+ },
281
+ handleConfirm() {
282
+ this.$emit("confirm");
283
+ }
284
+ }
285
+ };
286
+ const __cssModules$4 = {};
287
+ var __component__$4 = /* @__PURE__ */ normalizeComponent(__vue2_script$4, render$4, staticRenderFns$4, false, __vue2_injectStyles$4, "613d84c4", null, null);
288
+ function __vue2_injectStyles$4(context) {
289
+ for (let o in __cssModules$4) {
290
+ this[o] = __cssModules$4[o];
291
+ }
292
+ }
293
+ var ComComponent$4 = /* @__PURE__ */ function() {
294
+ return __component__$4.exports;
295
+ }();
296
+ ComComponent$4.install = (app) => {
297
+ app.component(ComComponent$4.name, ComComponent$4);
298
+ };
299
+ const InComComponent$4 = ComComponent$4;
300
+ var render$3 = function() {
301
+ var _vm = this;
302
+ var _h = _vm.$createElement;
303
+ var _c = _vm._self._c || _h;
304
+ return _c("div", { staticClass: "ui-form__item" }, [_c("div", [_vm._t("label", [_vm.label ? _c("div", { staticClass: "ui-item__label" }, [_c("span", [_vm._v(_vm._s(_vm.label))])]) : _vm._e()])], 2), _c("div", { staticClass: "ui-item__main" }, [_vm.type === "input" ? [_c("el-input", { attrs: { "size": "small", "placeholder": _vm.placeholder, "disabled": _vm.readonly, "maxlength": _vm.maxlength }, model: { value: _vm.modelForm, callback: function($$v) {
305
+ _vm.modelForm = $$v;
306
+ }, expression: "modelForm" } })] : _vm.type === "select" ? [_c("el-select", { attrs: { "size": "small", "placeholder": _vm.placeholder || "\u8BF7\u9009\u62E9", "multiple": _vm.multiple, "disabled": _vm.readonly, "filterable": "", "clearable": "" }, model: { value: _vm.modelForm, callback: function($$v) {
307
+ _vm.modelForm = $$v;
308
+ }, expression: "modelForm" } }, _vm._l(_vm.selectOption, function(item) {
309
+ return _c("el-option", { key: item.value, attrs: { "value": item.value.toString(), "label": item.label } });
310
+ }), 1)] : _vm.type === "textarea" ? [_c("el-input", { attrs: { "size": "small", "type": "textarea", "placeholder": _vm.placeholder || "\u8BF7\u8F93\u5165", "rows": 4, "disabled": _vm.readonly }, model: { value: _vm.modelForm, callback: function($$v) {
311
+ _vm.modelForm = $$v;
312
+ }, expression: "modelForm" } })] : _vm.type === "input-number" ? [_c("el-input-number", { attrs: { "size": "small", "controls-position": "right" }, model: { value: _vm.modelForm, callback: function($$v) {
313
+ _vm.modelForm = $$v;
314
+ }, expression: "modelForm" } })] : _vm.type === "cascader" ? [_c("el-cascader", { attrs: { "size": "small", "options": _vm.options, "props": _vm.props }, on: { "change": _vm.handleChange }, model: { value: _vm.modelForm, callback: function($$v) {
315
+ _vm.modelForm = $$v;
316
+ }, expression: "modelForm" } })] : _vm._e()], 2)]);
317
+ };
318
+ var staticRenderFns$3 = [];
319
+ var index_vue_vue_type_style_index_0_scoped_true_lang$3 = "";
320
+ const __vue2_script$3 = {
321
+ name: "ComFormItem",
322
+ model: {
323
+ prop: "model",
324
+ event: "changes"
325
+ },
326
+ props: {
327
+ model: void 0,
328
+ type: {
329
+ type: String,
330
+ default: "input"
331
+ },
332
+ label: {
333
+ type: String,
334
+ default: ""
335
+ },
336
+ readonly: {
337
+ type: Boolean,
338
+ default: false
339
+ },
340
+ placeholder: {
341
+ type: String,
342
+ default: ""
343
+ },
344
+ maxlength: {
345
+ type: [Array, String],
346
+ default: ""
347
+ },
348
+ multiple: {
349
+ type: Boolean,
350
+ default: false
351
+ },
352
+ options: {
353
+ type: [Object, Array],
354
+ default() {
355
+ return { "1": "\u9009\u9879\u4E00", "2": "\u9009\u9879\u4E8C" };
356
+ }
357
+ },
358
+ props: {
359
+ type: Object,
360
+ default() {
361
+ return { value: "value", label: "label" };
362
+ }
363
+ }
364
+ },
365
+ data() {
366
+ return {
367
+ modelForm: this.model
368
+ };
369
+ },
370
+ computed: {
371
+ selectOption() {
372
+ let tempArr = [];
373
+ if (Array.isArray(this.options) && this.options.length && this.options[0][this.props.label] === void 0) {
374
+ const { label, value } = this.props;
375
+ tempArr = this.options.map((item, index) => {
376
+ const obj = {
377
+ label: item,
378
+ value: index
379
+ };
380
+ return {
381
+ label: obj[label],
382
+ value: obj[value]
383
+ };
384
+ });
385
+ } else if (!Array.isArray(this.options)) {
386
+ tempArr = Object.entries(this.options).map(([value, label]) => {
387
+ return {
388
+ label,
389
+ value
390
+ };
391
+ });
392
+ } else {
393
+ let options = [];
394
+ options.push(...this.options);
395
+ tempArr = options.map((item) => {
396
+ return {
397
+ label: item[this.props.label],
398
+ value: item[this.props.value]
399
+ };
400
+ });
401
+ }
402
+ return tempArr;
403
+ }
404
+ },
405
+ methods: {
406
+ handleChange(val) {
407
+ this.$emit("change", val);
408
+ }
409
+ },
410
+ watch: {
411
+ modelForm(val) {
412
+ this.$emit("changes", val);
413
+ },
414
+ model(val) {
415
+ this.modelForm = val;
416
+ }
417
+ }
418
+ };
419
+ const __cssModules$3 = {};
420
+ var __component__$3 = /* @__PURE__ */ normalizeComponent(__vue2_script$3, render$3, staticRenderFns$3, false, __vue2_injectStyles$3, "07b0bd64", null, null);
421
+ function __vue2_injectStyles$3(context) {
422
+ for (let o in __cssModules$3) {
423
+ this[o] = __cssModules$3[o];
424
+ }
425
+ }
426
+ var ComComponent$3 = /* @__PURE__ */ function() {
427
+ return __component__$3.exports;
428
+ }();
429
+ ComComponent$3.install = (app) => {
430
+ app.component(ComComponent$3.name, ComComponent$3);
431
+ };
432
+ const InComComponent$3 = ComComponent$3;
433
+ var render$2 = function() {
434
+ var _vm = this;
435
+ var _h = _vm.$createElement;
436
+ var _c = _vm._self._c || _h;
437
+ return _c("div", { staticClass: "ui-operation" }, [_vm._t("default")], 2);
438
+ };
439
+ var staticRenderFns$2 = [];
440
+ var index_vue_vue_type_style_index_0_scoped_true_lang$2 = "";
441
+ const __vue2_script$2 = {
442
+ name: "ComOperation",
443
+ prop: {
444
+ type: String,
445
+ default: "main"
446
+ }
447
+ };
448
+ const __cssModules$2 = {};
449
+ var __component__$2 = /* @__PURE__ */ normalizeComponent(__vue2_script$2, render$2, staticRenderFns$2, false, __vue2_injectStyles$2, "3c6cb9f6", null, null);
450
+ function __vue2_injectStyles$2(context) {
451
+ for (let o in __cssModules$2) {
452
+ this[o] = __cssModules$2[o];
453
+ }
454
+ }
455
+ var ComComponent$2 = /* @__PURE__ */ function() {
456
+ return __component__$2.exports;
457
+ }();
458
+ ComComponent$2.install = (app) => {
459
+ app.component(ComComponent$2.name, ComComponent$2);
460
+ };
461
+ const InComComponent$2 = ComComponent$2;
462
+ var render$1 = function() {
463
+ var _vm = this;
464
+ var _h = _vm.$createElement;
465
+ var _c = _vm._self._c || _h;
466
+ return _c("div", { staticClass: "ui-search" }, [_c("div", { staticClass: "ui-search__main" }, [_vm._t("default")], 2), _c("div", { staticClass: "ui-search__footer" }, [_c("el-button", { attrs: { "size": "small", "icon": "el-icon-refresh" }, on: { "click": _vm.handleReset } }, [_vm._v("\u91CD\u7F6E")]), _c("el-button", { attrs: { "size": "small", "icon": "el-icon-search", "type": "primary" }, on: { "click": _vm.handleQuery } }, [_vm._v("\u67E5\u8BE2")])], 1)]);
467
+ };
468
+ var staticRenderFns$1 = [];
469
+ var index_vue_vue_type_style_index_0_scoped_true_lang$1 = "";
470
+ const __vue2_script$1 = {
471
+ name: "ComSearch",
472
+ methods: {
473
+ handleQuery() {
474
+ const queryFn = this.$parent.handleQuery;
475
+ if (queryFn) {
476
+ queryFn();
477
+ } else {
478
+ this.$emit("query");
479
+ }
480
+ },
481
+ handleReset() {
482
+ const resetFn = this.$parent.handleReset;
483
+ if (resetFn) {
484
+ resetFn();
485
+ } else {
486
+ this.$emit("reset");
487
+ }
488
+ }
489
+ }
490
+ };
491
+ const __cssModules$1 = {};
492
+ var __component__$1 = /* @__PURE__ */ normalizeComponent(__vue2_script$1, render$1, staticRenderFns$1, false, __vue2_injectStyles$1, "07c7d454", null, null);
493
+ function __vue2_injectStyles$1(context) {
494
+ for (let o in __cssModules$1) {
495
+ this[o] = __cssModules$1[o];
496
+ }
497
+ }
498
+ var ComComponent$1 = /* @__PURE__ */ function() {
499
+ return __component__$1.exports;
500
+ }();
501
+ ComComponent$1.install = (app) => {
502
+ app.component(ComComponent$1.name, ComComponent$1);
503
+ };
504
+ const InComComponent$1 = ComComponent$1;
505
+ function countTableHeight(staticNum = 0) {
506
+ const pageCountEls = document.querySelectorAll(".ui-page__main:not(.v-leave) > div");
507
+ const paginationEl = document.querySelector(".ui-pagination");
508
+ const headerEl = document.querySelector(".ui-container__header");
509
+ const tabsEl = document.querySelector(".ui-tabs");
510
+ let tableHeight = staticNum;
511
+ tableHeight += paginationEl ? paginationEl.offsetHeight : 0;
512
+ tableHeight += headerEl ? headerEl.offsetHeight : 0;
513
+ tableHeight += tabsEl ? tabsEl.offsetHeight : 0;
514
+ let userAgent = navigator.userAgent;
515
+ for (let i = 0; i < pageCountEls.length; i++) {
516
+ let ele = pageCountEls[i];
517
+ if (!ele || ele.className === "ui-table")
518
+ continue;
519
+ tableHeight += ele.offsetHeight;
520
+ let eleMargin, eleTBMargin;
521
+ let eleCss = document.defaultView.getComputedStyle(ele);
522
+ if (userAgent.indexOf("Firefox") > -1) {
523
+ eleTBMargin = parseInt(eleCss["margin-top"]) + parseInt(eleCss["margin-bottom"]);
524
+ } else if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !(userAgent.indexOf("Opera") > -1)) {
525
+ let ieCss = ele.currentStyle;
526
+ eleTBMargin = parseInt(ieCss["marginTop"]) + parseInt(ieCss["marginBottom"]);
527
+ } else {
528
+ eleMargin = eleCss.margin.split(" ");
529
+ if (eleMargin.length == 1) {
530
+ eleTBMargin = parseInt(eleMargin[0]) * 2;
531
+ } else {
532
+ const [mt, mr, mb, ml] = eleMargin;
533
+ eleTBMargin = parseInt(mb) ? parseInt(mt) + parseInt(mb) : parseInt(mt);
534
+ }
535
+ }
536
+ tableHeight = eleTBMargin + tableHeight;
537
+ }
538
+ tableHeight = window.innerHeight - tableHeight;
539
+ return tableHeight;
540
+ }
541
+ var render = function() {
542
+ var _vm = this;
543
+ var _h = _vm.$createElement;
544
+ var _c = _vm._self._c || _h;
545
+ return _c("div", { staticClass: "ui-table" }, [_c("div", { staticClass: "ui-table__tab" }, [_vm._t("default")], 2), _c("el-table", _vm._b({ ref: "myTable", attrs: { "highlightRow": "", "border": true, "data": _vm.tableData }, on: { "selection-change": _vm.handleSelectionChange }, scopedSlots: _vm._u([{ key: "empty", fn: function() {
546
+ return [!_vm.autoHeight ? _c("div", [_c("el-empty", { directives: [{ name: "show", rawName: "v-show", value: !_vm.tableData.length, expression: "!tableData.length" }], attrs: { "description": "\u6682\u65E0\u6570\u636E" } })], 1) : _vm._e()];
547
+ }, proxy: true }]) }, "el-table", _vm._d({}, [_vm.isBindHeight, _vm.tableHeight, _vm.isBindMaxHeight, _vm.maxHeight])), [_vm.showSelect ? _c("el-table-column", { attrs: { "type": "selection", "width": "35", "selectable": _vm.selectable } }) : _vm._e(), _vm._l(_vm.tableTitle, function(item, index) {
548
+ return _c("el-table-column", { key: _vm.tableProps[index], attrs: { "minWidth": "60px", "label": item, "prop": _vm.tableProps[index], "width": _vm.tableProps[index] === "index" ? "60px" : _vm.tableColsWidth[index] || "" }, scopedSlots: _vm._u([{ key: "header", fn: function(scope) {
549
+ return [_vm._t(_vm.tableProps[index] + "Title", [_c("span", [_vm._v(_vm._s(item))])], { "row": item, "$index": scope.$index })];
550
+ } }, { key: "default", fn: function(scope) {
551
+ return [_vm._t(_vm.tableProps[index], [_c("span", [_vm._v(_vm._s(_vm.tableProps[index] === "index" ? _vm.changeTableInx(scope.$index) : scope.row[_vm.tableProps[index]]))])], { "row": scope.row, "$index": scope.$index })];
552
+ } }], null, true) });
553
+ })], 2), _vm.showPage ? _c("div", { staticClass: "ui-pagination" }, [_c("el-pagination", { ref: "pageRef", attrs: { "layout": "total, sizes, prev, pager, next, jumper", "current-page": _vm.pageData.offset, "page-sizes": _vm.pageSizes, "page-size": _vm.pageData.limit, "total": _vm.pageData.total }, on: { "size-change": function(val) {
554
+ return _vm.handlePageChange("limit", val);
555
+ }, "current-change": function(val) {
556
+ return _vm.handlePageChange("offset", val);
557
+ } } })], 1) : _vm._e()], 1);
558
+ };
559
+ var staticRenderFns = [];
560
+ var index_vue_vue_type_style_index_0_scoped_true_lang = "";
561
+ const __vue2_script = {
562
+ name: "ComTable",
563
+ props: {
564
+ showSelect: { type: Boolean, default: false },
565
+ selectable: { type: Function, default() {
566
+ return () => {
567
+ };
568
+ } },
569
+ tableData: { type: Array, default() {
570
+ return [];
571
+ } },
572
+ tableMap: { type: Object, default() {
573
+ return { index: "\u5E8F\u53F7" };
574
+ } },
575
+ colsWidth: { type: [Array, Object], default() {
576
+ return [];
577
+ } },
578
+ pageData: { type: Object, default() {
579
+ return {};
580
+ } },
581
+ showPage: { type: Boolean, default: true },
582
+ height: { type: String, default: "" },
583
+ autoHeight: { type: Boolean, default: false },
584
+ maxHeight: { type: String, default: "" },
585
+ heightStatic: { type: Number, default: 0 }
586
+ },
587
+ data() {
588
+ return {
589
+ pageSizes: [20, 50, 100, 200],
590
+ tableHeight: ""
591
+ };
592
+ },
593
+ computed: {
594
+ tableTitle() {
595
+ return Object.values(this.tableMap);
596
+ },
597
+ tableProps() {
598
+ return Object.keys(this.tableMap);
599
+ },
600
+ tableColsWidth() {
601
+ if (Array.isArray(this.colsWidth)) {
602
+ return this.colsWidth.map((item) => `${parseInt(item)}px`);
603
+ } else {
604
+ return this.tableProps.map((item) => this.colsWidth[item] ? `${parseInt(this.colsWidth[item])}px` : "");
605
+ }
606
+ },
607
+ isBindHeight() {
608
+ return this.tableHeight ? "height" : "";
609
+ },
610
+ isBindMaxHeight() {
611
+ return this.maxHeight ? "max-height" : "";
612
+ }
613
+ },
614
+ methods: {
615
+ changeTableInx(inx) {
616
+ let i = parseInt(inx) + 1 + "";
617
+ let first = "0";
618
+ return first.repeat(4 - i.length) + i;
619
+ },
620
+ handleRefreshHeight() {
621
+ this.tableHeight = `${countTableHeight() - this.heightStatic}px`;
622
+ console.log(this.tableHeight, "this.tableHeight");
623
+ this.$refs["myTable"] && this.$refs["myTable"].doLayout();
624
+ },
625
+ handlePageChange(type = "offset", val) {
626
+ if (type === "offset") {
627
+ if (this.tempSize > this.pageData.total && this.pageData.offset > 1)
628
+ return;
629
+ this.$emit("pageChange", type, val);
630
+ } else {
631
+ this.tempSize = val;
632
+ this.$emit("pageChange", type, val);
633
+ }
634
+ },
635
+ handleSelectionChange(val) {
636
+ this.$emit("selectionChange", val);
637
+ }
638
+ },
639
+ async mounted() {
640
+ if (!this.autoHeight && !this.height) {
641
+ await this.$nextTick();
642
+ this.handleRefreshHeight();
643
+ window.addEventListener("resize", this.handleRefreshHeight);
644
+ } else if (this.height) {
645
+ this.tableHeight = this.height;
646
+ this.$refs["myTable"] && this.$refs["myTable"].doLayout();
647
+ }
648
+ },
649
+ beforeDestroy() {
650
+ window.removeEventListener("resize", this.handleRefreshHeight);
651
+ }
652
+ };
69
653
  const __cssModules = {};
70
- var __component__ = /* @__PURE__ */ normalizeComponent(__vue2_script, render, staticRenderFns, false, __vue2_injectStyles, "1f6eab87", null, null);
654
+ var __component__ = /* @__PURE__ */ normalizeComponent(__vue2_script, render, staticRenderFns, false, __vue2_injectStyles, "54b3bd8e", null, null);
71
655
  function __vue2_injectStyles(context) {
72
656
  for (let o in __cssModules) {
73
657
  this[o] = __cssModules[o];
74
658
  }
75
659
  }
76
- var ComTemplate = /* @__PURE__ */ function() {
660
+ var ComComponent = /* @__PURE__ */ function() {
77
661
  return __component__.exports;
78
662
  }();
79
- ComTemplate.install = (app) => {
80
- app.component(ComTemplate.name, ComTemplate);
663
+ ComComponent.install = (app) => {
664
+ app.component(ComComponent.name, ComComponent);
81
665
  };
82
- const InComTemplate = ComTemplate;
666
+ const InComComponent = ComComponent;
83
667
  const components = [
84
- InComTemplate
668
+ InComTemplate,
669
+ InComComponent$7,
670
+ InComComponent$6,
671
+ InComComponent$5,
672
+ InComComponent$4,
673
+ InComComponent$3,
674
+ InComComponent$2,
675
+ InComComponent$1,
676
+ InComComponent
85
677
  ];
86
678
  const install = (Vue, ops = { config: {} }) => {
87
679
  components.forEach((component) => Vue.component(component.name, component));
@@ -90,7 +682,15 @@ const install = (Vue, ops = { config: {} }) => {
90
682
  const defaultConfig = {
91
683
  version: "dev",
92
684
  install,
93
- ComTemplate: InComTemplate
685
+ ComTemplate: InComTemplate,
686
+ ComMenu: InComComponent$7,
687
+ ComTabs: InComComponent$6,
688
+ ComTool: InComComponent$5,
689
+ ComDialog: InComComponent$4,
690
+ ComFormItem: InComComponent$3,
691
+ ComOperation: InComComponent$2,
692
+ ComSearch: InComComponent$1,
693
+ ComTable: InComComponent
94
694
  };
95
695
  try {
96
696
  defaultConfig.version = require("../package.json").version;
@@ -1 +1 @@
1
- {"version":3,"file":"tenghui-ui.es.js","sources":["../packages/template/src/index.vue?vue&type=template&lang.js","../packages/template/src/index.vue","../packages/template/index.ts","../src/main.ts"],"sourcesContent":["\n<div class=\"ui-template\">\n <h1>{{msg}}</h1>\n</div>\n","<template>\r\n <div class=\"ui-template\">\r\n <h1>{{msg}}</h1>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n export default {\r\n name: \"ComTemplate\",\r\n data() {\r\n return {\r\n msg: '测试组件'\r\n }\r\n },\r\n methods: {\r\n }\r\n }\r\n</script>\r\n\r\n<style scoped>\r\n</style>","import Vue from 'vue';\r\nimport ComTemplate from './src/index.vue';\r\n\r\ntype SFCWithInstall<T> = T & { install(app: typeof Vue): void }; // vue 安装\r\n\r\n// 安装\r\nComTemplate.install = (app: typeof Vue) => {\r\n app.component(ComTemplate.name, ComTemplate);\r\n};\r\nconst InComTemplate: SFCWithInstall<typeof ComTemplate> = ComTemplate; // 增加类型\r\nexport default InComTemplate;","import ComTemplate from '../packages/template';\r\n\r\n\r\nconst components:any[] = [\r\n ComTemplate\r\n];\r\n\r\n/**\r\n * @param { App }\r\n * @returns { Void }\r\n */\r\nconst install = (Vue:any, ops:any = { config: {} }) => {\r\n components.forEach(component => Vue.component(component.name, component));\r\n\r\n // 注册组件时可以带入UI库配置\r\n Vue.prototype.$UICONFIG = ops.config;\r\n}\r\n\r\n\r\nconst defaultConfig = {\r\n version: 'dev',\r\n install,\r\n ComTemplate,\r\n};\r\n\r\ntry {\r\n defaultConfig.version = require('../package.json').version;\r\n} catch(e) {\r\n console.log('no require');\r\n}\r\n\r\nexport default defaultConfig;"],"names":["ComTemplate"],"mappings":"AAAA,IAAI,SAAS,WAAY;AAAC,MAAI,MAAI;AAAK,MAAI,KAAG,IAAI;AAAe,MAAI,KAAG,IAAI,MAAM,MAAI;AAAG,SAAO,GAAG,OAAM,EAAC,aAAY,iBAAe,CAAC,GAAG,MAAK,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI;AAAA;AACjK,IAAI,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACMtB;;;;;;;;;;;;;;;;;;;ACDA,YAAY,UAAU,CAAC,QAAoB;MACnC,UAAU,YAAY,MAAM;AAAA;AAEpC,MAAM,gBAAoD;ACN1D,MAAM,aAAmB;AAAA,EACrBA;AAAAA;AAOJ,MAAM,UAAU,CAAC,KAAS,MAAU,EAAE,QAAQ,SAAS;aACxC,QAAQ,eAAa,IAAI,UAAU,UAAU,MAAM;MAG1D,UAAU,YAAY,IAAI;AAAA;MAI5B,gBAAgB;AAAA,EAClB,SAAS;AAAA,EACT;AAAA,eACAA;AAAAA;AAGJ,IAAI;gBACc,UAAU,QAAQ,mBAAmB;AAAA,SAC/C;UACI,IAAI;AAAA;;"}
1
+ {"version":3,"file":"tenghui-ui.es.js","sources":["../packages/template/src/index.vue?vue&type=template&lang.js","../packages/template/src/index.vue","../packages/template/index.ts","../packages/menu/src/index.vue?vue&type=template&lang.js","../packages/menu/src/index.vue","../packages/menu/index.ts","../packages/tabs/src/index.vue?vue&type=template&lang.js","../packages/tabs/src/index.vue","../packages/tabs/index.ts","../packages/tool/src/index.vue?vue&type=template&lang.js","../packages/tool/src/index.vue","../packages/tool/index.ts","../packages/dialog/src/index.vue?vue&type=template&lang.js","../packages/dialog/src/index.vue","../packages/dialog/index.ts","../packages/form-item/src/index.vue?vue&type=template&lang.js","../packages/form-item/src/index.vue","../packages/form-item/index.ts","../packages/operation/src/index.vue?vue&type=template&lang.js","../packages/operation/src/index.vue","../packages/operation/index.ts","../packages/search/src/index.vue?vue&type=template&lang.js","../packages/search/src/index.vue","../packages/search/index.ts","../utils/index.ts","../packages/table/src/index.vue?vue&type=template&lang.js","../packages/table/src/index.vue","../packages/table/index.ts","../src/main.ts"],"sourcesContent":["\n<div class=\"ui-template\">\n <h1>{{ msg }}</h1>\n <el-table :data=\"tableData\" style=\"width: 100%\">\n <el-table-column prop=\"date\" label=\"日期\" width=\"180\">\n </el-table-column>\n <el-table-column prop=\"name\" label=\"姓名\" width=\"180\">\n </el-table-column>\n <el-table-column prop=\"address\" label=\"地址\">\n </el-table-column>\n </el-table>\n</div>\n","<template>\r\n <div class=\"ui-template\">\r\n <h1>{{ msg }}</h1>\r\n <el-table :data=\"tableData\" style=\"width: 100%\">\r\n <el-table-column prop=\"date\" label=\"日期\" width=\"180\">\r\n </el-table-column>\r\n <el-table-column prop=\"name\" label=\"姓名\" width=\"180\">\r\n </el-table-column>\r\n <el-table-column prop=\"address\" label=\"地址\">\r\n </el-table-column>\r\n </el-table>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: \"ComTemplate\",\r\n data() {\r\n return {\r\n msg: '测试组件11111',\r\n tableData: [{\r\n date: '2016-05-02',\r\n name: '王小虎',\r\n address: '上海市普陀区金沙江路 1518 弄'\r\n }, {\r\n date: '2016-05-04',\r\n name: '王小虎',\r\n address: '上海市普陀区金沙江路 1517 弄'\r\n }, {\r\n date: '2016-05-01',\r\n name: '王小虎',\r\n address: '上海市普陀区金沙江路 1519 弄'\r\n }, {\r\n date: '2016-05-03',\r\n name: '王小虎',\r\n address: '上海市普陀区金沙江路 1516 弄'\r\n }]\r\n }\r\n },\r\n methods: {\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>","import Vue from 'vue';\r\nimport ComTemplate from './src/index.vue';\r\n\r\ntype SFCWithInstall<T> = T & { install(app: typeof Vue): void }; // vue 安装\r\n\r\n// 安装\r\nComTemplate.install = (app: typeof Vue) => {\r\n app.component(ComTemplate.name, ComTemplate);\r\n};\r\nconst InComTemplate: SFCWithInstall<typeof ComTemplate> = ComTemplate; // 增加类型\r\nexport default InComTemplate;","\n<el-menu \n mode=\"horizontal\"\n background-color=\"#545c64\"\n text-color=\"#ccc\"\n active-text-color=\"#FFF\"\n menu-trigger=\"hover\"\n :default-active=\"$route.path\"\n @select=\"handleJump\">\n <template v-for=\"(item, index) in data\">\n <el-submenu v-if=\"item.children\" :index=\"item.path || item.name\">\n <template slot=\"title\">\n <i class=\"icon-chanpinguanli-chanpinliebiao\"></i>\n <span>{{item.name}}</span>\n </template>\n <template v-for=\"(_item, _index) in item.children\">\n <el-submenu v-if=\"_item.children\" \n :index=\"_item.path || _item.name\">\n <template slot=\"title\">{{_item.name}}</template>\n <el-menu-item v-for=\"(__item, __index) in _item.children\" \n :key=\"__item.name\" \n :index=\"__item.path || __item.name\">{{__item.name}}</el-menu-item>\n </el-submenu>\n <el-menu-item v-else :index=\"_item.path || _item.name\">{{_item.name}}</el-menu-item>\n </template>\n </el-submenu>\n <el-menu-item v-else :index=\"item.path || item.name\">\n <i class=\"el-icon-menu\"></i>\n <span slot=\"title\">{{item.name}}</span>\n </el-menu-item>\n </template>\n</el-menu>\n","<template>\r\n <el-menu \r\n mode=\"horizontal\"\r\n background-color=\"#545c64\"\r\n text-color=\"#ccc\"\r\n active-text-color=\"#FFF\"\r\n menu-trigger=\"hover\"\r\n :default-active=\"$route.path\"\r\n @select=\"handleJump\">\r\n <template v-for=\"(item, index) in data\">\r\n <el-submenu v-if=\"item.children\" :index=\"item.path || item.name\">\r\n <template slot=\"title\">\r\n <i class=\"icon-chanpinguanli-chanpinliebiao\"></i>\r\n <span>{{item.name}}</span>\r\n </template>\r\n <template v-for=\"(_item, _index) in item.children\">\r\n <el-submenu v-if=\"_item.children\" \r\n :index=\"_item.path || _item.name\">\r\n <template slot=\"title\">{{_item.name}}</template>\r\n <el-menu-item v-for=\"(__item, __index) in _item.children\" \r\n :key=\"__item.name\" \r\n :index=\"__item.path || __item.name\">{{__item.name}}</el-menu-item>\r\n </el-submenu>\r\n <el-menu-item v-else :index=\"_item.path || _item.name\">{{_item.name}}</el-menu-item>\r\n </template>\r\n </el-submenu>\r\n <el-menu-item v-else :index=\"item.path || item.name\">\r\n <i class=\"el-icon-menu\"></i>\r\n <span slot=\"title\">{{item.name}}</span>\r\n </el-menu-item>\r\n </template>\r\n </el-menu>\r\n</template>\r\n<script>\r\n\r\nexport default {\r\n name: 'ComMenu',\r\n props: {\r\n data: {\r\n type: Array,\r\n default() {\r\n return []\r\n }\r\n }\r\n },\r\n data() {\r\n return {\r\n \r\n }\r\n },\r\n computed: {\r\n \r\n },\r\n methods: {\r\n handleJump(path) {\r\n this.$emit('jump', path);\r\n }\r\n }\r\n}\r\n</script>\r\n<style lang=\"less\" scoped>\r\n .el-menu {\r\n width: 100%;\r\n height: 60px !important;\r\n }\r\n\r\n .el-submenu .el-menu-item {\r\n min-width: unset;\r\n }\r\n\r\n .el-submenu__title i {\r\n color: unset;\r\n }\r\n</style>","import Vue from 'vue';\r\nimport ComComponent from './src/index.vue';\r\n\r\ntype SFCWithInstall<T> = T & { install(app: typeof Vue): void }; // vue 安装\r\n\r\n// 安装\r\nComComponent.install = (app: typeof Vue) => {\r\n app.component(ComComponent.name, ComComponent);\r\n};\r\nconst InComComponent: SFCWithInstall<typeof ComComponent> = ComComponent; // 增加类型\r\nexport default InComComponent;","\n<div class=\"ui-tabs\">\n <ul class=\"clear-fix\">\n <li class=\"ui-tabs__item\" v-for=\"item in data\" :class=\"{ 'ui-tabs__item--active': currentTab.path === item.path }\" \n @click=\"handleToggle(item.path)\">\n <span>{{item.name}}</span>\n <span class=\"el-icon-error\"></span>\n </li>\n </ul>\n</div>\n","<template>\r\n <div class=\"ui-tabs\">\r\n <ul class=\"clear-fix\">\r\n <li class=\"ui-tabs__item\" v-for=\"item in data\" :class=\"{ 'ui-tabs__item--active': currentTab.path === item.path }\" \r\n @click=\"handleToggle(item.path)\">\r\n <span>{{item.name}}</span>\r\n <span class=\"el-icon-error\"></span>\r\n </li>\r\n </ul>\r\n </div>\r\n</template>\r\n<script>\r\nexport default {\r\n name: 'ComTabs',\r\n props: {\r\n data: {\r\n type: Array,\r\n default() {\r\n return []\r\n }\r\n },\r\n currentTab: {\r\n type: Object,\r\n default() {\r\n return {}\r\n }\r\n }\r\n },\r\n data() {\r\n return {\r\n\r\n }\r\n },\r\n methods: {\r\n handleToggle(path) {\r\n this.$emit('toggle', path);\r\n }\r\n }\r\n}\r\n</script>\r\n<style lang=\"less\" scoped>\r\n\r\n .ui-tabs {\r\n\r\n border-bottom: 1px solid @color-border;\r\n padding: 0 10px;\r\n height: 40px;\r\n background-color: #FFF;\r\n \r\n &__item {\r\n float: left;\r\n height: 31px;\r\n border-radius: 6px 6px 0 0;\r\n border: 1px solid @color-border;\r\n margin-top: 10px;\r\n box-sizing: border-box;\r\n font-size: 12px;\r\n line-height: 30px;\r\n padding: 0 10px;\r\n color: @color-f4;\r\n cursor: pointer;\r\n border-bottom-color: #FFF;\r\n margin-right: 1px;\r\n position: relative;\r\n transition: all .1s linear;\r\n\r\n &:hover {\r\n .el-icon-error {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n .el-icon-error {\r\n position: absolute;\r\n right: 2px;\r\n top: 50%;\r\n margin-top: -5px;\r\n opacity: 0;\r\n transition: all .1s linear;\r\n\r\n &:hover {\r\n color: @theme-color2;\r\n }\r\n }\r\n\r\n &--active {\r\n color: @theme-color2;\r\n padding-right: 20px;\r\n\r\n .el-icon-error {\r\n top: 50%;\r\n right: 5px;\r\n font-size: 14px;\r\n margin-top: -5px;\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n }\r\n</style>","import Vue from 'vue';\r\nimport ComComponent from './src/index.vue';\r\n\r\ntype SFCWithInstall<T> = T & { install(app: typeof Vue): void }; // vue 安装\r\n\r\n// 安装\r\nComComponent.install = (app: typeof Vue) => {\r\n app.component(ComComponent.name, ComComponent);\r\n};\r\nconst InComComponent: SFCWithInstall<typeof ComComponent> = ComComponent; // 增加类型\r\nexport default InComComponent;","\n<el-dropdown>\n <span class=\"el-dropdown-link\">\n <i class=\"el-icon-s-tools\"></i>\n </span>\n <el-dropdown-menu slot=\"dropdown\">\n <el-dropdown-item icon=\"icon-tuichudenglu\" @click=\"handleOperation('outLogin')\">退出登录</el-dropdown-item>\n </el-dropdown-menu>\n</el-dropdown>\n","<template>\r\n <el-dropdown>\r\n <span class=\"el-dropdown-link\">\r\n <i class=\"el-icon-s-tools\"></i>\r\n </span>\r\n <el-dropdown-menu slot=\"dropdown\">\r\n <el-dropdown-item icon=\"icon-tuichudenglu\" @click=\"handleOperation('outLogin')\">退出登录</el-dropdown-item>\r\n </el-dropdown-menu>\r\n </el-dropdown>\r\n</template>\r\n<script>\r\nexport default {\r\n name: 'ComTool',\r\n methods: {\r\n handleOperation(cmd) {\r\n switch (cmd) {\r\n case 'outLogin':\r\n this.$confirm('确认退出登录?', '提示', {\r\n type: 'warning'\r\n }).then(() => {\r\n console.log('out login');\r\n })\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n</script>\r\n<style lang=\"less\" scoped>\r\n .el-icon-s-tools {\r\n font-size: 20px;\r\n color: #FFF;\r\n line-height: 60px;\r\n margin-right: 20px;\r\n cursor: pointer;\r\n }\r\n</style>","import Vue from 'vue';\r\nimport ComComponent from './src/index.vue';\r\n\r\ntype SFCWithInstall<T> = T & { install(app: typeof Vue): void }; // vue 安装\r\n\r\n// 安装\r\nComComponent.install = (app: typeof Vue) => {\r\n app.component(ComComponent.name, ComComponent);\r\n};\r\nconst InComComponent: SFCWithInstall<typeof ComComponent> = ComComponent; // 增加类型\r\nexport default InComComponent;","\n<el-dialog \n append-to-body\n :top=\"top\"\n :title=\"title\" \n :visible=\"visible\"\n :width=\"width\"\n @close=\"handleClose\">\n <slot></slot>\n <template v-slot:footer>\n <slot name=\"footer\">\n <el-button size=\"small\" @click=\"$emit('update:visible', false)\">取消</el-button>\n <el-button size=\"small\" type=\"primary\" @click=\"handleConfirm\">确定</el-button>\n </slot>\n </template>\n</el-dialog>\n","<template>\r\n <el-dialog \r\n append-to-body\r\n :top=\"top\"\r\n :title=\"title\" \r\n :visible=\"visible\"\r\n :width=\"width\"\r\n @close=\"handleClose\">\r\n <slot></slot>\r\n <template v-slot:footer>\r\n <slot name=\"footer\">\r\n <el-button size=\"small\" @click=\"$emit('update:visible', false)\">取消</el-button>\r\n <el-button size=\"small\" type=\"primary\" @click=\"handleConfirm\">确定</el-button>\r\n </slot>\r\n </template>\r\n </el-dialog>\r\n</template>\r\n<script>\r\nexport default {\r\n name: 'ComDialog',\r\n props: {\r\n visible: {\r\n type: Boolean,\r\n default: false\r\n },\r\n title: {\r\n type: String,\r\n default: '标题'\r\n },\r\n width: {\r\n type: String,\r\n default: '600px'\r\n },\r\n top: {\r\n type: String,\r\n default: '50px'\r\n }\r\n },\r\n data() {\r\n return {\r\n show: false\r\n }\r\n },\r\n methods: {\r\n handleClose() {\r\n this.$emit('close');\r\n this.$emit('update:visible', false);\r\n },\r\n\r\n handleConfirm() {\r\n this.$emit('confirm');\r\n }\r\n }\r\n}\r\n</script>\r\n<style lang=\"less\" scoped>\r\n/deep/ .el-dialog__header {\r\n border-bottom: 1px solid #ededed;\r\n\r\n .el-dialog__title {\r\n font-size: 16px;\r\n }\r\n}\r\n\r\n/deep/ .el-dialog__footer {\r\n border-top: 1px solid #ededed;\r\n}\r\n\r\n/deep/ .el-dialog__body {\r\n\r\n .el-select {\r\n width: 240px;\r\n }\r\n\r\n .el-input {\r\n width: 240px;\r\n }\r\n\r\n .el-input-number {\r\n width: 240px;\r\n\r\n .el-input__inner {\r\n text-align: left;\r\n }\r\n }\r\n\r\n .ui-item__main {\r\n width: 100%;\r\n }\r\n\r\n .el-form-item__label {\r\n font-size: 12px;\r\n }\r\n\r\n .el-input--small .el-input__icon {\r\n height: 32px;\r\n }\r\n}\r\n</style>","import Vue from 'vue';\r\nimport ComComponent from './src/index.vue';\r\n\r\ntype SFCWithInstall<T> = T & { install(app: typeof Vue): void }; // vue 安装\r\n\r\n// 安装\r\nComComponent.install = (app: typeof Vue) => {\r\n app.component(ComComponent.name, ComComponent);\r\n};\r\nconst InComComponent: SFCWithInstall<typeof ComComponent> = ComComponent; // 增加类型\r\nexport default InComComponent;","\n<div class=\"ui-form__item\">\n <div>\n <slot name=\"label\">\n <div class=\"ui-item__label\" v-if=\"label\">\n <span >{{label}}</span>\n </div>\n </slot>\n </div>\n <div class=\"ui-item__main\">\n <template v-if=\"type === 'input'\">\n <el-input size=\"small\" v-model=\"modelForm\" :placeholder=\"placeholder\" :disabled=\"readonly\" :maxlength=\"maxlength\"></el-input>\n </template>\n <template v-else-if=\"type === 'select'\">\n <el-select size=\"small\" v-model=\"modelForm\" :placeholder=\"placeholder || '请选择'\" :multiple=\"multiple\" :disabled=\"readonly\" filterable clearable>\n <el-option v-for=\"item in selectOption\" :key=\"item.value\" :value=\"item.value.toString()\" :label=\"item.label\"></el-option>\n </el-select>\n </template>\n <template v-else-if=\"type === 'textarea'\">\n <el-input size=\"small\" v-model=\"modelForm\" type=\"textarea\" \n :placeholder=\"placeholder || '请输入'\" \n :rows=\"4\" \n :disabled=\"readonly\"></el-input>\n </template>\n <template v-else-if=\"type === 'input-number'\">\n <el-input-number size=\"small\" v-model=\"modelForm\" controls-position=\"right\"></el-input-number>\n </template>\n <template v-else-if=\"type === 'cascader'\">\n <el-cascader\n size=\"small\"\n v-model=\"modelForm\"\n :options=\"options\"\n :props=\"props\"\n @change=\"handleChange\"></el-cascader>\n </template>\n </div>\n</div>\n","<template>\r\n <div class=\"ui-form__item\">\r\n <div>\r\n <slot name=\"label\">\r\n <div class=\"ui-item__label\" v-if=\"label\">\r\n <span >{{label}}</span>\r\n </div>\r\n </slot>\r\n </div>\r\n <div class=\"ui-item__main\">\r\n <template v-if=\"type === 'input'\">\r\n <el-input size=\"small\" v-model=\"modelForm\" :placeholder=\"placeholder\" :disabled=\"readonly\" :maxlength=\"maxlength\"></el-input>\r\n </template>\r\n <template v-else-if=\"type === 'select'\">\r\n <el-select size=\"small\" v-model=\"modelForm\" :placeholder=\"placeholder || '请选择'\" :multiple=\"multiple\" :disabled=\"readonly\" filterable clearable>\r\n <el-option v-for=\"item in selectOption\" :key=\"item.value\" :value=\"item.value.toString()\" :label=\"item.label\"></el-option>\r\n </el-select>\r\n </template>\r\n <template v-else-if=\"type === 'textarea'\">\r\n <el-input size=\"small\" v-model=\"modelForm\" type=\"textarea\" \r\n :placeholder=\"placeholder || '请输入'\" \r\n :rows=\"4\" \r\n :disabled=\"readonly\"></el-input>\r\n </template>\r\n <template v-else-if=\"type === 'input-number'\">\r\n <el-input-number size=\"small\" v-model=\"modelForm\" controls-position=\"right\"></el-input-number>\r\n </template>\r\n <template v-else-if=\"type === 'cascader'\">\r\n <el-cascader\r\n size=\"small\"\r\n v-model=\"modelForm\"\r\n :options=\"options\"\r\n :props=\"props\"\r\n @change=\"handleChange\"></el-cascader>\r\n </template>\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\nexport default {\r\n name: 'ComFormItem',\r\n model: {\r\n prop: 'model',\r\n event: 'changes'\r\n },\r\n props: {\r\n\r\n model: undefined,\r\n\r\n // 组件类型\r\n type: {\r\n type: String,\r\n default: 'input'\r\n },\r\n\r\n // item name\r\n label: {\r\n type: String,\r\n default: ''\r\n },\r\n\r\n readonly: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n placeholder: {\r\n type: String,\r\n default: ''\r\n },\r\n\r\n maxlength: {\r\n type: [Array, String],\r\n default: ''\r\n },\r\n\r\n multiple: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n // 选项\r\n options: {\r\n type: [Object, Array],\r\n default() {\r\n return { '1': '选项一', '2': '选项二' }\r\n }\r\n },\r\n\r\n // 选项映射\r\n props: {\r\n type: Object,\r\n default() {\r\n return { value: 'value', label: 'label' }\r\n }\r\n },\r\n },\r\n data() {\r\n return {\r\n modelForm: this.model\r\n }\r\n },\r\n computed: {\r\n selectOption() {\r\n let tempArr = [];\r\n if (Array.isArray(this.options) && this.options.length && this.options[0][this.props.label] === undefined) {\r\n const { label, value } = this.props;\r\n tempArr = this.options.map((item, index) => {\r\n const obj = {\r\n label: item,\r\n value: index\r\n }\r\n return {\r\n label: obj[label],\r\n value: obj[value]\r\n }\r\n })\r\n } else if (!Array.isArray(this.options)){\r\n tempArr = Object.entries(this.options).map(([value, label]) => {\r\n return {\r\n label,\r\n value\r\n }\r\n })\r\n } else {\r\n let options = [];\r\n options.push(...this.options);\r\n tempArr = options.map((item) => {\r\n return {\r\n label: item[this.props.label],\r\n value: item[this.props.value]\r\n }\r\n })\r\n }\r\n return tempArr;\r\n }\r\n },\r\n methods: {\r\n handleChange(val) {\r\n this.$emit('change', val);\r\n }\r\n },\r\n watch: {\r\n modelForm(val) {\r\n this.$emit('changes', val);\r\n },\r\n model(val) {\r\n this.modelForm = val;\r\n }\r\n },\r\n}\r\n</script>\r\n<style lang=\"less\" scoped>\r\n.ui-form__item {\r\n display: flex;\r\n align-items: center;\r\n margin-right: 15px;\r\n}\r\n\r\n.ui-item__label {\r\n margin-right: 10px;\r\n font-size: 12px;\r\n width: 70px;\r\n text-align: right;\r\n}\r\n</style>","import Vue from 'vue';\r\nimport ComComponent from './src/index.vue';\r\n\r\ntype SFCWithInstall<T> = T & { install(app: typeof Vue): void }; // vue 安装\r\n\r\n// 安装\r\nComComponent.install = (app: typeof Vue) => {\r\n app.component(ComComponent.name, ComComponent);\r\n};\r\nconst InComComponent: SFCWithInstall<typeof ComComponent> = ComComponent; // 增加类型\r\nexport default InComComponent;","\n<div class=\"ui-operation\">\n <slot></slot>\n</div>\n","<template>\r\n <div class=\"ui-operation\">\r\n <slot></slot>\r\n </div>\r\n</template>\r\n<script>\r\nexport default {\r\n name: 'ComOperation',\r\n prop: {\r\n type: String,\r\n default: 'main'\r\n }\r\n}\r\n</script>\r\n<style lang=\"less\" scoped>\r\n .ui-operation {\r\n padding: 0 10px;\r\n }\r\n</style>","import Vue from 'vue';\r\nimport ComComponent from './src/index.vue';\r\n\r\ntype SFCWithInstall<T> = T & { install(app: typeof Vue): void }; // vue 安装\r\n\r\n// 安装\r\nComComponent.install = (app: typeof Vue) => {\r\n app.component(ComComponent.name, ComComponent);\r\n};\r\nconst InComComponent: SFCWithInstall<typeof ComComponent> = ComComponent; // 增加类型\r\nexport default InComComponent;","\n<div class=\"ui-search\">\n <div class=\"ui-search__main\">\n <slot></slot>\n </div>\n <div class=\"ui-search__footer\">\n <el-button size=\"small\" icon=\"el-icon-refresh\" @click=\"handleReset\">重置</el-button>\n <el-button size=\"small\" icon=\"el-icon-search\" type=\"primary\" @click=\"handleQuery\">查询</el-button>\n </div>\n</div>\n","<template>\r\n <div class=\"ui-search\">\r\n <div class=\"ui-search__main\">\r\n <slot></slot>\r\n </div>\r\n <div class=\"ui-search__footer\">\r\n <el-button size=\"small\" icon=\"el-icon-refresh\" @click=\"handleReset\">重置</el-button>\r\n <el-button size=\"small\" icon=\"el-icon-search\" type=\"primary\" @click=\"handleQuery\">查询</el-button>\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\nexport default {\r\n name: 'ComSearch',\r\n methods: {\r\n handleQuery() {\r\n const queryFn = this.$parent.handleQuery;\r\n if (queryFn) {\r\n queryFn();\r\n } else {\r\n this.$emit('query');\r\n }\r\n },\r\n handleReset() {\r\n const resetFn = this.$parent.handleReset;\r\n if (resetFn) {\r\n resetFn();\r\n } else {\r\n this.$emit('reset');\r\n }\r\n }\r\n }\r\n}\r\n</script>\r\n<style lang=\"less\" scoped>\r\n .ui-search {\r\n margin: 10px 10px 0 10px;\r\n padding: 20px;\r\n // box-shadow: 0 0 5px 2px #e7e7e7;\r\n background-color: #FFF;\r\n border: 1px solid @color-border;\r\n border-radius: 4px;\r\n\r\n &__main {\r\n display: flex;\r\n }\r\n\r\n &__footer {\r\n margin-top: 10px;\r\n }\r\n\r\n /deep/ .ui-form__item {\r\n display: block;\r\n }\r\n\r\n /deep/ .ui-item__label {\r\n width: unset;\r\n text-align: left;\r\n margin-bottom: 5px;\r\n }\r\n }\r\n</style>","import Vue from 'vue';\r\nimport ComComponent from './src/index.vue';\r\n\r\ntype SFCWithInstall<T> = T & { install(app: typeof Vue): void }; // vue 安装\r\n\r\n// 安装\r\nComComponent.install = (app: typeof Vue) => {\r\n app.component(ComComponent.name, ComComponent);\r\n};\r\nconst InComComponent: SFCWithInstall<typeof ComComponent> = ComComponent; // 增加类型\r\nexport default InComComponent;","\r\n/**\r\n * 计算表格高度\r\n * staticNum { number } \r\n * */\r\n export function countTableHeight(staticNum = 0) {\r\n\r\n const pageCountEls = document.querySelectorAll('.ui-page__main:not(.v-leave) > div')\r\n const paginationEl = document.querySelector('.ui-pagination');\r\n \r\n const headerEl = document.querySelector('.ui-container__header');\r\n const tabsEl = document.querySelector('.ui-tabs');\r\n\r\n let tableHeight = staticNum;\r\n tableHeight += paginationEl ? paginationEl.offsetHeight : 0;\r\n tableHeight += headerEl ? headerEl.offsetHeight : 0;\r\n tableHeight += tabsEl ? tabsEl.offsetHeight : 0;\r\n\r\n let userAgent = navigator.userAgent;\r\n for (let i = 0; i < pageCountEls.length; i++) {\r\n\r\n // 获取容器元素\r\n let ele = pageCountEls[i];\r\n if (!ele || ele.className === 'ui-table') continue;\r\n tableHeight += ele.offsetHeight;\r\n\r\n let eleMargin, eleTBMargin;\r\n let eleCss = document.defaultView.getComputedStyle(ele);\r\n if (userAgent.indexOf('Firefox') > -1) {\r\n eleTBMargin = parseInt(eleCss['margin-top']) + parseInt(eleCss['margin-bottom']);\r\n } else if (userAgent.indexOf('compatible') > -1 && userAgent.indexOf(\"MSIE\") > -1 && !(userAgent.indexOf(\"Opera\") > -1)) {\r\n let ieCss = ele.currentStyle;\r\n eleTBMargin = parseInt(ieCss['marginTop']) + parseInt(ieCss['marginBottom']);\r\n } else {\r\n eleMargin = eleCss.margin.split(' ');\r\n\r\n if (eleMargin.length == 1) {\r\n eleTBMargin = parseInt(eleMargin[0]) * 2;\r\n } else {\r\n const [mt, mr, mb, ml] = eleMargin;\r\n eleTBMargin = parseInt(mb) ? parseInt(mt) + parseInt(mb) : parseInt(mt);\r\n }\r\n }\r\n\r\n tableHeight = eleTBMargin + tableHeight;\r\n }\r\n tableHeight = window.innerHeight - tableHeight;\r\n return tableHeight;\r\n }\r\n \r\n // 表格INX\r\n export function autoAddTableInx(inx) {\r\n let i = parseInt(inx) + 1 + '';\r\n let first = '0';\r\n return first.repeat(4 - i.length) + i\r\n }","\n<div class=\"ui-table\">\n <div class=\"ui-table__tab\">\n <slot></slot>\n </div>\n <el-table \n ref=\"myTable\"\n highlightRow\n :border=\"true\"\n :data=\"tableData\"\n :[isBindHeight]=\"tableHeight\"\n :[isBindMaxHeight]=\"maxHeight\"\n @selection-change=\"handleSelectionChange\">\n <el-table-column type=\"selection\" width=\"35\" v-if=\"showSelect\" :selectable=\"selectable\"></el-table-column>\n <el-table-column v-for=\"(item, index) in tableTitle\"\n minWidth=\"60px\"\n :label=\"item\"\n :key=\"tableProps[index]\" \n :prop=\"tableProps[index]\" \n :width=\"tableProps[index] === 'index' ? '60px' : (tableColsWidth[index] || '')\">\n\n <!-- 表头插槽 自定义表头-->\n <template v-slot:header=\"scope\">\n <slot \n :name=\"tableProps[index] + 'Title'\" \n :row=\"item\" \n :$index=\"scope.$index\">\n <span>{{ item }}</span>\n </slot>\n </template>\n\n <!-- 内容插槽 -->\n <template v-slot:default=\"scope\">\n <slot \n :name=\"tableProps[index]\" \n :row=\"scope.row\" \n :$index=\"scope.$index\">\n <span>{{ tableProps[index] === 'index' ? changeTableInx(scope.$index) :\n scope.row[tableProps[index]]\n }}</span>\n </slot>\n </template>\n </el-table-column>\n <template v-slot:empty>\n <div v-if=\"!autoHeight\">\n <el-empty v-show=\"!tableData.length\" description=\"暂无数据\"></el-empty>\n </div>\n </template>\n </el-table>\n <div class=\"ui-pagination\" v-if=\"showPage\">\n <el-pagination ref=\"pageRef\" \n layout=\"total, sizes, prev, pager, next, jumper\"\n :current-page=\"pageData.offset\"\n :page-sizes=\"pageSizes\" \n :page-size=\"pageData.limit\" \n :total=\"pageData.total\"\n @size-change=\"val => handlePageChange('limit', val)\"\n @current-change=\"val => handlePageChange('offset', val)\" >\n </el-pagination>\n </div>\n</div>\n","<template>\r\n <div class=\"ui-table\">\r\n <div class=\"ui-table__tab\">\r\n <slot></slot>\r\n </div>\r\n <el-table \r\n ref=\"myTable\"\r\n highlightRow\r\n :border=\"true\"\r\n :data=\"tableData\"\r\n :[isBindHeight]=\"tableHeight\"\r\n :[isBindMaxHeight]=\"maxHeight\"\r\n @selection-change=\"handleSelectionChange\">\r\n <el-table-column type=\"selection\" width=\"35\" v-if=\"showSelect\" :selectable=\"selectable\"></el-table-column>\r\n <el-table-column v-for=\"(item, index) in tableTitle\"\r\n minWidth=\"60px\"\r\n :label=\"item\"\r\n :key=\"tableProps[index]\" \r\n :prop=\"tableProps[index]\" \r\n :width=\"tableProps[index] === 'index' ? '60px' : (tableColsWidth[index] || '')\">\r\n\r\n <!-- 表头插槽 自定义表头-->\r\n <template v-slot:header=\"scope\">\r\n <slot \r\n :name=\"tableProps[index] + 'Title'\" \r\n :row=\"item\" \r\n :$index=\"scope.$index\">\r\n <span>{{ item }}</span>\r\n </slot>\r\n </template>\r\n\r\n <!-- 内容插槽 -->\r\n <template v-slot:default=\"scope\">\r\n <slot \r\n :name=\"tableProps[index]\" \r\n :row=\"scope.row\" \r\n :$index=\"scope.$index\">\r\n <span>{{ tableProps[index] === 'index' ? changeTableInx(scope.$index) :\r\n scope.row[tableProps[index]]\r\n }}</span>\r\n </slot>\r\n </template>\r\n </el-table-column>\r\n <template v-slot:empty>\r\n <div v-if=\"!autoHeight\">\r\n <el-empty v-show=\"!tableData.length\" description=\"暂无数据\"></el-empty>\r\n </div>\r\n </template>\r\n </el-table>\r\n <div class=\"ui-pagination\" v-if=\"showPage\">\r\n <el-pagination ref=\"pageRef\" \r\n layout=\"total, sizes, prev, pager, next, jumper\"\r\n :current-page=\"pageData.offset\"\r\n :page-sizes=\"pageSizes\" \r\n :page-size=\"pageData.limit\" \r\n :total=\"pageData.total\"\r\n @size-change=\"val => handlePageChange('limit', val)\"\r\n @current-change=\"val => handlePageChange('offset', val)\" >\r\n </el-pagination>\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\nimport { countTableHeight } from '@/utils';\r\nexport default {\r\n name: 'ComTable',\r\n props: {\r\n\r\n // 是否显示勾选框\r\n showSelect: { type: Boolean, default: false },\r\n\r\n // 勾选方法\r\n selectable: { type: Function, default() { return () => { } } },\r\n\r\n // 表格数据\r\n tableData: { type: Array, default() { return [] } },\r\n\r\n // 表头映射\r\n tableMap: { type: Object, default() { return { index: '序号' } } },\r\n\r\n // 列宽度\r\n colsWidth: { type: [Array, Object], default() { return [] } },\r\n\r\n // 分页对象\r\n pageData: { type: Object, default() { return {} } },\r\n\r\n // 是否显示分页\r\n showPage: { type: Boolean, default: true },\r\n\r\n // 固定表格高度\r\n height: { type: String, default: '' },\r\n\r\n // 表格高度自适应\r\n autoHeight: { type: Boolean, default: false },\r\n\r\n // 最大高度 \r\n maxHeight: { type: String, default: '' },\r\n\r\n // 高度占位值 当有特殊情况表格高度需减少指定值\r\n heightStatic: { type: Number, default: 0 }\r\n },\r\n\r\n data() {\r\n return {\r\n pageSizes: [20, 50, 100, 200],\r\n tableHeight: ''\r\n }\r\n },\r\n\r\n computed: {\r\n tableTitle() {\r\n return Object.values(this.tableMap);\r\n },\r\n tableProps() {\r\n return Object.keys(this.tableMap);\r\n },\r\n tableColsWidth() {\r\n if (Array.isArray(this.colsWidth)) {\r\n return this.colsWidth.map(item => `${parseInt(item)}px`);\r\n } else {\r\n return this.tableProps.map(item => this.colsWidth[item] ? `${parseInt(this.colsWidth[item])}px` : '') \r\n }\r\n },\r\n isBindHeight() {\r\n return this.tableHeight ? 'height' : ''\r\n },\r\n isBindMaxHeight() {\r\n return this.maxHeight ? 'max-height' : ''\r\n },\r\n },\r\n methods: {\r\n\r\n changeTableInx(inx) {\r\n let i = parseInt(inx) + 1 + '';\r\n let first = '0';\r\n return first.repeat(4 - i.length) + i\r\n },\r\n\r\n // 刷新表格高度\r\n handleRefreshHeight() {\r\n this.tableHeight = `${countTableHeight() - this.heightStatic}px`;\r\n console.log(this.tableHeight, 'this.tableHeight');\r\n this.$refs['myTable'] && this.$refs['myTable'].doLayout();\r\n },\r\n\r\n // 分页切换\r\n handlePageChange(type = 'offset', val) {\r\n if (type === 'offset') {\r\n if (this.tempSize > this.pageData.total && this.pageData.offset > 1) return;\r\n this.$emit('pageChange', type, val);\r\n } else {\r\n this.tempSize = val;\r\n this.$emit('pageChange', type, val)\r\n }\r\n },\r\n\r\n // 勾选\r\n handleSelectionChange(val) {\r\n this.$emit('selectionChange', val);\r\n }\r\n },\r\n async mounted() {\r\n\r\n // 没设置表格高度 高度根据屏幕高度适应\r\n if (!this.autoHeight && !this.height) {\r\n await this.$nextTick();\r\n this.handleRefreshHeight();\r\n\r\n window.addEventListener('resize', this.handleRefreshHeight);\r\n } else if (this.height) {\r\n this.tableHeight = this.height;\r\n this.$refs['myTable'] && this.$refs['myTable'].doLayout();\r\n }\r\n },\r\n beforeDestroy() {\r\n window.removeEventListener('resize', this.handleRefreshHeight);\r\n }\r\n}\r\n</script>\r\n<style lang=\"less\" scoped>\r\n\r\n .ui-table {\r\n padding: 0 10px;\r\n }\r\n\r\n .el-table {\r\n \r\n\r\n /deep/ .el-table__body {\r\n ::-webkit-scrollbar {\r\n width: 4px;\r\n background-color: #e4e4e5;\r\n }\r\n\r\n ::-webkit-scrollbar-thumb {\r\n border-radius: 4px;\r\n background-color: @theme-color;\r\n }\r\n }\r\n }\r\n\r\n .ui-pagination {\r\n text-align: center;\r\n padding: 10px 0;\r\n }\r\n</style>","import Vue from 'vue';\r\nimport ComComponent from './src/index.vue';\r\n\r\ntype SFCWithInstall<T> = T & { install(app: typeof Vue): void }; // vue 安装\r\n\r\n// 安装\r\nComComponent.install = (app: typeof Vue) => {\r\n app.component(ComComponent.name, ComComponent);\r\n};\r\nconst InComComponent: SFCWithInstall<typeof ComComponent> = ComComponent; // 增加类型\r\nexport default InComComponent;","import ComTemplate from '../packages/template';\r\nimport ComMenu from '../packages/menu';\r\nimport ComTabs from '../packages/tabs';\r\nimport ComTool from '../packages/tool';\r\nimport ComDialog from '../packages/dialog';\r\nimport ComFormItem from '../packages/form-item';\r\nimport ComOperation from '../packages/operation';\r\nimport ComSearch from '../packages/search';\r\nimport ComTable from '../packages/table';\r\n\r\n\r\nconst components:any[] = [\r\n ComTemplate,\r\n ComMenu,\r\n ComTabs,\r\n ComTool,\r\n ComDialog,\r\n ComFormItem,\r\n ComOperation,\r\n ComSearch,\r\n ComTable\r\n];\r\n\r\n/**\r\n * @param { App }\r\n * @returns { Void }\r\n */\r\nconst install = (Vue:any, ops:any = { config: {} }) => {\r\n components.forEach(component => Vue.component(component.name, component));\r\n\r\n // 注册组件时可以带入UI库配置\r\n Vue.prototype.$UICONFIG = ops.config;\r\n}\r\n\r\n\r\nconst defaultConfig = {\r\n version: 'dev',\r\n install,\r\n ComTemplate,\r\n ComMenu,\r\n ComTabs,\r\n ComTool,\r\n ComDialog,\r\n ComFormItem,\r\n ComOperation,\r\n ComSearch,\r\n ComTable\r\n};\r\n\r\ntry {\r\n defaultConfig.version = require('../package.json').version;\r\n} catch(e) {\r\n console.log('no require');\r\n}\r\n\r\nexport default defaultConfig;"],"names":["render","staticRenderFns","ComComponent","InComComponent","ComTemplate","ComMenu","ComTabs","ComTool","ComDialog","ComFormItem","ComOperation","ComSearch","ComTable"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- (function(s,a){typeof exports=="object"&&typeof module!="undefined"?module.exports=a():typeof define=="function"&&define.amd?define(a):(s=typeof globalThis!="undefined"?globalThis:s||self,s["tenghui-ui"]=a())})(this,function(){"use strict";var s=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"ui-template"},[r("h1",[e._v(e._s(e.msg))])])},a=[],F="";function h(e,t,r,y,_,c,p,R){var n=typeof e=="function"?e.options:e;t&&(n.render=t,n.staticRenderFns=r,n._compiled=!0),y&&(n.functional=!0),c&&(n._scopeId="data-v-"+c);var i;if(p?(i=function(o){o=o||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!o&&typeof __VUE_SSR_CONTEXT__!="undefined"&&(o=__VUE_SSR_CONTEXT__),_&&_.call(this,o),o&&o._registeredComponents&&o._registeredComponents.add(p)},n._ssrRegister=i):_&&(i=R?function(){_.call(this,(n.functional?this.parent:this).$root.$options.shadowRoot)}:_),i)if(n.functional){n._injectStyles=i;var b=n.render;n.render=function(E,m){return i.call(m),b(E,m)}}else{var v=n.beforeCreate;n.beforeCreate=v?[].concat(v,i):[i]}return{exports:e,options:n}}const C={name:"ComTemplate",data(){return{msg:"\u6D4B\u8BD5\u7EC4\u4EF6"}},methods:{}},l={};var g=h(C,s,a,!1,T,"1f6eab87",null,null);function T(e){for(let t in l)this[t]=l[t]}var f=function(){return g.exports}();f.install=e=>{e.component(f.name,f)};const u=f,$=[u],d={version:"dev",install:(e,t={config:{}})=>{$.forEach(r=>e.component(r.name,r)),e.prototype.$UICONFIG=t.config},ComTemplate:u};try{d.version=require("../package.json").version}catch{console.log("no require")}return d});
1
+ (function(m,h){typeof exports=="object"&&typeof module!="undefined"?module.exports=h():typeof define=="function"&&define.amd?define(h):(m=typeof globalThis!="undefined"?globalThis:m||self,m["tenghui-ui"]=h())})(this,function(){"use strict";var m=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"ui-template"},[t("h1",[e._v(e._s(e.msg))]),t("el-table",{staticStyle:{width:"100%"},attrs:{data:e.tableData}},[t("el-table-column",{attrs:{prop:"date",label:"\u65E5\u671F",width:"180"}}),t("el-table-column",{attrs:{prop:"name",label:"\u59D3\u540D",width:"180"}}),t("el-table-column",{attrs:{prop:"address",label:"\u5730\u5740"}})],1)],1)},h=[],Ae="";function c(e,n,t,a,l,o,d,u){var s=typeof e=="function"?e.options:e;n&&(s.render=n,s.staticRenderFns=t,s._compiled=!0),a&&(s.functional=!0),o&&(s._scopeId="data-v-"+o);var i;if(d?(i=function(r){r=r||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!r&&typeof __VUE_SSR_CONTEXT__!="undefined"&&(r=__VUE_SSR_CONTEXT__),l&&l.call(this,r),r&&r._registeredComponents&&r._registeredComponents.add(d)},s._ssrRegister=i):l&&(i=u?function(){l.call(this,(s.functional?this.parent:this).$root.$options.shadowRoot)}:l),i)if(s.functional){s._injectStyles=i;var p=s.render;s.render=function(Q,f){return i.call(f),p(Q,f)}}else{var _=s.beforeCreate;s.beforeCreate=_?[].concat(_,i):[i]}return{exports:e,options:s}}const U={name:"ComTemplate",data(){return{msg:"\u6D4B\u8BD5\u7EC4\u4EF611111",tableData:[{date:"2016-05-02",name:"\u738B\u5C0F\u864E",address:"\u4E0A\u6D77\u5E02\u666E\u9640\u533A\u91D1\u6C99\u6C5F\u8DEF 1518 \u5F04"},{date:"2016-05-04",name:"\u738B\u5C0F\u864E",address:"\u4E0A\u6D77\u5E02\u666E\u9640\u533A\u91D1\u6C99\u6C5F\u8DEF 1517 \u5F04"},{date:"2016-05-01",name:"\u738B\u5C0F\u864E",address:"\u4E0A\u6D77\u5E02\u666E\u9640\u533A\u91D1\u6C99\u6C5F\u8DEF 1519 \u5F04"},{date:"2016-05-03",name:"\u738B\u5C0F\u864E",address:"\u4E0A\u6D77\u5E02\u666E\u9640\u533A\u91D1\u6C99\u6C5F\u8DEF 1516 \u5F04"}]}},methods:{}},F={};var J=c(U,m,h,!1,V,"183fe45a",null,null);function V(e){for(let n in F)this[n]=F[n]}var v=function(){return J.exports}();v.install=e=>{e.component(v.name,v)};const T=v;var X=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("el-menu",{attrs:{mode:"horizontal","background-color":"#545c64","text-color":"#ccc","active-text-color":"#FFF","menu-trigger":"hover","default-active":e.$route.path},on:{select:e.handleJump}},[e._l(e.data,function(a,l){return[a.children?t("el-submenu",{attrs:{index:a.path||a.name}},[t("template",{slot:"title"},[t("i",{staticClass:"icon-chanpinguanli-chanpinliebiao"}),t("span",[e._v(e._s(a.name))])]),e._l(a.children,function(o,d){return[o.children?t("el-submenu",{attrs:{index:o.path||o.name}},[t("template",{slot:"title"},[e._v(e._s(o.name))]),e._l(o.children,function(u,s){return t("el-menu-item",{key:u.name,attrs:{index:u.path||u.name}},[e._v(e._s(u.name))])})],2):t("el-menu-item",{attrs:{index:o.path||o.name}},[e._v(e._s(o.name))])]})],2):t("el-menu-item",{attrs:{index:a.path||a.name}},[t("i",{staticClass:"el-icon-menu"}),t("span",{attrs:{slot:"title"},slot:"title"},[e._v(e._s(a.name))])])]})],2)},G=[],De="";const K={name:"ComMenu",props:{data:{type:Array,default(){return[]}}},data(){return{}},computed:{},methods:{handleJump(e){this.$emit("jump",e)}}},H={};var Y=c(K,X,G,!1,Z,"1a7163e6",null,null);function Z(e){for(let n in H)this[n]=H[n]}var g=function(){return Y.exports}();g.install=e=>{e.component(g.name,g)};const I=g;var ee=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"ui-tabs"},[t("ul",{staticClass:"clear-fix"},e._l(e.data,function(a){return t("li",{staticClass:"ui-tabs__item",class:{"ui-tabs__item--active":e.currentTab.path===a.path},on:{click:function(l){return e.handleToggle(a.path)}}},[t("span",[e._v(e._s(a.name))]),t("span",{staticClass:"el-icon-error"})])}),0)])},te=[],Pe="";const ne={name:"ComTabs",props:{data:{type:Array,default(){return[]}},currentTab:{type:Object,default(){return{}}}},data(){return{}},methods:{handleToggle(e){this.$emit("toggle",e)}}},k={};var ae=c(ne,ee,te,!1,oe,"65888dc2",null,null);function oe(e){for(let n in k)this[n]=k[n]}var b=function(){return ae.exports}();b.install=e=>{e.component(b.name,b)};const O=b;var le=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("el-dropdown",[t("span",{staticClass:"el-dropdown-link"},[t("i",{staticClass:"el-icon-s-tools"})]),t("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[t("el-dropdown-item",{attrs:{icon:"icon-tuichudenglu"},on:{click:function(a){return e.handleOperation("outLogin")}}},[e._v("\u9000\u51FA\u767B\u5F55")])],1)],1)},se=[],Be="";const re={name:"ComTool",methods:{handleOperation(e){switch(e){case"outLogin":this.$confirm("\u786E\u8BA4\u9000\u51FA\u767B\u5F55?","\u63D0\u793A",{type:"warning"}).then(()=>{console.log("out login")});break}}}},R={};var ie=c(re,le,se,!1,ue,"b586e068",null,null);function ue(e){for(let n in R)this[n]=R[n]}var y=function(){return ie.exports}();y.install=e=>{e.component(y.name,y)};const j=y;var ce=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("el-dialog",{attrs:{"append-to-body":"",top:e.top,title:e.title,visible:e.visible,width:e.width},on:{close:e.handleClose},scopedSlots:e._u([{key:"footer",fn:function(){return[e._t("footer",[t("el-button",{attrs:{size:"small"},on:{click:function(a){return e.$emit("update:visible",!1)}}},[e._v("\u53D6\u6D88")]),t("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.handleConfirm}},[e._v("\u786E\u5B9A")])])]},proxy:!0}],null,!0)},[e._t("default")],2)},de=[],We="";const pe={name:"ComDialog",props:{visible:{type:Boolean,default:!1},title:{type:String,default:"\u6807\u9898"},width:{type:String,default:"600px"},top:{type:String,default:"50px"}},data(){return{show:!1}},methods:{handleClose(){this.$emit("close"),this.$emit("update:visible",!1)},handleConfirm(){this.$emit("confirm")}}},z={};var _e=c(pe,ce,de,!1,me,"613d84c4",null,null);function me(e){for(let n in z)this[n]=z[n]}var $=function(){return _e.exports}();$.install=e=>{e.component($.name,$)};const M=$;var he=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"ui-form__item"},[t("div",[e._t("label",[e.label?t("div",{staticClass:"ui-item__label"},[t("span",[e._v(e._s(e.label))])]):e._e()])],2),t("div",{staticClass:"ui-item__main"},[e.type==="input"?[t("el-input",{attrs:{size:"small",placeholder:e.placeholder,disabled:e.readonly,maxlength:e.maxlength},model:{value:e.modelForm,callback:function(a){e.modelForm=a},expression:"modelForm"}})]:e.type==="select"?[t("el-select",{attrs:{size:"small",placeholder:e.placeholder||"\u8BF7\u9009\u62E9",multiple:e.multiple,disabled:e.readonly,filterable:"",clearable:""},model:{value:e.modelForm,callback:function(a){e.modelForm=a},expression:"modelForm"}},e._l(e.selectOption,function(a){return t("el-option",{key:a.value,attrs:{value:a.value.toString(),label:a.label}})}),1)]:e.type==="textarea"?[t("el-input",{attrs:{size:"small",type:"textarea",placeholder:e.placeholder||"\u8BF7\u8F93\u5165",rows:4,disabled:e.readonly},model:{value:e.modelForm,callback:function(a){e.modelForm=a},expression:"modelForm"}})]:e.type==="input-number"?[t("el-input-number",{attrs:{size:"small","controls-position":"right"},model:{value:e.modelForm,callback:function(a){e.modelForm=a},expression:"modelForm"}})]:e.type==="cascader"?[t("el-cascader",{attrs:{size:"small",options:e.options,props:e.props},on:{change:e.handleChange},model:{value:e.modelForm,callback:function(a){e.modelForm=a},expression:"modelForm"}})]:e._e()],2)])},fe=[],qe="";const ve={name:"ComFormItem",model:{prop:"model",event:"changes"},props:{model:void 0,type:{type:String,default:"input"},label:{type:String,default:""},readonly:{type:Boolean,default:!1},placeholder:{type:String,default:""},maxlength:{type:[Array,String],default:""},multiple:{type:Boolean,default:!1},options:{type:[Object,Array],default(){return{"1":"\u9009\u9879\u4E00","2":"\u9009\u9879\u4E8C"}}},props:{type:Object,default(){return{value:"value",label:"label"}}}},data(){return{modelForm:this.model}},computed:{selectOption(){let e=[];if(Array.isArray(this.options)&&this.options.length&&this.options[0][this.props.label]===void 0){const{label:n,value:t}=this.props;e=this.options.map((a,l)=>{const o={label:a,value:l};return{label:o[n],value:o[t]}})}else if(!Array.isArray(this.options))e=Object.entries(this.options).map(([n,t])=>({label:t,value:n}));else{let n=[];n.push(...this.options),e=n.map(t=>({label:t[this.props.label],value:t[this.props.value]}))}return e}},methods:{handleChange(e){this.$emit("change",e)}},watch:{modelForm(e){this.$emit("changes",e)},model(e){this.modelForm=e}}},E={};var ge=c(ve,he,fe,!1,be,"07b0bd64",null,null);function be(e){for(let n in E)this[n]=E[n]}var C=function(){return ge.exports}();C.install=e=>{e.component(C.name,C)};const A=C;var ye=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"ui-operation"},[e._t("default")],2)},$e=[],Le="";const Ce={name:"ComOperation",prop:{type:String,default:"main"}},D={};var xe=c(Ce,ye,$e,!1,Se,"3c6cb9f6",null,null);function Se(e){for(let n in D)this[n]=D[n]}var x=function(){return xe.exports}();x.install=e=>{e.component(x.name,x)};const P=x;var we=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"ui-search"},[t("div",{staticClass:"ui-search__main"},[e._t("default")],2),t("div",{staticClass:"ui-search__footer"},[t("el-button",{attrs:{size:"small",icon:"el-icon-refresh"},on:{click:e.handleReset}},[e._v("\u91CD\u7F6E")]),t("el-button",{attrs:{size:"small",icon:"el-icon-search",type:"primary"},on:{click:e.handleQuery}},[e._v("\u67E5\u8BE2")])],1)])},Fe=[],Ne="";const Te={name:"ComSearch",methods:{handleQuery(){const e=this.$parent.handleQuery;e?e():this.$emit("query")},handleReset(){const e=this.$parent.handleReset;e?e():this.$emit("reset")}}},B={};var He=c(Te,we,Fe,!1,Ie,"07c7d454",null,null);function Ie(e){for(let n in B)this[n]=B[n]}var S=function(){return He.exports}();S.install=e=>{e.component(S.name,S)};const W=S;function ke(e=0){const n=document.querySelectorAll(".ui-page__main:not(.v-leave) > div"),t=document.querySelector(".ui-pagination"),a=document.querySelector(".ui-container__header"),l=document.querySelector(".ui-tabs");let o=e;o+=t?t.offsetHeight:0,o+=a?a.offsetHeight:0,o+=l?l.offsetHeight:0;let d=navigator.userAgent;for(let u=0;u<n.length;u++){let s=n[u];if(!s||s.className==="ui-table")continue;o+=s.offsetHeight;let i,p,_=document.defaultView.getComputedStyle(s);if(d.indexOf("Firefox")>-1)p=parseInt(_["margin-top"])+parseInt(_["margin-bottom"]);else if(d.indexOf("compatible")>-1&&d.indexOf("MSIE")>-1&&!(d.indexOf("Opera")>-1)){let r=s.currentStyle;p=parseInt(r.marginTop)+parseInt(r.marginBottom)}else if(i=_.margin.split(" "),i.length==1)p=parseInt(i[0])*2;else{const[r,Q,f,Je]=i;p=parseInt(f)?parseInt(r)+parseInt(f):parseInt(r)}o=p+o}return o=window.innerHeight-o,o}var Oe=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"ui-table"},[t("div",{staticClass:"ui-table__tab"},[e._t("default")],2),t("el-table",e._b({ref:"myTable",attrs:{highlightRow:"",border:!0,data:e.tableData},on:{"selection-change":e.handleSelectionChange},scopedSlots:e._u([{key:"empty",fn:function(){return[e.autoHeight?e._e():t("div",[t("el-empty",{directives:[{name:"show",rawName:"v-show",value:!e.tableData.length,expression:"!tableData.length"}],attrs:{description:"\u6682\u65E0\u6570\u636E"}})],1)]},proxy:!0}])},"el-table",e._d({},[e.isBindHeight,e.tableHeight,e.isBindMaxHeight,e.maxHeight])),[e.showSelect?t("el-table-column",{attrs:{type:"selection",width:"35",selectable:e.selectable}}):e._e(),e._l(e.tableTitle,function(a,l){return t("el-table-column",{key:e.tableProps[l],attrs:{minWidth:"60px",label:a,prop:e.tableProps[l],width:e.tableProps[l]==="index"?"60px":e.tableColsWidth[l]||""},scopedSlots:e._u([{key:"header",fn:function(o){return[e._t(e.tableProps[l]+"Title",[t("span",[e._v(e._s(a))])],{row:a,$index:o.$index})]}},{key:"default",fn:function(o){return[e._t(e.tableProps[l],[t("span",[e._v(e._s(e.tableProps[l]==="index"?e.changeTableInx(o.$index):o.row[e.tableProps[l]]))])],{row:o.row,$index:o.$index})]}}],null,!0)})})],2),e.showPage?t("div",{staticClass:"ui-pagination"},[t("el-pagination",{ref:"pageRef",attrs:{layout:"total, sizes, prev, pager, next, jumper","current-page":e.pageData.offset,"page-sizes":e.pageSizes,"page-size":e.pageData.limit,total:e.pageData.total},on:{"size-change":function(a){return e.handlePageChange("limit",a)},"current-change":function(a){return e.handlePageChange("offset",a)}}})],1):e._e()],1)},Re=[],Qe="";const je={name:"ComTable",props:{showSelect:{type:Boolean,default:!1},selectable:{type:Function,default(){return()=>{}}},tableData:{type:Array,default(){return[]}},tableMap:{type:Object,default(){return{index:"\u5E8F\u53F7"}}},colsWidth:{type:[Array,Object],default(){return[]}},pageData:{type:Object,default(){return{}}},showPage:{type:Boolean,default:!0},height:{type:String,default:""},autoHeight:{type:Boolean,default:!1},maxHeight:{type:String,default:""},heightStatic:{type:Number,default:0}},data(){return{pageSizes:[20,50,100,200],tableHeight:""}},computed:{tableTitle(){return Object.values(this.tableMap)},tableProps(){return Object.keys(this.tableMap)},tableColsWidth(){return Array.isArray(this.colsWidth)?this.colsWidth.map(e=>`${parseInt(e)}px`):this.tableProps.map(e=>this.colsWidth[e]?`${parseInt(this.colsWidth[e])}px`:"")},isBindHeight(){return this.tableHeight?"height":""},isBindMaxHeight(){return this.maxHeight?"max-height":""}},methods:{changeTableInx(e){let n=parseInt(e)+1+"";return"0".repeat(4-n.length)+n},handleRefreshHeight(){this.tableHeight=`${ke()-this.heightStatic}px`,console.log(this.tableHeight,"this.tableHeight"),this.$refs.myTable&&this.$refs.myTable.doLayout()},handlePageChange(e="offset",n){if(e==="offset"){if(this.tempSize>this.pageData.total&&this.pageData.offset>1)return;this.$emit("pageChange",e,n)}else this.tempSize=n,this.$emit("pageChange",e,n)},handleSelectionChange(e){this.$emit("selectionChange",e)}},async mounted(){!this.autoHeight&&!this.height?(await this.$nextTick(),this.handleRefreshHeight(),window.addEventListener("resize",this.handleRefreshHeight)):this.height&&(this.tableHeight=this.height,this.$refs.myTable&&this.$refs.myTable.doLayout())},beforeDestroy(){window.removeEventListener("resize",this.handleRefreshHeight)}},q={};var ze=c(je,Oe,Re,!1,Me,"54b3bd8e",null,null);function Me(e){for(let n in q)this[n]=q[n]}var w=function(){return ze.exports}();w.install=e=>{e.component(w.name,w)};const L=w,Ee=[T,I,O,j,M,A,P,W,L],N={version:"dev",install:(e,n={config:{}})=>{Ee.forEach(t=>e.component(t.name,t)),e.prototype.$UICONFIG=n.config},ComTemplate:T,ComMenu:I,ComTabs:O,ComTool:j,ComDialog:M,ComFormItem:A,ComOperation:P,ComSearch:W,ComTable:L};try{N.version=require("../package.json").version}catch{console.log("no require")}return N});
2
2
  //# sourceMappingURL=tenghui-ui.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tenghui-ui.umd.js","sources":["../packages/template/src/index.vue?vue&type=template&lang.js","../packages/template/src/index.vue","../packages/template/index.ts","../src/main.ts"],"sourcesContent":["\n<div class=\"ui-template\">\n <h1>{{msg}}</h1>\n</div>\n","<template>\r\n <div class=\"ui-template\">\r\n <h1>{{msg}}</h1>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n export default {\r\n name: \"ComTemplate\",\r\n data() {\r\n return {\r\n msg: '测试组件'\r\n }\r\n },\r\n methods: {\r\n }\r\n }\r\n</script>\r\n\r\n<style scoped>\r\n</style>","import Vue from 'vue';\r\nimport ComTemplate from './src/index.vue';\r\n\r\ntype SFCWithInstall<T> = T & { install(app: typeof Vue): void }; // vue 安装\r\n\r\n// 安装\r\nComTemplate.install = (app: typeof Vue) => {\r\n app.component(ComTemplate.name, ComTemplate);\r\n};\r\nconst InComTemplate: SFCWithInstall<typeof ComTemplate> = ComTemplate; // 增加类型\r\nexport default InComTemplate;","import ComTemplate from '../packages/template';\r\n\r\n\r\nconst components:any[] = [\r\n ComTemplate\r\n];\r\n\r\n/**\r\n * @param { App }\r\n * @returns { Void }\r\n */\r\nconst install = (Vue:any, ops:any = { config: {} }) => {\r\n components.forEach(component => Vue.component(component.name, component));\r\n\r\n // 注册组件时可以带入UI库配置\r\n Vue.prototype.$UICONFIG = ops.config;\r\n}\r\n\r\n\r\nconst defaultConfig = {\r\n version: 'dev',\r\n install,\r\n ComTemplate,\r\n};\r\n\r\ntry {\r\n defaultConfig.version = require('../package.json').version;\r\n} catch(e) {\r\n console.log('no require');\r\n}\r\n\r\nexport default defaultConfig;"],"names":["ComTemplate"],"mappings":"gPAAA,GAAI,GAAS,UAAY,CAAC,GAAI,GAAI,KAAS,EAAG,EAAI,eAAmB,EAAG,EAAI,MAAM,IAAI,EAAG,MAAO,GAAG,MAAM,CAAC,YAAY,eAAe,CAAC,EAAG,KAAK,CAAC,EAAI,GAAG,EAAI,GAAG,EAAI,WAC7J,EAAkB,mvBCMtB,oNCDA,EAAY,QAAU,AAAC,GAAoB,GACnC,UAAU,EAAY,KAAM,IAEpC,KAAM,GAAoD,ECNpD,EAAmB,CACrBA,GAeE,EAAgB,CAClB,QAAS,MACT,QAVY,CAAC,EAAS,EAAU,CAAE,OAAQ,MAAS,GACxC,QAAQ,GAAa,EAAI,UAAU,EAAU,KAAM,MAG1D,UAAU,UAAY,EAAI,oBAO9BA,GAGJ,GAAI,GACc,QAAU,QAAQ,mBAAmB,sBAE3C,IAAI"}
1
+ {"version":3,"file":"tenghui-ui.umd.js","sources":["../packages/template/src/index.vue?vue&type=template&lang.js","../packages/template/src/index.vue","../packages/template/index.ts","../packages/menu/src/index.vue?vue&type=template&lang.js","../packages/menu/src/index.vue","../packages/menu/index.ts","../packages/tabs/src/index.vue?vue&type=template&lang.js","../packages/tabs/src/index.vue","../packages/tabs/index.ts","../packages/tool/src/index.vue?vue&type=template&lang.js","../packages/tool/src/index.vue","../packages/tool/index.ts","../packages/dialog/src/index.vue?vue&type=template&lang.js","../packages/dialog/src/index.vue","../packages/dialog/index.ts","../packages/form-item/src/index.vue?vue&type=template&lang.js","../packages/form-item/src/index.vue","../packages/form-item/index.ts","../packages/operation/src/index.vue?vue&type=template&lang.js","../packages/operation/src/index.vue","../packages/operation/index.ts","../packages/search/src/index.vue?vue&type=template&lang.js","../packages/search/src/index.vue","../packages/search/index.ts","../utils/index.ts","../packages/table/src/index.vue?vue&type=template&lang.js","../packages/table/src/index.vue","../packages/table/index.ts","../src/main.ts"],"sourcesContent":["\n<div class=\"ui-template\">\n <h1>{{ msg }}</h1>\n <el-table :data=\"tableData\" style=\"width: 100%\">\n <el-table-column prop=\"date\" label=\"日期\" width=\"180\">\n </el-table-column>\n <el-table-column prop=\"name\" label=\"姓名\" width=\"180\">\n </el-table-column>\n <el-table-column prop=\"address\" label=\"地址\">\n </el-table-column>\n </el-table>\n</div>\n","<template>\r\n <div class=\"ui-template\">\r\n <h1>{{ msg }}</h1>\r\n <el-table :data=\"tableData\" style=\"width: 100%\">\r\n <el-table-column prop=\"date\" label=\"日期\" width=\"180\">\r\n </el-table-column>\r\n <el-table-column prop=\"name\" label=\"姓名\" width=\"180\">\r\n </el-table-column>\r\n <el-table-column prop=\"address\" label=\"地址\">\r\n </el-table-column>\r\n </el-table>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: \"ComTemplate\",\r\n data() {\r\n return {\r\n msg: '测试组件11111',\r\n tableData: [{\r\n date: '2016-05-02',\r\n name: '王小虎',\r\n address: '上海市普陀区金沙江路 1518 弄'\r\n }, {\r\n date: '2016-05-04',\r\n name: '王小虎',\r\n address: '上海市普陀区金沙江路 1517 弄'\r\n }, {\r\n date: '2016-05-01',\r\n name: '王小虎',\r\n address: '上海市普陀区金沙江路 1519 弄'\r\n }, {\r\n date: '2016-05-03',\r\n name: '王小虎',\r\n address: '上海市普陀区金沙江路 1516 弄'\r\n }]\r\n }\r\n },\r\n methods: {\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>","import Vue from 'vue';\r\nimport ComTemplate from './src/index.vue';\r\n\r\ntype SFCWithInstall<T> = T & { install(app: typeof Vue): void }; // vue 安装\r\n\r\n// 安装\r\nComTemplate.install = (app: typeof Vue) => {\r\n app.component(ComTemplate.name, ComTemplate);\r\n};\r\nconst InComTemplate: SFCWithInstall<typeof ComTemplate> = ComTemplate; // 增加类型\r\nexport default InComTemplate;","\n<el-menu \n mode=\"horizontal\"\n background-color=\"#545c64\"\n text-color=\"#ccc\"\n active-text-color=\"#FFF\"\n menu-trigger=\"hover\"\n :default-active=\"$route.path\"\n @select=\"handleJump\">\n <template v-for=\"(item, index) in data\">\n <el-submenu v-if=\"item.children\" :index=\"item.path || item.name\">\n <template slot=\"title\">\n <i class=\"icon-chanpinguanli-chanpinliebiao\"></i>\n <span>{{item.name}}</span>\n </template>\n <template v-for=\"(_item, _index) in item.children\">\n <el-submenu v-if=\"_item.children\" \n :index=\"_item.path || _item.name\">\n <template slot=\"title\">{{_item.name}}</template>\n <el-menu-item v-for=\"(__item, __index) in _item.children\" \n :key=\"__item.name\" \n :index=\"__item.path || __item.name\">{{__item.name}}</el-menu-item>\n </el-submenu>\n <el-menu-item v-else :index=\"_item.path || _item.name\">{{_item.name}}</el-menu-item>\n </template>\n </el-submenu>\n <el-menu-item v-else :index=\"item.path || item.name\">\n <i class=\"el-icon-menu\"></i>\n <span slot=\"title\">{{item.name}}</span>\n </el-menu-item>\n </template>\n</el-menu>\n","<template>\r\n <el-menu \r\n mode=\"horizontal\"\r\n background-color=\"#545c64\"\r\n text-color=\"#ccc\"\r\n active-text-color=\"#FFF\"\r\n menu-trigger=\"hover\"\r\n :default-active=\"$route.path\"\r\n @select=\"handleJump\">\r\n <template v-for=\"(item, index) in data\">\r\n <el-submenu v-if=\"item.children\" :index=\"item.path || item.name\">\r\n <template slot=\"title\">\r\n <i class=\"icon-chanpinguanli-chanpinliebiao\"></i>\r\n <span>{{item.name}}</span>\r\n </template>\r\n <template v-for=\"(_item, _index) in item.children\">\r\n <el-submenu v-if=\"_item.children\" \r\n :index=\"_item.path || _item.name\">\r\n <template slot=\"title\">{{_item.name}}</template>\r\n <el-menu-item v-for=\"(__item, __index) in _item.children\" \r\n :key=\"__item.name\" \r\n :index=\"__item.path || __item.name\">{{__item.name}}</el-menu-item>\r\n </el-submenu>\r\n <el-menu-item v-else :index=\"_item.path || _item.name\">{{_item.name}}</el-menu-item>\r\n </template>\r\n </el-submenu>\r\n <el-menu-item v-else :index=\"item.path || item.name\">\r\n <i class=\"el-icon-menu\"></i>\r\n <span slot=\"title\">{{item.name}}</span>\r\n </el-menu-item>\r\n </template>\r\n </el-menu>\r\n</template>\r\n<script>\r\n\r\nexport default {\r\n name: 'ComMenu',\r\n props: {\r\n data: {\r\n type: Array,\r\n default() {\r\n return []\r\n }\r\n }\r\n },\r\n data() {\r\n return {\r\n \r\n }\r\n },\r\n computed: {\r\n \r\n },\r\n methods: {\r\n handleJump(path) {\r\n this.$emit('jump', path);\r\n }\r\n }\r\n}\r\n</script>\r\n<style lang=\"less\" scoped>\r\n .el-menu {\r\n width: 100%;\r\n height: 60px !important;\r\n }\r\n\r\n .el-submenu .el-menu-item {\r\n min-width: unset;\r\n }\r\n\r\n .el-submenu__title i {\r\n color: unset;\r\n }\r\n</style>","import Vue from 'vue';\r\nimport ComComponent from './src/index.vue';\r\n\r\ntype SFCWithInstall<T> = T & { install(app: typeof Vue): void }; // vue 安装\r\n\r\n// 安装\r\nComComponent.install = (app: typeof Vue) => {\r\n app.component(ComComponent.name, ComComponent);\r\n};\r\nconst InComComponent: SFCWithInstall<typeof ComComponent> = ComComponent; // 增加类型\r\nexport default InComComponent;","\n<div class=\"ui-tabs\">\n <ul class=\"clear-fix\">\n <li class=\"ui-tabs__item\" v-for=\"item in data\" :class=\"{ 'ui-tabs__item--active': currentTab.path === item.path }\" \n @click=\"handleToggle(item.path)\">\n <span>{{item.name}}</span>\n <span class=\"el-icon-error\"></span>\n </li>\n </ul>\n</div>\n","<template>\r\n <div class=\"ui-tabs\">\r\n <ul class=\"clear-fix\">\r\n <li class=\"ui-tabs__item\" v-for=\"item in data\" :class=\"{ 'ui-tabs__item--active': currentTab.path === item.path }\" \r\n @click=\"handleToggle(item.path)\">\r\n <span>{{item.name}}</span>\r\n <span class=\"el-icon-error\"></span>\r\n </li>\r\n </ul>\r\n </div>\r\n</template>\r\n<script>\r\nexport default {\r\n name: 'ComTabs',\r\n props: {\r\n data: {\r\n type: Array,\r\n default() {\r\n return []\r\n }\r\n },\r\n currentTab: {\r\n type: Object,\r\n default() {\r\n return {}\r\n }\r\n }\r\n },\r\n data() {\r\n return {\r\n\r\n }\r\n },\r\n methods: {\r\n handleToggle(path) {\r\n this.$emit('toggle', path);\r\n }\r\n }\r\n}\r\n</script>\r\n<style lang=\"less\" scoped>\r\n\r\n .ui-tabs {\r\n\r\n border-bottom: 1px solid @color-border;\r\n padding: 0 10px;\r\n height: 40px;\r\n background-color: #FFF;\r\n \r\n &__item {\r\n float: left;\r\n height: 31px;\r\n border-radius: 6px 6px 0 0;\r\n border: 1px solid @color-border;\r\n margin-top: 10px;\r\n box-sizing: border-box;\r\n font-size: 12px;\r\n line-height: 30px;\r\n padding: 0 10px;\r\n color: @color-f4;\r\n cursor: pointer;\r\n border-bottom-color: #FFF;\r\n margin-right: 1px;\r\n position: relative;\r\n transition: all .1s linear;\r\n\r\n &:hover {\r\n .el-icon-error {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n .el-icon-error {\r\n position: absolute;\r\n right: 2px;\r\n top: 50%;\r\n margin-top: -5px;\r\n opacity: 0;\r\n transition: all .1s linear;\r\n\r\n &:hover {\r\n color: @theme-color2;\r\n }\r\n }\r\n\r\n &--active {\r\n color: @theme-color2;\r\n padding-right: 20px;\r\n\r\n .el-icon-error {\r\n top: 50%;\r\n right: 5px;\r\n font-size: 14px;\r\n margin-top: -5px;\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n }\r\n</style>","import Vue from 'vue';\r\nimport ComComponent from './src/index.vue';\r\n\r\ntype SFCWithInstall<T> = T & { install(app: typeof Vue): void }; // vue 安装\r\n\r\n// 安装\r\nComComponent.install = (app: typeof Vue) => {\r\n app.component(ComComponent.name, ComComponent);\r\n};\r\nconst InComComponent: SFCWithInstall<typeof ComComponent> = ComComponent; // 增加类型\r\nexport default InComComponent;","\n<el-dropdown>\n <span class=\"el-dropdown-link\">\n <i class=\"el-icon-s-tools\"></i>\n </span>\n <el-dropdown-menu slot=\"dropdown\">\n <el-dropdown-item icon=\"icon-tuichudenglu\" @click=\"handleOperation('outLogin')\">退出登录</el-dropdown-item>\n </el-dropdown-menu>\n</el-dropdown>\n","<template>\r\n <el-dropdown>\r\n <span class=\"el-dropdown-link\">\r\n <i class=\"el-icon-s-tools\"></i>\r\n </span>\r\n <el-dropdown-menu slot=\"dropdown\">\r\n <el-dropdown-item icon=\"icon-tuichudenglu\" @click=\"handleOperation('outLogin')\">退出登录</el-dropdown-item>\r\n </el-dropdown-menu>\r\n </el-dropdown>\r\n</template>\r\n<script>\r\nexport default {\r\n name: 'ComTool',\r\n methods: {\r\n handleOperation(cmd) {\r\n switch (cmd) {\r\n case 'outLogin':\r\n this.$confirm('确认退出登录?', '提示', {\r\n type: 'warning'\r\n }).then(() => {\r\n console.log('out login');\r\n })\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n</script>\r\n<style lang=\"less\" scoped>\r\n .el-icon-s-tools {\r\n font-size: 20px;\r\n color: #FFF;\r\n line-height: 60px;\r\n margin-right: 20px;\r\n cursor: pointer;\r\n }\r\n</style>","import Vue from 'vue';\r\nimport ComComponent from './src/index.vue';\r\n\r\ntype SFCWithInstall<T> = T & { install(app: typeof Vue): void }; // vue 安装\r\n\r\n// 安装\r\nComComponent.install = (app: typeof Vue) => {\r\n app.component(ComComponent.name, ComComponent);\r\n};\r\nconst InComComponent: SFCWithInstall<typeof ComComponent> = ComComponent; // 增加类型\r\nexport default InComComponent;","\n<el-dialog \n append-to-body\n :top=\"top\"\n :title=\"title\" \n :visible=\"visible\"\n :width=\"width\"\n @close=\"handleClose\">\n <slot></slot>\n <template v-slot:footer>\n <slot name=\"footer\">\n <el-button size=\"small\" @click=\"$emit('update:visible', false)\">取消</el-button>\n <el-button size=\"small\" type=\"primary\" @click=\"handleConfirm\">确定</el-button>\n </slot>\n </template>\n</el-dialog>\n","<template>\r\n <el-dialog \r\n append-to-body\r\n :top=\"top\"\r\n :title=\"title\" \r\n :visible=\"visible\"\r\n :width=\"width\"\r\n @close=\"handleClose\">\r\n <slot></slot>\r\n <template v-slot:footer>\r\n <slot name=\"footer\">\r\n <el-button size=\"small\" @click=\"$emit('update:visible', false)\">取消</el-button>\r\n <el-button size=\"small\" type=\"primary\" @click=\"handleConfirm\">确定</el-button>\r\n </slot>\r\n </template>\r\n </el-dialog>\r\n</template>\r\n<script>\r\nexport default {\r\n name: 'ComDialog',\r\n props: {\r\n visible: {\r\n type: Boolean,\r\n default: false\r\n },\r\n title: {\r\n type: String,\r\n default: '标题'\r\n },\r\n width: {\r\n type: String,\r\n default: '600px'\r\n },\r\n top: {\r\n type: String,\r\n default: '50px'\r\n }\r\n },\r\n data() {\r\n return {\r\n show: false\r\n }\r\n },\r\n methods: {\r\n handleClose() {\r\n this.$emit('close');\r\n this.$emit('update:visible', false);\r\n },\r\n\r\n handleConfirm() {\r\n this.$emit('confirm');\r\n }\r\n }\r\n}\r\n</script>\r\n<style lang=\"less\" scoped>\r\n/deep/ .el-dialog__header {\r\n border-bottom: 1px solid #ededed;\r\n\r\n .el-dialog__title {\r\n font-size: 16px;\r\n }\r\n}\r\n\r\n/deep/ .el-dialog__footer {\r\n border-top: 1px solid #ededed;\r\n}\r\n\r\n/deep/ .el-dialog__body {\r\n\r\n .el-select {\r\n width: 240px;\r\n }\r\n\r\n .el-input {\r\n width: 240px;\r\n }\r\n\r\n .el-input-number {\r\n width: 240px;\r\n\r\n .el-input__inner {\r\n text-align: left;\r\n }\r\n }\r\n\r\n .ui-item__main {\r\n width: 100%;\r\n }\r\n\r\n .el-form-item__label {\r\n font-size: 12px;\r\n }\r\n\r\n .el-input--small .el-input__icon {\r\n height: 32px;\r\n }\r\n}\r\n</style>","import Vue from 'vue';\r\nimport ComComponent from './src/index.vue';\r\n\r\ntype SFCWithInstall<T> = T & { install(app: typeof Vue): void }; // vue 安装\r\n\r\n// 安装\r\nComComponent.install = (app: typeof Vue) => {\r\n app.component(ComComponent.name, ComComponent);\r\n};\r\nconst InComComponent: SFCWithInstall<typeof ComComponent> = ComComponent; // 增加类型\r\nexport default InComComponent;","\n<div class=\"ui-form__item\">\n <div>\n <slot name=\"label\">\n <div class=\"ui-item__label\" v-if=\"label\">\n <span >{{label}}</span>\n </div>\n </slot>\n </div>\n <div class=\"ui-item__main\">\n <template v-if=\"type === 'input'\">\n <el-input size=\"small\" v-model=\"modelForm\" :placeholder=\"placeholder\" :disabled=\"readonly\" :maxlength=\"maxlength\"></el-input>\n </template>\n <template v-else-if=\"type === 'select'\">\n <el-select size=\"small\" v-model=\"modelForm\" :placeholder=\"placeholder || '请选择'\" :multiple=\"multiple\" :disabled=\"readonly\" filterable clearable>\n <el-option v-for=\"item in selectOption\" :key=\"item.value\" :value=\"item.value.toString()\" :label=\"item.label\"></el-option>\n </el-select>\n </template>\n <template v-else-if=\"type === 'textarea'\">\n <el-input size=\"small\" v-model=\"modelForm\" type=\"textarea\" \n :placeholder=\"placeholder || '请输入'\" \n :rows=\"4\" \n :disabled=\"readonly\"></el-input>\n </template>\n <template v-else-if=\"type === 'input-number'\">\n <el-input-number size=\"small\" v-model=\"modelForm\" controls-position=\"right\"></el-input-number>\n </template>\n <template v-else-if=\"type === 'cascader'\">\n <el-cascader\n size=\"small\"\n v-model=\"modelForm\"\n :options=\"options\"\n :props=\"props\"\n @change=\"handleChange\"></el-cascader>\n </template>\n </div>\n</div>\n","<template>\r\n <div class=\"ui-form__item\">\r\n <div>\r\n <slot name=\"label\">\r\n <div class=\"ui-item__label\" v-if=\"label\">\r\n <span >{{label}}</span>\r\n </div>\r\n </slot>\r\n </div>\r\n <div class=\"ui-item__main\">\r\n <template v-if=\"type === 'input'\">\r\n <el-input size=\"small\" v-model=\"modelForm\" :placeholder=\"placeholder\" :disabled=\"readonly\" :maxlength=\"maxlength\"></el-input>\r\n </template>\r\n <template v-else-if=\"type === 'select'\">\r\n <el-select size=\"small\" v-model=\"modelForm\" :placeholder=\"placeholder || '请选择'\" :multiple=\"multiple\" :disabled=\"readonly\" filterable clearable>\r\n <el-option v-for=\"item in selectOption\" :key=\"item.value\" :value=\"item.value.toString()\" :label=\"item.label\"></el-option>\r\n </el-select>\r\n </template>\r\n <template v-else-if=\"type === 'textarea'\">\r\n <el-input size=\"small\" v-model=\"modelForm\" type=\"textarea\" \r\n :placeholder=\"placeholder || '请输入'\" \r\n :rows=\"4\" \r\n :disabled=\"readonly\"></el-input>\r\n </template>\r\n <template v-else-if=\"type === 'input-number'\">\r\n <el-input-number size=\"small\" v-model=\"modelForm\" controls-position=\"right\"></el-input-number>\r\n </template>\r\n <template v-else-if=\"type === 'cascader'\">\r\n <el-cascader\r\n size=\"small\"\r\n v-model=\"modelForm\"\r\n :options=\"options\"\r\n :props=\"props\"\r\n @change=\"handleChange\"></el-cascader>\r\n </template>\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\nexport default {\r\n name: 'ComFormItem',\r\n model: {\r\n prop: 'model',\r\n event: 'changes'\r\n },\r\n props: {\r\n\r\n model: undefined,\r\n\r\n // 组件类型\r\n type: {\r\n type: String,\r\n default: 'input'\r\n },\r\n\r\n // item name\r\n label: {\r\n type: String,\r\n default: ''\r\n },\r\n\r\n readonly: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n placeholder: {\r\n type: String,\r\n default: ''\r\n },\r\n\r\n maxlength: {\r\n type: [Array, String],\r\n default: ''\r\n },\r\n\r\n multiple: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n // 选项\r\n options: {\r\n type: [Object, Array],\r\n default() {\r\n return { '1': '选项一', '2': '选项二' }\r\n }\r\n },\r\n\r\n // 选项映射\r\n props: {\r\n type: Object,\r\n default() {\r\n return { value: 'value', label: 'label' }\r\n }\r\n },\r\n },\r\n data() {\r\n return {\r\n modelForm: this.model\r\n }\r\n },\r\n computed: {\r\n selectOption() {\r\n let tempArr = [];\r\n if (Array.isArray(this.options) && this.options.length && this.options[0][this.props.label] === undefined) {\r\n const { label, value } = this.props;\r\n tempArr = this.options.map((item, index) => {\r\n const obj = {\r\n label: item,\r\n value: index\r\n }\r\n return {\r\n label: obj[label],\r\n value: obj[value]\r\n }\r\n })\r\n } else if (!Array.isArray(this.options)){\r\n tempArr = Object.entries(this.options).map(([value, label]) => {\r\n return {\r\n label,\r\n value\r\n }\r\n })\r\n } else {\r\n let options = [];\r\n options.push(...this.options);\r\n tempArr = options.map((item) => {\r\n return {\r\n label: item[this.props.label],\r\n value: item[this.props.value]\r\n }\r\n })\r\n }\r\n return tempArr;\r\n }\r\n },\r\n methods: {\r\n handleChange(val) {\r\n this.$emit('change', val);\r\n }\r\n },\r\n watch: {\r\n modelForm(val) {\r\n this.$emit('changes', val);\r\n },\r\n model(val) {\r\n this.modelForm = val;\r\n }\r\n },\r\n}\r\n</script>\r\n<style lang=\"less\" scoped>\r\n.ui-form__item {\r\n display: flex;\r\n align-items: center;\r\n margin-right: 15px;\r\n}\r\n\r\n.ui-item__label {\r\n margin-right: 10px;\r\n font-size: 12px;\r\n width: 70px;\r\n text-align: right;\r\n}\r\n</style>","import Vue from 'vue';\r\nimport ComComponent from './src/index.vue';\r\n\r\ntype SFCWithInstall<T> = T & { install(app: typeof Vue): void }; // vue 安装\r\n\r\n// 安装\r\nComComponent.install = (app: typeof Vue) => {\r\n app.component(ComComponent.name, ComComponent);\r\n};\r\nconst InComComponent: SFCWithInstall<typeof ComComponent> = ComComponent; // 增加类型\r\nexport default InComComponent;","\n<div class=\"ui-operation\">\n <slot></slot>\n</div>\n","<template>\r\n <div class=\"ui-operation\">\r\n <slot></slot>\r\n </div>\r\n</template>\r\n<script>\r\nexport default {\r\n name: 'ComOperation',\r\n prop: {\r\n type: String,\r\n default: 'main'\r\n }\r\n}\r\n</script>\r\n<style lang=\"less\" scoped>\r\n .ui-operation {\r\n padding: 0 10px;\r\n }\r\n</style>","import Vue from 'vue';\r\nimport ComComponent from './src/index.vue';\r\n\r\ntype SFCWithInstall<T> = T & { install(app: typeof Vue): void }; // vue 安装\r\n\r\n// 安装\r\nComComponent.install = (app: typeof Vue) => {\r\n app.component(ComComponent.name, ComComponent);\r\n};\r\nconst InComComponent: SFCWithInstall<typeof ComComponent> = ComComponent; // 增加类型\r\nexport default InComComponent;","\n<div class=\"ui-search\">\n <div class=\"ui-search__main\">\n <slot></slot>\n </div>\n <div class=\"ui-search__footer\">\n <el-button size=\"small\" icon=\"el-icon-refresh\" @click=\"handleReset\">重置</el-button>\n <el-button size=\"small\" icon=\"el-icon-search\" type=\"primary\" @click=\"handleQuery\">查询</el-button>\n </div>\n</div>\n","<template>\r\n <div class=\"ui-search\">\r\n <div class=\"ui-search__main\">\r\n <slot></slot>\r\n </div>\r\n <div class=\"ui-search__footer\">\r\n <el-button size=\"small\" icon=\"el-icon-refresh\" @click=\"handleReset\">重置</el-button>\r\n <el-button size=\"small\" icon=\"el-icon-search\" type=\"primary\" @click=\"handleQuery\">查询</el-button>\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\nexport default {\r\n name: 'ComSearch',\r\n methods: {\r\n handleQuery() {\r\n const queryFn = this.$parent.handleQuery;\r\n if (queryFn) {\r\n queryFn();\r\n } else {\r\n this.$emit('query');\r\n }\r\n },\r\n handleReset() {\r\n const resetFn = this.$parent.handleReset;\r\n if (resetFn) {\r\n resetFn();\r\n } else {\r\n this.$emit('reset');\r\n }\r\n }\r\n }\r\n}\r\n</script>\r\n<style lang=\"less\" scoped>\r\n .ui-search {\r\n margin: 10px 10px 0 10px;\r\n padding: 20px;\r\n // box-shadow: 0 0 5px 2px #e7e7e7;\r\n background-color: #FFF;\r\n border: 1px solid @color-border;\r\n border-radius: 4px;\r\n\r\n &__main {\r\n display: flex;\r\n }\r\n\r\n &__footer {\r\n margin-top: 10px;\r\n }\r\n\r\n /deep/ .ui-form__item {\r\n display: block;\r\n }\r\n\r\n /deep/ .ui-item__label {\r\n width: unset;\r\n text-align: left;\r\n margin-bottom: 5px;\r\n }\r\n }\r\n</style>","import Vue from 'vue';\r\nimport ComComponent from './src/index.vue';\r\n\r\ntype SFCWithInstall<T> = T & { install(app: typeof Vue): void }; // vue 安装\r\n\r\n// 安装\r\nComComponent.install = (app: typeof Vue) => {\r\n app.component(ComComponent.name, ComComponent);\r\n};\r\nconst InComComponent: SFCWithInstall<typeof ComComponent> = ComComponent; // 增加类型\r\nexport default InComComponent;","\r\n/**\r\n * 计算表格高度\r\n * staticNum { number } \r\n * */\r\n export function countTableHeight(staticNum = 0) {\r\n\r\n const pageCountEls = document.querySelectorAll('.ui-page__main:not(.v-leave) > div')\r\n const paginationEl = document.querySelector('.ui-pagination');\r\n \r\n const headerEl = document.querySelector('.ui-container__header');\r\n const tabsEl = document.querySelector('.ui-tabs');\r\n\r\n let tableHeight = staticNum;\r\n tableHeight += paginationEl ? paginationEl.offsetHeight : 0;\r\n tableHeight += headerEl ? headerEl.offsetHeight : 0;\r\n tableHeight += tabsEl ? tabsEl.offsetHeight : 0;\r\n\r\n let userAgent = navigator.userAgent;\r\n for (let i = 0; i < pageCountEls.length; i++) {\r\n\r\n // 获取容器元素\r\n let ele = pageCountEls[i];\r\n if (!ele || ele.className === 'ui-table') continue;\r\n tableHeight += ele.offsetHeight;\r\n\r\n let eleMargin, eleTBMargin;\r\n let eleCss = document.defaultView.getComputedStyle(ele);\r\n if (userAgent.indexOf('Firefox') > -1) {\r\n eleTBMargin = parseInt(eleCss['margin-top']) + parseInt(eleCss['margin-bottom']);\r\n } else if (userAgent.indexOf('compatible') > -1 && userAgent.indexOf(\"MSIE\") > -1 && !(userAgent.indexOf(\"Opera\") > -1)) {\r\n let ieCss = ele.currentStyle;\r\n eleTBMargin = parseInt(ieCss['marginTop']) + parseInt(ieCss['marginBottom']);\r\n } else {\r\n eleMargin = eleCss.margin.split(' ');\r\n\r\n if (eleMargin.length == 1) {\r\n eleTBMargin = parseInt(eleMargin[0]) * 2;\r\n } else {\r\n const [mt, mr, mb, ml] = eleMargin;\r\n eleTBMargin = parseInt(mb) ? parseInt(mt) + parseInt(mb) : parseInt(mt);\r\n }\r\n }\r\n\r\n tableHeight = eleTBMargin + tableHeight;\r\n }\r\n tableHeight = window.innerHeight - tableHeight;\r\n return tableHeight;\r\n }\r\n \r\n // 表格INX\r\n export function autoAddTableInx(inx) {\r\n let i = parseInt(inx) + 1 + '';\r\n let first = '0';\r\n return first.repeat(4 - i.length) + i\r\n }","\n<div class=\"ui-table\">\n <div class=\"ui-table__tab\">\n <slot></slot>\n </div>\n <el-table \n ref=\"myTable\"\n highlightRow\n :border=\"true\"\n :data=\"tableData\"\n :[isBindHeight]=\"tableHeight\"\n :[isBindMaxHeight]=\"maxHeight\"\n @selection-change=\"handleSelectionChange\">\n <el-table-column type=\"selection\" width=\"35\" v-if=\"showSelect\" :selectable=\"selectable\"></el-table-column>\n <el-table-column v-for=\"(item, index) in tableTitle\"\n minWidth=\"60px\"\n :label=\"item\"\n :key=\"tableProps[index]\" \n :prop=\"tableProps[index]\" \n :width=\"tableProps[index] === 'index' ? '60px' : (tableColsWidth[index] || '')\">\n\n <!-- 表头插槽 自定义表头-->\n <template v-slot:header=\"scope\">\n <slot \n :name=\"tableProps[index] + 'Title'\" \n :row=\"item\" \n :$index=\"scope.$index\">\n <span>{{ item }}</span>\n </slot>\n </template>\n\n <!-- 内容插槽 -->\n <template v-slot:default=\"scope\">\n <slot \n :name=\"tableProps[index]\" \n :row=\"scope.row\" \n :$index=\"scope.$index\">\n <span>{{ tableProps[index] === 'index' ? changeTableInx(scope.$index) :\n scope.row[tableProps[index]]\n }}</span>\n </slot>\n </template>\n </el-table-column>\n <template v-slot:empty>\n <div v-if=\"!autoHeight\">\n <el-empty v-show=\"!tableData.length\" description=\"暂无数据\"></el-empty>\n </div>\n </template>\n </el-table>\n <div class=\"ui-pagination\" v-if=\"showPage\">\n <el-pagination ref=\"pageRef\" \n layout=\"total, sizes, prev, pager, next, jumper\"\n :current-page=\"pageData.offset\"\n :page-sizes=\"pageSizes\" \n :page-size=\"pageData.limit\" \n :total=\"pageData.total\"\n @size-change=\"val => handlePageChange('limit', val)\"\n @current-change=\"val => handlePageChange('offset', val)\" >\n </el-pagination>\n </div>\n</div>\n","<template>\r\n <div class=\"ui-table\">\r\n <div class=\"ui-table__tab\">\r\n <slot></slot>\r\n </div>\r\n <el-table \r\n ref=\"myTable\"\r\n highlightRow\r\n :border=\"true\"\r\n :data=\"tableData\"\r\n :[isBindHeight]=\"tableHeight\"\r\n :[isBindMaxHeight]=\"maxHeight\"\r\n @selection-change=\"handleSelectionChange\">\r\n <el-table-column type=\"selection\" width=\"35\" v-if=\"showSelect\" :selectable=\"selectable\"></el-table-column>\r\n <el-table-column v-for=\"(item, index) in tableTitle\"\r\n minWidth=\"60px\"\r\n :label=\"item\"\r\n :key=\"tableProps[index]\" \r\n :prop=\"tableProps[index]\" \r\n :width=\"tableProps[index] === 'index' ? '60px' : (tableColsWidth[index] || '')\">\r\n\r\n <!-- 表头插槽 自定义表头-->\r\n <template v-slot:header=\"scope\">\r\n <slot \r\n :name=\"tableProps[index] + 'Title'\" \r\n :row=\"item\" \r\n :$index=\"scope.$index\">\r\n <span>{{ item }}</span>\r\n </slot>\r\n </template>\r\n\r\n <!-- 内容插槽 -->\r\n <template v-slot:default=\"scope\">\r\n <slot \r\n :name=\"tableProps[index]\" \r\n :row=\"scope.row\" \r\n :$index=\"scope.$index\">\r\n <span>{{ tableProps[index] === 'index' ? changeTableInx(scope.$index) :\r\n scope.row[tableProps[index]]\r\n }}</span>\r\n </slot>\r\n </template>\r\n </el-table-column>\r\n <template v-slot:empty>\r\n <div v-if=\"!autoHeight\">\r\n <el-empty v-show=\"!tableData.length\" description=\"暂无数据\"></el-empty>\r\n </div>\r\n </template>\r\n </el-table>\r\n <div class=\"ui-pagination\" v-if=\"showPage\">\r\n <el-pagination ref=\"pageRef\" \r\n layout=\"total, sizes, prev, pager, next, jumper\"\r\n :current-page=\"pageData.offset\"\r\n :page-sizes=\"pageSizes\" \r\n :page-size=\"pageData.limit\" \r\n :total=\"pageData.total\"\r\n @size-change=\"val => handlePageChange('limit', val)\"\r\n @current-change=\"val => handlePageChange('offset', val)\" >\r\n </el-pagination>\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\nimport { countTableHeight } from '@/utils';\r\nexport default {\r\n name: 'ComTable',\r\n props: {\r\n\r\n // 是否显示勾选框\r\n showSelect: { type: Boolean, default: false },\r\n\r\n // 勾选方法\r\n selectable: { type: Function, default() { return () => { } } },\r\n\r\n // 表格数据\r\n tableData: { type: Array, default() { return [] } },\r\n\r\n // 表头映射\r\n tableMap: { type: Object, default() { return { index: '序号' } } },\r\n\r\n // 列宽度\r\n colsWidth: { type: [Array, Object], default() { return [] } },\r\n\r\n // 分页对象\r\n pageData: { type: Object, default() { return {} } },\r\n\r\n // 是否显示分页\r\n showPage: { type: Boolean, default: true },\r\n\r\n // 固定表格高度\r\n height: { type: String, default: '' },\r\n\r\n // 表格高度自适应\r\n autoHeight: { type: Boolean, default: false },\r\n\r\n // 最大高度 \r\n maxHeight: { type: String, default: '' },\r\n\r\n // 高度占位值 当有特殊情况表格高度需减少指定值\r\n heightStatic: { type: Number, default: 0 }\r\n },\r\n\r\n data() {\r\n return {\r\n pageSizes: [20, 50, 100, 200],\r\n tableHeight: ''\r\n }\r\n },\r\n\r\n computed: {\r\n tableTitle() {\r\n return Object.values(this.tableMap);\r\n },\r\n tableProps() {\r\n return Object.keys(this.tableMap);\r\n },\r\n tableColsWidth() {\r\n if (Array.isArray(this.colsWidth)) {\r\n return this.colsWidth.map(item => `${parseInt(item)}px`);\r\n } else {\r\n return this.tableProps.map(item => this.colsWidth[item] ? `${parseInt(this.colsWidth[item])}px` : '') \r\n }\r\n },\r\n isBindHeight() {\r\n return this.tableHeight ? 'height' : ''\r\n },\r\n isBindMaxHeight() {\r\n return this.maxHeight ? 'max-height' : ''\r\n },\r\n },\r\n methods: {\r\n\r\n changeTableInx(inx) {\r\n let i = parseInt(inx) + 1 + '';\r\n let first = '0';\r\n return first.repeat(4 - i.length) + i\r\n },\r\n\r\n // 刷新表格高度\r\n handleRefreshHeight() {\r\n this.tableHeight = `${countTableHeight() - this.heightStatic}px`;\r\n console.log(this.tableHeight, 'this.tableHeight');\r\n this.$refs['myTable'] && this.$refs['myTable'].doLayout();\r\n },\r\n\r\n // 分页切换\r\n handlePageChange(type = 'offset', val) {\r\n if (type === 'offset') {\r\n if (this.tempSize > this.pageData.total && this.pageData.offset > 1) return;\r\n this.$emit('pageChange', type, val);\r\n } else {\r\n this.tempSize = val;\r\n this.$emit('pageChange', type, val)\r\n }\r\n },\r\n\r\n // 勾选\r\n handleSelectionChange(val) {\r\n this.$emit('selectionChange', val);\r\n }\r\n },\r\n async mounted() {\r\n\r\n // 没设置表格高度 高度根据屏幕高度适应\r\n if (!this.autoHeight && !this.height) {\r\n await this.$nextTick();\r\n this.handleRefreshHeight();\r\n\r\n window.addEventListener('resize', this.handleRefreshHeight);\r\n } else if (this.height) {\r\n this.tableHeight = this.height;\r\n this.$refs['myTable'] && this.$refs['myTable'].doLayout();\r\n }\r\n },\r\n beforeDestroy() {\r\n window.removeEventListener('resize', this.handleRefreshHeight);\r\n }\r\n}\r\n</script>\r\n<style lang=\"less\" scoped>\r\n\r\n .ui-table {\r\n padding: 0 10px;\r\n }\r\n\r\n .el-table {\r\n \r\n\r\n /deep/ .el-table__body {\r\n ::-webkit-scrollbar {\r\n width: 4px;\r\n background-color: #e4e4e5;\r\n }\r\n\r\n ::-webkit-scrollbar-thumb {\r\n border-radius: 4px;\r\n background-color: @theme-color;\r\n }\r\n }\r\n }\r\n\r\n .ui-pagination {\r\n text-align: center;\r\n padding: 10px 0;\r\n }\r\n</style>","import Vue from 'vue';\r\nimport ComComponent from './src/index.vue';\r\n\r\ntype SFCWithInstall<T> = T & { install(app: typeof Vue): void }; // vue 安装\r\n\r\n// 安装\r\nComComponent.install = (app: typeof Vue) => {\r\n app.component(ComComponent.name, ComComponent);\r\n};\r\nconst InComComponent: SFCWithInstall<typeof ComComponent> = ComComponent; // 增加类型\r\nexport default InComComponent;","import ComTemplate from '../packages/template';\r\nimport ComMenu from '../packages/menu';\r\nimport ComTabs from '../packages/tabs';\r\nimport ComTool from '../packages/tool';\r\nimport ComDialog from '../packages/dialog';\r\nimport ComFormItem from '../packages/form-item';\r\nimport ComOperation from '../packages/operation';\r\nimport ComSearch from '../packages/search';\r\nimport ComTable from '../packages/table';\r\n\r\n\r\nconst components:any[] = [\r\n ComTemplate,\r\n ComMenu,\r\n ComTabs,\r\n ComTool,\r\n ComDialog,\r\n ComFormItem,\r\n ComOperation,\r\n ComSearch,\r\n ComTable\r\n];\r\n\r\n/**\r\n * @param { App }\r\n * @returns { Void }\r\n */\r\nconst install = (Vue:any, ops:any = { config: {} }) => {\r\n components.forEach(component => Vue.component(component.name, component));\r\n\r\n // 注册组件时可以带入UI库配置\r\n Vue.prototype.$UICONFIG = ops.config;\r\n}\r\n\r\n\r\nconst defaultConfig = {\r\n version: 'dev',\r\n install,\r\n ComTemplate,\r\n ComMenu,\r\n ComTabs,\r\n ComTool,\r\n ComDialog,\r\n ComFormItem,\r\n ComOperation,\r\n ComSearch,\r\n ComTable\r\n};\r\n\r\ntry {\r\n defaultConfig.version = require('../package.json').version;\r\n} catch(e) {\r\n console.log('no require');\r\n}\r\n\r\nexport default defaultConfig;"],"names":["render","staticRenderFns","ComComponent","InComComponent","ComTemplate","ComMenu","ComTabs","ComTool","ComDialog","ComFormItem","ComOperation","ComSearch","ComTable"],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "tenghui-ui",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "description": "vue 2x, tenghui-ui",
5
5
  "files": [
6
- "dist"
6
+ "dist",
7
+ "src"
7
8
  ],
8
9
  "main": "./dist/tenghui-ui.umd.js",
9
10
  "module": "./dist/tenghui-ui.es.js",
@@ -0,0 +1,5 @@
1
+ const CONFIG = {
2
+
3
+ };
4
+
5
+ export default CONFIG;
package/src/main.ts ADDED
@@ -0,0 +1,56 @@
1
+ import ComTemplate from '../packages/template';
2
+ import ComMenu from '../packages/menu';
3
+ import ComTabs from '../packages/tabs';
4
+ import ComTool from '../packages/tool';
5
+ import ComDialog from '../packages/dialog';
6
+ import ComFormItem from '../packages/form-item';
7
+ import ComOperation from '../packages/operation';
8
+ import ComSearch from '../packages/search';
9
+ import ComTable from '../packages/table';
10
+
11
+
12
+ const components:any[] = [
13
+ ComTemplate,
14
+ ComMenu,
15
+ ComTabs,
16
+ ComTool,
17
+ ComDialog,
18
+ ComFormItem,
19
+ ComOperation,
20
+ ComSearch,
21
+ ComTable
22
+ ];
23
+
24
+ /**
25
+ * @param { App }
26
+ * @returns { Void }
27
+ */
28
+ const install = (Vue:any, ops:any = { config: {} }) => {
29
+ components.forEach(component => Vue.component(component.name, component));
30
+
31
+ // 注册组件时可以带入UI库配置
32
+ Vue.prototype.$UICONFIG = ops.config;
33
+ }
34
+
35
+
36
+ const defaultConfig = {
37
+ version: 'dev',
38
+ install,
39
+ ComTemplate,
40
+ ComMenu,
41
+ ComTabs,
42
+ ComTool,
43
+ ComDialog,
44
+ ComFormItem,
45
+ ComOperation,
46
+ ComSearch,
47
+ ComTable
48
+ };
49
+
50
+ try {
51
+ defaultConfig.version = require('../package.json').version;
52
+ } catch(e) {
53
+ console.log('no require');
54
+ }
55
+
56
+ export default defaultConfig;
@@ -0,0 +1,20 @@
1
+ // 主题色
2
+ @theme-color: #409EFF;
3
+ @theme-color2: fade(@theme-color, 80%);
4
+ @theme-color3: fade(@theme-color, 30%);
5
+ @theme-color4: fade(@theme-color, 5%);
6
+
7
+ // 辅助色
8
+ @color-success: #67C23A;
9
+ @color-warning: #E6A23C;
10
+ @color-danger: #F56C6C;
11
+ @color-info: #909399;
12
+
13
+ // 字体
14
+ @color-f1: #303133; // 主要文字
15
+ @color-f2: #606266; // 常规文字
16
+ @color-f3: #909399; // 次要文字
17
+ @color-f4: #C0C4CC; // 占位文字
18
+
19
+ // 边框
20
+ @color-border: #ebeef5;