| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="visit"> |
| | | <view class="list"> |
| | | <view class="list_item"> |
| | | <view class="list_item_label"> |
| | | <text>*</text> |
| | | <text>被访人å§å</text> |
| | | </view> |
| | | <!-- <view class="list_item_content" @click="showName = true"> --> |
| | | <view class="list_item_content"> |
| | | <text :style="{ color: form1.receptMemberName ? '#000000' : '' }">{{ |
| | | form1.receptMemberName |
| | | ? form1.receptMemberName + " " + form1.receptCompanyName |
| | | : "è¯·éæ©" |
| | | }}</text> |
| | | <!-- <u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon> --> |
| | | </view> |
| | | </view> |
| | | <view class="list_item"> |
| | | <view class="list_item_label"> |
| | | <text>*</text> |
| | | <text>å
¥åæ¶é´</text> |
| | | </view> |
| | | <view class="list_item_content" @click="show4 = true"> |
| | | <text :style="{ color: form1.starttime ? '#000000' : '' }">{{ |
| | | form1.starttime ? form1.starttime : "è¯·éæ©" |
| | | }}</text> |
| | | <u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon> |
| | | </view> |
| | | </view> |
| | | <view class="list_item"> |
| | | <view class="list_item_label"> |
| | | <text>*</text> |
| | | <text>ç¦»åæ¶é´</text> |
| | | </view> |
| | | <view class="list_item_content" @click="openLC"> |
| | | <text :style="{ color: form1.endtime ? '#000000' : '' }">{{ |
| | | form1.endtime ? form1.endtime : "è¯·éæ©" |
| | | }}</text> |
| | | <u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon> |
| | | </view> |
| | | </view> |
| | | <div class="empty"></div> |
| | | <view class="list_item"> |
| | | <view class="list_item_label"> |
| | | <text>*</text> |
| | | <text>è系人</text> |
| | | </view> |
| | | <view class="list_item_content" |
| | | ><input |
| | | type="text" |
| | | v-model="form1.name" |
| | | placeholder="请è¾å
¥è系人å§å" |
| | | placeholder-style="color: #999999;" |
| | | /></view> |
| | | </view> |
| | | <view class="list_item"> |
| | | <view class="list_item_label"> |
| | | <text>*</text> |
| | | <text>ææºå·</text> |
| | | </view> |
| | | <view class="list_item_content"> |
| | | <input |
| | | type="number" |
| | | maxlength="13" |
| | | v-model="form1.phone" |
| | | :placeholder="'请è¾å
¥èç³»äººææºå·'" |
| | | placeholder-style="color: #999999;" |
| | | /> |
| | | </view> |
| | | </view> |
| | | <view class="list_item"> |
| | | <view class="list_item_label"> |
| | | <text>*</text> |
| | | <text>æ¥è®¿åä½</text> |
| | | </view> |
| | | <view class="list_item_content" |
| | | ><input |
| | | type="text" |
| | | v-model="form1.companyName" |
| | | placeholder="请è¾å
¥æ¥è®¿åä½çå
¨ç§°" |
| | | placeholder-style="color: #999999;" |
| | | /></view> |
| | | </view> |
| | | <view class="list_item"> |
| | | <view class="list_item_label"> |
| | | <text>*</text> |
| | | <text>å
¥å车è¾</text> |
| | | </view> |
| | | <view class="list_item_content" @click="openInput(1)"> |
| | | <text :style="{ color: form1.carNos ? '#000000' : '' }">{{ |
| | | form1.carNos ? form1.carNos : "请è¾å
¥è½¦çå·ç " |
| | | }}</text> |
| | | <!-- <input type="text" placeholder="请è¾å
¥è½¦çå·" v-model="form1.carNos" maxlength="8" placeholder-style="color: #999999;" /> --> |
| | | </view> |
| | | </view> |
| | | <view class="list_item"> |
| | | <view class="list_item_label"> |
| | | <text>*</text> |
| | | <text>é车人æ°</text> |
| | | </view> |
| | | <view class="list_item_content" |
| | | ><input |
| | | type="number" |
| | | v-model="form1.memberNum" |
| | | placeholder="请è¾å
¥éè½¦äººåæ»æ°" |
| | | placeholder-style="color: #999999;" |
| | | /></view> |
| | | </view> |
| | | <view class="list_item" @click="isShowReason = true"> |
| | | <view class="list_item_label"> |
| | | <text>*</text> |
| | | <text>æ¥è®¿äºç±</text> |
| | | </view> |
| | | <view class="list_item_content"> |
| | | <text |
| | | class="mr6" |
| | | :style="{ color: form1.reason ? '#000000' : '#999999' }" |
| | | >{{ form1.reason ? form1.reason : "è¯·éæ©" }}</text |
| | | > |
| | | <u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon> |
| | | </view> |
| | | <!-- <view class="list_item_content" |
| | | ><input |
| | | type="text" |
| | | v-model="form1.reason" |
| | | placeholder="请è¾å
¥æ¥è®¿äºç±" |
| | | placeholder-style="color: #999999;" |
| | | /></view> --> |
| | | </view> |
| | | </view> |
| | | <view class="zw"></view> |
| | | <view class="footer" |
| | | ><view class="footer_btn" @click="submit">æäº¤</view></view |
| | | > |
| | | <!-- å
¥åæ¶é´ --> |
| | | <u-datetime-picker |
| | | :show="show4" |
| | | :minDate="new Date().getTime()" |
| | | mode="datetime" |
| | | :formatter="formatter" |
| | | @cancel="show4 = false" |
| | | @confirm="setinDate" |
| | | ></u-datetime-picker> |
| | | <!-- ç¦»åæ¶é´ --> |
| | | <u-datetime-picker |
| | | v-if="form1.starttime" |
| | | :show="show5" |
| | | :formatter="formatter" |
| | | :minDate="formatTimeStamp(form1.starttime)" |
| | | :maxDate="formatTimeStamp(maxTime)" |
| | | mode="datetime" |
| | | @cancel="show5 = false" |
| | | @confirm="setoutDate" |
| | | ></u-datetime-picker> |
| | | <!-- è½¦è¾ --> |
| | | <u-popup |
| | | :show="show2" |
| | | :round="10" |
| | | :safeAreaInsetBottom="true" |
| | | :closeable="true" |
| | | mode="bottom" |
| | | @close="show2 = false" |
| | | > |
| | | <view class="addcar"> |
| | | <view class="addcar_head">æ·»å 车è¾</view> |
| | | <view class="addcar_ipt" |
| | | ><input type="text" v-model="carName" placeholder="请è¾å
¥è½¦çå·" |
| | | /></view> |
| | | <view class="addcar_footer"> |
| | | <view class="addcar_footer_item" @click="show2 = false">åæ¶</view> |
| | | <view class="addcar_footer_item t" @click="submitCart">æäº¤</view> |
| | | </view> |
| | | </view> |
| | | </u-popup> |
| | | <!-- æ¥è®¿æ¯ç± --> |
| | | <u-picker |
| | | keyName="title" |
| | | :show="isShowReason" |
| | | closeOnClickOverlay |
| | | :columns="reasonList" |
| | | @confirm="reasonSel" |
| | | @close="isShowReason = false" |
| | | @cancel="isShowReason = false" |
| | | ></u-picker> |
| | | |
| | | <u-picker |
| | | keyName="name" |
| | | :show="showName" |
| | | closeOnClickOverlay |
| | | :columns="memberList" |
| | | @confirm="seleteName" |
| | | @cancel="showName = false" |
| | | @close="showName = false" |
| | | ></u-picker> |
| | | <!-- <tly-picture-cut ref="tlyPictureCut" :pictureSrc="photoSrc" @createImg="uploadImg"></tly-picture-cut> --> |
| | | <keyboardInput ref="keyboard" @export="setPlate" @close="closeInput" /> |
| | | <qf-image-cropper |
| | | ref="cropper" |
| | | :width="280" |
| | | :height="280" |
| | | :radius="30" |
| | | @crop="uploadImg" |
| | | ></qf-image-cropper> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import tlyPictureCut from '@/components/tly-picture-cut/tlyPictureCut.vue' |
| | | import keyboardInput from '@/components/keyboard-input/keyboard-input.vue' |
| | | import QfImageCropper from '@/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue' |
| | | import { getDaysAfterDate } from '@/utils/utils.js' |
| | | import { createVisit, getVisitedMember, getVisitReason } from '@/api' |
| | | export default { |
| | | data() { |
| | | return { |
| | | photoSrc: '', |
| | | type: '', |
| | | inputType: '', |
| | | show1: false, |
| | | show2: false, |
| | | show4: false, |
| | | show5: false, |
| | | show7: false, |
| | | isShowReason: false, |
| | | showName: false, |
| | | fileList: [], |
| | | reasonList: [], |
| | | memberList: [[{ name: '身份è¯', id: 0 }, { name: '港澳è¯ä»¶', id: 1 }, { name: 'æ¤ç
§', id: 2 }]], |
| | | columnsNames: [[{ name: 'å¼ ä¸', id: 0 }, { name: 'å¼ ä¸', id: 1 }, { name: 'å¼ ä¸', id: 2 }]], |
| | | columns: [], |
| | | cars: [], |
| | | day: null, |
| | | maxTime: '', |
| | | carName: '', |
| | | personnel: [], |
| | | userAnswerId: '', |
| | | form1: { |
| | | receptMemberId: '', |
| | | receptMemberName: '', |
| | | starttime: '', |
| | | endtime: '', |
| | | reason: '', |
| | | carNos: '' |
| | | }, |
| | | visit: '', |
| | | form: {}, |
| | | accessControl: '', |
| | | verify: '' |
| | | } |
| | | }, |
| | | components: { tlyPictureCut, keyboardInput, QfImageCropper }, |
| | | onLoad(options) { |
| | | if (options.data) { |
| | | this.form = JSON.parse(options.data) |
| | | } |
| | | this.getUser() |
| | | const userInfo = uni.getStorageSync('userInfo') || {} |
| | | this.$set(this.form1, 'receptMemberName', userInfo.realname) |
| | | this.$set(this.form1, 'receptMemberId', userInfo.id || '') |
| | | this.$set(this.form1, 'receptCompanyName', userInfo.company.name || '') |
| | | // this.getvisit() |
| | | // this.getVisit1() |
| | | // this.getUserValid() |
| | | }, |
| | | methods: { |
| | | formatter(type, value) { |
| | | if (type === 'year') { |
| | | return `${value}å¹´` |
| | | } |
| | | if (type === 'month') { |
| | | return `${value}æ` |
| | | } |
| | | if (type === 'day') { |
| | | return `${value}æ¥` |
| | | } |
| | | if (type === 'hour') { |
| | | return `${value}æ¶` |
| | | } |
| | | if (type === 'minute') { |
| | | return `${value}å` |
| | | } |
| | | return value |
| | | }, |
| | | openInput(type) { |
| | | this.inputType = type |
| | | this.$refs.keyboard.open() |
| | | }, |
| | | setPlate(e) { |
| | | if (this.inputType === 1) { |
| | | this.form1.carNos = e |
| | | } else if (this.inputType === 2) { |
| | | this.withUserList.carNos = e |
| | | } |
| | | this.$forceUpdate() |
| | | this.closeInput() |
| | | }, |
| | | seleteName(e) { |
| | | this.$set(this.form1, 'receptMemberName', e.value[0].name) |
| | | this.$set(this.form1, 'receptMemberId', e.value[0].id) |
| | | this.$set(this.form1, 'receptCompanyName', e.value[0].companyName) |
| | | this.showName = false |
| | | }, |
| | | reasonSel(e) { |
| | | console.log('e',e); |
| | | this.$set(this.form1, 'reason', e.value[0].title) |
| | | this.isShowReason = false |
| | | }, |
| | | getUser() { |
| | | getVisitedMember().then(res => { |
| | | this.memberList = [res.data || []] |
| | | }) |
| | | getVisitReason().then(res => { |
| | | this.reasonList = [res.data || []] |
| | | }) |
| | | }, |
| | | closeInput() { |
| | | this.$refs.keyboard.close() |
| | | }, |
| | | submit() { |
| | | const { form1 } = this |
| | | if (!this.form1.receptMemberId) |
| | | return uni.showToast({ |
| | | title: 'è¯·éæ©ææç被访人', |
| | | icon: 'none' |
| | | }) |
| | | if (!this.form1.starttime) |
| | | return uni.showToast({ |
| | | title: 'å
¥åæ¶é´ä¸è½ä¸ºç©º', |
| | | icon: 'none' |
| | | }) |
| | | if (!this.form1.endtime) |
| | | return uni.showToast({ |
| | | title: 'ç¦»åæ¶é´ä¸è½ä¸ºç©º', |
| | | icon: 'none' |
| | | }) |
| | | if (!this.form1.name) return uni.showToast({ |
| | | title: 'è系人ä¸è½ä¸ºç©º', |
| | | icon: 'none' |
| | | }) |
| | | if (!this.form1.phone) return uni.showToast({ |
| | | title: 'ææºå·ä¸è½ä¸ºç©º', |
| | | icon: 'none' |
| | | }) |
| | | var re = /^1[3,4,5,6,7,8,9][0-9]{9}$/; |
| | | var result = re.test(this.form1.phone); |
| | | if (!result) return uni.showToast({ |
| | | title: 'ææºå·æ ¼å¼ä¸æ£ç¡®', |
| | | icon: 'none' |
| | | }) |
| | | if (!this.form1.companyName) return uni.showToast({ |
| | | title: 'æ¥è®¿åä½ä¸è½ä¸ºç©º', |
| | | icon: 'none' |
| | | }) |
| | | if (!this.form1.carNos) return uni.showToast({ |
| | | title: 'å
¥å车è¾ä¸è½ä¸ºç©º', |
| | | icon: 'none' |
| | | }) |
| | | if (!this.form1.memberNum) return uni.showToast({ |
| | | title: 'é车人æ°ä¸è½ä¸ºç©º', |
| | | icon: 'none' |
| | | }) |
| | | if (!this.form1.reason) return uni.showToast({ |
| | | title: 'æè®¿äºç±ä¸è½ä¸ºç©º', |
| | | icon: 'none' |
| | | }) |
| | | // this.form1.starttime = this.form1.starttime + ':00' |
| | | // this.form1.endtime = this.form1.endtime + ':00' |
| | | let data = JSON.parse(JSON.stringify(this.form1)) |
| | | data.starttime = data.starttime + ':00' |
| | | data.endtime = data.endtime + ':00' |
| | | createVisit({ |
| | | ...data, |
| | | type: '2', |
| | | openid: this.$store.state.openId |
| | | }) |
| | | .then(res => { |
| | | if (res.code === 200) { |
| | | setTimeout(() => { |
| | | uni.showToast({ |
| | | title: 'æäº¤æå', |
| | | icon: 'success' |
| | | }) |
| | | }) |
| | | uni.reLaunch({ |
| | | url: `/pages/staff/index` |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | deleUser(i) { |
| | | this.personnel.splice(i, 1) |
| | | }, |
| | | getVisit1() { |
| | | // æ¯å¦éè¦çé¢ |
| | | this.$u.api |
| | | .getSystemDictData({ |
| | | dictCode: 'SYSTEM', |
| | | label: 'HEALTH_CARD' |
| | | }) |
| | | .then(res => { |
| | | if (res.code === 200) { |
| | | this.visit = res.data.code |
| | | } |
| | | }) |
| | | // èµ·å§æ¶é´æ¶é¿ |
| | | this.$u.api |
| | | .getSystemDictData({ |
| | | dictCode: 'VISIT_CONFIG', |
| | | label: 'VALIDATE_VISIT' |
| | | }) |
| | | .then(res => { |
| | | if (res.code === 200) { |
| | | this.day = Number(res.data.code) |
| | | // console.log(nextDay('after', true, this.day)) |
| | | } |
| | | }) |
| | | }, |
| | | submitCart() { |
| | | if (!this.carName) |
| | | return uni.showToast({ |
| | | title: '请è¾å
¥è½¦çå·ç ', |
| | | icon: 'none' |
| | | }) |
| | | this.cars.push(this.carName) |
| | | this.form1.carNos = this.cars.join(',') |
| | | this.carName = '' |
| | | this.show2 = false |
| | | }, |
| | | deleCars(i) { |
| | | this.cars.splice(i, 1) |
| | | this.form1.carNos = this.cars.join(',') |
| | | }, |
| | | seleMJ(i) { |
| | | this.columns.forEach((item, index) => { |
| | | if (index === i) { |
| | | item.active = !item.active |
| | | } |
| | | }) |
| | | }, |
| | | openLC() { |
| | | if (!this.form1.starttime) |
| | | return uni.showToast({ |
| | | title: '请å
éæ©å
¥åæ¶é´', |
| | | icon: 'none' |
| | | }) |
| | | this.show5 = true |
| | | }, |
| | | setinDate(e) { |
| | | this.form1.starttime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM') |
| | | // this.maxTime = getDaysAfterDate(uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM'), this.day) |
| | | this.maxTime = this.form1.starttime.slice(0, 11) + '23:59' |
| | | this.form1.endtime = '' |
| | | this.show4 = false |
| | | }, |
| | | setoutDate(e) { |
| | | this.form1.endtime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM') |
| | | this.show5 = false |
| | | }, |
| | | formatTimeStamp(date) { |
| | | return Date.parse(new Date(`${date}`)) || Date.parse(new Date(`${date.replace(/-/g, '/')}`)) |
| | | }, |
| | | // 被æè®¿äººä¿¡æ¯æ ¡éªæ¹å¼ï¼0ææºå·åç¬æ ¡éª 1ææºå·åå§åç»åæ ¡éªï¼ |
| | | getUserValid() { |
| | | this.$u.api |
| | | .getSystemDictData({ |
| | | dictCode: 'SYSTEM', |
| | | label: 'BEVISITED_USER_VALID' |
| | | }) |
| | | .then(res => { |
| | | if (res.code === 200) { |
| | | this.verify = res.data.code |
| | | } |
| | | }) |
| | | }, |
| | | // è·åæ¯å¦éè¦éæ©é¨ç¦/é¨ç¦å表 |
| | | getvisit() { |
| | | this.$u.api |
| | | .getSystemDictData({ |
| | | dictCode: 'SYSTEM', |
| | | label: 'SELECT_DOORS_VISIT_REQUIRED' |
| | | }) |
| | | .then(res => { |
| | | if (res.code === 200) { |
| | | this.accessControl = res.data.code |
| | | if (res.data.code === '1') { |
| | | this.$u.api.deviceRoleList({ type: 1 }).then(device => { |
| | | if (device.code === 200) { |
| | | if (device.data.length > 0) { |
| | | device.data.forEach(item => { |
| | | item.active = false |
| | | }) |
| | | this.columns = device.data |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | <style lang="scss"> |
| | | page { |
| | | background-color: #f7f7f7 !important; |
| | | } |
| | | .u-upload__button { |
| | | margin: 0 !important; |
| | | } |
| | | </style> |
| | | <style lang="scss" scoped> |
| | | .visit { |
| | | width: 100%; |
| | | padding-top: 10rpx 0; |
| | | .menjin { |
| | | width: 100%; |
| | | .respondent-title { |
| | | width: 100%; |
| | | height: 100rpx; |
| | | line-height: 100rpx; |
| | | text-align: center; |
| | | font-size: 32rpx; |
| | | font-weight: 600; |
| | | color: #222222; |
| | | } |
| | | .list { |
| | | width: 100%; |
| | | height: 400rpx; |
| | | display: flex; |
| | | flex-direction: column; |
| | | .list_item { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | text { |
| | | font-size: 28rpx; |
| | | color: #000000; |
| | | } |
| | | image { |
| | | width: 30rpx; |
| | | height: 30rpx; |
| | | } |
| | | } |
| | | } |
| | | .menjin_footer { |
| | | width: 100%; |
| | | padding: 30rpx; |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | .menjin_footer_item { |
| | | flex: 1; |
| | | height: 80rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | border-radius: 10rpx; |
| | | background-color: #025eef; |
| | | color: #ffffff; |
| | | font-size: 26rpx; |
| | | margin-left: 30rpx; |
| | | &:first-child { |
| | | margin-left: 0 !important; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .addcar { |
| | | padding: 30rpx; |
| | | width: 100%; |
| | | box-sizing: border-box; |
| | | .addcar_head { |
| | | text-align: center; |
| | | font-size: 32rpx; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | color: #222222; |
| | | } |
| | | .addcar_ipt { |
| | | width: 100%; |
| | | height: 100rpx; |
| | | line-height: 100rpx; |
| | | text-align: center; |
| | | background: #f7f7f7; |
| | | border-radius: 50rpx; |
| | | margin-top: 60rpx; |
| | | input { |
| | | width: 100%; |
| | | height: 100%; |
| | | font-size: 28rpx; |
| | | font-weight: 400; |
| | | color: #000000; |
| | | text-align: center; |
| | | } |
| | | } |
| | | .addcar_footer { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | margin-top: 60rpx; |
| | | .t { |
| | | background: #025eef !important; |
| | | color: #ffffff !important; |
| | | } |
| | | .addcar_footer_item { |
| | | flex: 1; |
| | | height: 88rpx; |
| | | line-height: 88rpx; |
| | | font-size: 32rpx; |
| | | font-weight: 400; |
| | | color: #025eef; |
| | | text-align: center; |
| | | border-radius: 44rpx; |
| | | border: 1rpx solid #025eef; |
| | | margin-right: 18rpx; |
| | | &:last-child { |
| | | margin-right: 0 !important; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .list { |
| | | width: 100%; |
| | | padding: 0 30rpx; |
| | | box-sizing: border-box; |
| | | background-color: #ffffff; |
| | | .empty { |
| | | width: 750rpx; |
| | | height: 20rpx; |
| | | background-color: #f7f7f7; |
| | | margin: 0 -30rpx; |
| | | } |
| | | .list_item { |
| | | width: 100%; |
| | | // min-height: 98rpx; |
| | | padding: 30rpx 0; |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | border-bottom: 1rpx solid #e5e5e5; |
| | | |
| | | .list_item_label { |
| | | flex-shrink: 0; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | text { |
| | | &:nth-child(2) { |
| | | font-size: 30rpx; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | |
| | | &:nth-child(1) { |
| | | font-size: 30rpx; |
| | | font-weight: 400; |
| | | color: #e42d2d; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .list_item_content { |
| | | flex: 1; |
| | | height: 100%; |
| | | margin-left: 30rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: flex-end; |
| | | |
| | | text { |
| | | font-size: 28rpx; |
| | | font-weight: 400; |
| | | color: #999999; |
| | | margin-right: 6rpx; |
| | | } |
| | | |
| | | input { |
| | | width: 100%; |
| | | height: 100%; |
| | | text-align: right; |
| | | font-size: 28rpx; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .zw { |
| | | width: 100%; |
| | | height: calc(env(safe-area-inset-bottom) + 118rpx); |
| | | } |
| | | |
| | | .footer { |
| | | width: 100%; |
| | | padding: 0 30rpx; |
| | | padding-bottom: env(safe-area-inset-bottom); |
| | | box-sizing: border-box; |
| | | margin-top: 80rpx; |
| | | .footer_btn { |
| | | width: 100%; |
| | | height: 88rpx; |
| | | line-height: 88rpx; |
| | | text-align: center; |
| | | background: $uni-color-primary; |
| | | border-radius: 44rpx; |
| | | font-size: 32rpx; |
| | | color: #ffffff; |
| | | } |
| | | } |
| | | } |
| | | </style> |