@netang/quasar 0.2.31 → 0.2.32
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.
- package/.editorconfig +12 -12
- package/_docs/docs/components/field-table.md +58 -58
- package/_docs/docs/components/field-tree.md +21 -21
- package/_docs/docs/components/table.md +24 -24
- package/_docs/docs/utils/table.md +196 -196
- package/components/column-title/index.vue +38 -38
- package/components/data/index.vue +20 -20
- package/components/dialog/img-viewer/index.vue +697 -697
- package/components/dialog/index.vue +387 -387
- package/components/dragger/index.vue +203 -203
- package/components/drawer/index.vue +303 -303
- package/components/editor-code/index.vue +328 -328
- package/components/empty/index.vue +82 -82
- package/components/field-date/index.vue +860 -860
- package/components/field-date/methods.js +100 -100
- package/components/field-table/index.vue +1483 -1483
- package/components/field-text/index.vue +166 -166
- package/components/field-tree/index.vue +755 -755
- package/components/img/index.vue +279 -279
- package/components/input-number/index.vue +560 -560
- package/components/list-menu/index.vue +149 -149
- package/components/list-menu-item/index.vue +79 -79
- package/components/mixed-table/index.vue +532 -532
- package/components/mixed-table-splitter/index.vue +377 -377
- package/components/power-page/index.vue +96 -96
- package/components/price/index.vue +188 -188
- package/components/private/components/index.js +11 -11
- package/components/private/components/move-to-tree/index.vue +154 -154
- package/components/private/edit-power-data/index.vue +846 -846
- package/components/private/table-visible-columns-button/index.vue +114 -114
- package/components/render/index.vue +123 -123
- package/components/search/index.vue +231 -231
- package/components/search-item/index.vue +210 -210
- package/components/select/index.vue +177 -177
- package/components/splitter/index.vue +422 -422
- package/components/table/index.vue +513 -513
- package/components/table-column-fixed/index.vue +110 -110
- package/components/table-pagination/index.vue +192 -192
- package/components/table-summary/index.vue +107 -107
- package/components/thumbnail/index.vue +72 -72
- package/components/toolbar/index.vue +150 -150
- package/components/tree/index.vue +1728 -1728
- package/components/tree/virtual-scroll.vue +41 -41
- package/components/uploader/index.vue +196 -196
- package/components/uploader-query/index.vue +945 -945
- package/components/value-format/index.vue +274 -274
- package/components/virtual-scroll/index.vue +136 -136
- package/configs/area3.js +1 -1
- package/docs/404.html +33 -33
- package/docs/assets/404.html-60b35caa.js +1 -1
- package/docs/assets/404.html-d1e63d77.js +1 -1
- package/docs/assets/alert.html-b2a2a72f.js +5 -5
- package/docs/assets/alert.html-ba46d137.js +1 -1
- package/docs/assets/app-9f30aa4b.js +6 -6
- package/docs/assets/area.html-01b9b58d.js +42 -42
- package/docs/assets/area.html-9a4fce6a.js +1 -1
- package/docs/assets/arr.html-145d27e7.js +1 -1
- package/docs/assets/arr.html-674e65ab.js +11 -11
- package/docs/assets/auth.html-579fa830.js +1 -1
- package/docs/assets/auth.html-8544ed95.js +8 -8
- package/docs/assets/bus.html-c71254aa.js +1 -1
- package/docs/assets/bus.html-dc7d3d19.js +6 -6
- package/docs/assets/column-title.html-c735cb5a.js +3 -3
- package/docs/assets/column-title.html-e9316762.js +1 -1
- package/docs/assets/confirm.html-ddfdc27f.js +10 -10
- package/docs/assets/confirm.html-ef3e2bef.js +1 -1
- package/docs/assets/copy.html-d20345b6.js +1 -1
- package/docs/assets/copy.html-ef8c8571.js +13 -13
- package/docs/assets/data.html-6432175d.js +30 -30
- package/docs/assets/data.html-a3b05d5b.js +1 -1
- package/docs/assets/dialog.html-1f698e5a.js +1 -1
- package/docs/assets/dialog.html-62902b83.js +68 -68
- package/docs/assets/dialog.html-baea77c9.js +1 -1
- package/docs/assets/dialog.html-bb082fc4.js +1 -1
- package/docs/assets/dict.html-1311da3d.js +23 -23
- package/docs/assets/dict.html-b96fbf0c.js +1 -1
- package/docs/assets/dictOptions.html-7c4f40a5.js +1 -1
- package/docs/assets/dictOptions.html-fb99d175.js +5 -5
- package/docs/assets/dragger.html-668d3efa.js +1 -1
- package/docs/assets/dragger.html-749d585a.js +1 -1
- package/docs/assets/editor-code.html-6ab26ea9.js +1 -1
- package/docs/assets/editor-code.html-d196205d.js +1 -1
- package/docs/assets/empty.html-1c139131.js +1 -1
- package/docs/assets/empty.html-1e9c441d.js +1 -1
- package/docs/assets/field-date.html-069fdb13.js +1 -1
- package/docs/assets/field-date.html-ad204aa9.js +1 -1
- package/docs/assets/field-table.html-ce480f03.js +1 -1
- package/docs/assets/field-table.html-d9236160.js +1 -1
- package/docs/assets/field-text.html-7277c62f.js +1 -1
- package/docs/assets/field-text.html-ccb4cecf.js +1 -1
- package/docs/assets/field-tree.html-519bfb45.js +1 -1
- package/docs/assets/field-tree.html-fdc748d6.js +1 -1
- package/docs/assets/form.html-2b562c37.js +2 -2
- package/docs/assets/form.html-75104cd5.js +1 -1
- package/docs/assets/framework-204010b2.js +5 -5
- package/docs/assets/getData.html-990e3787.js +1 -1
- package/docs/assets/getData.html-bb72025f.js +34 -34
- package/docs/assets/getFile.html-42368004.js +1 -1
- package/docs/assets/getFile.html-99abd054.js +3 -3
- package/docs/assets/getImage.html-3429c5a1.js +1 -1
- package/docs/assets/getImage.html-4d886d83.js +3 -3
- package/docs/assets/getTime.html-7435f922.js +1 -1
- package/docs/assets/getTime.html-b37f49eb.js +20 -20
- package/docs/assets/img.html-7d1da657.js +1 -1
- package/docs/assets/img.html-fbea1105.js +1 -1
- package/docs/assets/index.html-1695dd7c.js +1 -1
- package/docs/assets/index.html-65a4aa67.js +1 -1
- package/docs/assets/index.html-7b98d5bd.js +1 -1
- package/docs/assets/index.html-c01f2648.js +1 -1
- package/docs/assets/input-number.html-0b250d2a.js +1 -1
- package/docs/assets/input-number.html-a8eb0378.js +1 -1
- package/docs/assets/list-menu-item.html-7f1b4611.js +1 -1
- package/docs/assets/list-menu-item.html-84ed5ab8.js +1 -1
- package/docs/assets/list-menu.html-28b4163f.js +1 -1
- package/docs/assets/list-menu.html-cb6ba95b.js +1 -1
- package/docs/assets/loading.html-dae9e39d.js +6 -6
- package/docs/assets/loading.html-dc74c9e6.js +1 -1
- package/docs/assets/notify.html-e6c4c514.js +1 -1
- package/docs/assets/notify.html-f2c4d914.js +8 -8
- package/docs/assets/power-page.html-32e02f82.js +1 -1
- package/docs/assets/power-page.html-485e77da.js +1 -1
- package/docs/assets/power.html-d258cc19.js +93 -93
- package/docs/assets/power.html-e490bd32.js +1 -1
- package/docs/assets/previewImage.html-6a6b4245.js +1 -1
- package/docs/assets/previewImage.html-c5b7e945.js +2 -2
- package/docs/assets/price.html-1882c548.js +19 -19
- package/docs/assets/price.html-94d3f5be.js +1 -1
- package/docs/assets/price.html-d213df0f.js +1 -1
- package/docs/assets/price.html-deaf880f.js +1 -1
- package/docs/assets/render.html-8efcbdd4.js +1 -1
- package/docs/assets/render.html-df228e38.js +1 -1
- package/docs/assets/rule.html-2cd57fc2.js +13 -13
- package/docs/assets/rule.html-61662001.js +1 -1
- package/docs/assets/ruleValid.html-04fe2552.js +1 -1
- package/docs/assets/ruleValid.html-e0a776af.js +14 -14
- package/docs/assets/search-0782d0d1.svg +1 -1
- package/docs/assets/search-item.html-3f75394c.js +1 -1
- package/docs/assets/search-item.html-4e942ecd.js +1 -1
- package/docs/assets/search.html-2807043e.js +1 -1
- package/docs/assets/search.html-c24f8806.js +1 -1
- package/docs/assets/select.html-00d0607c.js +1 -1
- package/docs/assets/select.html-de7731f5.js +1 -1
- package/docs/assets/splitter.html-56f51a70.js +1 -1
- package/docs/assets/splitter.html-f5c836d7.js +1 -1
- package/docs/assets/style-161e43ab.css +1 -1
- package/docs/assets/symbols.html-a6aea4bf.js +1 -1
- package/docs/assets/symbols.html-b1f65bad.js +21 -21
- package/docs/assets/table-column-fixed.html-3a69e7b2.js +1 -1
- package/docs/assets/table-column-fixed.html-e763c38b.js +1 -1
- package/docs/assets/table-pagination.html-236934d3.js +1 -1
- package/docs/assets/table-pagination.html-c37ee2ac.js +1 -1
- package/docs/assets/table-splitter.html-07eab15c.js +1 -1
- package/docs/assets/table-splitter.html-7670ee65.js +1 -1
- package/docs/assets/table-summary.html-04db434f.js +1 -1
- package/docs/assets/table-summary.html-943c65a0.js +1 -1
- package/docs/assets/table.html-36253ad7.js +1 -1
- package/docs/assets/table.html-7f9c5d1b.js +38 -38
- package/docs/assets/table.html-93d53dc8.js +1 -1
- package/docs/assets/table.html-ac99b9cb.js +1 -1
- package/docs/assets/thumbnail.html-bab1976b.js +1 -1
- package/docs/assets/thumbnail.html-eb64e5e8.js +1 -1
- package/docs/assets/timestamp.html-4e54f79b.js +13 -13
- package/docs/assets/timestamp.html-d0e1b88a.js +1 -1
- package/docs/assets/toast.html-58ecbe21.js +1 -1
- package/docs/assets/toast.html-c9b9d36b.js +6 -6
- package/docs/assets/toolbar.html-83d9f97c.js +1 -1
- package/docs/assets/toolbar.html-ff7b8c92.js +1 -1
- package/docs/assets/tree.html-d07cbe79.js +23 -23
- package/docs/assets/tree.html-ea04193e.js +1 -1
- package/docs/assets/uploader-query.html-05590718.js +1 -1
- package/docs/assets/uploader-query.html-3175bac5.js +1 -1
- package/docs/assets/uploader.html-36da4394.js +2 -2
- package/docs/assets/uploader.html-6b5f3079.js +1 -1
- package/docs/assets/uploader.html-b9340b57.js +1 -1
- package/docs/assets/uploader.html-bc1c22e3.js +1 -1
- package/docs/assets/value-format.html-8ae3d47d.js +1 -1
- package/docs/assets/value-format.html-afa99b3d.js +1 -1
- package/docs/components/column-title.html +35 -35
- package/docs/components/data.html +62 -62
- package/docs/components/dialog.html +33 -33
- package/docs/components/dragger.html +33 -33
- package/docs/components/editor-code.html +33 -33
- package/docs/components/empty.html +33 -33
- package/docs/components/field-date.html +33 -33
- package/docs/components/field-table.html +33 -33
- package/docs/components/field-text.html +33 -33
- package/docs/components/field-tree.html +33 -33
- package/docs/components/img.html +33 -33
- package/docs/components/input-number.html +33 -33
- package/docs/components/list-menu-item.html +33 -33
- package/docs/components/list-menu.html +33 -33
- package/docs/components/power-page.html +33 -33
- package/docs/components/price.html +33 -33
- package/docs/components/render.html +33 -33
- package/docs/components/search-item.html +33 -33
- package/docs/components/search.html +33 -33
- package/docs/components/select.html +33 -33
- package/docs/components/splitter.html +33 -33
- package/docs/components/table-column-fixed.html +33 -33
- package/docs/components/table-pagination.html +33 -33
- package/docs/components/table-splitter.html +33 -33
- package/docs/components/table-summary.html +33 -33
- package/docs/components/table.html +33 -33
- package/docs/components/thumbnail.html +33 -33
- package/docs/components/toolbar.html +33 -33
- package/docs/components/uploader-query.html +33 -33
- package/docs/components/uploader.html +33 -33
- package/docs/components/value-format.html +33 -33
- package/docs/css/index.css +3 -3
- package/docs/index.html +33 -33
- package/docs/utils/alert.html +37 -37
- package/docs/utils/area.html +74 -74
- package/docs/utils/arr.html +43 -43
- package/docs/utils/auth.html +40 -40
- package/docs/utils/bus.html +38 -38
- package/docs/utils/confirm.html +42 -42
- package/docs/utils/copy.html +45 -45
- package/docs/utils/dialog.html +100 -100
- package/docs/utils/dict.html +55 -55
- package/docs/utils/dictOptions.html +37 -37
- package/docs/utils/form.html +34 -34
- package/docs/utils/getData.html +66 -66
- package/docs/utils/getFile.html +35 -35
- package/docs/utils/getImage.html +35 -35
- package/docs/utils/getTime.html +52 -52
- package/docs/utils/index.html +33 -33
- package/docs/utils/loading.html +38 -38
- package/docs/utils/notify.html +40 -40
- package/docs/utils/power.html +125 -125
- package/docs/utils/previewImage.html +34 -34
- package/docs/utils/price.html +51 -51
- package/docs/utils/rule.html +45 -45
- package/docs/utils/ruleValid.html +46 -46
- package/docs/utils/symbols.html +53 -53
- package/docs/utils/table.html +70 -70
- package/docs/utils/timestamp.html +45 -45
- package/docs/utils/toast.html +38 -38
- package/docs/utils/tree.html +55 -55
- package/docs/utils/uploader.html +34 -34
- package/package.json +25 -25
- package/sass/common.scss +184 -184
- package/sass/index.scss +12 -12
- package/sass/line.scss +39 -39
- package/sass/quasar/btn.scss +46 -46
- package/sass/quasar/common.scss +3 -3
- package/sass/quasar/drawer.scss +6 -6
- package/sass/quasar/field.scss +259 -259
- package/sass/quasar/loading.scss +6 -6
- package/sass/quasar/table.scss +168 -168
- package/sass/quasar/toolbar.scss +22 -22
- package/sass/variables.scss +140 -140
- package/store/index.js +29 -29
- package/utils/$auth.js +128 -128
- package/utils/$form.js +72 -72
- package/utils/$power.js +1494 -1492
- package/utils/$render.js +75 -75
- package/utils/$rule.js +13 -13
- package/utils/$ruleValid.js +10 -10
- package/utils/$search.js +416 -416
- package/utils/$table.js +1348 -1348
- package/utils/$tree.js +682 -682
- package/utils/alert.js +12 -12
- package/utils/area.js +400 -400
- package/utils/arr.js +51 -51
- package/utils/bus.js +6 -6
- package/utils/config.js +66 -66
- package/utils/confirm.js +11 -11
- package/utils/copy.js +30 -30
- package/utils/dialog.js +36 -36
- package/utils/dict.js +21 -21
- package/utils/dictOptions.js +28 -28
- package/utils/getData.js +88 -88
- package/utils/getFile.js +67 -67
- package/utils/getImage.js +276 -276
- package/utils/getTime.js +113 -113
- package/utils/index.js +67 -67
- package/utils/loading.js +15 -15
- package/utils/notify.js +13 -13
- package/utils/play.js +40 -40
- package/utils/previewImage.js +14 -14
- package/utils/price.js +18 -18
- package/utils/symbols.js +18 -18
- package/utils/timestamp.js +18 -18
- package/utils/toast.js +13 -13
- package/utils/uploader.js +2114 -2114
- package/utils/useAuth.js +30 -30
- package/utils/useFileUrl.js +26 -26
- package/utils/useRouter.js +47 -47
- package/utils/useSearch.js +562 -562
package/utils/$search.js
CHANGED
|
@@ -1,416 +1,416 @@
|
|
|
1
|
-
import { ref, inject } from 'vue'
|
|
2
|
-
|
|
3
|
-
import $n_has from 'lodash/has'
|
|
4
|
-
import $n_get from 'lodash/get'
|
|
5
|
-
import $n_cloneDeep from 'lodash/cloneDeep'
|
|
6
|
-
import $n_merge from 'lodash/merge'
|
|
7
|
-
import $n_isFunction from 'lodash/isFunction'
|
|
8
|
-
import $n_concat from 'lodash/concat'
|
|
9
|
-
|
|
10
|
-
import $n_router from '@netang/utils/vue/router'
|
|
11
|
-
|
|
12
|
-
import $n_forEach from '@netang/utils/forEach'
|
|
13
|
-
import $n_isValidArray from '@netang/utils/isValidArray'
|
|
14
|
-
import $n_isValidString from '@netang/utils/isValidString'
|
|
15
|
-
import $n_indexOf from '@netang/utils/indexOf'
|
|
16
|
-
|
|
17
|
-
import $n_isRequired from '@netang/utils/isRequired'
|
|
18
|
-
import $n_forIn from '@netang/utils/forIn'
|
|
19
|
-
import $n_runAsync from '@netang/utils/runAsync'
|
|
20
|
-
import $n_isValidObject from '@netang/utils/isValidObject'
|
|
21
|
-
import $n_http from '@netang/utils/http'
|
|
22
|
-
import $n_run from '@netang/utils/run'
|
|
23
|
-
|
|
24
|
-
import {
|
|
25
|
-
// 从表格列获取原始值
|
|
26
|
-
getRawData,
|
|
27
|
-
// 获取参数
|
|
28
|
-
getOptions,
|
|
29
|
-
// 格式化值
|
|
30
|
-
formatValue,
|
|
31
|
-
} from './useSearch'
|
|
32
|
-
|
|
33
|
-
import { NPowerKey } from './symbols'
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* 创建搜索
|
|
37
|
-
*/
|
|
38
|
-
function create(options) {
|
|
39
|
-
|
|
40
|
-
// ==========【数据】=================================================================================================
|
|
41
|
-
|
|
42
|
-
// 原始参数
|
|
43
|
-
const rawOptions = {
|
|
44
|
-
// 路由路径
|
|
45
|
-
path: '',
|
|
46
|
-
// 请求地址(默认为 path)
|
|
47
|
-
url: '',
|
|
48
|
-
// 路由参数
|
|
49
|
-
query: {},
|
|
50
|
-
// 附加请求数据
|
|
51
|
-
data: {},
|
|
52
|
-
// 初始搜索加载状态
|
|
53
|
-
loading: false,
|
|
54
|
-
// 搜索列数据(对象数组)
|
|
55
|
-
columns: [],
|
|
56
|
-
// 自定义请求方法
|
|
57
|
-
request: null,
|
|
58
|
-
// 格式化单条数据
|
|
59
|
-
formatRow: null,
|
|
60
|
-
// http 设置
|
|
61
|
-
httpSettings: {},
|
|
62
|
-
// 从参数中获取搜索值
|
|
63
|
-
searchFromQuery: true,
|
|
64
|
-
// 请求成功执行
|
|
65
|
-
requestSuccess: null,
|
|
66
|
-
// 请求失败执行
|
|
67
|
-
requestFail: null,
|
|
68
|
-
// 请求后执行
|
|
69
|
-
requestAfter: null,
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
let o
|
|
73
|
-
let $power
|
|
74
|
-
let hasPowr
|
|
75
|
-
let $route
|
|
76
|
-
|
|
77
|
-
// 表格加载状态
|
|
78
|
-
let tableLoading
|
|
79
|
-
// 表格请求参数(将表格传参中的搜索参数剥离掉, 剩下的直接当做参数传递给服务器)
|
|
80
|
-
let tableRequestQuery
|
|
81
|
-
|
|
82
|
-
// 原始参数
|
|
83
|
-
let rawQuery
|
|
84
|
-
// 原始表格搜索参数
|
|
85
|
-
let rawSearchOptions
|
|
86
|
-
// 原始表格搜索值(空表格搜索值, 用于搜索重置)
|
|
87
|
-
let rawTableSearchValue
|
|
88
|
-
// 首次表格搜索值(如果表格搜索参数中带了初始值, 则设置初始值)
|
|
89
|
-
let firstTableSearchValue
|
|
90
|
-
|
|
91
|
-
// 表格搜索数据值
|
|
92
|
-
let tableSearchValue
|
|
93
|
-
// 表格搜索参数
|
|
94
|
-
let tableSearchOptions
|
|
95
|
-
// 是否已加载
|
|
96
|
-
let _isTableLoaded
|
|
97
|
-
|
|
98
|
-
// 是否已生成数据
|
|
99
|
-
let _isCreated = false
|
|
100
|
-
|
|
101
|
-
// 创建表格
|
|
102
|
-
reCreate(options)
|
|
103
|
-
|
|
104
|
-
// 已生成数据
|
|
105
|
-
_isCreated = true
|
|
106
|
-
|
|
107
|
-
// ==========【方法】================================================================================================
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* 重新创建表格
|
|
111
|
-
*/
|
|
112
|
-
function reCreate(options) {
|
|
113
|
-
|
|
114
|
-
// 获取参数
|
|
115
|
-
o = $n_merge({}, rawOptions, options)
|
|
116
|
-
|
|
117
|
-
// 获取权限注入
|
|
118
|
-
$power = $n_has(options, '$power') ? options.$power : (_isCreated ? $power : inject(NPowerKey))
|
|
119
|
-
hasPowr = !! $power
|
|
120
|
-
|
|
121
|
-
// 获取权限路由
|
|
122
|
-
$route = $n_isValidString(o.path) ?
|
|
123
|
-
// 如果为自定义路由
|
|
124
|
-
$n_router.resolve({
|
|
125
|
-
path: o.path,
|
|
126
|
-
query: $n_isValidObject(o.query) ? o.query : {},
|
|
127
|
-
})
|
|
128
|
-
// 否则获取当前路由
|
|
129
|
-
: (hasPowr ? $power.getRoute() : $n_router.getRoute())
|
|
130
|
-
|
|
131
|
-
// 表格列
|
|
132
|
-
const _tableColumns = []
|
|
133
|
-
|
|
134
|
-
// 设置表格列数据
|
|
135
|
-
// 设置列参数
|
|
136
|
-
$n_forEach(o.columns, function(item) {
|
|
137
|
-
|
|
138
|
-
// 是否隐藏
|
|
139
|
-
item.hide = $n_get(item, 'hide') === true
|
|
140
|
-
|
|
141
|
-
// 如果有路由
|
|
142
|
-
if ($n_get(item, 'route')) {
|
|
143
|
-
// 如果该值在当前路由路径中, 则显示
|
|
144
|
-
if ($n_indexOf($route.fullPath, item.route) > -1) {
|
|
145
|
-
_tableColumns.push(item)
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
} else {
|
|
149
|
-
_tableColumns.push(item)
|
|
150
|
-
}
|
|
151
|
-
})
|
|
152
|
-
|
|
153
|
-
// 获取原始数据
|
|
154
|
-
const r = getRawData(_tableColumns, Object.assign({}, $route.query), o.searchFromQuery)
|
|
155
|
-
// 原始参数
|
|
156
|
-
rawQuery = r.rawQuery
|
|
157
|
-
// 原始表格搜索参数
|
|
158
|
-
rawSearchOptions = r.rawSearchOptions
|
|
159
|
-
// 原始表格搜索值(空表格搜索值, 用于搜索重置)
|
|
160
|
-
rawTableSearchValue = r.rawTableSearchValue
|
|
161
|
-
// 首次表格搜索值(如果表格搜索参数中带了初始值, 则设置初始值)
|
|
162
|
-
firstTableSearchValue = r.firstTableSearchValue
|
|
163
|
-
|
|
164
|
-
// 表格搜索数据值
|
|
165
|
-
const _tableSearchValue = $route.fullPath ? firstTableSearchValue : []
|
|
166
|
-
|
|
167
|
-
if (_isCreated) {
|
|
168
|
-
|
|
169
|
-
// 表格加载状态
|
|
170
|
-
tableLoading.value = o.loading
|
|
171
|
-
|
|
172
|
-
// 表格搜索数据值
|
|
173
|
-
tableSearchValue.value = _tableSearchValue
|
|
174
|
-
|
|
175
|
-
// 表格搜索参数
|
|
176
|
-
tableSearchOptions.value = null
|
|
177
|
-
|
|
178
|
-
} else {
|
|
179
|
-
|
|
180
|
-
// 表格加载状态
|
|
181
|
-
tableLoading = ref(o.loading)
|
|
182
|
-
|
|
183
|
-
// 表格搜索数据值
|
|
184
|
-
tableSearchValue = ref(_tableSearchValue)
|
|
185
|
-
|
|
186
|
-
// 表格搜索参数
|
|
187
|
-
tableSearchOptions = ref(null)
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
// 表格请求参数(将表格传参中的搜索参数剥离掉, 剩下的直接当做参数传递给服务器)
|
|
191
|
-
tableRequestQuery = {}
|
|
192
|
-
|
|
193
|
-
// 是否已加载
|
|
194
|
-
_isTableLoaded = false
|
|
195
|
-
|
|
196
|
-
// 设置表格搜索参数
|
|
197
|
-
setTableSearchOptions()
|
|
198
|
-
.finally()
|
|
199
|
-
|
|
200
|
-
if (_isCreated) {
|
|
201
|
-
|
|
202
|
-
// 重新赋值
|
|
203
|
-
Object.assign(resTable, {
|
|
204
|
-
// 当前路由全路径
|
|
205
|
-
routeFullPath: $route.fullPath,
|
|
206
|
-
// 当前路由路径
|
|
207
|
-
routePath: $route.path,
|
|
208
|
-
// 当前路由参数
|
|
209
|
-
routeQuery: $route.query,
|
|
210
|
-
})
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
// ==========【方法】================================================================================================
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* 表格是否已加载
|
|
218
|
-
*/
|
|
219
|
-
function isTableLoaded() {
|
|
220
|
-
return _isTableLoaded
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
/**
|
|
224
|
-
* 表格加载(只加载一次)
|
|
225
|
-
*/
|
|
226
|
-
async function tableLoad() {
|
|
227
|
-
|
|
228
|
-
// 如果表格已加载过了
|
|
229
|
-
if (_isTableLoaded) {
|
|
230
|
-
// 则无任何操作
|
|
231
|
-
return
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
// 表格重新加载
|
|
235
|
-
await tableReload()
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
/**
|
|
239
|
-
* 表格重新加载
|
|
240
|
-
*/
|
|
241
|
-
async function tableReload() {
|
|
242
|
-
|
|
243
|
-
// 表格已加载
|
|
244
|
-
_isTableLoaded = true
|
|
245
|
-
|
|
246
|
-
if (! $route.fullPath) {
|
|
247
|
-
return
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
// 请求表格数据
|
|
251
|
-
return await tableRequest()
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
/**
|
|
255
|
-
* 表格搜索重置
|
|
256
|
-
*/
|
|
257
|
-
function tableSearchReset(reload = true) {
|
|
258
|
-
|
|
259
|
-
const newValue = []
|
|
260
|
-
|
|
261
|
-
$n_forEach(rawSearchOptions, function (item, index) {
|
|
262
|
-
// 如果该搜索条件是隐藏的
|
|
263
|
-
if (item.hide) {
|
|
264
|
-
newValue.push(tableSearchValue.value[index])
|
|
265
|
-
// 否则为初始值
|
|
266
|
-
} else {
|
|
267
|
-
newValue.push(rawTableSearchValue[index])
|
|
268
|
-
}
|
|
269
|
-
})
|
|
270
|
-
|
|
271
|
-
// 还原表格搜索数据
|
|
272
|
-
tableSearchValue.value = $n_cloneDeep(newValue)
|
|
273
|
-
|
|
274
|
-
// 表格重新加载
|
|
275
|
-
if (reload) {
|
|
276
|
-
tableReload().finally()
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
/**
|
|
281
|
-
* 获取表格请求数据
|
|
282
|
-
*/
|
|
283
|
-
function getTableRequestData() {
|
|
284
|
-
|
|
285
|
-
// 请求数据
|
|
286
|
-
const data = {}
|
|
287
|
-
|
|
288
|
-
// 合并参数
|
|
289
|
-
$n_forIn(Object.assign({}, rawQuery, tableRequestQuery, o.data), function(value, key) {
|
|
290
|
-
// 如果有值
|
|
291
|
-
if ($n_isRequired(value)) {
|
|
292
|
-
data[key] = value
|
|
293
|
-
}
|
|
294
|
-
})
|
|
295
|
-
|
|
296
|
-
// 获取搜索值
|
|
297
|
-
const search = formatValue(rawSearchOptions, tableSearchValue.value)
|
|
298
|
-
if ($n_isValidArray(search)) {
|
|
299
|
-
data.n_search = $n_has(data, 'n_search') ? $n_concat(data.n_search, search) : search
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
return data
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
/**
|
|
306
|
-
* 请求数据
|
|
307
|
-
*/
|
|
308
|
-
async function tableRequest() {
|
|
309
|
-
|
|
310
|
-
// 加载
|
|
311
|
-
tableLoading.value = true
|
|
312
|
-
|
|
313
|
-
// http 请求参数
|
|
314
|
-
const httpOptions = Object.assign({
|
|
315
|
-
// 请求数据
|
|
316
|
-
url: $n_isValidString(o.url) ? o.url : $route.path,
|
|
317
|
-
// 请求数据
|
|
318
|
-
data: getTableRequestData(),
|
|
319
|
-
// ~~~~~~ 先开启防抖, 如果后期遇到表格加载不出来的情况, 再关闭防抖
|
|
320
|
-
// 关闭防抖(允许重复请求)
|
|
321
|
-
debounce: false,
|
|
322
|
-
}, o.httpSettings)
|
|
323
|
-
|
|
324
|
-
const e = $n_isFunction(o.request)
|
|
325
|
-
// 如果有自定义请求方法
|
|
326
|
-
? await $n_runAsync(o.request)({
|
|
327
|
-
// http 请求参数
|
|
328
|
-
httpOptions,
|
|
329
|
-
})
|
|
330
|
-
// 否则请求服务器
|
|
331
|
-
: await $n_http(httpOptions)
|
|
332
|
-
|
|
333
|
-
// 取消加载
|
|
334
|
-
tableLoading.value = false
|
|
335
|
-
|
|
336
|
-
if (e.status) {
|
|
337
|
-
// 请求成功执行
|
|
338
|
-
$n_run(o.requestSuccess)(e)
|
|
339
|
-
} else {
|
|
340
|
-
// 请求失败执行
|
|
341
|
-
$n_run(o.requestFail)(e)
|
|
342
|
-
}
|
|
343
|
-
// 请求后执行
|
|
344
|
-
$n_run(o.requestAfter)(e)
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
/**
|
|
348
|
-
* 设置表格搜索参数
|
|
349
|
-
*/
|
|
350
|
-
async function setTableSearchOptions(format) {
|
|
351
|
-
tableSearchOptions.value = await getOptions(rawSearchOptions, format)
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
/**
|
|
355
|
-
* 是否有表格搜索值
|
|
356
|
-
*/
|
|
357
|
-
function hasTableSearchValue() {
|
|
358
|
-
return !! formatValue(rawSearchOptions, tableSearchValue.value).length
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
// ==========【返回】=================================================================================================
|
|
362
|
-
|
|
363
|
-
const resTable = {
|
|
364
|
-
// 当前路由全路径
|
|
365
|
-
routeFullPath: $route.fullPath,
|
|
366
|
-
// 当前路由路径
|
|
367
|
-
routePath: $route.path,
|
|
368
|
-
// 当前路由参数
|
|
369
|
-
routeQuery: $route.query,
|
|
370
|
-
|
|
371
|
-
// 搜索加载状态
|
|
372
|
-
searchLoading: tableLoading,
|
|
373
|
-
|
|
374
|
-
// 搜索数据
|
|
375
|
-
searchValue: tableSearchValue,
|
|
376
|
-
// 搜索参数
|
|
377
|
-
searchOptions: tableSearchOptions,
|
|
378
|
-
|
|
379
|
-
// 搜索是否已加载
|
|
380
|
-
isSearchLoaded: isTableLoaded,
|
|
381
|
-
// 搜索加载(只加载一次)
|
|
382
|
-
searchLoad: tableLoad,
|
|
383
|
-
// 表格重新加载
|
|
384
|
-
searchReload: tableReload,
|
|
385
|
-
// 搜索重置
|
|
386
|
-
searchReset: tableSearchReset,
|
|
387
|
-
// 获取搜索请求数据
|
|
388
|
-
getSearchRequestData: getTableRequestData,
|
|
389
|
-
// 搜索请求数据
|
|
390
|
-
searchRequest: tableRequest,
|
|
391
|
-
// 设置搜索参数
|
|
392
|
-
setSearchOptions: setTableSearchOptions,
|
|
393
|
-
|
|
394
|
-
// 是否有搜索值
|
|
395
|
-
hasSearchValue: hasTableSearchValue,
|
|
396
|
-
|
|
397
|
-
// 获取当前路由
|
|
398
|
-
getRoute() {
|
|
399
|
-
return $route
|
|
400
|
-
},
|
|
401
|
-
// 重新创建搜索
|
|
402
|
-
reCreate,
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
return resTable
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
/**
|
|
409
|
-
* 业务搜索
|
|
410
|
-
*/
|
|
411
|
-
const $search = {
|
|
412
|
-
// 创建搜索
|
|
413
|
-
create,
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
export default $search
|
|
1
|
+
import { ref, inject } from 'vue'
|
|
2
|
+
|
|
3
|
+
import $n_has from 'lodash/has'
|
|
4
|
+
import $n_get from 'lodash/get'
|
|
5
|
+
import $n_cloneDeep from 'lodash/cloneDeep'
|
|
6
|
+
import $n_merge from 'lodash/merge'
|
|
7
|
+
import $n_isFunction from 'lodash/isFunction'
|
|
8
|
+
import $n_concat from 'lodash/concat'
|
|
9
|
+
|
|
10
|
+
import $n_router from '@netang/utils/vue/router'
|
|
11
|
+
|
|
12
|
+
import $n_forEach from '@netang/utils/forEach'
|
|
13
|
+
import $n_isValidArray from '@netang/utils/isValidArray'
|
|
14
|
+
import $n_isValidString from '@netang/utils/isValidString'
|
|
15
|
+
import $n_indexOf from '@netang/utils/indexOf'
|
|
16
|
+
|
|
17
|
+
import $n_isRequired from '@netang/utils/isRequired'
|
|
18
|
+
import $n_forIn from '@netang/utils/forIn'
|
|
19
|
+
import $n_runAsync from '@netang/utils/runAsync'
|
|
20
|
+
import $n_isValidObject from '@netang/utils/isValidObject'
|
|
21
|
+
import $n_http from '@netang/utils/http'
|
|
22
|
+
import $n_run from '@netang/utils/run'
|
|
23
|
+
|
|
24
|
+
import {
|
|
25
|
+
// 从表格列获取原始值
|
|
26
|
+
getRawData,
|
|
27
|
+
// 获取参数
|
|
28
|
+
getOptions,
|
|
29
|
+
// 格式化值
|
|
30
|
+
formatValue,
|
|
31
|
+
} from './useSearch'
|
|
32
|
+
|
|
33
|
+
import { NPowerKey } from './symbols'
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* 创建搜索
|
|
37
|
+
*/
|
|
38
|
+
function create(options) {
|
|
39
|
+
|
|
40
|
+
// ==========【数据】=================================================================================================
|
|
41
|
+
|
|
42
|
+
// 原始参数
|
|
43
|
+
const rawOptions = {
|
|
44
|
+
// 路由路径
|
|
45
|
+
path: '',
|
|
46
|
+
// 请求地址(默认为 path)
|
|
47
|
+
url: '',
|
|
48
|
+
// 路由参数
|
|
49
|
+
query: {},
|
|
50
|
+
// 附加请求数据
|
|
51
|
+
data: {},
|
|
52
|
+
// 初始搜索加载状态
|
|
53
|
+
loading: false,
|
|
54
|
+
// 搜索列数据(对象数组)
|
|
55
|
+
columns: [],
|
|
56
|
+
// 自定义请求方法
|
|
57
|
+
request: null,
|
|
58
|
+
// 格式化单条数据
|
|
59
|
+
formatRow: null,
|
|
60
|
+
// http 设置
|
|
61
|
+
httpSettings: {},
|
|
62
|
+
// 从参数中获取搜索值
|
|
63
|
+
searchFromQuery: true,
|
|
64
|
+
// 请求成功执行
|
|
65
|
+
requestSuccess: null,
|
|
66
|
+
// 请求失败执行
|
|
67
|
+
requestFail: null,
|
|
68
|
+
// 请求后执行
|
|
69
|
+
requestAfter: null,
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
let o
|
|
73
|
+
let $power
|
|
74
|
+
let hasPowr
|
|
75
|
+
let $route
|
|
76
|
+
|
|
77
|
+
// 表格加载状态
|
|
78
|
+
let tableLoading
|
|
79
|
+
// 表格请求参数(将表格传参中的搜索参数剥离掉, 剩下的直接当做参数传递给服务器)
|
|
80
|
+
let tableRequestQuery
|
|
81
|
+
|
|
82
|
+
// 原始参数
|
|
83
|
+
let rawQuery
|
|
84
|
+
// 原始表格搜索参数
|
|
85
|
+
let rawSearchOptions
|
|
86
|
+
// 原始表格搜索值(空表格搜索值, 用于搜索重置)
|
|
87
|
+
let rawTableSearchValue
|
|
88
|
+
// 首次表格搜索值(如果表格搜索参数中带了初始值, 则设置初始值)
|
|
89
|
+
let firstTableSearchValue
|
|
90
|
+
|
|
91
|
+
// 表格搜索数据值
|
|
92
|
+
let tableSearchValue
|
|
93
|
+
// 表格搜索参数
|
|
94
|
+
let tableSearchOptions
|
|
95
|
+
// 是否已加载
|
|
96
|
+
let _isTableLoaded
|
|
97
|
+
|
|
98
|
+
// 是否已生成数据
|
|
99
|
+
let _isCreated = false
|
|
100
|
+
|
|
101
|
+
// 创建表格
|
|
102
|
+
reCreate(options)
|
|
103
|
+
|
|
104
|
+
// 已生成数据
|
|
105
|
+
_isCreated = true
|
|
106
|
+
|
|
107
|
+
// ==========【方法】================================================================================================
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* 重新创建表格
|
|
111
|
+
*/
|
|
112
|
+
function reCreate(options) {
|
|
113
|
+
|
|
114
|
+
// 获取参数
|
|
115
|
+
o = $n_merge({}, rawOptions, options)
|
|
116
|
+
|
|
117
|
+
// 获取权限注入
|
|
118
|
+
$power = $n_has(options, '$power') ? options.$power : (_isCreated ? $power : inject(NPowerKey))
|
|
119
|
+
hasPowr = !! $power
|
|
120
|
+
|
|
121
|
+
// 获取权限路由
|
|
122
|
+
$route = $n_isValidString(o.path) ?
|
|
123
|
+
// 如果为自定义路由
|
|
124
|
+
$n_router.resolve({
|
|
125
|
+
path: o.path,
|
|
126
|
+
query: $n_isValidObject(o.query) ? o.query : {},
|
|
127
|
+
})
|
|
128
|
+
// 否则获取当前路由
|
|
129
|
+
: (hasPowr ? $power.getRoute() : $n_router.getRoute())
|
|
130
|
+
|
|
131
|
+
// 表格列
|
|
132
|
+
const _tableColumns = []
|
|
133
|
+
|
|
134
|
+
// 设置表格列数据
|
|
135
|
+
// 设置列参数
|
|
136
|
+
$n_forEach(o.columns, function(item) {
|
|
137
|
+
|
|
138
|
+
// 是否隐藏
|
|
139
|
+
item.hide = $n_get(item, 'hide') === true
|
|
140
|
+
|
|
141
|
+
// 如果有路由
|
|
142
|
+
if ($n_get(item, 'route')) {
|
|
143
|
+
// 如果该值在当前路由路径中, 则显示
|
|
144
|
+
if ($n_indexOf($route.fullPath, item.route) > -1) {
|
|
145
|
+
_tableColumns.push(item)
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
} else {
|
|
149
|
+
_tableColumns.push(item)
|
|
150
|
+
}
|
|
151
|
+
})
|
|
152
|
+
|
|
153
|
+
// 获取原始数据
|
|
154
|
+
const r = getRawData(_tableColumns, Object.assign({}, $route.query), o.searchFromQuery)
|
|
155
|
+
// 原始参数
|
|
156
|
+
rawQuery = r.rawQuery
|
|
157
|
+
// 原始表格搜索参数
|
|
158
|
+
rawSearchOptions = r.rawSearchOptions
|
|
159
|
+
// 原始表格搜索值(空表格搜索值, 用于搜索重置)
|
|
160
|
+
rawTableSearchValue = r.rawTableSearchValue
|
|
161
|
+
// 首次表格搜索值(如果表格搜索参数中带了初始值, 则设置初始值)
|
|
162
|
+
firstTableSearchValue = r.firstTableSearchValue
|
|
163
|
+
|
|
164
|
+
// 表格搜索数据值
|
|
165
|
+
const _tableSearchValue = $route.fullPath ? firstTableSearchValue : []
|
|
166
|
+
|
|
167
|
+
if (_isCreated) {
|
|
168
|
+
|
|
169
|
+
// 表格加载状态
|
|
170
|
+
tableLoading.value = o.loading
|
|
171
|
+
|
|
172
|
+
// 表格搜索数据值
|
|
173
|
+
tableSearchValue.value = _tableSearchValue
|
|
174
|
+
|
|
175
|
+
// 表格搜索参数
|
|
176
|
+
tableSearchOptions.value = null
|
|
177
|
+
|
|
178
|
+
} else {
|
|
179
|
+
|
|
180
|
+
// 表格加载状态
|
|
181
|
+
tableLoading = ref(o.loading)
|
|
182
|
+
|
|
183
|
+
// 表格搜索数据值
|
|
184
|
+
tableSearchValue = ref(_tableSearchValue)
|
|
185
|
+
|
|
186
|
+
// 表格搜索参数
|
|
187
|
+
tableSearchOptions = ref(null)
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
// 表格请求参数(将表格传参中的搜索参数剥离掉, 剩下的直接当做参数传递给服务器)
|
|
191
|
+
tableRequestQuery = {}
|
|
192
|
+
|
|
193
|
+
// 是否已加载
|
|
194
|
+
_isTableLoaded = false
|
|
195
|
+
|
|
196
|
+
// 设置表格搜索参数
|
|
197
|
+
setTableSearchOptions()
|
|
198
|
+
.finally()
|
|
199
|
+
|
|
200
|
+
if (_isCreated) {
|
|
201
|
+
|
|
202
|
+
// 重新赋值
|
|
203
|
+
Object.assign(resTable, {
|
|
204
|
+
// 当前路由全路径
|
|
205
|
+
routeFullPath: $route.fullPath,
|
|
206
|
+
// 当前路由路径
|
|
207
|
+
routePath: $route.path,
|
|
208
|
+
// 当前路由参数
|
|
209
|
+
routeQuery: $route.query,
|
|
210
|
+
})
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
// ==========【方法】================================================================================================
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* 表格是否已加载
|
|
218
|
+
*/
|
|
219
|
+
function isTableLoaded() {
|
|
220
|
+
return _isTableLoaded
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* 表格加载(只加载一次)
|
|
225
|
+
*/
|
|
226
|
+
async function tableLoad() {
|
|
227
|
+
|
|
228
|
+
// 如果表格已加载过了
|
|
229
|
+
if (_isTableLoaded) {
|
|
230
|
+
// 则无任何操作
|
|
231
|
+
return
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
// 表格重新加载
|
|
235
|
+
await tableReload()
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* 表格重新加载
|
|
240
|
+
*/
|
|
241
|
+
async function tableReload() {
|
|
242
|
+
|
|
243
|
+
// 表格已加载
|
|
244
|
+
_isTableLoaded = true
|
|
245
|
+
|
|
246
|
+
if (! $route.fullPath) {
|
|
247
|
+
return
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
// 请求表格数据
|
|
251
|
+
return await tableRequest()
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* 表格搜索重置
|
|
256
|
+
*/
|
|
257
|
+
function tableSearchReset(reload = true) {
|
|
258
|
+
|
|
259
|
+
const newValue = []
|
|
260
|
+
|
|
261
|
+
$n_forEach(rawSearchOptions, function (item, index) {
|
|
262
|
+
// 如果该搜索条件是隐藏的
|
|
263
|
+
if (item.hide) {
|
|
264
|
+
newValue.push(tableSearchValue.value[index])
|
|
265
|
+
// 否则为初始值
|
|
266
|
+
} else {
|
|
267
|
+
newValue.push(rawTableSearchValue[index])
|
|
268
|
+
}
|
|
269
|
+
})
|
|
270
|
+
|
|
271
|
+
// 还原表格搜索数据
|
|
272
|
+
tableSearchValue.value = $n_cloneDeep(newValue)
|
|
273
|
+
|
|
274
|
+
// 表格重新加载
|
|
275
|
+
if (reload) {
|
|
276
|
+
tableReload().finally()
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
/**
|
|
281
|
+
* 获取表格请求数据
|
|
282
|
+
*/
|
|
283
|
+
function getTableRequestData() {
|
|
284
|
+
|
|
285
|
+
// 请求数据
|
|
286
|
+
const data = {}
|
|
287
|
+
|
|
288
|
+
// 合并参数
|
|
289
|
+
$n_forIn(Object.assign({}, rawQuery, tableRequestQuery, o.data), function(value, key) {
|
|
290
|
+
// 如果有值
|
|
291
|
+
if ($n_isRequired(value)) {
|
|
292
|
+
data[key] = value
|
|
293
|
+
}
|
|
294
|
+
})
|
|
295
|
+
|
|
296
|
+
// 获取搜索值
|
|
297
|
+
const search = formatValue(rawSearchOptions, tableSearchValue.value)
|
|
298
|
+
if ($n_isValidArray(search)) {
|
|
299
|
+
data.n_search = $n_has(data, 'n_search') ? $n_concat(data.n_search, search) : search
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
return data
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
/**
|
|
306
|
+
* 请求数据
|
|
307
|
+
*/
|
|
308
|
+
async function tableRequest() {
|
|
309
|
+
|
|
310
|
+
// 加载
|
|
311
|
+
tableLoading.value = true
|
|
312
|
+
|
|
313
|
+
// http 请求参数
|
|
314
|
+
const httpOptions = Object.assign({
|
|
315
|
+
// 请求数据
|
|
316
|
+
url: $n_isValidString(o.url) ? o.url : $route.path,
|
|
317
|
+
// 请求数据
|
|
318
|
+
data: getTableRequestData(),
|
|
319
|
+
// ~~~~~~ 先开启防抖, 如果后期遇到表格加载不出来的情况, 再关闭防抖
|
|
320
|
+
// 关闭防抖(允许重复请求)
|
|
321
|
+
debounce: false,
|
|
322
|
+
}, o.httpSettings)
|
|
323
|
+
|
|
324
|
+
const e = $n_isFunction(o.request)
|
|
325
|
+
// 如果有自定义请求方法
|
|
326
|
+
? await $n_runAsync(o.request)({
|
|
327
|
+
// http 请求参数
|
|
328
|
+
httpOptions,
|
|
329
|
+
})
|
|
330
|
+
// 否则请求服务器
|
|
331
|
+
: await $n_http(httpOptions)
|
|
332
|
+
|
|
333
|
+
// 取消加载
|
|
334
|
+
tableLoading.value = false
|
|
335
|
+
|
|
336
|
+
if (e.status) {
|
|
337
|
+
// 请求成功执行
|
|
338
|
+
$n_run(o.requestSuccess)(e)
|
|
339
|
+
} else {
|
|
340
|
+
// 请求失败执行
|
|
341
|
+
$n_run(o.requestFail)(e)
|
|
342
|
+
}
|
|
343
|
+
// 请求后执行
|
|
344
|
+
$n_run(o.requestAfter)(e)
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
/**
|
|
348
|
+
* 设置表格搜索参数
|
|
349
|
+
*/
|
|
350
|
+
async function setTableSearchOptions(format) {
|
|
351
|
+
tableSearchOptions.value = await getOptions(rawSearchOptions, format)
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
/**
|
|
355
|
+
* 是否有表格搜索值
|
|
356
|
+
*/
|
|
357
|
+
function hasTableSearchValue() {
|
|
358
|
+
return !! formatValue(rawSearchOptions, tableSearchValue.value).length
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
// ==========【返回】=================================================================================================
|
|
362
|
+
|
|
363
|
+
const resTable = {
|
|
364
|
+
// 当前路由全路径
|
|
365
|
+
routeFullPath: $route.fullPath,
|
|
366
|
+
// 当前路由路径
|
|
367
|
+
routePath: $route.path,
|
|
368
|
+
// 当前路由参数
|
|
369
|
+
routeQuery: $route.query,
|
|
370
|
+
|
|
371
|
+
// 搜索加载状态
|
|
372
|
+
searchLoading: tableLoading,
|
|
373
|
+
|
|
374
|
+
// 搜索数据
|
|
375
|
+
searchValue: tableSearchValue,
|
|
376
|
+
// 搜索参数
|
|
377
|
+
searchOptions: tableSearchOptions,
|
|
378
|
+
|
|
379
|
+
// 搜索是否已加载
|
|
380
|
+
isSearchLoaded: isTableLoaded,
|
|
381
|
+
// 搜索加载(只加载一次)
|
|
382
|
+
searchLoad: tableLoad,
|
|
383
|
+
// 表格重新加载
|
|
384
|
+
searchReload: tableReload,
|
|
385
|
+
// 搜索重置
|
|
386
|
+
searchReset: tableSearchReset,
|
|
387
|
+
// 获取搜索请求数据
|
|
388
|
+
getSearchRequestData: getTableRequestData,
|
|
389
|
+
// 搜索请求数据
|
|
390
|
+
searchRequest: tableRequest,
|
|
391
|
+
// 设置搜索参数
|
|
392
|
+
setSearchOptions: setTableSearchOptions,
|
|
393
|
+
|
|
394
|
+
// 是否有搜索值
|
|
395
|
+
hasSearchValue: hasTableSearchValue,
|
|
396
|
+
|
|
397
|
+
// 获取当前路由
|
|
398
|
+
getRoute() {
|
|
399
|
+
return $route
|
|
400
|
+
},
|
|
401
|
+
// 重新创建搜索
|
|
402
|
+
reCreate,
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
return resTable
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
/**
|
|
409
|
+
* 业务搜索
|
|
410
|
+
*/
|
|
411
|
+
const $search = {
|
|
412
|
+
// 创建搜索
|
|
413
|
+
create,
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
export default $search
|