bri-components 1.0.0

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 (215) hide show
  1. package/README.md +30 -0
  2. package/lib/.DS_Store +0 -0
  3. package/lib/0.bri-components.min.js +2 -0
  4. package/lib/0.bri-components.min.js.map +1 -0
  5. package/lib/1.bri-components.min.js +2 -0
  6. package/lib/1.bri-components.min.js.map +1 -0
  7. package/lib/2.bri-components.min.js +2 -0
  8. package/lib/2.bri-components.min.js.map +1 -0
  9. package/lib/3.bri-components.min.js +2 -0
  10. package/lib/3.bri-components.min.js.gz +0 -0
  11. package/lib/3.bri-components.min.js.map +1 -0
  12. package/lib/4.bri-components.min.js +2 -0
  13. package/lib/4.bri-components.min.js.gz +0 -0
  14. package/lib/4.bri-components.min.js.map +1 -0
  15. package/lib/5.bri-components.min.js +2 -0
  16. package/lib/5.bri-components.min.js.map +1 -0
  17. package/lib/6.bri-components.min.js +2 -0
  18. package/lib/6.bri-components.min.js.map +1 -0
  19. package/lib/bri-components.min.js +21 -0
  20. package/lib/bri-components.min.js.gz +0 -0
  21. package/lib/bri-components.min.js.map +1 -0
  22. package/lib/styles/bri-components.css +1 -0
  23. package/lib/styles/bundle.css +14 -0
  24. package/lib/styles/font/fontello.eot +0 -0
  25. package/lib/styles/font/fontello.svg +32 -0
  26. package/lib/styles/font/fontello.ttf +0 -0
  27. package/lib/styles/font/fontello.woff +0 -0
  28. package/lib/styles/font/fontello.woff2 +0 -0
  29. package/package.json +121 -0
  30. package/src/.DS_Store +0 -0
  31. package/src/components/controls/base/DshBack.vue +36 -0
  32. package/src/components/controls/base/DshCascader.vue +366 -0
  33. package/src/components/controls/base/DshCascaderMultiple.vue +158 -0
  34. package/src/components/controls/base/DshCheckbox.vue +199 -0
  35. package/src/components/controls/base/DshCoordinates.vue +497 -0
  36. package/src/components/controls/base/DshDate.vue +148 -0
  37. package/src/components/controls/base/DshDaterange.vue +335 -0
  38. package/src/components/controls/base/DshDivider.vue +59 -0
  39. package/src/components/controls/base/DshEditor.vue +166 -0
  40. package/src/components/controls/base/DshInput.vue +139 -0
  41. package/src/components/controls/base/DshLabels.vue +302 -0
  42. package/src/components/controls/base/DshNumber/BriInputNumber/BriInputNumber.vue +425 -0
  43. package/src/components/controls/base/DshNumber/BriInputNumber/mixins/emitter.js +34 -0
  44. package/src/components/controls/base/DshNumber/BriInputNumber/mixins/form.js +14 -0
  45. package/src/components/controls/base/DshNumber/BriInputNumber/utils/assist.js +322 -0
  46. package/src/components/controls/base/DshNumber/DshNumber.vue +148 -0
  47. package/src/components/controls/base/DshNumberange.vue +137 -0
  48. package/src/components/controls/base/DshPackage.vue +72 -0
  49. package/src/components/controls/base/DshSelect.vue +231 -0
  50. package/src/components/controls/base/DshSwitch.vue +112 -0
  51. package/src/components/controls/base/DshUndeveloped.vue +39 -0
  52. package/src/components/controls/base/YSerialNumber.vue +37 -0
  53. package/src/components/controls/base/ZUpload/YUploadImage.vue +228 -0
  54. package/src/components/controls/base/ZUpload/index.vue +356 -0
  55. package/src/components/controls/base/ZUpload/upload-list.vue +277 -0
  56. package/src/components/controls/base/ZUpload/upload-listItem.vue +0 -0
  57. package/src/components/controls/base/ZUpload/uploadMixin.js +397 -0
  58. package/src/components/controls/base/selectMixin.js +110 -0
  59. package/src/components/controls/base/textMultiple/DshTextMultiple.vue +94 -0
  60. package/src/components/controls/base/textMultiple/MultipleInput.vue +106 -0
  61. package/src/components/controls/controlMap.js +94 -0
  62. package/src/components/controls/controlMixin.js +84 -0
  63. package/src/components/form/DshAdvSearchForm.vue +341 -0
  64. package/src/components/form/DshDefaultSearch.vue +203 -0
  65. package/src/components/form/DshForm.vue +364 -0
  66. package/src/components/form/searchMixin.js +205 -0
  67. package/src/components/list/DshBox/DshBox.vue +168 -0
  68. package/src/components/list/DshBox/DshCard.vue +219 -0
  69. package/src/components/list/DshBox/DshCrossTable.vue +624 -0
  70. package/src/components/list/DshBox/DshList.vue +442 -0
  71. package/src/components/list/DshBox/DshPanel.vue +407 -0
  72. package/src/components/list/DshBox/DshSingleData.vue +82 -0
  73. package/src/components/list/DshBox/DshTable.vue +273 -0
  74. package/src/components/list/DshCascaderTable.vue +817 -0
  75. package/src/components/list/DshFlatTable.vue +622 -0
  76. package/src/components/list/ZTree.vue +527 -0
  77. package/src/components/list/easyTable/index.js +23 -0
  78. package/src/components/list/easyTable/src/directives/clickoutside.js +32 -0
  79. package/src/components/list/easyTable/src/mixins/layerAdjustment.js +62 -0
  80. package/src/components/list/easyTable/src/settings/settings.js +11 -0
  81. package/src/components/list/easyTable/src/utils/deepClone.js +256 -0
  82. package/src/components/list/easyTable/src/utils/dom.js +41 -0
  83. package/src/components/list/easyTable/src/utils/utils.js +190 -0
  84. package/src/components/list/easyTable/v-checkbox/index.js +7 -0
  85. package/src/components/list/easyTable/v-checkbox/src/checkbox.vue +127 -0
  86. package/src/components/list/easyTable/v-checkbox-group/index.js +7 -0
  87. package/src/components/list/easyTable/v-checkbox-group/src/checkbox-group.vue +68 -0
  88. package/src/components/list/easyTable/v-dropdown/index.js +7 -0
  89. package/src/components/list/easyTable/v-dropdown/src/dropdown.vue +337 -0
  90. package/src/components/list/easyTable/v-table/index.js +7 -0
  91. package/src/components/list/easyTable/v-table/src/body-cell-merge-mixin.js +141 -0
  92. package/src/components/list/easyTable/v-table/src/cell-edit-mixin.js +102 -0
  93. package/src/components/list/easyTable/v-table/src/checkbox-selection-mixin.js +189 -0
  94. package/src/components/list/easyTable/v-table/src/classes-mixin.js +56 -0
  95. package/src/components/list/easyTable/v-table/src/drag-width-mixin.js +202 -0
  96. package/src/components/list/easyTable/v-table/src/export-csv.js +74 -0
  97. package/src/components/list/easyTable/v-table/src/frozen-columns-mixin.js +134 -0
  98. package/src/components/list/easyTable/v-table/src/loading.vue +49 -0
  99. package/src/components/list/easyTable/v-table/src/scroll-bar-control-mixin.js +21 -0
  100. package/src/components/list/easyTable/v-table/src/scroll-control-mixin.js +92 -0
  101. package/src/components/list/easyTable/v-table/src/sort-control-mixin.js +108 -0
  102. package/src/components/list/easyTable/v-table/src/table-empty-mixin.js +73 -0
  103. package/src/components/list/easyTable/v-table/src/table-empty.vue +66 -0
  104. package/src/components/list/easyTable/v-table/src/table-filters-mixin.js +126 -0
  105. package/src/components/list/easyTable/v-table/src/table-footer-mixin.js +122 -0
  106. package/src/components/list/easyTable/v-table/src/table-resize-mixin.js +279 -0
  107. package/src/components/list/easyTable/v-table/src/table-row-mouse-events-mixin.js +123 -0
  108. package/src/components/list/easyTable/v-table/src/table.vue +1565 -0
  109. package/src/components/list/easyTable/v-table/src/title-cell-merge-mixin.js +115 -0
  110. package/src/components/list/evTable/EvTable.vue +323 -0
  111. package/src/components/list/evTable/EvTableMixin.js +26 -0
  112. package/src/components/other/DshAvatar.vue +149 -0
  113. package/src/components/other/DshBtnModal.vue +64 -0
  114. package/src/components/other/DshColorPanel.vue +128 -0
  115. package/src/components/other/DshEditPanel.vue +130 -0
  116. package/src/components/other/InfoCascader.vue +258 -0
  117. package/src/components/other/YNoPermission.vue +45 -0
  118. package/src/components/other/ZCode.vue +125 -0
  119. package/src/components/other/ZCollapseTree.vue +84 -0
  120. package/src/components/other/ZGantt.vue +669 -0
  121. package/src/components/other/ZIframe.vue +105 -0
  122. package/src/components/other/ZLoading.vue +59 -0
  123. package/src/components/other/menu/DshMenu.vue +133 -0
  124. package/src/components/other/menu/DshMenuNav.vue +104 -0
  125. package/src/components/pages/Error/Error403.vue +34 -0
  126. package/src/components/pages/Error/Error404.vue +34 -0
  127. package/src/components/pages/Error/Error500.vue +34 -0
  128. package/src/components/pages/Error/error.less +163 -0
  129. package/src/components/pages/Error/errorBack.vue +38 -0
  130. package/src/components/small/Ctooltip.vue +90 -0
  131. package/src/components/small/DshButtons.vue +195 -0
  132. package/src/components/small/DshControlDefine.vue +110 -0
  133. package/src/components/small/DshCrumbs.vue +61 -0
  134. package/src/components/small/DshCrumbsItem.vue +107 -0
  135. package/src/components/small/DshDropdown.vue +159 -0
  136. package/src/components/small/DshFileShow.vue +212 -0
  137. package/src/components/small/DshIcons.vue +63 -0
  138. package/src/components/small/DshModal.vue +255 -0
  139. package/src/components/small/DshPage.vue +98 -0
  140. package/src/components/small/DshSteps.vue +68 -0
  141. package/src/components/small/DshTabs.vue +227 -0
  142. package/src/components/small/DshTags.vue +58 -0
  143. package/src/components/small/DshTdRender.js +21 -0
  144. package/src/components/small/DshTitle.vue +36 -0
  145. package/src/components/small/render.js +20 -0
  146. package/src/components/unit/DshFormItem.vue +157 -0
  147. package/src/components/unit/DshUnit.vue +72 -0
  148. package/src/components/unit/unitMixin.js +43 -0
  149. package/src/datas/.DS_Store +0 -0
  150. package/src/datas/common/region.json +1 -0
  151. package/src/datas/common/resourceData.json +20 -0
  152. package/src/datas/index.js +11 -0
  153. package/src/index.js +243 -0
  154. package/src/styles/animate.less +16 -0
  155. package/src/styles/bundle.css +14 -0
  156. package/src/styles/common/box.less +157 -0
  157. package/src/styles/common/common.less +31 -0
  158. package/src/styles/common/flex.less +282 -0
  159. package/src/styles/common/index.less +4 -0
  160. package/src/styles/common/text.less +43 -0
  161. package/src/styles/components/controls/DshCascader.less +75 -0
  162. package/src/styles/components/controls/DshCheckbox.less +156 -0
  163. package/src/styles/components/controls/DshCoordinates.less +72 -0
  164. package/src/styles/components/controls/DshDaterange.less +49 -0
  165. package/src/styles/components/controls/DshDivider.less +115 -0
  166. package/src/styles/components/controls/DshEditor.less +52 -0
  167. package/src/styles/components/controls/DshInput.less +40 -0
  168. package/src/styles/components/controls/DshLabels.less +187 -0
  169. package/src/styles/components/controls/DshNumberange.less +24 -0
  170. package/src/styles/components/controls/DshPackage.less +25 -0
  171. package/src/styles/components/controls/DshSelect.less +172 -0
  172. package/src/styles/components/controls/MultipleInput.less +55 -0
  173. package/src/styles/components/controls/ZUpload.less +446 -0
  174. package/src/styles/components/form/DshAdvSearchForm.less +159 -0
  175. package/src/styles/components/form/DshDefaultSearch.less +71 -0
  176. package/src/styles/components/index.less +49 -0
  177. package/src/styles/components/list/DshCascaderTable.less +113 -0
  178. package/src/styles/components/list/DshCrossTable.less +175 -0
  179. package/src/styles/components/list/DshFlatTable.less +98 -0
  180. package/src/styles/components/list/DshSingleData.less +30 -0
  181. package/src/styles/components/list/evTable.less +79 -0
  182. package/src/styles/components/list/evtable/animation.less +141 -0
  183. package/src/styles/components/list/evtable/font/fontello.eot +0 -0
  184. package/src/styles/components/list/evtable/font/fontello.svg +32 -0
  185. package/src/styles/components/list/evtable/font/fontello.ttf +0 -0
  186. package/src/styles/components/list/evtable/font/fontello.woff +0 -0
  187. package/src/styles/components/list/evtable/font/fontello.woff2 +0 -0
  188. package/src/styles/components/list/evtable/fontello.less +68 -0
  189. package/src/styles/components/list/evtable/index.less +5 -0
  190. package/src/styles/components/list/evtable/v-checkbox.less +167 -0
  191. package/src/styles/components/list/evtable/v-dropdown.less +235 -0
  192. package/src/styles/components/list/evtable/v-table.less +334 -0
  193. package/src/styles/components/list/ivu_reset.less +49 -0
  194. package/src/styles/components/other/DshEditPanel.less +70 -0
  195. package/src/styles/components/other/DshMenu.less +37 -0
  196. package/src/styles/components/other/DshMenuNav.less +82 -0
  197. package/src/styles/components/other/InfoCascader.less +55 -0
  198. package/src/styles/components/other/ZCode.less +1 -0
  199. package/src/styles/components/other/ZCollapseTree.less +62 -0
  200. package/src/styles/components/other/ZGantt.less +278 -0
  201. package/src/styles/components/other/ZLoading.less +36 -0
  202. package/src/styles/components/small/Ctooltip.less +5 -0
  203. package/src/styles/components/small/DshButtons.less +40 -0
  204. package/src/styles/components/small/DshControlDefine.less +64 -0
  205. package/src/styles/components/small/DshDropdown.less +61 -0
  206. package/src/styles/components/small/DshPage.less +94 -0
  207. package/src/styles/components/small/DshSteps.less +58 -0
  208. package/src/styles/components/small/DshTabs.less +82 -0
  209. package/src/styles/components/small/DshTitle.less +18 -0
  210. package/src/styles/components/unit/DshFormItem.less +124 -0
  211. package/src/styles/define.less +374 -0
  212. package/src/styles/index.less +10 -0
  213. package/src/styles/reset.less +83 -0
  214. package/src/styles/variables.less +98 -0
  215. package/src/styles/view_reset.less +446 -0
