Browse Source

图片裁剪

master
unknown 1 year ago
parent
commit
a4dbdb49f6
  1. 22
      components/pozCard/pozCard.vue
  2. 5
      components/topNavbar/topNavbar.vue
  3. 14
      manifest.json
  4. 31
      pages.json
  5. 1
      pages/carEntry/simulateAppointment/comp/step1.vue
  6. 2
      pages/indexEntry/consult/record/comp/complaintItem.vue
  7. 2
      pages/indexEntry/enroll/payment/payment.vue
  8. 60
      pages/indexEntry/enroll/paymentSuccess/paymentSuccess.vue
  9. 283
      pages/indexEntry/enroll/uploadAvatar/uAvatarCropper/uAvatarCropper.vue
  10. 1266
      pages/indexEntry/enroll/uploadAvatar/uAvatarCropper/weCropper.js
  11. 53
      pages/indexEntry/enroll/uploadAvatar/uploadAvatar.vue
  12. 2
      pages/indexEntry/examines/warningEducation/warningEducation.vue
  13. 2
      pages/indexEntry/findShcool/findShcool.vue
  14. 2
      pages/indexEntry/industryPolicy/industryPolicy.vue
  15. 2
      pages/indexEntry/publicVideo/publicVideo.vue
  16. 2
      pages/indexEntry/theory/theory.vue
  17. 24
      pages/mineEntry/carData/carData.vue
  18. 174
      pages/mineEntry/carData/columnChart.vue
  19. 135
      pages/mineEntry/carData/ringChart.vue
  20. 4
      pages/mineEntry/myAppointment/comp/examin.vue
  21. 6
      pages/mineEntry/myAppointment/comp/imitate.vue
  22. 4
      pages/mineEntry/myAppointment/comp/opera.vue
  23. 4
      pages/mineEntry/myAppointment/detail/examin.vue
  24. 2
      pages/mineEntry/myAppointment/detail/imitate.vue
  25. 4
      pages/mineEntry/myAppointment/detail/opera.vue
  26. 2
      pages/mineEntry/myAppointment/myAppointment.vue
  27. 2
      pages/mineEntry/myCollect/myCollect.vue
  28. 4
      pages/mineEntry/myOrder/comp/opera.vue
  29. 14
      pages/mineEntry/myOrder/detail/detail.vue
  30. 2
      pages/mineEntry/myOrder/myOrder.vue
  31. 65
      pages/tabbar/index/index.vue
  32. 27
      pages/userCenter/login/login.vue

22
components/pozCard/pozCard.vue

@ -1,6 +1,6 @@
<template>
<view class="card">
<view class="flex-b">
<view class="flex-b" @click="openMap">
<view class="left_text">
<view class="adr ">江西省江西市江西区某某镇尚坤丁兰国际1190号820</view>
<view class="distance">距您100km</view>
@ -16,6 +16,26 @@
</template>
<script>
export default {
methods: {
openMap() {
uni.getLocation({
type: 'gcj02', //uni.openLocation
success: function (res) {
const latitude = res.latitude;
const longitude = res.longitude;
uni.openLocation({
latitude: latitude,
longitude: longitude,
success: function () {
console.log('success');
}
});
}
});
}
}
}
</script>
<style lang="scss" scoped>

5
components/topNavbar/topNavbar.vue

@ -23,5 +23,8 @@
}
</script>
<style>
<style lang="scss" scoped>
.topNavbar {
padding-bottom: 20rpx;
}
</style>

14
manifest.json

