登录与退出

登录后台

  • 接口说明:登录后台接口
  • 请求URL:/vuecmf/admin/login
  • 请求方式:post
  • 请求参数
参数名必须类型说明
login_namestring登录名称
passwordstring登录密码
  • 请求示例
{
  "data":
  {
    "login_name": "test",
    "password": "123456"
  }
}

  • 返回值(data)

    字段名类型说明
    tokenstring登录token
    usernamestring用户名
    rolestring角色名
    last_login_timestring最后登录时间
    last_login_ipstring最后登录IP
    versionstringVueCMF框架版本号
    osstring服务器系统名称
    softwarestring服务器软件信息
    mysqlstringMySQL版本
    upload_max_sizestring最大上传文件大小
  • 返回示例

{
  "data":
  {
    "token":"ec10da7226d691587726e0b3ebdf0ac2",
    "user":{
      "username":"test",
      "role":"管理员",
      "last_login_time":"2022-04-10 20:58:40",
      "last_login_ip":"192.168.10.100"
    },
    "server":{
      "version":"2.0.0",
      "os":"WINNT",
      "software":"Apache\/2.4.39 (Win64) OpenSSL\/1.1.1b mod_fcgid\/2.3.9a mod_log_rotate\/1.02",
      "mysql":"5.7.26",
      "upload_max_size":"2M"
    }
  },
  "msg":"登录成功!",
  "code":0
}

退出系统

  • 接口说明:退出系统接口
  • 请求URL:/vuecmf/admin/logout
  • 请求方式:post
  • 请求参数
参数名必须类型说明
tokenstring登录token
  • 请求示例
{
  "data":
  {
    "token":"ec10da7226d691587726e0b3ebdf0ac2"
  }
}

  • 返回值

    字段名类型说明
    databoolean结果
    msgstring提示信息
    codenumber状态码
  • 返回示例

{
  "data":true,
  "msg":"登录已退出!",
  "code":0
}

系统管理

请求头信息

  • token: 为登录后返回的授权token信息
  • Content-Type:为传输的数据格式

请求方式

post

后端API映射

  • 接口说明:获取后端API映射列表接口URL
  • 请求URL:/vuecmf/model_action/get_api_map
  • 请求示例
{
  "data":{
    "table_name":"menu",  //菜单表名,必须
    "action_type":"nav"   //动作类型,必须
  }
}
  • 返回示例
{
  "data":"/vuecmf/menu/nav", //后端API映射列表接口URL
  "msg":"拉取Api映射列表成功!",
  "code":0
}

API映射列表和导航菜单

  • 接口说明:获取后端API映射列表和导航菜单数据
  • 请求URL:/vuecmf/menu/nav
  • 请求示例
{
  "data":{
    "username":"vuecmf"   //登录用户名,必须
  }
}
  • 返回示例
{
  "data":{
    //用户拥有权限的后端API列表映射
    "api_maps":{
      //模型名称
      "model_config":{  //模型下的动作, 键 = 动作类型, 值 = 后端API接口地址
        "list":"/vuecmf/model_config",
        "save":"/vuecmf/model_config/save",
        "delete":"/vuecmf/model_config/delete",
        "save_all":"/vuecmf/model_config/save_all"
      },
      ......//此处数据省略
    },
    //导航菜单列表
    "nav_menu":{
      "m7":{  //菜单链接
        "mid":"m7",         //菜单链接
        "id":7,             //菜单ID
        "pid":0,            //父级ID   
        "title":"相册",      //菜单标题
        "icon":"document",  //菜单图标名称
        "model_id":0,       //挂载的模型ID
        "id_path":[         //菜单路径
          "m7"
        ],
        "path_name":[      //菜单路径标题
          "相册"
        ],
        "children":{  //子菜单列表
          "m8":{
            "mid":"m8",         //菜单链接
            "id":8,             //菜单ID   
            "pid":7,            //父级ID  
            "title":"相册分类",   //菜单标题
            "icon":"document",  //菜单标题
            "model_id":14,      //挂载的模型ID
            "id_path":[         //菜单路径
              "m7",
              "m8"
            ],
            "path_name":[       //菜单路径标题
              "相册",
              "相册分类"
            ],
            "table_name":"photo_category",              //模型表名
            "default_action_type":"list",               //进入菜单的默认动作类型
            "component_tpl":"template/content/List",    //菜单挂载的模板
            "search_field_id":"109",                    //列表关键词过滤时,需要筛选的字段ID
            "is_tree":10                                //是否为目录树, 10 = 是, 20 = 否
          },
          ......//此处数据省略
        }
      },
      ......//此处数据省略
    }
  },
  "msg":"拉取成功!",
  "code":0
}

