|
@@ -74,7 +74,7 @@ export default {
|
|
|
get(){
|
|
|
return `${this.params['puOrderItemList'].length ?
|
|
|
(this.params['puOrderItemList'].length > 8 ? 500 :
|
|
|
- (this.params['puOrderItemList'].length *60) +100)
|
|
|
+ (this.params['puOrderItemList'].length *60) +170)
|
|
|
: 120}px`
|
|
|
},
|
|
|
set(){}
|
|
@@ -633,7 +633,14 @@ export default {
|
|
|
|
|
|
this.$modal.loading("正在上传文件,请稍候...");
|
|
|
|
|
|
- let {code,data} = await orderApi.orderImport(formData);
|
|
|
+ let tabList = {
|
|
|
+ puOrderItemList: [...this.params.puOrderItemList],
|
|
|
+ puOrderExecuteList: [...this.params.puOrderExecuteList],
|
|
|
+ }
|
|
|
+
|
|
|
+ console.log(tabList,'tabList-------------------------');
|
|
|
+
|
|
|
+ let {code,data} = await orderApi.orderImport(formData,tabList);
|
|
|
|
|
|
if(code == 200) {
|
|
|
// this.tabLoading = true;
|
|
@@ -707,7 +714,40 @@ export default {
|
|
|
// let role = roles.find(item => item === "syfz-purchaseorder") || "procurementManager";
|
|
|
// return role;
|
|
|
// },
|
|
|
+ getSummaries(param){
|
|
|
+ const { columns, data } = param;
|
|
|
+ const sums = [];
|
|
|
+ let { tabColumns, tabName } = this;
|
|
|
+
|
|
|
+ columns.forEach((column, index) => {
|
|
|
|
|
|
+ if (index === 0) {
|
|
|
+ sums[index] = '合计';
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ const values = data.map(item => Number(item[column.property]));
|
|
|
+
|
|
|
+ let sumColumn = tabColumns.find(tab => tab.key === tabName).tableColumns.filter(({key,isSummary}) => isSummary && key === column.property);
|
|
|
+
|
|
|
+ if (sumColumn.length) {
|
|
|
+ sums[index] = values.reduce((prev, curr) => {
|
|
|
+ const value = Number(curr);
|
|
|
+ if (!isNaN(value)) {
|
|
|
+ return prev + curr;
|
|
|
+ } else {
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+ }, 0);
|
|
|
+ sums[index];
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return sums;
|
|
|
+
|
|
|
+ // return 0
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
},
|
|
|
created() {
|
|
@@ -913,126 +953,151 @@ export default {
|
|
|
:virtualized="true"
|
|
|
>
|
|
|
<!-- row-key绑定列唯一值,height一定要设置否则会滚动条滚动位置不对且数据滚动全部加载完后会出现白板-->
|
|
|
-
|
|
|
- <el-table
|
|
|
+ <template slot-scope="{ headerCellFixedStyle, cellFixedStyle }">
|
|
|
+
|
|
|
+ <el-table
|
|
|
:row-key="column.key === 'puOrderItemList' ? 'rowNo' :'rowno'"
|
|
|
:data="tableData"
|
|
|
style="width: 100%"
|
|
|
- :height="tabHeight"
|
|
|
border
|
|
|
+ :headerCellStyle="headerCellFixedStyle"
|
|
|
+ :cellStyle="cellFixedStyle"
|
|
|
+ max-height="500px"
|
|
|
+ show-summary
|
|
|
+ :summary-method="getSummaries"
|
|
|
>
|
|
|
<template slot="empty">
|
|
|
<el-empty description="暂无数据"></el-empty>
|
|
|
</template>
|
|
|
- <el-table-column
|
|
|
- v-for="(cColumn, cIndex) in column.tableColumns"
|
|
|
- :key="cIndex"
|
|
|
- :label="cColumn.title"
|
|
|
- :width="cColumn.width || 80"
|
|
|
- >
|
|
|
- <template slot="header" slot-scope="scope">
|
|
|
- <span v-if="cColumn.require" style="color: #ff4949">*</span>
|
|
|
- <span>
|
|
|
- {{ cColumn.title }}
|
|
|
- </span>
|
|
|
- </template>
|
|
|
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-form-item
|
|
|
- label-width="0"
|
|
|
- >
|
|
|
- <!-- :prop="`${column.key}.${scope.$index}.${[cColumn.key]}`"
|
|
|
- :rules="{ required: cColumn.require || false, message: `${cColumn.title}不能为空`, trigger: 'change' }" -->
|
|
|
- <el-tag v-if="cColumn.key === 'index'" >
|
|
|
- {{ scope.$index + 1 }}
|
|
|
- </el-tag>
|
|
|
- <el-input
|
|
|
- v-if="cColumn.inputType === 'Input'"
|
|
|
- v-model="scope.row[cColumn.key]"
|
|
|
- :placeholder="cColumn.placeholder"
|
|
|
- :clearable="cColumn.clearable"
|
|
|
- :disabled="cColumn.disabled"
|
|
|
- size="mini"
|
|
|
- style="width: 100%"
|
|
|
- ></el-input>
|
|
|
-
|
|
|
- <!-- -->
|
|
|
- <dr-popover-select
|
|
|
- v-if="cColumn.inputType === 'PopoverSelect'"
|
|
|
- v-model="scope.row[cColumn.key]"
|
|
|
- :source.sync="scope.row"
|
|
|
- :title="cColumn.title"
|
|
|
- :value-key="cColumn.valueKey"
|
|
|
- :type="cColumn.referName"
|
|
|
- :disabled="cColumn.disabled"
|
|
|
- :multiple="cColumn.multiple"
|
|
|
- :placeholder="cColumn.placeholder"
|
|
|
- :data-mapping="cColumn.dataMapping"
|
|
|
- :query-params="cColumn.queryParams"
|
|
|
- @change="handleTabReferChange"
|
|
|
- size="mini"
|
|
|
+
|
|
|
+
|
|
|
+ <el-table-column
|
|
|
+ v-for="(cColumn, cIndex) in column.tableColumns"
|
|
|
+ :key="cIndex"
|
|
|
+ :label="cColumn.title"
|
|
|
+ :width="cColumn.width || 80"
|
|
|
+ >
|
|
|
+ <template slot="header" slot-scope="scope">
|
|
|
+ <span v-if="cColumn.require" style="color: #ff4949">*</span>
|
|
|
+ <span>
|
|
|
+ {{ cColumn.title }}
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-form-item
|
|
|
+ label-width="0"
|
|
|
+ >
|
|
|
+ <!-- :prop="`${column.key}.${scope.$index}.${[cColumn.key]}`"
|
|
|
+ :rules="{ required: cColumn.require || false, message: `${cColumn.title}不能为空`, trigger: 'change' }" -->
|
|
|
+ <el-tag v-if="cColumn.key === 'index'" >
|
|
|
+ {{ scope.$index + 1 }}
|
|
|
+ </el-tag>
|
|
|
+ <el-input
|
|
|
+ v-if="cColumn.inputType === 'Input'"
|
|
|
+ v-model="scope.row[cColumn.key]"
|
|
|
+ :placeholder="cColumn.placeholder"
|
|
|
+ :clearable="cColumn.clearable"
|
|
|
+ :disabled="cColumn.disabled"
|
|
|
+ size="mini"
|
|
|
+ style="width: 100%"
|
|
|
+ ></el-input>
|
|
|
+
|
|
|
+ <!-- -->
|
|
|
+ <dr-popover-select
|
|
|
+ v-if="cColumn.inputType === 'PopoverSelect'"
|
|
|
+ v-model="scope.row[cColumn.key]"
|
|
|
+ :source.sync="scope.row"
|
|
|
+ :title="cColumn.title"
|
|
|
+ :value-key="cColumn.valueKey"
|
|
|
+ :type="cColumn.referName"
|
|
|
+ :disabled="cColumn.disabled"
|
|
|
+ :multiple="cColumn.multiple"
|
|
|
+ :placeholder="cColumn.placeholder"
|
|
|
+ :data-mapping="cColumn.dataMapping"
|
|
|
+ :query-params="cColumn.queryParams"
|
|
|
+ @change="handleTabReferChange"
|
|
|
+ size="mini"
|
|
|
+ >
|
|
|
+ </dr-popover-select>
|
|
|
+
|
|
|
+ <el-input-number
|
|
|
+ v-if="cColumn.inputType === 'InputNumber'"
|
|
|
+ v-model="scope.row[cColumn.key]"
|
|
|
+ :precision="cColumn.precision"
|
|
|
+ :controls-position="cColumn.controlsPosition"
|
|
|
+ :placeholder="cColumn.placeholder"
|
|
|
+ @change="handleInputChange(scope.row, cColumn.key)"
|
|
|
+ :clearable="cColumn.clearable"
|
|
|
+ :disabled="cColumn.disabled"
|
|
|
+ :min="cColumn.key === 'reservedQty' ? 0 : -Infinity"
|
|
|
+ size="mini"
|
|
|
+ style="width: 100%"
|
|
|
+ ></el-input-number>
|
|
|
+
|
|
|
+ <el-select
|
|
|
+ v-if="cColumn.inputType === 'Select'"
|
|
|
+ v-model="scope.row[cColumn.key]"
|
|
|
+ filterable
|
|
|
+ size="mini"
|
|
|
+ :disabled="cColumn.disabled"
|
|
|
+ :clearable="cColumn.clearable"
|
|
|
+ :placeholder="cColumn.placeholder"
|
|
|
+ style="width: 100%"
|
|
|
+ @change="handleTabSelectChange(cColumn.key,scope.row)"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in dict.type[cColumn.referName]"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+
|
|
|
+ <el-checkbox
|
|
|
+ v-if="cColumn.inputType === 'Checkbox'"
|
|
|
+ v-model="scope.row[cColumn.key]"
|
|
|
+ :disabled="cColumn.disabled"
|
|
|
+ true-label="Y"
|
|
|
+ false-label="N"
|
|
|
+ @change="handleTabCheckbox(cColumn.key,scope.row)"
|
|
|
+ ></el-checkbox>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ <VirtualColumn
|
|
|
+ vfixed="right"
|
|
|
+ label="操作"
|
|
|
+ width="80">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ @click.native.prevent="
|
|
|
+ delTableRow(params[tabName], scope.$index)
|
|
|
+ "
|
|
|
+ type="text"
|
|
|
+ size="small"
|
|
|
>
|
|
|
- </dr-popover-select>
|
|
|
-
|
|
|
- <el-input-number
|
|
|
- v-if="cColumn.inputType === 'InputNumber'"
|
|
|
- v-model="scope.row[cColumn.key]"
|
|
|
- :precision="cColumn.precision"
|
|
|
- :controls-position="cColumn.controlsPosition"
|
|
|
- :placeholder="cColumn.placeholder"
|
|
|
- @change="handleInputChange(scope.row, cColumn.key)"
|
|
|
- :clearable="cColumn.clearable"
|
|
|
- :disabled="cColumn.disabled"
|
|
|
- :min="cColumn.key === 'reservedQty' ? 0 : -Infinity"
|
|
|
- size="mini"
|
|
|
- style="width: 100%"
|
|
|
- ></el-input-number>
|
|
|
-
|
|
|
- <el-select
|
|
|
- v-if="cColumn.inputType === 'Select'"
|
|
|
- v-model="scope.row[cColumn.key]"
|
|
|
- filterable
|
|
|
- size="mini"
|
|
|
- :disabled="cColumn.disabled"
|
|
|
- :clearable="cColumn.clearable"
|
|
|
- :placeholder="cColumn.placeholder"
|
|
|
- style="width: 100%"
|
|
|
- @change="handleTabSelectChange(cColumn.key,scope.row)"
|
|
|
+ 删行
|
|
|
+ </el-button>
|
|
|
+ </template>
|
|
|
+ </VirtualColumn>
|
|
|
+ <!-- <el-table-column fixed="right" label="操作" width="80">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ @click.native.prevent="
|
|
|
+ delTableRow(params[tabName], scope.$index)
|
|
|
+ "
|
|
|
+ type="text"
|
|
|
+ size="small"
|
|
|
>
|
|
|
- <el-option
|
|
|
- v-for="item in dict.type[cColumn.referName]"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
-
|
|
|
- <el-checkbox
|
|
|
- v-if="cColumn.inputType === 'Checkbox'"
|
|
|
- v-model="scope.row[cColumn.key]"
|
|
|
- :disabled="cColumn.disabled"
|
|
|
- true-label="Y"
|
|
|
- false-label="N"
|
|
|
- @change="handleTabCheckbox(cColumn.key,scope.row)"
|
|
|
- ></el-checkbox>
|
|
|
- </el-form-item>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column fixed="right" label="操作" width="80">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-button
|
|
|
- @click.native.prevent="
|
|
|
- delTableRow(params[tabName], scope.$index)
|
|
|
- "
|
|
|
- type="text"
|
|
|
- size="small"
|
|
|
- >
|
|
|
- 删行
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
+ 删行
|
|
|
+ </el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column> -->
|
|
|
+ </el-table>
|
|
|
+ </template>
|
|
|
</virtual-scroll>
|
|
|
|
|
|
|