diff --git a/api/Learningtraining/index.js b/api/Learningtraining/index.js new file mode 100644 index 0000000..2b0dbd7 --- /dev/null +++ b/api/Learningtraining/index.js @@ -0,0 +1,10 @@ +import request from "../request.js" + + +export function selectNurseAppletPersonTrainingParent(pageNum, pageSize, nurseStationPersonId) { + return request({ + url: `/nurseApplet/personLearn/getTrainingItemGroupInfo?pageNum=${pageNum}&pageSize=${pageSize}&nurseStationPersonId=${nurseStationPersonId}`, + method: 'GET' + }) +} + diff --git a/api/MyBenefits/MyBenefits.js b/api/MyBenefits/MyBenefits.js index 257131f..179e0a2 100644 --- a/api/MyBenefits/MyBenefits.js +++ b/api/MyBenefits/MyBenefits.js @@ -7,7 +7,6 @@ export function personRevenue(nurseStationPersonId, monthTime, monthStartTime, m method: 'GET' }) } - // 个人中心 我的收益 订单列表分页 export function personRevenueDetails(pageNum, pageSize, nurseStationPersonId, monthTime, monthStartTime, monthEndTime) { return request({ diff --git a/api/Orderdetails/index.js b/api/Orderdetails/index.js new file mode 100644 index 0000000..5214423 --- /dev/null +++ b/api/Orderdetails/index.js @@ -0,0 +1,15 @@ +import request from "../request.js" + +export function handCloseOrder() { + return request({ + url: `/monitor/payTask/handCloseOrder`, + method: 'GET' + }) +} + +export function getWaitPayTrainingOrderDetails(trainingOrderNo) { + return request({ + url: `/nurseApplet/personLearn/getWaitPayTrainingOrderDetails?trainingOrderNo=${trainingOrderNo}`, + method: 'GET' + }) +} diff --git a/api/Orderlearning/index.js b/api/Orderlearning/index.js new file mode 100644 index 0000000..54a9ab5 --- /dev/null +++ b/api/Orderlearning/index.js @@ -0,0 +1,8 @@ +import request from "../request.js" + +export function selectTrainingOrderItemList(trainingParentId, nurseStationPersonId, trainingOrderNo) { + return request({ + url: `/nurseApplet/personLearn/selectTrainingOrderItemList?trainingParentId=${trainingParentId}&nurseStationPersonId=${nurseStationPersonId}&trainingOrderNo=${trainingOrderNo}`, + method: 'GET' + }) +} diff --git a/api/Orderlist/index.js b/api/Orderlist/index.js new file mode 100644 index 0000000..cfa93b6 --- /dev/null +++ b/api/Orderlist/index.js @@ -0,0 +1,9 @@ +import request from "../request.js" + +//订单列表 +export function selectTrainingOrderItemGroupList(pageNum, pageSize, nurseStationPersonId) { + return request({ + url: `/nurseApplet/personLearn/selectTrainingOrderItemGroupList?pageNum=${pageNum}&pageSize=${pageSize}&nurseStationPersonId=${nurseStationPersonId}`, + method: 'GET' + }) +} diff --git a/api/Ordervideolearning/index.js b/api/Ordervideolearning/index.js new file mode 100644 index 0000000..476ac9f --- /dev/null +++ b/api/Ordervideolearning/index.js @@ -0,0 +1,26 @@ +import request from "../request.js" + + +export function selectTrainingOrderVideoDetails(trainingItemId, trainingOrderNo,trainingOrderDetailsId) { + return request({ + url: `/nurseApplet/personLearn/selectTrainingOrderVideoDetails?trainingItemId=${trainingItemId}&trainingOrderNo=${trainingOrderNo}&trainingOrderDetailsId=${trainingOrderDetailsId}`, + method: 'GET' + }) +} + + +//推出视频 +export function insertTrainingItemWatchRecord(data) { + return request({ + url: `/nurseApplet/personLearn/insertTrainingItemWatchRecord`, + method: 'POST', + data + }) +} +//播放视频 +export function getTrainingItemWatchRecord(trainingOrderId,trainingItemId,trainingItemDirectoryId,nurseStationPersonId) { + return request({ + url: `/nurseApplet/personLearn/getTrainingItemWatchRecord?trainingOrderId=${trainingOrderId}&trainingItemId=${trainingItemId}&trainingItemDirectoryId=${trainingItemDirectoryId}&nurseStationPersonId=${nurseStationPersonId}`, + method: 'GET', + }) +} \ No newline at end of file diff --git a/api/Videolearning/index.js b/api/Videolearning/index.js new file mode 100644 index 0000000..8f084cb --- /dev/null +++ b/api/Videolearning/index.js @@ -0,0 +1,27 @@ +import request from "../request.js" + + +export function selectNurseAppletPersonTrainingItemDetailsList(trainingItemId, nurseStationPersonId) { + return request({ + url: `/nurseApplet/personLearn/getTrainingItemDetailsInfo?trainingItemId=${trainingItemId}&nurseStationPersonId=${nurseStationPersonId}`, + method: 'GET' + }) +} + + +//推出视频 +export function insertTrainingItemWatchRecord(data) { + return request({ + url: `/nurseApplet/personLearn/insertTrainingItemWatchRecord`, + method: 'POST', + data + }) +} +//播放视频 +export function getTrainingItemWatchRecord(trainingOrderId, trainingItemId, trainingItemDirectoryId, + nurseStationPersonId) { + return request({ + url: `/nurseApplet/personLearn/getTrainingItemWatchRecord?trainingOrderId=${trainingOrderId}&trainingItemId=${trainingItemId}&trainingItemDirectoryId=${trainingItemDirectoryId}&nurseStationPersonId=${nurseStationPersonId}`, + method: 'GET', + }) +} diff --git a/api/homepage/index.js b/api/homepage/index.js index a7e6a4a..3706349 100644 --- a/api/homepage/index.js +++ b/api/homepage/index.js @@ -7,3 +7,12 @@ export function selectOrderByNursePersonCount(nurseStationPersonId) { method: 'GET' }) } + + +//护理新闻 +export function selectNurseNews(pageNum, pageSize) { + return request({ + url: `/nurseApplet/nearbyNursingStation/getHeathHousingList?pageNum=${pageNum}&pageSize=${pageSize}&informationCategoryType=${'NURSING_NEWS'}`, + method: 'GET' + }) +} diff --git a/api/learning/index.js b/api/learning/index.js new file mode 100644 index 0000000..46ab9ce --- /dev/null +++ b/api/learning/index.js @@ -0,0 +1,31 @@ +import request from "../request.js" + +export function selectNurseAppletPersonTrainingItemList(trainingParentId, nurseStationPersonId) { + return request({ + url: `/nurseApplet/personLearn/getTrainingVideoAndContentList?trainingParentId=${trainingParentId}&nurseStationPersonId=${nurseStationPersonId}`, + method: 'GET' + }) +} + +export function selectNurseAppletPersonTrainingParent(id, nurseStationPersonId) { + return request({ + url: `/nurseApplet/personLearn/getTrainingItemGroupInfo?pageNum=${1}&pageSize=${10}&id=${id}&nurseStationPersonId=${nurseStationPersonId}`, + method: 'GET' + }) +} +//生成订单 +export function trainingItemOrder(data) { + return request({ + url: `/nurseApplet/personLearn/buyTrainingItemOrder`, + method: 'POST', + data, + }) +} + +export function appletTrainingOrderPay(data) { + return request({ + url: `/nurseApp/weChatPayment/appletTrainingOrderPay`, + method: 'POST', + data, + }) +} diff --git a/api/request.js b/api/request.js index 02bfd08..6f87660 100644 --- a/api/request.js +++ b/api/request.js @@ -18,7 +18,7 @@ var request = function(config) { uni.removeStorageSync('token'); uni.removeStorageSync('nursePersonId'); uni.removeStorageSync('phone'); - uni.reLaunch({ + uni.navigateTo({ url: '/pages/login/login' }) } else if (res.data.code == 500) { diff --git a/manifest.json b/manifest.json index 9c415f1..cfc2b92 100644 --- a/manifest.json +++ b/manifest.json @@ -2,8 +2,8 @@ "name" : "泉医助手", "appid" : "__UNI__EE607B0", "description" : "", - "versionName" : "1.0.6", - "versionCode" : 106, + "versionName" : "1.0.7", + "versionCode" : 107, "transformPx" : false, /* 5+App特有相关 */ "app-plus" : { @@ -20,7 +20,8 @@ "modules" : { "Geolocation" : {}, "Maps" : {}, - "Camera" : {} + "Camera" : {}, + "VideoPlayer" : {} }, /* 应用发布信息 */ "distribute" : { diff --git a/package-lock.json b/package-lock.json index 9e0ad38..12f84de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,24 +1,27 @@ { - "name": "NurseStationPersonApp", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "dependencies": { - "uview-ui": "^1.8.4" - } + "name": "签名组件-兼容H5、小程序、APP", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "签名组件-兼容H5、小程序、APP", + "version": "1.0.0", + "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==" + } }, - "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==" + } } - }, - "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==" - } - } } diff --git a/package.json b/package.json index e9e53a2..d5f0107 100644 --- a/package.json +++ b/package.json @@ -5,5 +5,8 @@ "description": "用于uni-app的签名组件,支持H5、小程序、APP,可导出svg矢量图片。", "keywords": [ "签名,签字,svg,canvas" - ] -} \ No newline at end of file + ], + "dependencies": { + "uview-ui": "^1.8.4" + } +} diff --git a/pages.json b/pages.json index 4f3f94d..74561c2 100644 --- a/pages.json +++ b/pages.json @@ -4,28 +4,79 @@ }, "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages { - "path": "pages/startup/startup", - "style": { - "navigationBarTitleText": "", - "navigationStyle": "custom" - } - }, { "path": "pages/login/login", "style": { "navigationBarTitleText": "登录", "navigationStyle": "custom" } }, { + "path": "pages/forgotPassword/forgotPassword", + "style": { + "navigationBarTitleText": "忘记密码" + } + }, { + "path": "pages/register/register", + "style": { + "navigationBarTitleText": "注册" + } + }, { + "path": "pages/startup/startup", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + }, { + "path": "pages/personal/personal", + "style": { + "navigationBarTitleText": "个人信息", + "navigationStyle": "custom" + } + }, { + "path": "pages/Learningtraining/Learningtraining", + "style": { + "navigationBarTitleText": "学习培训", + "onReachBottomDistance": 50, //距离底部多远时触发 单位为px + "enablePullDownRefresh": true //设置参数为true + } + }, { + "path": "pages/learning/learning", + "style": { + "navigationBarTitleText": "课程详情", + "enablePullDownRefresh": false //设置参数为true + } + }, { + "path": "pages/Orderlearning/Orderlearning", + "style": { + "navigationBarTitleText": "我的学习", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/Healthitem/Healthitem", + "style": { + "navigationBarTitleText": "护理新闻", + "enablePullDownRefresh": false + } + }, + { "path": "pages/Healthknowledge/Healthknowledge", "style": { "navigationBarTitleText": "护理新闻", + "onReachBottomDistance": 50, //距离底部多远时触发 单位为px + "enablePullDownRefresh": true //设置参数为true + } + }, { + "path": "pages/confirmCompletion/confirmCompletion", + "style": { + "navigationBarTitleText": "当前工单", "enablePullDownRefresh": false } }, { "path": "pages/MyBenefits/MyBenefits", "style": { "navigationBarTitleText": "我的收益", - "enablePullDownRefresh": false + "onReachBottomDistance": 50, //距离底部多远时触发 单位为px + "enablePullDownRefresh": true //设置参数为true } }, { "path": "pages/Modifyinformation/Modifyinformation", @@ -34,12 +85,6 @@ "enablePullDownRefresh": false // "navigationBarTextStyle": "white" } - }, { - "path": "pages/personal/personal", - "style": { - "navigationBarTitleText": "个人信息", - "navigationStyle": "custom" - } }, { "path": "pages/Mymission/Mymission", "style": { @@ -59,28 +104,12 @@ "navigationBarTitleText": "", "navigationStyle": "custom" } - }, { - "path": "pages/confirmCompletion/confirmCompletion", - "style": { - "navigationBarTitleText": "当前工单", - "enablePullDownRefresh": false - } }, { "path": "pages/taskReturn/taskReturn", "style": { "navigationBarTitleText": "退回原因", "enablePullDownRefresh": false } - }, { - "path": "pages/forgotPassword/forgotPassword", - "style": { - "navigationBarTitleText": "忘记密码" - } - }, { - "path": "pages/register/register", - "style": { - "navigationBarTitleText": "注册" - } }, { "path": "pages/signature/signature", "style": { @@ -96,9 +125,42 @@ }, { "path": "pages/study/study", "style": { - "navigationBarTitleText": "泉医助手", + "navigationBarTitleText": "", "enablePullDownRefresh": false } + }, { + "path": "pages/Orderlist/Orderlist", + "style": { + "navigationBarTitleText": "我的学习", + "onReachBottomDistance": 20, //距离底部多远时触发 单位为px + "enablePullDownRefresh": true //设置参数为true + } + }, { + "path": "pages/Orderdetails/Orderdetails", + "style": { + "navigationBarTitleText": "我的学习", + "enablePullDownRefresh": false + } + }, { + "path": "pages/Videolearning/Videolearning", + "style": { + "navigationBarTitleText": "视频学习", + "enablePullDownRefresh": false + } + + }, { + "path": "pages/Ordervideolearning/Ordervideolearning", + "style": { + "navigationBarTitleText": "视频学习", + "enablePullDownRefresh": false + } + }, { + "path": "pages/Imglearning/Imglearning", + "style": { + "navigationBarTitleText": "图文学习", + "enablePullDownRefresh": false + } + } ], "globalStyle": { diff --git a/pages/Healthitem/Healthitem.vue b/pages/Healthitem/Healthitem.vue new file mode 100644 index 0000000..faccc2a --- /dev/null +++ b/pages/Healthitem/Healthitem.vue @@ -0,0 +1,101 @@ + + + + diff --git a/pages/Healthknowledge/Healthknowledge.vue b/pages/Healthknowledge/Healthknowledge.vue index 7b9bf6b..c75f15f 100644 --- a/pages/Healthknowledge/Healthknowledge.vue +++ b/pages/Healthknowledge/Healthknowledge.vue @@ -1,10 +1,9 @@ + + diff --git a/pages/Learningtraining/Learningtraining.scss b/pages/Learningtraining/Learningtraining.scss new file mode 100644 index 0000000..ab3b900 --- /dev/null +++ b/pages/Learningtraining/Learningtraining.scss @@ -0,0 +1,71 @@ +.app { + color: #333333; + padding: 0 0 100rpx; + + .card { + width: 96%; + margin: 25rpx auto; + box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03); + + .item { + box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03); + border-radius: 5rpx; + width: 100%; + height: 600rpx; + position: relative; + margin-bottom: 15rpx; + background: #FFFFFF; + + image { + position: absolute; + top: 20rpx; + transform: translateX(-50%); + left: 50%; + border-radius: 5rpx; + width: 94%; + height: 400rpx; + } + + .text { + width: 70%; + font-size: 28rpx; + font-weight: 400; + color: #666666; + position: absolute; + bottom: 30rpx; + left: 30rpx; + text-overflow: -o-ellipsis-lastline; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 2; //行数需设置 + line-clamp: 2; + -webkit-box-orient: vertical; + } + + .price { + position: absolute; + bottom: 30rpx; + right: 40rpx; + color: #EA706A; + font-size: 31rpx; + font-weight: 500; + } + + .title { + font-size: 38rpx; + font-weight: 500; + position: absolute; + top: 440rpx; + left: 30rpx; + text-overflow: -o-ellipsis-lastline; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 1; //行数需设置 + line-clamp: 1; + -webkit-box-orient: vertical; + } + } + } + } \ No newline at end of file diff --git a/pages/Learningtraining/Learningtraining.vue b/pages/Learningtraining/Learningtraining.vue new file mode 100644 index 0000000..c1673b9 --- /dev/null +++ b/pages/Learningtraining/Learningtraining.vue @@ -0,0 +1,100 @@ + + + + diff --git a/pages/Orderdetails/Orderdetails.scss b/pages/Orderdetails/Orderdetails.scss new file mode 100644 index 0000000..e83e2c5 --- /dev/null +++ b/pages/Orderdetails/Orderdetails.scss @@ -0,0 +1,148 @@ +.app { + padding: 0; + + .buy { + background: #FFFFFF; + position: fixed; + bottom: 0; + height: 100rpx; + width: 100%; + + .logistics { + width: 216rpx; + height: 68rpx; + text-align: center; + color: #ffffff; + border-radius: 26rpx; + font-size: 36rpx; + line-height: 68rpx; + position: absolute; + right: 260rpx; + top: 50%; + background: #E1AE3C; + transform: translateY(-50%); + z-index: 999; + } + + .pay { + width: 216rpx; + height: 68rpx; + text-align: center; + color: #ffffff; + background: #4C7BC9; + border-radius: 26rpx; + font-size: 36rpx; + line-height: 68rpx; + position: absolute; + right: 20rpx; + top: 50%; + transform: translateY(-50%); + } + } + + .info { + padding: 30rpx 0; + height: 40%; + background: #FFFFFF; + box-shadow: 0px 9px 31px 9px rgba(0, 0, 0, 0.03); + border-radius: 20rpx; + width: 95%; + margin: 0 auto; + font-size: 30rpx; + color: #020000; + + span { + display: block; + line-height: 65rpx; + margin-left: 20rpx; + + text { + color: #BFBDBE; + word-break: break-all; + } + } + } + + .content { + width: 95%; + background: #FFFFFF; + box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03); + border-radius: 20rpx; + margin: 30rpx auto; + position: relative; + + .details { + height: 380rpx; + position: relative; + + .detailslist { + display: flex; + + image { + width: 182rpx; + height: 182rpx; + margin: 20rpx 0 0 20rpx; + } + + .model { + width: 70%; + margin: 30rpx 0 0 20rpx; + + span { + font-size: 32rpx; + color: #000000; + } + + span:nth-child(1) { + display: inline-block; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + width: 95%; + } + } + } + + .payinfo { + width: 95%; + position: absolute; + left: 2.5%; + bottom: 20rpx; + + .pay { + font-size: 30rpx; + color: #020000; + } + + .price { + float: right; + font-size: 41rpx; + color: #D43953; + margin-right: 10rpx; + } + } + } + } + + .trainingOrderStatus{ + text-align: center; + width: 300rpx; + height: 70rpx; + margin: 10rpx auto 0; + line-height: 70rpx; + background-color:#4C7BC9 ; + border-radius: 50rpx; + // color: #4C7BC9; + color: #FFFFFF; + border: 1rpx solid #4C7BC9; + } + .time { + height: 80rpx; + width: 95%; + text-align: center; + line-height: 80rpx; + background-color: #fff; + margin: 30rpx auto 0; + border-radius: 20rpx; + } + } \ No newline at end of file diff --git a/pages/Orderdetails/Orderdetails.vue b/pages/Orderdetails/Orderdetails.vue new file mode 100644 index 0000000..9e1d4e0 --- /dev/null +++ b/pages/Orderdetails/Orderdetails.vue @@ -0,0 +1,135 @@ + + + + + diff --git a/pages/Orderlearning/Orderlearning.scss b/pages/Orderlearning/Orderlearning.scss new file mode 100644 index 0000000..7a3bfa2 --- /dev/null +++ b/pages/Orderlearning/Orderlearning.scss @@ -0,0 +1,81 @@ +page { + background-color: #fff; + } + + .app { + padding: 0; + color: #000000; + + ::v-deep .u-tabs { + width: 70% !important; + } + + .directory { + padding-bottom: 200rpx; + background-color: #fff; + + .video {} + + .imagetext {} + + .items { + width: 87%; + margin: 30rpx auto; + + .item { + height: 130rpx; + position: relative; + margin-bottom: 37rpx; + + image { + width: 220rpx; + height: 130rpx; + } + + .title { + position: absolute; + top: 10rpx; + left: 240rpx; + font-size: 28rpx; + font-weight: 500; + color: #000000; + text-overflow: -o-ellipsis-lastline; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 1; //行数需设置 + line-clamp: 1; + -webkit-box-orient: vertical; + } + + .text { + position: absolute; + bottom: 10rpx; + left: 240rpx; + font-size: 22rpx; + color: #666666; + text-overflow: -o-ellipsis-lastline; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 2; //行数需设置 + line-clamp: 2; + -webkit-box-orient: vertical; + } + } + } + + .topheader { + height: 80rpx; + width: 92%; + margin: 0 auto; + border-bottom: 1rpx solid #e6e6e6; + padding-left: 10rpx; + line-height: 80rpx; + font-size: 32rpx; + font-weight: 500; + color: #333333; + } + + } + } \ No newline at end of file diff --git a/pages/Orderlearning/Orderlearning.vue b/pages/Orderlearning/Orderlearning.vue new file mode 100644 index 0000000..1be35fa --- /dev/null +++ b/pages/Orderlearning/Orderlearning.vue @@ -0,0 +1,130 @@ + + + + diff --git a/pages/Orderlist/Orderlist.scss b/pages/Orderlist/Orderlist.scss new file mode 100644 index 0000000..f338464 --- /dev/null +++ b/pages/Orderlist/Orderlist.scss @@ -0,0 +1,83 @@ +.app { + padding: 10rpx 0 100rpx; + + .noorder { + margin-top: 20%; + } + + .item { + width: 98%; + background: #FFFFFF; + box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03); + border-radius: 20rpx; + padding: 0 0 100rpx 0; + margin: 0 auto 15rpx; + position: relative; + + .name { + width: 95%; + height: 90rpx; + font-size: 30rpx; + color: #969394; + line-height: 90rpx; + border-bottom: 1rpx solid #D8D4D4; + margin: 0 auto; + + span { + color: #4C7BC9; + float: right; + } + + image { + width: 15rpx; + height: 23rpx; + padding-left: 25rpx; + } + } + + + .detailslist { + display: flex; + + image { + width: 182rpx; + height: 182rpx; + margin: 20rpx 0 0 20rpx; + } + + .model { + width: 70%; + margin: 30rpx 0 0 20rpx; + + span { + font-size: 34rpx; + color: #000000; + } + + span:nth-child(1) { + display: inline-block; + width: 70%; + } + + span:nth-child(2) { + color: #969394; + float: right; + margin-right: 30rpx; + } + } + } + + .submit { + width: 25%; + height: 68rpx; + line-height: 68rpx; + background: #4C7BC9; + border-radius: 26rpx; + text-align: center; + font-size: 32rpx; + color: #FFFFFF; + position: absolute; + right: 2%; + } + } + } \ No newline at end of file diff --git a/pages/Orderlist/Orderlist.vue b/pages/Orderlist/Orderlist.vue new file mode 100644 index 0000000..0aa7bed --- /dev/null +++ b/pages/Orderlist/Orderlist.vue @@ -0,0 +1,111 @@ + + + + diff --git a/pages/Ordervideolearning/Ordervideolearning.scss b/pages/Ordervideolearning/Ordervideolearning.scss new file mode 100644 index 0000000..118069b --- /dev/null +++ b/pages/Ordervideolearning/Ordervideolearning.scss @@ -0,0 +1,238 @@ +.app { + width: 96%; + padding: 0; + margin: 15rpx auto; + color: #666666; + background-color: #fff; + .popup { + position: fixed; + bottom: 0; + + .buyselect { + width: 100%; + height: 100rpx; + margin: 40rpx auto 0; + position: absolute; + top: 100rpx; + + image { + position: absolute; + top: 50%; + left: 48rpx; + transform: translateY(-50%); + width: 70rpx; + height: 70rpx; + } + + .text { + position: absolute; + left: 150rpx; + top: 50%; + transform: translateY(-50%); + line-height: 100rpx; + font-size: 32rpx; + } + } + + .buybtn { + width: 70%; + height: 70rpx; + background: #4271B9; + border-radius: 5rpx; + line-height: 70rpx; + color: #fff; + text-align: center; + position: absolute; + bottom: 40rpx; + left: 15%; + } + + .popuptitle { + width: 100%; + font-size: 41rpx; + text-align: center; + position: absolute; + top: 40rpx; + } + } + .bottomitem { + position: fixed; + bottom: 0; + width: 100%; + height: 150rpx; + background: #FFFFFF; + box-shadow: 0rpx 1rpx 21rpx 0rpx rgba(204, 204, 204, 0.75); + + .buy { + width: 150rpx; + height: 70rpx; + background: #4271B9; + line-height: 70rpx; + border-radius: 5rpx; + text-align: center; + color: #fff; + position: absolute; + right: 50rpx; + top: 50%; + transform: translateY(-50%); + } + + .price { + position: absolute; + left: 50rpx; + top: 50%; + transform: translateY(-50%); + font-size: 42rpx; + font-weight: 500; + color: #EA706A; + line-height: 130rpx; + } + } + .directory { + padding-bottom: 420rpx; + + .item { + position: relative; + width: 96%; + margin: 0 auto; + padding-bottom: 35rpx; + border-bottom: 1rpx solid #E6E6E6; + color: #888787; + + .play { + font-size: 24rpx; + width: 141rpx; + height: 52rpx; + background: #E6E6E6; + border-radius: 5rpx; + line-height: 52rpx; + text-align: center; + position: absolute; + right: 30rpx; + top: 50%; + transform: translateY(-50%); + image{ + width: 24rpx; + height: 24rpx; + position: absolute; + top:50%; + transform: translateY(-50%); + left:10%; + } + view{ + position: absolute; + top:50%; + transform: translateY(-50%); + right:10%; + } + } + + .Introduce { + width: 300rpx; + font-size: 26rpx; + line-height: 36rpx; + margin: 18rpx 0 0 176rpx; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + .text { + margin-top: 40rpx; + + .DirectoryName { + display: inline-block; + width: 176rpx; + font-size: 28rpx; + font-weight: 400; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + text-align: center; + } + + .texttitle { + display: inline-block; + width: 300rpx; + font-size: 32rpx; + font-weight: 400; + color: #666666; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + } + } + } + + .bottom { + width: 100%; + height: 160rpx; + background: #FFFFFF; + box-shadow: 0rpx 1rpx 21rpx 0rpx rgba(204, 204, 204, 0.75); + position: fixed; + bottom: 0; + + .buy { + width: 140rpx; + height: 60rpx; + background: #4271B9; + border-radius: 5rpx; + color: #fff; + text-align: center; + line-height: 60rpx; + position: absolute; + right: 60rpx; + top: 50%; + transform: translateY(-50%); + } + + .price { + font-size: 42rpx; + font-weight: 500; + color: #EA706A; + line-height: 120rpx; + position: absolute; + left: 44rpx; + top: 50%; + transform: translateY(-50%); + } + } + + .detail { + width: 90%; + margin: 40rpx auto 0; + font-size: 32rpx; + padding-bottom: 420rpx; + } + + ::v-deep .u-tabs { + width: 50% !important; + } + + .border { + width: 94%; + margin: 40rpx auto; + border-bottom: 1rpx solid #E6E6E6; + } + + .time { + font-size: 30rpx; + margin: 21rpx 0 0 20rpx; + } + + .title { + font-size: 38rpx; + font-weight: 500; + color: #000000; + line-height: 36rpx; + margin: 36rpx 0 0 20rpx; + } + + .topimage { + display: block; + width: 100%; + height: 407rpx; + border-radius: 5rpx; + } + } \ No newline at end of file diff --git a/pages/Ordervideolearning/Ordervideolearning.vue b/pages/Ordervideolearning/Ordervideolearning.vue new file mode 100644 index 0000000..753cc4a --- /dev/null +++ b/pages/Ordervideolearning/Ordervideolearning.vue @@ -0,0 +1,435 @@ + + + + diff --git a/pages/Videolearning/Videolearning.scss b/pages/Videolearning/Videolearning.scss new file mode 100644 index 0000000..20f4440 --- /dev/null +++ b/pages/Videolearning/Videolearning.scss @@ -0,0 +1,238 @@ + .app { + width: 96%; + padding: 0; + margin: 15rpx auto; + color: #666666; + background-color: #fff; + .popup { + position: fixed; + bottom: 0; + + .buyselect { + width: 100%; + height: 100rpx; + margin: 40rpx auto 0; + position: absolute; + top: 100rpx; + + image { + position: absolute; + top: 50%; + left: 48rpx; + transform: translateY(-50%); + width: 70rpx; + height: 70rpx; + } + + .text { + position: absolute; + left: 150rpx; + top: 50%; + transform: translateY(-50%); + line-height: 100rpx; + font-size: 32rpx; + } + } + + .buybtn { + width: 70%; + height: 70rpx; + background: #4271B9; + border-radius: 5rpx; + line-height: 70rpx; + color: #fff; + text-align: center; + position: absolute; + bottom: 40rpx; + left: 15%; + } + + .popuptitle { + width: 100%; + font-size: 41rpx; + text-align: center; + position: absolute; + top: 40rpx; + } + } + .bottomitem { + position: fixed; + bottom: 0; + width: 100%; + height: 150rpx; + background: #FFFFFF; + box-shadow: 0rpx 1rpx 21rpx 0rpx rgba(204, 204, 204, 0.75); + + .buy { + width: 150rpx; + height: 70rpx; + background: #4271B9; + line-height: 70rpx; + border-radius: 5rpx; + text-align: center; + color: #fff; + position: absolute; + right: 50rpx; + top: 50%; + transform: translateY(-50%); + } + + .price { + position: absolute; + left: 50rpx; + top: 50%; + transform: translateY(-50%); + font-size: 42rpx; + font-weight: 500; + color: #EA706A; + line-height: 130rpx; + } + } + .directory { + padding-bottom: 420rpx; + + .item { + position: relative; + width: 96%; + margin: 0 auto; + padding-bottom: 35rpx; + border-bottom: 1rpx solid #E6E6E6; + color: #888787; + + .play { + font-size: 24rpx; + width: 141rpx; + height: 52rpx; + background: #E6E6E6; + border-radius: 5rpx; + line-height: 52rpx; + text-align: center; + position: absolute; + right: 30rpx; + top: 50%; + transform: translateY(-50%); + image{ + width: 24rpx; + height: 24rpx; + position: absolute; + top:50%; + transform: translateY(-50%); + left:10%; + } + view{ + position: absolute; + top:50%; + transform: translateY(-50%); + right:10%; + } + } + + .Introduce { + width: 300rpx; + font-size: 26rpx; + line-height: 36rpx; + margin: 18rpx 0 0 176rpx; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + .text { + margin-top: 40rpx; + + .DirectoryName { + display: inline-block; + width: 176rpx; + font-size: 28rpx; + font-weight: 400; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + text-align: center; + } + + .texttitle { + display: inline-block; + width: 300rpx; + font-size: 32rpx; + font-weight: 400; + color: #666666; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + } + } + } + + .bottom { + width: 100%; + height: 160rpx; + background: #FFFFFF; + box-shadow: 0rpx 1rpx 21rpx 0rpx rgba(204, 204, 204, 0.75); + position: fixed; + bottom: 0; + + .buy { + width: 140rpx; + height: 60rpx; + background: #4271B9; + border-radius: 5rpx; + color: #fff; + text-align: center; + line-height: 60rpx; + position: absolute; + right: 60rpx; + top: 50%; + transform: translateY(-50%); + } + + .price { + font-size: 42rpx; + font-weight: 500; + color: #EA706A; + line-height: 120rpx; + position: absolute; + left: 44rpx; + top: 50%; + transform: translateY(-50%); + } + } + + .detail { + width: 90%; + margin: 40rpx auto 0; + font-size: 32rpx; + padding-bottom: 420rpx; + } + + ::v-deep .u-tabs { + width: 50% !important; + } + + .border { + width: 94%; + margin: 40rpx auto; + border-bottom: 1rpx solid #E6E6E6; + } + + .time { + font-size: 30rpx; + margin: 21rpx 0 0 20rpx; + } + + .title { + font-size: 38rpx; + font-weight: 500; + color: #000000; + line-height: 36rpx; + margin: 36rpx 0 0 20rpx; + } + + .topimage { + display: block; + width: 100%; + height: 407rpx; + border-radius: 5rpx; + } + } \ No newline at end of file diff --git a/pages/Videolearning/Videolearning.vue b/pages/Videolearning/Videolearning.vue new file mode 100644 index 0000000..e77327b --- /dev/null +++ b/pages/Videolearning/Videolearning.vue @@ -0,0 +1,424 @@ + + + + diff --git a/pages/confirmCompletion/confirmCompletion.vue b/pages/confirmCompletion/confirmCompletion.vue index a418df4..ee0a9dc 100644 --- a/pages/confirmCompletion/confirmCompletion.vue +++ b/pages/confirmCompletion/confirmCompletion.vue @@ -265,7 +265,7 @@ onShow() { var that = this uni.getLocation({ - type: 'gcj02', + type: 'wgs84', geocode: true, success: function(res) { that.list.serviceLocationName = res.address.poiName diff --git a/pages/homepage/homepage.vue b/pages/homepage/homepage.vue index f2be809..b39d62e 100644 --- a/pages/homepage/homepage.vue +++ b/pages/homepage/homepage.vue @@ -37,7 +37,7 @@ 在线学习 - + @@ -50,14 +50,11 @@ 查看更多 - - - + + + - 护理 I 致力于打造专业护理人才 - - - 生活小窍门,是指人们在日常生活中总结出来的知识和经验,和生活小常识非常相似 + {{item.informationTitle}} @@ -67,8 +64,12 @@ @@ -148,42 +167,36 @@ .item { position: relative; - height: 150rpx; + height: 170rpx; width: 100%; color: #666666; + padding: 0 0 20rpx; + margin: 20rpx 0; + border-bottom: 1rpx solid #cdc9c9; image { position: absolute; top: 0; left: 0; - width: 130rpx; - height: 130rpx; - } - - .centertext { - font-size: 22rpx; - position: absolute; - top: 60rpx; - left: 150rpx; - overflow: hidden; //超出的文本隐藏 - display: -webkit-box; - -webkit-line-clamp: 2; // 超出多少行 - -webkit-box-orient: vertical; + width: 150rpx; + height: 150rpx; } .toptext { - font-size: 30rpx; + line-height: 30rpx; + font-size: 26rpx; position: absolute; top: 5rpx; - left: 150rpx; - width: 75%; - overflow: hidden; //超出的文本隐藏 + left: 170rpx; + width: 70%; + text-overflow: -o-ellipsis-lastline; + overflow: hidden; + text-overflow: ellipsis; display: -webkit-box; - -webkit-line-clamp: 1; // 超出多少行 + -webkit-line-clamp: 5; //行数需设置 + line-clamp: 5; -webkit-box-orient: vertical; - // overflow: hidden; //超出的文本隐藏 - // text-overflow: ellipsis; //溢出用省略号显示 - // white-space: nowrap; // 默认不换行; + text-align: justify; } } } diff --git a/pages/learning/learning.scss b/pages/learning/learning.scss new file mode 100644 index 0000000..13e073d --- /dev/null +++ b/pages/learning/learning.scss @@ -0,0 +1,226 @@ + + page { + background-color: #fff; + } + + .app { + padding: 0; + color: #000000; + text-align: justify; + + ::v-deep .u-tabs { + width: 70% !important; + } + + .content { + width: 96%; + margin: 0 auto; + // padding: 30rpx 15rpx 200rpx; + // background-color: #fff; + // text-indent: 2em; + } + + /deep/ .ptext { + margin-top: 20rpx; + } + + /deep/ .ptext:nth-child(1) { + text-indent: 2em; + } + + /deep/ .ql-size-small { + font-size: 20rpx; + } + + /deep/ .ql-size-large { + font-size: 36rpx; + } + + /deep/ .ql-size-huge { + font-size: 46rpx; + } + + /deep/ .richPic { + width: 100% !important; + height: 100% !important; + } + + .directory { + padding-bottom: 200rpx; + background-color: #fff; + + .video {} + + .imagetext {} + + .items { + width: 87%; + margin: 30rpx auto; + + .item { + height: 130rpx; + position: relative; + margin-bottom: 37rpx; + + image { + width: 220rpx; + height: 130rpx; + } + + .title { + position: absolute; + top: 10rpx; + left: 240rpx; + font-size: 28rpx; + font-weight: 500; + color: #000000; + text-overflow: -o-ellipsis-lastline; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 1; //行数需设置 + line-clamp: 1; + -webkit-box-orient: vertical; + } + + .text { + position: absolute; + bottom: 10rpx; + left: 240rpx; + font-size: 22rpx; + color: #666666; + text-overflow: -o-ellipsis-lastline; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 2; //行数需设置 + line-clamp: 2; + -webkit-box-orient: vertical; + } + } + } + + .topheader { + height: 80rpx; + width: 92%; + margin: 0 auto; + border-bottom: 1rpx solid #e6e6e6; + padding-left: 10rpx; + line-height: 80rpx; + font-size: 32rpx; + font-weight: 500; + color: #333333; + } + + } + + .bottomitem { + position: fixed; + bottom: 0; + width: 100%; + height: 150rpx; + background: #FFFFFF; + box-shadow: 0rpx 1rpx 21rpx 0rpx rgba(204, 204, 204, 0.75); + + .buy { + width: 150rpx; + height: 70rpx; + background: #4271B9; + line-height: 70rpx; + border-radius: 5rpx; + text-align: center; + color: #fff; + position: absolute; + right: 50rpx; + top: 50%; + transform: translateY(-50%); + } + + .price { + position: absolute; + left: 50rpx; + top: 50%; + transform: translateY(-50%); + font-size: 42rpx; + font-weight: 500; + color: #EA706A; + line-height: 130rpx; + } + } + + .topitem { + background: #FFFFFF; + box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03); + border-radius: 5rpx; + width: 100%; + background-color: #fff; + margin: 0 auto; + padding-bottom: 40rpx; + + .toptitle { + font-weight: 600; + font-size: 38rpx; + padding-top: 32rpx; + margin: 0 0 0 53rpx; + } + + .toptext { + font-size: 28rpx; + font-weight: 400; + color: #666666; + margin: 31rpx 56rpx 0; + } + } + + .popup { + position: fixed; + bottom: 0; + + .buyselect { + width: 100%; + height: 100rpx; + margin: 40rpx auto 0; + position: absolute; + top: 100rpx; + + image { + position: absolute; + top: 50%; + left: 48rpx; + transform: translateY(-50%); + width: 70rpx; + height: 70rpx; + } + + .text { + position: absolute; + left: 150rpx; + top: 50%; + transform: translateY(-50%); + line-height: 100rpx; + font-size: 32rpx; + } + } + + .buybtn { + width: 70%; + height: 70rpx; + background: #4271B9; + border-radius: 5rpx; + line-height: 70rpx; + color: #fff; + text-align: center; + position: absolute; + bottom: 40rpx; + left: 15%; + } + + .popuptitle { + width: 100%; + font-size: 41rpx; + text-align: center; + position: absolute; + top: 40rpx; + } + } + } \ No newline at end of file diff --git a/pages/learning/learning.vue b/pages/learning/learning.vue new file mode 100644 index 0000000..b52fafb --- /dev/null +++ b/pages/learning/learning.vue @@ -0,0 +1,252 @@ + + + + diff --git a/pages/login/login.vue b/pages/login/login.vue index 69be368..20d5072 100644 --- a/pages/login/login.vue +++ b/pages/login/login.vue @@ -53,6 +53,8 @@ if (res.code == 200) { uni.setStorageSync("nursePersonId", res.data.nursePersonId) uni.setStorageSync("phone", res.data.phone) + uni.setStorageSync("nursePersonName", res.data.nursePersonName) + uni.setStorageSync("nurseStationId", res.data.nurseStationId) that.$refs.uToast.show({ title: '登录成功', type: 'success', diff --git a/pages/personal/personal.vue b/pages/personal/personal.vue index 7df4d92..c054d9e 100644 --- a/pages/personal/personal.vue +++ b/pages/personal/personal.vue @@ -55,7 +55,7 @@ 我的收益 - + 我的学习 @@ -149,6 +149,16 @@ }) }, //我的学习 + goOrderlist() { + const nursePersonId = uni.getStorageSync('nursePersonId'); + if (nursePersonId) { + uni.navigateTo({ + url: '/pages/Orderlist/Orderlist' + }) + } else { + this.gologin(); + } + }, gostudy() { uni.navigateTo({ url: '/pages/study/study' diff --git a/static/bofang.png b/static/bofang.png new file mode 100644 index 0000000..e2a7bc7 Binary files /dev/null and b/static/bofang.png differ diff --git a/static/dingyuejieshou.png b/static/dingyuejieshou.png new file mode 100644 index 0000000..ed76140 Binary files /dev/null and b/static/dingyuejieshou.png differ diff --git a/static/dingyuejujue.png b/static/dingyuejujue.png new file mode 100644 index 0000000..93ae7a7 Binary files /dev/null and b/static/dingyuejujue.png differ diff --git a/static/hlxw.png b/static/hlxw.png deleted file mode 100644 index 7259008..0000000 Binary files a/static/hlxw.png and /dev/null differ diff --git a/static/hlydingyue.png b/static/hlydingyue.png new file mode 100644 index 0000000..7dfe45a Binary files /dev/null and b/static/hlydingyue.png differ diff --git a/static/logo.png b/static/logo.png index b0e03a4..3f4fddb 100644 Binary files a/static/logo.png and b/static/logo.png differ diff --git a/static/shipin.png b/static/shipin.png new file mode 100644 index 0000000..7275067 Binary files /dev/null and b/static/shipin.png differ diff --git a/static/wechat.png b/static/wechat.png new file mode 100644 index 0000000..223dfed Binary files /dev/null and b/static/wechat.png differ