zhao
2021-06-11 98186752629a7bd38965418af84db382d90b9c07
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
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
@{
    ViewBag.Title = "检验单维护检验结果";
    Layout = "~/Views/Shared/_LayoutVue.cshtml";
}
@model TN_WM_INSPECT_MSTEntity
<el-container id="inspectDiv" v-cloak>
    <el-header height="100%">
        <el-card class="box-card">
            <el-form v-bind:model="formData" v-bind:rules="formRules" ref="formData" label-width="120px" class="demo-ruleForm" v-bind:inline="true">
                <el-form-item v-need="'JYD_INSPECT_NO'" label="检验单号:" prop="CN_S_INSPECT_NO">
                    <el-input v-model="formData.CN_S_INSPECT_NO" v-bind:disabled="true" readonly="readonly" required size="mini"></el-input>
                </el-form-item>
                <el-form-item v-need="'JYD_INSPECT_TYPE'" label="检验类型:" prop="CN_S_INSPECT_TYPE">
                    <hh-select-url v-bind:disabled="true" v-model="formData.CN_S_INSPECT_TYPE" url="/Basic/Common/GetOperationTypeList?opType=到货单"
                                   valuefield="CN_S_OPERATION_NAME"
                                   textfield="CN_S_OPERATION_NAME"
                                   datafield="Data"></hh-select-url>
                </el-form-item>
                <el-form-item v-need="'JYD_STATE'" label="检验状态:" prop="CN_S_STATE">
                    <hh-select-url v-bind:disabled="true" v-model="formData.CN_S_STATE" url="/Basic/Common/GetDictionary?dictName=到货单状态"
                                   valuefield="NAME"
                                   textfield="NAME"></hh-select-url>
                </el-form-item>
                <el-form-item v-need="'JYD_FROM_NO'" label="来源单号:" prop="CN_S_FROM_NO">
                    <el-input v-model="formData.CN_S_FROM_NO" v-bind:disabled="true" readonly="readonly" required size="mini"></el-input>
                </el-form-item>
                <el-form-item v-need="'JYD_OP_TYPE'" label="业务类型:" prop="CN_S_OP_TYPE">
                    <hh-select-url v-bind:disabled="true" v-model="formData.CN_S_OP_TYPE" url="/Basic/Common/GetOperationTypeList?opType=到货单"
                                   valuefield="CN_S_OPERATION_NAME"
                                   textfield="CN_S_OPERATION_NAME"
                                   datafield="Data"></hh-select-url>
                </el-form-item>
                <el-form-item v-need="'JYD_SUBMIT_INSPECT'" label="送检日期:" prop="CN_T_SUBMIT_INSPECT">
                    <el-date-picker v-model="formData.CN_T_SUBMIT_INSPECT" size="mini" v-bind:disabled="readOnly" value-format="yyyy-MM-dd" style="width: 100%;" type="date" placeholder="请选择日期"></el-date-picker>
                </el-form-item>
                <el-form-item v-need="'JYD_INSPECT_DEPT'" label="送检部门:" prop="CN_S_INSPECT_DEPT">
                    <el-input v-model="formData.CN_S_INSPECT_DEPT" v-bind:disabled="true" readonly="readonly" required size="mini"></el-input>
                </el-form-item>
                <el-form-item v-need="'JYD_SUBMIT_PERSONER'" label="送检员:" prop="CN_S_SUBMIT_PERSONER">
                    <el-input v-model="formData.CN_S_SUBMIT_PERSONER" required size="mini" v-bind:disabled="true"></el-input>
                </el-form-item>
                <el-form-item v-need="'JYD_OPERATOR'" label="检验员:" prop="CN_S_OPERATOR">
                    <el-input v-model="formData.CN_S_OPERATOR" required size="mini" v-bind:disabled="readOnly"></el-input>
                </el-form-item>
                <el-form-item v-need="'JYD_DATE'" label="检验日期:" prop="CN_T_DATE">
                    <el-date-picker v-model="formData.CN_T_DATE" size="mini" v-bind:disabled="readOnly" value-format="yyyy-MM-dd" style="width: 100%;" type="date" placeholder="请选择日期"></el-date-picker>
                </el-form-item>
                <el-form-item v-need="'JYD_NOTE'" label="摘要:" prop="CN_S_NOTE">
                    <el-input v-model="formData.CN_S_NOTE" v-bind:disabled="true" size="mini"></el-input>
                </el-form-item>
 
            </el-form>
        </el-card>
    </el-header>
    <el-main>
        <el-table v-bind:data="tableData" class="tb-edit" style="width: 100%;"
                  v-bind:height="tableHeight" border highlight-current-row size="mini">
            @*<el-table-column label="操作" width="50" align="center">
                <template scope="scope">
                    <i style="cursor:pointer" class="el-icon-plus" v-if="IsHandWork" v-on:click="addRow" title="新增行"></i>
                    <i style="cursor:pointer" class="el-icon-minus" v-on:click="deleteRow(scope.$index, tableData)" title="删除行"></i>
                </template>
            </el-table-column>*@
            <el-table-column type="index" width="45" label="行号">
            </el-table-column>
            <el-table-column v-if="$_need('JYD_ITEM_CODE')" label="物料编码" prop="CN_S_ITEM_CODE" width="180" align="center">
                <template scope="scope">
                    <el-input size="mini"
                              v-model="scope.row.CN_S_ITEM_CODE"
                              v-bind:disabled="readOnly"
                              v-bind:ref="'_refItem'+scope.$index"
                              v-on:input="itemInputChange(scope.row,scope.$index)"
                              v-on:blur="itemInputBlur(scope.row,scope.$index)">
                        <i slot="suffix" v-on:click="selectItem(scope.row)" class="el-icon-more"></i>
                    </el-input>
                    <span>{{scope.row.CN_S_ITEM_CODE}}</span>
                </template>
            </el-table-column>
            <el-table-column v-if="$_need('JYD_ITEM_NAME')" label="物料名称" prop="CN_S_ITEM_NAME" width="180" align="center"></el-table-column>
 
            <el-table-column v-if="$_need('JYD_MODEL')" label="规格型号" prop="CN_S_MODEL" width="120" align="center"></el-table-column>
            <el-table-column v-if="$_need('JYD_FIGURE_NO')" label="图号" prop="CN_S_FIGURE_NO" width="140" align="center"></el-table-column>
            <el-table-column v-if="$_need('JYD_MEASURE_UNIT')" label="计量单位" prop="CN_S_MEASURE_UNIT" width="70"></el-table-column>
            <el-table-column v-if="$_need('JYD_QUANTITY')" label="数量" prop="CN_F_QUANTITY" width="70"  align="center"></el-table-column>
            <el-table-column v-if="$_need('JYD_QUALIFIED')" label="合格数量" prop="CN_F_QUALIFIED" width="120" align="center">
                <template scope="scope">
                    <el-input-number v-model="scope.row.CN_F_QUALIFIED"
                                     v-bind:min="0"
                                     size="mini" @*v-bind:precision="2" v-on:change="checkQty(scope.row,scope.$index)"*@
                                     v-bind:disabled="readOnly" style="width:100px"></el-input-number>
                    <span>{{scope.row.CN_F_QUALIFIED}}</span>
                </template>
            </el-table-column>
            <el-table-column v-if="$_need('JYD_DTL_NOTE')" label="备注" prop="CN_S_NOTE" width="180" align="center">
                <template scope="scope">
                    <el-input size="mini" v-model="scope.row.CN_S_NOTE" v-bind:disabled="true" placeholder=""></el-input>
                    <span>{{scope.row.CN_S_NOTE}}</span>
                </template>
            </el-table-column>
        </el-table>
    </el-main>
    <el-footer style="position:fixed;bottom:0px;height:50px;width:100%">
        <el-row style="padding:20px;text-align:center">
            <el-button size="mini" type="primary" v-on:click="save(false)" v-show="!readOnly">保 存</el-button>
            <el-button size="mini" type="warning" v-on:click="submit" v-show="!readOnly">提 交</el-button>
            <el-button size="mini" v-on:click="cancel">{{readOnly?'返 回':'取 消'}}</el-button>
        </el-row>
    </el-footer>
 
