bri-components 1.1.2 → 1.1.4

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 (158) 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/10.bri-components.min.js +1 -0
  4. package/lib/2.bri-components.min.js +1 -1
  5. package/lib/3.bri-components.min.js +1 -1
  6. package/lib/4.bri-components.min.js +1 -1
  7. package/lib/5.bri-components.min.js +1 -1
  8. package/lib/6.bri-components.min.js +1 -1
  9. package/lib/7.bri-components.min.js +1 -1
  10. package/lib/8.bri-components.min.js +1 -1
  11. package/lib/9.bri-components.min.js +1 -1
  12. package/lib/bri-components.min.js +6 -6
  13. package/lib/styles/bri-components.css +1 -1
  14. package/package.json +1 -1
  15. package/src/abolish/DshCascaders.less +11 -0
  16. package/src/{components/controls/base/DshCascaderMultiple.vue → abolish/DshCascaders.vue} +17 -27
  17. package/src/{components/list → abolish}/DshFlatTable.vue +1 -1
  18. package/src/abolish/DshTexts.less +13 -0
  19. package/src/{components/controls/base/textMultiple/DshTextMultiple.vue → abolish/DshTexts.vue} +17 -25
  20. package/src/components/controls/base/{textMultiple/MultipleInput.vue → BriInputs.vue} +18 -17
  21. package/src/components/controls/base/{ZUpload/YUploadImage.vue → BriUpload/BriUploadImage.vue} +56 -15
  22. package/src/components/controls/base/{ZUpload → BriUpload}/index.vue +24 -21
  23. package/src/components/controls/base/{ZUpload → BriUpload}/upload-list.vue +20 -13
  24. package/src/components/controls/base/{ZUpload → BriUpload}/uploadMixin.js +7 -3
  25. package/src/components/controls/base/{DshCascader.vue → DshCascader/DshCascader.vue} +33 -26
  26. package/src/components/controls/base/DshCheckbox.vue +17 -20
  27. package/src/components/controls/base/DshCoordinates.vue +119 -110
  28. package/src/components/controls/base/DshDate.vue +24 -37
  29. package/src/components/controls/base/DshDaterange.vue +3 -1
  30. package/src/components/controls/base/DshEditor.vue +73 -60
  31. package/src/components/controls/base/DshInput.vue +72 -60
  32. package/src/components/controls/base/DshNumber/BriInputNumber/BriInputNumber.vue +1 -1
  33. package/src/components/controls/base/DshNumber/DshNumber.vue +52 -48
  34. package/src/components/controls/base/DshNumberange.vue +11 -21
  35. package/src/components/controls/base/DshSelect.vue +13 -17
  36. package/src/components/controls/controlMap.js +12 -11
  37. package/src/components/controls/controlMixin.js +40 -29
  38. package/src/components/controls/controlShow.vue +44 -0
  39. package/src/components/controls/{base → senior}/BriLabels.vue +7 -12
  40. package/src/components/controls/{base → senior}/DshPackage.vue +6 -25
  41. package/src/components/controls/senior/cascaderTable.vue +52 -51
  42. package/src/components/controls/senior/flatTable.vue +20 -17
  43. package/src/components/controls/{base → special}/DshBack.vue +4 -4
  44. package/src/components/controls/{base → special}/DshUndeveloped.vue +3 -1
  45. package/src/components/form/DshAdvSearchForm.vue +10 -1
  46. package/src/components/form/DshForm.vue +10 -3
  47. package/src/components/list/BriFlatTable.vue +5 -5
  48. package/src/components/list/BriTable.vue +6 -8
  49. package/src/components/list/DshBox/DshBox.vue +7 -24
  50. package/src/components/list/DshBox/DshCard.vue +15 -74
  51. package/src/components/list/DshBox/DshCrossTable.vue +4 -8
  52. package/src/components/list/DshBox/DshList.vue +8 -136
  53. package/src/components/list/DshBox/DshPanel.vue +0 -110
  54. package/src/components/list/DshBox/DshTable.vue +1 -4
  55. package/src/components/list/DshCascaderTable.vue +1 -1
  56. package/src/components/list/ZTree.vue +0 -58
  57. package/src/components/other/ZIframe.vue +5 -0
  58. package/src/components/small/DshControlDefine.vue +6 -2
  59. package/src/components/small/DshModal.vue +0 -134
  60. package/src/components/small/DshPage.vue +1 -0
  61. package/src/components/unit/DshFormItem.vue +7 -10
  62. package/src/components/unit/DshUnit.vue +1 -11
  63. package/src/components/unit/unitMixin.js +8 -5
  64. package/src/index.js +16 -33
  65. package/src/styles/common/control.less +63 -27
  66. package/src/styles/components/controls/{MultipleInput.less → BriInputs.less} +1 -1
  67. package/src/styles/components/controls/BriLabels.less +4 -2
  68. package/src/styles/components/controls/{ZUpload.less → BriUpload.less} +5 -6
  69. package/src/styles/components/controls/DshCheckbox.less +45 -42
  70. package/src/styles/components/controls/DshCoordinates.less +66 -59
  71. package/src/styles/components/controls/DshDate.less +1 -52
  72. package/src/styles/components/controls/DshEditor.less +51 -34
  73. package/src/styles/components/controls/DshInput.less +13 -34
  74. package/src/styles/components/controls/DshNumber.less +51 -0
  75. package/src/styles/components/controls/DshNumberange.less +8 -3
  76. package/src/styles/components/controls/DshSelect.less +78 -92
  77. package/src/styles/components/{other → controls}/InfoCascader.less +4 -4
  78. package/src/styles/components/controls/cascaderTable.less +10 -24
  79. package/src/styles/components/controls/controlShow.less +3 -1
  80. package/src/styles/components/controls/flatTable.less +10 -23
  81. package/src/styles/components/form/DshAdvSearchForm.less +0 -9
  82. package/src/styles/components/form/DshDefaultSearch.less +0 -20
  83. package/src/styles/components/index.less +24 -17
  84. package/src/styles/components/list/DshBox/DshBox.less +20 -0
  85. package/src/styles/components/list/DshBox/DshCard.less +59 -0
  86. package/src/styles/components/list/DshBox/DshList.less +142 -0
  87. package/src/styles/components/list/DshBox/DshPanel.less +107 -0
  88. package/src/styles/components/list/DshBox/DshTable.less +4 -0
  89. package/src/styles/components/list/ZTree.less +52 -0
  90. package/src/styles/components/small/DshControlDefine.less +4 -7
  91. package/src/styles/components/small/DshDropdown.less +1 -0
  92. package/src/styles/components/small/DshModal.less +207 -0
  93. package/src/styles/components/unit/DshFormItem.less +2 -0
  94. package/src/styles/reset.less +14 -0
  95. package/src/styles/variables.less +1 -0
  96. package/src/utils/table.js +5 -4
  97. package/src/components/controls/base/DshLabels.vue +0 -309
  98. package/src/components/controls/base/YSerialNumber.vue +0 -36
  99. package/src/components/controls/base/controlShow.vue +0 -52
  100. package/src/components/list/easyTable/index.js +0 -23
  101. package/src/components/list/easyTable/src/directives/clickoutside.js +0 -32
  102. package/src/components/list/easyTable/src/mixins/layerAdjustment.js +0 -62
  103. package/src/components/list/easyTable/src/settings/settings.js +0 -11
  104. package/src/components/list/easyTable/src/utils/deepClone.js +0 -256
  105. package/src/components/list/easyTable/src/utils/dom.js +0 -41
  106. package/src/components/list/easyTable/src/utils/utils.js +0 -190
  107. package/src/components/list/easyTable/v-checkbox/index.js +0 -7
  108. package/src/components/list/easyTable/v-checkbox/src/checkbox.vue +0 -127
  109. package/src/components/list/easyTable/v-checkbox-group/index.js +0 -7
  110. package/src/components/list/easyTable/v-checkbox-group/src/checkbox-group.vue +0 -68
  111. package/src/components/list/easyTable/v-dropdown/index.js +0 -7
  112. package/src/components/list/easyTable/v-dropdown/src/dropdown.vue +0 -337
  113. package/src/components/list/easyTable/v-table/index.js +0 -7
  114. package/src/components/list/easyTable/v-table/src/body-cell-merge-mixin.js +0 -141
  115. package/src/components/list/easyTable/v-table/src/cell-edit-mixin.js +0 -102
  116. package/src/components/list/easyTable/v-table/src/checkbox-selection-mixin.js +0 -189
  117. package/src/components/list/easyTable/v-table/src/classes-mixin.js +0 -56
  118. package/src/components/list/easyTable/v-table/src/drag-width-mixin.js +0 -202
  119. package/src/components/list/easyTable/v-table/src/export-csv.js +0 -74
  120. package/src/components/list/easyTable/v-table/src/frozen-columns-mixin.js +0 -134
  121. package/src/components/list/easyTable/v-table/src/loading.vue +0 -49
  122. package/src/components/list/easyTable/v-table/src/scroll-bar-control-mixin.js +0 -21
  123. package/src/components/list/easyTable/v-table/src/scroll-control-mixin.js +0 -92
  124. package/src/components/list/easyTable/v-table/src/sort-control-mixin.js +0 -108
  125. package/src/components/list/easyTable/v-table/src/table-empty-mixin.js +0 -73
  126. package/src/components/list/easyTable/v-table/src/table-empty.vue +0 -66
  127. package/src/components/list/easyTable/v-table/src/table-filters-mixin.js +0 -126
  128. package/src/components/list/easyTable/v-table/src/table-footer-mixin.js +0 -122
  129. package/src/components/list/easyTable/v-table/src/table-resize-mixin.js +0 -279
  130. package/src/components/list/easyTable/v-table/src/table-row-mouse-events-mixin.js +0 -123
  131. package/src/components/list/easyTable/v-table/src/table.vue +0 -1565
  132. package/src/components/list/easyTable/v-table/src/title-cell-merge-mixin.js +0 -115
  133. package/src/components/list/evTable/EvTable.vue +0 -321
  134. package/src/components/list/evTable/EvTableMixin.js +0 -26
  135. package/src/styles/components/controls/DshLabels.less +0 -187
  136. package/src/styles/components/list/evTable.less +0 -79
  137. package/src/styles/components/list/evtable/animation.less +0 -141
  138. package/src/styles/components/list/evtable/font/fontello.eot +0 -0
  139. package/src/styles/components/list/evtable/font/fontello.svg +0 -32
  140. package/src/styles/components/list/evtable/font/fontello.ttf +0 -0
  141. package/src/styles/components/list/evtable/font/fontello.woff +0 -0
  142. package/src/styles/components/list/evtable/font/fontello.woff2 +0 -0
  143. package/src/styles/components/list/evtable/fontello.less +0 -68
  144. package/src/styles/components/list/evtable/index.less +0 -5
  145. package/src/styles/components/list/evtable/v-checkbox.less +0 -167
  146. package/src/styles/components/list/evtable/v-dropdown.less +0 -235
  147. package/src/styles/components/list/evtable/v-table.less +0 -334
  148. package/src/styles/components/list/ivu_reset.less +0 -49
  149. /package/src/{styles/components/list → abolish}/DshFlatTable.less +0 -0
  150. /package/src/components/{pages/Error → Error}/Error403.vue +0 -0
  151. /package/src/components/{pages/Error → Error}/Error404.vue +0 -0
  152. /package/src/components/{pages/Error → Error}/Error500.vue +0 -0
  153. /package/src/components/{pages/Error → Error}/error.less +0 -0
  154. /package/src/components/{pages/Error → Error}/errorBack.vue +0 -0
  155. /package/src/components/controls/base/{ZUpload → BriUpload}/upload-listItem.vue +0 -0
  156. /package/src/components/{other → controls/base/DshCascader}/InfoCascader.vue +0 -0
  157. /package/src/styles/components/list/{DshCrossTable.less → DshBox/DshCrossTable.less} +0 -0
  158. /package/src/styles/components/list/{DshSingleData.less → DshBox/DshSingleData.less} +0 -0
