bri-components 1.2.1 → 1.2.3

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 (43) hide show
  1. package/lib/0.bri-components.min.js +1 -1
  2. package/lib/1.bri-components.min.js +1 -1
  3. package/lib/2.bri-components.min.js +1 -1
  4. package/lib/5.bri-components.min.js +1 -1
  5. package/lib/bri-components.min.js +5 -5
  6. package/package.json +1 -1
  7. package/src/abolish/DshCascaders.vue +3 -0
  8. package/src/abolish/DshTexts.vue +3 -0
  9. package/src/components/controls/base/BriUpload/BriUploadImage.vue +45 -32
  10. package/src/components/controls/base/BriUpload/uploadMixin.js +7 -5
  11. package/src/components/controls/base/DshCascader/DshCascader.vue +25 -17
  12. package/src/components/controls/base/DshCheckbox.vue +127 -137
  13. package/src/components/controls/base/DshCoordinates.vue +121 -147
  14. package/src/components/controls/base/DshDaterange.vue +3 -3
  15. package/src/components/controls/base/DshEditor.vue +2 -1
  16. package/src/components/controls/base/DshSelect.vue +3 -13
  17. package/src/components/controls/base/DshSwitch.vue +13 -20
  18. package/src/components/controls/controlMixin.js +19 -1
  19. package/src/components/controls/senior/BriLabels.vue +98 -93
  20. package/src/components/controls/senior/selectDepartments.vue +16 -11
  21. package/src/components/controls/senior/selectUsers/DepartmentMenu.vue +2 -2
  22. package/src/components/controls/senior/selectUsers/selectUsers.vue +18 -15
  23. package/src/components/small/BriDrawer.vue +1 -1
  24. package/src/components/small/DshDropdown.vue +1 -0
  25. package/src/components/small/DshModal.vue +1 -1
  26. package/src/components/small/DshTags.vue +135 -8
  27. package/src/styles/common/control.less +19 -15
  28. package/src/styles/components/controls/.DS_Store +0 -0
  29. package/src/styles/components/controls/base/BriUpload/BriUpload.less +1 -1
  30. package/src/styles/components/controls/base/BriUpload/BriUploadImage.less +6 -0
  31. package/src/styles/components/controls/base/DshCascader/DshCascader.less +13 -11
  32. package/src/styles/components/controls/base/DshCheckbox.less +39 -75
  33. package/src/styles/components/controls/base/DshCoordinates.less +1 -35
  34. package/src/styles/components/controls/base/DshSelect.less +16 -1
  35. package/src/styles/components/controls/base/DshSwitch.less +1 -31
  36. package/src/styles/components/controls/senior/.DS_Store +0 -0
  37. package/src/styles/components/controls/senior/BriLabels.less +1 -1
  38. package/src/styles/components/list/BriFlatTable.less +1 -1
  39. package/src/styles/components/small/DshDropdown.less +6 -5
  40. package/src/styles/components/small/DshModal.less +20 -42
  41. package/src/styles/components/small/DshTags.less +32 -14
  42. package/src/styles/components/unit/DshFormItem.less +3 -25
  43. package/src/styles/variables.less +2 -1
@@ -1,15 +1,23 @@
1
1
  <template>
2
- <div class="DshTags">
2
+ <div
3
+ ref="DshTags"
4
+ :class="{
5
+ 'DshTags': true,
6
+ 'DshTags-autoEllipsis': autoEllipsis
7
+ }"
8
+ >
3
9
  <Tag
4
- v-for="(tagItem, tagIndex) in list"
10
+ v-for="(tagItem, tagIndex) in computedList"
5
11
  :key="tagIndex"
6
- :disabled="propsObj.disabled || tagItem.disabled"
12
+ ref="tagItem"
13
+ :style="tagItem.style"
14
+ :disabled="getItemDisabled(tagItem)"
7
15
  :name="tagIndex"
8
16
  :type="propsObj.type"
9
- :closable="closable(tagItem)"
17
+ :closable="getItemClosable(tagItem)"
10
18
  :checkable="propsObj.checkable"
11
19
  :checked="propsObj.checked"
12
- :color="propsObj.color || 'default'"
20
+ :color="propsObj.color || tagItem.color || 'default'"
13
21
  :fade="propsObj.fade || false"
14
22
  :size="propsObj.size || 'medium'"
15
23
  @on-close="deleteTag($event, tagItem, tagIndex)"
@@ -19,6 +27,52 @@
19
27
  {{ $dataType(tagItem) === "object" ? tagItem.realname || tagItem.full_name || tagItem.name : tagItem }}
20
28
  </slot>
21
29
  </Tag>
30
+
31
+ <!-- 更多 -->
32
+ <Tag
33
+ v-if="subList.length"
34
+ :type="propsObj.type"
35
+ :checkable="propsObj.checkable"
36
+ :checked="propsObj.checked"
37
+ :color="propsObj.color || 'default'"
38
+ :fade="propsObj.fade || false"
39
+ :size="propsObj.size || 'medium'"
40
+ :disabled="propsObj.disabled"
41
+ >
42
+ <Poptip
43
+ :transfer="true"
44
+ :width="200"
45
+ trigger="hover"
46
+ word-wrap
47
+ placement="bottom"
48
+ popper-class="DshTags-poptip"
49
+ >
50
+ <dsh-icons :list="[moreOperation]" />
51
+ {{ subList.length }}项
52
+ <div slot="content">
53
+ <Tag
54
+ v-for="(tagItem, tagIndex) in subList"
55
+ :key="tagIndex"
56
+ :disabled="getItemDisabled(tagItem)"
57
+ :name="tagIndex"
58
+ :type="propsObj.type"
59
+ :closable="getItemClosable(tagItem)"
60
+ :checkable="propsObj.checkable"
61
+ :checked="propsObj.checked"
62
+ :color="propsObj.color || 'default'"
63
+ :fade="propsObj.fade || false"
64
+ :size="propsObj.size || 'medium'"
65
+ class="DshTags-poptip-tag"
66
+ @on-close="deleteTag($event, tagItem, tagIndex + computedList.length)"
67
+ @on-change="changeChecked"
68
+ >
69
+ <slot :tagItem="tagItem">
70
+ {{ $dataType(tagItem) === "object" ? tagItem.realname || tagItem.full_name || tagItem.name : tagItem }}
71
+ </slot>
72
+ </Tag>
73
+ </div>
74
+ </Poptip>
75
+ </Tag>
22
76
  </div>
23
77
  </template>
24
78
 
@@ -37,27 +91,100 @@
37
91
  default () {
38
92
  return {};
39
93
  }
94
+ },
95
+ autoEllipsis: {
96
+ type: Boolean,
97
+ default: false
40
98
  }
41
99
  },
42
100
  data () {
43
101
  return {
44
- closable (tagItem) {
45
- return this.propsObj.disabled || tagItem.disabled ? false : (this.propsObj.closable !== false);
102
+ maxTagCount: undefined,
103
+
104
+ getItemDisabled (item) {
105
+ return this.propsObj.disabled || item._disabled || item.disabled;
106
+ },
107
+ getItemClosable (item) {
108
+ return !this.getItemDisabled(item) &&
109
+ (this.propsObj.closable == undefined ? true : this.propsObj.closable);
46
110
  }
47
111
  };
48
112
  },
49
- computed: {},
113
+ computed: {
114
+ moreOperation () {
115
+ return {
116
+ customIcon: "bico-gengduo"
117
+ };
118
+ },
119
+ computedList () {
120
+ return this.list.slice(0, this.maxTagCount);
121
+ },
122
+ subList () {
123
+ if (this.autoEllipsis && this.maxTagCount) {
124
+ return this.list.slice(this.maxTagCount);
125
+ } else {
126
+ return [];
127
+ }
128
+ }
129
+ },
50
130
  created () {},
131
+ mounted () {
132
+ this.callEliipsis();
133
+
134
+ window.addEventListener("resize", this.callEliipsis, true);
135
+ },
51
136
  methods: {
52
137
  // 删除标签
53
138
  deleteTag (event, item, index) {
54
139
  this.list.splice(index, 1);
140
+ this.callEliipsis();
55
141
  this.$emit("delete", item, index);
56
142
  },
57
143
  // 改变标签状态
58
144
  changeChecked (checked, name) {
59
145
 
146
+ },
147
+
148
+ callEliipsis () {
149
+ if (this.autoEllipsis) {
150
+ this.maxTagCount = undefined;
151
+ this.$nextTick(() => {
152
+ this.getAutoEllipsis();
153
+ });
154
+ }
155
+ },
156
+ getAutoEllipsis () {
157
+ if (this.autoEllipsis) {
158
+ let parWidth = this.$refs.DshTags.clientWidth;
159
+ let tags = this.$refs.tagItem;
160
+
161
+ for (let idx in tags) {
162
+ let el = tags[idx]["$el"];
163
+ let showEllipsis = el.clientWidth + el.offsetLeft > parWidth;
164
+
165
+ if (showEllipsis) {
166
+ // 判断加上... 是否被隐藏
167
+ if (el.clientWidth + el.offsetLeft + 40 < parWidth) {
168
+ this.maxTagCount = idx;
169
+ } else {
170
+ this.maxTagCount = idx - 1;
171
+ }
172
+ break;
173
+ } else {
174
+ this.maxTagCount = undefined;
175
+ }
176
+ }
177
+ }
60
178
  }
179
+ },
180
+ watch: {
181
+ list: function () {
182
+ console.log("ss");
183
+ this.callEliipsis();
184
+ }
185
+ },
186
+ destroyed () {
187
+ window.removeEventListener("resize", this.callEliipsis, true);
61
188
  }
62
189
  };
