技术栈
Appgallery connect
开发准备
上一篇文章中我们实现了项目端云一体化金刚区活动模块,数据也成功的从云端获取,并且我们跟ScrollBar进行关联,能够让用户直观的查看当前滑动的位置。现在我们开始继续向下,随着我们首页的内容越来越多,我们如果因为某些业务需要进行调整和下线,想隐藏和关掉某些模块,就需要每次在打包的时候进行处理,这很明显会非常的麻烦,现在我们通过一张表来对首页的整个模块进行控制,这样每次做展示的时候去进行查询当前状态来实现想要的效果。
代码实现
首先我们先创建一个表把所有的关联id 以及模块的状态字段定义一下
{
“objectTypeName”: “home_activity_setting”,
“fields”: [
{“fieldName”: “id”, “fieldType”: “Integer”, “notNull”: true, “belongPrimaryKey”: true},
{“fieldName”: “poster_id”, “fieldType”: “Integer”},
{“fieldName”: “banner_id”, “fieldType”: “Integer”},
{“fieldName”: “good_left_id”, “fieldType”: “Integer”},
{“fieldName”: “good_right_id”, “fieldType”: “Integer”},
{“fieldName”: “goods_list_id”, “fieldType”: “Integer”},
{“fieldName”: “new_people_status”, “fieldType”: “Boolean”},
{“fieldName”: “split_layout_status”, “fieldType”: “Boolean”},
{“fieldName”: “banner_status”, “fieldType”: “Boolean”},
{“fieldName”: “goods_list_status”, “fieldType”: “Boolean”}
],
“indexes”: [
{“indexName”: “field1IndexId”, “indexList”: [{“fieldName”:“id”,“sortType”:“ASC”}]}
],
“permissions”: [
{“role”: “World”, “rights”: [“Read”]},
{“role”: “Authenticated”, “rights”: [“Read”, “Upsert”]},
{“role”: “Creator”, “rights”: [“Read”, “Upsert”, “Delete”]},
{“role”: “Administrator”, “rights”: [“Read”, “Upsert”, “Delete”]}
]
}
然后我们创建数据
{
“cloudDBZoneName”: “default”,
“objectTypeName”: “home_activity_setting”,
“objects”: [
{
“id”: 1,
“poster_id”: 1,
“banner_id”: 1,
“good_left_id”: 1,
“good_right_id”: 1,
“goods_list_id”: 1,
“new_people_status”: true,
“split_layout_status”: true,
“banner_status”: true,
“goods_list_status”: true
}
]
}
现在进行实体类的创建
export class HomeActivitySetting {
id: number;
poster_id: number;
banner_id: number;
good_left_id: number;
good_right_id: number;
goods_list_id: number;
new_people_status: boolean;
split_layout_status: boolean;
banner_status: boolean;
goods_list_status: boolean;
constructor() {
}
getFieldTypeMap(): Map<string, string> {
let fieldTypeMap = new Map<string, string>();
fieldTypeMap.set('id', 'Integer');
fieldTypeMap.set('poster_id', 'Integer');
fieldTypeMap.set('banner_id', 'Integer');
fieldTypeMap.set('good_left_id', 'Integer');
fieldTypeMap.set('good_right_id', 'Integer');
fieldTypeMap.set('goods_list_id', 'Integer');
fieldTypeMap.set('new_people_status', 'Boolean');
fieldTypeMap.set('split_layout_status', 'Boolean');
fieldTypeMap.set('banner_status', 'Boolean');
fieldTypeMap.set('goods_list_status', 'Boolean');
return fieldTypeMap;
}
getClassName(): string {
return 'home_activity_setting';
}
getPrimaryKeyList(): string[] {
let primaryKeyList: string[] = [];
primaryKeyList.push('id');
return primaryKeyList;
}
getIndexList(): string[] {
let indexList: string[] = [];
indexList.push('id');
return indexList;
}
getEncryptedFieldList(): string[] {
let encryptedFieldList: string[] = [];
return encryptedFieldList;
}
setId(id: number): void {
this.id = id;
}
getId(): number {
return this.id;
}
setPoster_id(poster_id: number): void {
this.poster_id = poster_id;
}
getPoster_id(): number {
return this.poster_id;
}
setBanner_id(banner_id: number): void {
this.banner_id = banner_id;
}
getBanner_id(): number {
return this.banner_id;
}
setGood_left_id(good_left_id: number): void {
this.good_left_id = good_left_id;
}
getGood_left_id(): number {
return this.good_left_id;
}
setGood_right_id(good_right_id: number): void {
this.good_right_id = good_right_id;
}
getGood_right_id(): number {
return this.good_right_id;
}
setGoods_list_id(goods_list_id: number): void {
this.goods_list_id = goods_list_id;
}
getGoods_list_id(): number {
return this.goods_list_id;
}
setNew_people_status(new_people_status: boolean): void {
this.new_people_status = new_people_status;
}
getNew_people_status(): boolean {
return this.new_people_status;
}
setSplit_layout_status(split_layout_status: boolean): void {
this.split_layout_status = split_layout_status;
}
getSplit_layout_status(): boolean {
return this.split_layout_status;
}
setBanner_status(banner_status: boolean): void {
this.banner_status = banner_status;
}
getBanner_status(): boolean {
return this.banner_status;
}
setGoods_list_status(goods_list_status: boolean): void {
this.goods_list_status = goods_list_status;
}
getGoods_list_status(): boolean {
return this.goods_list_status;
}
static parseFrom(inputObject: any): HomeActivitySetting {
let result = new HomeActivitySetting();
if (!inputObject) {
return result;
}
if (inputObject.id) {
result.id = inputObject.id;
}
if (inputObject.poster_id) {
result.poster_id = inputObject.poster_id;
}
if (inputObject.banner_id) {
result.banner_id = inputObject.banner_id;
}
if (inputObject.good_left_id) {
result.good_left_id = inputObject.good_left_id;
}
if (inputObject.good_right_id) {
result.good_right_id = inputObject.good_right_id;
}
if (inputObject.goods_list_id) {
result.goods_list_id = inputObject.goods_list_id;
}
if (inputObject.new_people_status) {
result.new_people_status = inputObject.new_people_status;
}
if (inputObject.split_layout_status) {
result.split_layout_status = inputObject.split_layout_status;
}
if (inputObject.banner_status) {
result.banner_status = inputObject.banner_status;
}
if (inputObject.goods_list_status) {
result.goods_list_status = inputObject.goods_list_status;
}
return result;
}
}
db类
import { cloudDatabase } from ‘@kit.CloudFoundationKit’;
class home_activity_setting extends cloudDatabase.DatabaseObject {
public id: number;
public poster_id: number;
public banner_id: number;
public good_left_id: number;
public good_right_id: number;
public goods_list_id: number;
public new_people_status: boolean;
public split_layout_status: boolean;
public banner_status: boolean;
public goods_list_status: boolean;
public naturalbase_ClassName(): string {
return ‘home_activity_setting’;
}
}
export { home_activity_setting };
创建完成之后,记得要在开发工具中把数据提交到云端,我们把数据提交到云端后,可以看到数据提交成功并且表也已经创建完成
进行数据查询
let databaseZone = cloudDatabase.zone(‘default’);
let condition3 = new cloudDatabase.DatabaseQuery(home_activity_setting);
let listData3 = await databaseZone.query(condition3);
let json3 = JSON.stringify(listData3)
let data3:HomeActivitySetting[]= JSON.parse(json3)
this.homeActivity=data3
} catch (err) {
hilog.error(0x0000, ‘testTag’, Failed to query data, code: ${err.code}, message: ${err.message}
);
}
数据也已经查询成功,接下来我们直接运行程序,可以看到金刚区是在显示中的,接下来我们修改金刚区的状态,再执行一下,可以看到金刚区已经不见了,到这里我们首页模块的显示隐藏配置已经实现了。
共同學(xué)習(xí),寫(xiě)下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
100積分直接送
付費(fèi)專(zhuān)欄免費(fèi)學(xué)
大額優(yōu)惠券免費(fèi)領(lǐng)