Compare commits

...

2 Commits

Author SHA1 Message Date
Lx
f734852127 0424-2 2025-04-24 17:54:31 +08:00
Lx
f3f3afa29a 0424 2025-04-24 17:47:43 +08:00
11 changed files with 316 additions and 87 deletions

View File

@ -8,22 +8,21 @@
</view>
</template>
<template v-else>
<view class="navigationBarBack" @click="back" >
<view class="navigationBarBack" @click="back">
<slot name="back">
<uni-icons size="24" type="left"
:color="titleColor"></uni-icons>
<uni-icons size="22px" type="left" :color="titleColor"></uni-icons>
</slot>
</view>
<view class="navigationBarTitle" :style="{ color: titleColor }">
{{ title }}
</view>
<view v-if="showClear" @click="clearNoReadFun" class="navigationBarIcon" :style="{ color: titleColor }">
<image src="@/static/imgs/clear.png" mode="" class="clear-icon"></image>
<image src="@/static/imgs/clear.png" mode="" class="clear-icon"></image>
</view>
</template>
<view class="navigationBarBackExtra">
<slot name="extra">
</slot>
</slot>
</view>
</view>
</template>
@ -85,9 +84,9 @@
back() {
uni.navigateBack()
},
clearNoReadFun(){
this.$emit('clearNoRead')
}
clearNoReadFun() {
this.$emit('clearNoRead')
}
}
}
</script>
@ -106,7 +105,7 @@
.navigationBarBack {
position: absolute;
left: 20rpx;
left: 30rpx;
}
.navigationBarBackExtra {
@ -118,13 +117,15 @@
font-size: 36rpx;
font-weight: bold;
}
.navigationBarIcon {
display: flex;
display: flex;
}
.clear-icon {
width: 40rpx;
height: 40rpx;
border-radius: 50%;
}
.clear-icon{
width: 40rpx;
height: 40rpx;
border-radius: 50%;
}
}
</style>
</style>

View File

@ -5,8 +5,8 @@ module.exports = {
imagesUrl: 'http://122.51.230.86:9000',
// baseUrl: 'https://www.nuoyunr.com',
baseUrl: 'http://192.168.1.27:48080',
appId:'wx684fc832e96cee65',
appSecret:'d1fecac806c5f3cd9aca9f3d5c3759c7',
appId: 'wx684fc832e96cee65',
appSecret: 'd1fecac806c5f3cd9aca9f3d5c3759c7',
// baseUrl: 'http://192.168.31.54:8016/jx',
// imagesUrl: 'http://192.168.31.54:8016/jx',
// 应用信息
@ -30,4 +30,4 @@ module.exports = {
}
]
}
}
}

View File

