第一次
63
App.vue
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
onLaunch: function() {},
|
||||||
|
onShow: function() {},
|
||||||
|
onHide: function() {}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
/*每个页面公共css */
|
||||||
|
@import "uview-ui/index.scss";
|
||||||
|
|
||||||
|
.app {
|
||||||
|
background-color: #F4F5F7;
|
||||||
|
width: 100%;
|
||||||
|
height: 100vh;
|
||||||
|
// position: relative;
|
||||||
|
color: #000000;
|
||||||
|
padding: 30rpx 0 200rpx 0;
|
||||||
|
|
||||||
|
.cards {
|
||||||
|
width: 94%;
|
||||||
|
box-shadow: 0px 0px 30rpx 0px rgba(108, 99, 255, 0.16);
|
||||||
|
background-color: #fff;
|
||||||
|
position: absolute;
|
||||||
|
top: 3%;
|
||||||
|
left: 3%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-evenly;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
padding: 40rpx 0 200rpx 0;
|
||||||
|
border-radius: 25rpx;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
width: 43%;
|
||||||
|
height: 300rpx;
|
||||||
|
margin-bottom: 40rpx;
|
||||||
|
border-radius: 25rpx;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
width: 70%;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 46rpx;
|
||||||
|
color: #FCFCFC;
|
||||||
|
position: absolute;
|
||||||
|
top: 58%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 100rpx;
|
||||||
|
height: 100rpx;
|
||||||
|
position: absolute;
|
||||||
|
top: 20%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
24
api/Modifyinformation/Modifyinformation.js
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
import request from "../request.js"
|
||||||
|
|
||||||
|
export function userPassWord(data) {
|
||||||
|
return request({
|
||||||
|
url: `/nurseApp/PersonLogin/userPassWord`,
|
||||||
|
method: 'POST',
|
||||||
|
data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
export function updateHeadAvatarHead(userId,File) {
|
||||||
|
return request({
|
||||||
|
url: `/nurseApp/PersonLogin/updateHeadAvatarHead?userId=${userId}&File=${File}`,
|
||||||
|
method: 'POST',
|
||||||
|
data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
export function nursePerson(phonenumber,password) {
|
||||||
|
return request({
|
||||||
|
url: `/nurseApp/PersonLogin/nursePerson?phonenumber=${phonenumber}&password=${password}`,
|
||||||
|
method: 'GET'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
10
api/Mymission.js
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
import request from "./request.js"
|
||||||
|
|
||||||
|
|
||||||
|
export function selectMission(nursePersonId,orderStatus,pageNum,pageSize) {
|
||||||
|
return request({
|
||||||
|
url: `/nurseApp/personLogin/selectMission?nursePersonId=${nursePersonId}&orderStatus=${orderStatus}&pageNum=${pageNum}&pageSize=${pageSize}`,
|
||||||
|
method: 'GET'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
4
api/baseurl.js
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
var baseurl = "http://192.168.16.30:8081";
|
||||||
|
// var baseurl = "http://192.168.16.48:8081";
|
||||||
|
// var baseurl = "http://192.168.16.76:8080";
|
||||||
|
export default baseurl
|
||||||
9
api/forgotPassword/forgotPassword.js
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import request from "../request.js"
|
||||||
|
|
||||||
|
export function updatePassword(phonenumber, password,) {
|
||||||
|
return request({
|
||||||
|
url: `/nurseApp/PersonLogin/updatePassword?phonenumber=${phonenumber}&password=${password}`,
|
||||||
|
method: 'POST'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
9
api/login/index.js
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import request from "../request.js"
|
||||||
|
|
||||||
|
//密码
|
||||||
|
export function appLogin(phonenumber, password) {
|
||||||
|
return request({
|
||||||
|
url: `/nurseApp/PersonLogin/appLogin?phonenumber=${phonenumber}&password=${password}`,
|
||||||
|
method: 'POST'
|
||||||
|
})
|
||||||
|
}
|
||||||
7
api/personnal/personal.js
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import request from "../request.js"
|
||||||
|
export function nursePerson(phonenumber,password) {
|
||||||
|
return request({
|
||||||
|
url: `/nurseApp/PersonLogin/nursePerson?phonenumber=${phonenumber}&password=${password}`,
|
||||||
|
method: 'GET'
|
||||||
|
})
|
||||||
|
}
|
||||||
16
api/register/index.js
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import request from "../request.js"
|
||||||
|
|
||||||
|
export function nurseAppLoginSysUser(data) {
|
||||||
|
return request({
|
||||||
|
url: `/nurseApp/PersonLogin/nurseAppLoginSysUser`,
|
||||||
|
method: 'POST',
|
||||||
|
data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function personNurseStationLists(pageNum,pageSize) {
|
||||||
|
return request({
|
||||||
|
url: `/nurseApp/PersonLogin/personNurseStationLists?pageNum=${pageNum}&pageSize=${pageSize}`,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
49
api/request.js
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
import baseurl from './baseurl.js'
|
||||||
|
|
||||||
|
var request = function(config) {
|
||||||
|
return new Promise((resolve, rejected) => {
|
||||||
|
uni.showLoading({
|
||||||
|
title: ''
|
||||||
|
});
|
||||||
|
uni.request({
|
||||||
|
url: baseurl + config.url,
|
||||||
|
data: config.data,
|
||||||
|
method: config.method,
|
||||||
|
timeout: 10000,
|
||||||
|
// header: {
|
||||||
|
// token: uni.getStorageSync('token')
|
||||||
|
// },
|
||||||
|
success(res) {
|
||||||
|
// if (res.data.code == 20002) {
|
||||||
|
// uni.showModal({
|
||||||
|
// title: "登录提示",
|
||||||
|
// content: res.data.message,
|
||||||
|
// success(res1) {
|
||||||
|
// if (res1.confirm) {
|
||||||
|
// uni.navigateTo({
|
||||||
|
// url: '/pages/user/login/login'
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// } else {
|
||||||
|
// if (res.data.success) {
|
||||||
|
uni.hideLoading();
|
||||||
|
resolve(res.data)
|
||||||
|
// } else {
|
||||||
|
// uni.showToast({
|
||||||
|
// title: res.data.message,
|
||||||
|
// icon: "none"
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
fail(err) {
|
||||||
|
uni.hideLoading();
|
||||||
|
rejected(err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export default request
|
||||||
11
api/taskDetails.js
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import request from "./request.js"
|
||||||
|
|
||||||
|
// 任务详情
|
||||||
|
|
||||||
|
export function taskDetails(orderDetailsId) {
|
||||||
|
return request({
|
||||||
|
url: `/nurseApp/personLogin/taskDetails?&orderDetailsId=${orderDetailsId}`,
|
||||||
|
method: 'GET'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
20
index.html
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<script>
|
||||||
|
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
|
||||||
|
CSS.supports('top: constant(a)'))
|
||||||
|
document.write(
|
||||||
|
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
|
||||||
|
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
|
||||||
|
</script>
|
||||||
|
<title></title>
|
||||||
|
<!--preload-links-->
|
||||||
|
<!--app-context-->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app"><!--app-html--></div>
|
||||||
|
<script type="module" src="/main.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
23
main.js
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import App from './App'
|
||||||
|
|
||||||
|
// #ifndef VUE3
|
||||||
|
import Vue from 'vue'
|
||||||
|
import uView from "uview-ui";
|
||||||
|
Vue.use(uView);
|
||||||
|
Vue.config.productionTip = false
|
||||||
|
App.mpType = 'app'
|
||||||
|
const app = new Vue({
|
||||||
|
...App
|
||||||
|
})
|
||||||
|
app.$mount()
|
||||||
|
// #endif
|
||||||
|
|
||||||
|
// #ifdef VUE3
|
||||||
|
import { createSSRApp } from 'vue'
|
||||||
|
export function createApp() {
|
||||||
|
const app = createSSRApp(App)
|
||||||
|
return {
|
||||||
|
app
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// #endif
|
||||||
72
manifest.json
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
{
|
||||||
|
"name" : "NursingrecipientAPP",
|
||||||
|
"appid" : "",
|
||||||
|
"description" : "",
|
||||||
|
"versionName" : "1.0.0",
|
||||||
|
"versionCode" : "100",
|
||||||
|
"transformPx" : false,
|
||||||
|
/* 5+App特有相关 */
|
||||||
|
"app-plus" : {
|
||||||
|
"usingComponents" : true,
|
||||||
|
"nvueStyleCompiler" : "uni-app",
|
||||||
|
"compilerVersion" : 3,
|
||||||
|
"splashscreen" : {
|
||||||
|
"alwaysShowBeforeRender" : true,
|
||||||
|
"waiting" : true,
|
||||||
|
"autoclose" : true,
|
||||||
|
"delay" : 0
|
||||||
|
},
|
||||||
|
/* 模块配置 */
|
||||||
|
"modules" : {},
|
||||||
|
/* 应用发布信息 */
|
||||||
|
"distribute" : {
|
||||||
|
/* android打包配置 */
|
||||||
|
"android" : {
|
||||||
|
"permissions" : [
|
||||||
|
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
|
||||||
|
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
||||||
|
"<uses-feature android:name=\"android.hardware.camera\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
/* ios打包配置 */
|
||||||
|
"ios" : {},
|
||||||
|
/* SDK配置 */
|
||||||
|
"sdkConfigs" : {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/* 快应用特有相关 */
|
||||||
|
"quickapp" : {},
|
||||||
|
/* 小程序特有相关 */
|
||||||
|
"mp-weixin" : {
|
||||||
|
"appid" : "",
|
||||||
|
"setting" : {
|
||||||
|
"urlCheck" : false
|
||||||
|
},
|
||||||
|
"usingComponents" : true
|
||||||
|
},
|
||||||
|
"mp-alipay" : {
|
||||||
|
"usingComponents" : true
|
||||||
|
},
|
||||||
|
"mp-baidu" : {
|
||||||
|
"usingComponents" : true
|
||||||
|
},
|
||||||
|
"mp-toutiao" : {
|
||||||
|
"usingComponents" : true
|
||||||
|
},
|
||||||
|
"uniStatistics" : {
|
||||||
|
"enable" : false
|
||||||
|
},
|
||||||
|
"vueVersion" : "2"
|
||||||
|
}
|
||||||
24
package-lock.json
generated
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"name": "Attendantapp",
|
||||||
|
"lockfileVersion": 2,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {
|
||||||
|
"": {
|
||||||
|
"dependencies": {
|
||||||
|
"uview-ui": "^1.8.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/uview-ui": {
|
||||||
|
"version": "1.8.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/uview-ui/-/uview-ui-1.8.4.tgz",
|
||||||
|
"integrity": "sha512-Zr+D5dFdNy6CdHQLBEXeGq/w0LkjxzBtsgaaDwLl0P58g67H7fBBDvy6AzWK/k0c7dwPYMBiK7I4Tr9p92+0DA=="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"uview-ui": {
|
||||||
|
"version": "1.8.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/uview-ui/-/uview-ui-1.8.4.tgz",
|
||||||
|
"integrity": "sha512-Zr+D5dFdNy6CdHQLBEXeGq/w0LkjxzBtsgaaDwLl0P58g67H7fBBDvy6AzWK/k0c7dwPYMBiK7I4Tr9p92+0DA=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
5
package.json
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"dependencies": {
|
||||||
|
"uview-ui": "^1.8.4"
|
||||||
|
}
|
||||||
|
}
|
||||||
106
pages.json
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
{
|
||||||
|
"easycom": {
|
||||||
|
"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
|
||||||
|
},
|
||||||
|
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
|
||||||
|
{
|
||||||
|
"path": "pages/login/login",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "登录",
|
||||||
|
"navigationBarBackgroundColor": "#ffffff" //背景颜色
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
"path": "pages/personal/personal",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "个人信息",
|
||||||
|
"enablePullDownRefresh": false,
|
||||||
|
"navigationBarBackgroundColor": "#4C7BC9",
|
||||||
|
"navigationBarTextStyle": "white"
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
"path": "pages/forgotPassword/forgotPassword",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "忘记密码",
|
||||||
|
"navigationBarBackgroundColor": "#ffffff" //背景颜色
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
"path": "pages/register/register",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "注册账号",
|
||||||
|
"navigationBarBackgroundColor": "#ffffff" //背景颜色
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
"path": "pages/homepage/homepage",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "泉医到家",
|
||||||
|
"navigationBarBackgroundColor": "#ffffff" //背景颜色
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/confirmCompletion/confirmCompletion",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "完成确认",
|
||||||
|
"navigationBarBackgroundColor": "#ffffff" //背景颜色
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
"path" : "pages/taskReturn/taskReturn",
|
||||||
|
"style" :
|
||||||
|
{
|
||||||
|
"navigationBarTitleText": "任务退回",
|
||||||
|
"enablePullDownRefresh": false,
|
||||||
|
"navigationBarBackgroundColor": "#ffffff" //背景颜色
|
||||||
|
}
|
||||||
|
|
||||||
|
},{
|
||||||
|
"path": "pages/Mymission/Mymission",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "我的任务",
|
||||||
|
|
||||||
|
"enablePullDownRefresh": false,
|
||||||
|
"navigationBarBackgroundColor": "#ffffff" //背景颜色
|
||||||
|
}
|
||||||
|
|
||||||
|
},{
|
||||||
|
"path" : "pages/taskDetails/taskDetails",
|
||||||
|
"style" :
|
||||||
|
{
|
||||||
|
"navigationBarTitleText": "任务详情",
|
||||||
|
"enablePullDownRefresh": false,
|
||||||
|
"navigationBarBackgroundColor": "#ffffff" //背景颜色
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/Modifyinformation/Modifyinformation",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "修改信息",
|
||||||
|
"enablePullDownRefresh": false,
|
||||||
|
"navigationBarBackgroundColor": "#ffffff" //背景颜色
|
||||||
|
// "navigationBarTextStyle": "white"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/startup/startup",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "启动页"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
,{
|
||||||
|
"path" : "pages/confirmCompletion/confirmCompletion",
|
||||||
|
"style" :
|
||||||
|
{
|
||||||
|
"navigationBarTitleText": "",
|
||||||
|
"enablePullDownRefresh": false
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"globalStyle": {
|
||||||
|
"navigationBarTextStyle": "black",
|
||||||
|
"navigationBarTitleText": "uni-app",
|
||||||
|
"navigationBarBackgroundColor": "#F8F8F8",
|
||||||
|
"backgroundColor": "#F8F8F8"
|
||||||
|
},
|
||||||
|
"uniIdRouter": {}
|
||||||
|
}
|
||||||
218
pages/Modifyinformation/Modifyinformation.vue
Normal file
@ -0,0 +1,218 @@
|
|||||||
|
<template>
|
||||||
|
<view class="app">
|
||||||
|
<view class="centercontent">
|
||||||
|
<view class="Commodity" @tap="uploadImag()">
|
||||||
|
头像
|
||||||
|
<image class="picture" :src="baseurl+appPersonallist.avatar" mode=""></image>
|
||||||
|
<image class="pictureA" src="../../static/jiantou.png" mode=""></image>
|
||||||
|
</view>
|
||||||
|
<view class="content">
|
||||||
|
<view class="name">昵称:
|
||||||
|
<input type="text" placeholder="请填写" v-model="appPersonallist.userName" />
|
||||||
|
</view>
|
||||||
|
<view class="name">姓名:
|
||||||
|
<input type="text" placeholder="请输入" v-model="appPersonallist.nickName" />
|
||||||
|
</view>
|
||||||
|
<view class="name">电话:
|
||||||
|
<input type="text" placeholder="请输入" v-model="appPersonallist.phonenumber" />
|
||||||
|
</view>
|
||||||
|
<view class="nursetype name" style="border: none;" >
|
||||||
|
护理站:{{getNurseStationName(appPersonallist)}}
|
||||||
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<view class="finish" @tap="gofinish()">完成
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<u-toast ref="uToast" />
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
userPassWord,
|
||||||
|
nursePerson
|
||||||
|
} from '@/api/Modifyinformation/Modifyinformation.js';
|
||||||
|
import baseurl from '@/api/baseurl.js'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
baseurl: '', //url
|
||||||
|
appPersonallist: {
|
||||||
|
userId: '',
|
||||||
|
userName: '',
|
||||||
|
nickName: '',
|
||||||
|
phonenumber: '',
|
||||||
|
avatar: '',
|
||||||
|
File: '',
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed:{
|
||||||
|
getNurseStationName() {
|
||||||
|
return data => data?.nurseStationSysUserVOList?.[0]?.nurseStationName || ''
|
||||||
|
},
|
||||||
|
},
|
||||||
|
onLoad(options) {
|
||||||
|
this.baseurl = baseurl;
|
||||||
|
const that = this
|
||||||
|
this.baseurl = baseurl;
|
||||||
|
uni.getStorage({
|
||||||
|
key: 'phonenumber',
|
||||||
|
success: function(res) {
|
||||||
|
that.phonenumber = res.data
|
||||||
|
console.log(that.phonenumber)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
uni.getStorage({
|
||||||
|
key: 'password',
|
||||||
|
success: function(res) {
|
||||||
|
that.password = res.data
|
||||||
|
console.log(that.password)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
console.log(that.password, '-----', that.phonenumber)
|
||||||
|
this.myInfo()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
//上传头像
|
||||||
|
uploadImag() {
|
||||||
|
var that = this;
|
||||||
|
uni.chooseImage({
|
||||||
|
count: 1,
|
||||||
|
sizeType: ['original'],
|
||||||
|
sourceType: ['album'],
|
||||||
|
success(res) {
|
||||||
|
//blob
|
||||||
|
console.log(res)
|
||||||
|
uni.uploadFile({
|
||||||
|
url: baseurl + '/nurseApp/PersonLogin/updateHeadAvatarHead',
|
||||||
|
filePath: res.tempFilePaths[0], //file: 二进制(filePath)
|
||||||
|
name: 'file',
|
||||||
|
formData: { //多余值
|
||||||
|
'userId': '13',
|
||||||
|
},
|
||||||
|
timeout: 5000,
|
||||||
|
success(res) {
|
||||||
|
console.log(JSON.parse(res.data))
|
||||||
|
that.appPersonallist.avatar = JSON.parse(res.data).imgUrl
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 引入一下
|
||||||
|
myInfo() {
|
||||||
|
nursePerson(this.phonenumber, this.password).then(res => {
|
||||||
|
console.log(res, 'resresres')
|
||||||
|
this.appPersonallist = res.data
|
||||||
|
console.log(this.appPersonallist)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
gofinish() {
|
||||||
|
// this.appPersonallist = JSON.stringify(this.appPersonallist)
|
||||||
|
// console.log(this.appPersonallist, 'this.appPersonallist')
|
||||||
|
userPassWord(this.appPersonallist).then(res => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
this.$refs.uToast.show({
|
||||||
|
title: '修改成功',
|
||||||
|
type: 'success',
|
||||||
|
url: '/pages/personal/personal',
|
||||||
|
duration: '1500'
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
console.log(res)
|
||||||
|
this.$refs.uToast.show({
|
||||||
|
title: res.msg,
|
||||||
|
type: 'error'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="scss">
|
||||||
|
.app {
|
||||||
|
background-color: #F4F5F7;
|
||||||
|
width: 100%;
|
||||||
|
height: 100vh;
|
||||||
|
color: #000000;
|
||||||
|
padding: 3%;
|
||||||
|
font-size: 36rpx;
|
||||||
|
|
||||||
|
.centercontent {
|
||||||
|
width: 99%;
|
||||||
|
height: 521rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
|
||||||
|
border-radius: 20rpx;
|
||||||
|
margin: 0 auto;
|
||||||
|
|
||||||
|
.finish {
|
||||||
|
width: 217rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
height: 68rpx;
|
||||||
|
line-height: 68rpx;
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 60%;
|
||||||
|
margin-left: 70%;
|
||||||
|
background: #4C7BC9;
|
||||||
|
border-radius: 26rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
line-height: 100rpx;
|
||||||
|
|
||||||
|
.name {
|
||||||
|
margin-left: 5%;
|
||||||
|
height: 100rpx;
|
||||||
|
border-bottom: 1rpx solid #D8D4D4;
|
||||||
|
|
||||||
|
input {
|
||||||
|
font-size: 36rpx;
|
||||||
|
margin-top: -11%;
|
||||||
|
margin-left: 15%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.nursetype {
|
||||||
|
input {
|
||||||
|
margin-left: 25%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.Commodity {
|
||||||
|
line-height: 110rpx;
|
||||||
|
margin-left: 5%;
|
||||||
|
border-bottom: 1rpx solid #D8D4D4;
|
||||||
|
|
||||||
|
.picture {
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-left: 60%;
|
||||||
|
width: 103rpx;
|
||||||
|
height: 103rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pictureA {
|
||||||
|
margin-left: 3%;
|
||||||
|
width: 18rpx;
|
||||||
|
height: 27rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.head {
|
||||||
|
line-height: 140rpx;
|
||||||
|
margin-left: 5%;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
296
pages/Mymission/Mymission.vue
Normal file
@ -0,0 +1,296 @@
|
|||||||
|
<template>
|
||||||
|
<view class="app">
|
||||||
|
<view class="inputs">
|
||||||
|
<i class="icon"></i>
|
||||||
|
<input type="text" name="" id="" class="input" placeholder="请输入搜索内容">
|
||||||
|
</view>
|
||||||
|
<view class="tab">
|
||||||
|
<view class="tab-item" @tap="testTabClick(index)" v-for="(item,index) in tabList"
|
||||||
|
:class="tabIndex == index?'active':''">
|
||||||
|
{{item.name}}
|
||||||
|
</view>
|
||||||
|
<view class="Apayment" v-if='choicetab==0' v-for="(item,index) in list" :key="item.id">
|
||||||
|
<view class="names">{{item.serviceDate}} {{item.serviceStartTime}}-{{item.serviceEndTime}}
|
||||||
|
<span>待完成</span>
|
||||||
|
</view>
|
||||||
|
<image :src="baseurl+item.itemPictureUrl" mode=""></image>
|
||||||
|
<view class="detailsinfo">
|
||||||
|
<view class="change">
|
||||||
|
{{item.nurseItemName}}
|
||||||
|
</view>
|
||||||
|
<view class="time">
|
||||||
|
服务时长:{{item.itemServeDurationUnit}}
|
||||||
|
</view>
|
||||||
|
<view class="price">
|
||||||
|
¥{{item.totalPrice}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="anniu">
|
||||||
|
<view class="logistics" @tap='gotask(item)'>详情</view>
|
||||||
|
<view class="logistics harvest">去完成</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="Apayment" v-if='choicetab==1' v-for="(item,uindex) in list" :key="uindex">
|
||||||
|
<view class="names">{{item.serviceDate}} {{item.serviceStartTime}}-{{item.serviceEndTime}}
|
||||||
|
<span>已完成</span>
|
||||||
|
</view>
|
||||||
|
<image src="../../static/fuwutu.png" mode=""></image>
|
||||||
|
<view class="detailsinfo">
|
||||||
|
<view class="change">
|
||||||
|
{{item.nurseItemName}}
|
||||||
|
</view>
|
||||||
|
<view class="time">
|
||||||
|
服务时长:{{item.itemServeDurationUnit}}
|
||||||
|
</view>
|
||||||
|
<view class="price">
|
||||||
|
¥{{item.totalPrice}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="anniu">
|
||||||
|
<view class="evaluate">查看评价</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
selectMission
|
||||||
|
} from '@/api/Mymission.js'
|
||||||
|
import baseurl from '@/api/baseurl.js'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
baseurl: '',
|
||||||
|
choicetab: 0, //切换
|
||||||
|
tabIndex: 0, //切换
|
||||||
|
tabList: [{
|
||||||
|
name: "待完成"
|
||||||
|
}, {
|
||||||
|
name: "已完成"
|
||||||
|
}, ],
|
||||||
|
nursePersonId: 2, //护理员id
|
||||||
|
orderStatus: 'NOT_FINISH', // orderStatus:订单状态 未完成:NOT_FINISH,服务完成:COMPLETE
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
//未完成任务
|
||||||
|
list: [],
|
||||||
|
total: 0,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
//任务list
|
||||||
|
selectMissioninfo() {
|
||||||
|
selectMission(this.nursePersonId, this.orderStatus, this.pageNum, this.pageSize).then(res => {
|
||||||
|
this.list = res.rows
|
||||||
|
this.total = res.total
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//跳转详情页
|
||||||
|
gotask(item) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/taskDetails/taskDetails?orderDetailsId=${item.id}`
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//任务切换
|
||||||
|
testTabClick(index) {
|
||||||
|
this.list = []
|
||||||
|
this.tabIndex = index
|
||||||
|
this.choicetab = index
|
||||||
|
this.pageNum == 1
|
||||||
|
if (this.choicetab == 0) {
|
||||||
|
this.orderStatus = 'NOT_FINISH'
|
||||||
|
} else {
|
||||||
|
this.orderStatus = 'COMPLETE'
|
||||||
|
}
|
||||||
|
selectMission(this.nursePersonId, this.orderStatus, this.pageNum, this.pageSize).then(res => {
|
||||||
|
this.list = res.rows
|
||||||
|
this.total = res.total
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// goorderdetails() {
|
||||||
|
// uni.navigateTo({
|
||||||
|
// url: '/pages/orderDetails/orderDetails'
|
||||||
|
// })
|
||||||
|
// },
|
||||||
|
},
|
||||||
|
onLoad() { //开局调用
|
||||||
|
this.baseurl = baseurl
|
||||||
|
this.selectMissioninfo();
|
||||||
|
},
|
||||||
|
onReachBottom() { //下滑加载
|
||||||
|
if (this.list.length >= this.total) {} else {
|
||||||
|
this.pageNum++
|
||||||
|
selectMission(this.nursePersonId, this.orderStatus, this.pageNum, this.pageSize).then(res => {
|
||||||
|
res.rows.forEach(e => {
|
||||||
|
this.list.push(e)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onPullDownRefresh() { //下拉刷新
|
||||||
|
this.pageNum = 1;
|
||||||
|
selectMission(this.nursePersonId, this.orderStatus, this.PageNum, this.PageSize).then(res => {
|
||||||
|
this.list = res.rows
|
||||||
|
this.total = res.total
|
||||||
|
})
|
||||||
|
setTimeout(function() {
|
||||||
|
uni.stopPullDownRefresh();
|
||||||
|
}, 1000);
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.app {
|
||||||
|
background-color: #F4F5F7;
|
||||||
|
width: 100%;
|
||||||
|
height: 100vh;
|
||||||
|
padding: 1rpx 3%;
|
||||||
|
|
||||||
|
.tab .active {
|
||||||
|
background: #4C7BC9;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 切换
|
||||||
|
.tab-item {
|
||||||
|
width: 50%;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 70rpx;
|
||||||
|
color: #ffffff;
|
||||||
|
background: #BAB7B8;
|
||||||
|
display: inline-block;
|
||||||
|
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
|
||||||
|
border-radius: 20rpx;
|
||||||
|
font-size: 34rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Apayment {
|
||||||
|
width: 100%;
|
||||||
|
height: 391rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
|
||||||
|
border-radius: 20rpx;
|
||||||
|
line-height: 70rpx;
|
||||||
|
padding: 1%;
|
||||||
|
font-size: 30rpx;
|
||||||
|
color: #969394;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
image {
|
||||||
|
display: block;
|
||||||
|
width: 170rpx;
|
||||||
|
height: 170rpx;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
margin: 30rpx 0 0 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.anniu {
|
||||||
|
// width: 375rpx;
|
||||||
|
float: right;
|
||||||
|
margin: 30rpx 20rpx 0 0;
|
||||||
|
|
||||||
|
.evaluate {
|
||||||
|
background: #4C7BC9;
|
||||||
|
width: 216rpx;
|
||||||
|
height: 68rpx;
|
||||||
|
text-align: center;
|
||||||
|
color: #ffffff;
|
||||||
|
border-radius: 26rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logistics {
|
||||||
|
width: 175rpx;
|
||||||
|
height: 68rpx;
|
||||||
|
text-align: center;
|
||||||
|
color: #ffffff;
|
||||||
|
background: #E1AE3C;
|
||||||
|
border-radius: 26rpx;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.harvest {
|
||||||
|
background: #4C7BC9;
|
||||||
|
margin: 0 0 0 15rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.detailsinfo {
|
||||||
|
width: 60%;
|
||||||
|
height: 200rpx;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
position: absolute;
|
||||||
|
top: 25%;
|
||||||
|
left: 35%;
|
||||||
|
|
||||||
|
.change {
|
||||||
|
width: 100%;
|
||||||
|
color: #000000;
|
||||||
|
font-size: 34rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.time {
|
||||||
|
width: 100%;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #999999;
|
||||||
|
position: absolute;
|
||||||
|
top: 32%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.price {
|
||||||
|
width: 100%;
|
||||||
|
font-size: 30rpx;
|
||||||
|
color: #D43953;
|
||||||
|
position: absolute;
|
||||||
|
top: 65%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.names {
|
||||||
|
width: 95%;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
border-bottom: 1rpx solid #D8D4D4;
|
||||||
|
|
||||||
|
span {
|
||||||
|
color: #4C7BC9;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.inputs {
|
||||||
|
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
|
||||||
|
border: 1rpx solid #f0f0f0;
|
||||||
|
width: 99%;
|
||||||
|
height: 65rpx;
|
||||||
|
margin: 20rpx auto;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
background-color: #Ffffff;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.input {
|
||||||
|
position: absolute;
|
||||||
|
height: 65rpx;
|
||||||
|
left: 10%;
|
||||||
|
line-height: 65rpx;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #BEBEC0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon {
|
||||||
|
background: url(@/static/sousuo.png) no-repeat;
|
||||||
|
width: 30rpx;
|
||||||
|
height: 28rpx;
|
||||||
|
background-size: cover;
|
||||||
|
position: absolute;
|
||||||
|
top: 30%;
|
||||||
|
left: 5%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
147
pages/confirmCompletion/confirmCompletion.vue
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
<template>
|
||||||
|
<view class="app">
|
||||||
|
<view class="picture">
|
||||||
|
<view class="attendantImg">
|
||||||
|
护理员到岗照片
|
||||||
|
</view>
|
||||||
|
<view class="uppicture">
|
||||||
|
<u-upload class="slot-btn" width="530" height="130"></u-upload>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<view class="picture" style="height: 330rpx;">
|
||||||
|
<view class="attendantImg">
|
||||||
|
服务进行中视频(不少于1min)<span>*选填</span>
|
||||||
|
</view>
|
||||||
|
<view class="uppicture">
|
||||||
|
<u-upload class="slot-btn" width="530" height="130"></u-upload>
|
||||||
|
</view>
|
||||||
|
<view class="user">
|
||||||
|
<image src="../../static/radio.png" mode=""></image>
|
||||||
|
用户不同意拍摄
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="picture">
|
||||||
|
<view class="attendantImg">
|
||||||
|
服务结束照片
|
||||||
|
</view>
|
||||||
|
<view class="uppicture">
|
||||||
|
<u-upload class="slot-btn" width="530" height="130"></u-upload>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<view class="picture" style="height: 350rpx;">
|
||||||
|
<view class="attendantImg" style="border-bottom: 1rpx solid #BAB7B8;">
|
||||||
|
用户签名确认
|
||||||
|
</view>
|
||||||
|
<view class="receive">
|
||||||
|
我确认已接受服务
|
||||||
|
</view>
|
||||||
|
<view class="uppicture">
|
||||||
|
<image src="../../static/autograph.png" mode=""></image>
|
||||||
|
<span>点此签名</span>
|
||||||
|
<!-- <u-upload class="slot-btn" :action="action" :file-list="fileList" width="620" height="130"></u-upload> -->
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<view class="submit">
|
||||||
|
<view class="finish">
|
||||||
|
去完成
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.app {
|
||||||
|
height: 100%;
|
||||||
|
padding: 3%;
|
||||||
|
font-size: 36rpx;
|
||||||
|
.picture {
|
||||||
|
width: 95%;
|
||||||
|
height: 272rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
|
||||||
|
border-radius: 20px;
|
||||||
|
margin: 0 auto;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
.attendantImg {
|
||||||
|
color: #000000;
|
||||||
|
height: 88rpx;
|
||||||
|
line-height: 88rpx;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
span {
|
||||||
|
color: #BAB7B8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.uppicture {
|
||||||
|
border: 1rpx dashed #818181;
|
||||||
|
width: 90%;
|
||||||
|
height: 150rpx;
|
||||||
|
margin: 0 auto;
|
||||||
|
::v-deep .u-list-item[data-v-49deb6f2] {
|
||||||
|
background: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 36rpx;
|
||||||
|
height: 36rpx;
|
||||||
|
margin-left: 40%;
|
||||||
|
margin-top: 8%;
|
||||||
|
}
|
||||||
|
span {
|
||||||
|
|
||||||
|
font-size: 35rpx;
|
||||||
|
color: #969394;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.user{
|
||||||
|
height: 88rpx;
|
||||||
|
line-height: 88rpx;
|
||||||
|
color: #969394;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
image{
|
||||||
|
width: 34rpx;
|
||||||
|
height: 34rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
.receive {
|
||||||
|
height: 88rpx;
|
||||||
|
line-height: 88rpx;
|
||||||
|
color: #969394;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.submit{
|
||||||
|
height: 68rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
text-align: center;
|
||||||
|
margin-left: 60%;
|
||||||
|
.finish{
|
||||||
|
width: 217rpx;
|
||||||
|
height: 68rpx;
|
||||||
|
line-height: 68rpx;
|
||||||
|
background: #4C7BC9;
|
||||||
|
border-radius: 26rpx;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
74
pages/forgotPassword/forgotPassword.scss
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
.app {
|
||||||
|
height: 100vh;
|
||||||
|
padding: 20rpx 0;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
font-size: 34rpx;
|
||||||
|
margin: 0 auto 20rpx;
|
||||||
|
width: 94%;
|
||||||
|
height: 100rpx;
|
||||||
|
line-height: 100rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
|
||||||
|
border-radius: 20rpx;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.lefttext {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
left: 3%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.righttext {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
left: 18%;
|
||||||
|
height: 100rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lefttext,
|
||||||
|
.righttext {
|
||||||
|
::v-deep .uni-input-input {
|
||||||
|
font-size: 34rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .uni-input-wrapper {
|
||||||
|
height: 100rpx;
|
||||||
|
line-height: 100rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .uni-input-placeholder {
|
||||||
|
line-height: 100rpx;
|
||||||
|
font-size: 34rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #C3C1C1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.obtaincode {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #4C7BC9;
|
||||||
|
line-height: 100rpx;
|
||||||
|
position: absolute;
|
||||||
|
right: 5%;
|
||||||
|
top: 0%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.loginbtn {
|
||||||
|
width: 80%;
|
||||||
|
height: 100rpx;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 100rpx;
|
||||||
|
background: #4C7BC9;
|
||||||
|
border-radius: 51rpx;
|
||||||
|
font-size: 41rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
position: absolute;
|
||||||
|
top: 40%;
|
||||||
|
left: 10%;
|
||||||
|
}
|
||||||
|
}
|
||||||
122
pages/forgotPassword/forgotPassword.vue
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
<template>
|
||||||
|
<view class="app">
|
||||||
|
<view class="item">
|
||||||
|
<view class="lefttext">
|
||||||
|
输入新密码
|
||||||
|
</view>
|
||||||
|
<u-input class='righttext' style='left:30%' placeholder="请输入密码" maxlength="10" type="password"
|
||||||
|
:border="false" :password-icon="true" v-model="newpassword" />
|
||||||
|
</view>
|
||||||
|
<view class="item">
|
||||||
|
<view class="lefttext">
|
||||||
|
重复新密码
|
||||||
|
</view>
|
||||||
|
<u-input class='righttext' style='left:30%' placeholder="请再次输入密码" maxlength="10" type="password"
|
||||||
|
:border="false" :password-icon="true" v-model="password" />
|
||||||
|
</view>
|
||||||
|
<view class="item">
|
||||||
|
<view class="lefttext">
|
||||||
|
手机号
|
||||||
|
</view>
|
||||||
|
<input class="righttext" style='left:23%' type="text" placeholder="请输入" maxlength="11" v-model="phonenumber"/>
|
||||||
|
</view>
|
||||||
|
<view class="item">
|
||||||
|
<view class="lefttext">
|
||||||
|
验证码
|
||||||
|
</view>
|
||||||
|
<input class="righttext" style='left:23%' type="text" placeholder="" maxlength="6" v-model="verification" />
|
||||||
|
<view class="obtaincode" :style="{'color':getCodeBtnColor}" @click.stop="getCode()">
|
||||||
|
{{getCodeText}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="loginbtn" @tap='pwdlogin'>
|
||||||
|
登录
|
||||||
|
</view>
|
||||||
|
<u-toast ref="uToast" />
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
updatePassword
|
||||||
|
} from '@/api/forgotPassword/forgotPassword.js'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
phonenumber: '18963146613',
|
||||||
|
password: '23456',
|
||||||
|
newpassword: '',
|
||||||
|
getCodeText: '获取验证码', //获取验证码的文字
|
||||||
|
getCodeBtnColor: "#4C7BC9", //获取验证码的color
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
pwdlogin() {
|
||||||
|
updatePassword(this.phonenumber, this.password, this.verification).then(res => {
|
||||||
|
if (this.password !== this.newpassword) {
|
||||||
|
this.$refs.uToast.show({
|
||||||
|
title: '密码输入不一致,请重新输入',
|
||||||
|
type: 'error',
|
||||||
|
duration: '1500'
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$refs.uToast.show({
|
||||||
|
title: '密码修改成功',
|
||||||
|
type: 'success',
|
||||||
|
url: '/pages/login/login',
|
||||||
|
duration: '1500'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//点击获取验证码
|
||||||
|
getCode() {
|
||||||
|
uni.hideKeyboard() //隐藏已经显示的软键盘,如果软键盘没有显示则不做任何操作。
|
||||||
|
if (this.getCodeisWaiting) { //是否在倒计时中
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!(/^1(3|4|5|6|7|8|9)\d{9}$/.test(this.phonenumber))) { //校验手机号码是否有误
|
||||||
|
uni.showToast({
|
||||||
|
title: '请填写正确手机号码',
|
||||||
|
icon: "none"
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
this.getCodeText = "发送中..." //发送验证码
|
||||||
|
this.getCodeisWaiting = true;
|
||||||
|
this.getCodeBtnColor = "rgba(138,139,133,1)" //追加样式,修改颜色
|
||||||
|
//示例用定时器模拟请求效果
|
||||||
|
//setTimeout(()用于在指定的毫秒数后调用函数或计算表达式
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.showToast({
|
||||||
|
title: '验证码已发送',
|
||||||
|
icon: "none"
|
||||||
|
}); //弹出提示框
|
||||||
|
// this.code = '1234'; //发送验证码,进行填入 示例默认1234,生产中请删除这一句。
|
||||||
|
this.setTimer(); //调用定时器方法
|
||||||
|
}, 1000)
|
||||||
|
},
|
||||||
|
//获取验证码的倒计时 setTimer: 需要每隔一段时间执行一件事的的时候就需要使用SetTimer函数
|
||||||
|
setTimer() {
|
||||||
|
let holdTime = 60; //定义变量并赋值
|
||||||
|
this.getCodeText = "重新获取(60)"
|
||||||
|
//setInterval()是一个实现定时调用的函数,可按照指定的周期(以毫秒计)来调用函数或计算表达式。
|
||||||
|
//setInterval方法会不停地调用函数,直到 clearInterval被调用或窗口被关闭。
|
||||||
|
this.Timer = setInterval(() => {
|
||||||
|
if (holdTime <= 0) {
|
||||||
|
this.getCodeisWaiting = false;
|
||||||
|
this.getCodeBtnColor = "#4C7BC9";
|
||||||
|
this.getCodeText = "获取验证码"
|
||||||
|
clearInterval(this.Timer); //清除该函数
|
||||||
|
return; //返回前面
|
||||||
|
}
|
||||||
|
this.getCodeText = "重新获取(" + holdTime + ")"
|
||||||
|
holdTime--;
|
||||||
|
}, 1000)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
@import "./forgotPassword.scss";
|
||||||
|
</style>
|
||||||
56
pages/homepage/homepage.vue
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
<template>
|
||||||
|
<view class="app">
|
||||||
|
<view class="cards">
|
||||||
|
<view class="item" style="background: #D43953;" @tap='gomymission'>
|
||||||
|
<image src="../../static/dingdan.png" mode=""></image>
|
||||||
|
<view class="title">
|
||||||
|
我的任务
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class=" item" style="background: #4C7BC9; "@tap='gopersonal'>
|
||||||
|
|
||||||
|
<image src="../../static/user.png" mode=""></image>
|
||||||
|
<view class="title">
|
||||||
|
个人信息
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
gomymission() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/Mymission/Mymission'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
gopersonal(){
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/personal/personal'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.app {
|
||||||
|
.cards {
|
||||||
|
height: 1029rpx;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
height: 295rpx;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
width: 80%;
|
||||||
|
top: 60%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
89
pages/login/login.scss
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
.app {
|
||||||
|
font-family: DengXian;
|
||||||
|
color: #C3C1C1;
|
||||||
|
font-weight: 400;
|
||||||
|
|
||||||
|
.switch {
|
||||||
|
text-align: center;
|
||||||
|
height: 100rpx;
|
||||||
|
color: #46ABD7;
|
||||||
|
position: absolute;
|
||||||
|
top: 67%;
|
||||||
|
left: 10%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loginbtn {
|
||||||
|
width: 80%;
|
||||||
|
height: 100rpx;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 100rpx;
|
||||||
|
background: #4C7BC9;
|
||||||
|
border-radius: 51rpx;
|
||||||
|
font-size: 41rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
position: absolute;
|
||||||
|
top: 57%;
|
||||||
|
left: 10%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loginphone {
|
||||||
|
background-color: #fff;
|
||||||
|
width: 80%;
|
||||||
|
height: 162rpx;
|
||||||
|
position: absolute;
|
||||||
|
left: 10%;
|
||||||
|
top: 23%;
|
||||||
|
|
||||||
|
input {
|
||||||
|
font-size: 45rpx;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .uni-input-placeholder {
|
||||||
|
padding-left: 40rpx;
|
||||||
|
font-size: 41rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #C3C1C1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.phone {
|
||||||
|
padding-left: 40rpx;
|
||||||
|
height: 100%;
|
||||||
|
box-shadow: 0px 9px 31px 9px rgba(0, 0, 0, 0.03);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.logincode {
|
||||||
|
position: absolute;
|
||||||
|
left: 10%;
|
||||||
|
|
||||||
|
.obtaincode {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 37rpx;
|
||||||
|
color: #4C7BC9;
|
||||||
|
line-height: 162rpx;
|
||||||
|
position: absolute;
|
||||||
|
left: 65%;
|
||||||
|
top: 0%;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .u-input__input {
|
||||||
|
padding-left: 20rpx;
|
||||||
|
color: #000000;
|
||||||
|
font-size: 42rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
height: 50rpx;
|
||||||
|
font-size: 52rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #000000;
|
||||||
|
line-height: 44rpx;
|
||||||
|
position: absolute;
|
||||||
|
top: 13%;
|
||||||
|
left: 13%;
|
||||||
|
}
|
||||||
|
}
|
||||||
179
pages/login/login.vue
Normal file
@ -0,0 +1,179 @@
|
|||||||
|
<template>
|
||||||
|
<view class="app">
|
||||||
|
<view class="title">
|
||||||
|
账号登录
|
||||||
|
</view>
|
||||||
|
<view class="loginphone">
|
||||||
|
<input class="phone" type="text" placeholder="手机号码" maxlength="11" v-model="phonenumber" />
|
||||||
|
</view>
|
||||||
|
<view class="logincode loginphone" style="top: 40%;">
|
||||||
|
<u-input class='code phone' placeholder="密码" maxlength="10" v-model="password" type="password"
|
||||||
|
:border="true" :password-icon="true" />
|
||||||
|
</view>
|
||||||
|
<view class="forget" @tap='forgetpassword'>
|
||||||
|
忘记密码
|
||||||
|
</view>
|
||||||
|
<!-- <u-checkbox-group>
|
||||||
|
<u-checkbox v-model="checked" shape="circle">记住密码</u-checkbox>
|
||||||
|
</u-checkbox-group> -->
|
||||||
|
<view class="loginbtn" @tap='pwdlogin'>
|
||||||
|
登录
|
||||||
|
</view>
|
||||||
|
<view class="loginbtn" style="top: 65%; color: #969394;background-color: #ffffff;" @tap='goregister'>
|
||||||
|
注册
|
||||||
|
</view>
|
||||||
|
<u-toast ref="uToast" />
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
appLogin
|
||||||
|
} from '../../api/login/index.js'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
checked: false,
|
||||||
|
phonenumber: '',
|
||||||
|
password: '',
|
||||||
|
userId:'',
|
||||||
|
};
|
||||||
|
},
|
||||||
|
//获取到传值
|
||||||
|
|
||||||
|
onLoad(options) {
|
||||||
|
console.log(options)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
//密码登录
|
||||||
|
pwdlogin() {
|
||||||
|
appLogin(this.phonenumber, this.password).then(res => {
|
||||||
|
console.log(res)
|
||||||
|
|
||||||
|
if (res.code == 200) {
|
||||||
|
this.$refs.uToast.show({
|
||||||
|
title: '登录成功',
|
||||||
|
type: 'success',
|
||||||
|
url: '/pages/homepage/homepage',
|
||||||
|
duration: '1500'
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
console.log(res)
|
||||||
|
this.$refs.uToast.show({
|
||||||
|
title: res.msg,
|
||||||
|
type: 'error'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//跳转注册页
|
||||||
|
goregister() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/register/register'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
forgetpassword() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/forgotPassword/forgotPassword'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.app {
|
||||||
|
font-family: DengXian;
|
||||||
|
color: #C3C1C1;
|
||||||
|
font-weight: 400;
|
||||||
|
height: 100vh;
|
||||||
|
|
||||||
|
.forget {
|
||||||
|
position: absolute;
|
||||||
|
top: 53%;
|
||||||
|
left: 70%;
|
||||||
|
color: #46ABD7;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.loginbtn {
|
||||||
|
width: 80%;
|
||||||
|
height: 100rpx;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 100rpx;
|
||||||
|
background: #4C7BC9;
|
||||||
|
border-radius: 51rpx;
|
||||||
|
font-size: 41rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
position: absolute;
|
||||||
|
top: 56%;
|
||||||
|
left: 10%;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// ::v-deep .u-checkbox {
|
||||||
|
// margin-top: 345%;
|
||||||
|
// margin-left: 50%;
|
||||||
|
// font-size: 32rpx;
|
||||||
|
// color: #BFBFBF;
|
||||||
|
// }
|
||||||
|
|
||||||
|
.loginphone {
|
||||||
|
background-color: #fff;
|
||||||
|
width: 80%;
|
||||||
|
height: 150rpx;
|
||||||
|
position: absolute;
|
||||||
|
left: 10%;
|
||||||
|
top: 23%;
|
||||||
|
|
||||||
|
input {
|
||||||
|
font-size: 45rpx;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .uni-input-placeholder {
|
||||||
|
padding-left: 40rpx;
|
||||||
|
font-size: 41rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #C3C1C1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.phone {
|
||||||
|
padding-left: 40rpx;
|
||||||
|
height: 150rpx;
|
||||||
|
box-shadow: 0px 9px 31px 9px rgba(0, 0, 0, 0.03);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.logincode {
|
||||||
|
position: absolute;
|
||||||
|
left: 10%;
|
||||||
|
|
||||||
|
::v-deep .u-input {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .u-input__input {
|
||||||
|
padding-left: 20rpx;
|
||||||
|
color: #000000;
|
||||||
|
font-size: 42rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
height: 100%;
|
||||||
|
// line-height: 150rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
height: 50rpx;
|
||||||
|
font-size: 52rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #000000;
|
||||||
|
line-height: 44rpx;
|
||||||
|
position: absolute;
|
||||||
|
top: 13%;
|
||||||
|
left: 13%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
222
pages/personal/personal.vue
Normal file
@ -0,0 +1,222 @@
|
|||||||
|
<template>
|
||||||
|
<view class="app">
|
||||||
|
<view class="user">
|
||||||
|
<view class="img">
|
||||||
|
<image :src="baseurl+appPersonallist.avatar" mode=""></image>
|
||||||
|
</view>
|
||||||
|
<view class="phone">
|
||||||
|
电话:{{appPersonallist.phonenumber}}
|
||||||
|
</view>
|
||||||
|
<view class="nickname">
|
||||||
|
点此设置昵称
|
||||||
|
</view>
|
||||||
|
<view class="modify" @tap='updatainfo()'>
|
||||||
|
修改信息
|
||||||
|
<u-icon name="arrow-right" color="#ffffff" size="32"></u-icon>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="information">
|
||||||
|
<view class="item">
|
||||||
|
姓名:{{appPersonallist.nickName}}
|
||||||
|
</view>
|
||||||
|
<view class="item">
|
||||||
|
电话:{{appPersonallist.phonenumber }}
|
||||||
|
</view>
|
||||||
|
<view class="item" style="height:100%">
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<view class="item" style="border:none;" v-if="appPersonallist.nurseStationSysUserVOList">
|
||||||
|
护理站: {{appPersonallist.nurseStationSysUserVOList[0].nurseStationName}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="External" style="margin: 100rpx auto 0;">
|
||||||
|
<view class="lefttext">
|
||||||
|
我的设备
|
||||||
|
</view>
|
||||||
|
<view class="righttext">
|
||||||
|
</view>
|
||||||
|
<image src="../../static/jiantou.png" mode=""></image>
|
||||||
|
</view>
|
||||||
|
<view class="External">
|
||||||
|
<view class="lefttext">
|
||||||
|
修改密码
|
||||||
|
</view>
|
||||||
|
<view class="righttext">
|
||||||
|
</view>
|
||||||
|
<image src="../../static/jiantou.png" mode=""></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
nursePerson,
|
||||||
|
} from '@/api/personnal/personal.js';
|
||||||
|
import baseurl from '@/api/baseurl.js'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
baseurl: '', //url
|
||||||
|
phonenumber: '',
|
||||||
|
avatar:'',
|
||||||
|
password: '',
|
||||||
|
userId:'',
|
||||||
|
appPersonallist: [], //获取个人信息
|
||||||
|
nurseStationSysUserVOList: [],
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
onLoad(options) {
|
||||||
|
//获取传值
|
||||||
|
const that=this
|
||||||
|
this.baseurl = baseurl;
|
||||||
|
uni.getStorage({
|
||||||
|
key: 'phonenumber',
|
||||||
|
success: function(res) {
|
||||||
|
that.phonenumber = res.data
|
||||||
|
console.log(that.phonenumber)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
uni.getStorage({
|
||||||
|
key: 'password',
|
||||||
|
success: function(res) {
|
||||||
|
that.password = res.data
|
||||||
|
console.log(that.password)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
console.log(that.password,'-----',that.phonenumber)
|
||||||
|
this.myInfo()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
myInfo() {
|
||||||
|
console.log(this.phonenumber)
|
||||||
|
nursePerson(this.phonenumber, this.password).then(res => {
|
||||||
|
this.appPersonallist = res.data
|
||||||
|
})
|
||||||
|
},
|
||||||
|
updatainfo() {
|
||||||
|
console.log()
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/Modifyinformation/Modifyinformation`
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.app {
|
||||||
|
padding: 0;
|
||||||
|
font-size: 35rpx;
|
||||||
|
height: 100vh;
|
||||||
|
|
||||||
|
.External {
|
||||||
|
width: 94%;
|
||||||
|
height: 100rpx;
|
||||||
|
line-height: 100rpx;
|
||||||
|
margin: 20rpx auto;
|
||||||
|
padding-left: 5%;
|
||||||
|
background: #FFFFFF;
|
||||||
|
box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
|
||||||
|
border-radius: 20rpx;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.righttext {
|
||||||
|
position: absolute;
|
||||||
|
right: 12%;
|
||||||
|
top: 50%;
|
||||||
|
color: #969394;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 18rpx;
|
||||||
|
height: 27rpx;
|
||||||
|
position: absolute;
|
||||||
|
right: 5%;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.lefttext,
|
||||||
|
.righttext {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.information {
|
||||||
|
width: 94%;
|
||||||
|
background: #FFFFFF;
|
||||||
|
box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
|
||||||
|
border-radius: 20rpx;
|
||||||
|
position: absolute;
|
||||||
|
top: 18%;
|
||||||
|
left: 3%;
|
||||||
|
color: #000000;
|
||||||
|
padding-left: 5%;
|
||||||
|
overflow: hidden;
|
||||||
|
font-size: 35rpx;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
// height: 110rpx;
|
||||||
|
line-height: 110rpx;
|
||||||
|
border-bottom: 1rpx solid #D8D4D4;
|
||||||
|
|
||||||
|
.address {
|
||||||
|
height: 40rpx;
|
||||||
|
// font-size: 30rpx;
|
||||||
|
line-height: 40rpx;
|
||||||
|
display: inline-block;
|
||||||
|
width: 80%;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.user {
|
||||||
|
width: 100%;
|
||||||
|
height: 500rpx;
|
||||||
|
background: #4C7BC9;
|
||||||
|
position: relative;
|
||||||
|
color: #FFFFFF;
|
||||||
|
|
||||||
|
.modify {
|
||||||
|
font-size: 32rpx;
|
||||||
|
position: absolute;
|
||||||
|
right: 3%;
|
||||||
|
top: 22%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nickname {
|
||||||
|
position: absolute;
|
||||||
|
top: 26%;
|
||||||
|
left: 33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.phone {
|
||||||
|
position: absolute;
|
||||||
|
top: 13%;
|
||||||
|
left: 33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img {
|
||||||
|
width: 150rpx;
|
||||||
|
height: 150rpx;
|
||||||
|
position: absolute;
|
||||||
|
top: 10%;
|
||||||
|
left: 8%;
|
||||||
|
|
||||||
|
image {
|
||||||
|
border-radius: 50%;
|
||||||
|
width: 130rpx;
|
||||||
|
margin-left: 50%;
|
||||||
|
margin-top: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
height: 130rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
80
pages/register/register.scss
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
.app {
|
||||||
|
font-family: DengXian;
|
||||||
|
color: #C3C1C1;
|
||||||
|
font-weight: 400;
|
||||||
|
|
||||||
|
.switch {
|
||||||
|
text-align: center;
|
||||||
|
line-height: 60rpx;
|
||||||
|
color: #46ABD7;
|
||||||
|
position: absolute;
|
||||||
|
top: 66%;
|
||||||
|
left: 10%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loginbtn {
|
||||||
|
width: 80%;
|
||||||
|
height: 100rpx;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 100rpx;
|
||||||
|
background: #4C7BC9;
|
||||||
|
border-radius: 51rpx;
|
||||||
|
font-size: 41rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
position: absolute;
|
||||||
|
top: 57%;
|
||||||
|
left: 10%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loginphone {
|
||||||
|
background-color: #fff;
|
||||||
|
width: 80%;
|
||||||
|
height: 162rpx;
|
||||||
|
position: absolute;
|
||||||
|
left: 10%;
|
||||||
|
top: 23%;
|
||||||
|
|
||||||
|
input {
|
||||||
|
font-size: 40rpx;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .uni-input-placeholder {
|
||||||
|
padding-left: 40rpx;
|
||||||
|
font-size: 41rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #C3C1C1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.phone {
|
||||||
|
padding-left: 40rpx;
|
||||||
|
height: 100%;
|
||||||
|
box-shadow: 0px 9px 31px 9px rgba(0, 0, 0, 0.03);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.logincode {
|
||||||
|
position: absolute;
|
||||||
|
left: 10%;
|
||||||
|
|
||||||
|
::v-deep .u-input__input {
|
||||||
|
padding-left: 20rpx;
|
||||||
|
color: #000000;
|
||||||
|
font-size: 41rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
height: 50rpx;
|
||||||
|
font-size: 52rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #000000;
|
||||||
|
line-height: 44rpx;
|
||||||
|
position: absolute;
|
||||||
|
top: 13%;
|
||||||
|
left: 13%;
|
||||||
|
}
|
||||||
|
}
|
||||||
301
pages/register/register.vue
Normal file
@ -0,0 +1,301 @@
|
|||||||
|
<template>
|
||||||
|
<view class="app">
|
||||||
|
<view class="item">
|
||||||
|
<view class="lefttext">
|
||||||
|
姓名
|
||||||
|
</view>
|
||||||
|
<input class="righttext" type="text" placeholder="请输入" v-model="appPersonallist.nickName" />
|
||||||
|
</view>
|
||||||
|
<view class="item">
|
||||||
|
<view class="lefttext">
|
||||||
|
输入密码
|
||||||
|
</view>
|
||||||
|
<u-input class='righttext' style='left:30%' placeholder="请输入密码" maxlength="10"
|
||||||
|
v-model="appPersonallist.password" type="password" :border="false" :password-icon="true" />
|
||||||
|
</view>
|
||||||
|
<view class="item">
|
||||||
|
<view class="lefttext">
|
||||||
|
重复密码
|
||||||
|
</view>
|
||||||
|
<u-input class='righttext' style='left:30%' placeholder="请再次输入密码" maxlength="10"
|
||||||
|
v-model="appPersonallist.newpassword" type="password" :border="false" :password-icon="true" />
|
||||||
|
</view>
|
||||||
|
<view class="item">
|
||||||
|
<view class="lefttext">
|
||||||
|
手机号
|
||||||
|
</view>
|
||||||
|
<input class="righttext" style='left:23%' type="text" placeholder="请输入" maxlength="11"
|
||||||
|
v-model="appPersonallist.phonenumber" />
|
||||||
|
</view>
|
||||||
|
<view class="item" @tap='show=true'>
|
||||||
|
<span>护理站</span>
|
||||||
|
<text class='addition'>{{nurseStationName}}</text>
|
||||||
|
<u-select v-model="show" mode="single-column" :list="listinfo" @confirm="confirm"></u-select>
|
||||||
|
</view>
|
||||||
|
<view class="radio-content" @tap="changeRadio">
|
||||||
|
<view class="radio-right">
|
||||||
|
<view class="radio" :class="radio == 2 ? 'radio-default':''">
|
||||||
|
<view :class="radio == 2 ? 'radio-active':''"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<text class="agreement">我已阅读并同意</text>
|
||||||
|
<text @tap='maskshow=true;showRegectAgreeButton=false'>《用户协议》</text>
|
||||||
|
</view>
|
||||||
|
<view class="loginbtn" @tap='getInfo'>
|
||||||
|
注册
|
||||||
|
</view>
|
||||||
|
<view class="switch" style="right:5%" @tap='gologin'>
|
||||||
|
已有账号,去登录
|
||||||
|
</view>
|
||||||
|
<u-toast ref="uToast" />
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
nurseAppLoginSysUser,
|
||||||
|
personNurseStationLists
|
||||||
|
} from '../../api/register/index.js'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
listinfo: [],
|
||||||
|
show: false,
|
||||||
|
radio: 1, //用户协议
|
||||||
|
nickName: '',
|
||||||
|
userId: 13,
|
||||||
|
userName: 123,
|
||||||
|
nurseStationName: '',
|
||||||
|
pageSize: 999,
|
||||||
|
pageNum: 1,
|
||||||
|
total: 0,
|
||||||
|
appPersonallist: {
|
||||||
|
nickName: '',
|
||||||
|
newpassword: '',
|
||||||
|
phonenumber: '',
|
||||||
|
password: '',
|
||||||
|
nurseStationIds: '',
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.info()
|
||||||
|
},
|
||||||
|
onReachBottom() { //下滑加载
|
||||||
|
if (this.listinfo.length >= this.total) {} else {
|
||||||
|
this.pageNum++
|
||||||
|
personNurseStationLists(this.pageNum, this.pageSize).then(res => {
|
||||||
|
res.rows.forEach(e => {
|
||||||
|
this.list.push(e)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onPullDownRefresh() { //下拉刷新
|
||||||
|
this.pageNum = 1;
|
||||||
|
personNurseStationLists(this.PageNum, this.pageSize).then(res => {
|
||||||
|
this.listinfo = res.rows
|
||||||
|
this.total = res.total
|
||||||
|
})
|
||||||
|
setTimeout(function() {
|
||||||
|
uni.stopPullDownRefresh();
|
||||||
|
}, 1000);
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
//护理站
|
||||||
|
info() {
|
||||||
|
personNurseStationLists(this.pageNum, this.pageSize).then(res => {
|
||||||
|
console.log(res)
|
||||||
|
this.total = res.total
|
||||||
|
|
||||||
|
this.listinfo = res.rows.map((e) => {
|
||||||
|
return {
|
||||||
|
value: e.id,
|
||||||
|
label: e.nurseStationName,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
confirm(e) {
|
||||||
|
console.log(e);
|
||||||
|
this.appPersonallist.nurseStationIds = e[0].value
|
||||||
|
this.nurseStationName = e[0]['label']
|
||||||
|
console.log(e[0]['label'])
|
||||||
|
},
|
||||||
|
|
||||||
|
//注册功能
|
||||||
|
getInfo() {
|
||||||
|
this.appPersonallist.nurseStationIds = JSON.stringify(this.appPersonallist.nurseStationIds)
|
||||||
|
nurseAppLoginSysUser(this.appPersonallist).then(res => {
|
||||||
|
console.log(res)
|
||||||
|
if (this.password !== this.newpassword) {
|
||||||
|
this.$refs.uToast.show({
|
||||||
|
title: '密码输入不一致,请重新输入',
|
||||||
|
type: 'error',
|
||||||
|
duration: '1500'
|
||||||
|
})
|
||||||
|
} else if (res.code == 200) {
|
||||||
|
this.$refs.uToast.show({
|
||||||
|
title: '注册成功,前往登录',
|
||||||
|
type: 'success',
|
||||||
|
url: '/pages/login/login',
|
||||||
|
duration: '1500'
|
||||||
|
})
|
||||||
|
} else if (this.radio == 1) {
|
||||||
|
this.$refs.uToast.show({
|
||||||
|
title: '请审核并同意用户协议',
|
||||||
|
type: 'error'
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$refs.uToast.show({
|
||||||
|
title: res.msg,
|
||||||
|
type: 'error'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//跳转登录页
|
||||||
|
gologin() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/login/login?phonenumber=${this.phonenumber}&password=${this.password}`
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
changeRadio() {
|
||||||
|
if (this.radio == 1) {
|
||||||
|
this.radio = 2;
|
||||||
|
} else {
|
||||||
|
this.radio = 1;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.app {
|
||||||
|
height: 100vh;
|
||||||
|
padding: 20rpx 0;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
font-size: 34rpx;
|
||||||
|
margin: 0 auto 20rpx;
|
||||||
|
width: 94%;
|
||||||
|
height: 100rpx;
|
||||||
|
line-height: 100rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
|
||||||
|
border-radius: 20rpx;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
span {
|
||||||
|
margin-left: 3%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.addition {
|
||||||
|
line-height: 100rpx;
|
||||||
|
font-size: 34rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
margin-left: 3%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lefttext {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
left: 3%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.righttext {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
left: 18%;
|
||||||
|
height: 100rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lefttext,
|
||||||
|
.righttext {
|
||||||
|
::v-deep .uni-input-input {
|
||||||
|
font-size: 34rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .uni-input-wrapper {
|
||||||
|
height: 100rpx;
|
||||||
|
line-height: 100rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .uni-input-placeholder {
|
||||||
|
line-height: 100rpx;
|
||||||
|
font-size: 34rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #C3C1C1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.radio-content {
|
||||||
|
padding-top: 50rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
line-height: 11rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
|
||||||
|
.agreement {
|
||||||
|
color: #878987;
|
||||||
|
margin-left: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.radio-right {
|
||||||
|
margin-left: 20%;
|
||||||
|
|
||||||
|
.radio-default {
|
||||||
|
border: 2rpx solid #0fbda6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.radio {
|
||||||
|
width: 30rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
border-radius: 70%;
|
||||||
|
border: 2rpx solid #178ffb;
|
||||||
|
margin: 6px 25px -20rpx -5rpx;
|
||||||
|
|
||||||
|
.radio-active {
|
||||||
|
width: 16rpx;
|
||||||
|
height: 16rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
background-color: #178ffb;
|
||||||
|
margin-left: 22%;
|
||||||
|
margin-top: 22%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.switch {
|
||||||
|
text-align: center;
|
||||||
|
line-height: 60rpx;
|
||||||
|
color: #46ABD7;
|
||||||
|
position: absolute;
|
||||||
|
top: 70%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loginbtn {
|
||||||
|
width: 70%;
|
||||||
|
height: 100rpx;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 100rpx;
|
||||||
|
background: #4C7BC9;
|
||||||
|
border-radius: 51rpx;
|
||||||
|
font-size: 41rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
position: absolute;
|
||||||
|
top: 57%;
|
||||||
|
left: 15%;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
</style>
|
||||||
53
pages/startup/startup.vue
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<template>
|
||||||
|
<view class="app">
|
||||||
|
<image src="../../static/启动页.png" mode=""></image>
|
||||||
|
<view class="title">
|
||||||
|
泉医到家
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.info();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
info() {
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.reLaunch({
|
||||||
|
url: '/pages/login/login'
|
||||||
|
});
|
||||||
|
}, 2000);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
image {
|
||||||
|
width: 50%;
|
||||||
|
height: 200rpx;
|
||||||
|
position: absolute;
|
||||||
|
left: 25%;
|
||||||
|
top: 28%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
width: 80%;
|
||||||
|
height: 48rpx;
|
||||||
|
font-size: 49rpx;
|
||||||
|
text-align: center;
|
||||||
|
font-family: DengXian;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #000000;
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 10%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
209
pages/taskDetails/taskDetails.vue
Normal file
@ -0,0 +1,209 @@
|
|||||||
|
<template>
|
||||||
|
<view class="app">
|
||||||
|
<view class="details">
|
||||||
|
<image :src="baseurl+list.itemPictureUrl" mode=""></image>
|
||||||
|
<view class="detailsinfo">
|
||||||
|
<view class="change">
|
||||||
|
{{list.nurseItemName}}
|
||||||
|
</view>
|
||||||
|
<view class="time">
|
||||||
|
服务时长: {{list.itemServeDurationUnit}}
|
||||||
|
</view>
|
||||||
|
<view class="price">
|
||||||
|
¥ {{list.totalPrice}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="info">
|
||||||
|
<view class="item">
|
||||||
|
姓名: {{list.patientName}}
|
||||||
|
</view>
|
||||||
|
<view class="item">
|
||||||
|
电话:{{list.phone}}
|
||||||
|
</view>
|
||||||
|
<view class="item" style="border:none;">
|
||||||
|
<view class="add" style="display:inline-block;">
|
||||||
|
地址:
|
||||||
|
</view>
|
||||||
|
<view class="address">
|
||||||
|
{{list.serviceAddress}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="submit">
|
||||||
|
<view class="return" @tap='goreturn'>
|
||||||
|
任务退回
|
||||||
|
</view>
|
||||||
|
<view class="finish" @tap='gocomplete'>
|
||||||
|
去完成
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
taskDetails
|
||||||
|
} from '@/api/taskDetails.js'
|
||||||
|
import baseurl from '@/api/baseurl.js'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
baseurl: '',
|
||||||
|
list: {},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
//详情接口
|
||||||
|
taskDetailsinfo(orderDetailsId) {
|
||||||
|
taskDetails(orderDetailsId).then(res => {
|
||||||
|
this.list = res.data
|
||||||
|
console.log(this.list)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
goreturn() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/taskReturn/taskReturn'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
gocomplete() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/confirmCompletion/confirmCompletion'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
onLoad(options) {
|
||||||
|
this.baseurl = baseurl
|
||||||
|
this.taskDetailsinfo(options.orderDetailsId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.app {
|
||||||
|
padding: 0;
|
||||||
|
// font-size: 35rpx;
|
||||||
|
height: 100vh;
|
||||||
|
padding: 3%;
|
||||||
|
|
||||||
|
.details {
|
||||||
|
width: 100%;
|
||||||
|
height: 250rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
|
||||||
|
border-radius: 20rpx;
|
||||||
|
margin: 0 auto;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 170rpx;
|
||||||
|
height: 170rpx;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
margin: 20rpx 0 0 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detailsinfo {
|
||||||
|
width: 60%;
|
||||||
|
height: 200rpx;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
position: absolute;
|
||||||
|
top: 12%;
|
||||||
|
left: 35%;
|
||||||
|
|
||||||
|
.change {
|
||||||
|
width: 100%;
|
||||||
|
color: #000000;
|
||||||
|
font-size: 34rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.time {
|
||||||
|
width: 100%;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #999999;
|
||||||
|
position: absolute;
|
||||||
|
top: 32%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.price {
|
||||||
|
width: 100%;
|
||||||
|
font-size: 30rpx;
|
||||||
|
color: #D43953;
|
||||||
|
position: absolute;
|
||||||
|
top: 65%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
width: 100%;
|
||||||
|
background: #FFFFFF;
|
||||||
|
box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
|
||||||
|
border-radius: 20rpx;
|
||||||
|
position: relative;
|
||||||
|
top: 20rpx;
|
||||||
|
|
||||||
|
|
||||||
|
.item {
|
||||||
|
line-height: 110rpx;
|
||||||
|
border-bottom: 1rpx solid #D8D4D4;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #000000;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
|
||||||
|
.add {
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
.address {
|
||||||
|
height: 100rpx;
|
||||||
|
line-height: 40rpx;
|
||||||
|
display: inline-block;
|
||||||
|
width: 80%;
|
||||||
|
margin-left: 100rpx;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.submit {
|
||||||
|
width: 100%;
|
||||||
|
height: 100rpx;
|
||||||
|
height: 68rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
text-align: center;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 80rpx;
|
||||||
|
// background-color: red;
|
||||||
|
left: 15%;
|
||||||
|
// padding: 20rpx;
|
||||||
|
|
||||||
|
.return {
|
||||||
|
width: 216rpx;
|
||||||
|
height: 68rpx;
|
||||||
|
background: #E1AE3C;
|
||||||
|
border-radius: 26rpx;
|
||||||
|
line-height: 68rpx;
|
||||||
|
display: inline-block;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.finish {
|
||||||
|
width: 217rpx;
|
||||||
|
height: 68rpx;
|
||||||
|
line-height: 68rpx;
|
||||||
|
background: #4C7BC9;
|
||||||
|
border-radius: 26rpx;
|
||||||
|
display: inline-block;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
76
pages/taskReturn/taskReturn.vue
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
<template>
|
||||||
|
<view class="app">
|
||||||
|
<view class="return">
|
||||||
|
<view class="reason">
|
||||||
|
退回原因
|
||||||
|
</view>
|
||||||
|
<view class="reason" style="border: none;margin: 20rpx 0 0 50rpx;">
|
||||||
|
<input type="text" placeholder="请填写" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="submit">
|
||||||
|
<view class="finish">
|
||||||
|
去完成
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.app {
|
||||||
|
padding: 0;
|
||||||
|
// font-size: 35rpx;
|
||||||
|
height: 100vh;
|
||||||
|
padding: 3%;
|
||||||
|
|
||||||
|
.return {
|
||||||
|
width: 98%;
|
||||||
|
height: 342rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
|
||||||
|
border-radius: 20rpx;
|
||||||
|
margin: 0 auto;
|
||||||
|
|
||||||
|
.reason {
|
||||||
|
width: 93%;
|
||||||
|
height: 80rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
color: #030303;
|
||||||
|
line-height: 80rpx;
|
||||||
|
border-bottom: 1rpx solid #D8D4D4;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.submit{
|
||||||
|
height: 68rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
text-align: center;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 80rpx;
|
||||||
|
left: 60%;
|
||||||
|
.finish{
|
||||||
|
width: 217rpx;
|
||||||
|
height: 68rpx;
|
||||||
|
line-height: 68rpx;
|
||||||
|
background: #4C7BC9;
|
||||||
|
border-radius: 26rpx;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
BIN
static/autograph.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
static/detailed.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
static/dingdan.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
static/evaluated.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
static/finished.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
static/fuwutu.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
static/gb.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
static/headportrait.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
static/home.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
static/home1.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
static/homepagew.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
static/homepagews.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
static/jiantou.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
static/order.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
static/person.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
static/pic.png
Normal file
|
After Width: | Height: | Size: 729 B |
BIN
static/radio.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
static/rowsright.png
Normal file
|
After Width: | Height: | Size: 638 B |
BIN
static/shopping.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
static/sousuo.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
static/user.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
static/users.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
static/启动页.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
77
uni.scss
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
/**
|
||||||
|
* 这里是uni-app内置的常用样式变量
|
||||||
|
*
|
||||||
|
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||||
|
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||||
|
*
|
||||||
|
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* 颜色变量 */
|
||||||
|
|
||||||
|
/* 行为相关颜色 */
|
||||||
|
@import 'uview-ui/theme.scss';
|
||||||
|
$uni-color-primary: #007aff;
|
||||||
|
$uni-color-success: #4cd964;
|
||||||
|
$uni-color-warning: #f0ad4e;
|
||||||
|
$uni-color-error: #dd524d;
|
||||||
|
|
||||||
|
/* 文字基本颜色 */
|
||||||
|
$uni-text-color:#333;//基本色
|
||||||
|
$uni-text-color-inverse:#fff;//反色
|
||||||
|
$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
|
||||||
|
$uni-text-color-placeholder: #808080;
|
||||||
|
$uni-text-color-disable:#c0c0c0;
|
||||||
|
|
||||||
|
/* 背景颜色 */
|
||||||
|
$uni-bg-color:#ffffff;
|
||||||
|
$uni-bg-color-grey:#f8f8f8;
|
||||||
|
$uni-bg-color-hover:#f1f1f1;//点击状态颜色
|
||||||
|
$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
|
||||||
|
|
||||||
|
/* 边框颜色 */
|
||||||
|
$uni-border-color:#c8c7cc;
|
||||||
|
|
||||||
|
/* 尺寸变量 */
|
||||||
|
|
||||||
|
/* 文字尺寸 */
|
||||||
|
$uni-font-size-sm:12px;
|
||||||
|
$uni-font-size-base:14px;
|
||||||
|
$uni-font-size-lg:16;
|
||||||
|
|
||||||
|
/* 图片尺寸 */
|
||||||
|
$uni-img-size-sm:20px;
|
||||||
|
$uni-img-size-base:26px;
|
||||||
|
$uni-img-size-lg:40px;
|
||||||
|
|
||||||
|
/* Border Radius */
|
||||||
|
$uni-border-radius-sm: 2px;
|
||||||
|
$uni-border-radius-base: 3px;
|
||||||
|
$uni-border-radius-lg: 6px;
|
||||||
|
$uni-border-radius-circle: 50%;
|
||||||
|
|
||||||
|
/* 水平间距 */
|
||||||
|
$uni-spacing-row-sm: 5px;
|
||||||
|
$uni-spacing-row-base: 10px;
|
||||||
|
$uni-spacing-row-lg: 15px;
|
||||||
|
|
||||||
|
/* 垂直间距 */
|
||||||
|
$uni-spacing-col-sm: 4px;
|
||||||
|
$uni-spacing-col-base: 8px;
|
||||||
|
$uni-spacing-col-lg: 12px;
|
||||||
|
|
||||||
|
/* 透明度 */
|
||||||
|
$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
|
||||||
|
|
||||||
|
/* 文章场景相关 */
|
||||||
|
$uni-color-title: #2C405A; // 文章标题颜色
|
||||||
|
$uni-font-size-title:20px;
|
||||||
|
$uni-color-subtitle: #555555; // 二级标题颜色
|
||||||
|
$uni-font-size-subtitle:26px;
|
||||||
|
$uni-color-paragraph: #3F536E; // 文章段落颜色
|
||||||
|
$uni-font-size-paragraph:15px;
|
||||||