// feedbackMixin.js - 可复用的反馈表单逻辑 export default { data() { return { scanCode: '', filterStatus: '2', filterOptions: [{ label: '意见反馈', value: '1' }, { label: '留言评价', value: '2' } ], model1: { userInfo: { qrCode: '', type: '', liuyan: '', tel: '', mail: '', name: '' }, }, rules: { 'userInfo.name': { type: 'string', required: true, message: '请填写姓名', trigger: ['blur', 'change'] }, 'userInfo.tel': [{ required: true, message: '请输入手机号', trigger: ['change', 'blur'], }, { // 自定义验证函数,见上说明 validator: (rule, value, callback) => { console.log(value); // 上面有说,返回true表示校验通过,返回false表示不通过 // uni.$u.test.mobile()就是返回true或者false的 return uni.$u.test.mobile(value); }, message: '手机号码不正确', // 触发器可以同时用blur和change trigger: ['change', 'blur'], } ], }, } }, onReady() { // 如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则 this.$refs.uForm.setRules(this.rules) }, onLoad() { this.scanCode = uni.getStorageSync('scanCode'); this.model1.userInfo.qrCode = this.scanCode; }, methods: { baseOpenDetail(url) { uni.navigateTo({ url: '/pages/'+url+'/index/rules' }); }, baseGoBack() { uni.navigateBack(); }, baseOnFilterChange(val) { if (this.filterStatus !== val) { this.filterStatus = val; } }, baseSaveData(apiFunction, successCallback) { let that = this; this.model1.userInfo.type = this.filterStatus; this.$refs.uForm.validate().then(res => { apiFunction(that.model1.userInfo).then(data => { this.model1.userInfo.liuyan = ''; this.model1.userInfo.tel = ''; this.model1.userInfo.mail = ''; this.model1.userInfo.name = ''; let params = { type: "success", title: "成功主题(带图标)", message: "提交成功", iconUrl: "https://uviewui.com/demo/toast/success.png", } this.$refs.uToast.show({ ...params }); if (successCallback && typeof successCallback === 'function') { successCallback(data); } }) }).catch(errors => { }) } } }