Files
management/src/views/invoicing/components/operatingDetail.vue

88 lines
3.1 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>
<el-dialog title="详情" width="80%" :visible.sync="dialogVisible" @close="dialogVisible = false">
<div class="head-container">
<span>{{ row.type }}</span>
</div>
<div class="head-container">
<el-table :data="tableData.detail.stockSnap" v-loading="tableData.loading" height="400px">
<el-table-column :label="`商品名称`" prop="name"></el-table-column>
<el-table-column label="规格" prop="specSnap"></el-table-column>
<el-table-column label="原库存" prop="stockNumber"></el-table-column>
<el-table-column label="变动数量" prop="number">
<template v-slot="scope">
<span v-if="tableData.detail.subType == -1">-</span> {{ scope.row.number }} {{
scope.row.unitName
}}
</template>
</el-table-column>
<el-table-column label="现有库存" prop="number">
<template v-slot="scope">
{{ returnNowHasNumbr(scope.row) }}
<!-- {{ scope.row.stockNumber*1 + scope.row.number*1 }} {{ scope.row.unitName }} -->
</template>
</el-table-column>
</el-table>
</div>
<div class="head-container">
<div class="row">备注{{ tableData.detail.remark }}</div>
<div class="row">操作人{{ tableData.detail.operatorSnap.name }}</div>
<div class="row">创建时间{{ dayjs(tableData.detail.createdAt).format('YYYY-MM-DD HH:mm:ss') }}</div>
</div>
</el-dialog>
</template>
<script>
import dayjs from 'dayjs'
import { formatDecimal } from '@/utils/index.js'
import { tbProductStockOperateDetail } from '@/api/invoicing'
export default {
data() {
return {
dayjs,
row: '',
dialogVisible: false,
tableData: {
loading: false,
detail: {
stockSnap: [],
operatorSnap: {
name: ''
}
}
}
}
},
methods: {
//返回现有库存数量
returnNowHasNumbr(row) {
const subType = this.tableData.detail.subType || 1
if (!row.hasOwnProperty('number')) {
return ''
}
return formatDecimal(parseFloat(row.stockNumber * 1 + row.number * subType + row.unitName), 2, true)
},
show(row) {
this.dialogVisible = true
this.row = row
this.getTableData(row.id)
},
async getTableData(id) {
this.tableData.loading = true
try {
const res = await tbProductStockOperateDetail(id)
this.tableData.loading = false
this.tableData.detail = res
} catch (error) {
console.log(error);
}
}
}
}
</script>
<style scoped lang="scss">
.row {
padding-bottom: 10px;
}
</style>