wangzhibo
2026-09-18 42cdb857764765ed2e8ae8c549a90ae88d3643d0
添加了分拣员日统计页面
3个文件已修改
1个文件已添加
259 ■■■■■ 已修改文件
src/modules/report/locales/en.json 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/modules/report/locales/zh-cn.json 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/modules/report/locales/zh-tw.json 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/modules/report/views/dailysorter.vue 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/modules/report/locales/en.json
@@ -54,6 +54,27 @@
"急加速次数":"急加速次数",
"急转弯次数":"急转弯次数",
"非工作时段异动告警次数":"非工作时段异动告警次数",
"创建时间":"创建时间"
"创建时间":"创建时间",
"姓名":"Name",
"身份证号":"ID Card",
"工作站点":"Work Site",
"签到时间":"Check-in Time",
"签退时间":"Check-out Time",
"工作时长":"Work Hours",
"考勤状态":"Attendance Status",
"GPS数据点数量":"GPS Point Count",
"工作轨迹里程":"Track Distance (KM)",
"移动时长":"Moving Minutes",
"回收订单数":"Recycle Orders",
"完成订单数":"Completed Orders",
"预约上门订单数":"Appointment Orders",
"发放碳积分":"Carbon Points",
"健康数据数量":"Health Records",
"健康异常数量":"Abnormal Health Count",
"健康告警总数":"Health Alarms",
"一般告警次数":"General Alarms",
"中等告警次数":"Medium Alarms",
"严重告警次数":"Serious Alarms",
"未处理告警次数":"Unhandled Alarms"
}
src/modules/report/locales/zh-cn.json
@@ -54,6 +54,27 @@
"急加速次数":"急加速次数",
"急转弯次数":"急转弯次数",
"非工作时段异动告警次数":"非工作时段异动告警次数",
"创建时间":"创建时间"
"创建时间":"创建时间",
"姓名":"姓名",
"身份证号":"身份证号",
"工作站点":"工作站点",
"签到时间":"签到时间",
"签退时间":"签退时间",
"工作时长":"工作时长(小时)",
"考勤状态":"考勤状态",
"GPS数据点数量":"GPS数据点数量",
"工作轨迹里程":"工作轨迹里程(KM)",
"移动时长":"移动时长(分)",
"回收订单数":"回收订单数",
"完成订单数":"完成订单数",
"预约上门订单数":"预约上门订单数",
"发放碳积分":"发放碳积分",
"健康数据数量":"健康数据数量",
"健康异常数量":"健康异常数量",
"健康告警总数":"健康告警总数",
"一般告警次数":"一般告警次数",
"中等告警次数":"中等告警次数",
"严重告警次数":"严重告警次数",
"未处理告警次数":"未处理告警次数"
}
src/modules/report/locales/zh-tw.json
@@ -54,6 +54,27 @@
"急加速次数":"急加速次数",
"急转弯次数":"急转弯次数",
"非工作时段异动告警次数":"非工作时段异动告警次数",
"创建时间":"创建时间"
"创建时间":"创建时间",
"姓名":"姓名",
"身份证号":"身份證號",
"工作站点":"工作站點",
"签到时间":"簽到時間",
"签退时间":"簽退時間",
"工作时长":"工作時長(小時)",
"考勤状态":"考勤狀態",
"GPS数据点数量":"GPS數據點數量",
"工作轨迹里程":"工作軌跡里程(KM)",
"移动时长":"移動時長(分)",
"回收订单数":"回收訂單數",
"完成订单数":"完成訂單數",
"预约上门订单数":"預約上門訂單數",
"发放碳积分":"發放碳積分",
"健康数据数量":"健康數據數量",
"健康异常数量":"健康異常數量",
"健康告警总数":"健康告警總數",
"一般告警次数":"一般告警次數",
"中等告警次数":"中等告警次數",
"严重告警次数":"嚴重告警次數",
"未处理告警次数":"未處理告警次數"
}
src/modules/report/views/dailysorter.vue
New file
@@ -0,0 +1,190 @@
<template>
    <cl-crud ref="Crud">
        <cl-row>
            <!-- 刷新按钮 -->
            <cl-refresh-btn />
            <!-- 新增按钮 -->
            <!--cl-add-btn /-->
            <!-- 删除按钮 -->
            <!--cl-multi-delete-btn /-->
            <cl-flex1 />
            <!-- 条件搜索 -->
            <cl-search ref="Search" />
        </cl-row>
        <cl-row>
            <!-- 数据表格 -->
            <cl-table ref="Table" />
        </cl-row>
        <cl-row>
            <cl-flex1 />
            <!-- 分页控件 -->
            <cl-pagination />
        </cl-row>
        <!-- 新增、编辑 -->
        <!--cl-upsert ref="Upsert" /-->
    </cl-crud>
