whycq
2022-03-09 21aa738d9044f2fb2dd817e0f30fb96b598ef9b1
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
layui.config({
    base: baseUrl + "/static/layui/lay/modules/"
}).use(['layer', 'form', 'table', 'util', 'admin', 'xmSelect', 'laydate'], function () {
    var $ = layui.jquery;
    var layer = layui.layer;
    var form = layui.form;
    var table = layui.table;
    var util = layui.util;
    var admin = layui.admin;
    var xmSelect = layui.xmSelect;
    var layDate = layui.laydate;
 
    // 渲染表格
    var insTb = table.render({
        elem: '#order',
        url: baseUrl+'/delivery/head/page/auth',
        headers: {token: localStorage.getItem('token')},
        page: true,
        even: true,
        cellMinWidth: 100,
        cols: [[
            {type: 'numbers'},
            {field: 'orderNo', title: '单据编号', sort: true},
            {field: 'cstmrName', title: '客户',  minWidth: 250, width: 250},
            {field: 'docType$', align: 'center', title: '类型', templet: '#docTypeTpl', minWidth: 160, width: 160},
            {align: 'center', title: '明细', toolbar: '#tbLook', minWidth: 160, width: 160},
            {field: 'createTime$', title: '日期', minWidth: 200, width: 200},
            {align: 'center', title: '操作', toolbar: '#operate', minWidth: 130, width: 130}
        ]],
        request: {
            pageName: 'curr',
            pageSize: 'limit'
        },
        parseData: function (res) {
            return {
                'code': res.code,
                'msg': res.msg,
                'count': res.data.total,
                'data': res.data.records
            }
        },
        response: {
            statusCode: 200
        },
        done: function (res, curr, count) {
            if (res.code === 403) {
                top.location.href = baseUrl+"/";
            }
        }
    });
 
    // 搜索
    form.on('submit(orderSearch)', function (data) {
        insTb.reload({where: data.field, page: {curr: 1}});
    });
 
    // 工具条点击事件
    table.on('tool(order)', function (obj) {
        var data = obj.data;
        var layEvent = obj.event;
        if (layEvent === 'print') {
            showPrintModel(data);
        } else if (layEvent === 'del') {
            doDel(data.id);
        } else if (layEvent === 'edit') {
            showEditModel(data);
        } else if (layEvent === 'look') {
            var $a = $(obj.tr).find('a[lay-event="look"]');
            var offset = $a.offset();
            var top = offset.top;
            var left = offset.left;
            layer.open({
                type: 1,
                title: false,
                area: '780px',
                offset: [top + 'px', (left - 530 + $a.outerWidth()) + 'px'],
                shade: .01,
                shadeClose: true,
                fixed: false,
                content: '<table id="lookSSXMTable" lay-filter="lookSSXMTable"></table>',
                success: function (layero) {
                    table.render({
                        elem: '#lookSSXMTable',
                        headers: {token: localStorage.getItem('token')},
                        url: baseUrl+'/orderDetl/list/auth',
                        where: {
                            order_id: data.id
                        },
                        limit: 5,
                        page: true,
                        cellMinWidth: 100,
                        cols: [[
                            {type: 'numbers'},
                            {field: 'matnr', title: '商品编码'},
                            {field: 'maktx', title: '商品名称', width: 200},
                            {field: 'anfme', title: '数量', width: 70},
                            {field: 'unitPrice', title: '单价', width: 70},
                            {
                                field: 'createTime$', title: '创建时间', sort: true, templet: function (d) {
                                    return util.toDateString(d.createTime);
                                },  width: 180
                            }
                        ]],
                        request: {
                            pageName: 'curr',
                            pageSize: 'limit'
                        },
                        parseData: function (res) {
                            return {
                                'code': res.code,
                                'msg': res.msg,
                                'count': res.data.total,
                                'data': res.data.records
                            }
                        },
                        response: {
                            statusCode: 200
                        },
                        done: function () {
                            $(layero).find('.layui-table-view').css('margin', '0');
                        },
                        size: ''
                    });
                }
            });
        }
    });
 
    // 打开编辑窗口
    function showEditModel(data) {
        admin.open({
            type: 1,
            title: (data ? '修改' : '添加') + '价格',
            content: $('#editDialog').html(),
            area: '800px',
            success: function (layero, dIndex) {
                $(layero).children('.layui-layer-content').css('overflow', 'visible');
                // 回显数据
                form.val('editForm', data);
                // 表单提交事件
                form.on('submit(editSubmit)', function (data) {
                    var param = [];
                    var nList = admin.util.deepClone(xxDataList);
                    for (var xi = 0; xi < nList.length; xi++) {
                        if (nList[xi].qty > 0) {
                            param.push({
                                billNo: data.field.billNo,
                                billType: data.field.billType,
                                matNo: nList[xi].matNo,
                                matName: nList[xi].matName,
                                qty: nList[xi].qty,
                            })
                        }
                    }
                    layer.load(2);
                    $.ajax({
                        url: baseUrl+"/delivery/orderDetl/price/update/auth",
                        headers: {'token': localStorage.getItem('token')},
                        data: JSON.stringify(nList),
                        contentType:'application/json;charset=UTF-8',
                        method: 'POST',
                        success: function (res) {
                            layer.closeAll('loading');
                            if (res.code === 200){
                                layer.close(dIndex);
                                insTb.reload({page: {curr: 1}});
                                layer.msg(res.msg, {icon: 1});
                            } else if (res.code === 403){
                                top.location.href = baseUrl+"/";
                            }else {
                                layer.msg(res.msg, {icon: 2});
                            }
                        }
                    })
                    return false;
                });
                // 明细表格
                var xxDataList = [];
                var tbOptions = {
                    elem: '#formSSXMTable',
                    headers: {token: localStorage.getItem('token')},
                    data: xxDataList,
                    // page: true,
                    limit: 9999,
                    height: '350px;',
                    cellMinWidth: 100,
                    cols: [[
                        {type: 'numbers'},
                        {field: 'matnr', title: '商品编码'},
                        {field: 'maktx', title: '商品名称', width: 240},
                        {field: 'anfme', title: '数量', minWidth: 100, width: 100},
                        {field: 'unitPrice', title: '单价(修改)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 120, width: 120, fixed: 'right'},
                        // {align: 'center', title: '操作', toolbar: '#formSSXMTableBar', minWidth: 80, width: 80}
                    ]],
                    done: function (res) {
                        $(layero).find('.layui-table-view').css('margin', '0');
                    }
                };
                if (data) {
                    $.ajax({
                        url: baseUrl+"/delivery/orderDetl/list/auth",
                        headers: {'token': localStorage.getItem('token')},
                        method: 'GET',
                        data: {
                            orderNo: data.orderNo
                        },
                        async:false,
                        success: function (res) {
                            if (res.code === 200){
                                xxDataList = res.data;
                                tbOptions.data = xxDataList;
                            } else if (res.code === 403){
                                top.location.href = baseUrl+"/";
                            }else {
                                layer.msg(res.msg, {icon: 2})
                            }
                        }
                    })
                }
                var insTbSSXM = table.render(tbOptions);
                // 数量修改
                table.on('edit(formSSXMTable)', function (obj) {
                    var anfme = Number(obj.value);
                    if (isNaN(anfme)) {
                        layer.msg("请输入数字", {icon: 2});
                    } else {
                        if (anfme > 0) {
                            for (var i=0;i<xxDataList.length;i++){
                                if (xxDataList[i]["matnr"] === obj.data.matnr){
                                    xxDataList[i]["unitPrice"] = anfme;
                                    break;
                                }
                            }
                        } else {
                            layer.msg("数量必须大于零", {icon: 2});
                        }
                    }
                    insTbSSXM.reload({data: xxDataList});
                });
            }
        });
    }
 
    // 跳转打印页面
    function showPrintModel(data) {
        window.open("print.html?length=10&orderId=" + data.id);
    }
 
    // 删除单据
    function doDel(billNo) {
        layer.confirm('确定要删除吗?', {
            shade: .1,
            skin: 'layui-layer-admin'
        }, function (i) {
            layer.close(i);
            layer.load(2);
 
            $.ajax({
                url: baseUrl+"/waitMatin/delete/auth",
                headers: {'token': localStorage.getItem('token')},
                data: {
                    billNo: billNo
                },
                // contentType:'application/json;charset=UTF-8',
                method: 'POST',
                success: function (res) {
                    layer.closeAll('loading');
                    if (res.code === 200){
                        insTb.reload({page: {curr: 1}});
                        layer.msg(res.msg, {icon: 1});
                    } else if (res.code === 403){
                        top.location.href = baseUrl+"/";
                    }else {
                        layer.msg(res.msg, {icon: 2});
                    }
                }
            })
        });
    }
 
    layDate.render({
        elem: '.layui-laydate-range'
        ,type: 'datetime'
        ,range: true
    });
});