Avue 是一個基於Element-plus低代碼前端框架,它使用JSON 配置來生成頁面,可以減少頁面開發工作量,極大提升效率; 雖然Avue官網上面都有這些配置說明,但是如果剛開始接觸不熟悉框架的話需要很久才找到自己需要的參數配置,為了方便自己今後查找使用,現將一些開發中常用的配置梳理在下 一、 ...
Avue 是一個基於Element-plus低代碼前端框架,它使用JSON 配置來生成頁面,可以減少頁面開發工作量,極大提升效率;
雖然Avue官網上面都有這些配置說明,但是如果剛開始接觸不熟悉框架的話需要很久才找到自己需要的參數配置,為了方便自己今後查找使用,現將一些開發中常用的配置梳理在下
一、avue-crud 配置項個參數簡介
二、crud之option解釋
三、crud之column解釋
四、crud之group解釋
group: [
{
label: '基本信息',
prop: 'jbxx',
icon: 'el-icon-edit-outline',
display: true,
column: [
{
label: "主體類型",
prop: "relType1",
search: false,
span: 8,
editDisabled: true,
},
{
label: "主體名稱",
prop: "name",
span: 8,
search: false,
editDisabled: true,
}
]
},
{
label: '申請信息',
prop: 'jbxx',
span: 8,
icon: 'el-icon-edit-outline',
arrow: true,
column: [
{
label: "申請類型",
prop: "breedType1",
span: 8,
hide: true,
editDisabled: true,
}
]
},
]
五、column類型寫法(input框、時間選擇器、上傳圖片等)
1.基礎輸入框
{
label: "廣告標題",
prop: "title",
rules: [{
required: true,
message: "請輸入廣告標題",
trigger: "blur"
}],
},
2.下拉選擇框
{
label: "設備負責人",
prop: "deviceUserId",
type: "select", //類型為下拉選擇框
dicUrl: "/api/blade-system/dict/dictionary?code=supplierLvl", //獲取數據介面地址
props: {
label: "dictValue",
value: "dictKey"
},
searchClearable:false, //可清空的輸入框,預設為true
dataType: "number", //數據類型用於數組和字元串之間的轉化,預設string
filterable: true, //添加filterable屬性即可啟用搜索功能
rules: [{
required: true,
message: "請輸入設備負責人",
trigger: "blur"
}],
},
3.時間控制項框
年份類型:
{
label: "年份",
prop: "yearTime",
rules: [{
required: true,
message: "請輸入年份",
trigger: "blur"
}],
type: "year", //類型為年份
format: "yyyy",
valueFormat: "yyyy",
//限制能選擇的時間範圍
pickerOptions: {
// 禁用年份日期通過 disabledDate 設置
disabledDate(time) {
return time.getTime() < Date.now();
},
}
},
普通日期類型:
{
label: "開始時間",
prop: "startTime",
type: "date", //類型為日期
format: "yyyy-MM-dd",
valueFormat: "yyyy-MM-dd",
rules: [{
required: true,
message: "請選擇開始日期",
trigger: "blur"
}],
},
普通日期+時間類型:
{
label: "開始時間",
prop: "startTime",
type: "datetime", //類型為日期+時間
format: "yyyy-MM-dd HH:mm:ss",
valueFormat: "yyyy-MM-dd HH:mm:ss",
rules: [{
required: true,
message: "請選擇開始時間",
trigger: "blur"
}],
},
時間範圍類型:
{
label: "時間範圍",
prop: "Time",
type: "datetimerange",
searchRange: true, //開啟範圍搜索
format: "yyyy-MM-dd HH:mm:ss",
valueFormat: "yyyy-MM-dd HH:mm:ss",
rules: [{
required: true,
message: "請選擇時間範圍",
trigger: "blur"
}],
},
4.計數選擇器
{
label: "權重",
prop: "sort",
type: 'number', //類型為數字
minRows: 0, //最小數字為0
tip: '只能填寫數字,數字越大廣告排序越前', //提示語
rules: [{
required: true,
message: "請選擇權重",
trigger: "blur"
}],
},
5.單選框
{
label: "是否發佈",
prop: "isPublish",
type:'radio', //類型為單選框
dicData: [
{
label: "發佈",
value: 1
},
{
label: "停用",
value: 0
},
],
rules: [{
required: true,
message: "請選擇是否發佈",
trigger: "blur"
}],
},
6.上傳圖片框
{
label: "圖片地址",
prop: "photo",
type:'upload',
drag: true, //拖拽上傳類型
action: '/api/blade-resource/file/upload', //上傳路徑
//返回數據結構體配置
propsHttp: {
res: 'data', //返回結構體的層次
url:'url', //上傳成功返回結構體的圖片地址
home:'http://tzhb.zhisuaninfo.com/pic/' //圖片的根路徑地址
},
dataType: 'string', //正常是數組格式,添加這個屬性就變成了string格式傳給介面
data: { dir: 'paymentList'} , //指定上傳參數
imgWidth:100, //圖片寬度
imgHeight:100, //圖片高度
listType:'picture-img', //圖片列表類型
rules: [{
required: true,
message: "請上傳圖片",
trigger: "blur"
}],
},
7.多行文本域框
{
label: "供應項目",
prop: "projects",
minRows: 5, //最小行/最小值
type: "textarea", //類型為多行文本域框
maxlength:500, //最大輸入長度
},
8.級聯選擇器
{
label: "歸屬系統",
prop: "systemId",
rules: [{
required: true,
message: "請輸入歸屬系統",
trigger: "blur"
}],
dicUrl: "/api/blade-property/devicesystemtype/allSystemTypeTree", //字典遠程字典(填介面路徑)
type: 'cascader', //類型為:級聯選擇器
props: {
label: "name", //遠程字典介面對應顯示欄位
value: "id" //遠程字典介面對應傳值欄位
},
filterable: true, //添加filterable屬性即可啟用搜索功能
checkStrictly: true, //可以選擇任意一級
searchCheckStrictly:true, //可以選擇任意一級(在搜索框中起作用)
search:true,
},
9.子表單
{
label: "子表單內容",
prop: "RoomTollInfo",
type: "dynamic", //類型為子表單(可新增刪除)
span: 24,
labelPosition:'top', //子表單標題
children: {
align: "center",
column: [
{
label: "價格",
prop: "price",
},{
label: "合同編號",
prop: "contractNum",
hide:true
}]
}
},
10.顏色控制項
{
label: "主題顏色",
prop: "color",
type: 'color',
value:"", //預設值
disabled:true, //是否禁用
colorFormat:"hex", //顏色格式
showAlpha:false, //顏色格式
predefine: [
'#ff4500',
'#ff8c00',
'#ffd700'
], //預定義顏色
},
11.數組
{
label:'數組',
prop:'array',
dataType:'number',
propsHttp:{
home:'http://demo.cssmoban.com',
},
type:'array'
}
12.超鏈接
{
label:'超鏈接',
prop:'href',
type:'url'
},
13.引入三方組件-富文本編輯器
main.js註冊全局引入:
import avueUeditor from 'avue-plugin-ueditor';
Vue.component('avueUeditor', avueUeditor);
{
label:'機構介紹',
prop: "institutionIntroduce",
component: 'AvueUeditor',
options: {
action: '/api/blade-resource/oss/endpoint/put-file',
props: {
res: "data",
url: "link",
}
},
},
接下來還會分享使用avue框架開發項目中所遇到的各式各樣問題,可供各位crl+cv