调拨申请

This commit is contained in:
java110 2021-04-08 00:11:50 +08:00
parent d2c973fe4c
commit c2fdd194fe
8 changed files with 443 additions and 80 deletions

View File

@ -21,6 +21,18 @@
class="form-control">
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">仓库</label>
<div class="col-sm-10">
<select class="custom-select" v-model="addResourceStoreInfo.shId">
<option selected disabled value="">必填,请选择仓库</option>
<option v-for="(item,index) in addResourceStoreInfo.storehouses" :key="index"
v-bind:value="item.shId">
{{item.shName}}
</option>
</select>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">物品类型</label>
<div class="col-sm-10">
@ -69,7 +81,7 @@
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">是否在手机显示</label>
<label class="col-sm-2 col-form-label">手机显示</label>
<div class="col-sm-10">
<select class="custom-select" v-model="addResourceStoreInfo.showMobile">
<option selected disabled value="">必填,请选择是否在手机端显示</option>

View File

@ -19,7 +19,9 @@
showMobile: '',
description: '',
remark: '',
photos: []
shId: '',
photos: [],
storehouses: []
}
},
_initMethod: function () {
@ -34,6 +36,7 @@
},
_initEvent: function () {
vc.on('addResourceStore', 'openAddResourceStoreModal', function () {
$that._listAddStorehouses();
$('#addResourceStoreModel').modal('show');
});
vc.on("addResourceStore", "notifyUploadImage", function (_param) {
@ -128,6 +131,13 @@
errInfo: "物品类型不能为空"
},
],
'addResourceStoreInfo.shId': [
{
limit: "required",
param: "",
errInfo: "仓库不能为空"
},
],
});
},
saveResourceStoreInfo: function () {
@ -178,10 +188,34 @@
goodsType: '',
goodsTypes: [],
unitCode: '',
shId: '',
unitCodes: [],
photos: []
photos: [],
storehouses: []
};
}
},
_listAddStorehouses: function (_page, _rows) {
var param = {
params: {
page: 1,
row: 100,
shType: '2806'
}
};
//发送get请求
vc.http.apiGet('resourceStore.listStorehouses',
param,
function (json, res) {
let _storehouseManageInfo = JSON.parse(json);
vc.component.addResourceStoreInfo.storehouses = _storehouseManageInfo.data;
}, function (errInfo, error) {
console.log('请求失败处理');
}
);
},
}
});
})(window.vc);

View File

