|
|
@@ -9,10 +9,10 @@
|
|
|
<ElTableColumn prop="remark" label="备注" show-overflow-tooltip />
|
|
|
<ElTableColumn prop="message" label="内容" show-overflow-tooltip />
|
|
|
<ElTableColumn prop="listId" label="发送列表" :formatter="phoneListFormatter" />
|
|
|
- <ElTableColumn prop="rcsWait" label="RCS等待时间" />
|
|
|
- <ElTableColumn prop="rcsInterval" label="RCS发送间隔" />
|
|
|
- <ElTableColumn prop="cleanCount" label="清理数量" />
|
|
|
- <ElTableColumn prop="requestNumberInterval" label="请求号码间隔" />
|
|
|
+ <ElTableColumn v-if="shouldShow" prop="rcsWait" label="RCS等待时间" />
|
|
|
+ <ElTableColumn v-if="shouldShow" prop="rcsInterval" label="RCS发送间隔" />
|
|
|
+ <ElTableColumn v-if="shouldShow" prop="cleanCount" label="清理数量" />
|
|
|
+ <ElTableColumn v-if="shouldShow" prop="requestNumberInterval" label="请求号码间隔" />
|
|
|
<ElTableColumn prop="status" label="状态" align="center">
|
|
|
<template #default="{ row }">
|
|
|
<ElTag v-if="row.status === 'idle'" type="info">未发送</ElTag>
|
|
|
@@ -66,7 +66,7 @@
|
|
|
<ElOption v-for="item in phoneList" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
</ElSelect>
|
|
|
</ElFormItem>
|
|
|
- <ElFormItem prop="channelId" label="渠道列表">
|
|
|
+ <ElFormItem v-if="shouldShow" prop="channelId" label="渠道列表">
|
|
|
<ElSelect v-model="model.channelId" multiple placeholder="请选择渠道列表">
|
|
|
<ElOption v-for="item in operatorList" :key="item.id"
|
|
|
:label="item.mcc+'-'+item.mnc+'-'+item.country+'-'+item.operator" :value="item.id" />
|
|
|
@@ -75,19 +75,19 @@
|
|
|
<ElFormItem prop="message" label="内容">
|
|
|
<ElInput v-model="model.message" placeholder="请输入内容" type="textarea" />
|
|
|
</ElFormItem>
|
|
|
- <ElFormItem prop="rcsWait" label="RCS等待时间">
|
|
|
+ <ElFormItem v-if="shouldShow" prop="rcsWait" label="RCS等待时间">
|
|
|
<ElInputNumber :controls="false" v-model="model.rcsWait" placeholder="请输入RCS等待时间" />
|
|
|
<div class="tip">(0表示使用系统默认值)</div>
|
|
|
</ElFormItem>
|
|
|
- <ElFormItem prop="rcsInterval" label="RCS发送间隔">
|
|
|
+ <ElFormItem v-if="shouldShow" prop="rcsInterval" label="RCS发送间隔">
|
|
|
<ElInputNumber :controls="false" v-model="model.rcsInterval" placeholder="请输入RCS发送间隔" />
|
|
|
<div class="tip">(0表示使用系统默认值)</div>
|
|
|
</ElFormItem>
|
|
|
- <ElFormItem prop="cleanCount" label="清理数量">
|
|
|
+ <ElFormItem v-if="shouldShow" prop="cleanCount" label="清理数量">
|
|
|
<ElInputNumber :controls="false" v-model="model.cleanCount" placeholder="请输入清理数量" />
|
|
|
<div class="tip">(0表示使用系统默认值)</div>
|
|
|
</ElFormItem>
|
|
|
- <ElFormItem prop="requestNumberInterval" label="请求号码间隔">
|
|
|
+ <ElFormItem v-if="shouldShow" prop="requestNumberInterval" label="请求号码间隔">
|
|
|
<ElInputNumber :controls="false" v-model="model.requestNumberInterval" placeholder="请输入请求号码间隔" />
|
|
|
<div class="tip">(0表示使用系统默认值)</div>
|
|
|
</ElFormItem>
|
|
|
@@ -133,8 +133,13 @@ import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
import { useUserStore } from '@/stores/user'
|
|
|
|
|
|
const { user } = useUserStore()
|
|
|
-console.log(user)
|
|
|
const where = ref({})
|
|
|
+const roles = user.roles
|
|
|
+const shouldShow = ref(true)
|
|
|
+if (roles.includes('user')) {
|
|
|
+ where.value.userId = user.id
|
|
|
+ shouldShow.value = false
|
|
|
+}
|
|
|
const timeFormatter = useTimeFormatter()
|
|
|
const table = ref(null)
|
|
|
const model = ref({})
|
|
|
@@ -142,10 +147,10 @@ const rules = {
|
|
|
name: [{ required: true, message: '请输入名称', trigger: 'blur' }],
|
|
|
listId: [{ required: true, message: '请选择发送列表', trigger: 'blur' }],
|
|
|
message: [{ required: true, message: '请输入内容', trigger: 'blur' }],
|
|
|
- rcsWait: [{ required: true, message: '请输入RCS等待时间', trigger: 'blur' }],
|
|
|
- rcsInterval: [{ required: true, message: '请输入RCS发送间隔', trigger: 'blur' }],
|
|
|
- cleanCount: [{ required: true, message: '请输入清理数量', trigger: 'blur' }],
|
|
|
- requestNumberInterval: [{ required: true, message: '请输入请求号码间隔', trigger: 'blur' }]
|
|
|
+ rcsWait: [{ required: false, message: '请输入RCS等待时间', trigger: 'blur' }],
|
|
|
+ rcsInterval: [{ required: false, message: '请输入RCS发送间隔', trigger: 'blur' }],
|
|
|
+ cleanCount: [{ required: false, message: '请输入清理数量', trigger: 'blur' }],
|
|
|
+ requestNumberInterval: [{ required: false, message: '请输入请求号码间隔', trigger: 'blur' }]
|
|
|
}
|
|
|
const { showEditDialog, onEdit } = setupEditDialog(model)
|
|
|
|
|
|
@@ -161,7 +166,9 @@ async function submit() {
|
|
|
const phoneList = ref([])
|
|
|
|
|
|
async function getPhoneList() {
|
|
|
- phoneList.value = (await http.post('/phone-list')).items
|
|
|
+ phoneList.value = (await http.post('/phone-list', {
|
|
|
+ search: { where: where.value }
|
|
|
+ })).items
|
|
|
}
|
|
|
|
|
|
getPhoneList()
|
|
|
@@ -234,11 +241,25 @@ function taskItemStatusFormatter(row, column, cellValue, index) {
|
|
|
}
|
|
|
|
|
|
async function start(row) {
|
|
|
- await ElMessageBox.confirm('确定开始发送吗?', '提示', {
|
|
|
- type: 'warning'
|
|
|
- })
|
|
|
- await http.post(`/task/${row.id}/start`)
|
|
|
- table.value.refresh()
|
|
|
+ const cost = await http.get(`/task/verification/${row.id}`)
|
|
|
+ if (cost > 0 && row.status === 'idle') {
|
|
|
+ const confirm = await ElMessageBox.confirm(`该任务需要从余额中扣除 ${cost} ,是否继续?`, '提示', {
|
|
|
+ type: 'warning'
|
|
|
+ })
|
|
|
+ if (confirm) {
|
|
|
+ await http.post(`/task/${row.id}/start`)
|
|
|
+ table.value.refresh()
|
|
|
+ }
|
|
|
+ } else if (cost < 0 && row.status === 'idle') {
|
|
|
+ await ElMessageBox.alert('余额不足,请充值后再启动任务.', '提示')
|
|
|
+ table.value.refresh()
|
|
|
+ } else {
|
|
|
+ await ElMessageBox.confirm('确定开始发送吗?', '提示', {
|
|
|
+ type: 'warning'
|
|
|
+ })
|
|
|
+ await http.post(`/task/${row.id}/start`)
|
|
|
+ table.value.refresh()
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
async function pause(row) {
|