meixioacomponent 0.4.36 → 0.4.39

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "meixioacomponent",
3
- "version": "0.4.36",
3
+ "version": "0.4.39",
4
4
  "private": false,
5
5
  "author": "YuRi",
6
6
  "main": "lib/meixioacomponent.umd.min.js",
@@ -0,0 +1,6 @@
1
+ import baseNumberInput from './index.vue'
2
+
3
+ baseNumberInput.install = function (Vue) {
4
+ Vue.component(baseNumberInput.name, baseNumberInput)
5
+ }
6
+ export default baseNumberInput
@@ -0,0 +1,95 @@
1
+ <template>
2
+ <div class="pro-number-wrap">
3
+ <el-input-number
4
+ :size="size"
5
+ ref="target"
6
+ :controls="false"
7
+ :class="{
8
+ unit: unit,
9
+ }"
10
+ :precision="precision"
11
+ v-model.number="module"
12
+ :disabled="disabled"
13
+ :maxlength="maxlength"
14
+ style="width: 100%; height: 100%;"
15
+ ></el-input-number>
16
+ <div class="number-unit" v-if="unit">
17
+ <span>{{ unit }}</span>
18
+ </div>
19
+ </div>
20
+ </template>
21
+
22
+ <script>
23
+ export default {
24
+ name: 'baseNumberInput',
25
+ data() {
26
+ return {}
27
+ },
28
+ props: {
29
+ value: {},
30
+ precision: {
31
+ default: 0,
32
+ },
33
+ unit: {},
34
+
35
+ disabled: {
36
+ default: false,
37
+ },
38
+
39
+ maxlength: {},
40
+
41
+ size: {},
42
+ },
43
+ computed: {
44
+ module: {
45
+ set(val) {
46
+ this.$emit('input', val)
47
+ },
48
+ get() {
49
+ return this.$props.value
50
+ },
51
+ },
52
+ },
53
+ methods: {
54
+ focus() {
55
+ this.$refs.target.focus()
56
+ },
57
+ },
58
+ }
59
+ </script>
60
+
61
+ <style lang="less" scoped>
62
+ .pro-number-wrap {
63
+ width: 100%;
64
+ display: flex;
65
+ position: relative;
66
+ justify-items: center;
67
+ &:hover {
68
+ border-color: var(--color-primary);
69
+ }
70
+ .unit {
71
+ width: calc(100%);
72
+ border-radius: inherit;
73
+ /deep/ input {
74
+ padding-right: 34px !important;
75
+ }
76
+ }
77
+
78
+ .number-unit {
79
+ width: 28px;
80
+ height: 28px;
81
+ right: 2px;
82
+ top: 50%;
83
+ transform: translateY(-50%);
84
+ text-align: center;
85
+ line-height: 28px;
86
+ position: absolute;
87
+ background: var(--color-gray-d);
88
+ span {
89
+ color: var(--font-color-d);
90
+ font-size: var(--font-size-s);
91
+ font-weight: var(--font-weight-g);
92
+ }
93
+ }
94
+ }
95
+ </style>
@@ -37,6 +37,7 @@ import baseTreeSelect from './base/baseTreeSelect'
37
37
  import baseUploadTemplate from './base/baseUploadTemplate'
38
38
  import VueCropper from 'vue-cropper'
39
39
  import baseList from './base/baseList'
40
+ import baseNumberInput from './base/baseNumberInput'
40
41
  // js 文件相关
41
42
  import Theme from '../config/theme/theme'
42
43
  import DynamicMount from './dynamicmount/index.js'
@@ -89,7 +90,8 @@ const meixicomponents = [
89
90
  basePopoverButton,
90
91
  baseTreeSelect,
91
92
  baseUploadTemplate,
92
- baseList
93
+ baseList,
94
+ baseNumberInput
93
95
  ]
94
96
 
95
97
  const install = (Vue) => {
@@ -145,6 +147,7 @@ export default {
145
147
  basePopoverButton,
146
148
  baseTreeSelect,
147
149
  baseUploadTemplate,
150
+ baseNumberInput,
148
151
  Theme,
149
152
  SelectStore,
150
153
  useImg,
@@ -169,6 +169,7 @@ export default {
169
169
  },
170
170
  methods: {
171
171
  createSlots() {
172
+ this.slotList=[];
172
173
  for (let i = 0; i < this.module.length; i++) {
173
174
  let item = this.module[i]
174
175
  for (let j = 0; j < item.formList.length; j++) {
@@ -202,6 +203,9 @@ export default {
202
203
  this.$set(formItem, 'renderHide', result)
203
204
  } else if (type == 'disable') {
204
205
  this.$set(formItem, 'disabled', result)
206
+ } else if (type == 'template') {
207
+ formItem.type = result
208
+ this.createSlots()
205
209
  }
206
210
  }
207
211
  },
@@ -396,6 +396,8 @@ export default {
396
396
  this.$set(formItem, 'renderHide', result)
397
397
  } else if (type == 'disable') {
398
398
  this.$set(formItem, 'disabled', result)
399
+ } else if (type == 'template') {
400
+ formItem.type = result
399
401
  }
400
402
  }
401
403
  }
@@ -83,45 +83,28 @@
83
83
  style="width: 100%; height: 100%;"
84
84
  ></el-input>
85
85
  <!-- 数字类型无小数 -->
86
- <div class="pro-number-wrap" v-else-if="config.type == 'number'">
87
- <el-input-number
88
- ref="target"
89
- :size="size"
90
- :class="{
91
- unit: config.unit,
92
- }"
93
- :controls="false"
94
- v-model.number="module"
95
- :disabled="isDisabled"
96
- :maxlength="config.maxlength"
97
- style="width: 100%; height: 100%;"
98
- ></el-input-number>
99
-
100
- <div class="number-unit" v-if="config.unit">
101
- <span>{{ config.unit }}</span>
102
- </div>
103
- </div>
86
+ <BaseNumberInput
87
+ v-else-if="config.type == 'number'"
88
+ ref="target"
89
+ :size="size"
90
+ v-model="module"
91
+ :unit="config.unit"
92
+ :disabled="isDisabled"
93
+ :maxlength="config.maxlength"
94
+ ></BaseNumberInput>
104
95
 
105
96
  <!--数字类型两位小数 -->
106
97
 
107
- <div class="pro-number-wrap" v-else-if="config.type == 'number2'">
108
- <el-input-number
109
- :size="size"
110
- ref="target"
111
- :precision="2"
112
- :controls="false"
113
- :class="{
114
- unit: config.unit,
115
- }"
116
- v-model.number="module"
117
- :disabled="isDisabled"
118
- :maxlength="config.maxlength"
119
- style="width: 100%; height: 100%;"
120
- ></el-input-number>
121
- <div class="number-unit" v-if="config.unit">
122
- <span>{{ config.unit }}</span>
123
- </div>
124
- </div>
98
+ <BaseNumberInput
99
+ v-else-if="config.type == 'number2'"
100
+ ref="target"
101
+ :size="size"
102
+ v-model="module"
103
+ :precision="2"
104
+ :unit="config.unit"
105
+ :disabled="isDisabled"
106
+ :maxlength="config.maxlength"
107
+ ></BaseNumberInput>
125
108
 
126
109
  <!-- select选择器 -->
127
110
  <el-select
@@ -240,6 +223,7 @@
240
223
  <script>
241
224
  //
242
225
  import componentConfig from '../../../config/componentConfig'