列表

请求URL

  • 应用列表:/vuecmf/app_config
  • 管理员列表:/vuecmf/admin
  • 角色列表:/vuecmf/roles
  • 模型配置列表:/vuecmf/model_config
  • 字段列表:/vuecmf/model_field
  • 字段选项列表:/vuecmf/field_option
  • 字段关联列表:/vuecmf/model_relation
  • 索引列表:/vuecmf/model_index
  • 动作列表:/vuecmf/model_action
  • 表单列表:/vuecmf/model_form
  • 表单验证列表:/vuecmf/model_form_rules
  • 表单联动列表:/vuecmf/model_form_linkage
  • 菜单列表:/vuecmf/menu

获取列表字段信息

  • 请求示例(获取列表字段信息)
{
  "data":{
    "action":"getField", //固定值
    "filter":{
      "model_id": 3   //模型ID, 即是获取哪个模型的列表字段相关信息
    }
  }
}

  • 返回示例
{
  "data":{
    //列字段信息
    "field_info":[
      {
        "field_id":67,      //字段ID
        "prop":"id",        //字段名
        "label":"ID",       //列标题
        "width":100,        //列宽度
        "length":11,        //字段最大长度
        "show":true,        //是否在列表中显示
        "fixed":false,      //是否固定列,即拖动列表的横向滚动条,列固定不动
        "filter":false,     //列头是否显示过滤表单
        "tooltip":"自增ID",  //列标题提示语
        "model_id":8,       //模型ID
        "sortable":true     //列数据是否可排序
      },
      ...... //这里省略
    ],
    //表单信息(新增/编辑表单)
    "form_info":{
      "1":{
        "field_id":68,            //字段ID
        "field_name":"username",  //表单控件的name名称
        "label":"用户名",          //表单的label标签名称
        "type":"text",            //表单控件类型
        "default_value":"",       //表单默认值
        "is_disabled":20,         //表单是否禁用,10=是,20=否
        "sort_num":1              //表单排列顺序,小的排在前面
      },
      ...... //这里省略
    },
    //表单验证
    "form_rules":{
      //键 = 表单控件的name名称, 值 = 表单的验证规则
      "username":[
        {
          "required":true,
          "message":"用户名必填",
          "trigger":"blur"
        },
        {
          "min":4,
          "max":32,
          "message":"用户名长度为4到32个字符",
          "trigger":"blur"
        }
      ],
      ...... //这里省略
    },
    //字段选项
    "field_option":{
      //键 = 字段ID, 值 = 该字段的枚举内容 
      "72":{  
        "10":"是",
        "20":"否"
      },
      ...... //这里省略
    },
    "relation_info":{
      //列表中转换数据用,例如将 状态列中数据 10,20 转换成 是,否
      "full_options": [
        //键 = 列的字段ID, 值 = 该列可转换的内容
        "50":[
              {
                "label":"model_config(模型配置)",  //转换后在列中显示的文本
                "id":1    //对应列数据中的值
              },
              ...... //这里省略
          ],
          ...... //这里省略
      ],
      //表单中使用(如下拉框列表、单选按钮组,复选框组)
      "options":[
        //内容结构同full_options
      ],
      //表单下拉框联动
      "linkage":[
        //键 = 字段ID(表单对应字段ID),  值 = 关联字段信息(即关联表单对应的字段信息)
        "50":{
          "51":{
            "relation_field_id":51,             //关联字段ID
            "action_table_name":"model_field",  //获取关联字段数据对应模型的表名
            "action_type":"dropdown"            //获取关联字段数据对应的 动作名称
            //通过action_table_name和action_type即可调用对应后端获取下拉列表API得到 对应 下拉列表数据 
          }
        },
        ...... //这里省略
      ]
    },
    "model_id":8  //模型ID
  },
  "msg":"拉取成功",  //接口信息提示
  "code":0    //接口状态码
}

