@netang/quasar 0.1.35 → 0.1.37

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 (231) 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 +646 -0
  7. package/components/dialog/index.vue +372 -372
  8. package/components/editor-code/index.vue +325 -325
  9. package/components/field-table/index.vue +1227 -1227
  10. package/components/field-tree/index.vue +757 -757
  11. package/components/img/index.vue +211 -202
  12. package/components/mixed-table/index.vue +473 -473
  13. package/components/mixed-table-splitter/index.vue +377 -377
  14. package/components/private/components/move-to-tree/index.vue +154 -154
  15. package/components/private/edit-power-data/index.vue +846 -846
  16. package/components/private/table-visible-columns-button/index.vue +109 -109
  17. package/components/render/index.vue +127 -127
  18. package/components/search/index.vue +224 -224
  19. package/components/search-item/index.vue +212 -212
  20. package/components/select/index.vue +177 -177
  21. package/components/table/index.vue +513 -513
  22. package/components/table-column-fixed/index.vue +110 -110
  23. package/components/table-summary/index.vue +107 -107
  24. package/components/tree/index.vue +62 -28
  25. package/docs/404.html +33 -33
  26. package/docs/assets/404.html-60b35caa.js +1 -1
  27. package/docs/assets/404.html-d1e63d77.js +1 -1
  28. package/docs/assets/alert.html-b2a2a72f.js +5 -5
  29. package/docs/assets/alert.html-ba46d137.js +1 -1
  30. package/docs/assets/app-9f30aa4b.js +6 -6
  31. package/docs/assets/area.html-01b9b58d.js +42 -42
  32. package/docs/assets/area.html-9a4fce6a.js +1 -1
  33. package/docs/assets/arr.html-145d27e7.js +1 -1
  34. package/docs/assets/arr.html-674e65ab.js +11 -11
  35. package/docs/assets/auth.html-579fa830.js +1 -1
  36. package/docs/assets/auth.html-8544ed95.js +8 -8
  37. package/docs/assets/bus.html-c71254aa.js +1 -1
  38. package/docs/assets/bus.html-dc7d3d19.js +6 -6
  39. package/docs/assets/column-title.html-c735cb5a.js +3 -3
  40. package/docs/assets/column-title.html-e9316762.js +1 -1
  41. package/docs/assets/confirm.html-ddfdc27f.js +10 -10
  42. package/docs/assets/confirm.html-ef3e2bef.js +1 -1
  43. package/docs/assets/copy.html-d20345b6.js +1 -1
  44. package/docs/assets/copy.html-ef8c8571.js +13 -13
  45. package/docs/assets/data.html-6432175d.js +30 -30
  46. package/docs/assets/data.html-a3b05d5b.js +1 -1
  47. package/docs/assets/dialog.html-1f698e5a.js +1 -1
  48. package/docs/assets/dialog.html-62902b83.js +68 -68
  49. package/docs/assets/dialog.html-baea77c9.js +1 -1
  50. package/docs/assets/dialog.html-bb082fc4.js +1 -1
  51. package/docs/assets/dict.html-1311da3d.js +23 -23
  52. package/docs/assets/dict.html-b96fbf0c.js +1 -1
  53. package/docs/assets/dictOptions.html-7c4f40a5.js +1 -1
  54. package/docs/assets/dictOptions.html-fb99d175.js +5 -5
  55. package/docs/assets/dragger.html-668d3efa.js +1 -1
  56. package/docs/assets/dragger.html-749d585a.js +1 -1
  57. package/docs/assets/editor-code.html-6ab26ea9.js +1 -1
  58. package/docs/assets/editor-code.html-d196205d.js +1 -1
  59. package/docs/assets/empty.html-1c139131.js +1 -1
  60. package/docs/assets/empty.html-1e9c441d.js +1 -1
  61. package/docs/assets/field-date.html-069fdb13.js +1 -1
  62. package/docs/assets/field-date.html-ad204aa9.js +1 -1
  63. package/docs/assets/field-table.html-ce480f03.js +1 -1
  64. package/docs/assets/field-table.html-d9236160.js +1 -1
  65. package/docs/assets/field-text.html-7277c62f.js +1 -1
  66. package/docs/assets/field-text.html-ccb4cecf.js +1 -1
  67. package/docs/assets/field-tree.html-519bfb45.js +1 -1
  68. package/docs/assets/field-tree.html-fdc748d6.js +1 -1
  69. package/docs/assets/form.html-2b562c37.js +2 -2
  70. package/docs/assets/form.html-75104cd5.js +1 -1
  71. package/docs/assets/framework-204010b2.js +5 -5
  72. package/docs/assets/getData.html-990e3787.js +1 -1
  73. package/docs/assets/getData.html-bb72025f.js +34 -34
  74. package/docs/assets/getFile.html-42368004.js +1 -1
  75. package/docs/assets/getFile.html-99abd054.js +3 -3
  76. package/docs/assets/getImage.html-3429c5a1.js +1 -1
  77. package/docs/assets/getImage.html-4d886d83.js +3 -3
  78. package/docs/assets/getTime.html-7435f922.js +1 -1
  79. package/docs/assets/getTime.html-b37f49eb.js +20 -20
  80. package/docs/assets/img.html-7d1da657.js +1 -1
  81. package/docs/assets/img.html-fbea1105.js +1 -1
  82. package/docs/assets/index.html-1695dd7c.js +1 -1
  83. package/docs/assets/index.html-65a4aa67.js +1 -1
  84. package/docs/assets/index.html-7b98d5bd.js +1 -1
  85. package/docs/assets/index.html-c01f2648.js +1 -1
  86. package/docs/assets/input-number.html-0b250d2a.js +1 -1
  87. package/docs/assets/input-number.html-a8eb0378.js +1 -1
  88. package/docs/assets/list-menu-item.html-7f1b4611.js +1 -1
  89. package/docs/assets/list-menu-item.html-84ed5ab8.js +1 -1
  90. package/docs/assets/list-menu.html-28b4163f.js +1 -1
  91. package/docs/assets/list-menu.html-cb6ba95b.js +1 -1
  92. package/docs/assets/loading.html-dae9e39d.js +6 -6
  93. package/docs/assets/loading.html-dc74c9e6.js +1 -1
  94. package/docs/assets/notify.html-e6c4c514.js +1 -1
  95. package/docs/assets/notify.html-f2c4d914.js +8 -8
  96. package/docs/assets/power-page.html-32e02f82.js +1 -1
  97. package/docs/assets/power-page.html-485e77da.js +1 -1
  98. package/docs/assets/power.html-d258cc19.js +93 -93
  99. package/docs/assets/power.html-e490bd32.js +1 -1
  100. package/docs/assets/previewImage.html-6a6b4245.js +1 -1
  101. package/docs/assets/previewImage.html-c5b7e945.js +2 -2
  102. package/docs/assets/price.html-1882c548.js +19 -19
  103. package/docs/assets/price.html-94d3f5be.js +1 -1
  104. package/docs/assets/price.html-d213df0f.js +1 -1
  105. package/docs/assets/price.html-deaf880f.js +1 -1
  106. package/docs/assets/render.html-8efcbdd4.js +1 -1
  107. package/docs/assets/render.html-df228e38.js +1 -1
  108. package/docs/assets/rule.html-2cd57fc2.js +13 -13
  109. package/docs/assets/rule.html-61662001.js +1 -1
  110. package/docs/assets/ruleValid.html-04fe2552.js +1 -1
  111. package/docs/assets/ruleValid.html-e0a776af.js +14 -14
  112. package/docs/assets/search-0782d0d1.svg +1 -1
  113. package/docs/assets/search-item.html-3f75394c.js +1 -1
  114. package/docs/assets/search-item.html-4e942ecd.js +1 -1
  115. package/docs/assets/search.html-2807043e.js +1 -1
  116. package/docs/assets/search.html-c24f8806.js +1 -1
  117. package/docs/assets/select.html-00d0607c.js +1 -1
  118. package/docs/assets/select.html-de7731f5.js +1 -1
  119. package/docs/assets/splitter.html-56f51a70.js +1 -1
  120. package/docs/assets/splitter.html-f5c836d7.js +1 -1
  121. package/docs/assets/style-161e43ab.css +1 -1
  122. package/docs/assets/symbols.html-a6aea4bf.js +1 -1
  123. package/docs/assets/symbols.html-b1f65bad.js +21 -21
  124. package/docs/assets/table-column-fixed.html-3a69e7b2.js +1 -1
  125. package/docs/assets/table-column-fixed.html-e763c38b.js +1 -1
  126. package/docs/assets/table-pagination.html-236934d3.js +1 -1
  127. package/docs/assets/table-pagination.html-c37ee2ac.js +1 -1
  128. package/docs/assets/table-splitter.html-07eab15c.js +1 -1
  129. package/docs/assets/table-splitter.html-7670ee65.js +1 -1
  130. package/docs/assets/table-summary.html-04db434f.js +1 -1
  131. package/docs/assets/table-summary.html-943c65a0.js +1 -1
  132. package/docs/assets/table.html-36253ad7.js +1 -1
  133. package/docs/assets/table.html-7f9c5d1b.js +38 -38
  134. package/docs/assets/table.html-93d53dc8.js +1 -1
  135. package/docs/assets/table.html-ac99b9cb.js +1 -1
  136. package/docs/assets/thumbnail.html-bab1976b.js +1 -1
  137. package/docs/assets/thumbnail.html-eb64e5e8.js +1 -1
  138. package/docs/assets/timestamp.html-4e54f79b.js +13 -13
  139. package/docs/assets/timestamp.html-d0e1b88a.js +1 -1
  140. package/docs/assets/toast.html-58ecbe21.js +1 -1
  141. package/docs/assets/toast.html-c9b9d36b.js +6 -6
  142. package/docs/assets/toolbar.html-83d9f97c.js +1 -1
  143. package/docs/assets/toolbar.html-ff7b8c92.js +1 -1
  144. package/docs/assets/tree.html-d07cbe79.js +23 -23
  145. package/docs/assets/tree.html-ea04193e.js +1 -1
  146. package/docs/assets/uploader-query.html-05590718.js +1 -1
  147. package/docs/assets/uploader-query.html-3175bac5.js +1 -1
  148. package/docs/assets/uploader.html-36da4394.js +2 -2
  149. package/docs/assets/uploader.html-6b5f3079.js +1 -1
  150. package/docs/assets/uploader.html-b9340b57.js +1 -1
  151. package/docs/assets/uploader.html-bc1c22e3.js +1 -1
  152. package/docs/assets/value-format.html-8ae3d47d.js +1 -1
  153. package/docs/assets/value-format.html-afa99b3d.js +1 -1
  154. package/docs/components/column-title.html +35 -35
  155. package/docs/components/data.html +62 -62
  156. package/docs/components/dialog.html +33 -33
  157. package/docs/components/dragger.html +33 -33
  158. package/docs/components/editor-code.html +33 -33
  159. package/docs/components/empty.html +33 -33
  160. package/docs/components/field-date.html +33 -33
  161. package/docs/components/field-table.html +33 -33
  162. package/docs/components/field-text.html +33 -33
  163. package/docs/components/field-tree.html +33 -33
  164. package/docs/components/img.html +33 -33
  165. package/docs/components/input-number.html +33 -33
  166. package/docs/components/list-menu-item.html +33 -33
  167. package/docs/components/list-menu.html +33 -33
  168. package/docs/components/power-page.html +33 -33
  169. package/docs/components/price.html +33 -33
  170. package/docs/components/render.html +33 -33
  171. package/docs/components/search-item.html +33 -33
  172. package/docs/components/search.html +33 -33
  173. package/docs/components/select.html +33 -33
  174. package/docs/components/splitter.html +33 -33
  175. package/docs/components/table-column-fixed.html +33 -33
  176. package/docs/components/table-pagination.html +33 -33
  177. package/docs/components/table-splitter.html +33 -33
  178. package/docs/components/table-summary.html +33 -33
  179. package/docs/components/table.html +33 -33
  180. package/docs/components/thumbnail.html +33 -33
  181. package/docs/components/toolbar.html +33 -33
  182. package/docs/components/uploader-query.html +33 -33
  183. package/docs/components/uploader.html +33 -33
  184. package/docs/components/value-format.html +33 -33
  185. package/docs/index.html +33 -33
  186. package/docs/utils/alert.html +37 -37
  187. package/docs/utils/area.html +74 -74
  188. package/docs/utils/arr.html +43 -43
  189. package/docs/utils/auth.html +40 -40
  190. package/docs/utils/bus.html +38 -38
  191. package/docs/utils/confirm.html +42 -42
  192. package/docs/utils/copy.html +45 -45
  193. package/docs/utils/dialog.html +100 -100
  194. package/docs/utils/dict.html +55 -55
  195. package/docs/utils/dictOptions.html +37 -37
  196. package/docs/utils/form.html +34 -34
  197. package/docs/utils/getData.html +66 -66
  198. package/docs/utils/getFile.html +35 -35
  199. package/docs/utils/getImage.html +35 -35
  200. package/docs/utils/getTime.html +52 -52
  201. package/docs/utils/index.html +33 -33
  202. package/docs/utils/loading.html +38 -38
  203. package/docs/utils/notify.html +40 -40
  204. package/docs/utils/power.html +125 -125
  205. package/docs/utils/previewImage.html +34 -34
  206. package/docs/utils/price.html +51 -51
  207. package/docs/utils/rule.html +45 -45
  208. package/docs/utils/ruleValid.html +46 -46
  209. package/docs/utils/symbols.html +53 -53
  210. package/docs/utils/table.html +70 -70
  211. package/docs/utils/timestamp.html +45 -45
  212. package/docs/utils/toast.html +38 -38
  213. package/docs/utils/tree.html +55 -55
  214. package/docs/utils/uploader.html +34 -34
  215. package/package.json +1 -1
  216. package/sass/common.scss +179 -179
  217. package/sass/quasar/field.scss +250 -250
  218. package/sass/quasar/table.scss +161 -161
  219. package/sass/variables.scss +138 -138
  220. package/utils/$form.js +72 -72
  221. package/utils/$power.js +1233 -1233
  222. package/utils/$render.js +75 -75
  223. package/utils/$table.js +1171 -1171
  224. package/utils/$tree.js +664 -664
  225. package/utils/dialog.js +36 -36
  226. package/utils/dict.js +21 -21
  227. package/utils/getImage.js +167 -153
  228. package/utils/index.js +62 -62
  229. package/utils/previewImage.js +14 -10
  230. package/utils/timestamp.js +18 -18
  231. package/utils/useSearch.js +496 -496
