@{
|
ViewBag.Title = "WaveSet";
|
Layout = "~/Views/Shared/_LayoutVue.cshtml";
|
}
|
@section head{
|
<style type="text/css">
|
.el-card__header {
|
padding: 5px 20px;
|
font-size: 15px;
|
font-weight: bold;
|
}
|
</style>
|
}
|
<div id="waveSet" v-cloak>
|
<el-row>
|
<el-col v-bind:span="12">
|
<el-card class="box-card" v-bind:body-style="{height:cardHeight+'px'}">
|
<div slot="header" class="clearfix">
|
<span>生成规则</span>
|
</div>
|
<el-row>
|
<el-form label-width="90px" v-bind:model="formData" class="demo-ruleForm" v-bind:inline="false" ref="formData">
|
<el-form-item label="仓库名称:">
|
<hh-select-url v-model="StockCode"
|
url="/Basic/Common/StockList"
|
valuefield="CN_S_STOCK_CODE"
|
textfield="CN_S_STOCK_NAME"
|
datafield="Data"
|
v-on:success="stockSuccess"
|
v-bind:usedefault="false"></hh-select-url>
|
</el-form-item>
|
|
<el-form-item label="上班时间:">
|
<el-time-select v-model="formData.StartTime"
|
v-bind:picker-options="pickerOptions"
|
placeholder="选择时间"
|
v-bind:clearable="false"
|
v-bind:editable="false"
|
style="width:380px;"
|
size="mini">
|
</el-time-select>
|
</el-form-item>
|
<el-form-item label="下班时间:">
|
<el-time-select v-model="formData.EndTime"
|
v-bind:picker-options="pickerOptions"
|
placeholder="选择时间"
|
v-bind:clearable="false"
|
v-bind:editable="false"
|
style="width:380px;"
|
size="mini">
|
</el-time-select>
|
</el-form-item>
|
<el-form-item label="内销:">
|
<el-input-number v-model="formData.SeveralMaxCreateWave"
|
v-bind:min="1"
|
v-bind:max="10"
|
style="width:95px;"
|
size="mini"></el-input-number><span style="font-size:11px;margin-left:5px;">单一波,不足{{formData.SeveralMaxCreateWave}}单</span>
|
<el-input-number v-model="formData.LessMinute"
|
v-bind:min="1"
|
v-bind:max="120"
|
style="width:95px;"
|
size="mini"></el-input-number><span style="font-size:11px;margin-left:5px;">分钟中后再生成</span>
|
</el-form-item>
|
</el-form>
|
</el-row>
|
<el-footer style="text-align:center;padding:20px 20px 20px">
|
<el-row>
|
<el-button type="primary" v-on:click="save" size="mini">保存</el-button>
|
<el-button size="mini" v-on:click="close">关闭</el-button>
|
</el-row>
|
</el-footer>
|
</el-card>
|
</el-col>
|
<el-col v-bind:span="12">
|
<el-card class="box-card" v-bind:body-style="{height:cardHeight+'px'}">
|
<div slot="header" class="clearfix">
|
<span>库区模式</span>
|
</div>
|
<el-row>
|
<el-form label-width="90px" v-bind:model="formData" class="demo-ruleForm" v-bind:inline="false" ref="formData">
|
<el-form-item v-for="a in autoAreas" v-bind:label="a.areaCode+':'">
|
<el-radio-group v-model="a.areaMode" size="mini" v-on:change="changeServiceMode(a)">
|
<el-radio-button v-bind:disabled="disabledServiceMode" v-bind:label="outModeName"></el-radio-button>
|
<el-radio-button v-bind:disabled="disabledServiceMode" v-bind:label="inModeName"></el-radio-button>
|
<el-radio-button disabled label="盘点模式"></el-radio-button>
|
<el-radio-button disabled label="空闲模式"></el-radio-button>
|
</el-radio-group>
|
</el-form-item>
|
</el-form>
|
</el-row>
|
</el-card>
|
</el-col>
|
</el-row>
|
</div>
|
@section scripts{
|
<script>
|
new Vue({
|
el: '#waveSet',
|
data: {
|
disabledServiceMode: false,
|
outModeName: '出库模式',
|
inModeName: '入库模式',
|
pickerOptions: {
|
start: '06:30',
|
step: '00:15',
|
end: '23:30'
|
},
|
StockCode: "",
|
formData: {
|
StartTime: "08:30",
|
EndTime: "17:30",
|
SeveralMaxCreateWave: 5,
|
LessMinute: 30
|
},
|
autoAreas: []
|
},
|
watch: {
|
StockCode: function (val) {
|
this.loadWaveStrategy();
|
},
|
},
|
methods: {
|
changeServiceMode: function (a) {
|
if (a.areaMode == '入库模式')
|
a.switchMode = "@Constants.CurrentMode_In";
|
if (a.areaMode == '出库模式')
|
a.switchMode = "@Constants.CurrentMode_Out";
|
var $this = this;
|
ajaxManage({
|
url: "@Url.Action("SetServiceMode")",
|
data: { areaCode: a.areaCode, serviceMode: a.switchMode },
|
success: function (data) {
|
wms.showMsg(data, function () {
|
wms.success("切换成功");
|
$this.loadAutoAreas();
|
});
|
}
|
});
|
},
|
save: function () {
|
var $this = this;
|
var saveData = {
|
stockCode: $this.StockCode,
|
startTime: $this.formData.StartTime,
|
endTime: $this.formData.EndTime,
|
severalMaxCreateWave: $this.formData.SeveralMaxCreateWave,
|
lessMinute: $this.formData.LessMinute
|
};
|
ajaxManage({
|
url: "@Url.Action("UpdateWaveStrategy")",
|
data: saveData,
|
success: function (data) {
|
wms.showMsg(data, function () {
|
wms.success("保存成功");
|
});
|
}
|
});
|
},
|
close: function () {
|
var currentTitle = parent.$(".layui-tab-title li[class='layui-this'] cite").text();
|
parent.tab.tabDeleteRefresh(currentTitle);
|
},
|
stockSuccess: function (data) {
|
if (data.length == 1 && !this.StockCode) {
|
this.StockCode = data[0];
|
}
|
},
|
loadAutoAreas: function () {
|
var $this = this;
|
ajaxManage({
|
url: "@Url.Action("GetAutoAreas")",
|
success: function (data) {
|
wms.showMsg(data, function () {
|
$this.autoAreas = [];
|
data.Data.forEach(function (n) {
|
$this.outModeName = '出库模式';
|
$this.inModeName = '入库模式';
|
$this.disabledServiceMode = false;
|
switch (n.CN_S_CURRENT_MODE) {
|
case 'Out':
|
n.CN_S_CURRENT_MODE = "出库模式"; break;
|
case 'In':
|
n.CN_S_CURRENT_MODE = "入库模式"; break;
|
case 'Check':
|
$this.disabledServiceMode = true;
|
n.CN_S_CURRENT_MODE = "盘点模式"; break;
|
case 'Free':
|
n.CN_S_CURRENT_MODE = "空闲模式"; break;
|
case 'WaitOut':
|
$this.outModeName = "预出库模式";
|
n.CN_S_CURRENT_MODE = "预出库模式"; break;
|
case 'WaitIn':
|
$this.inModeName = "预入库模式";
|
n.CN_S_CURRENT_MODE = "预入库模式"; break;
|
}
|
$this.autoAreas.push({
|
areaCode: n.CN_S_AREA_CODE,
|
areaName: n.CN_S_AREA_NAME,
|
areaMode: n.CN_S_CURRENT_MODE,
|
switchMode: '',
|
areaPickMax: n.CN_N_PICK_MAX
|
});
|
});
|
});
|
}
|
});
|
},
|
loadWaveStrategy: function () {
|
var $this = this;
|
var stockCode = this.StockCode;
|
ajaxManage({
|
url: "@Url.Action("GetWaveStrategy")?stockCode=" + stockCode,
|
success: function (data) {
|
wms.showMsg(data, function () {
|
$this.formData = data.Data;
|
});
|
}
|
});
|
}
|
},
|
mounted: function () {
|
this.loadWaveStrategy();
|
this.loadAutoAreas();
|
var $this = this;
|
setInterval(function () {
|
$this.loadAutoAreas();
|
}, 2000);
|
},
|
mixins: [useAutoHeight],
|
computed: {
|
cardHeight: function () {
|
return this.autoHeight - 150;
|
}
|
},
|
});
|
</script>
|
}
|