提交 4b439fa9 authored 作者: lihuihui's avatar lihuihui
...@@ -28,6 +28,6 @@ export function delCategory(data: { id: string }) { ...@@ -28,6 +28,6 @@ export function delCategory(data: { id: string }) {
return httpRequest.post('/api/resource/v1/backend/category/delete', data) return httpRequest.post('/api/resource/v1/backend/category/delete', data)
} }
// 移动分类 // 移动分类
export function moveCategory(data: { id: string; brother_id: string; type: 'before' | 'after' }) { export function moveCategory(data: { id: string; brother_id: string; type: string }) {
return httpRequest.post('/api/resource/v1/backend/category/drag', data) return httpRequest.post('/api/resource/v1/backend/category/drag', data)
} }
<script lang="ts" setup> <script lang="ts" setup>
import { createCategory, updateCategory } from '../api' import { createCategory, updateCategory, moveCategory } from '../api'
import { ElMessage } from 'element-plus' import { ElMessage } from 'element-plus'
import { Search } from '@element-plus/icons-vue' import { Search } from '@element-plus/icons-vue'
...@@ -17,8 +17,8 @@ const categoryForm = reactive({ ...@@ -17,8 +17,8 @@ const categoryForm = reactive({
parent_id: '', parent_id: '',
category_name: '', category_name: '',
depth: 1, depth: 1,
status: '0', status: '1',
need_pass: '1' need_pass: '0'
}) })
const rules = reactive<FormRules>({ const rules = reactive<FormRules>({
category_name: [ category_name: [
...@@ -78,13 +78,20 @@ const handleCancel = () => { ...@@ -78,13 +78,20 @@ const handleCancel = () => {
} }
// 确认提交表单 // 确认提交表单
const handleConfirm = () => { const handleConfirm = () => {
console.log(props.isEdit, '00000') console.log(props.isEdit, '00000', categoryForm)
if (props.isEdit) { if (props.isEdit) {
const params = Object.assign({ id: props.editData.id }, categoryForm) const params = Object.assign({ id: props.editData.id }, categoryForm)
updateCategory(params).then(() => { updateCategory(params).then(() => {
ElMessage.success('更新类别成功') ElMessage.success('更新类别成功')
emit('update:dialogVisible', false) moveCategory({
emit('updatePage') id: props.editData.id,
brother_id: categoryForm.parent_id,
type: 'child'
}).then(() => {
ElMessage.success('更新类别成功')
emit('update:dialogVisible', false)
emit('updatePage')
})
}) })
} else { } else {
const params = Object.assign({}, categoryForm) const params = Object.assign({}, categoryForm)
...@@ -100,7 +107,7 @@ onMounted(() => { ...@@ -100,7 +107,7 @@ onMounted(() => {
console.log(props.editData.id, '0000') console.log(props.editData.id, '0000')
categoryForm.depth = parseInt(props.editData?.depth) + 1 || 0 categoryForm.depth = parseInt(props.editData?.depth) + 1 || 0
categoryForm.parent_id = props.editData?.id categoryForm.parent_id = props.editData?.id
categoryName.value = props.prevCategoryName categoryName.value = props.editData.category_name
if (props.isEdit) { if (props.isEdit) {
categoryName.value = props.prevCategoryName categoryName.value = props.prevCategoryName
categoryForm.depth = props.editData.depth categoryForm.depth = props.editData.depth
...@@ -114,10 +121,10 @@ onMounted(() => { ...@@ -114,10 +121,10 @@ onMounted(() => {
<el-dialog :model-value="dialogVisible" draggable :before-close="handleCancel" :title="props.title" width="30%"> <el-dialog :model-value="dialogVisible" draggable :before-close="handleCancel" :title="props.title" width="30%">
<el-form :model="categoryForm" label-position="right" label-width="auto" :rules="rules" ref="formRef"> <el-form :model="categoryForm" label-position="right" label-width="auto" :rules="rules" ref="formRef">
<el-form-item label="上级类别:" prop="parent_id"> <el-form-item label="上级类别:" prop="parent_id">
<div @click="handleOpenTree" style="width: 100%"> <div style="width: 100%">
<el-input v-model="categoryName" disabled> <el-input v-model="categoryName" disabled>
<template #append> <template #append>
<el-button :icon="Search" /> <el-button :icon="Search" @click="handleOpenTree" />
</template> </template>
</el-input> </el-input>
</div> </div>
......
...@@ -91,7 +91,6 @@ onMounted(() => { ...@@ -91,7 +91,6 @@ onMounted(() => {
@node-click="handleNodeClick" @node-click="handleNodeClick"
:filter-node-method="filterNode" :filter-node-method="filterNode"
/> />
<template #footer> <template #footer>
<span> <span>
<el-button @click="handleCancel">取消</el-button> <el-button @click="handleCancel">取消</el-button>
...@@ -100,3 +99,9 @@ onMounted(() => { ...@@ -100,3 +99,9 @@ onMounted(() => {
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
<style lang="scss" scoped>
.filter-tree {
height: 40vh;
overflow: auto;
}
</style>
<script setup lang="ts"> <script setup lang="ts">
import Sortable from 'sortablejs' import Sortable from 'sortablejs'
import type { MoveEvent, SortableEvent } from 'sortablejs' import type { SortableEvent } from 'sortablejs'
import { getCategoryList, delCategory, moveCategory } from '../api' import { getCategoryList, delCategory, moveCategory } from '../api'
import { ElMessage, ElMessageBox } from 'element-plus' import { ElMessage, ElMessageBox } from 'element-plus'
import { checkPermission } from '@/utils/permission' import { checkPermission } from '@/utils/permission'
...@@ -53,11 +53,11 @@ const handleAddRow = (row: ICategory) => { ...@@ -53,11 +53,11 @@ const handleAddRow = (row: ICategory) => {
dialogVisible.value = true dialogVisible.value = true
title.value = '新增类别' title.value = '新增类别'
editData.value = row editData.value = row
if (row.depth > '0') { // if (row.depth > '0') {
prevCategoryName.value = getParent(row.id, tableData[0]).category_name // prevCategoryName.value = getParent(row.id, tableData[0]).category_name
} else { // } else {
prevCategoryName.value = '' // prevCategoryName.value = ''
} // }
} }
// // 外部新增类别 // // 外部新增类别
const handleAddCategory = () => { const handleAddCategory = () => {
...@@ -132,16 +132,16 @@ function useSortable() { ...@@ -132,16 +132,16 @@ function useSortable() {
Sortable.create(el, { Sortable.create(el, {
animation: 300, animation: 300,
onMove(evt: MoveEvent) { // onMove(evt: MoveEvent) {
const dragged = evt.dragged as HTMLTableRowElement // const dragged = evt.dragged as HTMLTableRowElement
const related = evt.related as HTMLTableRowElement // const related = evt.related as HTMLTableRowElement
const draggedRow = tableDataList[dragged.rowIndex] // const draggedRow = tableDataList[dragged.rowIndex]
const relatedRow = tableDataList[related.rowIndex] // const relatedRow = tableDataList[related.rowIndex]
// 禁止跨级拖拽 // 禁止跨级拖拽
if (draggedRow.depth !== relatedRow.depth || draggedRow.pid !== relatedRow.pid) { // if (draggedRow.depth !== relatedRow.depth || draggedRow.pid !== relatedRow.pid) {
return false // return false
} // }
}, // },
onEnd(evt: SortableEvent) { onEnd(evt: SortableEvent) {
const { oldIndex, newIndex } = evt const { oldIndex, newIndex } = evt
if (oldIndex === undefined || newIndex === undefined || oldIndex === newIndex) return if (oldIndex === undefined || newIndex === undefined || oldIndex === newIndex) return
......
...@@ -12,7 +12,7 @@ const form = reactive({ ...@@ -12,7 +12,7 @@ const form = reactive({
key: '', key: '',
status: '1', status: '1',
remark: '', remark: '',
can_edit: '' can_edit: '1'
}) })
const rules = reactive<FormRules>({ const rules = reactive<FormRules>({
name: [{ required: true, message: '请输入字典名称', trigger: 'blur' }], name: [{ required: true, message: '请输入字典名称', trigger: 'blur' }],
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论