批量推送
This commit is contained in:
@@ -147,8 +147,8 @@
|
||||
<el-form-item label="短信验证码" :required="true">
|
||||
<div class="sms-row">
|
||||
<el-input v-model="phoneForm.smsCode" placeholder="请输入验证码" />
|
||||
<el-button class="btn-sms" :disabled="phoneSmsCountdown > 0" @click="sendSms">
|
||||
{{ phoneSmsCountdown > 0 ? `${phoneSmsCountdown}s 后重试` : '发送验证码' }}
|
||||
<el-button class="btn-sms" :disabled="phoneSmsLocked || phoneSmsCountdown > 0" @click="sendSms">
|
||||
{{ phoneSmsLocked ? '发送中...' : phoneSmsCountdown > 0 ? `${phoneSmsCountdown}s 后重试` : '发送验证码' }}
|
||||
</el-button>
|
||||
</div>
|
||||
</el-form-item>
|
||||
@@ -174,6 +174,9 @@ import DoctorDeptSelect from '@/components/DoctorDeptSelect.vue'
|
||||
import DoctorTitleSelect from '@/components/DoctorTitleSelect.vue'
|
||||
import IdCardUploader from '@/components/IdCardUploader.vue'
|
||||
import OssImageUploader from '@/components/OssImageUploader.vue'
|
||||
import { useAsyncLock } from '@/utils/useAsyncLock'
|
||||
|
||||
const { locked: phoneSmsLocked, run: sendPhoneSmsOnce } = useAsyncLock()
|
||||
|
||||
const store = useUserStore()
|
||||
const tab = ref('profile')
|
||||
@@ -409,25 +412,27 @@ async function sendSms() {
|
||||
if (!/^(1[0-9])\d{9}$/.test(phone)) {
|
||||
return ElMessage.warning('请输入正确的手机号')
|
||||
}
|
||||
try {
|
||||
const res = await request({
|
||||
url: '/system/user/profile/sendSmsCode',
|
||||
method: 'post',
|
||||
params: { phone }
|
||||
})
|
||||
phoneSmsUuid.value = res.uuid || ''
|
||||
ElMessage.success('验证码已发送')
|
||||
phoneSmsCountdown.value = 60
|
||||
phoneSmsTimer = setInterval(() => {
|
||||
phoneSmsCountdown.value--
|
||||
if (phoneSmsCountdown.value <= 0) {
|
||||
clearInterval(phoneSmsTimer)
|
||||
phoneSmsTimer = null
|
||||
}
|
||||
}, 1000)
|
||||
} catch (e) {
|
||||
ElMessage.error(e?.msg || '发送失败')
|
||||
}
|
||||
await sendPhoneSmsOnce(async () => {
|
||||
try {
|
||||
const res = await request({
|
||||
url: '/system/user/profile/sendSmsCode',
|
||||
method: 'post',
|
||||
params: { phone }
|
||||
})
|
||||
phoneSmsUuid.value = res.uuid || ''
|
||||
ElMessage.success('验证码已发送')
|
||||
phoneSmsCountdown.value = 60
|
||||
phoneSmsTimer = setInterval(() => {
|
||||
phoneSmsCountdown.value--
|
||||
if (phoneSmsCountdown.value <= 0) {
|
||||
clearInterval(phoneSmsTimer)
|
||||
phoneSmsTimer = null
|
||||
}
|
||||
}, 1000)
|
||||
} catch (e) {
|
||||
ElMessage.error(e?.msg || '发送失败')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
async function onChangePhone() {
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
<el-descriptions-item label="项目编号">{{ detail.projectNo }}</el-descriptions-item>
|
||||
<el-descriptions-item label="项目形式">{{ detail.projectForm || '-' }}</el-descriptions-item>
|
||||
<el-descriptions-item label="项目名称" :span="2">{{ detail.projectName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="赞助公司" :span="2">{{ detail.orgName || '-' }}</el-descriptions-item>
|
||||
<el-descriptions-item label="赞助方负责人" :span="2">{{ detail.sponsorAdminUserName || '-' }}</el-descriptions-item>
|
||||
<el-descriptions-item label="总场次">{{ detail.totalSessions || 0 }}</el-descriptions-item>
|
||||
<el-descriptions-item label="已执行">{{ detail.doneSessions || 0 }}</el-descriptions-item>
|
||||
<el-descriptions-item label="未执行">{{ detail.todoSessions || 0 }}</el-descriptions-item>
|
||||
|
||||
Reference in New Issue
Block a user