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

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

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

Loading…
Cancel
Save