meixioacomponent 0.4.2 → 0.4.6

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.
Files changed (56) hide show
  1. package/lib/meixioacomponent.common.js +16241 -19856
  2. package/lib/meixioacomponent.umd.js +16353 -19968
  3. package/lib/meixioacomponent.umd.min.js +33 -34
  4. package/lib/style/element/index.css +1182 -1153
  5. package/lib/style/theme/light.less +5 -4
  6. package/package.json +2 -2
  7. package/packages/components/base/baseCropper/index.vue +2 -1
  8. package/packages/components/base/baseDialog/index.vue +13 -7
  9. package/packages/components/base/baseDrawer/index.vue +5 -2
  10. package/packages/components/base/baseIcon/index.vue +1 -2
  11. package/packages/components/base/baseList/index.js +6 -0
  12. package/packages/components/base/baseList/index.vue +48 -0
  13. package/packages/components/base/baseList/scrollbar/index.js +8 -0
  14. package/packages/components/base/baseList/scrollbar/src/bar.js +92 -0
  15. package/packages/components/base/baseList/scrollbar/src/main.js +150 -0
  16. package/packages/components/base/baseList/scrollbar/src/util.js +34 -0
  17. package/packages/components/base/baseNumberInput/index.js +6 -0
  18. package/packages/components/base/baseNumberInput/index.vue +191 -0
  19. package/packages/components/base/basePlainTable/basePlainTable.vue +78 -12
  20. package/packages/components/base/basePopoverButton/index.vue +1 -1
  21. package/packages/components/base/baseSection/baseSection.vue +24 -11
  22. package/packages/components/base/baseSingleImgUpload/index.js +6 -0
  23. package/packages/components/base/baseSingleImgUpload/index.vue +147 -0
  24. package/packages/components/base/baseStoreSelect/index.js +6 -0
  25. package/packages/components/base/baseStoreSelect/index.vue +159 -0
  26. package/packages/components/base/baseToggle/toggle.vue +22 -3
  27. package/packages/components/base/baseTreeSelect/index.vue +7 -1
  28. package/packages/components/base/baseUpload/baseUpload.vue +23 -0
  29. package/packages/components/base/baseUpload/baseUploadItem.vue +2 -3
  30. package/packages/components/base/baseUpload/mixins.js +12 -2
  31. package/packages/components/base/baseUploadTemplate/index.vue +19 -3
  32. package/packages/components/base/upload/upload.vue +36 -13
  33. package/packages/components/base/upload/uploadItem.vue +40 -17
  34. package/packages/components/dynamicmount/index.js +30 -29
  35. package/packages/components/index.js +19 -2
  36. package/packages/components/proForm/dialogForm/baseDialogForm.vue +29 -19
  37. package/packages/components/proForm/proForm/proFormItem/index.js +6 -0
  38. package/packages/components/proForm/proForm/{pro_form_item.vue → proFormItem/pro_form_item.vue} +161 -99
  39. package/packages/components/proForm/proForm/pro_form.vue +70 -16
  40. package/packages/components/proForm/proFormWrap/pro_form_wrap.vue +70 -28
  41. package/packages/components/proPageTable/oa_pro_colum_config.vue +24 -28
  42. package/packages/components/proPageTable/oa_pro_footer.vue +12 -10
  43. package/packages/components/proPageTable/oa_pro_screen.vue +1 -0
  44. package/packages/components/proPageTable/oa_pro_screen_item.vue +6 -6
  45. package/packages/components/proPageTable/oa_pro_table.vue +44 -20
  46. package/packages/components/style/element/index.css +1182 -1153
  47. package/packages/components/style/theme/light.less +5 -4
  48. package/packages/config/selectStore/SelectStore.js +26 -17
  49. package/packages/config/uploadRequest.js +1 -0
  50. package/packages/utils/upload.js +22 -21
  51. package/packages/utils/utils.js +110 -111
  52. package/src/App.vue +9 -14
  53. package/src/component/test.vue +333 -233
  54. package/src/component/testSelectStore.js +25 -13
  55. package/src/config/CompanyInfoConfig.js +4 -2
  56. package/packages/components/base/brieflyItem.vue +0 -198
