Browse Source

完善预期到货通知单、收货单、上架单

master
yunuo970428 2 months ago
parent
commit
d27526ea67
  1. 49
      yxt-as-ui/src/api/storage/receivingGoods.js
  2. 117
      yxt-as-ui/src/views/storage/deliveryNotice/index.vue
  3. 389
      yxt-as-ui/src/views/storage/deliveryNotice/procurementInfo.vue
  4. 385
      yxt-as-ui/src/views/storage/deliveryNotice/receiptAdd.vue
  5. 2
      yxt-as-ui/src/views/storage/deliveryNotice/receiptInfo.vue
  6. 732
      yxt-as-ui/src/views/storage/receivingGoods/index.vue
  7. 1216
      yxt-as-ui/src/views/storage/receivingGoods/receivingGoodsAdd.vue
  8. 210
      yxt-as-ui/src/views/storage/receivingGoods/receivingGoodsInfo.vue
  9. 417
      yxt-as-ui/src/views/storage/receivingGoods/upShelfAddRecord.vue
  10. 158
      yxt-as-ui/src/views/storage/receivingGoods/upShelfInfo.vue
  11. 527
      yxt-as-ui/src/views/storage/upShelf/index.vue
  12. 531
      yxt-as-ui/src/views/storage/upShelf/upShelfAdd.vue
  13. 128
      yxt-as-ui/src/views/storage/upShelf/upShelfInfo.vue

49
yxt-as-ui/src/api/storage/receivingGoods.js