</template>
<script lang="ts" setup>
defineOptions({
    name: "report-dailysorter"
});
import { useCrud, useTable, useSearch } from "@cool-vue/crud";
import { useCool } from "/@/cool";
import { useI18n } from "vue-i18n";
const { service } = useCool();
const { t } = useI18n();
// cl-table
const Table = useTable({
    columns: [
        { type: "selection" },
        {
            label: t("日期"),
            prop: "date",
            minWidth: 140,
            sortable: "custom",
            component: { name: "cl-date-text", props: { format: "YYYY-MM-DD" } }
        },
        { label: t("姓名"), prop: "businessName", minWidth: 120 },
        { label: t("身份证号"), prop: "businessId", minWidth: 180 },
        { label: t("所属部门"), prop: "departmentName", minWidth: 120 },
        { label: t("工作站点"), prop: "workSiteName", minWidth: 140 },
        {
            label: t("签到时间"),
            prop: "checkInTime",
            minWidth: 170,
            sortable: "custom",
            component: { name: "cl-date-text" }
        },
        {
            label: t("签退时间"),
            prop: "checkOutTime",
            minWidth: 170,
            sortable: "custom",
            component: { name: "cl-date-text" }
        },
        {
            label: t("工作时长"),
            prop: "workHours",
            minWidth: 130,
            sortable: "custom"
        },
        { label: t("考勤状态"), prop: "attendanceStatus", minWidth: 120 },
        {
            label: t("GPS数据点数量"),
            prop: "gpsPointCount",
            minWidth: 140,
            sortable: "custom"
        },
        {
            label: t("工作轨迹里程"),
            prop: "totalKm",
            minWidth: 140,
            sortable: "custom"
        },
        {
            label: t("移动时长"),
            prop: "minutesMoving",
            minWidth: 130,
            sortable: "custom"
        },
        {
            label: t("回收订单数"),
            prop: "orderCount",
            minWidth: 130,
            sortable: "custom"
        },
        {
            label: t("完成订单数"),
            prop: "completedOrderCount",
            minWidth: 130,
            sortable: "custom"
        },
        {
            label: t("预约上门订单数"),
            prop: "appointmentOrderCount",
            minWidth: 150,
            sortable: "custom"
        },
        {
            label: t("发放碳积分"),
            prop: "totalCarbonPoint",
            minWidth: 130,
            sortable: "custom"
        },
        {
            label: t("健康数据数量"),
            prop: "healthDataCount",
            minWidth: 140,
            sortable: "custom"
        },
        {
            label: t("健康异常数量"),
            prop: "healthAbnormalCount",
            minWidth: 140,
            sortable: "custom"
        },
        {
            label: t("健康告警总数"),
            prop: "alarmCount",
            minWidth: 140,
            sortable: "custom"
        },
        {
            label: t("一般告警次数"),
            prop: "generalAlarmCount",
            minWidth: 140,
            sortable: "custom"
        },
        {
            label: t("中等告警次数"),
            prop: "mediumAlarmCount",
            minWidth: 140,
            sortable: "custom"
        },
        {
            label: t("严重告警次数"),
            prop: "seriousAlarmCount",
            minWidth: 140,
            sortable: "custom"
        },
        {
            label: t("未处理告警次数"),
            prop: "unhandledAlarmCount",
            minWidth: 150,
            sortable: "custom"
        },
        {
            label: t("创建时间"),
            prop: "createTime",
            minWidth: 170,
            sortable: "desc",
            component: { name: "cl-date-text" }
        }
    ]
});
// cl-search
const Search = useSearch();
// cl-crud
const Crud = useCrud(
    {
        service: service.report.dailysorter
    },
    (app) => {
        app.refresh();
    }
);
// 刷新
function refresh(params?: any) {
    Crud.value?.refresh(params);
}
</script>