eoss-ui 0.8.23 → 0.8.25

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 (299) hide show
  1. package/lib/button-group.js +228 -231
  2. package/lib/button.js +166 -153
  3. package/lib/calendar.js +2 -2
  4. package/lib/calogin.js +393 -379
  5. package/lib/card.js +2 -2
  6. package/lib/cascader.js +2 -2
  7. package/lib/checkbox-group.js +162 -148
  8. package/lib/clients.js +2 -2
  9. package/lib/config/api.js +5 -0
  10. package/lib/data-table-form.js +162 -148
  11. package/lib/data-table.js +165 -151
  12. package/lib/date-picker.js +159 -146
  13. package/lib/dialog.js +166 -153
  14. package/lib/enable-drag.js +2 -2
  15. package/lib/enterprise.js +2 -2
  16. package/lib/eoss-ui.common.js +1362 -891
  17. package/lib/error-page.js +2 -2
  18. package/lib/flow-group.js +159 -146
  19. package/lib/flow-list.js +174 -161
  20. package/lib/flow.js +501 -487
  21. package/lib/form.js +161 -148
  22. package/lib/handle-user.js +160 -147
  23. package/lib/handler.js +160 -147
  24. package/lib/icon.js +160 -147
  25. package/lib/icons.js +2 -2
  26. package/lib/index.js +1 -1
  27. package/lib/input-number.js +159 -146
  28. package/lib/input.js +159 -146
  29. package/lib/label.js +2 -2
  30. package/lib/layout.js +2 -2
  31. package/lib/login.js +174 -160
  32. package/lib/main.js +523 -509
  33. package/lib/menu.js +2 -2
  34. package/lib/nav.js +159 -146
  35. package/lib/notify.js +157 -148
  36. package/lib/page.js +159 -146
  37. package/lib/pagination.js +159 -146
  38. package/lib/player.js +164 -151
  39. package/lib/qr-code.js +174 -161
  40. package/lib/radio-group.js +161 -148
  41. package/lib/retrial-auth.js +163 -150
  42. package/lib/select-ganged.js +161 -148
  43. package/lib/select.js +161 -148
  44. package/lib/selector-panel.js +178 -164
  45. package/lib/selector.js +161 -148
  46. package/lib/sizer.js +168 -155
  47. package/lib/steps.js +159 -146
  48. package/lib/switch.js +159 -146
  49. package/lib/table-form.js +159 -146
  50. package/lib/tabs-panel.js +2 -2
  51. package/lib/tabs.js +159 -146
  52. package/lib/theme-chalk/index.css +1 -1
  53. package/lib/theme-chalk/login.css +1 -1
  54. package/lib/theme-chalk/tree.css +1 -1
  55. package/lib/tips.js +160 -147
  56. package/lib/toolbar.js +2 -2
  57. package/lib/tree-group.js +159 -146
  58. package/lib/tree.js +160 -147
  59. package/lib/upload.js +698 -223
  60. package/lib/utils/util.js +5 -1
  61. package/lib/wujie.js +159 -146
  62. package/lib/wxlogin.js +159 -146
  63. package/package.json +2 -1
  64. package/packages/button/index.js +5 -5
  65. package/packages/button/src/main.vue +418 -418
  66. package/packages/button-group/index.js +5 -5
  67. package/packages/calendar/index.js +5 -5
  68. package/packages/calogin/index.js +5 -5
  69. package/packages/calogin/src/plugin.js +915 -915
  70. package/packages/card/index.js +5 -5
  71. package/packages/card/src/main.vue +156 -156
  72. package/packages/cascader/index.js +5 -5
  73. package/packages/cascader/src/main.vue +168 -168
  74. package/packages/checkbox-group/index.js +5 -5
  75. package/packages/checkbox-group/src/main.vue +333 -333
  76. package/packages/clients/index.js +5 -5
  77. package/packages/data-table/index.js +5 -5
  78. package/packages/data-table/src/children.vue +46 -46
  79. package/packages/data-table/src/main.vue +1876 -1876
  80. package/packages/data-table/src/sizer.vue +195 -195
  81. package/packages/data-table-form/index.js +5 -5
  82. package/packages/data-table-form/src/checkbox.vue +101 -101
  83. package/packages/data-table-form/src/colgroup.vue +17 -17
  84. package/packages/data-table-form/src/main.vue +181 -181
  85. package/packages/data-table-form/src/radio.vue +65 -65
  86. package/packages/data-table-form/src/table.vue +233 -233
  87. package/packages/data-table-form/src/tbody.vue +336 -336
  88. package/packages/data-table-form/src/thead.vue +68 -68
  89. package/packages/date-picker/index.js +5 -5
  90. package/packages/date-picker/src/main.vue +236 -236
  91. package/packages/dialog/index.js +5 -5
  92. package/packages/enable-drag/index.js +5 -5
  93. package/packages/enterprise/index.js +5 -5
  94. package/packages/enterprise/src/main.vue +66 -66
  95. package/packages/error-page/index.js +5 -5
  96. package/packages/error-page/src/main.vue +44 -44
  97. package/packages/flow/index.js +5 -5
  98. package/packages/flow/src/component/Circulate.vue +420 -420
  99. package/packages/flow/src/component/CustomPreset.vue +324 -324
  100. package/packages/flow/src/component/FreeCirculation.vue +245 -245
  101. package/packages/flow/src/component/Preset.vue +257 -257
  102. package/packages/flow/src/component/TimeLimit.vue +190 -190
  103. package/packages/flow/src/component/taskUnionExamine.vue +763 -763
  104. package/packages/flow/src/freeStartFlow.vue +2898 -2898
  105. package/packages/flow/src/main.vue +4248 -4248
  106. package/packages/flow/src/processForm.vue +1806 -1806
  107. package/packages/flow/src/processReject.vue +311 -311
  108. package/packages/flow/src/reset.vue +952 -952
  109. package/packages/flow/src/startTaskRead.vue +698 -698
  110. package/packages/flow/src/supervise.vue +162 -162
  111. package/packages/flow-group/index.js +5 -5
  112. package/packages/flow-group/src/main.vue +750 -750
  113. package/packages/flow-list/index.js +5 -5
  114. package/packages/form/index.js +5 -5
  115. package/packages/handle-user/index.js +5 -5
  116. package/packages/handle-user/src/main.vue +137 -137
  117. package/packages/handler/index.js +5 -5
  118. package/packages/handler/src/main.vue +499 -499
  119. package/packages/icon/index.js +5 -5
  120. package/packages/icons/index.js +5 -5
  121. package/packages/icons/src/main.vue +81 -81
  122. package/packages/input/index.js +5 -5
  123. package/packages/input/src/main.vue +356 -356
  124. package/packages/input-number/index.js +5 -5
  125. package/packages/input-number/src/main.vue +106 -106
  126. package/packages/label/index.js +5 -5
  127. package/packages/label/src/main.vue +457 -457
  128. package/packages/layout/index.js +5 -5
  129. package/packages/layout/src/item.vue +152 -152
  130. package/packages/layout/src/main.vue +31 -31
  131. package/packages/login/index.js +5 -5
  132. package/packages/login/src/main.vue +2088 -2088
  133. package/packages/main/index.js +5 -5
  134. package/packages/main/src/default/message.vue +249 -249
  135. package/packages/main/src/default/notice.vue +157 -157
  136. package/packages/main/src/default/userinfo.vue +513 -513
  137. package/packages/main/src/simplicity/index.vue +2403 -2403
  138. package/packages/main/src/simplicity/lists.vue +84 -84
  139. package/packages/main/src/simplicity/router-page.vue +45 -45
  140. package/packages/main/src/simplicity/userinfo.vue +408 -408
  141. package/packages/main/src/simplicityTop/index.vue +2688 -2688
  142. package/packages/main/src/simplicityTop/userinfo.vue +408 -408
  143. package/packages/menu/index.js +5 -5
  144. package/packages/menu/src/main.vue +597 -597
  145. package/packages/nav/index.js +5 -5
  146. package/packages/notify/index.js +5 -5
  147. package/packages/notify/src/main.vue +538 -538
  148. package/packages/page/index.js +5 -5
  149. package/packages/page/src/main.vue +167 -167
  150. package/packages/pagination/index.js +5 -5
  151. package/packages/pagination/src/main.vue +96 -96
  152. package/packages/player/index.js +5 -5
  153. package/packages/player/src/main.vue +194 -194
  154. package/packages/qr-code/index.js +5 -5
  155. package/packages/qr-code/src/main.vue +170 -170
  156. package/packages/radio-group/index.js +6 -6
  157. package/packages/radio-group/src/main.vue +319 -319
  158. package/packages/retrial-auth/index.js +5 -5
  159. package/packages/retrial-auth/src/main.vue +299 -299
  160. package/packages/select/index.js +5 -5
  161. package/packages/select-ganged/index.js +5 -5
  162. package/packages/select-ganged/src/main.vue +724 -724
  163. package/packages/selector/index.js +5 -5
  164. package/packages/selector-panel/index.js +5 -5
  165. package/packages/selector-panel/src/tree.vue +129 -129
  166. package/packages/sizer/index.js +5 -5
  167. package/packages/sizer/src/main.vue +257 -257
  168. package/packages/steps/index.js +5 -5
  169. package/packages/steps/src/main.vue +181 -181
  170. package/packages/switch/index.js +5 -5
  171. package/packages/table-form/index.js +5 -5
  172. package/packages/tabs/index.js +5 -5
  173. package/packages/tabs/src/main.vue +788 -788
  174. package/packages/tabs-panel/index.js +5 -5
  175. package/packages/tabs-panel/src/main.vue +29 -29
  176. package/packages/theme-chalk/gulpfile.js +25 -0
  177. package/packages/theme-chalk/src/base.scss +261 -261
  178. package/packages/theme-chalk/src/button-group.scss +176 -176
  179. package/packages/theme-chalk/src/button.scss +24 -24
  180. package/packages/theme-chalk/src/calendar.scss +113 -113
  181. package/packages/theme-chalk/src/card.scss +99 -99
  182. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  183. package/packages/theme-chalk/src/clients.scss +87 -87
  184. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  185. package/packages/theme-chalk/src/date-picker.scss +7 -7
  186. package/packages/theme-chalk/src/dialog.scss +77 -77
  187. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  188. package/packages/theme-chalk/src/enterprise.scss +5 -5
  189. package/packages/theme-chalk/src/error-page.scss +18 -18
  190. package/packages/theme-chalk/src/flow-group.scss +110 -110
  191. package/packages/theme-chalk/src/flow.scss +376 -376
  192. package/packages/theme-chalk/src/handle-user.scss +40 -40
  193. package/packages/theme-chalk/src/icons.scss +99 -99
  194. package/packages/theme-chalk/src/input.scss +9 -9
  195. package/packages/theme-chalk/src/label.scss +24 -24
  196. package/packages/theme-chalk/src/layout.scss +46 -46
  197. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  198. package/packages/theme-chalk/src/nav.scss +111 -111
  199. package/packages/theme-chalk/src/page.scss +3 -3
  200. package/packages/theme-chalk/src/pagination.scss +29 -29
  201. package/packages/theme-chalk/src/player.scss +9 -9
  202. package/packages/theme-chalk/src/qr-code.scss +17 -17
  203. package/packages/theme-chalk/src/radio-group.scss +9 -9
  204. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  205. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  206. package/packages/theme-chalk/src/select.scss +8 -8
  207. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  208. package/packages/theme-chalk/src/sizer.scss +36 -36
  209. package/packages/theme-chalk/src/steps.scss +88 -88
  210. package/packages/theme-chalk/src/switch.scss +3 -3
  211. package/packages/theme-chalk/src/table-form.scss +1 -1
  212. package/packages/theme-chalk/src/tabs.scss +87 -87
  213. package/packages/theme-chalk/src/tips.scss +7 -7
  214. package/packages/theme-chalk/src/toolbar.scss +179 -179
  215. package/packages/theme-chalk/src/tree-group.scss +72 -72
  216. package/packages/theme-chalk/src/tree.scss +7 -5
  217. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  218. package/packages/tips/index.js +5 -5
  219. package/packages/toolbar/index.js +5 -5
  220. package/packages/toolbar/src/main.vue +430 -430
  221. package/packages/tree/index.js +5 -5
  222. package/packages/tree-group/index.js +5 -5
  223. package/packages/upload/index.js +5 -5
  224. package/packages/upload/src/main.vue +1813 -1345
  225. package/packages/upload/src/picture.js +15 -15
  226. package/packages/wujie/index.js +5 -5
  227. package/packages/wxlogin/index.js +5 -5
  228. package/packages/wxlogin/src/main.vue +128 -128
  229. package/src/config/api.js +356 -351
  230. package/src/config/image.js +2 -2
  231. package/src/index.js +1 -1
  232. package/src/utils/bus.js +3 -3
  233. package/src/utils/date-util.js +312 -312
  234. package/src/utils/http.js +50 -50
  235. package/src/utils/store.js +21 -21
  236. package/src/utils/util.js +6 -1
  237. package/src/utils/webSocket.js +107 -107
  238. package/packages/theme-chalk/lib/base.css +0 -1
  239. package/packages/theme-chalk/lib/button-group.css +0 -1
  240. package/packages/theme-chalk/lib/button.css +0 -1
  241. package/packages/theme-chalk/lib/calendar.css +0 -1
  242. package/packages/theme-chalk/lib/calogin.css +0 -0
  243. package/packages/theme-chalk/lib/card.css +0 -1
  244. package/packages/theme-chalk/lib/cascader.css +0 -0
  245. package/packages/theme-chalk/lib/checkbox-group.css +0 -1
  246. package/packages/theme-chalk/lib/clients.css +0 -1
  247. package/packages/theme-chalk/lib/data-table-form.css +0 -1
  248. package/packages/theme-chalk/lib/data-table.css +0 -1
  249. package/packages/theme-chalk/lib/date-picker.css +0 -1
  250. package/packages/theme-chalk/lib/dialog.css +0 -1
  251. package/packages/theme-chalk/lib/enable-drag.css +0 -1
  252. package/packages/theme-chalk/lib/enterprise.css +0 -1
  253. package/packages/theme-chalk/lib/error-page.css +0 -1
  254. package/packages/theme-chalk/lib/flow-chart.css +0 -0
  255. package/packages/theme-chalk/lib/flow-group.css +0 -1
  256. package/packages/theme-chalk/lib/flow-list.css +0 -1
  257. package/packages/theme-chalk/lib/flow.css +0 -1
  258. package/packages/theme-chalk/lib/fonts/iconfont.ttf +0 -0
  259. package/packages/theme-chalk/lib/fonts/iconfont.woff +0 -0
  260. package/packages/theme-chalk/lib/form.css +0 -1
  261. package/packages/theme-chalk/lib/handle-user.css +0 -1
  262. package/packages/theme-chalk/lib/handler.css +0 -1
  263. package/packages/theme-chalk/lib/icon.css +0 -1
  264. package/packages/theme-chalk/lib/icons.css +0 -1
  265. package/packages/theme-chalk/lib/index.css +0 -1
  266. package/packages/theme-chalk/lib/input-number.css +0 -0
  267. package/packages/theme-chalk/lib/input.css +0 -1
  268. package/packages/theme-chalk/lib/label.css +0 -1
  269. package/packages/theme-chalk/lib/layout.css +0 -1
  270. package/packages/theme-chalk/lib/login.css +0 -1
  271. package/packages/theme-chalk/lib/main.css +0 -1
  272. package/packages/theme-chalk/lib/menu.css +0 -1
  273. package/packages/theme-chalk/lib/nav.css +0 -1
  274. package/packages/theme-chalk/lib/notify.css +0 -0
  275. package/packages/theme-chalk/lib/page.css +0 -1
  276. package/packages/theme-chalk/lib/pagination.css +0 -1
  277. package/packages/theme-chalk/lib/player.css +0 -1
  278. package/packages/theme-chalk/lib/qr-code.css +0 -1
  279. package/packages/theme-chalk/lib/radio-group.css +0 -1
  280. package/packages/theme-chalk/lib/retrial-auth.css +0 -1
  281. package/packages/theme-chalk/lib/select-ganged.css +0 -1
  282. package/packages/theme-chalk/lib/select.css +0 -1
  283. package/packages/theme-chalk/lib/selector-panel.css +0 -1
  284. package/packages/theme-chalk/lib/selector.css +0 -1
  285. package/packages/theme-chalk/lib/simplicity-top.css +0 -1
  286. package/packages/theme-chalk/lib/simplicity.css +0 -1
  287. package/packages/theme-chalk/lib/sizer.css +0 -1
  288. package/packages/theme-chalk/lib/steps.css +0 -1
  289. package/packages/theme-chalk/lib/switch.css +0 -1
  290. package/packages/theme-chalk/lib/table-form.css +0 -0
  291. package/packages/theme-chalk/lib/tabs-panel.css +0 -0
  292. package/packages/theme-chalk/lib/tabs.css +0 -1
  293. package/packages/theme-chalk/lib/tips.css +0 -1
  294. package/packages/theme-chalk/lib/toolbar.css +0 -1
  295. package/packages/theme-chalk/lib/tree-group.css +0 -1
  296. package/packages/theme-chalk/lib/tree.css +0 -1
  297. package/packages/theme-chalk/lib/upload.css +0 -1
  298. package/packages/theme-chalk/lib/wujie.css +0 -0
  299. package/packages/theme-chalk/lib/wxlogin.css +0 -1
