Browse Source

写页面

master
unknown 1 year ago
parent
commit
774f9a6a9a
  1. 2
      common/css/app.scss
  2. 78
      pages.json
  3. 79
      pages/indexEntry/consult/consult.vue
  4. 322
      pages/indexEntry/consult/pubComplaint/pubComplaint.vue
  5. 225
      pages/indexEntry/consult/pubConsult/pubConsult.vue
  6. 142
      pages/indexEntry/consult/record/comp/complaintItem.vue
  7. 91
      pages/indexEntry/consult/record/comp/consultItem.vue
  8. 118
      pages/indexEntry/consult/record/record.vue
  9. 23
      pages/indexEntry/findShcool/coachComment/coachComment.vue
  10. 2
      pages/indexEntry/findShcool/findShcool.vue
  11. 87
      pages/indexEntry/findShcool/screen/screen.vue
  12. 15
      pages/indexEntry/findShcool/shcoolComment/shcoolComment.vue
  13. 19
      pages/indexEntry/findShcool/shcoolDetail/comp/tab3.vue
  14. 2
      pages/indexEntry/findShcool/shcoolDetail/shcoolDetail.vue
  15. 45
      pages/indexEntry/publicVideo/comp/videoItem.vue
  16. 45
      pages/indexEntry/publicVideo/publicVideo.vue
  17. 134
      pages/indexEntry/publicVideo/videoDetail/videoDetail.vue
  18. 17
      pages/indexEntry/theory/theory.vue
  19. 6
      pages/tabbar/index/index.vue
  20. 9
      site.config.js
  21. BIN
      static/images/index/btn_bofang.png
  22. BIN
      static/images/index/btn_tupian.png
  23. BIN
      static/images/index/dianzan_cli.png
  24. BIN
      static/images/index/dianzan_nor.png
  25. BIN
      static/images/index/edit.png
  26. BIN
      static/images/index/fenxiang_nor.png
  27. BIN
      static/images/index/ic_jilu.png
  28. BIN
      static/images/index/ic_tousu.png
  29. BIN
      static/images/index/ic_zixun.png
  30. BIN
      static/images/index/radio_cli.png
  31. BIN
      static/images/index/radio_nor.png
  32. BIN
      static/images/index/shoucang_cli.png
  33. BIN
      static/images/index/shoucang_nor.png
  34. BIN
      static/images/index/我的@2x.png
  35. BIN
      static/images/index/找考场_slices.zip
  36. BIN
      static/images/index/报名@2x.png
  37. BIN
      static/images/index/首页@2x.png

2
common/css/app.scss

