This commit is contained in:
那些花儿
2025-09-28 15:07:33 +08:00
parent a1e49561b9
commit 9bbfade412
8 changed files with 126 additions and 40 deletions
@@ -101,10 +101,10 @@
:rules="[{required:true,message: '请输入职务'}]">
<t-input v-model="user.position" borderless placeholder="请输入职务"></t-input>
</t-form-item>
<t-form-item label="身份证号" :name="`userList[${index}].idCard`"
:rules="[{required:true,message: '请输入身份证号码'},{idcard:true, message: '请输入正确的身份证号码'}]">
<t-input v-model="user.idCard" borderless placeholder="请输入身份证号码"></t-input>
</t-form-item>
<!-- <t-form-item label="身份证号" :name="`userList[${index}].idCard`"-->
<!-- :rules="[{required:true,message: '请输入身份证号码'},{idcard:true, message: '请输入正确的身份证号码'}]">-->
<!-- <t-input v-model="user.idCard" borderless placeholder="请输入身份证号码"></t-input>-->
<!-- </t-form-item>-->
<t-form-item label="联系电话" :name="`userList[${index}].phone`"
:rules="[{required:true,message: '请输入联系电话'},{telnumber:true, message: '请输入正确的联系电话'}]">
<t-input v-model="user.phone" borderless placeholder="请输入联系电话"></t-input>
@@ -275,7 +275,7 @@ function addNewUser() {
sex: null,
unitName: userStore?.userInfo?.unit?.name,
position: null,
idCard: null,
// idCard: null,
phone: null,
isStay: null,
isContacts: false,
@@ -397,7 +397,7 @@ onLoad(async (option) => {
sex: userStore.userInfo.sex,
unitName: userStore?.userInfo?.unit?.name,
position: null,
idCard: userStore.userInfo.idCard,
// idCard: userStore.userInfo.idCard,
phone: userStore.userInfo.phone,
isStay: null
})
+79 -13
View File
@@ -95,18 +95,51 @@
<t-icon name="chevron-right" size="20px" class="arrow-icon"/>
</view>
<!-- 身份证输入框 -->
<!-- &lt;!&ndash; 身份证输入框 &ndash;&gt;-->
<!-- <view class="input-box">-->
<!-- <t-icon name="creditcard" size="20px" class="input-icon"/>-->
<!-- <input-->
<!-- class="input"-->
<!-- type="text"-->
<!-- v-model="formData.idCard"-->
<!-- placeholder="请输入身份证号码"-->
<!-- maxlength="18"-->
<!-- />-->
<!-- </view>-->
<!-- 性别 -->
<view class="input-box">
<t-icon name="gender-female" size="20px" class="input-icon"></t-icon>
<t-radio-group v-model="formData.sex">
<t-radio :block="false" name="radio" value="男" label="男" />
<t-radio :block="false" name="radio" value="女" label="女" />
</t-radio-group>
</view>
<!-- 出生年月输入框 -->
<view class="input-box">
<t-icon name="creditcard" size="20px" class="input-icon"/>
<input
class="input"
type="text"
v-model="formData.idCard"
placeholder="请输入身份证号码"
maxlength="18"
/>
v-model="formData.birthday"
placeholder="选择出生日期"
@click="showBirthdayPicker = true"
>
<t-popup v-model="showBirthdayPicker" placement="bottom">
<t-date-time-picker
:value="formData.birthday"
:mode="['date']"
title="出生日期"
start="1940-01-01"
end="2025-01-01"
format="YYYY-MM-DD"
@confirm="onBirthdayConfirm"
@cancel="onBirthdayCancel"
/>
</t-popup>
</view>
<!-- 验证码输入框 -->
<view class="input-box">
<t-icon name="shield-error" size="20px" class="input-icon"/>
@@ -215,7 +248,8 @@ const formData = reactive({
phone: '',
unitId: '',
unitName: '',
idCard: '',
// idCard: '',
birthday: '',
smsCode: ''
});
@@ -273,6 +307,19 @@ const clearSearch = () => {
searchKeyword.value = '';
};
// 生日选择器
const showBirthdayPicker = ref(false);
const onBirthdayConfirm = (date) => {
formData.birthday = date;
showBirthdayPicker.value = false;
};
const onBirthdayCancel = () => {
showBirthdayPicker.value = false;
};
// 选择单位
const selectUnit = (unit) => {
selectedUnitId.value = unit.id;
@@ -365,18 +412,22 @@ const handleRegister = async () => {
Toast('请输入正确的手机号码');
return
}
if (!formData.idCard) {
Toast('请输入身份证号');
// if (!formData.idCard) {
// Toast('请输入身份证号');
// return
// }
if (!formData.birthday) {
Toast('请选择出生日期');
return
}
if (!formData.unitId) {
Toast('请选择单位');
return
}
if (!formData.idCard.match(/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/)) {
Toast('请输入正确的身份证号');
return
}
// if (!formData.idCard.match(/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/)) {
// Toast('请输入正确的身份证号');
// return
// }
if (!formData.smsCode) {
Toast('请输入验证码');
return
@@ -696,6 +747,21 @@ onMounted(() => {
color: #f45a5a;
}
.t-radio-group{
flex: 1;
}
.t-radio{
background: transparent;
margin-right: 30rpx;
}
::v-deep .t-radio .t-radio__icon-circle::after{
/*border-color: #ffffff;*/
}
.empty-result {
display: flex;
flex-direction: column;