commit 03e9f64ff4911a3f38ccc784f171f8c582db1077 Author: hant Date: Mon Jun 30 23:27:25 2025 +0800 init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2206998 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/miniprogram_npm/ +/node_modules/ \ No newline at end of file diff --git a/app.js b/app.js new file mode 100644 index 0000000..1ed57c4 --- /dev/null +++ b/app.js @@ -0,0 +1,19 @@ +// app.js +App({ + onLaunch() { + // 展示本地存储能力 + const logs = wx.getStorageSync('logs') || [] + logs.unshift(Date.now()) + wx.setStorageSync('logs', logs) + + // 登录 + wx.login({ + success: res => { + // 发送 res.code 到后台换取 openId, sessionKey, unionId + } + }) + }, + globalData: { + userInfo: null + } +}) diff --git a/app.json b/app.json new file mode 100644 index 0000000..042e029 --- /dev/null +++ b/app.json @@ -0,0 +1,15 @@ +{ + "pages": [ + "pages/index/index", + "pages/logs/logs" + ], + "window": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "Weixin", + "navigationBarBackgroundColor": "#ffffff" + }, + "style": "v2", + "componentFramework": "glass-easel", + "sitemapLocation": "sitemap.json", + "lazyCodeLoading": "requiredComponents" +} diff --git a/app.wxss b/app.wxss new file mode 100644 index 0000000..06c6fc9 --- /dev/null +++ b/app.wxss @@ -0,0 +1,10 @@ +/**app.wxss**/ +.container { + height: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + padding: 200rpx 0; + box-sizing: border-box; +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..604c272 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,18 @@ +{ + "name": "car_front", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@vant/weapp": "^1.11.7" + } + }, + "node_modules/@vant/weapp": { + "version": "1.11.7", + "resolved": "https://registry.npmmirror.com/@vant/weapp/-/weapp-1.11.7.tgz", + "integrity": "sha512-Rwn9BBnb4kHSV4XmvBicwtd42J+amEUfnFDcXJsGNPNX4a9c/DoT6YLsm4X1wB2+sQbdiQsbFBLAvGRBxCkD8g==", + "license": "MIT" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..a8cbc5c --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "@vant/weapp": "^1.11.7" + } +} diff --git a/pages/index/index.js b/pages/index/index.js new file mode 100644 index 0000000..98c3e7e --- /dev/null +++ b/pages/index/index.js @@ -0,0 +1,44 @@ +Page({ + data: { + bannerList: [ + 'http://192.168.1.11:8089/uploads/20250630/054c53776891b766c6f1bd65059a5b27.jpg', + 'http://192.168.1.11:8089/uploads/20250630/c7f45ec56c19eac42a23c5e987cacc93.jpg' + ], + company: { + name: '某某汽车服务有限公司', + address: '上海市浦东新区世纪大道100号', + latitude: 31.2304, // 地图坐标 + longitude: 121.4737, + phone: '021-88888888' + }, + carList: [ + { + id: 1, + title: '丰田 卡罗拉 1.2T 自动', + image: 'http://192.168.1.11:8089/uploads/20250630/c7f45ec56c19eac42a23c5e987cacc93.jpg', + registerDate: '2021-05', + mileage: 3.5, + emission: '国六' + }, + { + id: 2, + title: '本田 思域 1.5T 手动', + image: 'http://192.168.1.11:8089/uploads/20250630/c7f45ec56c19eac42a23c5e987cacc93.jpg', + registerDate: '2020-08', + mileage: 5.2, + emission: '国五' + } + ] + }, + + openMap() { + const { latitude, longitude, address, name } = this.data.company + wx.openLocation({ + latitude, + longitude, + scale: 18, + name, + address + }) + } +}) diff --git a/pages/index/index.json b/pages/index/index.json new file mode 100644 index 0000000..2489a0e --- /dev/null +++ b/pages/index/index.json @@ -0,0 +1,7 @@ +{ + "usingComponents": { + "van-icon": "@vant/weapp/icon/index", + "van-button": "@vant/weapp/button/index", + "van-card": "@vant/weapp/card/index" + } +} \ No newline at end of file diff --git a/pages/index/index.wxml b/pages/index/index.wxml new file mode 100644 index 0000000..cc33895 --- /dev/null +++ b/pages/index/index.wxml @@ -0,0 +1,39 @@ + + + + + + {{company.name}} + + + {{company.address}} + + + 导航 + 电话 + + + + + + + + + + + {{item.title}} + + {{item.registerDate}} + {{item.mileage}} km + {{item.emission}} + + + + + diff --git a/pages/index/index.wxss b/pages/index/index.wxss new file mode 100644 index 0000000..4a0516c --- /dev/null +++ b/pages/index/index.wxss @@ -0,0 +1,100 @@ +.banner { + height: 300rpx; +} +.banner-image { + width: 100%; + height: 100%; + display: block; +} + +.company-info { + padding: 20rpx; + background-color: #ffffff; + text-align: center; +} +.company-name { + font-size: 36rpx; + font-weight: bold; + margin-bottom: 10rpx; +} +.company-address { + display: flex; + justify-content: center; + align-items: center; + font-size: 28rpx; + color: #666; + margin-bottom: 10rpx; +} +.company-address van-icon { + margin-right: 10rpx; +} +.company-actions { + display: flex; + justify-content: center; + gap: 20rpx; + margin-top: 10rpx; +} + +.car-list { + padding: 20rpx; + background-color: #f7f8fa; +} +.banner { + height: 300rpx; +} +.banner-image { + width: 100%; + height: 100%; + display: block; +} +.car-list { + padding: 20rpx; + background-color: #f7f8fa; +} + +.car-item { + background: #fff; + border-radius: 8rpx; + display: flex; + margin-bottom: 20rpx; + overflow: hidden; + box-shadow: 0 1rpx 4rpx rgba(0,0,0,0.1); +} + +.car-image { + width: 220rpx; + height: 140rpx; + flex-shrink: 0; +} + +.car-info { + flex: 1; + padding: 0 10rpx; + display: flex; + flex-direction: column; + justify-content: space-around; +} + +.car-title { + font-size: 28rpx; + font-weight: bold; + margin-bottom: 12rpx; +} + +.car-detail text { + display: block; + font-size: 26rpx; + color: #666; + margin-bottom: 6rpx; +} +.car-detail { + font-size: 24rpx; /* 父容器整体字体大小 */ + color: #999999; /* 次要文字颜色 */ + display: flex; + gap: 20rpx; /* 间隔,兼容微信小程序flex-gap */ +} + +.car-subtext { + font-size: 24rpx; + color: #999999; +} diff --git a/pages/logs/logs.js b/pages/logs/logs.js new file mode 100644 index 0000000..85f6aac --- /dev/null +++ b/pages/logs/logs.js @@ -0,0 +1,18 @@ +// logs.js +const util = require('../../utils/util.js') + +Page({ + data: { + logs: [] + }, + onLoad() { + this.setData({ + logs: (wx.getStorageSync('logs') || []).map(log => { + return { + date: util.formatTime(new Date(log)), + timeStamp: log + } + }) + }) + } +}) diff --git a/pages/logs/logs.json b/pages/logs/logs.json new file mode 100644 index 0000000..b55b5a2 --- /dev/null +++ b/pages/logs/logs.json @@ -0,0 +1,4 @@ +{ + "usingComponents": { + } +} \ No newline at end of file diff --git a/pages/logs/logs.wxml b/pages/logs/logs.wxml new file mode 100644 index 0000000..85cf1bf --- /dev/null +++ b/pages/logs/logs.wxml @@ -0,0 +1,6 @@ + + + + {{index + 1}}. {{log.date}} + + diff --git a/pages/logs/logs.wxss b/pages/logs/logs.wxss new file mode 100644 index 0000000..33f9d9e --- /dev/null +++ b/pages/logs/logs.wxss @@ -0,0 +1,16 @@ +page { + height: 100vh; + display: flex; + flex-direction: column; +} +.scrollarea { + flex: 1; + overflow-y: hidden; +} +.log-item { + margin-top: 20rpx; + text-align: center; +} +.log-item:last-child { + padding-bottom: env(safe-area-inset-bottom); +} diff --git a/project.config.json b/project.config.json new file mode 100644 index 0000000..0706467 --- /dev/null +++ b/project.config.json @@ -0,0 +1,41 @@ +{ + "compileType": "miniprogram", + "libVersion": "trial", + "packOptions": { + "ignore": [], + "include": [] + }, + "setting": { + "coverView": true, + "es6": true, + "postcss": true, + "minified": true, + "enhance": true, + "showShadowRootInWxmlPanel": true, + "packNpmRelationList": [], + "babelSetting": { + "ignore": [], + "disablePlugins": [], + "outputPath": "" + }, + "compileWorklet": false, + "uglifyFileName": false, + "uploadWithSourceMap": true, + "packNpmManually": false, + "minifyWXSS": true, + "minifyWXML": true, + "localPlugins": false, + "condition": false, + "swc": false, + "disableSWC": true, + "disableUseStrict": false, + "useCompilerPlugins": false + }, + "condition": {}, + "editorSetting": { + "tabIndent": "auto", + "tabSize": 2 + }, + "appid": "wxfebb5f10af4f59ce", + "simulatorPluginLibVersion": {} +} \ No newline at end of file diff --git a/project.private.config.json b/project.private.config.json new file mode 100644 index 0000000..185b1ce --- /dev/null +++ b/project.private.config.json @@ -0,0 +1,23 @@ +{ + "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", + "projectname": "car_front", + "setting": { + "compileHotReLoad": true, + "urlCheck": true, + "coverView": true, + "lazyloadPlaceholderEnable": false, + "skylineRenderEnable": false, + "preloadBackgroundData": false, + "autoAudits": false, + "useApiHook": true, + "useApiHostProcess": true, + "showShadowRootInWxmlPanel": true, + "useStaticServer": false, + "useLanDebug": false, + "showES6CompileOption": false, + "bigPackageSizeSupport": false, + "checkInvalidKey": true, + "ignoreDevUnusedFiles": true + }, + "libVersion": "3.8.10" +} \ No newline at end of file diff --git a/sitemap.json b/sitemap.json new file mode 100644 index 0000000..ca02add --- /dev/null +++ b/sitemap.json @@ -0,0 +1,7 @@ +{ + "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", + "rules": [{ + "action": "allow", + "page": "*" + }] +} \ No newline at end of file diff --git a/utils/util.js b/utils/util.js new file mode 100644 index 0000000..764bc2c --- /dev/null +++ b/utils/util.js @@ -0,0 +1,19 @@ +const formatTime = date => { + const year = date.getFullYear() + const month = date.getMonth() + 1 + const day = date.getDate() + const hour = date.getHours() + const minute = date.getMinutes() + const second = date.getSeconds() + + return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}` +} + +const formatNumber = n => { + n = n.toString() + return n[1] ? n : `0${n}` +} + +module.exports = { + formatTime +}