zhao
2021-06-04 c7ec496f9e41c2227103b3ef776e4a3f91bce6b2
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
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
@{
    ViewBag.Title = "任务管理";
    Layout = "~/Views/Shared/_LayoutVue.cshtml";
}
 
<div id="list" v-cloak>
    <el-card class="box-card">
        <el-form label-width="90px" v-bind:model="formData" class="demo-ruleForm" v-bind:inline="true">
            <el-form-item label="@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_stockcode"):">
                <hh-select-url v-model="formData.stockCode"
                               url="/Basic/Common/StockList"
                               valuefield="CN_S_STOCK_CODE"
                               textfield="CN_S_STOCK_NAME"
                               datafield="Data">
                </hh-select-url>
            </el-form-item>
            <el-form-item label="@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_tasktype"):">
                <hh-select-url v-model="formData.taskType"
                               v-bind:options="formData.optionsTaskType">
                </hh-select-url>
            </el-form-item>
 
            <el-form-item label="@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_taskstate"):">
                <hh-select-url v-model="formData.taskState"
                               v-bind:options="formData.optionsTaskState">
                </hh-select-url>
            </el-form-item>
 
            <el-form-item label="@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_taskno"):">
                <el-input v-model="formData.taskNo" size="mini"></el-input>
            </el-form-item>
 
            <el-form-item label="@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_traycode"):">
                <el-input v-model="formData.trayCode" size="mini"></el-input>
            </el-form-item>
 
            <el-form-item label="@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_startarea"):">
                <el-input v-model="formData.startArea" size="mini"></el-input>
            </el-form-item>
 
            <el-form-item label="@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_endarea"):">
                <el-input v-model="formData.endArea" size="mini"></el-input>
            </el-form-item>
 
            <el-form-item label="@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_createdate"):" style="width:400px">
                <el-date-picker v-model="formData.date"
                                type="daterange"
                                align="right"
                                unlink-panels
                                range-separator="@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_public_constant_to")"
                                start-placeholder="@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_public_constant_start_date")"
                                end-placeholder="@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_public_constant_end_date")"
                                value-format="yyyy-MM-dd"
                                v-on:change="selectTime"
                                v-bind:picker-options="pickerOptions2" size="mini" style="width:300px">
                </el-date-picker>
            </el-form-item>
            
        </el-form>
        <el-row style="padding-left: 10px; margin-top: 7px;">
            <el-button style="margin-top:2px;" size="mini" type="primary" v-on:click="search" v-has="'Select'">@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_public_button_search")</el-button>
            <el-button size="mini" type="primary" v-on:click="start" v-has="'Start'">@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_public_button_start")</el-button>
            <el-button size="mini" type="primary" v-on:click="end" v-has="'Finish'">@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_public_button_complete")</el-button>
            <el-button size="mini" type="primary" v-on:click="cancel" v-has="'Delete'">@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_public_button_cacel")</el-button>
        </el-row>
    </el-card>
    <hh-table v-bind:coloptions="outCols"
              v-bind:paging="true"
              v-bind:check="true"
              v-bind:where="formData"
              v-bind:rowno="true"
              dh="145"
              url="@Url.Action("GetList")"
              ref="tasklist"></hh-table>
