375 lines
12 KiB
Vue
375 lines
12 KiB
Vue
![]() |
<template>
|
||
|
<div class="app-container">
|
||
|
<el-card >
|
||
|
<div slot="header" class="clearfix">
|
||
|
<i class="el-icon-back" @click="goToAbout">返回 | </i>
|
||
|
<!-- <el-link icon="el-icon-edit" :underline="false" @click="goToAbout">编辑</el-link>-->
|
||
|
<span> 盘点详情</span>
|
||
|
</div>
|
||
|
<div style="height: 90px; display: flex; justify-content: space-between;">
|
||
|
<div style="height: 100%; width: 50%; display: flex; justify-content: space-between;">
|
||
|
<div style="height: 100%; width: 70%; display: flex; justify-content: space-between;">
|
||
|
<div class="box">
|
||
|
<span>{{purchaseForm.totalAmount}}</span>
|
||
|
<span>总金额</span>
|
||
|
</div>
|
||
|
<div class="box">
|
||
|
<span>{{purchaseForm.productQuantity}}</span>
|
||
|
<span>商品数量</span>
|
||
|
</div>
|
||
|
<div class="box">
|
||
|
<span>{{purchaseForm.quantityPurchased}}</span>
|
||
|
<span>进货数量</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="purchaseForm.orderNumber"
|
||
|
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="purchaseForm.orderDate"
|
||
|
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" v-if="state=='await'" :disabled="saveFlag" @click="save()">保存</el-button>
|
||
|
<el-button type="success" v-if="state=='await'" :disabled="auditFlag" @click="audit">保存并审核</el-button>
|
||
|
<el-button type="success" v-if="state=='ysh'" :disabled="auditFlag" @click="storage">盘点并处理库存</el-button>
|
||
|
<el-button type="warning" v-if="state =='await' || state=='ysh'" :disabled="voidFlag" @click="abolition()">作废</el-button>
|
||
|
</div>
|
||
|
|
||
|
</div>
|
||
|
</el-card>
|
||
|
|
||
|
|
||
|
<el-card style="margin-top: 20px" >
|
||
|
<el-row :gutter="10" class="mb8">
|
||
|
<el-col :span="1.5">
|
||
|
<el-button
|
||
|
type="primary"
|
||
|
icon="el-icon-plus"
|
||
|
@click="commodityAdd"
|
||
|
>添加进货</el-button>
|
||
|
|
||
|
</el-col>
|
||
|
<el-col :span="1.5">
|
||
|
|
||
|
<el-alert
|
||
|
title="为了保证盘点我准确性,请在非收银期间段内进行盘点、否则会导致盘点信息异常"
|
||
|
:closable="false"
|
||
|
type="error">
|
||
|
</el-alert>
|
||
|
</el-col>
|
||
|
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
|
||
|
</el-row>
|
||
|
<el-table ref="tables"
|
||
|
v-loading="loading"
|
||
|
:data="detailsList"
|
||
|
:default-sort="defaultSort">
|
||
|
<el-table-column label="油罐名称" align="center" prop="tankName"/>
|
||
|
<el-table-column label="油品名称" align="center" prop="numberName"/>
|
||
|
<el-table-column label="当前均进价" align="center" prop="currentAveragePrice" />
|
||
|
<el-table-column label="当前库存升数(L)" align="center" prop="currentInventoryVolume"/>
|
||
|
<el-table-column label="盘点升数(L)" align="center" prop="inventoryVolume">
|
||
|
<template slot-scope="scope">
|
||
|
<el-input-number :disabled="false" v-model="scope.row.inventoryVolume" @change="change(scope.row)" controls-position="right" :min="0" :max="100000000" :step="1" 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' || state=='ysh'"label="操作" align="center" class-name="small-padding fixed-width">
|
||
|
<template slot-scope="scope">
|
||
|
<el-button
|
||
|
size="mini"
|
||
|
type="text"
|
||
|
icon="el-icon-edit"
|
||
|
@click="commodityDel(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"-->
|
||
|
<!-- />-->
|
||
|
</el-card>
|
||
|
|
||
|
|
||
|
<!-- <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="commodityForm" label-width="80px">-->
|
||
|
<!-- <el-row :gutter="24">-->
|
||
|
<!-- <el-col :span="10">-->
|
||
|
<!-- <el-form-item label="选择油号">-->
|
||
|
<!-- <el-select v-model="commodityForm.numberId" placeholder="请选择油商品分类" style="width:100%" @change="chooseOilNumber()">-->
|
||
|
<!-- <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"></el-input>-->
|
||
|
<!-- </el-form-item>-->
|
||
|
<!-- </el-col>-->
|
||
|
<!-- <el-col :span="4">-->
|
||
|
<!-- <el-button type="primary" @click="inquireTank()">查询</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="当前均价(元/升)" align="center" prop="discountedPrice" />-->
|
||
|
<!-- <el-table-column label="当前库存(L)" align="center" prop="storedQuantity"/>-->
|
||
|
<!-- </el-table>-->
|
||
|
<!-- </el-main>-->
|
||
|
<!-- </el-container>-->
|
||
|
<!-- <div slot="footer" class="dialog-footer">-->
|
||
|
<!-- <el-button type="primary" @click="addOrder">确 定</el-button>-->
|
||
|
<!-- <el-button @click="cancel">取 消</el-button>-->
|
||
|
<!-- </div>-->
|
||
|
<!-- </el-dialog>-->
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
</div>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import {getAuditPremApi} from "@/api/oilConfig/staff";
|
||
|
import {abolitionInventoryApi, auditInventoryApi, storageInventoryApi} from "@/api/oilConfig/oilInventory";
|
||
|
|
||
|
export default {
|
||
|
name: "details",
|
||
|
|
||
|
data() {
|
||
|
return {
|
||
|
detailsList: [],
|
||
|
commodityForm:{
|
||
|
|
||
|
},
|
||
|
purchaseForm: {
|
||
|
orderNumber: "",
|
||
|
approvalStatus: "",
|
||
|
orderDate: "",
|
||
|
totalAmount: 0, //总金额
|
||
|
productQuantity: 0, //商品数量
|
||
|
quantityPurchased: 0 //进货数量
|
||
|
} ,
|
||
|
state:'',
|
||
|
|
||
|
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" },
|
||
|
],
|
||
|
},
|
||
|
}
|
||
|
},
|
||
|
|
||
|
async created() {
|
||
|
|
||
|
},
|
||
|
methods: {
|
||
|
// 页面跳转
|
||
|
goToAbout() {
|
||
|
this.$router.push('/convenienceStore/purchase/details');
|
||
|
},
|
||
|
commodityAdd() {
|
||
|
|
||
|
},
|
||
|
commodityDel() {
|
||
|
|
||
|
},
|
||
|
// 刷新订单编号
|
||
|
refresh() {
|
||
|
let timestamp = new Date().getTime();
|
||
|
let min = 100; // 最小的四位数是 1000
|
||
|
let max = 999; // 最大的四位数是 9999
|
||
|
let randomFourDigitNumber = Math.floor(Math.random() * (max - min + 1)) + min;
|
||
|
this.inventoryNo.inventoryNo = timestamp+randomFourDigitNumber.toString();
|
||
|
},
|
||
|
|
||
|
// 判断按钮是否可用
|
||
|
async JudgmentButton(){
|
||
|
let judgmentPermissions1 = await this.judgmentPermissions("盘点审核");
|
||
|
if (judgmentPermissions1 > 0){
|
||
|
this.auditFlag=false,
|
||
|
this.voidFlag=false
|
||
|
}
|
||
|
let judgmentPermissions2 = await this.judgmentPermissions("盘点入库");
|
||
|
if (judgmentPermissions2 > 0){
|
||
|
this.storageFlag = false
|
||
|
}
|
||
|
|
||
|
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
|
||
|
});
|
||
|
},
|
||
|
|
||
|
|
||
|
// 保存并审核
|
||
|
save(){
|
||
|
// 保存
|
||
|
let number = this.saveInventory();
|
||
|
if (number != -1) {
|
||
|
// 审核
|
||
|
let fil ={
|
||
|
id: this.inventoryId
|
||
|
}
|
||
|
console.log(" id: this.purchaseId",fil)
|
||
|
auditInventoryApi(fil).then(res => {
|
||
|
this.state = 'ysh'
|
||
|
this.$modal.msgWarning("审核成功");
|
||
|
this.goToAbout()
|
||
|
})
|
||
|
}
|
||
|
},
|
||
|
|
||
|
// 入库
|
||
|
audit() {
|
||
|
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>
|
||
|
.app-container{
|
||
|
width: 100%;
|
||
|
height: 100%;
|
||
|
background: #f6f8f9;
|
||
|
}
|
||
|
</style>
|