Commit 3f0a9b978cf40c702306c740d6a61c442a2d2abf
1 parent
6b65be48
1
Showing
12 changed files
with
494 additions
and
8 deletions
lvdao-miniapp/pages.json
| ... | ... | @@ -397,6 +397,13 @@ |
| 397 | 397 | "name": "pagesA", |
| 398 | 398 | "pages": [ |
| 399 | 399 | { |
| 400 | + "path": "addsb/addsb", | |
| 401 | + "style": { | |
| 402 | + "navigationBarBackgroundColor": "#FFFFFF", | |
| 403 | + "navigationBarTitleText": "事件上报" | |
| 404 | + } | |
| 405 | + }, | |
| 406 | + { | |
| 400 | 407 | "path": "web/web", |
| 401 | 408 | "style": { |
| 402 | 409 | "navigationBarBackgroundColor": "#FFFFFF", | ... | ... |
lvdao-miniapp/pages/details/details.vue
| ... | ... | @@ -108,11 +108,11 @@ |
| 108 | 108 | <u-col span="12"> |
| 109 | 109 | <view class="form-item"> |
| 110 | 110 | <view class="label">建筑图纸:</view> |
| 111 | - <view style='flex: 1;' v-if="!tableData.architecturalDrawings.length>0"> | |
| 111 | + <view style='flex: 1;' v-if="tableData.architecturalDrawings&&!tableData.architecturalDrawings.length>0"> | |
| 112 | 112 | <text>暂无</text> |
| 113 | 113 | </view> |
| 114 | 114 | </view> |
| 115 | - <view style="display: flex;flex-wrap: wrap;" v-if="tableData.architecturalDrawings.length>0"> | |
| 115 | + <view style="display: flex;flex-wrap: wrap;" v-if="tableData.architecturalDrawings&&tableData.architecturalDrawings.length>0"> | |
| 116 | 116 | <u-image @click="openimg1(tableData.architecturalDrawings,index)" :showLoading="true" v-for="(item,index) in tableData.architecturalDrawings" :src="imgUrl+item" width="100px" height="100px" border-radius="20" style="margin-bottom:25rpx;margin-left: 25rpx;"></u-image> |
| 117 | 117 | </view> |
| 118 | 118 | |
| ... | ... | @@ -178,11 +178,11 @@ |
| 178 | 178 | <u-col span="12"> |
| 179 | 179 | <view class="form-item"> |
| 180 | 180 | <view class="label">规划图纸:</view> |
| 181 | - <view style='flex: 1;' v-if="!tableData.planningDrawing.length>0"> | |
| 181 | + <view style='flex: 1;' v-if="tableData.planningDrawing&&!tableData.planningDrawing.length>0"> | |
| 182 | 182 | <text>暂无</text> |
| 183 | 183 | </view> |
| 184 | 184 | </view> |
| 185 | - <view style="display: flex;flex-wrap: wrap;" v-if="tableData.planningDrawing.length>0"> | |
| 185 | + <view style="display: flex;flex-wrap: wrap;" v-if="tableData.planningDrawing&&tableData.planningDrawing.length>0"> | |
| 186 | 186 | <u-image @click="openimg1(tableData.planningDrawing,index)" :showLoading="true" v-for="(item,index) in tableData.architecturalDrawings" :src="imgUrl+item" width="100px" height="100px" border-radius="20" style="margin-bottom:25rpx;margin-left: 25rpx;"></u-image> |
| 187 | 187 | </view> |
| 188 | 188 | |
| ... | ... | @@ -275,9 +275,10 @@ |
| 275 | 275 | }, |
| 276 | 276 | }, |
| 277 | 277 | onLoad(option) { |
| 278 | - | |
| 279 | - let data = JSON.parse(option.item) | |
| 280 | - console.log(data) | |
| 278 | + console.log(option) | |
| 279 | + let ce = decodeURIComponent(option.item) | |
| 280 | + let data = JSON.parse(ce) | |
| 281 | + | |
| 281 | 282 | |
| 282 | 283 | if (data.shopName) { |
| 283 | 284 | this.qianzui = 'sp' | ... | ... |
lvdao-miniapp/pages/shops/shops.vue
| ... | ... | @@ -252,9 +252,12 @@ |
| 252 | 252 | this.search(); |
| 253 | 253 | }, |
| 254 | 254 | reconciliationdetail(item) { |
| 255 | + | |
| 256 | + // let items = JSON.stringify(item) | |
| 257 | + | |
| 255 | 258 | let items = JSON.stringify(item) |
| 256 | 259 | uni.navigateTo({ |
| 257 | - url: `/pages/details/details?item=${items}` | |
| 260 | + url: `/pages/details/details?item=${encodeURIComponent(items)}` | |
| 258 | 261 | }) |
| 259 | 262 | }, |
| 260 | 263 | ... | ... |
lvdao-miniapp/pagesA/addsb/addsb.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <view class="appbox"> | |
| 3 | + | |
| 4 | + <view style="display: flex;" v-if="type == '1'"> | |
| 5 | + <view @click="changeonindex('意见反馈')" :class="onindex == '意见反馈'?'onclasst1':'classt1'"> | |
| 6 | + 意见反馈 | |
| 7 | + <view class="onindex"></view> | |
| 8 | + </view> | |
| 9 | + <view @click="changeonindex('我的反馈')" :class="onindex == '我的反馈'?'onclasst1':'classt1'"> | |
| 10 | + 我的反馈 | |
| 11 | + <view class="onindex"></view> | |
| 12 | + </view> | |
| 13 | + </view> | |
| 14 | + <view style="display: flex;" v-if="type == '2'"> | |
| 15 | + <view :class="onindex == '意见反馈编辑'?'onclasst1':'classt1'"> | |
| 16 | + 意见反馈编辑 | |
| 17 | + <view class="onindex"></view> | |
| 18 | + </view> | |
| 19 | + </view> | |
| 20 | + <view style="flex: 1;overflow-y: scroll;"> | |
| 21 | + <view v-if="onindex == '意见反馈'" style="overflow-y: scroll;height: 100%;"> | |
| 22 | + <view class="fromitem"> | |
| 23 | + <view class="t1 tit1"> | |
| 24 | + 上报位置 | |
| 25 | + </view> | |
| 26 | + <view class="item"> | |
| 27 | + <input v-model="form.reportLocation" placeholder-style="color:#c8c9cc" placeholder="请输入" /> | |
| 28 | + </view> | |
| 29 | + </view> | |
| 30 | + <view class="fromitem"> | |
| 31 | + <view class="t1 tit1"> | |
| 32 | + 问题描述 | |
| 33 | + </view> | |
| 34 | + <view class="item"> | |
| 35 | + <textarea v-model="form.problemDescribe" placeholder-style="color:#c8c9cc" placeholder="请输入" /> | |
| 36 | + </view> | |
| 37 | + </view> | |
| 38 | + <view class="fromitem"> | |
| 39 | + <view class="t1 tit1"> | |
| 40 | + 事件类型 | |
| 41 | + </view> | |
| 42 | + <view class="item" style="display: flex;justify-content: space-between;color: #c8c9cc;" | |
| 43 | + @click="typeShow = true"> | |
| 44 | + <view>{{ontype?ontype:'请选择'}}</view> | |
| 45 | + <u-icon color="#c8c9cc" name="arrow-right"></u-icon> | |
| 46 | + </view> | |
| 47 | + </view> | |
| 48 | + <view class="fromitem"> | |
| 49 | + <u-upload :action="$upload" :auto-upload="false" ref="coverImage" :max-count="9" :file-list="fist" @on-remove="onremove1" | |
| 50 | + @on-choose-complete="(response, file, fileList) => onsuccess1(response, file, fileList, 'coverImage')"></u-upload> | |
| 51 | + </view> | |
| 52 | + <view style="height: 100rpx;"></view> | |
| 53 | + <view class="page-footer"> | |
| 54 | + <u-button style="width: 100%;" type="success" @click="submit">提交</u-button> | |
| 55 | + </view> | |
| 56 | + </view> | |
| 57 | + <scroll-view style="height: 100%;" scroll-y v-if="onindex == '我的反馈'" @scrolltolower="scrolltolower"> | |
| 58 | + <view v-if="mylist.length>0" style="text-align: center;margin-top: 50rpx;" class="tit1">暂无数据</view> | |
| 59 | + <view style="background: #fff;border-radius: 18rpx;padding: 30rpx;margin-top: 30rpx;" | |
| 60 | + v-for="(item,index) in mylist"> | |
| 61 | + <view style="display: flex;line-height: 50rpx;"> | |
| 62 | + <view class="tit1">事件类型:</view> | |
| 63 | + <view class="tit2">{{item.eventTypeName|| '-'}}</view> | |
| 64 | + </view> | |
| 65 | + <view style="display: flex;line-height: 50rpx;"> | |
| 66 | + <view class="tit1">上报位置:</view> | |
| 67 | + <view class="tit2">{{item.reportLocation|| '-'}}</view> | |
| 68 | + </view> | |
| 69 | + <view style="display: flex;line-height: 50rpx;"> | |
| 70 | + <view class="tit1">问题描述:</view> | |
| 71 | + <view class="tit2">{{item.problemDescribe || '-'}}</view> | |
| 72 | + </view> | |
| 73 | + <view style="display: flex;line-height: 50rpx;"> | |
| 74 | + <view class="tit1">提交时间:</view> | |
| 75 | + <view class="tit2">{{item.createTime || '-'}}</view> | |
| 76 | + </view> | |
| 77 | + <view style="display: flex;flex-wrap: wrap;"> | |
| 78 | + <u-image @click="openimg1(item.eventPictures,index)" :showLoading="true" | |
| 79 | + v-for="(item1,index1) in item.eventPictures" :src="item1" width="100px" height="100px" | |
| 80 | + border-radius="20" style="margin-top:15rpx;margin-left: 15rpx;"></u-image> | |
| 81 | + </view> | |
| 82 | + <view style="display: flex;flex-direction: row-reverse;"> | |
| 83 | + <view | |
| 84 | + style="background: rgb(63, 155, 106);padding: 10rpx 0;border-radius: 36rpx;color: #fff;font-size: 23rpx;width: 100rpx;text-align: center;font-weight: bold;" | |
| 85 | + @click="remove(item)">编辑</view> | |
| 86 | + </view> | |
| 87 | + </view> | |
| 88 | + </scroll-view> | |
| 89 | + <view v-if="onindex == '意见反馈编辑'"> | |
| 90 | + <view class="fromitem"> | |
| 91 | + <view class="t1 tit1"> | |
| 92 | + 上报位置 | |
| 93 | + </view> | |
| 94 | + <view class="item"> | |
| 95 | + <input v-model="removeinfo.reportLocation" placeholder-style="color:#c8c9cc" | |
| 96 | + placeholder="请输入" /> | |
| 97 | + </view> | |
| 98 | + </view> | |
| 99 | + <view class="fromitem"> | |
| 100 | + <view class="t1 tit1"> | |
| 101 | + 问题描述 | |
| 102 | + </view> | |
| 103 | + <view class="item"> | |
| 104 | + <textarea v-model="removeinfo.problemDescribe" placeholder-style="color:#c8c9cc" | |
| 105 | + placeholder="请输入" /> | |
| 106 | + </view> | |
| 107 | + </view> | |
| 108 | + <view class="fromitem"> | |
| 109 | + <view class="t1 tit1"> | |
| 110 | + 事件类型 | |
| 111 | + </view> | |
| 112 | + <view class="item" style="display: flex;justify-content: space-between;color: #c8c9cc;" | |
| 113 | + @click="typeShow = true"> | |
| 114 | + <view>{{ontype?ontype:'请选择'}}</view> | |
| 115 | + <u-icon color="#c8c9cc" name="arrow-right"></u-icon> | |
| 116 | + </view> | |
| 117 | + </view> | |
| 118 | + <view class="fromitem"> | |
| 119 | + <u-upload :action="$upload" :auto-upload="false" ref="coverImage" :max-count="9" :file-list="fist" @on-remove="onremove2" | |
| 120 | + @on-choose-complete="(response, file, fileList) => onsuccess2(response, file, fileList, 'coverImage')" ></u-upload> | |
| 121 | + </view> | |
| 122 | + <view style="height: 100rpx;"></view> | |
| 123 | + <view class="page-footer"> | |
| 124 | + <u-button style="width: 48%;" @click="qux">取消</u-button> | |
| 125 | + <u-button style="width: 48%;" type="success" @click="removeonfo()">提交</u-button> | |
| 126 | + </view> | |
| 127 | + </view> | |
| 128 | + </view> | |
| 129 | + | |
| 130 | + | |
| 131 | + <u-select v-model="typeShow" :list="typeList" @confirm="typeChange"></u-select> | |
| 132 | + </view> | |
| 133 | +</template> | |
| 134 | + | |
| 135 | +<script> | |
| 136 | + export default { | |
| 137 | + data() { | |
| 138 | + return { | |
| 139 | + type: '1', | |
| 140 | + mylist: [], | |
| 141 | + fist: [], | |
| 142 | + typeShow: false, | |
| 143 | + typeList: [], | |
| 144 | + ontype: null, | |
| 145 | + onindex: '意见反馈', | |
| 146 | + form: { | |
| 147 | + problemDescribe: '', | |
| 148 | + reportLocation: '', | |
| 149 | + eventType: '', | |
| 150 | + eventPictures: [], | |
| 151 | + userName: uni.getStorageSync('user').name, | |
| 152 | + userPhone: uni.getStorageSync('user').phone, | |
| 153 | + }, | |
| 154 | + removeinfo: {}, | |
| 155 | + page:0, | |
| 156 | + total:0 | |
| 157 | + } | |
| 158 | + }, | |
| 159 | + onLoad() { | |
| 160 | + this.$http.sendRequest('/eventReporting/report', 'POST', {}, 1).then(res => { | |
| 161 | + if (res.data.code == 200) { | |
| 162 | + let list = res.data.data.map(item => { | |
| 163 | + let c1 = { | |
| 164 | + value: item.id, | |
| 165 | + label: item.name | |
| 166 | + } | |
| 167 | + return c1 | |
| 168 | + }) | |
| 169 | + console.error(list) | |
| 170 | + this.typeList = list | |
| 171 | + } | |
| 172 | + }) | |
| 173 | + }, | |
| 174 | + | |
| 175 | + methods: { | |
| 176 | + scrolltolower(e){ | |
| 177 | + console.error(e) | |
| 178 | + if (this.mylist.length < this.total) { | |
| 179 | + this.page++ | |
| 180 | + this.gain() | |
| 181 | + } | |
| 182 | + }, | |
| 183 | + onremove1(e) { | |
| 184 | + this.form.eventPictures.splice(e,1) | |
| 185 | + console.error(this.form.eventPictures) | |
| 186 | + }, | |
| 187 | + onremove2(e) { | |
| 188 | + this.removeinfo.eventPictures.splice(e,1) | |
| 189 | + console.error(this.removeinfo.eventPictures) | |
| 190 | + }, | |
| 191 | + qux() { | |
| 192 | + this.type = '1' | |
| 193 | + this.changeonindex('我的反馈') | |
| 194 | + }, | |
| 195 | + remove(e) { | |
| 196 | + this.removeinfo = e | |
| 197 | + this.fist = this.removeinfo.eventPictures.map(item => { | |
| 198 | + let c1 = { | |
| 199 | + url:item | |
| 200 | + } | |
| 201 | + return c1 | |
| 202 | + }) | |
| 203 | + this.ontype = this.removeinfo.eventTypeName; | |
| 204 | + console.error(this.fist) | |
| 205 | + this.onindex = '意见反馈编辑' | |
| 206 | + this.type = '2' | |
| 207 | + }, | |
| 208 | + removeonfo() { | |
| 209 | + console.error({ | |
| 210 | + ...this.removeinfo | |
| 211 | + }) | |
| 212 | + console.error(this.fist) | |
| 213 | + this.$http.sendRequest('/eventReporting/update', 'POST', this.removeinfo, 1).then(res => { | |
| 214 | + console.error(res) | |
| 215 | + if(res.data.code == '200'){ | |
| 216 | + uni.showToast({ | |
| 217 | + icon:'none', | |
| 218 | + title:res.data.message | |
| 219 | + }) | |
| 220 | + setTimeout(() => { | |
| 221 | + this.type = '1' | |
| 222 | + this.changeonindex('我的反馈') | |
| 223 | + }, 1000); | |
| 224 | + } else{ | |
| 225 | + uni.showToast({ | |
| 226 | + icon:'none', | |
| 227 | + title:res.data.message | |
| 228 | + }) | |
| 229 | + } | |
| 230 | + }) | |
| 231 | + }, | |
| 232 | + openimg1(urls, index) { | |
| 233 | + let list = urls.map(item => { | |
| 234 | + return this.imgUrl + item | |
| 235 | + }) | |
| 236 | + uni.previewImage({ | |
| 237 | + current: index, | |
| 238 | + urls: list, | |
| 239 | + longPressActions: { | |
| 240 | + itemList: ['发送给朋友', '保存图片', '收藏'], | |
| 241 | + success: function(data) { | |
| 242 | + console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片'); | |
| 243 | + }, | |
| 244 | + fail: function(err) { | |
| 245 | + console.log(err.errMsg); | |
| 246 | + } | |
| 247 | + } | |
| 248 | + }); | |
| 249 | + }, | |
| 250 | + changeonindex(e) { | |
| 251 | + this.onindex = e | |
| 252 | + this.fist = [] | |
| 253 | + this.mylist = [] | |
| 254 | + this.ontype = null | |
| 255 | + this.page = 0 | |
| 256 | + if (this.onindex == '意见反馈') { | |
| 257 | + | |
| 258 | + } else if (this.onindex == '我的反馈') { | |
| 259 | + this.gain() | |
| 260 | + } | |
| 261 | + }, | |
| 262 | + gain() { | |
| 263 | + this.$http.sendRequest('/eventReporting/list', 'POST', { | |
| 264 | + "page": this.page, | |
| 265 | + "limit": 10, | |
| 266 | + userPhone: uni.getStorageSync('user').phone | |
| 267 | + }, 1).then(res => { | |
| 268 | + console.error(res) | |
| 269 | + this.mylist = [...this.mylist,...res.data.data.records] | |
| 270 | + this.total = res.data.data.total | |
| 271 | + }) | |
| 272 | + }, | |
| 273 | + submit() { | |
| 274 | + console.error({ | |
| 275 | + ...this.form | |
| 276 | + }) | |
| 277 | + console.error(this.fist) | |
| 278 | + this.$http.sendRequest('/eventReporting/save', 'POST', this.form, 1).then(res => { | |
| 279 | + console.error(res) | |
| 280 | + if(res.data.code == '200'){ | |
| 281 | + uni.showToast({ | |
| 282 | + icon:'none', | |
| 283 | + title:res.data.message | |
| 284 | + }) | |
| 285 | + this.form = { | |
| 286 | + problemDescribe: '', | |
| 287 | + reportLocation: '', | |
| 288 | + eventType: '', | |
| 289 | + eventPictures: [], | |
| 290 | + userName: uni.getStorageSync('user').name, | |
| 291 | + userPhone: uni.getStorageSync('user').phone, | |
| 292 | + } | |
| 293 | + setTimeout(() => { | |
| 294 | + this.changeonindex('我的反馈') | |
| 295 | + }, 1000); | |
| 296 | + } else{ | |
| 297 | + uni.showToast({ | |
| 298 | + icon:'none', | |
| 299 | + title:res.data.message | |
| 300 | + }) | |
| 301 | + } | |
| 302 | + }) | |
| 303 | + }, | |
| 304 | + typeChange(val) { | |
| 305 | + this.ontype = val[0].label; | |
| 306 | + this.form.eventType = val[0].value; | |
| 307 | + }, | |
| 308 | + async onsuccess2(e, file, fileList, ziduan) { | |
| 309 | + console.error(e) | |
| 310 | + for (let i = 0; i < e.length; i++) { | |
| 311 | + if(e[i].progress == 0) { | |
| 312 | + await uni.uploadFile({ | |
| 313 | + url: this.$upload, // 仅为示例,请替换为您的服务器上传接口 | |
| 314 | + filePath: e[i].url, | |
| 315 | + name: 'file', // 后端接收的文件参数名 | |
| 316 | + formData: { | |
| 317 | + filePath: 'xcx', // 其他表单数据 | |
| 318 | + }, | |
| 319 | + success: (uploadFileRes) => { | |
| 320 | + console.error(uploadFileRes) | |
| 321 | + let data = JSON.parse(uploadFileRes.data) | |
| 322 | + this.removeinfo.eventPictures.push(this.$img + data.data) | |
| 323 | + }, | |
| 324 | + fail: (err) => { | |
| 325 | + console.error('上传失败', err); | |
| 326 | + uni.showToast({ | |
| 327 | + title: '上传失败', | |
| 328 | + icon: 'none', | |
| 329 | + }); | |
| 330 | + }, | |
| 331 | + }); | |
| 332 | + } | |
| 333 | + | |
| 334 | + } | |
| 335 | + // uni.showToast({ | |
| 336 | + // title: '上传成功', | |
| 337 | + // icon: 'success', | |
| 338 | + // }); | |
| 339 | + | |
| 340 | + }, | |
| 341 | + async onsuccess1(e, file, fileList, ziduan) { | |
| 342 | + console.error(e) | |
| 343 | + for (let i = 0; i < e.length; i++) { | |
| 344 | + await uni.uploadFile({ | |
| 345 | + url: this.$upload, // 仅为示例,请替换为您的服务器上传接口 | |
| 346 | + filePath: e[i].url, | |
| 347 | + name: 'file', // 后端接收的文件参数名 | |
| 348 | + formData: { | |
| 349 | + filePath: 'xcx', // 其他表单数据 | |
| 350 | + }, | |
| 351 | + success: (uploadFileRes) => { | |
| 352 | + console.error(uploadFileRes) | |
| 353 | + let data = JSON.parse(uploadFileRes.data) | |
| 354 | + this.form.eventPictures.push(this.$img + data.data) | |
| 355 | + }, | |
| 356 | + fail: (err) => { | |
| 357 | + console.error('上传失败', err); | |
| 358 | + uni.showToast({ | |
| 359 | + title: '上传失败', | |
| 360 | + icon: 'none', | |
| 361 | + }); | |
| 362 | + }, | |
| 363 | + }); | |
| 364 | + } | |
| 365 | + // uni.showToast({ | |
| 366 | + // title: '上传成功', | |
| 367 | + // icon: 'success', | |
| 368 | + // }); | |
| 369 | + | |
| 370 | + }, | |
| 371 | + } | |
| 372 | + } | |
| 373 | +</script> | |
| 374 | + | |
| 375 | +<style scoped lang="scss"> | |
| 376 | + .tit1 { | |
| 377 | + color: #7a7a7a; | |
| 378 | + font-size: 26rpx; | |
| 379 | + } | |
| 380 | + | |
| 381 | + .tit2 { | |
| 382 | + color: #000; | |
| 383 | + font-size: 28rpx; | |
| 384 | + } | |
| 385 | + | |
| 386 | + .appbox { | |
| 387 | + width: 100%; | |
| 388 | + height: 100vh; | |
| 389 | + overflow: hidden; | |
| 390 | + background-image: url('@/static/icon/bg2.png'); | |
| 391 | + background-size: 100% 100%; | |
| 392 | + padding: 30rpx; | |
| 393 | + box-sizing: border-box; | |
| 394 | + display: flex; | |
| 395 | + flex-direction: column; | |
| 396 | + } | |
| 397 | + | |
| 398 | + .onclasst1 { | |
| 399 | + font-size: 30rpx; | |
| 400 | + margin-right: 40rpx; | |
| 401 | + font-weight: bold; | |
| 402 | + color: rgb(63, 155, 106); | |
| 403 | + | |
| 404 | + .onindex { | |
| 405 | + border-radius: 36rpx; | |
| 406 | + margin: 0 auto; | |
| 407 | + width: 70rpx; | |
| 408 | + height: 20rpx; | |
| 409 | + margin-top: 20rpx; | |
| 410 | + background: linear-gradient(90deg, #3f9b6a 0%, rgba(63, 155, 106, 0) 100%); | |
| 411 | + } | |
| 412 | + } | |
| 413 | + | |
| 414 | + .classt1 { | |
| 415 | + font-size: 30rpx; | |
| 416 | + margin-right: 40rpx; | |
| 417 | + font-weight: bold; | |
| 418 | + color: rgba(0, 0, 0, 0.9); | |
| 419 | + } | |
| 420 | + | |
| 421 | + .fromitem { | |
| 422 | + margin-top: 30rpx; | |
| 423 | + | |
| 424 | + .t1 { | |
| 425 | + margin: 30rpx 0; | |
| 426 | + } | |
| 427 | + | |
| 428 | + .item { | |
| 429 | + padding: 20rpx; | |
| 430 | + background: #fff; | |
| 431 | + border-radius: 18rpx; | |
| 432 | + } | |
| 433 | + } | |
| 434 | + | |
| 435 | + /* 保存按钮 */ | |
| 436 | + .page-footer { | |
| 437 | + position: fixed; | |
| 438 | + left: 0; | |
| 439 | + bottom: 0; | |
| 440 | + display: flex; | |
| 441 | + width: 100%; | |
| 442 | + height: 120rpx; | |
| 443 | + background-color: #FFFFFF; | |
| 444 | + padding: 20rpx 20rpx; | |
| 445 | + padding-bottom: constant(safe-area-inset-bottom); | |
| 446 | + padding-bottom: env(safe-area-inset-bottom); | |
| 447 | + z-index: 9999; | |
| 448 | + justify-content: space-between; | |
| 449 | + .u-btn { | |
| 450 | + flex: 1; | |
| 451 | + } | |
| 452 | + | |
| 453 | + .footer-buy { | |
| 454 | + display: flex; | |
| 455 | + align-items: center; | |
| 456 | + justify-content: space-between; | |
| 457 | + width: 100%; | |
| 458 | + height: 100%; | |
| 459 | + | |
| 460 | + .cart-add { | |
| 461 | + display: flex; | |
| 462 | + align-items: center; | |
| 463 | + justify-content: center; | |
| 464 | + width: 100%; | |
| 465 | + height: 100rpx; | |
| 466 | + background-color: #3f9b6a; | |
| 467 | + | |
| 468 | + text { | |
| 469 | + font-size: 28rpx; | |
| 470 | + color: #FFFFFF; | |
| 471 | + } | |
| 472 | + } | |
| 473 | + } | |
| 474 | + } | |
| 475 | +</style> | |
| 0 | 476 | \ No newline at end of file | ... | ... |
lvdao-miniapp/static/icon/bg1.png
lvdao-miniapp/static/icon/bg2.png
0 → 100644
16.5 KB
lvdao-miniapp/static/icon/icon1.png
lvdao-miniapp/static/icon/icon2.png
lvdao-miniapp/static/icon/icon3.png
lvdao-miniapp/static/icon/icon4.png
lvdao-miniapp/static/icon/icon5.png
lvdao-miniapp/static/icon/icon6.png