@@ -1,127 +0,0 @@
1
- <template>
2
- <label class="v-checkbox-wrapper" :style="{'display':displayType}">
3
- <span :class="checkboxClasses">
4
- <input
5
- class="v-checkbox-input"
6
- type="checkbox"
7
- :value="label"
8
- v-model="model"
9
- @change="change"
10
- />
11
-
12
- <span class="v-checkbox-inner"></span>
13
- </span>
14
- <span><slot v-if="showSlot">{{ label }}</slot></span>
15
- </label>
16
- </template>
17
-
18
- <script>
19
- import utils from "../../src/utils/utils.js";
20
-
21
- export default{
22
- name: "v-checkbox",
23
- props: {
24
- value: {
25
- type: [String, Number, Boolean]
26
- },
27
- // use in checkbox-group
28
- label: {
29
- type: [String, Number],
30
- require: true
31
- },
32
- disabled: Boolean,
33
- // partial selection effect
34
- indeterminate: Boolean,
35
- showSlot: {
36
- type: Boolean,
37
- default: true
38
- }
39
-
40
- },
41
- data () {
42
- return {
43
- model: this.value,
44
- checkboxGroup2: {}
45
- };
46
- },
47
-
48
- computed: {
49
- checkboxClasses () {
50
- return [
51
- "v-checkbox",
52
- {
53
- "v-checkbox-checked": this.model,
54
- "v-checkbox-disabled": this.disabled,
55
- "v-checkbox-indeterminate": this.indeterminate
56
- }
57
- ];
58
- },
59
- // 是否横向显示还是纵向显示
60
- displayType () {
61
- let style = "inline-block";
62
- if (this.checkboxGroup2) {
63
- style = this.checkboxGroup2.isVerticalShow ? "block" : "inline-block";
64
- }
65
- return style;
66
- }
67
- },
68
- methods: {
69
- isCheckBoxGroup () {
70
- this.checkboxGroup2 = utils.getParentCompByName(this, "v-checkbox-group");
71
- return !!this.checkboxGroup2;
72
- },
73
- change (event) {
74
- if (this.disabled) {
75
- this.model = !this.model;
76
- return false;
77
- }
78
- const checked = event.target.checked;
79
- this.$emit("input", checked);
80
- this.$emit("change");
81
- this.isCheckBoxGroup();
82
- if (this.checkboxGroup2) {
83
- this.checkboxGroup2.updateModel(this.label, checked);
84
- }
85
- },
86
- initModel () {
87
- this.isCheckBoxGroup();
88
- if (this.checkboxGroup2) {
89
- let checkboxGroup = this.checkboxGroup2;
90
- if (Array.isArray(checkboxGroup.value) && checkboxGroup.value.length > 0) {
91
- if (checkboxGroup.value.indexOf(this.label) > -1) {
92
- this.model = true;
93
- }
94
- }
95
- } else {
96
- this.model = this.value;
97
- }
98
- },
99
- // 通过单选更新 model
100
- updateModelBySingle () {
101
- if (!this.disabled) {
102
- this.model = this.value;
103
- }
104
- },
105
- // 父组件调用更新 model
106
- updateModelByGroup (checkBoxGroup) {
107
- if (checkBoxGroup.indexOf(this.label) > -1) {
108
- if (!this.disabled) {
109
- this.model = true;
110
- }
111
- } else {
112
- if (!this.disabled) {
113
- this.model = false;
114
- }
115
- }
116
- }
117
- },
118
- created () {
119
- this.initModel();
120
- },
121
- watch: {
122
- "value" (val) {
123
- this.updateModelBySingle();
124
- }
125
- }
126
- };
127
- </script>
@@ -1,7 +0,0 @@
1
- import VCheckboxGroup from "./src/checkbox-group.vue";
2
-
3
- VCheckboxGroup.install = function (Vue) {
4
- Vue.component(VCheckboxGroup.name, VCheckboxGroup);
5
- };
6
-
7
- export default VCheckboxGroup;
@@ -1,68 +0,0 @@
1
- <template>
2
- <div class="v-checkbox-group">
3
- <slot></slot>
4
- </div>
5
- </template>
6
-
7
- <script>
8
- import utils from "../../src/utils/utils.js";
9
-
10
- export default{
11
- name: "v-checkbox-group",
12
-
13
- props: {
14
- value: {
15
- type: Array,
16
- default () {
17
- return [];
18
- }
19
- },
20
- // 是否垂直排列显示(当时checkbox组时生效)
21
- isVerticalShow: {
22
- type: Boolean,
23
- default: false
24
- }
25
- },
26
-
27
- methods: {
28
-
29
- updateModel (label, checkedVal) {
30
-
31
- let index = this.value.indexOf(label);
32
- if (index > -1) {
33
-
34
- if (!checkedVal) {
35
-
36
- this.value.splice(index, 1);
37
- }
38
- } else {
39
-
40
- if (checkedVal) {
41
-
42
- this.value.push(label);
43
- }
44
- }
45
-
46
- this.$emit("input", this.value);
47
- this.$emit("change");
48
- }
49
- },
50
-
51
- watch: {
52
- // 更新子组件选中状态
53
- "value" (newVal) {
54
-
55
- let children = utils.getChildCompsByName(this, "v-checkbox");
56
-
57
- if (children.length > 0) {
58
-
59
- children.forEach(child => {
60
-
61
- child.updateModelByGroup(newVal);
62
- });
63
- }
64
-
65
- }
66
- }
67
- };
68
- </script>
@@ -1,7 +0,0 @@
1
- import VDropdown from "./src/dropdown.vue";
2
-
3
- VDropdown.install = function (Vue) {
4
- Vue.component(VDropdown.name, VDropdown);
5
- };
6
-
7
- export default VDropdown;
@@ -1,337 +0,0 @@
1
- <template>
2
- <dl :class="['v-dropdown',sizeClass]" v-click-outside="clickOutside">
3
- <dt class="v-dropdown-dt">
4
- <a :class="[isSelect ? 'v-dropdown-selected' :'']" @click.stop.prevent="toggleItems()" :style="{'width':width+'px'}">
5
- <slot></slot>
6
- </a>
7
- </dt>
8
- <dd v-show="visible" class="v-dropdown-dd">
9
- <ul class="v-dropdown-items" :style="{'min-width':width+'px','max-width':getMaxWidth+'px'}">
10
-
11
- <template v-if="isMultiple">
12
- <v-checkbox-group is-vertical-show
13
- :min="min"
14
- :max="max"
15
- @change="checkboxGroupChange"
16
- v-model="checkboxGroupList"
17
- >
18
- <li v-for="(item, idx) in internalOptions" :key="idx"
19
- :class="['v-dropdown-items-multiple',getTextAlignClass()]"
20
- >
21
- <v-checkbox :key="item.label" :label="item.label"
22
- :showLine="item.showLine"></v-checkbox>
23
- </li>
24
- </v-checkbox-group>
25
- </template>
26
- <template v-else>
27
- <li v-for="(item, idx) in internalOptions" :key="idx" @click.stop="selectOptionClick(item)"
28
- :class="['v-dropdown-items-li',item.selected ? 'active' : '']">
29
- <a :class="['v-dropdown-items-li-a',getTextAlignClass()]" href="javascript:void(0);">{{item.label}}</a>
30
- </li>
31
- </template>
32
-
33
- <li v-if="showOperation" class="v-dropdown-operation">
34
- <a @click.stop="confirm" class="v-dropdown-operation-item" href="javascript:void(0)">确认</a>
35
- <a @click.stop="rest" class="v-dropdown-operation-item" href="javascript:void(0)">重置</a>
36
- </li>
37
- </ul>
38
- </dd>
39
- </dl>
40
- </template>
41
-
42
- <script>
43
- import settings from "../../src/settings/settings.js";
44
- import clickoutside from "../../src/directives/clickoutside.js";
45
-
46
- import VCheckboxGroup from "../../v-checkbox-group/index";
47
- import VCheckbox from "../../v-checkbox/index";
48
-
49
- import layerAdjustment from "../../src/mixins/layerAdjustment.js";
50
-
51
- export default {
52
- name: "v-dropdown",
53
- components: {
54
- VCheckboxGroup, VCheckbox
55
- },
56
- mixins: [layerAdjustment],
57
- directives: {
58
- "click-outside": clickoutside
59
- },
60
- data () {
61
- return {
62
-
63
- visible: false,
64
-
65
- internalOptions: [],
66
-
67
- // checkboxGroup 选中的项
68
- checkboxGroupList: [],
69
-
70
- // 样式前缀
71
- textAlignPrefix: "v-dropdown-items-li-a-",
72
-
73
- inputValue: "",
74
-
75
- // 是否有选项被改变(初始值为null 为了区分首次internalOptions 赋值的问题)
76
- isOperationChange: null
77
- };
78
- },
79
- props: {
80
- // 如果是select 组件将特殊处理
81
- isSelect: {
82
- type: Boolean,
83
- default: false
84
- },
85
- showOperation: {
86
- type: Boolean,
87
- default: false
88
- },
89
- size: {
90
- type: String
91
- },
92
-
93
- width: {
94
- type: Number,
95
- default: 90
96
-
97
- },
98
-
99
- // select的最大宽度(超出隐藏)
100
- maxWidth: {
101
- type: Number
102
- },
103
-
104
- // 如果为true 会包含 checkbox
105
- isMultiple: {
106
- type: Boolean,
107
- default: false
108
- },
109
-
110
- // 用户传入v-model 的值 [{value/label/selected}]
111
- value: [Object, Array],
112
-
113
- // 占位符
114
- placeholder: {
115
- type: String,
116
- default: "请选择",
117
- validator: function (value) {
118
- return value.length > 0;
119
- }
120
- },
121
-
122
- // 文本居中方式 left|center|right
123
- textAlign: {
124
- type: String,
125
- default: "left"
126
- },
127
-
128
- // 最小选中数量
129
- min: {
130
- type: Number,
131
- default: 0
132
- },
133
-
134
- // 最大选中数量
135
- max: {
136
- type: Number,
137
- default: 999
138
- },
139
-
140
- // 是否支持输入input
141
- isInput: {
142
- type: Boolean,
143
- default: false
144
- }
145
-
146
- },
147
- computed: {
148
-
149
- sizeClass () {
150
- let size = settings.sizeMaps[this.size] || settings.sizeMapDefault;
151
- return size === settings.sizeMaps["large"] ? " v-dropdown--large" : (size === settings.sizeMaps["middle"] ? " v-dropdown--middle" : " v-dropdown--small");
152
- },
153
-
154
- // 获取最大宽度(不设置则是无穷大)
155
- getMaxWidth () {
156
- let result = Infinity;
157
- let maxWidth = this.maxWidth;
158
- let width = this.width;
159
-
160
- if (maxWidth && maxWidth > 0 && maxWidth > width) {
161
-
162
- result = maxWidth;
163
- }
164
-
165
- return result;
166
- }
167
- },
168
- methods: {
169
-
170
- // 初始化
171
- init () {
172
- this.internalOptions = Object.assign([], this.value);
173
-
174
- this.checkboxGroupList = this.selectedLabels();
175
-
176
- if (this.isInput) {
177
- this.setInputValue();
178
- }
179
- },
180
-
181
- // operation filter confirm
182
- confirm () {
183
- if (this.isOperationChange) {
184
-
185
- this.$emit("on-filter-method", this.internalOptions);
186
- this.isOperationChange = false;
187
- }
188
- this.hideDropDown();
189
- },
190
-
191
- // operation filter reset
192
- rest () {
193
- if (this.internalOptions.some(x => x.selected)) {
194
- this.internalOptions.map(x => {
195
- if (x.selected) {
196
- x.selected = false;
197
- }
198
- return x;
199
- });
200
- this.checkboxGroupList = [];
201
- // 使用户传入的v-model 生效
202
- this.$emit("input", this.internalOptions);
203
- this.$emit("change");
204
- // 修复执行两次的bug
205
- /* this.$emit('on-filter-method',this.internalOptions);
206
- this.isOperationChange = false; */
207
- }
208
- setTimeout(x => {
209
- this.hideDropDown();
210
- }, 50);
211
- },
212
-
213
- hideDropDown () {
214
- if (this.showOperation && this.isOperationChange) {
215
- this.$emit("on-filter-method", this.internalOptions);
216
- this.isOperationChange = false;
217
- }
218
- this.visible = false;
219
- },
220
-
221
- showDropDown () {
222
- this.visible = true;
223
- },
224
-
225
- // 设置文本框的值
226
- setInputValue () {
227
- let result;
228
- let labels;
229
- labels = this.selectedLabels();
230
- if (Array.isArray(labels) && labels.length > 0) {
231
- result = labels.join();
232
- }
233
-
234
- this.inputValue = result;
235
- },
236
- // checkbox 选中改变事件
237
- checkboxGroupChange () {
238
-
239
- this.selectOptionClick();
240
- },
241
- toggleItems () {
242
- // this.visible = !this.visible;
243
- if (this.visible) {
244
- this.hideDropDown();
245
- } else {
246
- this.showDropDown();
247
- this.$nextTick(x => {
248
- this.dropDownClick();
249
- });
250
- }
251
- },
252
- selectOptionClick (item) {
253
- if (!this.isMultiple) {
254
- this.internalOptions.map((x) => {
255
- if (item.label === x.label) {
256
- x.selected = true;
257
- } else {
258
- x.selected = false;
259
- }
260
- return x;
261
- });
262
- } else { // 多选
263
- this.internalOptions.map((x) => {
264
- if (this.checkboxGroupList.includes(x.label)) {
265
- x.selected = true;
266
- } else {
267
- x.selected = false;
268
- }
269
- return x;
270
- });
271
- }
272
-
273
- if (!this.isMultiple) {
274
- this.toggleItems();
275
- }
276
-
277
- if (this.isInput) {
278
- this.setInputValue();
279
- }
280
- // 使用户传入的v-model 生效
281
- this.$emit("input", this.internalOptions);
282
- this.$emit("change");
283
- },
284
-
285
- // 获取样式名称
286
- getTextAlignClass () {
287
- return this.textAlignPrefix + this.textAlign;
288
- },
289
-
290
- // 当前选中项的label
291
- selectedLabels () {
292
- return this.internalOptions.filter(x => x.selected).map(x => {
293
- if (x.selected) {
294
- return x.label;
295
- }
296
- });
297
- },
298
-
299
- clickOutside () {
300
- this.hideDropDown();
301
- // this.visible = false
302
- },
303
-
304
- // 下拉点击显示
305
- dropDownClick () {
306
- let dtEle = this.$el.querySelector(".v-dropdown-dt");
307
- let ddItem = this.$el.querySelector(".v-dropdown-items");
308
- this.layerAdjustmentOnce(ddItem, dtEle, 2);
309
- return false;
310
- },
311
-
312
- // 确定下拉框的位置
313
- dropdownAdjust () {
314
- let dtEle = this.$el.querySelector(".v-dropdown-dt");
315
- let ddItem = this.$el.querySelector(".v-dropdown-items");
316
- this.layerAdjustmentBind(ddItem, dtEle, 2);
317
- }
318
-
319
- },
320
-
321
- created () {
322
- this.init();
323
- },
324
- mounted () {
325
- this.dropdownAdjust();
326
-
327
- },
328
- watch: {
329
- "value": function (val) {
330
- this.init();
331
- },
332
- "internalOptions": function (val) {
333
- this.isOperationChange = !!((this.showOperation && this.isOperationChange !== null));
334
- }
335
- }
336
- };
337
- </script>
@@ -1,7 +0,0 @@
1
- import VTable from "./src/table.vue";
2
-
3
- VTable.install = function (Vue) {
4
- Vue.component(VTable.name, VTable);
5
- };
6
-
7
- export default VTable;
@@ -1,141 +0,0 @@
1
- export default {
2
- data () {
3
- return {
4
- // 跳过渲染的列集合
5
- skipRenderCells: []
6
- };
7
- },
8
- methods: {
9
- /*
10
- * isFrozenColumns:是否是固定列
11
- * */
12
- cellMergeInit (rowIndex, field, rowData, isFrozenColumns) {
13
- // 包含在 skipRenderCells 内,则不渲染
14
- if (this.skipRenderCells.indexOf(rowIndex + "-" + field) !== -1) {
15
- return false;
16
- }
17
- let setting = this.cellMerge && this.cellMerge(rowIndex, rowData, field);
18
- if (setting && ((setting.colSpan && setting.colSpan > 1) || (setting.rowSpan && setting.rowSpan > 1))) {
19
- this.setSkipRenderCells(setting.colSpan, setting.rowSpan, rowIndex, field, isFrozenColumns);
20
- }
21
- return true;
22
- },
23
-
24
- // 设置不渲染的列
25
- setSkipRenderCells (colSpan, rowSpan, rowIndex, field, isFrozenColumns) {
26
-
27
- let columnsFields = isFrozenColumns ? this.getFrozenColumnsFields : this.getNoFrozenColumnsFields;
28
- let skipCell = "";
29
- let startPosX, endPosX, startPosY, endPosY;
30
-
31
- endPosX = startPosX = columnsFields.indexOf(field);
32
- if (colSpan && colSpan > 1) {
33
- endPosX = startPosX + colSpan - 1;
34
- }
35
-
36
- endPosY = startPosY = rowIndex;
37
- if (rowSpan && rowSpan > 1) {
38
-
39
- endPosY = rowIndex + rowSpan - 1;
40
- }
41
-
42
- for (let posX = startPosX; posX <= endPosX; posX++) {
43
-
44
- for (let posY = startPosY; posY <= endPosY; posY++) {
45
-
46
- if (posX == startPosX && posY == startPosY) {
47
- continue;
48
- }
49
-
50
- skipCell = posY + "-" + columnsFields[posX];
51
-
52
- // 避免状态改变重新渲染的情况
53
- if (this.skipRenderCells.indexOf(skipCell) === -1) {
54
-
55
- this.skipRenderCells.push(skipCell);
56
- }
57
- }
58
- }
59
- },
60
-
61
- // 设置 colSpan
62
- setColRowSpan (rowIndex, field, rowData) {
63
- let result = {
64
- colSpan: "",
65
- rowSpan: ""
66
- };
67
- let setting = this.cellMerge && this.cellMerge(rowIndex, rowData, field);
68
- if (setting) {
69
- result = {
70
- colSpan: setting.colSpan ? setting.colSpan : "",
71
- rowSpan: setting.rowSpan ? setting.rowSpan : ""
72
- };
73
- }
74
- return result;
75
- },
76
-
77
- /*
78
- * 并检测不合法的设置,如果设置不合法则不会合并行和列
79
- * */
80
- isCellMergeRender (rowIndex, field, rowData) {
81
- let setting = this.cellMerge && this.cellMerge(rowIndex, rowData, field);
82
- if (setting && ((setting.colSpan && setting.colSpan > 0) || (setting.rowSpan && setting.rowSpan > 0))) {
83
- return true;
84
- }
85
- return false;
86
- },
87
-
88
- // 获取行高
89
- getRowHeightByRowSpan (rowIndex, field, rowData) {
90
- let setting = this.cellMerge && this.cellMerge(rowIndex, rowData, field);
91
- if (setting && (setting.rowSpan && setting.rowSpan > 1)) {
92
- return this.rowHeight * setting.rowSpan;
93
- }
94
- return this.rowHeight;
95
- },
96
-
97
- /*
98
- * 获取单元格宽度
99
- * isFrozenColumns:是否是固定列
100
- * */
101
- getRowWidthByColSpan (rowIndex, field, rowData) {
102
- let endPosX;
103
- let startPosX;
104
- let columnsFields = this.getColumnsFields;
105
- let setting = this.cellMerge && this.cellMerge(rowIndex, rowData, field);
106
- let colSpan = setting.colSpan;
107
- let totalWidth = 0;
108
-
109
- if (setting && (colSpan && colSpan >= 1)) {
110
- startPosX = columnsFields.indexOf(field);
111
- endPosX = startPosX + colSpan - 1;
112
- for (let i = startPosX; i <= endPosX; i++) {
113
- this.internalColumns.forEach(x => {
114
- if (columnsFields[i] === x.field) {
115
- totalWidth += x.width;
116
- }
117
- });
118
- }
119
- }
120
- return totalWidth;
121
- },
122
-
123
- // 合并的单元格渲染的内容类型
124
- cellMergeContentType (rowIndex, field, rowData) {
125
- let result = {
126
- isComponent: false,
127
- isContent: false
128
- };
129
- let setting = this.cellMerge && this.cellMerge(rowIndex, rowData, field);
130
- if (setting) {
131
- if (setting.componentName && typeof setting.componentName === "string" && setting.componentName.length > 0) {
132
- result.isComponent = true;
133
- } else if (setting.content && setting.content.length > 0) {
134
- result.isContent = true;
135
- }
136
- }
137
- return result;
138
- }
139
- }
140
-
141
- };