mic-org 1.1.0 → 1.1.2

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
@@ -6,15 +6,281 @@
6
6
  > 仅限于 vue3 + vite +element-plus + sass 工程中,因为部分组件以及样式有调用
7
7
 
8
8
  ---------------------------------
9
+
10
+ ## npm引用
11
+
12
+ ``` bash
13
+
14
+ npm install mic-org
15
+
16
+ ```
17
+
18
+ ## 组件导入
19
+
20
+ ``` js
21
+
22
+ import 'mic-org/dist/index.css'; // 组件样式
23
+ import MicOrg from 'mic-org'; // 组件全局导入
24
+
25
+ app.use(MicOrg);
26
+
27
+ ```
28
+
29
+ ## 普通方法导入
30
+
31
+ ``` js
32
+
33
+ import { mic } from 'mic-org'; // 方法导入
34
+
35
+ ```
36
+
37
+ ## 类方法导入
38
+
39
+ ``` js
40
+
41
+ import { Mic } from 'mic-org'; // 方法导入
42
+
43
+ ```
44
+
45
+ ## scss变量导入
46
+
47
+ ``` js
48
+
49
+ @use "mic-org/css/variable.scss" as *;
50
+
51
+ ```
52
+
53
+ ---------------------------------
54
+
9
55
  ## 组件输出
10
56
  | Component | Description |
11
57
  | -------------- | ----------- |
12
- | mic-layout | 用于整体布局 |
13
58
  | mic-search | 搜索项的框架 |
14
59
  | mic-vac | 搜索项的空白项 |
15
60
  | mic-select | 搜索项的选择项 |
16
61
  | mic-input | 搜索项的输入项 |
17
62
  | mic-date | 搜索项的日期项 |