@@ -1,110 +1,110 @@
1
- <template>
2
- <div class="q-gutter-sm" v-if="currentTableFixedPowerBtns.length">
3
- <q-btn
4
- v-for="item in currentTableFixedPowerBtns"
5
- :key="`btn-item-${item.id}`"
6
- class="n-button-icon"
7
- :icon="item.icon"
8
- dense
9
- unelevated
10
- round
11
- @click.prevent.stop="onClick(item)"
12
- >
13
- <!-- 标题提示 -->
14
- <q-tooltip>{{item.title}}</q-tooltip>
15
- </q-btn>
16
- </div>
17
- </template>
18
-
19
- <script>
20
- import { inject, computed } from 'vue'
21
-
22
- import $n_cloneDeep from 'lodash/cloneDeep'
23
- import $n_isFunction from 'lodash/isFunction'
24
-
25
- import $n_forEach from '@netang/utils/forEach'
26
-
27
- import { NPowerKey, NTableKey } from '../../utils/symbols'
28
-
29
- export default {
30
-
31
- /**
32
- * 标识
33
- */
34
- name: 'NTableColumnFixed',
35
-
36
- /**
37
- * 声明属性
38
- */
39
- props: {
40
- // 传值
41
- props: Object,
42
- },
43
-
44
- /**
45
- * 组合式
46
- */
47
- setup(props) {
48
-
49
- // ==========【数据】============================================================================================
50
-
51
- // 获取权限注入
52
- const {
53
- // 权限按钮点击
54
- powerBtnClick,
55
- // 格式化权限按钮
56
- formatPowerBtns,
57
- } = inject(NPowerKey)
58
-
59
- // 获取表格注入
60
- const {
61
- // 固定在右边的权限按钮列表
62
- tableFixedPowerBtns,
63
- } = inject(NTableKey)
64
-
65
- // ==========【计算属性】=========================================================================================
66
-
67
- /**
68
- * 当前表格固定权限按钮
69
- */
70
- const currentTableFixedPowerBtns = computed(function () {
71
-
72
- const lists = []
73
-
74
- $n_forEach(tableFixedPowerBtns.value, function (item) {
75
-
76
- item = $n_cloneDeep(item)
77
-
78
- // 格式化权限按钮
79
- if (formatPowerBtns(item, true, [ props.props.row ]) === false || item.hidden === true) {
80
- return
81
- }
82
-
83
- lists.push(item)
84
- })
85
-
86
- return lists
87
- })
88
-
89
- // ==========【方法】=============================================================================================
90
-
91
- /**
92
- * 点击
93
- */
94
- function onClick(item) {
95
- powerBtnClick(item, [ props.props.row ])
96
- }
97
-
98
- // ==========【返回】=============================================================================================
99
-
100
- return {
101
- // 固定在右边的权限按钮列表
102
- tableFixedPowerBtns,
103
- // 当前表格固定权限按钮
104
- currentTableFixedPowerBtns: $n_isFunction(formatPowerBtns) ? currentTableFixedPowerBtns : tableFixedPowerBtns,
105
- // 权限按钮点击
106
- onClick,
107
- }
108
- },
109
- }
110
- </script>
1
+ <template>
2
+ <div class="q-gutter-sm" v-if="currentTableFixedPowerBtns.length">
3
+ <q-btn
4
+ v-for="item in currentTableFixedPowerBtns"
5
+ :key="`btn-item-${item.id}`"
6
+ class="n-button-icon"
7
+ :icon="item.icon"
8
+ dense
9
+ unelevated
10
+ round
11
+ @click.prevent.stop="onClick(item)"
12
+ >
13
+ <!-- 标题提示 -->
14
+ <q-tooltip>{{item.title}}</q-tooltip>
15
+ </q-btn>
16
+ </div>
17
+ </template>
18
+
19
+ <script>
20
+ import { inject, computed } from 'vue'
21
+
22
+ import $n_cloneDeep from 'lodash/cloneDeep'
23
+ import $n_isFunction from 'lodash/isFunction'
24
+
25
+ import $n_forEach from '@netang/utils/forEach'
26
+
27
+ import { NPowerKey, NTableKey } from '../../utils/symbols'
28
+
29
+ export default {
30
+
31
+ /**
32
+ * 标识
33
+ */
34
+ name: 'NTableColumnFixed',
35
+
36
+ /**
37
+ * 声明属性
38
+ */
39
+ props: {
40
+ // 传值
41
+ props: Object,
42
+ },
43
+
44
+ /**
45
+ * 组合式
46
+ */
47
+ setup(props) {
48
+
49
+ // ==========【数据】============================================================================================
50
+
51
+ // 获取权限注入
52
+ const {
53
+ // 权限按钮点击
54
+ powerBtnClick,
55
+ // 格式化权限按钮
56
+ formatPowerBtns,
57
+ } = inject(NPowerKey)
58
+
59
+ // 获取表格注入
60
+ const {
61
+ // 固定在右边的权限按钮列表
62
+ tableFixedPowerBtns,
63
+ } = inject(NTableKey)
64
+
65
+ // ==========【计算属性】=========================================================================================
66
+
67
+ /**
68
+ * 当前表格固定权限按钮
69
+ */
70
+ const currentTableFixedPowerBtns = computed(function () {
71
+
72
+ const lists = []
73
+
74
+ $n_forEach(tableFixedPowerBtns.value, function (item) {
75
+
76
+ item = $n_cloneDeep(item)
77
+
78
+ // 格式化权限按钮
79
+ if (formatPowerBtns(item, true, [ props.props.row ]) === false || item.hidden === true) {
80
+ return
81
+ }
82
+
83
+ lists.push(item)
84
+ })
85
+
86
+ return lists
87
+ })
88
+
89
+ // ==========【方法】=============================================================================================
90
+
91
+ /**
92
+ * 点击
93
+ */
94
+ function onClick(item) {
95
+ powerBtnClick(item, [ props.props.row ])
96
+ }
97
+
98
+ // ==========【返回】=============================================================================================
99
+
100
+ return {
101
+ // 固定在右边的权限按钮列表
102
+ tableFixedPowerBtns,
103
+ // 当前表格固定权限按钮
104
+ currentTableFixedPowerBtns: $n_isFunction(formatPowerBtns) ? currentTableFixedPowerBtns : tableFixedPowerBtns,
105
+ // 权限按钮点击
106
+ onClick,
107
+ }
108
+ },
109
+ }
110
+ </script>
@@ -1,107 +1,107 @@
1
- <template>
2
- <q-tr class="q-table__bottom">
3
- <q-td
4
- v-for="(item, index) in columns"
5
- :class="item.css"
6
- >
7
- <!-- 合计标题 -->
8
- <span v-if="index === 0">合计</span>
9
-
10
- <!-- 合计数据 -->
11
- <span v-else-if="item.value">{{item.value}}</span>
12
- </q-td>
13
- </q-tr>
14
- </template>
15
-
16
- <script>
17
- import { computed, inject } from 'vue'
18
-
19
- import $n_has from 'lodash/has'
20
- import $n_get from 'lodash/get'
21
-
22
- import $n_forEach from '@netang/utils/forEach'
23
-
24
- import $n_price from '../../utils/price'
25
-
26
- import { NTableKey } from '../../utils/symbols'
27
-
28
- export default {
29
-
30
- /**
31
- * 标识
32
- */
33
- name: 'NTableSummary',
34
-
35
- /**
36
- * 声明属性
37
- */
38
- props: {
39
- // 传值
40
- props: Object,
41
- },
42
-
43
- /**
44
- * 组合式
45
- */
46
- setup(props) {
47
-
48
- // ==========【数据】============================================================================================
49
-
50
- // 获取表格注入
51
- const {
52
- // 表格选择类型
53
- tableSelection,
54
- tableSummary,
55
- } = inject(NTableKey)
56
-
57
- // ==========【计算属性】============================================================================================
58
-
59
- const columns = computed(function () {
60
-
61
- const lists = []
62
-
63
- if (tableSelection.value !== 'none') {
64
- lists.push({
65
- css: 'q-table--col-auto-width text-center',
66
- name: '',
67
- })
68
- }
69
-
70
- $n_forEach($n_get(props.props, 'cols'), function(item) {
71
-
72
- const {
73
- // 标识
74
- name,
75
- // 对齐方式
76
- align,
77
- } = item
78
-
79
- const res = {
80
- css: `text-${align}`,
81
- name,
82
- value: '',
83
- }
84
-
85
- // 如果有统计字段
86
- if ($n_has(tableSummary.value, name)) {
87
- // 判断是否是价格
88
- res.value = $n_has(item, 'price') ? $n_price(tableSummary.value[name]) : tableSummary.value[name]
89
- }
90
-
91
- lists.push(res)
92
- })
93
-
94
- return lists
95
- })
96
-
97
- // ==========【返回】=============================================================================================
98
-
99
- return {
100
- // 栏目
101
- columns,
102
- // 表格选择类型
103
- tableSelection,
104
- }
105
- },
106
- }
107
- </script>
1
+ <template>
2
+ <q-tr class="q-table__bottom">
3
+ <q-td
4
+ v-for="(item, index) in columns"
5
+ :class="item.css"
6
+ >
7
+ <!-- 合计标题 -->
8
+ <span v-if="index === 0">合计</span>
9
+
10
+ <!-- 合计数据 -->
11
+ <span v-else-if="item.value">{{item.value}}</span>
12
+ </q-td>
13
+ </q-tr>
14
+ </template>
15
+
16
+ <script>
17
+ import { computed, inject } from 'vue'
18
+
19
+ import $n_has from 'lodash/has'
20
+ import $n_get from 'lodash/get'
21
+
22
+ import $n_forEach from '@netang/utils/forEach'
23
+
24
+ import $n_price from '../../utils/price'
25
+
26
+ import { NTableKey } from '../../utils/symbols'
27
+
28
+ export default {
29
+
30
+ /**
31
+ * 标识
32
+ */
33
+ name: 'NTableSummary',
34
+
35
+ /**
36
+ * 声明属性
37
+ */
38
+ props: {
39
+ // 传值
40
+ props: Object,
41
+ },
42
+
43
+ /**
44
+ * 组合式
45
+ */
46
+ setup(props) {
47
+
48
+ // ==========【数据】============================================================================================
49
+
50
+ // 获取表格注入
51
+ const {
52
+ // 表格选择类型
53
+ tableSelection,
54
+ tableSummary,
55
+ } = inject(NTableKey)
56
+
57
+ // ==========【计算属性】============================================================================================
58
+
59
+ const columns = computed(function () {
60
+
61
+ const lists = []
62
+
63
+ if (tableSelection.value !== 'none') {
64
+ lists.push({
65
+ css: 'q-table--col-auto-width text-center',
66
+ name: '',
67
+ })
68
+ }
69
+
70
+ $n_forEach($n_get(props.props, 'cols'), function(item) {
71
+
72
+ const {
73
+ // 标识
74
+ name,
75
+ // 对齐方式
76
+ align,
77
+ } = item
78
+
79
+ const res = {
80
+ css: `text-${align}`,
81
+ name,
82
+ value: '',
83
+ }
84
+
85
+ // 如果有统计字段
86
+ if ($n_has(tableSummary.value, name)) {
87
+ // 判断是否是价格
88
+ res.value = $n_has(item, 'price') ? $n_price(tableSummary.value[name]) : tableSummary.value[name]
89
+ }
90
+
91
+ lists.push(res)
92
+ })
93
+
94
+ return lists
95
+ })
96
+
97
+ // ==========【返回】=============================================================================================
98
+
99
+ return {
100
+ // 栏目
101
+ columns,
102
+ // 表格选择类型
103
+ tableSelection,
104
+ }
105
+ },
106
+ }
107
+ </script>
@@ -12,7 +12,6 @@
12
12
  <div
