4、cool-admin搜索和新增的修改


前言

因为搜索功能还没有,新增按钮不太符合我的需求,所以需要修改一下。


一、搜索功能

为了方便,我提前新增了两条数据。可以看到,现在的搜索功能是没有实现的
在这里插入图片描述
只需要在后端代码 src/controller/admin/category.ts 中的@CoolController 里加上以下代码即可实现搜索

  pageQueryOp: {
    keyWordLikeFields: ['name'],
  },

完整代码如下:

@CoolController({
 api: ['add', 'delete', 'update', 'info', 'list', 'page'],
 entity: VideoCategoryEntity,
 pageQueryOp: {
   keyWordLikeFields: ['name'],
 },
})

二、新增功能

可以看到自动生成的新增功能是很简陋的,我想要的是新增时可以根据上级分类的名称来选择,分类等级不需要自己填写,选择了上级分类之后自己就可以计算出来。所以现在我们要到前端页面去改造一下。为了后续测试,我们可以再多增几条数据上去。
在这里插入图片描述
这是现在的数据,我一共添加了12条
在这里插入图片描述
我们可以在前端代码 src/video/view/category.vue中进行修改。
根据官方文档可以很简单进行修改
在这里插入图片描述
因此我们的代码可以修改为

  {
      label: "父节点id,根节点为0",
      prop: "categoryList",
      hook: "number",
      component: {
        name: "el-select",
        options: [],
      },
      required: true,
    }
async onOpen() {
    service.video.category.list().then((res) => {
      Upsert.value?.setOptions(
        "categoryList",
        res.map((e) => {
          return {
            label: e.name || "",
            value: e.id,
          };
        })
      );
    });
  },

完成之后效果为
在这里插入图片描述
仍然不是很理想,我想要的是类似下列效果
在这里插入图片描述
因此我们将代码修改为

<template>
  <cl-crud ref="Crud">
    <cl-row>
      <!-- 刷新按钮 -->
      <cl-refresh-btn />
      <!-- 新增按钮 -->
      <cl-add-btn />
      <!-- 删除按钮 -->
      <cl-multi-delete-btn />
      <cl-flex1 />
      <!-- 关键字搜索 -->
      <cl-search-key />
    </cl-row>

    <cl-row>
      <!-- 数据表格 -->
      <cl-table ref="Table" />
    </cl-row>

    <cl-row>
      <cl-flex1 />
      <!-- 分页控件 -->
      <cl-pagination />
    </cl-row>

    <!-- 新增、编辑 -->
    <cl-upsert ref="Upsert">
      <template #slot-name="{ scope }">
        <el-cascader v-model="value" :options="categoryTree" :props="props" clearable />
      </template>
    </cl-upsert>
  </cl-crud>
</template>

<script lang="ts" name="video-category" setup>
import { ref } from "vue";
import { generateTree } from "../utils";
import { useCrud, useTable, useUpsert } from "@cool-vue/crud";
import { useCool } from "/@/cool";

const { service } = useCool();

const value = ref();
const categoryTree = ref<any>([]);
const props = {
  checkStrictly: true,
};
// cl-upsert
const Upsert = useUpsert({
  items: [
    {
      prop: "parentId",
      label: "上级分类",
      component: {
        name: "slot-name",
        options: [],
      },
    },
    {
      label: "分类名称",
      prop: "name",
      component: { name: "el-input", props: { clearable: true } },
      required: true,
    },
    {
      label: "分类等级",
      prop: "level",
      hook: "number",
      component: { name: "el-input-number" },
      required: true,
    },
    {
      label: "排序号",
      prop: "displayOrder",
      hook: "number",
      component: { name: "el-input-number" },
      required: true,
    },
  ],

  async onOpen() {
    // 设置权限列表
    service.video.category.list().then((res: any) => {
      console.log("res:", res);
      const result = generateTree(res);
      categoryTree.value = result;
    });
  },
});

// cl-table
const Table = useTable({
  columns: [
    { type: "selection" },
    { label: "父节点id,根节点为0", prop: "parentId", minWidth: 140 },
    { label: "分类名称", prop: "name", minWidth: 140 },
    { label: "分类等级", prop: "level", minWidth: 140 },
    { label: "排序号", prop: "displayOrder", minWidth: 140 },
    {
      label: "创建时间",
      prop: "createTime",
      minWidth: 160,
      component: { name: "cl-date-text" },
    },
    {
      label: "更新时间",
      prop: "updateTime",
      minWidth: 160,
      component: { name: "cl-date-text" },
    },
    { type: "op", buttons: ["edit", "delete"] },
  ],
});

// cl-crud
const Crud = useCrud(
  {
    service: service.video.category,
  },
  (app) => {
    app.refresh();
  }
);
</script>

便可实现下列效果
在这里插入图片描述

cool-admin是一个基于Midway.js和Cool-Core的后台管理系统框架。根据引用\[1\],在cool-admin中,可以通过新建控制器来实现接口的测试和调试。控制器可以放在应用端或后台(admin)端,但为了方便浏览器打开接口测试,建议将控制器放在应用端。具体路径为src/modules/member/controller/app/user.ts。 根据引用\[2\],在cool-admin中,可以使用快捷键"con"来一键搭建控制器的结构。在控制器中,可以定义各种自定义接口。同时,cool-admin会自动创建数据库表格,无需手动创建。具体的数据库配置可以在配置文件中进行设置。根据引用\[3\],可以在配置文件中设置数据库的连接信息,包括数据库类型、主机、端口、数据库名称等。在cool-admin中,默认使用的是MySQL数据库,但也可以配置使用MongoDB数据库。 总结起来,cool-admin是一个基于Midway.js和Cool-Core的后台管理系统框架,可以通过新建控制器来实现接口的测试和调试。控制器可以放在应用端或后台端,建议放在应用端以方便浏览器打开接口测试。cool-admin会自动创建数据库表格,无需手动创建。具体的数据库配置可以在配置文件中进行设置,包括数据库类型、主机、端口、数据库名称等。默认情况下,cool-admin使用的是MySQL数据库,但也可以配置使用MongoDB数据库。 #### 引用[.reference_title] - *1* *3* [cool-admin框架后端使用-node版本,配置多数据源](https://blog.csdn.net/u014617119/article/details/126801483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [cool-admin框架使用](https://blog.csdn.net/asd577007722/article/details/115541717)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值