之前已经用web的html网页去实现了绘本查询系统的前端,效果还可以的:

但是有个缺点:
体验不够好,不利于推广。
现在希望改为小程序。
而原始的UI设计是:

所以要先去Mac中搭建小程序的开发环境。
【已解决】Mac中搭建小程序开发环境
然后接着去:
【已解决】Mac中开发小程序的基本页面和搞懂基本开发部署预览等逻辑
现在虽然可以显示内容了,但是对于要显示的list中的数据,很多都显示不对,包括此处都没有显示默认图片:

所以需要去给原先的js的数据设置:
if (respData.code === 200) {
var bookDictList = respData.data
console.log("bookDictList=%o", bookDictList)
console.log("this=%o", this)
this.setData({
searchBookList: bookDictList
})
}中加上额外的数据处理:
index.js
//内部函数
processBookList: function (originBookList) {
console.log("processBookList: originBookList=%o", originBookList)
var processedBookList = []
for (var curBookDict of originBookList){
console.log("curBookDict=%o", curBookDict)
var coverImgUrl = curBookDict["coverImgUrl"]
console.log("coverImgUrl=", coverImgUrl)
if (!coverImgUrl) {
coverImgUrl = app.globalData.DefaultValue.CoverImg
console.log("default coverImgUrl=", coverImgUrl)
}
curBookDict["coverImgUrl"] = coverImgUrl
var title = curBookDict["title"]
console.log("title=", title)
title = book_common.processEmptyDefault(title)
console.log("title=", title)
curBookDict["title"] = title
var authorsStr = book_common.listToStr(curBookDict["author"]["bookAuthors"])
console.log("authorsStr=", authorsStr)
authorsStr = book_common.processEmptyDefault(authorsStr)
curBookDict["authorsStr"] = authorsStr
var lexileStr = curBookDict["grading"]["lexile"]
console.log("lexileStr=", lexileStr)
lexileStr = book_common.processEmptyDefault(lexileStr)
curBookDict["lexileStr"] = lexileStr
var ageStr = curBookDict["grading"]["age"]
console.log("ageStr=", ageStr)
if (ageStr) {
ageStr += "岁"
}
ageStr = book_common.processEmptyDefault(ageStr)
curBookDict["ageStr"] = ageStr
processedBookList.push(curBookDict)
}
return processedBookList
},和相关的:
utils/book_common.js
const app = getApp()
const processEmptyDefault = valueToShow => {
var finalShowValue = ""
if (valueToShow) {
finalShowValue = valueToShow
} else {
finalShowValue = app.globalData.DefaultValue.Empty
}
return finalShowValue
}
const listToStr = listValue => {
console.log("listToStr: listValue=%o", listValue)
var joinedListStr = ""
if (listValue) {
joinedListStr = listValue.join(", ")
// joinedListStr = listValue.join(", ")
}
return joinedListStr
}
module.exports = {
processEmptyDefault: processEmptyDefault,
listToStr: listToStr,
}以及:
app.js
globalData: {
...
DefaultValue: {
"Empty": "---",
"CoverImg": "/images/cover_img_default_no_projection.png"
}
}
})然后使得正常的:
默认封面图片,title,author等内容都显示正常了:

然后再去优化:
【已解决】小程序中画同一行内的输入框和按钮
然后继续再去:
【已解决】小程序中给点击事件函数传递参数或从html元素中获取值
和:
【已解决】小程序中跳转新页面且传递参数
接着就可以继续去弄详情页了:
【记录】小程序实现绘本查询的详情页
转载请注明:在路上 » 【记录】Mac中去用小程序实现绘本查询系统的前端