#
Junjie
2 天以前 8a50a90c91918b7a97ae778c0fc63480279598db
#
2个文件已修改
340 ■■■■■ 已修改文件
src/main/webapp/static/js/wrkMastLog/wrkMastLog.js 224 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/wrkMastLog/wrkMastLog.html 116 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/wrkMastLog/wrkMastLog.js
@@ -1302,6 +1302,204 @@
    ]);
    var wrkMastLogFieldOrder = [
        'wrkNo',
        'wmsWrkNo',
        'wrkSts',
        'ioType',
        'ioTime',
        'appeTime',
        'ioPri',
        'sourceStaNo',
        'staNo',
        'sourceLocNo',
        'locNo',
        'crnNo',
        'dualCrnNo',
        'batch',
        'batchSeq',
        'barcode',
        'modiUser',
        'modiTime',
        'appeUser',
        'systemMsg',
        'errorTime',
        'errorMemo',
        'memo',
        'id'
    ];
    var wrkMastLogFieldSettings = {
        wrkNo: {
            label: '工作号',
            searchable: true,
            quickSearch: true,
            sortable: true,
            minWidth: 110
        },
        wmsWrkNo: {
            label: 'WMS工作号',
            searchable: true,
            quickSearch: true,
            minWidth: 140
        },
        wrkSts: {
            label: '工作状态',
            kind: 'foreign',
            tableProp: 'wrkSts$',
            exportField: 'wrkSts$',
            foreignQuery: 'basWrkStatus',
            searchable: true,
            quickSearch: true,
            minWidth: 160
        },
        ioType: {
            label: '入出库类型',
            kind: 'foreign',
            tableProp: 'ioType$',
            exportField: 'ioType$',
            foreignQuery: 'basWrkIotype',
            searchable: true,
            quickSearch: true,
            minWidth: 160
        },
        ioTime: {
            label: '工作时间',
            tableProp: 'ioTime$',
            exportField: 'ioTime$',
            kind: 'date',
            searchable: true,
            quickSearch: true,
            defaultVisible: false,
            minWidth: 300
        },
        appeTime: {
            label: '工作时间',
            tableProp: 'appeTime$',
            exportField: 'appeTime$',
            sortable: true,
            minWidth: 168
        },
        ioPri: {
            label: '优先级',
            minWidth: 90
        },
        sourceStaNo: {
            label: '源站'
        },
        staNo: {
            label: '目标站'
        },
        sourceLocNo: {
            label: '源库位',
            minWidth: 120
        },
        locNo: {
            label: '目标库位',
            minWidth: 120
        },
        crnNo: {
            label: '堆垛机',
            minWidth: 100
        },
        dualCrnNo: {
            label: '双工位堆垛机',
            minWidth: 140
        },
        batch: {
            label: '批次',
            minWidth: 100
        },
        batchSeq: {
            label: '批次序列',
            minWidth: 110
        },
        barcode: {
            label: '条码',
            minWidth: 140
        },
        modiUser: {
            label: '修改人员',
            tableProp: 'modiUser$',
            exportField: 'modiUser$',
            defaultVisible: false
        },
        modiTime: {
            label: '修改时间',
            tableProp: 'modiTime$',
            exportField: 'modiTime$',
            defaultVisible: false,
            minWidth: 168
        },
        appeUser: {
            label: '创建者',
            tableProp: 'appeUser$',
            exportField: 'appeUser$',
            defaultVisible: false
        },
        systemMsg: {
            label: '系统消息',
            textarea: true,
            defaultVisible: false,
            minWidth: 220
        },
        errorTime: {
            label: '异常时间',
            tableProp: 'errorTime$',
            exportField: 'errorTime$',
            defaultVisible: false,
            minWidth: 168
        },
        errorMemo: {
            label: '异常说明',
            textarea: true,
            defaultVisible: false,
            minWidth: 220
        },
        memo: {
            label: '备注',
            textarea: true,
            defaultVisible: false,
            minWidth: 220
        },
        id: {
            label: '编号',
            defaultVisible: false,
            minWidth: 90
        }
    };
    fieldMeta = filterFieldMetaByOrder(fieldMeta, wrkMastLogFieldOrder, wrkMastLogFieldSettings);
    function filterFieldMetaByOrder(list, order, settings) {
        var metaMap = {};
        (list || []).forEach(function (field) {
            if (!field || !field.field) {
                return;
            }
            metaMap[field.field] = Object.assign({}, field);
        });
        return (order || []).map(function (fieldName) {
            if (!metaMap[fieldName]) {
                return null;
            }
            var merged = Object.assign({}, metaMap[fieldName], settings && settings[fieldName] ? settings[fieldName] : {});
            if (merged.searchable === undefined) {
                merged.searchable = false;
            }
            if (merged.quickSearch === undefined) {
                merged.quickSearch = false;
            }
            if (merged.editable === undefined) {
                merged.editable = false;
            }
            if (merged.defaultVisible === undefined) {
                merged.defaultVisible = true;
            }
            return merged;
        }).filter(Boolean);
    }
    function formatFieldLabel(field) {
        var raw = field && field.label ? String(field.label).trim() : '';
        if (raw) {
@@ -1363,15 +1561,15 @@
    }
    function isSearchableField(field) {
        return !!field && field.kind !== 'image' && !field.textarea;
        return !!field && field.searchable === true && field.kind !== 'image' && !field.textarea;
    }
    function isSortableField(field) {
        if (!field) {
            return false;
        }
        if (field.primaryKey) {
            return true;
        if (typeof field.sortable === 'boolean') {
            return field.sortable;
        }
        return field.kind !== 'image' && !field.textarea && field.kind !== 'foreign';
    }
@@ -1420,7 +1618,9 @@
    }
    function createDefaultVisibleColumnKeys() {
        return fieldMeta.map(function (field) {
        return fieldMeta.filter(function (field) {
            return field.defaultVisible !== false;
        }).map(function (field) {
            return field.field;
        });
    }
@@ -1717,21 +1917,13 @@
                    });
                },
                quickSearchableFields: function () {
                    var result = [];
                    this.searchableFields.forEach(function (field) {
                        if (result.length >= 3 || field.kind === 'date') {
                            return;
                        }
                        result.push(field);
                    return this.searchableFields.filter(function (field) {
                        return field.quickSearch === true;
                    });
                    return result;
                },
                advancedSearchableFields: function () {
                    var quickKeys = this.quickSearchableFields.map(function (field) {
                        return field.field;
                    });
                    return this.searchableFields.filter(function (field) {
                        return quickKeys.indexOf(field.field) === -1;
                        return field.quickSearch !== true;
                    });
                },
                hasAdvancedFilters: function () {
@@ -1745,7 +1937,7 @@
                },
                editableFields: function () {
                    return this.fieldMeta.filter(function (field) {
                        return !field.primaryKey;
                        return !field.primaryKey && field.editable === true;
                    });
                },
                exportColumns: function () {
src/main/webapp/views/wrkMastLog/wrkMastLog.html
@@ -2,7 +2,7 @@
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <title>WrkMastLog 管理</title>
    <title>工作历史档查询</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
@@ -92,6 +92,11 @@
        .toolbar-search-item.keyword {
            flex: 0 0 220px;
            min-width: 220px;
        }
        .toolbar-search-item.wide {
            flex: 0 0 300px;
            min-width: 300px;
        }
        .toolbar-query-actions,
@@ -347,9 +352,21 @@
                            <div
                                v-for="field in quickSearchableFields"
                                :key="'quick-' + field.field"
                                class="toolbar-search-item">
                                :class="['toolbar-search-item', field.kind === 'date' ? 'wide' : '']">
                                <el-date-picker
                                    v-if="field.kind === 'date'"
                                    v-model="searchForm[field.field]"
                                    size="small"
                                    type="datetimerange"
                                    unlink-panels
                                    range-separator="至"
                                    :start-placeholder="field.label + '开始'"
                                    :end-placeholder="field.label + '结束'"
                                    value-format="yyyy-MM-dd HH:mm:ss"
                                    style="width: 100%;">
                                </el-date-picker>
                                <el-select
                                    v-if="field.kind === 'enum'"
                                    v-else-if="field.kind === 'enum'"
                                    v-model="searchForm[field.field]"
                                    size="small"
                                    clearable
@@ -410,8 +427,6 @@
                        </div>
                    </div>
                    <div class="toolbar-ops">
                        <el-button size="small" type="primary" plain icon="el-icon-plus" @click="openCreateDialog">新增</el-button>
                        <el-button size="small" type="danger" plain icon="el-icon-delete" :disabled="selection.length === 0" @click="removeSelection">删除</el-button>
                        <el-popover
                            placement="bottom"
                            width="320"
@@ -436,6 +451,7 @@
                            <el-button slot="reference" size="small" plain icon="el-icon-setting">列设置</el-button>
                        </el-popover>
                        <el-button size="small" plain icon="el-icon-download" :loading="exporting" @click="exportRows">导出</el-button>
                        <el-button size="small" plain icon="el-icon-refresh-left" @click="loadTable">刷新</el-button>
                    </div>
                </div>
            </div>
@@ -520,9 +536,7 @@
                        border
                        stripe
                        :height="tableHeight"
                        @selection-change="handleSelectionChange"
                        @sort-change="handleSortChange">
                        <el-table-column type="selection" width="52" align="center"></el-table-column>
                        <el-table-column
                            v-for="field in visibleColumns"
                            :key="field.field"
@@ -552,12 +566,6 @@
                                <span v-else>{{ valueOrDash(getTableValue(scope.row, field)) }}</span>
                            </template>
                        </el-table-column>
                        <el-table-column label="操作" width="160" fixed="right" align="center">
                            <template slot-scope="scope">
                                <el-button type="text" @click="openEditDialog(scope.row)">修改</el-button>
                                <el-button type="text" style="color:#f56c6c;" @click="removeRows([scope.row[primaryKeyField]])">删除</el-button>
                            </template>
                        </el-table-column>
                    </el-table>
                </div>
            </div>
@@ -577,88 +585,6 @@
            </div>
        </div>
    </section>
    <el-dialog
        class="dialog-panel"
        :title="dialog.mode === 'create' ? '新增 WrkMastLog' : '修改 WrkMastLog'"
        :visible.sync="dialog.visible"
        width="760px"
        :close-on-click-modal="false">
        <el-form
            ref="dialogForm"
            :model="dialogForm"
            :rules="dialogRules"
            label-width="110px"
            size="small">
            <el-row :gutter="16">
                <el-col
                    v-for="field in editableFields"
                    :key="'dialog-' + field.field"
                    :span="field.textarea || field.kind === 'image' ? 24 : 12">
                    <el-form-item :label="field.label" :prop="field.field">
                        <el-date-picker
                            v-if="field.kind === 'date'"
                            v-model="dialogForm[field.field]"
                            type="datetime"
                            value-format="yyyy-MM-dd HH:mm:ss"
                            :placeholder="'请选择' + field.label"
                            style="width: 100%;">
                        </el-date-picker>
                        <el-select
                            v-else-if="field.kind === 'enum'"
                            v-model="dialogForm[field.field]"
                            clearable
                            :placeholder="'请选择' + field.label"
                            style="width: 100%;">
                            <el-option
                                v-for="option in field.enumOptions"
                                :key="'dialog-' + field.field + '-' + option.rawValue"
                                :label="option.label"
                                :value="normalizeOptionValue(field, option.rawValue)">
                            </el-option>
                        </el-select>
                        <el-autocomplete
                            v-else-if="field.kind === 'foreign'"
                            v-model="dialogDisplay[field.field]"
                            :fetch-suggestions="getSuggestionFetcher(field)"
                            :placeholder="'请输入' + field.label"
                            style="width: 100%;"
                            @select="handleForeignSelect(field, $event)"
                            @input="handleForeignInput(field)">
                            <template slot-scope="{ item }">
                                <div class="mono">{{ item.value }}</div>
                                <div style="font-size:12px;color:#8a98ac;">ID: {{ item.id }}</div>
                            </template>
                        </el-autocomplete>
                        <el-switch
                            v-else-if="field.kind === 'checkbox'"
                            v-model="dialogForm[field.field]"
                            :active-value="normalizeOptionValue(field, field.checkboxActiveRaw)"
                            :inactive-value="normalizeOptionValue(field, field.checkboxInactiveRaw)"
                            active-color="#13ce66"
                            inactive-color="#c0c4cc">
                        </el-switch>
                        <el-input
                            v-else-if="field.textarea"
                            v-model.trim="dialogForm[field.field]"
                            type="textarea"
                            :rows="3"
                            :placeholder="'请输入' + field.label">
                        </el-input>
                        <el-input
                            v-else
                            v-model.trim="dialogForm[field.field]"
                            :placeholder="'请输入' + field.label">
                        </el-input>
                    </el-form-item>
                </el-col>
            </el-row>
        </el-form>
        <div slot="footer" class="dialog-footer">
            <el-button @click="dialog.visible = false">取消</el-button>
            <el-button type="primary" :loading="dialog.submitting" @click="submitDialog">保存</el-button>
        </div>
    </el-dialog>
</div>
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>