|
@@ -44,6 +44,8 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item :label="$t('purchase.quota')" :label-width="formLabelWidth" prop="qwen">
|
|
<el-form-item :label="$t('purchase.quota')" :label-width="formLabelWidth" prop="qwen">
|
|
<el-input v-model.number="form.qwen" style="width: 240px" :placeholder="$t('purchase.inputQuota')" />
|
|
<el-input v-model.number="form.qwen" style="width: 240px" :placeholder="$t('purchase.inputQuota')" />
|
|
|
|
+ <span class="span-red" style="margin-left: 10px" v-if="ifSchSeatsOverGeoSeats">學校名額合計:{{seatSumOfSch}}</span>
|
|
|
|
+ <span style="margin-left: 10px" v-else>學校名額合計:{{seatSumOfSch}}</span>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item :label="$t('purchase.school')" :label-width="formLabelWidth">
|
|
<el-form-item :label="$t('purchase.school')" :label-width="formLabelWidth">
|
|
<el-table :data="form.schools" style="width: 100%">
|
|
<el-table :data="form.schools" style="width: 100%">
|
|
@@ -76,7 +78,7 @@
|
|
</el-form>
|
|
</el-form>
|
|
<template #footer>
|
|
<template #footer>
|
|
<div class="dialog-footer">
|
|
<div class="dialog-footer">
|
|
- <el-button type="primary" @click="saveData">{{$t('purchase.confirmOk')}}</el-button>
|
|
|
|
|
|
+ <el-button type="primary" @click="saveData" :disabled="ifSchSeatsOverGeoSeats" :loading="delaySaveData">{{$t('purchase.confirmOk')}}</el-button>
|
|
<el-button @click="clearform">{{$t('purchase.cancel')}}</el-button>
|
|
<el-button @click="clearform">{{$t('purchase.cancel')}}</el-button>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
@@ -259,6 +261,7 @@ EEEE 120
|
|
const formLabelWidth = '140px'
|
|
const formLabelWidth = '140px'
|
|
const delayAddSchool = ref(false)
|
|
const delayAddSchool = ref(false)
|
|
const delayImportSchool = ref(false)
|
|
const delayImportSchool = ref(false)
|
|
|
|
+ const delaySaveData = ref(false)
|
|
|
|
|
|
// 檢查數字不可為零
|
|
// 檢查數字不可為零
|
|
const validateNum = (rule, value, callback) => {
|
|
const validateNum = (rule, value, callback) => {
|
|
@@ -610,7 +613,24 @@ EEEE 120
|
|
form.schools.splice(index, 1);
|
|
form.schools.splice(index, 1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ //學校名額總計
|
|
|
|
+ const seatSumOfSch = computed(() => {
|
|
|
|
+ if (form.schools.length > 0) {
|
|
|
|
+ return form.schools.map(item => item.seats).reduce((prev, next) => prev + next);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ return 0;
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ //是否各學校名額總合超過縣市總名額
|
|
|
|
+ const ifSchSeatsOverGeoSeats = computed(() => {
|
|
|
|
+ if (seatSumOfSch.value > form.qwen) {
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ })
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
//routers.push({ name: 'adminpanel'})
|
|
//routers.push({ name: 'adminpanel'})
|
|
//routers.forward()
|
|
//routers.forward()
|
|
@@ -663,6 +683,7 @@ EEEE 120
|
|
}
|
|
}
|
|
function saveData() {
|
|
function saveData() {
|
|
if (!ruleFormRef) return;
|
|
if (!ruleFormRef) return;
|
|
|
|
+ delaySaveData.value = true;
|
|
ruleFormRef.value.validate((valid) => {
|
|
ruleFormRef.value.validate((valid) => {
|
|
if (valid) {
|
|
if (valid) {
|
|
// 表单验证通过,可以提交表单数据
|
|
// 表单验证通过,可以提交表单数据
|
|
@@ -692,13 +713,16 @@ EEEE 120
|
|
proxy.$api.setPurchaseSeats(data, isTest).then((res) => {
|
|
proxy.$api.setPurchaseSeats(data, isTest).then((res) => {
|
|
if (res.err === '') {
|
|
if (res.err === '') {
|
|
clearform();
|
|
clearform();
|
|
- getList();
|
|
|
|
|
|
+ getList();
|
|
|
|
+ delaySaveData.value = false;
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
ElMessage.error(res.err)
|
|
ElMessage.error(res.err)
|
|
|
|
+ delaySaveData.value = false;
|
|
}
|
|
}
|
|
}).catch((error) => {
|
|
}).catch((error) => {
|
|
ElMessage.error('API异常')
|
|
ElMessage.error('API异常')
|
|
|
|
+ delaySaveData.value = false;
|
|
})
|
|
})
|
|
|
|
|
|
// 在这里进行提交表单的操作
|
|
// 在这里进行提交表单的操作
|
|
@@ -707,9 +731,6 @@ EEEE 120
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
});
|
|
});
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
// 產品表單切換
|
|
// 產品表單切換
|
|
function handleChange() {
|
|
function handleChange() {
|
|
@@ -809,6 +830,10 @@ EEEE 120
|
|
}
|
|
}
|
|
});
|
|
});
|
|
dialogImportSchVisible.value = false;
|
|
dialogImportSchVisible.value = false;
|
|
|
|
+ //學校總名額是否超過縣市名額驗證
|
|
|
|
+ if (ifSchSeatsOverGeoSeats.value) {
|
|
|
|
+ alert("學校的名額總合已超過縣市名額!")
|
|
|
|
+ }
|
|
}
|
|
}
|
|
//[舊代碼不使用]匯入學校
|
|
//[舊代碼不使用]匯入學校
|
|
//function importData() {
|
|
//function importData() {
|
|
@@ -890,7 +915,9 @@ EEEE 120
|
|
display: flex;
|
|
display: flex;
|
|
justify-content: center;
|
|
justify-content: center;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ .span-red {
|
|
|
|
+ color: red;
|
|
|
|
+ }
|
|
</style>
|
|
</style>
|
|
<style scoped>
|
|
<style scoped>
|
|
|
|
|