详情页结束

详情页结束
This commit is contained in:
shawnzhang 2019-05-29 15:23:20 +08:00
parent 95f77f4b5f
commit b7f0a75891
18 changed files with 605 additions and 134 deletions

View file

@ -27,8 +27,8 @@ export function deliverGoodsList(query) {
if (query.deliverNumber !== '' && query.deliverNumber !== null && query.deliverNumber !== undefined) {
params.append('deliverNumber', query.deliverNumber) // 你要传给后台的参数值 key/value
}
if (query.sourceNUmber !== '' && query.sourceNUmber !== null && query.sourceNUmber !== undefined) {
params.append('sourceNUmber', query.sourceNUmber) // 你要传给后台的参数值 key/value
if (query.sourceNumber !== '' && query.sourceNumber !== null && query.sourceNumber !== undefined) {
params.append('sourceNumber', query.sourceNumber) // 你要传给后台的参数值 key/value
}
if (query.sourceType !== '' && query.sourceType !== null && query.sourceType !== undefined) {
params.append('sourceType', query.sourceType) // 你要传给后台的参数值 key/value

View file

@ -31,6 +31,9 @@ export function searchsaleOut(query) {
if (query.outPersonId !== '' && query.outPersonId !== null && query.outPersonId !== undefined) {
params.append('outPersonId', query.outPersonId) // 你要传给后台的参数值 key/value
}
if (query.sourceNumber !== '' && query.sourceNumber !== null && query.sourceNumber !== undefined) {
params.append('sourceNumber', query.sourceNumber) // 你要传给后台的参数值 key/value
}
if (query.saleRepositoryId !== '' && query.saleRepositoryId !== null && query.saleRepositoryId !== undefined) {
params.append('saleRepositoryId', query.saleRepositoryId) // 你要传给后台的参数值 key/value
}

View file

@ -39,6 +39,9 @@ export function searchstockRetreat(query) {
if (query.sourceType !== '' && query.sourceType !== null && query.sourceType !== undefined) {
params.append('sourceType', query.sourceType) // 你要传给后台的参数值 key/value
}
if (query.sourceNumber !== '' && query.sourceNumber !== null && query.sourceNumber !== undefined) {
params.append('sourceNumber', query.sourceNumber) // 你要传给后台的参数值 key/value
}
if (query.judgeStat !== '' && query.judgeStat !== null && query.judgeStat !== undefined) {
params.append('judgeStat', query.judgeStat) // 你要传给后台的参数值 key/value
}

View file

@ -1390,7 +1390,9 @@ export default {
heji8: '订单成本金额合计',
heji9: '赠品数量合计',
heji10: '赠品金额合计',
heji11: '其他费用合计'
heji11: '其他费用合计',
profit: '利润',
ProfitMargin: '利润率'
},
SaleOrder: {
title: '订单主题',

View file

@ -1,18 +1,18 @@
<template>
<div class="app-container">
<el-card class="box-card">
<el-card class="box-card" shadow="never">
<div slot="header" class="clearfix">
<span>下载模板 </span>
</div>
<a href="/static/file/仓库数据表.xlsx"><el-button type="primary">下载模板</el-button></a>
</el-card>
<el-card class="box-card" style="margin-top: 20px">
<el-card class="box-card" style="margin-top: 20px" shadow="never">
<div slot="header" class="clearfix">
<span>上传Excel表格</span>
</div>
<upload-excel-component :on-success="handleSuccess" :before-upload="beforeUpload"/>
</el-card>
<el-card class="box-card" style="margin-top: 20px">
<el-card class="box-card" shadow="never" style="margin-top: 20px">
<div slot="header" class="clearfix">
<span>表格数据</span>
<el-button style="float: right; padding: 3px 0" type="primary" @click="uploads">导入数据</el-button>

View file

@ -280,11 +280,112 @@
</el-form>
</div>
</el-card>
<el-card class="box-card" style="margin-top: 15px" shadow="never">
<h2 ref="fuzhu" class="form-name" style="font-size: 16px;color: #606266;margin-top: -5px;">预收款记录</h2>
<div class="container" style="margin-top: 37px">
<el-table
:data="tableData2"
border
style="width: 100%">
<el-table-column
prop="receiptMoney"
align="center"
label="预收款金额"
min-width="150"/>
<el-table-column
prop="receiptDate"
align="center"
label="收款时间"
min-width="150"/>
<el-table-column
prop="closeTypeName"
align="center"
label="收款方式"
min-width="150"/>
<el-table-column
prop="receiptPersonName"
align="center"
label="收款人"
min-width="150"/>
</el-table>
</div>
</el-card>
<el-card class="box-card" style="margin-top: 15px" shadow="never">
<h2 ref="fuzhu" class="form-name" style="font-size: 16px;color: #606266;margin-top: -5px;">出库明细</h2>
<div class="container" style="margin-top: 37px">
<el-table
:data="tableData3"
border
style="width: 100%">
<el-table-column
prop="outDate"
align="center"
label="出库日期"
min-width="150"/>
<el-table-column
prop="saleRepositoryName"
align="center"
label="仓库"
min-width="150"/>
<el-table-column
prop="quantity"
align="center"
label="出库数量"
min-width="150"/>
<el-table-column
prop="outPersonName"
align="center"
label="出库人"
min-width="150"/>
<el-table-column
prop="receiptPersonName"
align="center"
label="状态"
min-width="150"/>
</el-table>
</div>
</el-card>
<el-card class="box-card" shadow="never" style="margin-top: 10px">
<h2 ref="geren" class="form-name" style="font-size: 16px;color: #606266;margin-top: -5px;">利润明细</h2>
<div class="container" style="margin-top: 37px">
<el-form ref="personalForm2" :model="personalForm" :inline="true" status-icon class="demo-ruleForm" label-width="130px">
<el-row>
<el-col :span="12">
<el-form-item :label="$t('SaleOut.heji2')" style="width: 100%;">
<span>{{ personalForm.allMoney }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('SaleOut.heji11')" style="width: 100%;">
<span>{{ personalForm.otherMoney }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('SaleOut.heji8')" style="width: 100%;">
<span>{{ personalForm.allCostMoney }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('SaleOut.profit')" style="width: 100%;">
<span>{{ personalForm.allMoney - personalForm.allCostMoney }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('SaleOut.ProfitMargin')" style="width: 100%;">
<span>{{ (personalForm.allMoney - personalForm.allCostMoney) / personalForm.allCostMoney }}</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</el-card>
</el-dialog>
</template>
<script>
import { productlist } from '@/api/public'
import { searchprepReceipt } from '@/api/PrepReceipt'
import { searchsaleOut } from '@/api/SaleOut'
export default {
filters: {
currencyFilter(status) {
@ -359,6 +460,16 @@ export default {
},
data() {
return {
//
tableData3: [],
saleOutparms: {
pageNum: 1,
pageSize: 9999,
sourceNumber: this.detaildata.number,
repositoryId: 0
},
//
tableData2: [],
//
heji1: '',
heji2: '',
@ -370,7 +481,14 @@ export default {
//
editVisible: this.detailcontrol,
//
personalForm: this.detaildata
personalForm: this.detaildata,
//
prepReceiptData: {
pageNum: 1,
pageSize: 9999,
sourceNumber: this.detaildata.number,
repositoryId: 0
}
}
},
watch: {
@ -382,9 +500,38 @@ export default {
this.list2 = this.personalForm.saleOrderDetailVos
this.list3 = this.personalForm.saleOrderCostDetails
this.reviewList = this.personalForm.approvalUseVos
this.prepReceiptData.sourceNumber = this.personalForm.number
this.getprepReceipt()
this.saleOutparms.sourceNumber = this.personalForm.number
this.getsaleOutLis()
}
},
methods: {
getsaleOutLis() {
searchsaleOut(this.saleOutparms).then(res => {
if (res.data.ret === 200) {
this.tableData3 = res.data.data.content.list.map(function(item) {
const needata = item.saleOutDetailVos.map(function(elem) {
return {
outDate: item.outDate,
saleRepositoryName: item.saleRepositoryName,
quantity: elem.quantity,
outPersonName: item.outPersonName
}
})
return needata
}).flat()
}
})
},
//
getprepReceipt() {
searchprepReceipt(this.prepReceiptData).then(res => {
if (res.data.ret === 200) {
this.tableData2 = res.data.data.content.list
}
})
},
//
planMoney(row) {
row.planMoney = row.basicPrice * row.planQuantity

View file

@ -180,7 +180,7 @@
</div>
</el-card>
<el-card class="box-card" style="margin-top: 15px" shadow="never">
<h2 ref="fuzhu" class="form-name" >赠品明细</h2>
<h2 ref="fuzhu" class="form-name" style="font-size: 16px;color: #606266;margin-top: -5px;">赠品明细</h2>
<div class="container">
<el-editable
ref="editable2"
@ -211,7 +211,7 @@
<el-card class="box-card" shadow="never" style="margin-top: 10px">
<h2 ref="geren" class="form-name" style="font-size: 16px;color: #606266;margin-top: -5px;">合计信息</h2>
<div class="container" style="margin-top: 37px">
<el-form ref="personalForm2" :model="personalForm" :rules="personalrules" :inline="true" status-icon class="demo-ruleForm" label-width="130px">
<el-form ref="personalForm2" :model="personalForm" :inline="true" status-icon class="demo-ruleForm" label-width="130px">
<el-row>
<el-col :span="12">
<el-form-item :label="$t('SaleOut.heji1')" style="width: 100%;">
@ -345,6 +345,40 @@
</el-form>
</div>
</el-card>
<el-card class="box-card" shadow="never" style="margin-top: 10px">
<h2 ref="geren" class="form-name" style="font-size: 16px;color: #606266;margin-top: -5px;">利润明细</h2>
<div class="container" style="margin-top: 37px">
<el-form ref="personalForm2" :model="personalForm" :inline="true" status-icon class="demo-ruleForm" label-width="130px">
<el-row>
<el-col :span="12">
<el-form-item :label="$t('SaleOut.heji2')" style="width: 100%;">
<span>{{ personalForm.allMoney }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('SaleOut.heji11')" style="width: 100%;">
<span>{{ personalForm.otherMoney }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('SaleOut.heji8')" style="width: 100%;">
<span>{{ personalForm.allCostMoney }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('SaleOut.profit')" style="width: 100%;">
<span>{{ personalForm.allMoney - personalForm.allCostMoney }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('SaleOut.ProfitMargin')" style="width: 100%;">
<span>{{ (personalForm.allMoney - personalForm.allCostMoney) / personalForm.allCostMoney }}</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</el-card>
</el-dialog>
</template>
@ -434,6 +468,8 @@ export default {
},
data() {
return {
huishou: '',
yushou: '',
//
heji1: '',
heji2: '',

View file

@ -582,7 +582,6 @@ export default {
this.transferPersonId = this.personalForm.transferPersonName
this.saleRepositoryId = this.personalForm.saleRepositoryName
this.outPersonId = this.personalForm.outPersonName
this.chooseType()
this.updatebatch()
}
},

View file

@ -78,10 +78,10 @@
<el-button @click="handleAddproduct">添加明细</el-button>
<!--<el-button type="danger" @click="deleteTreeData">删除</el-button>-->
</div>
<el-dialog :visible.sync="categoryVisible" title="添加明细" class="normal" width="600px" center>
<el-dialog :visible.sync="categoryVisible" :close-on-click-modal="false" :close-on-press-escape="false" :before-close="handlecancel2" title="添加明细" class="normal" width="600px" center>
<el-form ref="addCategoryForm" :model="addCategoryForm" class="demo-ruleForm" style="margin: 0 auto; width: 400px">
<el-form-item :label="$t('SalePlan.regionId')" label-width="100px" prop="type">
<el-cascader v-model="addCategoryForm.regionId" :options="provinceList" :props="props" placeholder="" style="width: 100%" @active-item-change="handleItemChange" @change="handlechange4"/>
<el-cascader v-model="addCategoryForm.regionId" :options="provinceList" :props="props" change-on-select placeholder="" style="width: 100%" @change="handleItemChange"/>
</el-form-item>
<el-form-item :label="$t('SalePlan.repositoryid')" label-width="100px">
<el-select v-model="addCategoryForm.repositoryid" placeholder="请选择门店" filterable style="width: 100%;" @change="changeValue">
@ -101,7 +101,7 @@
</el-form>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="handlesave2()">保存</el-button>
<el-button type="danger" @click="handlecancel()">取消</el-button>
<el-button type="danger" style="width: 98px;" @click="handlecancel2()">取消</el-button>
</span>
</el-dialog>
<div class="container">
@ -126,7 +126,7 @@
<!--操作-->
<div class="buttons" style="margin-top: 20px">
<el-button type="primary" style="background:#3696fd;border-color:#3696fd;width: 98px" @click="handlesave()">保存</el-button>
<el-button type="danger" @click="handlecancel()">取消</el-button>
<el-button type="danger" style="width: 98px" @click="handlecancel()">取消</el-button>
</div>
</div>
</div>
@ -278,6 +278,11 @@ export default {
this.getTreeId()
},
methods: {
//
handlecancel2() {
this.addCategoryForm.regionId = []
this.categoryVisible = false
},
//
getTreeId() {
getId().then(res => {
@ -359,21 +364,8 @@ export default {
},
//
handlechange4(val) {
const finalid = val[val.length - 1]
searchregionName(finalid).then(res => {
console.log(res)
})
searchRepository(finalid).then(res => {
console.log(res)
if (res.data.ret === 200) {
this.repositories = res.data.data.content.list
} else {
console.log('区域选择门店')
}
})
},
getPosition(val, cb) {
console.log(val)
const vm = this //
let params = {}
if (!val) { //
@ -393,9 +385,10 @@ export default {
}
listbyparentid(params).then((res) => {
if (!val) { //
vm.provinceList = res.data.data.content.map((e) => {
return { value: e.id, label: e.regionName, cities: [] }
})
// vm.provinceList = res.data.data.content.map((e) => {
// return { value: e.id, label: e.regionName, cities: [] }
// })
vm.provinceList = [{ value: this.$store.getters.regionId, label: this.$store.getters.regionName, cities: [] }]
} else if (val.length === 1) { //
vm.provinceList.map((item) => {
if (item.value === val[0]) {
@ -412,6 +405,7 @@ export default {
vm.provinceList.map((item) => {
if (item.value === val[0]) {
item.cities.map((value) => {
console.log('value', value)
if (value.value === val[1]) {
if (res.data.data.content === undefined) {
value.cities = null
@ -425,7 +419,6 @@ export default {
}
})
} else if (val.length === 3) { // 4
console.log(vm.provinceList)
vm.provinceList.map((item) => {
if (item.value === val[0]) {
item.cities.map((value) => {
@ -444,7 +437,6 @@ export default {
}
})
} else if (val.length === 4) { // 5
console.log(vm.provinceList)
vm.provinceList.map((item) => {
if (item.value === val[0]) {
item.cities.map((value) => {
@ -467,7 +459,6 @@ export default {
}
})
} else if (val.length === 5) { // 6
console.log(vm.provinceList)
vm.provinceList.map((item) => {
if (item.value === val[0]) {
item.cities.map((value) => {
@ -494,7 +485,6 @@ export default {
}
})
} else if (val.length === 6) { // 7
console.log(vm.provinceList)
vm.provinceList.map((item) => {
if (item.value === val[0]) {
item.cities.map((value) => {
@ -532,6 +522,18 @@ export default {
},
handleItemChange(val) {
this.getPosition(val)
const finalid = val[val.length - 1]
searchregionName(finalid).then(res => {
console.log(res)
})
searchRepository(finalid).then(res => {
console.log(res)
if (res.data.ret === 200) {
this.repositories = res.data.data.content.list
} else {
console.log('区域选择门店')
}
})
},
//
cleardeposit() {

View file

@ -284,11 +284,98 @@
</el-table>
</div>
</el-card>
<el-card class="box-card" style="margin-top: 15px" shadow="never">
<h2 ref="fuzhu" class="form-name" style="font-size: 16px;color: #606266;margin-top: -5px;">退货信息</h2>
<div class="container" style="margin-top: 37px">
<el-table
:data="stockRetreatData"
border
style="width: 100%">
<el-table-column
prop="number"
align="center"
label="退货单编号"
min-width="150"/>
<el-table-column
prop="productCode"
align="center"
label="物品编号"
min-width="150"/>
<el-table-column
prop="arrivalQuantity"
align="center"
label="关联单据"
min-width="150"/>
<el-table-column
prop="retreatQuantity"
align="center"
label="退货数量"
min-width="150"/>
<el-table-column
prop="retreatReason"
align="center"
label="退货原因"
min-width="150"/>
<el-table-column
prop="retreatDate"
align="center"
label="退货日期"
min-width="150"/>
<el-table-column
prop="stockPersonName"
align="center"
label="退货人"
min-width="150"/>
</el-table>
</div>
</el-card>
<el-card class="box-card" style="margin-top: 15px" shadow="never">
<h2 ref="fuzhu" class="form-name" style="font-size: 16px;color: #606266;margin-top: -5px;">入库信息</h2>
<div class="container" style="margin-top: 37px">
<el-table
:data="stockenterData"
border
style="width: 100%">
<el-table-column
prop="enterNumber"
align="center"
label="入库单编号"
min-width="150"/>
<el-table-column
prop="productCode"
align="center"
label="物品编号"
min-width="150"/>
<el-table-column
prop="arrivalQuantity"
align="center"
label="关联单据"
min-width="150"/>
<el-table-column
prop="basicQuantity"
align="center"
label="入库数量"
min-width="150"/>
<el-table-column
prop="enterPersonName"
align="center"
label="入库人"
min-width="150"/>
<el-table-column
prop="enterDate"
align="center"
label="入库时间"
min-width="150"/>
</el-table>
</div>
</el-card>
</el-dialog>
</template>
<script>
import { checkreportlist } from '@/api/CheckReport'
import { searchstockRetreat } from '@/api/StockRetreat'
import { stockenterlist } from '@/api/Stockenter'
export default {
filters: {
isVatFilter(status) {
@ -353,6 +440,22 @@ export default {
},
data() {
return {
//
stockenterData: [],
stockenterlistdata: {
sourceNumber: this.detaildata.number,
pagenum: 1,
pagesize: 999,
repositoryId: 0
},
// 退
stockRetreatData: [],
stockRetreatlistdata: {
sourceNumber: this.detaildata.number,
pageNum: 1,
pageSize: 999,
repositoryId: 0
},
//
Checkreportdata: [],
checkreportData: {
@ -382,9 +485,54 @@ export default {
this.reviewList = this.personalForm.approvalUseVos
this.checkreportData.sourceNumber = this.detaildata.number
this.getcheckreportlist()
this.stockRetreatlistdata.sourceNumber = this.detaildata.number
this.getstockRetreat()
this.stockenterlistdata.sourceNumber = this.detaildata.number
this.getstockenterlist()
}
},
methods: {
getstockenterlist() {
stockenterlist(this.stockenterlistdata).then(res => {
if (res.data.ret === 200) {
this.stockenterData = res.data.data.content.list.map(function(item) {
const needata = item.stockEnterDetailVos.map(function(elem) {
return {
enterNumber: item.enterNumber,
productCode: elem.productCode,
arrivalQuantity: '采购到货单',
basicQuantity: elem.basicQuantity,
enterPersonName: item.enterPersonName,
enterDate: item.enterDate
}
})
return needata
}).flat()
}
})
},
// 退
getstockRetreat() {
searchstockRetreat(this.stockRetreatlistdata).then(res => {
if (res.data.ret === 200) {
this.stockRetreatData = res.data.data.content.list.map(function(item) {
const needata = item.stockRetreatDetailVos.map(function(elem) {
return {
number: item.number,
productCode: elem.productCode,
arrivalQuantity: '采购到货单',
retreatQuantity: elem.retreatQuantity,
retreatReason: elem.retreatReason,
retreatDate: item.retreatDate,
stockPersonName: item.stockPersonName
}
})
return needata
}).flat()
}
})
},
//
getcheckreportlist() {
checkreportlist(this.checkreportData).then(res => {
if (res.data.ret === 200) {

View file

@ -26,6 +26,12 @@
<my-supplier :control.sync="empcontrol" @supplierName="supplierName"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('StockArrival.sourceNumber')" :rules="personalForm.sourceType === '2'" prop="sourceNumber" style="width: 100%;">
<el-input v-model="personalForm.sourceNumber" :disabled="addsouce" style="margin-left: 18px;width:200px" clearable @focus="handleAddSouce"/>
<my-order :ordercontrol.sync="ordercontrol" :supp.sync="supp" @order="order" @allOrderinfo="allOrderinfo"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('StockArrival.stockPersonId')" prop="stockPersonId" style="width: 100%;">
<el-input v-model="stockPersonId" style="margin-left: 18px;width: 200px" clearable @focus="handlechooseStock"/>
@ -125,8 +131,6 @@
<div class="buttons" style="margin-top: 35px;margin-bottom: 10px;">
<el-button :disabled="addpro" @click="handleAddproduct">添加商品</el-button>
<my-detail :control.sync="control" :supp.sync="supp" @product="productdetail"/>
<el-button :disabled="addsouce" style="width: 130px" @click="handleAddSouce">从源单中选择</el-button>
<my-order :ordercontrol="ordercontrol" :supp.sync="supp" @order="order" @allOrderinfo="allOrderinfo"/>
<el-button type="danger" @click="$refs.editable.removeSelecteds()">删除</el-button>
</div>
<div class="container">
@ -274,6 +278,13 @@ export default {
callback()
}
}
const validatePass2 = (rule, value, callback) => {
if (this.personalForm.sourceNumber === undefined || this.personalForm.sourceNumber === null || this.personalForm.sourceNumber === '') {
callback(new Error('请选择源单编号'))
} else {
callback()
}
}
const checkRate = (rule, value, callback) => {
console.log(value)
if (value === 0 || value === '' || value === null || value === undefined) {
@ -350,6 +361,9 @@ export default {
deptId: [
{ required: true, message: '请选择部门', trigger: 'change' }
],
sourceNumber: [
{ required: true, validator: validatePass2, trigger: 'change' }
],
sourceType: [
{ required: true, message: '请选择源单类型', trigger: 'change' }
],
@ -481,10 +495,13 @@ export default {
this.addsouce = false
this.addpro = true
this.$refs.editable.clear()
this.$refs.personalForm.clearValidate()
} else if (this.personalForm.sourceType === '2') {
this.addpro = false
this.addsouce = true
this.personalForm.sourceNumber = ''
this.$refs.editable.clear()
this.$refs.personalForm.clearValidate()
}
},
//
@ -510,8 +527,12 @@ export default {
}
},
allOrderinfo(val) {
this.personalForm.sourceNumber = val.orderNumber
this.personalForm.supplierId = val.supplierId
this.supplierId = val.supplierName
this.allOthermoney = val.otherMoney
this.personalForm.stockPersonId = val.stockPersonId
this.stockPersonId = val.stockPersonName
},
//
updatecountry() {

View file

@ -4,7 +4,7 @@
<el-card class="box-card" style="margin-top: 63px" shadow="never">
<h2 ref="geren" class="form-name" style="font-size: 16px;color: #606266;margin-top: -5px;">基本信息</h2>
<div class="container" style="margin-top: 37px">
<el-form :model="personalForm" :inline="true" status-icon class="demo-ruleForm" label-width="130px">
<el-form :model="personalForm" :inline="true" status-icon class="demo-ruleForm" label-width="100px" style="margin-left: 30px;">
<el-row>
<el-col :span="12">
<el-form-item :label="$t('StockInquiry.inquiryTitle')" style="width: 100%;">

View file

@ -271,6 +271,14 @@ export default {
callback()
}
}
const validatePass4 = (rule, value, callback) => {
console.log(this.supplierId)
if (this.personalForm.deptId === undefined || this.personalForm.deptId === null || this.personalForm.deptId === '') {
callback(new Error('请选择部门'))
} else {
callback()
}
}
const validatePass3 = (rule, value, callback) => {
if (this.personalForm.sourceNumber === undefined || this.personalForm.sourceNumber === null || this.personalForm.sourceNumber === '') {
callback(new Error('请选择源单编号'))
@ -358,7 +366,7 @@ export default {
{ required: true, validator: validatePass3, trigger: 'change' }
],
deptId: [
{ required: true, message: '请选择部门', trigger: 'change' }
{ required: true, validator: validatePass4, trigger: 'change' }
],
sourceType: [
{ required: true, message: '请选择源单类型', trigger: 'change' }

View file

@ -199,9 +199,9 @@ export default {
},
sourceTypeFilter(status) {
const statusMap = {
1: '采购申请',
2: '采购需求',
3: '无来源'
1: '采购到货单',
2: '无来源',
3: '采购入库单'
}
return statusMap[status]
}

View file

@ -113,6 +113,40 @@
</el-editable>
</div>
</el-card>
<el-card class="box-card" shadow="never" style="margin-top: 10px">
<h2 ref="geren" class="form-name" style="font-size: 16px;color: #606266;margin-top: -5px;">合计信息</h2>
<div class="container" style="margin-top: 37px">
<el-form :inline="true" status-icon class="demo-ruleForm" label-width="130px">
<el-row>
<el-col :span="12">
<el-form-item label="退货数量总计" style="width: 100%;">
<span>{{ personalForm.allQuantity }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="金额合计" style="width: 100%;">
<span>{{ personalForm.allMoney }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="税额合计" style="width: 100%;">
<span>{{ personalForm.allTaxMoney }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="抵应付账款" style="width: 100%;">
<span>{{ personalForm.allMoney }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="应退货款合计" style="width: 100%;">
<span>{{ personalForm.allRetreatMoney }}</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</el-card>
<!--审核状态-->
<el-card class="box-card" style="margin-top: 15px" shadow="never">
<h2 ref="fuzhu" class="form-name" style="font-size: 16px;color: #606266;margin-top: -5px;">审批记录</h2>
@ -148,40 +182,6 @@
</el-table>
</div>
</el-card>
<el-card class="box-card" shadow="never" style="margin-top: 10px">
<h2 ref="geren" class="form-name" style="font-size: 16px;color: #606266;margin-top: -5px;">合计信息</h2>
<div class="container" style="margin-top: 37px">
<el-form :inline="true" status-icon class="demo-ruleForm" label-width="130px">
<el-row>
<el-col :span="12">
<el-form-item label="退货数量总计" style="width: 100%;">
<span>{{ personalForm.allQuantity }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="金额合计" style="width: 100%;">
<span>{{ personalForm.allMoney }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="税额合计" style="width: 100%;">
<span>{{ personalForm.allTaxMoney }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="抵应付账款" style="width: 100%;">
<span>{{ personalForm.allMoney }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="应退货款合计" style="width: 100%;">
<span>{{ personalForm.allRetreatMoney }}</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</el-card>
<el-card class="box-card" style="margin-top: 15px" shadow="never">
<h2 ref="geren" class="form-name" style="font-size: 16px;color: #606266;margin-top: -5px;">备注信息</h2>
<div class="container" style="margin-top: 37px">

View file

@ -26,6 +26,12 @@
<my-supplier :control.sync="empcontrol" @supplierName="supplierName"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('StockRetreat.sourceNumber')" :rules="personalForm.sourceType === '2'" prop="sourceNumber" style="width: 100%;">
<el-input v-model="personalForm.sourceNumber" :disabled="addsouce" style="margin-left: 18px;width:200px" clearable @focus="handleAddSouce"/>
<my-arrival :arrivalcontrol.sync="arrivalcontrol" @arrival="arrival" @allarrivalinfo="allarrivalinfo"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('StockRetreat.stockPersonId')" prop="stockPersonId" style="width: 100%;">
<el-input v-model="stockPersonId" style="margin-left: 18px;width: 200px" clearable @focus="handlechooseStock"/>
@ -126,8 +132,6 @@
<div class="buttons" style="margin-top: 35px;margin-bottom: 10px;">
<el-button :disabled="addpro" @click="handleAddproduct">添加商品</el-button>
<my-detail :control.sync="control" @product="productdetail"/>
<el-button :disabled="addsouce" style="width: 130px" @click="handleAddSouce">从源单中选择</el-button>
<my-arrival :arrivalcontrol.sync="arrivalcontrol" @arrival="arrival" @allarrivalinfo="allarrivalinfo"/>
<el-button type="danger" @click="$refs.editable.removeSelecteds()">删除</el-button>
</div>
<div class="container">
@ -260,6 +264,13 @@ export default {
callback()
}
}
const validatePass3 = (rule, value, callback) => {
if (this.personalForm.sourceNumber === undefined || this.personalForm.sourceNumber === null || this.personalForm.sourceNumber === '') {
callback(new Error('请选择源单编号'))
} else {
callback()
}
}
return {
//
choosedata: [],
@ -327,6 +338,9 @@ export default {
sourceType: [
{ required: true, message: '请选择源单类型', trigger: 'change' }
],
sourceNumber: [
{ required: true, validator: validatePass3, trigger: 'change' }
],
stockTypeId: [
{ required: true, message: '请选择采购类别', trigger: 'change' }
]
@ -442,10 +456,13 @@ export default {
this.addsouce = false
this.addpro = true
this.$refs.editable.clear()
this.$refs.personalForm.clearValidate()
} else if (this.personalForm.sourceType === '2') {
this.addpro = false
this.addsouce = true
this.personalForm.sourceNumber = ''
this.$refs.editable.clear()
this.$refs.personalForm.clearValidate()
}
},
//
@ -459,6 +476,7 @@ export default {
}
},
allarrivalinfo(val) {
this.personalForm.sourceNumber = val.number
this.personalForm.supplierId = val.supplierId
this.supplierId = val.supplierName
this.personalForm.stockTypeId = val.stockTypeId

View file

@ -1,76 +1,54 @@
<template>
<el-dialog :visible.sync="editVisible" :detailcontrol="detailcontrol" :detaildata="detaildata" :close-on-press-escape="false" append-to-body class="edit" top="10px" title="修改采购调拨单" @close="$emit('update:detailcontrol', false)">
<el-dialog :visible.sync="editVisible" :detailcontrol="detailcontrol" :detaildata="detaildata" :close-on-press-escape="false" :title="personalForm.id +' 采购订单详情信息'" append-to-body width="1010px" class="edit" top="-10px" @close="$emit('update:detailcontrol', false)">
<!--基本信息-->
<el-card class="box-card">
<h2 ref="geren" class="form-name">基本信息</h2>
<div class="container">
<el-form ref="personalForm" :model="personalForm" :rules="personalrules" :inline="true" status-icon class="demo-ruleForm" label-width="100px" style="margin-left: 30px;">
<el-card class="box-card" style="margin-top: 63px" shadow="never">
<h2 ref="geren" class="form-name" style="font-size: 16px;color: #606266;margin-top: -5px;">基本信息</h2>
<div class="container" style="margin-top: 37px">
<el-form ref="personalForm" :model="personalForm" :inline="true" status-icon class="demo-ruleForm" label-width="100px" style="margin-left: 30px;">
<el-row>
<el-col :span="6">
<el-col :span="12">
<el-form-item :label="$t('Storagemove.title')" style="width: 100%;">
<el-input v-model="personalForm.title" placeholder="请输入调拨单主题" style="margin-left: 18px;width: 150px" disabled/>
<span>{{ personalForm.title }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="12">
<el-form-item :label="$t('Storagemove.applicationName')" prop="applyPersonId" style="width: 100%;">
<el-input v-model="applyPersonId" placeholder="请选择调拨申请人" style="margin-left: 18px;width: 150px" disabled/>
<span>{{ personalForm.applyPersonName }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="12">
<el-form-item :label="$t('Storagemove.requestDeptId')" prop="requestDeptId" style="width: 100%;">
<el-select v-model="personalForm.requestDeptId" placeholder="请选择要货部门" style="margin-left: 18px;width: 150px" disabled >
<el-option
v-for="(item, index) in depts"
:key="index"
:value="item.id"
:label="item.deptName"/>
</el-select>
<span>{{ personalForm.requestDeptName }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="12">
<el-form-item :label="$t('Storagemove.moveInRepository')" prop="moveInRepository" style="width: 100%;">
<el-input v-model="moveInRepository" placeholder="请选择调入仓库" style="margin-left: 18px;width: 150px" disabled @focus="handlechooseDep"/>
<span>{{ personalForm.moveInRepositoryName }}</span>
</el-form-item>
<my-depot :depotcontrol.sync="depotcontrol" @depotname="depotname"/>
</el-col>
<el-col :span="6">
<el-col :span="12">
<el-form-item :label="$t('Storagemove.requestArrivalDate')" label-width="110px" prop="requestArrivalDate" style="width: 100%;">
<el-date-picker
v-model="personalForm.requestArrivalDate"
type="date"
placeholder="选择要求到货日期"
value-format="yyyy-MM-dd"
style="margin-left: 8px;width: 150px"
disabled/>
<span>{{ personalForm.requestArrivalDate }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="12">
<el-form-item :label="$t('Storagemove.moveReason')" style="width: 100%;">
<el-input v-model="personalForm.moveReason" placeholder="请输入调拨原因" style="margin-left: 18px;width: 150px" disabled/>
<span>{{ personalForm.moveReason }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="12">
<el-form-item :label="$t('Storagemove.departmentId')" prop="departmentId" style="width: 100%;">
<el-select v-model="personalForm.departmentId" placeholder="请选择调货部门" style="margin-left: 18px;width: 150px" disabled >
<el-option
v-for="(item, index) in depts"
:key="index"
:value="item.id"
:label="item.deptName"/>
</el-select>
<span>{{ personalForm.departmentName }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="12">
<el-form-item :label="$t('Storagemove.moveOutRepository')" prop="moveOutRepository" style="width: 100%;">
<el-input v-model="moveOutRepository" placeholder="请选择调出仓库" style="margin-left: 18px;width: 150px" disabled @focus="handlechooseRep"/>
<span>{{ personalForm.moveOutRepositoryName }}</span>
</el-form-item>
<my-repository :repositorycontrol.sync="repositorycontrol" @repositoryname="repositoryname"/>
</el-col>
<el-col :span="6">
<el-col :span="12">
<el-form-item :label="$t('Storagemove.businessStat')" prop="businessStat" style="width: 100%;">
<el-select v-model="personalForm.businessStat" placeholder="请选择业务" style="margin-left: 10px;width: 150px" disabled >
<el-option value="1" label="调拨申请"/>
</el-select>
<span>{{ personalForm.businessStat | businessStatFilter }}</span>
</el-form-item>
</el-col>
</el-row>
@ -78,8 +56,8 @@
</div>
</el-card>
<!--调拨单明细-->
<el-card class="box-card" style="margin-top: 15px">
<h2 ref="fuzhu" class="form-name">调出明细</h2>
<el-card class="box-card" style="margin-top: 15px" shadow="never">
<h2 ref="fuzhu" class="form-name" style="font-size: 16px;color: #606266;margin-top: -5px;">调出明细</h2>
<div class="container">
<el-editable
ref="editable"
@ -91,7 +69,6 @@
border
size="medium"
style="width: 100%">
<el-editable-column type="selection" width="55" align="center"/>
<el-editable-column label="编号" width="55" align="center" type="index"/>
<el-editable-column prop="locationCode" align="center" label="货位" width="200px"/>
<el-editable-column prop="batch" align="center" label="批次" width="200px"/>
@ -113,8 +90,8 @@
</div>
</el-card>
<!--调入数据-->
<el-card class="box-card" style="margin-top: 15px">
<h2 ref="fuzhu" class="form-name">调入明细</h2>
<el-card class="box-card" style="margin-top: 15px" shadow="never">
<h2 ref="fuzhu" class="form-name" style="font-size: 16px;color: #606266;margin-top: -5px;">调入明细</h2>
<div class="container">
<el-editable
ref="editable"
@ -126,7 +103,6 @@
border
size="medium"
style="width: 100%">
<el-editable-column type="selection" width="55" align="center"/>
<el-editable-column label="编号" width="55" align="center" type="index"/>
<el-editable-column prop="locationCode" align="center" label="货位" width="200px"/>
<el-editable-column prop="batch" align="center" label="批次" width="200px"/>
@ -182,9 +158,50 @@
</el-table>
</div>
</el-card>
<div class="buttons" style="margin-top: 20px;margin-left: 30px">
<el-button type="danger" @click="handlecancel()">取消</el-button>
</div>
<el-card class="box-card" style="margin-top: 15px" shadow="never">
<h2 ref="fuzhu" class="form-name" style="font-size: 16px;color: #606266;margin-top: -5px;">配送信息</h2>
<div class="container" style="margin-top: 37px">
<el-table
:data="deliverGoodsdata"
border
style="width: 100%">
<el-table-column
prop="deliverNumber"
align="center"
label="配送单号"
min-width="150"/>
<el-table-column
prop="requireArriveDate"
align="center"
label="配送时间"
min-width="150"/>
<el-table-column
prop="deliverPersonName"
align="center"
label="配送人"
min-width="150"/>
<el-table-column
prop="arrivalDate"
align="center"
label="车辆编号"
min-width="150"/>
<el-table-column
prop="acceptPersonName"
align="center"
label="仓库"
min-width="150"/>
<el-table-column
prop="stat"
align="center"
label="配送单状态"
min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.stat | statFilter }}</span>
</template>
</el-table-column>
</el-table>
</div>
</el-card>
</el-dialog>
</template>
@ -192,6 +209,7 @@
import { locationlist } from '@/api/WarehouseAdjust'
import { updateStoragemove } from '@/api/Storagemove'
import { getdeptlist } from '@/api/BasicSettings'
import { deliverGoodsList } from '@/api/DeliverGoods'
import { batchlist } from '@/api/public'
import MyRepository from './MyRepository'
import MyAccept from './MyAccept'
@ -208,6 +226,21 @@ export default {
3: '审核不通过'
}
return statusMap[status]
},
businessStatFilter(status) {
const statusMap = {
1: '调拨申请'
}
return statusMap[status]
},
statFilter(status) {
const statusMap = {
1: '配送申请',
2: '配送出库',
3: '配送完成',
4: '回车'
}
return statusMap[status]
}
},
props: {
@ -222,6 +255,14 @@ export default {
},
data() {
return {
//
deliverGoodsdata: [],
deliverGoodsListdata: {
pageNum: 1,
pageSize: 9999,
repositoryId: 0,
sourceNumber: this.detaildata.moveNumber
},
//
applyPersonId: '',
//
@ -294,12 +335,21 @@ export default {
this.list3 = this.personalForm.storageMoveDetailConfirmVos
this.reviewList = this.personalForm.approvalUseVos
this.getlocation()
this.deliverGoodsListdata.sourceNumber = this.personalForm.moveNumber
this.getdeliverGoodsList()
}
},
mounted() {
this.getlist()
},
methods: {
getdeliverGoodsList() {
deliverGoodsList(this.deliverGoodsListdata).then(res => {
if (res.data.ret === 200) {
this.deliverGoodsdata = res.data.data.content.list
}
})
},
//
getlist() {
getdeptlist().then(res => {
@ -474,7 +524,41 @@ export default {
</script>
<style scoped>
.edit >>> .el-dialog{
-webkit-transform: none;
transform: none;
position: absolute;
right: 0;
left: auto;
height: auto;
}
.edit >>> .el-dialog__header{
background: #fff;
position: fixed;
top: 0;
display: block;
width: 1010px;
z-index: 100;
border-bottom: 1px solid #f1f1f1;
}
.edit >>> .el-dialog__body{
padding-left: 0;
padding-right: 0;
padding-top: 10px;
}
.edit >>> .el-dialog {
background:#f1f1f1 ;
}
.container >>> .el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{
margin-left: -10px;
}
.container >>> .el-form-item__label{
text-align: left;
}
.container >>> .el-form-item__label{
color: #60626696;
}
.el-col-12{
width: 49%;
}
</style>

View file

@ -1,18 +1,18 @@
<template>
<div class="app-container">
<el-card class="box-card">
<el-card class="box-card" shadow="never">
<div slot="header" class="clearfix">
<span>下载模板 </span>
</div>
<a href="/static/file/经销商资料表.xlsx"><el-button type="primary">下载模板</el-button></a>
</el-card>
<el-card class="box-card" style="margin-top: 20px">
<el-card class="box-card" style="margin-top: 20px" shadow="never">
<div slot="header" class="clearfix">
<span>上传Excel表格</span>
</div>
<upload-excel-component :on-success="handleSuccess" :before-upload="beforeUpload"/>
</el-card>
<el-card class="box-card" style="margin-top: 20px">
<el-card class="box-card" style="margin-top: 20px" shadow="never">
<div slot="header" class="clearfix">
<span>表格数据</span>
<el-button style="float: right; padding: 3px 0" type="primary" @click="uploads">导入数据</el-button>