@ -1,7 +1,6 @@
import request from '@/utils/request' import request from '@/utils/request'
export default { export default {
// 查询分页列表 // 查询分页列表
listPage: function(params) { listPage: function(params) {
return request({ return request({
@ -13,24 +12,20 @@ export default {
} }
}) })
}, },
// 根据收货单sid 获取上架单列表 // 根据收货单sid 获取上架单列表
getUpShlefList: function(data) { getUpShlefList: function(data) {
return request({ return request({
url: '/wms/apiadmin/inventory/WmsReceiptBill/getUpShlefListBySid/' + data, url: '/wms/apiadmin/inventory/WmsReceiptBill/getUpShlefListBySid/' + data,
method: 'get' method: 'get'
}); })
}, },
// 初始化 // 初始化
init: function(data) { init: function(data) {
return request({ return request({
url: '/wms/apiadmin/inventory/WmsReceiptBill/getDetailsInit?sid=' + data, url: '/wms/apiadmin/inventory/WmsReceiptBill/getDetailsInit?sid=' + data,
method: 'get' method: 'get'
}); })
}, },
// 新增、保存 // 新增、保存
save: function(data) { save: function(data) {
return request({ return request({
@ -40,9 +35,8 @@ export default {
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}); })
}, },
// 确认 // 确认
submit: function(data) { submit: function(data) {
return request({ return request({
@ -52,23 +46,8 @@ export default {
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}); })
},
// 保存 上架单
saveUpShelf: function(data) {
return request({
url: '/wms/apiadmin/WmsShelfBill/saveOrUpdate',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
});
}, },
// 查询所有商品 // 查询所有商品
getGoodsListPage: function(params) { getGoodsListPage: function(params) {
return request({ return request({
@ -80,8 +59,6 @@ export default {
} }
}) })
}, },
deleteBySids: function(data) { deleteBySids: function(data) {
return request({ return request({
url: '/wms/apiadmin/inventory/WmsReceiptBill/delBySids', url: '/wms/apiadmin/inventory/WmsReceiptBill/delBySids',
@ -91,21 +68,5 @@ export default {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}) })
}, }
// 初始化新增上架单
initUpshelf: function(params) {
return request({
url: '/wms/apiadmin/WmsShelfBill/getInit?sid=' + params.sid + "&orgPath=" + params.orgPath + "&userSid=" +
params.userSid,
method: 'get',
headers: {
'Content-Type': 'application/json'
}
});
},
} }

117
yxt-as-ui/src/views/storage/deliveryNotice/index.vue

@ -40,12 +40,6 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- <el-form-item label="审核状态">
<el-select v-model="queryParams.params.reviewStatus" placeholder="请选择" style="width: 200px;">
<el-option v-for="(item,i) in reviewStatusList" :key="item.sid" :label="item.name" :value="item.name">
</el-option>
</el-select>
</el-form-item> -->
</el-form> </el-form>
<div class="btn" style="text-align: center;"> <div class="btn" style="text-align: center;">
<el-button type="primary" size="small" icon="el-icon-search" @click="dosearch">查询</el-button> <el-button type="primary" size="small" icon="el-icon-search" @click="dosearch">查询</el-button>
@ -81,8 +75,6 @@
<el-table-column prop="mobile" label="联系人电话" align="center" width="150"/> <el-table-column prop="mobile" label="联系人电话" align="center" width="150"/>
<el-table-column prop="deliveryDate" label="预计到货日期" align="center" width="150"/> <el-table-column prop="deliveryDate" label="预计到货日期" align="center" width="150"/>
<el-table-column prop="billState" label="单据状态" align="center" width="150"/> <el-table-column prop="billState" label="单据状态" align="center" width="150"/>
<!-- <el-table-column prop="reviewStatus" label="审核状态" align="center" width="150" /> -->
<!-- <el-table-column prop="refuseReason" label="拒绝原因" align="center" width="150" /> -->
</el-table> </el-table>
</div> </div>
<!-- End 项目列表 --> <!-- End 项目列表 -->
@ -95,44 +87,12 @@
</div> </div>
<!-- End 查询和其列表部分 --> <!-- End 查询和其列表部分 -->
<!-- 新增修改部分组件 --> <!-- 新增修改部分组件 -->
<receiptAdd v-show="viewState == 2 || viewState == 3" ref="divAdd" @doback="resetState" @reloadlist="loadList"/> <!-- 收货单新增 -->
<receivingGoodsAdd v-show="viewState == 2 || viewState == 3" ref="divAdd" @doback="resetState" @reloadlist="loadList"/>
<!-- 预期到货通知单详情 -->
<receiptInfo v-show="viewState == 4" ref="divInfo" @doback="resetState" @reloadlist="loadList"/> <receiptInfo v-show="viewState == 4" ref="divInfo" @doback="resetState" @reloadlist="loadList"/>
<sourceBillInfo v-show="viewState == 5" ref="sourceinfo" @doback="resetState" @reloadlist="loadList"/> <!-- 采购单详情 -->
<procurementInfo v-show="viewState == 5" ref="sourceInfo" @doback="resetState" />
<el-dialog title="审核单据" :visible.sync="dialogVisible" :before-close="handleClose">
<el-form ref="dataForm" class="formadd" style="margin-top: -40px;" :model="formobj">
<el-row class="first_row">
<el-col :span="8" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">审核结果</span>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item class="trightb_item">
<el-radio-group v-model="formobj.reviewStatus" size="small">
<el-radio :label="1">合格</el-radio>
<el-radio :label="2">不合格</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">审核意见</span>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item class="trightb_item">
<el-input v-model="formobj.remarks" placeholder="请填写审核意见" class="addinputw" style="width:100%" clearable/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div style="display: flex;flex-direction: row;width: 100%;justify-content: center;align-items: center;">
<el-button type="primary" style="margin-top: 20px;" @click="saveExamine"> </el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
@ -140,27 +100,21 @@
import req from '@/api/storage/deliveryNotice.js' import req from '@/api/storage/deliveryNotice.js'
import ButtonBar from '@/components/ButtonBar' import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination' import Pagination from '@/components/pagination'
import receiptAdd from './receiptAdd.vue' import receivingGoodsAdd from '../receivingGoods/receivingGoodsAdd'
import receiptInfo from './receiptInfo.vue' import receiptInfo from './receiptInfo.vue'
import sourceBillInfo from './procurementInfo.vue' import procurementInfo from '../../purchase/procurement/procurementInfo'
import { typeValues } from '@/api/Common/dictcommons' import { typeValues } from '@/api/Common/dictcommons'
export default { export default {
components: { components: {
ButtonBar, ButtonBar,
Pagination, Pagination,
receiptAdd, receivingGoodsAdd,
receiptInfo, receiptInfo,
sourceBillInfo procurementInfo
}, },
data() { data() {
return { return {
dialogVisible: false,
formobj: {
sid: '',
reviewStatus: '',
remarks: ''
},
btndisabled: false, btndisabled: false,
viewState: 1, // 1 2 3 4 viewState: 1, // 1 2 3 4
isSearchShow: false, isSearchShow: false,
@ -168,13 +122,6 @@ export default {
tableLoading: false, tableLoading: false,
dataList: [], dataList: [],
btnList: [ btnList: [
// {
// type: 'primary',
// size: 'small',
// icon: 'plus',
// btnKey: 'toAudit',
// btnLabel: ''
// },
{ {
type: 'primary', type: 'primary',
size: 'small', size: 'small',
@ -202,7 +149,19 @@ export default {
size: 10, size: 10,
total: 0, total: 0,
params: { params: {
name: '' billNo: '',
createTimeStart: '',
createTimeEnd: '',
busTypeKey: '',
supplierName: '',
deliveryDateStart: '',
deliveryDateEnd: '',
billState: '',
reviewStatus: '',
sourceBillNo: '',
menuUrl: '',
orgPath: '',
userSid: ''
} }
}, },
sids: [], sids: [],
@ -274,20 +233,7 @@ export default {
}, },
showSourceBillDetail(row) { showSourceBillDetail(row) {
this.viewState = 5 this.viewState = 5
this.$refs['sourceinfo'].showInfo(row.sourceBillSid) this.$refs['sourceInfo'].showInfo({ sid: row.sourceBillSid })
},
saveExamine() {
},
toAudit() {
if (this.selectionList.length === 1) {
this.dialogVisible = true
} else {
this.$message({ type: 'warning', message: '请选择一条记录进行操作', showClose: true })
}
},
handleClose() {
this.dialogVisible = false
}, },
selectionLineChangeHandle(val) { selectionLineChangeHandle(val) {
this.selectionList = val this.selectionList = val
@ -344,7 +290,6 @@ export default {
this.tableLoading = false this.tableLoading = false
}) })
}, },
// //
indexMethod(index) { indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size var pagestart = (this.queryParams.current - 1) * this.queryParams.size
@ -361,7 +306,19 @@ export default {
size: 10, size: 10,
total: 0, total: 0,
params: { params: {
name: '' billNo: '',
createTimeStart: '',
createTimeEnd: '',
busTypeKey: '',
supplierName: '',
deliveryDateStart: '',
deliveryDateEnd: '',
billState: '',
reviewStatus: '',
sourceBillNo: '',
menuUrl: '',
orgPath: '',
userSid: ''
} }
} }
this.loadList() this.loadList()
@ -448,7 +405,7 @@ export default {
return return
} }
this.viewState = 2 this.viewState = 2
this.$refs['divAdd'].showEdit(this.selectionList[0]) this.$refs['divAdd'].showAdd({ sid: this.selectionList[0] })
}, },
toInfo(row) { toInfo(row) {
this.viewState = 4 this.viewState = 4

389
yxt-as-ui/src/views/storage/deliveryNotice/procurementInfo.vue

@ -1,389 +0,0 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">申请部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请人</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">采购方式</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchaseTypeValue }}<span
v-show="formobj.purchaseTypeValue == '代理库'"
style="margin-left: 20px">{{ formobj.operateBrandValue }}</span></span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">采购原因</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchaseReasonValue }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">付款方式</div>
<el-form-item><span class="addinputInfo">{{ formobj.payTypeValue }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">供应商</div>
<el-form-item><span class="addinputInfo">{{ formobj.supplierName }}<span
v-show="formobj.purchaseTypeValue == '代理库'"
style="margin-left: 20px">{{ formobj.warehouseTypeValue }}</span></span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">是否开发票</div>
<el-form-item><span
class="addinputInfo">{{ formobj.purchaseBillInvoice.isInvoicing == '1' ? '是' : '否' }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div v-show="formobj.purchaseBillInvoice.isInvoicing == '1'">
<div class="span-sty">发票类型(税率)</div>
<el-form-item><span
class="addinputInfo">{{ formobj.purchaseBillInvoice.billType }}{{ formobj.purchaseBillInvoice.taxRate == '' ? '' : '(' + formobj.purchaseBillInvoice.taxRate + '%)' }}</span></el-form-item>
</div>
</el-col>
</el-row>
<el-row v-show="formobj.payTypeValue == '预付款'">
<el-col :span="24">
<div class="span-sty">预付款情况</div>
<el-form-item><span class="addinputInfo">当前预付款项金额(){{ formobj.prepaymentAmount }}</span></el-form-item>
</el-col>
</el-row>
<el-row v-show="formobj.payTypeValue == '月结'">
<el-col :span="24">
<div class="span-sty">月结欠款情况</div>
<el-form-item><span class="addinputInfo">累计欠款金额(){{ formobj.owedAmount }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<div class="span-sty">备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">预计到货日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.deliveryDate }}</span></el-form-item>
</el-col>
</el-row>
<div v-if="formobj.payTypeValue == '单笔付款'">
<div class="title">订金及付款申请</div>
<el-row>
<el-col :span="8">
<div class="span-sty">是否先付货款</div>
<el-form-item><span
class="addinputInfo">{{ formobj.purchasePay.isFirstPay == '1' ? '是' : '否' }}</span></el-form-item>
</el-col>
<el-col :span="8" v-if="formobj.purchasePay.isFirstPay == '0'">
<div class="span-sty">审批通过后付订金</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchasePay.deposit }}</span></el-form-item>
</el-col>
<el-col :span="8" v-if="formobj.purchasePay.isFirstPay == '0'">
<div class="span-sty">验货后付货款</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchasePay.goodsMoney }}</span></el-form-item>
</el-col>
<el-col :span="16" v-else>
<div class="span-sty">审批通过后付货款</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchasePay.goodsMoney }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">收款账户名称</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchasePay.accountName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">开户行</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchasePay.bankName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">银行账号</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchasePay.bankAccount }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<div class="span-sty">其他费用名称</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchasePay.otherAmountName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">其他费用合计</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchasePay.otherAmount }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">付款备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchasePay.payRemark }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">附件</div>
<el-form-item><el-image class="addinputInfo" style="width: 150px;height: 150px"
v-for="(item, index) in formobj.purchasePay.filePaths" :key="index" :src="item"
:preview-src-list="formobj.purchasePay.filePaths" /></el-form-item>
</el-col>
</el-row>
</div>
<div class="title ">商品列表</div>
<el-table :key="tableKey" :data="formobj.pmsPurchaseBillDetailList" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column prop="goodsSpuName" label="商品名称" align="center" width="300" />
<el-table-column prop="goodsSkuCode" label="图号" align="center" width="200" />
<el-table-column prop="goodsSkuOwnSpec" label="规格" align="center" width="200" />
<el-table-column prop="unit" label="单位" align="center" width="100" />
<el-table-column prop="count" label="采购数量" align="center" width="150" />
<el-table-column prop="taxPrice" v-if="formobj.purchaseBillInvoice.isInvoicing == '1'" label="含税单价(元)"
align="center" min-width="150" />
<el-table-column prop="taxPrice" v-else label="不含税单价(元)" align="center" min-width="150" />
<el-table-column prop="amount" label="采购金额(元)" align="center" width="200" />
</el-table>
<el-row>
<el-col :span="24">
<div class="span-sty" style="border-right: 0px">数量</div>
<el-form-item><span class="addinputInfo">{{ slTotal }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty" style="border-right: 0px">应付金额</div>
<el-form-item><span class="addinputInfo">{{ yfTotal }} = 采购金额{{ cgTotal }} + 运费{{ formobj.freight }} -
优惠{{ formobj.discountAmount }} + 误差调整{{ formobj.errorAmount }}</span></el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/purchase/procurement'
export default {
name: 'ProcurementInfo',
data() {
return {
viewTitle: '',
viewState: 1,
tableKey: 1,
index: 0,
formobj: {
sid: '',
remarks: '',
createBySid: '',
createByName: '',
createTime: '',
sourceBillSid: '',
sourceBillNo: '',
billNo: '',
purchaseTypeKey: '',
purchaseTypeValue: '',
purchaseReasonKey: '',
purchaseReasonValue: '',
payTypeKey: '',
payTypeValue: '',
errorAmount: '',
supplierSid: '',
supplierName: '',
supplierPhone: '',
purchaserSid: '',
purchaserName: '',
deliveryDate: '',
freight: '',
discountAmount: '',
payableAmount: '',
prepaymentAmount: '',
owedAmount: '',
deptSid: '',
deptName: '',
procDefId: '',
nodeId: '',
procInstId: '',
nodeState: '',
taskId: '',
finishTime: '',
useOrgSid: '',
useOrgName: '',
createOrgSid: '',
createOrgName: '',
operateBrandKey: '',
operateBrandValue: '',
warehouseTypeKey: '',
warehouseTypeValue: '',
purchasePay: {
sid: '',
billSid: '',
isFirstPay: '',
deposit: '',
goodsMoney: '',
accountName: '',
bankName: '',
bankAccount: '',
otherAmountName: '',
otherAmount: '',
payRemark: '',
filePaths: []
},
purchaseBillInvoice: {
billSid: '',
isInvoicing: '',
billTypeKey: '',
billType: '',
taxRate: ''
},
pmsPurchaseBillDetailList: []
},
rules: {}
}
},
computed: {
//
slTotal() {
let sl = '0'
if (this.formobj.pmsPurchaseBillDetailList.length > 0) {
this.formobj.pmsPurchaseBillDetailList.forEach((e) => {
if (e.goodsSpuName !== '') {
sl = Math.round((parseFloat(sl) + parseFloat(e.count !== '' ? e.count : '0')) * 100) / 100
}
})
}
return sl
},
//
cgTotal() {
let cg = '0'
if (this.formobj.pmsPurchaseBillDetailList.length > 0) {
this.formobj.pmsPurchaseBillDetailList.forEach((e) => {
if (e.goodsSpuName !== '') {
cg = Math.round((parseFloat(cg) + parseFloat(e.amount !== '' ? e.amount : '0')) * 100) / 100
}
})
}
return cg
},
yfTotal() {
let yf = '0'
yf = Math.round((parseFloat(yf) + parseFloat(this.cgTotal) + parseFloat(this.formobj.freight !== '' ? this
.formobj.freight : '0') - parseFloat(this.formobj.discountAmount !== '' ? this.formobj.discountAmount :
'0') + parseFloat(this.formobj.errorAmount !== '' ? this.formobj.errorAmount : '0')) * 100) / 100
return yf
}
},
methods: {
showInfo(sid) {
this.viewTitle = '采购单详情'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
req.fetchDetailsBySid(sid).then((res) => {
if (res.success) {
this.formobj = res.data
if (this.formobj.purchasePay.filePaths.length > 0) {
const aa = []
this.formobj.purchasePay.filePaths.forEach((e) => {
aa.push(e.url)
})
this.formobj.purchasePay.filePaths = aa
}
}
})
},
handleReturn() {
this.formobj = {
sid: '',
remarks: '',
createBySid: '',
createByName: '',
createTime: '',
sourceBillSid: '',
sourceBillNo: '',
billNo: '',
purchaseTypeKey: '',
purchaseTypeValue: '',
purchaseReasonKey: '',
purchaseReasonValue: '',
payTypeKey: '',
payTypeValue: '',
errorAmount: '',
supplierSid: '',
supplierName: '',
supplierPhone: '',
purchaserSid: '',
purchaserName: '',
deliveryDate: '',
freight: '',
discountAmount: '',
payableAmount: '',
prepaymentAmount: '',
owedAmount: '',
deptSid: '',
deptName: '',
procDefId: '',
nodeId: '',
procInstId: '',
nodeState: '',
taskId: '',
finishTime: '',
useOrgSid: '',
useOrgName: '',
createOrgSid: '',
createOrgName: '',
operateBrandKey: '',
operateBrandValue: '',
warehouseTypeKey: '',
warehouseTypeValue: '',
purchasePay: {
sid: '',
billSid: '',
isFirstPay: '',
deposit: '',
goodsMoney: '',
accountName: '',
bankName: '',
bankAccount: '',
otherAmountName: '',
otherAmount: '',
payRemark: '',
filePaths: []
},
purchaseBillInvoice: {
billSid: '',
isInvoicing: '',
billTypeKey: '',
billType: '',
taxRate: ''
},
pmsPurchaseBillDetailList: []
}
this.$emit('doback')
}
}
}
</script>
<style scoped>
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
</style>

385
yxt-as-ui/src/views/storage/deliveryNotice/receiptAdd.vue

@ -1,385 +0,0 @@
<template>
<div>
<div class="tab-header webtop">
<div>新增收货单</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit">确认</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row class="first_row">
<el-col :span="8">
<div class="span-sty">制单人</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">制单部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单据日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">来源单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">业务类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.busTypeValue }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span>供应商</div>
<el-form-item prop="supplierName">
<el-select v-model="formobj.supplierName" placeholder="请选择" clearable @change="selectSupplierName" class="addinputInfo addinputw">
<el-option v-for="item in supplierNameList" :key="item.sid" :label="item.supplierName" :value="item.sid">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span>到货日期</div>
<el-form-item prop="deliveryDate">
<el-date-picker v-model="formobj.deliveryDate" type="date" class="addinputInfo" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单据状态</div>
<el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span>收货人是否与上架人一致</div>
<el-form-item prop="isUpShelf">
<el-radio-group v-model="formobj.isUpShelf" size="small" class="addinputInfo">
<el-radio :label="1"></el-radio>
<el-radio :label="2"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">备注</div>
<el-form-item>
<el-input v-model="formobj.remarks" placeholder="" class="addinputw addinputInfo" type="textarea" :rows="4" clearable/>
</el-form-item>
</el-col>
</el-row>
<div class="title">商品列表</div>
<el-table v-loading="listLoading" :data="formobj.list" border style="width: 100%;">
<el-table-column fixed width="50" type="selection" align="center" />
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column fixed label="操作" wid align="center" width="100">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="doGoods(scope.row)">删除</el-button>
</template>
</el-table-column>
<el-table-column label="商品名称" prop="goodsSpuName" align="center" width="200" />
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150" />
<el-table-column label="单位" prop="unit" align="center" width="120" />
<el-table-column label="入库单价" prop="cost" align="center" width="100">
<template slot-scope="scope">
<el-input @input="commodityComputeYHAndXSJE(scope.row)" @keyup.native="scope.row.cost = getNumber(scope.row.cost, 0)" v-model="scope.row.cost" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="预期到货数量" prop="orderCount" align="center" width="120" />
<el-table-column label="实收数量" align="center" width="120">
<template slot-scope="scope">
<el-input @input="commodityComputeYHAndXSJE(scope.row)" @keyup.native="scope.row.actualInCount = getNumber(scope.row.actualInCount, 0)" v-model="scope.row.actualInCount" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="拒收数量" align="center" width="120">
<template slot-scope="scope">
<el-input @keyup.native="scope.row.rejectCount = getNumber(scope.row.rejectCount, 0)" v-model="scope.row.rejectCount" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="拒收原因" align="center" width="180">
<template slot-scope="scope">
<el-input v-model="scope.row.rejectReason" clearable placeholder=""/>
</template>
</el-table-column>
<el-table-column label="是否质检" align="center" width="180">
<template slot-scope="scope">
<el-radio-group v-model="scope.row.isQuality" size="small">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</template>
</el-table-column>
<el-table-column label="质检状态" align="center" width="180">
<template slot-scope="scope">
<el-radio-group v-model="scope.row.qualityState" size="small">
<el-radio :label="0">合格</el-radio>
<el-radio :label="1">不合格</el-radio>
</el-radio-group>
</template>
</el-table-column>
<el-table-column label="载具说明" align="center" width="180">
<template slot-scope="scope">
<el-input v-model="scope.row.packageRemark" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="税率" prop="taxAmount" align="center" width="100" />
<el-table-column label="入库金额" prop="amount" align="center" width="100" />
</el-table>
</el-form>
</div>
</div>
</template>
<script>
import req from '@/api/storage/deliveryNotice.js'
import { getCurrentDate } from '@/utils/index.js'
import { choiceSupplierInfo, getOrgSidByPath } from '@/api/Common/dictcommons'
export default {
components: {},
data() {
return {
listLoading: false,
submitdisabled: false,
formobj: {
sourceBillNo: '',
busTypeKey: '',
busTypeValue: '',
createTime: '',
createByName: window.sessionStorage.getItem('name'),
deptName: '',
deptSid: '',
createBySid: window.sessionStorage.getItem('userSid'),
useOrgSid: '',
createOrgSid: '',
billState: '新建',
billStateKey: 0,
reviewStatus: '',
refuseReason: '',
contact: '',
mobile: '',
supplierSid: '',
supplierName: '',
goodsOwnerSid: '',
goodsOwner: '',
deliveryDate: getCurrentDate(),
list: [],
pcList: []
},
supplierNameList: [],
rules: {
deliveryDate: [{ required: true, message: '到货日期不能为空', trigger: 'change' }],
isUpShelf: [{ required: true, message: '请选择是或否', trigger: 'change' }],
supplierName: [{ required: true, message: '供应商不能为空', trigger: 'change' }]
}
}
},
methods: {
getNumber(val, limit) {
val = val.replace(/[^0-9.]/g, '') //
val = val.replace(/^00/, '0.') // 0
val = val.replace(/^\./g, '0.') // 0.
val = val.replace(/\.{2,}/g, '.') //
val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.'); //
/^0\d+/.test(val) ? val = val.slice(1) : '' // 0
const str = '^(\\d+)\\.(\\d{' + limit + '}).*$'
const reg = new RegExp(str)
if (limit === 0) {
//
val = val.replace(reg, '$1')
} else {
//
val = val.replace(reg, '$1.$2')
}
return val
},
init() {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
if (res.success) {
this.formobj.createOrgSid = res.data
this.formobj.useOrgSid = res.data
}
})
choiceSupplierInfo({ deptSid: window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem('defaultOrgPath').lastIndexOf('/') + 1) }).then((resp) => {
if (resp.success) {
this.supplierNameList = resp.data
}
})
},
selectSupplierName(val) {
const choose = this.supplierNameList.filter((item) => item.sid === val)
this.formobj.supplierName = choose[0].supplierName
this.formobj.supplierSid = choose[0].sid
},
doGoods(row) {
this.$confirm('是否确定删除此商品?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const index = this.formobj.list.findIndex((item) => item === row)
this.formobj.list.splice(index, 1)
for (var i = this.formobj.pcList.length - 1; i >= 0; i--) {
if (this.formobj.pcList[i].xh === (index + 1)) {
this.formobj.pcList.splice(i, 1)
}
}
})
},
commodityComputeYHAndXSJE(row) {
row.amount = Math.round((parseFloat(row.actualInCount !== '' ? row.actualInCount : 0) * parseFloat(row.cost !== '' ? row.cost : 0)) * 100) / 100
},
indexMethod(index) {
return index + 1
},
saveOrUpdate() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
for (var i = 0; i < this.formobj.list.length; i++) {
if (parseFloat(this.formobj.list[i].actualInCount) === 0) {
this.$message({ showClose: true, type: 'error', message: '商品实收数量不能为空' })
return
}
}
this.submitdisabled = true
req.save(this.formobj).then((res) => {
if (res.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
this.handleReturn('true')
} else {
this.submitdisabled = false
}
}).catch(() => {
this.submitdisabled = false
})
}
})
},
submit() {
for (var i = 0; i < this.formobj.list.length; i++) {
if (parseFloat(this.formobj.list[i].actualInCount) === 0) {
this.$message({ showClose: true, type: 'error', message: '商品实收数量不能为空' })
return
}
}
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.submit(this.formobj).then((res) => {
if (res.success) {
this.$message({ showClose: true, type: 'success', message: '提交成功' })
this.handleReturn('true')
} else {
this.submitdisabled = false
}
}).catch(() => {
this.submitdisabled = false
})
}
})
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.submitdisabled = false
this.formobj = {
sourceBillNo: '',
busTypeKey: '',
busTypeValue: '',
createTime: '',
createByName: window.sessionStorage.getItem('name'),
deptName: '',
deptSid: '',
createBySid: window.sessionStorage.getItem('userSid'),
useOrgSid: '',
createOrgSid: '',
billState: '新建',
billStateKey: 0,
reviewStatus: '',
refuseReason: '',
contact: '',
mobile: '',
supplierSid: '',
supplierName: '',
goodsOwnerSid: '',
goodsOwner: '',
deliveryDate: getCurrentDate(),
list: [],
pcList: []
}
this.$emit('doback')
},
showAdd() {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.init()
},
showEdit(row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.init()
req.getInitDetails(row.sid).then((resp) => {
if (resp.success) {
this.formobj = resp.data
this.formobj.deliveryDate = getCurrentDate()
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.deptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem('defaultOrgPath').lastIndexOf('/') + 1)
}
}).catch(e => {
this.formobj = {}
})
}
}
}
</script>
<style scoped>
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
.must {
color: #f00;
}
.span-sty {
width: 190px !important;
}
.addinputInfo {
margin-left: 180px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 180px !important;
width: calc(100% - 175px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
/deep/ .el-form-item__error {
margin-left: 180px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .el-radio-group {
display: inline;
line-height: 1px;
vertical-align: middle;
}
</style>

2
yxt-as-ui/src/views/storage/deliveryNotice/receiptInfo.vue

@ -1,5 +1,5 @@
<template> <template>
<div> <div class="app-container">
<div class="tab-header webtop"> <div class="tab-header webtop">
<div>预期到货通知单详情</div> <div>预期到货通知单详情</div>
<div> <div>

732
yxt-as-ui/src/views/storage/receivingGoods/index.vue

@ -1,7 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<div v-show="viewState == 1"> <div v-show="viewState == 1">
<button-bar ref="btnbar" view-title="收货单管理" :btndisabled="btndisabled" @btnhandle="btnHandle" /> <button-bar ref="btnbar" view-title="收货单管理" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<div class="main-content"> <div class="main-content">
<div class="searchcon"> <div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow"> <el-button size="small" class="searchbtn" @click="clicksearchShow">
@ -10,47 +10,39 @@
<div v-show="isSearchShow" class="search"> <div v-show="isSearchShow" class="search">
<el-form :inline="true" class="tab-header"> <el-form :inline="true" class="tab-header">
<el-form-item label="单据编号"> <el-form-item label="单据编号">
<el-input v-model="queryParams.params.billNo" placeholder="" clearable /> <el-input v-model="queryParams.params.billNo" placeholder="" clearable/>
</el-form-item> </el-form-item>
<el-form-item label="单据日期"> <el-form-item label="单据日期">
<el-date-picker v-model="queryParams.params.createTimeStart" type="date" placeholder="选择日期" <el-date-picker v-model="queryParams.params.createTimeStart" type="date" placeholder="选择日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;" />
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;"> <span style="padding: 0 8px"></span>
</el-date-picker> <el-date-picker v-model="queryParams.params.createTimeEnd" type="date" placeholder="选择日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;" />
<el-date-picker v-model="queryParams.params.createTimeEnd" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;">
</el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="预期到货通知单号"> <el-form-item label="预期到货通知单号">
<el-input v-model="queryParams.params.sourceBillNo" placeholder="" clearable /> <el-input v-model="queryParams.params.sourceBillNo" placeholder="" clearable/>
</el-form-item> </el-form-item>
<el-form-item label="业务类型"> <el-form-item label="业务类型">
<el-select v-model="queryParams.params.busTypeKey" placeholder="请选择" style="width: 200px;"> <el-select v-model="queryParams.params.busTypeKey" placeholder="请选择" style="width: 200px;">
<el-option v-for="(item,i) in busTypeList" :key="item.dictKey" :label="item.dictValue" <el-option v-for="item in busTypeList" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey">
:value="item.dictKey">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="供应商"> <el-form-item label="供应商">
<el-input v-model="queryParams.params.supplierName" placeholder="" clearable /> <el-input v-model="queryParams.params.supplierName" placeholder="" clearable/>
</el-form-item> </el-form-item>
<el-form-item label="到货日期"> <el-form-item label="到货日期">
<el-date-picker v-model="queryParams.params.deliveryDateStart" type="date" placeholder="选择日期" <el-date-picker v-model="queryParams.params.deliveryDateStart" type="date" placeholder="选择日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;" />
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;"> <span style="padding: 0 8px"></span>
</el-date-picker> <el-date-picker v-model="queryParams.params.deliveryDateEnd" type="date" placeholder="选择日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;" />
<el-date-picker v-model="queryParams.params.deliveryDateEnd" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;">
</el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="单据状态"> <el-form-item label="单据状态">
<el-select v-model="queryParams.params.billState" placeholder="请选择" style="width: 200px;"> <el-select v-model="queryParams.params.billState" placeholder="请选择" style="width: 200px;">
<el-option v-for="(item,i) in billStateList" :key="i" :label="item.name" :value="item.sid"> <el-option v-for="item in billStateList" :key="item.sid" :label="item.name" :value="item.sid">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="分配状态"> <el-form-item label="分配状态">
<el-select v-model="queryParams.params.distributeType" placeholder="请选择" style="width: 200px;"> <el-select v-model="queryParams.params.distributeType" placeholder="请选择" style="width: 200px;">
<el-option v-for="(item,i) in distributeTypeList" :key="i" :label="item.name" :value="item.sid"> <el-option v-for="item in distributeTypeList" :key="item.sid" :label="item.name" :value="item.sid">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -68,15 +60,13 @@
<!-- End 项目列表头部 --> <!-- End 项目列表头部 -->
<!-- Start 项目列表 --> <!-- Start 项目列表 -->
<div class=""> <div class="">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%" <el-table v-loading="tableLoading" :data="dataList" border style="width: 100%" @selection-change="selectionLineChangeHandle">
@selection-change="selectionLineChangeHandle"> <el-table-column fixed width="50" type="selection" align="center"/>
<el-table-column fixed width="50" type="selection" align="center" /> <el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column fixed label="操作" align="center" width="150"> <el-table-column fixed label="操作" align="center" width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" :disabled="scope.row.billState=='已完成'" <el-button type="primary" size="mini" :disabled="scope.row.billState=='已完成'" @click="toEdit(scope.row)">办理</el-button>
@click="toEdit(scope.row)">办理</el-button> <el-button type="primary" size="mini" @click="toInfo(scope.row)">查看</el-button>
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">查看</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="billNo" width="180" label="单据编号" align="center" /> <el-table-column prop="billNo" width="180" label="单据编号" align="center" />
@ -90,476 +80,328 @@
<el-table-column prop="billState" label="单据状态" width="100" align="center" /> <el-table-column prop="billState" label="单据状态" width="100" align="center" />
<el-table-column label="上架单" align="center" width="100"> <el-table-column label="上架单" align="center" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<div style="color: #1890FF; text-decoration: underline ;cursor:pointer;" <span class="bluezi" @click="showUpShelfList(scope.row)">{{ scope.row.upShlefNum }}</span>
@click="showUpShelfList(scope.row)">
{{ scope.row.upShlefNum }}
</div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<!-- End 项目列表 --> <!-- End 项目列表 -->
<div class="pages"> <div class="pages">
<div class="tit" /> <div class="tit"/>
<!-- 翻页 --> <!-- 翻页 -->
<pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current" <pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current" :limit.sync="queryParams.size" class="pagination" @pagination="loadList"/>
:limit.sync="queryParams.size" class="pagination" @pagination="loadList" />
</div> </div>
</div> </div>
</div> </div>
<!-- End 查询和其列表部分 --> <!-- End 查询和其列表部分 -->
<!-- 新增修改部分组件 --> <!-- 新增修改部分组件 -->
<!-- 收货单编辑 -->
<divAdd v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList" /> <divAdd v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList" />
<!-- 收货单详情 -->
<divInfo v-show="viewState == 4" ref="divinfo" @doback="resetState" @reloadlist="loadList" /> <divInfo v-show="viewState == 4" ref="divinfo" @doback="resetState" @reloadlist="loadList" />
<divAddupShelfRecord v-show="viewState == 5" ref="divAddupShelfRecord" @doback="resetState" <!-- 上架单新增 -->
@reloadlist="loadList" /> <upShelfAdd v-show="viewState == 5" ref="upShelfAdd" @doback="resetState" @reloadlist="loadList" />
<!-- 上架单详情 -->
<upShelfInfo v-show="viewState == 6" ref="upShelfInfo" @doback2="resetState2" @reloadlist="loadList" /> <upShelfInfo v-show="viewState == 6" ref="upShelfInfo" @doback2="resetState2" @reloadlist="loadList" />
<el-dialog title="上架单列表" :visible.sync="dialogVisible" :before-close="handleClose"> <el-dialog title="上架单列表" :visible.sync="dialogVisible" :before-close="handleClose">
<el-table :data="upShelfList" border style="width: 100%;margin-top: -30px;"> <el-table :data="upShelfList" border style="width: 100%;margin-top: -30px;">
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod2" align="center" /> <el-table-column fixed width="60" label="序号" type="index" :index="indexMethod2" align="center" />
<el-table-column label="单据编号" align="center"> <el-table-column label="单据编号" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div style="color: #1890FF; text-decoration: underline ;cursor:pointer;" <span class="bluezi" @click="showUpShelfBill(scope.row)">{{ scope.row.billNo }}</span>
@click="showUpShelfBill(scope.row)">
{{ scope.row.billNo }}
</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="createTime" label="单据日期" align="center" /> <el-table-column prop="createTime" label="单据日期" align="center" />
<el-table-column prop="createByName" label="制单人" align="center" /> <el-table-column prop="createByName" label="制单人" align="center" />
<el-table-column prop="sourceBillNo" label="来源单号" align="center" /> <el-table-column prop="sourceBillNo" label="来源单号" align="center" />
<el-table-column prop="billState" label="单据状态" align="center" /> <el-table-column prop="billState" label="单据状态" align="center" />
</el-table> </el-table>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import req from '@/api/storage/receivingGoods.js' import req from '@/api/storage/receivingGoods.js'
import ButtonBar from '@/components/ButtonBar' import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination' import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye' import divAdd from './receivingGoodsAdd.vue'
import divAdd from './receivingGoodsAdd.vue' import divInfo from './receivingGoodsInfo.vue'
import divInfo from './receivingGoodsInfo.vue' import upShelfAdd from '../upShelf/upShelfAdd.vue'
import divAddupShelfRecord from './upShelfAddRecord.vue' import upShelfInfo from '../upShelf/upShelfInfo.vue'
import upShelfInfo from './upShelfInfo.vue' import { typeValues } from '@/api/Common/dictcommons'
import {
typeValues export default {
} from '@/api/Common/dictcommons' components: {
export default { ButtonBar,
components: { Pagination,
ButtonBar, divAdd,
Pagination, divInfo,
pageye, upShelfAdd,
divAdd, upShelfInfo
divInfo, },
divAddupShelfRecord, data() {
upShelfInfo return {
}, dialogVisible: false,
data() { btndisabled: false,
return { viewState: 1, // 1 2 3 4
dialogVisible: false, isSearchShow: false,
formobj: { searchxianshitit: '显示查询条件',
sid: "", tableLoading: false,
reviewStatus: "", dataList: [],
remarks: '' btnList: [
{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toPrint',
btnLabel: '打印入库单'
}, },
btndisabled: false, {
viewState: 1, // 1 2 3 4 type: 'primary',
isSearchShow: false, size: 'small',
searchxianshitit: '显示查询条件', icon: 'plus',
tableLoading: false, btnKey: 'toAdd',
dataList: [], btnLabel: '新增上架单'
btnList: [
// {
// type: 'primary',
// size: 'small',
// icon: 'plus',
// btnKey: 'toAudit',
// btnLabel: ''
// },
// {
// type: 'danger',
// size: 'small',
// icon: 'del',
// btnKey: 'doDel',
// btnLabel: ''
// },
{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toPrint',
btnLabel: '打印入库单'
},
{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '新增上架单'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
queryParams: {
current: 1,
size: 10,
total: 0,
params: {
name: ''
}
}, },
sids: [], {
selectionList: [], type: 'info',
busTypeList: [], size: 'small',
billStateList: [{ icon: 'cross',
name: "新建", btnKey: 'doClose',
sid: "0" btnLabel: '关闭'
}, }
{ ],
name: "已完成", queryParams: {
sid: "1" current: 1,
}, size: 10,
total: 0,
], params: {
distributeTypeList: [{ billNo: '',
name: "未分配", createTimeStart: '',
sid: "0" createTimeEnd: '',
}, sourceBillNo: '',
{ busTypeKey: '',
name: "部分分配", deliveryDateStart: '',
sid: "2" deliveryDateEnd: '',
}, billState: '',
{ distributeType: '',
name: "已分配", menuUrl: '',
sid: "1" orgPath: '',
}, userSid: ''
}
], },
upShelfList: [ sids: [],
// { selectionList: [],
// billSid: 'sid', busTypeList: [],
// billNo: '', billStateList: [
// createTime: '', {
// createByName: '', name: '新建',
// sourceBillNo: '', sid: '0'
// billState: '' },
// }, {
] name: '已完成',
sid: '1'
}
],
distributeTypeList: [
{
name: '未分配',
sid: '0'
},
{
name: '部分分配',
sid: '2'
},
{
name: '已分配',
sid: '1'
}
],
upShelfList: []
}
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
created() {
this.loadList()
typeValues({ type: 'wms_busType' }).then((res) => {
if (res.success) {
this.busTypeList = res.data
} }
})
},
methods: {
showUpShelfList(row) {
req.getUpShlefList(row.sid).then((resp) => {
if (resp.success) {
this.upShelfList = resp.data
this.dialogVisible = true
}
})
}, },
mounted() { showUpShelfBill(row) {
this.$refs['btnbar'].setButtonList(this.btnList) this.dialogVisible = false
this.viewState = 6
this.$refs['upShelfInfo'].showEdit(row.billSid)
}, },
created() { resetState2() {
this.loadList() this.viewState = 1
this.dialogVisible = true
typeValues({ },
type: 'wms_busType' handleClose() {
}).then((res) => { this.dialogVisible = false
if (res.success) { },
this.busTypeList = res.data selectionLineChangeHandle(val) {
} this.selectionList = val
const aa = []
val.forEach(element => {
aa.push(element.sid)
}) })
this.sids = aa
}, },
methods: { //
clicksearchShow() {
showUpShelfList(row) { this.isSearchShow = !this.isSearchShow
console.log("val", row); if (this.isSearchShow) {
req.getUpShlefList(row.sid).then((resp) => { this.searchxianshitit = '隐藏查询条件'
this.upShelfList = resp.data } else {
this.dialogVisible = true this.searchxianshitit = '显示查询条件'
}
}).catch(() => {}) },
btnHandle(btnKey) {
switch (btnKey) {
}, case 'toPrint':
showUpShelfBill(row) { this.toPrint()
this.dialogVisible = false break
this.viewState = 6 case 'toAdd':
this.$refs['upShelfInfo'].showEdit(row.billSid) this.toAdd()
break
}, case 'doClose':
resetState2() { this.doClose()
this.viewState = 1 break
this.dialogVisible = true default:
}, break
handleClose() { }
this.dialogVisible = false },
}, loadList() {
saveExamine() { this.tableLoading = true
this.queryParams.params.userSid = window.sessionStorage.getItem('userSid')
}, this.queryParams.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
changeTheme() { this.queryParams.params.menuUrl = this.$route.path
req.listPage(this.queryParams).then((resp) => {
}, this.tableLoading = false
toAudit() { if (resp.success) {
const data = resp.data
this.viewState = 2 this.queryParams.total = data.total
this.$refs['divadd'].showAdd() this.dataList = data.records
},
selectTime1() {
},
selectTime2() {
},
selectionLineChangeHandle(val) {
console.log("val", val);
this.selectionList = val
const aa = []
val.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else { } else {
this.searchxianshitit = '显示查询条件' // resp.code
this.dataList = []
this.queryParams.total = 0
} }
}, }).catch(() => {
btnHandle(btnKey) { this.tableLoading = false
switch (btnKey) { })
case 'toAudit': },
this.toAudit() //
break indexMethod(index) {
case 'doDel': var pagestart = (this.queryParams.current - 1) * this.queryParams.size
this.doDel() var pageindex = index + 1 + pagestart
break return pageindex
case 'toPrint': },
this.toPrint() indexMethod2(index) {
break return index + 1
case 'toAdd': },
this.toAdd() dosearch() {
break this.queryParams.current = 1
case 'doClose': this.loadList()
this.doClose() },
break resetQuery() {
default: this.queryParams = {
break current: 1,
} size: 10,
}, total: 0,
loadList() { params: {
this.tableLoading = true billNo: '',
this.queryParams.params.userSid = window.sessionStorage.getItem('userSid') createTimeStart: '',
this.queryParams.params.orgPath = window.sessionStorage.getItem('defaultOrgPath') createTimeEnd: '',
this.queryParams.params.menuUrl = this.$route.path sourceBillNo: '',
req.listPage(this.queryParams).then((resp) => { busTypeKey: '',
this.tableLoading = false deliveryDateStart: '',
if (resp.success) { deliveryDateEnd: '',
const data = resp.data billState: '',
this.queryParams.total = data.total distributeType: '',
this.dataList = data.records menuUrl: '',
} else { orgPath: '',
// resp.code userSid: ''
this.dataList = []
this.queryParams.total = 0
}
}).catch(() => {
this.tableLoading = false
})
},
//
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
var pageindex = index + 1 + pagestart
return pageindex
},
indexMethod2(index) {
return index + 1
},
dosearch() {
this.queryParams.current = 1
this.loadList()
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
name: ''
}
} }
this.loadList() }
}, this.loadList()
doDel() { },
toPrint() {
if (this.sids.length > 0) { for (var i = 0; i < this.selectionList.length; i++) {
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?' if (this.selectionList[i].billState !== '已完成') {
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.deleteBySids(this.sids).then((resp) => {
loading.close()
if (resp.success) {
this.$message({
type: 'success',
message: resp.msg,
showClose: true
})
this.loadList()
} else {
// resp.code
}
}).catch(e => {
loading.close()
})
}).catch(() => {})
} else {
this.$message({ this.$message({
showClose: true, type: 'warning',
message: '请至少选择一条记录进行删除操作' message: '只能选择已完成的记录。',
showClose: true
}) })
return
} }
}, }
toPrint() { this.$message({
type: 'warning',
for (var i = 0; i < this.selectionList.length; i++) { message: '打印功能正在完善中。',
showClose: true
if (this.selectionList[i].billState != '已完成') { })
this.$message({ },
type: 'warning', toAdd() {
message: "只能选择已完成的记录。", if (this.selectionList.length !== 1) {
showClose: true
})
return
}
}
this.$message({ this.$message({
type: 'warning', type: 'warning',
message: "打印功能正在完善中。", message: '请选择一条数据。',
showClose: true showClose: true
}) })
}, return
toAdd() { }
if (this.selectionList.length != 1) { if (this.selectionList[0].billState === '新建') {
this.$message({ this.$message({
type: 'warning', type: 'warning',
message: "请选择一条数据。", message: '此记录未完成,不可操作。',
showClose: true showClose: true
})
return
}
if (this.selectionList[0].billState == '新建') {
this.$message({
type: 'warning',
message: "此记录未完成,不可操作。",
showClose: true
})
return
}
if (this.selectionList[0].distributeType == '已分配') {
this.$message({
type: 'warning',
message: "此记录已全部分配,不可操作。",
showClose: true
})
return
}
this.viewState = 5
this.$refs['divAddupShelfRecord'].showEdit(this.selectionList[0])
},
toEdit(row) {
this.viewState = 3
this.$refs['divadd'].showEdit(row)
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
toRelevancy(row) {
this.viewState = 4
this.$refs['divinfo'].showEdit(row)
},
toRelevancyInfo(row) {
const tip = '请确认是否删除所选品牌?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.deleteGoods(row.sid).then((resp) => {
loading.close()
if (resp.success) {
this.$message({
type: 'success',
message: resp.msg,
showClose: true
})
this.loadList()
} else {
// resp.code
}
}).catch(e => {
loading.close()
})
}).catch(() => {})
},
resetState() {
this.viewState = 1
},
enableChange(sid, state) {
console.log('sid', sid)
console.log('state', state)
req.updateIsEnable(sid, state).then((resp) => {
if (resp.success) {
this.$message({
type: 'success',
message: '状态已更新',
showClose: true
})
} else { // resp.code
}
}).catch(e => {
console.log(e)
}) })
return
} }
if (this.selectionList[0].distributeType === '已分配') {
this.$message({
type: 'warning',
message: '此记录已全部分配,不可操作。',
showClose: true
})
return
}
this.viewState = 5
this.$refs['upShelfAdd'].showEdit(this.selectionList[0])
},
toEdit(row) {
this.viewState = 3
this.$refs['divadd'].showEdit(row)
},
toInfo(row) {
this.viewState = 4
this.$refs['divinfo'].showEdit(row)
},
resetState() {
this.viewState = 1
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
} }
} }
}
</script> </script>
<style scoped> <style scoped>
</style> </style>

