wangxinhui
2026-04-03 5041a3fe01314dbf404fecc25df56cc2a43ad209
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
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
<template>
    <view>
        <uni-segmented-control :current="current" :values="items" @clickItem="onClickItem">
        </uni-segmented-control>
        <view v-show="current === 0">
            <view style="padding: 5%;">
                <uni-forms label-width="120">
                    <uni-forms-item label="托盘编码">
                        <uni-easyinput type="text" :focus="barcodeFocus" v-model="PalletCode1" placeholder="请输入托盘编码"
                            ref='midInput' @input="Changebarcode()"/>
                    </uni-forms-item>
                    <uni-forms-item label="搬运起点">
                        <uni-easyinput type="text" :focus="addressFocus" v-model="SourceAddress" placeholder="请输入起点"
                            ref='midInput' />
                    </uni-forms-item>
                    <uni-forms-item label="搬运终点">
                        <uni-easyinput type="text" :focus="addressFocus" v-model="TargetAddress" placeholder="请输入终点"
                            ref='midInput' />
                    </uni-forms-item>
                </uni-forms>
                <button @click="InboundTask" type="primary" size="default" style="margin-top: 2%;">搬运</button>
            </view>
        </view>
        <u-toast ref="luToast" />
    </view>
</template>
 
<script>
    import {
        config
    } from '../../common/config';
    const innerAudioContext = uni.createInnerAudioContext();
    export default {
        data() {
            return {
                barcodeFocus:true,
                focus: false,
                istrue: false,
                addressFocus:false,
                barcodefocus: false,
                range: [],
                rangethree:[],
                group: [],
                AreaId: 0,
                acrossFloor:0,
                quantity: "",
                SourceAddress: "",
                TargetAddress: "",
                PalletCode1: "",
                PalletCode2: "",
                PalletCode3: "",
                materSn: "",
                items: ['点对点搬运'],
                current: 0
            }
        },
        onLoad(res) {
            this.range = config.AreaId;
            this.rangethree = config.AcrossFloor;
        },
        methods: {
            onClickItem(e) {
                if (this.current != e.currentIndex) {
                    this.current = e.currentIndex;
                }
            },
            voiceSpeech(src) {
                innerAudioContext.src = src; // '../../static/success.mp3';
                innerAudioContext.play();
            },
            InboundTask() {
                if (this.PalletCode1.length <= 0 && this.SourceAddress.length) {
                    this.$refs.luToast.show({
                        title: "托盘编码跟绑定货位不能为空",
                        type: "error"
                    })
                    return;
                }
                var param = {
                    "PalletCode": this.PalletCode1,
                    "Position": this.SourceAddress,
                    "TargetAddress": this.TargetAddress,
                    "AreaId": this.AreaId,
                }
                this.$u.post('/api/Task/RequestInboundTaskAsync', param).then(res => {
                    if (res.status) {
                        this.$refs.luToast.show({
                            title: res.message,
                            type: "success"
                        })
                        this.PalletCode1 = "";
                        this.SourceAddress = "";
                        this.TargetAddress = "";
                        this.AreaId = "";
                        this.istrue = false;
                    } else {
                        this.$refs.luToast.show({
                            title: res.message,
                            type: "error"
                        })
                    }
                })
            },
            SendTask() {
                if (this.PalletCode3.length <= 0 && this.SourceAddress3.length) {
                    this.$refs.luToast.show({
                        title: "托盘编码跟绑定货位不能为空",
                        type: "error"
                    })
                    return;
                }
                var param = {
                    "PalletCode": this.PalletCode3,
                    "Position": this.SourceAddress3,
                    "AreaId": this.acrossFloor,
                    "DoubleTray":1,
                }
                this.$u.post('/api/Task/RequestInboundTaskAsync', param).then(res => {
                    if (res.status) {
                        this.$refs.luToast.show({
                            title: res.message,
                            type: "success"
                        })
                        this.PalletCode3 = "";
                        this.SourceAddress3 = "";
                        this.acrossFloor = "";
                        this.istrue = false;
                    } else {
                        this.$refs.luToast.show({
                            title: res.message,
                            type: "error"
                        })
                    }
                })
            },
            GroupPlate() {
                if (this.PalletCode2.length <= 0 && this.InBoundOrder.length) {
                    this.$refs.luToast.show({
                        title: "请输入起点站台",
                        type: "error"
                    })
                    return;
                }
                var param = {
                    "PalletCode": this.PalletCode2,
                    "groups": this.group
                }
                this.$u.post('/api/BoxingInfo/AddGroupPlateAsync', param).then(res => {
                    if (res.status) {
                        this.$refs.luToast.show({
                            title: res.message,
                            type: "success"
                        })
                        this.PalletCode2 = "";
                        this.group = [];
                        this.barcodefocus = false;
                    } else {
                        this.$refs.luToast.show({
                            title: res.message,
                            type: "error"
                        })
                    }
                })
            },
 
            SolvePlate() {
                if (this.PalletCode3.length <= 0) {
                    this.$refs.luToast.show({
                        title: "请输入托盘条码",
                        type: "error"
                    })
                    return;
                }
                var param = {
                    "PalletCode": this.PalletCode3,
                }
                this.$u.post('/api/BoxingInfo/DeleteGroupPlateAsync', param).then(res => {
                    if (res.status) {
                        this.$refs.luToast.show({
                            title: res.message,
                            type: "success"
                        })
                        this.PalletCode3 = "";
                        this.barcodefocus = false;
                    } else {
                        this.$refs.luToast.show({
                            title: res.message,
                            type: "error"
                        })
                    }
                })
            },
            updateFocus() {
                this.$nextTick(() => {
                    this.materSn = '';
                    if (!this.focus) {
                        this.focus = true;
                    }
                });
            },
            snInput() {
                this.$nextTick(() => {
                    var matObj = {
                        orderNo: this.materSn,
                    }
                    var temp = this.group.find(x => x.orderNo == matObj.orderNo);
                    if (!temp) {
                        this.$u.post('/api/InboundOrder/GetInboundOrderInfo?orderNo=' + this.materSn, "").then(
                            res => {
                                if (res.status) {
                                    this.group.push(res.data);
                                    setTimeout(this.updateFocus, 200);
                                    setTimeout(() => {
                                        this.voiceSpeech('../../static/success.mp3');
                                    }, 100);
                                } else {
                                    this.$refs.luToast.show({
                                        title: res.message,
                                        type: "error"
                                    })
                                }
                            })
 
                    } else {
                        this.$refs.luToast.show({
                            title: "扫码重复",
                            type: "error"
                        })
                        setTimeout(this.updateFocus, 200);
                        setTimeout(() => {
                            this.voiceSpeech('../../static/fail.mp3');
                        }, 100);
                    }
 
                })
            },
            Changebarcode() {
                this.barcodeFocus = false;
                this.$nextTick(function(x) {
                    if (this.PalletCode1 != '') {
                        this.addressFocus = true;
                    }
                })
            },
            inputChangebarcode() {
                this.$nextTick(() => {
                    this.$u.post('/api/BoxingInfo/GetPalletCodeInfo?palletCode=' + this.PalletCode2, "").then(
                        res => {
                            if (res.status) {
                                this.group = res.data;
                                console.log(this.group);
                                setTimeout(this.updateFocus, 200);
                                setTimeout(() => {
                                    this.voiceSpeech('../../static/success.mp3');
                                }, 100);
                            }
                        })
                })
            },
            removeScanItem(orderNo) {
                this.group = this.group.filter(item => item.orderNo !== orderNo);
            }
        }
    }
</script>
 
<style lang="scss">
    @import '@/common/uni-ui.scss';
 
    page {
        display: flex;
        flex-direction: column;
        box-sizing: border-box;
        background-color: #efeff4;
        min-height: 100%;
        height: auto;
    }
 
    .tips {
        color: #67c23a;
        font-size: 14px;
        line-height: 40px;
        text-align: center;
        background-color: #f0f9eb;
        height: 0;
        opacity: 0;
        transform: translateY(-100%);
        transition: all 0.3s;
    }
 
    .tips-ani {
        transform: translateY(0);
        height: 40px;
        opacity: 1;
    }
 
    .content {
        width: 100%;
        display: flex;
    }
 
    .list-picture {
        width: 100%;
        height: 145px;
    }
 
    .thumb-image {
        width: 100%;
        height: 100%;
    }
 
    .ellipsis {
        display: flex;
        overflow: hidden;
    }
 
    .uni-ellipsis-1 {
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
    }
 
    .uni-ellipsis-2 {
        overflow: hidden;
        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }
</style>