@ -40,6 +40,8 @@ view {
}
.pageBgImg {
background: url('static/images/bigImg/topbg.png') #F6F6F6 no-repeat;
// background: linear-gradient(180deg, #B29BFF 0%, #4595FF 10%);
// filter: blur(16px);
color: #333;
// background: url('http://192.168.1.20:81/zhili/image/20230814/625b0f15924541cda70b4616f032d194.png') #F6F6F6 no-repeat;
background-size: 100% 362rpx;

78
pages.json

@ -51,7 +51,15 @@
}
},
{
"path": "findShcool/comments/comments",
"path": "findShcool/shcoolComment/shcoolComment",
"style": {
"navigationBarTitleText": "驾校评价",
"enablePullDownRefresh": true,
"backgroundTextStyle": "dark"
}
},
{
"path": "findShcool/coachComment/coachComment",
"style": {
"navigationBarTitleText": "教练评价",
"enablePullDownRefresh": true,
@ -59,6 +67,14 @@
}
},
{
"path": "findShcool/screen/screen",
"style": {
"navigationBarTitleText": "筛选",
"enablePullDownRefresh": true,
"backgroundTextStyle": "dark"
}
},
{
"path": "iIndustryInfo/iIndustryInfo",
"style": {
"navigationBarTitleText": "行业资讯",
@ -115,7 +131,7 @@
{
"path": "examines/newsDetail/newsDetail",
"style": {
"navigationBarTitleText": "考场信息资讯详情",
"navigationBarTitleText": "资讯详情",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
@ -124,12 +140,68 @@
{
"path": "theory/theory",
"style": {
"navigationBarTitleText": "考场信息资讯详情",
"navigationBarTitleText": "理论学习",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}
},
{
"path": "consult/consult",
"style": {
"navigationBarTitleText": "咨询投诉",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}
},
{
"path": "consult/pubConsult/pubConsult",
"style": {
"navigationBarTitleText": "我要咨询",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}
},
{
"path": "consult/pubComplaint/pubComplaint",
"style": {
"navigationBarTitleText": "我要咨询",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}
},
{
"path": "consult/record/record",
"style": {
"navigationBarTitleText": "我要咨询",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}
},
{
"path": "publicVideo/publicVideo",
"style": {
"navigationBarTitleText": "我要咨询",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}
},
{
"path": "publicVideo/videoDetail/videoDetail",
"style": {
"navigationBarTitleText": "我要咨询",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}
}
]
},
{

79
pages/indexEntry/consult/consult.vue

@ -0,0 +1,79 @@
<template>
<view class="pageBgImg">
<topNavbar title="咨询投诉"></topNavbar>
<view class="pad">
<view class="card">
<view class="tabBox">
<view class="tab" v-for="(item,index) in tabArr" :key="index" @click="$goPage(item.url)">
<view class="icon">
<image :src="item.icon" mode=""></image>
</view>
<view class="text">{{item.text}}</view>
</view>
</view>
</view>
<view class="question">
<view class="h1">常风问题</view>
<view class="card que">
<u-collapse :body-style="itemStyle" :border="false">
<u-collapse-item :title="item.head" v-for="(item, index) in itemList" :key="index" style="border-bottom: 1rpx solid #E8E9EC;">
{{item.body}}
</u-collapse-item>
</u-collapse>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
itemStyle: {
marginLeft:'20rpx',
},
itemList: [
{head: '画沙', body: '用手中的流沙画一个你呀,用手中的流沙画一个你呀,用手中的流沙画一个你呀,'}
],
tabArr: [
{text: '我要咨询', icon: require('../../../static/images/index/ic_zixun.png'), url:'/pages/indexEntry/consult/pubConsult/pubConsult', id: 1},
{text: '我要投诉', icon: require('../../../static/images/index/ic_tousu.png'), url: '/pages/indexEntry/consult/pubComplaint/pubComplaint', id: 2,},
{text: '查看记录', icon: require('../../../static/images/index/ic_jilu.png'), url: '/pages/indexEntry/consult/record/record', id: 3},
]
}
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.tabBox {
display: flex;
margin-top: 20rpx;
height: 192rpx;
.tab {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.icon {
width: 72rpx;
height: 72rpx;
}
.text {
font-size: 28rpx;
margin-top: 18rpx;
}
}
}
.h1 {
line-height: 100rpx;
}
.que {
padding: 28rpx;
}
</style>

322
pages/indexEntry/consult/pubComplaint/pubComplaint.vue

@ -0,0 +1,322 @@
<template>
<view class="pageBgImg">
<topNavbar title="我要咨询"></topNavbar>
<view class="pad">
<!-- 投诉类别 -->
<view class="card">
<view class="row">
<view class="label">投诉类别</view>
<view class="rightSelect">
<u-radio-group
v-model="form.radiovalue1"
>
<u-radio
:customStyle="{marginRight: '24rpx'}"
v-for="(item, index) in radiolist1"
:key="index"
:label="item.name"
:name="item.name"
>
</u-radio>
</u-radio-group>
</view>
</view>
</view>
<!-- 驾校名称 教练名称 -->
<view class="card">
<view class="row">
<view class="label">驾校名称</view>
<view @click="showShoolName=true" class="select_row my" >
<input v-model="form.classModel" placeholder="请选择" @click="showShoolName=true" disabled/></input>
<u-icon name="arrow-right" size="14" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
</view>
</view>
<view class="row">
<view class="label">教练名称</view>
<view @click="showShoolName=true" class="select_row" >
<input v-model="form.classModel" placeholder="请选择" @click="showShoolName=true" disabled/></input>
<u-icon name="arrow-right" size="14" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
</view>
</view>
</view>
<!-- 投诉类型 -->
<view class="card">
<view class="row">
<view class="label">投诉类型</view>
<view @click="showShoolName=true" class="select_row" >
<input v-model="form.classModel" placeholder="请选择" @click="showShoolName=true" disabled/></input>
<u-icon name="arrow-right" size="14" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
</view>
</view>
</view>
<!-- 咨询内容 -->
<view class="card" style="padding: 0 24rpx 24rpx 24rpx ;">
<view class="h2">咨询内容</view>
<view class="textareaBg">
<view class="flex">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
</view>
<view class="inputBox">
<u-textarea v-model="value" ref="textarea" placeholder="详细说明问题,以便获得更好的回答~"></u-textarea>
</view>
</view>
<view class="phoneBox">
<view class="imgBox">
<view class="img">
<view class="minusCircle">
<u-icon name="close-circle-fill" size="20" color="#b9061d"></u-icon>
</view>
<image src="../../../../static/logo.png" mode=""></image>
</view>
</view>
<view class="phone" @click="chooseImages">
<view class="phoneIcon">
<image src="@/static/images/index/btn_tupian.png" mode=""></image>
</view>
<view class="lab">添加图片</view>
</view>
</view>
</view>
</view>
<view class="card">
<view class="phone_row">
<view class="label">联系电话</view>
<view class="uInput my">
<u--input placeholder="输入手机号码,以便我们回复您!" v-model="value" border="none" type="number" fontSize="14"></u--input>
</view>
</view>
</view>
<view class="btn active">提交</view>
</view>
<u-picker :show="showShoolName" :columns="shoolArr" keyName="lab" @confirm="confirmSex" @cancel="showShoolName=false"></u-picker>
<!-- <u-picker :show="show" :columns="shoolArr" keyName="lab"></u-picker> -->
</view>
</template>
<script>
import { APP_API, APP_HOST } from '@/site.config.js';
const _url = APP_HOST + APP_API + '/util/manage/uploadFile.do';
export default {
data() {
return {
value: '',
imgArr: [],
showShoolName: false,
shoolArr: [
[
{lab: '翔力驾校',id: 1}
]
],
form: {
value: '投诉驾校'
},
radiolist1: [{
name: '投诉驾校',
disabled: false
},
{
name: '投诉教练',
disabled: false
},
],
}
},
methods: {
//
confirmSex(val) {
console.log(val)
this.showShoolName = false
},
//
chooseImages(type) {
let imgNum = 3 - (this.imgArr.length)
uni.chooseImage({
count: imgNum, //
sizeType: ['original', 'compressed'], //
sourceType: ['album', 'camera'], //
success: res => {
uni.showLoading({
title: '图片上传中...'
});
res.tempFilePaths.forEach( (item,index)=>{
this.uploadImgApi(item)
})
}
})
},
uploadImgApi(filePath) {
console.log(filePath)
let _this = this
//
uni.uploadFile({
url: _url,//
filePath: filePath,//
name: 'file',
formData: {
fileType: 1,
fileSuffix: "png"
},
header: {
token: uni.getStorageSync("Authorization") || '',
},
success(res) {
console.log('上传成功')
let res2 = JSON.parse(res.data)
_this.imgArr.push(res2.data)
console.log(res2)
uni.hideLoading();
},
complete: ()=> {}
})
},
}
}
</script>
<style lang="scss" scoped>
.pageBgImg {
.pad {}
.card {
margin-top: 20rpx;
.h2 {
font-size: 28rpx;
font-weight: 600;
line-height: 96rpx;
}
.textareaBg {
min-height: 364rpx;
background: #F8F8F8;
border-radius: 16rpx;
border: 2rpx solid #E8E9EC;
display: flex;
flex-direction: column;
justify-content: space-between;
.flex {
padding: 20rpx;
align-items: flex-start;
.icon {
width: 24rpx;
height: 24rpx;
margin: 0 14rpx 0 24rpx;
}
.inputBox {
flex: 1;
}
/deep/ .inputBox .u-textarea {
padding: 0 !important;
border: none !important;
background: none !important;
}
}
.phoneBox {
display: flex;
padding: 0 10rpx 20rpx 20rpx;
.imgBox {
display: flex;
.img {
margin-right: 14rpx;
position: relative;
width: 160rpx;
height: 160rpx;
image {
width: 160rpx;
height: 160rpx;
border-radius: 8rpx;
overflow: hidden;
}
.minusCircle {
position: absolute;
right: -14rpx;
top: -20rpx;
z-index: 9;
}
}
}
.phone {
border: 2rpx dashed #CDCED0;
width: 160rpx;
height: 160rpx;
background: #F8F8F8;
border-radius: 8rpx;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
.phoneIcon {
width: 60rpx;
height: 60rpx;
}
.lab {
font-size: 20rpx;
color: #686B73;
margin-top: 8rpx;
}
}
}
}
}
.phone_row {
display: flex;
height: 104rpx;
padding: 0 28rpx;
line-height: 104rpx;
.label {
font-size: 28rpx;
font-weight: 600;
margin-right: 50rpx;
}
.uInput {
flex: 1;
}
}
.btn {
width: 396rpx;
height: 72rpx;
background: #D1E7FE;
border-radius: 8rpx;
font-size: 28rpx;
text-align: center;
line-height: 72rpx;
margin: 100rpx auto 114rpx auto;
color: #fff;
&.active {
background: $themC;
}
}
}
.row {
height: 120rpx;
display: flex;
align-items: center;
padding-right: 30rpx;
.label {
font-size: 28rpx;
font-weight: 600;
width: 184rpx;
text-align: center;
}
.select_row {
display: flex;
align-items: center;
justify-content: space-between;
flex: 1;
input {
font-size: 28rpx;
color: #333;
}
}
}
</style>

225
pages/indexEntry/consult/pubConsult/pubConsult.vue

@ -0,0 +1,225 @@
<template>
<view class="pageBgImg">
<topNavbar title="我要咨询"></topNavbar>
<view class="pad">
<view class="card">
<view class="h2">咨询内容</view>
<view class="textareaBg">
<view class="flex">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
</view>
<view class="inputBox">
<u-textarea v-model="value" ref="textarea" placeholder="详细说明问题,以便获得更好的回答~"></u-textarea>
</view>
</view>
<view class="phoneBox">
<view class="imgBox">
<view class="img">
<view class="minusCircle">
<u-icon name="close-circle-fill" size="20" color="#b9061d"></u-icon>
</view>
<image src="../../../../static/logo.png" mode=""></image>
</view>
</view>
<view class="phone" @click="chooseImages">
<view class="phoneIcon">
<image src="@/static/images/index/btn_tupian.png" mode=""></image>
</view>
<view class="lab">添加图片</view>
</view>
</view>
</view>
</view>
<view class="card" style="padding-bottom: 0;">
<view class="phone_row">
<view class="label">联系电话</view>
<view class="uInput my">
<u--input placeholder="输入手机号码,以便我们回复您!" v-model="value" border="none" type="number" fontSize="14"></u--input>
</view>
</view>
</view>
<view class="btn active">提交</view>
</view>
</view>
</template>
<script>
import { APP_API, APP_HOST } from '@/site.config.js';
const _url = APP_HOST + APP_API + '/util/manage/uploadFile.do';
export default {
data() {
return {
value: '',
imgArr: [],
}
},
methods: {
//
chooseImages(type) {
let imgNum = 3 - (this.imgArr.length)
uni.chooseImage({
count: imgNum, //
sizeType: ['original', 'compressed'], //
sourceType: ['album', 'camera'], //
success: res => {
uni.showLoading({
title: '图片上传中...'
});
res.tempFilePaths.forEach( (item,index)=>{
this.uploadImgApi(item)
})
}
})
},
uploadImgApi(filePath) {
console.log(filePath)
let _this = this
//
uni.uploadFile({
url: _url,//
filePath: filePath,//
name: 'file',
formData: {
fileType: 1,
fileSuffix: "png"
},
header: {
token: uni.getStorageSync("Authorization") || '',
},
success(res) {
console.log('上传成功')
let res2 = JSON.parse(res.data)
_this.imgArr.push(res2.data)
console.log(res2)
uni.hideLoading();
},
complete: ()=> {}
})
},
}
}
</script>
<style lang="scss" scoped>
.pageBgImg {
.pad {}
.card {
padding: 0 24rpx 24rpx 24rpx ; margin-top: 20rpx;
.h2 {
font-size: 32rpx;
font-weight: 600;
line-height: 96rpx;
}
.textareaBg {
min-height: 364rpx;
background: #F8F8F8;
border-radius: 16rpx;
border: 2rpx solid #E8E9EC;
display: flex;
flex-direction: column;
justify-content: space-between;
.flex {
padding: 20rpx;
align-items: flex-start;
.icon {
width: 24rpx;
height: 24rpx;
margin: 0 14rpx 0 24rpx;
}
.inputBox {
flex: 1;
}
/deep/ .inputBox .u-textarea {
padding: 0 !important;
border: none !important;
background: none !important;
font-size: 24rpx
}
}
.phoneBox {
display: flex;
padding: 0 10rpx 20rpx 20rpx;
.imgBox {
display: flex;
.img {
margin-right: 14rpx;
position: relative;
image {
width: 160rpx;
height: 160rpx;
border-radius: 8rpx;
overflow: hidden;
}
.minusCircle {
position: absolute;
right: -14rpx;
top: -20rpx;
z-index: 9;
}
}
}
.phone {
border: 2rpx dashed #CDCED0;
width: 160rpx;
height: 160rpx;
background: #F8F8F8;
border-radius: 8rpx;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
.phoneIcon {
width: 60rpx;
height: 60rpx;
}
.lab {
font-size: 20rpx;
color: #686B73;
margin-top: 8rpx;
}
}
}
}
}
.phone_row {
display: flex;
height: 104rpx;
padding: 0 28rpx;
line-height: 104rpx;
.label {
font-size: 32rpx;
font-weight: 600;
margin-right: 50rpx;
}
.uInput {
flex: 1;
}
}
.btn {
width: 396rpx;
height: 72rpx;
background: #D1E7FE;
border-radius: 8rpx;
font-size: 28rpx;
text-align: center;
line-height: 72rpx;
margin: 100rpx auto 114rpx auto;
color: #fff;
&.active {
background: $themC;
}
}
}
</style>

142
pages/indexEntry/consult/record/comp/complaintItem.vue

@ -0,0 +1,142 @@
<template>
<view class="consultItem">
<view class="top_row">
<view class="flex">
<view class="tag">投诉教练</view>
<view class="tag">服务态度</view>
</view>
<view class="status">待处理</view>
</view>
<view class="target">
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
</view>
<view class="lab">驾校名称</view>
</view>
<view class="name">翔力驾校</view>
</view>
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
</view>
<view class="lab">教练名称</view>
</view>
<view class="name">翔力驾校</view>
</view>
</view>
<view class="content">
<view class="lab">问题描述</view>
<view class="text">能退学费吗</view>
</view>
<view class="border_bottom">
<view class="dateBox">
<view class="date">创建时间2022-01-04</view>
<!-- <view class="date">处理时间2022-01-04</view> -->
</view>
<view class="close_btn">关闭</view>
</view>
</view>
</template>
<script>
</script>
<style lang="scss" scoped>
.consultItem {
width: 100%;
.target {
border-bottom: 2rpx dashed #E8E9EC;
}
.row {
display: flex;
justify-content: space-between;
padding: 24rpx 0;
.leftLab {
display: flex;
align-items: center;
.icon {
width: 30rpx;
height: 30rpx;
}
.lab {
margin-left: 10rpx;
font-size: 28rpx;
color: #ADADAD;
}
}
.name {
font-size: 28rpx;
color: #333;
}
}
.top_row {
display: flex;
width: 100%;
height: 116rpx;
border-bottom: 2rpx dashed #E8E9EC;
justify-content: space-between;
align-items: center;
.tag {
width: 176rpx;
height: 60rpx;
background: rgba(38,144,12,0.1);
border-radius: 8rpx;
text-align: center;
line-height: 60rpx;
font-size: 28rpx;
color: #0D9269;
margin-right: 24rpx;
}
.status {
font-size: 28rpx;
color: $themC;
}
}
.content {
padding: 24rpx 0 50rpx 0;
font-size: 28rpx;
.lab {
color: #ADADAD;
margin-bottom: 4rpx;
}
.text {
}
}
.border_bottom {
border-top: 2rpx dashed #E8E9EC;
display: flex;
align-items: center;
justify-content: space-between;
padding: 30rpx 0 16rpx 0;
.dateBox {
.date {
font-size: 28rpx;
color: #ADADAD;
margin-bottom: 16rpx;
}
}
.close_btn {
width: 140rpx;
height: 60rpx;
background: #FFFFFF;
border-radius: 8rpx;
border: 2rpx solid #E8E9EC;
text-align: center;
line-height: 60rpx;
color: #ADADAD;
font-size: 28rpx;
}
}
}
</style>

91
pages/indexEntry/consult/record/comp/consultItem.vue

@ -0,0 +1,91 @@
<template>
<view class="consultItem">
<view class="top_row">
<view class="tag">咨询</view>
<view class="status">待处理</view>
</view>
<view class="content">
<view class="lab">问题描述</view>
<view class="text">能退学费吗</view>
</view>
<view class="border_bottom">
<view class="dateBox">
<view class="date">创建时间2022-01-04</view>
<!-- <view class="date">处理时间2022-01-04</view> -->
</view>
<view class="close_btn">关闭</view>
</view>
</view>
</template>
<script>
</script>
<style lang="scss" scoped>
.consultItem {
width: 100%;
.top_row {
display: flex;
width: 100%;
height: 116rpx;
border-bottom: 2rpx dashed #E8E9EC;
justify-content: space-between;
align-items: center;
.tag {
width: 120rpx;
height: 60rpx;
background: rgba(250,149,25,0.1);
border-radius: 8rpx;
text-align: center;
line-height: 60rpx;
font-size: 28rpx;
color: #FA7919;
}
.status {
font-size: 28rpx;
color: $themC;
}
}
.content {
padding: 24rpx 0 50rpx 0;
font-size: 28rpx;
.lab {
color: #ADADAD;
margin-bottom: 4rpx;
}
.text {
}
}
.border_bottom {
border-top: 2rpx dashed #E8E9EC;
display: flex;
align-items: center;
justify-content: space-between;
padding: 30rpx 0 10rpx 0;
.dateBox {
.date {
font-size: 28rpx;
color: #ADADAD;
margin-bottom: 16rpx;
}
}
.close_btn {
width: 140rpx;
height: 60rpx;
background: #FFFFFF;
border-radius: 8rpx;
border: 2rpx solid #E8E9EC;
text-align: center;
line-height: 60rpx;
color: #ADADAD;
font-size: 28rpx;
}
}
}
</style>

118
pages/indexEntry/consult/record/record.vue

@ -0,0 +1,118 @@
<template>
<view class="pageBgImg">
<topNavbar title="投诉咨询记录"></topNavbar>
<view class="pad">
<view class="tabs">
<view class="tab" v-for="(item,index) in tabList" :key="index" :class="{active: currentTab==item.id}" @click="changeTab(item)">{{ item.text }}</view>
</view>
<view class="navs">
<view class="nav" v-for="(item,index) in navList" :key="index" :class="{active: currentNav==item.id}" @click="changeNav(item)">{{ item.text }}</view>
</view>
<view class="recordTotal">100条记录</view>
<view class="tabCon" v-if="currentTab==1">
<view class="card" v-for="(item,index) in 10" :key="index">
<consultItem></consultItem>
</view>
</view>
<view class="tabCon" v-if="currentTab==2">
<view class="card" v-for="(item,index) in 10" :key="index">
<complaintItem></complaintItem>
</view>
</view>
</view>
</view>
</template>
<script>
import consultItem from './comp/consultItem'
import complaintItem from './comp/complaintItem'
export default {
components: { consultItem, complaintItem },
data() {
return {
tabList: [
{text: '我的咨询',id: 1},
{text: '我的投诉',id: 2},
],
navList: [
{text: '全部', id: 0},
{text: '待处理', id: 1},
{text: '已处理', id: 2},
{text: '已关闭', id: 3},
],
currentTab: 1,
currentNav: 0,
}
},
methods: {
changeTab(item) {
this.currentTab = item.id
},
changeNav(item) {
this.currentNav = item.id
},
}
}
</script>
<style lang="scss" scoped>
.card {
padding: 0 24rpx;
margin-bottom: 20rpx;
}
.tabs {
display: flex;
width: 100%;
height: 72rpx;
background: #FFFFFF;
border-radius: 16rpx;
margin-top: 20rpx;
.tab {
flex: 1;
text-align: center;
line-height: 72rpx;
color: #ADADAD;
&.active {
background: rgba(25,137,250,0.1);
border-radius: 16rpx;
border: 2rpx solid #1989FA;
color: $themC;
font-weight: 600;
}
}
}
.navs {
display: flex;
justify-content: space-between;
color: #fff;
font-size: 28rpx;
padding: 24rpx 0 40rpx 0;
color: #fff;
.nav {
&.active {
font-weight: 500;
position: relative;
&::before {
position: absolute;
left: 50%;
transform: translateX(-50%);
bottom: -20rpx;
content: '';
width: 56rpx;
height: 6rpx;
background: #FFFFFF;
border-radius: 3rpx;
}
}
}
}
.recordTotal {
font-size: 24rpx;
padding: 0rpx 0 28rpx 0;
text-align: right;
}
</style>

23
pages/indexEntry/findShcool/coachComment/coachComment.vue

@ -0,0 +1,23 @@
<template>
<view class="pageBg">
<view class="infoBox pad">
<info :showSign="true"></info>
</view>
<comments></comments>
</view>
</template>
<script>
import comments from '../comments/comments.vue'
import info from '../shcoolDetail/comp/tab3.vue'
export default {
components: { comments, info }
}
</script>
<style lang="scss" scoped>
.infoBox {
background: #F6F6F6;
overflow: hidden;
}
</style>

2
pages/indexEntry/findShcool/findShcool.vue

@ -8,7 +8,7 @@
<view class="navBox">
<view class="tab" v-for="(item,index) in tabData" :key="index" :class="{active: index==0}">
{{ item.text }}</view>
<view class="screen">
<view class="screen" @click="$goPage('/pages/indexEntry/findShcool/screen/screen')">
<view class="txt">筛选</view>
<view class="screenIcon">
<image src="../../../static/images/index/ic_shaixuan.png" mode=""></image>

87
pages/indexEntry/findShcool/screen/screen.vue

@ -0,0 +1,87 @@
<template>
<view class="pageBg">
<view class="pad">
<view class="type">
<view class="h1">驾照类型</view>
<view class="tagFlex">
<view class="tab" v-for="(item,index) in tagList" :class="{active: index==1}">{{ item.text }}</view>
</view>
</view>
<view class="region">
<view class="h1">区域</view>
</view>
<view class="btn_row">
<view class="btn border">重置</view>
<view class="btn">确定</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
tagList: [
{text: '名称', id: 1},
{text: '名称', id: 1},
{text: '名称', id: 1},
{text: '名称', id: 1},
]
}
}
}
</script>
<style lang="scss" scoped>
.h1 {
line-height: 100rpx;
}
.btn_row {
position: fixed;
bottom: 50rpx;
left: 0;
display: flex;
justify-content: space-between;
width: 100%;
padding: 0 28rpx;
.btn {
width: 48.8%;
height: 72rpx;
background: #1989FA;
border-radius: 8rpx;
font-size: 28rpx;
color: #fff;
text-align: center;
line-height: 72rpx;
&.border {
background: rgba(25,137,250,0.1);
border: 2rpx solid #1989FA;
color: $themC;
}
}
}
.tagFlex {
display: flex;
flex-wrap: wrap;
.tab {
padding: 10rpx 24rpx;
margin: 12rpx 20rpx;
height: 60rpx;
background: #FFFFFF;
border-radius: 8rpx;
font-size: 28rpx;
color: #686B73;
&.active {
background: rgba(25,137,250,0.1);
border-radius: 8rpx;
border: 2rpx solid #1989FA;
font-size: 28rpx;
color: $themC;
}
}
}
</style>

15
pages/indexEntry/findShcool/shcoolComment/shcoolComment.vue

@ -0,0 +1,15 @@
<template>
<view class="main">
<comments></comments>
</view>
</template>
<script>
import comments from '../comments/comments.vue'
export default {
components: { comments }
}
</script>
<style>
</style>

19
pages/indexEntry/findShcool/shcoolDetail/comp/tab3.vue

@ -1,7 +1,7 @@
<template>
<view class="tabCon">
<view class="tab1">
<view class="card">
<view class="card" @click="$goPage('/pages/indexEntry/findShcool/coachComment/coachComment')">
<view class="avatar">
<image src="@/static/images/logo.png" mode=""></image>
</view>
@ -15,8 +15,9 @@
<u-rate active-color="#1989FA" inactive-color="#1989FA" gutter="1" :size="16" :value="4" disabled></u-rate>
<view class="num">4.9</view>
</view>
<view class="more">
<view class="moreText">查看评价</view>
<view class="btn" v-if="showSign">报名</view>
<view class="more" v-else>
<view class="moreText">查看详情</view>
<u-icon name="arrow-right"></u-icon>
</view>
</view>
@ -28,7 +29,7 @@
<script>
export default {
props: ['showSign']
}
</script>
@ -90,4 +91,14 @@
}
}
}
.btn {
width: 130rpx;
height: 60rpx;
background: #1989FA;
border-radius: 8rpx;
color: #fff;
text-align: center;
line-height: 60rpx;
font-size: 28rpx;
}
</style>