@@ -1,170 +1,170 @@
1
- <template>
2
- <div class="es-qrcode-box" id="qrcode" ref="qrcode">
3
- <template v-if="mwidth && mheight">
4
- <img
5
- class="es-qrcode-img"
6
- :width="mwidth"
7
- :height="mheight"
8
- ref="qrcodeImg"
9
- alt="二维码图片"
10
- />
11
- <!-- <img
12
- v-if="logo"
13
- class="es-qrcode-logo"
14
- ref="qrcodeLogo"
15
- :src="logo"
16
- alt="二维码logo"
17
- /> -->
18
- <canvas
19
- :width="mwidth"
20
- :height="mheight"
21
- class="canvas"
22
- ref="canvas"
23
- ></canvas>
24
- </template>
25
- </div>
26
- </template>
27
-
28
- <script>
29
- import util from 'eoss-ui/src/utils/util';
30
- const QRCode = require('qrcode');
31
- export default {
32
- name: 'EsQrCode',
33
- props: {
34
- content: {
35
- type: String,
36
- required: true
37
- },
38
- logo: String,
39
- text: String,
40
- width: {
41
- type: Number,
42
- default: 300
43
- },
44
- height: {
45
- type: Number,
46
- default: 300
47
- },
48
- auto: Boolean,
49
- option: {
50
- type: Object,
51
- default: () => {
52
- return {
53
- errorCorrectionLevel: 'H', //纠错等级
54
- color: {
55
- dark: '#000000',
56
- light: '#ffffff'
57
- }
58
- };
59
- }
60
- }
61
- },
62
- computed: {},
63
- data() {
64
- return {
65
- mwidth: 0,
66
- mheight: 0
67
- };
68
- },
69
- watch: {
70
- logo: function (val) {
71
- this.$nextTick(() => {
72
- this.createQRCode();
73
- });
74
- },
75
- content: {
76
- immediate: true,
77
- handler(val) {
78
- if (val) {
79
- this.createQRCode();
80
- }
81
- }
82
- }
83
- },
84
- created() {},
85
- mounted() {
86
- if (this.auto) {
87
- let h =
88
- (this.$refs.qrcode.offsetHeight || this.$refs.qrcode.offsetWidth) -
89
- parseInt(util.getStyle(this.$refs.qrcode, 'padding-top'), 10) -
90
- parseInt(util.getStyle(this.$refs.qrcode, 'padding-bottom'), 10);
91
- if (h > 0) {
92
- this.mwidth = h;
93
- this.mheight = h;
94
- }
95
- } else {
96
- this.mwidth = this.width;
97
- this.mheight = this.height;
98
- }
99
- this.$nextTick(() => {
100
- this.createQRCode();
101
- });
102
- },
103
- methods: {
104
- createQRCode() {
105
- let qrcodeImg = this.$refs.qrcodeImg;
106
- //let qrcodeLogo = this.$refs.qrcodeLogo;
107
- let canvas = this.$refs.canvas;
108
- let option = util.extend({}, this.option, {
109
- width: this.mwidth,
110
- height: this.mheight
111
- });
112
- if (!qrcodeImg) {
113
- return false;
114
- }
115
- QRCode.toDataURL(this.content, option, (err, url) => {
116
- if (this.content && url) {
117
- qrcodeImg.src = url;
118
- // 画二维码里的logo// 在canvas里进行拼接
119
- let ctx = canvas.getContext('2d');
120
- setTimeout(() => {
121
- //获取图片
122
- ctx.drawImage(qrcodeImg, 0, 0, this.mwidth, this.mheight);
123
- if (this.logo && this.logo.indexOf('.') > -1) {
124
- let logo = new Image();
125
- logo.src = this.logo;
126
- //设置logo大小
127
- let logoPosition = (this.mwidth - 46) / 2; //logo相对于canvas居中定位
128
- //设置获取的logo将其变为圆角以及添加白色背景
129
- /* ctx.fillStyle = "#fff";
130
- ctx.beginPath();
131
- let h = 46; //圆角高 10为基数(logo四周白色背景为10/2)
132
- let w = 46; //圆角宽
133
- let x = logoPosition - 5;
134
- let y = logoPosition - 5;
135
- let r = 5; //圆角半径
136
- ctx.moveTo(x + r, y);
137
- ctx.arcTo(x + w, y, x + w, y + h, r);
138
- ctx.arcTo(x + w, y + h, x, y + h, r);
139
- ctx.arcTo(x, y + h, x, y, r);
140
- ctx.arcTo(x, y, x + w, y, r);
141
- ctx.closePath();
142
- ctx.fill(); */
143
- logo.onload = () => {
144
- ctx.drawImage(logo, logoPosition, logoPosition, 46, 46);
145
- qrcodeImg.src = canvas.toDataURL();
146
- };
147
- } else if (this.text) {
148
- //设置字体
149
- let fpadd = 10; //规定内间距
150
- ctx.font = 'bold 16px Arial';
151
- let tw = ctx.measureText(this.text).width; //文字真实宽度
152
- let ftop = (this.mheight - 16) / 2; //根据字体大小计算文字top
153
- let fleft = (this.mwidth - tw) / 2; //根据字体大小计算文字left
154
- let tp = 16 / 2; //字体边距为字体大小的一半可以自己设置
155
- ctx.fillStyle = '#fff';
156
- ctx.fillRect(fleft - tp / 2, ftop - tp / 2, tw + tp, 16 + tp);
157
- ctx.textBaseline = 'top'; //设置绘制文本时的文本基线。
158
- ctx.fillStyle = '#f40';
159
- ctx.fillText(this.text, fleft, ftop);
160
- }
161
- canvas.style.display = 'none';
162
- qrcodeImg.src = canvas.toDataURL();
163
- qrcodeImg.style.display = 'inline-block';
164
- }, 500);
165
- }
166
- });
167
- }
168
- }
169
- };
170
- </script>
1
+ <template>
2
+ <div class="es-qrcode-box" id="qrcode" ref="qrcode">
3
+ <template v-if="mwidth && mheight">
4
+ <img
5
+ class="es-qrcode-img"
6
+ :width="mwidth"
7
+ :height="mheight"
8
+ ref="qrcodeImg"
9
+ alt="二维码图片"
10
+ />
11
+ <!-- <img
12
+ v-if="logo"
13
+ class="es-qrcode-logo"
14
+ ref="qrcodeLogo"
15
+ :src="logo"
16
+ alt="二维码logo"
17
+ /> -->
18
+ <canvas
19
+ :width="mwidth"
20
+ :height="mheight"
21
+ class="canvas"
22
+ ref="canvas"
23
+ ></canvas>
24
+ </template>
25
+ </div>
26
+ </template>
27
+
28
+ <script>
29
+ import util from 'eoss-ui/src/utils/util';
30
+ const QRCode = require('qrcode');
31
+ export default {
32
+ name: 'EsQrCode',
33
+ props: {
34
+ content: {
35
+ type: String,
36
+ required: true
37
+ },
38
+ logo: String,
39
+ text: String,
40
+ width: {
41
+ type: Number,
42
+ default: 300
43
+ },
44
+ height: {
45
+ type: Number,
46
+ default: 300
47
+ },
48
+ auto: Boolean,
49
+ option: {
50
+ type: Object,
51
+ default: () => {
52
+ return {
53
+ errorCorrectionLevel: 'H', //纠错等级
54
+ color: {
55
+ dark: '#000000',
56
+ light: '#ffffff'
57
+ }
58
+ };
59
+ }
60
+ }
61
+ },
62
+ computed: {},
63
+ data() {
64
+ return {
65
+ mwidth: 0,
66
+ mheight: 0
67
+ };
68
+ },
69
+ watch: {
70
+ logo: function (val) {
71
+ this.$nextTick(() => {
72
+ this.createQRCode();
73
+ });
74
+ },
75
+ content: {
76
+ immediate: true,
77
+ handler(val) {
78
+ if (val) {
79
+ this.createQRCode();
80
+ }
81
+ }
82
+ }
83
+ },
84
+ created() {},
85
+ mounted() {
86
+ if (this.auto) {
87
+ let h =
88
+ (this.$refs.qrcode.offsetHeight || this.$refs.qrcode.offsetWidth) -
89
+ parseInt(util.getStyle(this.$refs.qrcode, 'padding-top'), 10) -
90
+ parseInt(util.getStyle(this.$refs.qrcode, 'padding-bottom'), 10);
91
+ if (h > 0) {
92
+ this.mwidth = h;
93
+ this.mheight = h;
94
+ }
95
+ } else {
96
+ this.mwidth = this.width;
97
+ this.mheight = this.height;
98
+ }
99
+ this.$nextTick(() => {
100
+ this.createQRCode();
101
+ });
102
+ },
103
+ methods: {
104
+ createQRCode() {
105
+ let qrcodeImg = this.$refs.qrcodeImg;
106
+ //let qrcodeLogo = this.$refs.qrcodeLogo;
107
+ let canvas = this.$refs.canvas;
108
+ let option = util.extend({}, this.option, {
109
+ width: this.mwidth,
110
+ height: this.mheight
111
+ });
112
+ if (!qrcodeImg) {
113
+ return false;
114
+ }
115
+ QRCode.toDataURL(this.content, option, (err, url) => {
116
+ if (this.content && url) {
117
+ qrcodeImg.src = url;
118
+ // 画二维码里的logo// 在canvas里进行拼接
119
+ let ctx = canvas.getContext('2d');
120
+ setTimeout(() => {
121
+ //获取图片
122
+ ctx.drawImage(qrcodeImg, 0, 0, this.mwidth, this.mheight);
123
+ if (this.logo && this.logo.indexOf('.') > -1) {
124
+ let logo = new Image();
125
+ logo.src = this.logo;
126
+ //设置logo大小
127
+ let logoPosition = (this.mwidth - 46) / 2; //logo相对于canvas居中定位
128
+ //设置获取的logo将其变为圆角以及添加白色背景
129
+ /* ctx.fillStyle = "#fff";
130
+ ctx.beginPath();
131
+ let h = 46; //圆角高 10为基数(logo四周白色背景为10/2)
132
+ let w = 46; //圆角宽
133
+ let x = logoPosition - 5;
134
+ let y = logoPosition - 5;
135
+ let r = 5; //圆角半径
136
+ ctx.moveTo(x + r, y);
137
+ ctx.arcTo(x + w, y, x + w, y + h, r);
138
+ ctx.arcTo(x + w, y + h, x, y + h, r);
139
+ ctx.arcTo(x, y + h, x, y, r);
140
+ ctx.arcTo(x, y, x + w, y, r);
141
+ ctx.closePath();
142
+ ctx.fill(); */
143
+ logo.onload = () => {
144
+ ctx.drawImage(logo, logoPosition, logoPosition, 46, 46);
145
+ qrcodeImg.src = canvas.toDataURL();
146
+ };
147
+ } else if (this.text) {
148
+ //设置字体
149
+ let fpadd = 10; //规定内间距
150
+ ctx.font = 'bold 16px Arial';
151
+ let tw = ctx.measureText(this.text).width; //文字真实宽度
152
+ let ftop = (this.mheight - 16) / 2; //根据字体大小计算文字top
153
+ let fleft = (this.mwidth - tw) / 2; //根据字体大小计算文字left
154
+ let tp = 16 / 2; //字体边距为字体大小的一半可以自己设置
155
+ ctx.fillStyle = '#fff';
156
+ ctx.fillRect(fleft - tp / 2, ftop - tp / 2, tw + tp, 16 + tp);
157
+ ctx.textBaseline = 'top'; //设置绘制文本时的文本基线。
158
+ ctx.fillStyle = '#f40';
159
+ ctx.fillText(this.text, fleft, ftop);
160
+ }
161
+ canvas.style.display = 'none';
162
+ qrcodeImg.src = canvas.toDataURL();
163
+ qrcodeImg.style.display = 'inline-block';
164
+ }, 500);
165
+ }
166
+ });
167
+ }
168
+ }
169
+ };
170
+ </script>
@@ -1,6 +1,6 @@
1
- import EsRadioGroup from './src/main';
2
-
3
- /* istanbul ignore next */
4
- EsRadioGroup.install = function(Vue) {Vue.component(EsRadioGroup.name, EsRadioGroup);};
5
-
6
- export default EsRadioGroup;
1
+ import EsRadioGroup from './src/main';
2
+
3
+ /* istanbul ignore next */
4
+ EsRadioGroup.install = function(Vue) {Vue.component(EsRadioGroup.name, EsRadioGroup);};
5
+
6
+ export default EsRadioGroup;