@@ -12,7 +12,8 @@
12
12
  //滚动条样式
13
13
  --scrollbar-color: #1f23392d;
14
14
  // 灰色类型
15
- --color-gray-d: #dfe1e6;
15
+ // --color-gray-d: #dfe1e6;
16
+ --color-gray-d: #ebecf0;
16
17
  --color-gray-m: #f4f5f7;
17
18
  --color-gray-s: #fafbfc;
18
19
 
@@ -20,10 +21,10 @@
20
21
  --font-color-d: #172b4d;
21
22
  --font-color-m: #344563;
22
23
  --font-color-s: #5e6c84;
23
- --font-color-ds: #8f959e;
24
+ --font-color-ds: #8f959e;
24
25
  // 字体颜色 按钮等primary 里面文字的白色非必要不要改
25
26
  --text-white: white;
26
- --form-label-color: #42526e;
27
+ --form-label-color: #42526E;
27
28
  // 下拉 使用的组件包括:下拉菜单 / 气泡确认框 / 选择器 /
28
29
  --shadow-down: 0px 4px 10px rgba(0, 0, 0, 0.05);
29
30
  // fixed 使用的组件包括:全局提示 / 消息通知
@@ -35,4 +36,4 @@
35
36
  --color-table-header: #ebecf0;
36
37
  // tooltip 背景颜色
37
38
  --color-tooltip: #242424;
38
- }
39
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "meixioacomponent",
3
- "version": "0.4.02",
3
+ "version": "0.4.6",
4
4
  "private": false,
5
5
  "author": "YuRi",
6
6
  "main": "lib/meixioacomponent.umd.min.js",
@@ -10,6 +10,7 @@
10
10
  "build:theme": "cp-cli packages/components/style/ lib/style"
11
11
  },
12
12
  "dependencies": {
13
+ "awe-dnd": "^0.3.4",
13
14
  "axios": "^0.27.2",
14
15
  "core-js": "^3.6.5",
15
16
  "cp-cli": "^1.0.2",
@@ -20,7 +21,6 @@
20
21
  "vue": "^2.7.0",
21
22
  "vue-cropper": "^0.5.8",
22
23
  "vue-router": "^3.2.0",
23
- "vuedraggable": "^2.24.3",
24
24
  "vuex": "^3.4.0"
25
25
  },
