Merge remote-tracking branch 'origin/dev-dictionary' into dev-dictionary

This commit is contained in:
XieYongHong 2023-10-08 16:42:43 +08:00
commit fe31c775f5
1 changed files with 25 additions and 14 deletions

View File

@ -15,7 +15,11 @@
blockNode :selectedKeys="selectedKeys" :default-expanded-keys="['global_role']" blockNode :selectedKeys="selectedKeys" :default-expanded-keys="['global_role']"
:showLine="{ showLeafIcon: false }"> :showLine="{ showLeafIcon: false }">
<template #title="item"> <template #title="item">
<div class="treeItem" @click="() => selectGroup(item.data.id)" v-if="!item.data?.edit"> <div v-if="selectId === item.data.id">
<j-input v-model:value="addName" @blur="() => saveGroup(item.data)" ref="inputRef"
:maxlength="64"></j-input>
</div>
<div class="treeItem" @click="() => selectGroup(item.data.id)" v-else>
<template v-if="!item?.children"> <template v-if="!item?.children">
<div class="itemText"> <div class="itemText">
<Ellipsis style="width: calc(100%-100px)">{{ item.name }}</Ellipsis> <Ellipsis style="width: calc(100%-100px)">{{ item.name }}</Ellipsis>
@ -36,11 +40,7 @@
<template v-else> <template v-else>
<Ellipsis style="width: calc(100%-100px)">{{ item.name }}</Ellipsis> <Ellipsis style="width: calc(100%-100px)">{{ item.name }}</Ellipsis>
</template> </template>
</div> </div>
<div v-else>
<j-input v-model:value="addName" @blur="() => saveGroup(item.data)" ref="inputRef"
:maxlength="64"></j-input>
</div>
</template> </template>
</j-tree> </j-tree>
<j-empty v-else style="margin-top: 100px;" /> <j-empty v-else style="margin-top: 100px;" />
@ -69,6 +69,7 @@ const selectedKeys = ref<string[]>(['global_role'])
const searchValue = ref() const searchValue = ref()
const inputRef = ref() const inputRef = ref()
const addName = ref() const addName = ref()
const selectId = ref()
const addStatus = ref(false) // const addStatus = ref(false) //
const queryGroup = async (select?: Boolean, searchName?: string) => { const queryGroup = async (select?: Boolean, searchName?: string) => {
const params = searchName ? { sorts: [{ name: 'createTime', order: 'desc' }], terms: [{ terms: [{ value: '%' + searchName + '%', termType: 'like', column: 'name' }] }] } : { sorts: [{ name: 'createTime', order: 'desc' }] } const params = searchName ? { sorts: [{ name: 'createTime', order: 'desc' }], terms: [{ terms: [{ value: '%' + searchName + '%', termType: 'like', column: 'name' }] }] } : { sorts: [{ name: 'createTime', order: 'desc' }] }
@ -82,11 +83,12 @@ const queryGroup = async (select?: Boolean, searchName?: string) => {
} }
const addGroup = () => { const addGroup = () => {
addName.value = '' addName.value = ''
const newId = randomString()
listData.value[0].children.unshift({ listData.value[0].children.unshift({
name: '', name: '',
edit: true, id: newId
id: randomString()
}) })
selectId.value = newId
nextTick(() => { nextTick(() => {
inputRef.value.focus() inputRef.value.focus()
}) })
@ -107,7 +109,9 @@ const saveGroup = async (data: any) => {
onlyMessage('操作失败!') onlyMessage('操作失败!')
} }
} }
addStatus.value = false setTimeout(()=>{
selectId.value = ''
},300)
} }
const search = () => { const search = () => {
queryGroup(true, searchValue.value) queryGroup(true, searchValue.value)
@ -132,12 +136,19 @@ const deleteGroup = async (id: string) => {
} }
} }
const editGroup = (data: any) => { const editGroup = (data: any) => {
addName.value = data.name if(!selectId.value){
listData.value[0].children.forEach((item: any) => { selectId.value = data.id
if (item.id === data.id) { addName.value = data.name
item.edit = true listData.value[0].children.forEach((item: any) => {
if (item.id === data.id) {
item.edit = true
}
})
nextTick(() => {
inputRef.value.focus()
})
} }
})
} }
onMounted(() => { onMounted(() => {
queryGroup(true) queryGroup(true)