13
13
  :class="item.classes"
14
14
  :key="item.key"
15
- :style="{ paddingLeft: (item.level * arrowSize) + 'px' }"
16
15
  @mousedown.self="onMouseDown($event, item)"
17
16
  @mouseup="onDragEnd"
18
17
  @dragstart.stop="onDragStart($event, item)"
@@ -24,31 +23,40 @@
24
23
  >
25
24
  <div class="q-focus-helper" @click="onClick(item.node, item.m, $event)"></div>
26
25
 
27
- <!-- 旋转器 -->
28
- <q-spinner
29
- class="q-tree__spinner q-ml-sm"
30
- :color="computedControlColor"
31
- v-if="item.m.lazy === 'loading'"
32
- />
33
-
34
- <!-- 箭头 -->
35
- <q-icon
36
- class="q-tree__arrow q-ml-sm"
37
- :name="computedIcon"
38
- :class="`${item.m.expanded ? 'q-tree__arrow--rotate' : ''}`"
39
- :size="arrowSize + 'px'"
40
- @click="onExpandClick(item.node, item.m, $event)"
41
- v-bind="iconProps"
42
- v-if="item.isParent === true"
43
- />
26
+ <!-- 前置容器 -->
44
27
  <div
45
- class="n-tree__arrow--noop q-ml-sm"
46
- :style="{
47
- width: arrowSize + 'px',
48
- height: arrowSize + 'px',
49
- }"
50
- v-else
51
- ></div>
28
+ class="n-tree__node__prepend"
29
+ :style="{ paddingLeft: (item.level * arrowSize) + 'px' }"
30
+ @click="onNode(item, $event)"
31
+ >
32
+ <!-- 旋转器 -->
33
+ <q-spinner
34
+ class="q-tree__spinner q-ml-sm"
35
+ :color="computedControlColor"
36
+ v-if="item.m.lazy === 'loading'"
37
+ />
38
+
39
+ <!-- 箭头图标 -->
40
+ <q-icon
41
+ class="q-tree__arrow q-ml-sm"
42
+ :name="computedIcon"
43
+ :class="`${item.m.expanded ? 'q-tree__arrow--rotate' : ''}`"
44
+ :size="arrowSize + 'px'"
45
+ v-bind="iconProps"
46
+ v-else-if="item.isParent === true"
47
+ />
48
+
49
+ <!-- 空白占位符 -->
50
+ <div
51
+ class="n-tree__arrow--noop q-ml-sm"
52
+ :style="{
53
+ width: arrowSize + 'px',
54
+ height: arrowSize + 'px',
55
+ }"
56
+ v-else
57
+ ></div>
58
+
59
+ </div>
52
60
 