@ -276,9 +276,9 @@
getUserInfo() {
if (!getToken()) {
/* if (!getToken()) {
return;
}
} */
request({
url: '/app-api/small/dl-drive-school-student/getUsersInfo',
method: 'GET',
@ -372,6 +372,9 @@
await request({
url: "/app-api/system/notify-message/get-unread-count",
method: "GET",
params: {
systemCode: 'jiaxiao'
},
tenantIdFlag: false
}).then((res) => {
if (res.code == 0) {

View File

@ -38,7 +38,9 @@
<view class="itemContent">
<!-- 使用 scroll-view 包裹 SchoolInfo 组件 -->
<scroll-view class="scroll-view" scroll-y :style="{ height: scrollHeight + 'px' }">
<scroll-view class="scroll-view" scroll-y :style="{ height: scrollHeight + 'px' }"
@scrolltolower="onReachBottomCus" refresher-enabled @refresherrefresh="onRefresherrefresh"
:refresher-triggered="isTriggered">
<SchoolInfo style="" v-for="(school, index) in schoolList" :key="index" :schoolInfo="school"
@click="goSchoolDetail(school)" />
</scroll-view>
@ -89,6 +91,10 @@
url: '/static/lanhu_shouye2gai/pj.png',
text: '评价'
},
{
url: '/static/lanhu_shouye2gai/pj.png',
text: '业务办理指南'
},
],
swiperList: [],
msg: "1",
@ -340,6 +346,7 @@
case '学车报名':
uni.navigateTo({
url: '/newPages/schoolList/index'
// url: '/pagesA/guideContent/index'
});
break;
case '预约训练':

View File

@ -2,7 +2,7 @@
background-color: rgba(242, 244, 248, 1);
position: relative;
width: 750rpx;
height: 1624rpx;
height: 100vh;
overflow: hidden;
.block_1 {
background-color: rgba(255, 255, 255, 1);

View File

@ -26,7 +26,7 @@
<view class="map_body flex-col">
<view class="map_container"
@click="bookingInfoClick(schoolInfo.lat, schoolInfo.lgt, schoolInfo.corpName, schoolInfo.address)">
<image class="bg-img" src="/static/imgs/mapBackground.png" mode="scaleToFill" />
<image class="bg-img" src="/static/imgs/mapBackground-1.png" mode="scaleToFill" />
<view class="map-text-1">{{ schoolInfo.address }}</view>
<!-- <view class="map-text-2">距离 {{ distance }}</view> -->
<view class="map-text-2" v-if="showDistance">距离 {{ distance }} </view>
@ -376,7 +376,8 @@
params: {
tenantId: this.tenantId,
pageNo: 1,
pageSize: 100000
pageSize: 100000,
type: 'jl'
},
tenantIdFlag: false
}).then(res => {

View File

@ -0,0 +1,186 @@
<template>
<view class="container">
<VNavigationBar titleColor="rgba(0,0,0,0.9)" backgroundColor="#fff" title="业务办理指南"></VNavigationBar>
<view class="body">
<view class="header">
<view class="title line-clamp-3">{{ guideDetails.title }}</view>
<view class="time" v-if="guideDetails.updateTime">{{ getCurrentDateTime(guideDetails.updateTime) }}
</view>
</view>
<view class="content">
<u-parse :content="guideDetails.guide"></u-parse>
<!-- <u-parse :content="test"></u-parse> -->
</view>
</view>
</view>
</template>
<script>
import {
getJSONData
} from "@/utils/auth";
import VNavigationBar from '@/components/tabbar/VNavigationBar.vue'
import request from '@/utils/request.js'
export default {
name: "content",
components: {
VNavigationBar
},
filters: {
formatRichText(html) {
const nodes = parser.getRichTextJson(html)
return nodes.children
}
},
data() {
return {
richTextHtml: '',
toUrl: null,
tenantId: null,
guideDetails: [],
};
},
onLoad(data) {
console.log('data', data.tenantId)
this.tenantId = data.tenantId
this.getGuideByTenantId()
},
methods: {
getGuideByTenantId() {
request({
url: '/app-api/jx/driveSchool/smallProgram/guide/list',
method: 'GET',
params: {
// tenantId: this.tenantId
tenantId: '181'
}
}).then(res => {
const list = res.data || []
// updateTime
list.sort((a, b) => new Date(b.updateTime) - new Date(a.updateTime))
this.guideDetails = list.length > 0 ? list[0] : null
console.log('最新指南 guideDetails', this.guideDetails)
console.log('更新时间 guideDetails', this.guideDetails.updateTime)
})
},
//
getCurrentDateTime() {
const now = new Date();
const year = now.getFullYear();
const month = String(now.getMonth() + 1).padStart(2, '0');
const day = String(now.getDate()).padStart(2, '0');
const hours = String(now.getHours()).padStart(2, '0');
const minutes = String(now.getMinutes()).padStart(2, '0');
const seconds = String(now.getSeconds()).padStart(2, '0');
return `${year}-${month}-${day} ${hours}:${minutes}`;
// return now;
},
}
}
</script>
<style scoped lang="scss">
.container {
height: 100vh;
display: flex;
flex-direction: column;
background-color: #ffffff;
.body {
flex: 1;
padding: 24rpx 32rpx;
overflow-y: auto;
box-sizing: border-box;
.header {
margin-bottom: 40rpx;
padding-bottom: 24rpx;
border-bottom: 1rpx solid #f0f0f0;
.title {
font-size: 36rpx;
font-weight: 600;
color: #333333;
line-height: 1.5;
margin-bottom: 16rpx;
word-break: break-word;
white-space: normal;
}
.time {
font-size: 24rpx;
color: #999999;
}
}
.content {
font-size: 30rpx;
color: #333333;
line-height: 1.8;
/* 图片样式增强 */
img {
max-width: 100% !important;
/* 确保图片不超过容器宽度 */
height: auto !important;
/* 保持图片原始比例 */
display: block;
/* 改为块级元素避免间隙 */
margin: 32rpx auto;
/* 增加上下边距 */
border-radius: 12rpx;
/* 圆角效果 */
box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.08);
/* 轻微阴影提升层次感 */
background-color: #f8f8f8;
/* 加载时的背景色 */
}
/* 图片点击预览(可选) */
img {
cursor: pointer;
transition: transform 0.2s;
}
img:active {
transform: scale(0.98);
}
/* 其他富文本元素样式 */
p {
margin: 24rpx 0;
word-break: break-word;
}
h1,
h2,
h3 {
margin: 32rpx 0 24rpx;
font-weight: 600;
}
a {
color: #2979ff;
text-decoration: none;
}
table {
width: 100%;
border-collapse: collapse;
margin: 24rpx 0;
font-size: 28rpx;
}
th,
td {
border: 1rpx solid #e0e0e0;
padding: 16rpx;
text-align: left;
}
}
}
}
</style>

View File

@ -223,12 +223,12 @@
}
}
.group_6 {
background-color: rgba(255, 255, 255, 1);
background-color: rgba(255, 255, 255, 1);
border-radius: 8px;
width: 686rpx;
height: 278rpx;
// height: 278rpx;
justify-content: flex-center;
margin: 20rpx 0 342rpx 32rpx;
margin: 20rpx 0 20rpx 32rpx;
.text_8 {
width: 112rpx;
height: 28rpx;

View File

@ -7,8 +7,9 @@
<uni-icons type="left" color="#000000" size="22px"></uni-icons>
</headers>
</view>
<view :style="{ height: scrollHeight + 'px' }">
<view class="block_2 flex-col">
<view class="block_2 flex-col">
<scroll-view class="scroll-view" scroll-y="true" :style="{ height: scrollHeight + 'px' }">
<!-- <view class="group_1 flex-row">
<image
class="label_1"
@ -54,57 +55,37 @@
<view class="image-wrapper_2 flex-row justify-between">
<u-upload :fileList="idCardfileList" @afterRead="idCardAfterRead" @delete="idCardDelete"
:maxCount="2" width="300rpx" height="196rpx" margin-right="10rpx" :previewFullImage="true">
<!-- <view v-if="idCardList.length > 0" class="flex-row">
<image
v-for="(item, index) in idCardList"
:key="index"
class="image_3"
:style="{ marginRight: index === 0 ? '20rpx' : '0' }"
:src="imageUrl + '/' + item"
referrerpolicy="no-referrer"
/>
</view>
<image
v-else
class="image_3"
src="/static/lanhu_gerenxinxiweitianxie/FigmaDDSSlicePNG613ddce187a71bcc667c56c84cd2d022.png"
referrerpolicy="no-referrer"
/> -->
</u-upload>
</view>
</view>
<view class="group_6 flex-col" v-if="noN">
<text class="text_8">生活照片</text>
<view class="list_1 flex-row">
<u-upload :fileList="lifePhotoFileList" @afterRead="lifePhotoAfterRead"
@delete="lifePhotoDelete" :maxCount="3" :previewFullImage="true">
<!-- <view class="flex-row">
<view
class="list-items_1 flex-col"
v-for="(item, index) in lifePhotoList"
:key="index"
>
<image
class="list-items_1"
referrerpolicy="no-referrer"
:src="imageUrl + '/' + item"
/>
</view>
<image
v-if="lifePhotoList.length === 0"
class="list-items_1"
referrerpolicy="no-referrer"
src="/static/lanhu_gerenxinxiweitianxie/FigmaDDSSlicePNG6ea89e46a56641bc7e118ef1d4d789d5.png"
/>
</view> -->
</u-upload>
</view>
</view>
</view>
<!-- <view class="group_7 flex-col" v-if="noN ">
<text class="text_10">体检报告</text>
<view class="report-list flex-row">
<view class="report-item" v-for="(item, index) in examinationReportList" :key="index">
<image class="report-image" :src="item.url" mode="aspectFill" />
</view>
</view>
</view> -->
<view class="group_7 flex-col" v-if="noN ">
<text class="text_10">体检报告</text>
<u-album :urls="examinationReportList.map(item => item.url)" keyName="url" multipleSize="80"
rowCount="3" singleSize="200" previewFullImage="true"></u-album>
</view>
</scroll-view>
</view>
<view class="block_5 flex-col">
<view class="text-wrapper_4 flex-col" @click="handleSave">
<text class="text_9">保存</text>
@ -134,6 +115,7 @@
// idCardList: [],
// lifePhotoList: [],
lifePhotoFileList: [],
examinationReportList: [], //
imageUrl: this.$imagesUrl,
userDetails: {
userId: null,
@ -194,6 +176,7 @@
userId: this.userId
},
}).then(res => {
console.log('userDetails', res.data)
if (!res.data) {
this.noN = false;
this.userDetails = {
@ -242,8 +225,7 @@
response: {
url: `${this.imageUrl}/${url.trim()}`
}
})) :
[];
})) : [];
//
this.lifePhotoFileList = res.data.lifePhoto ?
@ -256,8 +238,15 @@
response: {
url: `${this.imageUrl}/${url.trim()}`
}
})) :
[];
})) : [];
this.examinationReportList = res.data.examinationReport ?
res.data.examinationReport.split(',')
.filter(url => url.trim())
.map(url => ({
url: `${this.imageUrl}/${url.trim()}`,
fileName: url.trim()
})) : [];
});
},
@ -383,7 +372,7 @@
//
const screenHeight = uni.getSystemInfoSync().windowHeight;
//
const topHeight = 145;
const topHeight = 150;
//
this.scrollHeight = screenHeight - topHeight;
},
@ -434,4 +423,40 @@
<style lang='scss'>
@import '../common/common.scss';
@import './assets/style/index.rpx.scss';
.group_7 {
margin-top: 30rpx;
padding: 0 30rpx;
background-color: rgba(255, 255, 255, 1);
border-radius: 16rpx;
margin-left: 32rpx;
margin-right: 32rpx;
.text_10 {
font-size: 28rpx;
color: #333;
margin-top: 20rpx;
margin-bottom: 20rpx;
font-weight: bold;
}
// u-album
::v-deep .u-album {
margin-top: 10rpx;
margin: auto;
margin-bottom: 20rpx;
//
.u-album__single-image {
border-radius: 8rpx;
box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1);
}
//
.u-album__image {
border-radius: 8rpx;
}
}
}
</style>