1216
yxt-as-ui/src/views/storage/receivingGoods/receivingGoodsAdd.vue

File diff suppressed because it is too large

210
yxt-as-ui/src/views/storage/receivingGoods/receivingGoodsInfo.vue

@ -2,24 +2,15 @@
<div class="app-container"> <div class="app-container">
<div v-show="viewState == 1"> <div v-show="viewState == 1">
<div class="tab-header webtop"> <div class="tab-header webtop">
<!-- 标题 -->
<div>收货单详情</div> <div>收货单详情</div>
<!-- start 添加修改按钮 -->
<div> <div>
<el-button type="primary" size="small" v-show="formobj.billState=='已完成'" :disabled="submitdisabled" <el-button type="primary" size="small" v-show="formobj.billState=='已完成'" :disabled="submitdisabled" @click="addUpShelf">新增上架单
@click="addUpShelf">新增上架单</el-button> </el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button> <el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div> </div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div> </div>
<div class="listconadd"> <div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02"> <el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<!-- <div class="title">
<div>基础信息</div>
</div> -->
<el-row class="first_row"> <el-row class="first_row">
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">制单人</div> <div class="span-sty">制单人</div>
@ -29,20 +20,16 @@
<div class="span-sty">制单部门</div> <div class="span-sty">制单部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">单据日期</div> <div class="span-sty">单据日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">预期到货通知单号</div> <div class="span-sty">预期到货通知单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">业务类型</div> <div class="span-sty">业务类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.busTypeValue }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.busTypeValue }}</span></el-form-item>
@ -51,11 +38,8 @@
<div class="span-sty">供应商</div> <div class="span-sty">供应商</div>
<el-form-item><span class="addinputInfo">{{ formobj.supplierName }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.supplierName }}</span></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">到货日期</div> <div class="span-sty">到货日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.deliveryDate }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.deliveryDate }}</span></el-form-item>
@ -64,164 +48,102 @@
<div class="span-sty">单据状态</div> <div class="span-sty">单据状态</div>
<el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<div class="span-sty">备注</div> <div class="span-sty">备注</div>
<el-form-item><span class="addinputInfo">{{formobj.remarks}}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<div class="title">商品列表</div>
<div class="title titleOne">
<div>商品列表</div>
</div>
<el-table v-loading="listLoading" :data="formobj.list" border style="width: 100%;"> <el-table v-loading="listLoading" :data="formobj.list" border style="width: 100%;">
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" /> <el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column fixed label="商品名称" prop="goodsSpuName" align="center" width="200" /> <el-table-column fixed label="商品名称" prop="goodsSpuName" align="center" width="200"/>
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150" /> <el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150"/>
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150" /> <el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150"/>
<el-table-column label="单位" prop="unit" align="center" width="120" /> <el-table-column label="单位" prop="unit" align="center" width="120"/>
<!-- <el-table-column label="仓库" prop="warehouseName" align="center" width="180" /> <el-table-column label="预期到货数量" prop="orderCount" align="center" width="120"/>
<el-table-column label="库位" prop="warehouseRackName" align="center" width="180" />--> <el-table-column label="实收数量" prop="actualInCount" align="center" width="120"/>
<el-table-column label="预期到货数量" prop="orderCount" align="center" width="120" /> <el-table-column label="拒收数量" prop="rejectCount" align="center" width="120"/>
<el-table-column label="实收数量" prop="actualInCount" align="center" width="120" /> <el-table-column label="拒收原因" prop="rejectReason" align="center" width="180"/>
<el-table-column label="拒收数量" prop="rejectCount" align="center" width="120" />
<el-table-column label="拒收原因" prop="rejectReason" align="center" width="180" />
<el-table-column label="是否质检" align="center" width="180"> <el-table-column label="是否质检" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<el-radio-group v-model="scope.row.isQuality" :disabled="true" size="small"> <span>{{ scope.row.isQuality == '0' ? '是' : scope.row.isQuality == '1' ? '否' : '' }}</span>
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="质检状态" align="center" width="180"> <el-table-column label="质检状态" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<el-radio-group v-model="scope.row.qualityState" :disabled="true" size="small"> <span>{{ scope.row.qualityState == '0' ? '合格' : scope.row.qualityState == '1' ? '不合格' : '' }}</span>
<el-radio :label="0">合格</el-radio>
<el-radio :label="1">不合格</el-radio>
</el-radio-group>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="载具说明" prop="packageRemark" align="center" width="180" /> <el-table-column label="载具说明" prop="packageRemark" align="center" width="180"/>
<el-table-column label="入库单价" prop="cost" align="center" width="100" /> <el-table-column label="入库单价" prop="cost" align="center" width="100"/>
<el-table-column label="税率" prop="taxAmount" align="center" width="100" /> <el-table-column label="税率" prop="taxAmount" align="center" width="100"/>
<!-- <el-table-column label="含税单价" prop="taxPrice" align="center" width="100" /> --> <el-table-column label="入库金额" prop="amount" align="center" width="100"/>
<el-table-column label="入库金额" prop="amount" align="center" width="100" /> <el-table-column label="已分配数量" prop="allotmentNum" align="center" width="130"/>
<el-table-column label="已分配数量" prop="allotmentNum" align="center" width="130" />
</el-table> </el-table>
<!-- <div class="title titleOne">
<div>商品-批次</div>
</div>
<el-table v-loading="listLoading" :data="formobj.pcList" border style="width: 100%;">
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column label="商品列表序号" prop="xh" align="center" width="120" />
<el-table-column label="商品名称" prop="goodsSkuTitle" align="center" width="200" />
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150" />
<el-table-column label="单位" prop="unit" align="center" width="120" />
<el-table-column label="仓库" prop="warehouseName" align="center" width="150" />
<el-table-column label="库位" prop="warehouseRackName" align="center" width="150" />
<el-table-column label="批次号" prop="batchNumber" align="center" width="300" />
<el-table-column label="生产日期" prop="manufactureDate" align="center" width="180" />
<el-table-column label="有效期" prop="expirationDate" align="center" width="180" />
<el-table-column label="数量" prop="batchCount" align="center" width="120" />
</el-table> -->
</el-form> </el-form>
</div> </div>
</div> </div>
<!-- 新增上架单 --> <!-- 新增上架单 -->
<upShelf v-show="viewState == 2" ref="divSp" @doback="resetState" /> <upShelf v-show="viewState == 2" ref="divSp" @doback="resetState"/>
</div> </div>
</template> </template>
<script> <script>
import req from '@/api/storage/receivingGoods.js' import req from '@/api/storage/receivingGoods.js'
import upShelf from './upShelfAddRecord' import upShelf from '../upShelf/upShelfAdd'
export default {
components: { export default {
upShelf components: {
}, upShelf
data() { },
return { data() {
viewState: 1, return {
listLoading: false, viewState: 1,
submitdisabled: false, listLoading: false,
formobj: {}, submitdisabled: false,
} formobj: {}
}
},
methods: {
indexMethod(index) {
return index + 1
}, },
methods: {
indexMethod(index) {
return index + 1
},
handleReturn(isreload) { handleReturn() {
if (isreload === 'true') this.$emit('reloadlist') this.$emit('doback')
this.$emit('doback') },
}, showEdit(row) {
req.init(row.sid).then(resp => {
showAdd() { if (resp.success) {
this.formobj = resp.data
},
showEdit(row) {
var params = {
sid: row.sid
} }
req.init(row.sid) }).catch(e => {
.then(resp => { this.formobj = {}
if (resp.success) { })
this.formobj = resp.data },
} resetState() {
}) this.viewState = 1
.catch(e => { },
this.formobj = {} addUpShelf() {
}) this.viewState = 2
}, this.$refs['divSp'].showEdit(this.formobj)
resetState() {
this.viewState = 1
},
addUpShelf() {
this.viewState = 2
this.$refs['divSp'].showEdit(this.formobj)
},
} }
} }
}
</script> </script>
<style scoped> <style scoped>
.span-sty { .span-sty {
width: 130px !important; width: 130px !important;
} }
.addinputInfo { .addinputInfo {
margin-left: 120px !important; margin-left: 120px !important;
} }
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw { .first_row {
margin-left: 120px !important; border-top: 1px solid #E0E3EB;
width: calc(100% - 115px); }
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style> </style>

417
yxt-as-ui/src/views/storage/receivingGoods/upShelfAddRecord.vue

@ -1,417 +0,0 @@
<template>
<div>
<div class="tab-header webtop">
<!-- 标题 -->
<div>新增上架单</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<!-- <div class="title">
<div>基础信息</div>
</div> -->
<el-row class="first_row">
<el-col :span="8">
<div class="span-sty">制单人</div>
<el-form-item>
<span class="addinputw addinputInfo">{{ formobj.createByName }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">制单部门</div>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 单据日期</div>
<el-form-item prop="createTime"> <el-date-picker v-model="formobj.createTime" type="date"
class="addinputw addinputInfo" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">来源单号</div>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单据状态</div>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.billState }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 上架人</div>
<el-form-item prop="upShelfName">
<el-select v-model="formobj.upShelfName" filterable clearable placeholder="请选择"
class="addinputw addinputInfo" @change="allOrgperSelect">
<el-option v-for="item in allOrgperList" :key="item.sid" :label="item.name" :value="item.sid">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">备注</div>
<el-form-item><el-input v-model="formobj.remarks" placeholder="" class="addinputw addinputInfo"
type="textarea" :rows="1" clearable /></el-form-item>
</el-col>
</el-row>
<div class="title">
<div>商品列表</div>
</div>
<el-table v-loading="listLoading" :data="formobj.list" border>
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column fixed label="操作" wid align="center" width="120">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="doGoodsDel(scope.row.goodsSkuSid)">删除</el-button>
</template>
</el-table-column>
<el-table-column label="商品名称" prop="goodsSpuName" align="center" />
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" />
<el-table-column label="单位" prop="unit" align="center" />
<!-- <el-table-column label="仓库" align="center" width="180">
<template slot-scope="scope">
<el-select v-model="scope.row.warehouseName" placeholder="请选择" clearable
@change="selectWarehouseName(scope.row,$event)">
<el-option v-for="(item,i) in warehouseList" :key="i" :label="item.warehouseName" :value="item.sid">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="库位" align="center" width="180">
<template slot-scope="scope">
<el-select v-model="scope.row.warehouseRackName" :disabled="scope.row.warehouseName==''" clearable
@focus="getWarehouseAreaList(scope.row.warehouseSid)" placeholder="请选择"
@change="selectWarehouseAreaCode(scope.row,$event)">
<el-option v-for="(item,i) in warehouseRackList" :key="i" :label="item.areaCode" :value="item.sid">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="批次号" prop="batchNumber" align="center" width="300" /> -->
<el-table-column label="需上架数量" align="center">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" v-model="scope.row.count" clearable placeholder=""
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</template>
</el-table-column>
<el-table-column label="载具编号" align="center">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" v-model="scope.row.packageNo" clearable placeholder="" />
</template>
</el-table-column>
</el-table>
</el-form>
</div>
</div>
</template>
<script>
import req from '@/api/storage/receivingGoods.js'
import req2 from '@/api/storage/allocation.js'
import {
getCurrentDate
} from '@/utils/index.js'
import {
selAllByOrgSidPath,
getOrgSidByPath
} from '@/api/Common/dictcommons'
export default {
components: {},
data() {
return {
listLoading: false,
submitdisabled: false,
formobj: {
"sid": "",
"billNo": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createByName": window.sessionStorage.getItem('name'),
"deptName": '',
"deptSid": '',
"sourceBillNo": "",
"sourceBillSid": "",
"billState": "新建",
"upShelfSid": "",
"upShelfName": '',
"list": [
],
"remarks": "",
'createOrgSid': "",
'useOrgSid': ""
},
hideUploadBtn: false,
busTypeList: [{
name: "业务类型1",
sid: "1"
},
{
name: "业务类型2",
sid: "2"
}
],
supplierList: [],
warehouseList: [],
warehouseRackList: [],
allOrgperList: [],
rules: {
createTime: [{
required: true,
message: '到货日期不能为空',
trigger: 'change'
}],
upShelfName: [{
required: true,
message: '请选择上架人员',
trigger: 'change'
}],
}
}
},
created() {
},
methods: {
getOrgPathSid() {
getOrgSidByPath({
orgPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.formobj.createOrgSid = res.data
this.formobj.useOrgSid = res.data
}
})
},
doGoodsDel(sid) {
console.log("doGoodsDel》》》》", sid)
this.$confirm("是否确定删除此商品?", '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const index = this.formobj.list.findIndex((item) => item.goodsSkuSid === sid)
console.log("index》》》》", index)
this.formobj.list.splice(index, 1)
})
},
indexMethod(index) {
return index + 1
},
saveOrUpdate() {
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
this.submitdisabled = true
this.$refs['form_obj'].validate((valid) => {
if (valid) {
req.saveUpShelf(this.formobj)
.then(resp => {
if (resp.success) {
this.submitdisabled = false
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
} else {
this.submitdisabled = false
// resp.code
}
})
.catch(() => {
this.submitdisabled = false
})
}
})
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
"sid": "",
"billNo": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createByName": window.sessionStorage.getItem('name'),
"createTime": getCurrentDate(),
"deptName": '',
"deptSid": '',
"sourceBillNo": "",
"sourceBillSid": "",
"billState": "新建",
"upShelfSid": "",
"upShelfName": '',
"list": [
],
"remarks": "",
'createOrgSid': "",
'useOrgSid': ""
}
this.$emit('doback')
},
showAdd() {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
},
showEdit(row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.getWarehouseList()
this.getAllOrgper()
this.getOrgPathSid()
var params = {
sid: row.sid,
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
userSid: window.sessionStorage.getItem('userSid')
}
req.initUpshelf(params)
.then(resp => {
if (resp.success) {
this.formobj = resp.data
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.deptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1)
}
})
.catch(e => {
this.formobj = {}
})
},
getAllOrgper() {
selAllByOrgSidPath({
orgSidPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.allOrgperList = res.data
console.log("aaaaaa", this.allOrgperList);
}
})
},
allOrgperSelect(val) {
console.log("allOrgperSelect", val);
const choose = this.allOrgperList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectWarehouseName', choose)
this.formobj.upShelfName = choose[0].name
this.formobj.upShelfSid = choose[0].sid
},
getWarehouseList() {
var parpams = {
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
}
req2.getWarehouses(parpams).then((res) => {
if (res.success) {
this.warehouseList = res.data
console.log("aaaaaa", this.warehouseList);
}
})
},
getWarehouseAreaList(sid) {
var query = {
ckSid: sid
}
req2.getWarehouseareas(query).then((res) => {
if (res.success) {
this.warehouseRackList = res.data
console.log("aaaaaa", this.warehouseRackList);
}
})
},
selectWarehouseName(row, val) {
console.log("selectWarehouseName", row);
console.log("selectWarehouseName", val);
const choose = this.warehouseList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectWarehouseName', choose)
row.warehouseName = choose[0].warehouseName
row.warehouseSid = choose[0].sid
},
selectWarehouseAreaCode(row, val) {
console.log("selectWarehouseAreaCode", val);
const choose = this.warehouseRackList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectWarehouseAreaCode', choose)
row.warehouseRackName = choose[0].areaCode
row.warehouseRackSid = choose[0].sid
},
}
}
</script>
<style scoped>
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
.must {
color: #f00;
}
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 120px !important;
width: calc(100% - 115px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style>

158
yxt-as-ui/src/views/storage/receivingGoods/upShelfInfo.vue

@ -1,158 +0,0 @@
<template>
<div>
<div class="tab-header webtop">
<!-- 标题 -->
<div>上架单详情</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<div class="title">
<div>基础信息</div>
</div>
<el-row class="first_row">
<el-col :span="8">
<div class="span-sty">制单人</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">制单部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单据日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">来源单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单据状态</div>
<el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">上架人</div>
<el-form-item><span class="addinputInfo">{{ formobj.upShelfName }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item>
</el-col>
</el-row>
<div class="title">
<div>商品列表</div>
</div>
<el-table v-loading="listLoading" :data="formobj.list" border>
<el-table-column fixed label="序号" type="index" :index="indexMethod" align="center" width="80" />
<el-table-column fixed label="商品名称" prop="goodsSpuName" align="center" width="200" />
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" />
<el-table-column label="单位" prop="unit" align="center" />
<!-- <el-table-column label="批次号" prop="batchNumber" align="center" />
<el-table-column label="仓库" prop="warehouseName" align="center" />
<el-table-column label="库位" prop="warehouseRackCode" align="center" /> -->
<el-table-column label="需上架数量" prop="count" align="center" />
<el-table-column label="已上架数量" prop="actualCount" align="center" />
<el-table-column label="未上架数量" prop="noShelfCount" align="center" />
<el-table-column label="载具编号" prop="packageNo" align="center" />
</el-table>
</el-form>
</div>
</div>
</template>
<script>
import req from '@/api/storage/upShelf.js'
export default {
components: {},
data() {
return {
listLoading: false,
submitdisabled: false,
formobj: {},
}
},
methods: {
indexMethod(index) {
return index + 1
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.$emit('doback2')
},
showAdd() {
},
showEdit(sid) {
req.init(sid)
.then(resp => {
if (resp.success) {
this.formobj = resp.data
}
})
.catch(e => {
this.formobj = {}
})
}
}
}
</script>
<style scoped>
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 120px !important;
width: calc(100% - 115px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style>

527
yxt-as-ui/src/views/storage/upShelf/index.vue

@ -1,7 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<div v-show="viewState == 1"> <div v-show="viewState == 1">
<button-bar ref="btnbar" view-title="上架单管理" :btndisabled="btndisabled" @btnhandle="btnHandle" /> <button-bar ref="btnbar" view-title="上架单管理" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<div class="main-content"> <div class="main-content">
<div class="searchcon"> <div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow"> <el-button size="small" class="searchbtn" @click="clicksearchShow">
@ -10,22 +10,19 @@
<div v-show="isSearchShow" class="search"> <div v-show="isSearchShow" class="search">
<el-form :inline="true" class="tab-header"> <el-form :inline="true" class="tab-header">
<el-form-item label="单据编号"> <el-form-item label="单据编号">
<el-input v-model="queryParams.params.billNo" placeholder="" clearable /> <el-input v-model="queryParams.params.billNo" placeholder="" clearable/>
</el-form-item> </el-form-item>
<el-form-item label="单据日期"> <el-form-item label="单据日期">
<el-date-picker v-model="queryParams.params.createTimeStart" type="date" placeholder="选择日期" <el-date-picker v-model="queryParams.params.createTimeStart" type="date" placeholder="选择日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;" />
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;"> <span style="padding: 0 8px"></span>
</el-date-picker> <el-date-picker v-model="queryParams.params.createTimeEnd" type="date" placeholder="选择日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;" />
<el-date-picker v-model="queryParams.params.createTimeEnd" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;">
</el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="来源单号"> <el-form-item label="来源单号">
<el-input v-model="queryParams.params.sourceBillNo" placeholder="" clearable /> <el-input v-model="queryParams.params.sourceBillNo" placeholder="" clearable/>
</el-form-item> </el-form-item>
<el-form-item label="单据状态"> <el-form-item label="单据状态">
<el-select v-model="queryParams.params.billState" placeholder="请选择"> <el-select v-model="queryParams.params.billState" placeholder="请选择">
<el-option v-for="(item,i) in billStateList" :key="item.sid" :label="item.name" :value="item.name"> <el-option v-for="item in billStateList" :key="item.sid" :label="item.name" :value="item.name">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -36,317 +33,275 @@
</div> </div>
</div> </div>
</div> </div>
<!-- Start 项目列表头部 -->
<div class="listtop"> <div class="listtop">
<div class="tit">上架单列表</div> <div class="tit">上架单列表</div>
</div> </div>
<!-- End 项目列表头部 -->
<!-- Start 项目列表 -->
<div class=""> <div class="">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%" <el-table v-loading="tableLoading" :data="dataList" border style="width: 100%" @selection-change="selectionLineChangeHandle">
@selection-change="selectionLineChangeHandle"> <el-table-column fixed width="50" type="selection" align="center"/>
<el-table-column fixed width="50" type="selection" align="center" /> <el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column fixed label="操作" align="center" width="100"> <el-table-column fixed label="操作" align="center" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">查看</el-button> <el-button type="primary" size="mini" @click="toInfo(scope.row)">查看</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="billNo" label="单据编号" align="center" /> <el-table-column prop="billNo" label="单据编号" align="center"/>
<el-table-column prop="createTime" label="单据日期" align="center" /> <el-table-column prop="createTime" label="单据日期" align="center"/>
<el-table-column prop="createByName" label="制单人" align="center" /> <el-table-column prop="createByName" label="制单人" align="center"/>
<el-table-column prop="sourceBillNo" label="来源单号" align="center" /> <el-table-column prop="sourceBillNo" label="来源单号" align="center"/>
<el-table-column prop="billState" label="单据状态" align="center" /> <el-table-column prop="billState" label="单据状态" align="center"/>
</el-table> </el-table>
</div> </div>
<!-- End 项目列表 --> <!-- End 项目列表 -->
<div class="pages"> <div class="pages">
<div class="tit" /> <div class="tit"/>
<!-- 翻页 --> <!-- 翻页 -->
<pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current" <pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current" :limit.sync="queryParams.size" class="pagination" @pagination="loadList"/>
:limit.sync="queryParams.size" class="pagination" @pagination="loadList" />
</div> </div>
</div> </div>
</div> </div>
<!-- End 查询和其列表部分 --> <!-- End 查询和其列表部分 -->
<!-- 新增修改部分组件 --> <!-- 新增修改部分组件 -->
<divAdd v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList" /> <divAdd v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList"/>
<divInfo v-show="viewState == 4" ref="divinfo" @doback="resetState" @reloadlist="loadList" /> <divInfo v-show="viewState == 4" ref="divinfo" @doback="resetState" @reloadlist="loadList"/>
</div> </div>
</template> </template>
<script> <script>
import req from '@/api/storage/upShelf.js' import req from '@/api/storage/upShelf.js'
import ButtonBar from '@/components/ButtonBar' import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination' import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye' import divAdd from './upShelfAdd.vue'
import divAdd from './upShelfAdd.vue' import divInfo from './upShelfInfo.vue'
import divInfo from './upShelfInfo.vue'
export default { export default {
components: { components: {
ButtonBar, ButtonBar,
Pagination, Pagination,
pageye, divAdd,
divAdd, divInfo
divInfo },
}, data() {
data() { return {
return { btndisabled: false,
formobj: { viewState: 1, // 1 2 3 4
sid: "", isSearchShow: false,
reviewStatus: "", searchxianshitit: '显示查询条件',
remarks: '' tableLoading: false,
dataList: [],
btnList: [
{
type: 'danger',
size: 'small',
icon: 'del',
btnKey: 'doDel',
btnLabel: '删除'
}, },
btndisabled: false, // {
viewState: 1, // 1 2 3 4 // type: 'primary',
isSearchShow: false, // size: 'small',
searchxianshitit: '显示查询条件', // icon: 'plus',
tableLoading: false, // btnKey: 'toAdd',
dataList: [], // btnLabel: ''
btnList: [{ // },
type: 'danger', {
size: 'small', type: 'info',
icon: 'del', size: 'small',
btnKey: 'doDel', icon: 'cross',
btnLabel: '删除' btnKey: 'doClose',
}, btnLabel: '关闭'
{ }
type: 'primary', ],
size: 'small', queryParams: {
icon: 'plus', current: 1,
btnKey: 'toPrintLabel', size: 10,
btnLabel: '打印标签' total: 0,
}, params: {
// { name: '',
// type: 'primary', billNo: '',
// size: 'small', sourceBillNo: '',
// icon: 'plus', createTimestart: '',
// btnKey: 'toAdd', createTimeEnd: '',
// btnLabel: '' billstate: '',
// }, menuUrl: '',
{ orgPath: '',
type: 'info', usersid: ''
size: 'small', }
icon: 'cross', },
btnKey: 'doClose', sids: [],
btnLabel: '关闭' selectionList: [],
} billStateList: [
], {
queryParams: { name: '新建',
current: 1, sid: '0'
size: 10,
total: 0,
params: {
name: '',
billNo: "",
sourceBillNo: "",
createTimestart: '',
createTimeEnd: '',
billstate: '',
menuUrl: '',
orgPath: '',
usersid: ""
}
}, },
sids: [], {
selectionList: [], name: '已完成',
billStateList: [{ sid: '1'
name: "新建", }
sid: "0" ]
}, }
{ },
name: "已完成", mounted() {
sid: "1" this.$refs['btnbar'].setButtonList(this.btnList)
} },
], created() {
sids: [] this.loadList()
} },
methods: {
selectionLineChangeHandle(val) {
this.selectionList = val
const aa = []
val.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
}, },
mounted() { //
this.$refs['btnbar'].setButtonList(this.btnList) clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
}, },
created() { btnHandle(btnKey) {
this.loadList() switch (btnKey) {
case 'doDel':
this.doDel()
break
case 'toAdd':
this.toAdd()
break
case 'doClose':
this.doClose()
break
default:
break
}
}, },
methods: { doDel() {
toPrintLabel() { if (this.sids.length > 0) {
if (this.selectionList.length != 1) { const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$message({ this.$confirm(tip, '提示', {
type: 'warning', confirmButtonText: '确定',
message: "请选择一条数据。", cancelButtonText: '取消',
showClose: true type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
}) })
return req.deleteBySids(this.sids).then((resp) => {
} loading.close()
}, if (resp.success) {
selectionLineChangeHandle(val) { this.$message({
console.log("val", val); type: 'success',
message: resp.msg,
this.selectionList = val showClose: true
const aa = [] })
val.forEach(element => { this.loadList()
aa.push(element.sid) } else {
}) // resp.code
this.sids = aa }
}).catch(e => {
loading.close()
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
switch (btnKey) {
case 'toPrintLabel':
this.toPrintLabel()
break
case 'doDel':
this.doDel()
break
case 'toAdd':
this.toAdd()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
doDel() {
if (this.sids.length > 0) {
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.deleteBySids(this.sids).then((resp) => {
loading.close()
if (resp.success) {
this.$message({
type: 'success',
message: resp.msg,
showClose: true
})
this.loadList()
} else {
// resp.code
}
}).catch(e => {
loading.close()
})
}).catch(() => {})
} else {
this.$message({
showClose: true,
message: '请至少选择一条记录进行删除操作'
}) })
}
},
loadList() {
this.tableLoading = true
this.queryParams.params.userSid = window.sessionStorage.getItem('userSid')
this.queryParams.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
this.queryParams.params.menuUrl = this.$route.path
req.listPage(this.queryParams).then((resp) => {
this.tableLoading = false
if (resp.success) {
const data = resp.data
this.queryParams.total = data.total
this.dataList = data.records
} else {
// resp.code
this.dataList = []
this.queryParams.total = 0
}
}).catch(() => { }).catch(() => {
this.tableLoading = false
}) })
}, } else {
this.$message({
// showClose: true,
indexMethod(index) { message: '请至少选择一条记录进行删除操作'
var pagestart = (this.queryParams.current - 1) * this.queryParams.size })
var pageindex = index + 1 + pagestart }
return pageindex },
}, loadList() {
dosearch() { this.tableLoading = true
this.queryParams.current = 1 this.queryParams.params.userSid = window.sessionStorage.getItem('userSid')
this.loadList() this.queryParams.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
}, this.queryParams.params.menuUrl = this.$route.path
resetQuery() { req.listPage(this.queryParams).then((resp) => {
this.queryParams = { this.tableLoading = false
current: 1, if (resp.success) {
size: 10, const data = resp.data
total: 0, this.queryParams.total = data.total
params: { this.dataList = data.records
name: '', } else {
billNo: "", // resp.code
sourceBillNo: "", this.dataList = []
createTimestart: '', this.queryParams.total = 0
createTimeEnd: '',
billstate: '',
menuUrl: '',
orgPath: '',
usersid: ""
}
}
this.loadList()
},
toAdd(row) {
if (this.selectionList.length != 1) {
this.$message({
type: 'warning',
message: "请选择一条数据。",
showClose: true
})
return
} }
}).catch(() => {
if (this.selectionList[0].billState == '完成') { this.tableLoading = false
this.$message({ })
type: 'warning', },
message: "此记录已完成,不可操作。", //
showClose: true indexMethod(index) {
}) var pagestart = (this.queryParams.current - 1) * this.queryParams.size
return var pageindex = index + 1 + pagestart
return pageindex
},
dosearch() {
this.queryParams.current = 1
this.loadList()
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
name: '',
billNo: '',
sourceBillNo: '',
createTimestart: '',
createTimeEnd: '',
billstate: '',
menuUrl: '',
orgPath: '',
usersid: ''
} }
}
this.viewState = 2 this.loadList()
this.$refs['divadd'].showEdit(this.selectionList[0]) },
toAdd(row) {
}, if (this.selectionList.length !== 1) {
this.$message({
doClose() { type: 'warning',
this.$store.dispatch('tagsView/delView', this.$route) message: '请选择一条数据。',
this.$router.go(-1) showClose: true
}, })
toRelevancy(row) { return
this.viewState = 4 }
this.$refs['divinfo'].showEdit(row) if (this.selectionList[0].billState === '完成') {
}, this.$message({
type: 'warning',
resetState() { message: '此记录已完成,不可操作。',
this.viewState = 1 showClose: true
}, })
return
}
this.viewState = 2
this.$refs['divadd'].showEdit(this.selectionList[0])
},
toInfo(row) {
this.viewState = 4
this.$refs['divinfo'].showEdit(row)
},
resetState() {
this.viewState = 1
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
} }
} }
}
</script> </script>
<style scoped> <style scoped>
</style> </style>