63
+ | mic-table | 表格数据组件 |
64
+ | mic-dialog | 弹窗form表单组件 |
65
+
66
+ ---------------------------------
67
+
68
+ 1. **mic-search使用**
69
+
70
+ > props: span
71
+ > 1. span,默认为 4,即:4列, span值为number;
72
+ > 说明:它本身是个搜索项外层框架,用的是grid布局
73
+
74
+ ```js
75
+
76
+ <mic-search :span="4"></mic-search>
77
+
78
+ ```
79
+
80
+ 2. **mic-vac使用**
81
+
82
+ > props: span
83
+ > 1. span,默认为 1,即:4列, span值为number;
84
+ > 说明:它本身是为了搜索框内容添加空白列的,也可以在它的标签内添加插槽内容,但是它插槽里的内容是居右对齐的
85
+
86
+ ```js
87
+
88
+ <mic-search :span="4">
89
+ <mic-vac :span="2">
90
+ <el-button>查询</el-button>
91
+ <el-button>重置</el-button>
92
+ </mic-vac>
93
+ </mic-search>
94
+
95
+ ```
96
+
97
+ 3. **mic-select使用**
98
+
99
+ > props: span,label,border,width,options (可以把el-select其它的属性/方法全部写入,组件内部使用了$attrs继承)
100
+ > 1. span,默认为 1,即:1列, span值为number;
101
+ > 2. label,搜索项的label项,必填;
102
+ > 3. border,针对如果搜索项整个背景如果是白色,那么可以添加border做搜索项的区分
103
+ > 4. width, label项的宽度,默认为 100px
104
+ > 5. options,组件的下拉列表,必填,类型 Array<{label:string,value:any}>;
105
+
106
+ > emits: change
107
+ > 1. change, 触发el-select的change事件后,同步触发此事件
108
+
109
+ ```js
110
+
111
+ <mic-search :span="4">
112
+ <mic-search
113
+ label="测试"
114
+ width="100px"
115
+ v-model="data"
116
+ border="1px solid #fff"
117
+ :options="[{label:'男',value:1},{label:'女',value:2}]"
118
+ @change="(val)=>{console.log(val)}"
119
+ />
120
+ </mic-search>
121
+
122
+ ```
123
+
124
+ 4. **mic-input使用**
125
+
126
+ > props: span,label,border,width (可以把el-input其它的属性/方法全部写入,组件内部使用了$attrs继承)
127
+ > 1. span,默认为 1,即:1列, span值为number;
128
+ > 2. label,搜索项的label项,必填;
129
+ > 3. border,针对如果搜索项整个背景如果是白色,那么可以添加border做搜索项的区分
130
+ > 4. width, label项的宽度,默认为 100px
131
+
132
+ > emits: change, keydown
133
+ > 1. change, 触发el-input的input事件后,同步触发此事件
134
+ > 2. keydown, 触发el-input的keydown.enter事件后,同步触发此事件
135
+
136
+ ```js
137
+
138
+ <mic-search :span="4">
139
+ <mic-input
140
+ label="测试"
141
+ width="100px"
142
+ v-model="data"
143
+ border="1px solid #fff"
144
+ @change="(val)=>{console.log(val)}"
145
+ @keydown="(val)=>{console.log(val)}"
146
+ />
147
+ </mic-search>
148
+
149
+ ```
150
+
151
+ 5. **mic-date使用**
152
+
153
+ > props: span,label,border,width,format (可以把el-date-picker其它的属性/方法全部写入,组件内部使用了$attrs继承)
154
+ > 1. span,默认为 1,即:1列, span值为number;
155
+ > 2. label,搜索项的label项,必填;
156
+ > 3. border,针对如果搜索项整个背景如果是白色,那么可以添加border做搜索项的区分
157
+ > 4. width, label项的宽度,默认为 100px
158
+ > 4. format, format以及value-format 的类型, 必填,取的是 el-date-picker 的format值
159
+
160
+ > emits: change
161
+ > 1. change, 触发el-date-picker的change事件后,同步触发此事件
162
+
163
+ ```js
164
+
165
+ <mic-search :span="4">
166
+ <mic-date
167
+ label="测试"
168
+ width="100px"
169
+ format="YYYY-MM-DD"
170
+ border="1px solid #fff"
171
+ v-model="data"
172
+ @change="(val)=>{console.log(val)}"
173
+ />
174
+ </mic-search>
175
+
176
+ ```
177
+
178
+ 6. **mic-table使用**
179
+
180
+ > props: tableAttr,tableData,columns,selectSingle,selectKey,disabledCondition,page
181
+ > 1. tableAttr, 给el-table添加一些 mic-table组件中未定义的属性,已经使用v-bind进行了承接
182
+ > 2. tableData, 表格数据 组件内会给每一项增加两个属性:
183
+ > - checked 是否选中;
184
+ > - disabled 是否禁用;
185
+ > 3. columns,表格列,每列有:
186
+ > - type 属性,重构了el-table中的select功能, 值为 select以及 el-table中其它的类型;
187
+ > - attr 属性,给el-table-column 添加mic-table组件中未定义的属性,已经使用v-bind进行了承接;
188
+ > - hidden 属性,值为boolean , 判断列是否展示;
189
+ > - **重点提示:如果要自定义列中的内容,已经配置了插槽,插槽名为attr中的prop值,子组件向父组件传的参数是scope**
190
+ > 4. selectSingle, 是否单选,默认为false,即多选
191
+ > 5. selectKey, 选中项的key值,默认为id
192
+ > 6. disabledCondition, 禁用条件,函数类型,返回true则禁用
193
+ > 7. page, 分页信息,包含total、currentPage、pageSize等属性
194
+
195
+ > emits: selection-change,page-change
196
+ > 1. selection-change,选中项时,触发此方法,把选中项返回
197
+ > 2. page-change, 页码变化时,触发此方法,会把total、currentPage、pageSize都返回
198
+
199
+ > defineExpose: clearSelection,setSelection
200
+ > 1. clearSelection,用 ref绑定父组件中的自组件后,通过此方法清空选中
201
+ > 2. setSelection, 用 ref绑定父组件中的自组件后,通过此方法让指定项默认选中
202
+
203
+ > 按钮插槽 buttonLeft,buttonRight
204
+ > 说明:表格上方一般都要放置按钮,这两个插槽用来放按钮
205
+
206
+ ```js
207
+
208
+ <mic-table
209
+ :tableAttr="{height:100}"
210
+ :tableData="[{id:0,name:'张三'}]"
211
+ :columns="[{type:'select',attr:{}},{attr:{prop:'name',label:'姓名'}}]"
212
+ :selectSingle="true"
213
+ selectKey="id"
214
+ :disabledCondition="(items:any)=>items.id==0"
215
+ :page="{
216
+ total: 100,
217
+ currentPage: 1,
218
+ pageSize: 20
219
+ }"
220
+ @selection-change="(val)=>{console.log(val)}"
221
+ @page-change="(val)=>{console.log(val)}"
222
+ >
223
+ <template #buttonLeft>
224
+ <el-button>新建</el-button>
225
+ <el-button>删除</el-button>
226
+ </template>
227
+ <template #buttonRight>
228
+ <el-button>通过</el-button>
229
+ <el-button>拒绝</el-button>
230
+ </template>
231
+ <template #name={ scope }>
232
+ <el-input v-model="scope.row.name"/>
233
+ </template>
234
+ </mic-search>
235
+
236
+ ```
237
+
238
+ 7. **mic-dialog使用**
239
+
240
+ > props: labelWidth,formList,optionList,rules,cancelText,confirmText(可以把el-dialog其它的属性全部写入,组件内部使用了$attrs继承)
241
+ > 1. labelWidth, form表单label宽度
242
+ > 2. formList, form表单项 它的类型为Array<{module?:string,children:Array<{
243
+ span:number,
244
+ prop:string,
245
+ label:string,
246
+ type?:'input' | 'select' | 'time' | undefined | null,
247
+ attr?:Record<string,any>,
248
+ event?:Record<any,any>,
249
+ }>}>
250
+ > - **重点提示:如果要自定义表单项中的内容,已经配置了插槽,插槽名为children中的prop值,子组件向父组件传的参数是form,attr**
251
+ > 3. optionList, 下拉列表项,它的类型为Record<string,Array<{label:string,value:any}>>
252
+ > 4. rules, form表单校验
253
+ > 5. cancelText, 取消按钮文本
254
+ > 6. confirmText, 确认按钮文本
255
+
256
+ > emits: confirm
257
+ > 1. confirm,确认时回传
258
+
259
+ > defineModel: show,form
260
+ > 1. show, 控制弹窗显隐
261
+ > 2. form, form表单数据
262
+
263
+ ```js
264
+
265
+ <mic-dialog
266
+ width="50%"
267
+ title="提示"
268
+ labelWidth="100px"
269
+ :formList="[{module:'个人信息',children:[{span:12,prop:'name',label:'姓名',type:'select',attr:{},event:{}}]}]"
270
+ :optionList="{name:[{label:'张三',value:1},{label:'李四',value:2}]}"
271
+ :rules="{}"
272
+ v-model:form="{name:1}"
273
+ v-model:show="showDialog"
274
+ cancelText="取消"
275
+ confirmText="确认"
276
+ @conirm="(val)=>{console.log(val)}"
277
+ >
278
+ <template #name={ form,attr,event }>
279
+ <el-input v-model="scope.row.name"/>
280
+ </template>
281
+ </mic-dialog>
282
+
283
+ ```
18
284
 
