123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- <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>
|