63
190
  </script>
@@ -3,7 +3,7 @@
3
3
  background-color: @theme-focus;
4
4
  color: @themeColor;
5
5
  border-radius: @borderRadius;
6
- padding: 3px 8px;
6
+ padding: 2px 8px;
7
7
  line-height: 24px;
8
8
  display: inline;
9
9
  }
@@ -16,8 +16,8 @@
16
16
  cursor: pointer;
17
17
  color: @textColor;
18
18
 
19
- &.bri-control-nodata {
20
- .bri-control-nodata();
19
+ .ivu-icon {
20
+ color: @placeholderColor;
21
21
  }
22
22
  }
23
23
  .bri-control-disabled {
@@ -27,8 +27,12 @@
27
27
  cursor: not-allowed;
28
28
  color: @textColor;
29
29
 
30
+ .ivu-icon {
31
+ color: @placeholder-disabled-color;
32
+ }
33
+
30
34
  &.bri-control-nodata {
31
- .bri-control-disabled-placeholder();
35
+ color: @placeholder-disabled-color;
32
36
  }
33
37
  }
34
38
  // .bri-control-readonly {
@@ -37,24 +41,28 @@
37
41
  // background: @inputBg-readonly;
38
42
  // cursor: not-allowed;
39
43
  // color: @textColor-readonly;
44
+
45
+ // .ivu-icon {
46
+ // color: @textColor-readonly;
47
+ // }
40
48
  // }
41
49
  .bri-control-show {
42
50
  border: none;
43
51
  background-color: transparent;
44
52
 
45
- &.bri-control-nodata {
46
- .bri-control-nodata();
53
+ .ivu-icon {
54
+ color: @placeholderColor;
47
55
  }
48
56
  }
49
57
  .bri-control-unit {
50
58
  border: none;
51
59
  background-color: transparent;
52
60
 
53
- // unit 模式下不用特殊处理颜色
54
- &.bri-control-nodata {
55
- color: @text-color;
61
+ .ivu-icon {
62
+ color: @placeholderColor;
56
63
  }
57
64
  }
65
+
58
66
  // 无数据
59
67
  .bri-control-nodata {
60
68
  color: @placeholderColor;
@@ -66,10 +74,10 @@
66
74
 
67
75
  // 展示为tag标签公共样式
68
76
  #bri-control-wrap () {
69
- .dsh-flex-row-between-center();
70
77
  height: 32px;
71
- padding: 4px 0 4px 4px;
78
+ padding: 4px 0 4px 7px;
72
79
  line-height: 24px;
80
+ .dsh-flex-row-between-center();
73
81
 
74
82
  .text {
75
83
  .dsh-ellipsis();
@@ -96,8 +104,4 @@
96
104
  display: block;
97
105
  }
98
106
  }
99
-
100
- &.bri-control-nodata {
101
- padding-left: 7px;
102
- }
103
107
  }
@@ -160,7 +160,7 @@
160
160
  &-unit {
161
161
  .uploadList {
162
162
  &-inline-nodata {
163
- color: @text-color;
163
+ .bri-control-nodata();
164
164
  }
165
165
  }
166
166
  }
@@ -78,4 +78,10 @@
78
78
  }
79
79
  }
80
80
  }
81
+
82
+ &-cropper {
83
+ width: 400px;
84
+ height: 400px;
85
+ margin: 0 auto;
86
+ }
81
87
  }
