@netang/quasar 0.1.73 → 0.1.75

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 (246) 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 +31 -3
  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/docs/404.html +33 -33
  33. package/docs/assets/404.html-60b35caa.js +1 -1
  34. package/docs/assets/404.html-d1e63d77.js +1 -1
  35. package/docs/assets/alert.html-b2a2a72f.js +5 -5
  36. package/docs/assets/alert.html-ba46d137.js +1 -1
  37. package/docs/assets/app-9f30aa4b.js +6 -6
  38. package/docs/assets/area.html-01b9b58d.js +42 -42
  39. package/docs/assets/area.html-9a4fce6a.js +1 -1
  40. package/docs/assets/arr.html-145d27e7.js +1 -1
  41. package/docs/assets/arr.html-674e65ab.js +11 -11
  42. package/docs/assets/auth.html-579fa830.js +1 -1
  43. package/docs/assets/auth.html-8544ed95.js +8 -8
  44. package/docs/assets/bus.html-c71254aa.js +1 -1
  45. package/docs/assets/bus.html-dc7d3d19.js +6 -6
  46. package/docs/assets/column-title.html-c735cb5a.js +3 -3
  47. package/docs/assets/column-title.html-e9316762.js +1 -1
  48. package/docs/assets/confirm.html-ddfdc27f.js +10 -10
  49. package/docs/assets/confirm.html-ef3e2bef.js +1 -1
  50. package/docs/assets/copy.html-d20345b6.js +1 -1
  51. package/docs/assets/copy.html-ef8c8571.js +13 -13
  52. package/docs/assets/data.html-6432175d.js +30 -30
  53. package/docs/assets/data.html-a3b05d5b.js +1 -1
  54. package/docs/assets/dialog.html-1f698e5a.js +1 -1
  55. package/docs/assets/dialog.html-62902b83.js +68 -68
  56. package/docs/assets/dialog.html-baea77c9.js +1 -1
  57. package/docs/assets/dialog.html-bb082fc4.js +1 -1
  58. package/docs/assets/dict.html-1311da3d.js +23 -23
  59. package/docs/assets/dict.html-b96fbf0c.js +1 -1
  60. package/docs/assets/dictOptions.html-7c4f40a5.js +1 -1
  61. package/docs/assets/dictOptions.html-fb99d175.js +5 -5
  62. package/docs/assets/dragger.html-668d3efa.js +1 -1
  63. package/docs/assets/dragger.html-749d585a.js +1 -1
  64. package/docs/assets/editor-code.html-6ab26ea9.js +1 -1
  65. package/docs/assets/editor-code.html-d196205d.js +1 -1
  66. package/docs/assets/empty.html-1c139131.js +1 -1
  67. package/docs/assets/empty.html-1e9c441d.js +1 -1
  68. package/docs/assets/field-date.html-069fdb13.js +1 -1
  69. package/docs/assets/field-date.html-ad204aa9.js +1 -1
  70. package/docs/assets/field-table.html-ce480f03.js +1 -1
  71. package/docs/assets/field-table.html-d9236160.js +1 -1
  72. package/docs/assets/field-text.html-7277c62f.js +1 -1
  73. package/docs/assets/field-text.html-ccb4cecf.js +1 -1
  74. package/docs/assets/field-tree.html-519bfb45.js +1 -1
  75. package/docs/assets/field-tree.html-fdc748d6.js +1 -1
  76. package/docs/assets/form.html-2b562c37.js +2 -2
  77. package/docs/assets/form.html-75104cd5.js +1 -1
  78. package/docs/assets/framework-204010b2.js +5 -5
  79. package/docs/assets/getData.html-990e3787.js +1 -1
  80. package/docs/assets/getData.html-bb72025f.js +34 -34
  81. package/docs/assets/getFile.html-42368004.js +1 -1
  82. package/docs/assets/getFile.html-99abd054.js +3 -3
  83. package/docs/assets/getImage.html-3429c5a1.js +1 -1
  84. package/docs/assets/getImage.html-4d886d83.js +3 -3
  85. package/docs/assets/getTime.html-7435f922.js +1 -1
  86. package/docs/assets/getTime.html-b37f49eb.js +20 -20
  87. package/docs/assets/img.html-7d1da657.js +1 -1
  88. package/docs/assets/img.html-fbea1105.js +1 -1
  89. package/docs/assets/index.html-1695dd7c.js +1 -1
  90. package/docs/assets/index.html-65a4aa67.js +1 -1
  91. package/docs/assets/index.html-7b98d5bd.js +1 -1
  92. package/docs/assets/index.html-c01f2648.js +1 -1
  93. package/docs/assets/input-number.html-0b250d2a.js +1 -1
  94. package/docs/assets/input-number.html-a8eb0378.js +1 -1
  95. package/docs/assets/list-menu-item.html-7f1b4611.js +1 -1
  96. package/docs/assets/list-menu-item.html-84ed5ab8.js +1 -1
  97. package/docs/assets/list-menu.html-28b4163f.js +1 -1
  98. package/docs/assets/list-menu.html-cb6ba95b.js +1 -1
  99. package/docs/assets/loading.html-dae9e39d.js +6 -6
  100. package/docs/assets/loading.html-dc74c9e6.js +1 -1
  101. package/docs/assets/notify.html-e6c4c514.js +1 -1
  102. package/docs/assets/notify.html-f2c4d914.js +8 -8
  103. package/docs/assets/power-page.html-32e02f82.js +1 -1
  104. package/docs/assets/power-page.html-485e77da.js +1 -1
  105. package/docs/assets/power.html-d258cc19.js +93 -93
  106. package/docs/assets/power.html-e490bd32.js +1 -1
  107. package/docs/assets/previewImage.html-6a6b4245.js +1 -1
  108. package/docs/assets/previewImage.html-c5b7e945.js +2 -2
  109. package/docs/assets/price.html-1882c548.js +19 -19
  110. package/docs/assets/price.html-94d3f5be.js +1 -1
  111. package/docs/assets/price.html-d213df0f.js +1 -1
  112. package/docs/assets/price.html-deaf880f.js +1 -1
  113. package/docs/assets/render.html-8efcbdd4.js +1 -1
  114. package/docs/assets/render.html-df228e38.js +1 -1
  115. package/docs/assets/rule.html-2cd57fc2.js +13 -13
  116. package/docs/assets/rule.html-61662001.js +1 -1
  117. package/docs/assets/ruleValid.html-04fe2552.js +1 -1
  118. package/docs/assets/ruleValid.html-e0a776af.js +14 -14
  119. package/docs/assets/search-0782d0d1.svg +1 -1
  120. package/docs/assets/search-item.html-3f75394c.js +1 -1
  121. package/docs/assets/search-item.html-4e942ecd.js +1 -1
  122. package/docs/assets/search.html-2807043e.js +1 -1
  123. package/docs/assets/search.html-c24f8806.js +1 -1
  124. package/docs/assets/select.html-00d0607c.js +1 -1
  125. package/docs/assets/select.html-de7731f5.js +1 -1
  126. package/docs/assets/splitter.html-56f51a70.js +1 -1
  127. package/docs/assets/splitter.html-f5c836d7.js +1 -1
  128. package/docs/assets/style-161e43ab.css +1 -1
  129. package/docs/assets/symbols.html-a6aea4bf.js +1 -1
  130. package/docs/assets/symbols.html-b1f65bad.js +21 -21
  131. package/docs/assets/table-column-fixed.html-3a69e7b2.js +1 -1
  132. package/docs/assets/table-column-fixed.html-e763c38b.js +1 -1
  133. package/docs/assets/table-pagination.html-236934d3.js +1 -1
  134. package/docs/assets/table-pagination.html-c37ee2ac.js +1 -1
  135. package/docs/assets/table-splitter.html-07eab15c.js +1 -1
  136. package/docs/assets/table-splitter.html-7670ee65.js +1 -1
  137. package/docs/assets/table-summary.html-04db434f.js +1 -1
  138. package/docs/assets/table-summary.html-943c65a0.js +1 -1
  139. package/docs/assets/table.html-36253ad7.js +1 -1
  140. package/docs/assets/table.html-7f9c5d1b.js +38 -38
  141. package/docs/assets/table.html-93d53dc8.js +1 -1
  142. package/docs/assets/table.html-ac99b9cb.js +1 -1
  143. package/docs/assets/thumbnail.html-bab1976b.js +1 -1
  144. package/docs/assets/thumbnail.html-eb64e5e8.js +1 -1
  145. package/docs/assets/timestamp.html-4e54f79b.js +13 -13
  146. package/docs/assets/timestamp.html-d0e1b88a.js +1 -1
  147. package/docs/assets/toast.html-58ecbe21.js +1 -1
  148. package/docs/assets/toast.html-c9b9d36b.js +6 -6
  149. package/docs/assets/toolbar.html-83d9f97c.js +1 -1
  150. package/docs/assets/toolbar.html-ff7b8c92.js +1 -1
  151. package/docs/assets/tree.html-d07cbe79.js +23 -23
  152. package/docs/assets/tree.html-ea04193e.js +1 -1
  153. package/docs/assets/uploader-query.html-05590718.js +1 -1
  154. package/docs/assets/uploader-query.html-3175bac5.js +1 -1
  155. package/docs/assets/uploader.html-36da4394.js +2 -2
  156. package/docs/assets/uploader.html-6b5f3079.js +1 -1
  157. package/docs/assets/uploader.html-b9340b57.js +1 -1
  158. package/docs/assets/uploader.html-bc1c22e3.js +1 -1
  159. package/docs/assets/value-format.html-8ae3d47d.js +1 -1
  160. package/docs/assets/value-format.html-afa99b3d.js +1 -1
  161. package/docs/components/column-title.html +35 -35
  162. package/docs/components/data.html +62 -62
  163. package/docs/components/dialog.html +33 -33
  164. package/docs/components/dragger.html +33 -33
  165. package/docs/components/editor-code.html +33 -33
  166. package/docs/components/empty.html +33 -33
  167. package/docs/components/field-date.html +33 -33
  168. package/docs/components/field-table.html +33 -33
  169. package/docs/components/field-text.html +33 -33
  170. package/docs/components/field-tree.html +33 -33
  171. package/docs/components/img.html +33 -33
  172. package/docs/components/input-number.html +33 -33
  173. package/docs/components/list-menu-item.html +33 -33
  174. package/docs/components/list-menu.html +33 -33
  175. package/docs/components/power-page.html +33 -33
  176. package/docs/components/price.html +33 -33
  177. package/docs/components/render.html +33 -33
  178. package/docs/components/search-item.html +33 -33
  179. package/docs/components/search.html +33 -33
  180. package/docs/components/select.html +33 -33
  181. package/docs/components/splitter.html +33 -33
  182. package/docs/components/table-column-fixed.html +33 -33
  183. package/docs/components/table-pagination.html +33 -33
  184. package/docs/components/table-splitter.html +33 -33
  185. package/docs/components/table-summary.html +33 -33
  186. package/docs/components/table.html +33 -33
  187. package/docs/components/thumbnail.html +33 -33
  188. package/docs/components/toolbar.html +33 -33
  189. package/docs/components/uploader-query.html +33 -33
  190. package/docs/components/uploader.html +33 -33
  191. package/docs/components/value-format.html +33 -33
  192. package/docs/index.html +33 -33
  193. package/docs/utils/alert.html +37 -37
  194. package/docs/utils/area.html +74 -74
  195. package/docs/utils/arr.html +43 -43
  196. package/docs/utils/auth.html +40 -40
  197. package/docs/utils/bus.html +38 -38
  198. package/docs/utils/confirm.html +42 -42
  199. package/docs/utils/copy.html +45 -45
  200. package/docs/utils/dialog.html +100 -100
  201. package/docs/utils/dict.html +55 -55
  202. package/docs/utils/dictOptions.html +37 -37
  203. package/docs/utils/form.html +34 -34
  204. package/docs/utils/getData.html +66 -66
  205. package/docs/utils/getFile.html +35 -35
  206. package/docs/utils/getImage.html +35 -35
  207. package/docs/utils/getTime.html +52 -52
  208. package/docs/utils/index.html +33 -33
  209. package/docs/utils/loading.html +38 -38
  210. package/docs/utils/notify.html +40 -40
  211. package/docs/utils/power.html +125 -125
  212. package/docs/utils/previewImage.html +34 -34
  213. package/docs/utils/price.html +51 -51
  214. package/docs/utils/rule.html +45 -45
  215. package/docs/utils/ruleValid.html +46 -46
  216. package/docs/utils/symbols.html +53 -53
  217. package/docs/utils/table.html +70 -70
  218. package/docs/utils/timestamp.html +45 -45
  219. package/docs/utils/toast.html +38 -38
  220. package/docs/utils/tree.html +55 -55
  221. package/docs/utils/uploader.html +34 -34
  222. package/package.json +1 -1
  223. package/sass/common.scss +179 -179
  224. package/sass/index.scss +13 -13
  225. package/sass/quasar/field.scss +250 -250
  226. package/sass/quasar/table.scss +168 -168
  227. package/sass/variables.scss +140 -140
  228. package/utils/$form.js +72 -72
  229. package/utils/$power.js +1430 -1428
  230. package/utils/$render.js +75 -75
  231. package/utils/$search.js +416 -416
  232. package/utils/$table.js +1206 -1199
  233. package/utils/$tree.js +664 -664
  234. package/utils/config.js +57 -57
  235. package/utils/dialog.js +36 -36
  236. package/utils/dict.js +21 -21
  237. package/utils/getFile.js +41 -41
  238. package/utils/getImage.js +176 -176
  239. package/utils/getTime.js +113 -113
  240. package/utils/index.js +65 -65
  241. package/utils/previewImage.js +14 -14
  242. package/utils/timestamp.js +18 -18
  243. package/utils/uploader/qiniu.js +320 -320
  244. package/utils/uploader.js +1625 -1625
  245. package/utils/useFileUrl.js +25 -25
  246. 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
+ }