Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
cd971673
U
uni-app
项目概览
DCloud
/
uni-app
3 个月 前同步成功
通知
725
Star
38705
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
cd971673
编写于
2月 09, 2022
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
wip(app): nvue
上级
1d66dcc4
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
121 addition
and
135 deletion
+121
-135
packages/uni-components/dist/components.js
packages/uni-components/dist/components.js
+120
-124
packages/uni-components/vite.config.ts
packages/uni-components/vite.config.ts
+1
-11
未找到文件。
packages/uni-components/dist/components.js
浏览文件 @
cd971673
export
function
initComponents
({
uni
,
Vue
,
weex
,
plus
,
BroadcastChannel
,
UniViewJSBridge
,
VueShared
,
UniShared
})
{
var
components
=
function
(
vue
,
shared
)
{
"
use strict
"
;
const
OPEN_TYPES
=
[
"
navigate
"
,
"
redirect
"
,
"
switchTab
"
,
"
reLaunch
"
,
"
navigateBack
"
];
const
navigatorProps
=
{
hoverClass
:
{
type
:
String
,
default
:
"
navigator-hover
"
},
url
:
{
type
:
String
,
default
:
""
},
openType
:
{
type
:
String
,
default
:
"
navigate
"
,
validator
(
value
)
{
return
Boolean
(
~
OPEN_TYPES
.
indexOf
(
value
));
}
},
delta
:
{
type
:
Number
,
default
:
1
},
hoverStartTime
:
{
type
:
[
Number
,
String
],
default
:
50
},
hoverStayTime
:
{
type
:
[
Number
,
String
],
default
:
600
},
exists
:
{
type
:
String
,
default
:
""
},
hoverStopPropagation
:
{
type
:
Boolean
,
default
:
false
}
};
function
createNavigatorOnClick
(
props
)
{
return
()
=>
{
if
(
props
.
openType
!==
"
navigateBack
"
&&
!
props
.
url
)
{
console
.
error
(
"
<navigator/> should have url attribute when using navigateTo, redirectTo, reLaunch or switchTab
"
);
return
;
}
switch
(
props
.
openType
)
{
case
"
navigate
"
:
uni
.
navigateTo
({
url
:
props
.
url
});
break
;
case
"
redirect
"
:
uni
.
redirectTo
({
url
:
props
.
url
,
exists
:
props
.
exists
});
break
;
case
"
switchTab
"
:
uni
.
switchTab
({
url
:
props
.
url
});
break
;
case
"
reLaunch
"
:
uni
.
reLaunch
({
url
:
props
.
url
});
break
;
case
"
navigateBack
"
:
uni
.
navigateBack
({
delta
:
props
.
delta
});
break
;
}
};
import
{
defineComponent
,
createVNode
,
mergeProps
}
from
"
vue
"
;
import
{
hasOwn
}
from
"
@vue/shared
"
;
const
OPEN_TYPES
=
[
"
navigate
"
,
"
redirect
"
,
"
switchTab
"
,
"
reLaunch
"
,
"
navigateBack
"
];
const
navigatorProps
=
{
hoverClass
:
{
type
:
String
,
default
:
"
navigator-hover
"
},
url
:
{
type
:
String
,
default
:
""
},
openType
:
{
type
:
String
,
default
:
"
navigate
"
,
validator
(
value
)
{
return
Boolean
(
~
OPEN_TYPES
.
indexOf
(
value
));
}
function
useHoverClass
(
props
)
{
if
(
props
.
hoverClass
&&
props
.
hoverClass
!==
"
none
"
)
{
const
hoverAttrs
=
{
hoverClass
:
props
.
hoverClass
};
if
(
shared
.
hasOwn
(
props
,
"
hoverStartTime
"
))
{
hoverAttrs
.
hoverStartTime
=
props
.
hoverStartTime
;
}
if
(
shared
.
hasOwn
(
props
,
"
hoverStayTime
"
))
{
hoverAttrs
.
hoverStayTime
=
props
.
hoverStayTime
;
}
if
(
shared
.
hasOwn
(
props
,
"
hoverStopPropagation
"
))
{
hoverAttrs
.
hoverStopPropagation
=
props
.
hoverStopPropagation
;
}
return
hoverAttrs
;
}
return
{};
},
delta
:
{
type
:
Number
,
default
:
1
},
hoverStartTime
:
{
type
:
[
Number
,
String
],
default
:
50
},
hoverStayTime
:
{
type
:
[
Number
,
String
],
default
:
600
},
exists
:
{
type
:
String
,
default
:
""
},
hoverStopPropagation
:
{
type
:
Boolean
,
default
:
false
}
};
function
createNavigatorOnClick
(
props
)
{
return
()
=>
{
if
(
props
.
openType
!==
"
navigateBack
"
&&
!
props
.
url
)
{
console
.
error
(
"
<navigator/> should have url attribute when using navigateTo, redirectTo, reLaunch or switchTab
"
);
return
;
}
const
navigatorStyles
=
[{
"
navigator-hover
"
:
{
backgroundColor
:
"
rgba(0,0,0,0.1)
"
,
opacity
:
0.7
}
}];
var
Navigator
=
vue
.
defineComponent
({
name
:
"
Navigator
"
,
props
:
navigatorProps
,
styles
:
navigatorStyles
,
setup
(
props
,
{
slots
})
{
const
onClick
=
createNavigatorOnClick
(
props
);
return
()
=>
{
return
vue
.
createVNode
(
"
view
"
,
vue
.
mergeProps
(
useHoverClass
(
props
),
{
"
onClick
"
:
onClick
}),
[
slots
.
default
&&
slots
.
default
()]);
};
}
});
var
components2
=
{
Navigator
};
return
components2
;
}(
Vue
,
VueShared
);
return
components
;
switch
(
props
.
openType
)
{
case
"
navigate
"
:
uni
.
navigateTo
({
url
:
props
.
url
});
break
;
case
"
redirect
"
:
uni
.
redirectTo
({
url
:
props
.
url
,
exists
:
props
.
exists
});
break
;
case
"
switchTab
"
:
uni
.
switchTab
({
url
:
props
.
url
});
break
;
case
"
reLaunch
"
:
uni
.
reLaunch
({
url
:
props
.
url
});
break
;
case
"
navigateBack
"
:
uni
.
navigateBack
({
delta
:
props
.
delta
});
break
;
}
};
}
function
useHoverClass
(
props
)
{
if
(
props
.
hoverClass
&&
props
.
hoverClass
!==
"
none
"
)
{
const
hoverAttrs
=
{
hoverClass
:
props
.
hoverClass
};
if
(
hasOwn
(
props
,
"
hoverStartTime
"
))
{
hoverAttrs
.
hoverStartTime
=
props
.
hoverStartTime
;
}
if
(
hasOwn
(
props
,
"
hoverStayTime
"
))
{
hoverAttrs
.
hoverStayTime
=
props
.
hoverStayTime
;
}
if
(
hasOwn
(
props
,
"
hoverStopPropagation
"
))
{
hoverAttrs
.
hoverStopPropagation
=
props
.
hoverStopPropagation
;
}
return
hoverAttrs
;
}
return
{};
}
const
navigatorStyles
=
[{
"
navigator-hover
"
:
{
backgroundColor
:
"
rgba(0,0,0,0.1)
"
,
opacity
:
0.7
}
}];
var
Navigator
=
defineComponent
({
name
:
"
Navigator
"
,
props
:
navigatorProps
,
styles
:
navigatorStyles
,
setup
(
props
,
{
slots
})
{
const
onClick
=
createNavigatorOnClick
(
props
);
return
()
=>
{
return
createVNode
(
"
view
"
,
mergeProps
(
useHoverClass
(
props
),
{
"
onClick
"
:
onClick
}),
[
slots
.
default
&&
slots
.
default
()]);
};
}
});
var
components
=
{
Navigator
};
export
{
components
as
default
};
packages/uni-components/vite.config.ts
浏览文件 @
cd971673
...
...
@@ -25,22 +25,12 @@ export default defineConfig({
lib
:
{
name
:
'
components
'
,
entry
:
path
.
resolve
(
__dirname
,
'
src/nvue/components.ts
'
),
formats
:
[
'
iife
'
],
formats
:
[
'
es
'
],
},
rollupOptions
:
{
external
:
[
'
uni
'
,
'
vue
'
,
'
weex
'
,
'
@vue/shared
'
,
'
@dcloudio/uni-shared
'
],
output
:
{
banner
:
'
export function initComponents({uni,Vue,weex,plus,BroadcastChannel,UniViewJSBridge,VueShared,UniShared}) {
'
,
footer
:
'
return components
\n
}
'
,
entryFileNames
:
'
components.js
'
,
globals
:
{
uni
:
'
uni
'
,
vue
:
'
Vue
'
,
weex
:
'
weex
'
,
'
@vue/shared
'
:
'
VueShared
'
,
'
@dcloudio/uni-shared
'
:
'
UniShared
'
,
},
},
},
},
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录