@@ -1,6 +1,4 @@ | |||
VUE_APP_MODE=development | |||
VUE_APP_SERVER=http://114.215.78.198:8081 | |||
url=https://wzx.2weisou.com //404 | |||
url=https://erpx.2weisou.com/sjjy | |||
url=http://114.215.78.198:8081/sjjy | |||
url=https://erpx.2weisou.com //404 | |||
VUE_APP_SERVER=https://erpx.2weisou.com/sjjy | |||
url=https://wzx.2weisou.com/sjjy | |||
url=https://erpx.2weisou.com/sjjy |
@@ -38,10 +38,102 @@ let appChangePricelisturl = '/appChangePrice/list.do' //改价申请详情(判 | |||
let appChangePricecheckurl = '/appChangePrice/check.do' //改价申请校验 | |||
let takeHouseApplyurl = '/appTakeHouse/takeHouseApply.do' //带房申请 | |||
let takeHouseReviewurl = '/appTakeHouse/takeHouseReview.do' //带房审核 | |||
let oneCustomerInfourl= '/appHouseContract/oneCustomerInfo.do' //成交合同第一步客户信息 | |||
let getDeptListurl= '/appDept/getDeptList.do' //部门列表 | |||
let getPersonListurl= '/appPerson/getPersonList.do' //部门下的人员列表 | |||
let twoContractInfourl= '/appHouseContract/twoContractInfo.do' //成交合同第二步合同信息 | |||
let getContractListurl= '/appHouseContract/getContractList.do' //合同审核列表 | |||
let appSaveurl= '/appHouseContract/appSave.do' //定金合同申请 | |||
let depositExamineurl= '/appHouseContract/depositExamine.do' //定金合同审批 | |||
let getDepositListurl= '/appHouseContract/getDepositList.do' //合同审核列表 | |||
let signDepositCallbackurl= '/appHouseContract/signDepositCallback.do' //签约回调 | |||
let djContracturl= '/appHouseContract/djContract.do' //定金合同详情 | |||
let contractListurl= '/appHouseContract/contractList.do' //房间续租合同信息查询 | |||
let sendCodeurl = '/appPhoneCode/sendCode.do' //手机号发短信 | |||
let sendUserurl = '/appPhoneCode/sendUser.do' //用户名发短信 | |||
let checkCodeurl = '/appPhoneCode/checkCode.do' //验证短信 | |||
let takeHouseListurl = '/appTakeHouse/takeHouseList.do' //带房审核 | |||
let cleanRepairHistory1url = '/appCleanRepair/cleanRepairHistory.do' //带房历史列表 | |||
let storeUpurl = '/appMediacy/storeUp.do' //居间关注 | |||
let cancelStoreUpurl = '/appMediacy/cancelStoreUp.do' //取消居间关注 | |||
let storeUp1url = '/appHouse/storeUp.do' //出租关注 | |||
let cancelStoreUp1url = '/appMediacy/cancelStoreUp.do' //取消出租关注 | |||
let applisturl = '/appNews/list.do' //公告列表 | |||
let appdetailurl = '/appNews/detail.do' //公告详情 | |||
let appreplyurl= '/appNews/reply.do' //公告回复 | |||
let replyListurl= '/appNews/replyList.do' //公告回复列表 | |||
let assiturl= '/appNews/assit.do' //公告点赞 | |||
let assitCounturl= '/appNews/assitCount.do' //公告点赞总数 | |||
let viewListurl= '/appNews/viewList.do' //公告查看查询 | |||
let updateStatusurl= '/appCustomer/updateStatus.do' //客户列表放弃客户 | |||
let findDetailHistoryurl= '/appMediacy/findDetailHistory.do' //居间查看历史 | |||
let personalIntermediaryViewurl= '/appMediacy/personalIntermediaryView.do' //居间查看历史录入 | |||
let visiturl= '/appMediacy/visit.do' //居间拜访 | |||
let checkVerificationCodeurl= '/appPerson/checkVerificationCode.do' //验证校验码 | |||
let getVerificationCodeurl= '/appPerson/getVerificationCode.do' //获取校验码 | |||
let forgetResetPasswordurl= '/appPerson/forgetResetPassword.do' //修改密码(忘记密码功能) | |||
let uploadurl= '/file/upload.do' //文件上传 | |||
let sendPasswordurl= '/appLock/sendPassword.do' //房源详情-密码锁 | |||
let findPersonurl= '/appPerson/findPerson.do' //当前登录人信息查询 | |||
let updateLevelurl= '/appCustomer/updateLevel.do' //客源关注功能 | |||
let findRepairPersonTaskurl= '/appCleanRepair/findRepairPersonTask.do' //查询当前登录维修人的维修任务 | |||
let confirmRepairTaskurl= '/appCleanRepair/confirmRepairTask.do' //维修人员确认当前已完成的维修 | |||
let repairEquipmentDictionaryurl= '/appCleanRepair/repairEquipmentDictionary.do' //维修设备字典 | |||
let dealurl= '/appContract/deal.do' //成交合同申请 | |||
let examineurl= '/appContract/examine.do' //合同主管审核店长审批 | |||
let processurl= '/appContractProcess/process.do' //合同申请进度 | |||
let contracturl= '/appContractModel/contract.do' //改价申请详情 | |||
let oneVerificationContractInfourl= '/appHouseContract/oneVerificationContractInfo.do' //成交合同第一步验证如果只添加部分数据,则根据房间id查询用户信息 | |||
const install = (Vue, vm) => { | |||
let oneVerificationContractInfo = (params) => vm.$u.post(oneVerificationContractInfourl, params); | |||
let cleanRepairHistory1 = (params) => vm.$u.post(cleanRepairHistory1url, params); | |||
let storeUp = (params) => vm.$u.post(storeUpurl, params); | |||
let cancelStoreUp = (params) => vm.$u.post(cancelStoreUpurl, params); | |||
let storeUp1 = (params) => vm.$u.post(storeUp1url, params); | |||
let replyList = (params) => vm.$u.post(replyListurl, params); | |||
let appreply = (params) => vm.$u.post(appreplyurl, params); | |||
let appdetail = (params) => vm.$u.post(appdetailurl, params); | |||
let applist = (params) => vm.$u.post(applisturl, params); | |||
let cancelStoreUp1 = (params) => vm.$u.post(cancelStoreUp1url, params); | |||
let getVerificationCode = (params) => vm.$u.post(getVerificationCodeurl, params); | |||
let forgetResetPassword = (params) => vm.$u.post(forgetResetPasswordurl, params); | |||
let checkVerificationCode = (params) => vm.$u.post(checkVerificationCodeurl, params); | |||
let visit = (params) => vm.$u.post(visiturl, params); | |||
let personalIntermediaryView = (params) => vm.$u.post(personalIntermediaryViewurl, params); | |||
let findDetailHistory = (params) => vm.$u.post(findDetailHistoryurl, params); | |||
let updateStatus = (params) => vm.$u.post(updateStatusurl, params); | |||
let viewList = (params) => vm.$u.post(viewListurl, params); | |||
let assitCount = (params) => vm.$u.post(assitCounturl, params); | |||
let assit = (params) => vm.$u.post(assiturl, params); | |||
let contract = (params) => vm.$u.post(contracturl, params); | |||
let process = (params) => vm.$u.post(processurl, params); | |||
let examine = (params) => vm.$u.post(examineurl, params); | |||
let deal = (params) => vm.$u.post(dealurl, params); | |||
let repairEquipmentDictionary = (params) => vm.$u.post(repairEquipmentDictionaryurl, params); | |||
let confirmRepairTask = (params) => vm.$u.post(confirmRepairTaskurl, params); | |||
let findRepairPersonTask = (params) => vm.$u.post(findRepairPersonTaskurl, params); | |||
let updateLevel = (params) => vm.$u.post(updateLevelurl, params); | |||
let findPerson = (params) => vm.$u.post(findPersonurl, params); | |||
let sendPassword = (params) => vm.$u.post(sendPasswordurl, params); | |||
let upload = (params) => vm.$u.post(uploadurl, params); | |||
let login = (params) => vm.$u.post(loginurl, params); | |||
let sendCode = (params) => vm.$u.post(sendCodeurl, params); | |||
let sendUser = (params) => vm.$u.post(sendUserurl, params); | |||
let checkCode = (params) => vm.$u.post(checkCodeurl, params); | |||
let takeHouseList = (params) => vm.$u.post(takeHouseListurl, params); | |||
let contractList = (params) => vm.$u.post(contractListurl, params); | |||
let djContract = (params) => vm.$u.post(djContracturl, params); | |||
let signDepositCallback = (params) => vm.$u.post(signDepositCallbackurl, params); | |||
let getDepositList = (params) => vm.$u.post(getDepositListurl, params); | |||
let depositExamine = (params) => vm.$u.post(depositExamineurl, params); | |||
let appSave = (params) => vm.$u.post(appSaveurl, params); | |||
let getContractList = (params) => vm.$u.post(getContractListurl, params); | |||
let twoContractInfo = (params) => vm.$u.post(twoContractInfourl, params); | |||
let getPersonList = (params) => vm.$u.post(getPersonListurl, params); | |||
let getDeptList = (params) => vm.$u.post(getDeptListurl, params); | |||
let oneCustomerInfo = (params) => vm.$u.post(oneCustomerInfourl, params); | |||
let appChangePriceapply = (params) => vm.$u.post(appChangePriceapplyurl, params); | |||
let appChangePriceaccept = (params) => vm.$u.post(appChangePriceaccepturl, params); | |||
let appChangePriceprocess = (params) => vm.$u.post(appChangePriceprocessurl, params); | |||
@@ -85,6 +177,53 @@ const install = (Vue, vm) => { | |||
vm.$u.api = { | |||
login, | |||
sendCode, | |||
sendUser, | |||
checkCode, | |||
oneVerificationContractInfo, | |||
assit, | |||
assitCount, | |||
viewList, | |||
updateStatus, | |||
findDetailHistory, | |||
personalIntermediaryView, | |||
visit, | |||
checkVerificationCode, | |||
forgetResetPassword, | |||
getVerificationCode, | |||
findDetailHistory, | |||
applist, | |||
cancelStoreUp1, | |||
appreply, | |||
appdetail, | |||
replyList, | |||
storeUp1, | |||
cleanRepairHistory1, | |||
storeUp, | |||
cancelStoreUp, | |||
contract, | |||
process, | |||
examine, | |||
deal, | |||
repairEquipmentDictionary, | |||
confirmRepairTask, | |||
findRepairPersonTask, | |||
updateLevel, | |||
findPerson, | |||
sendPassword, | |||
upload, | |||
takeHouseList, | |||
contractList, | |||
djContract, | |||
signDepositCallback, | |||
getDepositList, | |||
depositExamine, | |||
appSave, | |||
getContractList, | |||
twoContractInfo, | |||
getPersonList, | |||
getDeptList, | |||
oneCustomerInfo, | |||
companyReport, | |||
agentRanking, | |||
departmentReport, | |||
@@ -6,48 +6,54 @@ const install = (Vue, vm) => { | |||
timeout: 10000, | |||
// loadingText: '努力加载中~', | |||
header: { | |||
'Authorization': 'Bearer '+vm.vuex_token, | |||
// "user": { | |||
// "token": vm.vuex_token, | |||
// } | |||
}, | |||
data:{ | |||
header: { | |||
user: { | |||
token: vm.vuex_token | |||
}, | |||
}, | |||
body: {} | |||
} | |||
}); | |||
// 请求拦截 | |||
Vue.prototype.$u.http.interceptor.request = (config) => { | |||
// console.log(vm.vuex_token) | |||
console.log(config) | |||
if (vm.vuex_token) { | |||
config.header.Authorization = 'Bearer ' + vm.vuex_token | |||
config.header.token = vm.vuex_token | |||
} | |||
config.data.header = { | |||
user: { | |||
token: vm.vuex_token, | |||
} | |||
} | |||
return config; | |||
} | |||
// 响应拦截 | |||
Vue.prototype.$u.http.interceptor.response = (res) => { | |||
// console.log(res) | |||
if (res.statusCode == 200) { | |||
console.log(res) | |||
if (res.data.ErrNo == '0000') { | |||
return res.data; | |||
} else if (res.statusCode == 401) { | |||
} else if (res.data.ErrNo == '0005') { | |||
uni.showToast({ | |||
title: res.data.msg || '未登录', | |||
title: res.data.ErrMsg || '未登录', | |||
icon: "none", | |||
duration: 3000 | |||
}) | |||
// uni.navigateTo({ | |||
// url: '/pages/login/type' | |||
// }); | |||
uni.navigateTo({ | |||
url: '/pages/tabs/login' | |||
}); | |||
return; | |||
} else if (res.statusCode == 500) { | |||
uni.showToast({ | |||
title: res.data.msg || '加载失败', | |||
icon: "none", | |||
duration: 3000 | |||
}) | |||
return; | |||
} else if (res.statusCode == 503) { | |||
} else { | |||
uni.showToast({ | |||
title: '网络服务有问题', | |||
title: res.data.ErrMsg || '加载失败', | |||
icon: "none", | |||
duration: 3000 | |||
}) | |||
return; | |||
} else { | |||
return; | |||
} | |||
} | |||
} | |||
@@ -17,18 +17,23 @@ | |||
}, | |||
"pages": [ | |||
{ | |||
"path": "pages/tabs/login", | |||
"style": { | |||
"navigationBarTitleText": "登录", | |||
"navigationStyle": "custom" | |||
} | |||
}, | |||
{ | |||
"path": "pages/tabs/index", | |||
// "path": "pages/tabs/index", | |||
// "style": { | |||
// "navigationBarTitleText": "8090公寓", | |||
// "navigationBarTextStyle": "black" | |||
// } | |||
// },{ | |||
"path": "pages/tabs/login", | |||
"style": { | |||
"navigationBarTitleText": "8090公寓", | |||
"navigationBarTextStyle": "black" | |||
"navigationBarTitleText": "登录", | |||
"navigationStyle": "custom" | |||
} | |||
},{ | |||
"path": "pages/tabs/index", | |||
"style": { | |||
"navigationBarTitleText": "8090公寓", | |||
"navigationBarTextStyle": "black" | |||
} | |||
}, { | |||
"path": "pages/tabs/customer", | |||
"style": { | |||
@@ -101,12 +106,60 @@ | |||
"navigationBarTitleText": "我的待办", | |||
"navigationBarTextStyle": "black" | |||
} | |||
}, { | |||
"path": "apply_baojie", | |||
"style": { | |||
"navigationBarTitleText": "首次保洁", | |||
"navigationBarTextStyle": "black" | |||
} | |||
}, { | |||
"path": "networkquery", | |||
"style": { | |||
"navigationBarTitleText": "网络查询", | |||
"navigationBarTextStyle": "black" | |||
} | |||
}, { | |||
"path": "applyHistory", | |||
"style": { | |||
"navigationBarTitleText": "申请历史", | |||
"navigationBarTextStyle": "black" | |||
} | |||
}, { | |||
"path": "repairlist", | |||
"style": { | |||
"navigationBarTitleText": "维修清单", | |||
"navigationBarTextStyle": "black" | |||
} | |||
}, { | |||
"path": "networkquery_detail", | |||
"style": { | |||
"navigationBarTitleText": "网络查询详情", | |||
"navigationBarTextStyle": "black" | |||
} | |||
}, { | |||
"path": "changePrice_check", | |||
"style": { | |||
"navigationBarTitleText": "改价审核", | |||
"navigationBarTextStyle": "black" | |||
} | |||
}, { | |||
"path": "contact_check", | |||
"style": { | |||
"navigationBarTitleText": "合同审核", | |||
"navigationBarTextStyle": "black" | |||
} | |||
}, { | |||
"path": "electContract", | |||
"style": { | |||
"navigationBarTitleText": "电子合同", | |||
"navigationBarTextStyle": "black" | |||
} | |||
}, { | |||
"path": "modifyPassword", | |||
"style": { | |||
"navigationBarTitleText": "修改密码", | |||
"navigationBarTextStyle": "black" | |||
} | |||
}] | |||
}, { | |||
"root": "pages/customer", | |||
@@ -0,0 +1,137 @@ | |||
<template> | |||
<view class="container"> | |||
<view class="list-item" v-for="(item,index) in listData" :key="index"> | |||
<view class="top"> | |||
<view class="top-left"> | |||
<image class="icon" src="/static/kehu/person_gray.png" mode="" />{{item.name}} | |||
</view> | |||
<view class="time">{{item.time}}</view> | |||
</view> | |||
<view class="bot">{{item.address}}</view> | |||
<view class="status-box"> | |||
<view class="left">由 {{item.person}} 提交申请</view> | |||
<view class="btn success-btn" v-if="item.status==1">审核通过</view> | |||
<view class="btn fail-btn" v-else-if="item.status==0">未通过</view> | |||
<view class="btn dealing-btn" v-else>处理中</view> | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
export default { | |||
data() { | |||
return { | |||
listData: [{ | |||
name:'张晨', | |||
status: 0,address:'惠中北里 106号楼 24层',person:'marry',time:'2022-10-26 10:20:00' | |||
},{name:'张晨', | |||
status: 0,address:'惠中北里 106号楼 24层',person:'marry',time:'2022-10-26 10:20:00'}, | |||
{name:'张晨', | |||
status: 0,address:'惠中北里 106号楼 24层',person:'marry',time:'2022-10-26 10:20:00'}, | |||
{name:'张晨', | |||
status: 0,address:'惠中北里 106号楼 24层',person:'marry',time:'2022-10-26 10:20:00'}] | |||
}; | |||
}, | |||
onLoad(options) { | |||
}, | |||
onShow() { | |||
}, | |||
methods: {}, | |||
onLoad: function(options) { | |||
}, | |||
onHide: function() {}, | |||
}; | |||
</script> | |||
<style lang="scss" scoped> | |||
.container{ | |||
width: 750rpx; | |||
min-height: 100vh; | |||
background: #F8F8F8; | |||
padding-top: 20rpx; | |||
.list-item{ | |||
background: #fff; | |||
margin-bottom: 20rpx; | |||
padding: 30rpx 30rpx 0; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
.top{ | |||
display: flex; | |||
justify-content: space-between; | |||
align-items: center; | |||
.top-left{ | |||
display: flex; | |||
align-items: center; | |||
font-size: 30rpx; | |||
font-weight: 400; | |||
color: #333333; | |||
.icon{ | |||
width: 28rpx; | |||
height: 30rpx; | |||
margin-right: 12rpx; | |||
} | |||
} | |||
.time{ | |||
height: 42rpx; | |||
font-size: 30rpx; | |||
font-weight: 400; | |||
color: #666666; | |||
line-height: 42rpx; | |||
} | |||
} | |||
.bot{ | |||
height: 42rpx; | |||
font-size: 30rpx; | |||
font-weight: 400; | |||
color: #333333; | |||
line-height: 42rpx; | |||
margin-top: 20rpx; | |||
} | |||
.status-box{ | |||
margin-top: 30rpx; | |||
border-top: 1px solid #e0e0e0; | |||
height: 96rpx; | |||
display: flex; | |||
align-items: center; | |||
justify-content: space-between; | |||
.left{ | |||
height: 42rpx; | |||
font-size: 30rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
color: #333333; | |||
line-height: 42rpx; | |||
} | |||
.btn{ | |||
width: 144rpx; | |||
height: 56rpx; | |||
border-radius: 8rpx; | |||
text-align: center; | |||
line-height: 56rpx; | |||
font-size: 26rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
} | |||
.success-btn{ | |||
background: rgba(7,183,157,0.04); | |||
border: 1px solid #07B79D; | |||
color: #07B79D; | |||
} | |||
.fail-btn{ | |||
background: rgba(231,72,60,0.04); | |||
border: 1px solid #E7483C; | |||
color: #E7483C; | |||
} | |||
.dealing-btn{ | |||
background: rgba(254,160,23,0.04); | |||
border: 1px solid #FEA017; | |||
color: #FEA017; | |||
} | |||
} | |||
} | |||
} | |||
</style> |
@@ -0,0 +1,194 @@ | |||
<template> | |||
<view class="container"> | |||
<view class="form-box"> | |||
<view class="item"> | |||
<view class="label">房屋地址</view> | |||
<view class="input"> | |||
<u-input height="102" @click="addressShow = true" type="text" disabled input-align="right" v-model="form.houseAddressName" placeholder="请选择房屋地址"></u-input> | |||
<image class="path" src="/static/path.png" mode="" @click="addressShow = true"/> | |||
<u-select confirm-color="#FF6D25" v-model="addressShow" :list="sourceList" @confirm="confirmSource"></u-select> | |||
</view> | |||
</view> | |||
<view class="item"> | |||
<view class="label">台账号</view> | |||
<view class="input"> | |||
<u-input :clearable="false" type="text" input-align="right" v-model="form.tel" placeholder="请输入台账号"></u-input> | |||
</view> | |||
</view> | |||
<view class="item"> | |||
<view class="label">上门时间</view> | |||
<view class="input" > | |||
<u-input height="102" @click="calendarShow = true" disabled input-align="right" v-model="form.date" placeholder="请选择上门时间"></u-input> | |||
<image class="calendar" @click="calendarShow = true" src="/static/kehu/calendar.png" mode=""/> | |||
<u-picker mode="time" confirm-color="#FF6D25" :default-time="form.date" v-model="calendarShow" :params="params" @confirm="dateConfirm"></u-picker> | |||
</view> | |||
</view> | |||
<view class="item"> | |||
<view class="label">申请部门</view> | |||
<view class="input"> | |||
<u-input :clearable="false" type="text" input-align="right" v-model="form.deptName" placeholder="请输入申请部门"></u-input> | |||
</view> | |||
</view> | |||
<view class="item"> | |||
<view class="label">申请人</view> | |||
<view class="input"> | |||
<u-input :clearable="false" type="text" input-align="right" v-model="form.applyPerson" placeholder="请输入申请人"></u-input> | |||
</view> | |||
</view> | |||
<view class="last-item"> | |||
<view class="label">备注内容</view> | |||
<u-input style="flex:1" input-align="right" :custom-style="customStyle" v-model="form.mark" :height="60" :auto-height="true" type="textarea" :clearable="false" placeholder="请输入备注内容"></u-input> | |||
</view> | |||
</view> | |||
<view class="submit-btn" @click="submit">提交</view> | |||
</view> | |||
</template> | |||
<script> | |||
export default { | |||
data() { | |||
return { | |||
calendarShow: false, | |||
addressShow: false, | |||
params: { | |||
year: true, | |||
month: true, | |||
day: true, | |||
hour: true, | |||
minute: true, | |||
second: true | |||
}, | |||
form: { | |||
houseAddress: '', | |||
houseAddressName: '', | |||
deptName: '开发部一处', | |||
applyPerson:'张三地方', | |||
date:'', | |||
mark: ''//备注 | |||
}, | |||
sourceList: [ | |||
{ | |||
value: '1', | |||
label: '来电' | |||
}, | |||
{ | |||
value: '2', | |||
label: '来访' | |||
}, | |||
{ | |||
value: '3', | |||
label: '到访' | |||
}, | |||
{ | |||
value: '4', | |||
label: '2来访' | |||
}, | |||
], | |||
customStyle:{ | |||
maxHeight:'200rpx', | |||
padding: '20rpx', | |||
fontSize: '30rpx', | |||
borderBottom:'1px solid #e0e0e0' | |||
} | |||
}; | |||
}, | |||
onLoad(options) { | |||
}, | |||
onShow() { | |||
}, | |||
methods: { | |||
dateConfirm(e){ | |||
console.log(e) | |||
this.form.date = e.year + '-'+e.month + '-'+e.day+ ' '+e.hour+':'+e.minute+':'+e.second | |||
}, | |||
confirmSource(e){ | |||
console.log(e) | |||
this.form.houseAddress = e[0].value | |||
this.form.houseAddressName = e[0].label | |||
}, | |||
submit() { | |||
}, | |||
}, | |||
onLoad: function(options) { | |||
}, | |||
onHide: function() {}, | |||
// 必须要在onReady生命周期,因为onLoad生命周期组件可能尚未创建完毕 | |||
onReady() { | |||
} | |||
}; | |||
</script> | |||
<style lang="scss" scoped> | |||
.container { | |||
width: 750rpx; | |||
min-height: 100vh; | |||
background: #F8F8F8; | |||
padding-top: 20rpx; | |||
.form-box{ | |||
background: #fff; | |||
padding: 0 30rpx; | |||
.item{ | |||
height: 102rpx; | |||
font-size: 30rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
line-height: 102rpx; | |||
color: #333333; | |||
border-bottom: 1px solid #e0e0e0; | |||
display: flex; | |||
align-items: center; | |||
justify-content: space-between; | |||
.label{ | |||
width: 120rpx; | |||
margin-right: 20rpx; | |||
} | |||
.input{ | |||
width: 380rpx; | |||
display: flex; | |||
align-items: center; | |||
justify-content: flex-end; | |||
.path{ | |||
width: 14rpx; | |||
height: 30rpx; | |||
margin-left: 20rpx; | |||
} | |||
.calendar{ | |||
width: 40rpx; | |||
height: 40rpx; | |||
margin-left: 20rpx; | |||
} | |||
} | |||
} | |||
.last-item{ | |||
display: flex; | |||
.label{ | |||
line-height: 102rpx; | |||
font-size: 30rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
color: #333333; | |||
margin-right: 150rpx; | |||
} | |||
} | |||
} | |||
.submit-btn{ | |||
width: 690rpx; | |||
height: 88rpx; | |||
line-height: 88rpx; | |||
text-align: center; | |||
background: #FFB692; | |||
border-radius: 12rpx; | |||
margin-left: 30rpx; | |||
font-size: 32rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
color: #FFFFFF; | |||
position: fixed; | |||
bottom: 90rpx; | |||
} | |||
} | |||
</style> |
@@ -0,0 +1,147 @@ | |||
<template> | |||
<view class="container"> | |||
<view class="list-box"> | |||
<view class="list-item" @click="selectItem(item)" v-for="(item,index) in listData" :key="index"> | |||
<view class="item-info"> | |||
<view class="name u-line-1">{{item.name}}</view> | |||
<view class="right">{{item.time}}</view> | |||
</view> | |||
<view class="item-info"> | |||
<view class="address u-line-1">{{item.address}}</view> | |||
<view class="right">台账号:{{item.account}}</view> | |||
</view> | |||
<view class="item-info"> | |||
<view class="left ">原价:<view class="oldprice">{{item.oldprice}}</view></view> | |||
<view class="right">改价:<view class="newprice">{{item.newprice}}</view></view> | |||
</view> | |||
<view class="btn-box"> | |||
<view class="btn pass">通过</view> | |||
<view class="btn refuse">拒绝</view> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
export default { | |||
data() { | |||
return { | |||
keyword: '', | |||
listData: [{ | |||
address:'惠中北里 106号楼 24层', | |||
name:'张晨张', | |||
person: '张26D', | |||
time: '2021-12-22 18:00:40', | |||
account: '刘604A', | |||
oldprice: 145, | |||
newprice: 100 | |||
},{ | |||
address:'惠中北里惠中北里惠中北里 106号楼 24层', | |||
name:'张晨张张晨张张晨张张晨张张晨张张晨张', | |||
person: '张26D', | |||
time: '2021-12-22 18:00:40', | |||
account: '刘604A', | |||
oldprice: 145, | |||
newprice: 100 | |||
}] | |||
}; | |||
}, | |||
onLoad(options) { | |||
}, | |||
onShow() { | |||
}, | |||
methods: { | |||
}, | |||
onLoad: function(options) { | |||
}, | |||
onHide: function() {}, | |||
}; | |||
</script> | |||
<style lang="scss" scoped> | |||
.container{ | |||
width: 750rpx; | |||
min-height: 100vh; | |||
background: #F8F8F8; | |||
padding-top: 20rpx; | |||
.list-box{ | |||
.list-item{ | |||
padding: 30rpx; | |||
height: 306rpx; | |||
background: #fff; | |||
font-size: 28rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
color: #333333; | |||
margin-bottom: 20rpx; | |||
.item-info{ | |||
display: flex; | |||
margin-bottom: 24rpx; | |||
justify-content: space-between; | |||
align-items: center; | |||
font-size: 28rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
color: #333333; | |||
line-height: 40rpx; | |||
.name{ | |||
flex: 1; | |||
} | |||
.address{ | |||
} | |||
.left{ | |||
flex: 1; | |||
display: flex; | |||
align-items: center; | |||
.oldprice{ | |||
font-family: PingFangSC-Semibold, PingFang SC; | |||
font-weight: 600; | |||
color: #333333; | |||
} | |||
} | |||
.right{ | |||
flex: 0 0 278rpx; | |||
margin-left: 30rpx; | |||
display: flex; | |||
align-items: center; | |||
.newprice{ | |||
font-family: PingFangSC-Semibold, PingFang SC; | |||
font-weight: 600; | |||
color: #FF6D25; | |||
} | |||
} | |||
} | |||
.btn-box{ | |||
display: flex; | |||
justify-content: flex-end; | |||
.btn{ | |||
width: 128rpx; | |||
height: 54rpx; | |||
line-height: 54rpx; | |||
text-align: center; | |||
font-size: 26rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
border-radius: 8rpx; | |||
} | |||
.pass{ | |||
background: #FF6D25; | |||
color: #fff; | |||
border: 1px solid #FF6D25; | |||
margin-right: 30rpx; | |||
} | |||
.refuse{ | |||
background: #FFFFFF; | |||
border: 1px solid #FF6D25; | |||
color: #FF6D25; | |||
} | |||
} | |||
} | |||
} | |||
} | |||
</style> |
@@ -0,0 +1,210 @@ | |||
<template> | |||
<view class="container"> | |||
<view class="list-box"> | |||
<view class="list-item" v-for="(item,index) in listData" :key="index"> | |||
<view class="item-info"> | |||
<view class="name">合同地址</view> | |||
<view class="value u-line-1">惠新西街口11单元302</view> | |||
<image class="path" src="/static/path.png" mode="" /> | |||
</view> | |||
<view class="item-info"> | |||
<view class="name">租约期限</view> | |||
<view class="value">2022.05.19 - 2022.08</view> | |||
</view> | |||
<view class="item-info"> | |||
<view class="name">付款方式</view> | |||
<view class="value">月付</view> | |||
</view> | |||
<view class="item-info"> | |||
<view class="name">付款方式</view> | |||
<view class="value">月付</view> | |||
</view> | |||
<view class="item-info"> | |||
<view class="name">月租金</view> | |||
<view class="value">6001</view> | |||
</view> | |||
<view class="pay-info"> | |||
<view class="subitem" v-for="(subitem,i) in item.paylist" :key="i"> | |||
<view class="label">付款日期<view class="value">2022.09.20</view></view> | |||
<view class="label">付款金额<view class="value">房租6001</view></view> | |||
</view> | |||
</view> | |||
<view class="btn-box"> | |||
<view class="btn pass" @click="showmodal=true">通过</view> | |||
<view class="btn refuse">驳回</view> | |||
</view> | |||
</view> | |||
</view> | |||
<u-modal title="确认操作" @confirm="confirm" show-cancel-button confirm-color="#FF6D25" confirm-text="通过" :mask-close-able="true" v-model="showmodal" :title-style="titleStyle"> | |||
<view class="slot-content"> | |||
<view class="my-tip">您确认通过该审核吗?</view> | |||
<!-- <rich-text :nodes="content"></rich-text> --> | |||
</view> | |||
</u-modal> | |||
<u-toast ref="uToast" /> | |||
</view> | |||
</template> | |||
<script> | |||
export default { | |||
data() { | |||
return { | |||
showmodal: false, | |||
titleStyle: { | |||
fontSize: '32rpx', | |||
fontFamily: 'PingFangSC-Semibold, PingFang SC', | |||
fontWeight: 600, | |||
color: '#333333' | |||
}, | |||
listData: [{ | |||
address:'惠中北里 106号楼 24层', | |||
name:'张晨张', | |||
person: '张26D', | |||
time: '2021-12-22 18:00:40', | |||
account: '刘604A', | |||
oldprice: 145, | |||
newprice: 100, | |||
paylist: [{},{},{},{},{},{},{},{}], | |||
},{ | |||
address:'惠中北里惠中北里惠中北里 106号楼 24层', | |||
name:'张晨张张晨张张晨张张晨张张晨张张晨张', | |||
person: '张26D', | |||
time: '2021-12-22 18:00:40', | |||
account: '刘604A', | |||
oldprice: 145, | |||
newprice: 100, | |||
paylist: [{},{}], | |||
}] | |||
}; | |||
}, | |||
onLoad(options) { | |||
}, | |||
onShow() { | |||
}, | |||
methods: { | |||
showToast() { | |||
this.$refs.uToast.show({ | |||
title: '审核成功', | |||
icon: false, | |||
type:'success' | |||
// url: '/pages/user/index' | |||
}) | |||
}, | |||
confirm(){ | |||
this.showToast() | |||
} | |||
}, | |||
onLoad: function(options) { | |||
}, | |||
onHide: function() {}, | |||
}; | |||
</script> | |||
<style lang="scss" scoped> | |||
.container{ | |||
width: 750rpx; | |||
min-height: 100vh; | |||
background: #F8F8F8; | |||
padding-top: 20rpx; | |||
.list-box{ | |||
.list-item{ | |||
padding: 30rpx; | |||
background: #fff; | |||
font-size: 28rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
color: #333333; | |||
margin-bottom: 20rpx; | |||
.item-info{ | |||
display: flex; | |||
align-items: center; | |||
margin-bottom: 24rpx; | |||
font-size: 28rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
line-height: 40rpx; | |||
.name{ | |||
flex: 0 0 112rpx; | |||
color: #666666; | |||
margin-right: 58rpx; | |||
} | |||
.value{ | |||
flex: 1; | |||
color: #333; | |||
} | |||
.path{ | |||
flex: 0 0 14rpx; | |||
width: 14rpx; | |||
height: 30rpx; | |||
margin-left: 10rpx; | |||
} | |||
} | |||
.pay-info{ | |||
width: 690rpx; | |||
background: rgba(247, 248, 252, .7); | |||
border-radius: 8rpx; | |||
padding: 30rpx; | |||
margin-bottom: 24rpx; | |||
.subitem{ | |||
width: 100%; | |||
height: 40rpx; | |||
display: flex; | |||
justify-content: space-between; | |||
margin-bottom: 20rpx; | |||
&:last-child{ | |||
margin-bottom: 0; | |||
} | |||
.label{ | |||
height: 40rpx; | |||
font-size: 28rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
color: #666666; | |||
line-height: 40rpx; | |||
display: flex; | |||
align-items: center; | |||
.value{ | |||
color: #333333; | |||
margin-left: 10rpx; | |||
} | |||
} | |||
} | |||
} | |||
.btn-box{ | |||
display: flex; | |||
justify-content: flex-end; | |||
.btn{ | |||
width: 128rpx; | |||
height: 54rpx; | |||
line-height: 54rpx; | |||
text-align: center; | |||
font-size: 26rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
border-radius: 8rpx; | |||
} | |||
.pass{ | |||
background: #FF6D25; | |||
color: #fff; | |||
border: 1px solid #FF6D25; | |||
margin-right: 30rpx; | |||
} | |||
.refuse{ | |||
background: #FFFFFF; | |||
border: 1px solid #FF6D25; | |||
color: #FF6D25; | |||
} | |||
} | |||
} | |||
} | |||
.my-tip{ | |||
text-align: center; | |||
margin: 40rpx 0; | |||
color: #666 | |||
} | |||
} | |||
</style> |
@@ -100,7 +100,7 @@ | |||
<view class="input"> | |||
<u-input height="102" style="width:380rpx" disabled input-align="right" v-model="form.rentDate" @click="calendarShow = true" placeholder="请选择租约期限"></u-input> | |||
<image class="calendar" src="/static/kehu/calendar.png" mode="" @click="calendarShow = true" /> | |||
<u-calendar v-model="calendarShow" mode="range" max-date="2099-12-31" @change="changeDate"></u-calendar> | |||
<u-calendar v-model="calendarShow" mode="range" @change="changeDate"></u-calendar> | |||
</view> | |||
</view> | |||
<view class="item"> | |||
@@ -12,7 +12,7 @@ | |||
<view v-if="endDate">{{endDate}}</view> | |||
<view v-else class="desc">结束日期</view> | |||
</view> | |||
<u-calendar v-model="calendarShow" mode="date" @change="changeDate"></u-calendar> | |||
<u-calendar v-model="calendarShow" :min-date="mindate" :max-date="maxdate" mode="date" @change="changeDate"></u-calendar> | |||
</view> | |||
<view class="list-item" v-for="(item,index) in listData" :key="index"> | |||
<view class="top"> | |||
@@ -36,7 +36,7 @@ | |||
starDate: '', | |||
endDate: '', | |||
mindate: '', | |||
maxdate: '', | |||
maxdate: '2099-12-31', | |||
type: 0,// 默认是开始时间 | |||
calendarShow: false, | |||
listData: [{},{},{},{}] | |||
@@ -56,7 +56,7 @@ | |||
}else{ | |||
this.type = 1 | |||
this.mindate = this.starDate | |||
this.maxdate = '' | |||
this.maxdate = '2099-12-31' | |||
} | |||
this.calendarShow = true; | |||
}, | |||
@@ -0,0 +1,108 @@ | |||
<template> | |||
<view class="container"> | |||
<view class="form-box"> | |||
<view class="item"> | |||
<view class="label">账号</view> | |||
<view class="input"> | |||
<u-input :clearable="false" v-model="form.account" placeholder="请输入账号"></u-input> | |||
</view> | |||
</view> | |||
<view class="item"> | |||
<view class="label">原密码</view> | |||
<view class="input"> | |||
<u-input :clearable="false" maxlength="20" type="number" v-model="form.oldPassword" placeholder="请输入原密码"></u-input> | |||
</view> | |||
</view> | |||
<view class="item"> | |||
<view class="label">新密码</view> | |||
<view class="input"> | |||
<u-input :clearable="false" maxlength="20" type="text" v-model="form.newPassword" placeholder="请输入新密码"></u-input> | |||
</view> | |||
</view> | |||
<view class="item" style="border-bottom:0"> | |||
<view class="label">确认密码</view> | |||
<view class="input"> | |||
<u-input :clearable="false" maxlength="20" type="etxt" v-model="form.checkPassword" placeholder="请输入确认密码"></u-input> | |||
</view> | |||
</view> | |||
</view> | |||
<view class="submit-btn" @click="submit">完成</view> | |||
</view> | |||
</template> | |||
<script> | |||
export default { | |||
data() { | |||
return { | |||
form: { | |||
account: '', | |||
oldPassword: '', | |||
newPassword:'', | |||
checkPassword: '', | |||
} | |||
}; | |||
}, | |||
onLoad(options) { | |||
}, | |||
onShow() { | |||
}, | |||
methods: { | |||
submit() { | |||
}, | |||
}, | |||
onLoad: function(options) { | |||
}, | |||
onHide: function() {}, | |||
// 必须要在onReady生命周期,因为onLoad生命周期组件可能尚未创建完毕 | |||
onReady() { | |||
} | |||
}; | |||
</script> | |||
<style lang="scss" scoped> | |||
.container { | |||
width: 750rpx; | |||
min-height: 100vh; | |||
background: #F8F8F8; | |||
padding-top: 20rpx; | |||
.form-box{ | |||
background: #fff; | |||
padding: 0 30rpx; | |||
.item{ | |||
height: 88rpx; | |||
font-size: 28rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
line-height: 88rpx; | |||
color: #333333; | |||
border-bottom: 1px solid #e0e0e0; | |||
display: flex; | |||
align-items: center; | |||
.label{ | |||
width: 120rpx; | |||
margin-right: 88rpx; | |||
} | |||
.input{ | |||
display: flex; | |||
align-items: center; | |||
} | |||
} | |||
} | |||
.submit-btn{ | |||
width: 690rpx; | |||
height: 88rpx; | |||
line-height: 88rpx; | |||
text-align: center; | |||
background: #FF6D25; | |||
border-radius: 12rpx; | |||
margin: 160rpx 30rpx 0; | |||
font-size: 32rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
color: #FFFFFF; | |||
} | |||
} | |||
</style> |
@@ -1,23 +1,23 @@ | |||
<template> | |||
<view class="container"> | |||
<view class="top-tabs"> | |||
<view class="tab"> | |||
<view class="tab" @click="topage('apply_baojie')"> | |||
<image class="img" src="/static/myapply/apply.png" mode="" /> | |||
待房申请 | |||
</view> | |||
<view class="tab"> | |||
<view class="tab" @click="topage('apply_baojie')"> | |||
<image class="img" src="/static/myapply/clear.png" mode="" /> | |||
首次保洁 | |||
</view> | |||
<view class="tab"> | |||
<view class="tab" @click="topage('apply_baojie')"> | |||
<image class="img" src="/static/myapply/repair.png" mode="" /> | |||
首次维修 | |||
</view> | |||
<view class="tab"> | |||
<view class="tab" @click="topage('applyHistory')"> | |||
<image class="img" src="/static/myapply/history.png" mode="" /> | |||
申请历史 | |||
</view> | |||
<view class="tab"> | |||
<view class="tab" @click="topage('repairlist')"> | |||
<image class="img" src="/static/myapply/record.png" mode="" /> | |||
装修清单 | |||
</view> | |||
@@ -35,6 +35,11 @@ | |||
}, | |||
methods: { | |||
topage(page){ | |||
uni.navigateTo({ | |||
url: '/pages/my/'+page | |||
}) | |||
} | |||
}, | |||
@@ -17,7 +17,7 @@ | |||
<image class="img" src="/static/myTodo/clear.png" mode="" /> | |||
开荒保洁 | |||
</view> | |||
<view class="tab"> | |||
<view class="tab" @click="topage('changePrice_check')"> | |||
<image class="img" src="/static/myTodo/check.png" mode="" /> | |||
改价审核 | |||
</view> | |||
@@ -25,7 +25,7 @@ | |||
<image class="img" src="/static/myTodo/repairMan.png" mode="" /> | |||
维修员 | |||
</view> | |||
<view class="tab"> | |||
<view class="tab" @click="topage('contact_check')"> | |||
<image class="img" src="/static/myTodo/fitment.png" mode="" /> | |||
合同审核 | |||
</view> | |||
@@ -47,7 +47,11 @@ | |||
}, | |||
methods: { | |||
topage(page){ | |||
uni.navigateTo({ | |||
url: '/pages/my/'+page | |||
}) | |||
} | |||
}, | |||
onLoad: function(options) { | |||
@@ -0,0 +1,117 @@ | |||
<template> | |||
<view class="container"> | |||
<view class="search"> | |||
<u-search placeholder="房间号搜索" height="78" :show-action="false" v-model="keyword"></u-search> | |||
</view> | |||
<view class="list-box"> | |||
<view class="list-item" @click="selectItem(item)" v-for="(item,index) in listData" :key="index"> | |||
<view class="person-info"> | |||
<image class="icon" src="/static/kehu/person_gray.png" mode="" /> | |||
<view class="name u-line-1">{{item.name}}</view> | |||
</view> | |||
<view class="house u-line-1">{{item.address}}</view> | |||
<view class="right"> | |||
<view class="house u-line-1">{{item.person}}</view> | |||
<image class="path" src="/static/path.png" mode="" /> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
export default { | |||
data() { | |||
return { | |||
keyword: '', | |||
listData: [{ | |||
address:'惠中北里 106号楼 24层', | |||
name:'张晨张', | |||
person: '张26D' | |||
},{address:'惠中北里 106号楼 24层', | |||
name:'zhangzj',person: '张26D'}, | |||
{address:'惠中北里惠中北里惠中北里惠中北里惠中北里 106号楼 24层', | |||
name:'张晨',person: '张26D'}, | |||
{address:'惠中北里 106号楼 24层', | |||
name:'张晨',person: '张26D'}] | |||
}; | |||
}, | |||
onLoad(options) { | |||
}, | |||
onShow() { | |||
}, | |||
methods: { | |||
selectItem(item){ | |||
wx.setStorageSync('houseSource',item) | |||
// wx.navigateTo({ | |||
// url:'/pages/customer/addLedlook' | |||
// }) | |||
wx.navigateBack() | |||
} | |||
}, | |||
onLoad: function(options) { | |||
}, | |||
onHide: function() {}, | |||
}; | |||
</script> | |||
<style lang="scss" scoped> | |||
.container{ | |||
width: 750rpx; | |||
min-height: 100vh; | |||
background: #F8F8F8; | |||
.search{ | |||
width: 100%; | |||
height: 110rpx; | |||
padding:16rpx 30rpx; | |||
background: #fff; | |||
margin-bottom: 20rpx; | |||
} | |||
.list-box{ | |||
.list-item{ | |||
padding: 0 30rpx; | |||
height: 100rpx; | |||
line-height: 100rpx; | |||
background: #fff; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-size: 28rpx; | |||
font-weight: 400; | |||
color: #333333; | |||
display: flex; | |||
align-items: center; | |||
margin-bottom: 20rpx; | |||
.person-info{ | |||
display: flex; | |||
align-items: center; | |||
.icon{ | |||
width: 28rpx; | |||
height: 30rpx; | |||
margin-right: 12rpx; | |||
} | |||
.name{ | |||
width: 110rpx; | |||
} | |||
} | |||
.house{ | |||
flex:1; | |||
margin: 0 10rpx; | |||
} | |||
.right{ | |||
display: flex; | |||
align-items: center; | |||
.house{ | |||
max-width: 100rpx; | |||
} | |||
.path{ | |||
width: 14rpx; | |||
height: 30rpx; | |||
margin-left: 12rpx; | |||
} | |||
} | |||
} | |||
} | |||
} | |||
</style> |
@@ -0,0 +1,85 @@ | |||
<template> | |||
<view class="container"> | |||
<view class="info-box"> | |||
<view class="info"> | |||
<view class="label">公司名称:</view> | |||
<view class="value">方正宽带</view> | |||
</view> | |||
<view class="info"> | |||
<view class="label">用户名:</view> | |||
<view class="value">bjadmin</view> | |||
</view> | |||
<view class="info"> | |||
<view class="label">密码:</view> | |||
<view class="value">12345678</view> | |||
</view> | |||
<view class="info"> | |||
<view class="label">有效时间:</view> | |||
<view class="value">2022.05.19 - 2022.08</view> | |||
</view> | |||
<view class="info"> | |||
<view class="label">联系人:</view> | |||
<view class="value">test</view> | |||
</view> | |||
<view class="info"> | |||
<view class="label">电话:</view> | |||
<view class="value">18610029470</view> | |||
</view> | |||
<view class="info" style="margin-bottom:0"> | |||
<view class="label">备注:</view> | |||
<view class="value">test</view> | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
export default { | |||
data() { | |||
return { | |||
}; | |||
}, | |||
onLoad(options) { | |||
}, | |||
onShow() { | |||
}, | |||
methods: { | |||
}, | |||
onLoad: function(options) { | |||
}, | |||
onHide: function() {}, | |||
}; | |||
</script> | |||
<style lang="scss" scoped> | |||
.container{ | |||
width: 750rpx; | |||
min-height: 100vh; | |||
background: #F8F8F8; | |||
padding-top: 20rpx; | |||
.info-box{ | |||
background-color: #fff; | |||
padding: 30rpx; | |||
} | |||
.info{ | |||
display: flex; | |||
align-items: center; | |||
height: 40rpx; | |||
font-size: 28rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
color: #666666; | |||
margin-bottom: 24rpx; | |||
.label{ | |||
width: 140rpx; | |||
margin-right: 30rpx; | |||
} | |||
.value{ | |||
font-weight: 400; | |||
color: #333333; | |||
} | |||
} | |||
} | |||
</style> |
@@ -0,0 +1,202 @@ | |||
<template> | |||
<view class="container"> | |||
<view class="calendar"> | |||
<view class="date" @click="openCalendar(0)"> | |||
<view v-if="starDate">{{starDate}}</view> | |||
<view v-else class="desc">起始日期</view> | |||
</view> | |||
<view class="date" @click="openCalendar(1)"> | |||
<view v-if="endDate">{{endDate}}</view> | |||
<view v-else class="desc">结束日期</view> | |||
</view> | |||
<u-calendar v-model="calendarShow" :min-date="mindate" :max-date="maxdate" mode="date" @change="changeDate"></u-calendar> | |||
</view> | |||
<view class="report-tab"> | |||
<u-tabs :list="tabList" bar-width="60" bar-height="6" active-color="#FF6D25" inactive-color="#666666" font-size="30" :is-scroll="false" :current="current" @change="change"></u-tabs> | |||
</view> | |||
<view class="list-item" v-for="(item,index) in listData" :key="index"> | |||
<view class="top"> | |||
<view class="top-left"> | |||
<image class="icon" src="/static/kehu/person_gray.png" mode="" />{{item.name}} | |||
</view> | |||
<view class="tel">{{item.tel}}</view> | |||
</view> | |||
<view class="status-box"> | |||
<view class="left">维修项目费用:<view class="money">{{item.money||0}}元</view></view> | |||
<view class="btn success-btn" v-if="item.status==1">已审核</view> | |||
<view class="btn todo-btn" v-else>待审核</view> | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
export default { | |||
data() { | |||
return { | |||
type: 0,// 默认是开始时间 | |||
starDate: '', | |||
endDate: '', | |||
mindate: '', | |||
maxdate: '2099-12-31', | |||
calendarShow: false, | |||
current: 0, | |||
tabList: [{ | |||
name: '全部' | |||
}, { | |||
name: '已审核' | |||
}, { | |||
name: '待审核' | |||
}], | |||
listData: [{ | |||
name:'测试一下:测试一',money: 180, | |||
status: 0,tel:'17552999012' | |||
},{name:'测试一下:测试一',money: 180, | |||
status: 1,tel:'17552999012'}, | |||
{name:'张晨',money: 180, | |||
status: 1,tel:'17552999012'}, | |||
{name:'张晨',money: 180, | |||
status: 0,tel:'17552999012'}] | |||
}; | |||
}, | |||
onLoad(options) { | |||
}, | |||
onShow() { | |||
}, | |||
methods: { | |||
change(index){ | |||
this.current = index | |||
}, | |||
openCalendar(type){ | |||
if(type==0){ | |||
this.type = 0 | |||
this.mindate = '' | |||
this.maxdate = this.endDate | |||
}else{ | |||
this.type = 1 | |||
this.mindate = this.starDate | |||
this.maxdate = '2099-12-31' | |||
} | |||
this.calendarShow = true; | |||
}, | |||
changeDate(e){ | |||
// console.log(e) | |||
if(this.type==0){ | |||
this.starDate = e.result | |||
}else{ | |||
this.endDate = e.result | |||
} | |||
} | |||
}, | |||
onLoad: function(options) { | |||
}, | |||
onHide: function() {}, | |||
}; | |||
</script> | |||
<style lang="scss" scoped> | |||
.container{ | |||
width: 750rpx; | |||
min-height: 100vh; | |||
background: #F8F8F8; | |||
padding-top: 20rpx; | |||
.calendar{ | |||
width: 750rpx; | |||
height: 92rpx; | |||
background: #FFFFFF; | |||
margin-bottom: 20rpx; | |||
display: flex; | |||
align-items: center; | |||
justify-content: space-around; | |||
font-size: 26rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
padding: 0 40rpx; | |||
.date{ | |||
flex:1; | |||
color: #333333; | |||
position: relative; | |||
text-align: center; | |||
&::after{ | |||
position: absolute; | |||
content: ""; | |||
top: 16rpx; | |||
right: 60rpx; | |||
border-color: #FF6D25; | |||
border: 8rpx solid transparent; | |||
border-top: 8rpx solid #FF6D25; | |||
} | |||
.desc{ | |||
color: #999999; | |||
} | |||
} | |||
} | |||
.report-tab{ | |||
border-bottom: 1px solid rgba(224,224,224,0.5); | |||
} | |||
.list-item{ | |||
height: 168rpx; | |||
background: #fff; | |||
margin-bottom: 20rpx; | |||
padding: 30rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
.top{ | |||
display: flex; | |||
justify-content: space-between; | |||
align-items: center; | |||
.top-left{ | |||
display: flex; | |||
align-items: center; | |||
font-size: 30rpx; | |||
font-weight: 400; | |||
color: #333333; | |||
.icon{ | |||
width: 28rpx; | |||
height: 30rpx; | |||
margin-right: 12rpx; | |||
} | |||
} | |||
.time{ | |||
height: 42rpx; | |||
font-size: 30rpx; | |||
font-weight: 400; | |||
color: #333; | |||
line-height: 42rpx; | |||
} | |||
} | |||
.status-box{ | |||
height: 96rpx; | |||
display: flex; | |||
align-items: center; | |||
justify-content: space-between; | |||
.left{ | |||
height: 42rpx; | |||
font-size: 30rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
color: #333333; | |||
line-height: 42rpx; | |||
display: flex; | |||
align-items: center; | |||
.money{ | |||
font-weight: 600; | |||
} | |||
} | |||
.btn{ | |||
width: 100rpx; | |||
height: 42rpx; | |||
font-size: 30rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
} | |||
.success-btn{ | |||
color: #07B79D; | |||
} | |||
.todo-btn{ | |||
color: #FEA017; | |||
} | |||
} | |||
} | |||
} | |||
</style> |
@@ -1,25 +1,497 @@ | |||
<template> | |||
<view class="container"> | |||
居间出租 | |||
</view> | |||
<view id="app" :class="{ done: done }"> | |||
<view> | |||
<h1>{{ title }}</h1> | |||
<button @click="random"> | |||
动起来 | |||
</button> | |||
</view> | |||
<view class="wrapper flex-all-center" ref="wrapperRef"> | |||
<view | |||
class="container" | |||
:style="{ width: containerW + 'px', height: containerH + 'px' }" | |||
> | |||
<view | |||
class="item flex-all-center" | |||
v-for="item in showList" | |||
:key="item.count" | |||
:style="{ | |||
left: item.left + 'px', | |||
top: item.top + 'px', | |||
height: item.height + 'px', | |||
width: item.width + 'px', | |||
background: item.color, | |||
}" | |||
> | |||
<view class="content"> | |||
<view class="title">{{ item.title }}</view> | |||
<view class="count">{{ item.count }}</view> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
export default { | |||
data() { | |||
return {}; | |||
}, | |||
onLoad(options) { | |||
}, | |||
onShow() { | |||
}, | |||
methods: {}, | |||
onLoad: function(options) { | |||
}, | |||
onHide: function() {}, | |||
}; | |||
export default { | |||
data() { | |||
return { | |||
containerW: 0, | |||
containerH: 0, | |||
done: false, | |||
title: "泡泡堂", | |||
list: [], | |||
showList: [], | |||
groups: [], | |||
colors: [ | |||
"red", | |||
"green", | |||
"purple", | |||
"pink", | |||
"orange", | |||
"yellowgreen", | |||
"greenyellow", | |||
], | |||
layout: [ | |||
{ | |||
type: "group", | |||
name: "group1", | |||
direction: "horizontal", //左右 | |||
height: "30%", | |||
width: "100%", | |||
children: [ | |||
{ | |||
type: "group", | |||
name: "group2", | |||
direction: "portrait", //上下 | |||
width: "40%", | |||
height: "100%", | |||
children: [ | |||
{ | |||
type: "node", | |||
index: 2, | |||
}, | |||
{ | |||
type: "node", | |||
index: 3, | |||
}, | |||
], | |||
}, | |||
{ | |||
type: "group", | |||
name: "group3", | |||
direction: "portrait", // 上下 | |||
width: "60%", | |||
height: "100%", | |||
children: [ | |||
{ | |||
type: "group", | |||
name: "group4", | |||
width: "100%", | |||
height: "80%", | |||
direction: "horizontal", | |||
children: [ | |||
{ | |||
type: "node", | |||
index: 1, | |||
}, | |||
{ | |||
type: "node", | |||
index: 0, | |||
}, | |||
], | |||
}, | |||
{ | |||
type: "group", | |||
name: "group5", | |||
direction: "portrait", // 上下 | |||
width: "100%", | |||
height: "20%", | |||
children: [ | |||
{ | |||
type: "node", | |||
index: 4, | |||
}, | |||
], | |||
}, | |||
], | |||
}, | |||
], | |||
}, | |||
{ | |||
type: "group", | |||
name: "group6", | |||
direction: "horizontal", //左右 | |||
height: "30%", | |||
width: "100%", | |||
children: [ | |||
{ | |||
type: "group", | |||
name: "group7", | |||
width: "50%", | |||
height: "100%", | |||
direction: "portrait", | |||
children: [ | |||
{ | |||
type: "node", | |||
index: 5, | |||
}, | |||
{ | |||
type: "node", | |||
index: 7, | |||
}, | |||
], | |||
}, | |||
{ | |||
type: "group", | |||
name: "group8", | |||
width: "50%", | |||
height: "100%", | |||
direction: "horizontal", | |||
children: [ | |||
{ | |||
type: "node", | |||
index: 8, | |||
}, | |||
{ | |||
type: "node", | |||
index: 6, | |||
}, | |||
], | |||
}, | |||
], | |||
}, | |||
{ | |||
type: "group", | |||
name: "group9", | |||
width: "100%", | |||
height: "40%", | |||
direction: "horizontal", | |||
children: [ | |||
{ | |||
type: "group", | |||
name: "group9", | |||
width: "30%", | |||
height: "100%", | |||
direction: "portrait", | |||
children: [ | |||
{ | |||
type: "node", | |||
index: 9, | |||
}, | |||
{ | |||
type: "node", | |||
index: 11, | |||
}, | |||
{ | |||
type: "node", | |||
index: 10, | |||
}, | |||
], | |||
}, | |||
{ | |||
type: "group", | |||
name: "group9", | |||
width: "70%", | |||
height: "100%", | |||
direction: "portrait", | |||
children: [ | |||
{ | |||
type: "group", | |||
name: "group10", | |||
width: "100%", | |||
height: "30%", | |||
direction: "horizontal", | |||
children: [ | |||
{ | |||
type: "node", | |||
index: 12, | |||
}, | |||
{ | |||
type: "node", | |||
index: 16, | |||
}, | |||
], | |||
}, | |||
{ | |||
type: "group", | |||
name: "group11", | |||
width: "100%", | |||
height: "70%", | |||
direction: "horizontal", | |||
children: [ | |||
{ | |||
type: "group", | |||
name: "group11", | |||
width: "50%", | |||
height: "100%", | |||
direction: "horizontal", | |||
children: [ | |||
{ | |||
type: "node", | |||
index: 17, | |||
}, | |||
], | |||
}, | |||
{ | |||
type: "group", | |||
name: "group11", | |||
width: "50%", | |||
height: "100%", | |||
direction: "portrait", | |||
children: [ | |||
{ | |||
type: "node", | |||
index: 13, | |||
}, | |||
{ | |||
type: "node", | |||
index: 14, | |||
}, | |||
{ | |||
type: "node", | |||
index: 15, | |||
}, | |||
], | |||
}, | |||
], | |||
}, | |||
], | |||
}, | |||
], | |||
}, | |||
], | |||
}; | |||
}, | |||
onShow() {}, | |||
mounted() { | |||
this.$nextTick(() => { | |||
console.log(this.$refs.wrapperRef); | |||
// this.containerW = this.$refs.wrapperRef.clientWidth; | |||
this.containerW = 230; | |||
// this.containerH = '1380rpx' | |||
this.containerH = this.containerW * 2; | |||
console.log(this.containerW, this.containerH); | |||
this.initList(); | |||
this.initPosition(); | |||
}); | |||
}, | |||
methods: { | |||
percentToPx(cur, compared) { | |||
if (typeof cur !== "string" || !cur.includes("%")) return cur; | |||
return (compared * parseFloat(cur)) / 100; | |||
}, | |||
getRandom(min = 1, max = 10000) { | |||
return Math.floor(Math.random() * (max - min) + min); | |||
}, | |||
initList() { | |||
this.list = []; | |||
for (let i = 0; i < 18; i++) { | |||
let item = {} | |||
item = Object.create(null); | |||
item.title = `标题${i}`; | |||
item.color = this.colors[this.getRandom(0, this.colors.length - 1)]; | |||
item.no = i; | |||
item.count = this.getRandom(); | |||
item.width = this.containerW / 3; | |||
item.height = this.containerW / 3; | |||
this.list.push(item); | |||
} | |||
}, | |||
initPosition() { | |||
this.showList = this.list.map((item, index) => { | |||
return { | |||
left: ((index % 3) * this.containerW) / 3, | |||
top: (Math.floor(index / 3) * this.containerW) / 3, | |||
...item, | |||
}; | |||
}); | |||
}, | |||
random() { | |||
const parent = { | |||
left: 0, | |||
top: 0, | |||
name: "group0", | |||
width: this.percentToPx("100%", this.containerW), | |||
height: this.percentToPx("100%", this.containerH), | |||
direction: "portrait", | |||
childrenLength: this.layout.length, | |||
}; | |||
this.groups = [parent]; | |||
this.getPosition(this.layout, parent); | |||
this.showList = this.list; | |||
this.done = true; | |||
}, | |||
getPosition(layout, parent) { | |||
// 纵向的,只需要计算高度,如果只有一个元素,则高度100% | |||
// 横向的,只需要计算宽度,如果只有一个元素,则宽度100% | |||
// 如果type为node,则表明是最小单位了,则需要根据index获得数量,然后往上一层和同级别的组进行比较得出宽(横向)高(纵向) | |||
// 但是所有的宽高都计算完之后,还是百分比的,如何计算具体位置呢 | |||
const list = this.list; | |||
layout.forEach((item, index) => { | |||
if (item.type === "group") { | |||
const current = { | |||
left: 0, | |||
top: 0, | |||
name: item.name, | |||
width: this.percentToPx(item.width, parent.width), | |||
height: this.percentToPx(item.height, parent.height), | |||
direction: item.direction, | |||
childrenLength: item.children.length, | |||
}; | |||
const preItem = index === 0 ? null : layout[index - 1]; | |||
// 组 | |||
// 横纵向分布都按照设置来 | |||
if (parent.direction === "horizontal") { | |||
current.left = | |||
index === 0 | |||
? parent.left | |||
: preItem.left + this.percentToPx(preItem.width, parent.width); | |||
current.top = parent.top; | |||
} else { | |||
current.left = parent.left; | |||
current.top = | |||
index === 0 | |||
? parent.top | |||
: preItem.top + this.percentToPx(preItem.height, parent.height); | |||
} | |||
item.left = current.left; | |||
item.top = current.top; | |||
this.groups.push(current); | |||
item.nodeTotal = 0; | |||
if (item.children && item.children.length > 0) { | |||
if (item.children[0].type === "node") { | |||
item.children.forEach((v) => { | |||
item.nodeTotal += list[v.index].count; | |||
}); | |||
} | |||
current.nodeTotal = item.nodeTotal; | |||
this.getPosition(item.children, current); | |||
} | |||
} else { | |||
const listItem = list[item.index]; | |||
const preItem = index === 0 ? null : list[layout[index - 1].index]; | |||
if (parent.direction === "horizontal") { | |||
// 节点横向排布,计算宽度 | |||
listItem.left = | |||
index === 0 | |||
? parent.left | |||
: preItem.left + this.percentToPx(preItem.width, parent.width); // TODO: 需要计算上一个元素的left + width: ; | |||
listItem.top = parent.top; | |||
listItem.width = this.percentToPx( | |||
(listItem.count / parent.nodeTotal) * 100 + "%", | |||
parent.width | |||
); | |||
listItem.height = this.percentToPx("100%", parent.height); | |||
} else if (parent.direction === "portrait") { | |||
// 节点横向排布,计算宽度 | |||
listItem.left = parent.left; | |||
listItem.top = | |||
index === 0 | |||
? parent.top | |||
: preItem.top + this.percentToPx(preItem.height, parent.height); // TODO: 需要计算上一个元素的left + width: ; | |||
listItem.width = this.percentToPx("100%", parent.width); | |||
listItem.height = this.percentToPx( | |||
(listItem.count / parent.nodeTotal) * 100 + "%", | |||
parent.height | |||
); | |||
} | |||
listItem.name = `node${item.index}`; | |||
} | |||
}); | |||
}, | |||
}, | |||
onLoad() {}, | |||
onHide() {}, | |||
}; | |||
</script> | |||
<style lang="scss" scoped> | |||
* { | |||
margin: 0; | |||
padding: 0; | |||
} | |||
.wrapper { | |||
margin: 0 auto; | |||
width: 90%; | |||
} | |||
.container { | |||
position: relative; | |||
} | |||
.item { | |||
position: absolute; | |||
top: 0; | |||
left: 0; | |||
transform: scale(0.8); | |||
transform-origin: center; | |||
border-radius: 16px; | |||
text-align: center; | |||
transition: 400ms linear; | |||
border: 1px solid pink; | |||
background-color: yellow; | |||
box-sizing: border-box; | |||
} | |||
.group-item { | |||
position: absolute; | |||
border-radius: 8px; | |||
text-align: center; | |||
border: 1px solid pink; | |||
background-color: rgba(0, 128, 0, 0.4); | |||
box-sizing: border-box; | |||
font-size: 20px; | |||
} | |||
.item .content { | |||
position: absolute; | |||
bottom: 4px; | |||
width: 100%; | |||
display: flex; | |||
justify-content: space-between; | |||
align-items: flex-end; | |||
text-align: bottom; | |||
} | |||
.item .title, | |||
.item .count { | |||
font-weight: bold; | |||
line-height: 1em; | |||
} | |||
.item .title { | |||
font-size: 16px; | |||
flex: 1; | |||
text-align: left; | |||
} | |||
.item .count { | |||
font-size: 12px; | |||
padding-right: 12px; | |||
text-align: right; | |||
} | |||
.item .count::before { | |||
content: "票"; | |||
position: absolute; | |||
font-size: 12px; | |||
transform: scale(0.8); | |||
transform-origin: center 80%; | |||
color: #666; | |||
right: 0; | |||
bottom: 0; | |||
} | |||
.done .item { | |||
transform: scale(1); | |||
} | |||
.flex-all-center { | |||
display: flex; | |||
justify-content: center; | |||
align-items: center; | |||
} | |||
</style> |
@@ -18,14 +18,14 @@ | |||
我的待办 | |||
</view> | |||
</view> | |||
<open-data type="groupName" open-gid="tGspFe44Y83pmo9BfOxzXlFmR1r50"></open-data> | |||
<view class="gonggao"> | |||
<view class="left"> | |||
<view class="title">公告</view> | |||
<view class="dot"></view> | |||
</view> | |||
<view class="right"> | |||
<!-- 关于人才招聘及新员工试用期管理实施... --> | |||
<u-notice-bar type="none" padding="18rpx 0" font-size="28" color="#303030" mode="vertical" :volume-icon="false" :more-icon="false" :list="list"></u-notice-bar> | |||
<u-notice-bar type="none" padding="18rpx 0" font-size="28" color="#303030" mode="vertical" :volume-icon="false" :more-icon="false" :list="list"></u-notice-bar> | |||
</view> | |||
<image class="more-icon" src="/static/index/right-arrow.png" mode="" /> | |||
</view> | |||
@@ -1,172 +1,209 @@ | |||
<template> | |||
<view class="container"> | |||
<view class="bg1"></view> | |||
<view class="bg2"></view> | |||
<image class="logo" src="/static/logo.png" mode="" /> | |||
<view class="form"> | |||
<view class="input-box"> | |||
<u-input v-model="account" placeholder="请输入您的账号" height="102" type="text" :border="false" /> | |||
</view> | |||
<view class="input-box"> | |||
<u-input v-model="code" :clearable="false" placeholder="请输入验证码" height="102" type="text" :border="false" /> | |||
<view class="code-btn" @click="getCode">{{text}}</view> | |||
</view> | |||
<view class="input-box"> | |||
<u-input v-model="password" :password-icon="false" placeholder="请输入密码" height="102" type="password" :border="false" /> | |||
</view> | |||
</view> | |||
<view class="tip">注册/登录即代表同意<view class="protocal"> | |||
《隐私政策》</view>及<view class="protocal">《服务》</view></view> | |||
<view class="login-btn" @click="login">登录</view> | |||
</view> | |||
<view class="container"> | |||
<view class="bg1"></view> | |||
<view class="bg2"></view> | |||
<image class="logo" src="/static/logo.png" mode="" /> | |||
<view class="form"> | |||
<view class="input-box"> | |||
<u-input | |||
v-model="account" | |||
:clearable="false" | |||
placeholder="请输入您的账号" | |||
height="102" | |||
type="text" | |||
:border="false" | |||
/> | |||
</view> | |||
<view class="input-box"> | |||
<u-input | |||
v-model="code" | |||
:clearable="false" | |||
placeholder="请输入验证码" | |||
height="102" | |||
type="text" | |||
:border="false" | |||
/> | |||
<view class="code-btn" @click="getCode">{{ text }}</view> | |||
</view> | |||
<view class="input-box"> | |||
<u-input | |||
v-model="password" | |||
:clearable="false" | |||
:password-icon="false" | |||
placeholder="请输入密码" | |||
height="102" | |||
type="password" | |||
:border="false" | |||
/> | |||
</view> | |||
</view> | |||
<view class="tip" | |||
>注册/登录即代表同意<view class="protocal"> 《隐私政策》</view>及<view | |||
class="protocal" | |||
>《服务》</view | |||
></view | |||
> | |||
<view class="login-btn" @click="login">登录</view> | |||
</view> | |||
</template> | |||
<script> | |||
export default { | |||
data() { | |||
return { | |||
account: 'zhangzj',// | |||
code: '112233', | |||
password: '123456', | |||
text: '获取验证码', | |||
timer: null, | |||
isfinished: true, | |||
}; | |||
}, | |||
onLoad(options) { | |||
// wx.showShareMenu({ | |||
// withShareTicket: true | |||
// }) | |||
// wx.hideShareMenu({ | |||
export default { | |||
data() { | |||
return { | |||
account: "zhangzj", // | |||
code: "112233", | |||
password: "123456", | |||
text: "获取验证码", | |||
timer: null, | |||
isfinished: true, | |||
}; | |||
}, | |||
onLoad(options) { | |||
// wx.showShareMenu({ | |||
// withShareTicket: true | |||
// }) | |||
// wx.hideShareMenu({ | |||
// }) | |||
}, | |||
onShow() {}, | |||
computed: {}, | |||
methods: { | |||
getCode() { | |||
let that = this; | |||
if(!that.isfinished) return; | |||
that.getsendCode(); | |||
let seconds = 120; | |||
that.timer = setInterval(function() { | |||
that.isfinished = false; | |||
that.text = seconds + "s后重新发送"; | |||
seconds--; | |||
if (seconds <= 0) { | |||
that.isfinished = true; | |||
clearInterval(that.timer); | |||
that.text = "获取验证码"; | |||
} | |||
}, 1000); | |||
}, | |||
getsendCode() { | |||
// type 1:登录短信 2:定金合同短信 3:成交合同短信 | |||
this.$u.api.sendUser({body:{user:this.account}}).then((res)=>{ | |||
console.log(res) | |||
}) | |||
}, | |||
login() { | |||
if (this.account == "") return; | |||
if (this.password == "") return; | |||
let params = { | |||
body:{ | |||
account: this.account, | |||
password: this.password | |||
} | |||
}; | |||
this.$u.api.login(params).then((res) => { | |||
console.log(res) | |||
if(res.ErrNo=='0000'){ | |||
uni.setStorageSync('token',res.result.SESSIONID) | |||
this.$u.vuex("vuex_token",res.result.SESSIONID); | |||
uni.switchTab({ | |||
url: '/pages/tabs/index' | |||
}) | |||
} | |||
}); | |||
}, | |||
}, | |||
// onShareAppMessage(){ | |||
// }) | |||
}, | |||
onShow() { | |||
}, | |||
computed:{ | |||
}, | |||
methods: { | |||
getCode(){ | |||
let that = this | |||
if(!that.isfinished) return ; | |||
let seconds = 120 | |||
that.timer = setInterval(function(){ | |||
that.isfinished = false | |||
that.text = seconds +'s后重新发送' | |||
seconds--; | |||
if(seconds<=0){ | |||
that.isfinished = true | |||
clearInterval(that.timer); | |||
that.text = '获取验证码' | |||
} | |||
},1000) | |||
}, | |||
login(){ | |||
if(this.account=='') return ; | |||
if(this.password=='') return ; | |||
let params={ | |||
account:this.account, | |||
password: this.password | |||
} | |||
this.$u.api.login(params).then((res)=>{ | |||
// uni.switchTab({ | |||
// url: '/pages/tabs/index' | |||
// }) | |||
}) | |||
// }, | |||
} | |||
}, | |||
// onShareAppMessage(){ | |||
// }, | |||
onLoad: function(options) { | |||
}, | |||
onHide: function() {clearInterval(this.timer);}, | |||
destroyed(){ | |||
clearInterval(this.timer); | |||
} | |||
}; | |||
onLoad: function(options) {}, | |||
onHide: function() { | |||
clearInterval(this.timer); | |||
}, | |||
destroyed() { | |||
clearInterval(this.timer); | |||
}, | |||
}; | |||
</script> | |||
<style lang="scss" scoped> | |||
.container{ | |||
width: 750rpx; | |||
height: 100vh; | |||
.bg1{ | |||
width: 319rpx; | |||
height: 548rpx; | |||
position: fixed; | |||
top: 0; | |||
left: 0; | |||
background: url('https://static.quhouse.com/87fb6d8e9b37462e832c782ec5f73452.png') no-repeat; | |||
background-size: 319rpx 548rpx; | |||
z-index: -1; | |||
} | |||
.bg2{ | |||
width: 542rpx; | |||
height: 562rpx; | |||
position: fixed; | |||
right: 0; | |||
bottom: 0; | |||
background: url('https://static.quhouse.com/1677e9e68a5242c3b10b6a08ea848a4b.png') no-repeat; | |||
background-size: 542rpx 562rpx; | |||
z-index: -1; | |||
} | |||
.container { | |||
width: 750rpx; | |||
height: 100vh; | |||
.bg1 { | |||
width: 319rpx; | |||
height: 548rpx; | |||
position: fixed; | |||
top: 0; | |||
left: 0; | |||
background: url("https://static.quhouse.com/87fb6d8e9b37462e832c782ec5f73452.png") | |||
no-repeat; | |||
background-size: 319rpx 548rpx; | |||
z-index: -1; | |||
} | |||
.bg2 { | |||
width: 542rpx; | |||
height: 562rpx; | |||
position: fixed; | |||
right: 0; | |||
bottom: 0; | |||
background: url("https://static.quhouse.com/1677e9e68a5242c3b10b6a08ea848a4b.png") | |||
no-repeat; | |||
background-size: 542rpx 562rpx; | |||
z-index: -1; | |||
} | |||
.logo{ | |||
width: 360rpx; | |||
height: 102rpx; | |||
margin: 260rpx 195rpx 130rpx; | |||
} | |||
.form{ | |||
padding: 0 75rpx; | |||
.input-box{ | |||
width: 100%; | |||
padding: 0 20rpx; | |||
height: 102rpx; | |||
line-height: 102rpx; | |||
border-bottom: 1px solid #e0e0e0; | |||
display: flex; | |||
align-items: center; | |||
justify-content: space-between; | |||
.code-btn{ | |||
font-size: 30rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
color: #303030; | |||
} | |||
} | |||
} | |||
.tip{ | |||
margin: 30rpx 75rpx 120rpx; | |||
display: flex; | |||
align-items: center; | |||
height: 37rpx; | |||
font-size: 26rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
color: #666; | |||
line-height: 37rpx; | |||
.protocal{ | |||
color: #333; | |||
} | |||
} | |||
.login-btn{ | |||
margin-left: 75rpx; | |||
width: 600rpx; | |||
height: 98rpx; | |||
line-height: 98rpx; | |||
background: linear-gradient(135deg, #F9B017 0%, #FF6D25 100%); | |||
box-shadow: 0px 2rpx 12rpx 0px rgba(255,109,37,0.5); | |||
border-radius: 49rpx; | |||
font-size: 32rpx; | |||
font-family: PingFangSC-Semibold, PingFang SC; | |||
font-weight: 600; | |||
color: #FFFFFF; | |||
text-align: center; | |||
} | |||
.logo { | |||
width: 360rpx; | |||
height: 102rpx; | |||
margin: 260rpx 195rpx 130rpx; | |||
} | |||
.form { | |||
padding: 0 75rpx; | |||
.input-box { | |||
width: 100%; | |||
padding: 0 20rpx; | |||
height: 102rpx; | |||
line-height: 102rpx; | |||
border-bottom: 1px solid #e0e0e0; | |||
display: flex; | |||
align-items: center; | |||
justify-content: space-between; | |||
.code-btn { | |||
font-size: 30rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
color: #303030; | |||
} | |||
} | |||
} | |||
.tip { | |||
margin: 30rpx 75rpx 120rpx; | |||
display: flex; | |||
align-items: center; | |||
height: 37rpx; | |||
font-size: 26rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
color: #666; | |||
line-height: 37rpx; | |||
.protocal { | |||
color: #333; | |||
} | |||
} | |||
.login-btn { | |||
margin-left: 75rpx; | |||
width: 600rpx; | |||
height: 98rpx; | |||
line-height: 98rpx; | |||
background: linear-gradient(135deg, #f9b017 0%, #ff6d25 100%); | |||
box-shadow: 0px 2rpx 12rpx 0px rgba(255, 109, 37, 0.5); | |||
border-radius: 49rpx; | |||
font-size: 32rpx; | |||
font-family: PingFangSC-Semibold, PingFang SC; | |||
font-weight: 600; | |||
color: #ffffff; | |||
text-align: center; | |||
} | |||
} | |||
</style> |
@@ -43,14 +43,14 @@ | |||
400-8113936<image class="arrow" src="/static/my/arrow.png" mode="" /> | |||
</view> | |||
</view> | |||
<view class="menu-item"> | |||
<view class="menu-item" @click="topage('my/networkquery')"> | |||
<view style="display:flex;"> | |||
<image class="icon" src="/static/my/net.png" mode="" /> | |||
网络查询 | |||
</view> | |||
<image class="arrow" src="/static/my/arrow.png" mode="" /> | |||
</view> | |||
<view class="menu-item"> | |||
<view class="menu-item" @click="topage('my/modifyPassword')"> | |||
<view style="display:flex;"> | |||
<image class="icon" src="/static/my/lock.png" mode="" /> | |||
修改密码 | |||