531
yxt-as-ui/src/views/storage/upShelf/upShelfAdd.vue

@ -1,20 +1,13 @@
<template> <template>
<div> <div class="app-container">
<div class="tab-header webtop"> <div class="tab-header webtop">
<!-- 标题 --> <div>{{ title }}上架单</div>
<div>{{title}}上架单</div>
<!-- start 添加修改按钮 -->
<div> <div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button> <el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button> <el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div> </div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div> </div>
<div class="listconadd"> <div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02"> <el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<div class="title"> <div class="title">
<div>基础信息</div> <div>基础信息</div>
@ -30,21 +23,19 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">制单人</div> <div class="span-sty">制单人</div>
<el-form-item><el-input v-model="formobj.createByName" placeholder="" class="addinputw addinputInfo" <el-form-item>
clearable /></el-form-item> <el-input v-model="formobj.createByName" placeholder="" class="addinputw addinputInfo" clearable/>
</el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty"><span class="must">*</span> 单据日期</div> <div class="span-sty"><span class="must">*</span>单据日期</div>
<el-form-item prop="createTime"> <el-date-picker v-model="formobj.createTime" type="date" <el-form-item prop="createTime">
class="addinputw addinputInfo" value-format="yyyy-MM-dd" placeholder="选择日期"> <el-date-picker v-model="formobj.createTime" type="date" class="addinputw addinputInfo" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">来源单号</div> <div class="span-sty">来源单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
@ -54,371 +45,229 @@
<el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty"><span class="must">*</span> 上架人</div> <div class="span-sty"><span class="must">*</span>上架人</div>
<el-form-item prop="upShelfName"> <el-form-item prop="upShelfName">
<el-select v-model="formobj.upShelfName" filterable clearable placeholder="请选择" <el-select v-model="formobj.upShelfName" filterable clearable placeholder="请选择" class="addinputw addinputInfo" @change="allOrgperSelect">
class="addinputw addinputInfo" @change="allOrgperSelect">
<el-option v-for="item in allOrgperList" :key="item.sid" :label="item.name" :value="item.sid"> <el-option v-for="item in allOrgperList" :key="item.sid" :label="item.name" :value="item.sid">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<div class="span-sty">备注</div> <div class="span-sty">备注</div>
<el-form-item><el-input v-model="formobj.remarks" placeholder="" class="addinputw addinputInfo" <el-form-item>
clearable /></el-form-item> <el-input v-model="formobj.remarks" placeholder="" class="addinputw addinputInfo" clearable/>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<div class="title">商品列表</div>
<div class="title">
<div>商品列表</div>
</div>
<el-table v-loading="listLoading" :data="formobj.list" border> <el-table v-loading="listLoading" :data="formobj.list" border>
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" /> <el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column fixed label="操作" wid align="center" width="120"> <el-table-column fixed label="操作" wid align="center" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="doGoodsBatch(scope.row)">删除</el-button> <el-button type="primary" size="mini" @click="doGoodsBatch(scope.$index)">删除</el-button>
</template>
</el-table-column>
<el-table-column label="商品名称" prop="goodsSkuTitle" align="center" width="200" />
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150" />
<el-table-column label="单位" prop="unit" align="center" width="120" />
<!-- <el-table-column label="仓库" align="center" width="180">
<template slot-scope="scope">
<el-select v-model="scope.row.warehouseName" placeholder="请选择" clearable
@change="selectWarehouseName(scope.row,$event)">
<el-option v-for="(item,i) in warehouseList" :key="i" :label="item.warehouseName" :value="item.sid">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="库位" align="center" width="180">
<template slot-scope="scope">
<el-select v-model="scope.row.warehouseRackName" :disabled="scope.row.warehouseName==''" clearable
@focus="getWarehouseAreaList(scope.row.warehouseSid)" placeholder="请选择"
@change="selectWarehouseAreaCode">
<el-option v-for="(item,i) in warehouseRackList" :key="i" :label="item.areaCode" :value="item.sid">
</el-option>
</el-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="批次号" prop="batchNumber" align="center" width="300" /> --> <el-table-column label="商品名称" prop="goodsSkuTitle" align="center" width="200"/>
<el-table-column label="需要上架数量" align="center" width="120"> <el-table-column label="图号" prop="goodsSkuCode" align="center" width="150"/>
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150"/>
<el-table-column label="单位" prop="unit" align="center" width="120"/>
<el-table-column label="需上架数量" align="center" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input ref="focusAssumptionInput" v-model="scope.row.count" clearable placeholder="" <el-input @keyup.native="scope.row.count = getNumber(scope.row.count, 0)" v-model="scope.row.count" clearable placeholder="" @input="inputCount(scope.row)"/>
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="载具编号" align="center" width="180"> <el-table-column label="备注" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input ref="focusAssumptionInput" v-model="scope.row.packageNo" clearable placeholder="" /> <el-input v-model="scope.row.remarks" clearable placeholder=""/>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-form> </el-form>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import req from '@/api/storage/upShelf.js' import req from '@/api/storage/upShelf.js'
import req2 from '@/api/storage/allocation.js' import { getCurrentDate } from '@/utils/index.js'
import { import { selAllByOrgSidPath } from '@/api/Common/dictcommons'
getCurrentDate
} from '@/utils/index.js' export default {
import { data() {
selAllByOrgSidPath return {
} from '@/api/Common/dictcommons' title: '【新增】',
listLoading: false,
export default { submitdisabled: false,
components: {}, formobj: {
data() { sid: '',
return { billNo: '',
title: "【新增】", createBySid: window.sessionStorage.getItem('userSid'),
listLoading: false, createByName: window.sessionStorage.getItem('name'),
submitdisabled: false, createTime: getCurrentDate(),
formobj: { deptName: '',
"sid": "", deptSid: '',
"billNo": "", sourceBillNo: '',
"createBySid": window.sessionStorage.getItem('userSid'), sourceBillSid: '',
"createByName": window.sessionStorage.getItem('name'), billState: '新建',
"createTime": getCurrentDate(), upShelfSid: '',
"deptName": '', upShelfName: '',
"deptSid": '', list: [],
"sourceBillNo": "", remarks: ''
"sourceBillSid": "", },
"billState": "新建", warehouseRackList: [],
"upShelfSid": "", allOrgperList: [],
"upShelfName": '', rules: {
"list": [ createTime: [{ required: true, message: '到货日期不能为空', trigger: 'change' }],
upShelfName: [{ required: true, message: '请选择上架人员', trigger: 'change' }]
], }
"remarks": "" }
}, },
hideUploadBtn: false, methods: {
supplierList: [], getNumber(val, limit) {
warehouseList: [], val = val.replace(/[^0-9.]/g, '') //
warehouseRackList: [], val = val.replace(/^00/, '0.') // 0
// commodity val = val.replace(/^\./g, '0.') // 0.
commodityKey: 1, val = val.replace(/\.{2,}/g, '.') //
commodityLoading: false, val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.'); //
commodityQuery: { /^0\d+/.test(val) ? val = val.slice(1) : '' // 0
current: 1, const str = '^(\\d+)\\.(\\d{' + limit + '}).*$'
size: 2, const reg = new RegExp(str)
total: 0, if (limit === 0) {
params: { //
name: '', val = val.replace(reg, '$1')
inOrg: "", } else {
outOrg: "" //
} val = val.replace(reg, '$1.$2')
},
commodityData: [],
isUpdata: false,
allOrgperList: [],
rules: {
createTime: [{
required: true,
message: '到货日期不能为空',
trigger: 'change'
}],
upShelfName: [{
required: true,
message: '请选择上架人员',
trigger: 'change'
}],
}
} }
return val
}, },
created() {}, indexMethod(index) {
return index + 1
methods: { },
saveOrUpdate() {
indexMethod(index) { if (this.formobj.list.length === 0) {
return index + 1 this.$message({ showClose: true, type: 'error', message: '请添加商品' })
}, return
saveOrUpdate() { }
console.log('>>>>>>>>>saveOrUpdate', this.formobj) for (var i = 0; i < this.formobj.list.length; i++) {
if (parseFloat(this.formobj.list[i].actualCount) === 0 && this.formobj.list[i].actualCount !== '') {
this.$message({ showClose: true, type: 'error', message: '商品上架数量不能为空' })
if (this.formobj.list.length == 0) {
this.$message({
showClose: true,
type: 'error',
message: '请添加商品'
})
return return
} }
}
for (var i = 0; i < this.formobj.list.length; i++) { this.$refs['form_obj'].validate((valid) => {
var item = this.formobj.list[i] if (valid) {
if (item.actualCount == 0) { this.submitdisabled = true
this.$message({ req.save(this.formobj).then((res) => {
showClose: true, if (res.success) {
type: 'error', this.$message({
message: '商品上架数量不能为空' showClose: true,
}) type: 'success',
message: '保存成功'
return })
} this.handleReturn('true')
} else {
}
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.save(this.formobj).then((res) => {
if (res.success) {
this.$message({
showClose: true,
type: 'success',
message: '保存成功'
})
this.handleReturn('true')
} else {
this.submitdisabled = false
}
}).catch(() => {
this.submitdisabled = false this.submitdisabled = false
})
}
})
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
"sid": "",
"billNo": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createByName": window.sessionStorage.getItem('name'),
"createTime": getCurrentDate(),
"deptName": '',
"deptSid": '',
"sourceBillNo": "",
"sourceBillSid": "",
"billState": "新建",
"upShelfSid": "",
"upShelfName": '',
"list": [
],
"remarks": ""
}
this.submitdisabled = false
this.$emit('doback')
},
showAdd() {
this.title = "【新增】"
this.getWarehouseList()
this.getAllOrgper()
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
},
showEdit(row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.getWarehouseList()
this.getAllOrgper()
this.title = "【修改】"
var params = {
sid: row.sid
}
req.init(params)
.then(resp => {
if (resp.success) {
this.formobj = resp.data
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.deptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1)
} }
}).catch(() => {
this.submitdisabled = false
}) })
.catch(e => {
this.formobj = {}
})
},
getAllOrgper() {
selAllByOrgSidPath({
orgSidPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.allOrgperList = res.data
console.log("aaaaaa", this.allOrgperList);
}
})
},
allOrgperSelect(val) {
console.log("allOrgperSelect", val);
const choose = this.allOrgperList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectWarehouseName', choose)
this.formobj.upShelfName = choose[0].name
this.formobj.upShelfSid = choose[0].sid
},
getWarehouseList() {
var parpams = {
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
} }
req2.getWarehouses(parpams).then((res) => { })
if (res.success) { },
this.warehouseList = res.data handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
console.log("aaaaaa", this.warehouseList); this.formobj = {
sid: '',
} billNo: '',
}) createBySid: window.sessionStorage.getItem('userSid'),
}, createByName: window.sessionStorage.getItem('name'),
getWarehouseAreaList(sid) { createTime: getCurrentDate(),
var query = { deptName: '',
ckSid: sid deptSid: '',
sourceBillNo: '',
sourceBillSid: '',
billState: '新建',
upShelfSid: '',
upShelfName: '',
list: [],
remarks: ''
}
this.submitdisabled = false
this.$emit('doback')
},
showAdd() {
this.title = '【新增】'
this.getAllOrgper()
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
},
showEdit(row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.getAllOrgper()
this.title = '【修改】'
req.init({ sid: row.sid }).then(resp => {
if (resp.success) {
this.formobj = resp.data
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.deptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem('defaultOrgPath').lastIndexOf('/') + 1)
} }
req2.getWarehouseareas(query).then((res) => { }).catch(e => {
if (res.success) { this.formobj = {}
this.warehouseRackList = res.data })
},
console.log("aaaaaa", this.warehouseRackList); getAllOrgper() {
selAllByOrgSidPath({ orgSidPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
} if (res.success) {
}) this.allOrgperList = res.data
}, }
selectWarehouseName(row, val) { })
console.log("selectWarehouseName", row); },
console.log("selectWarehouseName", val); allOrgperSelect(val) {
const choose = this.warehouseList.filter((item) => item.sid == val) const choose = this.allOrgperList.filter((item) => item.sid === val)
console.log('>>>>>>>>>selectWarehouseName', choose) this.formobj.upShelfName = choose[0].name
row.warehouseName = choose[0].warehouseName this.formobj.upShelfSid = choose[0].sid
row.warehouseSid = choose[0].sid },
doGoodsBatch(index) {
}, this.formobj.list.splice(index, 1)
selectWarehouseAreaCode(val) { },
console.log("selectWarehouseAreaCode", val); inputCount(row) {
if (row.count !== '' && row.maxCount !== '' && parseFloat(row.count) - parseFloat(row.maxCount) < 0) {
const choose = this.warehouseRackList.filter((item) => item.sid == val) row.count = row.maxCount
console.log('>>>>>>>>>selectWarehouseAreaCode', choose) }
row.warehouseRackName = choose[0].areaCode
row.warehouseRackSid = choose[0].sid
},
} }
} }
}
</script> </script>
<style scoped> <style scoped>
/deep/ .el-form-item__error { /deep/ .el-form-item__error {
margin-left: 120px !important; margin-left: 120px !important;
} }
.must { .must {
color: #f00; color: #f00;
} }
.span-sty { .span-sty {
width: 130px !important; width: 130px !important;
} }
.addinputInfo { .addinputInfo {
margin-left: 120px !important; margin-left: 120px !important;
} }
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw { .formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 120px !important; margin-left: 120px !important;
width: calc(100% - 115px); width: calc(100% - 115px);
} }
.first_row { .first_row {
border-top: 1px solid #E0E3EB; border-top: 1px solid #E0E3EB;
} }
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style> </style>

