这是页面代码
<view v-if="true">
<view class='order-submission' :style="'margin-top:0rpx;'">
<view class="borderPad">
<view class="zhanshuo-flex-col section_5">
<form>
<view class="zhanshuo-flex-row zhanshuo-justify-between zhanshuo-items-center group_2">
<text class="font text_13">
<text style="color: red;">*</text>
姓名:
</text>
<view class="zhanshuo-flex-row zhanshuo-items-center section_7">
<input v-model='SubmissionVo.name' class="uni-input font_4 text_right" focus
placeholder="请输入姓名"/>
</view>
</view>
<view class="zhanshuo-flex-row zhanshuo-justify-between zhanshuo-items-center group_2">
<text class="font text_13">
<text style="color: red;">*</text>
年龄:
</text>
<view class="zhanshuo-flex-row zhanshuo-items-center section_7">
<input v-model='SubmissionVo.age' class="uni-input font_4 text_8 text_right"
placeholder="请输入年龄" type="number"/>
</view>
</view>
<view class="zhanshuo-flex-row zhanshuo-justify-between zhanshuo-items-center group">
<text class="font text_11">
<text style="color: red;">*</text>
性别:
</text>
<view class="zhanshuo-flex-row zhanshuo-items-center section_7">
<picker v-model="indexGenders" :range="genders" class="font_5 text_10 text_right"
mode="selector" range-key="desc" @change="bindPickerChangeGender">
<view class="uni-input">{{ genders[indexGenders].desc }}</view>
</picker>
</view>
</view>
<view class="zhanshuo-flex-row zhanshuo-justify-between zhanshuo-items-center group_3">
<view class="zhanshuo-flex-col zhanshuo-items-center">
<text class="font text_14">
<text style="color: red;">*</text>
所在城市:
</text>
<text class="zhanshuo-mt-28 font text_17">
<text style="color: red;">*</text>
上传证书:
</text>
</view>
<view class="section_8 view"></view>
<view class="zhanshuo-flex-col group_4">
<view
class="zhanshuo-flex-col zhanshuo-justify-start zhanshuo-items-end zhanshuo-self-stretch zhanshuo-relative group_5">
<view class="region_count" @click="changeRegion">
<text v-if="!addressInfo.length" style="color:#cdcdcd;">请选择地址</text>
<text v-else>{{ addressText }}</text>
</view>
</view>
<button @click="chooseAndUploadImage">
<image :src="pictureUrl" class="avatar text_right"
style="width: 50rpx;height: 50rpx"></image>
</button>
</view>
</view>
<view v-if="SubmissionVo.image!==''"
class="zhanshuo-flex-row zhanshuo-justify-between zhanshuo-items-center group_3">
<view class="zhanshuo-flex-row zhanshuo-justify-between"
style='margin-left: 90%;width: 15%;'>
<button class="previewBtn" @click="previewPictures">
预览
</button>
</view>
</view>
<view class="zhanshuo-flex-row zhanshuo-justify-between zhanshuo-items-center group_2">
<text class="font text_13">
<text style="color: red;">*</text>
类别:
</text>
<view class="zhanshuo-flex-row zhanshuo-items-center section_7">
<picker v-model="worksClassificationGenders" :range="worksClassifications"
class="font_5 text_10 text_right" mode="selector" range-key="desc"
@change="worksClassificationGender">
<view class="uni-input">{{ worksClassifications[worksClassificationGenders].desc }}
</view>
</picker>
</view>
</view>
<view class="zhanshuo-flex-row zhanshuo-justify-between zhanshuo-items-center group">
<text class="font text_11">
<text style="color: red;">*</text>
评委等级:
</text>
<view class="zhanshuo-flex-row zhanshuo-items-center section_7">
<picker v-model="indexGrade" :range="grades" class="font_5 text_10 text_right"
mode="selector" range-key="desc" @change="gradeChangeGender">
<view class="uni-input">{{ grades[indexGrade].desc }}</view>
</picker>
</view>
</view>
</form>
</view>
<view class="bnt bntVideo acea-row centered-button-container" style="margin-left: 17%;">
<button class="buy bg-color longBnts" style="background-color:#1DB0FC;margin-top: 10%; margin-bottom: 10%;" form-type="submit" @click='confirm'>
确认提交
</button>
</view>
</view>
</view>
<areaWindow ref="areaWindow" :display="display" :address="addressInfo" @submit="OnChangeAddress"
@changeClose="changeClose"></areaWindow>
</view>
这是数据
<script>
import areaWindow from '../applyJudges/components/areaWindow';
import {mapGetters} from "vuex";
import {createJudges, getJudges} from '@/api/judges.js'
import {Debounce} from '@/utils/validate.js'
export default {
components: {areaWindow},
data() {
return {
status: true,
pictureUrl: '../../static/img/default2.png',
display: false,
addressInfo: [],
//作品类别
worksClassificationGenders: 0,
worksClassifications: [
{
desc: '请选择',
value: null
}, {
desc: '书法类',
value: 1
},
{
desc: '美术类',
value: 2
}
],
SubmissionVo: {
image: ''
},
//性别下标
indexGenders: 0,
//评委等级下标
indexGrade: 0,
//性别
genders: [
{
desc: '请选择',
value: null
}, {
desc: '男',
value: 0
}, {
desc: '女',
value: 1
}
],
//评委等级
grades: [
{
desc: '请选择',
value: null
}, {
desc: '初级',
value: 3
}, {
desc: '中级',
value: 4
}, {
desc: '高级',
value: 5
}
],
}
},
computed: {
...mapGetters(['isLogin']),
addressText() {
return this.addressInfo.map(v => v.regionName).join('/');
}
},
mounted() {
this.$nextTick(this.getJudges())
},
methods: {
getJudges() {
getJudges().then(res => {
if (res.data > 0) {
this.status = false;
}
});
},
OnChangeAddress(address) {
this.addressInfo = address;
},
// 关闭地址弹窗;
changeClose: function () {
this.display = false;
},
// 作品类别
worksClassificationGender(e) {
console.log("作品类别下拉框 e:", e);
this.worksClassificationGenders = e.detail.value
this.SubmissionVo.category = this.worksClassifications[this.worksClassificationGenders].value
},
changeRegion() {
this.display = true;
},
// 申请投稿
confirm: Debounce(function (e) {
// console.log("申请投稿 e=>", e);
let that = this,
data = {}
// console.log("表单数据:", that.SubmissionVo)
// console.log("that.addressInfo:", that.addressInfo)
// console.log("that.addressInfo[1].regionId:", that.addressInfo[1].regionId)
// console.log("that.addressInfo[1].regionName:", that.addressInfo[1].regionName)
data = that.SubmissionVo
if (that.addressInfo == null || that.addressInfo.length < 1) {
uni.hideLoading();
return this.$util.Tips({
title: '请选择城市'
});
}
data.addressRecord = that.addressInfo[1].regionId
data.addressRecordName = that.addressInfo[1].regionName
// console.log("表单数据data:", data)
uni.showLoading({
title: '提交中'
});
createJudges(data).then(res => {
console.log('申请投稿返回数据:', res);
uni.hideLoading();
that.$util.Tips({
title: '申请成功,请耐心等待审核结果!',
icon: 'success'
});
setTimeout(function () {
uni.reLaunch({
url: `/pages/user/index`,
})
}, 2000);
}).catch(err => {
uni.hideLoading();
return this.$util.Tips({
title: err
});
})
}),
// 预览图片
previewPictures() {
uni.previewImage({
loop: true,
urls: [this.SubmissionVo.image] //可以展示imgUrl 列表中所有的图片
});
},
// 图片上传
chooseAndUploadImage(e) {
this.$util.uploadImageOne({
name: 'multipart',
model: "product",
pid: 1,
count: 1,
sourceType: ['album', 'camera'],
sizeType: ['original', 'compressed']
}, res => {
console.log("fanhuishiu:", res);
this.pictureUrl = res
this.SubmissionVo.workImage = this.pictureUrl
});
},
// 性别下拉框
bindPickerChangeGender(e) {
console.log("性别下拉框 e:", e);
this.indexGenders = e.detail.value
this.SubmissionVo.gender = this.genders[this.indexGenders].value
},
// 评委等级下拉框
gradeChangeGender(e) {
console.log("评委等级下拉框 e:", e);
this.indexGrade = e.detail.value
this.SubmissionVo.status = this.grades[this.indexGrade].value
},
}
}
</script>
样式代码
<style lang="scss" scoped>
.noCoupon {
color: #999999;
}
.icon-jiantou {
font-size: 26rpx;
color: #515151;
margin-left: 14rpx;
}
.mr14 {
margin-right: 14rpx;
}
.couponTitle {
width: 430rpx;
display: inline-block;
text-align: right;
@include main_color(theme);
}
.store-address {
padding: 20rpx;
margin: 0 24rpx;
background: #F6F6F6;
border-radius: 8rpx;
font-size: 24rpx;
/*垂直居中*/
-webkit-box-align: center;
/*旧版本*/
-moz-box-align: center;
/*旧版本*/
-ms-flex-align: center;
/*混合版本*/
-webkit-align-items: center;
/*新版本*/
align-items: center;
/*新版本*/
.phone {
margin-bottom: 10rpx;
color: #282828;
font-weight: bold;
}
.name {
padding-right: 20rpx;
}
.info {
flex: 1;
}
.line2 {
width: 456rpx !important;
}
.map {
text-align: center;
padding-left: 36rpx;
position: relative;
@include main_color(theme);
&::before {
content: '';
display: inline-block;
width: 2rpx;
height: 42rpx;
background-color: #DDDDDD;
position: absolute;
left: 0;
top: 18rpx;
}
.iconfont {
color: var(--view-theme);
}
.map_text {
color: var(--view-theme);
}
}
}
.font_color {
@include main_color(theme);
}
.price_color {
@include price_color(theme);
}
.line2 {
width: 624rpx;
}
.textR {
text-align: right;
}
.order-submission .line {
width: 100%;
height: 3rpx;
}
.order-submission .line image {
width: 100%;
height: 100%;
display: block;
}
.order-submission .address {
padding: 40rpx 24rpx;
background-color: #fff;
box-sizing: border-box;
}
.order-submission .address .addressCon {
width: 596rpx;
font-size: 26rpx;
color: #666;
}
.order-submission .address .addressCon .name {
font-size: 30rpx;
color: #282828;
font-weight: bold;
margin-bottom: 10rpx;
}
.order-submission .address .addressCon .name .phone {
margin-left: 50rpx;
}
.order-submission .address .addressCon .default {
margin-right: 12rpx;
}
.order-submission .address .addressCon .setaddress {
color: #333;
font-size: 28rpx;
}
.order-submission .address .iconfont {
color: #707070;
}
.order-submission .allAddress {
width: 100%;
@include index-gradient(theme);
padding: 30rpx 24rpx 0 24rpx;
}
.order-submission .allAddress .address {
max-height: 180rpx;
margin: -2rpx auto 0 auto;
border-radius: 14rpx 14rpx 0 0;
}
.order-submission .allAddress .line {
width: 100%;
margin: 0 auto;
}
.order-submission .wrapper .item .discount .placeholder {
color: #ccc;
}
.order-submission .wrapper {
background-color: #fff;
margin-top: 15rpx;
}
.order-submission .wrapper .item {
padding: 28rpx 24rpx;
font-size: 30rpx;
color: #333333;
}
.order-submission .wrapper .item .discount {
font-size: 30rpx;
color: #333;
}
.order-submission .wrapper .item .discount .iconfont {
color: #515151;
}
.order-submission .wrapper .item .discount .num {
font-size: 32rpx;
margin-right: 20rpx;
}
.order-submission .wrapper .item .shipping {
font-size: 30rpx;
color: #999;
position: relative;
padding-right: 58rpx;
}
.order-submission .wrapper .item .shipping .iconfont {
font-size: 35rpx;
color: #707070;
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
margin-left: 30rpx;
}
.order-submission .wrapper .item textarea {
background-color: #f9f9f9;
width: auto !important;
height: 140rpx;
border-radius: 14rpx;
margin-top: 30rpx;
padding: 15rpx;
box-sizing: border-box;
font-weight: 400;
}
.order-submission .wrapper .item .placeholder {
color: #ccc;
}
.order-submission .wrapper .item .list {
margin-top: 35rpx;
}
.order-submission .wrapper .item .list .payItem {
border: 1px solid #eee;
border-radius: 14rpx;
height: 86rpx;
width: 100%;
box-sizing: border-box;
margin-top: 20rpx;
font-size: 28rpx;
color: #282828;
}
.order-submission .wrapper .item .list .payItem.on {
// border-color: #fc5445;
@include coupons_border_color(theme);
color: $theme-color;
}
.order-submission .wrapper .item .list .payItem .name {
width: 50%;
text-align: center;
border-right: 1px solid #eee;
}
.order-submission .wrapper .item .list .payItem .name .iconfont {
width: 44rpx;
height: 44rpx;
border-radius: 50%;
text-align: center;
line-height: 44rpx;
background-color: #fe960f;
color: #fff;
font-size: 30rpx;
margin-right: 15rpx;
}
.order-submission .wrapper .item .list .payItem .name .iconfont.icon-weixin2 {
background-color: #41b035;
}
.order-submission .wrapper .item .list .payItem .name .iconfont.icon-zhifubao {
background-color: #00AAEA;
}
.order-submission .wrapper .item .list .payItem .tip {
width: 49%;
text-align: center;
font-size: 26rpx;
color: #aaa;
}
.order-submission .moneyList {
margin-top: 15rpx;
background-color: #fff;
padding: 0 30rpx;
margin-bottom: calc(constant(safe-area-inset-bottom)); ///兼容 IOS<11.2/
margin-bottom: calc(env(safe-area-inset-bottom)); ///兼容 IOS>11.2/
}
.order-submission .moneyList .item {
font-size: 30rpx;
color: #282828;
height: 96rpx;
}
.order-submission .moneyList .item ~ .item {
// margin-top: 20rpx;
}
.order-submission .moneyList .item .money {
color: #666666;
}
.order-submission .footer {
width: 100%;
height: 100rpx;
background-color: #fff;
padding: 0 30rpx;
font-size: 28rpx;
color: #333;
box-sizing: border-box;
position: fixed;
bottom: 0;
left: 0;
height: calc(100rpx + constant(safe-area-inset-bottom)); ///兼容 IOS<11.2/
height: calc(100rpx + env(safe-area-inset-bottom)); ///兼容 IOS>11.2/
}
.order-submission .footer .settlement {
font-size: 30rpx;
color: #fff;
width: 240rpx;
height: 70rpx;
@include main_bg_color(theme);
border-radius: 50rpx;
text-align: center;
line-height: 70rpx;
}
.footer .transparent {
opacity: 0
}
/deep/ checkbox .uni-checkbox-input.uni-checkbox-input-checked {
@include main_bg_color(theme);
border: none !important;
color: #fff !important
}
/deep/ checkbox .wx-checkbox-input.wx-checkbox-input-checked {
@include main_bg_color(theme);
border: none !important;
color: #fff !important;
margin-right: 0 !important;
}
</style>
<style scoped lang="css">
.ml-7 {
margin-left: 12.21rpx;
}
.mt-27 {
margin-top: 47.09rpx;
}
.mt-17 {
margin-top: 29.65rpx;
}
.page {
background-color: #f6f6f5;
height: 100%;
width: 100%;
overflow-y: auto;
overflow-x: hidden;
}
.section {
background-color: #ffffff;
background-image: linear-gradient(180deg, #1db0fe -11.6%, #f5f5f5 100%);
}
.section_2 {
background-image: linear-gradient(180deg, #1db0fe -11.6%, #f5f5f5 100%);
height: 338.37rpx;
}
.section_3 {
padding: 38.37rpx 27.91rpx 17.44rpx;
background-color: #ffffff;
border-radius: 17.44rpx 17.44rpx 0rpx 0rpx;
}
.pos {
position: absolute;
left: 33.99rpx;
right: 27.03rpx;
top: 113.37rpx;
}
.font {
font-size: 32rpx;
font-family: SourceHanSansCN;
line-height: 22.52rpx;
color: #000000;
}
.text {
font-weight: 700;
line-height: 22.52rpx;
}
.font_2 {
font-size: 32rpx;
font-family: SourceHanSansCN;
font-weight: 700;
color: #000000;
}
.text_2 {
line-height: 22.52rpx;
}
.image {
width: 31.4rpx;
height: 31.4rpx;
}
.font_3 {
font-size: 32rpx;
font-family: SourceHanSansCN;
}
.text_3 {
color: #1db0fe;
line-height: 22.52rpx;
}
.text_4 {
color: #808080;
line-height: 22.52rpx;
}
.image_2 {
width: 91.8605vw;
height: 2.5581vw;
}
.pos_2 {
position: absolute;
left: 33.99rpx;
right: 27.03rpx;
bottom: 81.98rpx;
}
.section_4 {
margin: -69.77rpx 27.91rpx 0 33.14rpx;
padding: 10.47rpx 17.44rpx 13.95rpx;
background-color: #ffffff;
border-radius: 17.44rpx;
}
.image_3 {
width: 150rpx;
height: 130.81rpx;
}
.text_5 {
margin-right: 38.37rpx;
margin-top: 13.95rpx;
font-size: 22.67rpx;
line-height: 22.52rpx;
}
.section_5 {
/* margin: 19.19rpx 24.42rpx 0 36.63rpx; */
padding: 29.65rpx 12.21rpx 38.37rpx 34.88rpx;
background-color: #ffffff;
border-radius: 17.44rpx;
}
.text_7 {
line-height: 22.52rpx;
}
.text_9 {
line-height: 22.52rpx;
}
.text-wrapper {
padding: 13.95rpx 0;
background-color: #ffffff;
border-radius: 3.49rpx;
width: 162.21rpx;
}
.font_4 {
font-size: 32rpx;
font-family: SourceHanSansCN;
line-height: 23.52rpx;
color: #818182;
}
.text_6 {
margin-left: 41.86rpx;
}
.text_8 {
line-height: 22.52rpx;
}
.section_6 {
padding: 10.47rpx 13.95rpx 13.95rpx;
background-color: #ffffff;
}
.font_5 {
font-size: 32rpx;
font-family: SourceHanSansCN;
line-height: 22.52rpx;
color: #232323;
}
.text_10 {
margin-left: 66.28rpx;
}
.image_4 {
width: 19.19rpx;
height: 19.19rpx;
}
.group {
margin-top: 22.67rpx;
}
.text_11 {
line-height: 22.52rpx;
}
.section_7 {
padding: 10.47rpx 13.95rpx 13.95rpx;
background-color: #ffffff;
height: 48.84rpx;
width: 73%;
}
.text_12 {
margin-left: 66.28rpx;
}
.group_2 {
margin-top: 29.65rpx;
}
.text_13 {
line-height: 22.52rpx;
}
.group_3 {
margin-top: 24.42rpx;
}
.text_14 {
line-height: 22.52rpx;
}
.text_17 {
line-height: 24.52rpx;
}
.group_4 {
margin-right: 10.47rpx;
width: 310.47rpx;
}
.group_5 {
padding-bottom: 20.93rpx;
}
.section_8 {
background-color: #ffffff;
border-radius: 3.49rpx;
width: 162.21rpx;
height: 48.84rpx;
}
.view {
margin-right: 10.47rpx;
}
.text_15 {
line-height: 22.52rpx;
}
.pos_3 {
position: absolute;
left: 0;
right: 0;
top: 13.74rpx;
}
.text-wrapper_2 {
margin-right: 3.49rpx;
padding: 13.95rpx 0;
background-color: #dddedf;
border-radius: 6.98rpx;
width: 153.49rpx;
}
.text_16 {
line-height: 22.52rpx;
}
.group_6 {
margin-top: 36.63rpx;
}
.text_18 {
margin-top: 3.49rpx;
line-height: 22.52rpx;
}
.input {
position: relative;
margin-right: 13.95rpx;
}
.group_7 {
width: 277.33rpx;
}
.text_19 {
line-height: 22.52rpx;
}
.pos_4 {
position: absolute;
left: 0;
right: 0;
top: 10%;
transform: translateY(-50%);
}
.input_2 {
margin-top: 26.16rpx;
}
.text_20 {
margin-top: 20.93rpx;
line-height: 22.52rpx;
}
.group_8 {
margin-right: 15.7rpx;
width: 248.13rpx;
}
.pos_5 {
position: absolute;
left: 0;
right: 0;
top: 50%;
transform: translateY(-50%);
}
.text_21 {
margin-top: 20.93rpx;
}
.pos_6 {
position: absolute;
left: 0;
right: 0;
top: 50%;
transform: translateY(-50%);
}
.group_9 {
margin-top: 26.16rpx;
}
.text_23 {
margin-top: 20.93rpx;
line-height: 22.52rpx;
}
.text-wrapper_3 {
//margin-right: 15.7rpx;
//padding: 13.95rpx 0;
background-color: #ffffff;
border-radius: 3.49rpx;
height: 48.84rpx;
width: 280rpx;
}
.text_22 {
margin-left: 10.47rpx;
line-height: 22.52rpx;
}
.section_9 {
margin-top: 20.93rpx;
padding: 52.33rpx 0 41.86rpx;
background-color: #ffffff;
}
.text-wrapper_4 {
padding: 20.93rpx 0;
background-color: #1db0fe;
border-radius: 34.88rpx;
width: 214.53rpx;
}
.text_24 {
color: #ffffff;
font-size: 24.42rpx;
font-family: SourceHanSansCN;
font-weight: 700;
line-height: 22.52rpx;
}
.text_right {
text-align: right;
float: right;
width: 100%;
}
.previewBtn {
font-size: 14px;
line-height: 25px;
background-color: #1DB0FC;
padding-right: 2px;
padding-left: 2px;
color: white;
}
.workDescInput {
position: absolute;
left: 0;
right: 0;
top: 75px;
transform: translateY(-50%);
width: 100%;
margin-top: 0px;
font-size: 32rpx;
font-family: SourceHanSansCN;
line-height: 23.52rpx;
color: #818182;
}
.longBnts {
width: 444rpx;
text-align: center;
line-height: 76rpx;
color: #ffffff;
font-size: 28rpx;
display: inline-block;
border-radius: 50rpx !important;
}
</style>
真机运行的时候出现了
page is not ready at view.umd.min.js:1
13:28:20.674 TypeError: Cannot read properties of undefined (reading 'matches') at view.umd.min.js:1
13:28:29.002 [JS Framework] Failed to execute the callback function:
TypeError: Cannot read property 'call' of undefined
13:28:29.032 reportJSException >>>> exception function:WEEX_CALL_JAVASCRIPT, exception:JavaScript execute error!Uncaught TypeError: Cannot read property 'call' of undefined
at webpack_require (app-service.js:80:30)
at eval (<anonymous>:10:37)
at 936 (app-service.js:1001:1)
at webpack_require (app-service.js:80:30)
at eval (<anonymous>:2:543)
at 935 (app-service.js:989:1)
at webpack_require (app-service.js:80:30)
at eval (<anonymous>:3:93)
at 932 (app-service.js:734:1)
at webpack_require (app-service.js:80:30)
0 个回复