2
pages/indexEntry/findShcool/shcoolDetail/shcoolDetail.vue

@ -22,7 +22,7 @@
<u-rate active-color="#1989FA" inactive-color="#1989FA" gutter="1" :size="16" :value="4" disabled></u-rate>
<view class="num">4.9</view>
</view>
<view class="evaluate" @click="$goPage('/pages/indexEntry/findShcool/comments/comments')">
<view class="evaluate" @click="$goPage('/pages/indexEntry/findShcool/shcoolComment/shcoolComment')">
<view class="txt">50条评价</view>
<u-icon name="arrow-right" color="#363A44" size="14"></u-icon>
</view>

45
pages/indexEntry/publicVideo/comp/videoItem.vue

@ -0,0 +1,45 @@
<template>
<view class="vdo">
<view class="coverBox">
<view class="start">
<image src="@/static/images/index/btn_bofang.png" mode=""></image>
</view>
<view class="cover">
<image src="@/static/images/logo.png" mode=""></image>
</view>
</view>
<view class="text oneRowText">公益短片之车速决定命运</view>
</view>
</template>
<script>
</script>
<style lang="scss" scoped>
.coverBox {
width: 100%;
height: 168rpx;
background: $themC;
border-radius: 12rpx;
position: relative;
.start {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
width: 50rpx;
height: 50rpx;
z-index: 2;
}
.cover {
width: 100%;
height: 100%;
}
}
.text {
font-size: 24rpx;
padding: 20rpx 0 6rpx 0;
}
</style>

45
pages/indexEntry/publicVideo/publicVideo.vue

@ -0,0 +1,45 @@
<template>
<view class="pageBgImg">
<topNavbar title="安全驾驶"></topNavbar>
<view class="pad">
<view class="searcBox">
<searchRow placeholder="搜索视频名称"/>
</view>
<view class="ul">
<view class="li" v-for="(item,index) in 10" :key="index" @click="$goPage('/pages/indexEntry/publicVideo/videoDetail/videoDetail')">
<videoItem></videoItem>
</view>
</view>
</view>
</view>
</template>
<script>
import videoItem from './comp/videoItem'
export default {
components: { videoItem }
}
</script>
<style lang="scss" scoped>
.ul {
width: 100%;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
.li {
width: 100%;
width: 48%;
height: 260rpx;
background: #FFFFFF;
box-shadow: 0px 8rpx 20rpx 0px rgba(0,0,0,0.04), 2rpx 2rpx 8rpx 0px rgba(0,0,0,0.06);
border-radius: 16rpx;
margin-bottom: 24rpx;
padding: 16rpx;
}
}
.searcBox {
padding: 20rpx 0 32rpx 0;
}
</style>

134
pages/indexEntry/publicVideo/videoDetail/videoDetail.vue

@ -0,0 +1,134 @@
<template>
<view class="pageBgImg">
<view class="videoBox">
<view class="back">
<topNavbar title=""></topNavbar>
</view>
<video src="http://vjs.zencdn.net/v/oceans.mp4"></video>
</view>
<view class="pad">
<view class="card" style="margin: 28rpx 0 24rpx 0;">
<view class="info">
<view class="name">视频名字</view>
<view class="date">2023/08/08</view>
</view>
</view>
<view class="operate">
<view class="operateItem">
<view class="icon">
<image src="/static/images/index/dianzan_nor.png" mode=""></image>
<!-- <image src="/static/images/index/dianzan_cli.png" mode=""></image> -->
</view>
<view class="txt">点赞</view>
</view>
<view class="operateItem">
<view class="icon">
<image src="/static/images/index/shoucang_nor.png" mode=""></image>
<!-- <image src="/static/images/index/shoucang_cli.png" mode=""></image> -->
</view>
<view class="txt">收藏</view>
</view>
<view class="operateItem">
<view class="icon">
<image src="/static/images/index/fenxiang_nor.png" mode=""></image>
</view>
<view class="txt">分享</view>
</view>
</view>
<view class="videolist">
<view class="flex-b">
<view class="h1">相关推荐</view>
<moreRight text="更多"></moreRight>
</view>
<view class="ul">
<view class="li" v-for="(item,index) in 10" :key="index" @click="$goPage('/pages/indexEntry/publicVideo/videoDetail/videoDetail')">
<videoItem></videoItem>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import videoItem from '../comp/videoItem'
export default {
components: { videoItem }
}
</script>
<style lang="scss" scoped>
.h1 {
line-height: 100rpx;
}
.info {
padding: 28rpx;
.name {
font-size: 34rpx;
color: #363A44;
font-weight: 500;
}
.date {
font-size: 28rpx;
color: #686B73;
margin-top: 4rpx;
}
}
.operate {
display: flex;
justify-content: space-between;
.operateItem {
width: 188rpx;
height: 132rpx;
background: #FFFFFF;
border-radius: 16rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.icon {
width: 48rpx;
height: 48rpx;
}
.txt {
font-size: 24rpx;
color: #333;
font-weight: 500;
}
}
}
.videoBox {
width: 100%;
height: 492rpx;
position: relative;
.back {
position: absolute;
left: 0;
top: 0;
}
video {
width: 100%;
height: 100%;
display: block;
}
}
.ul {
width: 100%;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
.li {
width: 100%;
width: 48%;
height: 260rpx;
background: #FFFFFF;
box-shadow: 0px 8rpx 20rpx 0px rgba(0,0,0,0.04), 2rpx 2rpx 8rpx 0px rgba(0,0,0,0.06);
border-radius: 16rpx;
margin-bottom: 24rpx;
padding: 16rpx;
}
}
</style>

