107 lines
2.4 KiB
JavaScript
107 lines
2.4 KiB
JavaScript
/**
|
|
* The DSL compiler.
|
|
* Translate the customize DSL to Models, Processes, Flows, Tables, etc.
|
|
*/
|
|
|
|
/**
|
|
* Source
|
|
* Where to get the source of DSL
|
|
*/
|
|
function Source() {
|
|
return dyforms();
|
|
}
|
|
|
|
/**
|
|
* Compile
|
|
* Translate or extend the customize DSL
|
|
* @param {*} dsl
|
|
*/
|
|
function Compile(name, dsl) {
|
|
let newdsl = { name: name };
|
|
return newdsl;
|
|
}
|
|
|
|
/**
|
|
* OnLoad
|
|
* When the widget instance are loaded, the function will be called.
|
|
* For preparing the sources the widget need.
|
|
* @param {DSL} dsl
|
|
*/
|
|
function OnLoad(name, dsl) {
|
|
log.Info("[Widget] dyform.OnLoad %s %v", name, dsl);
|
|
}
|
|
|
|
/**
|
|
* Migrate
|
|
* When the migrate command executes, the function will be called
|
|
* @param {DSL} dsl
|
|
* @param {bool} force
|
|
*/
|
|
function Migrate(dsl, force) {}
|
|
|
|
/**
|
|
* Customize DSL
|
|
* @returns
|
|
*/
|
|
function dyforms() {
|
|
return {
|
|
pad: {
|
|
guard: "bearer-jwt",
|
|
title: "应用表单",
|
|
sn: "PAD1024",
|
|
orign: "手机平板",
|
|
columns: [
|
|
{
|
|
name: "门店",
|
|
field: "store_id",
|
|
searchable: true,
|
|
props: {
|
|
value: ":store_id",
|
|
type: "SelectStore",
|
|
title: "门店",
|
|
placeholder: "请选择门店",
|
|
validation: [
|
|
{ type: "Required" },
|
|
{ type: "StoreStatus", args: [":store_id"] },
|
|
],
|
|
},
|
|
},
|
|
{
|
|
name: "订单数量",
|
|
field: "orders_amount",
|
|
searchable: true,
|
|
props: {
|
|
value: ":orders_amount",
|
|
type: "Number",
|
|
title: "订单数量",
|
|
placeholder: "今日订单数量",
|
|
computed: "OrderAmount",
|
|
validation: [
|
|
{ type: "Required" },
|
|
{ type: "IsNumber", args: [":orders_amount"] },
|
|
],
|
|
},
|
|
},
|
|
{
|
|
name: "账单地址",
|
|
field: "address",
|
|
props: {
|
|
value: ":address",
|
|
type: "Text",
|
|
title: "账单地址",
|
|
placeholder: "填写账单地址",
|
|
validation: [
|
|
{ type: "Required" },
|
|
{ type: "MaxLength", args: [":address", 200] },
|
|
],
|
|
},
|
|
},
|
|
],
|
|
filters: [],
|
|
"list-layout": {
|
|
columns: [{ name: "store_id" }, { name: "orders_amount" }],
|
|
filters: [{ name: "订单数量" }],
|
|
},
|
|
},
|
|
};
|
|
}
|