Commit 70785dc3 authored by daniel's avatar daniel

fix(gunRule): 交互完善

parent a712fa03
......@@ -240,7 +240,7 @@
:pagination="false"
:bordered="true"/>
</n-card>
<n-card title="选手列表" :bordered="false" v-if="activeMenu!=menuOptions[0].value">
<n-card :title="'选手列表('+ totalPlayer + ')'" :bordered="false" v-if="activeMenu!=menuOptions[0].value">
<template #header-extra>
<n-space>
<n-button @click="downloadImportList">
......@@ -294,6 +294,7 @@
size="small"
label-placement="left"
label-width="auto"
:disabled="loading"
>
<n-form-item label="姓名" path="name">
<n-input v-model:value="playerFormValue.name" placeholder="请输入姓名" />
......@@ -313,14 +314,14 @@
<n-radio :value="1" label="女">女</n-radio>
</n-radio-group>
</n-form-item>
<n-form-item label="枪次">
<n-select :options="gunRuleValue.details.filter(v=>v.id).map(v=>({label:v.waveName,value:v.waveNumber}))" v-model:value="playerFormValue.waveNumber"></n-select>
</n-form-item>
<n-form-item label="组别" path="roadName">
<n-select :options="gunRules.map(v=>({label:v.roadName,value:v.roadName}))" v-model:value="playerFormValue.roadName">
</n-select>
</n-form-item>
<n-form-item label="枪次" path="waveNumber" v-if="gunRules.length">
<n-select :options="waveOptions" v-model:value="playerFormValue.waveNumber">
</n-select>
</n-form-item>
</n-form>
<template #footer>
<div class="flex gap-x-2 flex-row items-center" >
......@@ -470,7 +471,7 @@
}
</script>
<script>
const { createApp, defineComponent, onBeforeUnmount, reactive, ref, onMounted, h } = Vue;
const { createApp, defineComponent, onBeforeUnmount, reactive, ref, onMounted, h, computed } = Vue;
const { useMessage, useNotification, dateZhCN, NButton, NTag, zhCN, NSpace, NImageGroup, NImage, NText, NInputNumber, NSelect, NInput, NDatePicker } = naive
const uploadUrl = window.location.origin + '/api-common/v1/upload?folder=gk/gunApply' + '&cmptId=' + getCId()
const downloadWeChatImgUrl = window.location.origin + '/api-common/v1/download-wechat-image'
......@@ -541,10 +542,14 @@
required: true,
message: '请输入姓名',
},
// waveNumber: {
// required: true,
// message: '请输入枪次',
// },
waveNumber: {
required: true,
message: '请输入枪次',
},
markNo: {
required: true,
message: '请输入参赛号',
},
roadName: {
required: true,
message: '请选择组别',
......@@ -571,7 +576,6 @@
e.preventDefault()
playerFormRef.value?.validate(async (errors) => {
if (errors) return message.error('请检查表单是否填写完整')
loading.value = true
const messageReactive = message.loading('选手信息更新中', {
duration: 0
......@@ -584,6 +588,7 @@
body: JSON.stringify({
id: playerFormValue.value.id,
cmptId: playerFormValue.value.cmptId,
name: playerFormValue.value.name,
identityNo: playerFormValue.value.identityNo,
markNo: playerFormValue.value.markNo,
waveNumber: playerFormValue.value.waveNumber,
......@@ -596,10 +601,12 @@
loading.value = false
messageReactive.destroy()
if (err) {
message.error(err.message)
message.error(data.message)
return
}
getPlayers()
if (data.code !== 200) return message.error(data.message)
message.success('操作成功')
getGunRules()
// 保存
onPlayerModalCancel()
})
......@@ -609,6 +616,11 @@
/***---------------- 人员列表 start -----------------*/
const keyword = ref('')
const fileList = ref([])
// 枪次选项
const waveOptions = computed(() => {
if (gunRules.value.length === 0) return []
return gunRules.value.find(v => v.roadName === playerFormValue.value.roadName)?.details.filter(v => v.id).map(v => ({ label: v.waveName, value: v.waveNumber })) ?? []
})
// 分页
const pagination = reactive({
pageSize: 20,
......@@ -635,6 +647,7 @@
]
// 人员列表
const players = ref([])
const totalPlayer = ref(0)
const columns = [
{
title: '姓名',
......@@ -701,15 +714,12 @@
}).then(res => res.json()))
loading.value = false
if (err) {
message.error(err.message)
message.error(data.message)
return
}
if (data.code === 200) {
message.success('删除成功')
getPlayers()
} else {
message.error(data.msg)
}
if (data.code !== 200) return message.error(data.message)
message.success('删除成功')
getGunRules()
}
}, '删除'),
])
......@@ -763,6 +773,7 @@
players.value = res.data.records
pagination.pageCount = res.data.pages
pagination.itemCount = res.data.total
totalPlayer.value = res.data.total
} else {
message.error(res.msg)
}
......@@ -823,12 +834,10 @@
message.error(err.message)
return
}
if (data.code === 200) {
message.success('随机分配成功')
getPlayers()
} else {
message.error(data.msg)
}
if (data.code !== 200) return message.error(data.message)
message.success('随机分配成功')
getPlayers()
}
// 初始化规则
const initWaves = async () => {
......@@ -851,12 +860,9 @@
message.error(err.message)
return
}
if (data.code === 200) {
message.success('初始化规则成功')
getGunRules()
} else {
message.error(data.msg)
}
if (data.code !== 200) return message.error(data.message)
message.success('初始化规则成功')
getGunRules()
}
// 导出名单
const exportEnroll = async () => {
......@@ -928,15 +934,12 @@
if (err) {
message.error(err.message)
}
if (res.code === 200) {
gunRules.value = res.data
if (res.data.length) {
changeGunRule(ruleIndex.value === -1 ? 0 : ruleIndex.value)
} else {
gunRuleValue.value = initialValue
}
if (res.code !== 200) return message.error(res.message)
gunRules.value = res.data
if (res.data.length) {
changeGunRule(ruleIndex.value === -1 ? 0 : ruleIndex.value)
} else {
message.error(res.msg)
gunRuleValue.value = initialValue
}
}
......@@ -977,12 +980,13 @@
}).then(res => res.json()))
loading.value = false
messageReactive.destroy()
if (data.code === 200) {
message.success('操作成功')
getGunRules()
} else {
message.error(data.message)
if (err) {
message.error(err.message)
return
}
if (data.code !== 200) return message.error(data.message)
message.success('操作成功')
getGunRules()
})
}
// 日期处理
......@@ -1011,12 +1015,13 @@
},
}).then(res => res.json()))
messageReactive.destroy()
if (data.code === 200) {
message.success('操作成功')
getGunRules()
} else {
message.error(data.message)
if (err) {
message.error(err.message)
return
}
if (data.code !== 200) return message.error(data.message)
message.success('操作成功')
getGunRules()
loading.value = false
}
......@@ -1129,11 +1134,13 @@
playerRules,
onPlayerModalCancel,
onPlayerSubmit,
waveOptions,
// 人员列表
keyword,
pagination,
columns,
players,
totalPlayer,
randomAssign,
initWaves,
exportEnroll,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment