Files
JY1.0/src/views/WorkshopProcurement/ProjectTotalSearch/index.vue
2020-04-29 10:45:16 +08:00

159 lines
4.6 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<div class="app-container">
<el-card style="width: 800px">
<!--<span>项目名称:</span>-->
<el-select v-model="projectValue" placeholder="项目名称" size="small" style="width: 180px" filterable clearable>
<el-option
v-for="item in project"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<el-button type="primary" size="small" plain icon="el-icon-search" style="margin-left:10px" @click="searchTable1()">查询</el-button>
<el-button v-positive="'loading'" :disabled="false" type="primary" size="small" plain icon="el-icon-download" style="margin-left:10px" @click="exportExcel()">导出</el-button>
</el-card>
<el-card style="width: 800px">
<el-table v-loading="" :data="tableData2" :summary-method="getSummaries1" show-summary border style="width: 100%;max-height: 700px;" height="700px">
<el-table-column label="机床图号" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.机床图号 }}
</template>
</el-table-column>
<el-table-column label="零件名称" align="center" width="150">
<template slot-scope="scope">
{{ scope.row.零件名称 }}
</template>
</el-table-column>
<el-table-column label="图号或型号" align="center" min-width="150">
<template slot-scope="scope">
{{ scope.row.图号或型号 }}
</template>
</el-table-column>
<el-table-column label="材料或规格" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.材料或规格 }}
</template>
</el-table-column>
<el-table-column label="数量" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.数量 }}
</template>
</el-table-column>
<el-table-column label="单价(元)" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.单价.toFixed(2) }}
</template>
</el-table-column>
<el-table-column label="小计(元)" align="center" width="120" prop="金额">
<template slot-scope="scope">
{{ scope.row.金额.toFixed(2) }}
</template>
</el-table-column>
</el-table>
</el-card>
</div>
</template>
<script>
import { initProject, searchProjectTotal2 } from '@/api/WorkshopProcurement/ProjectTotalSearch'
import { mapGetters } from 'vuex'
export default {
name: '', // 项目总价查询
data() {
return {
projectValue: '',
project: [],
tableData: [],
tableData2: []
}
},
computed: {
...mapGetters([
'sidebar',
'avatar',
'name',
'id' // 人员编号
])
},
created() {
this.fetchData()
},
methods: {
fetchData() {
initProject().then(response => {
for (let i = 0; i < response.data.length; i++) {
this.project.push({
label: response.data[i].项目名称,
value: response.data[i].项目流水号
})
}
})
},
exportExcel() {
var param = []
param[0] = ['项目流水号', this.projectValue]
var Data = this.CreateData('2001', '报表_项目采购明细制造', param)
this.exportExcel_NPOI(Data)
},
searchTable1() {
if (this.projectValue) {
searchProjectTotal2(this.projectValue).then(response => {
this.tableData2 = response.data
})
} else {
this.$message.error('请选择项目')
}
},
getSummaries1(param) {
const { columns, data } = param
const sums = []
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计'
return
} else if (index === 5) {
const values = data.map(item => Number(item['金额']))
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return Number(prev) + Number(curr)
} else {
return Number(prev)
}
}, 0)
sums[index] += ' 元(含税)'
} else {
sums[index] = 'N/A'
}
}
})
return sums
}
}
}
</script>
<style scoped>
.el-select{
width:200px
}
.el-input{
width:200px
}
span{
margin: 10px 0 10px 10px;
}
.searchForm .el-form-item{
margin-bottom: 5px;
}
.el-tag{
margin: 0
}
.el-date-editor{
width:300px
}
</style>