@ -0,0 +1,74 @@
<div id="allocationStorehouseModel" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-body">
<h3 class="m-t-none m-b ">申请调拨</h3>
<div class="ibox-content">
<div>
<div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">物品名称</label>
<div class="col-sm-10">
<input v-model="allocationStorehouseInfo.resName" type="text" disabled
placeholder="必填,请填写物品名称" class="form-control">
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">当前仓库</label>
<div class="col-sm-10">
<input v-model="allocationStorehouseInfo.shName" type="text" disabled
placeholder="选填,请填写当前仓库" class="form-control">
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">库存</label>
<div class="col-sm-10">
<input v-model="allocationStorehouseInfo.curStock" type="text" disabled
placeholder="必填,请填写库存" class="form-control">
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">目标仓库</label>
<div class="col-sm-10">
<select class="custom-select" v-model="allocationStorehouseInfo.shId">
<option selected disabled value="">必填,请选择仓库</option>
<option v-for="(item,index) in allocationStorehouseInfo.storehouses"
:key="index" v-bind:value="item.shId" v-if="item.shId != allocationStorehouseInfo.curShId">
{{item.shName}}
</option>
</select>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">调拨数量</label>
<div class="col-sm-10">
<input v-model="allocationStorehouseInfo.stock" type="text" placeholder="必填,请填写调拨数量"
class="form-control">
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">备注</label>
<div class="col-sm-10">
<textarea placeholder="选填,请填写备注" class="form-control"
v-model="allocationStorehouseInfo.remark">
</textarea>
</div>
</div>
<div class="ibox-content">
<button class="btn btn-primary float-right" type="button"
v-on:click="_allocationStorehouse()">
<i class="fa fa-check"></i>&nbsp;保存
</button>
<button type="button" class="btn btn-warning float-right" style="margin-right:20px;"
data-dismiss="modal">
<i class="fa fa-times"></i>&nbsp;取消
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,201 @@
(function (vc) {
vc.extends({
data: {
allocationStorehouseInfo: {
resId: '',
resName: '',
resCode: '',
remark: '',
stock:0,
curStock:0,
shId: '',
curShId:'',
shName:'',
storehouses: []
}
},
_initMethod: function () {
},
_initEvent: function () {
vc.on('allocationStorehouse', 'openAllocationStorehouseModal', function (_param) {
$that._listAllocationStorehouse();
let _that = $that.allocationStorehouseInfo;
_that.resId = _param.resId;
_that.resName = _param.resName;
_that.curStock = _param.stock;
_that.shName = _param.shName;
_that.curShId = _param.shId;
$('#allocationStorehouseModel').modal('show');
});
},
methods: {
allocationStorehouseValidate() {
return vc.validate.validate({
allocationStorehouseInfo: vc.component.allocationStorehouseInfo
}, {
'allocationStorehouseInfo.resName': [
{
limit: "required",
param: "",
errInfo: "物品名称不能为空"
},
{
limit: "maxin",
param: "2,100",
errInfo: "物品名称长度为2至100"
},
],
'allocationStorehouseInfo.resCode': [
{
limit: "maxLength",
param: "50",
errInfo: "物品编码不能超过50位"
},
],
'allocationStorehouseInfo.price': [
{
limit: "required",
param: "",
errInfo: "物品价格不能为空"
},
{
limit: "money",
param: "",
errInfo: "物品价格格式错误"
},
],
'allocationStorehouseInfo.description': [
{
limit: "maxLength",
param: "200",
errInfo: "描述不能为空"
},
],
'allocationStorehouseInfo.showMobile': [
{
limit: "required",
param: "",
errInfo: "手机端显示不能为空"
},
],
'allocationStorehouseInfo.outLowPrice': [
{
limit: "required",
param: "",
errInfo: "最低收费标准不能为空"
},
{
limit: "money",
param: "",
errInfo: "收费标准格式错误"
},
],
'allocationStorehouseInfo.outHighPrice': [
{
limit: "required",
param: "",
errInfo: "最高收费标准不能为空"
},
{
limit: "money",
param: "",
errInfo: "收费标准格式错误"
},
],
'allocationStorehouseInfo.unitCode': [
{
limit: "required",
param: "",
errInfo: "单位不能为空"
},
],
'allocationStorehouseInfo.goodsType': [
{
limit: "required",
param: "",
errInfo: "物品类型不能为空"
},
],
'allocationStorehouseInfo.shId': [
{
limit: "required",
param: "",
errInfo: "仓库不能为空"
},
],
});
},
saveResourceStoreInfo: function () {
if (!vc.component.allocationStorehouseValidate()) {
vc.toast(vc.validate.errInfo);
return;
}
vc.component.allocationStorehouseInfo.communityId = vc.getCurrentCommunity().communityId;
vc.http.post(
'allocationStorehouse',
'save',
JSON.stringify(vc.component.allocationStorehouseInfo),
{
emulateJSON: true
},
function (json, res) {
//vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
if (res.status == 200) {
//关闭model
$('#allocationStorehouseModel').modal('hide');
vc.component.clearAllocationStorehouseInfo();
vc.emit('resourceStoreManage', 'listResourceStore', {});
return;
}
vc.toast(json);
},
function (errInfo, error) {
console.log('请求失败处理');
vc.toast(errInfo);
});
},
clearAllocationStorehouseInfo: function () {
vc.component.allocationStorehouseInfo = {
resName: '',
resCode: '',
price: '',
description: '',
outLowPrice: '',
outHighPrice: '',
showMobile: '',
remark: '',
goodsType: '',
goodsTypes: [],
unitCode: '',
shId: '',
unitCodes: [],
storehouses: []
};
},
_listAllocationStorehouse: function (_page, _rows) {
var param = {
params: {
page: 1,
row: 100,
communityId: vc.getCurrentCommunity().communityId
}
};
//发送get请求
vc.http.apiGet('resourceStore.listStorehouses',
param,
function (json, res) {
let _storehouseManageInfo = JSON.parse(json);
vc.component.allocationStorehouseInfo.storehouses = _storehouseManageInfo.data;
}, function (errInfo, error) {
console.log('请求失败处理');
}
);
},
}
});
})(window.vc);

View File

