You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
123 lines
3.3 KiB
123 lines
3.3 KiB
import { ref, computed } from 'vue';
|
|
import { useStore } from 'vuex';
|
|
import clipboard from "@/common/js/dc-clipboard/clipboard.js"
|
|
|
|
export default function userMixin() {
|
|
const store = useStore();
|
|
const user = computed(() => store.state.user.user);
|
|
const rules = ref({
|
|
phone: [{
|
|
required: true,
|
|
message: '请输入手机号',
|
|
trigger: ['change', 'blur'],
|
|
},
|
|
{
|
|
validator: (rule, value, callback) => {
|
|
// 调用uView自带的js验证规则,详见:https://www.uviewui.com/js/test.html
|
|
return this.$u.test.mobile(value);
|
|
},
|
|
message: '手机号码不正确',
|
|
// 触发器可以同时用blur和change,二者之间用英文逗号隔开
|
|
trigger: ['change', 'blur'],
|
|
}
|
|
],
|
|
verificationCodeValue: [{
|
|
required: true,
|
|
message: '请输入图形验证码',
|
|
trigger: ['change', 'blur'],
|
|
},
|
|
{
|
|
type: 'number',
|
|
message: '图形验证码只能为数字',
|
|
trigger: ['change', 'blur'],
|
|
}
|
|
],
|
|
smsCode: [{
|
|
required: true,
|
|
message: '请输入验证码',
|
|
trigger: ['change', 'blur'],
|
|
},
|
|
{
|
|
type: 'number',
|
|
message: '验证码只能为数字',
|
|
trigger: ['change', 'blur'],
|
|
}
|
|
],
|
|
account: [{
|
|
required: true,
|
|
message: '请输入用户名',
|
|
trigger: ['change', 'blur'],
|
|
},
|
|
{
|
|
min: 2,
|
|
max: 20,
|
|
message: '用户名长度在2到20个字符',
|
|
trigger: ['change', 'blur'],
|
|
},
|
|
{
|
|
pattern: /^[a-zA-Z0-9._-]{2,20}$/,
|
|
message: '请输入2-20位字母、数字、汉字或字符"_ - ."',
|
|
trigger: ['change', 'blur'],
|
|
}
|
|
],
|
|
password: [{
|
|
required: true,
|
|
message: '请输入密码',
|
|
trigger: ['change', 'blur'],
|
|
},
|
|
{
|
|
min: 6,
|
|
max: 20,
|
|
message: '密码长度在6到20个字符',
|
|
trigger: ['change', 'blur'],
|
|
},
|
|
{
|
|
// 正则不能含有两边的引号
|
|
pattern: /^[a-zA-Z0-9._-]{6,20}$/,
|
|
message: '请输入6-20位字母、数字、汉字或字符"_ - ."',
|
|
trigger: ['change', 'blur'],
|
|
}
|
|
],
|
|
});
|
|
const errorType = ['message'];
|
|
const labelPosition = 'left';
|
|
const border = false;
|
|
const smsCode = ref(''); // 短信验证码
|
|
const showInterval = ref(false);
|
|
const interval = ref(120);
|
|
const codeTimer = ref(null);
|
|
const showPaste = ref(false);
|
|
|
|
// 获取图形验证码
|
|
async function getImageCode() {
|
|
console.log('5555')
|
|
uni.$ui.showLoading();
|
|
try {
|
|
const data = await uni.$u.api.getImageCode();
|
|
const { imageBase64, verificationCodeId } = data;
|
|
imageBase64 = imageBase64 || '';
|
|
verificationCodeId = verificationCodeId || '';
|
|
uni.$ui.hideLoading();
|
|
} catch (error) {
|
|
uni.$ui.hideLoading();
|
|
uni.$ui.showToast(error);
|
|
}
|
|
}
|
|
|
|
return {
|
|
rules,
|
|
errorType,
|
|
labelPosition,
|
|
border,
|
|
getImageCode,
|
|
// hasvalue,
|
|
// getCode,
|
|
// getCodeInterval,
|
|
// checkRules,
|
|
// setCode,
|
|
// getClipboardContents,
|
|
// verifyPhone,
|
|
// verifyLoginname,
|
|
// handleWxLogin
|
|
}
|
|
}
|
|
|