jinxia.mo 1 неделя назад
Родитель
Сommit
57a0fb81b7

+ 15 - 34
back-ui/src/views/dz/cards/components/AssignDialog.vue

@@ -3,37 +3,34 @@
     @confirm="handleConfirm">
     <el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
       <el-form-item label="平台机构" prop="deptId" required>
-        <ie-institution-select v-model="form.deptId" class="w-[350px]!" />
+        <ie-institution-select v-model="form.deptId" class="w-[350px]!" clearable />
       </el-form-item>
       <el-form-item label="卡类型" prop="cardType">
         <ie-select v-model="form.cardType" :options="card_type" class="w-[350px]!" clearable />
       </el-form-item>
-      <el-form-item label="卡号段" prop="cardNoRange" :required="!cardIds || cardIds.length === 0">
+      <el-form-item label="卡号段" prop="cardNoRange" required>
         <div class="flex items-center gap-x-3">
-          <el-input v-model="form.begin" type="text" maxlength="8" v-number class="w-[160px]!" 
-                    placeholder="请输入开始卡号" :disabled="cardIds && cardIds.length > 0" />
+          <el-input v-model="form.begin" type="text" maxlength="8" v-number class="w-[160px]!"
+                    placeholder="请输入开始卡号" />
           <span class="text-gray-500">-</span>
-          <el-input v-model="form.end" type="text" maxlength="8" v-number class="w-[160px]!" 
-                    placeholder="请输入结束卡号" :disabled="cardIds && cardIds.length > 0" />
-        </div>
-        <div v-if="cardIds && cardIds.length > 0" class="text-sm text-gray-500 mt-1">
-          已选择 {{ cardIds.length }} 张卡片,将使用选中的卡片进行分配
+          <el-input v-model="form.end" type="text" maxlength="8" v-number class="w-[160px]!"
+                    placeholder="请输入结束卡号" />
         </div>
       </el-form-item>
       <el-form-item label="代理商" prop="agentId" required>
-        <ie-agent-select v-model="form.agentId" :deptId="form.deptId" class="w-[350px]!" filterable />
+        <ie-agent-select v-model="form.agentId" :deptId="form.deptId" class="w-[350px]!" filterable clearable />
       </el-form-item>
       <el-form-item label="省份" prop="provinceId">
         <ie-select v-model="area.selected" v-model:selectedItem="area.selectedItem" :options="area.list"
-          label-key="areaName" value-key="areaId" class="w-[350px]!" />
+          label-key="areaName" value-key="areaId" class="w-[350px]!" clearable />
       </el-form-item>
       <el-form-item label="学校" prop="schoolId">
         <ie-select v-model="selectedSchool" :options="schoolList" label-key="name" value-key="id" filterable
-          class="w-[350px]!" />
+          class="w-[350px]!" clearable />
       </el-form-item>
       <el-form-item label="考生类型" prop="assignExamType">
         <ie-select v-model="selectedExamType" :options="examTypeList" label-key="dictLabel" value-key="dictValue"
-          class="w-[350px]!" />
+          class="w-[350px]!" clearable />
       </el-form-item>
       <el-form-item v-if="form.cardType === '9'" label="有效期" prop="days">
         <el-input-number v-model="form.days" :min="1" :max="10000" :step="1" :precision="0" class="w-full!">
@@ -70,7 +67,6 @@ const {
 
 const modalRef = ref(null);
 const formRef = ref(null);
-const cardIds = ref(null) // 选中的卡片ID列表
 const defaultForm = {
   deptId: null,
   agentId: null,
@@ -83,14 +79,8 @@ const defaultForm = {
 const form = ref({ ...defaultForm })
 // 自定义验证
 const validateCardNoRange = (rule, value, callback) => {
-  // 如果有选中的卡片ID,则不需要验证卡号段
-  if (cardIds.value && cardIds.value.length > 0) {
-    callback()
-    return
-  }
-  // 如果没有选中卡片,则需要验证卡号段
   if (!form.value.begin || !form.value.end) {
-    callback(new Error('请输入卡号段或选择卡片'))
+    callback(new Error('请输入卡号段'))
   } else if (Number(form.value.begin) > Number(form.value.end)) {
     callback(new Error('开始卡号不能大于结束卡号'))
   } else {
@@ -126,15 +116,12 @@ const rules = ref({
 
 const handleBeforeClose = () => {
   form.value = { ...defaultForm };
-  cardIds.value = null;
   reset();
 }
 
-const open = (selectedCardIds = null) => {
+const open = () => {
   init();
   form.value = { ...defaultForm };
-  // 如果传入了选中的卡片ID列表,则使用它
-  cardIds.value = selectedCardIds && selectedCardIds.length > 0 ? selectedCardIds : null;
   modalRef.value.open()
 }
 const close = () => {
@@ -157,15 +144,9 @@ const handleConfirm = () => {
         location,
         assignExamType,
         schoolId,
-        days
-      }
-      
-      // 如果有选中的卡片ID,使用cardIds;否则使用begin和end
-      if (cardIds.value && cardIds.value.length > 0) {
-        params.cardIds = Array.isArray(cardIds.value) ? cardIds.value.join(",") : cardIds.value
-      } else {
-        params.begin = form.value.begin
-        params.end = form.value.end
+        days,
+        begin: form.value.begin,
+        end: form.value.end
       }
       
       assignCard(params).then(res => {

+ 8 - 1
ie-system/src/main/java/com/ruoyi/dz/service/impl/DzCardsServiceImpl.java

@@ -449,6 +449,13 @@ public class DzCardsServiceImpl implements IDzCardsService
     }
 
     public Boolean changeCampus(Long campusId, Long campusClassId, String beginNo, String endNo) {
+        // 使用begin和end方式,验证不能为空
+        if (StringUtils.isBlank(beginNo)) {
+            throw new ValidationException("开始卡号不能为空");
+        }
+        if (StringUtils.isBlank(endNo)) {
+            throw new ValidationException("结束卡号不能为空");
+        }
         CardCriteria cond = new CardCriteria();
         cond.setStartNo(beginNo);
         cond.setEndNo(endNo);
@@ -456,7 +463,7 @@ public class DzCardsServiceImpl implements IDzCardsService
         if(cards.isEmpty()) {
             return false;
         }
-        
+
         return changeCampusByCards( campusId,  campusClassId, cards);
     }