@ -1,5 +1,5 @@
<div id="chooseResourceStoreModel2" class="modal fade" tabindex="-1" role="dialog"
aria-labelledby="chooseResourceStoreModelLabel" aria-hidden="true">
aria-labelledby="chooseResourceStoreModelLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
@ -19,51 +19,52 @@
<div class="col-sm-5">
<div class="input-group">
<input placeholder="输入物品管理名称" type="text"
v-model="chooseResourceStoreInfo2._currentResourceStoreName"
class="form-control form-control-sm">
v-model="chooseResourceStoreInfo2._currentResourceStoreName"
class="form-control form-control-sm">
<span class="input-group-append">
<button type="button" class="btn btn-sm btn-primary"
v-on:click="queryResourceStores()">查询</button>
</span>
<button type="button" class="btn btn-sm btn-primary"
v-on:click="queryResourceStores()">查询</button>
</span>
</div>
</div>
</div>
<div class="table-responsive" style="margin-top:15px">
<table class="table table-striped">
<thead>
<tr>
<th class="text-center">选择</th>
<th class="text-center">物品ID</th>
<th class="text-center">物品名称</th>
<th class="text-center">物品编码</th>
<th class="text-center">物品价格</th>
<th class="text-center">物品库存</th>
<th class="text-center">描述</th>
</tr>
<tr>
<th class="text-center">选择</th>
<th class="text-center">仓库</th>
<th class="text-center">物品名称</th>
<th class="text-center">物品编码</th>
<th class="text-center">物品价格</th>
<th class="text-center">物品库存</th>
</tr>
</thead>
<tbody>
<tr v-for="resourceStore in chooseResourceStoreInfo2.resourceStores">
<td class="text-center">
<input type="checkbox" class="i-checks checkItem" v-bind:value="resourceStore.resId" v-model="chooseResourceStoreInfo2.selectResourceStores">
</td>
<td class="text-center">{{resourceStore.resId}}</td>
<td class="text-center">{{resourceStore.resName}}</td>
<td class="text-center">{{resourceStore.resCode}}</td>
<td class="text-center">{{resourceStore.price}}</td>
<td class="text-center">{{resourceStore.stock}}</td>
<td class="text-center">{{resourceStore.description}}</td>
</tr>
<tr v-for="resourceStore in chooseResourceStoreInfo2.resourceStores">
<td class="text-center">
<input type="checkbox" class="i-checks checkItem"
v-bind:value="resourceStore.resId"
v-model="chooseResourceStoreInfo2.selectResourceStores">
</td>
<td class="text-center">{{resourceStore.shName}}</td>
<td class="text-center">{{resourceStore.resName}}</td>
<td class="text-center">{{resourceStore.resCode}}</td>
<td class="text-center">{{resourceStore.price}}</td>
<td class="text-center">{{resourceStore.stock}}</td>
</tr>
</tbody>
</table>
<!-- 分页 -->
<vc:create path="frame/pagination"></vc:create>
<div class="ibox-content" v-if="chooseResourceStoreInfo2.resourceStores.length > 0">
<button class="btn btn-primary float-right" type="button" v-on:click="getSelectResourceStores()">
<button class="btn btn-primary float-right" type="button"
v-on:click="getSelectResourceStores()">
<i class="fa fa-check"></i>&nbsp;提交
</button>
<button type="button" class="btn btn-warning float-right" style="margin-right:20px;"
data-dismiss="modal">取消
data-dismiss="modal">取消
</button>
</div>
</div>
@ -73,4 +74,4 @@
</div>
</div>
</div>
</div>
</div>

View File

@ -36,7 +36,8 @@
page:_page,
row:_row,
communityId:vc.getCurrentCommunity().communityId,
resOrderType:vc.component.chooseResourceStoreInfo2.resOrderType
resOrderType:vc.component.chooseResourceStoreInfo2.resOrderType,
shType:'2806'
}
};

View File

