first commit

This commit is contained in:
2026-09-08 20:28:54 +08:00
commit 2ada8d3d5a
37380 changed files with 4886169 additions and 0 deletions
+65
View File
@@ -0,0 +1,65 @@
{
"env": {
"commonjs": true
},
"extends": "eslint:recommended",
"parser": "babel-eslint",
"parserOptions": {
"sourceType": "module",
"ecmaFeatures": {
"experimentalObjectRestSpread": true,
"jsx": true
}
},
"globals": {
"loadData": false,
"saveData": false,
"history": false,
"console": false,
"setTimeout": false,
"clearTimeout": false,
"setInterval": false,
"clearInterval": false
},
"plugins": [
"hybrid"
],
"rules": {
"indent": [
"warn",
2
],
"no-console": [
"warn",
{
"allow": [
"info",
"warn",
"error"
]
}
],
"no-unused-vars": [
"warn",
{
"varsIgnorePattern": "prompt"
}
],
"quotes": [
"warn",
"single",
{
"avoidEscape": true,
"allowTemplateLiterals": true
}
],
"linebreak-style": [
"warn",
"unix"
],
"semi": [
"warn",
"never"
]
}
}
+14
View File
@@ -0,0 +1,14 @@
node_modules
build
dist
.DS_Store
Thumbs.db
*.log
*.iml
.idea/
.vscode/
.nyc_output
/coverage
+17
View File
@@ -0,0 +1,17 @@
module.exports = function(api) {
api.cache(true)
return {
presets: [
[
'@babel/preset-env',
{
targets: {
node: 8
}
}
]
],
plugins: ['@babel/plugin-transform-modules-commonjs'],
babelrcRoots: ['.', 'node_modules']
}
}
+18
View File
@@ -0,0 +1,18 @@
{
"name": "{{ appName }}",
"version": "1.0.0",
"subversion": {
"toolkit": "{{ toolkitVersion }}"
},
"description": "",
"scripts": {
"build": "hap build",
"release": "hap release",
"server": "hap server",
"watch": "hap watch"
},
"devDependencies": {
"hap-toolkit":"^{{ toolkitVersion }}",
"quickapp-dsls": "^0.1.1"
}
}
@@ -0,0 +1,20 @@
-----BEGIN CERTIFICATE-----
MIIDMTCCAhmgAwIBAgIJAMKpjyszxkDpMA0GCSqGSIb3DQEBCwUAMC4xCzAJBgNV
BAYTAkNOMQwwCgYDVQQKDANSUEsxETAPBgNVBAMMCFJQS0RlYnVnMCAXDTE3MDQx
OTAyMzE0OVoYDzIxMTYwMzI2MDIzMTQ5WjAuMQswCQYDVQQGEwJDTjEMMAoGA1UE
CgwDUlBLMREwDwYDVQQDDAhSUEtEZWJ1ZzCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAK3kPd9jzvTctTIA3XNZVv9cHHDbAc6nTBfdZp9mtPOTkXFpvyCb
kL0QjOog0+1pv8D7dFeP4ptWXU5CT3ImvaPR+16dAtMRcsxEr5q4zieJzx3O6huL
UBa1k+xrzjXpRzkcOysmc8fTxt0tAwbDgJ2AA5TlXLTcVyb7GmJ+hl5CjnhoG5NN
LrkqI7S29c1U3uokj8Q7hzaj0TURu/uB5ZIMCLZY9KFDugqaEcvmUyJiD0fuV6sA
O/4kpiZUOnhV8/xWpRbMI4WFQsfgLOCV+X9uzUa29D677y//46t/EDSuQTHyBZbl
AcNMENkpMWZsH7J/+F19+U0/Hd5bJgneVRkCAwEAAaNQME4wHQYDVR0OBBYEFKDN
SZtt47ttOBDQzIchFYyxsg3mMB8GA1UdIwQYMBaAFKDNSZtt47ttOBDQzIchFYyx
sg3mMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBABaZctNrn4gLmNf/
eNJ3x5CJIPjPwm6j9nwKhtadJ6BF+TIzSkJuHSgxULjW436F37otv94NPzT5PCBF
WxgXoqgLqnWwvsaqC4LUEjsZviWW4CB824YDUquEUVGFLE/U5KTZ7Kh1ceyUk4N8
+mtkXkanWoBBk0OF24lNrAsNLB63yTLr9HxEe75+kmvxf1qVJUGtaOEWIhiFMiAB
5D4w/j2EFWktumjuy5TTwU0zhl52bc8V9SNixM1IaqzNrVPrdjv8viUX548pU3WT
xZ5ylDsxhMC1q4BXQVeIY8C0cMEX+WHOmOCvWrkxCkP91pKsSPkuVrWlzrkn8Ojo
swP6sBw=
-----END CERTIFICATE-----
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCt5D3fY8703LUy
AN1zWVb/XBxw2wHOp0wX3WafZrTzk5Fxab8gm5C9EIzqINPtab/A+3RXj+KbVl1O
Qk9yJr2j0ftenQLTEXLMRK+auM4nic8dzuobi1AWtZPsa8416Uc5HDsrJnPH08bd
LQMGw4CdgAOU5Vy03Fcm+xpifoZeQo54aBuTTS65KiO0tvXNVN7qJI/EO4c2o9E1
Ebv7geWSDAi2WPShQ7oKmhHL5lMiYg9H7lerADv+JKYmVDp4VfP8VqUWzCOFhULH
4Czglfl/bs1GtvQ+u+8v/+OrfxA0rkEx8gWW5QHDTBDZKTFmbB+yf/hdfflNPx3e
WyYJ3lUZAgMBAAECggEBAJTnCBBdUB+fSs1prjeS/gsmnfgJoY+K9H7PCIxgj3yw
FXAvZAmRDKzJGlF2EOOQlTG0YNiGDj6EAtv7rjoKcINyULSg8IU6wLmn61MrAuUa
fa+Bujgh4E/B5swhOHAztNhzkzsM70Hi17wXSislh+HWd7qteOgqcbqgdOR4gaj+
HUqtcxG3H3hCL3dWugnjLZMtestLKGHSSZvbQNjYM3kKy2LvO8NpxmDE4a+TXygK
qhaZjmS/dc/nJBJzOfkzby58RvGbzlJflfW/Uu3/gizj13GFQKWonq1xh630RAhv
xX5ySok2aAx/+/SiJSpNXvM09grQuoORSr7D1tm+5rECgYEA3vf0hRfua0XAOu6f
pyzNvLRRJ/pEew7XpNPCyS2TuMTd1yvXjGVxQfP46N6x1IM3SRU0zE+LSk80EF7l
u1Or7GyCEhabYNe/7P2F8ENP73Do0HwvcI1jGrgr6r9oK0J27Xei+f6Q0bgJOPI2
qaLj+V37cOjkNSM1mhTjtDwK8k0CgYEAx6cMrkjHl1+lDIIOc3qAEL3jb3xQveYk
WrMF/B+j048k6boU4VvFJAIyQxOxMNxLjw3/9+zXCFJT4WaZK3TMXlg614ASGx3H
tKjJM9O07ywwMq1gbutFS4nHCg3L3Os6esL0SPwMdATR3Yh22n5OGI9o+/aURulL
GPEXef1Z2/0CgYEAgmwp5LxV4vu+8Pnp+4DSq4ISQr861XyeGTUhKEp3sUm+tgFY
KTChakHKpHS3Mqa6bQ5xft08je/8dWL9IHFWDIqAHxKIOsKY6oh1k0/cbyPtmx45
Ja4efV+jmMHzrfJH3KnxdCg7D+GFy4CrBtlYXuJhlO81pft9fC6h7yh8ArUCgYBq
gvkl5Zftbs4rnRq+iqTVyagTKvwcQzIz3PwdZHfO/rfPpUFMdNv4eN99n3zRN0Vs
HSjoiEazntA3GLgwUdBRqLpDi4SdSMbo337vkksdqbJQ5uPiaMuAIBG6kF+pDSkW
ovkWErlGD+gySoI10FozihaVDRhPuFgjB0PiBcIxtQKBgGNSzX+Bx5+ux1Qny0Sn
SUcBtepLnO8M8wafoGNyehbMnLzfuMbaDiJOdozGlBNHZTtPB3r4AYb8WnltdKW0
7i3fk26YZGiMVeUJvewA6/LOBEaqMdwoNwnoptvbR6ehHeE/PPtRtge2cD3bPIM7
U9VlWgfgj9Dxfwhslqb9hmyp
-----END PRIVATE KEY-----
@@ -0,0 +1,167 @@
<template>
<div class="demo-page">
<!-- 应用图标 -->
<image id="icon" :src="icon"></image>
<!-- 应用名 -->
<text id="name">{{name}}</text>
<!-- 应用标签 -->
<div id="tags">
<text class="tag">无安装</text>
<text class="gap">|</text>
<text class="tag">体积小</text>
<text class="gap">|</text>
<text class="tag">一步直达</text>
</div>
<!-- 应用描述 -->
<text id="desc">{{desc}}</text>
<!-- 应用详情 -->
<div class="detail detail-first">
<text class="detail-title">服务类型</text>
<text class="detail-content">{{serviceType}}</text>
</div>
<div class="detail">
<text class="detail-title">主体信息</text>
<text class="detail-content">{{subjectInfo}}</text>
</div>
<!-- 创建快捷方式 -->
<input class="btn" type="button" @click="createShortcut" value="创建快捷方式" />
<!-- 版权信息 -->
<text id="footer">{{copyright}}</text>
</div>
</template>
<script>
/**
* 默认的菜单页(可自定义)
* name默认为manifest文件中的name字段
* icon默认为manifest文件中的icon字段
* 若需修改页面中文本,请修改ViewModel private中对应变量
* 注意:使用加载器测试`创建桌面快捷方式`功能时,需要进入系统设置->权限管理->开启应用加载器的`桌面快捷方式`权限,才能保存到桌面。应用上线后可自动获取`桌面快捷方式`权限
*/
export default {
protected: {
name: null,
icon: null
},
private: {
desc: '即点即用,让你省去下载安装的步骤,立即使用各类服务',
serviceType: '工具类',
subjectInfo: 'xxx有限公司',
copyright: ''
},
mounted () {
// 设置标题栏
this.$page.setTitleBar({ text: this.name })
},
methods: {
createShortcut () {
// 创建快捷方式
this.$app.$def.createShortcut()
}
}
}
</script>
<style>
.demo-page {
flex-direction: column;
align-items: center;
width: 100%;
}
/* 应用图标 */
#icon {
margin-top: 90px;
width: 134px;
height: 134px;
border-radius: 10px;
border: 1px solid #8d8d8d;
}
/* 应用名 */
#name {
margin-top: 20px;
font-size: 36px;
color: #000000;
}
/* 应用标签 */
#tags {
margin-top: 22px;
align-items: center;
}
.tag {
padding-left: 20px;
padding-right: 20px;
font-size: 28px;
color: #2a9700;
}
.gap {
font-size: 22px;
color: #b2b2b2;
}
/* 应用描述 */
#desc {
width: 650px;
margin-top: 40px;
line-height: 35px;
font-size: 25px;
color: #8d8d8d;
}
/* 应用详情 */
.detail {
width: 650px;
height: 90px;
border-bottom-width: 1px;
border-bottom-color: #f0f0f0;
}
.detail-first {
margin-top: 65px;
border-top-width: 1px;
border-top-color: #f0f0f0;
}
.detail-title {
width: 160px;
padding-left: 10px;
font-size: 25px;
color: #000000;
}
.detail-content {
font-size: 25px;
color: #8d8d8d;
}
/* 按钮 */
.btn {
width: 550px;
height: 86px;
margin-top: 75px;
border-radius: 43px;
background-color: #09ba07;
font-size: 30px;
color: #ffffff;
}
/* 底部版权信息 */
#footer {
width: 750px;
position: fixed;
bottom: 55px;
font-size: 25px;
color: #8d8d8d;
text-align: center;
}
</style>
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

