@wp1001/ui 2.9.13 → 3.0.0
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/@vant-D4fmGxs6.js +1 -3891
- package/index.html +28 -0
- package/index.js +1 -8419
- package/lib/tinymce/zh_CN.js +1 -0
- package/package.json +1 -1
- package/packages/assets/devtools-detector.js +1 -2
- package/packages/components/xarray/index.js +1 -64
- package/packages/components/xautorows/index.js +1 -35
- package/packages/components/xbutton/mobile.js +1 -3
- package/packages/components/xbutton/pc.js +1 -3
- package/packages/components/xbuttons/mobile.js +1 -51
- package/packages/components/xbuttons/pc.js +1 -51
- package/packages/components/xchart/constants.js +1 -58
- package/packages/components/xchart/index.js +1 -263
- package/packages/components/xchart/utils.js +1 -121
- package/packages/components/xcheckboxs/mobile.js +1 -58
- package/packages/components/xcheckboxs/pc.js +1 -49
- package/packages/components/xcol/mobile.js +1 -10
- package/packages/components/xcol/pc.js +1 -10
- package/packages/components/xdatepicker/mobile.js +1 -71
- package/packages/components/xdatepicker/pc.js +1 -9
- package/packages/components/xdialog/mobile.js +1 -60
- package/packages/components/xdialog/pc.js +1 -64
- package/packages/components/xdict/index.js +1 -47
- package/packages/components/xdistrictselect/mobile.js +1 -79
- package/packages/components/xdistrictselect/pc.js +1 -127
- package/packages/components/xform/mobile.js +1 -29
- package/packages/components/xform/pc.js +1 -42
- package/packages/components/xform/utils.js +1 -95
- package/packages/components/xformitem/mobile.js +1 -56
- package/packages/components/xformitem/pc.js +1 -72
- package/packages/components/xicon/mobile.js +1 -35
- package/packages/components/xicon/pc.js +1 -35
- package/packages/components/xinfo/index.js +1 -100
- package/packages/components/xlooper/index.js +1 -7
- package/packages/components/xpagination/mobile.js +1 -21
- package/packages/components/xpagination/pc.js +1 -21
- package/packages/components/xpicker/index.js +1 -38
- package/packages/components/xradios/mobile.js +1 -40
- package/packages/components/xradios/pc.js +1 -53
- package/packages/components/xrow/mobile.js +1 -9
- package/packages/components/xrow/pc.js +1 -9
- package/packages/components/xscan/mobile.js +1 -24
- package/packages/components/xscan/pc.js +1 -20
- package/packages/components/xsearcher/index.js +1 -198
- package/packages/components/xselect/mobile.js +1 -86
- package/packages/components/xselect/pc.js +1 -114
- package/packages/components/xselect/util.js +1 -66
- package/packages/components/xselectv2/index.js +1 -91
- package/packages/components/xtable/mobile.js +1 -108
- package/packages/components/xtable/pc.js +1 -143
- package/packages/components/xtable/searcher.js +1 -477
- package/packages/components/xtable/settings.js +1 -80
- package/packages/components/xtable/utils.js +1 -692
- package/packages/components/xtabletools/mobile.js +1 -25
- package/packages/components/xtabletools/pc.js +1 -18
- package/packages/components/xtablev2/index.js +1 -53
- package/packages/components/xtags/mobile.js +1 -17
- package/packages/components/xtags/pc.js +1 -17
- package/packages/components/xtinymce/index.js +1 -71
- package/packages/components/xuploader/xfileuploader.js +1 -48
- package/packages/components/xuploader/ximageuploader.js +1 -53
- package/packages/comps.js +1 -108
- package/packages/controllers/BaseController.js +1 -125
- package/packages/controllers/CrudController.js +1 -907
- package/packages/controllers/TempCrudController.js +1 -32
- package/packages/controllers/index.js +1 -15
- package/packages/directives/el-table-infinite-scroll.js +1 -55
- package/packages/directives/index.js +1 -5
- package/packages/index.js +1 -81
- package/packages/layout/breadcrumb/index.js +1 -41
- package/packages/layout/header/inner.js +1 -11
- package/packages/layout/screenlock/index.js +1 -129
- package/packages/layout/sidebar/item.js +1 -16
- package/packages/layout/sidebar/menu.js +1 -72
- package/packages/layout/tagsview/ScrollPane.js +1 -65
- package/packages/layout/tagsview/index.js +1 -169
- package/packages/plop/actions/make-fill-admin-partials-action.js +1 -95
- package/packages/plop/generators/make-admin-page.js +1 -39
- package/packages/plop/generators/make-database-admin-pages.js +1 -84
- package/packages/plop/generators/make-page-generator.js +1 -52
- package/packages/plop/generators/make-simple-page.js +1 -20
- package/packages/plop/plopfile.js +1 -24
- package/packages/plop/utils/index.js +1 -168
- package/packages/plop/utils/plop-utils.js +1 -86
- package/packages/utils/crypt.js +1 -24
- package/packages/utils/decorators.js +1 -67
- package/packages/utils/disallowDevtools.js +1 -53
- package/packages/utils/effects.js +1 -173
- package/packages/utils/funcs.js +1 -78
- package/packages/utils/index.js +1 -95
- package/packages/utils/message.js +1 -110
- package/packages/utils/middlewares.js +1 -86
- package/packages/utils/model.js +1 -71
- package/packages/utils/modelUtils.js +1 -203
- package/packages/utils/request.js +1 -57
- package/packages/utils/site.js +1 -33
- package/packages/vite-plugins.js +1 -141
- package/src/App.vue +134 -0
- package/src/main.js +1 -0
- package/src/request.js +1 -0
- package/style.css +1 -0
- package/vite.config.js +1 -0
- package/vite.lib.config.js +1 -0
- package/.env +0 -6
|
@@ -1,477 +1 @@
|
|
|
1
|
-
import render, { OPS, COMPONENT_OPS } from './searcher.jsx'
|
|
2
|
-
import { Message, Confirm, Prompt } from '../../utils/index.js'
|
|
3
|
-
|
|
4
|
-
const { storage } = StardustBrowser
|
|
5
|
-
const { deepCopy } = StardustJs.funcs
|
|
6
|
-
|
|
7
|
-
export default {
|
|
8
|
-
name: 'Searcher',
|
|
9
|
-
props: {
|
|
10
|
-
uid: String,
|
|
11
|
-
columns: Array,
|
|
12
|
-
config: Object
|
|
13
|
-
},
|
|
14
|
-
emits: ['search', 'save'],
|
|
15
|
-
data () {
|
|
16
|
-
return {
|
|
17
|
-
visible: false,
|
|
18
|
-
activeName: 'search',
|
|
19
|
-
sortableColumns: [],
|
|
20
|
-
sortOptions: [
|
|
21
|
-
{ text: '升序', value: 'asc' },
|
|
22
|
-
{ text: '降序', value: 'desc' }
|
|
23
|
-
],
|
|
24
|
-
sorts: [],
|
|
25
|
-
conditionNo: 1,
|
|
26
|
-
conditions: [],
|
|
27
|
-
expression: '',
|
|
28
|
-
viewName: '',
|
|
29
|
-
views: [],
|
|
30
|
-
tourGuide: {
|
|
31
|
-
visible: false,
|
|
32
|
-
steps: [
|
|
33
|
-
{
|
|
34
|
-
target: '.views-select', title: '1. 选择视图',
|
|
35
|
-
description: `
|
|
36
|
-
<div style="color: var(--el-color-danger)">视图,是一组查询条件。</div>
|
|
37
|
-
这里选择下拉框里的某个视图,然后可以利用此视图进行数据查询。<br><br>
|
|
38
|
-
如果还没有自定义的视图,则需要添加。鼠标放到下拉框上,点击下拉框右侧的小叉号,以取消选中当前的默认视图,然后才能去新增条件,并保存为新的视图。<br><br>
|
|
39
|
-
<div style="color: var(--el-color-success)">现在,请试着点击下拉框右侧的小叉号。</div>
|
|
40
|
-
`
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
target: '.add-condition', title: '2. 新增条件',
|
|
44
|
-
description: `
|
|
45
|
-
这里可添加任意多个查询条件,每个条件可:
|
|
46
|
-
<ol style="list-style: disc; padding-left: 13px;">
|
|
47
|
-
<li>选择任意字段</li>
|
|
48
|
-
<li>选择任意查询方式</li>
|
|
49
|
-
<li>填写任意值,或选择任意选项、时间</li>
|
|
50
|
-
</ol>
|
|
51
|
-
然后,任意组合这些查询条件,从而可进行任意查询。<br><br>
|
|
52
|
-
<div style="color: var(--el-color-success)">现在,请试着点击"新增条件"按钮。</div>
|
|
53
|
-
`
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
target: '.x-select.field-select', title: '3. 选择字段',
|
|
57
|
-
description: `
|
|
58
|
-
这里有所有你需要查看、操作的字段,可以选择其中任意一个。<br><br>
|
|
59
|
-
<div style="color: var(--el-color-success)">现在,请试着选择某个字段。</div>
|
|
60
|
-
`
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
target: '.x-select.condition-select', title: '4. 选择查询方式',
|
|
64
|
-
description: `
|
|
65
|
-
这里有所有你需要用到的查询方式,不同的字段类型对应着不同的查询方式,可选择提供的任意一个方式。<br><br>
|
|
66
|
-
<div style="color: var(--el-color-success)">现在,请试着选择某个查询方式。</div>
|
|
67
|
-
`
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
target: '.value-container', title: '5. 填写值/选择选项、时间',
|
|
71
|
-
description: `
|
|
72
|
-
这里填写你要查询的关键词,或选择对应的下拉选项,或选择时间。<br><br>
|
|
73
|
-
<div style="color: var(--el-color-success)">现在,请试着填写某个关键词,或选择某个选项、时间。</div>
|
|
74
|
-
`
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
target: '.condition-expression', title: '6. 组合查询条件',
|
|
78
|
-
description: `
|
|
79
|
-
鉴于你可以添加多个条件,每个条件可任意组合,且支持数学逻辑中的“与”、“或”关系。<br>
|
|
80
|
-
这里就需要明确表达出你想用哪几个条件来查询,并且这些条件是以什么样的方式来组合。<br>
|
|
81
|
-
示例如下:<br>
|
|
82
|
-
<ol style="list-style: disc; padding-left: 13px;">
|
|
83
|
-
<li>条件1、条件2、条件3同时成立,表达式为:<span style="color: var(--el-color-warning)">1 and 2 and 3</span></li>
|
|
84
|
-
<li>条件1、条件2同时成立,或者条件3成立,表达式为:<span style="color: var(--el-color-warning)">(1 and 2) or 3</span></li>
|
|
85
|
-
<li>条件1、条件2同时成立,或条件2、条件3同时成立,表达式为:<span style="color: var(--el-color-warning)">(1 and 2) or (2 and 3)</span></li>
|
|
86
|
-
</ol>
|
|
87
|
-
<div style="color: var(--el-color-primary)">你想简单查询,表达式就非常简单。如果你想复杂查询,那么表达式就需要按需填写了。</div>
|
|
88
|
-
<br>
|
|
89
|
-
<div style="color: var(--el-color-success)">
|
|
90
|
-
现在,请试着填写表达式。如果你刚刚只添加了一个条件,且其序号为1,那么这里的表达式暂时填写
|
|
91
|
-
<span style="color: var(--el-color-warning)">1</span>
|
|
92
|
-
就好
|
|
93
|
-
</div>
|
|
94
|
-
`
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
target: '.save-view', title: '7. 保存视图',
|
|
98
|
-
description: `
|
|
99
|
-
刚才你已经新增了若干个条件,并且填写了条件表达式。现在可以保存这些条件为视图,这样下次可以直接选择此视图方便地查询数据。<br><br>
|
|
100
|
-
<div style="color: var(--el-color-success)">现在,点击“保存当前视图”按钮,并为其填写一个合适的名字。</div>
|
|
101
|
-
`
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
target: '.searcher.pc-x-drawer .el-drawer__footer .el-button--primary', title: '8. 查询数据',
|
|
105
|
-
description: `
|
|
106
|
-
现在,上面已经有了查询条件,试着点击“查询”按钮,即可查询数据了。
|
|
107
|
-
`
|
|
108
|
-
}
|
|
109
|
-
]
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
computed: {
|
|
114
|
-
key () {
|
|
115
|
-
return `Searcher[${this.uid}]`
|
|
116
|
-
},
|
|
117
|
-
currentView () {
|
|
118
|
-
return this.views.find(v => v.name === this.viewName)
|
|
119
|
-
}
|
|
120
|
-
},
|
|
121
|
-
watch: {
|
|
122
|
-
config: 'init'
|
|
123
|
-
},
|
|
124
|
-
created () {
|
|
125
|
-
this.init()
|
|
126
|
-
},
|
|
127
|
-
render,
|
|
128
|
-
methods: {
|
|
129
|
-
init () {
|
|
130
|
-
let { views = [], viewName, ...others } = this.uid && storage.local.getJson(this.key, {}) || {}
|
|
131
|
-
if (this.config.views) {
|
|
132
|
-
this.config.views.forEach(view => view.is_system = true)
|
|
133
|
-
views = this.config.views.concat(views)
|
|
134
|
-
}
|
|
135
|
-
if (views.length && !viewName) viewName = views[0].name
|
|
136
|
-
Object.assign(this, { views, viewName })
|
|
137
|
-
|
|
138
|
-
const settings = storage.local.getJson('Settings[' + this.uid + ']')
|
|
139
|
-
if (settings?.viewName) this.viewName = settings.viewName
|
|
140
|
-
|
|
141
|
-
this.sortableColumns = this.columns.filter(col => !col.virtual)
|
|
142
|
-
|
|
143
|
-
if (this.viewName) {
|
|
144
|
-
this.handleSelectView(this.viewName)
|
|
145
|
-
} else {
|
|
146
|
-
this.setCurrentView(this.config.traditional ? this.config : others)
|
|
147
|
-
}
|
|
148
|
-
},
|
|
149
|
-
open () {
|
|
150
|
-
this.visible = true
|
|
151
|
-
},
|
|
152
|
-
close () {
|
|
153
|
-
this.visible = false
|
|
154
|
-
},
|
|
155
|
-
getCurrentView () {
|
|
156
|
-
return {
|
|
157
|
-
sorts: this.sorts,
|
|
158
|
-
conditionNo: this.conditionNo,
|
|
159
|
-
conditions: this.conditions.map(con => {
|
|
160
|
-
const { item, ops, component, ...others } = con
|
|
161
|
-
return others
|
|
162
|
-
}),
|
|
163
|
-
expression: this.expression
|
|
164
|
-
}
|
|
165
|
-
},
|
|
166
|
-
saveCache () {
|
|
167
|
-
const cache = { views: this.views.filter(view => !view.is_system) }
|
|
168
|
-
if (this.viewName && this.currentView) {
|
|
169
|
-
cache.viewName = this.viewName
|
|
170
|
-
Object.assign(this.currentView, this.getCurrentView())
|
|
171
|
-
} else {
|
|
172
|
-
Object.assign(cache, this.getCurrentView())
|
|
173
|
-
}
|
|
174
|
-
storage.local.setJson(this.key, cache)
|
|
175
|
-
},
|
|
176
|
-
setCurrentView (view) {
|
|
177
|
-
if (!view) return
|
|
178
|
-
view.conditions?.forEach(con => {
|
|
179
|
-
const { prop, op, value, universal } = con
|
|
180
|
-
con.item = this.columns.find(col => col.prop === prop)
|
|
181
|
-
this.handleSelectField(con, prop)
|
|
182
|
-
this.handleSelectOp(con, op)
|
|
183
|
-
con.value = value
|
|
184
|
-
const comp = con.item.comp || con.component
|
|
185
|
-
con.ops = COMPONENT_OPS[universal ? 'universal' : comp].map(key => OPS[key])
|
|
186
|
-
})
|
|
187
|
-
if (!view.conditionNo && view.conditions?.length) {
|
|
188
|
-
view.conditionNo = Math.max.apply(null, view.conditions.map(con => con.no)) + 1
|
|
189
|
-
}
|
|
190
|
-
this.viewName = view.name
|
|
191
|
-
Object.assign(this, view)
|
|
192
|
-
},
|
|
193
|
-
handleSearch () {
|
|
194
|
-
let params = null
|
|
195
|
-
try {
|
|
196
|
-
params = this.calcParams()
|
|
197
|
-
} catch (err) {
|
|
198
|
-
Message.w(err.toString())
|
|
199
|
-
return false
|
|
200
|
-
}
|
|
201
|
-
this.uid && params && this.saveCache()
|
|
202
|
-
params = params || { where: {} }
|
|
203
|
-
params.page = 1
|
|
204
|
-
this.$emit('search', params)
|
|
205
|
-
this.visible = false
|
|
206
|
-
return true
|
|
207
|
-
},
|
|
208
|
-
handleReset () {
|
|
209
|
-
const view = {
|
|
210
|
-
sorts: [],
|
|
211
|
-
conditionNo: 1,
|
|
212
|
-
conditions: [],
|
|
213
|
-
expression: ''
|
|
214
|
-
}
|
|
215
|
-
Object.assign(this, view)
|
|
216
|
-
this.setCurrentView(view)
|
|
217
|
-
},
|
|
218
|
-
calcParams () {
|
|
219
|
-
const tree = this.calcTree()
|
|
220
|
-
if (!tree) return
|
|
221
|
-
const parse = (tree, where) => {
|
|
222
|
-
const branch = []
|
|
223
|
-
const type = '[Op.' + tree.type + ']'
|
|
224
|
-
where[type] = branch
|
|
225
|
-
for (let item of tree.items) {
|
|
226
|
-
if (typeof item === 'string') {
|
|
227
|
-
const condition = this.conditions.find(con => con.no === item * 1)
|
|
228
|
-
if (!condition) {
|
|
229
|
-
throw '条件不存在: ' + item
|
|
230
|
-
} else {
|
|
231
|
-
if (!this.checkFilled(condition)) {
|
|
232
|
-
if (this.config.traditional || this.config.ignoreUnfilled) continue
|
|
233
|
-
throw '条件不完整: ' + item
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
branch.push(this.parseCondition(condition))
|
|
237
|
-
} else {
|
|
238
|
-
const sub = {}
|
|
239
|
-
branch.push(sub)
|
|
240
|
-
parse(item, sub)
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
if (!branch.length) delete where[type]
|
|
244
|
-
}
|
|
245
|
-
const where = {}
|
|
246
|
-
parse(tree, where)
|
|
247
|
-
const params = { where }
|
|
248
|
-
if (this.sorts.length) {
|
|
249
|
-
params.order = deepCopy(this.sorts)
|
|
250
|
-
}
|
|
251
|
-
return params
|
|
252
|
-
},
|
|
253
|
-
calcTree (normalize = true) {
|
|
254
|
-
const expression = this.expression.trim()
|
|
255
|
-
.replaceAll('&&', 'and')
|
|
256
|
-
.replaceAll('||', 'or')
|
|
257
|
-
.replace(/and/ig, 'and')
|
|
258
|
-
.replace(/or/ig, 'or')
|
|
259
|
-
if (!expression) return null
|
|
260
|
-
const symbols = expression.split(/(\(|\)|\s)/).filter(p => p.trim())
|
|
261
|
-
|
|
262
|
-
const calc = (tree, symbols) => {
|
|
263
|
-
while (symbols.length) {
|
|
264
|
-
const ele = symbols.shift()
|
|
265
|
-
if (['and', 'or'].includes(ele)) {
|
|
266
|
-
if (tree.type && tree.type !== ele) {
|
|
267
|
-
throw '串联不同逻辑表达式请使用小括号区分'
|
|
268
|
-
}
|
|
269
|
-
tree.type = ele
|
|
270
|
-
} else if (ele === '(') {
|
|
271
|
-
const item = { type: '', items: [] }
|
|
272
|
-
tree.items.push(item)
|
|
273
|
-
item._parent = tree
|
|
274
|
-
calc(item, symbols)
|
|
275
|
-
break
|
|
276
|
-
} else if (ele === ')') {
|
|
277
|
-
calc(tree._parent, symbols)
|
|
278
|
-
delete tree._parent
|
|
279
|
-
} else {
|
|
280
|
-
tree.items.push(ele)
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
const tree = { type: '', items: [] }
|
|
285
|
-
calc(tree, symbols)
|
|
286
|
-
if (normalize) {
|
|
287
|
-
tree.type ||= 'and'
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
return tree
|
|
291
|
-
},
|
|
292
|
-
calcExpression (tree) {
|
|
293
|
-
const calc = (branch) => {
|
|
294
|
-
if (!branch) return ''
|
|
295
|
-
if (typeof branch === 'string') return branch
|
|
296
|
-
const { type, items } = branch
|
|
297
|
-
if (!items.length) return ''
|
|
298
|
-
return '(' + items.map(calc).filter(e => e).join(' ' + type + ' ') + ')'
|
|
299
|
-
}
|
|
300
|
-
let expression = calc(tree).slice(1, -1)
|
|
301
|
-
while (/\(\d+\)/.test(expression)) {
|
|
302
|
-
expression = expression.replace(/\((\d+)\)/g, '$1')
|
|
303
|
-
}
|
|
304
|
-
return expression
|
|
305
|
-
},
|
|
306
|
-
parseCondition (condition) {
|
|
307
|
-
let { item, component, prop, op, value } = condition
|
|
308
|
-
const where = {}
|
|
309
|
-
if (op === 'special') {
|
|
310
|
-
const isNot = value.startsWith('NOT_')
|
|
311
|
-
const isNe = value.startsWith('NE_')
|
|
312
|
-
if (value.includes('NULL')) {
|
|
313
|
-
value = null
|
|
314
|
-
} else if (value.includes('BLANK')) {
|
|
315
|
-
value = ''
|
|
316
|
-
}
|
|
317
|
-
if (isNot) {
|
|
318
|
-
value = { '[Op.not]': value }
|
|
319
|
-
} else if (isNe) {
|
|
320
|
-
value = { '[Op.ne]': value }
|
|
321
|
-
}
|
|
322
|
-
where[prop] = value
|
|
323
|
-
return where
|
|
324
|
-
}
|
|
325
|
-
if (op === 'like' || op === 'notLike') {
|
|
326
|
-
value = '%' + value + '%'
|
|
327
|
-
}
|
|
328
|
-
if (op === 'in' || op === 'notIn') {
|
|
329
|
-
if (!item.options) {
|
|
330
|
-
value = value.split(',')
|
|
331
|
-
if (component === 'ElInputNumber' || component === 'el-input-number' || condition.type === 'number') {
|
|
332
|
-
value = value.map(Number)
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
where[prop] = { [`[Op.${op}]`]: value }
|
|
337
|
-
return where
|
|
338
|
-
},
|
|
339
|
-
checkFilled (condition) {
|
|
340
|
-
if (!condition.prop || !condition.op) {
|
|
341
|
-
return false
|
|
342
|
-
}
|
|
343
|
-
const value = Array.isArray(condition.value) ? condition.value : [condition.value]
|
|
344
|
-
return value.length && value.every(ele => {
|
|
345
|
-
return typeof ele !== 'string' || ele.length
|
|
346
|
-
})
|
|
347
|
-
},
|
|
348
|
-
handleAdd () {
|
|
349
|
-
this.conditions.push({
|
|
350
|
-
no: this.conditionNo ++,
|
|
351
|
-
prop: '',
|
|
352
|
-
op: '',
|
|
353
|
-
value: '',
|
|
354
|
-
component: 'ElInput',
|
|
355
|
-
ops: [],
|
|
356
|
-
item: {}
|
|
357
|
-
})
|
|
358
|
-
},
|
|
359
|
-
handleDelete (index) {
|
|
360
|
-
const no = this.conditions[index].no + ''
|
|
361
|
-
const tree = this.calcTree(false)
|
|
362
|
-
const remove = (branch) => {
|
|
363
|
-
if (!branch) return
|
|
364
|
-
for (let i = branch.items.length - 1; i >= 0; i--) {
|
|
365
|
-
if (branch.items[i] === no) {
|
|
366
|
-
branch.items.splice(i, 1)
|
|
367
|
-
} else if (typeof branch.items[i] === 'object') {
|
|
368
|
-
remove(branch.items[i])
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
remove(tree)
|
|
373
|
-
this.expression = this.calcExpression(tree)
|
|
374
|
-
this.conditions.splice(index, 1)
|
|
375
|
-
},
|
|
376
|
-
handleSelectField (condition, value) {
|
|
377
|
-
condition.value = ''
|
|
378
|
-
condition.prop = value
|
|
379
|
-
condition.item = this.columns.find(col => col.prop === condition.prop) || {}
|
|
380
|
-
const { options, type, formAttrs = {} } = condition.item
|
|
381
|
-
const config = { ...condition.item, ...formAttrs }
|
|
382
|
-
const {
|
|
383
|
-
comp, universal,
|
|
384
|
-
visible, canAdd, canEdit, required, slot, span,
|
|
385
|
-
tableAttrs, formAttrs: fa, tagTypes, tagValues, width, minWidth,
|
|
386
|
-
disabled, readonly,
|
|
387
|
-
...others
|
|
388
|
-
} = config
|
|
389
|
-
others.clearable ??= true
|
|
390
|
-
condition.config = others
|
|
391
|
-
condition.component = comp ||
|
|
392
|
-
options && 'XSelect' ||
|
|
393
|
-
type === 'number' && 'ElInputNumber' ||
|
|
394
|
-
'ElInput'
|
|
395
|
-
condition.ops = COMPONENT_OPS[universal ? 'universal' : condition.component].map(key => OPS[key])
|
|
396
|
-
condition.op = condition.ops[0].value
|
|
397
|
-
if (condition.component === 'ElDatePicker') {
|
|
398
|
-
condition.component = 'ElInput'
|
|
399
|
-
others.type = 'date'
|
|
400
|
-
}
|
|
401
|
-
if (others.type === 'textarea') delete others.type
|
|
402
|
-
},
|
|
403
|
-
handleSelectOp (condition, value) {
|
|
404
|
-
condition.op = value
|
|
405
|
-
if (value === 'between') {
|
|
406
|
-
condition.value = ['', '']
|
|
407
|
-
} else if (['in', 'notIn'].includes(value)) {
|
|
408
|
-
condition.value = []
|
|
409
|
-
}
|
|
410
|
-
if (
|
|
411
|
-
value === 'special'
|
|
412
|
-
|| !['between', 'in', 'notIn'].includes(value) && Array.isArray(value)
|
|
413
|
-
) {
|
|
414
|
-
condition.value = ''
|
|
415
|
-
}
|
|
416
|
-
},
|
|
417
|
-
handleSelectView (name) {
|
|
418
|
-
if (!name) {
|
|
419
|
-
this.handleReset()
|
|
420
|
-
} else {
|
|
421
|
-
const view = this.views.find(v => v.name === name)
|
|
422
|
-
if (!view) {
|
|
423
|
-
this.viewName = ''
|
|
424
|
-
this.handleReset()
|
|
425
|
-
return this.saveCache()
|
|
426
|
-
}
|
|
427
|
-
this.setCurrentView(deepCopy(view))
|
|
428
|
-
}
|
|
429
|
-
},
|
|
430
|
-
async handleSaveView () {
|
|
431
|
-
const view = this.getCurrentView()
|
|
432
|
-
let isSystem = false
|
|
433
|
-
if (this.viewName && this.currentView) {
|
|
434
|
-
isSystem = this.currentView.is_system
|
|
435
|
-
if (!isSystem) {
|
|
436
|
-
Object.assign(this.currentView, view)
|
|
437
|
-
this.saveCache()
|
|
438
|
-
Message.s('视图保存成功')
|
|
439
|
-
return
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
let name = await Prompt({
|
|
443
|
-
title: '提示',
|
|
444
|
-
message: (isSystem ? '系统视图不可修改,可保存为新视图,' : '') + '请输入新视图名称'
|
|
445
|
-
})
|
|
446
|
-
name = name.trim()
|
|
447
|
-
if (!name) return
|
|
448
|
-
if (this.views.some(v => v.name === name)) {
|
|
449
|
-
return Message.w('视图名称 ' + name + ' 已存在,请重新输入')
|
|
450
|
-
}
|
|
451
|
-
this.views.push({ name, ...view })
|
|
452
|
-
this.viewName = name
|
|
453
|
-
this.handleSelectView(name)
|
|
454
|
-
this.saveCache()
|
|
455
|
-
Message.s('视图保存成功')
|
|
456
|
-
},
|
|
457
|
-
async handleDeleteView (view, index, e) {
|
|
458
|
-
e.stopPropagation()
|
|
459
|
-
if (!await Confirm.w({ title: '提示', message: `确定删除查询视图 ${view.name} 吗?` })) return
|
|
460
|
-
if (this.viewName === view.name) {
|
|
461
|
-
this.viewName = ''
|
|
462
|
-
this.handleReset()
|
|
463
|
-
}
|
|
464
|
-
this.views.splice(index, 1)
|
|
465
|
-
this.saveCache()
|
|
466
|
-
Message.s(`视图 [${view.name}] 已删除`)
|
|
467
|
-
},
|
|
468
|
-
handleSearchView (view) {
|
|
469
|
-
this.setCurrentView(view)
|
|
470
|
-
if (!this.handleSearch()) return
|
|
471
|
-
this.$emit('save', { viewName: view.name })
|
|
472
|
-
},
|
|
473
|
-
handleAddSort () {
|
|
474
|
-
this.sorts.push([this.sortableColumns[0].prop, 'asc'])
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
|
-
}
|
|
1
|
+
const a49_0x4afbfe=a49_0x9995;(function(_0x1053c6,_0x3cc8ef){const _0x5edba2=a49_0x9995,_0x3b7212=_0x1053c6();while(!![]){try{const _0x34c82a=-parseInt(_0x5edba2(0x1b5))/0x1*(-parseInt(_0x5edba2(0x1bd))/0x2)+-parseInt(_0x5edba2(0x17a))/0x3*(-parseInt(_0x5edba2(0x1d5))/0x4)+-parseInt(_0x5edba2(0x164))/0x5*(-parseInt(_0x5edba2(0x1ad))/0x6)+parseInt(_0x5edba2(0x190))/0x7*(-parseInt(_0x5edba2(0x1c9))/0x8)+parseInt(_0x5edba2(0x1ac))/0x9+-parseInt(_0x5edba2(0x170))/0xa*(parseInt(_0x5edba2(0x1ae))/0xb)+-parseInt(_0x5edba2(0x1ce))/0xc*(parseInt(_0x5edba2(0x1dd))/0xd);if(_0x34c82a===_0x3cc8ef)break;else _0x3b7212['push'](_0x3b7212['shift']());}catch(_0x13ea7d){_0x3b7212['push'](_0x3b7212['shift']());}}}(a49_0x45c8,0x4b96d));import a49_0x5cbb88,{OPS,COMPONENT_OPS}from'./searcher.jsx';function a49_0x45c8(){const _0xd445a6=['handleReset','map','3QYtwDE','BLANK','calcParams','local','viewName','Settings[','isArray','1.\x20选择视图','handleSelectView','test','8.\x20查询数据','split','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22color:\x20var(--el-color-danger)\x22>视图,是一组查询条件。</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20这里选择下拉框里的某个视图,然后可以利用此视图进行数据查询。<br><br>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20如果还没有自定义的视图,则需要添加。鼠标放到下拉框上,点击下拉框右侧的小叉号,以取消选中当前的默认视图,然后才能去新增条件,并保存为新的视图。<br><br>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22color:\x20var(--el-color-success)\x22>现在,请试着点击下拉框右侧的小叉号。</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','4.\x20选择查询方式','.views-select','save','notLike','init','name','columns','.add-condition','NE_','7qWRloU','el-input-number','splice','slice','item','asc','conditions','replace',']\x20已删除','conditionNo','NULL','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20刚才你已经新增了若干个条件,并且填写了条件表达式。现在可以保存这些条件为视图,这样下次可以直接选择此视图方便地查询数据。<br><br>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22color:\x20var(--el-color-success)\x22>现在,点击“保存当前视图”按钮,并为其填写一个合适的名字。</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','search','2.\x20新增条件','sortableColumns','getJson','条件不存在:\x20','between','prop','ElInputNumber','calcExpression','_parent','shift','notIn','6.\x20组合查询条件','$emit','items','like','2118321IyRaXO','590316pPOBIf','132nGFkCq','sorts','请输入新视图名称','key','setJson','ElDatePicker','calcTree','478742FDsBXi','filter','push','startsWith','parseCondition','config','checkFilled','component','2wpymBq','special','saveCache','setCurrentView','Searcher[','handleSelectField','[Op.','.value-container','.condition-expression','find','textarea','and','1050128UjIXig','virtual','assign','串联不同逻辑表达式请使用小括号区分','forEach','6270288KysvQl','ops','universal','XSelect','desc','replaceAll','object','775672nfXptH','getCurrentView','trim','is_system','ElInput','apply','every','视图保存成功','13HVXDtH','Searcher','length','clearable','value','currentView','.x-select.condition-select','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20这里有所有你需要查看、操作的字段,可以选择其中任意一个。<br><br>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22color:\x20var(--el-color-success)\x22>现在,请试着选择某个字段。</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','NOT_','uid','traditional','15FRwUvY','views','string','visible','视图名称\x20','comp','\x20吗?','系统视图不可修改,可保存为新视图,','7.\x20保存视图','type','确定删除查询视图\x20','includes','199820WRfQuO','order','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20这里可添加任意多个查询条件,每个条件可:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<ol\x20style=\x22list-style:\x20disc;\x20padding-left:\x2013px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<li>选择任意字段</li>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<li>选择任意查询方式</li>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<li>填写任意值,或选择任意选项、时间</li>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</ol>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20然后,任意组合这些查询条件,从而可进行任意查询。<br><br>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22color:\x20var(--el-color-success)\x22>现在,请试着点击\x22新增条件\x22按钮。</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','.x-select.field-select','.searcher.pc-x-drawer\x20.el-drawer__footer\x20.el-button--primary','number','date','条件不完整:\x20'];a49_0x45c8=function(){return _0xd445a6;};return a49_0x45c8();}function a49_0x9995(_0x40f468,_0x49e8a2){const _0x45c8ba=a49_0x45c8();return a49_0x9995=function(_0x9995b5,_0x120e8d){_0x9995b5=_0x9995b5-0x160;let _0x40a890=_0x45c8ba[_0x9995b5];return _0x40a890;},a49_0x9995(_0x40f468,_0x49e8a2);}import{Message,Confirm,Prompt}from'../../utils/index.js';const {storage}=StardustBrowser,{deepCopy}=StardustJs['funcs'];export default{'name':a49_0x4afbfe(0x1de),'props':{'uid':String,'columns':Array,'config':Object},'emits':[a49_0x4afbfe(0x19c),a49_0x4afbfe(0x189)],'data'(){const _0x2efd41=a49_0x4afbfe;return{'visible':![],'activeName':_0x2efd41(0x19c),'sortableColumns':[],'sortOptions':[{'text':'升序','value':_0x2efd41(0x195)},{'text':'降序','value':_0x2efd41(0x1d2)}],'sorts':[],'conditionNo':0x1,'conditions':[],'expression':'','viewName':'','views':[],'tourGuide':{'visible':![],'steps':[{'target':_0x2efd41(0x188),'title':_0x2efd41(0x181),'description':_0x2efd41(0x186)},{'target':_0x2efd41(0x18e),'title':_0x2efd41(0x19d),'description':_0x2efd41(0x172)},{'target':_0x2efd41(0x173),'title':'3.\x20选择字段','description':_0x2efd41(0x160)},{'target':_0x2efd41(0x1e3),'title':_0x2efd41(0x187),'description':'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20这里有所有你需要用到的查询方式,不同的字段类型对应着不同的查询方式,可选择提供的任意一个方式。<br><br>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22color:\x20var(--el-color-success)\x22>现在,请试着选择某个查询方式。</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'},{'target':_0x2efd41(0x1c4),'title':'5.\x20填写值/选择选项、时间','description':'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20这里填写你要查询的关键词,或选择对应的下拉选项,或选择时间。<br><br>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22color:\x20var(--el-color-success)\x22>现在,请试着填写某个关键词,或选择某个选项、时间。</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'},{'target':_0x2efd41(0x1c5),'title':_0x2efd41(0x1a8),'description':'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20鉴于你可以添加多个条件,每个条件可任意组合,且支持数学逻辑中的“与”、“或”关系。<br>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20这里就需要明确表达出你想用哪几个条件来查询,并且这些条件是以什么样的方式来组合。<br>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20示例如下:<br>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<ol\x20style=\x22list-style:\x20disc;\x20padding-left:\x2013px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<li>条件1、条件2、条件3同时成立,表达式为:<span\x20style=\x22color:\x20var(--el-color-warning)\x22>1\x20and\x202\x20and\x203</span></li>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<li>条件1、条件2同时成立,或者条件3成立,表达式为:<span\x20style=\x22color:\x20var(--el-color-warning)\x22>(1\x20and\x202)\x20or\x203</span></li>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<li>条件1、条件2同时成立,或条件2、条件3同时成立,表达式为:<span\x20style=\x22color:\x20var(--el-color-warning)\x22>(1\x20and\x202)\x20or\x20(2\x20and\x203)</span></li>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</ol>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22color:\x20var(--el-color-primary)\x22>你想简单查询,表达式就非常简单。如果你想复杂查询,那么表达式就需要按需填写了。</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<br>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22color:\x20var(--el-color-success)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20现在,请试着填写表达式。如果你刚刚只添加了一个条件,且其序号为1,那么这里的表达式暂时填写\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22color:\x20var(--el-color-warning)\x22>1</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20就好\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'},{'target':'.save-view','title':_0x2efd41(0x16c),'description':_0x2efd41(0x19b)},{'target':_0x2efd41(0x174),'title':_0x2efd41(0x184),'description':'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20现在,上面已经有了查询条件,试着点击“查询”按钮,即可查询数据了。\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'}]}};},'computed':{'key'(){const _0x219ad7=a49_0x4afbfe;return _0x219ad7(0x1c1)+this[_0x219ad7(0x162)]+']';},'currentView'(){const _0x1fc29a=a49_0x4afbfe;return this[_0x1fc29a(0x165)][_0x1fc29a(0x1c6)](_0x5a9c60=>_0x5a9c60[_0x1fc29a(0x18c)]===this[_0x1fc29a(0x17e)]);}},'watch':{'config':a49_0x4afbfe(0x18b)},'created'(){const _0x32d89e=a49_0x4afbfe;this[_0x32d89e(0x18b)]();},'render':a49_0x5cbb88,'methods':{'init'(){const _0x35eeb0=a49_0x4afbfe;let {views:views=[],viewName:_0x47907d,..._0x213427}=this['uid']&&storage['local'][_0x35eeb0(0x19f)](this[_0x35eeb0(0x1b1)],{})||{};this[_0x35eeb0(0x1ba)]['views']&&(this[_0x35eeb0(0x1ba)][_0x35eeb0(0x165)][_0x35eeb0(0x1cd)](_0x1076b6=>_0x1076b6[_0x35eeb0(0x1d8)]=!![]),views=this[_0x35eeb0(0x1ba)][_0x35eeb0(0x165)]['concat'](views));if(views[_0x35eeb0(0x1df)]&&!_0x47907d)_0x47907d=views[0x0][_0x35eeb0(0x18c)];Object[_0x35eeb0(0x1cb)](this,{'views':views,'viewName':_0x47907d});const _0x1cddf7=storage[_0x35eeb0(0x17d)]['getJson'](_0x35eeb0(0x17f)+this[_0x35eeb0(0x162)]+']');if(_0x1cddf7?.[_0x35eeb0(0x17e)])this[_0x35eeb0(0x17e)]=_0x1cddf7[_0x35eeb0(0x17e)];this['sortableColumns']=this[_0x35eeb0(0x18d)][_0x35eeb0(0x1b6)](_0x4cd634=>!_0x4cd634[_0x35eeb0(0x1ca)]),this[_0x35eeb0(0x17e)]?this[_0x35eeb0(0x182)](this['viewName']):this[_0x35eeb0(0x1c0)](this[_0x35eeb0(0x1ba)][_0x35eeb0(0x163)]?this['config']:_0x213427);},'open'(){this['visible']=!![];},'close'(){const _0x4b9104=a49_0x4afbfe;this[_0x4b9104(0x167)]=![];},'getCurrentView'(){const _0x1971a1=a49_0x4afbfe;return{'sorts':this[_0x1971a1(0x1af)],'conditionNo':this[_0x1971a1(0x199)],'conditions':this[_0x1971a1(0x196)][_0x1971a1(0x179)](_0x2f51ad=>{const {item:_0x556029,ops:_0x4bd399,component:_0x51df24,..._0x37043b}=_0x2f51ad;return _0x37043b;}),'expression':this['expression']};},'saveCache'(){const _0x590a91=a49_0x4afbfe,_0x385427={'views':this[_0x590a91(0x165)][_0x590a91(0x1b6)](_0x441def=>!_0x441def[_0x590a91(0x1d8)])};this['viewName']&&this[_0x590a91(0x1e2)]?(_0x385427[_0x590a91(0x17e)]=this[_0x590a91(0x17e)],Object[_0x590a91(0x1cb)](this[_0x590a91(0x1e2)],this[_0x590a91(0x1d6)]())):Object[_0x590a91(0x1cb)](_0x385427,this[_0x590a91(0x1d6)]()),storage['local'][_0x590a91(0x1b2)](this[_0x590a91(0x1b1)],_0x385427);},'setCurrentView'(_0x18d7d4){const _0x5c2878=a49_0x4afbfe;if(!_0x18d7d4)return;_0x18d7d4['conditions']?.['forEach'](_0x1011a0=>{const _0x46387b=a49_0x9995,{prop:_0x2c77af,op:_0x23a688,value:_0x5c8651,universal:_0x929a89}=_0x1011a0;_0x1011a0['item']=this[_0x46387b(0x18d)][_0x46387b(0x1c6)](_0x1bfa9a=>_0x1bfa9a['prop']===_0x2c77af),this[_0x46387b(0x1c2)](_0x1011a0,_0x2c77af),this['handleSelectOp'](_0x1011a0,_0x23a688),_0x1011a0[_0x46387b(0x1e1)]=_0x5c8651;const _0x43d69a=_0x1011a0[_0x46387b(0x194)][_0x46387b(0x169)]||_0x1011a0[_0x46387b(0x1bc)];_0x1011a0[_0x46387b(0x1cf)]=COMPONENT_OPS[_0x929a89?_0x46387b(0x1d0):_0x43d69a][_0x46387b(0x179)](_0x13a729=>OPS[_0x13a729]);}),!_0x18d7d4[_0x5c2878(0x199)]&&_0x18d7d4['conditions']?.['length']&&(_0x18d7d4['conditionNo']=Math['max'][_0x5c2878(0x1da)](null,_0x18d7d4[_0x5c2878(0x196)][_0x5c2878(0x179)](_0x513c23=>_0x513c23['no']))+0x1),this[_0x5c2878(0x17e)]=_0x18d7d4[_0x5c2878(0x18c)],Object[_0x5c2878(0x1cb)](this,_0x18d7d4);},'handleSearch'(){const _0x3eb891=a49_0x4afbfe;let _0x523544=null;try{_0x523544=this[_0x3eb891(0x17c)]();}catch(_0x5a7f7a){return Message['w'](_0x5a7f7a['toString']()),![];}return this['uid']&&_0x523544&&this[_0x3eb891(0x1bf)](),_0x523544=_0x523544||{'where':{}},_0x523544['page']=0x1,this[_0x3eb891(0x1a9)](_0x3eb891(0x19c),_0x523544),this[_0x3eb891(0x167)]=![],!![];},'handleReset'(){const _0x30af9f=a49_0x4afbfe,_0x1b8c1c={'sorts':[],'conditionNo':0x1,'conditions':[],'expression':''};Object[_0x30af9f(0x1cb)](this,_0x1b8c1c),this[_0x30af9f(0x1c0)](_0x1b8c1c);},'calcParams'(){const _0x54c85d=a49_0x4afbfe,_0x341a24=this[_0x54c85d(0x1b4)]();if(!_0x341a24)return;const _0x6af6bd=(_0x39adc9,_0x31eba1)=>{const _0x1f39e8=_0x54c85d,_0x537766=[],_0x1f510e=_0x1f39e8(0x1c3)+_0x39adc9[_0x1f39e8(0x16d)]+']';_0x31eba1[_0x1f510e]=_0x537766;for(let _0x2a39c6 of _0x39adc9[_0x1f39e8(0x1aa)]){if(typeof _0x2a39c6===_0x1f39e8(0x166)){const _0x4db27c=this[_0x1f39e8(0x196)][_0x1f39e8(0x1c6)](_0x5a1b42=>_0x5a1b42['no']===_0x2a39c6*0x1);if(!_0x4db27c)throw _0x1f39e8(0x1a0)+_0x2a39c6;else{if(!this[_0x1f39e8(0x1bb)](_0x4db27c)){if(this['config']['traditional']||this[_0x1f39e8(0x1ba)]['ignoreUnfilled'])continue;throw _0x1f39e8(0x177)+_0x2a39c6;}}_0x537766[_0x1f39e8(0x1b7)](this[_0x1f39e8(0x1b9)](_0x4db27c));}else{const _0x3fb36d={};_0x537766[_0x1f39e8(0x1b7)](_0x3fb36d),_0x6af6bd(_0x2a39c6,_0x3fb36d);}}if(!_0x537766[_0x1f39e8(0x1df)])delete _0x31eba1[_0x1f510e];},_0x38e172={};_0x6af6bd(_0x341a24,_0x38e172);const _0x42e021={'where':_0x38e172};return this['sorts']['length']&&(_0x42e021[_0x54c85d(0x171)]=deepCopy(this['sorts'])),_0x42e021;},'calcTree'(_0x32ca1b=!![]){const _0x303f30=a49_0x4afbfe,_0x4b5371=this['expression'][_0x303f30(0x1d7)]()['replaceAll']('&&',_0x303f30(0x1c8))[_0x303f30(0x1d3)]('||','or')[_0x303f30(0x197)](/and/ig,_0x303f30(0x1c8))[_0x303f30(0x197)](/or/ig,'or');if(!_0x4b5371)return null;const _0x3f7faf=_0x4b5371[_0x303f30(0x185)](/(\(|\)|\s)/)[_0x303f30(0x1b6)](_0x1496e2=>_0x1496e2[_0x303f30(0x1d7)]()),_0x5c9dd5=(_0xa03d71,_0x49ff2f)=>{const _0xe51006=_0x303f30;while(_0x49ff2f[_0xe51006(0x1df)]){const _0x2d329a=_0x49ff2f[_0xe51006(0x1a6)]();if([_0xe51006(0x1c8),'or'][_0xe51006(0x16f)](_0x2d329a)){if(_0xa03d71['type']&&_0xa03d71[_0xe51006(0x16d)]!==_0x2d329a)throw _0xe51006(0x1cc);_0xa03d71[_0xe51006(0x16d)]=_0x2d329a;}else{if(_0x2d329a==='('){const _0x63dd2e={'type':'','items':[]};_0xa03d71[_0xe51006(0x1aa)][_0xe51006(0x1b7)](_0x63dd2e),_0x63dd2e[_0xe51006(0x1a5)]=_0xa03d71,_0x5c9dd5(_0x63dd2e,_0x49ff2f);break;}else _0x2d329a===')'?(_0x5c9dd5(_0xa03d71[_0xe51006(0x1a5)],_0x49ff2f),delete _0xa03d71[_0xe51006(0x1a5)]):_0xa03d71['items']['push'](_0x2d329a);}}},_0x5ec9fb={'type':'','items':[]};return _0x5c9dd5(_0x5ec9fb,_0x3f7faf),_0x32ca1b&&(_0x5ec9fb['type']||=_0x303f30(0x1c8)),_0x5ec9fb;},'calcExpression'(_0x2947b4){const _0x569656=a49_0x4afbfe,_0x1b466c=_0x2bc790=>{const _0x28a8bd=a49_0x9995;if(!_0x2bc790)return'';if(typeof _0x2bc790===_0x28a8bd(0x166))return _0x2bc790;const {type:_0xa84f03,items:_0x226215}=_0x2bc790;if(!_0x226215[_0x28a8bd(0x1df)])return'';return'('+_0x226215[_0x28a8bd(0x179)](_0x1b466c)[_0x28a8bd(0x1b6)](_0x5c8a4b=>_0x5c8a4b)['join']('\x20'+_0xa84f03+'\x20')+')';};let _0xea453a=_0x1b466c(_0x2947b4)[_0x569656(0x193)](0x1,-0x1);while(/\(\d+\)/[_0x569656(0x183)](_0xea453a)){_0xea453a=_0xea453a[_0x569656(0x197)](/\((\d+)\)/g,'$1');}return _0xea453a;},'parseCondition'(_0x39819e){const _0x10f97f=a49_0x4afbfe;let {item:_0x4929b7,component:_0x3dbc9f,prop:_0x357411,op:_0x2963ff,value:_0x27f690}=_0x39819e;const _0x5b8bc1={};if(_0x2963ff===_0x10f97f(0x1be)){const _0x510bd9=_0x27f690[_0x10f97f(0x1b8)](_0x10f97f(0x161)),_0x14dd27=_0x27f690[_0x10f97f(0x1b8)](_0x10f97f(0x18f));if(_0x27f690[_0x10f97f(0x16f)](_0x10f97f(0x19a)))_0x27f690=null;else _0x27f690[_0x10f97f(0x16f)](_0x10f97f(0x17b))&&(_0x27f690='');if(_0x510bd9)_0x27f690={'[Op.not]':_0x27f690};else _0x14dd27&&(_0x27f690={'[Op.ne]':_0x27f690});return _0x5b8bc1[_0x357411]=_0x27f690,_0x5b8bc1;}return(_0x2963ff===_0x10f97f(0x1ab)||_0x2963ff===_0x10f97f(0x18a))&&(_0x27f690='%'+_0x27f690+'%'),(_0x2963ff==='in'||_0x2963ff===_0x10f97f(0x1a7))&&(!_0x4929b7['options']&&(_0x27f690=_0x27f690[_0x10f97f(0x185)](','),(_0x3dbc9f===_0x10f97f(0x1a3)||_0x3dbc9f===_0x10f97f(0x191)||_0x39819e['type']===_0x10f97f(0x175))&&(_0x27f690=_0x27f690['map'](Number)))),_0x5b8bc1[_0x357411]={['[Op.'+_0x2963ff+']']:_0x27f690},_0x5b8bc1;},'checkFilled'(_0x358a30){const _0x4cf02c=a49_0x4afbfe;if(!_0x358a30[_0x4cf02c(0x1a2)]||!_0x358a30['op'])return![];const _0x41768e=Array[_0x4cf02c(0x180)](_0x358a30[_0x4cf02c(0x1e1)])?_0x358a30[_0x4cf02c(0x1e1)]:[_0x358a30['value']];return _0x41768e[_0x4cf02c(0x1df)]&&_0x41768e[_0x4cf02c(0x1db)](_0x54d60f=>{const _0x3c7bb2=_0x4cf02c;return typeof _0x54d60f!==_0x3c7bb2(0x166)||_0x54d60f[_0x3c7bb2(0x1df)];});},'handleAdd'(){const _0x16b302=a49_0x4afbfe;this[_0x16b302(0x196)][_0x16b302(0x1b7)]({'no':this[_0x16b302(0x199)]++,'prop':'','op':'','value':'','component':_0x16b302(0x1d9),'ops':[],'item':{}});},'handleDelete'(_0x2f1bbd){const _0x129b5f=a49_0x4afbfe,_0x4f7dd5=this[_0x129b5f(0x196)][_0x2f1bbd]['no']+'',_0x58d17a=this['calcTree'](![]),_0x1c5938=_0x3fb4d9=>{const _0x5cb01f=_0x129b5f;if(!_0x3fb4d9)return;for(let _0x266b44=_0x3fb4d9[_0x5cb01f(0x1aa)][_0x5cb01f(0x1df)]-0x1;_0x266b44>=0x0;_0x266b44--){if(_0x3fb4d9[_0x5cb01f(0x1aa)][_0x266b44]===_0x4f7dd5)_0x3fb4d9[_0x5cb01f(0x1aa)]['splice'](_0x266b44,0x1);else typeof _0x3fb4d9[_0x5cb01f(0x1aa)][_0x266b44]===_0x5cb01f(0x1d4)&&_0x1c5938(_0x3fb4d9[_0x5cb01f(0x1aa)][_0x266b44]);}};_0x1c5938(_0x58d17a),this['expression']=this[_0x129b5f(0x1a4)](_0x58d17a),this['conditions'][_0x129b5f(0x192)](_0x2f1bbd,0x1);},'handleSelectField'(_0x1fff5f,_0x586879){const _0x381341=a49_0x4afbfe;_0x1fff5f[_0x381341(0x1e1)]='',_0x1fff5f[_0x381341(0x1a2)]=_0x586879,_0x1fff5f[_0x381341(0x194)]=this[_0x381341(0x18d)][_0x381341(0x1c6)](_0x3572f1=>_0x3572f1['prop']===_0x1fff5f[_0x381341(0x1a2)])||{};const {options:_0x5d9bd7,type:_0x365be0,formAttrs:formAttrs={}}=_0x1fff5f[_0x381341(0x194)],_0x3f2674={..._0x1fff5f[_0x381341(0x194)],...formAttrs},{comp:_0x263a03,universal:_0x58b5f6,visible:_0x19a04b,canAdd:_0x1f3ab9,canEdit:_0x10bc17,required:_0x177766,slot:_0x2f4eb7,span:_0x59f0c9,tableAttrs:_0x194a06,formAttrs:_0x264756,tagTypes:_0x118ebb,tagValues:_0x5b2a50,width:_0x2f6e59,minWidth:_0x161cf8,disabled:_0x3e3246,readonly:_0x4d33a3,..._0x2ffa42}=_0x3f2674;_0x2ffa42[_0x381341(0x1e0)]??=!![],_0x1fff5f[_0x381341(0x1ba)]=_0x2ffa42,_0x1fff5f[_0x381341(0x1bc)]=_0x263a03||_0x5d9bd7&&_0x381341(0x1d1)||_0x365be0===_0x381341(0x175)&&_0x381341(0x1a3)||_0x381341(0x1d9),_0x1fff5f[_0x381341(0x1cf)]=COMPONENT_OPS[_0x58b5f6?'universal':_0x1fff5f[_0x381341(0x1bc)]]['map'](_0x368870=>OPS[_0x368870]),_0x1fff5f['op']=_0x1fff5f[_0x381341(0x1cf)][0x0][_0x381341(0x1e1)];_0x1fff5f[_0x381341(0x1bc)]===_0x381341(0x1b3)&&(_0x1fff5f[_0x381341(0x1bc)]='ElInput',_0x2ffa42['type']=_0x381341(0x176));if(_0x2ffa42['type']===_0x381341(0x1c7))delete _0x2ffa42[_0x381341(0x16d)];},'handleSelectOp'(_0xafea97,_0x242435){const _0x115393=a49_0x4afbfe;_0xafea97['op']=_0x242435;if(_0x242435===_0x115393(0x1a1))_0xafea97[_0x115393(0x1e1)]=['',''];else['in',_0x115393(0x1a7)][_0x115393(0x16f)](_0x242435)&&(_0xafea97[_0x115393(0x1e1)]=[]);(_0x242435==='special'||!['between','in',_0x115393(0x1a7)][_0x115393(0x16f)](_0x242435)&&Array['isArray'](_0x242435))&&(_0xafea97[_0x115393(0x1e1)]='');},'handleSelectView'(_0xbdd8ed){const _0x1857f4=a49_0x4afbfe;if(!_0xbdd8ed)this[_0x1857f4(0x178)]();else{const _0x3ca6be=this[_0x1857f4(0x165)][_0x1857f4(0x1c6)](_0x288359=>_0x288359[_0x1857f4(0x18c)]===_0xbdd8ed);if(!_0x3ca6be)return this[_0x1857f4(0x17e)]='',this[_0x1857f4(0x178)](),this[_0x1857f4(0x1bf)]();this[_0x1857f4(0x1c0)](deepCopy(_0x3ca6be));}},async 'handleSaveView'(){const _0x2904d8=a49_0x4afbfe,_0x40ce1f=this[_0x2904d8(0x1d6)]();let _0xd5021c=![];if(this[_0x2904d8(0x17e)]&&this[_0x2904d8(0x1e2)]){_0xd5021c=this[_0x2904d8(0x1e2)][_0x2904d8(0x1d8)];if(!_0xd5021c){Object[_0x2904d8(0x1cb)](this['currentView'],_0x40ce1f),this[_0x2904d8(0x1bf)](),Message['s'](_0x2904d8(0x1dc));return;}}let _0x30b7f7=await Prompt({'title':'提示','message':(_0xd5021c?_0x2904d8(0x16b):'')+_0x2904d8(0x1b0)});_0x30b7f7=_0x30b7f7[_0x2904d8(0x1d7)]();if(!_0x30b7f7)return;if(this[_0x2904d8(0x165)]['some'](_0x3aeecc=>_0x3aeecc[_0x2904d8(0x18c)]===_0x30b7f7))return Message['w'](_0x2904d8(0x168)+_0x30b7f7+'\x20已存在,请重新输入');this[_0x2904d8(0x165)][_0x2904d8(0x1b7)]({'name':_0x30b7f7,..._0x40ce1f}),this[_0x2904d8(0x17e)]=_0x30b7f7,this[_0x2904d8(0x182)](_0x30b7f7),this[_0x2904d8(0x1bf)](),Message['s'](_0x2904d8(0x1dc));},async 'handleDeleteView'(_0x11c974,_0x49ec5b,_0x1a9377){const _0x36d9d2=a49_0x4afbfe;_0x1a9377['stopPropagation']();if(!await Confirm['w']({'title':'提示','message':_0x36d9d2(0x16e)+_0x11c974[_0x36d9d2(0x18c)]+_0x36d9d2(0x16a)}))return;this[_0x36d9d2(0x17e)]===_0x11c974[_0x36d9d2(0x18c)]&&(this[_0x36d9d2(0x17e)]='',this[_0x36d9d2(0x178)]()),this[_0x36d9d2(0x165)]['splice'](_0x49ec5b,0x1),this[_0x36d9d2(0x1bf)](),Message['s']('视图\x20['+_0x11c974[_0x36d9d2(0x18c)]+_0x36d9d2(0x198));},'handleSearchView'(_0x1b69c7){const _0x6faf4b=a49_0x4afbfe;this[_0x6faf4b(0x1c0)](_0x1b69c7);if(!this['handleSearch']())return;this['$emit'](_0x6faf4b(0x189),{'viewName':_0x1b69c7['name']});},'handleAddSort'(){const _0x106802=a49_0x4afbfe;this[_0x106802(0x1af)][_0x106802(0x1b7)]([this[_0x106802(0x19e)][0x0][_0x106802(0x1a2)],_0x106802(0x195)]);}}};
|
|
@@ -1,80 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export default {
|
|
4
|
-
name: 'Settings',
|
|
5
|
-
props: {
|
|
6
|
-
modelValue: Object
|
|
7
|
-
},
|
|
8
|
-
emits: ['update:modelValue', 'reset', 'init', 'save'],
|
|
9
|
-
data () {
|
|
10
|
-
return {
|
|
11
|
-
activeName: 'columns',
|
|
12
|
-
columns: []
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
computed: {
|
|
16
|
-
hideColumns () {
|
|
17
|
-
const value = this.$attrs['hide-settings-columns']
|
|
18
|
-
return value === '' || value === true
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
watch: {
|
|
22
|
-
modelValue: {
|
|
23
|
-
handler (value) {
|
|
24
|
-
this.columns = value.columns.map(col => {
|
|
25
|
-
return {
|
|
26
|
-
...col,
|
|
27
|
-
show: col.show !== false,
|
|
28
|
-
width: col.width || col.minWidth
|
|
29
|
-
}
|
|
30
|
-
})
|
|
31
|
-
},
|
|
32
|
-
immediate: true
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
async mounted () {
|
|
36
|
-
await window.DynamicLibs?.use('Sortable')
|
|
37
|
-
this.initDraggable()
|
|
38
|
-
},
|
|
39
|
-
beforeUnmount () {
|
|
40
|
-
this.sortable?.destroy()
|
|
41
|
-
},
|
|
42
|
-
methods: {
|
|
43
|
-
initDraggable () {
|
|
44
|
-
const dict = {}
|
|
45
|
-
this.columns.forEach(col => dict[col.prop] = col)
|
|
46
|
-
this.sortable = new window.Sortable(this.$refs.colsTable, {
|
|
47
|
-
sort: true,
|
|
48
|
-
draggable: '.row',
|
|
49
|
-
onEnd: (e) => {
|
|
50
|
-
const props = [...e.to.querySelectorAll('.row')].map(e => e.dataset.prop)
|
|
51
|
-
this.columns = props.map(p => dict[p])
|
|
52
|
-
this.update()
|
|
53
|
-
}
|
|
54
|
-
})
|
|
55
|
-
},
|
|
56
|
-
async handleResetColumns () {
|
|
57
|
-
if (!await Confirm.w({ message: '确定重置吗?', title: '警告' })) return
|
|
58
|
-
this.columns = []
|
|
59
|
-
this.update()
|
|
60
|
-
this.$emit('init')
|
|
61
|
-
},
|
|
62
|
-
handleToggle (column) {
|
|
63
|
-
column.show = !column.show
|
|
64
|
-
this.update()
|
|
65
|
-
},
|
|
66
|
-
update () {
|
|
67
|
-
this.columns.forEach(col => {
|
|
68
|
-
col.hide = !col.show
|
|
69
|
-
})
|
|
70
|
-
const modelValue = {
|
|
71
|
-
...this.modelValue,
|
|
72
|
-
columns: this.columns.map(col => {
|
|
73
|
-
const { prop, label, show, hide, width } = col
|
|
74
|
-
return { prop, label, show, hide, width }
|
|
75
|
-
})
|
|
76
|
-
}
|
|
77
|
-
this.$emit('save', modelValue)
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
1
|
+
function a50_0x176d(){const _0x1c01cd=['$emit','map','1092318BKXbUl','3771978cTyaUH','hide','$attrs','init','prop','DynamicLibs','initDraggable','282813WibLSR','8964718waoccL','forEach','show','minWidth','width','622828rmjngK','destroy','sortable','1314284vOsxcq','save','columns','2175495tzlauX','update','update:modelValue','Settings','dataset','modelValue','reset','$refs','Sortable','.row','querySelectorAll','colsTable'];a50_0x176d=function(){return _0x1c01cd;};return a50_0x176d();}const a50_0x2fa3bf=a50_0x4c62;(function(_0x46d843,_0xc07c99){const _0x30c3c7=a50_0x4c62,_0x31b84c=_0x46d843();while(!![]){try{const _0x3ad116=-parseInt(_0x30c3c7(0x70))/0x1+-parseInt(_0x30c3c7(0x76))/0x2+-parseInt(_0x30c3c7(0x68))/0x3+parseInt(_0x30c3c7(0x79))/0x4+parseInt(_0x30c3c7(0x7c))/0x5+-parseInt(_0x30c3c7(0x69))/0x6+parseInt(_0x30c3c7(0x71))/0x7;if(_0x3ad116===_0xc07c99)break;else _0x31b84c['push'](_0x31b84c['shift']());}catch(_0x4ed5d5){_0x31b84c['push'](_0x31b84c['shift']());}}}(a50_0x176d,0x6fa84));function a50_0x4c62(_0x50e2c9,_0x711887){const _0x176dee=a50_0x176d();return a50_0x4c62=function(_0x4c6217,_0x5553a3){_0x4c6217=_0x4c6217-0x68;let _0x5766f8=_0x176dee[_0x4c6217];return _0x5766f8;},a50_0x4c62(_0x50e2c9,_0x711887);}import{Confirm}from'../../utils/message.js';export default{'name':a50_0x2fa3bf(0x7f),'props':{'modelValue':Object},'emits':[a50_0x2fa3bf(0x7e),a50_0x2fa3bf(0x82),a50_0x2fa3bf(0x6c),a50_0x2fa3bf(0x7a)],'data'(){return{'activeName':'columns','columns':[]};},'computed':{'hideColumns'(){const _0x2cd29c=a50_0x2fa3bf,_0x565f1e=this[_0x2cd29c(0x6b)]['hide-settings-columns'];return _0x565f1e===''||_0x565f1e===!![];}},'watch':{'modelValue':{'handler'(_0x2e34a7){const _0x45a877=a50_0x2fa3bf;this[_0x45a877(0x7b)]=_0x2e34a7[_0x45a877(0x7b)][_0x45a877(0x89)](_0x2e631d=>{const _0x25af35=_0x45a877;return{..._0x2e631d,'show':_0x2e631d[_0x25af35(0x73)]!==![],'width':_0x2e631d[_0x25af35(0x75)]||_0x2e631d[_0x25af35(0x74)]};});},'immediate':!![]}},async 'mounted'(){const _0x36636a=a50_0x2fa3bf;await window[_0x36636a(0x6e)]?.['use'](_0x36636a(0x84)),this[_0x36636a(0x6f)]();},'beforeUnmount'(){const _0x2b3070=a50_0x2fa3bf;this[_0x2b3070(0x78)]?.[_0x2b3070(0x77)]();},'methods':{'initDraggable'(){const _0x10d163=a50_0x2fa3bf,_0x4976be={};this[_0x10d163(0x7b)][_0x10d163(0x72)](_0x55860c=>_0x4976be[_0x55860c['prop']]=_0x55860c),this['sortable']=new window[(_0x10d163(0x84))](this[_0x10d163(0x83)][_0x10d163(0x87)],{'sort':!![],'draggable':_0x10d163(0x85),'onEnd':_0x41303d=>{const _0x49cf23=_0x10d163,_0x58e1d0=[..._0x41303d['to'][_0x49cf23(0x86)](_0x49cf23(0x85))][_0x49cf23(0x89)](_0x354959=>_0x354959[_0x49cf23(0x80)][_0x49cf23(0x6d)]);this[_0x49cf23(0x7b)]=_0x58e1d0[_0x49cf23(0x89)](_0x39a1f7=>_0x4976be[_0x39a1f7]),this['update']();}});},async 'handleResetColumns'(){const _0x502797=a50_0x2fa3bf;if(!await Confirm['w']({'message':'确定重置吗?','title':'警告'}))return;this['columns']=[],this[_0x502797(0x7d)](),this[_0x502797(0x88)](_0x502797(0x6c));},'handleToggle'(_0x174691){const _0x3fa27c=a50_0x2fa3bf;_0x174691[_0x3fa27c(0x73)]=!_0x174691[_0x3fa27c(0x73)],this[_0x3fa27c(0x7d)]();},'update'(){const _0x5aa8f4=a50_0x2fa3bf;this[_0x5aa8f4(0x7b)][_0x5aa8f4(0x72)](_0x3e1fd0=>{const _0x6c75ec=_0x5aa8f4;_0x3e1fd0[_0x6c75ec(0x6a)]=!_0x3e1fd0[_0x6c75ec(0x73)];});const _0x4c6b63={...this[_0x5aa8f4(0x81)],'columns':this[_0x5aa8f4(0x7b)][_0x5aa8f4(0x89)](_0x2fbd9a=>{const {prop:_0x3828f0,label:_0x3793e5,show:_0x195ee3,hide:_0x1641d5,width:_0x423a8f}=_0x2fbd9a;return{'prop':_0x3828f0,'label':_0x3793e5,'show':_0x195ee3,'hide':_0x1641d5,'width':_0x423a8f};})};this['$emit'](_0x5aa8f4(0x7a),_0x4c6b63);}}};
|