From 96e9d1a0aceede41e572cacc4bdb56a2b8b59ff7 Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期五, 13 九月 2024 18:13:39 +0800 Subject: [PATCH] 作业统计 完成 --- src/views/ecg/jobrecord/JobStatistic.vue | 213 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/api/ecg/jobrecord/index.ts | 16 +++ 2 files changed, 228 insertions(+), 1 deletions(-) diff --git a/src/api/ecg/jobrecord/index.ts b/src/api/ecg/jobrecord/index.ts index fe92461..740e068 100644 --- a/src/api/ecg/jobrecord/index.ts +++ b/src/api/ecg/jobrecord/index.ts @@ -14,6 +14,15 @@ remark: string // 澶囨敞 } +export interface JobStatisticVO { + jobType: number + docId: number + docName: string + jobCount: number + year: number + month: number +} + // 宸ヤ綔璁板綍 API export const JobRecordApi = { // 鏌ヨ宸ヤ綔璁板綍鍒嗛〉 @@ -49,5 +58,10 @@ // 瀵煎嚭宸ヤ綔璁板綍 Excel exportJobRecord: async (params) => { return await request.download({ url: `/ecg/job-record/export-excel`, params }) - } + }, + + // 浣滀笟缁熻 + jobStatistic: async (params) => { + return await request.get({ url: `/ecg/job-record/job-statistic`, params }) + }, } \ No newline at end of file diff --git a/src/views/ecg/jobrecord/JobStatistic.vue b/src/views/ecg/jobrecord/JobStatistic.vue new file mode 100644 index 0000000..c5f7af4 --- /dev/null +++ b/src/views/ecg/jobrecord/JobStatistic.vue @@ -0,0 +1,213 @@ +<template> + <ContentWrap> + <!-- 鎼滅储宸ヤ綔鏍� --> + <el-form + class="-mb-15px" + :model="queryParams" + ref="queryFormRef" + :rules="formRules" + :inline="true" + label-width="80px" + > + <el-form-item label="浣滀笟绫诲瀷" prop="jobType"> + <el-select + v-model="queryParams.jobType" + placeholder="璇烽�夋嫨浣滀笟绫诲瀷" + clearable + class="!w-240px" + > + <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" /> + </el-select> + </el-form-item> + <el-form-item label="鍖荤敓缂栧彿" prop="docId"> + <el-input + v-model="queryParams.docId" + placeholder="璇疯緭鍏ュ尰鐢熺紪鍙�" + clearable + @keyup.enter="handleQuery" + class="!w-240px" + /> + </el-form-item> + <el-form-item label="鍖荤敓鍚嶇О" prop="docName"> + <el-input + v-model="queryParams.docName" + placeholder="璇疯緭鍏ュ尰鐢熷悕绉�" + clearable + @keyup.enter="handleQuery" + class="!w-240px" + /> + </el-form-item> + <el-form-item label="浣滀笟鏃堕棿" prop="jobTime"> + <el-date-picker + v-model="queryParams.jobTime" + value-format="YYYY-MM-DD HH:mm:ss" + type="daterange" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" + class="!w-220px" + /> + </el-form-item> + <div> + <el-form-item> + <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 鎼滅储</el-button> + <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 閲嶇疆</el-button> + <el-button + type="primary" + plain + @click="openForm('create')" + v-hasPermi="['ecg:job-record:create']" + > + <Icon icon="ep:plus" class="mr-5px" /> 鏂板 + </el-button> + <el-button + type="success" + plain + @click="handleExport" + :loading="exportLoading" + v-hasPermi="['ecg:job-record:export']" + > + <Icon icon="ep:download" class="mr-5px" /> 瀵煎嚭 + </el-button> + </el-form-item> + </div> + </el-form> + </ContentWrap> + + <!-- 鍒楄〃 --> + <ContentWrap> + <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"> +<!-- <el-table-column label="id" align="center" prop="id" />--> + <el-table-column label="骞村害" align="center" prop="year" /> + <el-table-column label="鏈堜唤" align="center" prop="month" /> + <el-table-column label="鍖荤敓缂栧彿" align="center" prop="docId" /> + <el-table-column label="鍖荤敓鍚嶇О" align="center" prop="docName" /> + <el-table-column label="浣滀笟绫诲瀷" align="center" prop="jobType" /> + <el-table-column label="鏁伴噺" align="center" prop="jobCount" /> +<!-- + <el-table-column label="鎿嶄綔" align="center" min-width="120px"> + <template #default="scope"> + <el-button + link + type="primary" + @click="openForm('update', scope.row.id)" + v-hasPermi="['ecg:job-record:update']" + > + 缂栬緫 + </el-button> + <el-button + link + type="danger" + @click="handleDelete(scope.row.id)" + v-hasPermi="['ecg:job-record:delete']" + > + 鍒犻櫎 + </el-button> + </template> + </el-table-column> +--> + </el-table> + </ContentWrap> + +</template> + +<script setup lang="ts"> +import { dateFormatter } from '@/utils/formatTime' +import download from '@/utils/download' +import {JobRecordApi, JobRecordVO, JobStatisticVO} from '@/api/ecg/jobrecord' +import JobRecordForm from './JobRecordForm.vue' + +/** 宸ヤ綔璁板綍 鍒楄〃 */ +defineOptions({ name: 'JobRecord' }) + +const message = useMessage() // 娑堟伅寮圭獥 +const { t } = useI18n() // 鍥介檯鍖� + +const loading = ref(true) // 鍒楄〃鐨勫姞杞戒腑 +const list = ref<JobStatisticVO[]>([]) // 鍒楄〃鐨勬暟鎹� +const queryParams = reactive({ + pageNo: undefined, + pageSize: undefined, + jobType: undefined, + docId: undefined, + docName: undefined, + devId: undefined, + patId: undefined, + patName: undefined, + jobTime: [], + summary: undefined, + remark: undefined, + createTime: [] +}) +const formRules = reactive({ + jobTime: [{ required: true, message: '浣滀笟鏃堕棿涓嶈兘涓虹┖', trigger: 'change' }], +}) +const queryFormRef = ref() // 鎼滅储鐨勮〃鍗� +const exportLoading = ref(false) // 瀵煎嚭鐨勫姞杞戒腑 + +/** 鏌ヨ鍒楄〃 */ +const getList = async () => { + loading.value = true + try { + const data = await JobRecordApi.jobStatistic(queryParams) + console.info(data) + list.value = data + } finally { + loading.value = false + } +} + +/** 鎼滅储鎸夐挳鎿嶄綔 */ +const handleQuery = async () => { + // 鏍¢獙琛ㄥ崟 + await queryFormRef.value.validate() + + queryParams.pageNo = 1 + getList() +} + +/** 閲嶇疆鎸夐挳鎿嶄綔 */ +const resetQuery = () => { + queryFormRef.value.resetFields() + handleQuery() +} + +/** 娣诲姞/淇敼鎿嶄綔 */ +const formRef = ref() +const openForm = (type: string, id?: number) => { + formRef.value.open(type, id) +} + +/** 鍒犻櫎鎸夐挳鎿嶄綔 */ +const handleDelete = async (id: number) => { + try { + // 鍒犻櫎鐨勪簩娆$‘璁� + await message.delConfirm() + // 鍙戣捣鍒犻櫎 + await JobRecordApi.deleteJobRecord(id) + message.success(t('common.delSuccess')) + // 鍒锋柊鍒楄〃 + await getList() + } catch {} +} + +/** 瀵煎嚭鎸夐挳鎿嶄綔 */ +const handleExport = async () => { + try { + // 瀵煎嚭鐨勪簩娆$‘璁� + await message.exportConfirm() + // 鍙戣捣瀵煎嚭 + exportLoading.value = true + const data = await JobRecordApi.exportJobRecord(queryParams) + download.excel(data, '宸ヤ綔璁板綍.xls') + } catch { + } finally { + exportLoading.value = false + } +} + +/** 鍒濆鍖� **/ +onMounted(() => { + getList() +}) +</script> \ No newline at end of file -- Gitblit v1.9.3