获取列表数据信息

  • 请求示例(获取列表数据信息)
{
  "data":{
    "page_size":20,         //每页显示条数
    "order_field":"",       //排序字段名
    "order_sort":"desc",    //排序方式
    "keywords":"",          //搜索关键词
    "filter":{              //列头的过滤表单
        "username": "zhangsan"
    },
    "offset":0,             //偏移量
    "limit":20,             //每页显示条数
    "page":1                //当前页码
  }
}
  • 返回示例
{
  "data":{
    "total":1,            //总条数
    "per_page":20,        //每页显示条数
    "current_page":1,     //当前页码
    "last_page":1,        //最后的页码数(总页数)
    "data":[              //列表数据, 键 = 字段名, 值 = 字段的值
      {
        "id":1,
        "username":"zhangsan",
        "email":"test@test.com",
        "mobile":"18988888888",
        "is_super":20,
        "reg_time":"2022-04-09 22:43:00",
        "reg_ip":"",
        "last_login_time":"2022-04-10 20:58:40",
        "last_login_ip":"::1",
        "update_time":"2022-04-09 22:43:00",
        "token":"ec10da7226d611587726e0b3ebdf0ac2",
        "status":10,
        "roles":[
          "管理员"
        ]
      }
    ]
  },
  "msg":"拉取成功",   //接口信息提示
  "code":0          //接口状态码
}

新增和编辑

保存单条数据

列表中的新增、编辑表单时保存数据的接口

请求URL
  • 保存应用:/vuecmf/app_config/save
  • 保存管理员:/vuecmf/admin/save
  • 保存保存角色:/vuecmf/roles/save
  • 保存模型配置:/vuecmf/model_config/save
  • 保存字段:/vuecmf/model_field/save
  • 保存字段选项:/vuecmf/field_option/save
  • 保存字段关联:/vuecmf/model_relation/save
  • 保存索引:/vuecmf/model_index/save
  • 保存动作:/vuecmf/model_action/save
  • 保存表单:/vuecmf/model_form/save
  • 保存表单验证:/vuecmf/model_form_rules/save
  • 保存表单联动:/vuecmf/model_form_linkage/save
  • 保存菜单:/vuecmf/menu/save
请求示例
{
  "data":{  //需要保存的表单数据, 键 = 字段名, 值 = 字段的值
    "id":15,  //新增时,此id没有,只有编辑时才有
    "table_name":"photo",
    "label":"我的相册",
    "component_tpl":"template/content/List",
    "default_action_id":89,
    "search_field_id":[116],
    "type":20,
    "is_tree":"20",
    "remark":"我的相册",
    "status":"10"
  }
}
返回示例
{
    "data":{ //保存成功的数据, 键 = 字段名, 值 = 字段的值
        "id":15,
        "table_name":"photo",
        "label":"我的相册",
        "component_tpl":"template\/content\/List",
        "default_action_id":89,
        "search_field_id":"116",
        "type":20,
        "is_tree":"20",
        "remark":"我的相册",
        "status":"10"
    },
    "msg":"保存成功",
    "code":0
}

批量保存数据

列表中导入数据的后端API接口

请求URL
  • 导入应用:/vuecmf/app_config/save_all
  • 导入管理员:/vuecmf/admin/save_all
  • 导入角色:/vuecmf/roles/save_all
  • 导入模型配置:/vuecmf/model_config/save_all
  • 导入字段:/vuecmf/model_field/save_all
  • 导入字段选项:/vuecmf/field_option/save_all
  • 导入字段关联:/vuecmf/model_relation/save_all
  • 导入索引:/vuecmf/model_index/save_all
  • 导入动作:/vuecmf/model_action/save_all
  • 导入表单:/vuecmf/model_form/save_all
  • 导入表单验证:/vuecmf/model_form_rules/save_all
  • 导入表单联动:/vuecmf/model_form_linkage/save_all
  • 导入菜单:/vuecmf/menu/save_all
请求示例
{
  //上传内容为JSON字符串
  "data":"[{\"photo_name\":\"批量上传1\",\"photo_url\":\"90dd8611882177d50b67432bd686ec1d.jpg\",\"status\":10},{\"photo_name\":\"批量上传2\",\"photo_url\":\"90dd8611882177d50b67432bd686ec1d.jpg\",\"status\":10},]"
}
返回示例
{
  //上传保存成功的内容
  "data":[
    {
      "photo_name":"批量上传1",
      "photo_url":"90dd8611882177d50b67432bd686ec1d.jpg",
      "status":10,
      "id":"1"
    },
    {
      "photo_name":"批量上传2",
      "photo_url":"90dd8611882177d50b67432bd686ec1d.jpg",
      "status":10,
      "id":"2"
    }
  ],
  "msg":"保存成功", //上传成功提示
  "code":0  //上传成功状态码
}

