├── .gitignore ├── README.md ├── cloudfunctions ├── callback │ ├── config.json │ ├── index.js │ └── package.json ├── echo │ ├── config.json │ ├── index.js │ └── package.json ├── login │ ├── config.json │ ├── index.js │ └── package.json └── openapi │ ├── config.json │ ├── index.js │ └── package.json ├── miniprogram ├── app.js ├── app.json ├── app.wxss ├── images │ ├── ic_wallpaper.png │ └── index │ │ └── icon_avatar.jpg ├── pages │ ├── categorydetail │ │ ├── categorydetail.js │ │ ├── categorydetail.json │ │ ├── categorydetail.wxml │ │ └── categorydetail.wxss │ ├── categorydetailviewshow │ │ ├── categorydetailviewshow.js │ │ ├── categorydetailviewshow.json │ │ ├── categorydetailviewshow.wxml │ │ └── categorydetailviewshow.wxss │ ├── categoryroot │ │ ├── categoryroot.js │ │ ├── categoryroot.json │ │ ├── categoryroot.wxml │ │ └── categoryroot.wxss │ └── login │ │ ├── login.js │ │ ├── login.json │ │ ├── login.wxml │ │ └── login.wxss └── sitemap.json ├── project.config.json └── raw ├── WallPaper-01.jpg ├── WallPaper-02.jpg ├── WallPaper-03.jpg ├── WallPaper-04.gif ├── WallPaper-05.gif └── WallPaper-06.gif /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows 2 | [Dd]esktop.ini 3 | Thumbs.db 4 | $RECYCLE.BIN/ 5 | 6 | # macOS 7 | .DS_Store 8 | .fseventsd 9 | .Spotlight-V100 10 | .TemporaryItems 11 | .Trashes 12 | 13 | # Node.js 14 | node_modules/ 15 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## 1. 壁纸浏览微信小程序 2 | 3 | 通过微信小程序 API 实现的壁纸浏览小程序。 4 | 5 | 主要包括三部分内容: 6 | 1. 壁纸类别列表 7 | 2. 分类浏览 8 | 3. 壁纸详情 9 | 10 | 11 | ## 2. 页面效果展示 12 | 13 | ### 2.1 壁纸类别列表 14 | 15 | 16 | 17 | 18 | 19 | ### 2.2 分类浏览 20 | 21 | 22 | 23 | 24 | 25 | ### 2.3 壁纸详情 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /cloudfunctions/callback/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "permissions": { 3 | "openapi": [ 4 | "customerServiceMessage.send" 5 | ] 6 | } 7 | } -------------------------------------------------------------------------------- /cloudfunctions/callback/index.js: -------------------------------------------------------------------------------- 1 | const cloud = require('wx-server-sdk') 2 | 3 | cloud.init({ 4 | // API 调用都保持和云函数当前所在环境一致 5 | env: cloud.DYNAMIC_CURRENT_ENV 6 | }) 7 | 8 | // 云函数入口函数 9 | exports.main = async (event, context) => { 10 | 11 | console.log(event) 12 | 13 | const { OPENID } = cloud.getWXContext() 14 | 15 | const result = await cloud.openapi.customerServiceMessage.send({ 16 | touser: OPENID, 17 | msgtype: 'text', 18 | text: { 19 | content: '收到:' + event.Content, 20 | } 21 | }) 22 | 23 | console.log(result) 24 | 25 | return result 26 | } 27 | -------------------------------------------------------------------------------- /cloudfunctions/callback/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "callback", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "wx-server-sdk": "latest" 13 | } 14 | } -------------------------------------------------------------------------------- /cloudfunctions/echo/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "permissions": { 3 | "openapi": [] 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /cloudfunctions/echo/index.js: -------------------------------------------------------------------------------- 1 | const cloud = require('wx-server-sdk') 2 | 3 | exports.main = async (event, context) => { 4 | // event.userInfo 是已废弃的保留字段,在此不做展示 5 | // 获取 OPENID 等微信上下文请使用 cloud.getWXContext() 6 | delete event.userInfo 7 | return event 8 | } 9 | -------------------------------------------------------------------------------- /cloudfunctions/echo/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "echo", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "wx-server-sdk": "latest" 13 | } 14 | } -------------------------------------------------------------------------------- /cloudfunctions/login/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "permissions": { 3 | "openapi": [] 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /cloudfunctions/login/index.js: -------------------------------------------------------------------------------- 1 | // 云函数模板 2 | // 部署:在 cloud-functions/login 文件夹右击选择 “上传并部署” 3 | 4 | const cloud = require('wx-server-sdk') 5 | 6 | // 初始化 cloud 7 | cloud.init({ 8 | // API 调用都保持和云函数当前所在环境一致 9 | env: cloud.DYNAMIC_CURRENT_ENV 10 | }) 11 | 12 | /** 13 | * 这个示例将经自动鉴权过的小程序用户 openid 返回给小程序端 14 | * 15 | * event 参数包含小程序端调用传入的 data 16 | * 17 | */ 18 | exports.main = (event, context) => { 19 | console.log(event) 20 | console.log(context) 21 | 22 | // 可执行其他自定义逻辑 23 | // console.log 的内容可以在云开发云函数调用日志查看 24 | 25 | // 获取 WX Context (微信调用上下文),包括 OPENID、APPID、及 UNIONID(需满足 UNIONID 获取条件)等信息 26 | const wxContext = cloud.getWXContext() 27 | 28 | return { 29 | event, 30 | openid: wxContext.OPENID, 31 | appid: wxContext.APPID, 32 | unionid: wxContext.UNIONID, 33 | env: wxContext.ENV, 34 | } 35 | } 36 | 37 | -------------------------------------------------------------------------------- /cloudfunctions/login/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "login", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "wx-server-sdk": "latest" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /cloudfunctions/openapi/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "permissions": { 3 | "openapi": [ 4 | "wxacode.get", 5 | "templateMessage.send", 6 | "templateMessage.addTemplate", 7 | "templateMessage.deleteTemplate", 8 | "templateMessage.getTemplateList", 9 | "templateMessage.getTemplateLibraryById", 10 | "templateMessage.getTemplateLibraryList" 11 | ] 12 | } 13 | } -------------------------------------------------------------------------------- /cloudfunctions/openapi/index.js: -------------------------------------------------------------------------------- 1 | // 云函数入口文件 2 | const cloud = require('wx-server-sdk') 3 | 4 | cloud.init({ 5 | // API 调用都保持和云函数当前所在环境一致 6 | env: cloud.DYNAMIC_CURRENT_ENV 7 | }) 8 | 9 | // 云函数入口函数 10 | exports.main = async (event, context) => { 11 | console.log(event) 12 | switch (event.action) { 13 | case 'sendTemplateMessage': { 14 | return sendTemplateMessage(event) 15 | } 16 | case 'getWXACode': { 17 | return getWXACode(event) 18 | } 19 | case 'getOpenData': { 20 | return getOpenData(event) 21 | } 22 | default: { 23 | return 24 | } 25 | } 26 | } 27 | 28 | async function sendTemplateMessage(event) { 29 | const { OPENID } = cloud.getWXContext() 30 | 31 | // 接下来将新增模板、发送模板消息、然后删除模板 32 | // 注意:新增模板然后再删除并不是建议的做法,此处只是为了演示,模板 ID 应在添加后保存起来后续使用 33 | const addResult = await cloud.openapi.templateMessage.addTemplate({ 34 | id: 'AT0002', 35 | keywordIdList: [3, 4, 5] 36 | }) 37 | 38 | const templateId = addResult.templateId 39 | 40 | const sendResult = await cloud.openapi.templateMessage.send({ 41 | touser: OPENID, 42 | templateId, 43 | formId: event.formId, 44 | page: 'pages/openapi/openapi', 45 | data: { 46 | keyword1: { 47 | value: '未名咖啡屋', 48 | }, 49 | keyword2: { 50 | value: '2019 年 1 月 1 日', 51 | }, 52 | keyword3: { 53 | value: '拿铁', 54 | }, 55 | } 56 | }) 57 | 58 | await cloud.openapi.templateMessage.deleteTemplate({ 59 | templateId, 60 | }) 61 | 62 | return sendResult 63 | } 64 | 65 | async function getWXACode(event) { 66 | 67 | // 此处将获取永久有效的小程序码,并将其保存在云文件存储中,最后返回云文件 ID 给前端使用 68 | 69 | const wxacodeResult = await cloud.openapi.wxacode.get({ 70 | path: 'pages/openapi/openapi', 71 | }) 72 | 73 | const fileExtensionMatches = wxacodeResult.contentType.match(/\/([^\/]+)/) 74 | const fileExtension = (fileExtensionMatches && fileExtensionMatches[1]) || 'jpg' 75 | 76 | const uploadResult = await cloud.uploadFile({ 77 | // 云文件路径,此处为演示采用一个固定名称 78 | cloudPath: `wxacode_default_openapi_page.${fileExtension}`, 79 | // 要上传的文件内容可直接传入图片 Buffer 80 | fileContent: wxacodeResult.buffer, 81 | }) 82 | 83 | if (!uploadResult.fileID) { 84 | throw new Error(`upload failed with empty fileID and storage server status code ${uploadResult.statusCode}`) 85 | } 86 | 87 | return uploadResult.fileID 88 | } 89 | 90 | async function getOpenData(event) { 91 | // 需 wx-server-sdk >= 0.5.0 92 | return cloud.getOpenData({ 93 | list: event.openData.list, 94 | }) 95 | } 96 | -------------------------------------------------------------------------------- /cloudfunctions/openapi/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "openapi", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "wx-server-sdk": "latest" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /miniprogram/app.js: -------------------------------------------------------------------------------- 1 | //app.js 2 | App({ 3 | 4 | onLaunch(options) { 5 | // Do something initial when launch. 6 | }, 7 | 8 | onShow(options) { 9 | // Do something when show. 10 | }, 11 | 12 | onHide() { 13 | // Do something when hide. 14 | }, 15 | 16 | onError(msg) { 17 | // Do something when error. 18 | }, 19 | 20 | globalData: { 21 | COMMON_SEPARATOR : "/", 22 | URL_BASE : "https://service.picasso.adesk.com/v1/vertical/category", 23 | URL_CATEGORY_ROOT : "https://service.picasso.adesk.com/v1/vertical/category?adult=false&first=1", 24 | URL_CATEGORY_DETAIL : "/vertical?limit=30&adult=false&first=1&order=new", 25 | } 26 | 27 | }) -------------------------------------------------------------------------------- /miniprogram/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "pages": [ 3 | "pages/categoryroot/categoryroot", 4 | "pages/categorydetail/categorydetail", 5 | "pages/categorydetailviewshow/categorydetailviewshow", 6 | "pages/login/login" 7 | ], 8 | "window": { 9 | "navigationBarTitleText": "Wallpaper" 10 | }, 11 | "networkTimeout": { 12 | "request": 10000, 13 | "downloadFile": 10000 14 | }, 15 | "debug": true, 16 | "sitemapLocation": "sitemap.json" 17 | } -------------------------------------------------------------------------------- /miniprogram/app.wxss: -------------------------------------------------------------------------------- 1 | /**app.wxss**/ 2 | page { 3 | background: #f6f6f6; 4 | display: flex; 5 | flex-direction: column; 6 | justify-content: flex-start; 7 | } 8 | 9 | .container { 10 | display: flex; 11 | flex-direction: column; 12 | align-items: center; 13 | box-sizing: border-box; 14 | } 15 | 16 | button { 17 | background: initial; 18 | } 19 | 20 | button:focus{ 21 | outline: 0; 22 | } 23 | 24 | button::after{ 25 | border: none; 26 | } 27 | 28 | -------------------------------------------------------------------------------- /miniprogram/images/ic_wallpaper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart24/Wallpaper/e3f14e72e465db1c730131faa200d93cc9a52ec2/miniprogram/images/ic_wallpaper.png -------------------------------------------------------------------------------- /miniprogram/images/index/icon_avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart24/Wallpaper/e3f14e72e465db1c730131faa200d93cc9a52ec2/miniprogram/images/index/icon_avatar.jpg -------------------------------------------------------------------------------- /miniprogram/pages/categorydetail/categorydetail.js: -------------------------------------------------------------------------------- 1 | //category detail.js 2 | const app = getApp(); 3 | 4 | Page({ 5 | data: { 6 | 7 | }, 8 | 9 | onLoad: function (options) { 10 | wx.setNavigationBarTitle({ 11 | title: options.categoryDetailTitle, 12 | }); 13 | 14 | var that = this; 15 | wx.request({ 16 | url: app.globalData.URL_BASE + app.globalData.COMMON_SEPARATOR + options.categoryDetailID + app.globalData.URL_CATEGORY_DETAIL, 17 | header: { 18 | 'content-type': 'application/json' 19 | }, 20 | method: 'GET', 21 | dataType: 'json', 22 | success(res) { 23 | console.log("请求成功") 24 | console.log(res.data.res.vertical) 25 | that.setData({ 26 | categoryDetailData: res.data.res.vertical, 27 | }) 28 | }, 29 | fail() { 30 | console.log("请求失败") 31 | } 32 | }) 33 | } 34 | }) -------------------------------------------------------------------------------- /miniprogram/pages/categorydetail/categorydetail.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarBackgroundColor": "#ffffff", 3 | "navigationBarTextStyle": "black", 4 | "navigationBarTitleText": "Wallpaper Category Detail", 5 | "backgroundColor": "#eeeeee", 6 | "backgroundTextStyle": "light" 7 | } -------------------------------------------------------------------------------- /miniprogram/pages/categorydetail/categorydetail.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /miniprogram/pages/categorydetail/categorydetail.wxss: -------------------------------------------------------------------------------- 1 | /** category detail **/ 2 | page { 3 | background: white; 4 | width: 100%; 5 | height: 100%; 6 | } 7 | 8 | .gridview { 9 | overflow: hidden; 10 | display: flex; 11 | justify-content: space-between; 12 | flex-wrap: wrap; 13 | } 14 | 15 | .item{ 16 | position: relative; 17 | width: 247rpx; 18 | height: 360rpx; 19 | margin-top: 6rpx; 20 | } 21 | 22 | .item:first-of-type, 23 | .item:nth-of-type(2), 24 | .item:nth-of-type(3){ 25 | margin-top: 0; 26 | } 27 | 28 | .img{ 29 | display: block; 30 | width: 100%; 31 | height: 360rpx; 32 | transform: all .3s; 33 | } -------------------------------------------------------------------------------- /miniprogram/pages/categorydetailviewshow/categorydetailviewshow.js: -------------------------------------------------------------------------------- 1 | //category detail view show.js 2 | const app = getApp(); 3 | 4 | Page({ 5 | data: { 6 | imageUrl: "" 7 | }, 8 | 9 | onLoad: function (options) { 10 | wx.setNavigationBarTitle({ 11 | title: options.viewShowTitle, 12 | }); 13 | 14 | this.setData({ 15 | imageUrl: options.viewShowImageUrl, 16 | }) 17 | }, 18 | 19 | saveImage: function () { 20 | var that = this; 21 | wx.showModal({ 22 | title: '提示', 23 | content: '是否保存图片到相册?', 24 | success(res) { 25 | if (res.confirm) { 26 | wx.showLoading({ 27 | title: '图片下载中...', 28 | }) 29 | wx.downloadFile({ 30 | url: that.data.imageUrl, 31 | success: function (res) { 32 | wx.saveImageToPhotosAlbum({ 33 | filePath: res.tempFilePath, 34 | success: function (data) { 35 | console.log("Success: " + data); 36 | wx.hideLoading(); 37 | wx.showToast({ 38 | title: '图片保存成功!', 39 | icon: 'success', 40 | duration: 2000, 41 | success: function(){ 42 | setTimeout(function () { 43 | wx.navigateBack({ 44 | delta: 1 45 | }); 46 | }, 2100); 47 | } 48 | }); 49 | }, 50 | fail: function (err) { 51 | console.log("Fail: " + err); 52 | if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny") { 53 | console.log("用户一开始拒绝了,我们想再次发起授权") 54 | console.log('打开设置窗口') 55 | wx.openSetting({ 56 | success(settingdata) { 57 | console.log(settingdata) 58 | if (settingdata.authSetting['scope.writePhotosAlbum']) { 59 | console.log('获取权限成功,给出再次点击图片保存到相册的提示。') 60 | } else { 61 | console.log('获取权限失败,给出不给权限就无法正常使用的提示') 62 | } 63 | } 64 | }) 65 | } 66 | }, 67 | complete: function(msg){ 68 | console.log("Complete: " + msg); 69 | } 70 | }) 71 | } 72 | }) 73 | } 74 | } 75 | }) 76 | } 77 | }) -------------------------------------------------------------------------------- /miniprogram/pages/categorydetailviewshow/categorydetailviewshow.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarBackgroundColor": "#ffffff", 3 | "navigationBarTextStyle": "black", 4 | "navigationBarTitleText": "Wallpaper Category Detail View Show", 5 | "backgroundColor": "#eeeeee", 6 | "backgroundTextStyle": "light" 7 | } -------------------------------------------------------------------------------- /miniprogram/pages/categorydetailviewshow/categorydetailviewshow.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /miniprogram/pages/categorydetailviewshow/categorydetailviewshow.wxss: -------------------------------------------------------------------------------- 1 | /** category detail view show **/ 2 | page { 3 | background: white; 4 | width: 100%; 5 | height: 100%; 6 | } 7 | .container{ 8 | position: absolute; 9 | width:100%; 10 | height: 100%; 11 | overflow: hidden; 12 | } 13 | .img{ 14 | display: block; 15 | width: 100%; 16 | height:100%; 17 | } -------------------------------------------------------------------------------- /miniprogram/pages/categoryroot/categoryroot.js: -------------------------------------------------------------------------------- 1 | //category root.js 2 | const app = getApp(); 3 | 4 | Page({ 5 | data: { 6 | 7 | }, 8 | 9 | onLoad: function() { 10 | var that = this; 11 | wx.request({ 12 | url: app.globalData.URL_BASE, 13 | header: { 14 | 'content-type': 'application/json' 15 | }, 16 | method: 'GET', 17 | dataType: 'json', 18 | success(res) { 19 | console.log("请求成功") 20 | that.setData({ 21 | categoryData: res.data.res.category 22 | }) 23 | }, 24 | fail() { 25 | console.log("请求失败") 26 | } 27 | }) 28 | } 29 | }) -------------------------------------------------------------------------------- /miniprogram/pages/categoryroot/categoryroot.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarBackgroundColor": "#ffffff", 3 | "navigationBarTextStyle": "black", 4 | "navigationBarTitleText": "Wallpaper", 5 | "backgroundColor": "#eeeeee", 6 | "backgroundTextStyle": "light" 7 | } -------------------------------------------------------------------------------- /miniprogram/pages/categoryroot/categoryroot.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | {{item.name}} 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /miniprogram/pages/categoryroot/categoryroot.wxss: -------------------------------------------------------------------------------- 1 | /* category root */ 2 | page { 3 | background: white; 4 | width: 100%; 5 | height: 100%; 6 | } 7 | 8 | .gridview { 9 | overflow: hidden; 10 | display: flex; 11 | justify-content: space-between; 12 | flex-wrap: wrap; 13 | } 14 | 15 | .item{ 16 | position: relative; 17 | width: 247rpx; 18 | height:247rpx; 19 | margin-top: 6rpx; 20 | } 21 | 22 | .item:first-of-type, 23 | .item:nth-of-type(2), 24 | .item:nth-of-type(3){ 25 | margin-top: 0; 26 | } 27 | 28 | .img{ 29 | display: block; 30 | width: 100%; 31 | height:247rpx; 32 | transform: all .3s; 33 | } 34 | 35 | .label{ 36 | position: absolute; 37 | top:0; 38 | left:0; 39 | width: 100%; 40 | height:100%; 41 | background: rgba(0,0,0,.6); 42 | text-align: center; 43 | font-size: 28rpx; 44 | color: #fff; 45 | line-height: 247rpx; 46 | transform: all .3s; 47 | } 48 | -------------------------------------------------------------------------------- /miniprogram/pages/login/login.js: -------------------------------------------------------------------------------- 1 | /** login.js **/ 2 | const app = getApp() 3 | 4 | Page({ 5 | data: { 6 | userName: "", 7 | userPassword: "" 8 | }, 9 | 10 | userNameInput: function(e) { 11 | this.setData({ 12 | userName: e.detail.value 13 | }) 14 | console.log(this.data.userName) 15 | }, 16 | 17 | userPasswordInput: function(e) { 18 | this.setData({ 19 | userPassword: e.detail.value 20 | }) 21 | console.log(this.data.userPassword) 22 | }, 23 | 24 | login: function() { 25 | if (this.data.userName == '') { 26 | wx.showToast({ 27 | title: '请输入用户名', 28 | icon: 'none', 29 | duration: 1000, 30 | mask: true 31 | }) 32 | return; 33 | } 34 | 35 | if (this.data.userPassword == '') { 36 | wx.showToast({ 37 | title: '请输入密码', 38 | icon: 'none', 39 | duration: 1000, 40 | mask: true 41 | }) 42 | return; 43 | } 44 | 45 | if (this.data.userName == "123456" && this.data.userPassword == "123456") { 46 | console.log("登陆成功") 47 | wx.showToast({ 48 | title: '登陆成功!', 49 | icon: 'success', 50 | duration: 1000, 51 | mask: true 52 | }) 53 | wx.navigateTo({ 54 | url: '/pages/categoryroot/categoryroot', 55 | }) 56 | } else { 57 | wx.showToast({ 58 | title: '用户名或密码不正确', 59 | icon: 'none', 60 | duration: 1000, 61 | mask: true 62 | }) 63 | } 64 | } 65 | }) -------------------------------------------------------------------------------- /miniprogram/pages/login/login.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarBackgroundColor": "#ffffff", 3 | "navigationBarTextStyle": "black", 4 | "navigationBarTitleText": "Wallpaper", 5 | "backgroundColor": "#eeeeee", 6 | "backgroundTextStyle": "light" 7 | } -------------------------------------------------------------------------------- /miniprogram/pages/login/login.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 24 | 25 | 26 | 27 | 28 | 29 | 39 | 40 | 41 | 42 | 43 | 44 | 51 | 52 | -------------------------------------------------------------------------------- /miniprogram/pages/login/login.wxss: -------------------------------------------------------------------------------- 1 | /** login.wxss **/ 2 | page { 3 | background: linear-gradient(to bottom, #e0c3fc, #8ec5fc); 4 | width: 100%; 5 | height: 100%; 6 | } 7 | 8 | .user_avatar { 9 | width: 128rpx; 10 | height: 128rpx; 11 | border-radius: 128rpx 128rpx 128rpx 128rpx; 12 | margin-top: 256rpx; 13 | background-color: #eee; 14 | } 15 | 16 | .user_name { 17 | background-color: white; 18 | margin-top: 128rpx; 19 | height: 48rpx; 20 | width: 140%; 21 | border-radius: 48rpx 48rpx 48rpx 48rpx; 22 | padding: 16rpx; 23 | padding-left: 30rpx; 24 | font-size: 26rpx; 25 | margin-left: -25%; 26 | } 27 | 28 | .user_password { 29 | background-color: white; 30 | margin-top: 48rpx; 31 | height: 48rpx; 32 | width: 140%; 33 | border-radius: 48rpx 48rpx 48rpx 48rpx; 34 | padding: 16rpx; 35 | padding-left: 30rpx; 36 | font-size: 26rpx; 37 | margin-left: -25%; 38 | } 39 | 40 | .user_login { 41 | margin-top: 96rpx; 42 | height: 84rpx; 43 | width: 480%; 44 | border-radius: 48rpx 48rpx 48rpx 48rpx; 45 | padding: 16rpx; 46 | font-size: 26rpx; 47 | margin-left: -200%; 48 | } 49 | -------------------------------------------------------------------------------- /miniprogram/sitemap.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", 3 | "rules": [{ 4 | "action": "allow", 5 | "page": "*" 6 | }] 7 | } -------------------------------------------------------------------------------- /project.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "miniprogramRoot": "miniprogram/", 3 | "cloudfunctionRoot": "cloudfunctions/", 4 | "setting": { 5 | "urlCheck": false, 6 | "es6": true, 7 | "enhance": true, 8 | "postcss": true, 9 | "minified": true, 10 | "newFeature": true, 11 | "coverView": true, 12 | "autoAudits": false, 13 | "showShadowRootInWxmlPanel": true, 14 | "scopeDataCheck": false, 15 | "checkInvalidKey": true, 16 | "checkSiteMap": true, 17 | "uploadWithSourceMap": true, 18 | "babelSetting": { 19 | "ignore": [], 20 | "disablePlugins": [], 21 | "outputPath": "" 22 | } 23 | }, 24 | "appid": "wx7b270fa6e2f7c07d", 25 | "projectname": "B_MyWallpaper_202001131524", 26 | "libVersion": "2.8.1", 27 | "simulatorType": "wechat", 28 | "simulatorPluginLibVersion": {}, 29 | "condition": { 30 | "search": { 31 | "current": -1, 32 | "list": [] 33 | }, 34 | "conversation": { 35 | "current": -1, 36 | "list": [] 37 | }, 38 | "plugin": { 39 | "current": -1, 40 | "list": [] 41 | }, 42 | "game": { 43 | "list": [] 44 | }, 45 | "miniprogram": { 46 | "current": 0, 47 | "list": [ 48 | { 49 | "id": -1, 50 | "name": "db guide", 51 | "pathName": "pages/databaseGuide/databaseGuide" 52 | } 53 | ] 54 | } 55 | } 56 | } -------------------------------------------------------------------------------- /raw/WallPaper-01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart24/Wallpaper/e3f14e72e465db1c730131faa200d93cc9a52ec2/raw/WallPaper-01.jpg -------------------------------------------------------------------------------- /raw/WallPaper-02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart24/Wallpaper/e3f14e72e465db1c730131faa200d93cc9a52ec2/raw/WallPaper-02.jpg -------------------------------------------------------------------------------- /raw/WallPaper-03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart24/Wallpaper/e3f14e72e465db1c730131faa200d93cc9a52ec2/raw/WallPaper-03.jpg -------------------------------------------------------------------------------- /raw/WallPaper-04.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart24/Wallpaper/e3f14e72e465db1c730131faa200d93cc9a52ec2/raw/WallPaper-04.gif -------------------------------------------------------------------------------- /raw/WallPaper-05.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart24/Wallpaper/e3f14e72e465db1c730131faa200d93cc9a52ec2/raw/WallPaper-05.gif -------------------------------------------------------------------------------- /raw/WallPaper-06.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart24/Wallpaper/e3f14e72e465db1c730131faa200d93cc9a52ec2/raw/WallPaper-06.gif --------------------------------------------------------------------------------