</el-container>
@section scripts{
    <script>
        $(function () {
 
        });
        new Vue({
            el: '#inspectDiv',
            mixins: [useAutoHeight,wmsApps],
            computed: {
                tableHeight: function () {
                    return this.autoHeight - 210;
                },
                itemTop:function(){
                    return this.itemTable.top+28;
                },
                itemLeft:function(){
                    return this.itemTable.left;
                }
            },
            data: {
                itemTable:{
                    show:false,
                    top:0,
                    left:0
                },
                where: {},
                IsHandWork: true,
                readOnly :false,
                formData: {
                    CN_S_INSPECT_NO: "@Model.CN_S_INSPECT_NO",
                    CN_S_OP_TYPE: "@Model.CN_S_OP_TYPE",
                    CN_S_INSPECT_TYPE: "@Model.CN_S_INSPECT_TYPE",
                    CN_S_STATE: "@Model.CN_S_STATE",
                    CN_S_FROM_NO: "@Model.CN_S_FROM_NO",
                    CN_T_DATE: "@Model.CN_T_DATE",
                    CN_S_INSPECT_DEPT: "@Model.CN_S_INSPECT_DEPT",
                    CN_S_OPERATOR: "@Model.CN_S_OPERATOR",
                    CN_T_SUBMIT_INSPECT: "@Model.CN_T_SUBMIT_INSPECT",
                    CN_S_SUBMIT_PERSONER: "@Model.CN_S_SUBMIT_PERSONER",
                    CN_T_CREATE: "@Model.CN_T_CREATE",
                    CN_S_NOTE: "@Model.CN_S_NOTE",
                    OperateType: "@Model.OperateType",
                    DTLEntity: [],
                    OperateMessage:""
                },
                formRules: {
                    CN_S_OP_NO: [
                       { required: true, message: ' ', trigger: 'blur' }
                    ],
                    CN_S_OPERATOR: [
                      { required: true, message: ' ', trigger: 'change' }
                    ],
                    CN_T_SUBMIT_INSPECT: [
                      { required: true, message: ' ', trigger: 'change' }
                    ]
                },
                @if(Model.OperateType==
                    HH.WMS.Entitys.Common.OperateType.Add
                    || Model.DTLEntity == null
                    || !Model.DTLEntity.Any())
                {
                <text>
                tableData: [{
                    CN_S_ITEM_CODE: '',
                    CN_S_ITEM_NAME: '',
                    CN_S_MODEL: '',
                    CN_S_FIGURE_NO: '',
                    CN_S_MEASURE_UNIT: '',
                    CN_F_QUANTITY: '',
                    CN_F_QUALIFIED: '',
                    CN_S_NOTE: ''
                }],
                </text>
                }
                else
                {
                    <text>
                tableData: @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model.DTLEntity, Html.DateFormatter())),
                </text>
                }
                //是否打开父页面弹窗列表
                selectItemDialog: false,
                //选中当前物料的行数据
                currentRow: {},
                form: {
                    name: '',
                    region: '',
                    date1: '',
                    date2: '',
                    delivery: false,
                    type: [],
                    resource: '',
                    desc: ''
                },
                //父页面选择的物料数据
                selections: [],
                currentTitle:parent.$(".layui-tab-title li[class='layui-this'] cite").text(),
                emptyValue:'',
                itemData:[],
                hasEdit:false
            },
            watch:{
                tableData:{
                    deep:true,
                    handler:function(val){
                        console.log('edit');
                        this.hasEdit = true;
                    }
                },
                formData:{
                    deep:true,
                    handler:function(val){
                        console.log('edit');
                        this.hasEdit = true;
                    }
                }
            },
            methods: {
                cancel:function(){
                    var $this = this;
                    if(!this.readOnly&&this.hasEdit){
                        wms.confirm("是否保存?", function () {
                            if($this.save(false))
                                parent.tab.tabDeleteRefresh($this.currentTitle,GetUrlParam("mainPage"));
                        },function(){
                            parent.tab.tabDeleteRefresh($this.currentTitle,GetUrlParam("mainPage"));
                        });
                    }else{
                        parent.tab.tabDeleteRefresh($this.currentTitle,GetUrlParam("mainPage"));
                    }
                },
                //提交
                submit: function () {
                    var $this = this;
                    if($this.formData.OperateType=="@HH.WMS.Entitys.Common.OperateType.Edit"){
                        wms.confirm("确认提交?",function(){
                            $this.save(true);
                        });
                    }else{
                        wms.warning("请先保存单据再提交");
                    }
                },
                save: function (isSubmit) {
                    var $this = this;
                    var validData = [];
                    var errorMsg = null;
                    $.each($this.tableData, function (i, n) {
                        if (n.CN_S_ITEM_CODE) {
                            if (n.CN_F_QUALIFIED==undefined || (n.CN_F_QUALIFIED=="undefined") || (n.CN_F_QUALIFIED==0) || (n.CN_F_QUALIFIED=="0")) {
                                errorMsg = "第" + (i + 1) + "行合格数量未维护!";
                                return false;
                            }
                            validData.push(n);
 
                            if (parseFloat(n.CN_F_QUANTITY) < parseFloat(n.CN_F_QUALIFIED)) {
                                errorMsg = "第" + (i + 1) + "行合格数量不能大于总数量!";
                                return false;
                            }
                            validData.push(n);
 
                        }
                    });
                   
                    var sj=new Date($this.formData.CN_T_SUBMIT_INSPECT.replace(/-/g,"\/"));
                    var jy=new Date($this.formData.CN_T_DATE.replace(/-/g,"\/"));
                    if(sj.toLocaleDateString()>jy.toLocaleDateString())
                    {
                        errorMsg = "检验日期不能小于送检日期!";
                    }
 
                    if (errorMsg) {
                        wms.warning(errorMsg);
                        return false;
                    }
                    this.$refs["formData"].validate(function (valid) {
                        if (valid) {
                            console.log($this.tableData);
                            $this.formData.DTLEntity = $this.tableData;
                            var successMsg = "保存成功";
                            $this.formData.OperateMessage="";
                            if(isSubmit){
                                $this.formData.OperateMessage = "@HH.WMS.Common.Constants.Operate_EditAndSubmit";
                                successMsg = "提交成功";
                            }
                            //保存数据
                            ajaxManage({
                                url: "@Url.Action("SaveInspect")",
                                data: JSON.stringify($this.formData),
                                traditional: true,
                                success: function (data) {
                                    wms.showMsg(data, function () {
                                        wms.success(successMsg);
                                        $this.formData.OperateType = "@HH.WMS.Entitys.Common.OperateType.Edit";
                                        $this.hasEdit = false;
                                        if(isSubmit)
                                        {
                                            var currentTitle =  parent.$(".layui-tab-title li[class='layui-this'] cite").text();
                                            parent.tab.tabDeleteRefresh(currentTitle,GetUrlParam("mainPage"));
                                        }
                                    }, function () {
 
                                    });
                                }
                            });
 
                        } else {
                            wms.warning("验证不通过");
                            return false;
                        }
                    });
                    return true;
                },
                checkQty:function(row,index){
                    var regu = /^[0-9]+\.?[0-9]*$/;
                    var qty=row.CN_F_QUANTITY+"";
                    if (qty != "") {
                        var zhenshu=qty.split('.')[0];
                        if (zhenshu.length > 15) {
                            zhenshu=zhenshu.substring(0,14);
                        }
                        if (qty.indexOf('.') > -1) {
                            if (qty.split('.')[1].length > 2) {
                                zhenshu =zhenshu+"."+qty.split('.')[1].substring(0,2);
                            }
                        }
                    }
                    row.CN_F_QUANTITY = zhenshu;
                    var $this = this;
                    this.$set($this.tableData,index,row);
                },
                changeSelect: function (val) {
                    this.selections = val;
                }
            },
            mounted: function () {
                var $this = this;
                if($this.formData.OperateType=="@HH.WMS.Entitys.Common.OperateType.Read"){
                    $this.readOnly = true;
                }
            }
        });
    </script>
}