<template> <view> <u--form :model="inputForm" labelWidth="100px" class="u-form" labelPosition="left" :rules="rules" ref="inputForm"> <u-form-item label="标题" borderBottom prop="mailDTO.title"> <u--input v-model="inputForm.mailDTO.title" placeholder="请输入标题" border="none"></u--input> </u-form-item> <u-form-item label="发送到" borderBottom prop="receiverIds"> <user-select v-model="inputForm.receiverIds"></user-select> </u-form-item> <u-form-item label="内容" borderBottom prop="mailDTO.content"> <u--textarea v-model="inputForm.mailDTO.content" placeholder="请输入内容" border="none"></u--textarea> </u-form-item> </u--form> <view class="bottom-wrap flex"> <u-button type="error" text="存为草稿" @click="saveDraft" ></u-button> <u-button type="primary" text="发送邮件" @click="sendEmail" ></u-button> </view> </view> </template> <script> import userSelect from '@/components/user-select/user-select.vue' var graceChecker = require("@/common/graceChecker.js"); import mailComposeService from "@/api/mail/mailComposeService"; import userService from "@/api/sys/userService" export default { async onLoad(mail) { if(mail&&mail.id){ let data = await mailComposeService.queryById(mail.id); this.inputForm = this.recover(this.inputForm, data); } }, components:{ userSelect }, data () { return { data: [], inputForm: { id: '', status: '', receiverIds: '', mailDTO: { title: '', overview: '', content: '' } }, rules: { 'receiverIds': [ { required: true, message: '请选择收件人', trigger: ['blur', 'change'] } ], 'mailDTO.title': [ { required: true, message: '请输入邮件标题', trigger: ['blur', 'change'] } ], 'mailDTO.content': [ { required: true, message: '请输入邮件内容', trigger: ['blur', 'change'] } ] } } }, methods: { saveDraft () { this.inputForm.status = '0' this.formSubmit() }, sendEmail () { this.inputForm.status = '1' this.formSubmit() }, formSubmit: function(e) { //定义表单规则 this.$refs.inputForm.validate().then(res => { uni.showLoading() mailComposeService.save(this.inputForm).then((data) => { uni.showToast({title:data, icon:"success"}); uni.navigateTo({ url: '/pages/apps/mail/inbox' }) }).catch((e)=>{ console.log(e) }) }) } } } </script>