226
+ import BaseNumberInput from '../../base/baseNumberInput/index.vue'
243
227
  export default {
244
228
  data() {
245
229
  return {
@@ -270,7 +254,6 @@ export default {
270
254
  config: {
271
255
  type: Object,
272
256
  },
273
-
274
257
  form: {
275
258
  type: Boolean,
276
259
  default: false,
@@ -279,19 +262,15 @@ export default {
279
262
  type: String,
280
263
  default: `right`,
281
264
  },
282
-
283
265
  value: {},
284
-
285
266
  size: {
286
267
  type: String,
287
268
  default: 'small',
288
269
  },
289
-
290
270
  width: {
291
271
  type: String,
292
272
  },
293
273
  },
294
-
295
274
  computed: {
296
275
  isDisabled() {
297
276
  const { config, disabled } = this.$props
@@ -306,15 +285,12 @@ export default {
306
285
  selectStore() {
307
286
  return componentConfig.selectStore.getStore(this.$props.config.useStore)
308
287
  },
309
-
310
288
  selectData() {
311
289
  return this.selectStore.getData()
312
290
  },
313
-
314
291
  selectConfig() {
315
292
  return this.selectStore.getConfig()
316
293
  },
317
-
318
294
  spContentType() {
319
295
  let configType = this.$props.config.type
320
296
  if (
@@ -327,24 +303,19 @@ export default {
327
303
  }
328
304
  return false
329
305
  },
330
-
331
306
  typeOftemplate() {
332
307
  const { type } = this.$props.config
333
-
334
308
  if (type == 'template' || type == 'area') {
335
309
  return true
336
310
  }
337
-
338
311
  return false
339
312
  },
340
-
341
313
  contentValue() {
342
314
  let type = this.$props.config.type
343
315
  switch (type) {
344
316
  case 'input':
345
317
  case 'textarea':
346
318
  return this.module
347
-
348
319
  case 'select':
349
320
  let list = this.selectData
350
321
  const selectConfig = this.selectConfig
@@ -354,7 +325,6 @@ export default {
354
325
  let index = list.findIndex((item) => {
355
326
  return item[`${selectConfig.value}`] == this.module
356
327
  })
357
-
358
328
  return list[index][`${selectConfig.label}`]
359
329
  } else {
360
330
  return '暂无数据'
@@ -365,7 +335,6 @@ export default {
365
335
  let index = list.findIndex((citem) => {
366
336
  return citem[`${selectConfig.value}`] == item
367
337
  })
368
-
369
338
  text += text
370
339
  ? ` / ${list[index][`${selectConfig.label}`]}`
371
340
  : list[index][`${selectConfig.label}`]
@@ -376,7 +345,6 @@ export default {
376
345
  this.loadSelectData()
377
346
  return this.$props.config.value
378
347
  }
379
-
380
348
  // case "time":
381
349
  // if (this.module) {
382
350
  // let config = this.$props.config;
@@ -385,12 +353,10 @@ export default {
385
353
  // } else {
386
354
  // return "暂无时间";
387
355
  // }
388
-
389
356
  default:
390
357
  return this.module
391
358
  }
392
359
  },
393
-
394
360
  datePickPlace() {
395
361
  const { datePickPlace } = this.$props.config
396
362
  if (!datePickPlace || datePickPlace.length < 2) {
@@ -398,21 +364,17 @@ export default {
398
364
  }
399
365
  return datePickPlace
400
366
  },
401
-
402
367
  type() {
403
368
  return this.$props.config.type
404
369
  },
405
-
406
370
  checkMax() {
407
371
  let max = this.$props.config.max
408
372
  return max ? max : this.$props.config.list.length
409
373
  },
410
-
411
374
  checkMin() {
412
375
  let min = this.$props.config.min
413
376
  return min < 0 || min == undefined || min == null ? 0 : min
414
377
  },
415
-
416
378
  isDatePick() {
417
379
  return (
418
380
  this.type == 'time' ||
@@ -420,7 +382,6 @@ export default {
420
382
  this.type == 'daterange'
421
383
  )
422
384
  },
423
-
424
385
  module: {
425
386
  get() {
426
387
  let type = this.$props.config.type
@@ -429,7 +390,6 @@ export default {
429
390
  this.loadSelectData()
430
391
  }
431
392
  }
432
-
433
393
  return this.$props.value
434
394
  },
435
395
  set(val) {
@@ -505,7 +465,6 @@ export default {
505
465
  type: item.type,
506
466
  result: item.fn(val),
507
467
  }
508
-
509
468
  console.log(val)
510
469
  this.$emit('disableWatcherResult', obj)
511
470
  })
@@ -516,6 +475,7 @@ export default {
516
475
  this.init()
517
476
  },
518
477
  },
478
+ components: { BaseNumberInput },
519
479
  }
520
480
  </script>
521
481
 
@@ -675,36 +635,4 @@ export default {
675
635
  min-height: 24px;
676
636
  }
677
637
  }
678
- .pro-number-wrap {
679
- width: 100%;
680
- display: flex;
681
- position: relative;
682
- justify-items: center;
683
- &:hover {
684
- border-color: var(--color-primary);
685
- }
686
- .unit {
687
- width: calc(100%);
688
- border-radius: inherit;
689
- /deep/ input {
690
- padding-right: 34px !important;
691
- }
692
- }
693
-
694
- .number-unit {
695
- width: 28px;
696
- height: 28px;
697
- right: 2px;
698
- top: 50%;
699
- transform: translateY(-50%);
700
- text-align: center;
701
- line-height: 28px;
702
- position: absolute;
703
- background: var(--color-gray-d);
704
- span {
705
- font-size: var(--font-color-d);
706
- font-weight: var(--font-weight-g);
707
- }
708
- }
709
- }
710
638
  </style>
@@ -555,9 +555,13 @@ export default {
555
555
  :modallAppendToBody="false"
556
556
  :footerHandleConfig="footerHandleConfig"
557
557
  >
558
- <template slot="formWrap-test2">
559
- <div style="width: 100%; height: 100px; background: red;"></div>
558
+ <template v-slot:formslot-test1="data">
559
+ <el-input v-model="data.scope[0].value"></el-input>
560
560
  </template>
561
+
562
+ <!-- <template slot="formWrap-test2">
563
+ <div style="width: 100%; height: 100px; background: red;"></div>
564
+ </template> -->
561
565
  </base-dialog-form>
562
566
  </template>
563
567
 
@@ -606,8 +610,9 @@ export default {
606
610
  },
607
611
  {
608
612
  key: 'test3',
609
- type: 'number',
610
-
613
+ type: 'number2',
614
+ unit: '元',
615
+
611
616
  disabled: false,
612
617
  value: 17490,
613
618
  color: 'warn',
@@ -626,77 +631,7 @@ export default {
626
631
  type: 'daterange',
627
632
  disabled: false,
628
633
  label: '下次联系时间',
629
- datePickPlace:['开始时间','至','结束时间'],
630
- },
631
- {
632
- value: [2],
633
- key: 'test6',
634
- type: 'select',
635
- disabled: false,
636
- label: '商机状态组',
637
- multipleLimit: 2,
638
- useStore: 'testSelectStore',
639
- },
640
- {
641
- value: 2,
642
- key: 'test7',
643
- type: 'select',
644
- disabled: false,
645
- label: '商机阶段',
646
- useStore: 'testSelectStore',
647
- },
648
- {
649
- value: '',
650
- key: 'test8',
651
- type: 'textarea',
652
- disabled: false,
653
- label: '备注',
654
- },
655
- ],
656
- },
657
- {
658
- formType: 'template',
659
- key: 'test2',
660
- formTitle: '基本信息',
661
- formList: [
662
- {
663
- value: '签约行业',
664
- key: 'test1',
665
- type: 'input',
666
- disabled: true,
667
- label: '商机名称',
668
- },
669
- {
670
- key: 'test2',
671
- type: 'input',
672
- disabled: false,
673
- label: '客户名称',
674
- value: '河南郑州建设股份有限公司 ',
675
- click: (formItem) => {
676
- console.log(formItem)
677
- },
678
- },
679
- {
680
- key: 'test3',
681
- type: 'input',
682
- disabled: false,
683
- value: 17490,
684
- color: 'warn',
685
- label: '商机金额',
686
- },
687
- {
688
- value: '',
689
- key: 'test4',
690
- type: 'time',
691
- disabled: false,
692
- label: '预计成交日期',
693
- },
694
- {
695
- value: '',
696
- key: 'test5',
697
- type: 'time',
698
- disabled: false,
699
- label: '下次联系时间',
634
+ datePickPlace: ['开始时间', '至', '结束时间'],
700
635
  },
701
636
  {
702
637
  value: [2],
@@ -724,19 +659,89 @@ export default {
724
659
  },
725
660
  ],
726
661
  },
727
- {
728
- key: 'test3',
729
- formTitle: '测试活动图片',
730
- formType: 'upload',
731
- max: 3,
732
- formList: [
733
- {
734
- value: [],
735
- key: 'test1',
736
- label: '图片上传',
737
- },
738
- ],
739
- },
662
+ // {
663
+ // formType: 'template',
664
+ // key: 'test2',
665
+ // formTitle: '基本信息',
666
+ // formList: [
667
+ // {
668
+ // value: '签约行业',
669
+ // key: 'test1',
670
+ // type: 'input',
671
+ // disabled: true,
672
+ // label: '商机名称',
673
+ // },
674
+ // {
675
+ // key: 'test2',
676
+ // type: 'input',
677
+ // disabled: false,
678
+ // label: '客户名称',
679
+ // value: '河南郑州建设股份有限公司 ',
680
+ // click: (formItem) => {
681
+ // console.log(formItem)
682
+ // },
683
+ // },
684
+ // {
685
+ // key: 'test3',
686
+ // type: 'input',
687
+ // disabled: false,
688
+ // value: 17490,
689
+ // color: 'warn',
690
+ // label: '商机金额',
691
+ // },
692
+ // {
693
+ // value: '',
694
+ // key: 'test4',
695
+ // type: 'time',
696
+ // disabled: false,
697
+ // label: '预计成交日期',
698
+ // },
699
+ // {
700
+ // value: '',
701
+ // key: 'test5',
702
+ // type: 'time',
703
+ // disabled: false,
704
+ // label: '下次联系时间',
705
+ // },
706
+ // {
707
+ // value: [2],
708
+ // key: 'test6',
709
+ // type: 'select',
710
+ // disabled: false,
711
+ // label: '商机状态组',
712
+ // multipleLimit: 2,
713
+ // useStore: 'testSelectStore',
714
+ // },
715
+ // {
716
+ // value: 2,
717
+ // key: 'test7',
718
+ // type: 'select',
719
+ // disabled: false,
720
+ // label: '商机阶段',
721
+ // useStore: 'testSelectStore',
722
+ // },
723
+ // {
724
+ // value: '',
725
+ // key: 'test8',
726
+ // type: 'textarea',
727
+ // disabled: false,
728
+ // label: '备注',
729
+ // },
730
+ // ],
731
+ // },
732
+ // {
733
+ // key: 'test3',
734
+ // formTitle: '测试活动图片',
735
+ // formType: 'upload',
736
+ // max: 3,
737
+ // formList: [
738
+ // {
739
+ // value: [],
740
+ // key: 'test1',
741
+ // label: '图片上传',
742
+ // },
743
+ // ],
744
+ // },
740
745
  ],
741
746
  rulesList: {},
742
747
  footerHandleConfig: [],
@@ -751,7 +756,7 @@ export default {
751
756
  effects: [
752
757
  {
753
758
  key: 'test1',
754
- type: 'hide',
759
+ type: 'template',
755
760
  fn: this.hideMenuTypeOfButton,
756
761
  },
757
762
  ],
@@ -799,7 +804,10 @@ export default {
799
804
  props: { index: {} },
800
805
  methods: {
801
806
  hideMenuTypeOfButton(val) {
802
- return val == 1
807
+ if (val == 1) {
808
+ return 'input'
809
+ }
810
+ return 'template'
803
811
  },
804
812
  },
805
813
  }