zhao
2021-07-19 8347f2fbddbd25369359dcb2da1233ac48a19fdc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
@{
    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>
}