jinxia.mo 1 månad sedan
förälder
incheckning
1970412503

+ 1 - 1
back-ui/src/views/dz/cards/components/ApplyCardDialog.vue

@@ -116,7 +116,7 @@ const rules = {
 // 获取校区列表
 async function getCampusListData() {
   try {
-    const response = await getCampusSchoolList({ campus: true, pageNum: 1, pageSize: 1000 });
+    const response = await getCampusSchoolList({ campus: false, pageNum: 1, pageSize: 1000 });
     if (response.code === 200) {
       campusList.value = response.data || [];
     }

+ 6 - 12
back-ui/src/views/dz/cards/components/AssignCardDialog.vue

@@ -125,13 +125,13 @@
 
     <template #footer>
       <div class="dialog-footer">
-        <el-button @click="handleCancel">取消</el-button>
         <el-button type="primary" @click="handleSubmit" :loading="loading"
           >分配</el-button
         >
-        <el-button @click="handleReassign" :loading="reassignLoading"
-          >重新分配</el-button
-        >
+        <el-button @click="handleCancel">取消</el-button>
+        <!--        <el-button @click="handleReassign" :loading="reassignLoading"-->
+<!--          >重新分配</el-button-->
+<!--        >-->
       </div>
     </template>
   </el-dialog>
@@ -328,14 +328,8 @@ function autoFillCardRange() {
       const minCardNoNum = parseInt(minCardNo);
       const beginCardNo = Math.floor(minCardNoNum / 10) * 10;
 
-      console.log(
-        "Setting card range:",
-        beginCardNo.toString(),
-        "to",
-        maxCardNo
-      );
-      form.value.beginCardNo = beginCardNo.toString();
-      form.value.endCardNo = maxCardNo;
+      // form.value.beginCardNo = beginCardNo.toString();
+      // form.value.endCardNo = maxCardNo;
     }
   }
 }

+ 7 - 0
back-ui/src/views/dz/cards/config/table.js

@@ -44,6 +44,13 @@ const tableConfig = {
 
       width: 120,
     },
+    {
+      label: "机构",
+      prop: "deptName",
+      align: "center",
+
+      width: 120,
+    },
     {
       label: "注册学校",
       prop: "schoolName",

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

@@ -29,7 +29,7 @@
           type="success"
           plain
           @click="handleAssignCard"
-          v-hasPermi="['dz:cards:add']"
+          v-hasPermi="['dz:cards:assign']"
           style="border-color: #67c23a; color: #67c23a; font-weight: 500"
         >
           <svg-icon icon-class="peoples" class="mr-1" style="font-size: 16px" />
@@ -53,7 +53,7 @@
           plain
           :disabled="multiple"
           @click="handlePayment"
-          v-hasPermi="['dz:cards:add']"
+          v-hasPermi="['dz:cards:pay']"
           style="border-color: #e6a23c; color: #e6a23c; font-weight: 500"
         >
           <svg-icon icon-class="money" class="mr-1" style="font-size: 16px" />
@@ -66,7 +66,7 @@
           plain
           :disabled="multiple"
           @click="handleCloseCard"
-          v-hasPermi="['dz:cards:add']"
+          v-hasPermi="['dz:cards:close']"
           style="border-color: #f56c6c; color: #f56c6c; font-weight: 500"
         >
           <svg-icon icon-class="lock" class="mr-1" style="font-size: 16px" />
@@ -79,7 +79,7 @@
           plain
           :disabled="multiple"
           @click="handleReopenCard"
-          v-hasPermi="['dz:cards:add']"
+          v-hasPermi="['dz:cards:reopen']"
           style="border-color: #13c2c2; color: #13c2c2; font-weight: 500"
         >
           <svg-icon icon-class="enter" class="mr-1" style="font-size: 16px" />
@@ -92,7 +92,7 @@
           plain
           :disabled="multiple"
           @click="handleRefund"
-          v-hasPermi="['dz:cards:add']"
+          v-hasPermi="['dz:cards:refund']"
           style="border-color: #ff4d4f; color: #ff4d4f; font-weight: 500"
         >
           <svg-icon icon-class="money" class="mr-1" style="font-size: 16px" />
@@ -104,7 +104,7 @@
           type="primary"
           plain
           @click="handleAssociateCampus"
-          v-hasPermi="['dz:cards:add']"
+          v-hasPermi="['dz:cards:associateCampus']"
           style="border-color: #1890ff; color: #1890ff; font-weight: 500"
         >
           <svg-icon icon-class="link" class="mr-1" style="font-size: 16px" />
@@ -116,7 +116,7 @@
           type="success"
           plain
           @click="handleApplyCard"
-          v-hasPermi="['dz:cards:add']"
+          v-hasPermi="['dz:cards:openFinished']"
           style="border-color: #52c41a; color: #52c41a; font-weight: 500"
         >
           <svg-icon icon-class="edit" class="mr-1" style="font-size: 16px" />
@@ -285,7 +285,7 @@ import AssociateCampusDialog from "./components/AssociateCampusDialog.vue";
 import ApplyCardDialog from "./components/ApplyCardDialog.vue";
 import formInfo from "./config/form.js";
 import tableConfig from "./config/table.js";
-import { listUniversity } from "@/api/dz/school";
+// import { listUniversity } from "@/api/dz/school";
 import { assignCard, issueCard, getCampusSchoolList } from "@/api/dz/cards";
 import { listDept } from "@/api/system/dept";
 import { listAgent } from "@/api/dz/agent";
@@ -545,41 +545,41 @@ function getSchoolList() {
     pageSize: 9999, // 获取所有学校选项
   };
 
-  listUniversity(requestParams)
-    .then((response) => {
-      // 根据API返回数据结构处理
-      let schoolData = [];
-      if (response.data) {
-        schoolData = Array.isArray(response.data)
-          ? response.data
-          : response.data.rows || response.data.list || [];
-      } else if (response.rows) {
-        schoolData = response.rows;
-      } else if (response.list) {
-        schoolData = response.list;
-      } else if (Array.isArray(response)) {
-        schoolData = response;
-      }
-
-      // 确保数据格式符合配置要求
-      schoolData = schoolData.map((item) => {
-        // 如果API返回的是 {id, name, ...} 格式,直接使用
-        if (item.id && item.name) {
-          return item;
-        }
-        // 如果是其他格式,需要转换
-        return {
-          id: item.id || item.value || item.schoolId,
-          name: item.name || item.label || item.schoolName || item.title,
-        };
-      });
-
-      schoolList.value = schoolData;
-    })
-    .catch((error) => {
-      console.error("获取学校列表失败:", error);
-      schoolList.value = [];
-    });
+  // listUniversity(requestParams)
+  //   .then((response) => {
+  //     // 根据API返回数据结构处理
+  //     let schoolData = [];
+  //     if (response.data) {
+  //       schoolData = Array.isArray(response.data)
+  //         ? response.data
+  //         : response.data.rows || response.data.list || [];
+  //     } else if (response.rows) {
+  //       schoolData = response.rows;
+  //     } else if (response.list) {
+  //       schoolData = response.list;
+  //     } else if (Array.isArray(response)) {
+  //       schoolData = response;
+  //     }
+  //
+  //     // 确保数据格式符合配置要求
+  //     schoolData = schoolData.map((item) => {
+  //       // 如果API返回的是 {id, name, ...} 格式,直接使用
+  //       if (item.id && item.name) {
+  //         return item;
+  //       }
+  //       // 如果是其他格式,需要转换
+  //       return {
+  //         id: item.id || item.value || item.schoolId,
+  //         name: item.name || item.label || item.schoolName || item.title,
+  //       };
+  //     });
+  //
+  //     schoolList.value = schoolData;
+  //   })
+  //   .catch((error) => {
+  //     console.error("获取学校列表失败:", error);
+  //     schoolList.value = [];
+  //   });
 }
 
 /** 获取校区列表 */

+ 9 - 9
back-ui/src/views/dz/open/config/form.js

@@ -1,12 +1,12 @@
 const info = [
-  {
-    label: "申请人",
-    name: "applicant",
-    value: "",
-    type: "text",
-    search: true,
-    placeholder: "请输入申请人",
-  },
+  // {
+  //   label: "申请人",
+  //   name: "applicant",
+  //   value: "",
+  //   type: "text",
+  //   search: true,
+  //   placeholder: "请输入申请人",
+  // },
   {
     label: "卡号",
     name: "cardNo",
@@ -25,7 +25,7 @@ const info = [
     option: [
       { label: "待审核", value: "0" },
       { label: "审核通过", value: "1" },
-      { label: "拒绝", value: "2" },
+      { label: "拒绝", value: "2" },
     ],
     optionLabel: "label",
     optionValue: "value",

+ 5 - 14
back-ui/src/views/dz/open/index.vue

@@ -77,28 +77,18 @@
     <!-- 添加或修改开卡申请对话框 -->
     <el-dialog :title="title" v-model="open" width="500px" append-to-body>
       <el-form ref="openRef" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="申请人" prop="applicant">
-          <el-input v-model="form.applicant" placeholder="请输入申请人" />
-        </el-form-item>
         <el-form-item label="起始卡号" prop="startNo">
           <el-input v-model="form.startNo" placeholder="请输入起始卡号" />
         </el-form-item>
-        <el-form-item label="截卡号" prop="endNo">
+        <el-form-item label="截卡号" prop="endNo">
           <el-input v-model="form.endNo" placeholder="请输入截至卡号" />
         </el-form-item>
         <el-form-item label="学校" prop="schoolName">
           <el-input v-model="form.schoolName" placeholder="请输入学校" />
         </el-form-item>
-        <el-form-item label="申请状态" prop="status">
-          <el-select v-model="form.status" placeholder="请选择申请状态">
-            <el-option label="待审核" :value="0" />
-            <el-option label="审核通过" :value="1" />
-            <el-option label="已拒绝" :value="2" />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="原因" prop="reason">
-          <el-input v-model="form.reason" placeholder="请输入原因" />
-        </el-form-item>
+<!--        <el-form-item label="原因" prop="reason">-->
+<!--          <el-input v-model="form.reason" placeholder="请输入原因" />-->
+<!--        </el-form-item>-->
       </el-form>
       <template #footer>
         <div class="dialog-footer">
@@ -189,6 +179,7 @@ const showSearch = ref(true);
 const total = ref(0);
 const title = ref("");
 const selectedRows = ref([]);
+const { card_status, card_distribute_status, card_time_status, bool_values, card_pay_status, audit_status, } = proxy.useDict( "card_status", "card_distribute_status", "card_time_status", "bool_values", "card_pay_status", "audit_status" );
 
 // 搜索配置
 const searchConfig = computed(() => {

+ 4 - 1
ie-admin/src/main/java/com/ruoyi/web/controller/dz/DzCardsController.java

@@ -29,7 +29,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
 
 /**
  * 学习卡Controller
- * 
+ *
  * @author ruoyi
  * @date 2025-09-12
  */
@@ -51,6 +51,9 @@ public class DzCardsController extends BaseController
     @ApiOperation("列表")
     public TableDataInfo list(DzCards dzCards)
     {
+        if(null==dzCards.getDeptId()){
+            dzCards.setDeptId(SecurityUtils.getDeptId());
+        }
         startPage();
         List<DzCards> list = dzCardsService.selectDzCardsList(dzCards);
         return getDataTable(list);

+ 5 - 1
ie-admin/src/main/java/com/ruoyi/web/controller/dz/DzCardsOpenController.java

@@ -7,6 +7,8 @@ import javax.validation.ValidationException;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.dz.service.IDzCardsService;
+import com.ruoyi.enums.CardAudit;
+import com.ruoyi.enums.CardDistributeStatus;
 import com.ruoyi.enums.RequestStatus;
 import com.ruoyi.enums.UserTypeEnum;
 import io.swagger.annotations.Api;
@@ -31,7 +33,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
 
 /**
  * 开卡申请Controller
- * 
+ *
  * @author ruoyi
  * @date 2025-09-12
  */
@@ -94,6 +96,8 @@ public class DzCardsOpenController extends BaseController
     @ApiOperation("申请开卡")
     public AjaxResult add(@RequestBody DzCardsOpen dzCardsOpen)
     {
+        dzCardsOpen.setSender(String.valueOf(SecurityUtils.getUserId()));
+        dzCardsOpen.setStatus(CardAudit.NoAudit.getVal());
         return toAjax(dzCardsService.requestOpenCard(dzCardsOpen));
     }
 

+ 2 - 0
ie-admin/src/main/java/com/ruoyi/web/controller/front/UserController.java

@@ -230,6 +230,8 @@ public class UserController extends BaseController {
         if(null == cards || !cards.getPassword().equals(password)) {
             return AjaxResult.error("卡号或密码不正确");
         }
+        //已绑定卡不能使用
+
         return AjaxResult.success(cards);
     }
 }

+ 13 - 0
ie-system/src/main/java/com/ruoyi/enums/CardAudit.java

@@ -0,0 +1,13 @@
+package com.ruoyi.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum CardAudit {
+    //状态(0:未审核,1:通过,2:拒绝)
+    NoAudit(0), Approved(1), deny(2);
+
+    private final Integer val;
+}

+ 8 - 6
ie-system/src/main/resources/mapper/dz/DzCardsMapper.xml

@@ -3,7 +3,7 @@
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.dz.mapper.DzCardsMapper">
-    
+
     <resultMap type="DzCards" id="DzCardsResult">
         <result property="cardId"    column="card_id"    />
         <result property="cardNo"    column="card_no"    />
@@ -45,7 +45,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectDzCardsList" parameterType="DzCards" resultMap="DzCardsResult">
         <include refid="selectDzCardsVo"/>
-        <where>  
+        <where>
             <if test="cardNo != null  and cardNo != ''"> and card_no = #{cardNo}</if>
             <if test="password != null  and password != ''"> and password = #{password}</if>
             <if test="type != null "> and type = #{type}</if>
@@ -54,7 +54,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="timeStatus != null "> and time_status = #{timeStatus}</if>
             <if test="payStatus != null "> and pay_status = #{payStatus}</if>
             <if test="isSettlement != null "> and is_settlement = #{isSettlement}</if>
-            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            <if test="deptId != null ">
+                AND (dept_id = #{deptId} OR dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) ))
+            </if>
             <if test="agentId != null "> and agent_id = #{agentId}</if>
             <if test="leafAgentId != null "> and leaf_agent_id = #{leafAgentId}</if>
             <if test="campusId != null "> and campus_id = #{campusId}</if>
@@ -76,7 +78,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="closeTime != null "> and close_time = #{closeTime}</if>
         </where>
     </select>
-    
+
     <select id="selectDzCardsByCardId" parameterType="Long" resultMap="DzCardsResult">
         <include refid="selectDzCardsVo"/>
         where card_id = #{cardId}
@@ -224,7 +226,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </delete>
 
     <delete id="deleteDzCardsByCardIds" parameterType="String">
-        delete from dz_cards where card_id in 
+        delete from dz_cards where card_id in
         <foreach item="cardId" collection="array" open="(" separator="," close=")">
             #{cardId}
         </foreach>
@@ -275,4 +277,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selectMaxNo" parameterType="Integer" resultType="Long">
         select max(card_no) from dz_cards where type = #{type}
     </select>
-</mapper>
+</mapper>