京采云+layUI快速上手
孙强 2021/12/8 vue
# 快速上手
# 一,权限控制
# 1,动态菜单配置
- 后端往数据库添加菜单
- 创建html文件,找到java目录下对应的web文件。CV大法,改成自己的路径,就OK了


# 2,静态菜单配置
- 这里配置的一些不需要权限的页面,比如详情之类的。
- 这框架不对静态菜单的url进行拦截,它拦截的是按钮的权限。
- main.js下 regButtonRouter 函数,按它的这个配置。然后也是去java文件添加,同上。
# 3,按钮权限控制
<button perm-show="authenticate:approval">审核</button>
perm-show --- 属性值进行比对,不存在的话就删除,具体源码我也没看
authenticate:approval --- 这值从接口取的,可以看localstorage存的字段
{
htmlCode: "authenticate:approval"
name: "审核"
url: "#/platform-view/user/update-role"
}
# 二,实战增删改查
# 1,接口调用
- module文件下admin.js ,是对请求的一些封装。这里贴几个常用的,使用的话直接复制就行了
admin.req(url, params, function (res) {
/**
* Content-Type: application/x-www-form-urlencoded
*
* url 请求地址
* params 请求参数
* method 请求方法
*/
}, method)
admin.reqContentTypeJson(url, JSON.stringify(params), function (res) {
/**
* Content-Type: application/json
* 注意此时的params要转换成JSON
*/
}, method)
- 服务地址
config.js文件
- getBaseUrl函数,请求地址,可更改为指定后端的ip。
- config对象下是各个服务的地址名,在相应的js文件下引入config模板,就可以使用了
# 2,模板引擎
动态渲染数据
1.append插入html标签
2.模板引擎渲染
// 方式一
admin.req(url, params, function ({ data }) {
for (var i = 0; i < data.length; i++) {
$("#supplierId").append("<option value=" + data.id + ">" + data.name + "</option>");
}
form.render()
}, 'GET')
// 方式二
laytpl($("#performanceInfoForm").html()).render(data, function (content) {
$("#contentID").append(content)
})
页面中就可以直接用了
<div class="layui-form-item">
<label class="layui-form-label">供应商名称:</label>
<div class="layui-input-block">{{ d.name || '' }}</div>
</div>
v-if的使用
{{# if(d.status=='0' && d.parentStatus !=1 ){ }}
<input type="radio" name="status" value="1" title="是" disabled>
<input type="radio" name="status" value="0" title="否" checked>
{{# } else if(d.status=='0' && d.parentStatus ==1){ }}
<input type="radio" name="status" value="1" title="是">
<input type="radio" name="status" value="0" title="否" checked>
{{# }else{ }}
<input type="radio" name="status" value="1" title="是" checked>
<input type="radio" name="status" value="0" title="否" >
{{# } }}
v-for的使用
{{# layui.each(d.checkCityList, function(index, item){ }}
<input type="checkbox" title="{{ item.name }}" value="{{ item.code }}">
{{# }); }}
本地数据读取
var data = layui.data('jdcloud') // 读取
layui.data('xxx', {}) // 设置
# 3,列表渲染
表格的url需要手动拼接默认路径
table.render
elem: '#middleListManage'
, text: { none: '当前暂无数据' }
, headers: config.getHeaderObj()
, url: config.base_server + config.platform_server + '/platform/supplierbrand/querySupplierBrandPage'
, where: params
, request: { pageName: 'pageNum', limitName: 'pageSize' }
, parseData(res) {
return {
"code": res.code, //解析接口状态
"msg": res.msg, //解析提示文本
"count": res.data?.totalCount, //解析数据长度
"data": res.data?.result //解析数据列表
};
}
, cols: [
[
{ field: 'supplierName', title: '供应商名称', align: 'center', width: 300 },
{ field: 'supplierCategory', title: '类别', align: 'center', width: 300 },
{ field: 'brandName', title: '品牌名称', align: 'center' },
{ fixed: 'right', title: '操作', toolbar: '#middleBtns', align: 'center', width: 100 }
]
]
, page: true
})
# 4,表单校验与提交
<form class="layui-form base-info-form">
<div class="layui-form-item">
<div class="layui-form-label"><i class="sign">*</i>物资采购清单名称:</div>
<div class="layui-input-inline">
<input type="text" name="contractName" maxlength="50" lay-verify="required" placeholder="请输入物资采购清单名称" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-form-label"><i class="sign">*</i>服务费比例:</div>
<div class="layui-input-inline">
<input type="text" name="serviceRatio" lay-verify="required|serviceRatio" autocomplete="off" placeholder="请输入服务费 比例" autocomplete="off" class="layui-input">
</div>
</div>
<div style="text-align:center;margin-top:50px;">
<button type="button" lay-submit lay-filter="addSubmit" class="layui-btn lay-btn-margin">提交</button>
</div>
</form>
/**
* form标签嵌套,注意加上类名,格式按照上述。
* 提交按钮 需要嵌套在form表单里,在该标签加上lay-submit,lay-filter的值可自定义,用于form事件的监听
* 需要检验的表单,可在该标签加上 lay-verify="required", (required代表必填项,如果需要多个可以用 | 来校验。layui自带默认校验方式,不满足的话,可自 定义检验方式,具体看官网)
*
*/
/**
* 自定义校验规则,eg
* form.verify({
serviceRatio: [
/^([1-9][\d]{0,7}|0)(\.[\d]{1,2})?$/
, '服务费比例可输入8位数,小数可输入2位小数'
]
})
*
*/
/**
* 表单提交,eg
* form.on('submit(addSubmit)', data => {
return false
})
*
* submit会自动校验每一项是否符合lay-verify设置的规则,不满足则return
* addSubmit为lay-filter的值
* 回调中的data可以打印看一下,里面的field为表单每一项的name对应的值。
*
*/
# 5,dom操作
详见jquery语法教程,使用jquery操作dom组件 (opens new window)
# 6,路由操作与参数
layui.index.openNewTab({
name: "供应商查询详情",
url: "#/platform-view/user/supplier-search-detail/id=" + data.id
});
页面跳转方法,这参数大家都看的懂,跟vue的router也没啥区别,注意参数携带是按/划分的
------------------------------------------
获取url信息:
var router = layui.router()
好了,打印看下吧,啥都有
# 三,交互提示
# 1,loading
全局loading方法: showloading(true) true开启,false关闭
# 2,confirm
layer.confirm(`xxxxx`, function (index) {
// 传统确认框,默认两个按钮,点确认进入该回调,自定义逻辑
})
layer.confirm(`xxxxxx`, {btn: ['同意', '拒绝']}, function (index) {
/**
* btn: 自定义按钮,可配置多个
* 按配置的顺序,下面的回调一一对应你按钮的事件
*
*/
}, function (index) {
})
# 3,toast
layer.msg('xxxxxx')
layer.msg('xxxx', {icon: 6}) // 可自定义配置,具体配置项看文档
layer.msg('xxxx', {icon: 6}, function(){
// 关闭后的回调
})