</div>
@section scripts{
    <script>
        var outList = new Vue({
            data: {
                formData: {
                    stockCode: "",
                    optionsTaskType: [{ label: "全部", value: "" }, { label: "上架", value: "上架" }, { label: "下架", value: "下架" },
                        { label: "移库", value: "移库" }, { label: "空托入", value: "空托入" },
                        { label: "空托出", value: "空托出" }, { label: "转运", value: "转运" }, { label: "叫料", value: "叫料" }], //{ label: "分拣出", value: "分拣出" }, { label: "分拣回", value: "分拣回" }, { label: "盘点出", value: "盘点出" }, { label: "盘点回", value: "盘点回" },
                    taskType: "",
                    optionsTaskState: [{ label: "全部", value: "" }, { label: "未执行", value: "未执行" }, { label: "执行中", value: "执行中" },
                        { label: "完成", value: "完成" }, { label: "取消", value: "取消" }, ],  //{ label: "开始取货", value: "开始取货" }, { label: "取货完成", value: "取货完成" }, , { label: "失败", value: "失败" }, { label: "空取", value: "空取" }
                    taskState: "",
                    taskNo: "",
                    state: "",
                    date: "",
                    valueDate: "",
                    trayCode: "",
                    startArea: "",
                    endArea: ""
                },
                where: {},
                outCols: [
                    { f: "CN_S_TASK_NO", n: "@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_taskno")", w: 130 },
                    { f: "CN_S_TASK_TYPE", n: "@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_tasktype")", w: 80 },
                    { f: "CN_S_STOCK_CODE", n: "@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_stockcode")", w: 100 },
                    { f: "CN_S_TRAY_CODE", n: "@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_traycode")", w: 100 },
                    { f: "CN_S_STATE", n: "@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_taskstate")", w: 80 },
                    { f: "CN_S_START_AREA", n: "@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_startarea")", w: 100 },
                    { f: "CN_S_START_BIT", n: "@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_startlocation")", w: 110 },
                    { f: "CN_S_END_AREA", n: "@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_endarea")", w: 100 },
                    { f: "CN_S_END_BIT", n: "@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_endlocation")", w: 110 },
                    { f: "CN_N_PRIORITY", n: "@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_priority")", w: 60 },
                    { f: "CN_T_CREATE", n: "@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_createtime")", w: 120 },
                    { f: "CN_T_START", n: "@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_starttime")", w: 120 },
                    { f: "CN_T_END", n: "@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_completetime")", w: 120 },
                    { f: "CN_S_FROM_OP", n: "@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_fromoperate")", w: 120 },
                    //{ f: "CN_S_FROM_NO", n: "来源单号", w: 120 }
                ]
            },
            mounted: function () {
                $this = this;
                $this.pickerOptions2();
            },
            methods: {
                search: function () {
                    var $this = this;
                    this.$refs.tasklist.loadData($this.formData);
                },
                start: function () {
                    $this = this;
                    var valide = true;
                    this.selectMultiRowEvent(function (rows) {
                        wms.confirm("@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_confirm_is_start")", function () {
                            var taskNos = "";
                            rows.forEach(function (value, index, array) {
                                if (value.CN_S_STATE != "未执行") {
                                    valide = false;
                                    return false;
                                }
                                if (index != 0)
                                    taskNos += ",";
                                taskNos += value.CN_S_TASK_NO;
                            });
 
                            if (!valide) {
                                wms.error("@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_muststartnoexcute")");
                                return false;
                            }
                            ajaxManage({
                                url: "@Url.Action("StartTask")?taskNos=" + taskNos,
                                type: "Get",
                                success: function (data) {
                                    if (data.Success) {
                                        $this.$refs.tasklist.loadData();
                                        wms.success("@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_start_succ")");
                                    }
                                    else {
                                        wms.error(data.Msg);
                                    }
                                }
                            });
                        });
                    });
                },
                end: function () {
                    $this = this;
                    var valide = true;
                    this.selectMultiRowEvent(function (rows) {
                        wms.confirm("@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_confirm_is_complete")", function () {
                            var taskNos = "";
                            rows.forEach(function (value, index, array) {
                                if (value.CN_S_STATE == "完成")
                                {
                                    valide = false;
                                    return false;
                                }
                                if (index != 0)
                                    taskNos += ",";
                                taskNos += value.CN_S_TASK_NO;
                            });
                            if (!valide) {
                                wms.error("@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_mustcompletenocomplete")");
                                return false;
                            }
                            ajaxManage({
                                url: "@Url.Action("EndTask")?taskNos=" + taskNos,
                                type: "Get",
                                success: function (data) {
                                    if (data.Success) {
                                        $this.$refs.tasklist.loadData();
                                        wms.success("@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_complete_succ")");
                                    }
                                    else {
                                        wms.error(data.Msg);
                                    }
                                }
                            });
                        });
                    });
                },
                cancel: function(){
                    $this = this;
                    var valide = true;
                    this.selectMultiRowEvent(function (rows) {
                        wms.confirm("@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_confirm_is_cancel")", function () {
                            var taskNos = "";
                            rows.forEach(function (value, index, array) {
                                if (value.CN_S_STATE != "未执行") {
                                    valide = false;
                                } 
                                if (index != 0)
                                    taskNos += ",";
                                taskNos += value.CN_S_TASK_NO;
                            });
 
                            if (!valide) {
                                wms.error("@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_mustcancelnoexcute")");
                                return false;
                            }
                            ajaxManage({
                                url: "@Url.Action("CancelTask")?taskNos=" + taskNos,
                                type: "Get",
                                success: function (data) {
                                if (data.Success) {
                                    $this.$refs.tasklist.loadData();
                                    wms.success("@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_cancelsucc")");
                                }
                                else {
                                    wms.error(data.Msg);
                                }
                            }
                        });
                    });
                });
                },
                selectMultiRowEvent: function (callBack) {
                    var selectRow = this.$refs.tasklist.selections;
                    if (selectRow.length <= 0) {
                        wms.warning("@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_atlest_onemore")");
                        return;
                    }
                    if (callBack)
                        callBack(selectRow);
                },
                selectSingleRowEvent: function (callBack) {
                    var selectRow = this.$refs.tasklist.selections;
                    if (selectRow.length != 1) {
                        wms.warning("@HH.WMS.WebUI.LanService.LanServiceDll.translate("cshtml_taskmgr_task_just_one")");
                        return;
                    }
                    if (callBack)
                        callBack(selectRow[0]);
                },
                selectTime: function (val) {
                    $this = this;
                    if (val != null)
                        $this.formData.valueDate = JSON.stringify(val);
                    else
                        $this.formData.valueDate = "";
                },
                pickerOptions2: function () {
                    shortcuts: [{
                        text: '最近一周',
                        onClick: function onClick(picker) {
                            var end = new Date();
                            var start = new Date();
                            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
                            picker.$emit('pick', [start, end]);
                        }
                    }, {
                        text: '最近一个月',
                        onClick: function onClick(picker) {
                            var end = new Date();
                            var start = new Date();
                            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
                            picker.$emit('pick', [start, end]);
                        }
                    }, {
                        text: '最近三个月',
                        onClick: function onClick(picker) {
                            var end = new Date();
                            var start = new Date();
                            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
                            picker.$emit('pick', [start, end]);
                        }
                    }]
                }
            },
            watch: {
                deep: true
            },
            el: '#list'
        });
    </script>
}