删除

列表中删除数据的后端API接口

请求URL

  • 删除应用:/vuecmf/app_config/delete
  • 删除管理员:/vuecmf/admin/delete
  • 删除角色:/vuecmf/roles/delete
  • 删除模型配置:/vuecmf/model_config/delete
  • 删除字段:/vuecmf/model_field/delete
  • 删除字段选项:/vuecmf/field_option/delete
  • 删除字段关联:/vuecmf/model_relation/delete
  • 删除索引:/vuecmf/model_index/delete
  • 删除动作:/vuecmf/model_action/delete
  • 删除表单:/vuecmf/model_form/delete
  • 删除表单验证:/vuecmf/model_form_rules/delete
  • 删除表单联动:/vuecmf/model_form_linkage/delete
  • 删除菜单:/vuecmf/menu/delete

请求示例

{
  "data":{
    "id":1  //需要删除的数据id, 若需要删除多个,则传入多个id,用英文逗号分隔的字符串即可
  }
}

返回示例

{
  "data":true,
  "msg":"删除成功",   //成功提示
  "code":0          //成功状态码
}

设置用户

获取待分配用户列表

  • 请求URL:/vuecmf/roles/get_all_users

  • 请求示例 无

  • 返回示例

{
    //待分配用户列表数据
    "data":[
        {
            "key":2,        //用户ID
            "label":"test", //用户名
            "disabled":0    //是否禁止选择, 0 = 否, 1 = 是
        },
        ...... //这里省略
    ],
    "msg":"拉取所有用户成功!",   //拉取成功提示
    "code":0                  //拉取成功状态码
}

获取指定角色下已分配用户列表

  • 请求URL:/vuecmf/roles/get_users
  • 请求示例
{
    "data":{
        "role_name":"管理员",  //角色名称, 必须
        "app_name":"vuecmf"   //应用名称
    }
}
  • 返回示例
{
  //已分配用户ID列表
  "data":[
    2,3
  ],
  "msg":"拉取角色用户成功!",  //拉取成功提示
  "code":0                 //拉取成功状态码
}

保存角色下分配的用户

  • 请求URL:/vuecmf/roles/add_users
  • 请求示例
{
  "data":{
    "role_name":"管理员", //角色名称, 必须
    //分配的用户ID列表, 若传入空列表,则是清除角色下所有用户
    "userid_list":[
      2,
      3
    ],
    "app_name":"vuecmf"  //应用名称
  }
}
  • 返回示例
{
  "data":true,
  "msg":"分配用户成功!", //保存成功提示
  "code":0             //保存成功状态码
}

设置角色

获取待分配角色列表

  • 请求URL:/vuecmf/admin/get_all_roles

  • 请求示例 无

  • 返回示例

{
  "data":[
    {
      "key":1,          //角色ID
      "label":"管理员",  //角色名称
      "disabled":0      //是否禁止选择, 0 = 否, 1 = 是
    },
    ...... //这里省略
  ],
  "msg":"拉取所有角色成功!",   //拉取成功提示
  "code":0                  //拉取成功状态码
}

获取指定用户下已分配角色列表

  • 请求URL:/vuecmf/admin/get_roles
  • 请求示例
{
  "data":{
    "username":"demo",   //用户名称
    "app_name":"vuecmf"  //应用名称
  }
}
  • 返回示例
{
  //已分配角色ID列表
  "data":[
    2,3
  ],
  "msg":"拉取角色成功!",  //拉取成功提示
  "code":0              //拉取成功状态码
}

保存用户下分配的角色

  • 请求URL:/vuecmf/admin/add_role
  • 请求示例
{
  "data":{
    "username":"demo",  //用户名
    //角色ID列表
    "role_id_list":[
      1,2
    ],
    "app_name":"vuecmf"  //应用名称
  }
}
  • 返回示例
{
  "data":true,
  "msg":"添加用户角色成功!", //保存成功提示
  "code":0                //保存成功状态码
}

设置权限

获取所有权限项列表

  • 请求URL:/vuecmf/model_action/get_action_list

  • 请求示例 无

  • 返回示例

