cool-admin框架使用

10 篇文章 1 订阅

一:创建原型 entity/app/bannertest.ts

快捷键 ent 可一键搭建结构

import { EntityModel } from '@midwayjs/orm';
import { BaseEntity } from 'midwayjs-cool-core';
import { Column } from 'typeorm';

/**
 * 轮播图
 */
 //           要创建的数据库表名
@EntityModel('base_demo_bannertest')
export class bannertestEntity extends BaseEntity {
  //数据库里面的字段
  @Column({ comment: '图片' })
  picture: string;

  @Column({ comment: '标题' })
  title: String;

  @Column({ comment: '链接' })
  link: String
}

二:写api接口 controller/admin/app/bannertest.ts

快捷键 con 可一键搭建结构

import { Provide, Get } from '@midwayjs/decorator';
import { CoolController, BaseController } from 'midwayjs-cool-core';
import { bannertestEntity } from '../../../entity/app/bannerTest';

/**
 * 描述
 */
@Provide()
@CoolController({
  api: ['add', 'delete', 'update', 'info', 'list', 'page'],
  // 加载实体类
  entity: bannertestEntity,
  // 调整默认自带的crud方法的属性
  pageQueryOp: {
    // 让title字段支持模糊查询
    keyWordLikeFields: ['title'],
  }
})
export class bannertestController extends BaseController {
  // 其它自定义接口
  @Get('/other')
  async other() {
    return this.ok('hello, cool-admin!!!');
  }
}

三:数据库会自动创建表格

npm run dev

四:启动前端 创建页面bannertest.vue /view/bannertest.vue

快捷键 cl 一键搭建结构

<template>
    <cl-crud ref="crud" @load="onLoad">
        <el-row type="flex" align="middle">
            <!-- 刷新按钮 -->
            <cl-refresh-btn />
            <!-- 新增按钮 -->
            <cl-add-btn />
            <!-- 删除按钮 -->
            <cl-multi-delete-btn />
            <cl-flex1 />
            <!-- 关键字搜索 -->
            <cl-search-key />
        </el-row>

        <el-row>
            <!-- 数据表格 -->
            <cl-table v-bind="table"></cl-table>
        </el-row>

        <el-row type="flex">
            <cl-flex1 />
            <!-- 分页控件 -->
            <cl-pagination />
        </el-row>

        <!-- 新增、编辑 -->
        <cl-upsert ref="upsert" v-bind="upsert"></cl-upsert>
    </cl-crud>
</template>

<script>
export default {
    data() {
        return {
            // 新增、编辑配置
            upsert: {
                items: []
            },
            // 表格配置
            table: {
                columns: []
            }
        };
    },
    methods: {
        onLoad({ ctx, app }) {
            ctx.service().done();
            app.refresh();
        }
    }
};
</script>

五:添加service请求服务 /service/app/bannertest.js

import { BaseService, Service, Permission } from "cl-admin";

// 默认创建api接口controller的位置就是这个地址  /文件夹/xxx.ts
//不对应就会出现404
//        这要和后台创建的接口地址对应
@Service("base/app/bannertest")
class bannertest extends BaseService {

}

export default bannertest;

六:在service里面的index实例我添加的service请求服务

如果是模块化开发,modules一定要实现这步,要不找不到你定义的接口

// 自定义
import bannertest from "./app/bannertest";

export default {
  // 自定义
  banner: new bannertest()
};

七:在网页.vue中的methods添加接口

methods: {
    onLoad ({ ctx, app }) {
      //console.log(this.$service);
      // 对应的是你  上步中实例化的对象
      ctx.service(this.$service.banner).done();
      app.refresh();
    }
  }

八:设置显示数据 data中

data () {
    return {
      // 新增、编辑配置
      // 弹窗表单
      upsert: {
        items: [
          {
            label: "照片",
            prop: 'picture',
            // element-ui的组件  也有自己框架定义的
            component: {
              name: 'cl-upload',
              props: {
                text: "选择头像",
                icon: "el-icon-picture"
              }
            },
            // 校验
            rules: [
              { required: true, message: '请选择图片', trigger: 'changes' },
            ]
          },
          {
            label: "标题",
            prop: 'title',
            component: {
              name: 'el-input'
            },
            rules: [
              { required: true, message: '请输入标题', trigger: 'blur' },
              { min: 3, max: 20, message: '长度在 3 到 20 个字符', trigger: 'blur' }
            ]
          },
          {
            label: "链接",
            prop: 'link',
            component: {
              name: 'el-input'
            },
            rules: [
              { pattern: '[a-zA-z]+://[^\s]*', message: '请输入正确的链接地址', trigger: 'blur' }
            ]
          }
        ]
      },
      // 表格配置
      table: {
        columns: [
          {
            label: "照片",
            prop: "picture",
          },
          {
            label: "标题",
            prop: "title",
          },
          {
            label: "链接",
            prop: "link",
          }
        ]
      }
    };
  },

九:如果想在表单模块显示自己要的东西可以用template

比如:头像显示 得用显示框显示,不能用div显示链接

// 位置一定要看清 是在表格里template
<cl-table v-bind="table">
        <!-- 头像 -->
        <template #column-picture="{ scope }">
          <cl-avatar shape="square"
                     size="medium"
                     :src="scope.row.picture | default_avatar"
                     :style="{ margin: 'auto' }">
          </cl-avatar>
        </template>
</cl-table>

十:在菜单中追加我定义的页面

在这里插入图片描述在这里插入图片描述

如果需要给它添加权限的话

在这里插入图片描述

比较常用的权限搭配:

查看: page+info
添加: add
删除: delete
修改: update+info

显示列表页面
在这里插入图片描述

点击添加显示的弹窗
在这里插入图片描述

右键表格元素的菜单

在这里插入图片描述

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 ]
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值