<template> <div class="app-container"> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['system:post:add']" >新增</el-button > </el-col> <el-col :span="1.5"> <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate" v-hasPermi="['system:post:edit']" >修改</el-button > </el-col> <el-col :span="1.5"> <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete" v-hasPermi="['system:post:remove']" >删除</el-button > </el-col> </el-row> <el-table v-loading="loading" :data="toolList" row-key="id" default-expand-all @selection-change="handleSelectionChange" > <el-table-column type="selection" width="55" align="center" /> <el-table-column label="分类编号" prop="id" /> <el-table-column label="分类名称" prop="toolName" /> <el-table-column label="描述" prop="describe" /> <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width" > <template #default="scope"> <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:post:edit']" >修改</el-button > <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:post:remove']" >删除</el-button > </template> </el-table-column> </el-table> <!-- 添加或修改岗位对话框 --> <el-dialog :title="title" v-model="open" width="500px" append-to-body> <el-form ref="toolTypesRef" :model="form" :rules="rules" label-width="80px" v-loading="formLoading" > <el-form-item label="分类名称" prop="toolName"> <el-input v-model="form.toolName" placeholder="请输入分类名称" /> </el-form-item> <el-form-item label="所属分类" prop="parentId"> <el-select v-model="form.parentId" placeholder="请选择" clearable style="width: 200px" @change="handleFormTypeChange" > <el-option v-for="dict in levelOneDict" :key="dict.id" :label="dict.label" :value="dict.id" /> </el-select> </el-form-item> <el-form-item label="分类描述" prop="describe"> <el-input v-model="form.describe" type="textarea" placeholder="请输入内容" /> </el-form-item> <el-form-item label="使用手册" prop="manualFileList" v-show="form.parentId" > <FileUpload v-model="form.manualFileList" :fileSize="10" :limit="10" /> </el-form-item> <el-form-item label="附件资料" prop="resourceFileList" v-show="form.parentId" > <FileUpload v-model="form.resourceFileList" :fileSize="10" :limit="10" /> </el-form-item> </el-form> <template #footer> <div class="dialog-footer"> <el-button type="primary" @click="submitForm">确 定</el-button> <el-button @click="cancel">取 消</el-button> </div> </template> </el-dialog> </div> </template> <script setup name="Classification"> import useSubmitForm from "./hooks/useSubmitForm.js"; import useTable from "./hooks/useTable.js"; import { listToolTypes, queryToolDict } from "@/api/bussiness"; /** 查询岗位列表 */ const getList = (params) => { loading.value = true; listToolTypes({ ...params, delFlag: "0", }).then((res) => { toolList.value = res.data; loading.value = false; }); }; const levelOneDict = ref([]); /** 获取一级分类字典 */ const updateTypeOneDict = () => { queryToolDict("1").then((data) => { levelOneDict.value = data; }); }; const { title, open, form, rules, formLoading, handleFormTypeChange, reset, submitForm, cancel, } = useSubmitForm(getList); const { toolList, loading, single, multiple, handleAdd, handleUpdate, handleDelete, handleSelectionChange, } = useTable(getList, updateTypeOneDict, reset, open, title, form, formLoading); getList(); </script>