@@ -0,0 +1,322 @@
1
+ import Vue from "vue";
2
+ const isServer = Vue.prototype.$isServer;
3
+
4
+ export function camelcaseToHyphen (str) {
5
+ return str.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
6
+ }
7
+
8
+ // For Modal scrollBar hidden
9
+ let cached;
10
+ export function getScrollBarSize (fresh) {
11
+ if (isServer) return 0;
12
+ if (fresh || cached === undefined) {
13
+ const inner = document.createElement("div");
14
+ inner.style.width = "100%";
15
+ inner.style.height = "200px";
16
+
17
+ const outer = document.createElement("div");
18
+ const outerStyle = outer.style;
19
+
20
+ outerStyle.position = "absolute";
21
+ outerStyle.top = 0;
22
+ outerStyle.left = 0;
23
+ outerStyle.pointerEvents = "none";
24
+ outerStyle.visibility = "hidden";
25
+ outerStyle.width = "200px";
26
+ outerStyle.height = "150px";
27
+ outerStyle.overflow = "hidden";
28
+
29
+ outer.appendChild(inner);
30
+
31
+ document.body.appendChild(outer);
32
+
33
+ const widthContained = inner.offsetWidth;
34
+ outer.style.overflow = "scroll";
35
+ let widthScroll = inner.offsetWidth;
36
+
37
+ if (widthContained === widthScroll) {
38
+ widthScroll = outer.clientWidth;
39
+ }
40
+
41
+ document.body.removeChild(outer);
42
+
43
+ cached = widthContained - widthScroll;
44
+ }
45
+ return cached;
46
+ }
47
+
48
+ // watch DOM change
49
+ export const MutationObserver = isServer ? false : window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver || false;
50
+
51
+ const SPECIAL_CHARS_REGEXP = /([:\-_]+(.))/g;
52
+ // const SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g; // eslint认为\为无用的转义符(:和_不需要转义)
53
+ const MOZ_HACK_REGEXP = /^moz([A-Z])/;
54
+
55
+ function camelCase (name) {
56
+ return name.replace(SPECIAL_CHARS_REGEXP, function (_, separator, letter, offset) {
57
+ return offset ? letter.toUpperCase() : letter;
58
+ }).replace(MOZ_HACK_REGEXP, "Moz$1");
59
+ }
60
+ // getStyle
61
+ export function getStyle (element, styleName) {
62
+ if (!element || !styleName) return null;
63
+ styleName = camelCase(styleName);
64
+ if (styleName === "float") {
65
+ styleName = "cssFloat";
66
+ }
67
+ try {
68
+ const computed = document.defaultView.getComputedStyle(element, "");
69
+ return element.style[styleName] || computed ? computed[styleName] : null;
70
+ } catch (e) {
71
+ return element.style[styleName];
72
+ }
73
+ }
74
+
75
+ // firstUpperCase
76
+ function firstUpperCase (str) {
77
+ return str.toString()[0].toUpperCase() + str.toString().slice(1);
78
+ }
79
+ export {firstUpperCase};
80
+
81
+ // Warn
82
+ export function warnProp (component, prop, correctType, wrongType) {
83
+ correctType = firstUpperCase(correctType);
84
+ wrongType = firstUpperCase(wrongType);
85
+ console.error(`[iView warn]: Invalid prop: type check failed for prop ${prop}. Expected ${correctType}, got ${wrongType}. (found in component: ${component})`); // eslint-disable-line
86
+ }
87
+
88
+ function typeOf (obj) {
89
+ const toString = Object.prototype.toString;
90
+ const map = {
91
+ "[object Boolean]": "boolean",
92
+ "[object Number]": "number",
93
+ "[object String]": "string",
94
+ "[object Function]": "function",
95
+ "[object Array]": "array",
96
+ "[object Date]": "date",
97
+ "[object RegExp]": "regExp",
98
+ "[object Undefined]": "undefined",
99
+ "[object Null]": "null",
100
+ "[object Object]": "object"
101
+ };
102
+ return map[toString.call(obj)];
103
+ }
104
+
105
+ // deepCopy
106
+ function deepCopy (data) {
107
+ const t = typeOf(data);
108
+ let o;
109
+
110
+ if (t === "array") {
111
+ o = [];
112
+ } else if (t === "object") {
113
+ o = {};
114
+ } else {
115
+ return data;
116
+ }
117
+
118
+ if (t === "array") {
119
+ for (let i = 0; i < data.length; i++) {
120
+ o.push(deepCopy(data[i]));
121
+ }
122
+ } else if (t === "object") {
123
+ for (let i in data) {
124
+ o[i] = deepCopy(data[i]);
125
+ }
126
+ }
127
+ return o;
128
+ }
129
+
130
+ export {deepCopy};
131
+
132
+ // scrollTop animation
133
+ export function scrollTop (el, from = 0, to, duration = 500, endCallback) {
134
+ if (!window.requestAnimationFrame) {
135
+ window.requestAnimationFrame = (
136
+ window.webkitRequestAnimationFrame ||
137
+ window.mozRequestAnimationFrame ||
138
+ window.msRequestAnimationFrame ||
139
+ function (callback) {
140
+ return window.setTimeout(callback, 1000 / 60);
141
+ }
142
+ );
143
+ }
144
+ const difference = Math.abs(from - to);
145
+ const step = Math.ceil(difference / duration * 50);
146
+
147
+ function scroll (start, end, step) {
148
+ if (start === end) {
149
+ endCallback && endCallback();
150
+ return;
151
+ }
152
+
153
+ let d = (start + step > end) ? end : start + step;
154
+ if (start > end) {
155
+ d = (start - step < end) ? end : start - step;
156
+ }
157
+
158
+ if (el === window) {
159
+ window.scrollTo(d, d);
160
+ } else {
161
+ el.scrollTop = d;
162
+ }
163
+ window.requestAnimationFrame(() => scroll(d, end, step));
164
+ }
165
+ scroll(from, to, step);
166
+ }
167
+
168
+ // Find components upward
169
+ function findComponentUpward (context, componentName, componentNames) {
170
+ if (typeof componentName === "string") {
171
+ componentNames = [componentName];
172
+ } else {
173
+ componentNames = componentName;
174
+ }
175
+
176
+ let parent = context.$parent;
177
+ let name = parent.$options.name;
178
+ while (parent && (!name || componentNames.indexOf(name) < 0)) {
179
+ parent = parent.$parent;
180
+ if (parent) name = parent.$options.name;
181
+ }
182
+ return parent;
183
+ }
184
+ export {findComponentUpward};
185
+
186
+ // Find component downward
187
+ export function findComponentDownward (context, componentName) {
188
+ const childrens = context.$children;
189
+ let children = null;
190
+
191
+ if (childrens.length) {
192
+ for (const child of childrens) {
193
+ const name = child.$options.name;
194
+ if (name === componentName) {
195
+ children = child;
196
+ break;
197
+ } else {
198
+ children = findComponentDownward(child, componentName);
199
+ if (children) break;
200
+ }
201
+ }
202
+ }
203
+ return children;
204
+ }
205
+
206
+ // Find components downward
207
+ export function findComponentsDownward (context, componentName) {
208
+ return context.$children.reduce((components, child) => {
209
+ if (child.$options.name === componentName) components.push(child);
210
+ const foundChilds = findComponentsDownward(child, componentName);
211
+ return components.concat(foundChilds);
212
+ }, []);
213
+ }
214
+
215
+ // Find components upward
216
+ export function findComponentsUpward (context, componentName) {
217
+ let parents = [];
218
+ const parent = context.$parent;
219
+ if (parent) {
220
+ if (parent.$options.name === componentName) parents.push(parent);
221
+ return parents.concat(findComponentsUpward(parent, componentName));
222
+ } else {
223
+ return [];
224
+ }
225
+ }
226
+
227
+ // Find brothers components
228
+ export function findBrothersComponents (context, componentName, exceptMe = true) {
229
+ let res = context.$parent.$children.filter(item => {
230
+ return item.$options.name === componentName;
231
+ });
232
+ let index = res.findIndex(item => item._uid === context._uid);
233
+ if (exceptMe) res.splice(index, 1);
234
+ return res;
235
+ }
236
+
237
+ /* istanbul ignore next */
238
+ const trim = function (string) {
239
+ return (string || "").replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, "");
240
+ };
241
+
242
+ /* istanbul ignore next */
243
+ export function hasClass (el, cls) {
244
+ if (!el || !cls) return false;
245
+ if (cls.indexOf(" ") !== -1) throw new Error("className should not contain space.");
246
+ if (el.classList) {
247
+ return el.classList.contains(cls);
248
+ } else {
249
+ return (" " + el.className + " ").indexOf(" " + cls + " ") > -1;
250
+ }
251
+ }
252
+
253
+ /* istanbul ignore next */
254
+ export function addClass (el, cls) {
255
+ if (!el) return;
256
+ let curClass = el.className;
257
+ const classes = (cls || "").split(" ");
258
+
259
+ for (let i = 0, j = classes.length; i < j; i++) {
260
+ const clsName = classes[i];
261
+ if (!clsName) continue;
262
+
263
+ if (el.classList) {
264
+ el.classList.add(clsName);
265
+ } else {
266
+ if (!hasClass(el, clsName)) {
267
+ curClass += " " + clsName;
268
+ }
269
+ }
270
+ }
271
+ if (!el.classList) {
272
+ el.className = curClass;
273
+ }
274
+ }
275
+
276
+ /* istanbul ignore next */
277
+ export function removeClass (el, cls) {
278
+ if (!el || !cls) return;
279
+ const classes = cls.split(" ");
280
+ let curClass = " " + el.className + " ";
281
+
282
+ for (let i = 0, j = classes.length; i < j; i++) {
283
+ const clsName = classes[i];
284
+ if (!clsName) continue;
285
+
286
+ if (el.classList) {
287
+ el.classList.remove(clsName);
288
+ } else {
289
+ if (hasClass(el, clsName)) {
290
+ curClass = curClass.replace(" " + clsName + " ", " ");
291
+ }
292
+ }
293
+ }
294
+ if (!el.classList) {
295
+ el.className = trim(curClass);
296
+ }
297
+ }
298
+
299
+ export const dimensionMap = {
300
+ xs: "480px",
301
+ sm: "576px",
302
+ md: "768px",
303
+ lg: "992px",
304
+ xl: "1200px",
305
+ xxl: "1600px"
306
+ };
307
+
308
+ export function setMatchMedia () {
309
+ if (typeof window !== "undefined") {
310
+ const matchMediaPolyfill = mediaQuery => {
311
+ return {
312
+ media: mediaQuery,
313
+ matches: false,
314
+ on () {},
315
+ off () {}
316
+ };
317
+ };
318
+ window.matchMedia = window.matchMedia || matchMediaPolyfill;
319
+ }
320
+ }
321
+
322
+ export const sharpMatcherRegx = /#([^#]+)$/;
@@ -0,0 +1,148 @@
1
+ <template>
2
+ <div :class="`DshNumber ycFormItem control-${mode}`">
3
+ <!-- 编辑模式 组件无clearable -->
4
+ <template v-if="finalCanEdit">
5
+ <BriInputNumber
6
+ style="width: 100%"
7
+ :class="{
8
+ 'DshNumber-readonly': $isReadonly(canEdit, selfPropsObj),
9
+ 'DshNumber-disabled': $isDisabled(canEdit, selfPropsObj)
10
+ }"
11
+ v-model="value[controlKey]"
12
+ :placeholder="$showPlaceholder(canEdit, selfPropsObj) ? `请输入${selfPropsObj._name}` : ''"
13
+ :disabled="!finalCanEdit"
14
+ :formatter="formatterFunc"
15
+ :max="maxNum"
16
+ :min="minNum"
17
+ :precision="digit"
18
+ @on-change="change"
19
+ >
20
+ <div
21
+ v-if="unitStr"
22
+ slot="suffix"
23
+ style="padding-right: 24px; padding-left: 8px; line-height: 30px; white-space: nowrap"
24
+ >
25
+ {{ unitStr }}
26
+ </div>
27
+ </BriInputNumber>
28
+ </template>
29
+
30
+ <!-- 查看模式 -->
31
+ <template v-else>
32
+ <Progress
33
+ v-if="selfPropsObj._showProgress"
34
+ :percent="value[controlKey] > 100 ? 100 : toDecimal(value[controlKey])"
35
+ />
36
+ <Ctooltip
37
+ v-else
38
+ placement="top"
39
+ :transfer="true"
40
+ :content="String(showVal)"
41
+ :class="commonClass"
42
+ >
43
+ <span
44
+ v-if="$isFormItemHasData(showVal)"
45
+ class="dsh-ellipsis hb-show-text"
46
+ >
47
+ {{ showVal }}
48
+ </span>
49
+ <span
50
+ v-else
51
+ class="dsh-ellipsis hb-nodata-text"
52
+ >
53
+ <span>暂无内容</span>
54
+ </span>
55
+ </Ctooltip>
56
+ </template>
57
+ </div>
58
+ </template>
59
+
60
+ <script>
61
+ import BriInputNumber from "./BriInputNumber/BriInputNumber.vue";
62
+ import controlMixin from "../../controlMixin.js";
63
+
64
+ export default {
65
+ name: "DshNumber",
66
+ mixins: [controlMixin],
67
+ components: {
68
+ BriInputNumber
69
+ },
70
+ props: {},
71
+ data () {
72
+ return {};
73
+ },
74
+ computed: {
75
+ selfPropsObj () {
76
+ return {
77
+ ...this.propsObj
78
+ };
79
+ },
80
+ formatterFunc () {
81
+ if (this.separator) {
82
+ return this.$numToSeparator;
83
+ } else {
84
+ return value => `${value}`;
85
+ }
86
+ },
87
+
88
+ maxNum () {
89
+ return this.selfPropsObj._max || this.selfPropsObj._max === 0 ? this.selfPropsObj._max : Infinity;
90
+ },
91
+ minNum () {
92
+ return this.selfPropsObj._min || this.selfPropsObj._min === 0 ? this.selfPropsObj._min : -Infinity;
93
+ },
94
+ // round, decimal, 为其他值不处理
95
+ round () {
96
+ return this.selfPropsObj._round;
97
+ },
98
+ digit () {
99
+ return this.round === "round"
100
+ ? 0
101
+ : this.round === "decimal"
102
+ ? Number(this.selfPropsObj._digit || 2)
103
+ : undefined;
104
+ },
105
+ numberFormat () {
106
+ return this.selfPropsObj._numberFormat;
107
+ },
108
+ unit () {
109
+ return this.selfPropsObj._unit;
110
+ },
111
+ unitStr () {
112
+ return this.numberFormat === "percent"
113
+ ? "%"
114
+ : this.unit
115
+ ? `${this.unit}`
116
+ : "";
117
+ },
118
+ separator () {
119
+ return this.selfPropsObj._separator;
120
+ },
121
+
122
+ showVal () {
123
+ return this.$numToStrAndUnit(this.value[this.controlKey], this.selfPropsObj);
124
+ }
125
+ },
126
+ created () {},
127
+ methods: {
128
+ toDecimal (x) {
129
+ let f = parseFloat(x);
130
+ if (isNaN(f)) {
131
+ return;
132
+ }
133
+ f = Math.round(x * 100) / 100;
134
+ return f;
135
+ }
136
+ }
137
+ };
138
+ </script>
139
+
140
+ <style lang="less">
141
+ .DshNumber {
142
+ width: 100%;
143
+
144
+ .ivu-input-number-disabled .ivu-input-number-input {
145
+ color:#999;
146
+ }
147
+ }
148
+ </style>
@@ -0,0 +1,137 @@
1
+ <template>
2
+ <!-- 组件无clearable -->
3
+ <div :class="`DshNumberange ycFormItem control-${mode}`">
4
+ <!-- 最小值 -->
5
+ <div class="DshNumberange-left">
6
+ <BriInputNumber
7
+ style="width: 100%;"
8
+ :class="{
9
+ 'DshNumberange-left-readonly': $isReadonly(canEdit, propsObj),
10
+ 'DshNumberange-left-disabled': $isDisabled(canEdit, propsObj)
11
+ }"
12
+ v-model="value[propsObj._key][0]"
13
+ :placeholder="$showPlaceholder(canEdit, propsObj) ? `请输入${propsObj._name}最小值` : ''"
14
+ :disabled="!finalCanEdit"
15
+ :formatter="formatterFunc"
16
+ :max="maxNum"
17
+ :min="minNum"
18
+ :precision="digit"
19
+ :step="step"
20
+ @on-change="change"
21
+ >
22
+ <div
23
+ v-if="unitStr"
24
+ slot="suffix"
25
+ style="padding-right: 24px; padding-left: 8px; line-height: 30px; white-space: nowrap"
26
+ >
27
+ {{ unitStr }}
28
+ </div>
29
+ </BriInputNumber>
30
+ </div>
31
+
32
+ <!-- 中 -->
33
+ <span class="DshNumberange-center"> — </span>
34
+
35
+ <!-- 最大值 -->
36
+ <div class="DshNumberange-right">
37
+ <BriInputNumber
38
+ style="width: 100%;"
39
+ :class="{
40
+ 'DshNumberange-right-readonly': $isReadonly(canEdit, propsObj),
41
+ 'DshNumberange-right-disabled': $isDisabled(canEdit, propsObj)
42
+ }"
43
+ v-model="value[propsObj._key][1]"
44
+ :placeholder="$showPlaceholder(canEdit, propsObj) ? `请输入${propsObj._name}最大值` : ''"
45
+ :disabled="!finalCanEdit"
46
+ :max="maxNum"
47
+ :min="minNum"
48
+ :formatter="formatterFunc"
49
+ :step="propsObj._step"
50
+ @on-change="change"
51
+ >
52
+ <div
53
+ v-if="unitStr"
54
+ slot="suffix"
55
+ style="padding-right: 24px; padding-left: 8px; line-height: 30px; white-space: nowrap"
56
+ >
57
+ {{ unitStr }}
58
+ </div>
59
+ </BriInputNumber>
60
+ </div>
61
+ </div>
62
+ </template>
63
+
64
+ <script>
65
+ import controlMixin from "../controlMixin.js";
66
+ import BriInputNumber from "./DshNumber/BriInputNumber/BriInputNumber.vue";
67
+
68
+ export default {
69
+ name: "DshNumberange",
70
+ mixins: [controlMixin],
71
+ components: {
72
+ BriInputNumber
73
+ },
74
+ props: {},
75
+ data () {
76
+ return {};
77
+ },
78
+ computed: {
79
+ selfPropsObj () {
80
+ return {
81
+ ...this.propsObj
82
+ };
83
+ },
84
+ formatterFunc () {
85
+ if (this.propsObj._separator) {
86
+ return this.$numToSeparator;
87
+ } else {
88
+ return value => `${value}`;
89
+ }
90
+ },
91
+
92
+ maxNum () {
93
+ return this.selfPropsObj._max || this.selfPropsObj._max === 0 ? this.selfPropsObj._max : Infinity;
94
+ },
95
+ minNum () {
96
+ return this.selfPropsObj._min || this.selfPropsObj._min === 0 ? this.selfPropsObj._min : -Infinity;
97
+ },
98
+ // round, decimal, 为其他值不处理
99
+ round () {
100
+ return this.selfPropsObj._round;
101
+ },
102
+ digit () {
103
+ return this.round === "round"
104
+ ? 0
105
+ : this.round === "decimal"
106
+ ? Number(this.selfPropsObj._digit || 2)
107
+ : undefined;
108
+ },
109
+ numberFormat () {
110
+ return this.selfPropsObj._numberFormat;
111
+ },
112
+ unit () {
113
+ return this.selfPropsObj._unit;
114
+ },
115
+ unitStr () {
116
+ return this.numberFormat === "percent"
117
+ ? "%"
118
+ : this.unit
119
+ ? `${this.unit}`
120
+ : "";
121
+ },
122
+ separator () {
123
+ return this.selfPropsObj._separator;
124
+ },
125
+
126
+ step () {
127
+ return this.selfPropsObj._step;
128
+ }
129
+ },
130
+ created () {},
131
+ methods: {
132
+ change (...params) {
133
+ this.$emit("change", ...params);
134
+ }
135
+ }
136
+ };
137
+ </script>
@@ -0,0 +1,72 @@
1
+ <!-- 动态表单 -->
2
+ <template>
3
+ <div class="DshPackage">
4
+ <div
5
+ class="DshPackage-edit"
6
+ v-if="canEdit"
7
+ >
8
+ <dsh-form
9
+ v-if="value[propsObj._key]"
10
+ class="reference-single-content-form"
11
+ :canEdit="finalCanEdit"
12
+ :formData="value[propsObj._key].data || {}"
13
+ :formList="value[propsObj._key].form || []"
14
+ @click.native="clickRow(val)"
15
+ ></dsh-form>
16
+ <div
17
+ v-else
18
+ class="DshPackage-edit-nodata"
19
+ ><span>暂无字段</span>
20
+ </div>
21
+ </div>
22
+
23
+ <div v-else>
24
+ <dsh-form
25
+ v-if="value[propsObj._key]"
26
+ class="reference-single-content-form"
27
+ :canEdit="finalCanEdit"
28
+ :formData="value[propsObj._key].data || {}"
29
+ :formList="value[propsObj._key].form || []"
30
+ @click.native="clickRow(val)"
31
+ ></dsh-form>
32
+ <div
33
+ v-else
34
+ class="DshPackage-nodata"
35
+ ><span>暂无数据</span>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ </template>
40
+ <script>
41
+ import controlMixin from "../controlMixin.js";
42
+
43
+ export default {
44
+ name: "DshPackage",
45
+ mixins: [controlMixin],
46
+ components: {},
47
+ props: {
48
+ canEdit: {
49
+ type: Boolean,
50
+ default: true
51
+ },
52
+ formData: {
53
+ type: Object,
54
+ default () {
55
+ return {};
56
+ }
57
+ },
58
+ formList: {
59
+ type: Array,
60
+ default () {
61
+ return [];
62
+ }
63
+ }
64
+ },
65
+ data () {
66
+ return {};
67
+ },
68
+ computed: {},
69
+ created () {},
70
+ methods: {}
71
+ };
72
+ </script>