mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-12 02:45:49 +02:00
fix: bug fix
This commit is contained in:
parent
5e89860068
commit
20daf836e9
4 changed files with 55 additions and 15 deletions
|
@ -152,7 +152,7 @@ function edit(id: any) {
|
||||||
<a-modal
|
<a-modal
|
||||||
class="std-curd-edit-modal"
|
class="std-curd-edit-modal"
|
||||||
:mask="false"
|
:mask="false"
|
||||||
:title="data.id ? $gettext('Modify') : $gettext('Add')"
|
:title="edit_text?edit_text:(data.id ? $gettext('Modify') : $gettext('Add'))"
|
||||||
:visible="visible"
|
:visible="visible"
|
||||||
:cancel-text="$gettext('Cancel')"
|
:cancel-text="$gettext('Cancel')"
|
||||||
:ok-text="$gettext('OK')"
|
:ok-text="$gettext('OK')"
|
||||||
|
@ -161,17 +161,24 @@ function edit(id: any) {
|
||||||
:width="modalWidth"
|
:width="modalWidth"
|
||||||
destroyOnClose
|
destroyOnClose
|
||||||
>
|
>
|
||||||
|
<div class="before-edit" v-if="$slots.beforeEdit">
|
||||||
|
<slot name="beforeEdit" :data="data"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
<std-data-entry
|
<std-data-entry
|
||||||
ref="std_data_entry"
|
ref="std_data_entry"
|
||||||
:data-list="editableColumns()"
|
:data-list="editableColumns()"
|
||||||
v-model:data-source="data"
|
v-model:data-source="data"
|
||||||
:error="error"
|
:error="error"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<slot name="edit" :data="data"/>
|
<slot name="edit" :data="data"/>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
.before-edit {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -70,8 +70,7 @@ const props = defineProps({
|
||||||
},
|
},
|
||||||
size: String,
|
size: String,
|
||||||
selectedRowKeys: {
|
selectedRowKeys: {
|
||||||
type: Array,
|
type: Array
|
||||||
default: []
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -89,11 +88,14 @@ const params = reactive({
|
||||||
...props.get_params
|
...props.get_params
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const selectedKeysLocalBuffer: any = ref([])
|
||||||
|
|
||||||
const selectedRowKeysBuffer = computed({
|
const selectedRowKeysBuffer = computed({
|
||||||
get() {
|
get() {
|
||||||
return props?.selectedRowKeys ?? []
|
return props.selectedRowKeys || selectedKeysLocalBuffer.value
|
||||||
},
|
},
|
||||||
set(v) {
|
set(v) {
|
||||||
|
selectedKeysLocalBuffer.value = v
|
||||||
emit('update:selectedRowKeys', v)
|
emit('update:selectedRowKeys', v)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -182,13 +184,23 @@ function checked(c: any) {
|
||||||
params[c.target.value] = c.target.checked
|
params[c.target.value] = c.target.checked
|
||||||
}
|
}
|
||||||
|
|
||||||
function onSelectChange(_selectedRowKeys: any) {
|
const crossPageSelect: any = {}
|
||||||
const n: any = [..._selectedRowKeys]
|
|
||||||
const t = [...selectedRowKeysBuffer.value].concat(n)
|
|
||||||
|
|
||||||
|
async function onSelectChange(_selectedRowKeys: any) {
|
||||||
|
|
||||||
|
const page = params.page || 1
|
||||||
|
|
||||||
|
crossPageSelect[page] = await _selectedRowKeys
|
||||||
|
|
||||||
|
let t: any = []
|
||||||
|
Object.keys(crossPageSelect).forEach(v => {
|
||||||
|
t.push(...crossPageSelect[v])
|
||||||
|
})
|
||||||
|
const n: any = [..._selectedRowKeys]
|
||||||
|
t = await t.concat(n)
|
||||||
|
// console.log(crossPageSelect)
|
||||||
const set = new Set(t)
|
const set = new Set(t)
|
||||||
selectedRowKeysBuffer.value = Array.from(set)
|
selectedRowKeysBuffer.value = Array.from(set)
|
||||||
|
|
||||||
emit('onSelected', selectedRowKeysBuffer.value)
|
emit('onSelected', selectedRowKeysBuffer.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -212,14 +224,16 @@ const reset_search = async () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(params, () => {
|
watch(params, () => {
|
||||||
router.push({query: params})
|
if (!props.disable_query_params) {
|
||||||
|
router.push({query: params})
|
||||||
|
}
|
||||||
get_list()
|
get_list()
|
||||||
})
|
})
|
||||||
|
|
||||||
const rowSelection = computed(() => {
|
const rowSelection = computed(() => {
|
||||||
if (props.selectionType) {
|
if (props.selectionType) {
|
||||||
return {
|
return {
|
||||||
selectedRowKeys: selectedRowKeysBuffer, onChange: onSelectChange,
|
selectedRowKeys: selectedRowKeysBuffer.value, onChange: onSelectChange,
|
||||||
onSelect: onSelect, type: props.selectionType
|
onSelect: onSelect, type: props.selectionType
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -307,7 +321,7 @@ async function export_csv() {
|
||||||
<template>
|
<template>
|
||||||
<div class="std-table">
|
<div class="std-table">
|
||||||
<std-data-entry
|
<std-data-entry
|
||||||
v-if="!disable_search"
|
v-if="!disable_search && searchColumns.length"
|
||||||
:data-list="searchColumns"
|
:data-list="searchColumns"
|
||||||
v-model:data-source="params"
|
v-model:data-source="params"
|
||||||
layout="inline"
|
layout="inline"
|
||||||
|
|
|
@ -73,7 +73,7 @@ watch(props, () => {
|
||||||
:mask="false"
|
:mask="false"
|
||||||
:visible="visible"
|
:visible="visible"
|
||||||
:cancel-text="$gettext('Cancel')"
|
:cancel-text="$gettext('Cancel')"
|
||||||
:ok-text="$gettext('Ok')"
|
:ok-text="$gettext('OK')"
|
||||||
:title="$gettext('Selector')"
|
:title="$gettext('Selector')"
|
||||||
@cancel="visible=false"
|
@cancel="visible=false"
|
||||||
@ok="ok()"
|
@ok="ok()"
|
||||||
|
@ -102,7 +102,7 @@ watch(props, () => {
|
||||||
.std-selector-container {
|
.std-selector-container {
|
||||||
height: 39.9px;
|
height: 39.9px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: flex-start;
|
||||||
|
|
||||||
.std-selector {
|
.std-selector {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
|
|
@ -22,8 +22,27 @@ interface IEdit {
|
||||||
generate: boolean
|
generate: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function fn(obj: Object, desc: any) {
|
||||||
|
let arr: string[]
|
||||||
|
if (typeof desc === 'string') {
|
||||||
|
arr = desc.split('.')
|
||||||
|
} else {
|
||||||
|
arr = [...desc]
|
||||||
|
}
|
||||||
|
|
||||||
|
while (arr.length) {
|
||||||
|
// @ts-ignore
|
||||||
|
const top = obj[arr.shift()]
|
||||||
|
if (top === undefined) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
obj = top
|
||||||
|
}
|
||||||
|
return obj
|
||||||
|
}
|
||||||
|
|
||||||
function readonly(edit: IEdit, dataSource: any, dataIndex: any) {
|
function readonly(edit: IEdit, dataSource: any, dataIndex: any) {
|
||||||
return h('p', dataSource[dataIndex])
|
return h('p', fn(dataSource, dataIndex))
|
||||||
}
|
}
|
||||||
|
|
||||||
function input(edit: IEdit, dataSource: any, dataIndex: any) {
|
function input(edit: IEdit, dataSource: any, dataIndex: any) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue