Commit a456838b authored by 秦威威's avatar 秦威威

打卡

parent 6cbe1821
......@@ -157,7 +157,7 @@
// 外边距
@for $i from 5 through 100 {
@for $i from 5 through 200 {
.mar-#{$i} {
margin: $i + rpx;
}
......
<template>
<view class="calendar">
<view class="top-bar">
<image class="top-change-month" @click="turning('prev')" src="/static/attend-calendar/attendance_left.png">
</image>
<view class="top-bar-ym">
<text style="font-size: 45rpx;font-weight: 700;">{{ m + 1 }}{{ text.month }}</text>
<text style="font-size: 28rpx;">{{ y }}{{ text.year }}</text>
</view>
<image class="top-change-month" @click="turning('next')" src="/static/attend-calendar/attendance_right.png">
</image>
</view>
<view class="week">
<view class="week-day" v-for="(item, index) in weekDay" :key="index">{{ item }}</view>
</view>
<view :class="{ hide: !monthOpen }" class="content" :style="{ height: height }">
<view :style="{ top: positionTop + 'upx' }" class="days">
<view class="item" v-for="(item, index) in dates" :key="index">
<view class="day" @click="selectOne(item, $event)"
:class="{ choose: choose == `${item.year}-${item.month + 1}-${item.date}`, nolm: !item.lm }">
{{ item.date }}
</view>
<view class="late" v-if="isLateed(item.year, item.month + 1, item.date)"></view>
<view class="truancy" v-if="isTruancyed(item.year, item.month + 1, item.date)"></view>
<view class="today-text" v-if="isToday(item.year, item.month, item.date)"></view>
</view>
</view>
</view>
<image src="/static/attend-calendar/attendance-arrow-up.png" mode="scaleToFill" @click="trgWeek()"
class="weektoggel" :class="{ down: !monthOpen }"></image>
</view>
</template>
<script>
export default {
name: 'attend-calendar',
props: {
// 第一列星期几
weekstart: {
type: Number,
default: 1
},
// 只有迟到的日期
lateddates: {
type: Array,
default: () => []
},
// 有旷课的日期
truancyeddates: {
type: Array,
default: () => []
},
// 是否展开
open: {
type: Boolean,
default: true
}
},
data() {
return {
text: {
year: '',
month: '',
week: ['', '', '', '', '', '', ''],
today: ''
},
y: new Date().getFullYear(), // 年
m: new Date().getMonth(), // 月
dates: [], // 当前月日期集合
positionTop: 0,
monthOpen: true,
choose: ''
}
},
created() {
this.dates = this.monthDay(this.y, this.m)
//!this.open && this.trgWeek()
},
mounted() {
let date = new Date()
let y = date.getFullYear()
let m = date.getMonth()
let d = date.getDate()
this.choose = `${y}-${m + 1}-${d}`
console.log(this.choose)
},
computed: {
// 顶部星期栏目
weekDay() {
return this.text.week.slice(this.weekstart - 1).concat(this.text.week.slice(0, this.weekstart - 1))
},
height() {
return (this.dates.length / 7) * 80 + 'upx'
}
},
methods: {
// 获取当前月份天数
monthDay(y, m) {
let firstDayOfMonth = new Date(y, m, 1).getDay() // 当月第一天星期几
let lastDateOfMonth = new Date(y, m + 1, 0).getDate() // 当月最后一天
let lastDayOfLastMonth = new Date(y, m, 0).getDate() // 上一月的最后一天
let dates = [] // 所有渲染日历
let weekstart = this.weekstart == 7 ? 0 : this.weekstart // 方便进行日期计算,默认星期从0开始
let startDay = (() => {
// 周初有几天是上个月的
if (firstDayOfMonth == weekstart) {
return 0
} else if (firstDayOfMonth > weekstart) {
return firstDayOfMonth - weekstart
} else {
return 7 - weekstart + firstDayOfMonth
}
})()
let endDay = 7 - ((startDay + lastDateOfMonth) % 7) // 结束还有几天是下个月的
for (let i = 1; i <= startDay; i++) {
dates.push({
date: lastDayOfLastMonth - startDay + i,
day: weekstart + i - 1 || 7,
month: m - 1 >= 0 ? m - 1 : 12,
year: m - 1 >= 0 ? y : y - 1
})
}
for (let j = 1; j <= lastDateOfMonth; j++) {
dates.push({
date: j,
day: (j % 7) + firstDayOfMonth - 1 || 7,
month: m,
year: y,
lm: true
})
}
for (let k = 1; k <= endDay; k++) {
dates.push({
date: k,
day: (lastDateOfMonth + startDay + weekstart + k - 1) % 7 || 7,
month: m + 1 <= 11 ? m + 1 : 0,
year: m + 1 <= 11 ? y : y + 1
})
}
return dates
},
// 迟到处理
isLateed(y, m, d) {
let flag = false
for (let i = 0; i < this.lateddates.length; i++) {
let dy = `${y}-${m}-${d}`
if (this.lateddates[i] == dy) {
flag = true
break
}
}
return flag
},
// 旷课处理
isTruancyed(y, m, d) {
let flag = false
for (let i = 0; i < this.truancyeddates.length; i++) {
let dy = `${y}-${m}-${d}`
if (this.truancyeddates[i] == dy) {
flag = true
break
}
}
return flag
},
isToday(y, m, d) {
let date = new Date()
return y == date.getFullYear() && m == date.getMonth() && d == date.getDate()
},
// 切换成周模式
trgWeek() {
this.monthOpen = !this.monthOpen
if (this.monthOpen) {
this.positionTop = 0
} else {
let index = -1
this.dates.forEach((i, x) => {
this.isToday(i.year, i.month, i.date) && (index = x)
})
this.positionTop = -((Math.ceil((index + 1) / 7) || 1) - 1) * 90
}
},
// 点击回调
selectOne(i, event) {
let date = `${i.year}-${i.month + 1}-${i.date}`
if (i.month != this.m) {
console.log('不在可选范围内')
return false
}
this.choose = date
this.$emit('on-click', date)
},
// 上个月,下个月
turning(_action) {
if (_action === 'next') {
if (this.m + 1 == 12) {
this.m = 0
this.y = this.y + 1
} else {
this.m = this.m + 1
}
} else {
if (this.m + 1 == 1) {
this.m = 11
this.y = this.y - 1
} else {
this.m = this.m - 1
}
}
this.dates = this.monthDay(this.y, this.m)
}
}
}
</script>
<style lang="scss" scoped>
.calendar {
color: #000;
font-size: 28upx;
text-align: center;
padding-bottom: 10upx;
.top-bar {
display: flex;
justify-content: center;
padding-bottom: 50upx;
.top-bar-ym {
display: flex;
flex-direction: column;
margin: 0 40upx;
}
.top-change-month {
margin-top: 10upx;
height: 40upx;
width: 40upx;
}
}
.week {
display: flex;
align-items: center;
height: 80upx;
line-height: 80upx;
background-color: #fff;
view {
flex: 1;
}
.week-day {
font-size: 24upx;
color: #000;
}
}
.content {
position: relative;
overflow: hidden;
font-size: 24upx;
transition: height 0.4s ease;
background-color: #fff;
.days {
transition: top 0.3s;
display: flex;
align-items: center;
flex-wrap: wrap;
position: relative;
.item {
position: relative;
display: block;
height: 80upx;
line-height: 80upx;
width: calc(100% / 7);
.day {
font-style: normal;
display: inline-block;
vertical-align: middle;
width: 60upx;
height: 60upx;
line-height: 60upx;
overflow: hidden;
border-radius: 30upx;
background-color: #F0F0F0;
&.choose {
background-color: #3DB7BA;
color: #fff;
}
&.nolm {
color: #fff;
opacity: 0.3;
}
}
.late {
bottom: 0;
left: 50%;
font-style: normal;
width: 12upx;
height: 12upx;
background: #F7B300;
border-radius: 6upx;
position: absolute;
margin-left: -6upx;
margin-top: -6upx;
pointer-events: none;
}
.truancy {
bottom: 0;
left: 50%;
font-style: normal;
width: 12upx;
height: 12upx;
background: #FF2222;
border-radius: 6upx;
position: absolute;
margin-left: -6upx;
margin-top: -10upx;
pointer-events: none;
}
.today-text {
position: absolute;
font-size: 20upx;
font-weight: normal;
width: 20upx;
height: 20upx;
line-height: 20upx;
right: 0;
top: 10upx;
color: #fff;
}
}
}
}
.hide {
height: 80upx !important;
}
.weektoggel {
width: 80upx;
height: 40upx;
margin: 10upx auto 0;
&.down {
transform: rotate(180deg);
}
}
}
</style>
\ No newline at end of file
## attend-calendar使用帮助
<attend-calendar :lateddates="[`2022-1-2`,`2022-1-4`]" :truancyeddates="[`2022-1-3`]"></attend-calendar>
<template>
<u-upload :capture="['album', 'camera']" :multiple="true" :fileList="fileList"
@afterRead="afterRead($event, 'fileList')" @delete="deletePic($event, 'fileList')" :maxCount="maxCount" :width="width"
:height="height">
<image :style="{'width': width + 'px', 'height': height + 'px'}" src="@/static/my/upload.png"></image>
@afterRead="afterRead($event, 'fileList')" @delete="deletePic($event, 'fileList')" :maxCount="maxCount"
:width="width" :height="height">
<image :style="{'width': width + 'px', 'height': height + 'px'}" src="@/static/icon_upload.png"></image>
</u-upload>
</template>
......@@ -42,11 +42,11 @@
watch: {
images: {
immediate: true,
handler(newVal, oldVal){
handler(newVal, oldVal) {
// console.log(newVal)
// console.log(this.fileList)
this.fileList = []
if(newVal){
if (newVal) {
const urlList = newVal.split(",")
urlList.forEach(item => {
// 防止直接传递全路径
......@@ -66,7 +66,7 @@
// 删除图片
deletePic(event, type) {
this.fileList.splice(event.index, 1)
this.uploadParseData()
},
// 新增图片
......@@ -96,17 +96,17 @@
}
this.uploadParseData()
},
uploadParseData(){
uploadParseData() {
const images = this.fileList.map(item => item[this.type]).join(",")
this.$emit('upload', images)
},
removeUrl(str, urlToRemove) {
// 使用正则表达式匹配要删除的URL,确保匹配整个字符串
// 注意:这里我们假设urlToRemove不包含查询字符串或路径,如果包含,需要调整正则表达式
const regex = new RegExp(urlToRemove, 'g');
// 使用replace方法替换匹配的URL为空字符串,即删除它们
return str.replace(regex, '');
removeUrl(str, urlToRemove) {
// 使用正则表达式匹配要删除的URL,确保匹配整个字符串
// 注意:这里我们假设urlToRemove不包含查询字符串或路径,如果包含,需要调整正则表达式
const regex = new RegExp(urlToRemove, 'g');
// 使用replace方法替换匹配的URL为空字符串,即删除它们
return str.replace(regex, '');
}
}
}
......
......@@ -4,9 +4,9 @@
<view class="modal-content">
<slot></slot>
</view>
<view @click="$emit('close')" class="close">
<image src="@/static/close.png"></image>
<image src="/static/close.png"></image>
</view>
</view>
</u-overlay>
......@@ -33,17 +33,20 @@
width: 90%;
margin: auto;
}
.modal-content {
min-height: 500rpx;
padding: 32rpx 32rpx 48rpx;
background-color: #FFF;
border-radius: 16rpx;
}
.close {
margin-top: 48rpx;
text-align: center;
}
.close > image {
.close>image {
width: 64rpx;
height: 64rpx;
}
......
......@@ -54,7 +54,13 @@
"setting": {
"urlCheck": false
},
"usingComponents": true
"usingComponents": true,
"requiredPrivateInfos": ["getLocation", "chooseLocation"],
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置定位"
}
}
},
"mp-alipay": {
"usingComponents": true
......
......@@ -17,121 +17,180 @@
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/login/wechatlogin",
"style": {
"navigationStyle": "custom"
}
}
],
"subPackages": [{
"root": "pagesMain",
"pages": [{
"path": "pages/fkdj",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/shjf",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/bxbs",
"style": {
"navigationBarTitleText": "报修报事"
}
},
{
"path": "pages/bxbs_submit",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/bxbs_lsgd",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/tjsq",
"style": {
"navigationStyle": "custom"
}
},
"root": "pagesMain",
"pages": [{
"path": "pages/fkdj",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/shjf",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/bxbs",
"style": {
"navigationBarTitleText": "报修报事"
}
},
{
"path": "pages/bxbs_submit",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/bxbs_lsgd",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/tjsq",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/bxxq",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/fwgz",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/cydh",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/tsby",
"style": {
"navigationBarTitleText": "投诉表扬"
}
},
{
"path": "pages/tsby_submit",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/tsby_lsgd",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/jnzd",
"style": {
"navigationBarTitleText": "缴纳账单"
}
},
{
"path": "pages/jnzd_ccc",
"style": {
"navigationBarTitleText": "缴纳账单"
}
},
{
"path": "pages/jnzd_qt",
"style": {
"navigationBarTitleText": "缴纳账单"
}
},
{
"path": "pages/jnzd_wyf",
"style": {
"navigationBarTitleText": "缴纳账单"
}
},
{
"path": "pages/jnzd_wyfmx",
"style": {
"navigationBarTitleText": "缴纳账单"
}
},
{
"path": "pages/jnzd_tcfmx",
"style": {
"navigationBarTitleText": "缴纳账单"
}
}
]
}],
{
"path": "pages/bxxq",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/fwgz",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/cydh",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/tsby",
"style": {
"navigationBarTitleText": "投诉表扬"
}
},
{
"path": "pages/tsby_submit",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/tsby_lsgd",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/jnzd",
"style": {
"navigationBarTitleText": "缴纳账单"
}
},
{
"path": "pages/jnzd_czf",
"style": {
"navigationBarTitleText": "缴纳账单"
}
},
{
"path": "pages/jnzd_qt",
"style": {
"navigationBarTitleText": "缴纳账单"
}
},
{
"path": "pages/jnzd_wyf",
"style": {
"navigationBarTitleText": "缴纳账单"
}
},
{
"path": "pages/jnzd_wyfmx",
"style": {
"navigationBarTitleText": "缴纳账单"
}
},
{
"path": "pages/jnzd_tcfmx",
"style": {
"navigationBarTitleText": "缴纳账单"
}
}
]
},
{
"root": "pagesMine",
"pages": [{
"path": "pages/fwxx",
"style": {
"navigationBarTitleText": "房屋信息"
}
},
{
"path": "pages/wdfw",
"style": {
"navigationBarTitleText": "我的房屋"
}
},
{
"path": "pages/zlbj",
"style": {
"navigationBarTitleText": "资料编辑"
}
},
{
"path": "pages/jtcy",
"style": {
"navigationBarTitleText": "家庭成员"
}
},
{
"path": "pages/yg_login",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/ygzy",
"style": {
"navigationBarTitleText": "员工入口"
}
},
{
"path": "pages/dk_submit",
"style": {
"navigationBarTitleText": "打卡"
}
},
{
"path": "pages/dkjl",
"style": {
"navigationStyle": "custom"
}
}
]
}
],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app",
......@@ -140,8 +199,8 @@
},
/* 底部菜单 */
"tabBar": {
"color": "#000000", //菜单上的文字默认颜色
"selectedColor": "#FF6B89", //菜单上的文字选中时的颜色
"color": "#BFBFBF", //菜单上的文字默认颜色
"selectedColor": "#1FCA7B", //菜单上的文字选中时的颜色
"borderStyle": "white", //菜单上边框的颜色,仅支持 black/white
"list": [{
"pagePath": "pages/wy-home", //页面路径,必须在 pages 中先定义
......@@ -151,8 +210,8 @@
},
{
"pagePath": "pages/wy-bmfw",
"iconPath": "static/tabbar/cart.png",
"selectedIconPath": "static/tabbar/cartHL.png",
"iconPath": "static/tabbar/bmfw.png",
"selectedIconPath": "static/tabbar/bmfwHL.png",
"text": "便民服务"
},
{
......
......@@ -3,20 +3,21 @@
<view class="center">
<image class="w-240 h-240" src="@/static/logo.png"></image>
</view>
<view class="login-btn">
<button v-if="agreement" class="lh-90 br-8" style="height: 100%;background-color: #31AD6F;color: #FFF;"
open-type="getPhoneNumber" @getphonenumber="onGetphonenumber">
<text>立即登录</text>
</button>
<view v-else @click="$u.toast('请同意用户协议与隐私政策')" class="lh-90" style="height: 100%;background-color: #ccc;border-radius: 8rpx;">
<view v-else @click="$u.toast('请同意用户协议与隐私政策')" class="lh-90"
style="height: 100%;background-color: #ccc;border-radius: 8rpx;">
<text class="fs-30">立即登录</text>
</view>
<view @click="youkeLogin" class="lh-90 br-8 mt-30" style="height: 100%;background-color: #31AD6F;">
<text>游客登录</text>
</view>
</view>
<view class="agreement">
<image v-if="!agreement" @click="agreement = !agreement" src="@/static/select.png"></image>
<image v-else @click="agreement = !agreement" src="@/static/is-select.png"></image>
......@@ -37,50 +38,57 @@
},
onLoad(options) {
this.userId = options.userId || ''
uni.login({
provider: 'weixin',
success: (loginRes) => {
this.code = loginRes.code
}
});
// uni.login({
// provider: 'weixin',
// success: (loginRes) => {
// this.code = loginRes.code
// }
// });
},
methods: {
onGetphonenumber(e) {
uni.switchTab({
url: '/pages/home'
})
if (e.detail.iv && e.detail.encryptedData) {
const params = {
url: '/api/user/getnewuserinfo',
loadingTip: '登录中...',
data: {
code: this.code,
iv: e.detail.iv,
encryptedData: e.detail.encryptedData,
fid: this.userId // 推荐绑定上下级
}
uni.login({
provider: 'weixin',
success: (loginRes) => {
this.code = loginRes.code
console.log("微信授权信息", loginRes)
console.log("手机号授权信息", e)
}
this.$request(params).then(async (res) => {
// console.log(res)
if (res.code === 1) {
uni.setStorageSync('token', res.data.userinfo.token)
this.$store.dispatch('user/getUserInfo');
});
uni.redirectTo({
url: '/pages/index'
})
} else {
this.$u.toast(res.msg || '登录失败')
}
}).catch(err => {
this.$u.toast(err.msg || '登录失败')
})
if (e.detail.iv && e.detail.encryptedData) {
// const params = {
// url: '/api/user/getnewuserinfo',
// loadingTip: '登录中...',
// data: {
// code: this.code,
// iv: e.detail.iv,
// encryptedData: e.detail.encryptedData,
// fid: this.userId // 推荐绑定上下级
// }
// }
// this.$request(params).then(async (res) => {
// // console.log(res)
// if (res.code === 1) {
// uni.setStorageSync('token', res.data.userinfo.token)
// this.$store.dispatch('user/getUserInfo');
// uni.redirectTo({
// url: '/pages/index'
// })
// } else {
// this.$u.toast(res.msg || '登录失败')
// }
// }).catch(err => {
// this.$u.toast(err.msg || '登录失败')
// })
} else {
this.$u.toast('手机号授权失败')
}
},
youkeLogin(){
if(!this.agreement) {
youkeLogin() {
if (!this.agreement) {
return this.$u.toast('请同意用户协议与隐私政策')
}
uni.switchTab({
......@@ -101,7 +109,7 @@
// #ifdef APP-PLUS
this.$wskj.to('/pages/xieyi?title=' + title + '&content=' + res.data)
// #endif
// #ifdef MP-WEIXIN || MP-ALIPAY
this.$wskj.to('/pages/xieyi?title=' + title + '&content=' + encodeURIComponent(res.data))
// #endif
......
......@@ -15,7 +15,7 @@
<text class="fs-52" style="text-align: left;">便民服务</text>
<text class="fs-30">洗衣清洁 | 超市送水~</text>
</view>
<image class="h-280 w-216" src="/static/icon_bmfw.png"></image>
<image class="w-280 h-216" src="/static/icon_bmfw.png"></image>
</view>
</view>
<view class="overflow-y mlr-25" style="background: white;border-radius: 20rpx;margin-top: -20rpx;">
......
......@@ -103,7 +103,8 @@
},
onClick(index) {
if (index == 0) {
this.$wskj.to("/pagesMain/pages/fkdj")
this.$wskj.to("/pages/login/wechatlogin")
//this.$wskj.to("/pagesMain/pages/fkdj")
return
}
if (index == 1) {
......
<template>
<view class="center">
<view>
<u-navbar @leftClick="" bgColor="transparent" placeholder="true" :titleStyle="{color: '#E5BA00'}">
<view style="display: flex;align-items: center;font-size: 36rpx;color: #333333;" slot="left">
<image src="https://zhongqian.xnszz.com/1-images/home/20250213002.png"
style="width: 40rpx;height: 40rpx;margin-right: 10rpx;" mode=""></image>
<text>利达物业中心</text>
<image src="https://zhongqian.xnszz.com/1-images/home/20250213003.png"
style="width: 30rpx;height: 8.5rpx;margin-left: 8rpx;" mode="widthFix"></image>
<view style="background: linear-gradient( 180deg, #1FCA7C 0%, #F2F2F2 100%);">
<view class="h-300 flex flex-row-between mt-200">
<view class="flex ml-25 mt-70 v-center h-95">
<image class="w-95 h-95 br-50" src="/static/icon_logo.png"></image>
<view class="flex-column ml-10" style="color: #FFFFFF;text-align: left;" @click="onClick(3)">
<text class="fs-32 fw-700">旅行的小七仔</text>
<text class="fs-24 mt-10">177****1234</text>
</view>
</view>
</u-navbar>
</view>
<view>
<u-swiper height="200" :list="list1" @change="change" @click="click"></u-swiper>
<image class="w-344 h-266" src="/static/icon_my_bg.png"></image>
</view>
</view>
<view class="mar-20 br-16" style="background-color: white;">
<view class="grid-container">
<view @click="onClick(index)" class="grid-item" v-for="(item, index) in listService" :key="index">
<image style="width: 100rpx;height: 100rpx;" :src="item.img"></image>
<text>{{item.title}}</text>
<text>{{item.describe}}</text>
<view class="mlr-25 br-12" style="background: white;margin-top: -60rpx;">
<view class="flex-column mar-25" @click="onClick(4)">
<text class="fs-32 fw-700 mb-30" style="text-align: left;">房屋信息</text>
<view class="flex-column br-12 pad-25" style="background: #F3FEF9;">
<view class="flex">
<image class="h-42 w-42" src="/static/icon_my_fw.png"></image>
<text class="fs-28">利达国宾中心</text>
</view>
<text class="fs-24 h-54 lh-54 mt-30"
style="background: linear-gradient( 90deg, #CAF6E2 0%, #FFFFFF 100%);">
1栋2单元205室
</text>
</view>
</view>
</view>
<u-popup :show="show" mode="center" @close="close" @open="open" round="20">
<view class="flex-column mlr-50" style="width:600rpx;">
<text>选择小区</text>
<view v-for="(item, index) in listService" :key="index">
<text>西城小区</text>
<view class="mlr-25 br-12 mt-30" style="background: white;">
<view class="flex-column mar-25">
<text class="fs-32 fw-700 mb-30" style="text-align: left;">常用功能</text>
<view class="flex mtb-50">
<view @click="onClick(0)" class="flex-column vh-center fs-24" style="flex: 1;">
<image class="h-68 w-64 mtb-10" src="/static/icon_my_wdfw.png"></image>
<text>我的房屋</text>
</view>
<view @click="onClick(1)" class="flex-column vh-center fs-24" style="flex: 1;">
<image class="h-68 w-64 mtb-10" src="/static/icon_my_wdgd.png"></image>
<text>我的工单</text>
</view>
<view @click="onClick(2)" class="flex-column vh-center fs-24" style="flex: 1;">
<image class="h-68 w-64 mtb-10" src="/static/icon_my_ygrk.png"></image>
<text>员工入口</text>
</view>
</view>
<view>
<text class="plr-50 ptb-10 br-16" style="background: blue;">下一步</text>
</view>
</view>
</u-popup>
</view>
<view class="mlr-25 mt-30">
<image style="height: 160rpx;width: 100%;" src="/static/icon_my_img.png"></image>
</view>
</view>
</template>
......@@ -42,59 +58,35 @@
export default {
data() {
return {
show: false,
list1: [
"https://zhongqian.xnszz.com/1-images/home/20250213002.png",
"https://zhongqian.xnszz.com/1-images/home/20250213002.png",
"https://zhongqian.xnszz.com/1-images/home/20250213002.png",
],
listService: [{
img: "https://zhongqian.xnszz.com/1-images/home/20250213002.png",
title: "访客",
describe: "请点击输入访客信息"
},
{
img: "https://zhongqian.xnszz.com/1-images/home/20250213002.png",
title: "报修报事",
describe: "保修报事一键即发"
},
{
img: "https://zhongqian.xnszz.com/1-images/home/20250213002.png",
title: "生活缴费",
describe: "水费电费在线缴纳"
},
{
img: "https://zhongqian.xnszz.com/1-images/home/20250213002.png",
title: "常用电话",
describe: "随时查找常用电话"
},
{
img: "https://zhongqian.xnszz.com/1-images/home/20250213002.png",
title: "停车缴费",
describe: "输入车牌在线缴费"
},
{
img: "https://zhongqian.xnszz.com/1-images/home/20250213002.png",
title: "投诉表扬",
describe: "投诉表扬线上发布"
}
],
};
},
onLoad(options) {
},
methods: {
open() {
// console.log('open');
},
close() {
this.show = false
// console.log('close');
},
onClick(index) {
console.log(index);
if (index == 3) {
this.$wskj.to("/pagesMine/pages/zlbj")
return
}
if (index == 4) {
this.$wskj.to("/pagesMine/pages/fwxx")
return
}
if (index == 0) {
this.$wskj.to("/pagesMine/pages/wdfw")
return
}
if (index == 1) {
this.$wskj.to("/pagesMain/pages/bxbs")
return
}
if (index == 2) {
this.$wskj.to("/pagesMine/pages/yg_login")
return
}
}
}
};
......@@ -105,22 +97,12 @@
height: 100vh;
display: flex;
flex-direction: column;
background: #f5f5f5;
background: #F2F2F2;
}
.grid-container {
display: flex;
flex-wrap: wrap;
justify-content: space-around; // 可以根据需求调整元素的水平排列方式,这里是均匀分布
align-items: center; // 垂直方向居中对齐
}
.grid-item {
width: 46%; // 可以根据设计需求调整宫格宽度
height: 300rpx; // 宫格高度
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
.item {
width: 100%;
height: 200rpx;
margin-top: 20rpx;
}
</style>
\ No newline at end of file
<template>
<view class="center plr-25">
<view class="flex-column br-12 fs-28 mt-30" style="background: white;">
<text class="fs-32 fw-700 mt-30" style="text-align: left;padding-left: 30rpx;">车位出租费</text>
<text class="fs-28 mt-30" style="text-align: left;padding-left: 30rpx;">停车场</text>
<view class="flex-row-between mar-30 br-4 pad-25" style="background: #F2F2F2;">
<text>请选择</text>
<image class="h-30 w-30" src="/static/icon_xjt.png"></image>
</view>
<text class="fs-28 mt-30" style="text-align: left;padding-left: 30rpx;">车位号</text>
<view class="flex-row-between mar-30 br-4 pad-25" style="background: #F2F2F2;">
<text>请选择</text>
<view class="flex-row-between mar-30 br-4 pad-25" style="background: #F2F2F2;" @click="openCar">
<text>{{carNumber==''?"请选择":carNumber}}</text>
<image class="h-30 w-30" src="/static/icon_xjt.png"></image>
</view>
<text class="fs-28 mt-30" style="text-align: left;padding-left: 30rpx;">租赁时间</text>
<view class="flex-row-between mar-30 br-4 pad-25" style="background: #F2F2F2;">
<text>请选择</text>
<view class="flex-row-between mar-30 br-4 pad-25" style="background: #F2F2F2;" @click="open">
<text>{{monthsNumber==''?"请选择":monthsNumber}}</text>
<image class="h-30 w-30" src="/static/icon_xjt.png"></image>
</view>
<text class="fs-28 mt-30" style="text-align: left;padding-left: 30rpx;">缴费金额</text>
......@@ -23,11 +17,13 @@
<text>¥0</text>
</view>
</view>
<view class="fullscreen-btn" style="margin: 0;margin-top: 60rpx;">
立即缴费
</view>
<u-picker :show="show" :columns="columns" closeOnClickOverlay="true" @cancel="close" @close="close"
@confirm="confirm"></u-picker>
<u-picker :show="carShow" :columns="list" closeOnClickOverlay="true" @cancel="closeCar" @close="closeCar"
@confirm="confirmCar"></u-picker>
</view>
</template>
......@@ -35,8 +31,16 @@
export default {
data() {
return {
indexTab: 0,
type: 0,
show: false,
carShow: false,
list: [
['1', '2', '3', '4', '5']
],
columns: [
['1个月', '3个月', '6个月', '9个月', '12个月']
],
monthsNumber: '',
carNumber: '',
};
},
......@@ -45,27 +49,29 @@
},
methods: {
onClickPrice(index) {
this.indexTab = index
open() {
this.show = true
},
close() {
this.show = false
},
openCar() {
this.carShow = true
},
closeCar() {
this.carShow = false
onClick(index) {
if (index == 0) {
this.$wskj.to("/pagesMain/pages/tsby_submit?type=0")
return
}
if (index == 1) {
this.$wskj.to("/pagesMain/pages/tsby_submit?type=1")
return
}
if (index == 2) {
this.$wskj.to("/pagesMain/pages/tsby_lsgd")
return
}
if (index == 3) {
this.$wskj.to("/pagesMain/pages/fwgz")
return
}
},
confirm(e) {
this.show = false
this.monthsNumber = e.value[0]
console.log("LMG", e.value[0])
},
confirmCar(e) {
this.carShow = false
this.carNumber = e.value[0]
console.log("LMG", e.value[0])
}
}
};
......
......@@ -100,7 +100,7 @@
methods: {
onTabClick(index) {
if (index == 0) {
this.$wskj.to("/pagesMain/pages/jnzd_wyf")
this.$wskj.to("/pagesMain/pages/jnzd_czf")
return
}
this.indexTab = index
......
......@@ -101,11 +101,11 @@
return
}
if (index == 4) {
this.$wskj.to("/pagesMain/pages/jnzd_ccc?type=0")
this.$wskj.to("/pagesMain/pages/jnzd_czf?type=0")
return
}
if (index == 5) {
this.$wskj.to("/pagesMain/pages/jnzd_ccc?type=1")
this.$wskj.to("/pagesMain/pages/jnzd_czf?type=1")
return
}
if (index == 6) {
......
<template>
<view class='container'>
<view class="mar-20">
<view class="flex-column br-12 fs-28 mt-30" style="background: white;">
<text class="fs-32 fw-700 pad-30" style="text-align: left;">基本信息</text>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;">
<text style="color: #999999;">职业</text>
<text>安保</text>
</view>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;">
<text style="color: #999999;">姓名</text>
<text>张三</text>
</view>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;">
<text style="color: #999999;">性别</text>
<text></text>
</view>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;">
<text style="color: #999999;">手机号</text>
<text>199****8989</text>
</view>
</view>
<view class="flex-column br-12 fs-24 mt-30 pad-30" style="background: white;color: #999999;">
<text class="fs-32 fw-700" style="color: #000;">我的位置</text>
<text class="mt-20">请定位当前位置</text>
<view @click="onDw" class="mt-20"
style="display: flex;flex-direction: row-reverse;align-items: center;">
<text>重新定位</text>
<image class="w-25 h-25" src="/pagesMine/static/icon_dk_dw.png"></image>
</view>
<view class="mt-50" style="height: 1rpx;background: #E9E9E9;"> </view>
<text class="mt-50" style="color: #000;">拍照</text>
<view class="mt-20">
<upload-image v-model="images" maxCount="3" width="70" height="70" type="fullurl"></upload-image>
</view>
</view>
</view>
<view @click="onSubmit" class="fullscreen-btn mt-100">
<text>提交打卡</text>
</view>
<!-- 提交 -->
<wskj-modal :show="submitShow" :showCancelButton="true" confirmText="确定" confirmColor="#EB7318"
@close="submitShow = false" @confirm="onConfirmSubmit" @cancel="submitShow = false">
<view class="pt-40 pb-40">
<view>
<text class="fs-28">确认提交?</text>
</view>
</view>
</wskj-modal>
</view>
</template>
<script>
export default {
data() {
return {
title: '安保打卡',
type: 0,
reason: '',
submitShow: false,
images: '',
};
},
onLoad(e) {
this.type = e.type
if (e.type == 0) {
this.title = "安保打卡"
} else {
this.title = "保洁打卡"
}
},
methods: {
onDw() {
uni.getLocation({
type: 'gcj02',
success: function(res) {
const latitude = res.latitude;
const longitude = res.longitude;
uni.openLocation({
latitude: latitude,
longitude: longitude,
success: function(res) {
console.log(res);
}
});
}
});
},
onSubmit() {
this.$wskj.to("/pagesMain/pages/tjsq?type=" + this.type)
// if (!this.reason) {
// return this.$u.toast('请输入内容')
// }
// if (!this.images) {
// return this.$u.toast('请至少上传一张照片')
// }
// if (this.reason.length < 10) {
// return this.$u.toast('文字描述最低10个字')
// }
// this.submitShow = true
},
// 提交
onConfirmSubmit() {
// const params = {
// url: '/api/user/yijian',
// loadingTip: '',
// data: {
// content: this.reason,
// images: this.images
// }
// }
// // console.log(params);
// this.$request(params).then(res => {
// // console.log(res)
// this.submitShow = false
// if (res.code === 1) {
// this.$u.toast(res.msg || '提交成功')
// this.reason = ''
// this.images = ''
// } else {
// this.$u.toast(res.msg || '提交失败')
// }
// }).catch(err => {
// this.submitShow = false
// this.$u.toast(err.msg || '提交失败')
// })
}
},
};
</script>
<style scoped>
.container {
display: flex;
flex-direction: column;
background: #F2F2F2;
}
</style>
\ No newline at end of file
<template>
<view class="center">
<view class="topbar">
<u-navbar :autoBack="true" title="打卡记录" placeholder="true" bgColor="transparent" leftIconColor="#FFF"
:title-style="{color: '#FFF'}">
</u-navbar>
<view class="h-200"></view>
</view>
<view class="mlr-25" style="margin-top: -100rpx;">
<attend-calendar :lateddates="[`2025-5-26`,`2025-5-27`,`2025-6-27`]"
:truancyeddates="[`2025-5-23`]"></attend-calendar>
</view>
<view class="flex v-center pad-30 mlr-25 mt-30" style="background: #EBF5F0;">
<text class="fs-28 fw-700">打卡时间:</text>
<text class="fs-24">2025-04-03 10:32:31</text>
</view>
<view class="flex-column mlr-25 mt-30" style="background: #EBF5F0;">
<view class="flex v-center pad-30">
<text class="fs-28 fw-700">打卡天数:</text>
<text class="fs-24">25天</text>
</view>
<view class="flex v-center pad-30">
<text class="fs-28 fw-700">缺卡天数:</text>
<text class="fs-24">1天</text>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
show: false,
sex: '',
columns: [
['', '']
],
};
},
onLoad(options) {
},
methods: {
open() {
this.show = true
},
close() {
this.show = false
},
confirm(e) {
this.show = false
this.sex = e.value[0]
console.log("LMG", e.value[0])
}
}
};
</script>
<style>
.center {
height: 100vh;
display: flex;
flex-direction: column;
background: #FFFFFF;
}
.topbar {
/* 推荐方式:使用静态资源路径 */
background-image: url('/pagesMine/static/icon_dkbg.png');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
}
</style>
\ No newline at end of file
<template>
<view class="center plr-25">
<view class="flex-column br-12 fs-28 mt-30" style="background: #FFFFFF;">
<text class="fs-32 fw-700 pad-30" style="text-align: left;">基本信息</text>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;">
<text>姓名</text>
<text>张三</text>
</view>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;">
<text>手机号</text>
<text>张三</text>
</view>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;">
<text>身份证号</text>
<text>张三</text>
</view>
</view>
<view class="overflow-y">
<scroll-view scroll-y style="height: 100%;">
<view @click="onClickSelecte(index)" v-for="(item, index) in 5" :key="index">
<view class="flex-column br-12 fs-28 mt-30" style="background: #FFFFFF;">
<view class="fs-32 fw-700 pad-30 flex-row-between">
<text>房屋信息</text>
<image v-if="selecteIndex==index" class="w-45 h-45" src="/pagesMine/static/icon_fwxx_1.png">
</image>
<image v-else class="w-45 h-45" src="/pagesMine/static/icon_fwxx_2.png"></image>
</view>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;">
<text>小区</text>
<text>利达国宾中心</text>
</view>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;">
<text>具体位置</text>
<text>1栋2单元205室</text>
</view>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;">
<text>业主姓名</text>
<text>张三</text>
</view>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;">
<text>业主手机号</text>
<text>177****1234</text>
</view>
</view>
</view>
</scroll-view>
</view>
<view class="h-140 pt-20">
<view class="fullscreen-btn">
确定
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
selecteIndex: 0
};
},
onLoad(options) {
},
methods: {
open() {
},
close() {
},
onClick(index) {
if (index == 0) {
this.$wskj.to("/pagesMain/pages/tsby_submit?type=0")
return
}
if (index == 1) {
this.$wskj.to("/pagesMain/pages/tsby_submit?type=1")
return
}
if (index == 2) {
this.$wskj.to("/pagesMain/pages/tsby_lsgd")
return
}
if (index == 3) {
this.$wskj.to("/pagesMain/pages/fwgz")
return
}
},
onClickSelecte(index) {
this.selecteIndex = index
}
}
};
</script>
<style>
.center {
height: 100vh;
display: flex;
flex-direction: column;
background: #F2F2F2;
}
.item {
width: 100%;
height: 200rpx;
margin-top: 20rpx;
}
.item2 {
width: 100%;
height: 150rpx;
margin-top: 20rpx;
}
</style>
\ No newline at end of file
<template>
<view class="center plr-25">
<view class="overflow-y">
<scroll-view scroll-y style="height: 100%;">
<view class="flex-column br-12 fs-28 mt-30" style="background: #FFFFFF;">
<text class="fs-32 fw-700 pad-30" style="text-align: left;">家庭成员</text>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;">
<text>姓名</text>
<input style="text-align: right;" placeholder="请输入姓名" />
</view>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;" @click="open">
<text>性别</text>
<view class="flex v-center">
<text>{{sex==''?"请选择":sex}}</text>
<image class="w-25 h-30 ml-10" src="/static/icon_r.png"></image>
</view>
</view>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;">
<text>关系</text>
<input style="text-align: right;" placeholder="请输入和业主的关系" />
</view>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;">
<text>手机号</text>
<input style="text-align: right;" :disabled="disabled" type="tel" maxlength="11"
placeholder="请输入手机号" />
</view>
</view>
<u-picker :show="show" :columns="columns" closeOnClickOverlay="true" @cancel="close" @close="close"
@confirm="confirm"></u-picker>
</scroll-view>
</view>
<view class="h-140 pt-20">
<!-- <view class="fullscreen-btn">
确认添加
</view> -->
<view class="fullscreen-btn" style="background: #FF6363;">
删除
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
disabled: false, //禁止输入 true
show: false,
sex: '',
columns: [
['', '']
],
};
},
onLoad(options) {
},
methods: {
open() {
this.show = true
},
close() {
this.show = false
},
confirm(e) {
this.show = false
this.sex = e.value[0]
console.log("LMG", e.value[0])
}
}
};
</script>
<style>
.center {
height: 100vh;
display: flex;
flex-direction: column;
background: #F2F2F2;
}
.item {
width: 100%;
height: 200rpx;
margin-top: 20rpx;
}
.item2 {
width: 100%;
height: 150rpx;
margin-top: 20rpx;
}
</style>
\ No newline at end of file
<template>
<view class="center plr-25">
<view class="br-12" style="background: linear-gradient( 180deg, #1FCA7C 0%, #DDF1E8 100%);;margin-top: 30rpx;">
<view class="flex-column mar-25">
<text class="fs-32 fw-700 mb-30" style="text-align: left;">当前住址</text>
<view class="flex-column br-12 pad-25" style="background: #F3FEF9;">
<view class="flex v-center">
<image class="h-42 w-42" src="/static/icon_my_fw.png"></image>
<text class="fs-28">利达国宾中心</text>
<image class="h-25 w-25 mt-5" src="/static/icon_r.png"></image>
</view>
<text class="fs-24 h-54 lh-54 mt-30"
style="background: linear-gradient( 90deg, #CAF6E2 0%, #FFFFFF 100%);">
1栋2单元205室
</text>
</view>
</view>
</view>
<view class="flex-column fs-32 w-150 vh-center mtb-30">
<text style="text-align: center;">家庭成员</text>
<view style="width: 60rpx;height: 5rpx;background-color: #1FCA7C;"></view>
</view>
<view class="overflow-y">
<scroll-view scroll-y style="height: 100%;">
<view @click="onClickSelecte(index)" v-for="(item, index) in 10" :key="index">
<view class="flex-column br-12 fs-28 pad-30 mb-20" style="background: #FFFFFF;">
<view class="flex vh-center">
<image class="w-95 h-95 br-50" src="/static/icon_logo.png"></image>
<view class="flex-column ml-20" style="text-align: left;flex: 1;">
<text class="fs-30">家庭成员1</text>
<view class="flex">
<text class="fs-22 mt-10 plr-20 ptb-5 br-4"
style="border: 1px solid #1FCA7C;color: #1FCA7C;">长辈1</text>
</view>
</view>
<text class="fs-28">17787878787</text>
</view>
</view>
</view>
</scroll-view>
</view>
<view class="h-140 pt-20">
<view class="fullscreen-btn" @click="onClick(0)">
新增人员
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
selecteIndex: 0
};
},
onLoad(options) {
},
methods: {
open() {
},
close() {
},
onClick(index) {
if (index == 0) {
this.$wskj.to("/pagesMine/pages/jtcy")
return
}
},
onClickSelecte(index) {
this.selecteIndex = index
this.$wskj.to("/pagesMine/pages/jtcy")
}
}
};
</script>
<style>
.center {
height: 100vh;
display: flex;
flex-direction: column;
background: #F2F2F2;
}
.item {
width: 100%;
height: 200rpx;
margin-top: 20rpx;
}
.item2 {
width: 100%;
height: 150rpx;
margin-top: 20rpx;
}
</style>
\ No newline at end of file
<template>
<view class="center">
<view>
<u-navbar left-text="返回" :autoBack="true" placeholder="true" bgColor="transparent">
</u-navbar>
</view>
<view class="flex-column mlr-70 mt-100" style="text-align: left;">
<text class="fs-48 fw-700">Hello!\n请登录员工账号</text>
<input class="h-86 lh-86 fs-28 plr-33 mt-80" style="background: #FFFFFF;" placeholder="手机号" />
<input class="h-86 lh-86 fs-28 plr-33 mt-50" style="background: #FFFFFF;" placeholder="密码" />
<view class="fullscreen-btn mt-100" @click="login">
立即登录
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
};
},
onLoad(options) {
},
methods: {
login() {
this.$wskj.to("/pagesMine/pages/ygzy")
}
}
};
</script>
<style lang="scss" scoped>
.center {
height: 100vh;
display: flex;
flex-direction: column;
background: linear-gradient(180deg, #DFF4EB 0%, #FFFFFF 100%);
}
</style>
\ No newline at end of file
<template>
<view class="center">
<view class="flex-column mlr-30">
<image @click="onClick(0)" class="item" src="/pagesMine/static/icon_ygzy_1.png"></image>
<image @click="onClick(1)" class="item" src="/pagesMine/static/icon_ygzy_2.png"></image>
<image @click="onClick(2)" class="item" src="/pagesMine/static/icon_ygzy_3.png"></image>
<image @click="onClick(3)" class="item2" src="/pagesMine/static/icon_ygzy_4.png"></image>
</view>
</view>
</template>
<script>
export default {
data() {
return {
};
},
onLoad(options) {
},
methods: {
open() {
},
close() {
},
onClick(index) {
if (index == 0) {
this.$wskj.to("/pagesMine/pages/dk_submit")
return
}
if (index == 1) {
this.$wskj.to("/pagesMine/pages/dk_submit")
return
}
if (index == 2) {
this.$wskj.to("/pagesMain/pages/bxbs_lsgd")
return
}
if (index == 3) {
this.$wskj.to("/pagesMine/pages/dkjl")
return
}
}
}
};
</script>
<style>
.center {
height: 100vh;
display: flex;
flex-direction: column;
background: #F2F2F2;
}
.item {
width: 100%;
height: 200rpx;
margin-top: 20rpx;
}
.item2 {
width: 100%;
height: 150rpx;
margin-top: 20rpx;
}
</style>
\ No newline at end of file
<template>
<view class="center plr-25">
<view class="overflow-y">
<scroll-view scroll-y style="height: 100%;">
<view class="flex-column br-12 fs-28 mt-30" style="background: #FFFFFF;">
<text class="fs-32 fw-700 pad-30" style="text-align: left;">基本信息</text>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;">
<text>姓名</text>
<text>张三</text>
</view>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;" @click="open">
<text>性别</text>
<view class="flex v-center">
<text>{{sex==''?"请选择":sex}}</text>
<image class="w-25 h-30 ml-10" src="/static/icon_r.png"></image>
</view>
</view>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;">
<text>手机号</text>
<text>张三</text>
</view>
</view>
<u-picker :show="show" :columns="columns" closeOnClickOverlay="true" @cancel="close" @close="close"
@confirm="confirm"></u-picker>
</scroll-view>
</view>
<view class="h-140 pt-20">
<view class="fullscreen-btn">
确定
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
show: false,
sex: '',
columns: [
['', '']
],
};
},
onLoad(options) {
},
methods: {
open() {
this.show = true
},
close() {
this.show = false
},
confirm(e) {
this.show = false
this.sex = e.value[0]
console.log("LMG", e.value[0])
}
}
};
</script>
<style>
.center {
height: 100vh;
display: flex;
flex-direction: column;
background: #F2F2F2;
}
.item {
width: 100%;
height: 200rpx;
margin-top: 20rpx;
}
.item2 {
width: 100%;
height: 150rpx;
margin-top: 20rpx;
}
</style>
\ No newline at end of file
static/tabbar/home.png

355 Bytes | W: | H:

static/tabbar/home.png

1.04 KB | W: | H:

static/tabbar/home.png
static/tabbar/home.png
static/tabbar/home.png
static/tabbar/home.png
  • 2-up
  • Swipe
  • Onion skin
static/tabbar/homeHL.png

561 Bytes | W: | H:

static/tabbar/homeHL.png

1.1 KB | W: | H:

static/tabbar/homeHL.png
static/tabbar/homeHL.png
static/tabbar/homeHL.png
static/tabbar/homeHL.png
  • 2-up
  • Swipe
  • Onion skin
static/tabbar/my.png

461 Bytes | W: | H:

static/tabbar/my.png

993 Bytes | W: | H:

static/tabbar/my.png
static/tabbar/my.png
static/tabbar/my.png
static/tabbar/my.png
  • 2-up
  • Swipe
  • Onion skin
static/tabbar/myHL.png

639 Bytes | W: | H:

static/tabbar/myHL.png

1.01 KB | W: | H:

static/tabbar/myHL.png
static/tabbar/myHL.png
static/tabbar/myHL.png
static/tabbar/myHL.png
  • 2-up
  • Swipe
  • Onion skin
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment