Parcourir la source

feat:修改BUG

DESKTOP-USV654P\pc il y a 6 mois
Parent
commit
4b5624e02b

+ 8 - 10
.drone.yml

@@ -7,16 +7,15 @@ node:
 
 steps:
  - name: yarn-install
-   image: node:18.16.1
+   image: gplane/pnpm:node20
    volumes:
      - name: modules-cache
        path: /drone/src/node_modules # 下载依赖的目录挂载出来,防止重复下载
    commands:
 #     - yarn build
-#     - npm install -g pnpm
-#     - pnpm config set registry http://registry.npm.taobao.org
-#     - pnpm install
-#     - pnpm run build
+      - pnpm config set registry https://registry.npmjs.org
+      - pnpm install
+      - pnpm run build
 
  - name: build
    image: docker:20.10.7
@@ -63,15 +62,14 @@ node:
 
 steps:
  - name: yarn-install
-   image: node:18.16.1
+   image: gplane/pnpm:node20
    volumes:
      - name: modules-cache
        path: /drone/src/node_modules # 下载依赖的目录挂载出来,防止重复下载
    commands:
-#     - pnpm config set registry http://registry.npmjs.org
-#     - npm install -g pnpm
-#     - pnpm install
-#          - pnpm run build
+      - pnpm config set registry https://registry.npmjs.org
+      - pnpm install
+      - pnpm run build
 
  - name: build
    image: docker:20.10.7

+ 1 - 1
.gitignore

@@ -33,4 +33,4 @@ pnpm-debug.log*
 /pnpm-lock.yaml
 pnpm-lock.yaml
 /yarn.lock
-#/dist/
+/dist/

+ 3 - 0
src/services/apis/BaseStudentInfoController.ts

@@ -15,6 +15,9 @@ import { ErrorMessageMode } from '/#/axios';
 export async function putStudentBasestudentinfo(params:API.UpdateBaseStudentInfoDto
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.put<any>
         ({url: '/student/basestudentinfo', data:params},{errorMessageMode:mode});}
+/** 根据userId查询白名单信息(不传默认查询登录者) GET /student/basestudentinfo/getWhitelistInfo */
+export async function getBasestudentinfoGetWhitelistInfo(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.WhitelistInfoVo>
+        ({url: '/student/basestudentinfo/getWhitelistInfo', params:params},{errorMessageMode:mode});}
 /** 根据id查询详情信息 GET /student/basestudentinfo/info */
 export async function getBasestudentinfoInfo(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.BaseStudentInfoDetailVo>
         ({url: '/student/basestudentinfo/info', params:params},{errorMessageMode:mode});}

+ 1 - 1
src/services/apis/BaseStudentScholarshipReleaseController.ts