19
285
  ---------------------------------
20
286
 
@@ -22,62 +288,184 @@
22
288
  | Function | Description |
23
289
  | -------------- | ----------- |
24
290
  | reset | 用于重置对象中的内容 |
25
- | check | 用于校验数据类型 mic.check('aaa') == 'String' |
26
- | isType | 校验是否指定类型 mic.isType('aaa','String') == true |
27
- | capital | 将金额转为汉字金额 mic.capital(321.32) 输出 “叁佰贰拾壹元贰角壹分” |
291
+ | check | 用于校验数据类型 |
292
+ | isType | 校验是否指定类型 |
293
+ | capital | 将金额转为汉字金额 ,只能处理亿级别的 |
294
+ | equal | 校验两个对象内容是否完全一致 |
28
295
  | load | 用于自定义全局/或者局部loading |
29
296
 
297
+
30
298
  ---------------------------------
31
299
 
32
- ## Array输出
33
- | Function | Description |
34
- | -------------- | ----------- |
35
- | equal | 校验数组(子集为普通对象)中,指定的字段的值是否一致 |
36
- | deepIncludes | 校验数组(子集为普通对象)中,是否包含某个字段对应的值 |
37
- | noRepeat | 数组去重,可以指定(子集为普通对象)中的字段进行数组的去重 |
300
+ 1. **reset使用**
301
+
302
+ ```js
303
+
304
+ import { mic } from 'mic-org';
305
+ const data = ref({ name: '', age: 0 });
306
+ data.value.name = '张三';
307
+ data.value.age = 10;
308
+ const resetData = () => {
309
+ mic.reset(data.value,{age:0});
310
+ };
311
+
312
+ ```
313
+
314
+ 2. **check使用**
315
+
316
+ ```js
317
+
318
+ import { mic } from 'mic-org';
319
+ const data = ref({ name: '', age: 0 });
320
+ mic.check(data.value) //输出结果 Object;
321
+
322
+ ```
323
+
324
+ 3. **isType使用**
325
+
326
+ ```js
327
+
328
+ import { mic } from 'mic-org';
329
+ mic.capital(321.32) //输出结果 “叁佰贰拾壹元贰角壹分”
330
+
331
+ ```
332
+
333
+ 4. **capital使用**
334
+
335
+ ```js
336
+
337
+ import { mic } from 'mic-org';
338
+ const data = ref({ name: '', age: 0 });
339
+ mic.isType(data.value) == 'Object' //输出结果 true
340
+
341
+ ```
342
+
343
+ 5. **equal使用**
344
+
345
+ ```js
346
+
347
+ import { mic } from 'mic-org';
348
+ const data = ref({ name: '', age: 0 });
349
+ const dataB = ref({ name: '1', age: 0 });
350
+ mic.equal(data.value,dataB.value) //输出结果 false
351
+
352
+ ```
38
353
 
354
+ 6. **load使用**
355
+
356
+ > 1. className没值的话,就是全局loading
357
+ > 2. loadStyle 可以定义loading的背景颜色,也可以定义loading的颜色
358
+
359
+ ```js
360
+
361
+ import { mic } from 'mic-org';
362
+ const funA = ()=>{
363
+ mic.load(()=>{
364
+ console.log('1111')
365
+ },{className:'',loadStyle:{bgColor:'#fff',color:'#005eba'}})()
366
+ }
367
+ const funB = mic.load(()=>{
368
+ console.log('2222')
369
+ },{className:''})
370
+
371
+ ```
39
372
  ---------------------------------
40
373
 
41
- ## Math输出
374
+ ## 类输出
42
375
  | Function | Description |
43
376
  | -------------- | ----------- |
44
- | exact | 用于解决 加/减/乘/除 的计算精度问题 |
377
+ | domHeight | 获取想要的元素的宽/高,也可通过别的元素的加/减计算得来,对应的是像素值 |
45
378
 
46
379
  ---------------------------------
47
380
 
48
- ## npm引用
381
+ 1. **domHeight使用**
49
382
 
50
- ``` text
383
+ > 1. 实例入参类型 Array<{name:string,type:'+' | '-'}>
384
+ > 2. 获取宽度/高度时, 需要在后面加个.value,width/height是reactive对象,为了做到响应式,里面包裹了value
51
385
 
52
- npm install mic-org
386
+ ```js
387
+
388
+ import { Mic } from 'mic-org';
389
+ const DOMA = new Mic.domHeight([
390
+ {
391
+ name:'.boxa',
392
+ type:'+',
393
+ }
394
+ ])
395
+ console.log(DOMA.height.value) //获取DOMA的高度,像素单位
396
+ console.log(DOMA.width.value) //获取DOMA的宽度,像素单位
397
+
398
+ //假设,A包裹了B元素和C元素,此时想要获得C元素的高度/宽度
399
+ const DOMC = new Mic.domHeight([
400
+ {
401
+ name:'.boxa',
402
+ type:'+',
403
+ },{
404
+ name:'.boxb',
405
+ type:'-',
406
+ }
407
+ ])
408
+ // B元素和C元素上下排列,要获取高度,直接DOMC.height.value就可以
409
+ console.log(DOMC.height.value)
410
+ // B元素和C元素左右排列,要获取宽度,直接DOMC.width.value就可以
411
+ console.log(DOMC.width.value)
53
412
 
54
413
  ```
414
+
415
+ ---------------------------------
416
+
417
+ ## Array输出
418
+ | Function | Description |
419
+ | -------------- | ----------- |
420
+ | equal | 校验数组(子集为普通对象)中,指定的字段的值是否一致 |
421
+ | deepIncludes | 校验数组(子集为普通对象)中,是否包含某个字段对应的值 |
55
422
 
56
423
  ---------------------------------
57
424
 
58
- ## 工程导入
425
+ 1. **equal使用**
59
426
 
60
- ``` main.js
427
+ ```js
61
428
 
62
- import 'mic-org/dist/index.css'; // 组件样式
63
- import mic from 'mic-org'; // 组件全局导入
429
+ let a = [{id:0,name:'张三'},{id:1,name:'张三'}];
64
430
 
65
- app.use(mic);
431
+ a.equal('name') // 输出结果 true
432
+ a.equal(['id','name']) // 输出结果 false
66
433
 
67
434
  ```
68
435
 
69
- ``` other.js
436
+ 2. **deepIncludes使用**
70
437
 
71
- import { mic } from 'mic-org'; // 方法导入
438
+ ```js
72
439
 
440
+ let a = [{id:0,name:'张三'},{id:1,name:'张三'}];
441
+
442
+ a.deepIncludes({name:'张三'}) // 输出结果 true
443
+ a.deepIncludes({id:1,name:'张三'}) // 输出结果 true
444
+ a.deepIncludes({id:2,name:'张三'}) // 输出结果 false
445
+
73
446
  ```
74
447
 
75
- ``` mic-variable.css
448
+ ---------------------------------
76
449
 
77
- import 'mic-org/css/variable.scss'; // 可使用mic-org中定义的sass变量
450
+ ## Math输出
451
+ | Function | Description |
452
+ | -------------- | ----------- |
453
+ | exact | 用于解决 加/减/乘/除 的计算精度问题 |
454
+
455
+ ---------------------------------
78
456
 
457
+ 1. **exact使用**
458
+
459
+ ```js
460
+
461
+ Math.exact(0.1,0.2,'+') //输出 0.3,而不是 0.30000000000000004
462
+
79
463
  ```
80
464
 
81
- ## 版本
465
+ ---------------------------------
466
+
467
+ ## 版本 1.1.2
82
468
 
