jinxia.mo 1 ماه پیش
والد
کامیت
3e9bcd6d2a

+ 10 - 2
back-ui/src/views/dz/cards/components/EditDialog.vue

@@ -1,5 +1,5 @@
 <template>
-  <IeModal title="修改用户" ref="modalRef" width="700px" @beforeClose="handleBeforeClose" @confirm="handleConfirm">
+  <IeModal :title="modalTitle" ref="modalRef" width="700px" @beforeClose="handleBeforeClose" @confirm="handleConfirm">
     <el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
       <el-row>
         <el-col :span="12">
@@ -78,7 +78,8 @@
         </el-col>
         <el-col :span="12">
           <el-form-item label="到期时间" prop="outDate">
-            <el-date-picker v-model="form.outDate" placeholder="请选择到期时间" value-format="YYYY-MM-DD" class="w-full!" />
+            <el-date-picker v-model="form.outDate" placeholder="请选择到期时间" value-format="YYYY-MM-DD"
+                            class="w-full!" disabled />
           </el-form-item>
         </el-col>
         <el-col :span="24">
@@ -133,6 +134,7 @@ const { proxy } = getCurrentInstance();
 
 const modalRef = ref(null);
 const formRef = ref(null);
+const modalTitle = ref('修改用户');
 const form = ref({
   scores: {},
   directionStudy: []
@@ -250,6 +252,12 @@ const handleBeforeClose = () => {
 }
 
 const open = (cardInfo) => {
+  // 设置弹窗标题,显示卡号
+  if (cardInfo.cardNo) {
+    modalTitle.value = `修改用户 - 卡号:${cardInfo.cardNo}`;
+  } else {
+    modalTitle.value = '修改用户';
+  }
   getUserInfo(cardInfo);
   modalRef.value.open()
 }

+ 64 - 63
back-ui/src/views/dz/cards/index.vue

@@ -1,102 +1,88 @@
 <template>
   <div class="app-page">
     <el-form :model="queryParams" ref="queryRef" v-show="showSearch" label-width="100px" @submit.prevent="handleQuery">
-      <!-- 第一行:卡号段、卡类型、卡分配日期 -->
+      <!-- 其他表单项:每行4个 -->
       <el-row :gutter="20">
         <el-col :span="6">
-          <el-form-item label="卡号段" prop="begin">
-            <div class="flex items-center gap-x-1">
-              <el-input v-model="queryParams.begin" type="text" maxlength="11" class="w-[85px]!" placeholder="开始卡号" @keyup.enter="handleQuery" />
-              <span class="text-gray-500 text-sm">-</span>
-              <el-input v-model="queryParams.end" type="text" maxlength="11" class="w-[85px]!" placeholder="结束卡号" @keyup.enter="handleQuery" />
-            </div>
+          <el-form-item label="省份筛选" prop="provinceId">
+            <el-cascader class="w-[180px]!" :options="area.list" :props="cascaderProps" v-model="area.selected" clearable @change="handleAreaChange" />
           </el-form-item>
         </el-col>
         <el-col :span="6">
-          <el-form-item label="卡类型" prop="type">
-            <ie-select v-model="queryParams.type" :options="card_type" class="w-[180px]!" clearable />
+          <el-form-item label="注册学校" prop="schoolId">
+            <ie-select v-model="selectedSchool" :options="schoolList" label-key="name" value-key="id" filterable clearable
+                       class="w-[180px]!" />
           </el-form-item>
         </el-col>
         <el-col :span="6">
-          <el-form-item label="卡分配日期" prop="assignTimeRange">
-            <el-date-picker v-model="queryParams.assignTimeRange" type="daterange" range-separator="至"
-              start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYY-MM-DD" class="w-[180px]!" />
+          <el-form-item label="注册班级" prop="classId">
+            <ie-select v-model="selectedClass" :options="classList" label-key="name" value-key="classId" filterable
+                       clearable class="w-[180px]!" />
           </el-form-item>
         </el-col>
         <el-col :span="6">
-          <el-form-item>
-            <div class="flex gap-x-2">
-              <el-button type="primary" icon="Search" @click="handleQuery" class="w-[80px]">搜索</el-button>
-              <el-button icon="Refresh" @click="resetQuery" class="w-[80px]">重置</el-button>
-            </div>
+          <el-form-item label="分配学校" prop="assignSchoolId">
+            <ie-select v-model="selectedAssignSchool" :options="schoolList" label-key="name" value-key="id" filterable
+                       clearable class="w-[180px]!" />
           </el-form-item>
         </el-col>
       </el-row>
-      <!-- 其他表单项:每行4个 -->
       <el-row :gutter="20">
         <el-col :span="6">
-          <el-form-item label="省份筛选" prop="provinceId">
-            <el-cascader class="w-[180px]!" :options="area.list" :props="cascaderProps" v-model="area.selected" clearable @change="handleAreaChange" />
+          <el-form-item label="培训校区" prop="campusId">
+            <ie-select v-model="selectedCampus" :options="campusList" label-key="name" value-key="id" filterable clearable
+                       class="w-[180px]!" @change="handleCampusChange" />
           </el-form-item>
         </el-col>
         <el-col :span="6">
-          <el-form-item label="分配学校" prop="assignSchoolId">
-            <ie-select v-model="selectedAssignSchool" :options="schoolList" label-key="name" value-key="id" filterable
-              clearable class="w-[180px]!" />
+          <el-form-item label="校区班级" prop="campusClassId">
+            <ie-select v-model="selectedCampusClass" :options="campusClassList" label-key="name" value-key="classId"
+                       clearable filterable class="w-[180px]!" />
           </el-form-item>
         </el-col>
         <el-col :span="6">
-          <el-form-item label="代理商" prop="agentId">
-            <ie-agent-select v-model="queryParams.agentId" class="w-[180px]!" filterable clearable />
+          <el-form-item label="平台机构" prop="deptId">
+            <ie-institution-select v-model="queryParams.deptId" class="w-[180px]!" clearable />
           </el-form-item>
         </el-col>
         <el-col :span="6">
-          <el-form-item label="平台机构" prop="deptId">
-            <ie-institution-select v-model="queryParams.deptId" class="w-[180px]!" clearable />
+          <el-form-item label="代理商" prop="agentId">
+            <ie-agent-select v-model="queryParams.agentId" class="w-[180px]!" filterable clearable />
           </el-form-item>
         </el-col>
       </el-row>
+      <!-- 第一行:卡号段、卡类型、卡分配日期 -->
       <el-row :gutter="20">
         <el-col :span="6">
-          <el-form-item label="注册学校" prop="schoolId">
-            <ie-select v-model="selectedSchool" :options="schoolList" label-key="name" value-key="id" filterable clearable
-              class="w-[180px]!" />
+          <el-form-item label="卡号段" prop="begin">
+            <div class="flex items-center gap-x-1">
+              <el-input v-model="queryParams.begin" type="text" maxlength="11" class="w-[85px]!" placeholder="开始卡号" @keyup.enter="handleQuery" />
+              <span class="text-gray-500 text-sm">-</span>
+              <el-input v-model="queryParams.end" type="text" maxlength="11" class="w-[85px]!" placeholder="结束卡号" @keyup.enter="handleQuery" />
+            </div>
           </el-form-item>
         </el-col>
         <el-col :span="6">
-          <el-form-item label="注册班级" prop="classId">
-            <ie-select v-model="selectedClass" :options="classList" label-key="name" value-key="classId" filterable
-              clearable class="w-[180px]!" />
+          <el-form-item label="卡类型" prop="type">
+            <ie-select v-model="queryParams.type" :options="card_type" class="w-[180px]!" clearable />
           </el-form-item>
         </el-col>
         <el-col :span="6">
-          <el-form-item label="培训学校" prop="campusId">
-            <ie-select v-model="selectedCampus" :options="campusList" label-key="name" value-key="id" filterable clearable
-              class="w-[180px]!" @change="handleCampusChange" />
+          <el-form-item label="考生类型" prop="examType">
+            <ie-select v-model="queryParams.examType" :options="exam_type" class="w-[180px]!" clearable />
           </el-form-item>
         </el-col>
         <el-col :span="6">
-          <el-form-item label="培训班级" prop="campusClassId">
-            <ie-select v-model="selectedCampusClass" :options="campusClassList" label-key="name" value-key="classId"
-              clearable filterable class="w-[180px]!" />
+          <el-form-item label="学生姓名" prop="nickName">
+            <el-input v-model="queryParams.nickName" type="text" class="w-[180px]!" placeholder="请输入姓名" clearable @keyup.enter="handleQuery" />
           </el-form-item>
         </el-col>
       </el-row>
       <el-row :gutter="20">
         <el-col :span="6">
-          <el-form-item label="姓名" prop="nickName">
-            <el-input v-model="queryParams.nickName" type="text" class="w-[180px]!" placeholder="请输入姓名" clearable @keyup.enter="handleQuery" />
-          </el-form-item>
-        </el-col>
-        <el-col :span="6">
-          <el-form-item label="手机" prop="phonenumber">
+          <el-form-item label="手机号码" prop="phonenumber">
             <el-input v-model="queryParams.phonenumber" type="text" v-number maxlength="11" class="w-[180px]!"
-              placeholder="请输入手机号" clearable @keyup.enter="handleQuery" />
-          </el-form-item>
-        </el-col>
-        <el-col :span="6">
-          <el-form-item label="考生类型" prop="examType">
-            <ie-select v-model="queryParams.examType" :options="exam_type" class="w-[180px]!" clearable />
+                      placeholder="请输入手机号码" clearable @keyup.enter="handleQuery" />
           </el-form-item>
         </el-col>
         <el-col :span="6">
@@ -105,8 +91,6 @@
               clearable />
           </el-form-item>
         </el-col>
-      </el-row>
-      <el-row :gutter="20">
         <el-col :span="6">
           <el-form-item label="使用状态" prop="status">
             <ie-select v-model="queryParams.status" :options="card_status" class="w-[180px]!" clearable />
@@ -117,6 +101,9 @@
             <ie-select v-model="queryParams.timeStatus" :options="card_time_status" class="w-[180px]!" clearable />
           </el-form-item>
         </el-col>
+
+      </el-row>
+      <el-row :gutter="20">
         <el-col :span="6">
           <el-form-item label="结算状态" prop="isSettlement">
             <ie-select v-model="queryParams.isSettlement" :options="card_settlement_status" class="w-[180px]!" clearable />
@@ -127,6 +114,20 @@
             <ie-select v-model="queryParams.payStatus" :options="card_pay_status" class="w-[180px]!" clearable />
           </el-form-item>
         </el-col>
+        <el-col :span="6">
+          <el-form-item label="卡分配日期" prop="assignTimeRange">
+            <el-date-picker v-model="queryParams.assignTimeRange" type="daterange" range-separator="至"
+                            start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYY-MM-DD" class="w-[180px]!" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item>
+            <div class="flex gap-x-2">
+              <el-button type="primary" icon="Search" @click="handleQuery" class="w-[80px]">搜索</el-button>
+              <el-button icon="Refresh" @click="resetQuery" class="w-[80px]">重置</el-button>
+            </div>
+          </el-form-item>
+        </el-col>
       </el-row>
       <!-- <el-row :gutter="20">
         <el-col :span="6">
@@ -458,19 +459,19 @@ const handleAreaChange = () => {
 // 初始化数据加载(只在首次挂载时执行,keep-alive 缓存后不会再次执行)
 onMounted(() => {
   // 如果列表数据已存在(keep-alive 缓存),则不重新调用接口
-  if (cardList.value.length > 0 || total.value > 0) {
-    // 只检查省份数据,如果丢失则重新加载
-    if (!area.list || area.list.length === 0) {
-      getAreaList()
-    }
-    return
-  }
-  
-  // 初始进入页面时,加载分配学校、注册学校、培训校的数据
+  // if (cardList.value.length > 0 || total.value > 0) {
+  //   // 只检查省份数据,如果丢失则重新加载
+  //   if (!area.list || area.list.length === 0) {
+  //     getAreaList()
+  //   }
+  //   return
+  // }
+
+  // 初始进入页面时,加载分配学校、注册学校、培训校的数据
   // 即使没有选择省份,也调用接口获取所有数据(areaCode 为 undefined 时接口会返回所有数据)
   getSchoolList()
   getCampusList()
-  
+
   // 加载列表数据
   handleQuery()
 })

+ 3 - 1
back-ui/src/views/learn/questions/index.vue

@@ -798,7 +798,9 @@ function handleUpdate(row) {
     getQuestions(_id).then(response => {
         form.value = response.data
         open.value = true
-        title.value = "修改试题"
+        // 在标题中显示题目id
+        const questionId = form.value.id || _id
+        title.value = questionId ? `修改试题 - 题目ID:${questionId}` : "修改试题"
     })
 }