@netang/quasar 0.1.68 → 0.1.71

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 (247) hide show
  1. package/.editorconfig +12 -12
  2. package/_docs/docs/components/field-table.md +58 -58
  3. package/_docs/docs/components/field-tree.md +21 -21
  4. package/_docs/docs/components/table.md +24 -24
  5. package/_docs/docs/utils/table.md +196 -196
  6. package/components/dialog/img-viewer/index.vue +657 -657
  7. package/components/dialog/index.vue +372 -372
  8. package/components/drawer/index.vue +303 -303
  9. package/components/editor-code/index.vue +325 -325
  10. package/components/empty/index.vue +80 -80
  11. package/components/field-date/index.vue +850 -850
  12. package/components/field-table/index.vue +1277 -1277
  13. package/components/field-tree/index.vue +754 -754
  14. package/components/img/index.vue +211 -211
  15. package/components/mixed-table/index.vue +532 -532
  16. package/components/mixed-table-splitter/index.vue +377 -377
  17. package/components/power-page/index.vue +94 -94
  18. package/components/private/components/move-to-tree/index.vue +154 -154
  19. package/components/private/edit-power-data/index.vue +846 -846
  20. package/components/private/table-visible-columns-button/index.vue +114 -114
  21. package/components/render/index.vue +123 -123
  22. package/components/search/index.vue +231 -231
  23. package/components/search-item/index.vue +212 -212
  24. package/components/select/index.vue +177 -177
  25. package/components/splitter/index.vue +422 -422
  26. package/components/table/index.vue +513 -513
  27. package/components/table-column-fixed/index.vue +110 -110
  28. package/components/table-summary/index.vue +107 -107
  29. package/components/toolbar/index.vue +146 -146
  30. package/components/tree/index.vue +1728 -1728
  31. package/components/uploader/index.vue +188 -188
  32. package/components/uploader-query/index.vue +892 -883
  33. package/docs/404.html +33 -33
  34. package/docs/assets/404.html-60b35caa.js +1 -1
  35. package/docs/assets/404.html-d1e63d77.js +1 -1
  36. package/docs/assets/alert.html-b2a2a72f.js +5 -5
  37. package/docs/assets/alert.html-ba46d137.js +1 -1
  38. package/docs/assets/app-9f30aa4b.js +6 -6
  39. package/docs/assets/area.html-01b9b58d.js +42 -42
  40. package/docs/assets/area.html-9a4fce6a.js +1 -1
  41. package/docs/assets/arr.html-145d27e7.js +1 -1
  42. package/docs/assets/arr.html-674e65ab.js +11 -11
  43. package/docs/assets/auth.html-579fa830.js +1 -1
  44. package/docs/assets/auth.html-8544ed95.js +8 -8
  45. package/docs/assets/bus.html-c71254aa.js +1 -1
  46. package/docs/assets/bus.html-dc7d3d19.js +6 -6
  47. package/docs/assets/column-title.html-c735cb5a.js +3 -3
  48. package/docs/assets/column-title.html-e9316762.js +1 -1
  49. package/docs/assets/confirm.html-ddfdc27f.js +10 -10
  50. package/docs/assets/confirm.html-ef3e2bef.js +1 -1
  51. package/docs/assets/copy.html-d20345b6.js +1 -1
  52. package/docs/assets/copy.html-ef8c8571.js +13 -13
  53. package/docs/assets/data.html-6432175d.js +30 -30
  54. package/docs/assets/data.html-a3b05d5b.js +1 -1
  55. package/docs/assets/dialog.html-1f698e5a.js +1 -1
  56. package/docs/assets/dialog.html-62902b83.js +68 -68
  57. package/docs/assets/dialog.html-baea77c9.js +1 -1
  58. package/docs/assets/dialog.html-bb082fc4.js +1 -1
  59. package/docs/assets/dict.html-1311da3d.js +23 -23
  60. package/docs/assets/dict.html-b96fbf0c.js +1 -1
  61. package/docs/assets/dictOptions.html-7c4f40a5.js +1 -1
  62. package/docs/assets/dictOptions.html-fb99d175.js +5 -5
  63. package/docs/assets/dragger.html-668d3efa.js +1 -1
  64. package/docs/assets/dragger.html-749d585a.js +1 -1
  65. package/docs/assets/editor-code.html-6ab26ea9.js +1 -1
  66. package/docs/assets/editor-code.html-d196205d.js +1 -1
  67. package/docs/assets/empty.html-1c139131.js +1 -1
  68. package/docs/assets/empty.html-1e9c441d.js +1 -1
  69. package/docs/assets/field-date.html-069fdb13.js +1 -1
  70. package/docs/assets/field-date.html-ad204aa9.js +1 -1
  71. package/docs/assets/field-table.html-ce480f03.js +1 -1
  72. package/docs/assets/field-table.html-d9236160.js +1 -1
  73. package/docs/assets/field-text.html-7277c62f.js +1 -1
  74. package/docs/assets/field-text.html-ccb4cecf.js +1 -1
  75. package/docs/assets/field-tree.html-519bfb45.js +1 -1
  76. package/docs/assets/field-tree.html-fdc748d6.js +1 -1
  77. package/docs/assets/form.html-2b562c37.js +2 -2
  78. package/docs/assets/form.html-75104cd5.js +1 -1
  79. package/docs/assets/framework-204010b2.js +5 -5
  80. package/docs/assets/getData.html-990e3787.js +1 -1
  81. package/docs/assets/getData.html-bb72025f.js +34 -34
  82. package/docs/assets/getFile.html-42368004.js +1 -1
  83. package/docs/assets/getFile.html-99abd054.js +3 -3
  84. package/docs/assets/getImage.html-3429c5a1.js +1 -1
  85. package/docs/assets/getImage.html-4d886d83.js +3 -3
  86. package/docs/assets/getTime.html-7435f922.js +1 -1
  87. package/docs/assets/getTime.html-b37f49eb.js +20 -20
  88. package/docs/assets/img.html-7d1da657.js +1 -1
  89. package/docs/assets/img.html-fbea1105.js +1 -1
  90. package/docs/assets/index.html-1695dd7c.js +1 -1
  91. package/docs/assets/index.html-65a4aa67.js +1 -1
  92. package/docs/assets/index.html-7b98d5bd.js +1 -1
  93. package/docs/assets/index.html-c01f2648.js +1 -1
  94. package/docs/assets/input-number.html-0b250d2a.js +1 -1
  95. package/docs/assets/input-number.html-a8eb0378.js +1 -1
  96. package/docs/assets/list-menu-item.html-7f1b4611.js +1 -1
  97. package/docs/assets/list-menu-item.html-84ed5ab8.js +1 -1
  98. package/docs/assets/list-menu.html-28b4163f.js +1 -1
  99. package/docs/assets/list-menu.html-cb6ba95b.js +1 -1
  100. package/docs/assets/loading.html-dae9e39d.js +6 -6
  101. package/docs/assets/loading.html-dc74c9e6.js +1 -1
  102. package/docs/assets/notify.html-e6c4c514.js +1 -1
  103. package/docs/assets/notify.html-f2c4d914.js +8 -8
  104. package/docs/assets/power-page.html-32e02f82.js +1 -1
  105. package/docs/assets/power-page.html-485e77da.js +1 -1
  106. package/docs/assets/power.html-d258cc19.js +93 -93
  107. package/docs/assets/power.html-e490bd32.js +1 -1
  108. package/docs/assets/previewImage.html-6a6b4245.js +1 -1
  109. package/docs/assets/previewImage.html-c5b7e945.js +2 -2
  110. package/docs/assets/price.html-1882c548.js +19 -19
  111. package/docs/assets/price.html-94d3f5be.js +1 -1
  112. package/docs/assets/price.html-d213df0f.js +1 -1
  113. package/docs/assets/price.html-deaf880f.js +1 -1
  114. package/docs/assets/render.html-8efcbdd4.js +1 -1
  115. package/docs/assets/render.html-df228e38.js +1 -1
  116. package/docs/assets/rule.html-2cd57fc2.js +13 -13
  117. package/docs/assets/rule.html-61662001.js +1 -1
  118. package/docs/assets/ruleValid.html-04fe2552.js +1 -1
  119. package/docs/assets/ruleValid.html-e0a776af.js +14 -14
  120. package/docs/assets/search-0782d0d1.svg +1 -1
  121. package/docs/assets/search-item.html-3f75394c.js +1 -1
  122. package/docs/assets/search-item.html-4e942ecd.js +1 -1
  123. package/docs/assets/search.html-2807043e.js +1 -1
  124. package/docs/assets/search.html-c24f8806.js +1 -1
  125. package/docs/assets/select.html-00d0607c.js +1 -1
  126. package/docs/assets/select.html-de7731f5.js +1 -1
  127. package/docs/assets/splitter.html-56f51a70.js +1 -1
  128. package/docs/assets/splitter.html-f5c836d7.js +1 -1
  129. package/docs/assets/style-161e43ab.css +1 -1
  130. package/docs/assets/symbols.html-a6aea4bf.js +1 -1
  131. package/docs/assets/symbols.html-b1f65bad.js +21 -21
  132. package/docs/assets/table-column-fixed.html-3a69e7b2.js +1 -1
  133. package/docs/assets/table-column-fixed.html-e763c38b.js +1 -1
  134. package/docs/assets/table-pagination.html-236934d3.js +1 -1
  135. package/docs/assets/table-pagination.html-c37ee2ac.js +1 -1
  136. package/docs/assets/table-splitter.html-07eab15c.js +1 -1
  137. package/docs/assets/table-splitter.html-7670ee65.js +1 -1
  138. package/docs/assets/table-summary.html-04db434f.js +1 -1
  139. package/docs/assets/table-summary.html-943c65a0.js +1 -1
  140. package/docs/assets/table.html-36253ad7.js +1 -1
  141. package/docs/assets/table.html-7f9c5d1b.js +38 -38
  142. package/docs/assets/table.html-93d53dc8.js +1 -1
  143. package/docs/assets/table.html-ac99b9cb.js +1 -1
  144. package/docs/assets/thumbnail.html-bab1976b.js +1 -1
  145. package/docs/assets/thumbnail.html-eb64e5e8.js +1 -1
  146. package/docs/assets/timestamp.html-4e54f79b.js +13 -13
  147. package/docs/assets/timestamp.html-d0e1b88a.js +1 -1
  148. package/docs/assets/toast.html-58ecbe21.js +1 -1
  149. package/docs/assets/toast.html-c9b9d36b.js +6 -6
  150. package/docs/assets/toolbar.html-83d9f97c.js +1 -1
  151. package/docs/assets/toolbar.html-ff7b8c92.js +1 -1
  152. package/docs/assets/tree.html-d07cbe79.js +23 -23
  153. package/docs/assets/tree.html-ea04193e.js +1 -1
  154. package/docs/assets/uploader-query.html-05590718.js +1 -1
  155. package/docs/assets/uploader-query.html-3175bac5.js +1 -1
  156. package/docs/assets/uploader.html-36da4394.js +2 -2
  157. package/docs/assets/uploader.html-6b5f3079.js +1 -1
  158. package/docs/assets/uploader.html-b9340b57.js +1 -1
  159. package/docs/assets/uploader.html-bc1c22e3.js +1 -1
  160. package/docs/assets/value-format.html-8ae3d47d.js +1 -1
  161. package/docs/assets/value-format.html-afa99b3d.js +1 -1
  162. package/docs/components/column-title.html +35 -35
  163. package/docs/components/data.html +62 -62
  164. package/docs/components/dialog.html +33 -33
  165. package/docs/components/dragger.html +33 -33
  166. package/docs/components/editor-code.html +33 -33
  167. package/docs/components/empty.html +33 -33
  168. package/docs/components/field-date.html +33 -33
  169. package/docs/components/field-table.html +33 -33
  170. package/docs/components/field-text.html +33 -33
  171. package/docs/components/field-tree.html +33 -33
  172. package/docs/components/img.html +33 -33
  173. package/docs/components/input-number.html +33 -33
  174. package/docs/components/list-menu-item.html +33 -33
  175. package/docs/components/list-menu.html +33 -33
  176. package/docs/components/power-page.html +33 -33
  177. package/docs/components/price.html +33 -33
  178. package/docs/components/render.html +33 -33
  179. package/docs/components/search-item.html +33 -33
  180. package/docs/components/search.html +33 -33
  181. package/docs/components/select.html +33 -33
  182. package/docs/components/splitter.html +33 -33
  183. package/docs/components/table-column-fixed.html +33 -33
  184. package/docs/components/table-pagination.html +33 -33
  185. package/docs/components/table-splitter.html +33 -33
  186. package/docs/components/table-summary.html +33 -33
  187. package/docs/components/table.html +33 -33
  188. package/docs/components/thumbnail.html +33 -33
  189. package/docs/components/toolbar.html +33 -33
  190. package/docs/components/uploader-query.html +33 -33
  191. package/docs/components/uploader.html +33 -33
  192. package/docs/components/value-format.html +33 -33
  193. package/docs/index.html +33 -33
  194. package/docs/utils/alert.html +37 -37
  195. package/docs/utils/area.html +74 -74
  196. package/docs/utils/arr.html +43 -43
  197. package/docs/utils/auth.html +40 -40
  198. package/docs/utils/bus.html +38 -38
  199. package/docs/utils/confirm.html +42 -42
  200. package/docs/utils/copy.html +45 -45
  201. package/docs/utils/dialog.html +100 -100
  202. package/docs/utils/dict.html +55 -55
  203. package/docs/utils/dictOptions.html +37 -37
  204. package/docs/utils/form.html +34 -34
  205. package/docs/utils/getData.html +66 -66
  206. package/docs/utils/getFile.html +35 -35
  207. package/docs/utils/getImage.html +35 -35
  208. package/docs/utils/getTime.html +52 -52
  209. package/docs/utils/index.html +33 -33
  210. package/docs/utils/loading.html +38 -38
  211. package/docs/utils/notify.html +40 -40
  212. package/docs/utils/power.html +125 -125
  213. package/docs/utils/previewImage.html +34 -34
  214. package/docs/utils/price.html +51 -51
  215. package/docs/utils/rule.html +45 -45
  216. package/docs/utils/ruleValid.html +46 -46
  217. package/docs/utils/symbols.html +53 -53
  218. package/docs/utils/table.html +70 -70
  219. package/docs/utils/timestamp.html +45 -45
  220. package/docs/utils/toast.html +38 -38
  221. package/docs/utils/tree.html +55 -55
  222. package/docs/utils/uploader.html +34 -34
  223. package/package.json +24 -24
  224. package/sass/common.scss +179 -179
  225. package/sass/index.scss +13 -13
  226. package/sass/quasar/field.scss +250 -250
  227. package/sass/quasar/table.scss +168 -168
  228. package/sass/variables.scss +140 -140
  229. package/utils/$form.js +72 -72
  230. package/utils/$power.js +1411 -1411
  231. package/utils/$render.js +75 -75
  232. package/utils/$search.js +416 -416
  233. package/utils/$table.js +1199 -1193
  234. package/utils/$tree.js +664 -664
  235. package/utils/config.js +57 -57
  236. package/utils/dialog.js +36 -36
  237. package/utils/dict.js +21 -21
  238. package/utils/getFile.js +41 -41
  239. package/utils/getImage.js +176 -176
  240. package/utils/getTime.js +113 -113
  241. package/utils/index.js +65 -65
  242. package/utils/previewImage.js +14 -14
  243. package/utils/timestamp.js +18 -18
  244. package/utils/uploader/qiniu.js +320 -320
  245. package/utils/uploader.js +1625 -1625
  246. package/utils/useFileUrl.js +25 -25
  247. package/utils/useSearch.js +499 -499
