From a33907b698d54eda47449f912070f482a6ae066f Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 26 九月 2025 15:37:59 +0800
Subject: [PATCH] 原材料订单拆分功能调整v2
---
src/views/CNAS/personnel/personnelInfo/tabs/training-record.vue | 268 ++++++++++++++++++++++-------------------------------
1 files changed, 110 insertions(+), 158 deletions(-)
diff --git a/src/views/CNAS/personnel/personnelInfo/tabs/training-record.vue b/src/views/CNAS/personnel/personnelInfo/tabs/training-record.vue
index 6ac536f..52d1c4b 100644
--- a/src/views/CNAS/personnel/personnelInfo/tabs/training-record.vue
+++ b/src/views/CNAS/personnel/personnelInfo/tabs/training-record.vue
@@ -2,82 +2,58 @@
<template>
<div>
<div class="flex_table">
- <div v-if="isDepartment" style="width: 50%">
-<!-- <TableCard :showTitle="false">-->
-<!-- <template v-slot:form>-->
-<!-- <div class="items_center">-->
-<!-- <span>濮撳悕</span>-->
-<!-- <el-input v-model="trainingPagination.userName" class="search" clearable placeholder="璇疯緭鍏�" size="small"></el-input>-->
-<!-- <el-button size="small" type="primary" @click="getPersonnelTraining(departId)">鏌ヨ</el-button>-->
-<!-- </div>-->
-<!-- <div>-->
-<!--<!– <el-button :loading="outLoading" size="small" type="primary" @click="exportExcel">瀵煎嚭</el-button>–>-->
-<!-- </div>-->
-<!-- </template>-->
-<!-- <template v-slot:table>-->
-<!-- <ZTTable-->
-<!-- :column="trainingColumn"-->
-<!-- :currentChange="currentChange"-->
-<!-- :height="'calc(100vh - 18em)'"-->
-<!-- :highlightCurrentRow="true"-->
-<!-- :table-data="trainingTableData"-->
-<!-- :table-loading="trainingLoading"-->
-<!-- style="padding: 0 15px;">-->
-<!-- </ZTTable>-->
-<!-- <div class="pagination">-->
-<!-- <div></div>-->
-<!-- <el-pagination-->
-<!-- :page-size="trainingPagination.size"-->
-<!-- :page-sizes="[10, 20, 30, 40]"-->
-<!-- :total="trainingPagination.total"-->
-<!-- layout="total, sizes, prev, pager, next, jumper"-->
-<!-- @current-change="handleYearCurrentTraining"-->
-<!-- @size-change="handleYearSizeChangeTraining">-->
-<!-- </el-pagination>-->
-<!-- </div>-->
-<!-- </template>-->
-<!-- </TableCard>-->
-<!-- </div>-->
-<!-- <div :style="`width: ${isDepartment ? '50%' : '100%'};`">-->
-<!-- <TableCard :showTitle="false">-->
-<!-- <template v-slot:form>-->
-<!-- <div class="items_center">-->
-<!-- <span>骞翠唤</span>-->
-<!-- <el-date-picker-->
-<!-- v-model="searchForm.trainingDate"-->
-<!-- clearable-->
-<!-- format="yyyy"-->
-<!-- placeholder="閫夋嫨骞�"-->
-<!-- size="small"-->
-<!-- style="margin: 0 10px"-->
-<!-- type="year"-->
-<!-- value-format="yyyy">-->
-<!-- </el-date-picker>-->
-<!-- <el-button size="small" type="primary" @click="queryPersonnelDetailsPage(currentChangeRow.userId)">鏌ヨ</el-button>-->
-<!-- <el-button size="small" type="primary" @click="openDownloadDia(currentChangeRow)">瀵煎嚭</el-button>-->
-<!-- </div>-->
-<!-- </template>-->
-<!-- <template v-slot:table>-->
-<!-- <ZTTable-->
-<!-- :column="trainingPersonColumn"-->
-<!-- :height="'calc(100vh - 18em)'"-->
-<!-- :table-data="trainingPersonTableData"-->
-<!-- :table-loading="trainingPersonLoading"-->
-<!-- style="padding: 0 15px;">-->
-<!-- </ZTTable>-->
-<!-- <div class="pagination">-->
-<!-- <div></div>-->
-<!-- <el-pagination-->
-<!-- :page-size="trainingPersonPagination.size"-->
-<!-- :page-sizes="[10, 20, 30, 40]"-->
-<!-- :total="trainingPersonPagination.total"-->
-<!-- layout="total, sizes, prev, pager, next, jumper"-->
-<!-- @current-change="handleYearCurrentPagination"-->
-<!-- @size-change="handleYearSizeChangePagination">-->
-<!-- </el-pagination>-->
-<!-- </div>-->
-<!-- </template>-->
-<!-- </TableCard>-->
+ <div v-if="isDepartment" style="width: 49%">
+ <div class="title">
+ <span style="font-weight: bold">骞村害璁″垝</span>
+ </div>
+ <div style="display: flex;justify-content: space-between">
+ <div style="display: flex;">
+ <div style="margin-bottom: 18px;margin-right: 10px;display: flex;align-items: center;line-height: 32px;">
+ <span style="width: 48px;font-size: 14px;font-weight: 700;color: #606266;">濮撳悕</span>
+ <el-input v-model="trainingPagination.userName" class="search"
+ @keyup.enter.native="getPersonnelTraining(departId)"
+ clearable placeholder="璇疯緭鍏�" size="small"></el-input>
+ </div>
+ <div style="line-height: 30px;">
+ <el-button size="small" type="primary" @click="getPersonnelTraining(departId)">鏌ヨ</el-button>
+ </div>
+ </div>
+ </div>
+ <lims-table :tableData="trainingTableData" :column="trainingColumn"
+ ref="trainingTableData"
+ :currentChange="currentChange" :highlightCurrentRow="true"
+ @pagination="pagination" :height="'calc(100vh - 22em)'"
+ :page="trainingPagination" :tableLoading="trainingLoading"></lims-table>
+ </div>
+ <div :style="`width: ${isDepartment ? '49%' : '100%'};`">
+ <div class="title">
+ <span style="font-weight: bold">骞村害璁″垝鏄庣粏</span>
+ </div>
+ <div style="display: flex;justify-content: space-between;">
+ <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
+ <el-form-item label="骞翠唤">
+ <el-date-picker
+ v-model="searchForm.trainingDate"
+ clearable
+ format="yyyy"
+ placeholder="閫夋嫨骞�"
+ @change="queryPersonnelDetailsPage(currentChangeRow.userId)"
+ size="small"
+ type="year"
+ value-format="yyyy">
+ </el-date-picker>
+ </el-form-item>
+ <el-form-item>
+ <el-button size="small" type="primary" @click="queryPersonnelDetailsPage(currentChangeRow.userId)">鏌ヨ</el-button>
+ </el-form-item>
+ </el-form>
+ <div>
+ <el-button size="small" type="primary" @click="openDownloadDia(currentChangeRow)">瀵煎嚭</el-button>
+ </div>
+ </div>
+ <lims-table :tableData="trainingPersonTableData" :column="trainingPersonColumn"
+ :height="'calc(100vh - 22em)'" @pagination="pagination1"
+ :page="trainingPersonPagination" :tableLoading="trainingPersonLoading"></lims-table>
</div>
</div>
</div>
@@ -85,8 +61,15 @@
<script>
+import limsTable from "@/components/Table/lims-table.vue";
+import {
+ exportTrainingRecord,
+ queryPersonnelDetails,
+ trainingSelectTrainingRecord
+} from "@/api/cnas/personal/personTrainingRecord";
+
export default {
- components: {},
+ components: {limsTable},
props: {
departId: {
type: Number,
@@ -162,9 +145,6 @@
label: '鍩硅鍐呭',
prop: 'trainingContent'
}, {
- label: '鍩硅璇炬椂',
- prop: 'educationBackground'
- }, {
label: '璇炬椂',
prop: 'classHour'
}, {
@@ -189,22 +169,6 @@
this.getPersonnelTraining(this.departId);
},
methods: {
- // exportExcel() {
- // this.outLoading = true;
- // const name = this.isDepartment ? 'departmentId' : 'userId';
- // this.$axios.get(this.$api.personal.personTrackRecordExport + `&${name}=` + this.departId, { responseType: 'blob' }).then(res => {
- // this.outLoading = false;
- // this.$message.success('瀵煎嚭鎴愬姛');
- // const blob = new Blob([res], { type: 'application/octet-stream' });
- // const url = URL.createObjectURL(blob);
- // const link = document.createElement('a');
- // link.href = url;
- // link.download = '鍩硅璁板綍.xlsx';
- // link.click();
- // }).catch(err => {
- // this.outLoading = false;
- // })
- // },
// 鏌ヨ
refreshTable() {
this.getPersonnelTraining(this.departId);
@@ -215,48 +179,31 @@
if (!date) {
date = this.$moment().format('YYYY')
}
- console.log('date----', date);
- this.$axios.get( this.$api.personnel.exportTrainingRecord+ '?userId=' + row.userId + '&trainingDate=' + date,{responseType: "blob"}).then(res => {
+ exportTrainingRecord({userId: row.userId, trainingDate: date}).then(res => {
this.outLoading = false
const blob = new Blob([res],{ type: 'application/msword' });
- //灏咮lob 瀵硅薄杞崲鎴愬瓧绗︿覆
- let reader = new FileReader();
- reader.readAsText(blob, 'utf-8');
- reader.onload = () => {
- try {
- let result = JSON.parse(reader.result);
- if (result.message) {
- this.$message.error(result.message);
- } else {
- const url = URL.createObjectURL(blob);
- const link = document.createElement('a');
- link.href = url;
- link.download = '鍩硅璁板綍瀵煎嚭' + '.docx';
- link.click();
- this.$message.success('瀵煎嚭鎴愬姛')
- }
- } catch (err) {
- console.log(err);
- const url = URL.createObjectURL(blob);
- const link = document.createElement('a');
- link.href = url;
- link.download = '鍩硅璁板綍瀵煎嚭' + '.docx';
- link.click();
- this.$message.success('瀵煎嚭鎴愬姛')
- }
- }
+ this.$download.saveAs(blob, '鍩硅璁板綍瀵煎嚭.docx');
})
},
// 鑾峰彇瀹為獙瀹�-鍩硅璁″垝鍒楄〃淇℃伅
getPersonnelTraining(departId) {
- // const name = this.isDepartment ? 'departmentId' : 'userId';
- this.$axios.get(`${this.$api.personnel.trainingSelectTrainingRecord}?departmentId=${departId}&size=${this.trainingPagination.size}¤t=${this.trainingPagination.current}&userName=${this.trainingPagination.userName}`).then(res => {
+ const params = {
+ departmentId: departId,
+ size: this.trainingPagination.size,
+ current: this.trainingPagination.current,
+ userName: this.trainingPagination.userName,
+ }
+ this.trainingLoading = true
+ trainingSelectTrainingRecord(params).then(res => {
+ this.trainingLoading = false
this.trainingTableData = res.data.records;
this.trainingPagination.total = res.data.total;
if (this.trainingTableData.length > 0) {
- this.currentChange(this.trainingTableData[0]);
+ this.$refs.trainingTableData.setCurrentRow(this.trainingTableData[0])
}
- });
+ }).catch(err => {
+ this.trainingLoading = false
+ })
},
// 鑾峰彇涓汉-鍩硅璁″垝鍒楄〃淇℃伅
currentChange(row) {
@@ -270,29 +217,31 @@
if (this.searchForm.trainingDate === null) {
this.searchForm.trainingDate = ''
}
- this.$axios.get(`${this.$api.personnel.queryPersonnelDetails}?userId=${userId}&size=${this.trainingPersonPagination.size}¤t=${this.trainingPersonPagination.current}&trainingDate=${this.searchForm.trainingDate}`).then(res => {
+ const params = {
+ userId: userId,
+ size: this.trainingPersonPagination.size,
+ current: this.trainingPersonPagination.current,
+ trainingDate: this.searchForm.trainingDate,
+ }
+ this.trainingPersonLoading = true
+ queryPersonnelDetails(params).then(res => {
+ this.trainingPersonLoading = false
this.trainingPersonTableData = res.data.records;
this.trainingPersonPagination.total = res.data.total;
- });
+ }).catch(err => {
+ this.trainingPersonLoading = false
+ })
},
// 鍒嗛〉
- handleYearCurrentTraining(page) {
- this.trainingPagination.curent = page;
- this.getPersonnelTraining(this.departId);
- },
- handleYearSizeChangeTraining(size) {
- this.trainingPagination.size = size;
+ pagination(page) {
+ this.trainingPagination.size = page.limit;
this.getPersonnelTraining(this.departId);
},
// 鍒嗛〉
- handleYearCurrentPagination(page) {
- this.trainingPersonPagination.curent = page;
+ pagination1(page) {
+ this.trainingPersonPagination.size = page.limit;
this.queryPersonnelDetailsPage(this.currentChangeRow.userId);
},
- handleYearSizeChangePagination(size) {
- this.trainingPersonPagination.size = size;
- this.queryPersonnelDetailsPage(this.currentChangeRow.userId);
- }
},
watch: {
departId: {
@@ -308,29 +257,32 @@
};
</script>
<style scoped>
->>> .el-form-item {
- margin-bottom: 13px;
-}
-
.flex_table {
display: flex;
flex-direction: row;
justify-content: space-between;
}
-.pagination {
- display: flex;
- justify-content: space-between;
- margin-top: 10px;
-}
-
-.items_center {
- display: flex;
- align-items: center;
-}
-
.search {
width: 150px;
- padding: 0 6px;
+}
+.title {
+ position: relative;
+ font-size: 16px;
+ color: #333;
+ font-weight: 400;
+ padding-left: 10px;
+ margin-bottom: 10px;
+}
+
+.title::before {
+ position: absolute;
+ left: 0;
+ top: 4px;
+ content: '';
+ width: 4px;
+ height: 16px;
+ background-color: #3A7BFA;
+ border-radius: 2px;
}
</style>
--
Gitblit v1.9.3