17
pages/indexEntry/theory/theory.vue

@ -4,10 +4,11 @@
<view class="pad">
<view class="h3">请选择您要学习的类型</view>
<view class="radioBox">
<view class="radioItem" v-for="(item,index) in radioArr" :key="index">
<view class="radioItem" v-for="(item,index) in radioArr" :key="index" @click="changeNav(item)">
<view class="text">{{ item.text }}</view>
<view class="icon">
<image src="@/static/images/index/scan.png" mode=""></image>
<image src="@/static/images/index/radio_cli.png" mode="" v-if="currentId==item.id"></image>
<image src="@/static/images/index/radio_nor.png" mode="" v-else></image>
</view>
</view>
</view>
@ -24,7 +25,13 @@
{text: '自学练习', id: 1},
{text: '记录理论学时', id: 2},
{text: '安全警示教育在线视频学习', id: 3},
]
],
currentId: 2,
}
},
methods: {
changeNav(item) {
this.currentId = item.id
}
}
}
@ -52,6 +59,10 @@
.text {
font-size: 28rpx;
}
.icon {
width: 32rpx;
height: 32rpx;
}
}
.btn {
width: 396rpx;

6
pages/tabbar/index/index.vue

@ -84,7 +84,7 @@
<view class="card serviceCon">
<view class="h1">服务专区</view>
<view class="ul2">
<view class="li2" v-for="(item,index) in serviceSector" :key="index" :class="'li2Bg' + index">
<view class="li2" v-for="(item,index) in serviceSector" :key="index" :class="'li2Bg' + index" @click="$goPage(item.url)">
<view class="icon">
<image :src="item.icon" mode=""></image>
</view>
@ -143,7 +143,7 @@
text: '公益视频',
tps: '立体呈现 学驾无忧',
icon: require('../../../static/images/index/img_2@2x.png'),
url: ''
url: '/pages/indexEntry/publicVideo/publicVideo'
},
{
text: '合格率排行',
@ -167,7 +167,7 @@
text: '咨询投诉',
tps: '畅达沟通 听取民声',
icon: require('../../../static/images/index/img_6@2x.png'),
url: ''
url: '/pages/indexEntry/consult/consult'
},
],
swiperDotIndex: 1,