128
yxt-as-ui/src/views/storage/upShelf/upShelfInfo.vue

@ -1,42 +1,28 @@
<template> <template>
<div> <div class="app-container">
<div class="tab-header webtop"> <div class="tab-header webtop">
<!-- 标题 -->
<div>上架单</div> <div>上架单</div>
<!-- start 添加修改按钮 -->
<div> <div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button> <el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div> </div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div> </div>
<div class="listconadd"> <div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02"> <el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<div class="title">
<div>基础信息</div>
</div>
<el-row class="first_row"> <el-row class="first_row">
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">制单人</div> <div class="span-sty">制单人</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">制单部门</div> <div class="span-sty">制单部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">单据日期</div> <div class="span-sty">单据日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">来源单号</div> <div class="span-sty">来源单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
@ -45,117 +31,75 @@
<div class="span-sty">单据状态</div> <div class="span-sty">单据状态</div>
<el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">上架人</div> <div class="span-sty">上架人</div>
<el-form-item><span class="addinputInfo">{{ formobj.upShelfName }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.upShelfName }}</span></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<div class="span-sty">备注</div> <div class="span-sty">备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<div class="title">商品列表</div>
<div class="title">
<div>商品列表</div>
</div>
<el-table v-loading="listLoading" :data="formobj.list" border> <el-table v-loading="listLoading" :data="formobj.list" border>
<el-table-column fixed label="序号" type="index" :index="indexMethod" align="center" width="80" /> <el-table-column fixed label="序号" type="index" :index="indexMethod" align="center" width="80" />
<el-table-column fixed label="商品名称" prop="goodsSpuName" align="center" width="200" /> <el-table-column fixed label="商品名称" prop="goodsSpuName" align="center" width="200" />
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" /> <el-table-column label="图号" prop="goodsSkuCode" align="center" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" /> <el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" />
<el-table-column label="单位" prop="unit" align="center" /> <el-table-column label="单位" prop="unit" align="center" />
<!-- <el-table-column label="批次号" prop="batchNumber" align="center" />
<el-table-column label="仓库" prop="warehouseName" align="center" />
<el-table-column label="库位" prop="warehouseRackCode" align="center" /> -->
<el-table-column label="需上架数量" prop="count" align="center" /> <el-table-column label="需上架数量" prop="count" align="center" />
<el-table-column label="已上架数量" prop="actualCount" align="center" /> <el-table-column label="已上架数量" prop="actualCount" align="center" />
<el-table-column label="未上架数量" prop="noShelfCount" align="center" /> <el-table-column label="未上架数量" prop="noShelfCount" align="center" />
<el-table-column label="载具编号" prop="packageNo" align="center" /> <el-table-column label="备注" prop="remarks" align="center" />
</el-table> </el-table>
</el-form> </el-form>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import req from '@/api/storage/upShelf.js' import req from '@/api/storage/upShelf.js'
export default { export default {
components: {}, data() {
data() { return {
return { listLoading: false,
listLoading: false, formobj: {}
submitdisabled: false, }
formobj: {}, },
} methods: {
indexMethod(index) {
return index + 1
}, },
methods: {
indexMethod(index) {
return index + 1
},
handleReturn(isreload) { handleReturn() {
if (isreload === 'true') this.$emit('reloadlist') this.formobj = {}
this.$emit('doback') this.$emit('doback')
}, },
showEdit(row) {
showAdd() { req.init(row.sid).then(resp => {
if (resp.success) {
}, this.formobj = resp.data
showEdit(row) {
var params = {
sid: row.sid
} }
req.init(row.sid) }).catch(e => {
.then(resp => { this.formobj = {}
if (resp.success) { })
this.formobj = resp.data
}
})
.catch(e => {
this.formobj = {}
})
}
} }
} }
}
</script> </script>
<style scoped> <style scoped>
.span-sty { .span-sty {
width: 130px !important; width: 130px !important;
} }
.addinputInfo {
margin-left: 120px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw { .addinputInfo {
margin-left: 120px !important; margin-left: 120px !important;
width: calc(100% - 115px); }
}
.first_row { .first_row {
border-top: 1px solid #E0E3EB; border-top: 1px solid #E0E3EB;
} }
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style> </style>

Loading…
Cancel
Save