@@ -26,12 +26,6 @@
26
26
  &-show {
27
27
  &-multiple {
28
28
  #bri-control-wrap();
29
-
30
- .overflow {
31
- &-unit {
32
- .dsh-ellipsis();
33
- }
34
- }
35
29
  }
36
30
 
37
31
  &-single {
@@ -41,11 +35,19 @@
41
35
 
42
36
  // 多选类型且独自一行时
43
37
  &-row {
44
- height: 68px;
45
-
46
- .overflow {
47
- width: 100%;
48
- height: 100%;
38
+ &-edit {
39
+ // height: 68px;
40
+ }
41
+ &-show {
42
+ height: auto;
43
+ .text,
44
+ .overflow {
45
+ width: 100%;
46
+ height: 100%;
47
+ white-space: normal;
48
+ overflow: auto;
49
+ .bri-scrollbar3();
50
+ }
49
51
  }
50
52
  }
51
53
  }
@@ -4,21 +4,20 @@
4
4
  &-group {
5
5
  width: 100%;
6
6
 
7
- &-disabled {
8
- .ivu-checkbox-disabled+span {
9
- color: #515a6e;
10
- }
7
+ // 选中时背景为白色
8
+ .ivu-checkbox-checked .ivu-checkbox-inner {
9
+ background-color: @themeColor;
11
10
  }
12
11
 
13
12
  &-color {
14
13
  .ivu-checkbox-border {
14
+ margin-bottom: 5px;
15
+ margin-right: 16px;
15
16
  height: 32px;
16
- line-height: 32px;
17
- border-radius: 4px;
18
17
  border: none;
18
+ border-radius: 4px;
19
+ line-height: 32px;
19
20
  color: #FFF;
20
- margin-bottom: 5px;
21
- margin-right: 16px;
22
21
  }
23
22
 
24
23
  .ivu-checkbox {
@@ -37,29 +36,25 @@
37
36
  }
38
37
 
39
38
  each(@resourceColor, {
40
- .color-@{index} {
41
- .ivu-checkbox {
42
- .ivu-checkbox-inner {
43
- border-color: @value;
44
- }
39
+ .color-@{index} {
40
+ .ivu-checkbox {
41
+ .ivu-checkbox-inner {
42
+ border-color: @value;
45
43
  }
46
44
  }
47
45
 
48
- .color-@{index}.myChecked {
49
- .ivu-checkbox-checked {
50
- .ivu-checkbox-inner {
51
- background-color: @value;
52
- }
46
+ .ivu-checkbox-checked {
47
+ .ivu-checkbox-inner {
48
+ background-color: @value;
53
49
  }
54
50
  }
55
51
  }
56
-
57
- );
52
+ });
58
53
  }
59
54
 
60
- &-disabled-color {
55
+ &-disabled {
61
56
  .ivu-checkbox-disabled+span {
62
- color: inherit;
57
+ color: #515a6e;
63
58
  }
64
59
  }
65
60
 
@@ -80,51 +75,40 @@
80
75
  }
81
76
  }
82
77
 
83
- // 选中时背景为白色
84
- .myChecked {
85
- .ivu-checkbox-checked .ivu-checkbox-inner {
86
- background-color: @themeColor;
87
- }
88
- }
78
+ &-item {
89
79
 
90
- &-content {
91
- text-align: center;
92
- border-radius: 12px;
93
- line-height: 100%;
94
- padding: 5px 10px;
95
- font-size: 14px;
96
- vertical-align: middle;
97
80
  }
98
81
 
99
- &-tip {
100
- cursor: pointer;
82
+ &-show {
101
83
 
102
- .ivu-checkbox {
103
- display: none;
104
- }
105
84
  }
106
85
 
107
86
  .ivu-select-multiple {
108
87
  .ivu-select-selection {
109
88
  height: 32px;
110
-
111
- &>div {
112
- overflow-x: auto;
113
- overflow-y: hidden;
89
+ .dsh-flex-row-between-center();
90
+
91
+ & > div {
92
+ width: 100%;
93
+ word-break: keep-all;
114
94
  white-space: nowrap;
115
-
95
+
96
+ overflow: auto;
97
+ .bri-scrollbar3();
98
+
116
99
  .ivu-tag {
117
- margin: 2px 4px 4px 0;
100
+ margin: 2px 4px 0px 0px;
101
+ background-color: @borderColor;
118
102
  }
119
-
120
- &::-webkit-scrollbar {
121
- height: 8px;
122
- }
123
-
124
- &:-webkit-scrollbar-thumb {
125
- border-radius: 3px;
126
- background: rgba(51, 51, 51, .1);
127
- background-clip: border-box;
103
+ }
104
+ }
105
+
106
+ &.ivu-select-disabled {
107
+ .ivu-select-selection {
108
+ & > div {
109
+ .ivu-tag {
110
+ background-color: @border-disabled;
111
+ }
128
112
  }
129
113
  }
130
114
  }
@@ -133,24 +117,4 @@
133
117
  content: none;
134
118
  }
135
119
  }
136
- }
137
-
138
- // TODO:必须单独拿出来,DshSelect组件里在混入此样式
139
- .DshCheckbox-value {
140
- height: 24px;
141
- line-height: 20px;
142
- padding: 2px 8px;
143
- border-radius: 4px;
144
- margin-right: 8px;
145
- display: inline-flex;
146
-
147
- &:last-of-type {
148
- margin-right: 0px;
149
- }
150
-
151
- &-wrapper {
152
- min-height: 32px;
153
- padding: 4px 0;
154
- .dsh-ellipsis();
155
- }
156
120
  }
@@ -1,37 +1,8 @@
1
1
  .DshCoordinates {
2
2
  width: 100%;
3
- line-height: 30px;
4
3
 
5
4
  &-edit {
6
- position: relative;
7
- padding: 0 32px 0 8px;
8
-
9
- .value {
10
- width: 100%;
11
- display: flex;
12
- justify-content: space-between;
13
- align-items: center;
14
-
15
- &-name {
16
- .dsh-ellipsis();
17
- }
18
-
19
- &-icon {
20
- padding: 5px;
21
- }
22
- }
23
-
24
- .nodata {
25
- color: @placeholderColor;
26
-
27
- &-icon {
28
- color: #e5e5e5;
29
- line-height: 32px;
30
- position: absolute;
31
- right: 6px;
32
- top: 0;
33
- }
34
- }
5
+ #bri-control-wrap ();
35
6
  }
36
7
 
37
8
  &-modal {
@@ -76,9 +47,4 @@
76
47
  }
77
48
  }
78
49
  }
79
-
80
- &-show {
81
- padding: 0 8px;
82
- line-height: 32px;
83
- }
84
50
  }
@@ -136,7 +136,22 @@
136
136
  }
137
137
 
138
138
  &-value {
139
- .DshCheckbox-value();
139
+ height: 24px;
140
+ line-height: 20px;
141
+ padding: 2px 8px;
142
+ border-radius: 4px;
143
+ margin-right: 8px;
144
+ display: inline-flex;
145
+
146
+ &:last-of-type {
147
+ margin-right: 0px;
148
+ }
149
+
150
+ &-wrapper {
151
+ min-height: 32px;
152
+ padding: 4px 0;
153
+ .dsh-ellipsis();
154
+ }
140
155
  }
141
156
 
142
157
  &-tip {
@@ -2,36 +2,6 @@
2
2
  width: 100%;
3
3
 
4
4
  &-show {
5
- height: 24px;
6
- padding: 2px 8px;
7
- border-radius: 4px;
8
- line-height: 20px;
9
- flex-grow: 1;
10
- display: flex;
11
- justify-content: flex-start;
12
-
13
- &-name {
14
- .dsh-ellipsis();
15
- display: flex;
16
- min-height: 32px;
17
- padding: 4px;
18
- }
19
- }
20
-
21
- .ivu-switch {
22
- width: 50px;
23
- }
24
- .ivu-switch-checked:after {
25
- left: 29px;
26
- }
27
- .ivu-switch-inner {
28
- color: #fff;
29
- font-size: 12px;
30
- position: absolute;
31
- left: auto;
32
- right: 4px;
33
- }
34
- .ivu-switch-checked .ivu-switch-inner {
35
- left: 3px;
5
+ .bri-unit-show();
36
6
  }
37
7
  }
@@ -1,7 +1,7 @@
1
1
  .BriLabels {
2
2
  width: 100%;
3
3
 
4
- &-dit {
4
+ &-edit {
5
5
  #bri-control-wrap();
6
6
  }
7
7
 
@@ -1,5 +1,5 @@
1
1
  .BriFlatTable {
2
- &-main {
2
+ .BriFlatTable-main {
3
3
  height: auto;
4
4
  }
5
5
  &-create {
@@ -52,10 +52,11 @@
52
52
  }
53
53
  }
54
54
  }
55
+ &.ivu-select-dropdown {
56
+ border: 0.5px solid #e5e5e5;
57
+ box-shadow: 0 3px 14px 2px rgba(0,0,0,0.05), 0 8px 10px 1px rgba(0,0,0,0.06), 0 5px 5px -3px rgba(0,0,0,0.1);
58
+ max-height: 500px;
59
+ }
55
60
  }
56
61
 
57
- .ivu-select-dropdown {
58
- border: 0.5px solid #e5e5e5;
59
- box-shadow: 0 3px 14px 2px rgba(0,0,0,0.05), 0 8px 10px 1px rgba(0,0,0,0.06), 0 5px 5px -3px rgba(0,0,0,0.1);
60
- max-height: 500px;
61
- }
62
+