83
- 1.0.9 -- 1.修复mix-date组件样式
469
+ - 1.优化load方法
470
+ - 2.优化misc-dialog组件
471
+ - 3.新增domHeight 类,获取元素的像素宽/高
package/dist/mic.css CHANGED
@@ -1 +1 @@
1
- @charset "UTF-8";:root{--mic-search-color:#333;--mic-search-background:#fff;--mic-search-interval:1px solid #ddd;--mic-menu-width:200px;--mic-header-height:60px;--mic-footer-height:40px}.f-10[data-v-bb327344]{font-size:10px}.f-11[data-v-bb327344]{font-size:11px}.f-12[data-v-bb327344]{font-size:12px}.f-13[data-v-bb327344]{font-size:13px}.f-14[data-v-bb327344]{font-size:14px}.f-15[data-v-bb327344]{font-size:15px}.f-16[data-v-bb327344]{font-size:16px}.f-17[data-v-bb327344]{font-size:17px}.f-18[data-v-bb327344]{font-size:18px}.f-19[data-v-bb327344]{font-size:19px}.f-20[data-v-bb327344]{font-size:20px}.f-21[data-v-bb327344]{font-size:21px}.f-22[data-v-bb327344]{font-size:22px}.f-23[data-v-bb327344]{font-size:23px}.f-24[data-v-bb327344]{font-size:24px}.f-25[data-v-bb327344]{font-size:25px}.f-26[data-v-bb327344]{font-size:26px}.f-27[data-v-bb327344]{font-size:27px}.f-28[data-v-bb327344]{font-size:28px}.f-29[data-v-bb327344]{font-size:29px}.f-30[data-v-bb327344]{font-size:30px}.f-31[data-v-bb327344]{font-size:31px}.f-32[data-v-bb327344]{font-size:32px}.f-33[data-v-bb327344]{font-size:33px}.f-34[data-v-bb327344]{font-size:34px}.f-35[data-v-bb327344]{font-size:35px}.f-36[data-v-bb327344]{font-size:36px}.f-37[data-v-bb327344]{font-size:37px}.f-38[data-v-bb327344]{font-size:38px}.f-39[data-v-bb327344]{font-size:39px}.f-40[data-v-bb327344]{font-size:40px}.f-41[data-v-bb327344]{font-size:41px}.f-42[data-v-bb327344]{font-size:42px}.f-43[data-v-bb327344]{font-size:43px}.f-44[data-v-bb327344]{font-size:44px}.f-45[data-v-bb327344]{font-size:45px}.f-46[data-v-bb327344]{font-size:46px}.f-47[data-v-bb327344]{font-size:47px}.f-48[data-v-bb327344]{font-size:48px}.f-49[data-v-bb327344]{font-size:49px}.f-50[data-v-bb327344]{font-size:50px}.f-51[data-v-bb327344]{font-size:51px}.f-52[data-v-bb327344]{font-size:52px}.f-53[data-v-bb327344]{font-size:53px}.f-54[data-v-bb327344]{font-size:54px}.f-55[data-v-bb327344]{font-size:55px}.f-56[data-v-bb327344]{font-size:56px}.f-57[data-v-bb327344]{font-size:57px}.f-58[data-v-bb327344]{font-size:58px}.f-59[data-v-bb327344]{font-size:59px}.f-60[data-v-bb327344]{font-size:60px}.mic-date[data-v-bb327344]{box-sizing:border-box;width:100%;height:100%;border-radius:4px;overflow:hidden;background-color:var(--mic-search-background);display:flex;flex-direction:row;align-items:center;justify-content:flex-start}.mic-date-left[data-v-bb327344]{height:70%;border-right:var(--mic-search-interval);color:var(--mic-search-color);padding:0 6px;line-height:1;display:flex;flex-direction:row;align-items:center;justify-content:center}.mic-date-right[data-v-bb327344]{flex:1}.mic-date[data-v-bb327344] .el-date-editor{width:100%!important;height:100%!important}.mic-date[data-v-bb327344] .el-input__wrapper{box-shadow:none;padding:1px 6px}.mic-date[data-v-bb327344] .el-range__icon,.mic-date[data-v-bb327344] .el-input__prefix{display:none}.mic-date[data-v-bb327344] .is-focus{box-shadow:none!important}.f-10[data-v-d35be4c9]{font-size:10px}.f-11[data-v-d35be4c9]{font-size:11px}.f-12[data-v-d35be4c9]{font-size:12px}.f-13[data-v-d35be4c9]{font-size:13px}.f-14[data-v-d35be4c9]{font-size:14px}.f-15[data-v-d35be4c9]{font-size:15px}.f-16[data-v-d35be4c9]{font-size:16px}.f-17[data-v-d35be4c9]{font-size:17px}.f-18[data-v-d35be4c9]{font-size:18px}.f-19[data-v-d35be4c9]{font-size:19px}.f-20[data-v-d35be4c9]{font-size:20px}.f-21[data-v-d35be4c9]{font-size:21px}.f-22[data-v-d35be4c9]{font-size:22px}.f-23[data-v-d35be4c9]{font-size:23px}.f-24[data-v-d35be4c9]{font-size:24px}.f-25[data-v-d35be4c9]{font-size:25px}.f-26[data-v-d35be4c9]{font-size:26px}.f-27[data-v-d35be4c9]{font-size:27px}.f-28[data-v-d35be4c9]{font-size:28px}.f-29[data-v-d35be4c9]{font-size:29px}.f-30[data-v-d35be4c9]{font-size:30px}.f-31[data-v-d35be4c9]{font-size:31px}.f-32[data-v-d35be4c9]{font-size:32px}.f-33[data-v-d35be4c9]{font-size:33px}.f-34[data-v-d35be4c9]{font-size:34px}.f-35[data-v-d35be4c9]{font-size:35px}.f-36[data-v-d35be4c9]{font-size:36px}.f-37[data-v-d35be4c9]{font-size:37px}.f-38[data-v-d35be4c9]{font-size:38px}.f-39[data-v-d35be4c9]{font-size:39px}.f-40[data-v-d35be4c9]{font-size:40px}.f-41[data-v-d35be4c9]{font-size:41px}.f-42[data-v-d35be4c9]{font-size:42px}.f-43[data-v-d35be4c9]{font-size:43px}.f-44[data-v-d35be4c9]{font-size:44px}.f-45[data-v-d35be4c9]{font-size:45px}.f-46[data-v-d35be4c9]{font-size:46px}.f-47[data-v-d35be4c9]{font-size:47px}.f-48[data-v-d35be4c9]{font-size:48px}.f-49[data-v-d35be4c9]{font-size:49px}.f-50[data-v-d35be4c9]{font-size:50px}.f-51[data-v-d35be4c9]{font-size:51px}.f-52[data-v-d35be4c9]{font-size:52px}.f-53[data-v-d35be4c9]{font-size:53px}.f-54[data-v-d35be4c9]{font-size:54px}.f-55[data-v-d35be4c9]{font-size:55px}.f-56[data-v-d35be4c9]{font-size:56px}.f-57[data-v-d35be4c9]{font-size:57px}.f-58[data-v-d35be4c9]{font-size:58px}.f-59[data-v-d35be4c9]{font-size:59px}.f-60[data-v-d35be4c9]{font-size:60px}.mic-input[data-v-d35be4c9]{box-sizing:border-box;width:100%;height:100%;border-radius:4px;overflow:hidden;background-color:var(--mic-search-background);display:flex;flex-direction:row;align-items:center;justify-content:flex-start}.mic-input-left[data-v-d35be4c9]{height:70%;border-right:var(--mic-search-interval);color:var(--mic-search-color);padding:0 6px;line-height:1;display:flex;flex-direction:row;align-items:center;justify-content:center}.mic-input-right[data-v-d35be4c9]{flex:1}.mic-input[data-v-d35be4c9] .el-input{width:100%!important;height:100%!important}.mic-input[data-v-d35be4c9] .el-input__wrapper{box-shadow:none;padding:1px 6px}.mic-input[data-v-d35be4c9] .el-input-group__append{border:none;background:none;box-shadow:none}.mic-input[data-v-d35be4c9] .el-input.is-disabled .el-input__wrapper{background:none}.mic-layout[data-v-9993530d]{display:grid;background-color:#f1f2f6;grid-template-columns:var(--mic-menu-width) calc(100vw - var(--mic-menu-width));grid-template-rows:var(--mic-header-height) calc(100vh - var(--mic-header-height) - var(--mic-footer-height)) var(--mic-footer-height);grid-template-areas:"header header" "menu contain" "menu footer"}.mic-layout-header[data-v-9993530d]{grid-area:header}.mic-layout-contain[data-v-9993530d]{grid-area:contain;overflow:auto}.mic-layout-menu[data-v-9993530d]{grid-area:menu;overflow:auto}.mic-layout-footer[data-v-9993530d]{grid-area:footer}.mic-search-box[data-v-9003d058]{width:100%;display:grid;grid-gap:14px 12px;grid-auto-rows:34px;grid-auto-flow:row dense}.f-10[data-v-fb2f025a]{font-size:10px}.f-11[data-v-fb2f025a]{font-size:11px}.f-12[data-v-fb2f025a]{font-size:12px}.f-13[data-v-fb2f025a]{font-size:13px}.f-14[data-v-fb2f025a]{font-size:14px}.f-15[data-v-fb2f025a]{font-size:15px}.f-16[data-v-fb2f025a]{font-size:16px}.f-17[data-v-fb2f025a]{font-size:17px}.f-18[data-v-fb2f025a]{font-size:18px}.f-19[data-v-fb2f025a]{font-size:19px}.f-20[data-v-fb2f025a]{font-size:20px}.f-21[data-v-fb2f025a]{font-size:21px}.f-22[data-v-fb2f025a]{font-size:22px}.f-23[data-v-fb2f025a]{font-size:23px}.f-24[data-v-fb2f025a]{font-size:24px}.f-25[data-v-fb2f025a]{font-size:25px}.f-26[data-v-fb2f025a]{font-size:26px}.f-27[data-v-fb2f025a]{font-size:27px}.f-28[data-v-fb2f025a]{font-size:28px}.f-29[data-v-fb2f025a]{font-size:29px}.f-30[data-v-fb2f025a]{font-size:30px}.f-31[data-v-fb2f025a]{font-size:31px}.f-32[data-v-fb2f025a]{font-size:32px}.f-33[data-v-fb2f025a]{font-size:33px}.f-34[data-v-fb2f025a]{font-size:34px}.f-35[data-v-fb2f025a]{font-size:35px}.f-36[data-v-fb2f025a]{font-size:36px}.f-37[data-v-fb2f025a]{font-size:37px}.f-38[data-v-fb2f025a]{font-size:38px}.f-39[data-v-fb2f025a]{font-size:39px}.f-40[data-v-fb2f025a]{font-size:40px}.f-41[data-v-fb2f025a]{font-size:41px}.f-42[data-v-fb2f025a]{font-size:42px}.f-43[data-v-fb2f025a]{font-size:43px}.f-44[data-v-fb2f025a]{font-size:44px}.f-45[data-v-fb2f025a]{font-size:45px}.f-46[data-v-fb2f025a]{font-size:46px}.f-47[data-v-fb2f025a]{font-size:47px}.f-48[data-v-fb2f025a]{font-size:48px}.f-49[data-v-fb2f025a]{font-size:49px}.f-50[data-v-fb2f025a]{font-size:50px}.f-51[data-v-fb2f025a]{font-size:51px}.f-52[data-v-fb2f025a]{font-size:52px}.f-53[data-v-fb2f025a]{font-size:53px}.f-54[data-v-fb2f025a]{font-size:54px}.f-55[data-v-fb2f025a]{font-size:55px}.f-56[data-v-fb2f025a]{font-size:56px}.f-57[data-v-fb2f025a]{font-size:57px}.f-58[data-v-fb2f025a]{font-size:58px}.f-59[data-v-fb2f025a]{font-size:59px}.f-60[data-v-fb2f025a]{font-size:60px}.mic-select[data-v-fb2f025a]{box-sizing:border-box;width:100%;height:100%;border-radius:4px;overflow:hidden;background-color:var(--mic-search-background);display:flex;flex-direction:row;align-items:center;justify-content:flex-start}.mic-select-left[data-v-fb2f025a]{height:70%;border-right:var(--mic-search-interval);color:var(--mic-search-color);padding:0 6px;line-height:1;display:flex;flex-direction:row;align-items:center;justify-content:center}.mic-select-right[data-v-fb2f025a]{flex:1}.mic-select[data-v-fb2f025a] .el-select{width:100%!important;height:100%!important}.mic-select[data-v-fb2f025a] .el-select__wrapper{box-shadow:none;padding:1px 6px}.mic-select[data-v-fb2f025a] .is-focus,.mic-select[data-v-fb2f025a] .is-hovering{box-shadow:none!important}.f-10[data-v-101c3479]{font-size:10px}.f-11[data-v-101c3479]{font-size:11px}.f-12[data-v-101c3479]{font-size:12px}.f-13[data-v-101c3479]{font-size:13px}.f-14[data-v-101c3479]{font-size:14px}.f-15[data-v-101c3479]{font-size:15px}.f-16[data-v-101c3479]{font-size:16px}.f-17[data-v-101c3479]{font-size:17px}.f-18[data-v-101c3479]{font-size:18px}.f-19[data-v-101c3479]{font-size:19px}.f-20[data-v-101c3479]{font-size:20px}.f-21[data-v-101c3479]{font-size:21px}.f-22[data-v-101c3479]{font-size:22px}.f-23[data-v-101c3479]{font-size:23px}.f-24[data-v-101c3479]{font-size:24px}.f-25[data-v-101c3479]{font-size:25px}.f-26[data-v-101c3479]{font-size:26px}.f-27[data-v-101c3479]{font-size:27px}.f-28[data-v-101c3479]{font-size:28px}.f-29[data-v-101c3479]{font-size:29px}.f-30[data-v-101c3479]{font-size:30px}.f-31[data-v-101c3479]{font-size:31px}.f-32[data-v-101c3479]{font-size:32px}.f-33[data-v-101c3479]{font-size:33px}.f-34[data-v-101c3479]{font-size:34px}.f-35[data-v-101c3479]{font-size:35px}.f-36[data-v-101c3479]{font-size:36px}.f-37[data-v-101c3479]{font-size:37px}.f-38[data-v-101c3479]{font-size:38px}.f-39[data-v-101c3479]{font-size:39px}.f-40[data-v-101c3479]{font-size:40px}.f-41[data-v-101c3479]{font-size:41px}.f-42[data-v-101c3479]{font-size:42px}.f-43[data-v-101c3479]{font-size:43px}.f-44[data-v-101c3479]{font-size:44px}.f-45[data-v-101c3479]{font-size:45px}.f-46[data-v-101c3479]{font-size:46px}.f-47[data-v-101c3479]{font-size:47px}.f-48[data-v-101c3479]{font-size:48px}.f-49[data-v-101c3479]{font-size:49px}.f-50[data-v-101c3479]{font-size:50px}.f-51[data-v-101c3479]{font-size:51px}.f-52[data-v-101c3479]{font-size:52px}.f-53[data-v-101c3479]{font-size:53px}.f-54[data-v-101c3479]{font-size:54px}.f-55[data-v-101c3479]{font-size:55px}.f-56[data-v-101c3479]{font-size:56px}.f-57[data-v-101c3479]{font-size:57px}.f-58[data-v-101c3479]{font-size:58px}.f-59[data-v-101c3479]{font-size:59px}.f-60[data-v-101c3479]{font-size:60px}.mic-vac[data-v-101c3479]{display:flex;flex-direction:row;align-items:center;justify-content:flex-end}
1
+ @charset "UTF-8";:root{--mic-theme-color:#005eba;--mic-search-color:#333;--mic-search-background:#fff;--mic-search-interval:1px solid #ddd}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mic-loader{animation:spin 2s linear infinite}@keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes custom-spin-move{to{opacity:1}}.circular{display:inline;height:30px;width:30px;animation:loading-rotate 2s linear infinite}.loading-path .dot1{transform:translate(3.75px,3.75px);fill:var(--mic-theme-color);animation:custom-spin-move 1s infinite linear alternate;opacity:.3}.loading-path .dot2{transform:translate(calc(100% - 3.75px),3.75px);fill:var(--mic-theme-color);animation:custom-spin-move 1s infinite linear alternate;opacity:.3;animation-delay:.4s}.loading-path .dot3{transform:translate(3.75px,calc(100% - 3.75px));fill:var(--mic-theme-color);animation:custom-spin-move 1s infinite linear alternate;opacity:.3;animation-delay:1.2s}.loading-path .dot4{transform:translate(calc(100% - 3.75px),calc(100% - 3.75px));fill:var(--mic-theme-color);animation:custom-spin-move 1s infinite linear alternate;opacity:.3;animation-delay:.8s}.mic-search-box{width:100%;display:grid;grid-gap:14px 12px;grid-auto-rows:34px;grid-auto-flow:row dense}.mic-search-vac{display:flex;flex-direction:row;align-items:center;justify-content:flex-end}.mic-search-item{width:100%;height:100%;border-radius:4px;overflow:hidden;background-color:var(--mic-search-background);display:flex;flex-direction:row;align-items:center;justify-content:flex-start}.mic-search-item-left{height:70%;border-right:var(--mic-search-interval);color:var(--mic-search-color);padding:0 6px;line-height:1;display:flex;flex-direction:row;align-items:center;justify-content:center}.mic-search-item-right{flex:1}.mic-search-item .el-date-editor,.mic-search-item .el-input,.mic-search-item .el-select{width:100%!important;height:100%!important}.mic-search-item .el-input__wrapper,.mic-search-item .el-select__wrapper{box-shadow:none;padding:1px 6px}.mic-search-item .el-input-group__append{border:none;background:none;box-shadow:none}.mic-search-item .el-input.is-disabled .el-input__wrapper{background:none}.mic-search-item .el-range__icon,.mic-search-item .el-input__prefix{display:none}.mic-search-item .is-focus,.mic-search-item .is-hovering{box-shadow:none!important}.mic-table{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:100%;background-color:#fff}.mic-table-button{width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between}.mic-table-button-left,.mic-table-button-right{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px}.mic-table-button-left .el-button+.el-button,.mic-table-button-right .el-button+.el-button{margin:0!important}.mic-table-cont{margin-top:10px;width:100%}.mic-table-page{width:100%;margin-top:10px;display:flex;flex-direction:row;align-items:center;justify-content:space-between}.mic-table-page .el-pager .number{border:1px solid #fff;margin-left:10px}.mic-table-page .el-pager .number:last-child{margin-right:10px}.mic-table-page .el-pager .active{border:1px solid #005eba!important;color:#005eba!important}.mic-dialog-module{position:relative;padding-left:12px;font-size:16px;font-weight:700;margin-bottom:10px}.mic-dialog-module:before{content:"";width:4px;height:18px;border-radius:2px;background-color:#1a6bf3;position:absolute;left:0;top:2px}