nw-cqdevicemgt-ui/src/views/stquery/outboundPreview/components/outbound-order.vue

248 lines
7.9 KiB
Vue
Raw Normal View History

<template>
<div>
<el-dialog
center
width="80%"
append-to-body
title="机具出库单"
:before-close="handleClose"
:visible.sync="outboundVisible"
>
<el-form inline label-width="100px">
<el-row>
<el-col :span="12">
<el-form-item label="领用单位">
<el-select
clearable
style="width: 240px"
v-model="queryParamsForm.unitId"
placeholder="请选择领料单位"
@change="onUnitChange"
>
<el-option
v-for="item in unitList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="出库日期">
<el-date-picker
clearable
type="daterange"
v-model="outTime"
style="width: 240px"
range-separator="至"
value-format="yyyy-MM-dd"
end-placeholder="结束日期"
start-placeholder="开始日期"
placeholder="请选择出库日期"
@change="onOutTimeChange"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="工程名称">
<el-select
clearable
style="width: 240px"
v-model="queryParamsForm.lotId"
placeholder="请选择工程名称"
@change="onProjectChange"
>
<el-option
v-for="item in projectList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<VueEasyPrint ref="vueEasyPrintRef">
<el-table :data="tableList">
<el-table-column label="序号" align="center" type="index" />
<el-table-column
prop="typeName"
label="机具名称"
align="center"
/>
<el-table-column
prop="typeModelName"
label="规格型号"
align="center"
/>
<el-table-column
prop="unitId"
label="计量单位"
align="center"
/>
<el-table-column
prop="outNum"
label="出库数量"
align="center"
/>
<el-table-column
prop="maStauts"
label="设备状态"
align="center"
/>
<el-table-column
prop="maCode"
label="设备编号"
align="center"
/>
<el-table-column label="备注" align="center" />
</el-table>
<h1> 以上工机具均确认完好无误能够正常使用 </h1>
<h1> 如有损坏丢失 原价赔偿 </h1>
<el-row>
<el-col :span="12"> 机具分公司发货人 </el-col>
<el-col :span="12"> 领用单位经办人 </el-col>
</el-row>
<el-row>
<el-col :span="12" style="color: transparent">,</el-col>
<el-col :span="12"> 承运车 </el-col>
</el-row>
</VueEasyPrint>
<div slot="footer" class="dialog-footer">
<el-button size="mini" @click="onPrint"> </el-button>
<el-button size="mini" @click="handleExport"> </el-button>
<el-button size="mini" @click="handleClose" type="primary"
> </el-button
>
</div>
</el-dialog>
</div>
</template>
<script>
import { getOutboundListApi } from '@/api/stquery/outboundPreview.js'
import VueEasyPrint from 'vue-easy-print'
export default {
props: {
outboundVisible: {
type: Boolean,
default: () => false,
},
unitList: {
type: Array,
default: () => [],
},
projectList: {
type: Array,
default: () => [],
},
},
components: {
VueEasyPrint,
},
data() {
return {
outTime: [],
tableList: [],
queryParamsForm: {
lotId: '',
unitId: '',
startTime: '',
endTime: '',
pageNum: 1,
pageSize: 9999,
},
}
},
methods: {
async getTableList() {
const { data: res } = await getOutboundListApi(this.queryParamsForm)
this.tableList = res.rows
},
handleClose() {
this.$emit('handleClose')
},
onUnitChange(val) {
if (val) {
this.getTableList()
}
},
onProjectChange(val) {
if (val) {
this.getTableList()
}
},
onOutTimeChange(val) {
if (val.length > 0) {
const [_1, _2] = val
this.queryParamsForm.startTime = _1
this.queryParamsForm.endTime = _2
} else {
this.queryParamsForm.startTime = ''
this.queryParamsForm.endTime = ''
}
if (this.queryParamsForm.unitId || this.queryParamsForm.lotId) {
this.getTableList()
}
},
onPrint() {
this.$refs.vueEasyPrintRef.print()
},
handleExport() {
this.download(
'material/inputRecord/exOutputport',
{
...this.queryParamsForm,
},
`机具出库列表.xlsx`,
)
},
},
watch: {
queryParamsForm: {
handler(newValue) {
const { lotId, unitId, startTime, endTime } = newValue
if (!lotId && !unitId && !startTime && !endTime) {
this.tableList = []
}
},
deep: true,
},
},
}
</script>
<style scoped>
::v-deep .el-dialog__title {
font-size: 20px;
letter-spacing: 6px;
}
h1 {
margin: 15px 0;
padding: 0;
font-size: 18px;
font-weight: bold;
text-align: center;
}
.el-row {
margin-top: 15px;
font-size: 16px;
letter-spacing: 4px;
}
</style>