@ -11,29 +11,34 @@
<div class="row">
<div class="col-sm-3">
<div class="form-group">
<input type="text" placeholder="请输入物品ID"
v-model="resourceStoreManageInfo.conditions.resId" class=" form-control">
<select class="custom-select" v-model="resourceStoreManageInfo.conditions.shId">
<option selected disabled value="">必填,请选择仓库</option>
<option v-for="(item,index) in resourceStoreManageInfo.storehouses" :key="index"
v-bind:value="item.shId">
{{item.shName}}
</option>
</select>
</div>
</div>
<div class="col-sm-4">
<div class="form-group">
<input type="text" placeholder="请输入物品名称"
v-model="resourceStoreManageInfo.conditions.resName" class=" form-control">
v-model="resourceStoreManageInfo.conditions.resName" class=" form-control">
</div>
</div>
<div class="col-sm-3">
<div class="form-group">
<input type="text" placeholder="请输入物品编码"
v-model="resourceStoreManageInfo.conditions.resCode" class=" form-control">
v-model="resourceStoreManageInfo.conditions.resCode" class=" form-control">
</div>
</div>
<div class="col-sm-2">
<button type="button" class="btn btn-primary btn-sm"
v-on:click="_queryResourceStoreMethod()">
v-on:click="_queryResourceStoreMethod()">
<i class="fa fa-search"></i> 查询
</button>
<button type="button" class="btn btn-primary btn-sm"
v-on:click="_resetResourceStoreMethod()">
v-on:click="_resetResourceStoreMethod()">
<i class="fa fa-repeat"></i> 重置
</button>
</div>
@ -54,49 +59,55 @@
</div>
</div>
<div class="ibox-content">
<table class="footable table table-stripped toggle-arrow-tiny"
data-page-size="15">
<table class="footable table table-stripped toggle-arrow-tiny" data-page-size="15">
<thead>
<tr>
<th class="text-center">物品ID</th>
<th class="text-center">物品名称</th>
<th class="text-center">物品类型</th>
<th class="text-center">物品编码</th>
<th class="text-center">物品价格</th>
<th class="text-center">收费标准</th>
<th class="text-center">物品库存</th>
<th class="text-center">操作</th>
</tr>
<tr>
<th class="text-center">物品ID</th>
<th class="text-center">仓库名称</th>
<th class="text-center">物品名称</th>
<th class="text-center">物品类型</th>
<th class="text-center">物品编码</th>
<th class="text-center">物品价格</th>
<th class="text-center">收费标准</th>
<th class="text-center">物品库存</th>
<th class="text-center">操作</th>
</tr>
</thead>
<tbody>
<tr v-for="resourceStore in resourceStoreManageInfo.resourceStores">
<td class="text-center">{{resourceStore.resId}}</td>
<td class="text-center">{{resourceStore.resName}}</td>
<td class="text-center">{{resourceStore.goodsTypeName}}</td>
<td class="text-center">{{resourceStore.resCode}}</td>
<td class="text-center">{{resourceStore.price}}元</td>
<td class="text-center">{{resourceStore.outPrice}}</td>
<td class="text-center">{{resourceStore.stock}}</td>
<td class="text-center">
<div class="btn-group">
<button class="btn-white btn btn-xs"
<tr v-for="resourceStore in resourceStoreManageInfo.resourceStores">
<td class="text-center">{{resourceStore.resId}}</td>
<td class="text-center">{{resourceStore.shName}}</td>
<td class="text-center">{{resourceStore.resName}}</td>
<td class="text-center">{{resourceStore.goodsTypeName}}</td>
<td class="text-center">{{resourceStore.resCode}}</td>
<td class="text-center">{{resourceStore.price}}元</td>
<td class="text-center">{{resourceStore.outPrice}}</td>
<td class="text-center">{{resourceStore.stock}}</td>
<td class="text-center">
<div class="btn-group" v-if="resourceStore.stock>0">
<button class="btn-white btn btn-xs"
v-on:click="_openAllocationStorehouseModel(resourceStore)">调拨
</button>
</div>
<div class="btn-group">
<button class="btn-white btn btn-xs"
v-on:click="_openEditResourceStoreModel(resourceStore)">修改
</button>
</div>
<div class="btn-group">
<button class="btn-white btn btn-xs"
</button>
</div>
<div class="btn-group">
<button class="btn-white btn btn-xs"
v-on:click="_openDeleteResourceStoreModel(resourceStore)">删除
</button>
</div>
</td>
</tr>
</button>
</div>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="7">
<ul class="pagination float-right"></ul>
</td>
</tr>
<tr>
<td colspan="7">
<ul class="pagination float-right"></ul>
</td>
</tr>
</tfoot>
</table>
<!-- 分页 -->
@ -107,5 +118,8 @@
</div>
<vc:create path="common/addResourceStore" callBackListener="" callBackFunction=""></vc:create>
<vc:create path="common/editResourceStore"></vc:create>
<vc:create path="common/allocationStorehouse"></vc:create>
<vc:create path="common/deleteResourceStore"></vc:create>
</div>
</div>

View File

@ -15,12 +15,15 @@
conditions: {
resId: '',
resName: '',
resCode: ''
}
resCode: '',
shId: ''
},
storehouses: []
}
},
_initMethod: function () {
vc.component._listResourceStores(DEFAULT_PAGE, DEFAULT_ROWS);
$that._listStorehouses();
},
_initEvent: function () {
vc.on('resourceStoreManage', 'listResourceStore', function (_param) {
@ -92,6 +95,9 @@
_openEditResourceStoreModel: function (_resourceStore) {
vc.emit('editResourceStore', 'openEditResourceStoreModal', _resourceStore);
},
_openAllocationStorehouseModel: function (_resourceStore) {
vc.emit('allocationStorehouse', 'openAllocationStorehouseModal', _resourceStore);
},
_openDeleteResourceStoreModel: function (_resourceStore) {
vc.emit('deleteResourceStore', 'openDeleteResourceStoreModal', _resourceStore);
},
@ -109,7 +115,27 @@
} else {
vc.component.resourceStoreManageInfo.moreCondition = true;
}
}
},
_listStorehouses: function (_page, _rows) {
var param = {
params: {
page: 1,
row: 100
}
};
//发送get请求
vc.http.apiGet('resourceStore.listStorehouses',
param,
function (json, res) {
var _storehouseManageInfo = JSON.parse(json);
vc.component.resourceStoreManageInfo.storehouses = _storehouseManageInfo.data;
}, function (errInfo, error) {
console.log('请求失败处理');
}
);
},
}
});
})(window.vc);