🎨 优化文章和分类模块&新增banner
This commit is contained in:
@@ -49,8 +49,8 @@
|
||||
>
|
||||
<el-table-column v-if="props.multiple" type="selection" width="55" />
|
||||
<el-table-column type="index" width="50" />
|
||||
<el-table-column prop="nickName" label="用户名称" />
|
||||
<el-table-column prop="userName" label="用户账号" />
|
||||
<el-table-column prop="nick_name" label="用户名称" />
|
||||
<el-table-column prop="phone" label="手机号" />
|
||||
</el-table>
|
||||
</ColumnItem>
|
||||
<el-pagination
|
||||
@@ -80,7 +80,7 @@
|
||||
import {onMounted, ref, watch, nextTick } from 'vue'
|
||||
import PmDialog from '@/components/PmDialog/pm-dialog.vue'
|
||||
import ColumnItem from '@/components/columnItem/ColumnItem.vue'
|
||||
import { getUserList } from '@/api/user.js'
|
||||
import { getTechers } from '@/api/goods/index.js'
|
||||
// import { listUser } from '@/api/system/user'
|
||||
const treeRef = ref()
|
||||
const props = defineProps({
|
||||
@@ -134,7 +134,7 @@
|
||||
let depClick = ref(false)
|
||||
function getStaffList() {
|
||||
loading.value = true
|
||||
getUserList(queryParams.value)
|
||||
getTechers(queryParams.value)
|
||||
.then(async (res) => {
|
||||
tabList.value = res.data.list
|
||||
total.value = res.data.total
|
||||
@@ -171,44 +171,41 @@
|
||||
// getStaffList()
|
||||
// }
|
||||
function nodeClick(e) {
|
||||
selectDept.value = e
|
||||
if(!props.multiple) {
|
||||
selectDept.value = e
|
||||
}
|
||||
}
|
||||
function handleSelectionChange(selection) {
|
||||
console.log(selection)
|
||||
// 更新选中ID集合
|
||||
selection.forEach((row) => selectedIds.value.add(row.ID))
|
||||
if (props.multiple) {
|
||||
if (!depClick.value) {
|
||||
// This is a user interaction on the current page.
|
||||
const selectedOnPageIds = new Set(selection.map(row => row.ID));
|
||||
|
||||
// 删除当前页取消选中的ID,前提是非点击部门或分页节点触发
|
||||
if (!depClick.value) {
|
||||
// 找出当前页需要删除的ID
|
||||
unChoosed.value = []
|
||||
if (selection.length > 0) {
|
||||
selection = selection.map((item) => item.ID)
|
||||
tabList.value.forEach((item) => {
|
||||
if (!selection.includes(item.ID)) {
|
||||
unChoosed.value.push(item.ID)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
unChoosed.value = JSON.parse(JSON.stringify(tabList.value)).map((item) => item.ID)
|
||||
// Iterate over all items on the current page to see what was selected or unselected.
|
||||
tabList.value.forEach(rowOnPage => {
|
||||
if (selectedOnPageIds.has(rowOnPage.ID)) {
|
||||
selectedIds.value.add(rowOnPage.ID);
|
||||
} else {
|
||||
selectedIds.value.delete(rowOnPage.ID);
|
||||
}
|
||||
});
|
||||
}
|
||||
selectedIds.value.forEach((id) => {
|
||||
if (unChoosed.value.includes(id)) {
|
||||
selectedIds.value.delete(id)
|
||||
}
|
||||
})
|
||||
choosedTableRows.value = Array.from(selectedIds.value)
|
||||
.map((id) => [...tabList.value, ...choosedTableRows.value].find((r) => r.ID === id))
|
||||
.filter(Boolean)
|
||||
}
|
||||
// 更新已选数据(使用过滤确保有效性)
|
||||
choosedTableRows.value = Array.from(selectedIds.value)
|
||||
.map((id) => [...tabList.value, ...choosedTableRows.value].find((r) => r.ID === id))
|
||||
.filter(Boolean)
|
||||
}
|
||||
// function filterNode(value, data) {
|
||||
// if (!value) return true
|
||||
// return data.label.includes(value)
|
||||
// }
|
||||
function requireDiolag() {
|
||||
emit('getRecipientInfo', props.multiple ? choosedTableRows.value : selectDept.value)
|
||||
const dataToEmit = props.multiple ? choosedTableRows.value : selectDept.value;
|
||||
if ((props.multiple && dataToEmit.length === 0) || (!props.multiple && !dataToEmit)) {
|
||||
// Optional: show a message to the user
|
||||
return;
|
||||
}
|
||||
emit('getRecipientInfo', dataToEmit)
|
||||
dialoagVisible.value = false
|
||||
}
|
||||
defineExpose({
|
||||
|
Reference in New Issue
Block a user