@@ -0,0 +1,51 @@
<template>
<!-- template里只能有一个根节点 -->
<div class="demo-page">
<text class="title">欢迎打开{{title}}</text>
<!-- 点击跳转详情页 -->
<input class="btn" type="button" value="跳转到详情页" @click="routeDetail" />
</div>
</template>
<script>
import router from '@system.router'
export default {
// 页面级组件的数据模型,影响传入数据的覆盖机制:private内定义的属性不允许被覆盖
private: {
title: '示例页面'
},
methods: {
routeDetail () {
// 跳转到应用内的某个页面,router用法详见:文档->接口->页面路由
router.push ({
uri: '/DemoDetail'
})
}
}
}
</script>
<style>
.demo-page {
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
}
.title {
font-size: 40px;
text-align: center;
}
.btn {
width: 550px;
height: 86px;
margin-top: 75px;
border-radius: 43px;
background-color: #09ba07;
font-size: 30px;
color: #ffffff;
}
</style>
@@ -0,0 +1,35 @@
<template>
<!-- template里只能有一个根节点 -->
<div class="demo-page">
<text class="title">{{text}}</text>
</div>
</template>
<script>
export default {
private: {
text: '欢迎打开详情页'
},
/**
* 当用户点击菜单按钮时触发,调用app中定义的方法showMenu
* 注意:使用加载器测试`创建桌面快捷方式`功能时,请先在`系统设置`中打开`应用加载器`的`桌面快捷方式`权限
*/
onMenuPress() {
this.$app.$def.showMenu()
}
}
</script>
<style>
.demo-page {
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
}
.title {
font-size: 40px;
text-align: center;
}
</style>
+11
View File
@@ -0,0 +1,11 @@
<script>
/**
* 应用级别的配置,供所有页面公用
*/
import util from './util'
export default {
showMenu: util.showMenu,
createShortcut: util.createShortcut
}
</script>
+53
View File
@@ -0,0 +1,53 @@
{
"package": "com.application.demo",
"name": "{{appName}}",
"versionName": "1.0.0",
"versionCode": "1",
"minPlatformVersion": "101",
"icon": "/Common/logo.png",
"features": [
{ "name": "system.prompt" },
{ "name": "system.router" },
{ "name": "system.shortcut" }
],
"permissions": [
{ "origin": "*" }
],
"config": {
"logLevel": "log",
"dsl": {
"name": "vue"
}
},
"router": {
"entry": "Demo",
"pages": {
"Demo": {
"component": "index"
},
"DemoDetail": {
"component": "index"
},
"About": {
"component": "index"
}
}
},
"display": {
"titleBarBackgroundColor": "#f2f2f2",
"titleBarTextColor": "#414141",
"menu": true,
"pages": {
"Demo": {
"titleBarText": "示例页",
"menu": false
},
"DemoDetail": {
"titleBarText": "详情页"
},
"About": {
"menu": false
}
}
}
}
+72
View File
@@ -0,0 +1,72 @@
/**
* 显示菜单
*/
function showMenu() {
const prompt = require('@system.prompt')
const router = require('@system.router')
const appInfo = require('@system.app').getInfo()
prompt.showContextMenu({
itemList: ['保存桌面', '关于', '取消'],
success: function(ret) {
switch (ret.index) {
case 0:
// 保存桌面
createShortcut()
break
case 1:
// 关于
router.push({
uri: '/About',
params: {
name: appInfo.name,
icon: appInfo.icon
}
})
break
case 2:
// 取消
break
default:
prompt.showToast({
message: 'error'
})
}
}
})
}
/**
* 创建桌面图标
* 注意:使用加载器测试`创建桌面快捷方式`功能时,请先在`系统设置`中打开`应用加载器`的`桌面快捷方式`权限
*/
function createShortcut() {
const prompt = require('@system.prompt')
const shortcut = require('@system.shortcut')
shortcut.hasInstalled({
success: function(ret) {
if (ret) {
prompt.showToast({
message: '已创建桌面图标'
})
} else {
shortcut.install({
success: function() {
prompt.showToast({
message: '成功创建桌面图标'
})
},
fail: function(errmsg, errcode) {
prompt.showToast({
message: `${errcode}: ${errmsg}`
})
}
})
}
}
})
}
export default {
showMenu,
createShortcut
}