提交 5e0e822f 编写于 作者: C chengxingzhen

Add getFormsInfo and stress xts test.

Signed-off-by: Nchengxingzhen <chengxingzhen@huawei.com>
上级 c02c1604
...@@ -16,6 +16,21 @@ import("//test/xts/tools/build/suite.gni") ...@@ -16,6 +16,21 @@ import("//test/xts/tools/build/suite.gni")
group("formmanager") { group("formmanager") {
testonly = true testonly = true
if (is_standard_system) { if (is_standard_system) {
deps = [ "formsystemtest_ets/formfuzztest:FormFuzzTest" ] deps = [
"formhostst_ets/formsystemhostk:FormSystemHostK",
"formproviderst_ets/formsupplyapplicationF:FormSupplyAppF",
"formproviderst_ets/formsupplyapplicationG:FormSupplyAppG",
"formproviderst_ets/formsystemprovidera:FormSystemProviderA",
"formproviderst_ets/formsystemproviderb:FormSystemProviderB",
"formproviderst_ets/formsystemproviderc:FormSystemProviderC",
"formproviderst_ets/formsystemproviderd:FormSystemProviderD",
"formsystemtest_ets/formfuzztest:FormFuzzTest",
"formsystemtest_ets/formgetformsinfotest/formsoneandonetest:FormsOneAndOneTest",
"formsystemtest_ets/formgetformsinfotest/formsoneandtwotest:FormsOneAndTwoTest",
"formsystemtest_ets/formgetformsinfotest/formsoneandzerotest:FormsOneAndZeroTest",
"formsystemtest_ets/formgetformsinfotest/formswithoutpermtest:FormsWithoutPermTest",
"formsystemtest_ets/formgetformsinfotest/formszerotest:FormsZeroTest",
"formsystemtest_ets/formstresstest:FormStressTest",
]
} }
} }
# Copyright (c) 2021 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//test/xts/tools/build/suite.gni")
ohos_js_hap_suite("FormSystemHostK") {
hap_profile = "./entry/src/main/config.json"
deps = [
":hjs_demo_js_assets",
":hjs_demo_resources",
]
ets2abc = true
certificate_profile = "./signature/openharmony_sx.p7b"
hap_name = "FormSystemHostK"
}
ohos_js_assets("hjs_demo_js_assets") {
source_dir = "./entry/src/main/ets/MainAbility"
}
ohos_resources("hjs_demo_resources") {
sources = [ "./entry/src/main/resources" ]
hap_profile = "./entry/src/main/config.json"
}
{
"description": "Configuration for hjunit demo Tests"
}
{
"app": {
"bundleName": "com.ohos.st.formsystemhostk",
"vendor": "ohos",
"version": {
"code": 1000000,
"name": "1.0.0"
},
"apiVersion": {
"compatible": 7,
"releaseType": "Release",
"target": 7
}
},
"deviceConfig": {},
"module": {
"package": "com.ohos.st.formsystemhostk",
"name": ".FormStHostAppK",
"mainAbility": ".MainAbility",
"deviceType": [
"phone"
],
"distro": {
"deliveryWithInstall": true,
"moduleName": "entry",
"moduleType": "entry",
"installationFree": false
},
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"visible": true,
"name": ".MainAbility",
"srcLanguage": "ets",
"icon": "$media:icon",
"description": "$string:description_mainability",
"label": "$string:entry_MainAbility",
"type": "page",
"launchType": "standard"
}
],
"js": [
{
"mode": {
"syntax": "ets",
"type": "pageAbility"
},
"pages": [
"pages/index"
],
"name": ".MainAbility",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
}
],
"defPermissions": [
{
"availableScope": [],
"grantMode": "system_grant",
"name": "FMS_FormOnDeleted_commonEvent"
},
{
"availableScope": [],
"grantMode": "system_grant",
"name": "FMS_FormOnAcquired_commonEvent"
},
{
"availableScope": [],
"grantMode": "system_grant",
"name": "FMS_FormOnError_commonEvent"
},
{
"availableScope": [],
"grantMode": "system_grant",
"name": "FMS_FormOnCast_commonEvent"
},
{
"availableScope": [],
"grantMode": "system_grant",
"name": "FMS_FormTerminate_commonEvent"
},
{
"availableScope": [],
"grantMode": "system_grant",
"name": "FMS_FormOnRequest_commonEvent"
},
{
"availableScope": [],
"grantMode": "system_grant",
"name": "FMS_FormOnReleased_commonEvent"
}
],
"reqPermissions": [
{
"name": "FMS_FormOnAcquired_commonEvent"
},
{
"name": "FMS_FormOnDeleted_commonEvent"
},
{
"name": "FMS_FormOnError_commonEvent"
},
{
"name": "FMS_FormOnCast_commonEvent"
},
{
"name": "FMS_FormTerminate_commonEvent"
},
{
"name": "FMS_FormOnRequest_commonEvent"
},
{
"name": "FMS_FormOnReleased_commonEvent"
},
{
"name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"
},
{
"name": "ohos.permission.INSTALL_BUNDLE"
},
{
"name": "ohos.permission.LISTEN_BUNDLE_CHANGE"
},
{
"name": "ohos.permission.REQUIRE_FORM"
},
{
"name": "fms.time_speed"
}
]
}
}
\ No newline at end of file
/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export default {
onCreate() {
console.info('[FormComponent.hostk] Application onCreate')
},
onDestroy() {
console.info('[FormComponent.hostk] Application onDestroy')
},
}
\ No newline at end of file
import formManager from '@ohos.ability.formmanager';
import bundleManager from '@ohos.bundle';
import abilityManager from '@ohos.app.abilityManager';
export default class FormViewModel {
private static sFormViewModel: FormViewModel = null;
public static getInstance(): FormViewModel {
if (FormViewModel.sFormViewModel == null) {
FormViewModel.sFormViewModel = new FormViewModel();
}
return FormViewModel.sFormViewModel;
}
public async castTempFormToNormal(formId: string) {
formManager.castTempForm(formId)
.then((data) => {
console.info('[FormComponent] castTempForm result:' + data);
});
}
public async requestForm(formId: string) {
formManager.requestForm(formId)
.then((data) => {
console.info('[FormComponent] requestForm result:' + data);
});
}
public async deleteCard(formId: string) {
formManager.deleteForm(formId)
.then((data) => {
console.info('[FormComponent] deleteForm result:' + data);
});
}
public async releaseCard(formId: string) {
formManager.releaseForm(formId)
.then((data) => {
console.info('[FormComponent] releaseForm result:' + data);
});
}
public async enableCard(formId: string) {
formManager.enableFormsUpdate([formId])
.then((data) => {
console.info('[FormComponent] enableFormsUpdate result:' + data);
});
}
public async disableCard(formId: string) {
formManager.disableFormsUpdate([formId])
.then((data) => {
console.info('[FormComponent] disableCard result:' + data);
});
}
public async changeCardVisible(formId: string, isVisible: boolean) {
if (isVisible) {
formManager.notifyVisibleForms([formId])
.then((data) => {
console.info('[FormComponent] changeCardVisible result:' + data + ', isVisible:' + isVisible);
});
} else {
formManager.notifyInvisibleForms([formId])
.then((data) => {
console.info('[FormComponent] changeCardVisible result:' + data + ', isVisible:' + isVisible);
});
}
}
public async isFmsReady() {
formManager.isSystemReady()
.then((data) => {
console.info('[FormComponent] isFmsReady result:' + data);
});
}
public async getAllFormsInfo() {
formManager.getAllFormsInfo()
.then((data) => {
console.info('[FormComponent] getAllFormsInfo result:' + JSON.stringify(data));
});
}
public async getFormsInfoByApp(bundle: string) {
formManager.getFormsInfo(bundle)
.then((data) => {
console.info('[FormComponent] getFormsInfoByApp result:' + JSON.stringify(data));
});
}
public async getFormsInfoByModule(bundle: string, moduleName: string) {
formManager.getFormsInfo(bundle, moduleName)
.then((data) => {
console.info('[FormComponent] getFormsInfoByModule result:' + JSON.stringify(data));
});
}
public async clearFormUserCache() {
abilityManager.clearUpApplicationData('com.ohos.myapplicationform')
.then((data) => {
console.info('[FormComponent] cleanBundleCacheFiles result:' + JSON.stringify(data));
});
}
public async clearFormProviderCache(bundle: string) {
abilityManager.clearUpApplicationData(bundle)
.then((data) => {
console.info('[FormComponent] cleanBundleCacheFiles result:' + JSON.stringify(data));
});
}
}
\ No newline at end of file
{
"string": [
{
"name": "entry_MainAbility",
"value": "formhostK"
},
{
"name": "description_mainability",
"value": "ETS_Empty Ability"
}
]
}
\ No newline at end of file
# Copyright (c) 2021 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//test/xts/tools/build/suite.gni")
ohos_js_hap_suite("FormSupplyAppF") {
hap_profile = "entry/src/main/config.json"
deps = [
":FormOfFaEts_js_assets",
":FormOfFaEts_form_js_assets",
":FormOfFaEts_resources",
]
certificate_profile = "signature/openharmony_sx.p7b"
hap_name = "FormSupplyAppF"
part_name = "prebuilt_hap"
subsystem_name = "applications"
}
ohos_js_assets("FormOfFaEts_js_assets") {
hap_profile = "entry/src/main/config.json"
ets2abc = true
source_dir = "entry/src/main/ets"
}
ohos_js_assets("FormOfFaEts_form_js_assets") {
hap_profile = "entry/src/main/config.json"
js2abc = true
source_dir = "entry/src/main/js"
}
ohos_resources("FormOfFaEts_resources") {
sources = [
"entry/src/main/resources",
]
hap_profile = "entry/src/main/config.json"
}
{
"app": {
"bundleName": "com.form.formsystemtestservicef.hmservice",
"vendor": "ohos",
"version": {
"code": 1000000,
"name": "1.0.0"
},
"apiVersion": {
"compatible": 9,
"releaseType": "Release",
"target": 9
}
},
"deviceConfig": {},
"module": {
"package": "com.form.formsystemtestservicef.hmservice",
"name": ".FormSupplyAppF",
"mainAbility": ".MainAbility",
"srcPath": "",
"deviceType": [
"phone"
],
"distro": {
"deliveryWithInstall": true,
"moduleName": "entry",
"moduleType": "entry",
"installationFree": false
},
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"orientation": "unspecified",
"visible": true,
"srcPath": "MainAbility",
"name": ".MainAbility",
"srcLanguage": "ets",
"icon": "$media:icon",
"description": "$string:description_mainability",
"label": "$string:entry_MainAbility",
"type": "page",
"launchType": "standard"
},
{
"name": ".FormAbility",
"srcPath": "FormAbility",
"icon": "$media:icon",
"description": "$string:description_mainability",
"label": "$string:entry_MainAbility",
"type": "service",
"formsEnabled": true,
"forms": [
{
"jsComponentName": "Form_Js001",
"isDefault": true,
"scheduledUpdateTime": "10:30",
"formVisibleNotify": true,
"defaultDimension": "1*2",
"name": "Form_Js001",
"description": "This is a form widget",
"colorMode": "auto",
"type": "JS",
"supportDimensions": [
"1*2", "2*2"
],
"updateEnabled": true,
"updateDuration": 1
}
],
"srcLanguage": "ets"
}
],
"js": [
{
"mode": {
"syntax": "ets",
"type": "pageAbility"
},
"pages": [
"pages/index",
"pages/second"
],
"name": ".MainAbility",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
},
{
"pages": [
"pages/index/index"
],
"name": "Form_Js001",
"window": {
"designWidth": 720,
"autoDesignWidth": true
},
"type": "form"
}
],
"defPermissions": [
{
"availableScope": [],
"grantMode": "system_grant",
"name": "FMS_FormSupply_commonEvent"
}
],
"reqPermissions": [
{
"reason": "need use FormSupply commonEvent",
"name": "FMS_FormSupply_commonEvent"
}
]
}
}
\ No newline at end of file
import commonEvent from '@ohos.commonEvent';
import formBindingData from '@ohos.application.formBindingData';
import formProvider from '@ohos.application.formProvider';
import {getCurrentTime} from '@ohos.systemTime';
let supplyForm_Event = "FMS_FormSupply_commonEvent";
function publishCallBack() {
console.info("!!!====>FormAbility publishCallBack====>");
}
export default {
async onCreate(want) {
const time = await getCurrentTime();
console.info('FormAbility onCreate, want:' + JSON.stringify(want));
let formData = {
temperature: "11°",
time: "11:00",
area: "Shenyang",
epidemic: true,
count: 10
};
let bindingData = formBindingData.createFormBindingData(formData);
var commonEventPublishData = {
parameters: {
"kind": "onCreate",
"parameters": JSON.stringify(want),
"data": JSON.stringify(formData),
"time": time
}
};
console.info(`FormAbility data ${JSON.stringify(commonEventPublishData)}`);
commonEvent.publish(supplyForm_Event, commonEventPublishData, publishCallBack);
return bindingData;
},
async onUpdate(formId) {
const time = await getCurrentTime();
console.info('FormAbility onUpdate, formId: ' + formId);
var commonEventPublishData = {
parameters: {
"kind": "onUpdate",
"parameters": formId,
"data": "",
"time": time
}
};
commonEvent.publish(supplyForm_Event, commonEventPublishData, publishCallBack);
},
async onCastToNormal(formId) {
const time = await getCurrentTime();
console.info('FormAbility onCastTemp, formId: ' + formId);
var commonEventPublishData = {
parameters: {
"kind": "onCastToNormal",
"parameters": formId,
"data": "",
"time": time
}
};
commonEvent.publish(supplyForm_Event, commonEventPublishData, publishCallBack);
},
async onEvent(formId, message) {
const time = await getCurrentTime();
console.info('FormAbility onTriggerEvent, formId: ' + formId + 'message: ' + message);
var commonEventPublishData = {
parameters: {
"kind": "onEvent",
"parameters": formId,
"data": message,
"time": time
}
};
commonEvent.publish(supplyForm_Event, commonEventPublishData, publishCallBack);
},
async onVisibilityChange(formEvents) {
const time = await getCurrentTime();
console.info('FormAbility onVisibilityChanged, ' + JSON.stringify(formEvents));
var commonEventPublishData = {
parameters: {
"kind": "onVisibilityChange",
"parameters": JSON.stringify(formEvents),
"data": "",
"time": time
}
};
commonEvent.publish(supplyForm_Event, commonEventPublishData, publishCallBack);
for (let key in formEvents) {
const value = formEvents[key];
key = key.toString();
console.log('form_extension onVisibilityChange, key:' + key + ", value=" + value);
let dataObj = {
temperature: "22°",
time: "22:00",
test: 22,
};
let obj = formBindingData.createFormBindingData(dataObj);
const updateFormStartTime = await getCurrentTime();
let data = await formProvider.updateForm(key, obj);
console.info('FormAbility onUpdateForm, res: ' + data);
const updateFormEndTime = await getCurrentTime();
commonEventPublishData = {
parameters: {
"kind": "onUpdateForm",
"parameters": key,
"data": "",
"time": updateFormEndTime - updateFormStartTime
}
};
commonEvent.publish(supplyForm_Event, commonEventPublishData, publishCallBack);
const setFormNextRefreshTimeStartTime = await getCurrentTime();
data = await formProvider.setFormNextRefreshTime(key, 5);
console.info('FormAbility setFormNextRefreshTime, res: ' + data);
const setFormNextRefreshTimeEndTime = await getCurrentTime();
commonEventPublishData = {
parameters: {
"kind": "onSetFormNextRefreshTime",
"parameters": key,
"data": "",
"time": setFormNextRefreshTimeEndTime - setFormNextRefreshTimeStartTime
}
};
commonEvent.publish(supplyForm_Event, commonEventPublishData, publishCallBack);
}
},
async onDestroy(formId) {
const time = await getCurrentTime();
console.info('FormAbility onDestroy, formId: ' + formId);
var commonEventPublishData = {
parameters: {
"kind": "onDestroy",
"parameters": formId,
"data": "",
"time": time
}
};
commonEvent.publish(supplyForm_Event, commonEventPublishData, publishCallBack);
}
};
\ No newline at end of file
export default {
onCreate() {
console.info('Application onCreate')
},
onDestroy() {
console.info('Application onDestroy')
},
}
\ No newline at end of file
import router from '@system.router';
async function routePage() {
let options = {
uri: 'pages/second'
}
try {
await router.push(options)
} catch (err) {
console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`)
}
}
@Entry
@Component
struct Index {
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Text('Hello World')
.fontSize(50)
.fontWeight(FontWeight.Bold)
Button() {
Text('next page')
.fontSize(25)
.fontWeight(FontWeight.Bold)
}.type(ButtonType.Capsule)
.margin({
top: 20
})
.backgroundColor('#0D9FFB')
.onClick(() => {
routePage()
})
}
.width('100%')
.height('100%')
}
}
\ No newline at end of file
import router from '@system.router';
@Entry
@Component
struct Second {
private content: string = "Second Page"
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Text(`${this.content}`)
.fontSize(50)
.fontWeight(FontWeight.Bold)
Button() {
Text('back to index')
.fontSize(20)
.fontWeight(FontWeight.Bold)
}.type(ButtonType.Capsule)
.margin({
top: 20
})
.backgroundColor('#0D9FFB')
.onClick(() => {
router.back()
})
}
.width('100%')
.height('100%')
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>close</title>
<defs>
<path d="M17.794004,3.20599605 C18.0686653,3.48065744 18.0686653,3.92597155 17.794004,4.20063295 L4.20063295,17.794004 C3.92597155,18.0686653 3.48065744,18.0686653 3.20599605,17.794004 C2.93133465,17.5193426 2.93133465,17.0740284 3.20599605,16.7993671 L9.50552887,10.4995027 L3.20599605,4.20063295 C2.93133465,3.92597155 2.93133465,3.48065744 3.20599605,3.20599605 C3.48065744,2.93133465 3.92597155,2.93133465 4.20063295,3.20599605 L10.5,9.50503155 L16.7993671,3.20599605 C17.0740284,2.93133465 17.5193426,2.93133465 17.794004,3.20599605 Z M17.8116829,16.9024344 C18.0627724,17.1535177 18.0627724,17.5606042 17.8116829,17.8116875 C17.5605935,18.0627708 17.1534972,18.0627708 16.9024078,17.8116875 L11.75,12.6591016 L12.6591236,11.75 L17.8116829,16.9024344 Z" id="path-1"></path>
</defs>
<g id="close" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Public/ic_public_cancel" transform="translate(2.000000, 2.000000)">
<rect id="矩形" x="0" y="0" width="20" height="20" rx="1"></rect>
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<use id="形状" fill="#000000" opacity="0.9" xlink:href="#path-1"></use>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Device/device_filled/ic_box</title>
<g id="Device/device_filled/ic_box" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M20.75,7 L20.75,15.25 C17.8333333,15.9166667 14.9166667,16.25 12,16.25 C9.08333333,16.25 6.16666667,15.9166667 3.25,15.25 L3.25,7 C3.25,3.8672437 5.65092038,1.29525241 8.71309141,1.02369584 C8.11116039,1.15396757 7.75,1.31954083 7.75,1.5 C7.75,1.91421356 9.65278981,2.25 12,2.25 C14.3472102,2.25 16.25,1.91421356 16.25,1.5 C16.25,1.31954083 15.8888396,1.15396757 15.2871144,1.02456181 C18.3490796,1.29525241 20.75,3.8672437 20.75,7 Z M12,7 C10.8954305,7 10,7.8954305 10,9 L10,9 L10,12.5 C10,13.6045695 10.8954305,14.5 12,14.5 C13.1045695,14.5 14,13.6045695 14,12.5 L14,12.5 L14,9 C14,7.8954305 13.1045695,7 12,7 Z" id="形状结合" fill="#000000" opacity="0.600000024"></path>
<path d="M3.25,16.25 C6.16666667,16.9166667 9.08333333,17.25 12,17.25 C14.9166667,17.25 17.8333333,16.9166667 20.75,16.25 L20.75,17 C20.75,20.3137085 18.0637085,23 14.75,23 L9.25,23 C5.9362915,23 3.25,20.3137085 3.25,17 L3.25,16.25 L3.25,16.25 Z" id="矩形备份" fill="#000000" opacity="0.400000006"></path>
<ellipse id="形状结合" fill="#000000" opacity="0.400000006" cx="12" cy="1.5" rx="4.25" ry="1"></ellipse>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Devices/Filled/ic_device_earphone_hero_filled</title>
<g id="Devices/Filled/ic_device_earphone_hero_filled" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g transform="translate(2.000000, 1.000000)" fill="#000000">
<path d="M7.25,9.25 L7.24989255,20 L4.00006383,20 L4,9.5144083 C4.43846832,9.60867398 4.87369787,9.65916188 5.28946414,9.65916188 C5.9859423,9.65916188 6.64873377,9.51328713 7.25,9.25 Z M12.7502064,9.25 C13.3514344,9.51328713 14.0141838,9.65916188 14.7106177,9.65916188 C15.0801643,9.65916188 15.4650883,9.61927021 15.8539954,9.54419959 L16,9.5144083 L15.9996862,20 L12.75,20 L12.7502064,9.25 Z M5.28934375,0.5 C7.61482498,0.5 9.5,2.40278981 9.5,4.75 C9.5,7.09721019 7.61482498,9 5.28934375,9 C3.60106403,9 1.30901196,7.99710851 0.333689904,6.54936157 C0.160158366,6.29177512 0.00741544807,5.60763155 0.000290124541,4.90055488 C-0.00218941366,4.65449959 0.0113343641,4.40566716 0.0366437552,4.17106649 L0.0552164146,4.01696111 C0.115894734,3.5620901 0.219966438,3.17926511 0.333689904,3.00455715 C1.29492863,1.52785169 3.580184,0.5 5.28934375,0.5 Z M14.7106562,0.5 C16.419816,0.5 18.7050714,1.52785169 19.6663101,3.00455715 C19.7800336,3.17926511 19.8841053,3.5620901 19.9447836,4.01696111 L19.9633562,4.17106649 C19.9886656,4.40566716 20.0021894,4.65449959 19.9997099,4.90055488 C19.9925846,5.60763155 19.8398416,6.29177512 19.6663101,6.54936157 C18.690988,7.99710851 16.398936,9 14.7106562,9 C12.385175,9 10.5,7.09721019 10.5,4.75 C10.5,2.40278981 12.385175,0.5 14.7106562,0.5 Z M1.11076307,3.30946938 C0.729286738,3.41236453 0.5,4.14753431 0.5,4.93047028 C0.5,5.71340625 0.8117058,6.34810127 1.19620597,6.34810127 C1.58070615,6.34810127 1.89240506,5.71340625 1.89240506,4.93047028 C1.89240506,4.38311622 1.84805169,3.79224284 1.64092196,3.49486161 C1.51819968,3.31866621 1.36415712,3.24112171 1.11076307,3.30946938 Z M18.359078,3.49486161 C18.1519483,3.79224284 18.1075949,4.38311622 18.1075949,4.93047028 C18.1075949,5.71340625 18.4192939,6.34810127 18.803794,6.34810127 C19.1882942,6.34810127 19.5,5.71340625 19.5,4.93047028 C19.5,4.14753431 19.2707133,3.41236453 18.8892369,3.30946938 C18.6358429,3.24112171 18.4818003,3.31866621 18.359078,3.49486161 Z M13.3792419,3.8800354 C12.8959928,3.8800354 12.5042419,4.27178624 12.5042419,4.7550354 C12.5042419,5.23828456 12.8959928,5.6300354 13.3792419,5.6300354 C13.8624911,5.6300354 14.2542419,5.23828456 14.2542419,4.7550354 C14.2542419,4.27178624 13.8624911,3.8800354 13.3792419,3.8800354 Z M16.1292419,3.8800354 C15.6459928,3.8800354 15.2542419,4.27178624 15.2542419,4.7550354 C15.2542419,5.23828456 15.6459928,5.6300354 16.1292419,5.6300354 C16.6124911,5.6300354 17.0042419,5.23828456 17.0042419,4.7550354 C17.0042419,4.27178624 16.6124911,3.8800354 16.1292419,3.8800354 Z M6.6229248,3.86981201 C6.13967565,3.86981201 5.7479248,4.26156286 5.7479248,4.74481201 C5.7479248,5.22806117 6.13967565,5.61981201 6.6229248,5.61981201 C7.10617396,5.61981201 7.4979248,5.22806117 7.4979248,4.74481201 C7.4979248,4.26156286 7.10617396,3.86981201 6.6229248,3.86981201 Z M3.8729248,3.86981201 C3.38967565,3.86981201 2.9979248,4.26156286 2.9979248,4.74481201 C2.9979248,5.22806117 3.38967565,5.61981201 3.8729248,5.61981201 C4.35617396,5.61981201 4.7479248,5.22806117 4.7479248,4.74481201 C4.7479248,4.26156286 4.35617396,3.86981201 3.8729248,3.86981201 Z" id="形状" opacity="0.600000024"></path>
<path d="M7.25,20 L7.25,20.875 C7.25,21.7724627 6.52246272,22.5 5.625,22.5 C4.72753728,22.5 4,21.7724627 4,20.875 L4,20 L7.25,20 Z M16,20 L16,20.875 C16,21.7724627 15.2724627,22.5 14.375,22.5 C13.4970473,22.5 12.7817124,21.8037509 12.7510258,20.9332835 L12.75,20.875 L12.75,20 L16,20 Z M1.64092196,3.49486161 C1.84805169,3.79224284 1.89240506,4.38311622 1.89240506,4.93047028 C1.89240506,5.71340625 1.58070615,6.34810127 1.19620597,6.34810127 C0.8117058,6.34810127 0.5,5.71340625 0.5,4.93047028 C0.5,4.14753431 0.729286738,3.41236453 1.11076307,3.30946938 C1.36415712,3.24112171 1.51819968,3.31866621 1.64092196,3.49486161 Z M18.8892369,3.30946938 C19.2707133,3.41236453 19.5,4.14753431 19.5,4.93047028 C19.5,5.71340625 19.1882942,6.34810127 18.803794,6.34810127 C18.4192939,6.34810127 18.1075949,5.71340625 18.1075949,4.93047028 C18.1075949,4.38311622 18.1519483,3.79224284 18.359078,3.49486161 C18.4818003,3.31866621 18.6358429,3.24112171 18.8892369,3.30946938 Z" id="形状结合" opacity="0.400000006"></path>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns:xlink="http://www.w3.org/1999/xlink"
height="20px"
version="1.1"
viewBox="0 0 4 20"
width="4px"
xmlns="http://www.w3.org/2000/svg">
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>ic_list</title>
<desc>Created with Sketch.</desc>
<g
fill="none"
fill-rule="evenodd"
id="ic_list"
stroke="none"
stroke-width="1">
<path
d="M2,0 C3.1045695,-2.02906125e-16 4,0.8954305 4,2 L4,18 C4,19.1045695 3.1045695,20 2,20 C0.8954305,20 1.3527075e-16,19.1045695 0,18 L0,2 C-1.3527075e-16,0.8954305 0.8954305,2.02906125e-16 2,0 Z"
fill="#42CAD2"
id="rectangular"/>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Device/device_filled/ic_pad</title>
<g id="Device/device_filled/ic_pad" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M20.5,3.75 L3.5,3.75 C1.98121694,3.75 0.75,4.98121694 0.75,6.5 L0.75,17.5 C0.75,19.0187831 1.98121694,20.25 3.5,20.25 L20.5,20.25 C22.0187831,20.25 23.25,19.0187831 23.25,17.5 L23.25,6.5 C23.25,4.98121694 22.0187831,3.75 20.5,3.75 Z M3.5,5.25 L20.5,5.25 C21.1903559,5.25 21.75,5.80964406 21.75,6.5 L21.75,17.5 C21.75,18.1903559 21.1903559,18.75 20.5,18.75 L3.5,18.75 C2.80964406,18.75 2.25,18.1903559 2.25,17.5 L2.25,6.5 C2.25,5.80964406 2.80964406,5.25 3.5,5.25 Z" id="Rectangle-Copy-6" fill="#000000" fill-rule="nonzero" opacity="0.600000024"></path>
<path d="M4.26242519,6.27018718 L19.7291142,6.27018718 C20.281399,6.27018718 20.7291142,6.71790243 20.7291142,7.27018718 L20.7291142,16.7351733 C20.7291142,17.2874581 20.281399,17.7351733 19.7291142,17.7351733 L4.26242519,17.7351733 C3.71014044,17.7351733 3.26242519,17.2874581 3.26242519,16.7351733 L3.26242519,7.27018718 C3.26242519,6.71790243 3.71014044,6.27018718 4.26242519,6.27018718 Z" id="矩形" fill="#000000" fill-rule="nonzero" opacity="0.400000006"></path>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Device/device_filled/ic_pc</title>
<g id="Device/device_filled/ic_pc" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="编组" transform="translate(1.000000, 4.000000)" fill="#000000" fill-rule="nonzero">
<path d="M21.3122934,15.125 C21.6919892,15.125 21.9997934,15.4328042 21.9997934,15.8125 C21.9997934,16.1786352 21.7135826,16.4779223 21.3526893,16.4988329 L21.3122934,16.5 L0.6875,16.5 C0.307804234,16.5 -1.30266168e-13,16.1921958 -1.30266168e-13,15.8125 C-1.30266168e-13,15.4463648 0.286210825,15.1470777 0.647104153,15.1261671 L0.6875,15.125 L21.3122934,15.125 Z M18.1041667,0 C19.749515,0 21.0833333,1.33381835 21.0833333,2.97916667 L21.0833333,2.97916667 L21.0833333,11.6875 C21.0833333,13.3328483 19.749515,14.6666667 18.1041667,14.6666667 L18.1041667,14.6666667 L3.89583333,14.6666667 C2.25048502,14.6666667 0.916666667,13.3328483 0.916666667,11.6875 L0.916666667,11.6875 L0.916666667,2.97916667 C0.916666667,1.33381835 2.25048502,0 3.89583333,0 L3.89583333,0 Z M18.1041667,1.375 L3.89583333,1.375 C3.00987655,1.375 2.29166667,2.09320988 2.29166667,2.97916667 L2.29166667,2.97916667 L2.29166667,11.6875 C2.29166667,12.5734568 3.00987655,13.2916667 3.89583333,13.2916667 L3.89583333,13.2916667 L18.1041667,13.2916667 C18.9901235,13.2916667 19.7083333,12.5734568 19.7083333,11.6875 L19.7083333,11.6875 L19.7083333,2.97916667 C19.7083333,2.09320988 18.9901235,1.375 18.1041667,1.375 L18.1041667,1.375 Z" id="形状结合" opacity="0.600000024"></path>
<path d="M3.66507544,2.32109338 L18.31905,2.32109338 C18.5721805,2.32109338 18.7773833,2.5262962 18.7773833,2.77942671 L18.7773833,11.9056364 C18.7773833,12.1587669 18.5721805,12.3639697 18.31905,12.3639697 L3.66507544,12.3639697 C3.41194493,12.3639697 3.20674211,12.1587669 3.20674211,11.9056364 L3.20674211,2.77942671 C3.20674211,2.5262962 3.41194493,2.32109338 3.66507544,2.32109338 Z" id="矩形" opacity="0.400000006"></path>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Public/ic_public_search</title>
<defs>
<path d="M17.4552585,16.5201811 L20.8132621,19.8776019 C21.1061553,20.1704951 21.1061553,20.6453689 20.8132621,20.9382621 C20.5203689,21.2311553 20.0454951,21.2311553 19.7526019,20.9382621 L16.3849514,17.5705115 C16.7690371,17.2493647 17.1270214,16.8980393 17.4552585,16.5201811 Z M10.375,2 C15.0003848,2 18.75,5.74961522 18.75,10.375 C18.75,12.4492584 17.9959213,14.3473923 16.746948,15.8102175 L16.746948,15.8102175 L16.7248309,15.8360159 C16.6580095,15.9136422 16.5897889,15.9900296 16.5202083,16.0651391 L16.746948,15.8102175 C16.6540763,15.9189909 16.5584681,16.0253575 16.4602302,16.1292106 C16.4016383,16.1911476 16.342303,16.2519995 16.2820606,16.3119405 C16.2610861,16.3328082 16.240292,16.3532825 16.2193918,16.3736485 C16.1491692,16.4420866 16.0772901,16.5097189 16.0042335,16.576078 C15.9759275,16.6017907 15.9472456,16.6274881 15.9183866,16.6529896 C15.8514229,16.712158 15.7837649,16.7700565 15.7151861,16.8268826 C15.7013815,16.8383205 15.6877981,16.8495035 15.674179,16.8606444 C14.2305262,18.0415704 12.3854944,18.75 10.375,18.75 C5.74961522,18.75 2,15.0003848 2,10.375 C2,5.74961522 5.74961522,2 10.375,2 Z M10.375,3.5 C6.57804235,3.5 3.5,6.57804235 3.5,10.375 C3.5,14.1719577 6.57804235,17.25 10.375,17.25 C14.1719577,17.25 17.25,14.1719577 17.25,10.375 C17.25,6.57804235 14.1719577,3.5 10.375,3.5 Z" id="path-1"></path>
</defs>
<g id="Public/ic_public_search" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<use id="形状结合" fill="#000000" fill-rule="nonzero" xlink:href="#path-1"></use>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Device/device_filled/ic_tv</title>
<g id="Device/device_filled/ic_tv" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="编组" transform="translate(1.000000, 4.000000)" fill="#000000" fill-rule="nonzero">
<path d="M19.7083333,0 C20.9739859,0 22,1.02601411 22,2.29166667 L22,11.4583333 C22,12.7239859 20.9739859,13.75 19.7083333,13.75 L19.7083333,14.6666667 C19.7083333,15.1729277 19.2979277,15.5833333 18.7916667,15.5833333 L3.20833333,15.5833333 C2.70207231,15.5833333 2.29166667,15.1729277 2.29166667,14.6666667 L2.29166667,13.75 C1.02601411,13.75 0,12.7239859 0,11.4583333 L0,2.29166667 C0,1.02601411 1.02601411,0 2.29166667,0 L19.7083333,0 Z M19.7083333,1.375 L2.29166667,1.375 C1.80074689,1.375 1.39996109,1.76090944 1.37612184,2.24591575 L1.375,2.29166667 L1.375,11.4583333 C1.375,11.9492531 1.76090944,12.3500389 2.24591575,12.3738782 L2.29166667,12.375 L19.7083333,12.375 C20.1992531,12.375 20.6000389,11.9890906 20.6238782,11.5040842 L20.625,11.4583333 L20.625,2.29166667 C20.625,1.80074689 20.2390906,1.39996109 19.7540842,1.37612184 L19.7083333,1.375 Z" id="形状结合" opacity="0.600000024"></path>
<path d="M3.1899184,2.2659717 L18.7634369,2.23149511 C19.2696955,2.22981431 19.6810087,2.63931039 19.6821294,3.14557018 C19.6821298,3.14575691 19.6821302,3.14594365 19.6815704,3.14613129 L19.6934547,10.5615364 C19.6942661,11.0677968 19.2845187,11.4788597 18.7782583,11.479671 C18.7767063,11.4796735 18.7751543,11.4796721 18.7736024,11.4796667 L3.18876085,11.4254844 C2.68374698,11.4237287 2.27528104,11.0138402 2.27528104,10.5088233 L2.27528104,3.18263612 C2.27528104,2.67716741 2.68445093,2.2670907 3.1899184,2.2659717 Z" id="矩形" opacity="0.400000006"></path>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns:xlink="http://www.w3.org/1999/xlink"
height="24px"
version="1.1"
viewBox="0 0 24 24"
width="24px"
xmlns="http://www.w3.org/2000/svg">
<title>ic_vision</title>
<g
fill="none"
fill-rule="evenodd"
id="ic_vision"
stroke="none"
stroke-width="1">
<circle
cx="12"
cy="12"
fill="#9E9E9E"
id="path"
r="10.75"
stroke="#E0DAED"
stroke-width="1.5"/>
<path
d="M17.7418165,7.71428571 C17.9806161,7.71428571 18.0672107,7.73914972 18.1545122,7.78583912 C18.2418138,7.83252852 18.3103286,7.90104331 18.357018,7.9883449 C18.4037074,8.07564649 18.4285714,8.16224102 18.4285714,8.40104068 L18.4285714,15.063245 C18.4285714,15.3020447 18.4037074,15.3886392 18.357018,15.4759408 C18.3103286,15.5632424 18.2418138,15.6317572 18.1545122,15.6784466 C18.0672107,15.725136 17.9806161,15.75 17.7418165,15.75 L17.0884286,15.7492857 L17.0892857,16.0178571 C17.0892857,16.1657906 16.969362,16.2857143 16.8214286,16.2857143 L7.17857143,16.2857143 C7.03063801,16.2857143 6.91071429,16.1657906 6.91071429,16.0178571 L6.91042857,15.7492857 L6.25818354,15.75 C6.01938387,15.75 5.93278935,15.725136 5.84548776,15.6784466 C5.75818617,15.6317572 5.68967137,15.5632424 5.64298197,15.4759408 C5.59874991,15.393234 5.57410629,15.3111619 5.57163475,15.0997077 L5.57142857,8.40104068 C5.57142857,8.16224102 5.59629257,8.07564649 5.64298197,7.9883449 C5.68967137,7.90104331 5.75818617,7.83252852 5.84548776,7.78583912 C5.92819452,7.74160705 6.0102667,7.71696344 6.22172089,7.7144919 L17.7418165,7.71428571 Z M17.625,8.51785714 L6.375,8.51785714 L6.375,14.9464286 L17.625,14.9464286 L17.625,8.51785714 Z"
fill="#FFFFFF"
fill-opacity="0.9"
id="vision"/>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>svgProgressBar/circle/normal备份</title>
<defs>
<path d="M17.6173185,16.3285266 L20.8132621,19.5240485 C21.2037864,19.9145728 21.2037864,20.5477378 20.8132621,20.9382621 C20.4227378,21.3287864 19.7895728,21.3287864 19.3990485,20.9382621 L16.1899558,17.7291824 C16.7140263,17.3142375 17.1927017,16.8444643 17.6173185,16.3285266 Z M10.375,2 C15.0003848,2 18.75,5.74961522 18.75,10.375 C18.75,12.3078759 18.0952147,14.0878185 16.9953602,15.5051118 L16.780305,15.7709059 C16.6753852,15.895325 16.5669064,16.0166446 16.4550255,16.1347079 L16.3188514,16.2751074 L16.3188514,16.2751074 L16.1390248,16.4509317 L16.1390248,16.4509317 L16.0053714,16.5750421 L16.0053714,16.5750421 L15.6667619,16.8667044 L15.6667619,16.8667044 L15.4804548,17.0144215 L15.4804548,17.0144215 C14.0671999,18.1027758 12.2966836,18.75 10.375,18.75 C5.74961522,18.75 2,15.0003848 2,10.375 C2,5.74961522 5.74961522,2 10.375,2 Z M10.375,4 C6.85418472,4 4,6.85418472 4,10.375 C4,13.8958153 6.85418472,16.75 10.375,16.75 C13.8958153,16.75 16.75,13.8958153 16.75,10.375 C16.75,6.85418472 13.8958153,4 10.375,4 Z" id="path-1"></path>
</defs>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.6">
<g id="控制中心备份-2" transform="translate(-170.000000, -526.000000)">
<g id="Public/ic_public_input_search" transform="translate(168.000000, 524.000000)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<g id="形状" fill-rule="nonzero"></g>
<g id="Symbol/color-light/colorPrimary" mask="url(#mask-2)" fill="#000000" fill-opacity="0.9" fill-rule="evenodd">
<rect id="color/#000000" x="0" y="0" width="24" height="24"></rect>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>superdevice</title>
<g id="superdevice" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" fill-opacity="0.9">
<g id="public/ic_about_filled备份-2" transform="translate(1.000000, 1.000000)" fill="#000000">
<path d="M10.9451065,1.07114317e-12 C17.0505556,1.07114317e-12 22,4.92486775 22,11 C22,11.4840408 21.9685798,11.9607795 21.9076581,12.4283068 C21.2039599,17.8286533 16.5640993,22 10.9451065,22 C6.13748038,22 1.92539358,18.9185887 0.443795295,14.4461409 C0.310444484,14.0435996 0.530294978,13.60971 0.934845117,13.4770213 C1.33939526,13.3443327 1.77545013,13.5630915 1.90880094,13.9656328 C3.18344566,17.8133573 6.80822603,20.4651163 10.9451065,20.4651163 C16.1986325,20.4651163 20.4574567,16.2274394 20.4574567,11 C20.4574567,5.77256062 16.1986325,1.53488372 10.9451065,1.53488372 C6.75097988,1.53488372 3.08786496,4.26028378 1.86077134,8.18352784 C1.73419123,8.58822773 1.3018665,8.81419789 0.895147024,8.68824632 C0.488427551,8.56229475 0.261329725,8.13211675 0.387909834,7.72741685 C1.81431312,3.16694316 6.07089069,1.07114317e-12 10.9451065,1.07114317e-12 Z M11.1765345,3.58139535 C14.2719945,3.58139535 16.792992,5.20275905 17.9027002,8.02323797 C18.0579852,8.41791663 17.8623217,8.8631252 17.4656735,9.01763915 C17.0690252,9.1721531 16.6215949,8.97746114 16.4663099,8.58278249 C15.586173,6.34579115 13.6318095,5.11627907 11.1765345,5.11627907 C7.91082915,5.11627907 5.26345191,7.75051066 5.26345191,11 C5.26345191,14.2494893 7.91082915,16.8837209 11.1765345,16.8837209 C13.6215862,16.8837209 15.6910503,15.5489781 16.5782539,13.3256677 C16.7354497,12.9317388 17.1838183,12.7391959 17.5797132,12.8956112 C17.975608,13.0520265 18.1691117,13.4981687 18.0119158,13.8920977 C16.8933274,16.6952528 14.2590849,18.4186047 11.1765345,18.4186047 C7.05890602,18.4186047 3.72090863,15.0971822 3.72090863,11 C3.72090863,6.90281779 7.05890602,3.58139535 11.1765345,3.58139535 Z M11.1765345,8.44186047 C12.5964064,8.44186047 13.7474399,9.58717855 13.7474399,11 C13.7474399,12.4128215 12.5964064,13.5581395 11.1765345,13.5581395 C9.75666259,13.5581395 8.60562901,12.4128215 8.60562901,11 C8.60562901,9.58717855 9.75666259,8.44186047 11.1765345,8.44186047 Z M17.6570239,9.97674419 C18.2249727,9.97674419 18.6853861,10.4348714 18.6853861,11 C18.6853861,11.5651286 18.2249727,12.0232558 17.6570239,12.0232558 C17.0890752,12.0232558 16.6286617,11.5651286 16.6286617,11 C16.6286617,10.4348714 17.0890752,9.97674419 17.6570239,9.97674419 Z M1.02836218,9.97674419 C1.59631094,9.97674419 2.05672437,10.4348714 2.05672437,11 C2.05672437,11.5651286 1.59631094,12.0232558 1.02836218,12.0232558 C0.460413433,12.0232558 0,11.5651286 0,11 C0,10.4348714 0.460413433,9.97674419 1.02836218,9.97674419 Z" id="形状结合"></path>
</g>
</g>
</svg>
\ No newline at end of file
{"appID": "com.example.myapplication","appName": "$string:entry_MainAbility","versionName": "1.0.0","versionCode": 1000000,"minPlatformVersion": 7,"pages": ["pages/index/index"],"deviceType": ["phone"],"type": "form","window": {"autoDesignWidth": true,"designWidth": 720}}
\ No newline at end of file
{
"template": {
"attr": {},
"type": "div",
"classList": [
"container"
],
"children": [
{
"attr": {},
"type": "div",
"classList": [
"bottom"
],
"style": {
"display": "{{isShow}}"
},
"children": [
{
"attr": {},
"type": "div",
"classList": [
"bg_color"
],
"events": {
"click": "routerEvent"
},
"children": [
{
"attr": {
"src": "/common/img/ic_pad.svg"
},
"type": "image",
"classList": [
"img1"
]
}
]
},
{
"attr": {},
"type": "div",
"classList": [
"pic_title_container"
],
"children": [
{
"attr": {},
"type": "div",
"style": {
"flexDirection": "column"
},
"children": [
{
"attr": {
"value": "{{temperature}}"
},
"type": "text",
"classList": [
"title"
]
},
{
"attr": {
"value": "{{time}}"
},
"type": "text",
"classList": [
"content"
]
},
{
"attr": {
"src": "{{image1}}"
},
"type": "image",
"classList": [
"title"
]
}
]
}
]
}
]
}
]
},
"styles": {
".container": {
"display": "flex",
"flexDirection": "column",
"left": "0px",
"top": "0px",
"width": "640vp",
"backgroundColor": "#eeeeee"
},
".pic_title_container": {
"backgroundColor": "#FF007DFB",
"flexDirection": "column",
"height": "100%",
"paddingTop": "12px",
"paddingStart": "12px",
"paddingBottom": "12px",
"justifyContent": "space-between"
},
".content": {
"fontSize": "12px",
"color": "#99ffffff",
"textOverflow": "ellipsis",
"maxLines": "1"
},
".title": {
"fontSize": "16px",
"color": "#e5ffffff",
"marginBottom": "2px"
},
".head": {
"width": "90%",
"height": "70vp",
"display": "flex",
"marginTop": "8px",
"justifyContent": "space-between",
"alignItems": "center"
},
".right": {
"flexGrow": 1,
"marginLeft": "260vp"
},
".img": {
"marginLeft": "48vp",
"marginTop": "5px",
"width": "36vp",
"height": "36vp"
},
".bottom": {
"marginTop": "-12px",
"width": "90%",
"display": "flex",
"flexDirection": "column",
"marginLeft": "30px"
},
".bg_color": {
"width": "48vp",
"height": "48vp",
"borderBottomLeftRadius": "48px",
"borderBottomRightRadius": "48px",
"borderTopLeftRadius": "48px",
"borderTopRightRadius": "48px",
"backgroundColor": "#cccccc",
"marginLeft": "36%"
},
".img1": {
"marginTop": "14vp",
"marginLeft": "14vp"
},
".text": {
"marginTop": "16px",
"fontSize": "12px",
"display": "flex",
"justifyContent": "center"
},
".co_blue": {
"marginLeft": "12px",
"color": "#1e90ff"
},
".todo-wrapper": {
"marginTop": "0vp",
"display": "flex",
"flexDirection": "row",
"width": "80%"
},
".todo-item": {
"width": "85vp",
"display": "flex",
"flexDirection": "column",
"marginRight": "10px",
"alignItems": "center"
},
".bg_color1": {
"width": "48vp",
"height": "48vp",
"borderBottomLeftRadius": "48px",
"borderBottomRightRadius": "48px",
"borderTopLeftRadius": "48px",
"borderTopRightRadius": "48px",
"backgroundColor": "#cccccc",
"marginBottom": "6vp"
},
".title_img": {
"marginTop": "14vp",
"marginLeft": "11vp"
},
".todo-title": {
"textAlign": "center",
"fontSize": "10px",
"color": "#E5000000"
}
},
"data": {
"temperature": "超级终端",
"time": "qqqq",
"ifShow": "none",
"image1": "memory://image1",
"isShow": "flex",
"deviceList": [
{
"img": "/common/img/ic_pad.svg",
"deviceName": "huawei",
"deviceType": 17,
"deviceId": 1
}
]
},
"actions": {
"routerEvent": {
"action": "message",
"bundleName": "com.ohos.photos",
"abilityName": "com.ohos.photos.MainAbility",
"params": {
"message": "addDetail"
}
},
"searchDeviceList": {
"action": "message",
"bundleName": "com.lizhiqi.card.hmservice",
"abilityName": "com.lizhiqi.card.MainAbility",
"params": {
"message": "searchList"
}
}
},
"apiVersion": {}
}
\ No newline at end of file
{
"string": [
{
"name": "entry_MainAbility",
"value": "提供方F"
},
{
"name": "description_mainability",
"value": "eTS_Empty Ability"
},
{
"name": "description_serviceability",
"value": "hap sample empty service"
}
]
}
\ No newline at end of file
# Copyright (c) 2021 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//test/xts/tools/build/suite.gni")
ohos_js_hap_suite("FormSupplyAppG") {
hap_profile = "entry/src/main/config.json"
deps = [
":FormOfFaEts_js_assets",
":FormOfFaEts_form_js_assets",
":FormOfFaEts_resources",
]
certificate_profile = "signature/openharmony_sx.p7b"
hap_name = "FormSupplyAppG"
part_name = "prebuilt_hap"
subsystem_name = "applications"
}
ohos_js_assets("FormOfFaEts_js_assets") {
hap_profile = "entry/src/main/config.json"
ets2abc = true
source_dir = "entry/src/main/ets"
}
ohos_js_assets("FormOfFaEts_form_js_assets") {
hap_profile = "entry/src/main/config.json"
js2abc = true
source_dir = "entry/src/main/js"
}
ohos_resources("FormOfFaEts_resources") {
sources = [
"entry/src/main/resources",
]
hap_profile = "entry/src/main/config.json"
}
{
"app": {
"bundleName": "com.form.formsystemtestserviceg.hmservice",
"vendor": "ohos",
"version": {
"code": 1000000,
"name": "1.0.0"
},
"apiVersion": {
"compatible": 9,
"releaseType": "Release",
"target": 9
}
},
"deviceConfig": {},
"module": {
"package": "com.form.formsystemtestserviceg.hmservice",
"name": ".FormSupplyAppG",
"mainAbility": ".MainAbility",
"srcPath": "",
"deviceType": [
"phone"
],
"distro": {
"deliveryWithInstall": true,
"moduleName": "entry",
"moduleType": "entry",
"installationFree": false
},
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"orientation": "unspecified",
"visible": true,
"srcPath": "MainAbility",
"name": ".MainAbility",
"srcLanguage": "ets",
"icon": "$media:icon",
"description": "$string:description_mainability",
"label": "$string:entry_MainAbility",
"type": "page",
"launchType": "standard"
},
{
"name": ".FormAbility",
"srcPath": "FormAbility",
"icon": "$media:icon",
"description": "$string:description_mainability",
"label": "$string:entry_MainAbility",
"type": "service",
"formsEnabled": true,
"forms": [
{
"jsComponentName": "Form_Js001",
"isDefault": true,
"scheduledUpdateTime": "10:30",
"formVisibleNotify": true,
"defaultDimension": "1*2",
"name": "Form_Js001",
"description": "This is a form widget",
"colorMode": "auto",
"type": "JS",
"supportDimensions": [
"1*2", "2*2"
],
"updateEnabled": true,
"updateDuration": 1
}
],
"srcLanguage": "ets"
}
],
"js": [
{
"mode": {
"syntax": "ets",
"type": "pageAbility"
},
"pages": [
"pages/index",
"pages/second"
],
"name": ".MainAbility",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
},
{
"pages": [
"pages/index/index"
],
"name": "Form_Js001",
"window": {
"designWidth": 720,
"autoDesignWidth": true
},
"type": "form"
}
],
"defPermissions": [
{
"availableScope": [],
"grantMode": "system_grant",
"name": "FMS_FormSupply_commonEvent"
}
],
"reqPermissions": [
{
"reason": "need use FormSupply commonEvent",
"name": "FMS_FormSupply_commonEvent"
}
]
}
}
\ No newline at end of file
import commonEvent from '@ohos.commonEvent';
import formBindingData from '@ohos.application.formBindingData';
import formProvider from '@ohos.application.formProvider';
import {getCurrentTime} from '@ohos.systemTime';
let supplyForm_Event = "FMS_FormSupply_commonEvent";
function publishCallBack() {
console.info("!!!====>FormAbility publishCallBack====>");
}
export default {
async onCreate(want) {
const time = await getCurrentTime();
console.info('FormAbility onCreate, want:' + JSON.stringify(want));
let formData = {
temperature: "11°",
time: "11:00",
area: "Shenyang",
epidemic: true,
"test_over_1k":'test over 1k of data,test over 1k of data,test over 1k of data,test over 1k of data' +
'test over 1k of data,test over 1k of data,test over 1k of data,test over 1k of data' +
'test over 1k of data,test over 1k of data,test over 1k of data,test over 1k of data' +
'test over 1k of data,test over 1k of data,test over 1k of data,test over 1k of data' +
'test over 1k of data,test over 1k of data,test over 1k of data,test over 1k of data' +
'test over 1k of data,test over 1k of data,test over 1k of data,test over 1k of data' +
'test over 1k of data,test over 1k of data,test over 1k of data,test over 1k of data' +
'test over 1k of data,test over 1k of data,test over 1k of data,test over 1k of data' +
'test over 1k of data,test over 1k of data,test over 1k of data,test over 1k of data' +
'test over 1k of data,test over 1k of data,test over 1k of data,test over 1k of data' +
'test over 1k of data,test over 1k of data,test over 1k of data,test over 1k of data' +
'test over 1k of data,test over 1k of',
count: 10
};
let bindingData = formBindingData.createFormBindingData(formData);
var commonEventPublishData = {
parameters: {
"kind": "onCreate",
"parameters": JSON.stringify(want),
"data": JSON.stringify(formData),
"time": time
}
};
console.info(`FormAbility data ${JSON.stringify(commonEventPublishData)}`);
commonEvent.publish(supplyForm_Event, commonEventPublishData, publishCallBack);
return bindingData;
},
async onUpdate(formId) {
const time = await getCurrentTime();
console.info('FormAbility onUpdate, formId: ' + formId);
var commonEventPublishData = {
parameters: {
"kind": "onUpdate",
"parameters": formId,
"data": "",
"time": time
}
};
commonEvent.publish(supplyForm_Event, commonEventPublishData, publishCallBack);
},
async onCastToNormal(formId) {
const time = await getCurrentTime();
console.info('FormAbility onCastTemp, formId: ' + formId);
var commonEventPublishData = {
parameters: {
"kind": "onCastToNormal",
"parameters": formId,
"data": "",
"time": time
}
};
commonEvent.publish(supplyForm_Event, commonEventPublishData, publishCallBack);
},
async onEvent(formId, message) {
const time = await getCurrentTime();
console.info('FormAbility onTriggerEvent, formId: ' + formId + 'message: ' + message);
var commonEventPublishData = {
parameters: {
"kind": "onEvent",
"parameters": formId,
"data": message,
"time": time
}
};
commonEvent.publish(supplyForm_Event, commonEventPublishData, publishCallBack);
},
async onVisibilityChange(formEvents) {
const time = await getCurrentTime();
console.info('FormAbility onVisibilityChanged, ' + JSON.stringify(formEvents));
var commonEventPublishData = {
parameters: {
"kind": "onVisibilityChange",
"parameters": JSON.stringify(formEvents),
"data": "",
"time": time
}
};
commonEvent.publish(supplyForm_Event, commonEventPublishData, publishCallBack);
for (let key in formEvents) {
const value = formEvents[key];
key = key.toString();
console.log('form_extension onVisibilityChange, key:' + key + ", value=" + value);
let dataObj = {
temperature: "22°",
time: "22:00",
test: 22,
};
let obj = formBindingData.createFormBindingData(dataObj);
const updateFormStartTime = await getCurrentTime();
let data = await formProvider.updateForm(key, obj);
console.info('FormAbility onUpdateForm, res: ' + data);
const updateFormEndTime = await getCurrentTime();
commonEventPublishData = {
parameters: {
"kind": "onUpdateForm",
"parameters": key,
"data": "",
"time": updateFormEndTime - updateFormStartTime
}
};
commonEvent.publish(supplyForm_Event, commonEventPublishData, publishCallBack);
const setFormNextRefreshTimeStartTime = await getCurrentTime();
data = await formProvider.setFormNextRefreshTime(key, 5);
console.info('FormAbility setFormNextRefreshTime, res: ' + data);
const setFormNextRefreshTimeEndTime = await getCurrentTime();
commonEventPublishData = {
parameters: {
"kind": "onSetFormNextRefreshTime",
"parameters": key,
"data": "",
"time": setFormNextRefreshTimeEndTime - setFormNextRefreshTimeStartTime
}
};
commonEvent.publish(supplyForm_Event, commonEventPublishData, publishCallBack);
}
},
async onDestroy(formId) {
const time = await getCurrentTime();
console.info('FormAbility onDestroy, formId: ' + formId);
var commonEventPublishData = {
parameters: {
"kind": "onDestroy",
"parameters": formId,
"data": "",
"time": time
}
};
commonEvent.publish(supplyForm_Event, commonEventPublishData, publishCallBack);
}
};
\ No newline at end of file
export default {
onCreate() {
console.info('Application onCreate')
},
onDestroy() {
console.info('Application onDestroy')
},
}
\ No newline at end of file
import router from '@system.router';
async function routePage() {
let options = {
uri: 'pages/second'
}
try {
await router.push(options)
} catch (err) {
console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`)
}
}
@Entry
@Component
struct Index {
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Text('Hello World')
.fontSize(50)
.fontWeight(FontWeight.Bold)
Button() {
Text('next page')
.fontSize(25)
.fontWeight(FontWeight.Bold)
}.type(ButtonType.Capsule)
.margin({
top: 20
})
.backgroundColor('#0D9FFB')
.onClick(() => {
routePage()
})
}
.width('100%')
.height('100%')
}
}
\ No newline at end of file
import router from '@system.router';
@Entry
@Component
struct Second {
private content: string = "Second Page"
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Text(`${this.content}`)
.fontSize(50)
.fontWeight(FontWeight.Bold)
Button() {
Text('back to index')
.fontSize(20)
.fontWeight(FontWeight.Bold)
}.type(ButtonType.Capsule)
.margin({
top: 20
})
.backgroundColor('#0D9FFB')
.onClick(() => {
router.back()
})
}
.width('100%')
.height('100%')
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>close</title>
<defs>
<path d="M17.794004,3.20599605 C18.0686653,3.48065744 18.0686653,3.92597155 17.794004,4.20063295 L4.20063295,17.794004 C3.92597155,18.0686653 3.48065744,18.0686653 3.20599605,17.794004 C2.93133465,17.5193426 2.93133465,17.0740284 3.20599605,16.7993671 L9.50552887,10.4995027 L3.20599605,4.20063295 C2.93133465,3.92597155 2.93133465,3.48065744 3.20599605,3.20599605 C3.48065744,2.93133465 3.92597155,2.93133465 4.20063295,3.20599605 L10.5,9.50503155 L16.7993671,3.20599605 C17.0740284,2.93133465 17.5193426,2.93133465 17.794004,3.20599605 Z M17.8116829,16.9024344 C18.0627724,17.1535177 18.0627724,17.5606042 17.8116829,17.8116875 C17.5605935,18.0627708 17.1534972,18.0627708 16.9024078,17.8116875 L11.75,12.6591016 L12.6591236,11.75 L17.8116829,16.9024344 Z" id="path-1"></path>
</defs>
<g id="close" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Public/ic_public_cancel" transform="translate(2.000000, 2.000000)">
<rect id="矩形" x="0" y="0" width="20" height="20" rx="1"></rect>
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<use id="形状" fill="#000000" opacity="0.9" xlink:href="#path-1"></use>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Device/device_filled/ic_box</title>
<g id="Device/device_filled/ic_box" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M20.75,7 L20.75,15.25 C17.8333333,15.9166667 14.9166667,16.25 12,16.25 C9.08333333,16.25 6.16666667,15.9166667 3.25,15.25 L3.25,7 C3.25,3.8672437 5.65092038,1.29525241 8.71309141,1.02369584 C8.11116039,1.15396757 7.75,1.31954083 7.75,1.5 C7.75,1.91421356 9.65278981,2.25 12,2.25 C14.3472102,2.25 16.25,1.91421356 16.25,1.5 C16.25,1.31954083 15.8888396,1.15396757 15.2871144,1.02456181 C18.3490796,1.29525241 20.75,3.8672437 20.75,7 Z M12,7 C10.8954305,7 10,7.8954305 10,9 L10,9 L10,12.5 C10,13.6045695 10.8954305,14.5 12,14.5 C13.1045695,14.5 14,13.6045695 14,12.5 L14,12.5 L14,9 C14,7.8954305 13.1045695,7 12,7 Z" id="形状结合" fill="#000000" opacity="0.600000024"></path>
<path d="M3.25,16.25 C6.16666667,16.9166667 9.08333333,17.25 12,17.25 C14.9166667,17.25 17.8333333,16.9166667 20.75,16.25 L20.75,17 C20.75,20.3137085 18.0637085,23 14.75,23 L9.25,23 C5.9362915,23 3.25,20.3137085 3.25,17 L3.25,16.25 L3.25,16.25 Z" id="矩形备份" fill="#000000" opacity="0.400000006"></path>
<ellipse id="形状结合" fill="#000000" opacity="0.400000006" cx="12" cy="1.5" rx="4.25" ry="1"></ellipse>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Devices/Filled/ic_device_earphone_hero_filled</title>
<g id="Devices/Filled/ic_device_earphone_hero_filled" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g transform="translate(2.000000, 1.000000)" fill="#000000">
<path d="M7.25,9.25 L7.24989255,20 L4.00006383,20 L4,9.5144083 C4.43846832,9.60867398 4.87369787,9.65916188 5.28946414,9.65916188 C5.9859423,9.65916188 6.64873377,9.51328713 7.25,9.25 Z M12.7502064,9.25 C13.3514344,9.51328713 14.0141838,9.65916188 14.7106177,9.65916188 C15.0801643,9.65916188 15.4650883,9.61927021 15.8539954,9.54419959 L16,9.5144083 L15.9996862,20 L12.75,20 L12.7502064,9.25 Z M5.28934375,0.5 C7.61482498,0.5 9.5,2.40278981 9.5,4.75 C9.5,7.09721019 7.61482498,9 5.28934375,9 C3.60106403,9 1.30901196,7.99710851 0.333689904,6.54936157 C0.160158366,6.29177512 0.00741544807,5.60763155 0.000290124541,4.90055488 C-0.00218941366,4.65449959 0.0113343641,4.40566716 0.0366437552,4.17106649 L0.0552164146,4.01696111 C0.115894734,3.5620901 0.219966438,3.17926511 0.333689904,3.00455715 C1.29492863,1.52785169 3.580184,0.5 5.28934375,0.5 Z M14.7106562,0.5 C16.419816,0.5 18.7050714,1.52785169 19.6663101,3.00455715 C19.7800336,3.17926511 19.8841053,3.5620901 19.9447836,4.01696111 L19.9633562,4.17106649 C19.9886656,4.40566716 20.0021894,4.65449959 19.9997099,4.90055488 C19.9925846,5.60763155 19.8398416,6.29177512 19.6663101,6.54936157 C18.690988,7.99710851 16.398936,9 14.7106562,9 C12.385175,9 10.5,7.09721019 10.5,4.75 C10.5,2.40278981 12.385175,0.5 14.7106562,0.5 Z M1.11076307,3.30946938 C0.729286738,3.41236453 0.5,4.14753431 0.5,4.93047028 C0.5,5.71340625 0.8117058,6.34810127 1.19620597,6.34810127 C1.58070615,6.34810127 1.89240506,5.71340625 1.89240506,4.93047028 C1.89240506,4.38311622 1.84805169,3.79224284 1.64092196,3.49486161 C1.51819968,3.31866621 1.36415712,3.24112171 1.11076307,3.30946938 Z M18.359078,3.49486161 C18.1519483,3.79224284 18.1075949,4.38311622 18.1075949,4.93047028 C18.1075949,5.71340625 18.4192939,6.34810127 18.803794,6.34810127 C19.1882942,6.34810127 19.5,5.71340625 19.5,4.93047028 C19.5,4.14753431 19.2707133,3.41236453 18.8892369,3.30946938 C18.6358429,3.24112171 18.4818003,3.31866621 18.359078,3.49486161 Z M13.3792419,3.8800354 C12.8959928,3.8800354 12.5042419,4.27178624 12.5042419,4.7550354 C12.5042419,5.23828456 12.8959928,5.6300354 13.3792419,5.6300354 C13.8624911,5.6300354 14.2542419,5.23828456 14.2542419,4.7550354 C14.2542419,4.27178624 13.8624911,3.8800354 13.3792419,3.8800354 Z M16.1292419,3.8800354 C15.6459928,3.8800354 15.2542419,4.27178624 15.2542419,4.7550354 C15.2542419,5.23828456 15.6459928,5.6300354 16.1292419,5.6300354 C16.6124911,5.6300354 17.0042419,5.23828456 17.0042419,4.7550354 C17.0042419,4.27178624 16.6124911,3.8800354 16.1292419,3.8800354 Z M6.6229248,3.86981201 C6.13967565,3.86981201 5.7479248,4.26156286 5.7479248,4.74481201 C5.7479248,5.22806117 6.13967565,5.61981201 6.6229248,5.61981201 C7.10617396,5.61981201 7.4979248,5.22806117 7.4979248,4.74481201 C7.4979248,4.26156286 7.10617396,3.86981201 6.6229248,3.86981201 Z M3.8729248,3.86981201 C3.38967565,3.86981201 2.9979248,4.26156286 2.9979248,4.74481201 C2.9979248,5.22806117 3.38967565,5.61981201 3.8729248,5.61981201 C4.35617396,5.61981201 4.7479248,5.22806117 4.7479248,4.74481201 C4.7479248,4.26156286 4.35617396,3.86981201 3.8729248,3.86981201 Z" id="形状" opacity="0.600000024"></path>
<path d="M7.25,20 L7.25,20.875 C7.25,21.7724627 6.52246272,22.5 5.625,22.5 C4.72753728,22.5 4,21.7724627 4,20.875 L4,20 L7.25,20 Z M16,20 L16,20.875 C16,21.7724627 15.2724627,22.5 14.375,22.5 C13.4970473,22.5 12.7817124,21.8037509 12.7510258,20.9332835 L12.75,20.875 L12.75,20 L16,20 Z M1.64092196,3.49486161 C1.84805169,3.79224284 1.89240506,4.38311622 1.89240506,4.93047028 C1.89240506,5.71340625 1.58070615,6.34810127 1.19620597,6.34810127 C0.8117058,6.34810127 0.5,5.71340625 0.5,4.93047028 C0.5,4.14753431 0.729286738,3.41236453 1.11076307,3.30946938 C1.36415712,3.24112171 1.51819968,3.31866621 1.64092196,3.49486161 Z M18.8892369,3.30946938 C19.2707133,3.41236453 19.5,4.14753431 19.5,4.93047028 C19.5,5.71340625 19.1882942,6.34810127 18.803794,6.34810127 C18.4192939,6.34810127 18.1075949,5.71340625 18.1075949,4.93047028 C18.1075949,4.38311622 18.1519483,3.79224284 18.359078,3.49486161 C18.4818003,3.31866621 18.6358429,3.24112171 18.8892369,3.30946938 Z" id="形状结合" opacity="0.400000006"></path>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns:xlink="http://www.w3.org/1999/xlink"
height="20px"
version="1.1"
viewBox="0 0 4 20"
width="4px"
xmlns="http://www.w3.org/2000/svg">
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>ic_list</title>
<desc>Created with Sketch.</desc>
<g
fill="none"
fill-rule="evenodd"
id="ic_list"
stroke="none"
stroke-width="1">
<path
d="M2,0 C3.1045695,-2.02906125e-16 4,0.8954305 4,2 L4,18 C4,19.1045695 3.1045695,20 2,20 C0.8954305,20 1.3527075e-16,19.1045695 0,18 L0,2 C-1.3527075e-16,0.8954305 0.8954305,2.02906125e-16 2,0 Z"
fill="#42CAD2"
id="rectangular"/>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Device/device_filled/ic_pad</title>
<g id="Device/device_filled/ic_pad" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M20.5,3.75 L3.5,3.75 C1.98121694,3.75 0.75,4.98121694 0.75,6.5 L0.75,17.5 C0.75,19.0187831 1.98121694,20.25 3.5,20.25 L20.5,20.25 C22.0187831,20.25 23.25,19.0187831 23.25,17.5 L23.25,6.5 C23.25,4.98121694 22.0187831,3.75 20.5,3.75 Z M3.5,5.25 L20.5,5.25 C21.1903559,5.25 21.75,5.80964406 21.75,6.5 L21.75,17.5 C21.75,18.1903559 21.1903559,18.75 20.5,18.75 L3.5,18.75 C2.80964406,18.75 2.25,18.1903559 2.25,17.5 L2.25,6.5 C2.25,5.80964406 2.80964406,5.25 3.5,5.25 Z" id="Rectangle-Copy-6" fill="#000000" fill-rule="nonzero" opacity="0.600000024"></path>
<path d="M4.26242519,6.27018718 L19.7291142,6.27018718 C20.281399,6.27018718 20.7291142,6.71790243 20.7291142,7.27018718 L20.7291142,16.7351733 C20.7291142,17.2874581 20.281399,17.7351733 19.7291142,17.7351733 L4.26242519,17.7351733 C3.71014044,17.7351733 3.26242519,17.2874581 3.26242519,16.7351733 L3.26242519,7.27018718 C3.26242519,6.71790243 3.71014044,6.27018718 4.26242519,6.27018718 Z" id="矩形" fill="#000000" fill-rule="nonzero" opacity="0.400000006"></path>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Device/device_filled/ic_pc</title>
<g id="Device/device_filled/ic_pc" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="编组" transform="translate(1.000000, 4.000000)" fill="#000000" fill-rule="nonzero">
<path d="M21.3122934,15.125 C21.6919892,15.125 21.9997934,15.4328042 21.9997934,15.8125 C21.9997934,16.1786352 21.7135826,16.4779223 21.3526893,16.4988329 L21.3122934,16.5 L0.6875,16.5 C0.307804234,16.5 -1.30266168e-13,16.1921958 -1.30266168e-13,15.8125 C-1.30266168e-13,15.4463648 0.286210825,15.1470777 0.647104153,15.1261671 L0.6875,15.125 L21.3122934,15.125 Z M18.1041667,0 C19.749515,0 21.0833333,1.33381835 21.0833333,2.97916667 L21.0833333,2.97916667 L21.0833333,11.6875 C21.0833333,13.3328483 19.749515,14.6666667 18.1041667,14.6666667 L18.1041667,14.6666667 L3.89583333,14.6666667 C2.25048502,14.6666667 0.916666667,13.3328483 0.916666667,11.6875 L0.916666667,11.6875 L0.916666667,2.97916667 C0.916666667,1.33381835 2.25048502,0 3.89583333,0 L3.89583333,0 Z M18.1041667,1.375 L3.89583333,1.375 C3.00987655,1.375 2.29166667,2.09320988 2.29166667,2.97916667 L2.29166667,2.97916667 L2.29166667,11.6875 C2.29166667,12.5734568 3.00987655,13.2916667 3.89583333,13.2916667 L3.89583333,13.2916667 L18.1041667,13.2916667 C18.9901235,13.2916667 19.7083333,12.5734568 19.7083333,11.6875 L19.7083333,11.6875 L19.7083333,2.97916667 C19.7083333,2.09320988 18.9901235,1.375 18.1041667,1.375 L18.1041667,1.375 Z" id="形状结合" opacity="0.600000024"></path>
<path d="M3.66507544,2.32109338 L18.31905,2.32109338 C18.5721805,2.32109338 18.7773833,2.5262962 18.7773833,2.77942671 L18.7773833,11.9056364 C18.7773833,12.1587669 18.5721805,12.3639697 18.31905,12.3639697 L3.66507544,12.3639697 C3.41194493,12.3639697 3.20674211,12.1587669 3.20674211,11.9056364 L3.20674211,2.77942671 C3.20674211,2.5262962 3.41194493,2.32109338 3.66507544,2.32109338 Z" id="矩形" opacity="0.400000006"></path>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Public/ic_public_search</title>
<defs>
<path d="M17.4552585,16.5201811 L20.8132621,19.8776019 C21.1061553,20.1704951 21.1061553,20.6453689 20.8132621,20.9382621 C20.5203689,21.2311553 20.0454951,21.2311553 19.7526019,20.9382621 L16.3849514,17.5705115 C16.7690371,17.2493647 17.1270214,16.8980393 17.4552585,16.5201811 Z M10.375,2 C15.0003848,2 18.75,5.74961522 18.75,10.375 C18.75,12.4492584 17.9959213,14.3473923 16.746948,15.8102175 L16.746948,15.8102175 L16.7248309,15.8360159 C16.6580095,15.9136422 16.5897889,15.9900296 16.5202083,16.0651391 L16.746948,15.8102175 C16.6540763,15.9189909 16.5584681,16.0253575 16.4602302,16.1292106 C16.4016383,16.1911476 16.342303,16.2519995 16.2820606,16.3119405 C16.2610861,16.3328082 16.240292,16.3532825 16.2193918,16.3736485 C16.1491692,16.4420866 16.0772901,16.5097189 16.0042335,16.576078 C15.9759275,16.6017907 15.9472456,16.6274881 15.9183866,16.6529896 C15.8514229,16.712158 15.7837649,16.7700565 15.7151861,16.8268826 C15.7013815,16.8383205 15.6877981,16.8495035 15.674179,16.8606444 C14.2305262,18.0415704 12.3854944,18.75 10.375,18.75 C5.74961522,18.75 2,15.0003848 2,10.375 C2,5.74961522 5.74961522,2 10.375,2 Z M10.375,3.5 C6.57804235,3.5 3.5,6.57804235 3.5,10.375 C3.5,14.1719577 6.57804235,17.25 10.375,17.25 C14.1719577,17.25 17.25,14.1719577 17.25,10.375 C17.25,6.57804235 14.1719577,3.5 10.375,3.5 Z" id="path-1"></path>
</defs>
<g id="Public/ic_public_search" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<use id="形状结合" fill="#000000" fill-rule="nonzero" xlink:href="#path-1"></use>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Device/device_filled/ic_tv</title>
<g id="Device/device_filled/ic_tv" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="编组" transform="translate(1.000000, 4.000000)" fill="#000000" fill-rule="nonzero">
<path d="M19.7083333,0 C20.9739859,0 22,1.02601411 22,2.29166667 L22,11.4583333 C22,12.7239859 20.9739859,13.75 19.7083333,13.75 L19.7083333,14.6666667 C19.7083333,15.1729277 19.2979277,15.5833333 18.7916667,15.5833333 L3.20833333,15.5833333 C2.70207231,15.5833333 2.29166667,15.1729277 2.29166667,14.6666667 L2.29166667,13.75 C1.02601411,13.75 0,12.7239859 0,11.4583333 L0,2.29166667 C0,1.02601411 1.02601411,0 2.29166667,0 L19.7083333,0 Z M19.7083333,1.375 L2.29166667,1.375 C1.80074689,1.375 1.39996109,1.76090944 1.37612184,2.24591575 L1.375,2.29166667 L1.375,11.4583333 C1.375,11.9492531 1.76090944,12.3500389 2.24591575,12.3738782 L2.29166667,12.375 L19.7083333,12.375 C20.1992531,12.375 20.6000389,11.9890906 20.6238782,11.5040842 L20.625,11.4583333 L20.625,2.29166667 C20.625,1.80074689 20.2390906,1.39996109 19.7540842,1.37612184 L19.7083333,1.375 Z" id="形状结合" opacity="0.600000024"></path>
<path d="M3.1899184,2.2659717 L18.7634369,2.23149511 C19.2696955,2.22981431 19.6810087,2.63931039 19.6821294,3.14557018 C19.6821298,3.14575691 19.6821302,3.14594365 19.6815704,3.14613129 L19.6934547,10.5615364 C19.6942661,11.0677968 19.2845187,11.4788597 18.7782583,11.479671 C18.7767063,11.4796735 18.7751543,11.4796721 18.7736024,11.4796667 L3.18876085,11.4254844 C2.68374698,11.4237287 2.27528104,11.0138402 2.27528104,10.5088233 L2.27528104,3.18263612 C2.27528104,2.67716741 2.68445093,2.2670907 3.1899184,2.2659717 Z" id="矩形" opacity="0.400000006"></path>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns:xlink="http://www.w3.org/1999/xlink"
height="24px"
version="1.1"
viewBox="0 0 24 24"
width="24px"
xmlns="http://www.w3.org/2000/svg">
<title>ic_vision</title>
<g
fill="none"
fill-rule="evenodd"
id="ic_vision"
stroke="none"
stroke-width="1">
<circle
cx="12"
cy="12"
fill="#9E9E9E"
id="path"
r="10.75"
stroke="#E0DAED"
stroke-width="1.5"/>
<path
d="M17.7418165,7.71428571 C17.9806161,7.71428571 18.0672107,7.73914972 18.1545122,7.78583912 C18.2418138,7.83252852 18.3103286,7.90104331 18.357018,7.9883449 C18.4037074,8.07564649 18.4285714,8.16224102 18.4285714,8.40104068 L18.4285714,15.063245 C18.4285714,15.3020447 18.4037074,15.3886392 18.357018,15.4759408 C18.3103286,15.5632424 18.2418138,15.6317572 18.1545122,15.6784466 C18.0672107,15.725136 17.9806161,15.75 17.7418165,15.75 L17.0884286,15.7492857 L17.0892857,16.0178571 C17.0892857,16.1657906 16.969362,16.2857143 16.8214286,16.2857143 L7.17857143,16.2857143 C7.03063801,16.2857143 6.91071429,16.1657906 6.91071429,16.0178571 L6.91042857,15.7492857 L6.25818354,15.75 C6.01938387,15.75 5.93278935,15.725136 5.84548776,15.6784466 C5.75818617,15.6317572 5.68967137,15.5632424 5.64298197,15.4759408 C5.59874991,15.393234 5.57410629,15.3111619 5.57163475,15.0997077 L5.57142857,8.40104068 C5.57142857,8.16224102 5.59629257,8.07564649 5.64298197,7.9883449 C5.68967137,7.90104331 5.75818617,7.83252852 5.84548776,7.78583912 C5.92819452,7.74160705 6.0102667,7.71696344 6.22172089,7.7144919 L17.7418165,7.71428571 Z M17.625,8.51785714 L6.375,8.51785714 L6.375,14.9464286 L17.625,14.9464286 L17.625,8.51785714 Z"
fill="#FFFFFF"
fill-opacity="0.9"
id="vision"/>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>svgProgressBar/circle/normal备份</title>
<defs>
<path d="M17.6173185,16.3285266 L20.8132621,19.5240485 C21.2037864,19.9145728 21.2037864,20.5477378 20.8132621,20.9382621 C20.4227378,21.3287864 19.7895728,21.3287864 19.3990485,20.9382621 L16.1899558,17.7291824 C16.7140263,17.3142375 17.1927017,16.8444643 17.6173185,16.3285266 Z M10.375,2 C15.0003848,2 18.75,5.74961522 18.75,10.375 C18.75,12.3078759 18.0952147,14.0878185 16.9953602,15.5051118 L16.780305,15.7709059 C16.6753852,15.895325 16.5669064,16.0166446 16.4550255,16.1347079 L16.3188514,16.2751074 L16.3188514,16.2751074 L16.1390248,16.4509317 L16.1390248,16.4509317 L16.0053714,16.5750421 L16.0053714,16.5750421 L15.6667619,16.8667044 L15.6667619,16.8667044 L15.4804548,17.0144215 L15.4804548,17.0144215 C14.0671999,18.1027758 12.2966836,18.75 10.375,18.75 C5.74961522,18.75 2,15.0003848 2,10.375 C2,5.74961522 5.74961522,2 10.375,2 Z M10.375,4 C6.85418472,4 4,6.85418472 4,10.375 C4,13.8958153 6.85418472,16.75 10.375,16.75 C13.8958153,16.75 16.75,13.8958153 16.75,10.375 C16.75,6.85418472 13.8958153,4 10.375,4 Z" id="path-1"></path>
</defs>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.6">
<g id="控制中心备份-2" transform="translate(-170.000000, -526.000000)">
<g id="Public/ic_public_input_search" transform="translate(168.000000, 524.000000)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<g id="形状" fill-rule="nonzero"></g>
<g id="Symbol/color-light/colorPrimary" mask="url(#mask-2)" fill="#000000" fill-opacity="0.9" fill-rule="evenodd">
<rect id="color/#000000" x="0" y="0" width="24" height="24"></rect>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>superdevice</title>
<g id="superdevice" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" fill-opacity="0.9">
<g id="public/ic_about_filled备份-2" transform="translate(1.000000, 1.000000)" fill="#000000">
<path d="M10.9451065,1.07114317e-12 C17.0505556,1.07114317e-12 22,4.92486775 22,11 C22,11.4840408 21.9685798,11.9607795 21.9076581,12.4283068 C21.2039599,17.8286533 16.5640993,22 10.9451065,22 C6.13748038,22 1.92539358,18.9185887 0.443795295,14.4461409 C0.310444484,14.0435996 0.530294978,13.60971 0.934845117,13.4770213 C1.33939526,13.3443327 1.77545013,13.5630915 1.90880094,13.9656328 C3.18344566,17.8133573 6.80822603,20.4651163 10.9451065,20.4651163 C16.1986325,20.4651163 20.4574567,16.2274394 20.4574567,11 C20.4574567,5.77256062 16.1986325,1.53488372 10.9451065,1.53488372 C6.75097988,1.53488372 3.08786496,4.26028378 1.86077134,8.18352784 C1.73419123,8.58822773 1.3018665,8.81419789 0.895147024,8.68824632 C0.488427551,8.56229475 0.261329725,8.13211675 0.387909834,7.72741685 C1.81431312,3.16694316 6.07089069,1.07114317e-12 10.9451065,1.07114317e-12 Z M11.1765345,3.58139535 C14.2719945,3.58139535 16.792992,5.20275905 17.9027002,8.02323797 C18.0579852,8.41791663 17.8623217,8.8631252 17.4656735,9.01763915 C17.0690252,9.1721531 16.6215949,8.97746114 16.4663099,8.58278249 C15.586173,6.34579115 13.6318095,5.11627907 11.1765345,5.11627907 C7.91082915,5.11627907 5.26345191,7.75051066 5.26345191,11 C5.26345191,14.2494893 7.91082915,16.8837209 11.1765345,16.8837209 C13.6215862,16.8837209 15.6910503,15.5489781 16.5782539,13.3256677 C16.7354497,12.9317388 17.1838183,12.7391959 17.5797132,12.8956112 C17.975608,13.0520265 18.1691117,13.4981687 18.0119158,13.8920977 C16.8933274,16.6952528 14.2590849,18.4186047 11.1765345,18.4186047 C7.05890602,18.4186047 3.72090863,15.0971822 3.72090863,11 C3.72090863,6.90281779 7.05890602,3.58139535 11.1765345,3.58139535 Z M11.1765345,8.44186047 C12.5964064,8.44186047 13.7474399,9.58717855 13.7474399,11 C13.7474399,12.4128215 12.5964064,13.5581395 11.1765345,13.5581395 C9.75666259,13.5581395 8.60562901,12.4128215 8.60562901,11 C8.60562901,9.58717855 9.75666259,8.44186047 11.1765345,8.44186047 Z M17.6570239,9.97674419 C18.2249727,9.97674419 18.6853861,10.4348714 18.6853861,11 C18.6853861,11.5651286 18.2249727,12.0232558 17.6570239,12.0232558 C17.0890752,12.0232558 16.6286617,11.5651286 16.6286617,11 C16.6286617,10.4348714 17.0890752,9.97674419 17.6570239,9.97674419 Z M1.02836218,9.97674419 C1.59631094,9.97674419 2.05672437,10.4348714 2.05672437,11 C2.05672437,11.5651286 1.59631094,12.0232558 1.02836218,12.0232558 C0.460413433,12.0232558 0,11.5651286 0,11 C0,10.4348714 0.460413433,9.97674419 1.02836218,9.97674419 Z" id="形状结合"></path>
</g>
</g>
</svg>
\ No newline at end of file
{"appID": "com.example.myapplication","appName": "$string:entry_MainAbility","versionName": "1.0.0","versionCode": 1000000,"minPlatformVersion": 7,"pages": ["pages/index/index"],"deviceType": ["phone"],"type": "form","window": {"autoDesignWidth": true,"designWidth": 720}}
\ No newline at end of file
{
"template": {
"attr": {},
"type": "div",
"classList": [
"container"
],
"children": [
{
"attr": {},
"type": "div",
"classList": [
"bottom"
],
"style": {
"display": "{{isShow}}"
},
"children": [
{
"attr": {},
"type": "div",
"classList": [
"bg_color"
],
"events": {
"click": "routerEvent"
},
"children": [
{
"attr": {
"src": "/common/img/ic_pad.svg"
},
"type": "image",
"classList": [
"img1"
]
}
]
},
{
"attr": {},
"type": "div",
"classList": [
"pic_title_container"
],
"children": [
{
"attr": {},
"type": "div",
"style": {
"flexDirection": "column"
},
"children": [
{
"attr": {
"value": "{{temperature}}"
},
"type": "text",
"classList": [
"title"
]
},
{
"attr": {
"value": "{{time}}"
},
"type": "text",
"classList": [
"content"
]
},
{
"attr": {
"src": "{{image1}}"
},
"type": "image",
"classList": [
"title"
]
}
]
}
]
}
]
}
]
},
"styles": {
".container": {
"display": "flex",
"flexDirection": "column",
"left": "0px",
"top": "0px",
"width": "640vp",
"backgroundColor": "#eeeeee"
},
".pic_title_container": {
"backgroundColor": "#FF007DFB",
"flexDirection": "column",
"height": "100%",
"paddingTop": "12px",
"paddingStart": "12px",
"paddingBottom": "12px",
"justifyContent": "space-between"
},
".content": {
"fontSize": "12px",
"color": "#99ffffff",
"textOverflow": "ellipsis",
"maxLines": "1"
},
".title": {
"fontSize": "16px",
"color": "#e5ffffff",
"marginBottom": "2px"
},
".head": {
"width": "90%",
"height": "70vp",
"display": "flex",
"marginTop": "8px",
"justifyContent": "space-between",
"alignItems": "center"
},
".right": {
"flexGrow": 1,
"marginLeft": "260vp"
},
".img": {
"marginLeft": "48vp",
"marginTop": "5px",
"width": "36vp",
"height": "36vp"
},
".bottom": {
"marginTop": "-12px",
"width": "90%",
"display": "flex",
"flexDirection": "column",
"marginLeft": "30px"
},
".bg_color": {
"width": "48vp",
"height": "48vp",
"borderBottomLeftRadius": "48px",
"borderBottomRightRadius": "48px",
"borderTopLeftRadius": "48px",
"borderTopRightRadius": "48px",
"backgroundColor": "#cccccc",
"marginLeft": "36%"
},
".img1": {
"marginTop": "14vp",
"marginLeft": "14vp"
},
".text": {
"marginTop": "16px",
"fontSize": "12px",
"display": "flex",
"justifyContent": "center"
},
".co_blue": {
"marginLeft": "12px",
"color": "#1e90ff"
},
".todo-wrapper": {
"marginTop": "0vp",
"display": "flex",
"flexDirection": "row",
"width": "80%"
},
".todo-item": {
"width": "85vp",
"display": "flex",
"flexDirection": "column",
"marginRight": "10px",
"alignItems": "center"
},
".bg_color1": {
"width": "48vp",
"height": "48vp",
"borderBottomLeftRadius": "48px",
"borderBottomRightRadius": "48px",
"borderTopLeftRadius": "48px",
"borderTopRightRadius": "48px",
"backgroundColor": "#cccccc",
"marginBottom": "6vp"
},
".title_img": {
"marginTop": "14vp",
"marginLeft": "11vp"
},
".todo-title": {
"textAlign": "center",
"fontSize": "10px",
"color": "#E5000000"
}
},
"data": {
"temperature": "超级终端",
"time": "qqqq",
"ifShow": "none",
"image1": "memory://image1",
"isShow": "flex",
"deviceList": [
{
"img": "/common/img/ic_pad.svg",
"deviceName": "huawei",
"deviceType": 17,
"deviceId": 1
}
]
},
"actions": {
"routerEvent": {
"action": "message",
"bundleName": "com.ohos.photos",
"abilityName": "com.ohos.photos.MainAbility",
"params": {
"message": "addDetail"
}
},
"searchDeviceList": {
"action": "message",
"bundleName": "com.lizhiqi.card.hmservice",
"abilityName": "com.lizhiqi.card.MainAbility",
"params": {
"message": "searchList"
}
}
},
"apiVersion": {}
}
\ No newline at end of file
{
"string": [
{
"name": "entry_MainAbility",
"value": "提供方G"
},
{
"name": "description_mainability",
"value": "eTS_Empty Ability"
},
{
"name": "description_serviceability",
"value": "hap sample empty service"
}
]
}
\ No newline at end of file
# Copyright (C) 2021 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//test/xts/tools/build/suite.gni")
ohos_js_hap_suite("FormSystemProviderA") {
hap_name = "FormSystemProviderA"
hap_profile = "./entry/src/main/config.json"
deps = [
":hjs_demo_js_assets",
":hjs_demo_resources",
]
ets2abc = true
certificate_profile = "./signature/openharmony_sx.p7b"
}
ohos_js_assets("hjs_demo_js_assets") {
source_dir = "./entry/src/main/ets/MainAbility"
}
ohos_resources("hjs_demo_resources") {
sources = [
"./entry/src/main/resources",
]
hap_profile = "./entry/src/main/config.json"
}
{
"description": "Configuration for hjunit demo Tests"
}
\ No newline at end of file
{
"app": {
"bundleName": "com.ohos.st.formsystemprovidera",
"vendor": "ohos",
"version": {
"code": 1000000,
"name": "1.0.0"
},
"apiVersion": {
"compatible": 7,
"releaseType": "Release",
"target": 7
}
},
"deviceConfig": {},
"module": {
"package": "com.ohos.st.formsystemprovidera",
"name": ".FormSTApp",
"mainAbility": ".MainAbility",
"deviceType": [
"phone"
],
"distro": {
"deliveryWithInstall": true,
"moduleName": "form_module_a",
"moduleType": "entry",
"installationFree": false
},
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"visible": true,
"name": ".MainAbility",
"srcLanguage": "ets",
"icon": "$media:icon",
"description": "$string:description_mainability",
"label": "$string:entry_MainAbility",
"type": "service",
"launchType": "standard",
"formsEnabled": true,
"forms": [
{
"name": "FormA_Js001",
"description": "form_description_FormA_Js001",
"descriptionId": 0,
"isDefault": true,
"type": "JS",
"colorMode": "dark",
"supportDimensions": [
"1*2",
"2*4"
],
"defaultDimension": "1*2",
"updateEnabled": true,
"updateDuration": 1,
"scheduledUpdateTime": "5:30",
"jsComponentName": "card_a01",
"formVisibleNotify": true,
"formConfigAbility": "abilitya01",
"metaData": {
"customizeData": [
{
"name": "originWidgetNameA01",
"value": "valueA01"
}
]
}
},
{
"name": "FormA_Js002",
"description": "form_description_FormA_Js002",
"descriptionId": 10,
"isDefault": false,
"type": "JS",
"colorMode": "light",
"supportDimensions": [
"1*2",
"2*2",
"2*4",
"4*4"
],
"defaultDimension": "4*4",
"updateEnabled": false,
"updateDuration": 2,
"scheduledUpdateTime": "20:30",
"jsComponentName": "card_a02",
"formVisibleNotify": false,
"formConfigAbility": "abilitya02",
"metaData": {
"customizeData": [
{
"name": "originWidgetNameA02",
"value": "valueA02"
}
]
}
}
]
}
],
"defPermissions": [
{
"availableScope": [],
"grantMode": "system_grant",
"name": "FMS_FormDelete_commonEvent"
},
{
"availableScope": [],
"grantMode": "system_grant",
"name": "FMS_FormOnAcquired_commonEvent"
}
],
"reqPermissions": [
{
"name": "FMS_FormOnAcquired_commonEvent",
"reason": "need use onAcquired commonEvent"
},
{
"name": "FMS_FormDelete_commonEvent",
"reason": "need use delete commonEvent"
},
{
"name": "ohos.permission.INSTALL_BUNDLE",
"reason": "need use ohos.permission.INSTALL_BUNDLE"
},
{
"name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
"reason": "need use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"
},
{
"name": "ohos.permission.CHANGE_ABILITY_ENABLED_STATE",
"reason": "need use ohos.permission.CHANGE_ABILITY_ENABLED_STATE"
},
{
"name": "ohos.permission.REMOVE_CACHE_FILES",
"reason": "need use ohos.permission.REMOVE_CACHE_FILES"
},
{
"name": "ohos.permission.LISTEN_BUNDLE_CHANGE",
"reason": "need use ohos.permission.LISTEN_BUNDLE_CHANGE"
},
{
"name": "ohos.permission.CLEAN_BACKGROUND_PROCESSES",
"reason": "need use ohos.permission.CLEAN_BACKGROUND_PROCESSES"
}
],
"js": [
{
"mode": {
"syntax": "ets",
"type": "pageAbility"
},
"pages": [
"pages/index"
],
"name": ".MainAbility",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
}
]
}
}
\ No newline at end of file
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export default {
onCreate() {
console.info(`[FormProviderA] Application onCreate`);
},
onDestroy() {
console.info(`[FormProviderA] Application onDestroy`);
},
};
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import featureAbility from "@ohos.ability.featureAbility";
import file from '@system.file';
import { Core, ExpectExtend, ReportExtend } from 'deccjsunit/index.ets';
@Entry
@Component
struct Index {
private componentName: string = `FormProviderA`;
aboutToAppear() {
console.info(`${this.componentName} start run testcase!!!!`);
featureAbility.getWant()
.then((want: any) => {
console.info(`${this.componentName} Operation successful. Data: ${JSON.stringify(want)}`);
const core = Core.getInstance();
const expectExtend = new ExpectExtend({
'id': 'extend'
});
core.addService('expect', expectExtend);
const reportExtend = new ReportExtend(file);
core.addService('report', reportExtend);
core.init();
core.subscribeEvent('task', reportExtend);
const configService = core.getDefaultService('config');
configService.setConfig(want.parameters);
core.execute();
})
.catch((error: any) => {
console.error(`${this.componentName} Operation failed. Cause: ${JSON.stringify(error)}`);
})
}
build() {
Flex({
direction: FlexDirection.Column,
alignItems: ItemAlign.Center,
justifyContent: FlexAlign.Center
}) {
Text(`Fms Main Ability Test`)
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
.width('100%')
.height('100%')
}
}
{
"string": [
{
"name": "entry_MainAbility",
"value": "formsttest"
},
{
"name": "description_mainability",
"value": "ETS_Empty Ability"
}
]
}
\ No newline at end of file
# Copyright (C) 2021 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//test/xts/tools/build/suite.gni")
ohos_js_hap_suite("FormSystemProviderB") {
hap_name = "FormSystemProviderB"
hap_profile = "./entry/src/main/config.json"
deps = [
":hjs_demo_js_assets",
":hjs_demo_resources",
]
ets2abc = true
certificate_profile = "./signature/openharmony_sx.p7b"
}
ohos_js_assets("hjs_demo_js_assets") {
source_dir = "./entry/src/main/ets/MainAbility"
}
ohos_resources("hjs_demo_resources") {
sources = [
"./entry/src/main/resources",
]
hap_profile = "./entry/src/main/config.json"
}
{
"description": "Configuration for hjunit demo Tests"
}
\ No newline at end of file
{
"app": {
"bundleName": "com.ohos.st.formsystemproviderb",
"vendor": "ohos",
"version": {
"code": 1000000,
"name": "1.0.0"
},
"apiVersion": {
"compatible": 7,
"releaseType": "Release",
"target": 7
}
},
"deviceConfig": {},
"module": {
"package": "com.ohos.st.formsystemproviderb",
"name": ".FormSTApp",
"mainAbility": ".MainAbility",
"deviceType": [
"phone"
],
"distro": {
"deliveryWithInstall": true,
"moduleName": "form_module_b",
"moduleType": "entry",
"installationFree": false
},
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"visible": true,
"name": ".MainAbility",
"srcLanguage": "ets",
"icon": "$media:icon",
"description": "$string:description_mainability",
"label": "$string:entry_MainAbility",
"type": "service",
"launchType": "standard",
"formsEnabled": true,
"forms": [
{
"name": "FormB_Js001",
"description": "form_description_FormB_Js001",
"descriptionId": 20,
"isDefault": true,
"type": "JS",
"colorMode": "auto",
"supportDimensions": [
"1*2",
"2*2"
],
"defaultDimension": "2*2",
"updateEnabled": true,
"updateDuration": 3,
"scheduledUpdateTime": "10:30",
"jsComponentName": "card_b",
"formVisibleNotify": true,
"formConfigAbility": "abilityb",
"metaData": {
"customizeData": [
{
"name": "originWidgetNameB",
"value": "valueB"
}
]
}
}
]
}
],
"defPermissions": [
{
"availableScope": [],
"grantMode": "system_grant",
"name": "FMS_FormDelete_commonEvent"
},
{
"availableScope": [],
"grantMode": "system_grant",
"name": "FMS_FormOnAcquired_commonEvent"
}
],
"reqPermissions": [
{
"name": "FMS_FormOnAcquired_commonEvent",
"reason": "need use onAcquired commonEvent"
},
{
"name": "FMS_FormDelete_commonEvent",
"reason": "need use delete commonEvent"
},
{
"name": "ohos.permission.INSTALL_BUNDLE",
"reason": "need use ohos.permission.INSTALL_BUNDLE"
},
{
"name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
"reason": "need use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"
},
{
"name": "ohos.permission.CHANGE_ABILITY_ENABLED_STATE",
"reason": "need use ohos.permission.CHANGE_ABILITY_ENABLED_STATE"
},
{
"name": "ohos.permission.REMOVE_CACHE_FILES",
"reason": "need use ohos.permission.REMOVE_CACHE_FILES"
},
{
"name": "ohos.permission.LISTEN_BUNDLE_CHANGE",
"reason": "need use ohos.permission.LISTEN_BUNDLE_CHANGE"
},
{
"name": "ohos.permission.CLEAN_BACKGROUND_PROCESSES",
"reason": "need use ohos.permission.CLEAN_BACKGROUND_PROCESSES"
}
],
"js": [
{
"mode": {
"syntax": "ets",
"type": "pageAbility"
},
"pages": [
"pages/index"
],
"name": ".MainAbility",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
}
]
}
}
\ No newline at end of file
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export default {
onCreate() {
console.info(`[FormProviderB] Application onCreate`);
},
onDestroy() {
console.info(`[FormProviderB] Application onDestroy`);
},
};
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import featureAbility from "@ohos.ability.featureAbility";
import file from '@system.file';
import { Core, ExpectExtend, ReportExtend } from 'deccjsunit/index.ets';
@Entry
@Component
struct Index {
private componentName: string = `FormProviderB`;
aboutToAppear() {
console.info(`${this.componentName} start run testcase!!!!`);
featureAbility.getWant()
.then((want: any) => {
console.info(`${this.componentName} Operation successful. Data: ${JSON.stringify(want)}`);
const core = Core.getInstance();
const expectExtend = new ExpectExtend({
'id': 'extend'
});
core.addService('expect', expectExtend);
const reportExtend = new ReportExtend(file);
core.addService('report', reportExtend);
core.init();
core.subscribeEvent('task', reportExtend);
const configService = core.getDefaultService('config');
configService.setConfig(want.parameters);
core.execute();
})
.catch((error: any) => {
console.error(`${this.componentName} Operation failed. Cause: ${JSON.stringify(error)}`);
})
}
build() {
Flex({
direction: FlexDirection.Column,
alignItems: ItemAlign.Center,
justifyContent: FlexAlign.Center
}) {
Text(`Fms Main Ability Test`)
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
.width('100%')
.height('100%')
}
}
{
"string": [
{
"name": "entry_MainAbility",
"value": "formsttest"
},
{
"name": "description_mainability",
"value": "ETS_Empty Ability"
}
]
}
\ No newline at end of file
# Copyright (C) 2021 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//test/xts/tools/build/suite.gni")
ohos_js_hap_suite("FormSystemProviderC") {
hap_name = "FormSystemProviderC"
hap_profile = "./entry/src/main/config.json"
deps = [
":hjs_demo_js_assets",
":hjs_demo_resources",
]
ets2abc = true
certificate_profile = "./signature/openharmony_sx.p7b"
}
ohos_js_assets("hjs_demo_js_assets") {
source_dir = "./entry/src/main/ets/MainAbility"
}
ohos_resources("hjs_demo_resources") {
sources = [
"./entry/src/main/resources",
]
hap_profile = "./entry/src/main/config.json"
}
{
"description": "Configuration for hjunit demo Tests"
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册