9
site.config.js

@ -1,12 +1,7 @@
const VUE_APP_PLATFORM = process.env.VUE_APP_PLATFORM;
module.exports = {
APP_API: VUE_APP_PLATFORM === 'h5' ? 'http://121.41.97.244:8090' : '',
APP_API: VUE_APP_PLATFORM === 'h5' ? '/api' : 'http://121.41.97.244:8090',
APP_HOST: VUE_APP_PLATFORM === 'h5' ? '' : 'https://www.jaxc.cn/api',
TEMP_HOST: VUE_APP_PLATFORM === 'h5' ? '' : 'http://121.41.97.244:8090 https://www.jaxc.cn/api',
ADD_API: VUE_APP_PLATFORM === 'h5' ? '/addApi': 'http://121.41.97.244:48084', //http://121.41.97.244:48084
APP_NAME: '',
VERSION: '1.0.0',
gaodeMapUrl: 'https://webapi.amap.com/maps?v=1.4.15&key=4545202996c625152b7f2c1aa0ffb8ea&plugin=AMap.DistrictSearch,AMap.CustomLayer,AMap.MarkerClusterer',
locationIcon: 'http://3dtest.hzhuishi.cn/images/location.png',
AThreeFace : true, //是否启用人脸识别
//是否启用人脸识别
};

