123 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Vue
		
	
	
	
| <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="'反馈类型'" @click='selectShow = true' label-width="150rpx" prop="type">
 | ||
| 						<u--input :readonly='true' v-model="dataForm.typeName" suffixIcon="arrow-down"
 | ||
| 							:placeholder="'请选择'">
 | ||
| 						</u--input>
 | ||
| 
 | ||
| 					</u-form-item>
 | ||
| 				</view>
 | ||
| 				<view class="view-class">
 | ||
| 					<u-form-item :label="'意见反馈'" label-width="150rpx" prop="idea">
 | ||
| 						<u--textarea v-model="dataForm.idea" :placeholder="'请输入'"></u--textarea>
 | ||
| 					</u-form-item>
 | ||
| 				</view>
 | ||
| 			</u--form>
 | ||
| 		</view>
 | ||
| 		<view class="bottombtn">
 | ||
| 			<u-button @click="submit" :text="'提交'" 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: '请选择',
 | ||
| 					}],
 | ||
| 					idea: [{
 | ||
| 						// 必填项
 | ||
| 						required: true,
 | ||
| 						// 提示内容(会出现在u-form-item内的底部)
 | ||
| 						message: '请输入',
 | ||
| 
 | ||
| 						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> |