909 lines
30 KiB
Vue
909 lines
30 KiB
Vue
<template>
|
|
<div class="app-container" style="padding-top: 1px">
|
|
|
|
<div class="card-change-1-search" >
|
|
<div style="height: 90px; display: flex; justify-content: space-between;">
|
|
<div style="height: 100%; display: flex; justify-content: space-between;">
|
|
<div style="height: 100%; width: 70%; display: flex; justify-content: space-between;">
|
|
<div class="box">
|
|
<span style="font-size: 26px;color: #0DC291;font-weight: bold;">{{numberOfTanks}}</span>
|
|
<span style="display: flex;font-size: 14px;font-weight: bold">
|
|
<div style="background-color: #0DC291;width: 10px;height: 10px;border-radius: 50%;margin-top: 6px;margin-right: 10px"></div>
|
|
油罐数量
|
|
</span>
|
|
</div>
|
|
<div class="box" >
|
|
<span style="font-size: 26px;color: #00CAFF;font-weight: bold" >{{inventoryVolume}}</span>
|
|
<span style="display: flex;font-size: 14px;font-weight: bold">
|
|
<div style="background-color: #00CAFF;width: 10px;height: 10px;border-radius: 50%;margin-top: 6px;margin-right: 10px"></div>
|
|
盘点升数
|
|
</span>
|
|
</div>
|
|
<div class="box">
|
|
<span style="font-size: 26px;color: #F44522;font-weight: bold">{{stockDifference}}</span>
|
|
<span style="display: flex;font-size: 14px;font-weight: bold">
|
|
<div style="background-color: #F44522;width: 10px;height: 10px;border-radius: 50%;margin-top: 6px;margin-right: 10px"></div>
|
|
库存差异(L)
|
|
</span>
|
|
</div>
|
|
<div class="box">
|
|
<span style="font-size: 26px;color: #F4C622;font-weight: bold">{{profitLossAmount}}</span>
|
|
<span style="display: flex;font-size: 14px;font-weight: bold">
|
|
<div style="background-color: #F4C622;width: 10px;height: 10px;border-radius: 50%;margin-top: 6px;margin-right: 10px"></div>
|
|
盈亏总额(元)
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div style="height: 100%; width: 30%; display: flex; flex-direction: column; justify-content: space-between;">
|
|
<el-form ref="myForm" label-width="100px">
|
|
<el-form-item label="盘点单号">
|
|
<el-input v-model="inventoryNo.inventoryNo" @change="saveJudgment" :disabled="numberInput"
|
|
style="width: 220Px">
|
|
<el-button slot="append" @click="refresh()" icon="el-icon-refresh"></el-button>
|
|
</el-input>
|
|
</el-form-item>
|
|
<el-form-item label="盘点时间" >
|
|
<el-date-picker
|
|
style="width: 220Px"
|
|
v-model="inventoryNo.inventoryDate"
|
|
@change="saveJudgment"
|
|
:disabled="numberInput"
|
|
type="date"
|
|
placeholder="选择日期">
|
|
</el-date-picker>
|
|
</el-form-item>
|
|
</el-form>
|
|
</div>
|
|
</div>
|
|
<div style="height: 100%; width: 30%; display: flex; align-items: center; justify-content: flex-end;">
|
|
<el-button type="primary" @click="cancelPurchase" v-if="state=='yzf' || state=='qrts'">关闭</el-button>
|
|
<el-button @click="cancelPurchase" v-else>取消</el-button>
|
|
<el-button type="success" v-if="state=='await'" :disabled="saveFlag" @click="saveInventory()">保存</el-button>
|
|
<el-button type="danger" v-if="state =='await' || state=='ysh'" :disabled="voidFlag" @click="abolition()">作废</el-button>
|
|
<el-button type="primary" v-if="state=='await'" :disabled="auditFlag" @click="audit">保存并审核</el-button>
|
|
<el-button type="primary" v-if="state=='ysh'" :disabled="auditFlag" @click="storage">盘点并处理库存</el-button>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card-change-1-1" >
|
|
<el-row :gutter="10" class="mb8">
|
|
<el-col :span="1.5">
|
|
<!-- <span style="font-size: 20px;font-weight: bold">盘点详情</span>-->
|
|
|
|
</el-col>
|
|
<el-col :span="1.5" style="width: 50%">
|
|
<!-- <el-alert-->
|
|
<!-- title="为了保证盘点我准确性,请在非收银期间段内进行盘点、否则会导致盘点信息异常"-->
|
|
<!-- :closable="false"-->
|
|
<!-- type="error">-->
|
|
<span style="color: red">● 为了保证盘点我准确性,请在非收银期间段内进行盘点、否则会导致盘点信息异常</span>
|
|
<!-- </el-alert>-->
|
|
</el-col>
|
|
<el-col :span="15" style="text-align: right;width: 50%">
|
|
<el-button v-if="state =='await'"
|
|
type="primary"
|
|
icon="el-icon-plus"
|
|
@click="orderAdd"
|
|
>添加盘点油罐</el-button>
|
|
</el-col>
|
|
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
|
|
</el-row>
|
|
<el-table ref="tables"
|
|
v-loading="loading"
|
|
:data="orderList"
|
|
:default-sort="defaultSort">
|
|
<el-table-column align="center" type="index" label="序号"></el-table-column>
|
|
<el-table-column label="油罐名称" align="center" prop="tankName"/>
|
|
<el-table-column label="油品-油号" align="center" prop="numberName"/>
|
|
<el-table-column label="供应商" align="center" prop="numberName"/>
|
|
|
|
|
|
<el-table-column label="上次采购信息" align="center" prop="numberName">
|
|
<el-table-column label="采购总价(元)" align="center" prop="theTotalPurchasePrice">
|
|
<template slot-scope="scope">
|
|
{{scope.row.theTotalPurchasePrice?scope.row.theTotalPurchasePrice:'--'}}
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="采购油量(L)" align="center" prop="theAmountOfOilPurchased"/>
|
|
<el-table-column label="采购单价(元)" align="center" prop="purchaseUnitPrice"/>
|
|
</el-table-column>
|
|
|
|
<el-table-column label="销售信息" align="center" prop="numberName">
|
|
<el-table-column label="销售总油量(L)" align="center" prop="totalOilVolumeSold">
|
|
<template slot-scope="scope">
|
|
{{scope.row.totalOilVolumeSold?scope.row.totalOilVolumeSold:'--'}}
|
|
</template>
|
|
</el-table-column>
|
|
<!-- <el-table-column label="销售售出价" align="center" prop="numberName"/>-->
|
|
<el-table-column label="销售总金额(元)" align="center" prop="theTotalSalePrice">
|
|
<template slot-scope="scope">
|
|
{{scope.row.theTotalSalePrice?scope.row.theTotalSalePrice:'--'}}
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
<el-table-column label="当前剩余油量(元/吨)" align="center" prop="currentInventoryVolume">
|
|
<template slot-scope="scope">
|
|
{{scope.row.totalPrice?scope.row.totalPrice:'--'}}/{{scope.row.theTotalSalePrice?scope.row.theTotalSalePrice:'--'}}
|
|
</template>
|
|
</el-table-column>
|
|
<!-- <el-table-column label="当前剩余油量总价" align="center" prop="totalPrice"/>-->
|
|
|
|
<el-table-column label="当前均价(元/L)" align="center" prop="currentAveragePrice" />
|
|
<el-table-column label="当前库存(L)" align="center" prop="currentInventoryVolume"/>
|
|
<el-table-column label="盘点升数(L)" align="center" prop="inventoryVolume" width="150px">
|
|
<template slot-scope="scope">
|
|
<el-input-number :disabled="numberInput" v-model="scope.row.inventoryVolume" @change="change(scope.row)" controls-position="right" :min="0" :max="100000000" :step="1" :precision="2" style="max-width: 100%"></el-input-number>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="库存差异(L)" align="center" prop="stockDifference"/>
|
|
<el-table-column label="盈亏金额(元)" align="center" prop="profitLossAmount"/>
|
|
<el-table-column v-if="state =='await'" label="操作" align="center" class-name="small-padding fixed-width">
|
|
<template slot-scope="scope">
|
|
<el-button
|
|
size="mini"
|
|
type="text"
|
|
icon="el-icon-edit"
|
|
@click="orderDel(scope.row)"
|
|
>删除</el-button>
|
|
</template>
|
|
<!-- v-hasPermi="['']"-->
|
|
|
|
</el-table-column>
|
|
</el-table>
|
|
|
|
<!-- <pagination-->
|
|
<!-- v-show="total>0"-->
|
|
<!-- :total="total"-->
|
|
<!-- :page.sync="queryParams.page"-->
|
|
<!-- :limit.sync="queryParams.pageSize"-->
|
|
<!-- @pagination="getList"-->
|
|
<!-- />-->
|
|
</div>
|
|
|
|
<!-- 添加采购油品-->
|
|
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body :close-on-click-modal="false">
|
|
<el-container>
|
|
<el-header style="">
|
|
<el-form ref="tankForm" :model="tankForm" label-width="80px">
|
|
<el-row :gutter="24">
|
|
<el-col :span="10">
|
|
<el-form-item label="">
|
|
<el-select v-model="tankForm.numberId" placeholder="请选择油品油号" style="width:100%" @change="chooseOilNumber()" clearable>
|
|
<el-option
|
|
v-for="option in selectOilTypeByPrice"
|
|
:key="option.numberId"
|
|
:label="option.oilType +' '+option.oilName"
|
|
:value="option.numberId"
|
|
></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="10">
|
|
<el-form-item label="">
|
|
<el-input v-model="tankForm.tankName" placeholder="请输入油罐名称"></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="4">
|
|
<el-button type="primary" @click="inquireTank()" icon="el-icon-search">搜索</el-button>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
</el-header>
|
|
<el-main>
|
|
<el-table ref="tables"
|
|
v-loading="loading"
|
|
:data="tankList"
|
|
@selection-change="handleSelectionChange"
|
|
border
|
|
:default-sort="defaultSort">
|
|
<el-table-column
|
|
type="selection"
|
|
width="55">
|
|
</el-table-column>
|
|
<el-table-column label="油罐名称" align="center" prop="tankName"/>
|
|
<el-table-column label="油品-油号" align="center" prop="oilNumber"/>
|
|
<el-table-column label="当前均价(元/L)" align="center" prop="discountedPrice" />
|
|
<el-table-column label="当前库存(L)" align="center" prop="storedQuantity"/>
|
|
</el-table>
|
|
</el-main>
|
|
</el-container>
|
|
<div class="dialog-footer" style="text-align: center">
|
|
<el-button @click="cancel">取 消</el-button>
|
|
<el-button type="primary" @click="addOrder">确 定</el-button>
|
|
</div>
|
|
</el-dialog>
|
|
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
getSuppliersListApi2,
|
|
} from "@/api/oilConfig/oilSuppliers";
|
|
|
|
import {
|
|
editInventoryApi,
|
|
getInventoryOrderApi,
|
|
insertInventoryApi,
|
|
auditInventoryApi,
|
|
storageInventoryApi,
|
|
insertInventoryOrderApi,
|
|
updateInventoryOrderApi,
|
|
updateInventoryApi,
|
|
selectList2Api,
|
|
insertBatchInventoryOrderApi,
|
|
getInventoryByIdApi,
|
|
disposeBatchApi,
|
|
delInventoryOrderApi,
|
|
abolitionInventoryApi,
|
|
getPurchaseByTankIdApi
|
|
} from "@/api/oilConfig/oilInventory";
|
|
import {getOilNameListApi} from "@/api/oilPrice";
|
|
import {selectTankByNumberApi} from "@/api/oilConfig/oilGuns";
|
|
import {BigNumber} from "bignumber.js";
|
|
import {getAuditPremApi} from "@/api/oilConfig/staff";
|
|
|
|
export default {
|
|
name: "orderOrder",
|
|
data() {
|
|
return {
|
|
orderList:[],
|
|
|
|
orderForm:{
|
|
id: null,
|
|
purchaseId: null,
|
|
numberId: null,
|
|
tankId: null,
|
|
supplierId: null,
|
|
productDensity: null,
|
|
purchaseWeight: null,
|
|
purchasePrice: null,
|
|
totalAmount: null,
|
|
purchaseVolume: null,
|
|
storeId: null,
|
|
createTime: null,
|
|
updateTime: null,
|
|
createBy: null,
|
|
updateBy: null,
|
|
preInboundInventory: null,
|
|
discountedPrice: null
|
|
},
|
|
purchaseId: null,
|
|
|
|
purchaseOrderNumber: null, // 进货单号
|
|
incomingTime: '', //进货时间
|
|
|
|
state: 'await',
|
|
numberInput: false,
|
|
|
|
numberOfTanks: 0, // 油罐数量
|
|
inventoryVolume: 0, // 盘点升数
|
|
stockDifference: 0, // 库存差异
|
|
profitLossAmount: 0,// 盈亏总额
|
|
|
|
tankList:[], //
|
|
tankForm: {
|
|
numberId:'',
|
|
tankName:''
|
|
},
|
|
|
|
inventoryId:'', // 盘点id
|
|
|
|
selectOilTypeByPrice: [], // 油品
|
|
multipleSelection: [],
|
|
|
|
numberList:[],
|
|
suppliersList:[],
|
|
|
|
saveFlag:false,
|
|
auditFlag:false,
|
|
voidFlag:false,
|
|
storageFlag:true,
|
|
|
|
|
|
// 弹出框标题
|
|
title:'',
|
|
// 显示搜索条件
|
|
showSearch: true,
|
|
disableInput: false, // 默认不禁用
|
|
// 是否显示弹出层
|
|
open: false,
|
|
// 总条数
|
|
total: 0,
|
|
// 查询参数
|
|
queryParams: {
|
|
supplierId: '',
|
|
inventoryId: null,
|
|
page:null,
|
|
pageSize:null
|
|
},
|
|
// 遮罩层
|
|
loading: false,
|
|
// 默认排序
|
|
defaultSort: {prop: 'createTime', order: 'descending'},
|
|
// 表单校验
|
|
rules: {
|
|
supplierName: [
|
|
{ required: true, message: "供应商名称不能为空", trigger: "blur" },
|
|
],
|
|
},
|
|
|
|
|
|
inventoryNo: {
|
|
inventoryNo: null,
|
|
inventoryDate: null
|
|
},
|
|
}
|
|
},
|
|
|
|
async created() {
|
|
// console.log("yourParamKey",this.$route.query.purchaseId)
|
|
|
|
// this.purchaseId = this.$route.query.purchaseId;
|
|
// console.log("yourParamKey2",this.$route.query.purchaseId)
|
|
//
|
|
// if (this.$route.query.purchaseId == null) {
|
|
// this.queryParams.purchaseId = -parseInt(new Date().getTime())% 100000000;
|
|
// this.purchaseId = -parseInt(new Date().getTime()) % 100000000;
|
|
// }
|
|
this.state = this.$route.query.state;
|
|
|
|
if ( this.state == null) {
|
|
this.state = 'await'
|
|
}
|
|
if (this.state=='await') {
|
|
this.numberInput = false
|
|
}else {
|
|
this.numberInput = true
|
|
}
|
|
console.log(this.state,366)
|
|
|
|
this.inventoryNo.inventoryNo = this.$route.query.inventoryNo;
|
|
// this.inventoryNo.inventoryDate = this.$route.query.inventoryDate;
|
|
|
|
this.queryParams.inventoryId = this.$route.query.inventoryId;
|
|
this.inventoryId = this.$route.query.inventoryId;
|
|
|
|
|
|
this.$route.query.inventoryTime;
|
|
|
|
|
|
if (this.$route.query.inventoryDate != null) {
|
|
this.inventoryNo.inventoryDate = new Date(parseInt(this.$route.query.inventoryDate))
|
|
}
|
|
|
|
if (this.inventoryNo.inventoryDate == null) {
|
|
this.inventoryNo.inventoryDate = new Date()
|
|
}
|
|
|
|
if (this.inventoryNo.inventoryNo == null) {
|
|
this.refresh();
|
|
}
|
|
|
|
await this.getList();
|
|
this.JudgmentButton();
|
|
|
|
},
|
|
methods: {
|
|
// 返回页面
|
|
cancelPurchase() {
|
|
this.$router.back()
|
|
},
|
|
getList(){
|
|
this.loading = true;
|
|
getInventoryOrderApi(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
|
this.orderList = response.data.records;
|
|
this.total = response.data.total;
|
|
this.numberOfTanks = response.data.total;
|
|
// 总数计算
|
|
this.sumMethod(response.data.records);
|
|
|
|
})
|
|
this.loading = false;
|
|
},
|
|
|
|
// 根据id获取盘点的详细信息
|
|
getInventoryById() {
|
|
let this_ = this
|
|
let data = 0;
|
|
getInventoryByIdApi(data).then(response=>{
|
|
this_.inventoryVolume= response.data.inventoryVolume,
|
|
this_.stockDifference= response.data.stockDifference,
|
|
this_.profitLossAmount= response.data.profitLossAmount
|
|
}).catch()
|
|
},
|
|
|
|
// 计算header数据
|
|
sumMethod(data) {
|
|
console.log("sumMethod",data)
|
|
let this_ = this
|
|
this_.inventoryVolume = new BigNumber(0),
|
|
this_.stockDifference = new BigNumber(0),
|
|
this_.profitLossAmount = new BigNumber(0),
|
|
data.forEach(da => {
|
|
if (da.inventoryVolume != null) {
|
|
this_.inventoryVolume= this_.inventoryVolume.plus(da.inventoryVolume)
|
|
}
|
|
if (da.stockDifference != null) {
|
|
this_.stockDifference= this_.stockDifference.plus(da.stockDifference)
|
|
}
|
|
if (da.profitLossAmount != null) {
|
|
this_.profitLossAmount= this_.profitLossAmount.plus(da.profitLossAmount)
|
|
}
|
|
})
|
|
},
|
|
// 改变数字时
|
|
change(data) {
|
|
// // 库存差异升数
|
|
// data.stockDifference = data.inventoryVolume - data.currentInventoryVolume
|
|
// // 盈亏金额
|
|
// data.profitLossAmount = data.stockDifference * data.currentAveragePrice
|
|
|
|
// 库存差异升数
|
|
const stockDifference = new BigNumber(data.inventoryVolume).minus(data.currentInventoryVolume);
|
|
|
|
// 盈亏金额
|
|
const profitLossAmount = stockDifference.times(data.currentAveragePrice).decimalPlaces(2).toNumber();
|
|
|
|
// 将结果存回 data 对象
|
|
data.stockDifference = stockDifference.toNumber();
|
|
data.profitLossAmount = profitLossAmount;
|
|
|
|
this.sumMethod(this.orderList)
|
|
},
|
|
// 查询油罐
|
|
inquireTank() {
|
|
this.getTankList()/**/
|
|
},
|
|
// 选择油品号之后
|
|
chooseOilNumber(data) {
|
|
this.getTankList()
|
|
// this.selectTankByNumber(this.orderForm.numberId);
|
|
},
|
|
// 油罐列表
|
|
getTankList() {
|
|
selectList2Api(this.tankForm).then(response => {
|
|
this.tankList = response.data
|
|
})
|
|
},
|
|
// 添加采购油品
|
|
orderAdd() {
|
|
// 初始化
|
|
this.open = true;
|
|
this.title = "添加盘点油罐"
|
|
this.getOilNameList()
|
|
// this.selectSuppliers()
|
|
},
|
|
// 添加油罐到订单列表
|
|
async addOrder () {
|
|
|
|
let this_ = this
|
|
// 油罐列表清除数据
|
|
this_.tankList = []
|
|
this_.tankForm = {}
|
|
for (const mul of this.multipleSelection) {
|
|
|
|
// this.multipleSelection.forEach(mul=>{
|
|
let isDuplicate = false
|
|
if (this.orderList.length > 0) {
|
|
isDuplicate = this.orderList.some(order => order.tankId === mul.id);
|
|
}
|
|
|
|
if (isDuplicate) {
|
|
this.$message({
|
|
message: '有重复油罐,请重新选择',
|
|
type: 'warning'
|
|
});
|
|
this.multipleSelection = []
|
|
return;
|
|
}
|
|
let getPurchaseByTankIdData
|
|
// 根据油罐id查询数据
|
|
await getPurchaseByTankIdApi({tankId:mul.id}).then(res=>{
|
|
getPurchaseByTankIdData = res.data
|
|
})
|
|
|
|
|
|
let now = {
|
|
tankId: mul.id,
|
|
tankName: mul.tankName,
|
|
numberId: mul.numberId,
|
|
numberName: mul.oilNumber,
|
|
inventoryVolume:mul.storedQuantity,
|
|
currentAveragePrice: mul.discountedPrice,
|
|
currentInventoryVolume: mul.storedQuantity,
|
|
totalPrice: mul.totalPrice,
|
|
theTotalPurchasePrice:getPurchaseByTankIdData.theTotalPurchasePrice, // 采购总价
|
|
theAmountOfOilPurchased:getPurchaseByTankIdData.theAmountOfOilPurchased, // 采购油量
|
|
purchaseUnitPrice:getPurchaseByTankIdData.purchaseUnitPrice, // 采购单价
|
|
totalOilVolumeSold:getPurchaseByTankIdData.totalOilVolumeSold, // 销售总油量
|
|
theTotalSalePrice:getPurchaseByTankIdData.theTotalSalePrice, // 销售总价
|
|
// totalPrice:getPurchaseByTankIdData.purchaseUnitPrice*getPurchaseByTankIdData.totalOilVolumeSold // 当前剩余油量总价
|
|
}
|
|
|
|
|
|
this_.orderList.push(now)
|
|
// })
|
|
}
|
|
this.multipleSelection = []
|
|
|
|
this_.open = false
|
|
this.numberOfTanks = this.numberOfTanks+1
|
|
|
|
this_.sumMethod(this_.orderList);
|
|
|
|
},
|
|
// 表格选择器
|
|
handleSelectionChange(val) {
|
|
this.multipleSelection = val;
|
|
},
|
|
// 删除dom
|
|
orderDel(data) {
|
|
if (data.id != null) {
|
|
delInventoryOrderApi(data).then(res=>{
|
|
})
|
|
}
|
|
const index = this.orderList.indexOf(data); // 查找要删除的对象的索引
|
|
if (index !== -1) {
|
|
this.orderList.splice(index, 1); // 使用splice方法删除对象
|
|
}
|
|
this.numberOfTanks = this.numberOfTanks-1
|
|
},
|
|
// 提交
|
|
submitForm: function() {
|
|
// this.$refs["form"].validate(valid => {
|
|
// if (valid) {
|
|
// // 密度计算
|
|
// this.orderForm.purchaseVolume = ((this.orderForm.purchaseWeight*(1000))/this.orderForm.productDensity).toFixed(2);
|
|
// // 计算小计价格
|
|
// this.orderForm.totalAmount = this.orderForm.purchasePrice * this.orderForm.purchaseWeight
|
|
// // 折合单价
|
|
// this.orderForm.discountedPrice = (this.orderForm.purchaseVolume / this.orderForm.totalAmount).toFixed(2);
|
|
// // 复制id
|
|
// this.orderForm.purchaseId = this.purchaseId
|
|
// if (!this.orderForm.id) {
|
|
// insertPurchaseOrderApi(this.orderForm).then(response => {
|
|
// this.$modal.msgSuccess("新增成功");
|
|
// this.open = false;
|
|
// this.saveJudgment()
|
|
// this.getList();
|
|
// });
|
|
// } else {
|
|
// updatePurchaseOrderApi(this.orderForm).then(response => {
|
|
// this.$modal.msgSuccess("修改成功");
|
|
// this.open = false;
|
|
// this.getList();
|
|
// });
|
|
// }
|
|
// }
|
|
// });
|
|
},
|
|
// 取消
|
|
cancel() {
|
|
this.open = false;
|
|
},
|
|
|
|
edit() {
|
|
},
|
|
|
|
// 选择油罐添加密度
|
|
chooseTank(data){
|
|
// // 根据id找密度
|
|
// this.tankList.forEach(su=>{
|
|
// if (data == su.id) {
|
|
// this.orderForm.productDensity = su.oilDensity
|
|
// }
|
|
// })
|
|
},
|
|
// 查询所有的油品
|
|
getOilNameList() {
|
|
let this_=this
|
|
getOilNameListApi().then( response => {
|
|
let list = response.data
|
|
this_.selectOilTypeByPrice = list
|
|
});
|
|
},
|
|
// 根据油品查询油罐
|
|
selectTankByNumber(data) {
|
|
let numberId = data
|
|
selectTankByNumberApi(numberId).then(response => {
|
|
this.tankList = response.data;
|
|
});
|
|
},
|
|
// 查询所有供应商
|
|
selectSuppliers() {
|
|
getSuppliersListApi2().then(response => {
|
|
this.suppliersList = response.data;
|
|
});
|
|
},
|
|
|
|
// 刷新订单编号
|
|
refresh() {
|
|
var timestamp = new Date().getTime();
|
|
var min = 100; // 最小的四位数是 1000
|
|
var max = 999; // 最大的四位数是 9999
|
|
var randomFourDigitNumber = Math.floor(Math.random() * (max - min + 1)) + min;
|
|
// this.purchaseOrderNumber = timestamp+randomFourDigitNumber.toString();
|
|
this.inventoryNo.inventoryNo = timestamp+randomFourDigitNumber.toString();
|
|
},
|
|
|
|
// 保存订单信息
|
|
async saveInventory(){
|
|
let this_ = this
|
|
if (this_.inventoryNo.inventoryNo == null){
|
|
this.$modal.msgSuccess("请先填写盘点号");
|
|
return -1;
|
|
}
|
|
if (this_.inventoryNo.inventoryDate == null){
|
|
this.$modal.msgSuccess("请先填写时间");
|
|
return -1;
|
|
}
|
|
if ( this_.orderList <= 0){
|
|
this.$modal.msgSuccess("请先选择至少一个油罐");
|
|
return -1;
|
|
}
|
|
|
|
let inventoryForm = {
|
|
inventoryNumber : this_.inventoryNo.inventoryNo,
|
|
inventoryTime : this_.inventoryNo.inventoryDate,
|
|
inventoryVolume : parseFloat(this_.inventoryVolume),
|
|
stockDifference : parseFloat(this_.stockDifference),
|
|
profitLossAmount : parseFloat(this_.profitLossAmount)
|
|
}
|
|
// 处理列表
|
|
let oilInventoryOrderList = []
|
|
|
|
// 判断是保存还是修改
|
|
if (this_.inventoryId != null) {
|
|
// 修改
|
|
inventoryForm.id = this_.inventoryId
|
|
await updateInventoryApi(inventoryForm).then(response=>{
|
|
// 处理列表
|
|
// disList.inventoryId= this_.inventoryId
|
|
|
|
this_.orderList.forEach(ord=>{
|
|
let now = {
|
|
id: ord.id,
|
|
inventoryId: this_.inventoryId,
|
|
tankId: ord.tankId,
|
|
numberId: ord.numberId,
|
|
currentAveragePrice: ord.currentAveragePrice,
|
|
currentInventoryVolume: ord.currentInventoryVolume,
|
|
profitLossAmount: ord.profitLossAmount,
|
|
stockDifference: ord.stockDifference,
|
|
inventoryVolume: ord.inventoryVolume
|
|
|
|
}
|
|
oilInventoryOrderList.push(now)
|
|
})
|
|
|
|
disposeBatchApi(oilInventoryOrderList).then(response=> {
|
|
// 保存成功
|
|
this.$modal.msgSuccess("保存成功");
|
|
// this.getList()
|
|
this.$router.push({ path: '/oilConfig/oilInventory/list', query: {
|
|
} });
|
|
})
|
|
})
|
|
} else {
|
|
// 新增
|
|
console.log("this_.orderList",inventoryForm)
|
|
|
|
insertInventoryApi(inventoryForm).then(response=>{
|
|
// disList.inventoryId= response.data.id
|
|
this_.inventoryId = response.data.id
|
|
this_.state = response.data.status
|
|
this_.inventoryNo.inventoryNo = response.data.inventoryNumber,
|
|
// this_.inventoryNo.inventoryDate = response.data.inventoryTime,
|
|
|
|
this_.orderList.forEach(ord=>{
|
|
let now = {
|
|
id: ord.id,
|
|
inventoryId: response.data.id,
|
|
tankId: ord.tankId,
|
|
numberId: ord.numberId,
|
|
currentAveragePrice: ord.currentAveragePrice,
|
|
currentInventoryVolume: ord.currentInventoryVolume,
|
|
profitLossAmount: ord.profitLossAmount,
|
|
stockDifference: ord.stockDifference,
|
|
inventoryVolume: ord.inventoryVolume
|
|
}
|
|
oilInventoryOrderList.push(now)
|
|
})
|
|
|
|
disposeBatchApi(oilInventoryOrderList).then(response=> {
|
|
// 保存成功
|
|
this.$modal.msgSuccess("保存成功");
|
|
|
|
this.getList()
|
|
|
|
|
|
this.$router.push({ path: '/oilConfig/oilInventory/list', query: {
|
|
} });
|
|
})
|
|
// 新增列表之后重新刷新
|
|
// this.$router.push({ path: '/oilInventory/order', query: {
|
|
// inventoryId: this_.inventoryId,
|
|
// inventoryNo: this_.inventoryNo.inventoryNo,
|
|
// inventoryDate: this_.inventoryNo.inventoryDate,
|
|
// state: this_.status
|
|
// } });
|
|
// })
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
},
|
|
// 判断是否可以保存
|
|
saveJudgment(){
|
|
// if (this.inventoryNo.inventoryNo != null && this.inventoryNo.inventoryDate != null && this.orderList.length > 0) {
|
|
// this.saveFlag = false;
|
|
// }
|
|
},
|
|
|
|
// 页面跳转
|
|
goToAbout() {
|
|
this.$router.push('/oilConfig/oilInventory/list');
|
|
},
|
|
// 搜索按钮操作
|
|
handleQuery() {
|
|
this.queryParams.page = 1;
|
|
this.getList();
|
|
},
|
|
|
|
// 判断按钮是否可用
|
|
async JudgmentButton(){
|
|
let judgmentPermissions1 = await this.judgmentPermissions("盘点审核");
|
|
if (judgmentPermissions1 > 0){
|
|
this.auditFlag=false,
|
|
this.voidFlag=false
|
|
}else {
|
|
this.auditFlag=true,
|
|
this.voidFlag=true
|
|
}
|
|
let judgmentPermissions2 = await this.judgmentPermissions("盘点入库");
|
|
if (judgmentPermissions2 > 0){
|
|
this.storageFlag = false
|
|
}else {
|
|
this.storageFlag = true
|
|
}
|
|
let judgmentPermissions3 = await this.judgmentPermissions("盘点废止");
|
|
if (judgmentPermissions3 > 0){
|
|
this.voidFlag=false
|
|
}else {
|
|
this.voidFlag=true
|
|
}
|
|
},
|
|
|
|
// 判断权限
|
|
async judgmentPermissions(data) {
|
|
let fil ={
|
|
auditPrem:data
|
|
}
|
|
return await getAuditPremApi(fil).then(res => {
|
|
return res.data
|
|
});
|
|
},
|
|
|
|
// 保存并审核
|
|
audit(){
|
|
// 保存
|
|
let number = this.saveInventory();
|
|
if (number != -1) {
|
|
// 审核
|
|
let fil ={
|
|
id: this.inventoryId
|
|
}
|
|
console.log(" id: this.purchaseId",fil)
|
|
auditInventoryApi(fil).then(res => {
|
|
if (res.data) {
|
|
this.state = 'ysh'
|
|
this.$modal.msgSuccess("审核成功");
|
|
this.goToAbout()
|
|
} else {
|
|
this.$modal.msgWarning("暂无审核权限");
|
|
}
|
|
})
|
|
}
|
|
},
|
|
|
|
// 入库
|
|
storage() {
|
|
let this_ = this;
|
|
if (this_.inventoryNo.inventoryNo == null) {
|
|
this.$modal.msgWarning("请先选择进货单号");
|
|
return;
|
|
}else if (this_.inventoryNo.inventoryDate==null) {
|
|
this.$modal.msgWarning("请先选择进货时间");
|
|
return;
|
|
}
|
|
this.$confirm('确认后盘点中的对应油品入库油罐库存将发生变化,且不可逆,确认已按照盘点数量入库吗?', '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
}).then(() => {
|
|
// 审核
|
|
let fil ={
|
|
id: this.inventoryId
|
|
}
|
|
storageInventoryApi(fil).then(res => {
|
|
this.state = 'qrts'
|
|
this.$modal.msgWarning("入库成功");
|
|
})
|
|
}).catch(() => {
|
|
this.$message({
|
|
type: 'info',
|
|
message: '已取消'
|
|
});
|
|
});
|
|
},
|
|
// 作废
|
|
abolition(){
|
|
if (this.inventoryId < 0) {
|
|
this.$modal.msgWarning("数据未保存,不可废弃");
|
|
return;
|
|
}
|
|
this.$confirm('确定要废弃盘点好的数据吗', '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
}).then(() => {
|
|
let fil ={
|
|
id: this.inventoryId
|
|
}
|
|
abolitionInventoryApi(fil).then(res => {
|
|
if (res.data) {
|
|
this.state = 'yzf'
|
|
this.$modal.msgWarning("作废成功");
|
|
this.goToAbout()
|
|
} else {
|
|
this.$modal.msgWarning("暂无作废权限");
|
|
}
|
|
})
|
|
}).catch(() => {
|
|
this.$message({
|
|
type: 'info',
|
|
message: '已取消'
|
|
});
|
|
})
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
|
|
.app-container{
|
|
width: 100%;
|
|
height: 100%;
|
|
background: #f6f8f9;
|
|
margin: 0px 0px 0px 0px;
|
|
padding: 0px;
|
|
}
|
|
.box {
|
|
height: 80%;
|
|
width: 212px;
|
|
margin-right: 10px;
|
|
background: #FFFFFF;
|
|
border: 1px solid #FF9655;
|
|
border-radius: 10px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
align-items: start;
|
|
padding-left: 20px;
|
|
|
|
}
|
|
</style>
|