Browse Source

完善维修领料--领料出库、领料退库、出库确认

master
yunuo970428 3 weeks ago
parent
commit
92957fc6d9
  1. 39
      yxt-as-ui/src/api/Common/dictcommons.js
  2. 2
      yxt-as-ui/src/views/maintenanceReceive/maintenanceConfirm.vue
  3. 16
      yxt-as-ui/src/views/maintenanceReceive/maintenanceOutbound.vue
  4. 325
      yxt-as-ui/src/views/maintenanceReceive/maintenanceReturnBound.vue

39
yxt-as-ui/src/api/Common/dictcommons.js

@ -364,3 +364,42 @@ export function getGoodsCategory(params) {
}
})
}
// 查询分公司orgSidPath下的所有仓库
export function getAllWarehouse(params) {
return request({
url: '/wms/apiadmin/base/wmswarehouseinfo/listAll',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
}
// 根据仓库sid查询区域
export function getAllWarehousezoneBysid(params) {
return request({
url: '/wms/apiadmin/base/wmswarehousezone/selectAll',
method: 'get',
params: params,
headers: { 'Content-Type': 'application/json' }
})
}
// 根据区域sid查询库区
export function getAllWarehouseareaByZoneSid(params) {
return request({
url: '/wms/apiadmin/base/wmswarehousearea/selectAreaAll',
method: 'get',
params: params,
headers: { 'Content-Type': 'application/json' }
})
}
// 根据库区sid查询库位
export function getAllRackByKQSid(data) {
return request({
url: '/wms/apiadmin/base/wmswarehouserack/getAllRackByKQSid',
method: 'get',
params: data
})
}

2
yxt-as-ui/src/views/maintenanceReceive/maintenanceConfirm.vue

@ -90,6 +90,8 @@
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center"/>
<el-table-column label="单位" prop="unit" align="center"/>
<el-table-column label="仓库" prop="warehouseName" align="center"/>
<el-table-column prop="wareZoneName" label="区域" width="150" align="center" />
<el-table-column prop="wareAreaName" label="库区" width="150" align="center" />
<el-table-column label="库位" prop="warehouseRackCode" align="center"/>
<el-table-column label="单价" prop="price" align="center"/>
<el-table-column label="库存数量" prop="inventoryNum" align="center"/>

16
yxt-as-ui/src/views/maintenanceReceive/maintenanceOutbound.vue

@ -109,6 +109,8 @@
<el-table-column label="规格" prop="goodsSkuOwnSpec" width="120" align="center"/>
<el-table-column label="单位" prop="unit" align="center"/>
<el-table-column label="仓库" prop="warehouseName" width="150" align="center"/>
<el-table-column label="区域" prop="wareZoneName" width="100" align="center" />
<el-table-column label="库区" prop="wareAreaName" width="100" align="center" />
<el-table-column label="库位" prop="warehouseRackCode" align="center"/>
<el-table-column label="单价" prop="price" width="120" align="center"/>
<!-- <el-table-column label="库存数量" prop="inventoryNum" width="120" align="center"/>-->
@ -149,6 +151,8 @@
<el-table-column prop="cost" label="入库单价" width="100" align="center"/>
<el-table-column prop="supplierName" label="供应商" width="200" align="center"/>
<el-table-column prop="warehouseName" label="仓库" width="150" align="center"/>
<el-table-column prop="wareZoneName" label="区域" width="150" align="center" />
<el-table-column prop="wareAreaName" label="库区" width="150" align="center" />
<el-table-column prop="warehouseRackCode" label="库位" width="100" align="center"/>
<el-table-column prop="goodsID" label="商品ID" width="150" align="center"/>
<el-table-column prop="goodsSkuOwnSpec" label="规格" width="100" align="center"/>
@ -163,7 +167,9 @@
<el-table-column label="规格" prop="goodsSkuOwnSpec" width="120" align="center"/>
<el-table-column label="单位" prop="unit" align="center"/>
<el-table-column label="仓库" prop="warehouseName" width="150" align="center"/>
<el-table-column label="库位" prop="warehouseRackCode" align="center"/>
<el-table-column label="区域" prop="wareZoneName" width="150" align="center" />
<el-table-column label="库区" prop="wareAreaName" width="150" align="center" />
<el-table-column label="库位" prop="warehouseRackCode" width="150" align="center"/>
<el-table-column label="单价" prop="price" width="120" align="center"/>
<!-- <el-table-column label="已出数量" prop="outboundCount" width="120" align="center"/>-->
<el-table-column label="库存数量" prop="inventoryNum" width="120" align="center"/>
@ -437,6 +443,10 @@ export default {
row.unit = value.unit
row.warehouseSid = value.warehouseSid
row.warehouseName = value.warehouseName
row.wareZoneSid = value.wareZoneSid
row.wareZoneName = value.wareZoneName
row.wareAreaSid = value.wareAreaSid
row.wareAreaName = value.wareAreaName
row.warehouseRackSid = value.warehouseRackSid
row.warehouseRackCode = value.warehouseRackCode
row.outboundCount = value.outboundCount //
@ -465,6 +475,10 @@ export default {
unit: '',
warehouseSid: '',
warehouseName: '',
wareZoneSid: '',
wareZoneName: '',
wareAreaSid: '',
wareAreaName: '',
warehouseRackSid: '',
warehouseRackCode: '',
count: 0,

325
yxt-as-ui/src/views/maintenanceReceive/maintenanceReturnBound.vue

@ -101,7 +101,7 @@
</el-row>
<div class="title">服务项目</div>
<el-table v-loading="listLoading" :data="formobj.sitemVoList" border>
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/>
<el-table-column label="序号" type="index" width="80" :index="index + 1" align="center"/>
<el-table-column label="服务项目" prop="serviceItem" align="center"/>
<el-table-column label="工种" prop="serviceType" align="center"/>
<el-table-column label="维修技师" prop="repairerName" align="center"/>
@ -119,7 +119,7 @@
<el-button type="primary" size="mini" class="btntopblueline" @click="returnAll()">全退</el-button>
</div>
<el-table v-loading="listLoading" :data="formobj.detailList" border>
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/>
<el-table-column label="序号" type="index" width="80" :index="index + 1" align="center"/>
<el-table-column label="维修项目" prop="serviceItem" align="center"/>
<el-table-column label="商品ID" prop="goodsID" width="120" align="center"/>
<el-table-column label="商品名称" prop="goodsSpuName" align="center"/>
@ -129,14 +129,28 @@
<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 v-for="item in warehouseList" :key="item.sid" :label="item.warehouseName" :value="item.sid"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="区域" align="center" width="180">
<template slot-scope="scope">
<el-select v-model="scope.row.wareZoneName" placeholder="请选择" clearable @focus="getWarehouseZoneList(scope.row.warehouseSid)" @change="selectWareZoneName(scope.row,$event)">
<el-option v-for="item in warehouseZoneList" :key="item.sid" :label="item.zoneName" :value="item.sid"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="库区" align="center" width="180">
<template slot-scope="scope">
<el-select v-model="scope.row.wareAreaName" placeholder="请选择" clearable @focus="getWareAreaList(scope.row.wareZoneSid)" @change="selectWareAreaName(scope.row,$event)">
<el-option v-for="item in wareAreaList" :key="item.sid" :label="item.areaName" :value="item.sid"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="库位" align="center" width="180">
<template slot-scope="scope">
<el-select v-model="scope.row.warehouseRackCode" :disabled="scope.row.warehouseName==''" clearable placeholder="请选择" @focus="getWarehouseAreaList(scope.row.warehouseSid)" @change="selectWarehouseAreaCode(scope.row,$event)">
<el-option v-for="(item,i) in warehouseRackList" :key="i" :label="item.areaCode" :value="item.sid"/>
<el-select v-model="scope.row.warehouseRackCode" clearable placeholder="请选择" @focus="getWarehouseRackList(scope.row.wareZoneSid)" @change="selectWarehouseAreaCode(scope.row,$event)">
<el-option v-for="item in warehouseRackList" :key="item.sid" :label="item.areaCode" :value="item.sid"/>
</el-select>
</template>
</el-table-column>
@ -159,62 +173,50 @@
</el-form>
</div>
</div>
<!-- 选择维修单 -->
<chooseproducts v-show="viewState == 2" ref="divSp" @backData="backData" @doback="resetState"/>
</div>
</template>
<script>
import req from '@/api/maintenanceReceive/maintenanceReceive.js'
import req2 from '@/api/storage/allocation.js'
import chooseproducts from './relation/chooseproducts'
import {
getOrgSidByPath,
selAllByOrgSidPath
} from '@/api/Common/dictcommons'
import {
getCurrentDate
} from '@/utils/index.js'
import { getOrgSidByPath, selAllByOrgSidPath, getAllWarehouse, getAllWarehousezoneBysid, getAllWarehouseareaByZoneSid, getAllRackByKQSid } from '@/api/Common/dictcommons'
import { getCurrentDate } from '@/utils/index.js'
export default {
components: {
chooseproducts
},
data() {
return {
viewState: 1,
index: 0,
listLoading: false,
submitdisabled: false,
formobj: {
'sid': '',
'createBySid': window.sessionStorage.getItem('userSid'),
'createByName': window.sessionStorage.getItem('name'),
'sourceBillSid': '',
'warehouseManagerSid': '',
'warehouseManager': '',
'useOrgSid': '',
'createOrgSid': '',
'deptSid': window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1),
'deptName': window.sessionStorage.getItem('defaultOrgPathName').substring(window
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1),
'createTime': getCurrentDate(),
'remarks': '',
'sourceBillNo': '',
'waitorName': '',
'billDate': '',
'billType': '',
'subject': '',
'customerName': '',
'vehMark': '',
'vinNo': '',
'customerOrg': '',
'sitemVoList': [],
'detailList': []
sid: '',
createBySid: '',
createByName: '',
sourceBillSid: '',
warehouseManagerSid: '',
warehouseManager: '',
useOrgSid: '',
createOrgSid: '',
deptSid: '',
deptName: '',
createTime: '',
remarks: '',
sourceBillNo: '',
waitorName: '',
billDate: '',
billType: '',
subject: '',
customerName: '',
vehMark: '',
vinNo: '',
customerOrg: '',
sitemVoList: [],
detailList: []
},
receivePerList: [],
warehouseList: [],
warehouseZoneList: [],
wareAreaList: [],
warehouseRackList: [],
rules: {
warehouseManager: [{ required: true, message: '请选择退料人', trigger: 'change' }]
@ -228,17 +230,18 @@ export default {
this.receivePerList = res.data
}
})
getAllWarehouse({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
if (res.success) {
this.warehouseList = res.data
}
})
},
showAdd(sid) {
this.getWarehouseList()
this.initData()
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
var params = {
sid: sid
}
req.initBill(params).then(resp => {
req.initBill({ sid: sid }).then(resp => {
if (resp.success) {
this.formobj = resp.data
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
@ -257,131 +260,93 @@ export default {
}
})
},
backData(value) {
this.viewState = 1
//
var params = {
sid: value
receivePerSelect(val) {
const choose = this.receivePerList.filter((item) => item.sid === val)
if (choose !== null && choose.length > 0) {
this.formobj.warehouseManagerSid = choose[0].sid
this.formobj.warehouseManager = choose[0].name
} else {
this.formobj.warehouseManagerSid = ''
this.formobj.warehouseManager = ''
}
req.initBill(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)
this.formobj.createBySid = window.sessionStorage.getItem('userSid')
this.formobj.createByName = window.sessionStorage.getItem('name')
this.formobj.createTime = getCurrentDate()
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
if (res.success) {
this.formobj.createOrgSid = res.data
this.formobj.useOrgSid = res.data
}
})
} else {
// resp.code
}
})
},
resetState() {
this.viewState = 1
returnAll() {
for (var i = 0; i < this.formobj.detailList.length; i++) {
var item = this.formobj.detailList[i]
item.count = item.outboundCount
}
},
seleMaintenance() {
this.viewState = 2
const aa = []
this.$refs['divSp'].showData(aa, this.formobj.createOrgSid)
selectWarehouseName(row, val) {
const choose = this.warehouseList.filter((item) => item.sid === val)
if (choose !== null || choose.length > 0) {
row.warehouseName = choose[0].warehouseName
row.warehouseSid = choose[0].sid
} else {
row.warehouseName = ''
row.warehouseSid = ''
}
row.WareZoneName = ''
row.WareZoneSid = ''
row.wareAreaName = ''
row.wareAreaSid = ''
row.warehouseRackCode = ''
row.warehouseRackSid = ''
},
saveOrUpdate() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
req.saveQuitBill(this.formobj).then(resp => {
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
} else {
// resp.code
}
})
getWarehouseZoneList(sid) {
getAllWarehousezoneBysid({ ckSid: sid }).then((res) => {
if (res.success) {
this.warehouseZoneList = res.data
}
})
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
'sid': '',
'createBySid': window.sessionStorage.getItem('userSid'),
'createByName': window.sessionStorage.getItem('name'),
'sourceBillSid': '',
'warehouseManagerSid': '',
'warehouseManager': '',
'useOrgSid': '',
'createOrgSid': '',
'deptSid': window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem('defaultOrgPath').lastIndexOf('/') + 1),
'deptName': window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1),
'createTime': getCurrentDate(),
'remarks': '',
'sourceBillNo': '',
'waitorName': '',
'billDate': '',
'billType': '',
'subject': '',
'customerName': '',
'vehMark': '',
'vinNo': '',
'customerOrg': '',
'sitemVoList': [],
'detailList': []
selectWareZoneName(row, val) {
const choose = this.warehouseZoneList.filter((item) => item.sid === val)
if (choose !== null && choose.length > 0) {
row.WareZoneName = choose[0].zoneName
row.WareZoneSid = choose[0].sid
} else {
row.WareZoneName = ''
row.WareZoneSid = ''
}
this.submitdisabled = false
this.$emit('doback')
},
indexMethod(index) {
return index + 1
},
receivePerSelect(val) {
const choose = this.receivePerList.filter((item) => item.sid === val)
this.formobj.warehouseManagerSid = choose[0].sid
this.formobj.warehouseManager = choose[0].name
row.wareAreaName = ''
row.wareAreaSid = ''
row.warehouseRackCode = ''
row.warehouseRackSid = ''
},
getWarehouseList() {
var parpams = {
orgPath: window.sessionStorage.getItem('defaultOrgPath')
}
req2.getWarehouses(parpams).then((res) => {
getWareAreaList(sid) {
getAllWarehouseareaByZoneSid({ qySid: sid }).then((res) => {
if (res.success) {
this.warehouseList = res.data
this.wareAreaList = res.data
}
})
},
getWarehouseAreaList(sid) {
var query = {
ckSid: sid
selectWareAreaName(row, val) {
const choose = this.wareAreaList.filter((item) => item.sid === val)
if (choose !== null && choose.length > 0) {
row.wareAreaName = choose[0].areaName
row.wareAreaSid = choose[0].sid
} else {
row.wareAreaName = ''
row.wareAreaSid = ''
}
req2.getWarehouseareas(query).then((res) => {
row.warehouseRackCode = ''
row.warehouseRackSid = ''
},
getWarehouseRackList(sid) {
getAllRackByKQSid({ kqSid: sid }).then((res) => {
if (res.success) {
this.warehouseRackList = res.data
}
})
},
selectWarehouseName(row, val) {
const choose = this.warehouseList.filter((item) => item.sid === val)
row.warehouseName = choose[0].warehouseName
row.warehouseSid = choose[0].sid
row.warehouseRackCode = ''
row.warehouseRackSid = ''
},
selectWarehouseAreaCode(row, val) {
const choose = this.warehouseRackList.filter((item) => item.sid === val)
row.warehouseRackCode = choose[0].areaCode
row.warehouseRackSid = choose[0].sid
},
returnAll() {
for (var i = 0; i < this.formobj.detailList.length; i++) {
var item = this.formobj.detailList[i]
item.count = item.outboundCount
if (choose !== null && choose.length > 0) {
row.warehouseRackCode = choose[0].areaCode
row.warehouseRackSid = choose[0].sid
} else {
row.warehouseRackCode = ''
row.warehouseRackSid = ''
}
},
commodityComputeYHAndXSJE(row, val) {
@ -389,6 +354,52 @@ export default {
row.count = row.outboundCount
}
row.returnAmount = (Number(row.count) * Number(row.price)).toFixed(2)
},
saveOrUpdate() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.saveQuitBill(this.formobj).then(resp => {
if (resp.success) {
this.$message({ showClose: true, type: 'success', message: resp.msg })
this.handleReturn('true')
} else {
this.submitdisabled = false
// resp.code
}
})
}
})
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
sid: '',
createBySid: '',
createByName: '',
sourceBillSid: '',
warehouseManagerSid: '',
warehouseManager: '',
useOrgSid: '',
createOrgSid: '',
deptSid: '',
deptName: '',
createTime: '',
remarks: '',
sourceBillNo: '',
waitorName: '',
billDate: '',
billType: '',
subject: '',
customerName: '',
vehMark: '',
vinNo: '',
customerOrg: '',
sitemVoList: [],
detailList: []
}
this.submitdisabled = false
this.$emit('doback')
}
}
}
@ -426,10 +437,4 @@ export default {
justify-content: space-between;
align-items: center;
}
.el-radio /deep/ .el-radio__label {
font-size: 14px !important;
}
</style>

Loading…
Cancel
Save