@ -50,12 +50,12 @@
"quickapp" : {},
/* */
"mp-weixin" : {
"appid" : "wx2d71605af3b620e6",
"appid" : "wxae509f512c11c039",
"setting" : {
"urlCheck": true,
"es6": true,
"postcss": true,
"minified": true
"urlCheck" : true,
"es6" : true,
"postcss" : true,
"minified" : true
},
"usingComponents" : true,
"permission" : {
@ -63,9 +63,7 @@
"desc" : "查询用户地理位置,推荐本地驾校,提高用户服务"
}
},
"requiredPrivateInfos": [
"getLocation"
]
"requiredPrivateInfos" : [ "getLocation" ]
},
"mp-alipay" : {
"usingComponents" : true

31
pages.json

@ -42,6 +42,16 @@
}
},
{
"path": "industryPolicy/industryPolicy",
"style": {
"navigationBarTitleText": "质量信誉排行",
"enablePullDownRefresh": false,
"navigationStyle": "custom",
"backgroundTextStyle": "dark" ,
"navigationBarBackgroundColor": "#FFFFFF"
}
},
{
"path": "enroll/enroll",
"style": {
"navigationBarTitleText": "学员报名",
@ -60,6 +70,16 @@
}
},
{
"path": "enroll/uploadAvatar/uAvatarCropper/uAvatarCropper",
"style": {
"navigationBarTitleText": "上传头像",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}
},
{
"path": "enroll/registInfo/registInfo",
"style": {
"navigationBarTitleText": "报名信息确认",
@ -71,7 +91,16 @@
{
"path": "enroll/payment/payment",
"style": {
"navigationBarTitleText": "报名信息确认",
"navigationBarTitleText": "报名缴费",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}
},
{
"path": "enroll/paymentSuccess/paymentSuccess",
"style": {
"navigationBarTitleText": "报名成功",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"

1
pages/carEntry/simulateAppointment/comp/step1.vue

@ -88,6 +88,7 @@
<style lang="scss" scoped>
.card {
width: 100%;
margin-bottom: 24rpx;
overflow: hidden;
.dateBox {
padding: 36rpx 0 40rpx 0;

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

@ -11,7 +11,7 @@
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_jiaxiao.png" mode=""></image>
</view>
<view class="lab">驾校名称</view>
</view>

2
pages/indexEntry/enroll/payment/payment.vue

@ -25,7 +25,7 @@
</view>
</view>
</view>
<view class="btnBg">确认支付</view>
<view class="btnBg" @click="$goPage('/pages/indexEntry/enroll/paymentSuccess/paymentSuccess')">确认支付</view>
</view>
</view>
</template>

60
pages/indexEntry/enroll/paymentSuccess/paymentSuccess.vue

@ -0,0 +1,60 @@
<template>
<view class="pageBgImg">
<topNavbar title="报名结果"></topNavbar>
<view class="pad">
<view class="card">
<view class="icon_img">
<image src="../../../../static/images/index/ic_zixun.png" mode=""></image>
</view>
<view class="text">恭喜您报名成功</view>
<view class="txt">开启您的学车之旅吧</view>
</view>
<view class="btnBg" @click="goPage">开始学车</view>
</view>
</view>
</template>
<script>
export default {
methods: {
goPage() {
uni.switchTab({
url: '/pages/tabbar/learnCar/index'
})
}
}
}
</script>
<style lang="scss" scoped>
.pageBgImg {
.card {
width: 100%;
height: 392rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.icon_img {
width: 96rpx;
height: 96rpx;
}
.text {
font-size: 36rpx;
color: #373A43;
font-weight: 500;
margin: 32rpx 0 22rpx 0;
}
.txt {
font-size: 28rpx;
color: #696B72;
font-weight: 400;
}
}
.btnBg {
margin: 80rpx auto;
width: 369rpx;
}
}
</style>

283
pages/indexEntry/enroll/uploadAvatar/uAvatarCropper/uAvatarCropper.vue

@ -0,0 +1,283 @@
<template>
<view class="content">
<view class="cropper-wrapper" :style="{ height: cropperOpt.height + 'px' }">
<canvas
class="cropper"
:disable-scroll="true"
@touchstart="touchStart"
@touchmove="touchMove"
@touchend="touchEnd"
:style="{ width: cropperOpt.width, height: cropperOpt.height, backgroundColor: 'rgba(0, 0, 0, 0.8)' }"
canvas-id="cropper"
id="cropper"
></canvas>
<canvas
class="cropper"
:disable-scroll="true"
:style="{
position: 'fixed',
top: `-${cropperOpt.width * cropperOpt.pixelRatio}px`,
left: `-${cropperOpt.height * cropperOpt.pixelRatio}px`,
width: `${cropperOpt.width * cropperOpt.pixelRatio}px`,
height: `${cropperOpt.height * cropperOpt.pixelRatio}`
}"
canvas-id="targetId"
id="targetId"
></canvas>
</view>
<view class="cropper-buttons safe-area-padding" :style="{ height: bottomNavHeight + 'px' }">
<view class="upload" @click="uploadTap">取消</view>
<view class="getCropperImage" @click="getCropperImage(false)">完成</view>
</view>
</view>
</template>
<script>
import WeCropper from './weCropper.js';
export default {
props: {
// lineWidth-(rpx)color:
// mask-rgba"rgba(0, 0, 0, 0.35)"
boundStyle: {
type: Object,
default() {
return {
lineWidth: 4,
borderColor: 'rgb(245, 245, 245)',
mask: 'rgba(0, 0, 0, 0.35)'
};
}
},
avatarSrc: {
type: String,
default: ''
}
// // rpx
// rectWidth: {
// type: [String, Number],
// default: 400
// },
// // rpx
// rectHeight: {
// type: [String, Number],
// default: 400
// },
// // rpx
// destWidth: {
// type: [String, Number],
// default: 400
// },
// // rpx
// destHeight: {
// type: [String, Number],
// default: 400
// },
// // "png""jpg"
// fileType: {
// type: String,
// default: 'jpg',
// },
// //
// // H5使
// quality: {
// type: [Number, String],
// default: 1
// }
},
data() {
return {
//
bottomNavHeight: 50,
originWidth: 200,
width: 0,
height: 0,
cropperOpt: {
id: 'cropper',
targetId: 'targetCropper',
pixelRatio: 1,
width: 0,
height: 0,
scale: 2.5,
zoom: 8,
cut: {
x: (this.width - this.originWidth) / 2,
y: (this.height - this.originWidth) / 2,
width: this.originWidth,
height: this.originWidth
},
boundStyle: {
lineWidth: uni.upx2px(this.boundStyle.lineWidth),
mask: this.boundStyle.mask,
color: this.boundStyle.borderColor
}
},
//
// px
destWidth: 147,
// px
rectWidth: 295,
// 'png'"jpg"
fileType: 'png',
src: '', //
};
},
onLoad(options) {
let rectInfo = uni.getSystemInfoSync();
this.width = rectInfo.windowWidth;
this.height = rectInfo.windowHeight - this.bottomNavHeight;
this.cropperOpt.width = this.width;
this.cropperOpt.height = this.height;
this.cropperOpt.pixelRatio = rectInfo.pixelRatio;
if (this.destWidth) this.destWidth = this.destWidth;
if (this.rectWidth) {
let rectWidth = Number(this.rectWidth);
this.cropperOpt.cut = {
x: (this.width - rectWidth) / 2,
y: (this.height - rectWidth) / 2,
width: rectWidth,
height: 413
};
}
this.rectWidth = this.rectWidth;
if (this.fileType) this.fileType = this.fileType;
//
this.cropper = new WeCropper(this.cropperOpt)
.on('ready', ctx => {
// wecropper is ready for work!
})
.on('beforeImageLoad', ctx => {
// before picture loaded, i can do something
})
.on('imageLoad', ctx => {
// picture loaded
})
.on('beforeDraw', (ctx, instance) => {
// before canvas draw,i can do something
});
// page.json
uni.setNavigationBarColor({
frontColor: '#ffffff',
backgroundColor: '#000000'
});
this.src = decodeURIComponent(options.url)
// datasrc
this.cropper.pushOrign(this.src);
},
methods: {
touchStart(e) {
this.cropper.touchStart(e);
},
touchMove(e) {
this.cropper.touchMove(e);
},
touchEnd(e) {
this.cropper.touchEnd(e);
},
getCropperImage(isPre = false) {
if(!this.src) return this.$u.toast('请先选择图片再裁剪');
let cropper_opt = {
destHeight: 206, // uni.canvasToTempFilePath
destWidth: Number(this.destWidth),
fileType: this.fileType
};
this.cropper.getCropperImage(cropper_opt, (path, err) => {
if (err) {
uni.showModal({
title: '温馨提示',
content: err.message
});
} else {
if (isPre) {
uni.previewImage({
current: '', // http
urls: [path] // http
});
} else {
uni.$emit('uAvatarCropper', path);
uni.navigateBack()
}
}
});
},
uploadTap() {
uni.navigateBack()
return
const self = this;
uni.chooseImage({
count: 1, // 9
sizeType: ['original', 'compressed'], //
sourceType: ['album', 'camera'], //
success: (res) => {
self.src = res.tempFilePaths[0];
// datasrc
self.cropper.pushOrign(this.src);
}
});
}
}
};
</script>
<style scoped lang="scss">
@import '@/uni_modules/uview-ui/libs/css/components.scss';
.content {
background: rgba(255, 255, 255, 1);
}
.cropper {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 11;
}
.cropper-buttons {
background-color: #000000;
color: #eee;
}
.cropper-wrapper {
position: relative;
// @include vue-flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
width: 100%;
background-color: #000;
}
.cropper-buttons {
width: 100vw;
// @include vue-flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
position: fixed;
bottom: 0;
left: 0;
font-size: 28rpx;
}
.cropper-buttons .upload,
.cropper-buttons .getCropperImage {
width: 50%;
text-align: center;
}
.cropper-buttons .upload {
text-align: left;
padding-left: 50rpx;
}
.cropper-buttons .getCropperImage {
text-align: right;
padding-right: 50rpx;
}
</style>

1266
pages/indexEntry/enroll/uploadAvatar/uAvatarCropper/weCropper.js
File diff suppressed because it is too large
View File

53
pages/indexEntry/enroll/uploadAvatar/uploadAvatar.vue

@ -5,13 +5,17 @@
<view class="card">
<view class="h2">请上传或拍摄一张五官清晰的照片</view>
<view class="phone" @click="chooseImages">
<view class="phone" @click="uploadTap" v-if="!avatar">
<view class="phoneIcon">
<image src="@/static/images/index/btn_tupian.png" mode=""></image>
</view>
<view class="lab">添加图片</view>
</view>
<view class="phone" v-else @click="uploadTap">
<image :src="avatar" mode=""></image>
</view>
<view class="btnBg" @click="$goPage('/pages/indexEntry/enroll/registInfo/registInfo')">上传</view>
</view>
</view>
@ -24,10 +28,40 @@
export default {
data() {
return {
avatar: ''
}
},
onLoad() {
uni.$on('uAvatarCropper',(url)=>{
// console.log('')
this.avatar = url
console.log(url)
})
},
methods: {
addImage() {
var that = this;
// 使
uni.chooseImage({
count: 1, //9
//album camera 使
sourceType: ['album'],
success: function(res) {
//
uni.getImageInfo({
src: res.tempFilePaths[0],
success: function(image) {
that.src = (res.tempFilePaths[0]);
console.log('这都能成功')
console.log(that.src); //,
// POST content-type multipart/form-data
}
})
}
})
},
//
chooseImages(type) {
uni.chooseImage({
@ -44,6 +78,21 @@
}
})
},
uploadTap() {
const _this = this;
uni.chooseImage({
count: 1, // 9
sizeType: ['original', 'compressed'], //
sourceType: ['album', 'camera'], //
success: (res) => {
let url = res.tempFilePaths[0];
// datasrc
uni.navigateTo({
url: '/pages/indexEntry/enroll/uploadAvatar/uAvatarCropper/uAvatarCropper?url=' + encodeURIComponent(url)
})
}
});
},
uploadImgApi(filePath) {
console.log(filePath)
let _this = this

2
pages/indexEntry/examines/warningEducation/warningEducation.vue

@ -39,7 +39,7 @@
<style lang="scss" scoped>
.searcBox {
padding: 24rpx 0 30rpx;
padding: 0rpx 0 30rpx 0;
}
.card {

2
pages/indexEntry/findShcool/findShcool.vue

@ -64,7 +64,7 @@
width: 100%;
min-height: 100vh;
.searchCon {
padding: 24rpx 0;
padding: 0 0 24rpx 0;
}
.navBox {
display: flex;

2
pages/indexEntry/industryPolicy/industryPolicy.vue

@ -1,6 +1,6 @@
<template>
<view class="pageBgImg">
<topNavbar title="行业资讯"></topNavbar>
<topNavbar title="行业政策"></topNavbar>
<view class="pad">
<view class="card" @click="$goPage('/pages/indexEntry/iIndustryInfo/detail/detail')">
<view class="borderTop flex-b">

2
pages/indexEntry/publicVideo/publicVideo.vue

@ -40,6 +40,6 @@
}
}
.searcBox {
padding: 20rpx 0 32rpx 0;
padding: 0rpx 0 32rpx 0;
}
</style>

2
pages/indexEntry/theory/theory.vue

@ -1,6 +1,6 @@
<template>
<view class="pageBgImg">
<topNavbar title=""></topNavbar>
<topNavbar title=" "></topNavbar>
<view class="pad">
<view class="h3">请选择您要学习的类型</view>
<view class="radioBox">

24
pages/mineEntry/carData/carData.vue

@ -51,7 +51,7 @@
<view class="val">33</view>
</view>
<view class="rightChart">
<qiun-data-charts type="ring" :chartData="gaueData" :opts="opts" />
<ringChart />
</view>
</view>
@ -59,12 +59,14 @@
<!-- 考试通过率 -->
<view class="card">
<view class="chart_row">
<view class="leftText">
<view class="leftText" style="width: 200rpx;">
<view class="lab">考试通过率</view>
<view class="val">33</view>
<view class="val">90%</view>
</view>
<view class="rightChart">
图表下次一起调
<view class="rightChart pad28">
<view class="blueBg">
<columnChart/>
</view>
</view>
</view>
@ -84,7 +86,10 @@
</template>
<script>
import ringChart from './ringChart.vue'
import columnChart from './columnChart'
export default {
components: { ringChart, columnChart },
data() {
return {
gaueData: {
@ -225,6 +230,15 @@
.rightChart {
width: 0;
flex: 1;
&.pad28 {
padding: 28rpx 0;
}
.blueBg {
padding: 20rpx 0 10rpx 0;
width: 100%;
height: 100%;
background-color: #F2F8FF;
}
}
}
</style>

174
pages/mineEntry/carData/columnChart.vue

@ -0,0 +1,174 @@
<template>
<view class="charts-box">
<qiun-data-charts
type="column"
:opts="opts"
:chartData="chartData"
/>
</view>
</template>
<script>
export default {
data() {
return {
chartData: {},
// opts type="column" config-ucharts.js ['column'] opts
opts: {
timing: "easeOut",
duration: 1000,
rotate: false,
rotateLock: false,
color: ["#1890FF","#91CB74","#FAC858","#EE6666","#73C0DE","#3CA272","#FC8452","#9A60B4","#ea7ccc"],
padding: [15,15,0,5],
fontSize: 13,
fontColor: "#1989FA",
dataLabel: true,
dataPointShape: true,
dataPointShapeType: "solid",
touchMoveLimit: 60,
enableScroll: false,
enableMarkLine: false,
legend: {
show: false,
position: "bottom",
float: "center",
padding: 5,
margin: 5,
backgroundColor: "rgba(0,0,0,0)",
borderColor: "rgba(0,0,0,0)",
borderWidth: 0,
fontSize: 13,
fontColor: "#666666",
lineHeight: 11,
hiddenColor: "#CECECE",
itemGap: 10
},
xAxis: {
disableGrid: true,
disabled: false,
axisLine: true,
axisLineColor: "#E8E9EC",
calibration: false,
fontColor: "#686B73",
fontSize: 8,
lineHeight: 20,
marginTop: 0,
rotateLabel: false,
rotateAngle: 45,
itemCount: 5,
boundaryGap: "center",
splitNumber: 5,
gridColor: "#CCCCCC",
gridType: "solid",
dashLength: 4,
gridEval: 1,
scrollShow: false,
scrollAlign: "left",
scrollColor: "#A6A6A6",
scrollBackgroundColor: "#EFEBEF",
title: "",
titleFontSize: 13,
titleOffsetY: 0,
titleOffsetX: 0,
titleFontColor: "#666666",
format: ""
},
yAxis: {
data: [
{
min: 0
}
],
disabled: true,
disableGrid: false,
splitNumber: 5,
gridType: "dash",
dashLength: 8,
gridColor: "#E8E9EC",
padding: 10,
showTitle: false
},
extra: {
column: {
type: "group",
width: 9,
activeBgColor: "#000000",
activeBgOpacity: 0.08,
seriesGap: 2,
categoryGap: 3,
barBorderCircle: false,
linearType: "none",
linearOpacity: 1,
colorStop: 0,
meterBorder: 1,
meterFillColor: "#FFFFFF",
labelPosition: "outside"
},
tooltip: {
showBox: false,
showArrow: true,
showCategory: false,
borderWidth: 0,
borderRadius: 0,
borderColor: "#000000",
borderOpacity: 0.7,
bgColor: "#000000",
bgOpacity: 0.7,
gridType: "solid",
dashLength: 4,
gridColor: "#CCCCCC",
boxPadding: 3,
fontSize: 12,
lineHeight: 20,
fontColor: "#FFFFFF",
legendShow: true,
legendShape: "auto",
splitLine: true,
horizentalLine: false,
xAxisLabel: false,
yAxisLabel: false,
labelBgColor: "#FFFFFF",
labelBgOpacity: 0.7,
labelFontColor: "#666666"
},
markLine: {
type: "solid",
dashLength: 4,
data: []
}
}
}
};
},
mounted() {
this.getServerData();
},
methods: {
getServerData() {
//
setTimeout(() => {
//
let res = {
categories: ["科目一","科目二","科目三道路","科目三理论",],
series: [
{
name: "目标值",
data: [35,36,31,33,]
}
]
};
this.chartData = JSON.parse(JSON.stringify(res));
}, 500);
},
}
};
</script>
<style scoped>
/* 请根据实际需求修改父元素尺寸,组件自动识别宽高 */
.charts-box {
width: 100%;
height: 100%;
}
</style>

135
pages/mineEntry/carData/ringChart.vue

@ -0,0 +1,135 @@
<template>
<view class="charts-box">
<qiun-data-charts
type="ring"
:opts="opts"
:chartData="chartData"
:onmouse="false"
/>
</view>
</template>
<script>
export default {
data() {
return {
chartData: {},
// opts type="ring" config-ucharts.js ['ring'] opts
opts: {
timing: "easeOut",
duration: 1000,
rotate: false,
rotateLock: false,
color: ["#F2D39B","#9BF2D6","#9BB5F2","#AAD993","#73C0DE","#3CA272","#FC8452","#9A60B4","#ea7ccc"],
padding: [5,5,5,5],
fontSize: 13,
fontColor: "#666666",
dataLabel: false,
dataPointShape: true,
dataPointShapeType: "solid",
touchMoveLimit: 60,
enableScroll: false,
enableMarkLine: false,
legend: {
show: true,
position: "right",
lineHeight: 25,
float: "center",
padding: 5,
margin: 5,
backgroundColor: "rgba(0,0,0,0)",
borderColor: "rgba(0,0,0,0)",
borderWidth: 0,
fontSize: 13,
fontColor: "#666666",
hiddenColor: "#CECECE",
itemGap: 10
},
title: {
name: "",
fontSize: 15,
color: "#666666",
offsetX: 0,
offsetY: 0
},
subtitle: {
name: "",
fontSize: 25,
color: "#7cb5ec",
offsetX: 0,
offsetY: 0
},
extra: {
ring: {
ringWidth: 15,
activeOpacity: 0.5,
activeRadius: 10,
offsetAngle: 0,
labelWidth: 15,
border: false,
borderWidth: 3,
borderColor: "#FFFFFF",
centerColor: "#FFFFFF",
customRadius: 0,
linearType: "none"
},
tooltip: {
showBox: true,
showArrow: true,
showCategory: false,
borderWidth: 0,
borderRadius: 0,
borderColor: "#000000",
borderOpacity: 0.7,
bgColor: "#000000",
bgOpacity: 0.7,
gridType: "solid",
dashLength: 4,
gridColor: "#CCCCCC",
boxPadding: 3,
fontSize: 13,
lineHeight: 20,
fontColor: "#FFFFFF",
legendShow: true,
legendShape: "auto",
splitLine: true,
horizentalLine: false,
xAxisLabel: false,
yAxisLabel: false,
labelBgColor: "#FFFFFF",
labelBgOpacity: 0.7,
labelFontColor: "#666666"
}
}
}
};
},
mounted() {
this.getServerData();
},
methods: {
getServerData() {
//
setTimeout(() => {
//
let res = {
series: [
{
data: [{"name":"科目一","value":50},{"name":"模拟器","value":30},{"name":"科目二","value":20},{"name":"科目三","value":18}]
}
]
};
this.chartData = JSON.parse(JSON.stringify(res));
}, 500);
},
}
};
</script>
<style scoped>
/* 请根据实际需求修改父元素尺寸,组件自动识别宽高 */
.charts-box {
width: 100%;
height: 100%;
}
</style>

4
pages/mineEntry/myAppointment/comp/examin.vue

@ -17,7 +17,7 @@
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_chexing.png" mode=""></image>
</view>
<view class="lab">所选车型</view>
</view>
@ -26,7 +26,7 @@
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_shijian.png" mode=""></image>
</view>
<view class="lab">预约时间</view>
</view>

6
pages/mineEntry/myAppointment/comp/imitate.vue

@ -4,7 +4,7 @@
<view class="top_row">
<view class="flex">
<view class="tag">模拟器</view>
<view class="schoolName">xx模拟驾驶馆</view>
<view class="schoolName">xxx模拟驾驶馆</view>
</view>
<view class="status">
<view class="text">待处理</view>
@ -17,7 +17,7 @@
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_banxing.png" mode=""></image>
</view>
<view class="lab">模拟器编号</view>
</view>
@ -26,7 +26,7 @@
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_shijian.png" mode=""></image>
</view>
<view class="lab">预约时间</view>
</view>

4
pages/mineEntry/myAppointment/comp/opera.vue

@ -17,7 +17,7 @@
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_chexing.png" mode=""></image>
</view>
<view class="lab">所选择车辆</view>
</view>
@ -26,7 +26,7 @@
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_shijian.png" mode=""></image>
</view>
<view class="lab">预约时间</view>
</view>

4
pages/mineEntry/myAppointment/detail/examin.vue

@ -17,7 +17,7 @@
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_chexing.png" mode=""></image>
</view>
<view class="lab">所选车型</view>
</view>
@ -26,7 +26,7 @@
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_shijian.png" mode=""></image>
</view>
<view class="lab">预约时间</view>
</view>

2
pages/mineEntry/myAppointment/detail/imitate.vue

@ -26,7 +26,7 @@
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_shijian.png" mode=""></image>
</view>
<view class="lab">预约时间</view>
</view>

4
pages/mineEntry/myAppointment/detail/opera.vue

@ -17,7 +17,7 @@
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_chexing.png" mode=""></image>
</view>
<view class="lab">所选择车辆</view>
</view>
@ -26,7 +26,7 @@
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_shijian.png" mode=""></image>
</view>
<view class="lab">预约时间</view>
</view>

2
pages/mineEntry/myAppointment/myAppointment.vue

@ -73,7 +73,7 @@
<style lang="scss" scoped>
.searcBox {
margin: 20rpx 0;
margin: 0 0 20rpx 0;
}
.card {
padding: 0 24rpx;

2
pages/mineEntry/myCollect/myCollect.vue

@ -40,6 +40,6 @@
}
}
.searcBox {
padding: 20rpx 0 32rpx 0;
padding: 0rpx 0 32rpx 0;
}
</style>

4
pages/mineEntry/myOrder/comp/opera.vue

@ -17,7 +17,7 @@
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_chexing.png" mode=""></image>
</view>
<view class="lab">学驾车型</view>
</view>
@ -26,7 +26,7 @@
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_banxing.png" mode=""></image>
</view>
<view class="lab">所选班型</view>
</view>

14
pages/mineEntry/myOrder/detail/detail.vue

@ -20,7 +20,7 @@
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_chexing.png" mode=""></image>
</view>
<view class="lab">学驾车型</view>
</view>
@ -29,7 +29,7 @@
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_banxing.png" mode=""></image>
</view>
<view class="lab">所选班型</view>
</view>
@ -38,7 +38,7 @@
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_jiaxiao.png" mode=""></image>
</view>
<view class="lab">驾校类型</view>
</view>
@ -47,7 +47,7 @@
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_xingshi.png" mode=""></image>
</view>
<view class="lab">支付形式</view>
</view>
@ -56,7 +56,7 @@
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_fangshi.png" mode=""></image>
</view>
<view class="lab">支付方式</view>
</view>
@ -65,7 +65,7 @@
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_shijian.png" mode=""></image>
</view>
<view class="lab">支付时间</view>
</view>
@ -85,7 +85,7 @@
<view class="flex">
<view class="label hui">代收费</view>
<view class="feeIcon">
<image src="@/static/images/index/edit.png" mode=""></image>
<image src="@/static/images/car/ic_fangshi.png" mode=""></image>
</view>
</view>
<view class="value hui">2000.02</view>

2
pages/mineEntry/myOrder/myOrder.vue

@ -58,7 +58,7 @@
<style lang="scss" scoped>
.searcBox {
margin: 20rpx 0;
margin: 0 0 20rpx 0;
}
.card {
padding: 0 24rpx;

65
pages/tabbar/index/index.vue

@ -47,6 +47,17 @@
</view>
</view>
</view>
<!-- 更多入口 -->
<view class="card">
<view class="ul3">
<view class="li3" v-for="(item,index) in moreSection" :key="index" @click="goPageSection(item)">
<view class="icon">
<image :src="item.icon" mode=""></image>
</view>
<view class="name">{{ item.text }}</view>
</view>
</view>
</view>
<!-- 行业资讯 -->
<view class="card">
<view class="information">
@ -134,6 +145,31 @@
url: '/pages/indexEntry/theory/theory'
},
],
moreSection: [{
text: '摩托车业务',
icon: require('../../../static/images/index/btn_motuoche.png'),
url: '/pages/indexEntry/enroll/enroll'
},
{
text: '考试预约',
icon: require('../../../static/images/index/btn_yuyue.png'),
url: '/pages/indexEntry/findShcool/findShcool'
},
{
text: '交通求助',
icon: require('../../../static/images/index/btn_jiuzhu.png'),
url: '/pages/indexEntry/examines/examines'
},
{
text: '学驾保险',
icon: require('../../../static/images/index/btn_baoxian.png'),
},
{
text: '更多',
icon: require('../../../static/images/index/btn_gengduo.png'),
url: '/pages/indexEntry/theory/theory'
},
],
serviceSector: [{
text: '学车指南',
tps: '政府平台 一站服务',
@ -156,7 +192,7 @@
text: '行业政策',
tps: '权威发布 精准解读',
icon: require('../../../static/images/index/img_4@2x.png'),
url: ''
url: '/pages/indexEntry/industryPolicy/industryPolicy'
},
{
text: '质量信誉排行',
@ -354,6 +390,33 @@
}
}
}
.ul3 {
height: 128rpx;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 30rpx;
border: 2rpx solid #E8E9EC;
border-radius: 16rpx;
.li3 {
// flex: 1;
display: flex;
align-items: center;
flex-direction: column;
.icon {
width: 52rpx;
height: 52rpx;
}
.name {
font-size: 22rpx;
color: #686B73;
padding-top: 2rpx;
text-align: center;
}
}
}
}
.information {

27
pages/userCenter/login/login.vue

@ -4,7 +4,8 @@
<image src="../../../static/images/userCenter/loginTitle.png" mode=""></image>
</view>
<view class="btnCon">
<view class="btn">手机号快捷登录</view>
<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">手机号</button>
<view class="btn" @click="loginFn">手机号快捷登录</view>
<!-- <button type="success" size="mini" style="margin-top: 15rpx;" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber" text="获取手机号">获取手机号</button> -->
<view class="btn border" @click="$goPage('/pages/userCenter/login/loginByPhone');">手机号登录/注册</view>
</view>
@ -46,6 +47,14 @@
// });
},
methods: {
getPhoneNumber (e) {
console.log(e.detail.code) //
console.log(e.detail.errMsg) //
console.log(e.detail.errno) //
},
loginFn() {
},
// code
getCode() {
uni.login({
@ -58,15 +67,15 @@
});
},
//
async getPhoneNumber(e) {
await this.getCode();
console.log('获取手机号')
console.log(e)
if(!this.decodePhoneParams.code || !e.detail.encryptedData){
return false;
}
// async getPhoneNumber(e) {
// await this.getCode();
// console.log('')
// console.log(e)
// if(!this.decodePhoneParams.code || !e.detail.encryptedData){
// return false;
// }
},
// },
//
changeRadio(val) {
this.isCheck = val

Loading…
Cancel
Save