@@ -26,7 +26,7 @@ export async function deleteStudentBaseStudentScholarshipRelease(params:string[]
 export async function postBaseStudentScholarshipReleaseAddStudent(params:API.AddStudentScholarshipDto
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.post<any>
         ({url: '/student/baseStudentScholarshipRelease/add-student', data:params},{errorMessageMode:mode});}
-/** 成绩导入 POST /student/baseStudentScholarshipRelease/import */
+/** 奖助学金发放导入 POST /student/baseStudentScholarshipRelease/import */
 export async function postBaseStudentScholarshipReleaseImport(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.post<API.Map[]>
         ({url: '/student/baseStudentScholarshipRelease/import',headers:{'Content-Type':'multipart/form-data'}, data:params},{errorMessageMode:mode});}
 /** 根据申请id查询奖学金发放记录表信息 GET /student/baseStudentScholarshipRelease/info */

+ 29 - 0
src/services/apis/DatadetailController.ts

@@ -0,0 +1,29 @@
+// @ts-ignore
+/* eslint-disable */
+
+// 该文件自动生成,请勿手动修改!
+import { defHttp } from '/@/utils/http/axios';
+import { ErrorMessageMode } from '/#/axios';
+            // --------------------------------------------------------------------------
+            // Datadetail Controller
+            // --------------------------------------------------------------------------
+
+            ;
+
+
+            /** 学生健康统计 GET /datadetail/datadetail/health-statistics */
+export async function getDatadetailHealthStatistics(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.HealthStatisticsDetailVo>
+        ({url: '/datadetail/datadetail/health-statistics', params:params},{errorMessageMode:mode});}
+/** 教职工详情数据统计 GET /datadetail/datadetail/person-statistics */
+export async function getDatadetailPersonStatistics(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.TeacherStatisticsDetailVo>
+        ({url: '/datadetail/datadetail/person-statistics', params:params},{errorMessageMode:mode});}
+/** 流程统计详情 GET /datadetail/datadetail/process-statistics */
+export async function getDatadetailProcessStatistics(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.ProcessStatisticsDetailVo>
+        ({url: '/datadetail/datadetail/process-statistics', params:params},{errorMessageMode:mode});}
+/** 学生详情数据统计 GET /datadetail/datadetail/student-statistics */
+export async function getDatadetailStudentStatistics(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.StudnetStatisticsDetailVo>
+        ({url: '/datadetail/datadetail/student-statistics', params:params},{errorMessageMode:mode});}
+/** 物品申购详情数据统计 GET /datadetail/datadetail/subscription-statistics */
+export async function getDatadetailSubscriptionStatistics(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.SubscriptionStatisticsDetailVo>
+        ({url: '/datadetail/datadetail/subscription-statistics', params:params},{errorMessageMode:mode});}
+            

+ 17 - 0
src/services/apis/StudentLeaveController.ts

@@ -0,0 +1,17 @@
+// @ts-ignore
+/* eslint-disable */
+
+// 该文件自动生成,请勿手动修改!
+import { defHttp } from '/@/utils/http/axios';
+import { ErrorMessageMode } from '/#/axios';
+            // --------------------------------------------------------------------------
+            // Student Leave Controller
+            // --------------------------------------------------------------------------
+
+            ;
+
+
+            /** 学生请假列表(分页) GET /student/leave/page */
+export async function getLeavePage(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<any>
+        ({url: '/student/leave/page', params:params},{errorMessageMode:mode});}
+            

+ 3 - 0
src/services/apis/UserController.ts

@@ -78,6 +78,9 @@ export async function getUserPcRoleTree(params:any,mode: ErrorMessageMode = 'mod
 /** 当前待办数量统计 GET /organization/user/pending/count */
 export async function getPendingCount(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.PendingCountDto>
         ({url: '/organization/user/pending/count', params:params},{errorMessageMode:mode});}
+/** 人员选择组件(分页) GET /organization/user/person-page */
+export async function getUserPersonPage(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<any>
+        ({url: '/organization/user/person-page', params:params},{errorMessageMode:mode});}
 /** 家长注册 POST /organization/user/register */
 export async function postUserRegister(params:API.RegisterDto
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.post<any>

+ 7 - 0
src/services/apis/WhitelistManagementController.ts

@@ -34,6 +34,13 @@ export async function getWhitelistManagementInfo(params:any,mode: ErrorMessageMo
 /** 白名单管理列表(分页) GET /base/whitelistManagement/page */
 export async function getWhitelistManagementPage(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.PageOutput<API.WhitelistManagementPageVo>>
         ({url: '/base/whitelistManagement/page', params:params},{errorMessageMode:mode});}
+/** 批量设置结束时间 POST /base/whitelistManagement/set-endtime-batch */
+export async function postWhitelistManagementSetEndtimeBatch(params:API.SetWhitelistEndTimeDto
+,mode: ErrorMessageMode = 'modal'){ return defHttp.post<any>
+        ({url: '/base/whitelistManagement/set-endtime-batch', data:params},{errorMessageMode:mode});}
+/** 设置为永久 POST /base/whitelistManagement/set-temporary */
+export async function postWhitelistManagementSetTemporary(params:string[],mode: ErrorMessageMode = 'modal'){ return defHttp.post<any>
+        ({url: '/base/whitelistManagement/set-temporary', data:params},{errorMessageMode:mode});}
 /** 获取年级班级树结构 GET /base/whitelistManagement/structure */
 export async function getWhitelistManagementStructure(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.undefined>
         ({url: '/base/whitelistManagement/structure', params:params},{errorMessageMode:mode});}

+ 6 - 0
src/services/apis/index.ts

@@ -31,6 +31,7 @@ import * as ConcatController from './ConcatController';
 import * as SecondCourseController from './SecondCourseController';
 import * as CourseTableController from './CourseTableController';
 import * as DataboardController from './DataboardController';
+import * as DatadetailController from './DatadetailController';
 import * as DataExpertSourceController from './DataExpertSourceController';
 import * as DataExpertTemplateController from './DataExpertTemplateController';
 import * as EvaluateItemController from './EvaluateItemController';
@@ -135,6 +136,7 @@ import * as ConsumptionController from './ConsumptionController';
 import * as EnrollmentPlanController from './EnrollmentPlanController';
 import * as EnrollmentPlanGraduateSchoolController from './EnrollmentPlanGraduateSchoolController';
 import * as EnrollmentPlanMajorSetController from './EnrollmentPlanMajorSetController';
+import * as StudentLeaveController from './StudentLeaveController';
 import * as PbCseSpecplanController from './PbCseSpecplanController';
 import * as PbCseFeeobjupdateController from './PbCseFeeobjupdateController';
 import * as PbSemesterConfigController from './PbSemesterConfigController';
@@ -265,6 +267,8 @@ SecondCourseController,
 CourseTableController,
 /** Databoard Controller */
 DataboardController,
+/** Datadetail Controller */
+DatadetailController,
 /** Data Expert Source Controller */
 DataExpertSourceController,
 /** Data Expert Template Controller */
@@ -473,6 +477,8 @@ EnrollmentPlanController,
 EnrollmentPlanGraduateSchoolController,
 /** Enrollment Plan Major Set Controller */
 EnrollmentPlanMajorSetController,
+/** Student Leave Controller */
+StudentLeaveController,
 /** Pb Cse Specplan Controller */
 PbCseSpecplanController,
 /** Pb Cse Feeobjupdate Controller */

+ 163 - 3
src/services/typing.d.ts

@@ -1902,6 +1902,8 @@ departmentType?: number;
 email?: string;
 /** 是否启用 */
 enabledMark?: number;
+/** 是否专业部(1:是 0:否) */
+isMajor?: number;
 /** 电话 */
 mobile?: string;
 /** 机构名称 */
@@ -3187,6 +3189,8 @@ baseStudentScholarshipCategoryId?: string;
 scholarshipLevel?: number;
 /** 学期id */
 semesterId?: string;
+/** 金额 */
+totalAmount?: number;
 }
 
 type AddStundentFaceProcessDto = {
@@ -3901,10 +3905,16 @@ wfTextbookSubscriptionItemId?: string;
 type AddWhitelistManagementDto = {
 /** 身份证 */
 credentialNumber?: string;
+/** 临时使用结束时间 */
+endTime?: string;
+/** 是否临时性的(1:是 0:否) */
+isTemporary?: number;
 /** 姓名 */
 name?: string;
 /** 手机号 */
 phone?: string;
+/** 临时使用开始时间 */
+startTime?: string;
 /** 用户id */
 userId?: string;
 }
@@ -5119,6 +5129,7 @@ id?: string;
 majorName?: string;
 modifyDate?: string;
 modifyUserId?: string;
+/** 学期 */
 semester?: string;
 sortCode?: number;
 /** 教师名称 */
@@ -6569,6 +6580,8 @@ type BaseStudentDevelopmentVo = {
 /** 录取专业 */
 admissionMajor?: string;
 /** 升学层次(xjr_dictionary_item[ascending_arrangement]) */
+ascendingArrangement?: string;
+/** 升学层次(xjr_dictionary_item[ascending_arrangement]) */
 ascendingArrangementCn?: string;
 /** 升学渠道(xjr_dictionary_item[ascending_channels]) */
 ascendingChannels?: string;
@@ -6583,6 +6596,8 @@ companyIndustry?: string;
 /** 就业单位性质 */
 companyNature?: string;
 /** 就业单位规模(xjr_dictionary_item[company_scale]) */
+companyScale?: string;
+/** 就业单位规模(xjr_dictionary_item[company_scale]) */
 companyScaleCn?: string;
 /** 学生类型(xjr_dictionary_item[culture_type]) */
 cultureType?: string;
@@ -8442,6 +8457,15 @@ roomName?: string;
 sortCode?: number;
 }
 
+type DistributionVo = {
+/** 完成数量 */
+completeCount?: string;
+/** 统计项 */
+item?: string;
+/** 未完成数量 */
+uncompleteCount?: string;
+}
+
 type DrillEvaluateClassListVo = {
 /** 结束时间 */
 endTime?: string;
@@ -8475,6 +8499,13 @@ userId?: string;
 userIdCn?: string;
 }
 
+type DurationVo = {
+/** 数量 */
+count?: number;
+/** 时间段 */
+duration?: string;
+}
+
 type EnabledDto = {
 schemaId?: string;
 }
@@ -9539,6 +9570,30 @@ roomId?: string;
 roomName?: string;
 }
 
+type HealthItemCountVo = {
+/** 学生传染病数量 */
+infectionCount?: string;
+/** 统计项 */
+item?: string;
+/** 学生心理咨询数量 */
+psychologicalCount?: string;
+}
+
+type HealthStatisticsDetailVo = {
+/** 班级统计 */
+classList?: HealthItemCountVo[];
+/** 年级统计 */
+gradeList?: HealthItemCountVo[];
+/** 传染病登记人数-女 */
+infectionFemaleCount?: number;
+/** 传染病登记人数-男 */
+infectionMaleCount?: number;
+/** 心理咨询人数-女 */
+psychologicalFemaleCount?: number;
+/** 心理咨询人数-男 */
+psychologicalMaleCount?: number;
+}
+
 type HealthStatisticsVo = {
 /** 传染病登记人数-女 */
 infectionFemaleCount?: number;
@@ -9615,6 +9670,29 @@ interfaceIds?: string[];
 roleId?: string;
 }
 
+type ItemCountAmountVo = {
+/** 金额 */
+amount?: number;
+/** 次数 */
+count?: number;
+/** 统计项 */
+item?: string;
+}
+
+type ItemCountVo = {
+/** 数量 */
+count?: number;
+/** 统计项 */
+item?: string;
+}
+
+type ItemDoubleVo = {
+/** 金额 */
+amount?: number;
+/** 统计项 */
+item?: string;
+}
+
 type KeyCloakLoginInfoDto = {
 /** 设备 PC 或者  APP */
 device?: string;
@@ -13079,13 +13157,26 @@ type?: number;
 value?: string;
 }
 
+type ProcessStatisticsDetailVo = {
+/** 发起流程总数 */
+allCount?: string;
+/** 完成总数 */
+completeCount?: string;
+/** 流程分布情况 */
+distributionList?: DistributionVo[];
+/** 审核完结时长分布 */
+durationList?: DurationVo[];
+/** 未完成总数 */
+uncompleteCount?: string;
+}
+
 type ProcessStatisticsVo = {
 /** 发起流程总数 */
-allCount?: number;
+allCount?: string;
 /** 完成总数 */
-completeCount?: number;
+completeCount?: string;
 /** 未完成总数 */
-uncompleteCount?: number;
+uncompleteCount?: string;
 }
 
 type ProclamationPageVo = {
@@ -14626,6 +14717,13 @@ type SetSuspendedDto = {
 processId?: string;
 }
 
+type SetWhitelistEndTimeDto = {
+/** 临时使用结束时间 */
+endTime?: string;
+/** 用户id */
+ids?: string[];
+}
+
 type SqlConfig = {
 bindField?: string;
 databaseId?: string;
@@ -14904,6 +15002,23 @@ teacherName?: string;
 userId?: string;
 }
 
+type StudnetStatisticsDetailVo = {
+/** 性别占比数据 */
+genderList?: ItemCountVo[];
+/** 年级占比数据 */
+gradeList?: ItemCountVo[];
+/** 走读女学生总人数 */
+studentNotStayFemaleCount?: number;
+/** 走读男学生总人数 */
+studentNotStayMaleCount?: number;
+/** 住校女学生总人数 */
+studentStayFemaleCount?: number;
+/** 住校男学生总人数 */
+studentStayMaleCount?: number;
+/** 学生类型占比数据 */
+studentTypeList?: ItemCountVo[];
+}
+
 type StundentFaceProcessPageVo = {
 classCn?: string;
 /** 班级id */
@@ -15022,6 +15137,23 @@ sortCode?: number;
 subjectGroupCourseList?: SubjectGroupCoursePageVo[];
 }
 
+type SubscriptionStatisticsDetailVo = {
+/** 通过次数 */
+adoptCount?: number;
+/** 申购次数 */
+allCount?: number;
+/** 申购类型金额对比数据 */
+categoryAmountList?: ItemDoubleVo[];
+/** 申购类型次数对比数据 */
+categoryCountList?: ItemCountVo[];
+/** 部门申购统计数据 */
+deptList?: ItemCountAmountVo[];
+/** 待审次数 */
+pendingCount?: number;
+/** 总金额 */
+totalAmount?: number;
+}
+
 type SureBandingTaskDto = {
 /** 任务id */
 bandingTaskId?: string;
@@ -15419,6 +15551,19 @@ status?: number;
 userId?: string;
 }
 
+type TeacherStatisticsDetailVo = {
+/** 年龄占比数据 */
+ageList?: ItemCountVo[];
+/** 部门统计数据 */
+deptList?: ItemCountVo[];
+/** 学历占比数据 */
+educationList?: ItemCountVo[];
+/** 聘用占比数据 */
+employList?: ItemCountVo[];
+/** 性别占比数据 */
+genderList?: ItemCountVo[];
+}
+
 type TeacherStatisticsPageVo = {
 /** 考勤方式 */
 attendanceMode?: string;
@@ -19714,12 +19859,18 @@ wfTextbookSubscriptionItemId?: string;
 type UpdateWhitelistManagementDto = {
 /** 身份证 */
 credentialNumber?: string;
+/** 临时使用结束时间 */
+endTime?: string;
 /** 主键编号 */
 id?: string;
+/** 是否临时性的(1:是 0:否) */
+isTemporary?: number;
 /** 姓名 */
 name?: string;
 /** 手机号 */
 phone?: string;
+/** 临时使用开始时间 */
+startTime?: string;
 /** 用户id */
 userId?: string;
 }
@@ -21000,6 +21151,15 @@ teacherSubscriptionNumberSum?: number;
 wfTextbookSubscriptionItemList?: WfTextbookSubscriptionItemVo[];
 }
 
+type WhitelistInfoVo = {
+/** 截止日期 */
+endTime?: string;
+/** 是否临时性的(1:是 0:否) */
+isTemporary?: number;
+/** 是否存在于白名单中(1:是 0:否) */
+whitelistStatus?: number;
+}
+
 type WhitelistManagementPageVo = {
 /** 班级id */
 classId?: string;

+ 91 - 0
src/views/educational/whiteList/components/setting.vue

@@ -0,0 +1,91 @@
+<template>
+  <BasicModal
+    @ok="handleSubmit"
+    :destroyOnClose="true"
+    :maskClosable="false"
+    v-bind="$attrs"
+    @register="registerModal"
+    :title="getTitle"
+    :width="1002"
+    showFooter
+  >
+    <BasicForm @register="registerForm">
+      <template #name>
+        <div class="flex">
+          <div v-for="(item, index) in modelRef.slice(0, 3)" :key="index">
+            <div class="mr-[8px]">{{ item.name }}</div>
+          </div>
+          <div v-if="modelRef.length > 3">等 {{ modelRef.length }}人</div>
+        </div>
+      </template>
+    </BasicForm>
+  </BasicModal>
+</template>
+<script setup lang="ts">
+  import { ref, computed, unref } from 'vue';
+  import { useMessage } from '/@/hooks/web/useMessage';
+  import { BasicModal, useModalInner } from '/@/components/Modal';
+  import { BasicForm, useForm } from '/@/components/Form/index';
+  import { postWhitelistManagementSetEndtimeBatch } from '/@/services/apis/WhitelistManagementController';
+  import { Recordable } from 'vite-plugin-mock';
+
+  const isUpdate = ref(true);
+  const modelRef = ref<Recordable[]>([]);
+  const emit = defineEmits(['success', 'register']);
+  const { createMessage } = useMessage();
+  const [registerForm, { validate, resetFields }] = useForm({
+    labelWidth: 100,
+    schemas: [
+      {
+        field: 'name',
+        label: '学生',
+        component: 'Input',
+        colProps: { span: 24 },
+        slot: 'name',
+      },
+      {
+        field: 'endTime',
+        label: '结束时间',
+        component: 'DatePicker',
+        colProps: { span: 24 },
+        componentProps: {
+          showTime: false,
+          format: 'YYYY-MM-DD',
+          valueFormat: 'YYYY-MM-DD',
+          getPopupContainer: () => document.body,
+        },
+      },
+    ],
+    showActionButtonGroup: false,
+  });
+
+  const [registerModal, { closeModal, setModalProps }] = useModalInner(async (data) => {
+    resetFields();
+    setModalProps({ confirmLoading: false });
+    isUpdate.value = !!data?.isUpdate;
+    modelRef.value = [...data.baseData];
+  });
+
+  const getTitle = computed(() => (!unref(isUpdate) ? '设置结束时间' : '设置结束时间'));
+  const handleSubmit = async () => {
+    try {
+      const values = await validate();
+      setModalProps({ confirmLoading: true });
+      const ids = modelRef.value.map((item) => item.id);
+      const postParams = {
+        ids: ids,
+      };
+      Object.assign(postParams, values);
+
+      await postWhitelistManagementSetEndtimeBatch(postParams);
+
+      createMessage.success('操作成功');
+      closeModal();
+      emit('success');
+    } finally {
+      setModalProps({ confirmLoading: false });
+    }
+  };
+</script>
+
+<style scoped lang="less"></style>

+ 30 - 31
src/views/educational/whiteList/index.vue

@@ -5,6 +5,8 @@
       <template #toolbar>
         <a-button type="primary" @click="handelImport">白名单导入</a-button>
         <a-button type="primary" @click="handelImport1">新生账号激活导入</a-button>
+        <a-button type="primary" @click="handelEndDate">批量设置结束时间</a-button>
+        <a-button type="primary" @click="handelTemporary">设置为永久</a-button>
       </template>
       <template #action="{ record }">
         <TableAction
@@ -18,6 +20,7 @@
       </template>
     </BasicTable>
     <FormImport @register="registerImportModal" @success="handleSuccess" />
+    <DateSetting @register="registerDateSetting" />
   </PageWrapper>
 </template>
 
@@ -29,29 +32,24 @@
   import ClassTree from '/@/views/educational/class/components/ClassTree.vue';
 
   import { useMessage } from '/@/hooks/web/useMessage';
-
-  import { useLoading } from '/@/components/Loading';
   import {
     deleteBaseWhitelistManagement,
     getWhitelistManagementPage,
     postWhitelistManagementActivateImport,
     postWhitelistManagementImport,
+    postWhitelistManagementSetTemporary,
   } from '/@/services/apis/WhitelistManagementController';
 
-  import { jsonToSheetXlsx } from '/@/components/Excel';
-
   import FormImport from '/@/views/sys/import/index.vue';
   import { useModal } from '/@/components/Modal';
+  import DateSetting from './components/setting.vue';
 
   const { createConfirm, createMessage } = useMessage();
 
-  const [openFullLoading, closeFullLoading] = useLoading({
-    tip: '处理中...',
-  });
-
   const [registerImportModal, { openModal: openImportModal }] = useModal();
+  const [registerDateSetting, { openModal: openDateSettingModal }] = useModal();
 
-  const [registerTable, { reload }] = useTable({
+  const [registerTable, { reload, getSelectRows, getSelectRowKeys }] = useTable({
     api: getWhitelistManagementPage,
     title: '白名单登记列表',
     rowKey: 'id',
@@ -137,6 +135,9 @@
     bordered: true,
     immediate: true,
     canResize: true,
+    rowSelection: {
+      type: 'checkbox',
+    },
     actionColumn: {
       width: 100,
       title: '操作',
@@ -153,28 +154,6 @@
     reload();
   }
 
-  const beforeUpload = async (e) => {
-    try {
-      openFullLoading();
-      const data = await postWhitelistManagementImport({ file: e });
-
-      if (data && data.length > 0) {
-        jsonToSheetXlsx({
-          data,
-          filename: '白名单登记出错记录.xlsx',
-        });
-        createMessage.info('导入数据有误,请查看附件');
-      } else {
-        createMessage.success('导入成功');
-      }
-      closeFullLoading();
-      reload();
-    } catch {
-      closeFullLoading();
-    }
-    return false;
-  };
-
   const handleDelete = (record: any) => {
     createConfirm({
       iconType: 'warning',
@@ -225,6 +204,26 @@
       },
     });
   };
+
+  const handelEndDate = () => {
+    const data = getSelectRows();
+    if (data.length === 0) {
+      createMessage.warning('请选择要设置的学生');
+      return;
+    }
+
+    openDateSettingModal(true, { baseData: [...data] });
+  };
+
+  const handelTemporary = async () => {
+    const keys = getSelectRowKeys();
+    if (keys.length === 0) {
+      createMessage.warning('请选择要设置的学生');
+      return;
+    }
+    await postWhitelistManagementSetTemporary(keys);
+    createMessage.success('设置成功');
+  };
 </script>
 
 <style scoped lang="less"></style>

+ 3 - 3
src/views/sys/door/components/CommonlyUsed.vue

@@ -11,8 +11,8 @@
         <div class="commonly-item" @click="handleChangeSys(item)">
           <div class="flex flex-1 h-full">
             <img
-              style="width: 56px; height: 56px; object-fit: contain;"
-              :src="item.iconUrl || 'https://ossc.cqcet.edu.cn/static/portal/service.png'"
+              style="width: 56px; height: 56px; object-fit: contain"
+              :src="item.iconUrl || 'https://zhxy.cqtlzjzx.com/minio/static/service.png'"
               alt=""
             />
             <div class="ml-2 flex flex-1 flex-col truncate">
@@ -29,7 +29,7 @@
             icon="icon-park-solid:delete-two"
             :size="24"
             color="rgba(255,61,57,0.5)"
-            style="position: absolute; right: 0; top: 0;"
+            style="position: absolute; right: 0; top: 0"
             @click.prevent.stop="handelDelete(item.menuId)"
           />
         </div>

+ 2 - 3
src/views/sys/door/components/serviceCenter/index.vue

@@ -300,8 +300,7 @@
                                 margin-top: 4px;
                               "
                               :src="
-                                item.iconUrl ||
-                                'https://ossc.cqcet.edu.cn/static/portal/service.png'
+                                item.iconUrl || 'https://zhxy.cqtlzjzx.com/minio/static/service.png'
                               "
                             />
                             <div class="ml-1">{{ item.title }} </div>
@@ -321,7 +320,7 @@
                       <img
                         v-if="item.authorized === 1"
                         style="width: 32px; height: 32px; object-fit: contain"
-                        :src="item.iconUrl || 'https://ossc.cqcet.edu.cn/static/portal/service.png'"
+                        :src="item.iconUrl || 'https://zhxy.cqtlzjzx.com/minio/static/service.png'"
                         alt=""
                       />
                       <img

+ 1 - 1
src/views/system/role/components/menusConfigModal.vue

@@ -99,7 +99,7 @@
                 :src="
                   items.iconUrl
                     ? items.iconUrl
-                    : 'https://ossc.cqcet.edu.cn/static/portal/service.png'
+                    : 'https://zhxy.cqtlzjzx.com/minio/static/service.png'
                 "
                 alt=""
               />

+ 2 - 2
src/views/system/user/components/UserMenu.vue

@@ -21,8 +21,8 @@
             >
               <div class="flex flex-1 h-full" @click="handelClick(item)">
                 <img
-                  style="width: 56px; height: 56px; object-fit: contain;"
-                  :src="item.iconUrl || 'https://ossc.cqcet.edu.cn/static/portal/service.png'"
+                  style="width: 56px; height: 56px; object-fit: contain"
+                  :src="item.iconUrl || 'https://zhxy.cqtlzjzx.com/minio/static/service.png'"
                   alt=""
                 />
                 <div class="ml-2 flex flex-1 flex-col truncate">