Browse Source

完善到货、收货页面样式及逻辑处理

master
guoxing 1 year ago
parent
commit
b457fc2295
  1. 15
      yxt-as-ui/src/utils/index.js
  2. 7
      yxt-as-ui/src/views/storage/deliveryNotice/index.vue
  3. 160
      yxt-as-ui/src/views/storage/deliveryNotice/receiptAdd.vue
  4. 2
      yxt-as-ui/src/views/storage/deliveryNotice/receiptInfo.vue
  5. 5
      yxt-as-ui/src/views/storage/receivingGoods/index.vue
  6. 308
      yxt-as-ui/src/views/storage/receivingGoods/receivingGoodsAdd.vue
  7. 2
      yxt-as-ui/src/views/storage/receivingGoods/receivingGoodsInfo.vue

15
yxt-as-ui/src/utils/index.js

@ -45,7 +45,9 @@ export function parseTime(time, cFormat) {
const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => {
const value = formatObj[key]
// Note: getDay() returns 0 on Sunday
if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] }
if (key === 'a') {
return ['日', '一', '二', '三', '四', '五', '六'][value]
}
return value.toString().padStart(2, '0')
})
return time_str
@ -115,3 +117,14 @@ export function param2Obj(url) {
})
return obj
}
/**
* 获取当前日期
*/
export function getCurrentDate() {
let now = new Date();
let year = now.getFullYear();
let month = now.getMonth() + 1;
let day = now.getDate();
return year + "-" + month + "-" + day;
}

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