{
  "data":{
    //权限项列表
    "模型配置":{  //模型标签, 键 = 模型动作ID, 值 = 模型动作名称
      "1":"模型管理列表",  
      "2":"保存模型",
      "3":"删除模型",
      "4":"批量保存模型"
    },
    ...... //这里省略
  },
  "msg":"拉取所有动作列表成功!",  //拉取成功提示
  "code":0                    //拉取成功状态码
}

获取用户已分配权限项

  • 请求URL:/vuecmf/admin/get_user_permission
  • 请求示例
{
    "data":{
        "username":"demo",  //用户名 
        "app_name":"vuecmf" //应用名
    }
}
  • 返回示例
{
  //已分配的权限项列表
  "data":{
    //模型标签
    "模型配置":[
      //动作ID列表
      "1"
    ],
    ...... //这里省略
  },
  "msg":"拉取用户权限成功!",
  "code":0
}

保存分配给用户的权限项

  • 请求URL:/vuecmf/admin/set_user_permission
  • 请求示例
{
  "data":{
    "username":"demo",   //用户名
    "action_id":"1,5,10" //分配的动作ID列表
  }
}
  • 返回示例
{
  "data":true,
  "msg":"设置用户权限成功!", //保存成功提示
  "code":0                //保存成功状态码
}

获取角色已分配权限项

  • 请求URL:/vuecmf/roles/get_permission
  • 请求示例
{
  "data":{
    "role_name":"管理员",  //角色名称
    "app_name":"vuecmf"   //应用名称
  }
}
  • 返回示例
{
  //已分配的权限项列表
  "data":{
    //模型标签
    "模型配置":[  
      //动作ID列表
      "1"
    ],
    ...... //这里省略
  },
  "msg":"拉取角色权限成功!",
  "code":0
}

保存分配给角色的权限项

  • 请求URL:/vuecmf/roles/add_permission
  • 请求示例
{
  "data":{
    "role_name":"管理员",     //角色名称
    "action_id":"1,5,10,15"  //分配的动作ID列表
  }
}
  • 返回示例
{
  "data":true,
  "msg":"添加角色权限成功!", //保存成功提示
  "code":0                //保存成功状态码
}

下拉列表

表单中下拉框列表数据的后端API接口

获取动作下拉框列表
  • 请求URL:/vuecmf/model_action/dropdown
  • 请求示例
{
  "data":{
    "table_name":"photo_category"  //模型表名
  }
}
  • 返回示例
{
  "data":[
    {
      "label":"相册分类管理列表",  //动作名称
      "id":89   //动作ID
    },
    ...... //这里省略
  ],
  "msg":"拉取成功",
  "code":0
}
获取字段下拉框列表
  • 请求URL:/vuecmf/model_field/dropdown
  • 请求示例
{
  "data":{
    "model_id":14   //模型ID
  }
}
  • 返回示例
{
  "data":[
    {
      "label":"photo_name(相册名称)", //字段名称
      "id":111    //字段ID
    },
    ...... //这里省略
  ],
  "msg":"拉取成功", //拉取成功提示
  "code":0        //拉取成功状态码
}
获取表单下拉框
  • 请求URL:/vuecmf/model_form/dropdown
  • 请求示例
{
  "data":{
    "model_id":14  //模型ID
  }
}
  • 返回示例
{
  "data":{
    "85":{
      "label":"photo_name(相册名称)-文本输入框",  //表单信息
      "id":85   //表单ID
    },
    ...... //这里省略
  },
  "msg":"拉取成功", //拉取成功提示
  "code":0        //拉取成功状态码
}

上传文件

  • 请求URL:/vuecmf/model_form/dropdown
  • 请求示例 formData
field_name: photo_url  //字段名
file: (binary)         //文件二进制流
  • 返回示例
{
  "data":{
    "field_name":"photo_url",   //字段名
    "url":"http://localhost/storage/file/20220416/225d28d72230544e88aaa0ef783c90d6.jpg"  //文件URL
  },
  "msg":"拉取成功", //上传成功提示
  "code":0        //上传成功状态码
}

返回异常示例

{
  "data":[],  
  "msg":"异常:错误的登录名称或密码!请检查是否输入有误。",  //异常信息
  "code":1000                                      //异常状态码         
}
Last Updated:
Contributors: emei8, vuecmf