Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DiDi
Chameleon
提交
700de25b
C
Chameleon
项目概览
DiDi
/
Chameleon
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Chameleon
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
700de25b
编写于
3月 12, 2019
作者:
J
JiM-W
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
微信端自定义组件不加cml-base改成cml-view
上级
654f7f85
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
27 addition
and
14 deletion
+27
-14
packages/chameleon-template-parse/src/parser/parse-class.js
packages/chameleon-template-parse/src/parser/parse-class.js
+10
-2
packages/chameleon-template-parse/test/index.js
packages/chameleon-template-parse/test/index.js
+10
-5
packages/chameleon-template-parse/test/parser/cml.test.js
packages/chameleon-template-parse/test/parser/cml.test.js
+4
-4
packages/chameleon-template-parse/test/parser/vue.test.js
packages/chameleon-template-parse/test/parser/vue.test.js
+3
-3
未找到文件。
packages/chameleon-template-parse/src/parser/parse-class.js
浏览文件 @
700de25b
...
...
@@ -73,14 +73,18 @@ parseClass.tap('weex-cml', (args) => {
})
parseClass
.
tap
(
'
wx-alipay-baidu-cml
'
,
(
args
)
=>
{
let
{
node
,
type
,
options
:
{
lang
,
filePath
}
}
=
args
;
let
{
node
,
type
,
options
:
{
lang
,
filePath
,
usingComponents
}
}
=
args
;
if
(
lang
===
'
cml
'
&&
(
type
===
'
wx
'
||
type
===
'
alipay
'
||
type
===
'
baidu
'
))
{
let
tagName
=
node
.
openingElement
.
name
.
name
;
let
attributes
=
node
.
openingElement
.
attributes
;
let
classNodes
=
attributes
.
filter
((
attr
)
=>
// 如果没有符合条件的classNodes则返回一个空数组
attr
.
name
.
name
===
'
class
'
);
let
isUsingComponents
=
(
usingComponents
||
[]).
find
((
comp
)
=>
comp
.
tagName
===
tagName
);
let
extraClass
=
` cml-base cml-
${
tagName
}
`
;
if
(
isUsingComponents
&&
type
===
'
wx
'
)
{
extraClass
=
` cml-view cml-
${
tagName
}
`
;
}
if
(
type
===
'
alipay
'
)
{
let
randomClassName
=
hash
(
filePath
);
extraClass
=
`
${
extraClass
}
cml-
${
randomClassName
}
`
...
...
@@ -128,7 +132,7 @@ parseClass.tap('weex-vue', (args) => {
})
parseClass
.
tap
(
'
wx-alipay-baidu-vue
'
,
(
args
)
=>
{
let
{
node
,
type
,
options
:
{
lang
,
filePath
}
}
=
args
;
let
{
node
,
type
,
options
:
{
lang
,
filePath
,
usingComponents
}
}
=
args
;
if
(
lang
===
'
vue
'
&&
(
type
===
'
wx
'
||
type
===
'
alipay
'
||
type
===
'
baidu
'
))
{
let
tagName
=
node
.
openingElement
.
name
.
name
;
let
attributes
=
node
.
openingElement
.
attributes
;
...
...
@@ -136,6 +140,10 @@ parseClass.tap('wx-alipay-baidu-vue', (args) => {
attr
.
name
.
name
===
'
class
'
||
attr
.
name
.
name
.
name
===
'
class
'
);
let
extraClass
=
` cml-base cml-
${
tagName
}
`
;
let
isUsingComponents
=
(
usingComponents
||
[]).
find
((
comp
)
=>
comp
.
tagName
===
tagName
);
if
(
isUsingComponents
&&
type
===
'
wx
'
)
{
extraClass
=
` cml-view cml-
${
tagName
}
`
;
}
if
(
type
===
'
alipay
'
)
{
let
randomClassName
=
hash
(
filePath
);
extraClass
=
`
${
extraClass
}
cml-
${
randomClassName
}
`
...
...
packages/chameleon-template-parse/test/index.js
浏览文件 @
700de25b
const
compileTemplate
=
require
(
'
../src/index.js
'
);
const
source
=
`<component class="{{cls1}}" c-if="{{value}}" is="{{currentComp}}" style="width:{{cpx}}cpx" c-bind:eventClick="handleEventClick" c-bind:changeevent="handleChangeEvent" shrinkcomponents="comp1,comp2,comp3"></component>`
const
source
=
`<view class="pay-detail-li">
<text c-if="{{fee_detail.length > 2 && fee_detail[3]}}">行程总计(含{{fee_detail.length > 2 && fee_detail[3].name}}{{fee_detail.length > 2 && fee_detail[3].fee}})</text>
<text c-else-if="{{fee_detail.length > 1 && fee_detail[2]}}">行程总计(含{{fee_detail.length > 1 && fee_detail[2].name}}{{fee_detail.length > 1 && fee_detail[2].fee}})</text>
<text c-else>行程总计</text>
<text>{{total_fee || '0.00元'}}</text>
</view>`
// <view><text :class="{{true? 'bg-green':''}}" >fafafa</text></view>
// <view><text :class="true? 'bg-green':''" >fafafa</text></view>
//
...
...
@@ -35,10 +40,10 @@ let options = {lang: 'cml',
console
.
log
(
'
before-compile
'
,
source
);
// let result_web = compileTemplate(source, 'web', options);
// let result_weex = compileTemplate(source, 'weex', options);
//
let result_wx = compileTemplate(source, 'wx', options);
let
result_wx
=
compileTemplate
(
source
,
'
wx
'
,
options
);
// let result_baidu = compileTemplate(source, 'wx', options);
let
result_alipay
=
compileTemplate
(
source
,
'
alipay
'
,
options
);
//
let result_alipay = compileTemplate(source, 'alipay', options);
// console.log('result_web', result_web)
// console.log('result_weex', result_weex)
//
console.log('result_wx', result_wx)
console
.
log
(
'
result_alipay
'
,
result_alipay
)
console
.
log
(
'
result_wx
'
,
result_wx
)
//
console.log('result_alipay', result_alipay)
packages/chameleon-template-parse/test/parser/cml.test.js
浏览文件 @
700de25b
...
...
@@ -36,7 +36,7 @@ describe('parse-template-cml-all', function() {
let
source
=
`<view><button></button><thirdComp1></thirdComp1><thirdComp2></thirdComp2></view>`
;
it
(
'
test-tag-transform
'
,
function
()
{
expect
(
compileTemplate
(
source
,
'
web
'
,
options
).
source
).
to
.
equal
(
`<div class=" cml-base cml-view"><cml-buildin-button class=" cml-base cml-button"></cml-buildin-button><thirdComp1 class=" cml-base cml-thirdComp1"></thirdComp1><thirdComp2 class=" cml-base cml-thirdComp2"></thirdComp2></div>`
);
expect
(
compileTemplate
(
source
,
'
wx
'
,
options
).
source
).
to
.
equal
(
`<view class=" cml-base cml-view"><cml-buildin-button class=" cml-base cml-button"></cml-buildin-button><thirdComp1 class=" cml-
base cml-thirdComp1"></thirdComp1><thirdComp2 class=" cml-base
cml-thirdComp2"></thirdComp2></view>`
)
expect
(
compileTemplate
(
source
,
'
wx
'
,
options
).
source
).
to
.
equal
(
`<view class=" cml-base cml-view"><cml-buildin-button class=" cml-base cml-button"></cml-buildin-button><thirdComp1 class=" cml-
view cml-thirdComp1"></thirdComp1><thirdComp2 class=" cml-view
cml-thirdComp2"></thirdComp2></view>`
)
});
});
// directive c-model
...
...
@@ -184,7 +184,7 @@ describe('parse-template-cml-all', function() {
expect
(
compileTemplate
(
source
,
'
weex
'
,
options
).
source
).
to
.
equal
(
`<div class=" cml-base cml-view"><tag v-on:click="handleClick" class=" cml-base cml-origin-tag"></tag><thirdComp1 v-on:click="handleClick(1,item,\'str\')" class=" cml-base cml-thirdComp1"></thirdComp1><thirdComp2 v-on:click="_cmlInlineStatementEventProxy(\'handleClick\',1,item,\'str\')" class=" cml-base cml-thirdComp2"></thirdComp2></div>`
);
});
it
(
'
test-event-transform-wx
'
,
function
()
{
expect
(
compileTemplate
(
source
,
'
wx
'
,
options
).
source
).
to
.
equal
(
`<view class=" cml-base cml-view"><tag bindtap="handleClick" class=" cml-base cml-origin-tag"></tag><thirdComp1 bindtap="handleClick(1,item,\'str\')" class=" cml-
base cml-thirdComp1"></thirdComp1><thirdComp2 bindtap="_cmlInlineStatementEventProxy" data-arg2="str" data-arg1="{{item}}" data-arg0="{{1}}" data-args="1,item,\'str\'" data-eventtap="handleClick" class=" cml-base
cml-thirdComp2"></thirdComp2></view>`
);
expect
(
compileTemplate
(
source
,
'
wx
'
,
options
).
source
).
to
.
equal
(
`<view class=" cml-base cml-view"><tag bindtap="handleClick" class=" cml-base cml-origin-tag"></tag><thirdComp1 bindtap="handleClick(1,item,\'str\')" class=" cml-
view cml-thirdComp1"></thirdComp1><thirdComp2 bindtap="_cmlInlineStatementEventProxy" data-arg2="str" data-arg1="{{item}}" data-arg0="{{1}}" data-args="1,item,\'str\'" data-eventtap="handleClick" class=" cml-view
cml-thirdComp2"></thirdComp2></view>`
);
});
it
(
'
test-event-transform-alipay
'
,
function
()
{
expect
(
compileTemplate
(
source
,
'
alipay
'
,
options
).
source
).
to
.
equal
(
`<view class=" cml-base cml-view cml-5766bf8a"><tag onTap="handleClick" class=" cml-base cml-origin-tag cml-5766bf8a"></tag><view class=" cml-base cml-view cml-5766bf8a"><thirdComp1 onTap="handleClick(1,item,\'str\')" class=" cml-base cml-thirdComp1 cml-5766bf8a"></thirdComp1></view><view class=" cml-base cml-view cml-5766bf8a"><thirdComp2 onTap="_cmlInlineStatementEventProxy" data-arg2="str" data-arg1="{{item}}" data-arg0="{{1}}" data-args="1,item,\'str\'" data-eventtap="handleClick" class=" cml-base cml-thirdComp2 cml-5766bf8a"></thirdComp2></view></view>`
);
...
...
@@ -204,7 +204,7 @@ describe('parse-template-cml-all', function() {
});
// wx baidu alipay
it
(
'
parse-class-miniapp
'
,
function
()
{
expect
(
compileTemplate
(
source
,
'
wx
'
,
options
).
source
).
to
.
equal
(
`<view class=" cml-base cml-view"><cml-buildin-button class="cls1 {{true ? \'cls2\':\'cls3\'}} cml-base cml-button"></cml-buildin-button><thirdComp1 class="cls4 cml-
base
cml-thirdComp1"></thirdComp1></view>`
);
expect
(
compileTemplate
(
source
,
'
wx
'
,
options
).
source
).
to
.
equal
(
`<view class=" cml-base cml-view"><cml-buildin-button class="cls1 {{true ? \'cls2\':\'cls3\'}} cml-base cml-button"></cml-buildin-button><thirdComp1 class="cls4 cml-
view
cml-thirdComp1"></thirdComp1></view>`
);
});
});
// style 以及 miniappp端cpx动态测试
...
...
@@ -218,7 +218,7 @@ describe('parse-template-cml-all', function() {
});
// wx baidu alipay
it
(
'
parse-style-miniapp
'
,
function
()
{
expect
(
compileTemplate
(
source
,
'
wx
'
,
options
).
source
).
to
.
equal
(
`<view class=" cml-base cml-view"><cml-buildin-button style="width:{{cpx}}rpx;height:100rpx;border-width:200rpx;{{\'width:\' + cpx + \'rpx\'}}" class=" cml-base cml-button"></cml-buildin-button><thirdComp1 style="{{\'width:\' + cpx + \'rpx;\' + \'height:\' + cpx2 + \'rpx;background-color:red\'}}" class=" cml-
base
cml-thirdComp1"></thirdComp1></view>`
);
expect
(
compileTemplate
(
source
,
'
wx
'
,
options
).
source
).
to
.
equal
(
`<view class=" cml-base cml-view"><cml-buildin-button style="width:{{cpx}}rpx;height:100rpx;border-width:200rpx;{{\'width:\' + cpx + \'rpx\'}}" class=" cml-base cml-button"></cml-buildin-button><thirdComp1 style="{{\'width:\' + cpx + \'rpx;\' + \'height:\' + cpx2 + \'rpx;background-color:red\'}}" class=" cml-
view
cml-thirdComp1"></thirdComp1></view>`
);
});
});
// ref 动态
...
...
packages/chameleon-template-parse/test/parser/vue.test.js
浏览文件 @
700de25b
...
...
@@ -35,7 +35,7 @@ describe('parse-template-vue-all', function() {
let
source
=
`<view><button></button><thirdComp1></thirdComp1><thirdComp2></thirdComp2></view>`
;
it
(
'
test-tag-transform
'
,
function
()
{
expect
(
compileTemplate
(
source
,
'
web
'
,
options
).
source
).
to
.
equal
(
`<div class=" cml-base cml-view"><cml-buildin-button class=" cml-base cml-button"></cml-buildin-button><thirdComp1 class=" cml-base cml-thirdComp1"></thirdComp1><thirdComp2 class=" cml-base cml-thirdComp2"></thirdComp2></div>`
);
expect
(
compileTemplate
(
source
,
'
wx
'
,
options
).
source
).
to
.
equal
(
`<view class=" cml-base cml-view"><cml-buildin-button class=" cml-base cml-button"></cml-buildin-button><thirdComp1 class=" cml-
base cml-thirdComp1"></thirdComp1><thirdComp2 class=" cml-base
cml-thirdComp2"></thirdComp2></view>`
)
expect
(
compileTemplate
(
source
,
'
wx
'
,
options
).
source
).
to
.
equal
(
`<view class=" cml-base cml-view"><cml-buildin-button class=" cml-base cml-button"></cml-buildin-button><thirdComp1 class=" cml-
view cml-thirdComp1"></thirdComp1><thirdComp2 class=" cml-view
cml-thirdComp2"></thirdComp2></view>`
)
});
});
// directive v-model
...
...
@@ -183,7 +183,7 @@ describe('parse-template-vue-all', function() {
expect
(
compileTemplate
(
source
,
'
weex
'
,
options
).
source
).
to
.
equal
(
`<div class=" cml-base cml-view"><tag v-on:click="handleClick" class=" cml-base cml-origin-tag"></tag><thirdComp1 v-on:click="handleClick(1,item,\'str\')" class=" cml-base cml-thirdComp1"></thirdComp1><thirdComp2 v-on:click="_cmlInlineStatementEventProxy(\'handleClick\',1,item,\'str\')" class=" cml-base cml-thirdComp2"></thirdComp2></div>`
);
});
it
(
'
test-event-transform-wx
'
,
function
()
{
expect
(
compileTemplate
(
source
,
'
wx
'
,
options
).
source
).
to
.
equal
(
`<view class=" cml-base cml-view"><tag bindtap="handleClick" class=" cml-base cml-origin-tag"></tag><thirdComp1 bindtap="handleClick(1,item,\'str\')" class=" cml-
base cml-thirdComp1"></thirdComp1><thirdComp2 bindtap="_cmlInlineStatementEventProxy" data-arg2="str" data-arg1="{{item}}" data-arg0="{{1}}" data-args="1,item,\'str\'" data-eventtap="handleClick" class=" cml-base
cml-thirdComp2"></thirdComp2></view>`
);
expect
(
compileTemplate
(
source
,
'
wx
'
,
options
).
source
).
to
.
equal
(
`<view class=" cml-base cml-view"><tag bindtap="handleClick" class=" cml-base cml-origin-tag"></tag><thirdComp1 bindtap="handleClick(1,item,\'str\')" class=" cml-
view cml-thirdComp1"></thirdComp1><thirdComp2 bindtap="_cmlInlineStatementEventProxy" data-arg2="str" data-arg1="{{item}}" data-arg0="{{1}}" data-args="1,item,\'str\'" data-eventtap="handleClick" class=" cml-view
cml-thirdComp2"></thirdComp2></view>`
);
});
it
(
'
test-event-transform-alipay
'
,
function
()
{
expect
(
compileTemplate
(
source
,
'
alipay
'
,
options
).
source
).
to
.
equal
(
`<view class=" cml-base cml-view cml-5766bf8a"><tag onTap="handleClick" class=" cml-base cml-origin-tag cml-5766bf8a"></tag><view class=" cml-base cml-view cml-5766bf8a"><thirdComp1 onTap="handleClick(1,item,\'str\')" class=" cml-base cml-thirdComp1 cml-5766bf8a"></thirdComp1></view><view class=" cml-base cml-view cml-5766bf8a"><thirdComp2 onTap="_cmlInlineStatementEventProxy" data-arg2="str" data-arg1="{{item}}" data-arg0="{{1}}" data-args="1,item,\'str\'" data-eventtap="handleClick" class=" cml-base cml-thirdComp2 cml-5766bf8a"></thirdComp2></view></view>`
);
...
...
@@ -203,7 +203,7 @@ describe('parse-template-vue-all', function() {
});
// wx baidu alipay
it
(
'
parse-class-miniapp
'
,
function
()
{
expect
(
compileTemplate
(
source
,
'
wx
'
,
options
).
source
).
to
.
equal
(
`<view class=" cml-base cml-view"><cml-buildin-button class="{{true ? \'cls2\':\'cls3\'}} cls1 cml-base cml-button"></cml-buildin-button><thirdComp1 class="cls4 cml-
base
cml-thirdComp1"></thirdComp1></view>`
);
expect
(
compileTemplate
(
source
,
'
wx
'
,
options
).
source
).
to
.
equal
(
`<view class=" cml-base cml-view"><cml-buildin-button class="{{true ? \'cls2\':\'cls3\'}} cls1 cml-base cml-button"></cml-buildin-button><thirdComp1 class="cls4 cml-
view
cml-thirdComp1"></thirdComp1></view>`
);
});
});
// style 以及 miniappp端cpx动态测试
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录