BIN
static/images/index/btn_bofang.png

After

Width: 60  |  Height: 60  |  Size: 1.5 KiB

BIN
static/images/index/btn_tupian.png

After

Width: 60  |  Height: 62  |  Size: 2.2 KiB

BIN
static/images/index/dianzan_cli.png

After

Width: 48  |  Height: 48  |  Size: 928 B

BIN
static/images/index/dianzan_nor.png

After

Width: 48  |  Height: 48  |  Size: 1.3 KiB

BIN
static/images/index/edit.png

After

Width: 24  |  Height: 24  |  Size: 607 B

BIN
static/images/index/fenxiang_nor.png

After

Width: 48  |  Height: 48  |  Size: 1.6 KiB

BIN
static/images/index/ic_jilu.png

After

Width: 72  |  Height: 72  |  Size: 2.0 KiB

BIN
static/images/index/ic_tousu.png

After

Width: 72  |  Height: 72  |  Size: 3.3 KiB

BIN
static/images/index/ic_zixun.png

After

Width: 72  |  Height: 72  |  Size: 3.3 KiB

BIN
static/images/index/radio_cli.png

After

Width: 32  |  Height: 32  |  Size: 1.1 KiB

BIN
static/images/index/radio_nor.png

After

Width: 32  |  Height: 32  |  Size: 919 B

BIN
static/images/index/shoucang_cli.png

After

Width: 48  |  Height: 48  |  Size: 1.2 KiB

BIN
static/images/index/shoucang_nor.png

After

Width: 48  |  Height: 48  |  Size: 1.7 KiB

BIN
static/images/index/我的@2x.png

Before

Width: 56  |  Height: 56  |  Size: 981 B

BIN
static/images/index/找考场_slices.zip

BIN
static/images/index/报名@2x.png

Before

Width: 56  |  Height: 56  |  Size: 1.3 KiB

BIN
static/images/index/首页@2x.png

Before

Width: 56  |  Height: 56  |  Size: 1.2 KiB

Loading…
Cancel
Save