View File

@ -263,13 +263,9 @@
this.userId = this.userDetails.id,
this.userinfo = getLocalUserInfo()
this.localStaffType = getStaffType()
console.log('localCoachId', this.localCoachId);
console.log('userId', this.userId);
console.log('this.localStaffType', this.localStaffType);
if (this.localStaffType === '02') {
this.localCoachId = getCoachId()
}
console.log('localCoachId', this.localCoachId);
},
onShow() {
this.getListAll()
@ -347,8 +343,6 @@
},
tenantIdFlag: false
})
console.log('data', res.data)
// 1. subject23
const filteredData = res.data.filter(coach =>
coach.subject === '2' || coach.subject === '3'
@ -373,13 +367,9 @@
];
if (this.localStaffType === '02' && this.localCoachId) {
console.log('123123', this.localStaffType)
console.log('321321', this.localCoachId)
console.log('coach', uniqueCoaches) // 使
const defaultCoach = uniqueCoaches.find(coach =>
String(coach.coachId) === String(this.localCoachId)
);
console.log('111222333', defaultCoach)
if (defaultCoach) {
this.jlName = defaultCoach.coachName;
this.jlId = defaultCoach.coachId;
@ -458,13 +448,13 @@
//
async validateForm() {
if (!this.isDisabled && !this.sfzimg) {
/* if (!this.isDisabled && !this.sfzimg) {
uni.showToast({
title: '请上传身份证照片',
icon: 'error'
});
return false;
}
} */
if (!this.phone || !this.name || !this.identity) {
uni.showToast({
title: '请输入完整信息',
@ -923,11 +913,14 @@
if (this.localCoachId && this.localStaffType == '01') {
studentData.source = '01';
studentData.sourceUserId = getCoachId(); // IDID
this.sendMessages(this.name, this.rightInfoList.name, this.jlId)
} else if (this.localCoachId && this.localStaffType == '02') {
studentData.source = '02';
studentData.sourceUserId = getCoachId(); // IDID
this.sendMessages(this.name, this.rightInfoList.name, getCoachId())
} else {
studentData.source = '03'; //
this.sendMessages(this.name, this.rightInfoList.name, this.jlId)
}
request({
@ -1041,6 +1034,19 @@
return res.data.paymentStatus;
},
//
sendMessages(studentName, courseName, coachId) {
request({
url: '/app-api/small/drive/school-course-order/sendMessage',
method: 'GET',
params: {
studentName: studentName,
courseName: courseName,
coachId: coachId,
}
})
},
}
}
@ -1304,4 +1310,4 @@
.size-lv {
margin-right: 35px;
}
</style>
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB