parent
d4deed140d
commit
965417aab2
@ -1,9 +1,16 @@ |
|||||||
import type { DynamicValue } from "../types" |
import type { DynamicValue } from "../types" |
||||||
import type { EngineContext } from "../context" |
import type { EngineContext } from "../context" |
||||||
|
|
||||||
|
const isNumber = (num: number):boolean => { |
||||||
|
return !isNaN(num) |
||||||
|
} |
||||||
export function dynamic<T>(ctx: EngineContext, blockId: string, value: DynamicValue<T>): T { |
export function dynamic<T>(ctx: EngineContext, blockId: string, value: DynamicValue<T>): T { |
||||||
if (typeof value === 'string' && value.startsWith('@@')) { |
if (typeof value === 'string' && value.startsWith('@@')) { |
||||||
return ctx.value(blockId, value) as T |
const val = ctx.value(blockId,value) |
||||||
|
if(isNumber(val as number)){ |
||||||
|
return parseFloat(val as string) as T |
||||||
|
} |
||||||
|
return ctx.value(blockId, value) as T |
||||||
} |
} |
||||||
return value as T |
return value as T |
||||||
} |
} |
||||||
|
@ -0,0 +1,30 @@ |
|||||||
|
import type { Module } from '../engineer' |
||||||
|
import { createUniqueId } from '../engineer/utils' |
||||||
|
const module: Module = { |
||||||
|
vid: createUniqueId(), |
||||||
|
mid: createUniqueId(), |
||||||
|
title: '活动魔方', |
||||||
|
configs: [], |
||||||
|
init:{ |
||||||
|
theme:{ |
||||||
|
color: '#fff', |
||||||
|
innerColor: 'pink' |
||||||
|
} |
||||||
|
}, |
||||||
|
theme:{ |
||||||
|
color: '@@theme.color', |
||||||
|
padding: 5, |
||||||
|
radius: '@@theme.radius' |
||||||
|
}, |
||||||
|
children: { |
||||||
|
theme:{ |
||||||
|
color: '@@theme.innerColor', |
||||||
|
radius: '@@theme.radius', |
||||||
|
height: 20 |
||||||
|
}, |
||||||
|
children:[] |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
export default module |
@ -0,0 +1,25 @@ |
|||||||
|
import type { Module } from '../engineer' |
||||||
|
import { createUniqueId } from '../engineer/utils' |
||||||
|
|
||||||
|
const module:Module = { |
||||||
|
mid: createUniqueId(), |
||||||
|
vid: createUniqueId(), |
||||||
|
title: '辅助空白', |
||||||
|
configs:[ |
||||||
|
|
||||||
|
], |
||||||
|
init:{ |
||||||
|
theme:{ |
||||||
|
height: 10, |
||||||
|
color: 'white' |
||||||
|
} |
||||||
|
}, |
||||||
|
theme:{ |
||||||
|
height: '@@theme.height', |
||||||
|
color: '@@theme.color' |
||||||
|
}, |
||||||
|
children:{ |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
export default module |
@ -0,0 +1,32 @@ |
|||||||
|
import type { Module } from '../engineer' |
||||||
|
import { createUniqueId } from '../engineer/utils' |
||||||
|
|
||||||
|
const module: Module = { |
||||||
|
vid: createUniqueId(), |
||||||
|
mid: createUniqueId(), |
||||||
|
title: '辅助线', |
||||||
|
configs: [], |
||||||
|
init:{ |
||||||
|
theme:{ |
||||||
|
innerColor: '#dedede', |
||||||
|
height:10, |
||||||
|
color: 'white' |
||||||
|
} |
||||||
|
}, |
||||||
|
theme:{ |
||||||
|
height: '@@theme.height', |
||||||
|
flexible: true, |
||||||
|
mainAlign:'center', |
||||||
|
crossAlign: 'center', |
||||||
|
textColor: '@@theme.innerColor', |
||||||
|
color: '@@theme.color' |
||||||
|
}, |
||||||
|
children:{ |
||||||
|
theme:{ |
||||||
|
width: 345, |
||||||
|
height: 0.8, |
||||||
|
color: '@@theme.innerColor' |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
export default module |
@ -0,0 +1,45 @@ |
|||||||
|
import { createUniqueId } from '../engineer/utils' |
||||||
|
import { Module } from '../engineer' |
||||||
|
|
||||||
|
const module: Module = { |
||||||
|
title: '自定义标题', |
||||||
|
vid: createUniqueId(), |
||||||
|
mid: createUniqueId(), |
||||||
|
maxReferenceCount: -1, |
||||||
|
referenceCount: 0, |
||||||
|
image: undefined, |
||||||
|
configs: [ |
||||||
|
{ |
||||||
|
type: 'text', |
||||||
|
field: 'Title', |
||||||
|
label: '标题', |
||||||
|
help: '自定义标题', // 自动生成:"请输入${label}"
|
||||||
|
}, |
||||||
|
], |
||||||
|
init: { |
||||||
|
Title: '猜你喜欢', |
||||||
|
theme:{ |
||||||
|
color: '#fff', |
||||||
|
textColor: '#333' |
||||||
|
} |
||||||
|
}, |
||||||
|
theme: { |
||||||
|
padding: { |
||||||
|
vertical: 15, |
||||||
|
horizontal: 15, |
||||||
|
}, |
||||||
|
color: '@@theme.color', |
||||||
|
textColor: '@@theme.textColor', |
||||||
|
fontSize: 18, |
||||||
|
fontWeight: 900, |
||||||
|
}, |
||||||
|
children: { |
||||||
|
type: 'text', |
||||||
|
key: 'Title' |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
export default module |
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,53 @@ |
|||||||
|
import { createUniqueId } from '../engineer/utils' |
||||||
|
import { Module } from '../engineer' |
||||||
|
|
||||||
|
const module: Module = { |
||||||
|
title: '两列产品卡片', |
||||||
|
vid: createUniqueId(), |
||||||
|
mid: createUniqueId(), |
||||||
|
maxReferenceCount: -1, |
||||||
|
referenceCount: 0, |
||||||
|
image: undefined, |
||||||
|
configs: [], |
||||||
|
init: { |
||||||
|
theme:{ |
||||||
|
color: 'pink', |
||||||
|
innerRadius: 12 |
||||||
|
} |
||||||
|
}, |
||||||
|
theme: { |
||||||
|
color: '@@theme.color', |
||||||
|
padding: { |
||||||
|
top: 12.5, |
||||||
|
left: 12.5, |
||||||
|
right: 12.5 |
||||||
|
}, |
||||||
|
gap: 10, |
||||||
|
}, |
||||||
|
children: [ |
||||||
|
{ |
||||||
|
|
||||||
|
vid: createUniqueId(), |
||||||
|
theme: { |
||||||
|
width: 170, |
||||||
|
height: 200, |
||||||
|
color: 'white', |
||||||
|
radius: '@@theme.innerRadius', |
||||||
|
clip: 'hidden' |
||||||
|
}, |
||||||
|
children: '产品' |
||||||
|
}, |
||||||
|
{ |
||||||
|
vid: createUniqueId(), |
||||||
|
theme: { |
||||||
|
width: 170, |
||||||
|
height: 200, |
||||||
|
color: 'white', |
||||||
|
radius: '@@theme.innerRadius', |
||||||
|
clip: 'hidden' |
||||||
|
}, |
||||||
|
children: '产品' |
||||||
|
} |
||||||
|
] |
||||||
|
} |
||||||
|
export default module |
Loading…
Reference in new issue