3
0
Fork 0
web-store-retail-h5/pages/mine/feedBack/feedBack.vue

123 lines
2.8 KiB
Vue
Raw Normal View History

2025-03-23 09:29:40 +08:00
<template>
<view class="content">
<view class="centerbox">
<u--form labelPosition="left" :model="dataForm" :rules="rules" ref="uForm">
<view class="view-class">
<u-form-item :label="$t('S_L_16')" @click='selectShow = true' label-width="150rpx" prop="type">
<u--input :readonly='true' v-model="dataForm.typeName" suffixIcon="arrow-down"
:placeholder="$t('CK_KS_38')">
</u--input>
</u-form-item>
</view>
<view class="view-class">
<u-form-item :label="$t('S_L_15')" label-width="150rpx" prop="idea">
<u--textarea v-model="dataForm.idea" :placeholder="$t('S_C_70')"></u--textarea>
</u-form-item>
</view>
</u--form>
</view>
<view class="bottombtn">
<u-button @click="submit" :text="$t('S_L_17')" color="#D61820"></u-button>
</view>
<u-picker @cancel='selectShow=false' :show="selectShow" ref="uPicker" :columns="typeList" @confirm="confirm"
keyName='label'></u-picker>
</view>
</template>
<script>
import * as sid from '@/config/balance.js'
export default {
data() {
return {
dataForm: {
type: "",
idea: "",
typeName: ""
},
rules: {
type: [{
// 必填项
required: true,
// 提示内容会出现在u-form-item内的底部
message: this.$t('CK_KS_38'),
}],
idea: [{
// 必填项
required: true,
// 提示内容会出现在u-form-item内的底部
message: this.$t('S_C_70'),
trigger: ["change"],
}],
},
selectShow: false,
typeList: [],
}
},
onLoad() {
this.getData()
},
methods: {
submit() {
this.$refs.uForm.validate().then((res) => {
sid.saveFeedBack(this.dataForm).then((res) => {
if (res.code == 200) {
uni.showToast({
title: res.msg,
icon: 'none',
})
// uni.setStorageSync('isTab', 3);
uni.$emit('tabChange', 3);
// 跳转到tabbar页面
setTimeout(() => {
uni.switchTab({
url: '/pages/email/index'
})
}, 100)
// this.$refs.uForm.resetFields()
// this.$refs.uForm.clearValidate()
}
})
})
},
confirm(e) {
this.dataForm.type = e.value[0].value
this.dataForm.typeName = e.value[0].label
this.selectShow = false
},
getData() {
sid.getFeedbackType().then((res) => {
this.typeList = [res.data];
});
}
}
}
</script>
<style lang="scss" scoped>
.content {
background: #F9F9F9;
padding: 10rpx 12rpx;
.centerbox {
padding: 10rpx;
background: #FFFFFF;
box-shadow: 0rpx 2rpx 10rpx 0rpx rgba(204, 204, 204, 0.4);
border-radius: 10rpx 10rpx 0rpx 0rpx;
}
.bottombtn {
padding: 10rpx 30rpx 40rpx 30rpx;
position: fixed;
background-color: #FFFFFF;
bottom: 0;
left: 0;
right: 0;
}
}
</style>