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,6 +397,13 @@ | ||
| 397 | "name": "pagesA", | 397 | "name": "pagesA", |
| 398 | "pages": [ | 398 | "pages": [ |
| 399 | { | 399 | { |
| 400 | + "path": "addsb/addsb", | ||
| 401 | + "style": { | ||
| 402 | + "navigationBarBackgroundColor": "#FFFFFF", | ||
| 403 | + "navigationBarTitleText": "事件上报" | ||
| 404 | + } | ||
| 405 | + }, | ||
| 406 | + { | ||
| 400 | "path": "web/web", | 407 | "path": "web/web", |
| 401 | "style": { | 408 | "style": { |
| 402 | "navigationBarBackgroundColor": "#FFFFFF", | 409 | "navigationBarBackgroundColor": "#FFFFFF", |
lvdao-miniapp/pages/details/details.vue
| @@ -108,11 +108,11 @@ | @@ -108,11 +108,11 @@ | ||
| 108 | <u-col span="12"> | 108 | <u-col span="12"> |
| 109 | <view class="form-item"> | 109 | <view class="form-item"> |
| 110 | <view class="label">建筑图纸:</view> | 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 | <text>暂无</text> | 112 | <text>暂无</text> |
| 113 | </view> | 113 | </view> |
| 114 | </view> | 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 | <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> | 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 | </view> | 117 | </view> |
| 118 | 118 | ||
| @@ -178,11 +178,11 @@ | @@ -178,11 +178,11 @@ | ||
| 178 | <u-col span="12"> | 178 | <u-col span="12"> |
| 179 | <view class="form-item"> | 179 | <view class="form-item"> |
| 180 | <view class="label">规划图纸:</view> | 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 | <text>暂无</text> | 182 | <text>暂无</text> |
| 183 | </view> | 183 | </view> |
| 184 | </view> | 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 | <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> | 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 | </view> | 187 | </view> |
| 188 | 188 | ||
| @@ -275,9 +275,10 @@ | @@ -275,9 +275,10 @@ | ||
| 275 | }, | 275 | }, |
| 276 | }, | 276 | }, |
| 277 | onLoad(option) { | 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 | if (data.shopName) { | 283 | if (data.shopName) { |
| 283 | this.qianzui = 'sp' | 284 | this.qianzui = 'sp' |
lvdao-miniapp/pages/shops/shops.vue
| @@ -252,9 +252,12 @@ | @@ -252,9 +252,12 @@ | ||
| 252 | this.search(); | 252 | this.search(); |
| 253 | }, | 253 | }, |
| 254 | reconciliationdetail(item) { | 254 | reconciliationdetail(item) { |
| 255 | + | ||
| 256 | + // let items = JSON.stringify(item) | ||
| 257 | + | ||
| 255 | let items = JSON.stringify(item) | 258 | let items = JSON.stringify(item) |
| 256 | uni.navigateTo({ | 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 | \ No newline at end of file | 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