n20-common-lib 2.2.6 → 2.2.8
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/package.json +2 -1
- package/src/assets/css/_coreLib.scss +6 -6
- package/src/assets/css/cl-form-item.scss +4 -0
- package/src/assets/css/el-table.scss +16 -0
- package/src/assets/css/element.dev.scss +0 -3
- package/src/assets/css/index.scss +0 -2
- package/src/assets/css/umy-table/u-table.scss +63 -0
- package/src/assets/css/umy-table/u-tree-table.scss +34 -0
- package/src/assets/css/umy-table/ux-grid.scss +111 -0
- package/src/components/ApprovalButtons/index.vue +1 -1
- package/src/components/LoginTemporary/form.vue +9 -4
- package/src/components/Table/filters.js +32 -0
- package/src/components/Table/index.vue +119 -15
- package/src/components/TableOperateColumn/index.vue +6 -2
- package/src/components/UTable/ElxTableFilter.vue +183 -0
- package/src/components/UTable/index.js +115 -0
- package/src/utils/asyncGetRelaNos.js +21 -18
- package/src/utils/relaNo.js +45 -22
- package/src/utils/storageEdit.js +15 -0
- package/src/utils/tableheaderFilterpanel.vue +7 -7
- package/style/index.css +1 -1
- package/style/index.css.map +1 -1
- package/theme/blue.css +1 -1
- package/theme/cctcRed.css +1 -1
- package/theme/green.css +1 -1
- package/theme/lightBlue.css +1 -1
- package/theme/orange.css +1 -1
- package/theme/purple.css +1 -1
- package/theme/red.css +1 -1
- package/theme/yellow.css +1 -1
- package/src/assets/css/alert.scss +0 -28
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
class="elx-table--filter-wrapper filter--prevent-default p-a"
|
|
4
|
+
:class="{
|
|
5
|
+
't--animat': $parent.animat,
|
|
6
|
+
'is--multiple': filterStore.multiple,
|
|
7
|
+
'filter--active': filterStore.visible
|
|
8
|
+
}"
|
|
9
|
+
:style="filterStore.style"
|
|
10
|
+
>
|
|
11
|
+
<slot v-if="filterStore.visible">
|
|
12
|
+
<el-input
|
|
13
|
+
v-model="searchVal"
|
|
14
|
+
class="input-w m-b"
|
|
15
|
+
:placeholder="'请输入' | $lc"
|
|
16
|
+
clearable
|
|
17
|
+
suffix-icon="el-icon-search"
|
|
18
|
+
/>
|
|
19
|
+
<div v-if="filterStore.multiple">
|
|
20
|
+
<div>
|
|
21
|
+
<el-checkbox
|
|
22
|
+
v-model="filterStore.isAllSelected"
|
|
23
|
+
:label="true"
|
|
24
|
+
:indeterminate="indeterminate"
|
|
25
|
+
@change="allCheckFn"
|
|
26
|
+
>{{ '全部' | $lc }}{{ filters | alltextF }}</el-checkbox
|
|
27
|
+
>
|
|
28
|
+
</div>
|
|
29
|
+
<div class="input-w p-b-s" style="max-height: 226px; overflow: auto">
|
|
30
|
+
<template v-for="filter in filters">
|
|
31
|
+
<el-checkbox
|
|
32
|
+
v-if="filter.label.includes(searchVal)"
|
|
33
|
+
:key="filter.value"
|
|
34
|
+
v-model="filter._checked"
|
|
35
|
+
class="m-t-s m-r-0"
|
|
36
|
+
style="display: block"
|
|
37
|
+
@change="(val) => itemCheckFn(val, filter)"
|
|
38
|
+
>
|
|
39
|
+
<span class="align-bottom">{{ filter.label }}</span>
|
|
40
|
+
<span>{{ filter | countF }}</span>
|
|
41
|
+
</el-checkbox>
|
|
42
|
+
</template>
|
|
43
|
+
</div>
|
|
44
|
+
<div class="flex-box flex-c m-t-s">
|
|
45
|
+
<el-button type="primary" size="mini" @click="handleConfirm">
|
|
46
|
+
{{ '确认' | $lc }}
|
|
47
|
+
</el-button>
|
|
48
|
+
<el-button plain size="mini" @click="handleReset">{{ '清空' | $lc }}</el-button>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
<div v-else>
|
|
52
|
+
<ul class="el-table-filter__list">
|
|
53
|
+
<li class="el-table-filter__list-item text-l" @click="allCheckFn">
|
|
54
|
+
{{ '全部' | $lc }}{{ filters | alltextF }}
|
|
55
|
+
</li>
|
|
56
|
+
</ul>
|
|
57
|
+
<ul class="el-table-filter__list" style="max-height: 226px; overflow: auto">
|
|
58
|
+
<template v-for="filter in filters">
|
|
59
|
+
<li
|
|
60
|
+
v-if="filter.label.includes(searchVal)"
|
|
61
|
+
:key="filter.value"
|
|
62
|
+
class="el-table-filter__list-item text-l"
|
|
63
|
+
:class="{ 'is-active': filter._checked }"
|
|
64
|
+
@click="itemCheckFn(!filter._checked, filter)"
|
|
65
|
+
>
|
|
66
|
+
<span class="text-ellipsis align-bottom">{{ filter.label }}</span>
|
|
67
|
+
<span>{{ filter | countF }}</span>
|
|
68
|
+
</li>
|
|
69
|
+
</template>
|
|
70
|
+
</ul>
|
|
71
|
+
</div>
|
|
72
|
+
</slot>
|
|
73
|
+
</div>
|
|
74
|
+
</template>
|
|
75
|
+
|
|
76
|
+
<script>
|
|
77
|
+
// import { $lc } from '../../utils/i18n/index'
|
|
78
|
+
function getCount(item) {
|
|
79
|
+
return item.count || (item.data ? item.data.count : undefined)
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export default {
|
|
83
|
+
name: 'ElxTableFilter',
|
|
84
|
+
filters: {
|
|
85
|
+
countF(item) {
|
|
86
|
+
let N = getCount(item)
|
|
87
|
+
if (N !== undefined) {
|
|
88
|
+
return ' (' + N + ')'
|
|
89
|
+
} else {
|
|
90
|
+
return ''
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
alltextF(list = []) {
|
|
94
|
+
if (list.some((c) => getCount(c) !== undefined)) {
|
|
95
|
+
let total = 0
|
|
96
|
+
list.forEach((c) => {
|
|
97
|
+
total = total + (Number(c) || 0)
|
|
98
|
+
})
|
|
99
|
+
return ' (' + total + ')'
|
|
100
|
+
} else {
|
|
101
|
+
return ''
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
props: {
|
|
106
|
+
filterStore: { type: Object, default: () => ({}) }
|
|
107
|
+
},
|
|
108
|
+
data() {
|
|
109
|
+
return {
|
|
110
|
+
searchVal: ''
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
computed: {
|
|
114
|
+
column() {
|
|
115
|
+
return this.filterStore.column || {}
|
|
116
|
+
},
|
|
117
|
+
filters() {
|
|
118
|
+
return this.filterStore.options
|
|
119
|
+
},
|
|
120
|
+
multiple() {
|
|
121
|
+
return this.filterStore.multiple
|
|
122
|
+
},
|
|
123
|
+
indeterminate() {
|
|
124
|
+
return this.filterStore.isIndeterminate
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
watch: {
|
|
128
|
+
'filterStore.visible': {
|
|
129
|
+
handler(val) {
|
|
130
|
+
if (val) this.searchVal = ''
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
mounted() {},
|
|
135
|
+
methods: {
|
|
136
|
+
allCheckFn(t) {
|
|
137
|
+
if (this.filterStore.multiple) {
|
|
138
|
+
this.filterStore.options.forEach((e) => {
|
|
139
|
+
this.$set(e, '_checked', t)
|
|
140
|
+
this.$set(e, 'checked', t)
|
|
141
|
+
})
|
|
142
|
+
this.$set(this.filterStore, 'isAllSelected', t)
|
|
143
|
+
this.$set(this.filterStore, 'isIndeterminate', false)
|
|
144
|
+
} else {
|
|
145
|
+
this.$parent.resetFilterEvent()
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
itemCheckFn(t, i) {
|
|
149
|
+
if (this.filterStore.multiple) {
|
|
150
|
+
this.$set(i, '_checked', t)
|
|
151
|
+
|
|
152
|
+
this.$parent.checkFilterOptions()
|
|
153
|
+
} else {
|
|
154
|
+
this.filterStore.options.forEach((e) => {
|
|
155
|
+
this.$set(e, '_checked', false)
|
|
156
|
+
this.$set(e, '_checked', false)
|
|
157
|
+
})
|
|
158
|
+
|
|
159
|
+
this.$set(i, '_checked', t)
|
|
160
|
+
this.$set(i, 'checked', t)
|
|
161
|
+
|
|
162
|
+
this.$parent.checkFilterOptions()
|
|
163
|
+
this.$parent.confirmFilterEvent()
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
handleConfirm() {
|
|
167
|
+
let someC = false
|
|
168
|
+
this.filterStore.options.forEach((e) => {
|
|
169
|
+
e.checked = e._checked
|
|
170
|
+
e._checked && (someC = true)
|
|
171
|
+
})
|
|
172
|
+
if (someC) {
|
|
173
|
+
this.$parent.confirmFilterEvent()
|
|
174
|
+
} else {
|
|
175
|
+
this.$parent.resetFilterEvent()
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
handleReset() {
|
|
179
|
+
this.$parent.resetFilterEvent()
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
</script>
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import 'umy-table/lib/theme-chalk/elx-table.css'
|
|
2
|
+
import { UTable, UTableColumn, UxGrid, UxTableColumn } from 'umy-table'
|
|
3
|
+
import ElxTableFilter from './ElxTableFilter.vue'
|
|
4
|
+
|
|
5
|
+
function install(Vue) {
|
|
6
|
+
Vue.component('UTable', UTable)
|
|
7
|
+
Vue.component('UTableColumn', UTableColumn)
|
|
8
|
+
repairUtable(Vue) // 美化
|
|
9
|
+
|
|
10
|
+
Vue.component('UxTable', UxGrid)
|
|
11
|
+
|
|
12
|
+
setPropsDefault(UxTableColumn, { headerAlign: { default: 'center' } })
|
|
13
|
+
const _created = UxTableColumn.created
|
|
14
|
+
UxTableColumn.created = function () {
|
|
15
|
+
_created.call(this, ...arguments)
|
|
16
|
+
this.$watch('filters', () => {
|
|
17
|
+
this.columnConfig.filters = this.filters
|
|
18
|
+
})
|
|
19
|
+
}
|
|
20
|
+
Vue.component('UxTableColumn', UxTableColumn)
|
|
21
|
+
// 自定义筛选
|
|
22
|
+
Vue.component('ElxTableFilter', ElxTableFilter)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export default {
|
|
26
|
+
install
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
//
|
|
30
|
+
//
|
|
31
|
+
//
|
|
32
|
+
//
|
|
33
|
+
//
|
|
34
|
+
//
|
|
35
|
+
//
|
|
36
|
+
//
|
|
37
|
+
//
|
|
38
|
+
//
|
|
39
|
+
//
|
|
40
|
+
//
|
|
41
|
+
//
|
|
42
|
+
//
|
|
43
|
+
//
|
|
44
|
+
//
|
|
45
|
+
//
|
|
46
|
+
//
|
|
47
|
+
//
|
|
48
|
+
//
|
|
49
|
+
//
|
|
50
|
+
// 美化表头搜索
|
|
51
|
+
import FilterPanel from '../../utils/tableheaderFilterpanel.vue'
|
|
52
|
+
function setPropsDefault(component, props) {
|
|
53
|
+
let c_props = component.props
|
|
54
|
+
Object.keys(props).forEach((key) => {
|
|
55
|
+
c_props[key] = Object.assign({}, c_props[key], props[key])
|
|
56
|
+
})
|
|
57
|
+
}
|
|
58
|
+
function setMethodsDefault(component, methods) {
|
|
59
|
+
let c_methods = component.methods
|
|
60
|
+
Object.keys(methods).forEach((key) => {
|
|
61
|
+
c_methods[key] = methods[key]
|
|
62
|
+
})
|
|
63
|
+
}
|
|
64
|
+
function hasClass(el, cls) {
|
|
65
|
+
if (!el || !cls) return false
|
|
66
|
+
if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.')
|
|
67
|
+
if (el.classList) {
|
|
68
|
+
return el.classList.contains(cls)
|
|
69
|
+
} else {
|
|
70
|
+
return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function repairUtable(Vue) {
|
|
75
|
+
setPropsDefault(UTableColumn, {
|
|
76
|
+
filterPlacement: {
|
|
77
|
+
default: 'bottom'
|
|
78
|
+
}
|
|
79
|
+
})
|
|
80
|
+
if (UTable.components.ElTable.components.TableHeader) {
|
|
81
|
+
setMethodsDefault(UTable.components.ElTable.components.TableHeader, {
|
|
82
|
+
handleFilterClick(event, column) {
|
|
83
|
+
event.stopPropagation()
|
|
84
|
+
const target = event.target
|
|
85
|
+
let cell = target.tagName === 'TH' ? target : target.parentNode
|
|
86
|
+
if (hasClass(cell, 'noclick')) return
|
|
87
|
+
cell = cell.querySelector('.el-table__column-filter-trigger') || cell
|
|
88
|
+
const table = this.$parent
|
|
89
|
+
|
|
90
|
+
let filterPanel = this.filterPanels[column.id]
|
|
91
|
+
|
|
92
|
+
if (filterPanel && column.filterOpened) {
|
|
93
|
+
filterPanel.showPopper = false
|
|
94
|
+
return
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
if (!filterPanel) {
|
|
98
|
+
filterPanel = new Vue(FilterPanel)
|
|
99
|
+
this.filterPanels[column.id] = filterPanel
|
|
100
|
+
if (column.filterPlacement) {
|
|
101
|
+
filterPanel.placement = column.filterPlacement
|
|
102
|
+
}
|
|
103
|
+
filterPanel.table = table
|
|
104
|
+
filterPanel.cell = cell
|
|
105
|
+
filterPanel.column = column
|
|
106
|
+
!this.$isServer && filterPanel.$mount(document.createElement('div'))
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
setTimeout(() => {
|
|
110
|
+
filterPanel.showPopper = true
|
|
111
|
+
}, 16)
|
|
112
|
+
}
|
|
113
|
+
})
|
|
114
|
+
}
|
|
115
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import axios from './axios'
|
|
2
|
-
|
|
2
|
+
import { getItem, setItem } from './storageEdit'
|
|
3
3
|
// 按需/按模块 加载权限
|
|
4
4
|
async function asyncGetRelaNos(appNo, rns) {
|
|
5
5
|
let uno = sessionStorage.getItem('userNo')
|
|
@@ -20,27 +20,30 @@ async function asyncGetRelaNos(appNo, rns) {
|
|
|
20
20
|
{ loading: false, noMsg: true }
|
|
21
21
|
)
|
|
22
22
|
|
|
23
|
-
let ssRelaNos = JSON.parse(sessionStorage.getItem('relaNos'))
|
|
24
|
-
let ssCltrelaNos = JSON.parse(sessionStorage.getItem('cltrelaNos'))
|
|
25
|
-
|
|
26
|
-
let relaNos = []
|
|
27
|
-
data.forEach((el) => {
|
|
28
|
-
ssCltrelaNos[el.cltNo] || (ssCltrelaNos[el.cltNo] = [])
|
|
29
|
-
|
|
30
|
-
relaNos.push(...el.relaNos)
|
|
31
|
-
ssCltrelaNos[el.cltNo].push(...el.relaNos)
|
|
32
|
-
})
|
|
33
|
-
relaNos = Array.from(new Set(relaNos))
|
|
23
|
+
let ssRelaNos = getItem('relaNos') // JSON.parse(sessionStorage.getItem('relaNos'))
|
|
24
|
+
let ssCltrelaNos = getItem('cltrelaNos') // JSON.parse(sessionStorage.getItem('cltrelaNos'))
|
|
34
25
|
|
|
35
26
|
let rnObj = ssRelaNos.find((el) => el.appNo === appNo)
|
|
36
|
-
if (rnObj) {
|
|
37
|
-
rnObj
|
|
38
|
-
|
|
39
|
-
ssRelaNos.push({ appNo: appNo || 'null', relaNos: relaNos })
|
|
27
|
+
if (!rnObj) {
|
|
28
|
+
rnObj = { appNo: appNo || 'null', relaNos: [] }
|
|
29
|
+
ssRelaNos.push(rnObj)
|
|
40
30
|
}
|
|
31
|
+
let oRelaNos = []
|
|
32
|
+
data.forEach((el) => {
|
|
33
|
+
if (ssCltrelaNos[el.cltNo]) {
|
|
34
|
+
ssCltrelaNos[el.cltNo].push(...el.relaNos)
|
|
35
|
+
} else {
|
|
36
|
+
ssCltrelaNos[el.cltNo] = el.relaNos
|
|
37
|
+
}
|
|
38
|
+
oRelaNos.push(...el.relaNos)
|
|
39
|
+
})
|
|
40
|
+
oRelaNos = [...new Set(oRelaNos)]
|
|
41
|
+
rnObj.relaNos = oRelaNos
|
|
41
42
|
|
|
42
|
-
sessionStorage.setItem('relaNos', JSON.stringify(ssRelaNos))
|
|
43
|
-
|
|
43
|
+
// sessionStorage.setItem('relaNos', JSON.stringify(ssRelaNos))
|
|
44
|
+
setItem('relaNos', ssRelaNos)
|
|
45
|
+
// sessionStorage.setItem('cltrelaNos', JSON.stringify(ssCltrelaNos))
|
|
46
|
+
setItem('cltrelaNos', ssCltrelaNos)
|
|
44
47
|
}
|
|
45
48
|
|
|
46
49
|
export default asyncGetRelaNos
|
package/src/utils/relaNo.js
CHANGED
|
@@ -1,33 +1,37 @@
|
|
|
1
1
|
import forEachs from './forEachs'
|
|
2
|
+
import { getItem } from './storageEdit'
|
|
2
3
|
|
|
3
4
|
const name = process.env.VUE_APP_RelaAppNo || process.env.VUE_APP_NAME
|
|
4
5
|
|
|
5
|
-
let relaObj =
|
|
6
|
-
|
|
7
|
-
relaNos: []
|
|
8
|
-
}
|
|
6
|
+
let relaObj = undefined
|
|
7
|
+
let cltrelaNos = undefined
|
|
9
8
|
|
|
10
9
|
export function getRela() {
|
|
10
|
+
if (!relaObj) setRela()
|
|
11
|
+
|
|
11
12
|
return relaObj
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
export function setRela() {
|
|
15
|
-
let
|
|
16
|
-
if (
|
|
17
|
-
let relaNos =
|
|
18
|
-
|
|
19
|
-
relaObj,
|
|
20
|
-
relaNos.find((r) => r.appNo === name)
|
|
21
|
-
)
|
|
16
|
+
let _relaNos = getItem('relaNos') // sessionStorage.getItem('relaNos')
|
|
17
|
+
if (_relaNos) {
|
|
18
|
+
let relaNos = _relaNos
|
|
19
|
+
relaObj = relaNos.find((r) => r.appNo === name)
|
|
22
20
|
console.log(relaObj, 'has权限列表')
|
|
23
21
|
|
|
24
|
-
|
|
22
|
+
let relaNosG = []
|
|
23
|
+
for (let i = 0; i < relaNos.length; i++) {
|
|
24
|
+
let item = relaNos[i]
|
|
25
|
+
relaNosG.push(...item.relaNos)
|
|
26
|
+
}
|
|
27
|
+
relaObj.relaNosGlobal = relaNosG
|
|
28
|
+
|
|
25
29
|
return
|
|
26
30
|
}
|
|
27
31
|
/* 兼容旧门户 */
|
|
28
|
-
let
|
|
29
|
-
if (
|
|
30
|
-
let resources =
|
|
32
|
+
let _resources = getItem('resources') // sessionStorage.getItem('resources')
|
|
33
|
+
if (_resources) {
|
|
34
|
+
let resources = _resources
|
|
31
35
|
let relaNos = []
|
|
32
36
|
forEachs(resources, (item) => {
|
|
33
37
|
relaNos.push(item.relaNo)
|
|
@@ -37,13 +41,12 @@ export function setRela() {
|
|
|
37
41
|
}
|
|
38
42
|
}
|
|
39
43
|
|
|
40
|
-
let cltrelaNos = undefined
|
|
41
44
|
export function getCltRela(clt) {
|
|
42
45
|
/* 获取全部单位权限 */
|
|
43
46
|
if (!cltrelaNos) {
|
|
44
|
-
let
|
|
45
|
-
if (
|
|
46
|
-
cltrelaNos =
|
|
47
|
+
let _cltrelaNos = getItem('cltrelaNos') // sessionStorage.getItem('cltrelaNos')
|
|
48
|
+
if (_cltrelaNos) {
|
|
49
|
+
cltrelaNos = _cltrelaNos
|
|
47
50
|
} else {
|
|
48
51
|
cltrelaNos = {}
|
|
49
52
|
}
|
|
@@ -52,14 +55,34 @@ export function getCltRela(clt) {
|
|
|
52
55
|
if (Array.isArray(clt)) {
|
|
53
56
|
let clts = clt
|
|
54
57
|
let cltI = clts[0]
|
|
55
|
-
let cltRela =
|
|
58
|
+
let cltRela = []
|
|
59
|
+
for (let id in cltrelaNos) {
|
|
60
|
+
let ids = id.split(',')
|
|
61
|
+
if (ids.includes(cltI)) {
|
|
62
|
+
cltRela.push(...cltrelaNos[id])
|
|
63
|
+
}
|
|
64
|
+
}
|
|
56
65
|
|
|
57
66
|
for (let i = 1; i < clt.length; i++) {
|
|
58
|
-
|
|
67
|
+
let cltRela2 = []
|
|
68
|
+
for (let id in cltrelaNos) {
|
|
69
|
+
let ids = id.split(',')
|
|
70
|
+
if (ids.includes(clts[i])) {
|
|
71
|
+
cltRela2.push(...cltrelaNos[id])
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
cltRela = aandb(cltRela, cltRela2)
|
|
59
75
|
}
|
|
60
76
|
return cltRela || []
|
|
61
77
|
} else {
|
|
62
|
-
|
|
78
|
+
let cltRela = []
|
|
79
|
+
for (let id in cltrelaNos) {
|
|
80
|
+
let ids = id.split(',')
|
|
81
|
+
if (ids.includes(clt)) {
|
|
82
|
+
cltRela.push(...cltrelaNos[id])
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return cltRela
|
|
63
86
|
}
|
|
64
87
|
}
|
|
65
88
|
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export function setItem(key, obj) {
|
|
2
|
+
window['_keep_' + key] = obj
|
|
3
|
+
setTimeout(function () {
|
|
4
|
+
sessionStorage.setItem(key, JSON.stringify(obj))
|
|
5
|
+
}, 100)
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function getItem(key) {
|
|
9
|
+
let obj = window['_keep_' + key]
|
|
10
|
+
if (!obj) {
|
|
11
|
+
obj = JSON.parse(sessionStorage.getItem(key))
|
|
12
|
+
window['_keep_' + key] = obj
|
|
13
|
+
}
|
|
14
|
+
return obj
|
|
15
|
+
}
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
suffix-icon="el-icon-search"
|
|
15
15
|
/>
|
|
16
16
|
<div>
|
|
17
|
-
<el-checkbox v-model="allCheck" :label="true" :indeterminate="indeterminate"
|
|
18
|
-
filters | alltextF
|
|
19
|
-
|
|
17
|
+
<el-checkbox v-model="allCheck" :label="true" :indeterminate="indeterminate"
|
|
18
|
+
>{{ '全部' | $lc }}{{ filters | alltextF }}</el-checkbox
|
|
19
|
+
>
|
|
20
20
|
</div>
|
|
21
21
|
<el-checkbox-group v-model="filteredValue" class="input-w p-b-s" style="max-height: 226px; overflow: auto">
|
|
22
22
|
<template v-for="filter in filters">
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
}"
|
|
65
65
|
@click="handleSelect(null)"
|
|
66
66
|
>
|
|
67
|
-
{{ filters | alltextF }}
|
|
67
|
+
{{ '全部' | $lc }}{{ filters | alltextF }}
|
|
68
68
|
</li>
|
|
69
69
|
</ul>
|
|
70
70
|
<ul class="el-table-filter__list" style="max-height: 226px; overflow: auto">
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
</template>
|
|
91
91
|
|
|
92
92
|
<script>
|
|
93
|
-
import { $lc } from './i18n/index'
|
|
93
|
+
// import { $lc } from './i18n/index'
|
|
94
94
|
import Popper from 'element-ui/lib/utils/vue-popper.js'
|
|
95
95
|
export default {
|
|
96
96
|
name: 'ElTableFilterPanelPor',
|
|
@@ -110,9 +110,9 @@ export default {
|
|
|
110
110
|
total = total + Number(c.count)
|
|
111
111
|
}
|
|
112
112
|
})
|
|
113
|
-
return
|
|
113
|
+
return ' (' + total + ')'
|
|
114
114
|
} else {
|
|
115
|
-
return
|
|
115
|
+
return ''
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
118
|
},
|