@ -76,10 +76,10 @@
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column prop="billNo" label="单据编号" align="center" width="150" />
<el-table-column prop="billNo" label="单据编号" align="center" width="220" />
<el-table-column prop="createTime" label="单据日期" align="center" width="150" />
<el-table-column prop="createByName" label="制单人" align="center" width="150" />
<el-table-column prop="sourceBillNo" label="外部单号" align="center" width="150" />
<el-table-column prop="sourceBillNo" label="外部单号" align="center" width="180" />
<el-table-column prop="busTypeValue" label="业务类型" align="center" width="150" />
<el-table-column prop="supplierName" label="供应商" align="center" width="150" />
<el-table-column prop="contact" label="联系人" align="center" width="150" />
@ -303,6 +303,9 @@
},
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) {

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

@ -16,7 +16,7 @@
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<div class="title">
<div>基础信息</div>
</div>
@ -28,7 +28,7 @@
</el-col>
<el-col :span="8">
<div class="span-sty">制单部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.departmentName }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单据日期</div>
@ -60,10 +60,12 @@
<el-row>
<el-col :span="8">
<div class="span-sty">到货日期</div>
<el-form-item> <el-date-picker v-model="formobj.deliveryDate" type="date" class="addinputInfo"
value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker></el-form-item>
<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="16">
<div class="span-sty">单据状态</div>
@ -205,6 +207,9 @@
<script>
import req from '@/api/storage/deliveryNotice.js'
import req2 from '@/api/storage/allocation.js'
import {
getCurrentDate
} from '@/utils/index.js'
import {
getOrgSidByPath
} from '@/api/Common/dictcommons'
@ -220,8 +225,10 @@
sourceBillNo: "",
busTypeKey: "",
busTypeValue: "",
createTime: '',
createByName: window.sessionStorage.getItem('name'),
departmentName: window.sessionStorage.getItem('departmentName'),
deptName: window.sessionStorage.getItem('departmentName'),
deptSid: window.sessionStorage.getItem('departmentSid'),
createBySid: window.sessionStorage.getItem('userSid'),
useOrgSid: window.sessionStorage.getItem('departmentSid'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
@ -235,14 +242,21 @@
supplierName: "",
goodsOwnerSid: "",
goodsOwner: "",
deliveryDate: "",
deliveryDate: getCurrentDate(),
list: [],
pcList: []
},
hideUploadBtn: false,
warehouseList: [],
warehouseRackList: [],
supplierNameList: []
supplierNameList: [],
rules: {
deliveryDate: [{
required: true,
message: '到货日期不能为空',
trigger: 'change'
}],
}
}
},
created() {},
@ -482,68 +496,16 @@
saveOrUpdate() {
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
if (this.formobj.deliveryDate == '') {
this.$message({
showClose: true,
type: 'error',
message: '到货日期不能为空'
})
return
}
// for (var i = 0; i < this.formobj.pcList.length; i++) {
// var item = this.formobj.pcList[i]
// if (item.manufactureDate == '') {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
// return
// }
// if (Number(item.batchCount) == 0) {
// if (this.formobj.deliveryDate == '') {
// this.$message({
// showClose: true,
// type: 'error',
// message: '0'
// message: ''
// })
// return
// }
// }
// for (var i = 0; i < this.formobj.list.length; i++) {
// var index = i
// var num = 0
// const choose = this.formobj.pcList.filter((item) => Number(item.xh) == (index + 1))
// for (var j = 0; j < choose.length; j++) {
// num += Number(choose[j].batchCount)
// }
// console.log('>>>>>>>>>saveOrUpdate', num)
// if (num > Number(this.formobj.list[i].actualInCount)) {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
// return
// }
// }
for (var i = 0; i < this.formobj.list.length; i++) {
if (Number(this.formobj.list[i].actualInCount) == 0) {
@ -556,7 +518,6 @@
return
}
}
@ -584,56 +545,30 @@
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
// for (var i = 0; i < this.formobj.pcList.length; i++) {
// var item = this.formobj.pcList[i]
// if (item.manufactureDate == '') {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
// return
// }
// if (Number(item.batchCount) == 0) {
// if (this.formobj.deliveryDate == '') {
// this.$message({
// showClose: true,
// type: 'error',
// message: '0'
// message: ''
// })
// return
// }
// }
// for (var i = 0; i < this.formobj.list.length; i++) {
// var index = i
// var num = 0
// const choose = this.formobj.pcList.filter((item) => Number(item.xh) == (index + 1))
// for (var j = 0; j < choose.length; j++) {
// num += Number(choose[j].batchCount)
// }
// console.log('>>>>>>>>>saveOrUpdate', num)
for (var i = 0; i < this.formobj.list.length; i++) {
// if (num > Number(this.formobj.list[i].actualInCount)) {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
if (Number(this.formobj.list[i].actualInCount) == 0) {
this.$message({
showClose: true,
type: 'error',
message: '商品实收数量不能为空'
})
// return
// }
return
}
}
// }
this.$refs['form_obj'].validate((valid) => {
if (valid) {
@ -693,6 +628,15 @@
.then(resp => {
if (resp.success) {
this.formobj = resp.data
this.formobj.deliveryDate = getCurrentDate()
this.formobj.createByName = window.sessionStorage.getItem('name')
this.formobj.deptName = window.sessionStorage.getItem('departmentName')
this.formobj.deptSid = window.sessionStorage.getItem('departmentSid')
this.formobj.createBySid = window.sessionStorage.getItem('userSid')
this.formobj.useOrgSid = window.sessionStorage.getItem('departmentSid')
this.formobj.createOrgSid = window.sessionStorage.getItem('orgSid')
}
})
.catch(e => {
@ -703,6 +647,14 @@
}
</script>
<style scoped>
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
.must {
color: #f00;
}
.span-sty {
width: 130px !important;
}
@ -716,6 +668,10 @@
width: calc(100% - 115px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;

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

@ -59,7 +59,7 @@
</el-col>
<el-col :span="8">
<div class="span-sty">单据状态</div>
<el-form-item><span class="addinputInfo">{{ formobj.billStateKey }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ formobj.billstate }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">审核状态</div>

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

@ -72,7 +72,7 @@
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column prop="billNo" label="单据编号" align="center" />
<el-table-column prop="billNo" width="220" label="单据编号" align="center" />
<el-table-column prop="createTime" label="单据日期" align="center" />
<el-table-column prop="createByName" label="制单人" align="center" />
<el-table-column prop="sourceBillNo" label="来源单号" align="center" />
@ -257,6 +257,9 @@
},
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) {

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

@ -13,7 +13,7 @@
<!-- end 详情按钮 -->
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<div class="title">
<div>基础信息</div>
</div>
@ -33,9 +33,9 @@
clearable /></el-form-item>
</el-col> -->
<el-col :span="8">
<div class="span-sty">单据日期</div>
<el-form-item> <el-date-picker v-model="formobj.createTime" type="date" class="addinputInfo"
value-format="yyyy-MM-dd" placeholder="选择日期">
<div class="span-sty"><span class="must">*</span> 单据日期</div>
<el-form-item prop="createTime"> <el-date-picker v-model="formobj.createTime" type="date"
class="addinputInfo" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker></el-form-item>
</el-col>
</el-row>
@ -46,17 +46,17 @@
<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><el-select v-model="formobj.busTypeValue" filterable clearable placeholder="请选择"
class="addinputInfo" @change="busTypeSelect">
<div class="span-sty"><span class="must">*</span> 业务类型</div>
<el-form-item prop="busTypeValue"><el-select v-model="formobj.busTypeValue" filterable clearable
placeholder="请选择" class="addinputInfo" @change="busTypeSelect">
<el-option v-for="item in busTypeList" :key="item.sid" :label="item.name" :value="item.sid">
</el-option>
</el-select></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">供应商</div>
<el-form-item> <el-select v-model="formobj.supplierName" filterable clearable placeholder="请选择"
class="addinputInfo" @change="supplierNameSelect">
<div class="span-sty"><span class="must">*</span> 供应商</div>
<el-form-item prop="supplierName"> <el-select v-model="formobj.supplierName" filterable clearable
placeholder="请选择" class="addinputInfo" @change="supplierNameSelect">
<el-option v-for="item in supplierList" :key="item.sid" :label="item.name" :value="item.sid">
</el-option>
</el-select></el-form-item>
@ -67,9 +67,9 @@
<el-row>
<el-col :span="8">
<div class="span-sty">到货日期</div>
<el-form-item><el-date-picker v-model="formobj.deliveryDate" type="date" class="addinputInfo"
value-format="yyyy-MM-dd" placeholder="选择日期">
<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="16">
@ -108,7 +108,7 @@
</template>
</el-table-column>
<el-table-column v-if="isUpdata" label="商品名称" prop="goodsSkuTitle" align="center" width="200" />
<el-table-column v-if="isUpdata" label="商品名称" prop="goodsSpuName" align="center" width="200" />
<el-table-column label="商品名称" align="center" min-width="200" v-if="!isUpdata">
<template slot-scope="scope" v-if="!isUpdata">
@ -153,7 +153,7 @@
</el-select>
</template>
</el-table-column> -->
<el-table-column label="预约数量" prop="orderCount" align="center" width="120" v-if="isUpdata" />
<!-- <el-table-column label="预约数量" prop="orderCount" align="center" width="120" v-if="isUpdata" /> -->
<el-table-column label="实收数量" align="center" width="120">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" @input="commodityComputeYHAndXSJE(scope.row,$event)"
@ -208,8 +208,8 @@
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</template>
</el-table-column>
<el-table-column label="含税单价" prop="taxPrice" @input="commodityComputeYHAndXSJE5(scope.row,$event)"
align="center" width="150" />
<!-- <el-table-column label="含税单价" prop="taxPrice" @input="commodityComputeYHAndXSJE5(scope.row,$event)"
align="center" width="150" /> -->
<el-table-column label="入库金额" prop="amount" align="center" width="150" />
</el-table>
@ -260,6 +260,9 @@
<script>
import req from '@/api/storage/receivingGoods.js'
import req2 from '@/api/storage/allocation.js'
import {
getCurrentDate
} from '@/utils/index.js'
export default {
components: {},
data() {
@ -275,12 +278,12 @@
"createBySid": window.sessionStorage.getItem('userSid'),
"createByName": window.sessionStorage.getItem('name'),
"departmentName": window.sessionStorage.getItem('departmentName'),
"createTime": "",
"createTime": getCurrentDate(),
"busTypeKey": "",
"busTypeValue": "",
"supplierSid": "",
"supplierName": "",
"deliveryDate": "",
"deliveryDate": getCurrentDate(),
"billState": "新建",
"remarks": "",
"useOrgSid": window.sessionStorage.getItem('departmentSid'),
@ -315,7 +318,29 @@
}
},
commodityData: [],
isUpdata: false
isUpdata: false,
rules: {
createTime: [{
required: true,
message: '到货日期不能为空',
trigger: 'change'
}],
busTypeValue: [{
required: true,
message: '请选择业务类型',
trigger: 'change'
}],
supplierName: [{
required: true,
message: '请选择供应商',
trigger: 'change'
}],
deliveryDate: [{
required: true,
message: '到货日期不能为空',
trigger: 'change'
}],
}
}
},
created() {},
@ -439,111 +464,6 @@
saveOrUpdate() {
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
// if (this.formobj.createByName == '') {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
// return
// }
// if (this.formobj.createTime == '') {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
// return
// }
// if (this.formobj.busTypeKey == '' || this.formobj.busTypeValue == '') {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
// return
// }
// if (this.formobj.supplierSid == '' || this.formobj.supplierName == '') {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
// return
// }
// if (this.formobj.deliveryDate == '') {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
// return
// }
// for (var i = 0; i < this.formobj.pcList.length; i++) {
// var item = this.formobj.pcList[i]
// if (item.manufactureDate == '') {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
// return
// }
// if (Number(item.batchCount) == 0) {
// this.$message({
// showClose: true,
// type: 'error',
// message: '0'
// })
// return
// }
// }
// for (var i = 0; i < this.formobj.list.length; i++) {
// var index = i
// var num = 0
// const choose = this.formobj.pcList.filter((item) => Number(item.xh) == (index + 1))
// for (var j = 0; j < choose.length; j++) {
// num += Number(choose[j].batchCount)
// }
// console.log('>>>>>>>>>saveOrUpdate', num)
// if (num > Number(this.formobj.list[i].actualInCount)) {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
// return
// }
// }
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
@ -566,57 +486,6 @@
},
submit() {
if (this.formobj.createByName == '') {
this.$message({
showClose: true,
type: 'error',
message: '制单人姓名不能为空'
})
return
}
if (this.formobj.createTime == '') {
this.$message({
showClose: true,
type: 'error',
message: '单据日期不能为空'
})
return
}
if (this.formobj.busTypeKey == '' || this.formobj.busTypeValue == '') {
this.$message({
showClose: true,
type: 'error',
message: '业务类型不能为空'
})
return
}
if (this.formobj.supplierSid == '' || this.formobj.supplierName == '') {
this.$message({
showClose: true,
type: 'error',
message: '供应商不能为空'
})
return
}
if (this.formobj.deliveryDate == '') {
this.$message({
showClose: true,
type: 'error',
message: '到货日期不能为空'
})
return
}
if (this.formobj.list.length == 0) {
this.$message({
showClose: true,
@ -643,45 +512,7 @@
this.$message({
showClose: true,
type: 'error',
message: '请添加商品实收数量'
})
return
}
if (this.isUpdata) {
if (item.actualInCount + item.rejectCount > item.orderCount) {
this.$message({
showClose: true,
type: 'error',
message: '商品实收数量或拒收数量错误'
})
return
}
}
}
for (var i = 0; i < this.formobj.pcList.length; i++) {
var item = this.formobj.pcList[i]
if (item.manufactureDate == '') {
this.$message({
showClose: true,
type: 'error',
message: '生产日期不能为空'
})
return
}
if (Number(item.batchCount) == 0) {
this.$message({
showClose: true,
type: 'error',
message: '商品批次数量不能为0'
message: '实收数量不能为空'
})
return
@ -689,32 +520,6 @@
}
for (var i = 0; i < this.formobj.list.length; i++) {
var index = i
var num = 0
const choose = this.formobj.pcList.filter((item) => Number(item.xh) == (index + 1))
for (var j = 0; j < choose.length; j++) {
num += Number(choose[j].batchCount)
}
console.log('>>>>>>>>>saveOrUpdate', num)
if (num > Number(this.formobj.list[i].actualInCount)) {
this.$message({
showClose: true,
type: 'error',
message: '商品批次数量不能大于商品实收数量'
})
return
}
}
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
@ -785,6 +590,15 @@
.then(resp => {
if (resp.success) {
this.formobj = resp.data
this.formobj.createByName = window.sessionStorage.getItem('name')
this.formobj.deptName = window.sessionStorage.getItem('departmentName')
this.formobj.deptSid = window.sessionStorage.getItem('departmentSid')
this.formobj.createBySid = window.sessionStorage.getItem('userSid')
this.formobj.useOrgSid = window.sessionStorage.getItem('departmentSid')
this.formobj.createOrgSid = window.sessionStorage.getItem('orgSid')
}
})
.catch(e => {
@ -1037,6 +851,14 @@
}
</script>
<style scoped>
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
.must {
color: #f00;
}
.span-sty {
width: 130px !important;
}
@ -1050,6 +872,10 @@
width: calc(100% - 115px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;

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

@ -79,7 +79,7 @@
</div>
<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 label="商品名称" prop="goodsSkuTitle" 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="goodsSkuOwnSpec" align="center" width="150" />
<el-table-column label="单位" prop="unit" align="center" width="120" />

Loading…
Cancel
Save