From c5a7bf1f2d6d1f5d0a8d4739dc28f579672160b3 Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期三, 08 三月 2023 16:07:51 +0800
Subject: [PATCH] 1.流转标签新增60*40尺寸
---
src/views/bbgl/rygz.vue | 621 +++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 458 insertions(+), 163 deletions(-)
diff --git a/src/views/bbgl/rygz.vue b/src/views/bbgl/rygz.vue
index d14b06b..1575232 100644
--- a/src/views/bbgl/rygz.vue
+++ b/src/views/bbgl/rygz.vue
@@ -1,20 +1,46 @@
<template>
<div>
<div class="body" :style="{height:mainHeight+'px'}">
- <div class="bodyTopButtonGroup">
- <el-button type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+
+ <div
+ style="color: red;margin: 10px 5px 0 0;"
+ >褰撳墠鎶ヨ〃鍙粺璁¤嚜鍒朵欢宸ュ簭
+ </div>
+
+ <!-- <div class="topRight" style="display: flex;align-items: center">-->
+ <!-- <!– <div style="font-size: 14px;margin-right: 15px;color: #a7a7a7">鍓旈櫎宸ュ簭</div>–>-->
+ <!-- <el-select-->
+ <!-- v-model="form.rejectstepcode"-->
+ <!-- style="width: 170px;"-->
+ <!-- multiple-->
+ <!-- placeholder="璇烽�夋嫨鍓旈櫎宸ュ簭"-->
+ <!-- collapse-tags-->
+ <!-- filterable-->
+ <!-- clearable-->
+ <!-- @change="getPeopleSalaryReportSearch"-->
+ <!-- >-->
+ <!-- <el-option-->
+ <!-- v-for="item in StepSelectArr"-->
+ <!-- :key="item.stepcode"-->
+ <!-- :label="item.stepname"-->
+ <!-- :value="item.stepcode"-->
+ <!-- />-->
+ <!-- </el-select>-->
+ <!-- </div>-->
</div>
<div class="bodyTopFormGroup">
<el-form
ref="form"
:model="form"
- label-width="80px"
+ label-width="100px"
inline
- style="display: flex;justify-content: space-between"
+ style="display: flex; "
>
<div class="elForm">
- <el-form-item label="宸ュ崟缂栧彿" style=" display: flex;">
+ <el-form-item label="宸ュ崟缂栧彿" style="display: flex;">
<el-input v-model="form.wocode" placeholder="璇疯緭鍏�" style="width: 200px" />
</el-form-item>
<el-form-item label="浜у搧缂栫爜" style=" display: flex;">
@@ -26,7 +52,7 @@
<el-form-item label="瑙勬牸鍨嬪彿" style=" display: flex;">
<el-input v-model="form.partspec" style="width: 200px" placeholder="璇疯緭鍏�" />
</el-form-item>
- <el-form-item label="宸ュ簭鍚嶇О" style=" display: flex;">
+ <el-form-item v-show="isExpandForm" label="宸ュ簭鍚嶇О" style=" display: flex;">
<el-input v-model="form.stepname" style="width: 200px" placeholder="璇疯緭鍏�" />
</el-form-item>
<el-form-item v-show="isExpandForm" label="鐢熶骇鐝粍" style=" display: flex;">
@@ -59,164 +85,344 @@
</el-form-item>
</div>
- <div class="bodySearchReset">
- <el-button type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
- <el-button type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
</div>
</el-form>
- </div>
-
- <div
- class="bodyTopFormExpand"
- @click="isExpandForm=!isExpandForm"
- >
- <i
- :class="!isExpandForm?'el-icon-arrow-down':'el-icon-arrow-up'"
- :style="{color:'#42B983'}"
- /></div>
-
- <div class="elTableDiv" style="margin-top: 0">
- <el-table
- ref="tableDataRef"
- class="tableFixed"
- :data="tableData"
- :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
- border
- :row-class-name="tableRowClassName"
- :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
- highlight-current-row
- :header-cell-style="this.$headerCellStyle"
- :cell-style="this.$cellStyle"
- @sort-change="sortChange"
+ <div
+ class="bodyTopFormExpand"
>
- <el-table-column
- prop="RowNum"
- width="50"
- fixed
- label="搴忓彿"
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
/>
- <el-table-column
- prop="wo_code"
- label="宸ュ崟缂栧彿"
- width="160"
- sortable="custom"
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
/>
- <el-table-column
- prop="partcode"
- label="浜у搧缂栫爜"
- width="160"
- show-tooltip-when-overflow
- sortable="custom"
- />
- <el-table-column
- prop="partname"
- label="浜у搧鍚嶇О"
- width="160"
- show-tooltip-when-overflow
- sortable="custom"
- />
- <el-table-column
- prop="partspec"
- label="浜у搧瑙勬牸"
- width="160"
- show-tooltip-when-overflow
- sortable="custom"
- >
- <template slot-scope="{row}">
- <div v-if="row.partspec">{{ row.partspec }}</div>
- <div v-else>/</div>
- </template>
- </el-table-column>
- <el-table-column
- prop="stepcode"
- label="宸ュ簭缂栫爜"
- width="110"
- show-tooltip-when-overflow
- sortable="custom"
- />
- <el-table-column
- prop="stepname"
- label="宸ュ簭鍚嶇О"
- width="110"
- show-tooltip-when-overflow
- sortable="custom"
- />
- <el-table-column
- prop="task_qty"
- label="浠诲姟鏁伴噺"
- width="110"
- show-tooltip-when-overflow
- sortable="custom"
- />
- <el-table-column
- prop="group_name"
- label="鐢熶骇鐝粍"
- width="110"
- show-tooltip-when-overflow
- sortable="custom"
- />
- <el-table-column
- prop="good_qty"
- label="鎶ュ伐鏁伴噺"
- width="110"
- sortable="custom"
- >
- <template slot-scope="{row}">
- <div v-if="row.good_qty">{{ row.good_qty }}</div>
- <div v-else>/</div>
- </template>
- </el-table-column>
- <el-table-column
- prop="unprice"
- label="宸ュ簭鍗曚环"
- width="110"
- sortable="custom"
- >
- <template slot-scope="{row}">
- <div v-if="row.unprice">{{ row.unprice }}鍏�</div>
- <div v-else>/</div>
- </template>
- </el-table-column>
- <el-table-column
- prop="usermoney"
- label="鐝粍璁颁欢宸ヨ祫"
- width="130"
- sortable="custom"
- >
- <template slot-scope="{row}">
- <div v-if="row.usermoney">{{ row.usermoney }}鍏�</div>
- <div v-else>/</div>
- </template>
- </el-table-column>
- <el-table-column
- prop="lm_user"
- label="鎶ュ伐浜哄憳"
- width="110"
- sortable="custom"
- />
- <el-table-column
- prop="report_date"
- label="鎶ュ伐鏃堕棿"
- width="160"
- sortable="custom"
- fixed="right"
- />
-
- </el-table>
+ </div>
</div>
- <!--鍒嗛〉-->
- <pagination
- :total="total"
- :page.sync="form.page"
- :limit.sync="form.rows"
- align="right"
- layout="total,prev, pager, next,sizes"
- popper-class="select_bottom"
- @pagination="getPeopleSalaryReportSearch"
- />
+
+ <el-tabs type="border-card" style="margin-top: 10px" @tab-click="tabClick">
+ <el-tab-pane label="鏈亾宸ュ簭">
+ <div class="elTableDiv" style="margin: 0 auto 10px;">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?(tableHeight-80):(tableHeight-40)+'px'"
+ border
+ :summary-method="getSummaries"
+ show-summary
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?(tableHeight-80):(tableHeight-40)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="RowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="wo_code"
+ label="宸ュ崟缂栧彿"
+ width="160"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partname"
+ label="浜у搧鍚嶇О"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partspec"
+ label="浜у搧瑙勬牸"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.partspec">{{ row.partspec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="stepcode"
+ label="宸ュ簭缂栫爜"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="task_qty"
+ label="浠诲姟鏁伴噺"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="group_name"
+ label="鐢熶骇鐝粍"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.group_name">{{ row.group_name }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="report_qty"
+ label="鎶ュ伐鏁伴噺"
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.report_qty">{{ row.report_qty }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="unprice"
+ label="宸ュ簭鍗曚环"
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.unprice">{{ row.unprice }} 鍏�</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="ratio"
+ label="鍒嗛厤姣斾緥"
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.unprice">{{ row.ratio }} %</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="usermoney"
+ label="涓汉璁′欢宸ヨ祫"
+ width="130"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.usermoney">{{ row.usermoney }} 鍏�</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="username"
+ label="鎶ュ伐浜哄憳"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="report_date"
+ label="鎶ュ伐鏃堕棿"
+ width="160"
+ sortable="custom"
+ />
+
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getPeopleSalaryReportSearch"
+ />
+ </el-tab-pane>
+ <el-tab-pane label="閫愰亾宸ュ簭">
+ <div class="elTableDiv" style="margin: 0 auto 10px;">
+ <el-table
+ ref="tableDataRef2"
+ class="tableFixed"
+ :data="tableData2"
+ :height="isExpandForm?(tableHeight-80):(tableHeight-40)+'px'"
+ border
+ :summary-method="getSummaries"
+ show-summary
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?(tableHeight-80):(tableHeight-40)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="RowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="wo_code"
+ label="宸ュ崟缂栧彿"
+ width="160"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partname"
+ label="浜у搧鍚嶇О"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partspec"
+ label="浜у搧瑙勬牸"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.partspec">{{ row.partspec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="stepcode"
+ label="宸ュ簭缂栫爜"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="task_qty"
+ label="浠诲姟鏁伴噺"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="group_name"
+ label="鐢熶骇鐝粍"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.group_name">{{ row.group_name }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="report_qty"
+ label="鎶ュ伐鏁伴噺"
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.report_qty">{{ row.report_qty }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="unprice"
+ label="宸ュ簭鍗曚环"
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.unprice">{{ row.unprice }} 鍏�</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="usermoney"
+ label="涓汉璁′欢宸ヨ祫"
+ width="130"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.usermoney">{{ row.usermoney }} 鍏�</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="username"
+ label="鎶ュ伐浜哄憳"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="report_date"
+ label="鎶ュ伐鏃堕棿"
+ width="160"
+ sortable="custom"
+ />
+
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getPeopleSalaryReportSearch"
+ />
+ </el-tab-pane>
+ </el-tabs>
</div>
<el-dialog
+ v-el-drag-dialog
:title="operation==='add'?'鏂板':'浜哄憳鏄庣粏'"
:visible.sync="dialogVisible"
width="800px"
@@ -237,9 +443,9 @@
</div>
<span slot="footer" class="dialog-footer">
<div class="footerButton">
- <el-button @click="dialogVisible=false">杩� 鍥�</el-button>
- <!-- <el-button @click="dialogVisibleCancel">鍙� 娑�</el-button>-->
- <!-- <el-button type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ <el-button v-waves @click="dialogVisible=false">杩� 鍥�</el-button>
+ <!-- <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>-->
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
</div>
</span>
</el-dialog>
@@ -266,17 +472,23 @@
GroupSalaryReportSearchUser, PeopleSalaryReportExcelSearch, PeopleSalaryReportSearch
} from '@/api/bbgl'
import { MesOrderStepReportSelectUserGroup } from '@/api/scgl'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import { StepSelect } from '@/api/zzmx'
export default {
name: 'Zzjg',
components: {
Pagination, ImportPicker
},
+ directives: { elDragDialog, waves },
data() {
return {
+ mouseHoverType: 'mouseout',
isExpandForm: false,
mainHeight: 0,
tableHeight: 0,
+ StepSelectArr: [], // 鍓旈櫎宸ュ簭鏁扮粍
form: {
wocode: '', // 宸ュ崟缂栧彿
partcode: '', // 浜у搧缂栫爜
@@ -286,6 +498,8 @@
groupcode: '', // 鐢熶骇鐝粍
reportname: '', // 鎿嶄綔浜哄憳
reportdate: '', // 鎿嶄綔鏃堕棿
+ rejectstepcode: [], // 鍓旈櫎宸ュ簭(鍥哄畾钖祫宸ュ簭涓嶅弬涓庤绠�
+ compute: 'last', // 璁′欢鏂瑰紡
prop: 'partcode', // 鎺掑簭瀛楁
order: 'desc', // 鎺掑簭瀛楁
page: 1, // 绗嚑椤�
@@ -294,6 +508,7 @@
groupArr: [],
total: 10,
tableData: [],
+ tableData2: [],
dialogVisible: false,
tagArr: [], //
dialogForm: {
@@ -329,6 +544,12 @@
}
}
},
+ // updated() {
+ // this.$nextTick(() => {
+ // this.$refs.tableDataRef.doLayout()
+ // this.$refs.tableDataRef2.doLayout()
+ // })
+ // },
created() {
this.handleRequest()
},
@@ -341,8 +562,54 @@
this.getPeopleSalaryReportSearch().then(res => {
if (res.code === '200') {
this.getMesOrderStepReportSelectUserGroup()
+ this.getStepSelect()
}
})
+ },
+ // 鑾峰彇宸ュ簭涓嬫媺鎺ュ彛
+ async getStepSelect() {
+ const { data: res } = await StepSelect()
+ this.StepSelectArr = res
+ },
+ getSummaries(param) {
+ const { columns, data } = param
+ const sums = []
+
+ const i = this.form.compute === 'last' ? 11 : 10
+
+ columns.forEach((column, index) => {
+ if (index === i) {
+ sums[index] = '鎬讳环'
+ return
+ }
+ const values = data.map(item => Number(item[column.property]))
+ if (column.property === 'usermoney') {
+ sums[index] = values.reduce((prev, curr) => {
+ const value = Number(curr)
+ if (!isNaN(value)) {
+ // return prev + curr
+ return Math.round(prev * 100) / 100 + Math.round(curr * 100) / 100
+ } else {
+ return Math.round(prev * 100) / 100
+ }
+ }, 0)
+
+ sums[index] += ' 鍏�'
+ } else {
+ // sums[index] = 'N/A'
+ sums[index] = ' '
+ }
+ })
+
+ this.$nextTick(() => {
+ this.$refs.tableDataRef.doLayout()
+ this.$refs.tableDataRef2.doLayout()
+ })
+ // (Math.round(sums * 100) / 100).toS
+
+ // console.log(typeof sums)
+ // console.log(sums[11].split(' '))
+ return sums
},
async getPeopleSalaryReportSearch() {
let tempDate = this.form.reportdate
@@ -356,7 +623,9 @@
partspec: this.form.partspec,
stepname: this.form.stepname,
groupcode: this.form.groupcode,
+ compute: this.form.compute,
reportname: this.form.reportname,
+ rejectstepcode: this.form.rejectstepcode.join(','),
reportdate: tempDate,
prop: this.form.prop,
order: this.form.order,
@@ -366,7 +635,12 @@
}
const res = await PeopleSalaryReportSearch(data)
- this.tableData = res.data
+ if (this.form.compute === 'last') {
+ this.tableData = res.data
+ }
+ if (this.form.compute === 'contin') {
+ this.tableData2 = res.data
+ }
this.total = res.count
return { code: res.code }
@@ -375,6 +649,10 @@
async getMesOrderStepReportSelectUserGroup() {
const { data: res } = await MesOrderStepReportSelectUserGroup()
this.groupArr = res
+ },
+ tabClick(val) {
+ this.form.compute = val.label === '鏈亾宸ュ簭' ? 'last' : 'contin'
+ this.getPeopleSalaryReportSearch()
},
// 鎺掑簭鏀瑰彉鏃�
sortChange({ column, prop, order }) {
@@ -402,6 +680,7 @@
partspec: this.form.partspec,
stepname: this.form.stepname,
groupcode: this.form.groupcode,
+ compute: this.form.compute,
reportname: this.form.reportname,
reportdate: tempDate
}
@@ -511,8 +790,9 @@
getHeight() {
this.$nextTick(() => {
this.mainHeight = window.innerHeight - 85
- this.tableHeight = this.mainHeight - 245
+ this.tableHeight = this.mainHeight - 255
this.$refs.tableDataRef.doLayout()
+ this.$refs.tableDataRef2.doLayout()
})
},
tableRowClassName({ row, rowIndex }) {
@@ -643,14 +923,29 @@
justify-content: center;
}
-.tableFixed{
- ::v-deep .el-table__fixed-right{
+.tableFixed {
+ ::v-deep .el-table__fixed-right {
height: 100% !important;
}
- ::v-deep .el-table__fixed{
+
+ ::v-deep .el-table__fixed {
height: 100% !important;
}
}
+
+.topRight ::v-deep {
+ input::-webkit-input-placeholder {
+ color: $main_color;
+ }
+
+ //input::-moz-input-placeholder {
+ // color: rgba(0, 204, 254, 1);
+ //}
+
+ input::-ms-input-placeholder {
+ color: $main_color;
+ }
+}
</style>
<style>
--
Gitblit v1.9.3