|
|
@@ -42,7 +42,8 @@
|
|
|
<el-button type="primary" :icon="Search">查改</el-button>
|
|
|
<el-button type="primary" @click="handlePrint">员工计件明细</el-button>
|
|
|
<div style="margin-left: auto;">
|
|
|
- <el-button type="primary" :icon="Download" @click="exportExcel">导出到Excel</el-button>
|
|
|
+ <el-button type="primary" :icon="Download" @click="exportExcel">导出到Excel(汇总)</el-button>
|
|
|
+ <el-button type="primary" :icon="Download" @click="exportExcel2">导出到Excel(明细)</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
<!-- 数据展示 -->
|
|
|
@@ -53,14 +54,15 @@
|
|
|
:header-cell-style="{ padding: '0px' }"
|
|
|
@row-click="ontable" @row-dblclick="doubleClick">
|
|
|
<el-table-column type="selection" width="40" />
|
|
|
- <el-table-column align="left" sortable label="员工编号" prop="bh" width="105"/>
|
|
|
- <el-table-column align="left" sortable label="员工姓名" prop="员工姓名" width="105"/>
|
|
|
- <el-table-column align="left" sortable label="日期" prop="sczl_rq" width="105"/>
|
|
|
- <el-table-column align="left" sortable label="计件工资" prop="计件工资" width="105"/>
|
|
|
- <el-table-column align="left" sortable label="加班工资" prop="加班工资" width="105"/>
|
|
|
- <el-table-column align="left" sortable label="计时时数" prop="计时时数" width="105"/>
|
|
|
- <el-table-column align="left" sortable label="计时工资" prop="计时工资" width="105"/>
|
|
|
- <el-table-column align="left" sortable label="日工资合计" prop="日工资合计" width="120"/>
|
|
|
+ <el-table-column
|
|
|
+ v-for="column in tableCols1"
|
|
|
+ :key="column.prop"
|
|
|
+ :prop="column.prop"
|
|
|
+ :label="column.label"
|
|
|
+ :width="column.width"
|
|
|
+ show-overflow-tooltip="true"
|
|
|
+ sortable
|
|
|
+ />
|
|
|
</el-table>
|
|
|
<!-- 分页 -->
|
|
|
<!-- <div class="gva-pagination">
|
|
|
@@ -73,7 +75,7 @@
|
|
|
|
|
|
<div class="gva-table-box">
|
|
|
<!-- 数据展示 -->
|
|
|
- <el-table ref="multipleTable" style="width: 100%;height: 40vh;" tooltip-effect="dark" :data="tableData2" row-key="ID"
|
|
|
+ <el-table ref="multipleTable2" style="width: 100%;height: 40vh;" tooltip-effect="dark" :data="tableData2" row-key="ID"
|
|
|
highlight-current-row="true" border
|
|
|
:row-style="{ height: '20px' }"
|
|
|
:cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
|
|
|
@@ -82,28 +84,15 @@
|
|
|
:show-overflow-tooltip="true"
|
|
|
@row-dblclick="doubleClick">
|
|
|
<el-table-column type="selection" width="40" />
|
|
|
- <el-table-column align="left" sortable label="日期" prop="sczl_rq" width="105"/>
|
|
|
- <el-table-column align="left" sortable label="工单编号" prop="sczl_gdbh" width="105"/>
|
|
|
- <el-table-column align="left" sortable label="产品名称" prop="Gd_cpmc" width="120"/>
|
|
|
- <el-table-column align="left" sortable label="印件及工序" prop="sczl_type" width="120"/>
|
|
|
- <el-table-column align="left" sortable label="机台编号" prop="sczl_jtbh" width="105"/>
|
|
|
- <el-table-column align="left" sortable label="班组车头产量" prop="班组车头产量" width="135"/>
|
|
|
- <el-table-column align="left" sortable label="班组换算产量" prop="班组换算产量" width="135"/>
|
|
|
- <el-table-column align="left" sortable label="工序难度系数" prop="工序难度系数" width="135"/>
|
|
|
- <el-table-column align="left" sortable label="个人计件工资" prop="个人计件工资" width="135"/>
|
|
|
- <el-table-column align="left" sortable label="个人加班工资" prop="个人加班工资" width="135"/>
|
|
|
- <el-table-column align="left" sortable label="装版工时" prop="装版工时" width="105"/>
|
|
|
- <el-table-column align="left" sortable label="保养工时" prop="保养工时" width="105"/>
|
|
|
- <el-table-column align="left" sortable label="打样工时" prop="打样工时" width="105"/>
|
|
|
- <el-table-column align="left" sortable label="异常停机工时" prop="异常停机工时" width="135"/>
|
|
|
- <el-table-column align="left" sortable label="车头产量占用机时" prop="车头产量占用机时" width="165"/>
|
|
|
- <el-table-column align="left" sortable label="日定额" prop="日定额" width="91"/>
|
|
|
- <el-table-column align="left" sortable label="达标定额" prop="达标定额" width="105"/>
|
|
|
- <el-table-column align="left" sortable label="千件工价" prop="千件工价" width="105"/>
|
|
|
- <el-table-column align="left" sortable label="补产标准" prop="补产标准" width="105"/>
|
|
|
- <el-table-column align="left" sortable label="员工编号" prop="bh" width="105"/>
|
|
|
- <el-table-column align="left" sortable label="姓名" prop="xm" width="105"/>
|
|
|
- <el-table-column align="left" sortable label="比例" prop="Rate" width="78"/>
|
|
|
+ <el-table-column
|
|
|
+ v-for="column in tableCols2"
|
|
|
+ :key="column.prop"
|
|
|
+ :prop="column.prop"
|
|
|
+ :label="column.label"
|
|
|
+ :width="column.width"
|
|
|
+ show-overflow-tooltip="true"
|
|
|
+ sortable
|
|
|
+ />
|
|
|
</el-table>
|
|
|
<!-- 分页 -->
|
|
|
<!-- <div class="gva-pagination">
|
|
|
@@ -366,16 +355,52 @@ import { ref, reactive, onMounted, onBeforeMount } from 'vue'
|
|
|
import { getPackingSideTable, getPackingTable } from '@/api/mes_api_gty/myapi'
|
|
|
import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
|
|
|
import Ygjjmx from './printYgjjmx.vue'
|
|
|
+import * as XLSX from "xlsx";
|
|
|
import { useUserStore } from '@/pinia/modules/user'
|
|
|
const userStore = useUserStore()
|
|
|
const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
|
|
|
defineOptions({
|
|
|
name: '06-packingDocuments'
|
|
|
})
|
|
|
-
|
|
|
+const tableCols1 = [
|
|
|
+ { label: '员工编号', prop: 'bh', width: '105' },
|
|
|
+ { label: '员工姓名', prop: '员工姓名', width: '105' },
|
|
|
+ { label: '日期', prop: 'sczl_rq', width: '120' },
|
|
|
+ { label: '计件工资', prop: '计件工资', width: '105' },
|
|
|
+ { label: '加班工资', prop: '加班工资', width: '105' },
|
|
|
+ { label: '计时时数', prop: '计时时数', width: '105' },
|
|
|
+ { label: '计时工资', prop: '计时工资', width: '135' },
|
|
|
+ { label: '日工资合计', prop: '日工资合计', width: '135' },
|
|
|
+]
|
|
|
+const tableCols2 = [
|
|
|
+ { label: '日期', prop: 'sczl_rq', width: '105' },
|
|
|
+ { label: '工单编号', prop: 'sczl_gdbh', width: '105' },
|
|
|
+ { label: '产品名称', prop: 'Gd_cpmc', width: '120' },
|
|
|
+ { label: '印件及工序', prop: 'sczl_type', width: '105' },
|
|
|
+ { label: '机台编号', prop: 'sczl_jtbh', width: '105' },
|
|
|
+ { label: '班组车头产量', prop: '班组车头产量', width: '105' },
|
|
|
+ { label: '班组换算产量', prop: '班组换算产量', width: '135' },
|
|
|
+ { label: '工序难度系数', prop: '工序难度系数', width: '135' },
|
|
|
+ { label: '个人计件工资', prop: '个人计件工资', width: '105' },
|
|
|
+ { label: '个人加班工资', prop: '个人加班工资', width: '105' },
|
|
|
+ { label: '装版工时', prop: '装版工时', width: '120' },
|
|
|
+ { label: '保养工时', prop: '保养工时', width: '105' },
|
|
|
+ { label: '打样工时', prop: '打样工时', width: '105' },
|
|
|
+ { label: '异常停机工时', prop: '异常停机工时', width: '105' },
|
|
|
+ { label: '车头产量占用机时', prop: '车头产量占用机时', width: '135' },
|
|
|
+ { label: '日定额', prop: '日定额', width: '135' },
|
|
|
+ { label: '达标定额', prop: '达标定额', width: '105' },
|
|
|
+ { label: '千件工价', prop: '千件工价', width: '105' },
|
|
|
+ { label: '补产标准', prop: '补产标准', width: '120' },
|
|
|
+ { label: '员工编号', prop: 'bh', width: '105' },
|
|
|
+ { label: '姓名', prop: 'xm', width: '105' },
|
|
|
+ { label: '比例', prop: 'Rate', width: '105' },
|
|
|
+ { label: '班组换算产量', prop: '班组换算产量', width: '135' },
|
|
|
+ { label: '工序难度系数', prop: '工序难度系数', width: '135' },
|
|
|
+]
|
|
|
// 侧边栏数据请求
|
|
|
const treeData = reactive([]);
|
|
|
-
|
|
|
+const multipleTable=ref()
|
|
|
const getTabdata = async () => {
|
|
|
//接口调用函数
|
|
|
const response = await dailygetTab();
|
|
|
@@ -730,11 +755,30 @@ function doubleClick(row, column, event) {
|
|
|
// dialogFormVisible.value = true
|
|
|
}
|
|
|
|
|
|
-// 导出excel
|
|
|
-function exportExcel() {
|
|
|
- console.log('导出到excel');
|
|
|
-}
|
|
|
+// 导出excel
|
|
|
+
|
|
|
+function exportExcel() {
|
|
|
|
|
|
+ exportExcelFile(tableData,tableCols1)
|
|
|
+};
|
|
|
+function exportExcel2() {
|
|
|
+
|
|
|
+ exportExcelFile(tableData2,tableCols2)
|
|
|
+};
|
|
|
+const exportExcelFile = (tableData, tableCols) => {
|
|
|
+ const data = tableData.map(row => {
|
|
|
+ const rowData = {};
|
|
|
+ tableCols.forEach(column => {
|
|
|
+ rowData[column.label] = row[column.prop];
|
|
|
+ });
|
|
|
+ return rowData;
|
|
|
+ });
|
|
|
+
|
|
|
+ const worksheet = XLSX.utils.json_to_sheet(data);
|
|
|
+ const workbook = XLSX.utils.book_new();
|
|
|
+ XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
|
|
|
+ XLSX.writeFile(workbook, 'exported_table.xlsx');
|
|
|
+};
|
|
|
const currentRow = ref()
|
|
|
const dialogYgjjmx = ref(false)
|
|
|
function handlePrint() {
|