26
26
  "devDependencies": {
@@ -7,7 +7,7 @@
7
7
  :destroy="closeCropper"
8
8
  :contentHeight="`400px`"
9
9
  >
10
- <div class="base-dialog-wrap" slot="dialog-content">
10
+ <div class="base-dialog-wrap" slot="dialog-content" style="height:400px">
11
11
  <vueCropper
12
12
  :img="imgUrl"
13
13
  ref="cropper"
@@ -117,6 +117,7 @@ export default {
117
117
  </script>
118
118
 
119
119
  <style lang="less" scoped>
120
+
120
121
  .base-dialog-wrap {
121
122
  width: 100%;
122
123
  height: 100%;
@@ -6,7 +6,6 @@
6
6
  :modal="modal"
7
7
  :width="width"
8
8
  :show-close="false"
9
- :before-close="beforeClose"
10
9
  :close-on-click-modal="false"
11
10
  :close-on-press-escape="false"
12
11
  :append-to-body="appendToBody"
@@ -43,13 +42,15 @@
43
42
  :event="true"
44
43
  v-if="hasCloseIcon"
45
44
  :name="`meixicomponenticon-close`"
46
- @iconClick="iconClick"
45
+ @iconClick="onHandleClose"
47
46
  ></base-icon>
48
47
  </div>
49
48
  </div>
50
- <div class="dialog-content-wrap" :style="dialogContentStyle">
49
+
50
+ <base-list class="dialog-content-wrap" :style="dialogContentStyle">
51
51
  <slot name="dialog-content"></slot>
52
- </div>
52
+ </base-list>
53
+
53
54
  <slot
54
55
  class="dialog-footer-wrap"
55
56
  slot="footer"
@@ -205,8 +206,14 @@ export default {
205
206
  this.centerDialogVisible = false
206
207
  }
207
208
  },
208
- iconClick() {
209
- this.closeDialog()
209
+ onHandleClose() {
210
+ const { beforeClose } = this.$props
211
+ if (beforeClose) {
212
+ // 先执行传入的方法 this.closeDialog 再手动执行关闭的方法
213
+ this.beforeClose(this.closeDialog)
214
+ } else {
215
+ this.closeDialog()
216
+ }
210
217
  },
211
218
 
212
219
  handleCache() {
@@ -225,7 +232,6 @@ export default {
225
232
  .dialog-content-wrap {
226
233
  width: 100%;
227
234
  height: auto;
228
- max-height: 70vh;
229
235
  overflow-y: auto;
230
236
  }
231
237
  }
@@ -38,14 +38,16 @@
38
38
  @iconClick="iconClick"
39
39
  ></base-icon>
40
40
  </div>
41
- <div class="drawer-content" :style="contentStyle">
41
+
42
+ <base-list class="drawer-content" :style="contentStyle">
42
43
  <slot name="drawer-content"></slot>
43
- </div>
44
+ </base-list>
44
45
  </div>
45
46
  </el-drawer>
46
47
  </template>
47
48
 
48
49
  <script>
50
+ import baseList from '../baseList/index.vue'
49
51
  import UseResize from '../../../config/use/UseResize'
50
52
  export default {
51
53
  name: 'baseDrawer',
@@ -61,6 +63,7 @@ export default {
61
63
  },
62
64
 
63
65
  mounted() {},
66
+ components: { baseList },
64
67
  props: {
65
68
  resize: {
66
69
  type: Boolean,
@@ -75,7 +75,7 @@ export default {
75
75
  color = `var(--icon-color-s)`
76
76
  break
77
77
  default:
78
- color = `var(--${propsColor})`
78
+ color = propsColor
79
79
  break
80
80
  }
81
81
  return color
@@ -112,7 +112,6 @@ export default {
112
112
  methods: {
113
113
  iconClick() {
114
114
  if (this.$props.event) {
115
- console.log('das')
116
115
  this.$emit('iconClick')
117
116
  }
118
117
  },
@@ -0,0 +1,6 @@
1
+ import baseList from './index.vue'
2
+
3
+ baseList.install = function (Vue) {
4
+ Vue.component(baseList.name, baseList)
5
+ }
6
+ export default baseList
@@ -0,0 +1,48 @@
1
+ <template>
2
+ <elScrollBar
3
+ class="list-wrap"
4
+ :onScroll="onScroll"
5
+ :noresize="noresize"
6
+ :wrapStyle="wrapStyle"
7
+ :viewStyle="viewStyle"
8
+ >
9
+ <slot>
10
+
11
+ </slot>
12
+ </elScrollBar>
13
+ </template>
14
+
15
+ <script>
16
+ import elScrollBar from './scrollbar/src/main'
17
+ export default {
18
+ name: 'baseList',
19
+ data() {
20
+ return {}
21
+ },
22
+ props: {
23
+ onScroll: {
24
+ type: Function,
25
+ },
26
+ noresize: {
27
+ type: Boolean,
28
+ default: true,
29
+ },
30
+ wrapStyle: {
31
+ type: Object,
32
+ },
33
+ viewStyle: {
34
+ type: Object,
35
+ },
36
+ },
37
+ components: {
38
+ elScrollBar,
39
+ },
40
+ }
41
+ </script>
42
+
43
+ <style lang="less" scoped>
44
+ .list-wrap {
45
+ width: 100%;
46
+ height: 100%;
47
+ }
48
+ </style>
@@ -0,0 +1,8 @@
1
+ import Scrollbar from './src/main';
2
+
3
+ /* istanbul ignore next */
4
+ Scrollbar.install = function(Vue) {
5
+ Vue.component(Scrollbar.name, Scrollbar);
6
+ };
7
+
8
+ export default Scrollbar;
@@ -0,0 +1,92 @@
1
+ import { on, off } from 'element-ui/src/utils/dom';
2
+ import { renderThumbStyle, BAR_MAP } from './util';
3
+
4
+ /* istanbul ignore next */
5
+ export default {
6
+ name: 'Bar',
7
+
8
+ props: {
9
+ vertical: Boolean,
10
+ size: String,
11
+ move: Number
12
+ },
13
+
14
+ computed: {
15
+ bar() {
16
+ return BAR_MAP[this.vertical ? 'vertical' : 'horizontal'];
17
+ },
18
+
19
+ wrap() {
20
+ return this.$parent.wrap;
21
+ }
22
+ },
23
+
24
+ render(h) {
25
+ const { size, move, bar } = this;
26
+
27
+ return (
28
+ <div
29
+ class={ ['el-scrollbar__bar', 'is-' + bar.key] }
30
+ onMousedown={ this.clickTrackHandler } >
31
+ <div
32
+ ref="thumb"
33
+ class="el-scrollbar__thumb"
34
+ onMousedown={ this.clickThumbHandler }
35
+ style={ renderThumbStyle({ size, move, bar }) }>
36
+ </div>
37
+ </div>
38
+ );
39
+ },
40
+
41
+ methods: {
42
+ clickThumbHandler(e) {
43
+ // prevent click event of right button
44
+ if (e.ctrlKey || e.button === 2) {
45
+ return;
46
+ }
47
+ this.startDrag(e);
48
+ this[this.bar.axis] = (e.currentTarget[this.bar.offset] - (e[this.bar.client] - e.currentTarget.getBoundingClientRect()[this.bar.direction]));
49
+ },
50
+
51
+ clickTrackHandler(e) {
52
+ const offset = Math.abs(e.target.getBoundingClientRect()[this.bar.direction] - e[this.bar.client]);
53
+ const thumbHalf = (this.$refs.thumb[this.bar.offset] / 2);
54
+ const thumbPositionPercentage = ((offset - thumbHalf) * 100 / this.$el[this.bar.offset]);
55
+
56
+ this.wrap[this.bar.scroll] = (thumbPositionPercentage * this.wrap[this.bar.scrollSize] / 100);
57
+ },
58
+
59
+ startDrag(e) {
60
+ e.stopImmediatePropagation();
61
+ this.cursorDown = true;
62
+
63
+ on(document, 'mousemove', this.mouseMoveDocumentHandler);
64
+ on(document, 'mouseup', this.mouseUpDocumentHandler);
65
+ document.onselectstart = () => false;
66
+ },
67
+
68
+ mouseMoveDocumentHandler(e) {
69
+ if (this.cursorDown === false) return;
70
+ const prevPage = this[this.bar.axis];
71
+
72
+ if (!prevPage) return;
73
+
74
+ const offset = ((this.$el.getBoundingClientRect()[this.bar.direction] - e[this.bar.client]) * -1);
75
+ const thumbClickPosition = (this.$refs.thumb[this.bar.offset] - prevPage);
76
+ const thumbPositionPercentage = ((offset - thumbClickPosition) * 100 / this.$el[this.bar.offset]);
77
+
78
+ this.wrap[this.bar.scroll] = (thumbPositionPercentage * this.wrap[this.bar.scrollSize] / 100);
79
+ },
80
+
81
+ mouseUpDocumentHandler(e) {
82
+ this.cursorDown = false;
83
+ this[this.bar.axis] = 0;
84
+ off(document, 'mousemove', this.mouseMoveDocumentHandler);
85
+ document.onselectstart = null;
86
+ }
87
+ },
88
+
89
+ destroyed() {
90
+ off(document, 'mouseup', this.mouseUpDocumentHandler);
91
+ }
92
+ };
@@ -0,0 +1,150 @@
1
+ // reference https://github.com/noeldelgado/gemini-scrollbar/blob/master/index.js
2
+
3
+ import {
4
+ addResizeListener,
5
+ removeResizeListener,
6
+ } from 'element-ui/src/utils/resize-event'
7
+ import scrollbarWidth from 'element-ui/src/utils/scrollbar-width'
8
+ import { toObject } from 'element-ui/src/utils/util'
9
+ import Bar from './bar'
10
+
11
+ /* istanbul ignore next */
12
+ export default {
13
+ name: 'ElScrollbar',
14
+
15
+ components: { Bar },
16
+
17
+ props: {
18
+ native: Boolean,
19
+ wrapStyle: {},
20
+ wrapClass: {},
21
+ viewClass: {},
22
+ viewStyle: {},
23
+ noresize: Boolean, // 如果 container 尺寸不会发生变化,最好设置它可以优化性能
24
+ tag: {
25
+ type: String,
26
+ default: 'div',
27
+ },
28
+
29
+ onScroll: {
30
+ type: Function,
31
+ },
32
+ },
33
+
34
+ data() {
35
+ return {
36
+ moveX: 0,
37
+ moveY: 0,
38
+ sizeWidth: '0',
39
+ sizeHeight: '0',
40
+ }
41
+ },
42
+
43
+ computed: {
44
+ wrap() {
45
+ return this.$refs.wrap
46
+ },
47
+ },
48
+
49
+ render(h) {
50
+ let gutter = scrollbarWidth()
51
+ let style = this.wrapStyle
52
+
53
+ if (gutter) {
54
+ const gutterWith = `-${gutter}px`
55
+ const gutterStyle = `margin-bottom: ${gutterWith}; margin-right: ${gutterWith};`
56
+
57
+ if (Array.isArray(this.wrapStyle)) {
58
+ style = toObject(this.wrapStyle)
59
+ style.marginRight = style.marginBottom = gutterWith
60
+ } else if (typeof this.wrapStyle === 'string') {
61
+ style += gutterStyle
62
+ } else {
63
+ style = gutterStyle
64
+ }
65
+ }
66
+ const view = h(
67
+ this.tag,
68
+ {
69
+ class: ['el-scrollbar__view', this.viewClass],
70
+ style: this.viewStyle,
71
+ ref: 'resize',
72
+ },
73
+ this.$slots.default,
74
+ )
75
+ const wrap = (
76
+ <div
77
+ ref="wrap"
78
+ style={style}
79
+ onScroll={this.handleScroll}
80
+ class={[
81
+ this.wrapClass,
82
+ 'el-scrollbar__wrap',
83
+ gutter ? '' : 'el-scrollbar__wrap--hidden-default',
84
+ ]}
85
+ >
86
+ {[view]}
87
+ </div>
88
+ )
89
+ let nodes
90
+
91
+ if (!this.native) {
92
+ nodes = [
93
+ wrap,
94
+ <Bar move={this.moveX} size={this.sizeWidth}></Bar>,
95
+ <Bar vertical move={this.moveY} size={this.sizeHeight}></Bar>,
96
+ ]
97
+ } else {
98
+ nodes = [
99
+ <div
100
+ ref="wrap"
101
+ class={[this.wrapClass, 'el-scrollbar__wrap']}
102
+ style={style}
103
+ >
104
+ {[view]}
105
+ </div>,
106
+ ]
107
+ }
108
+ return h('div', { class: 'el-scrollbar' }, nodes)
109
+ },
110
+
111
+ methods: {
112
+ handleScroll(e) {
113
+ const wrap = this.wrap
114
+ const target = e.target
115
+ const { scrollHeight, scrollTop, offsetHeight } = target
116
+ this.moveY = (wrap.scrollTop * 100) / wrap.clientHeight
117
+ this.moveX = (wrap.scrollLeft * 100) / wrap.clientWidth
118
+ const { onScroll } = this.$props
119
+ if (onScroll) {
120
+ const subsHeight = scrollHeight - (scrollTop + offsetHeight)
121
+ onScroll(subsHeight)
122
+ }
123
+ },
124
+
125
+ update() {
126
+ this.$nextTick(() => {
127
+ let heightPercentage, widthPercentage
128
+ const wrap = this.wrap
129
+ if (!wrap) return
130
+
131
+ heightPercentage = (wrap.clientHeight * 100) / wrap.scrollHeight
132
+ widthPercentage = (wrap.clientWidth * 100) / wrap.scrollWidth
133
+
134
+ this.sizeHeight = heightPercentage < 100 ? heightPercentage + '%' : ''
135
+ this.sizeWidth = widthPercentage < 100 ? widthPercentage + '%' : ''
136
+ })
137
+ },
138
+ },
139
+
140
+ mounted() {
141
+ if (this.native) return
142
+ this.$nextTick(this.update)
143
+ !this.noresize && addResizeListener(this.$refs.resize, this.update)
144
+ },
145
+
146
+ beforeDestroy() {
147
+ if (this.native) return
148
+ !this.noresize && removeResizeListener(this.$refs.resize, this.update)
149
+ },
150
+ }
@@ -0,0 +1,34 @@
1
+ export const BAR_MAP = {
2
+ vertical: {
3
+ offset: 'offsetHeight',
4
+ scroll: 'scrollTop',
5
+ scrollSize: 'scrollHeight',
6
+ size: 'height',
7
+ key: 'vertical',
8
+ axis: 'Y',
9
+ client: 'clientY',
10
+ direction: 'top'
11
+ },
12
+ horizontal: {
13
+ offset: 'offsetWidth',
14
+ scroll: 'scrollLeft',
15
+ scrollSize: 'scrollWidth',
16
+ size: 'width',
17
+ key: 'horizontal',
18
+ axis: 'X',
19
+ client: 'clientX',
20
+ direction: 'left'
21
+ }
22
+ };
23
+
24
+ export function renderThumbStyle({ move, size, bar }) {
25
+ const style = {};
26
+ const translate = `translate${bar.axis}(${ move }%)`;
27
+
28
+ style[bar.size] = size;
29
+ style.transform = translate;
30
+ style.msTransform = translate;
31
+ style.webkitTransform = translate;
32
+
33
+ return style;
34
+ };
@@ -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,191 @@
1
+ <template>
2
+ <div class="pro-number-wrap" :class="{ select: select, disabled: disabled }">
3
+ <el-input-number
4
+ :min="min"
5
+ :max="max"
6
+ :class="{
7
+ unit: unit,
8
+ controls: controls,
9
+ }"
10
+ :size="size"
11
+ ref="target"
12
+ class="value-input"
13
+ :controls="controls"
14
+ :precision="precision"
15
+ v-model.number="module"
16
+ :disabled="disabled"
17
+ :maxlength="maxlength"
18
+ @change="onChange"
19
+ :placeholder="placeholder"
20
+ style="width: 100%; height: 100%;"
21
+ ></el-input-number>
22
+ <div class="number-unit" v-if="(unit || select) && !controls">
23
+ <span v-if="!select">{{ unit }}</span>
24
+
25
+ <BaseStoreSelect
26
+ v-else
27
+ :size="size"
28
+ :placeholder="`规格`"
29
+ v-model="_linkValue"
30
+ :disabled="disabled"
31
+ :useStore="selectStore"
32
+ ></BaseStoreSelect>
33
+ </div>
34
+ </div>
35
+ </template>
36
+
37
+ <script>
38
+ import BaseStoreSelect from '../baseStoreSelect/index.vue'
39
+ export default {
40
+ name: 'baseNumberInput',
41
+ data() {
42
+ return {}
43
+ },
44
+ props: {
45
+ value: {},
46
+ precision: {
47
+ default: 0,
48
+ },
49
+ unit: {},
50
+ select: null,
51
+ disabled: {
52
+ default: false,
53
+ },
54
+ maxlength: {},
55
+ size: {},
56
+ controls: { default: false },
57
+ min: {
58
+ default: null,
59
+ },
60
+ max: {},
61
+ linkValue: {},
62
+
63
+ selectStore: {},
64
+
65
+ placeholder: {
66
+ type: String,
67
+ },
68
+ },
69
+ computed: {
70
+ module: {
71
+ set(val) {
72
+ this.$emit('input', val)
73
+ },
74
+ get() {
75
+ return this.$props.value
76
+ },
77
+ },
78
+ _linkValue: {
79
+ set(val) {
80
+ this.$emit('selectChange', val)
81
+ },
82
+ get() {
83
+ return this.$props.linkValue
84
+ },
85
+ },
86
+ },
87
+ methods: {
88
+ focus() {
89
+ this.$refs.target.focus()
90
+ },
91
+
92
+ onChange() {
93
+ this.$emit('onChange')
94
+ },
95
+ },
96
+ components: { BaseStoreSelect },
97
+ }
98
+ </script>
99
+
100
+ <style lang="less" scoped>
101
+ .pro-number-wrap {
102
+ width: 100%;
103
+ display: flex;
104
+ position: relative;
105
+ justify-items: center;
106
+ &:hover {
107
+ border-color: var(--color-primary);
108
+ }
109
+ .unit {
110
+ width: calc(100%);
111
+ border-radius: inherit;
112
+ /deep/ input {
113
+ padding-right: 34px !important;
114
+ }
115
+ }
116
+
117
+ .number-unit {
118
+ width: 28px;
119
+ height: 28px;
120
+ right: 2px;
121
+ top: 50%;
122
+ transform: translateY(-50%);
123
+ text-align: center;
124
+ line-height: 28px;
125
+ position: absolute;
126
+ background: var(--color-gray-d);
127
+ span {
128
+ color: var(--font-color-d);
129
+ font-size: var(--font-size-s);
130
+ font-weight: var(--font-weight-g);
131
+ }
132
+ }
133
+ .controls {
134
+ /deep/ .el-input-number__decrease {
135
+ left: 2px;
136
+ border-right: 1px solid var(--color-gray-d) !important;
137
+ }
138
+ }
139
+ /deep/ .el-input-number__increase {
140
+ right: 2px;
141
+ border-left: 1px solid var(--color-gray-d) !important;
142
+ }
143
+ /deep/ .el-input-number__decrease,
144
+ /deep/ .el-input-number__increase {
145
+ top: 50%;
146
+ width: 40px;
147
+
148
+ height: calc(100% - 4px) !important;
149
+ transform: translateY(-50%);
150
+ }
151
+ /deep/ .el-input__inner {
152
+ &:hover,
153
+ &:focus {
154
+ border: 2px solid var(--color-primary) !important;
155
+ }
156
+ }
157
+ }
158
+
159
+ .select {
160
+ .value-input {
161
+ /deep/ input {
162
+ padding-right: 71px !important;
163
+ }
164
+ }
165
+ .number-unit {
166
+ width: 65px !important;
167
+ height: 28px !important;
168
+ background: var(--color-gray-d);
169
+
170
+ /deep/ input {
171
+ width: 100% !important;
172
+ height: 24px !important;
173
+ border: 0px !important;
174
+ background: inherit !important;
175
+ }
176
+ // /deep/.el-input.is-disabled .el-input__inner {
177
+ // color: var(--font-color-d);
178
+ // }
179
+ }
180
+ }
181
+ .disabled {
182
+ .number-unit {
183
+ span {
184
+ color: #8f959e;
185
+ }
186
+ }
187
+ }
188
+ /deep/ input {
189
+ font-weight: var(--font-weight-kg);
190
+ }
191
+ </style>