Преглед на файлове

考勤点名模块

master
yxq преди 4 месеца
родител
ревизия
961226a218
променени са 8 файла, в които са добавени 131 реда и са изтрити 145 реда
  1. +2
    -2
      SafeCampus.WEB/src/views/attendance/behaviorTrace/components/traceShow/index.vue
  2. +4
    -5
      SafeCampus.WEB/src/views/attendance/behaviorTrace/index.vue
  3. +0
    -47
      SafeCampus.WEB/src/views/attendance/passenger/components/detailForm/form_detail.vue
  4. +0
    -63
      SafeCampus.WEB/src/views/attendance/passenger/components/detailForm/index.vue
  5. +79
    -0
      SafeCampus.WEB/src/views/attendance/passenger/components/detailTable/index.vue
  6. +4
    -4
      SafeCampus.WEB/src/views/attendance/passenger/index.vue
  7. +21
    -3
      SafeCampus.WEB/src/views/attendance/studentsReturn/components/returnConfirm/index.vue
  8. +21
    -21
      SafeCampus.WEB/src/views/attendance/studentsReturn/index.vue

SafeCampus.WEB/src/views/attendance/behaviorTrace/components/nofaceTable/index.vue → SafeCampus.WEB/src/views/attendance/behaviorTrace/components/traceShow/index.vue Целия файл

@@ -5,8 +5,8 @@
-->
<template>
<div>
<form-container v-model="visible" :title="`行为轨迹查看`" form-size="1000px" @close="onClose">
<ProTable ref="proTable" title="教师点名" height="600px" :data="tableData" :columns="columns"></ProTable>
<form-container v-model="visible" :title="`行为轨迹查看`" form-size="800px" @close="onClose">
<ProTable ref="proTable" title="行为轨迹" height="500px" :data="tableData" :columns="columns"></ProTable>
<template #footer>
<el-button @click="onClose"> 关闭 </el-button>
</template>

+ 4
- 5
SafeCampus.WEB/src/views/attendance/behaviorTrace/index.vue Целия файл