53
61
  <!-- 复选框-->
54
62
  <q-checkbox
@@ -1061,6 +1069,20 @@ export default {
1061
1069
  return $n_has(slots, 'default-header')
1062
1070
  })
1063
1071
 
1072
+ /**
1073
+ * 点击节点
1074
+ */
1075
+ function onNode(item, $event) {
1076
+ if (
1077
+ item.m.lazy !== 'loading'
1078
+ && item.isParent === true
1079
+ ) {
1080
+ onExpandClick(item.node, item.m, $event)
1081
+ } else {
1082
+ onClick(item.node, item.m, $event)
1083
+ }
1084
+ }
1085
+
1064
1086
  /**
1065
1087
  * 获取节点
1066
1088
  */
@@ -1090,7 +1112,7 @@ export default {
1090
1112
  const dragCss = $n_get(dragClasses.value, key)
1091
1113
 
1092
1114
  // 当前节点类名
1093
- const classes = 'n-tree__node relative-position row no-wrap items-center q-tree__node--link q-hoverable'
1115
+ const classes = 'n-tree__node relative-position row no-wrap q-tree__node--link q-hoverable'
1094
1116
  // + (m.link === true ? ' q-tree__node--link q-hoverable q-focusable' : '')
1095
1117
  + (m.selected === true || props.multiple && m.ticked === true ? ' n-tree__node--selected' : '')
1096
1118
  + (m.disabled === true ? ' q-tree__node--disabled' : '')
@@ -1489,6 +1511,7 @@ export default {
1489
1511
  hasSlotDefault,
1490
1512
  currentChildren,
1491
1513
 
1514
+ onNode,
1492
1515
  onMouseDown,
1493
1516
  onDragStart,
1494
1517
  onDragEnter,
@@ -1512,10 +1535,21 @@ export default {
1512
1535
  margin-right: 4px;
1513
1536
  }
1514
1537
 
1538
+ // 树节点
1515
1539
  &__node {
1516
1540
  margin: 4px;
1517
1541
  border-radius: 4px;
1518
1542
  //transition: all .3s;
1543
+ //background-color: green;
1544
+
1545
+ // 前置容器
1546
+ &__prepend {
1547
+ position: relative;
1548
+ //height: 100% !important;
1549
+ display: flex;
1550
+ align-items: center;
1551
+ //background-color: red;
1552
+ }
1519
1553
 
1520
1554
  // 已选
1521
1555
  &--selected:not(.drag-over--inner) {
@@ -1599,6 +1633,7 @@ export default {
1599
1633
  width: 8px;
1600
1634
  height: 8px;
1601
1635
  border: 2px solid var(--q-primary);
1636
+ pointer-events: none;
1602
1637
  }
1603
1638
  }
1604
1639
 
@@ -1616,8 +1651,6 @@ export default {
1616
1651
  align-items: center;
1617
1652
  padding: 4px 5px;
1618
1653
  margin-left: -5px;
1619
- //border-top: 2px transparent solid;
1620
- //border-bottom: 2px transparent solid;
1621
1654
  color: #000000;
1622
1655
 
1623
1656
  &:after {
@@ -1629,6 +1662,7 @@ export default {
1629
1662
  right: 0;
1630
1663
  border-top: 2px transparent solid;
1631
1664
  border-bottom: 2px transparent solid;
1665
+ pointer-events: none;
1632
1666
  }
1633
1667
  }
1634
1668
  }