From 801f3ec14a04ed7fb8309953155c620882b90cea Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期一, 29 四月 2024 16:41:36 +0800
Subject: [PATCH] 产品报表和应发工资报表
---
src/components/makepager/TableCommonView.vue | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 104 insertions(+), 7 deletions(-)
diff --git a/src/components/makepager/TableCommonView.vue b/src/components/makepager/TableCommonView.vue
index c61b4fa..8799c8f 100644
--- a/src/components/makepager/TableCommonView.vue
+++ b/src/components/makepager/TableCommonView.vue
@@ -13,14 +13,21 @@
:show-summary="showSummary.show"
:summary-method="getSummaries"
:span-method="arraySpanMethod"
+ :class="tableList.headerHeight?'table-height-47px':''"
@selection-change="handleSelectionChange"
- :header-cell-style="{ background: '#f1f3f8', color: '#000009', 'font-size': '12px', 'font-family': 'PingFangSC' }"
+ :header-cell-style="{ background: '#f1f3f8', height:tableList.headerHeight?tableList.headerHeight:'37px',color: '#000009', 'font-size': '12px', 'font-family': 'PingFangSC' }"
size="mini"
@row-click="tableRowClick"
:row-class-name="tableRowClassName"
>
<el-table-column v-if="selectBox" type="selection" width="40" :selectable="selectable"> </el-table-column>
- <el-table-column v-if="tableList.selectIndex" type="index" label="搴忓彿" width="50"></el-table-column>
+ <el-table-column
+ v-if="tableList.selectIndex"
+ type="index"
+ label="搴忓彿"
+ width="50"
+ :fixed="tableList.isFixed"
+ ></el-table-column>
<el-table-column
v-for="(item, i) in tableList.tableColumn"
:key="i"
@@ -30,11 +37,13 @@
:min-width="item.min"
show-overflow-tooltip
:sortable="item.sortable"
+ :fixed="item.fixed"
v-if="item.isShowColumn"
>
<template slot="header">
{{ item.label }}
+ <div v-if="item.weekDay">{{item.weekDay}}</div>
<span v-if="item.iconRight">
<i
:class="item.iconRight"
@@ -88,8 +97,17 @@
<span
v-else-if="item.isCommonClick && scope.row[item.prop]"
class="sel-name"
- @click="selCommonClick(scope.row)"
- >{{ scope.row[item.prop] }}</span
+ @click="selCommonClick(scope.row,item.prop,item)"
+ >
+ <div v-if="item.isCallMethod">
+ <span :class="item.isClass ? item.getClassName(scope.row[item.prop], scope.row) : ''">
+
+ <span v-if="item.isIcon" v-html="item.getCallMethod(scope.row[item.prop], scope.row)"></span>
+ <span v-else>{{ item.getCallMethod(scope.row[item.prop], scope.row) }}</span>
+ </span>
+ </div>
+ <span v-else>{{ scope.row[item.prop] }}</span>
+ </span
>
<div v-else-if="item.isProductName" class="product-view">
<ul v-if="scope.row.products && scope.row.products.length > 0">
@@ -137,6 +155,39 @@
item.getCallMethod(scope.row[item.prop], scope.row)
}}</span>
</div>
+ <div v-else-if="item.isEditTd">
+ <template
+ v-if="scope.row[item.prop+'editType']=='inputFloat'"
+ >
+ <el-input-number
+ v-model="scope.row[item.prop]"
+ placeholder="璇疯緭鍏�"
+ :min="0"
+ :precision="2"
+ :controls="false"
+ size="mini"
+ style="width: calc(100% - 80px); margin-right: 5px"
+ @change="
+ (val) => {
+ commonInputChange(val, item.prop, scope.row, scope)
+ }
+ "
+ ></el-input-number>
+ <el-button
+ type="text"
+ @click="saveEditShow(item.prop, scope.row, scope)"
+ >淇濆瓨</el-button
+ >
+ </template>
+ <span v-else>
+ {{ scope.row[item.prop] }}
+ <i
+ class="el-icon-edit"
+ style="font-size: 16px; margin-left: 5px; cursor: pointer"
+ @click="handleEditShow(scope.row,scope,item)"
+ ></i>
+ </span>
+ </div>
<span v-else>{{ scope.row[item.prop] ? scope.row[item.prop] : "--" }}</span>
</template>
</el-table-column>
@@ -169,6 +220,7 @@
default: () => {
return {
selectIndex: true,
+ isFixed: false,
tableInfomation: [], // 鎺ュ彛杩斿洖鏁版嵁
showcol: [],
allcol: [],
@@ -219,9 +271,39 @@
this.showcol = newVal
},
immediate: true
- }
+ },
},
methods: {
+ // 琛ㄦ牸缂栬緫
+ handleEditShow(row,scope,item){
+ scope.row[item.prop+'editType']=='inputFloat'
+ this.$set(this.tableList.tableInfomation[scope.$index],item.prop+'editType','inputFloat')
+ this.$forceUpdate()
+ },
+ commonInputChange(val, prop, row, scope) {
+ // if (row.editType=='inputFloat') {
+ // let value = scope.row[prop]
+ // let reg2 = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/
+ // if (!reg2.test(value) || value == 0) {
+ // this.$message.error("闇�瑕佸~鍐欏ぇ浜�0鐨�2浣嶅皬鏁帮紒")
+ // return true
+ // }
+ // this.$forceUpdate()
+ // }
+ this.$emit("inputContent", val, prop, row, scope)
+ },
+ saveEditShow( prop, row, scope){
+ if (row.editType=='inputFloat') {
+ let value = scope.row[prop]
+ let reg2 = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/
+ if (!reg2.test(value) || value == 0) {
+ this.$message.error("闇�瑕佸~鍐欏ぇ浜�0鐨�2浣嶅皬鏁帮紒")
+ return true
+ }
+ this.$forceUpdate()
+ }
+ this.$emit("inputContent", prop, row, scope)
+ },
onMaskClick() {
this.iscolopen = false
},
@@ -392,8 +474,8 @@
this.$emit("selServiceOrderClick", row)
},
// 鍏叡锛堥攢鍞満浼氥�佹姤浠峰崟銆侀攢鍞�诲崟銆侀攢鍞瓙鍗曘�傘�傘�傦級
- selCommonClick(row) {
- this.$emit("selCommonClick", row)
+ selCommonClick(row,prop,item) {
+ this.$emit("selCommonClick", row,prop,item)
},
// 琛岀偣鍑�
tableRowClick(row, column, event) {
@@ -471,6 +553,21 @@
font-weight: bold;
}
}
+ .el-table__fixed{
+ height:calc(100% - 8px)!important;
+ }
+ .el-table__fixed-body-wrapper{
+ top:37px!important;
+ }
+ .table-height-47px .el-table__fixed-body-wrapper{
+ top:47px!important;
+ }
+ .el-table__body-wrapper{
+ height:calc(100% - 38px)!important;
+ }
+ .table-height-47px .el-table__body-wrapper{
+ height:calc(100% - 48px)!important;
+ }
}
::v-deep .el-table .cell {
--
Gitblit v1.8.0