package/utils/config.js CHANGED
@@ -1,57 +1,57 @@
1
- import $n_get from 'lodash/get'
2
-
3
- // 用户配置 参数
4
- // userConfig: {
5
- // // api 请求公共数据地址
6
- // apiDataUrl: '',
7
- // // api 文件请求地址
8
- // apiFileUrl: '',
9
- // // api 请求权限标识
10
- // apiDataPowerName: '',
11
- // // 是否开启人民币分转元
12
- // priceCentToYuan: false,
13
- // // 上传器
14
- // uploader: {
15
- // upload: {
16
- // type: '',
17
- // domain: '',
18
- // },
19
- // },
20
- // },
21
-
22
- // 配置
23
- export const configs = {
24
- // 用户配置
25
- userConfig: {},
26
- // 用户字典
27
- userDict: {},
28
- // 字典变量
29
- dicts: {},
30
- // 自定义路由
31
- routers: {},
32
- // 表格配置
33
- tablesConfig: {},
34
- // 对话框组件
35
- dialogComponents: {},
36
- // 格式化上传文件 hash
37
- formatUploadFileHash: null,
38
- // 格式化上传网络链接
39
- formatUploadNet: null,
40
- // 获取文件地址
41
- getFileUrl: null,
42
- }
43
-
44
- /**
45
- * 配置设置
46
- * @param options
47
- */
48
- export function settings(options) {
49
- Object.assign(configs, options)
50
- }
51
-
52
- /**
53
- * 获取配置
54
- */
55
- export default function config(key = '', defaultValue = '') {
56
- return key ? $n_get(configs.userConfig, key, defaultValue) : configs.userConfig
57
- }
1
+ import $n_get from 'lodash/get'
2
+
3
+ // 用户配置 参数
4
+ // userConfig: {
5
+ // // api 请求公共数据地址
6
+ // apiDataUrl: '',
7
+ // // api 文件请求地址
8
+ // apiFileUrl: '',
9
+ // // api 请求权限标识
10
+ // apiDataPowerName: '',
11
+ // // 是否开启人民币分转元
12
+ // priceCentToYuan: false,
13
+ // // 上传器
14
+ // uploader: {
15
+ // upload: {
16
+ // type: '',
17
+ // domain: '',
18
+ // },
19
+ // },
20
+ // },
21
+
22
+ // 配置
23
+ export const configs = {
24
+ // 用户配置
25
+ userConfig: {},
26
+ // 用户字典
27
+ userDict: {},
28
+ // 字典变量
29
+ dicts: {},
30
+ // 自定义路由
31
+ routers: {},
32
+ // 表格配置
33
+ tablesConfig: {},
34
+ // 对话框组件
35
+ dialogComponents: {},
36
+ // 格式化上传文件 hash
37
+ formatUploadFileHash: null,
38
+ // 格式化上传网络链接
39
+ formatUploadNet: null,
40
+ // 获取文件地址
41
+ getFileUrl: null,
42
+ }
43
+
44
+ /**
45
+ * 配置设置
46
+ * @param options
47
+ */
48
+ export function settings(options) {
49
+ Object.assign(configs, options)
50
+ }
51
+
52
+ /**
53
+ * 获取配置
54
+ */
55
+ export default function config(key = '', defaultValue = '') {
56
+ return key ? $n_get(configs.userConfig, key, defaultValue) : configs.userConfig
57
+ }
package/utils/dialog.js CHANGED
@@ -1,36 +1,36 @@
1
- import $n_has from 'lodash/has'
2
-
3
- import { Dialog } from 'quasar'
4
-
5
- import DialogComponent from '../components/dialog'
6
-
7
- /**
8
- * 创建对话框
9
- */
10
- function create(options) {
11
- if (
12
- // 如果是路由组件
13
- $n_has(options, 'path')
14
- // 或自定义组件
15
- || $n_has(options, 'name')
16
- ) {
17
- return Dialog.create({
18
- // 组件
19
- component: DialogComponent,
20
- // 组件声明
21
- componentProps: options,
22
- })
23
- }
24
-
25
- return Dialog.create(options)
26
- }
27
-
28
- /**
29
- * 对话框
30
- */
31
- const dialog = {
32
- // 创建对话框
33
- create,
34
- }
35
-
36
- export default dialog
1
+ import $n_has from 'lodash/has'
2
+
3
+ import { Dialog } from 'quasar'
4
+
5
+ import DialogComponent from '../components/dialog'
6
+
7
+ /**
8
+ * 创建对话框
9
+ */
10
+ function create(options) {
11
+ if (
12
+ // 如果是路由组件
13
+ $n_has(options, 'path')
14
+ // 或自定义组件
15
+ || $n_has(options, 'name')
16
+ ) {
17
+ return Dialog.create({
18
+ // 组件
19
+ component: DialogComponent,
20
+ // 组件声明
21
+ componentProps: options,
22
+ })
23
+ }
24
+
25
+ return Dialog.create(options)
26
+ }
27
+
28
+ /**
29
+ * 对话框
30
+ */
31
+ const dialog = {
32
+ // 创建对话框
33
+ create,
34
+ }
35
+
36
+ export default dialog
package/utils/dict.js CHANGED
@@ -1,21 +1,21 @@
1
- import $n_has from 'lodash/has'
2
-
3
- import { configs } from './config'
4
-
5
- /**
6
- * 获取字典值对应的文字
7
- */
8
- export default function dict(key, value, defaultValue = '') {
9
- if (
10
- key
11
- && $n_has(configs.userDict, key)
12
- ) {
13
- for (const item of configs.userDict[key]) {
14
- if (item[1] === value) {
15
- return item[0]
16
- }
17
- }
18
- }
19
-
20
- return defaultValue
21
- }
1
+ import $n_has from 'lodash/has'
2
+
3
+ import { configs } from './config'
4
+
5
+ /**
6
+ * 获取字典值对应的文字
7
+ */
8
+ export default function dict(key, value, defaultValue = '') {
9
+ if (
10
+ key
11
+ && $n_has(configs.userDict, key)
12
+ ) {
13
+ for (const item of configs.userDict[key]) {
14
+ if (item[1] === value) {
15
+ return item[0]
16
+ }
17
+ }
18
+ }
19
+
20
+ return defaultValue
21
+ }
package/utils/getFile.js CHANGED
@@ -1,41 +1,41 @@
1
- import $n_isValidArray from '@netang/utils/isValidArray'
2
- import $n_isValidString from '@netang/utils/isValidString'
3
-
4
- import $n_config from './config'
5
-
6
- import useFileUrl from './useFileUrl'
7
-
8
- /**
9
- * 获取文件
10
- */
11
- export default function getFile(src) {
12
-
13
- if (src) {
14
-
15
- // 如果为数组, 则获取第一个
16
- if ($n_isValidArray(src)) {
17
- src = src[0]
18
- }
19
-
20
- if ($n_isValidString(src)) {
21
-
22
- // http(s):// 或 data: 或 blob: 开头的地址
23
- if (/^(http(s)?:\/\/|data:|blob:)/i.test(src)) {
24
- return src
25
- }
26
-
27
- const {
28
- type,
29
- domain,
30
- } = $n_config('uploader.upload')
31
-
32
- switch (type) {
33
- // 七牛云
34
- case 'qiniu':
35
- return useFileUrl(domain, src)
36
- }
37
- }
38
- }
39
-
40
- return ''
41
- }
1
+ import $n_isValidArray from '@netang/utils/isValidArray'
2
+ import $n_isValidString from '@netang/utils/isValidString'
3
+
4
+ import $n_config from './config'
5
+
6
+ import useFileUrl from './useFileUrl'
7
+
8
+ /**
9
+ * 获取文件
10
+ */
11
+ export default function getFile(src) {
12
+
13
+ if (src) {
14
+
15
+ // 如果为数组, 则获取第一个
16
+ if ($n_isValidArray(src)) {
17
+ src = src[0]
18
+ }
19
+
20
+ if ($n_isValidString(src)) {
21
+
22
+ // http(s):// 或 data: 或 blob: 开头的地址
23
+ if (/^(http(s)?:\/\/|data:|blob:)/i.test(src)) {
24
+ return src
25
+ }
26
+
27
+ const {
28
+ type,
29
+ domain,
30
+ } = $n_config('uploader.upload')
31
+
32
+ switch (type) {
33
+ // 七牛云
34
+ case 'qiniu':
35
+ return useFileUrl(domain, src)
36
+ }
37
+ }
38
+ }
39
+
40
+ return ''
41
+ }
package/utils/getImage.js CHANGED
@@ -1,176 +1,176 @@
1
- import $n_has from 'lodash/has'
2
- import $n_isString from 'lodash/isString'
3
-
4
- import $n_isValidArray from '@netang/utils/isValidArray'
5
- import $n_isValidObject from '@netang/utils/isValidObject'
6
- import $n_isValidString from '@netang/utils/isValidString'
7
- import $n_isNumeric from '@netang/utils/isNumeric'
8
- import $n_split from '@netang/utils/split'
9
-
10
- import $n_config from './config'
11
-
12
- import useFileUrl from './useFileUrl'
13
-
14
- /**
15
- * 获取图片
16
- */
17
- export default function getImage(src, options) {
18
-
19
- if (src) {
20
-
21
- // 如果是字符串
22
- if ($n_isValidString(src)) {
23
-
24
- // 则按照逗号隔开转为数租
25
- src = $n_split(src, ',')
26
- }
27
-
28
- // 如果为数组, 则获取第一个
29
- if ($n_isValidArray(src)) {
30
- src = src[0]
31
-
32
- // 如果为对象
33
- } else if ($n_isValidObject(src)) {
34
-
35
- if ($n_has(src, 'options')) {
36
- options = src.options
37
- }
38
-
39
- if ($n_has(src, 'img')) {
40
- src = src.img
41
- }
42
- }
43
-
44
- if ($n_isValidString(src)) {
45
-
46
- // http(s):// 或 data: 或 blob: 开头的地址
47
- if (/^(http(s)?:\/\/|data:|blob:)/i.test(src)) {
48
- return src
49
- }
50
-
51
- // 如果为对象定义的规格
52
- if ($n_isValidObject(options)) {
53
-
54
- // 如果有定义 w
55
- if ($n_has(options, 'w')) {
56
-
57
- let {
58
- w,
59
- maxWidth,
60
- zoom,
61
- } = options
62
-
63
- // 先设为 0
64
- options.w = 0
65
-
66
- // 如果有宽度
67
- if (w) {
68
-
69
- if (
70
- ! $n_isNumeric(w)
71
- && $n_isString(w)
72
- ) {
73
- w = w.replace('px', '')
74
- }
75
-
76
- if ($n_isNumeric(w)) {
77
- w = Number(w)
78
- if (w > 0) {
79
-
80
- // 获取设备像素比
81
- /* #if IS_WEB */
82
- // 如果开启缩放
83
- if (zoom) {
84
- const devicePixelRatio = window.devicePixelRatio || 1
85
- if (devicePixelRatio > 2) {
86
- w *= 2
87
- }
88
- }
89
- /* #endif */
90
-
91
- if (w > 10) {
92
- w = Math.floor(w / 10) * 10
93
- } else {
94
- w = Math.floor(w)
95
- }
96
-
97
- // 如果有最大宽度
98
- if (maxWidth && maxWidth > w) {
99
- w = maxWidth
100
- }
101
-
102
- options.w = w
103
- }
104
- }
105
- }
106
- }
107
- // --------------------------------------------------
108
-
109
- } else {
110
- options = {}
111
- }
112
-
113
- const {
114
- type,
115
- domain,
116
- } = $n_config('uploader.upload')
117
-
118
- // 判断图片上传方式
119
- switch (type) {
120
-
121
- // 七牛云
122
- case 'qiniu':
123
-
124
- const {
125
- compress,
126
- w,
127
- h,
128
- q,
129
- format,
130
- } = Object.assign({
131
- // 是否压缩
132
- compress: true,
133
- // 宽
134
- w: 0,
135
- // 高
136
- h: 0,
137
- // 质量
138
- q: 75,
139
- // 格式
140
- format: 'webp',
141
- }, options)
142
-
143
- // 如果压缩
144
- if (compress) {
145
-
146
- // 裁剪图片方式
147
- src += '?imageView2/2'
148
-
149
- // 质量
150
- if (q) {
151
- src += '/q/' + q
152
- }
153
-
154
- // 宽
155
- if (w) {
156
- src += '/w/' + w
157
- }
158
-
159
- // 高
160
- if (h) {
161
- src += '/h/' + h
162
- }
163
-
164
- // 格式
165
- if (format) {
166
- src += '/format/' + format
167
- }
168
- }
169
-
170
- return useFileUrl(domain, src)
171
- }
172
- }
173
- }
174
-
175
- return ''
176
- }
1
+ import $n_has from 'lodash/has'
2
+ import $n_isString from 'lodash/isString'
3
+
4
+ import $n_isValidArray from '@netang/utils/isValidArray'
5
+ import $n_isValidObject from '@netang/utils/isValidObject'
6
+ import $n_isValidString from '@netang/utils/isValidString'
7
+ import $n_isNumeric from '@netang/utils/isNumeric'
8
+ import $n_split from '@netang/utils/split'
9
+
10
+ import $n_config from './config'
11
+
12
+ import useFileUrl from './useFileUrl'
13
+
14
+ /**
15
+ * 获取图片
16
+ */
17
+ export default function getImage(src, options) {
18
+
19
+ if (src) {
20
+
21
+ // 如果是字符串
22
+ if ($n_isValidString(src)) {
23
+
24
+ // 则按照逗号隔开转为数租
25
+ src = $n_split(src, ',')
26
+ }
27
+
28
+ // 如果为数组, 则获取第一个
29
+ if ($n_isValidArray(src)) {
30
+ src = src[0]
31
+
32
+ // 如果为对象
33
+ } else if ($n_isValidObject(src)) {
34
+
35
+ if ($n_has(src, 'options')) {
36
+ options = src.options
37
+ }
38
+
39
+ if ($n_has(src, 'img')) {
40
+ src = src.img
41
+ }
42
+ }
43
+
44
+ if ($n_isValidString(src)) {
45
+
46
+ // http(s):// 或 data: 或 blob: 开头的地址
47
+ if (/^(http(s)?:\/\/|data:|blob:)/i.test(src)) {
48
+ return src
49
+ }
50
+
51
+ // 如果为对象定义的规格
52
+ if ($n_isValidObject(options)) {
53
+
54
+ // 如果有定义 w
55
+ if ($n_has(options, 'w')) {
56
+
57
+ let {
58
+ w,
59
+ maxWidth,
60
+ zoom,
61
+ } = options
62
+
63
+ // 先设为 0
64
+ options.w = 0
65
+
66
+ // 如果有宽度
67
+ if (w) {
68
+
69
+ if (
70
+ ! $n_isNumeric(w)
71
+ && $n_isString(w)
72
+ ) {
73
+ w = w.replace('px', '')
74
+ }
75
+
76
+ if ($n_isNumeric(w)) {
77
+ w = Number(w)
78
+ if (w > 0) {
79
+
80
+ // 获取设备像素比
81
+ /* #if IS_WEB */
82
+ // 如果开启缩放
83
+ if (zoom) {
84
+ const devicePixelRatio = window.devicePixelRatio || 1
85
+ if (devicePixelRatio > 2) {
86
+ w *= 2
87
+ }
88
+ }
89
+ /* #endif */
90
+
91
+ if (w > 10) {
92
+ w = Math.floor(w / 10) * 10
93
+ } else {
94
+ w = Math.floor(w)
95
+ }
96
+
97
+ // 如果有最大宽度
98
+ if (maxWidth && maxWidth > w) {
99
+ w = maxWidth
100
+ }
101
+
102
+ options.w = w
103
+ }
104
+ }
105
+ }
106
+ }
107
+ // --------------------------------------------------
108
+
109
+ } else {
110
+ options = {}
111
+ }
112
+
113
+ const {
114
+ type,
115
+ domain,
116
+ } = $n_config('uploader.upload')
117
+
118
+ // 判断图片上传方式
119
+ switch (type) {
120
+
121
+ // 七牛云
122
+ case 'qiniu':
123
+
124
+ const {
125
+ compress,
126
+ w,
127
+ h,
128
+ q,
129
+ format,
130
+ } = Object.assign({
131
+ // 是否压缩
132
+ compress: true,
133
+ // 宽
134
+ w: 0,
135
+ // 高
136
+ h: 0,
137
+ // 质量
138
+ q: 75,
139
+ // 格式
140
+ format: 'webp',
141
+ }, options)
142
+
143
+ // 如果压缩
144
+ if (compress) {
145
+
146
+ // 裁剪图片方式
147
+ src += '?imageView2/2'
148
+
149
+ // 质量
150
+ if (q) {
151
+ src += '/q/' + q
152
+ }
153
+
154
+ // 宽
155
+ if (w) {
156
+ src += '/w/' + w
157
+ }
158
+
159
+ // 高
160
+ if (h) {
161
+ src += '/h/' + h
162
+ }
163
+
164
+ // 格式
165
+ if (format) {
166
+ src += '/format/' + format
167
+ }
168
+ }
169
+
170
+ return useFileUrl(domain, src)
171
+ }
172
+ }
173
+ }
174
+
175
+ return ''
176
+ }