@@ -15,7 +15,7 @@
@change="changeTreeFilter"
>
<template v-slot:header>
<h4 style="margin: 0 0 15px; font-size: 18px; font-weight: bold; color: var(--el-color-info-dark-2); letter-spacing: 0.5px">班级</h4>
<h4 style="margin: 0 0 15px; font-size: 18px; font-weight: bold; color: var(--el-color-info-dark-2); letter-spacing: 0.5px">所属班级</h4>
</template>
<template v-slot:label="{ row }">
<span class="custom-tree-node">
@@ -40,7 +40,7 @@
</div>
</el-dialog>
<!-- 轨迹详情 -->
<TraceDetail ref="detialRef" />
<TraceShow ref="detialRef" />
</div>
</template>
<script setup lang="tsx" name="SysUserPersonnel">
@@ -49,13 +49,12 @@ import { FormOptEnum } from "@/enums";
import { ColumnProps, ProTableInstance } from "@/components/ProTable/interface";
import TreeFilter from "@/components/TreeFilter/index.vue";
import { useUserStore } from "@/stores/modules";
import TraceDetail from "./components/nofaceTable/index.vue";
import TraceShow from "./components/traceShow/index.vue";
// 获取 ProTable 元素,调用其获取刷新数据方法(还能获取到当前查询参数,方便导出携带参数)
const faceUrl = ref('');
const visible = ref(false); //预览头像
const proTable = ref<ProTableInstance>();
const treeFilter = ref<InstanceType<typeof TreeFilter> | null>(null);
const userStore = useUserStore();
// 表格配置项
const columns: ColumnProps<SysUserPersonnel.SysUserPerInfo>[] = [
{
@@ -110,7 +109,7 @@ function changeTreeFilter(val: number | string) {
proTable.value!.searchParam.personSetId = val;
proTable.value!.search();
}
const detialRef = ref<InstanceType<typeof TraceDetail> | null>(null);
const detialRef = ref<InstanceType<typeof TraceShow> | null>(null);
/**
* 详情
* @param opt 操作类型


+ 0
- 47
SafeCampus.WEB/src/views/attendance/passenger/components/detailForm/form_detail.vue Целия файл

@@ -1,47 +0,0 @@
<!--
* @Description: 客流查询
* @Author: yxq
* @Date: 2023-12-17 15:45:50
-->
<template>
<div>
<div>
<el-row :gutter="16">
<el-col :span="24">
<s-form-item label="分片时间" prop="shijianduan">
<s-input v-model="formInfo.fenpianshijian" disabled></s-input>
</s-form-item>
<s-form-item label="分片数量" prop="shijianduan">
<s-input v-model="formInfo.fenpianshuliang" disabled></s-input>
</s-form-item>
</el-col>
</el-row>
</div>
</div>
</template>

<script setup lang="ts">
import { AttendancePassenger, monitorLIVEApi } from "@/api";
// props
interface FormProps {
modelValue: Partial<AttendancePassenger.PassengerInfo>;
}
const emit = defineEmits(["update:modelValue"]); //定义emit
const props = defineProps<FormProps>(); //定义props
// 客流查询表单
const formInfo = computed({
get: () => props.modelValue,
set: val => emit("update:modelValue", val)
});
console.log(props.modelValue);

onMounted(() => {
// 初始化
});
</script>

<style lang="scss" scoped>
:deep(.el-input__wrapper) {
width: 100% !important;
}
</style>

+ 0
- 63
SafeCampus.WEB/src/views/attendance/passenger/components/detailForm/index.vue Целия файл

@@ -1,63 +0,0 @@
<!--
* @Description: 表单
* @Author: syy
* @Date: 2023-12-15 15:45:59
-->
<template>
<div>
<form-container v-model="visible" :title="`分片详情`" form-size="600px" @close="onClose">
<el-form
ref="formRef"
:disabled="formProps.disabled"
:model="formProps.record"
:hide-required-asterisk="formProps.disabled"
label-width="auto"
label-suffix=" :"
>
<el-tabs v-model="activeName">
<Detail v-model="formProps.record"></Detail>
</el-tabs>
</el-form>
<template #footer>
<el-button type="primary" @click="onClose"> 确定 </el-button>
</template>
</form-container>
</div>
</template>

<script setup lang="ts">
import { AttendancePassenger, attendancePassenger } from "@/api";
import { FormOptEnum } from "@/enums";
import Detail from "./form_detail.vue";

const visible = ref(false); //是否显示表单
const activeName = ref("detail");
// 表单参数
const formProps = reactive<FormProps.Base<AttendancePassenger.PassengerInfo>>({
opt: FormOptEnum.ADD,
record: {},
disabled: false
});

/**
* 打开表单
* @param props 表单参数
*/
function onOpen(props: FormProps.Base<AttendancePassenger.PassengerInfo>) {
Object.assign(formProps, props); //合并参数
visible.value = true; //显示表单
}

/** 关闭表单*/
function onClose() {
visible.value = false;
activeName.value = "detail";
}

// 暴露给父组件的方法
defineExpose({
onOpen
});
</script>

<style lang="scss" scoped></style>

+ 79
- 0
SafeCampus.WEB/src/views/attendance/passenger/components/detailTable/index.vue Целия файл

@@ -0,0 +1,79 @@
<!--
* @Description: 行为轨迹
* @Author: yxq
* @Date: 2023-12-15 15:45:59
-->
<template>
<div>
<form-container v-model="visible" :title="`分片详情`" form-size="800px" @close="onClose">
<ProTable ref="proTable" title="分片详情" height="500px" :data="tableData" :columns="columns"></ProTable>
<template #footer>
<el-button @click="onClose"> 关闭 </el-button>
</template>
</form-container>
</div>
</template>
<script setup lang="tsx" name="attendanceBehaviorTrace">
import { AttendanceBehaviorTrace, attendanceBehaviorTrace } from "@/api";
import { ColumnProps, ProTableInstance } from "@/components/ProTable/interface";
import { FormOptEnum } from "@/enums";

const visible = ref(false); //是否显示
// 弹框参数
const propsInfo = reactive<FormProps.Base<AttendanceBehaviorTrace.behaviorTraceInfo>>({
opt: FormOptEnum.VIEW, //操作类型
record: {}, //弹框数据
disabled: false
});
/**
* 打开弹框
* @param props 弹框参数
*/
function onOpen(props: FormProps.Base<AttendanceBehaviorTrace.PassengerInfo>) {
Object.assign(propsInfo, props); //合并参数
visible.value = true; //显示弹框
if (props.record.id) {
//如果传了id,就去请求api获取record
attendanceBehaviorTrace.detail({ id: props.record.id }).then(res => {
propsInfo.record = res.data;
});
}
}

const tableData = ref([
{
time:'2024-07-16 00:00:00',
name:'60',
},
{
time:'2024-07-17 00:00:00',
name:'40',
},
]);
// 获取 ProTable 元素,调用其获取刷新数据方法(还能获取到当前查询参数,方便导出携带参数)
const proTable = ref<ProTableInstance>();
// 表格配置项
const columns: ColumnProps[] = [
{
prop: "time",
label: "时间"
},
{
prop: "name",
label: "人数",
},
];
/** 关闭表单*/
function onClose() {
visible.value = false;
}

// 暴露给父组件的方法
defineExpose({
onOpen
});
</script>
<style lang="scss" scoped></style>

+ 4
- 4
SafeCampus.WEB/src/views/attendance/passenger/index.vue Целия файл

@@ -18,14 +18,14 @@
</template>
</ProTable>
<Form ref="formRef" />
<DetailForm ref="detailFormRef"></DetailForm>
<DetailTable ref="detailTableRef"></DetailTable>
</div>
</template>
<script setup lang="ts" name="AttendancePassenger">
import { attendancePassenger, attendancePassengerBtnCode, AttendancePassenger } from "@/api";
import { ColumnProps, ProTableInstance } from "@/components/ProTable/interface";
import Form from "./components/form/index.vue";
import DetailForm from "./components/detailForm/index.vue";
import DetailTable from "./components/detailTable/index.vue";
import { FormOptEnum } from "@/enums";
// 获取 ProTable 元素,调用其获取刷新数据方法(还能获取到当前查询参数,方便导出携带参数)
const proTable = ref<ProTableInstance>();
@@ -81,7 +81,7 @@ const columns: ColumnProps<any>[] = [
];
// 表单引用
const formRef = ref<InstanceType<typeof Form> | null>(null);
const detailFormRef = ref<InstanceType<typeof DetailForm> | null>(null);
const detailTableRef = ref<InstanceType<typeof DetailTable> | null>(null);
/**
* 打开表单
* @param opt 操作类型
@@ -93,7 +93,7 @@ function onOpen(opt: FormOptEnum, record: {} | AttendancePassenger.PassengerInfo
formRef.value?.onOpen({ opt: opt, record: record, successful: RefreshTable });
break;
case FormOptEnum.VIEW:
detailFormRef.value?.onOpen({ opt: opt, record: record, successful: RefreshTable });
detailTableRef.value?.onOpen({ opt: opt, record: record, successful: RefreshTable });
}
}
// 刷新表格


SafeCampus.WEB/src/views/attendance/studentsReturn/components/nofaceTable/index.vue → SafeCampus.WEB/src/views/attendance/studentsReturn/components/returnConfirm/index.vue Целия файл

@@ -5,8 +5,8 @@
-->
<template>
<div>
<form-container v-model="visible" row-key="id" :title="`${propsInfo.record.classname}人脸未识别确认`" form-size="1000px" @close="onClose">
<ProTable ref="noFaceTableRef" title="教师点名" height="600px" :data="tableData" :columns="columns">
<form-container v-model="visible" row-key="id" :title="`${propsInfo.record.qinshibianhao}归寝确认`" form-size="800px" @close="onClose">
<ProTable ref="noFaceTableRef" title="归寝确认" height="500px" :data="tableData" :columns="columns">
<!-- 表格 header 按钮 -->
<template #tableHeader="scope">
<s-button
@@ -15,7 +15,7 @@
icon="check"
prefix="人工"
suffix="确认"
@click="personConfirm(scope.selectedListIds, '确认人脸识别')"
@click="personConfirm(scope.selectedListIds, '确认已归寝')"
/>
</template>
</ProTable>
@@ -70,6 +70,8 @@ const tableData = ref([
"http://deepvision.oss-cn-zhangjiakou.aliyuncs.com/dfield-cruising/online/person-set/quanjiang/DEMO00001/8746a847ecd64c1696b37f4cdf617a18/5dc35e4c7af84b3fb5aab70156574873.jpg?Expires=1721375257&OSSAccessKeyId=STS.NTfeBHwzU7kivsSS2EypREace&Signature=c1aTbDc1hNISq%2BV05o0slEfoCTI%3D&security-token=CAIS0wN1q6Ft5B2yfSjIr5fTLvj8mqV0gKmCdFXitzIQdf9%2BqqTIhzz2IHFMf3huCeodsv8%2BlGxS5%2FgelrpqVpZDR03Na8RHwrly1lv5O9KY4x49TRng0s%2FLI3OaLjKm9hi7AYygPgK0GJqEb1TDiVUto9%2FTfimjWFqIKICAjYUdAP0cQgi%2Fa0gwZrJRPRAwh8IGEnHTOP2xUHvtmXGCNFd0nQB%2BhGhjk7TdpPeR8R3Dllb35%2FYIroDqWPieYtJrIY10XqWBvqx%2FfbGT1zVLuVoYtvV6gaFc5zbcv9abRFVf4hiCP6%2Ff6MBuNw5%2Fae94efZNp%2BOukuZj6K6B1db7xhtVI%2BBOUiPZA4mr2IzdBeqvNNcwc7m8F1no9YjXbsGs9EEGGStLaVgVI4F8dyAhWEd9FWjgR%2FX5qAyQUGCKULOY1aw6651xwmjz8MCCT1r1GOTBindGasVnMxh5Z0JMjDK9aNkKfgFUbVJ8BrGTCIh%2FYx0bsq7yowDIEyp71TRMo%2Bbu%2FDBhIifKpO4VN7AxMup1DPwu2wNCxORK3yyybb5sa3aTR6942p%2F%2FF5VxFNPqOx1rmCMf4znuW4yrvNkAVvNcuIqdR8aLhaLIEbHzoKxuEKRnrfsIeBqAAUB%2FCKIuI1UaCj4LYX8DyIYOI8tUKFsMguPHpPENaK9Lcz5ZhB%2BrX6BcQfNWOLhDx7KyRE28vtEs2uolAhLTRaZsZFjbAZE5Ngt09%2FbSXdD%2FR%2BOlGMpQdp752x5lOlvPsJp1skuFLbramyqY4oj4tVwv1OLWpcsEc3AEosPalpAuIAA%3D"
},
],
louceng:'3',
qinshi:'301',
},
{
id:'2',
@@ -80,6 +82,8 @@ const tableData = ref([
"http://deepvision.oss-cn-zhangjiakou.aliyuncs.com/dfield-cruising/online/person-set/quanjiang/DEMO00001/8746a847ecd64c1696b37f4cdf617a18/5dc35e4c7af84b3fb5aab70156574873.jpg?Expires=1721375257&OSSAccessKeyId=STS.NTfeBHwzU7kivsSS2EypREace&Signature=c1aTbDc1hNISq%2BV05o0slEfoCTI%3D&security-token=CAIS0wN1q6Ft5B2yfSjIr5fTLvj8mqV0gKmCdFXitzIQdf9%2BqqTIhzz2IHFMf3huCeodsv8%2BlGxS5%2FgelrpqVpZDR03Na8RHwrly1lv5O9KY4x49TRng0s%2FLI3OaLjKm9hi7AYygPgK0GJqEb1TDiVUto9%2FTfimjWFqIKICAjYUdAP0cQgi%2Fa0gwZrJRPRAwh8IGEnHTOP2xUHvtmXGCNFd0nQB%2BhGhjk7TdpPeR8R3Dllb35%2FYIroDqWPieYtJrIY10XqWBvqx%2FfbGT1zVLuVoYtvV6gaFc5zbcv9abRFVf4hiCP6%2Ff6MBuNw5%2Fae94efZNp%2BOukuZj6K6B1db7xhtVI%2BBOUiPZA4mr2IzdBeqvNNcwc7m8F1no9YjXbsGs9EEGGStLaVgVI4F8dyAhWEd9FWjgR%2FX5qAyQUGCKULOY1aw6651xwmjz8MCCT1r1GOTBindGasVnMxh5Z0JMjDK9aNkKfgFUbVJ8BrGTCIh%2FYx0bsq7yowDIEyp71TRMo%2Bbu%2FDBhIifKpO4VN7AxMup1DPwu2wNCxORK3yyybb5sa3aTR6942p%2F%2FF5VxFNPqOx1rmCMf4znuW4yrvNkAVvNcuIqdR8aLhaLIEbHzoKxuEKRnrfsIeBqAAUB%2FCKIuI1UaCj4LYX8DyIYOI8tUKFsMguPHpPENaK9Lcz5ZhB%2BrX6BcQfNWOLhDx7KyRE28vtEs2uolAhLTRaZsZFjbAZE5Ngt09%2FbSXdD%2FR%2BOlGMpQdp752x5lOlvPsJp1skuFLbramyqY4oj4tVwv1OLWpcsEc3AEosPalpAuIAA%3D"
},
],
louceng:'3',
qinshi:'302',
},
{
id:'3',
@@ -90,6 +94,8 @@ const tableData = ref([
"http://deepvision.oss-cn-zhangjiakou.aliyuncs.com/dfield-cruising/online/person-set/quanjiang/DEMO00001/8746a847ecd64c1696b37f4cdf617a18/5dc35e4c7af84b3fb5aab70156574873.jpg?Expires=1721375257&OSSAccessKeyId=STS.NTfeBHwzU7kivsSS2EypREace&Signature=c1aTbDc1hNISq%2BV05o0slEfoCTI%3D&security-token=CAIS0wN1q6Ft5B2yfSjIr5fTLvj8mqV0gKmCdFXitzIQdf9%2BqqTIhzz2IHFMf3huCeodsv8%2BlGxS5%2FgelrpqVpZDR03Na8RHwrly1lv5O9KY4x49TRng0s%2FLI3OaLjKm9hi7AYygPgK0GJqEb1TDiVUto9%2FTfimjWFqIKICAjYUdAP0cQgi%2Fa0gwZrJRPRAwh8IGEnHTOP2xUHvtmXGCNFd0nQB%2BhGhjk7TdpPeR8R3Dllb35%2FYIroDqWPieYtJrIY10XqWBvqx%2FfbGT1zVLuVoYtvV6gaFc5zbcv9abRFVf4hiCP6%2Ff6MBuNw5%2Fae94efZNp%2BOukuZj6K6B1db7xhtVI%2BBOUiPZA4mr2IzdBeqvNNcwc7m8F1no9YjXbsGs9EEGGStLaVgVI4F8dyAhWEd9FWjgR%2FX5qAyQUGCKULOY1aw6651xwmjz8MCCT1r1GOTBindGasVnMxh5Z0JMjDK9aNkKfgFUbVJ8BrGTCIh%2FYx0bsq7yowDIEyp71TRMo%2Bbu%2FDBhIifKpO4VN7AxMup1DPwu2wNCxORK3yyybb5sa3aTR6942p%2F%2FF5VxFNPqOx1rmCMf4znuW4yrvNkAVvNcuIqdR8aLhaLIEbHzoKxuEKRnrfsIeBqAAUB%2FCKIuI1UaCj4LYX8DyIYOI8tUKFsMguPHpPENaK9Lcz5ZhB%2BrX6BcQfNWOLhDx7KyRE28vtEs2uolAhLTRaZsZFjbAZE5Ngt09%2FbSXdD%2FR%2BOlGMpQdp752x5lOlvPsJp1skuFLbramyqY4oj4tVwv1OLWpcsEc3AEosPalpAuIAA%3D"
},
],
louceng:'4',
qinshi:'401',
},
{
id:'4',
@@ -100,6 +106,8 @@ const tableData = ref([
"http://deepvision.oss-cn-zhangjiakou.aliyuncs.com/dfield-cruising/online/person-set/quanjiang/DEMO00001/8746a847ecd64c1696b37f4cdf617a18/5dc35e4c7af84b3fb5aab70156574873.jpg?Expires=1721375257&OSSAccessKeyId=STS.NTfeBHwzU7kivsSS2EypREace&Signature=c1aTbDc1hNISq%2BV05o0slEfoCTI%3D&security-token=CAIS0wN1q6Ft5B2yfSjIr5fTLvj8mqV0gKmCdFXitzIQdf9%2BqqTIhzz2IHFMf3huCeodsv8%2BlGxS5%2FgelrpqVpZDR03Na8RHwrly1lv5O9KY4x49TRng0s%2FLI3OaLjKm9hi7AYygPgK0GJqEb1TDiVUto9%2FTfimjWFqIKICAjYUdAP0cQgi%2Fa0gwZrJRPRAwh8IGEnHTOP2xUHvtmXGCNFd0nQB%2BhGhjk7TdpPeR8R3Dllb35%2FYIroDqWPieYtJrIY10XqWBvqx%2FfbGT1zVLuVoYtvV6gaFc5zbcv9abRFVf4hiCP6%2Ff6MBuNw5%2Fae94efZNp%2BOukuZj6K6B1db7xhtVI%2BBOUiPZA4mr2IzdBeqvNNcwc7m8F1no9YjXbsGs9EEGGStLaVgVI4F8dyAhWEd9FWjgR%2FX5qAyQUGCKULOY1aw6651xwmjz8MCCT1r1GOTBindGasVnMxh5Z0JMjDK9aNkKfgFUbVJ8BrGTCIh%2FYx0bsq7yowDIEyp71TRMo%2Bbu%2FDBhIifKpO4VN7AxMup1DPwu2wNCxORK3yyybb5sa3aTR6942p%2F%2FF5VxFNPqOx1rmCMf4znuW4yrvNkAVvNcuIqdR8aLhaLIEbHzoKxuEKRnrfsIeBqAAUB%2FCKIuI1UaCj4LYX8DyIYOI8tUKFsMguPHpPENaK9Lcz5ZhB%2BrX6BcQfNWOLhDx7KyRE28vtEs2uolAhLTRaZsZFjbAZE5Ngt09%2FbSXdD%2FR%2BOlGMpQdp752x5lOlvPsJp1skuFLbramyqY4oj4tVwv1OLWpcsEc3AEosPalpAuIAA%3D"
},
],
louceng:'3',
qinshi:'301',
},
{
id:'5',
@@ -110,6 +118,8 @@ const tableData = ref([
"http://deepvision.oss-cn-zhangjiakou.aliyuncs.com/dfield-cruising/online/person-set/quanjiang/DEMO00001/8746a847ecd64c1696b37f4cdf617a18/5dc35e4c7af84b3fb5aab70156574873.jpg?Expires=1721375257&OSSAccessKeyId=STS.NTfeBHwzU7kivsSS2EypREace&Signature=c1aTbDc1hNISq%2BV05o0slEfoCTI%3D&security-token=CAIS0wN1q6Ft5B2yfSjIr5fTLvj8mqV0gKmCdFXitzIQdf9%2BqqTIhzz2IHFMf3huCeodsv8%2BlGxS5%2FgelrpqVpZDR03Na8RHwrly1lv5O9KY4x49TRng0s%2FLI3OaLjKm9hi7AYygPgK0GJqEb1TDiVUto9%2FTfimjWFqIKICAjYUdAP0cQgi%2Fa0gwZrJRPRAwh8IGEnHTOP2xUHvtmXGCNFd0nQB%2BhGhjk7TdpPeR8R3Dllb35%2FYIroDqWPieYtJrIY10XqWBvqx%2FfbGT1zVLuVoYtvV6gaFc5zbcv9abRFVf4hiCP6%2Ff6MBuNw5%2Fae94efZNp%2BOukuZj6K6B1db7xhtVI%2BBOUiPZA4mr2IzdBeqvNNcwc7m8F1no9YjXbsGs9EEGGStLaVgVI4F8dyAhWEd9FWjgR%2FX5qAyQUGCKULOY1aw6651xwmjz8MCCT1r1GOTBindGasVnMxh5Z0JMjDK9aNkKfgFUbVJ8BrGTCIh%2FYx0bsq7yowDIEyp71TRMo%2Bbu%2FDBhIifKpO4VN7AxMup1DPwu2wNCxORK3yyybb5sa3aTR6942p%2F%2FF5VxFNPqOx1rmCMf4znuW4yrvNkAVvNcuIqdR8aLhaLIEbHzoKxuEKRnrfsIeBqAAUB%2FCKIuI1UaCj4LYX8DyIYOI8tUKFsMguPHpPENaK9Lcz5ZhB%2BrX6BcQfNWOLhDx7KyRE28vtEs2uolAhLTRaZsZFjbAZE5Ngt09%2FbSXdD%2FR%2BOlGMpQdp752x5lOlvPsJp1skuFLbramyqY4oj4tVwv1OLWpcsEc3AEosPalpAuIAA%3D"
},
],
louceng:'5',
qinshi:'502',
}
]);
// 获取 noFaceTableRef 元素,调用其获取刷新数据方法(还能获取到当前查询参数,方便导出携带参数)
@@ -117,6 +127,14 @@ const noFaceTableRef = ref<noFaceTableInstance>();
// 表格配置项
const columns: ColumnProps[] = [
{ type: "selection" },
{
prop: "louceng",
label: "楼层"
},
{
prop: "qinshi",
label: "寝室编号"
},
{
prop: "studentname",
label: "学生姓名"

+ 21
- 21
SafeCampus.WEB/src/views/attendance/studentsReturn/index.vue Целия файл

@@ -20,28 +20,28 @@
</el-space>
</template>
</ProTable>
<FaceConfirm ref="FaceConfirmRef" />
<ReturnConfirm ref="ReturnConfirmRef" />
</div>
</template>
<script setup lang="ts">
import { attendanceStudentsReturn, AttendanceStudentsReturn } from "@/api";
import { ColumnProps, ProTableInstance } from "@/components/ProTable/interface";
import { FormOptEnum } from "@/enums";
import FaceConfirm from "./components/nofaceTable/index.vue";
import ReturnConfirm from "./components/returnConfirm/index.vue";
const data = ref([
{
classname: "XXXXX班级",
classId: "544165",
studentNum: "43",
guiqinNum: "38",
noFaceNum: "5"
louceng: "3",
qinshibianhao: "306",
qinshirenshu: "6",
guiqinNum: "5",
noFaceNum: "1"
},
{
classname: "XX班级",
classId: "555333",
studentNum: "42",
guiqinNum: "37",
noFaceNum: "5"
louceng: "3",
qinshibianhao: "307",
qinshirenshu: "8",
guiqinNum: "6",
noFaceNum: "2"
}
]);
// 获取 ProTable 元素,调用其获取刷新数据方法(还能获取到当前查询参数,方便导出携带参数)
@@ -49,16 +49,16 @@ const proTable = ref<ProTableInstance>();
// 表格配置项
const columns: ColumnProps[] = [
{
prop: "classname",
label: "班级名称"
prop: "louceng",
label: "楼层"
},
{
prop: "classId",
label: "班级ID"
prop: "qinshibianhao",
label: "寝室编号"
},
{
prop: "studentNum",
label: "学生人数"
prop: "qinshirenshu",
label: "寝室人数"
},
{
prop: "guiqinNum",
@@ -66,11 +66,11 @@ const columns: ColumnProps[] = [
},
{
prop: "noFaceNum",
label: "人脸无法识别人数"
label: "未归寝人数"
},
{ prop: "operation", label: "操作", width: 250, fixed: "right" }
];
const FaceConfirmRef = ref<InstanceType<typeof FaceConfirm> | null>(null);
const ReturnConfirmRef = ref<InstanceType<typeof ReturnConfirm> | null>(null);
/**
* 人工确认
* @param opt 操作类型
@@ -79,7 +79,7 @@ const FaceConfirmRef = ref<InstanceType<typeof FaceConfirm> | null>(null);
function onOpen(opt: FormOptEnum, record: {} | AttendanceStudentsReturn.studentsReturnInfo = {}) {
switch (opt) {
case FormOptEnum.VIEW:
FaceConfirmRef.value?.onOpen({ opt: opt, record: record, successful: RefreshTable });
ReturnConfirmRef.value?.onOpen({ opt: opt, record: record, successful: RefreshTable });
break;
}
}


Зареждане…
Отказ
Запис