Просмотр исходного кода

1. 调整模板高度
2. 模板列配置,复制粘贴
3. 标记锁定模板

MaiXinRong 20 часов назад
Родитель
Сommit
96647aa526

+ 70 - 1
app/public/js/pos_calc_tmpl.js

@@ -307,7 +307,7 @@ $(document).ready(() => {
             this.templateSpreadSetting = {
                 cols: [
                     {title: '名称', colSpan: '1', rowSpan: '1', field: 'name', hAlign: 0, width: 240, formatter: '@'},
-                    {title: '创建人', colSpan: '1', rowSpan: '1', field: 'user_name', hAlign: 0, width: 80, formatter: '@', readOnly: true},
+                    {title: '创建人', colSpan: '1', rowSpan: '1', field: 'user_name', hAlign: 1, width: 80, formatter: '@', readOnly: true},
                 ],
                 emptyRows: 0,
                 headRows: 1,
@@ -316,6 +316,24 @@ $(document).ready(() => {
                 headerFont: '12px 微软雅黑',
                 font: '12px 微软雅黑',
                 headColWidth: [50],
+                getColor: function(sheet, data, row, col, defaultColor) {
+                    return data && data.used_count > 0 ? spreadColor.common.invalid : defaultColor;
+                },
+                rowHeader:[
+                    {
+                        rowHeaderType: 'circle',
+                        setting: {
+                            size: 5,
+                            indent: 16,
+                            getColor: function (index, data) {
+                                if (!data) return;
+                                if (data.used_count > 0) {
+                                    return '#dc3545';
+                                }
+                            }
+                        },
+                    },
+                ],
             };
 
             this.initSpread();
@@ -546,6 +564,57 @@ $(document).ready(() => {
                 }
                 SpreadJsObj.reLoadRowData(info.sheet, info.row);
             });
+            this.spread.bind(spreadNS.Events.ClipboardPasting, function(e, info) {
+                info.cancel = true;
+
+                const setting = info.sheet.zh_setting;
+                const sortData = info.sheet.zh_data || [];
+                const pasteData = SpreadJsObj.analysisPasteText(info.pasteData.text);
+                const row = [];
+                for (let iRow = 0; iRow < pasteData.length; iRow++) {
+                    const curRow = iRow + info.cellRange.row;
+                    const select = sortData[curRow];
+                    if (!select) continue;
+
+                    row.push(curRow);
+                    const typeInfo = validColInfo.find(x => { return x.key === select.type; });
+                    pasteData[iRow].forEach((value, iCol) => {
+                        const col = setting.cols[info.cellRange.col + iCol];
+                        if (!col || typeInfo.valid.indexOf(col.field) < 0) return;
+
+                        if (col.field === 'spec_set') {
+                            return;
+                        } else if (col.field === 'calc_code') {
+                            const exist = self.colSetData.find(x => { return x.type === 'num' && x.calc_code === value && x.field !== select.field; });
+                            if (exist) {
+                                toastr.warning('请勿输入重复的计算代号');
+                            } else {
+                                select.calc_code = value;
+                                select.field = 'num_' + select.calc_code.toLowerCase();
+                            }
+                        } else if (col.field === 'width') {
+                            select.width = parseInt(value);
+                        } else if (col.field === 'decimal') {
+                            const num = parseInt(value);
+                            if (num < 0 || num > 6) {
+                                toastr.warning('小数位数仅可保留0-6位');
+                            } else {
+                                select.decimal = num;
+                            }
+                        } else if (col.field === 'rela_col') {
+                            const exist = self.colSetData.find(x => { return x.type === 'num' && x.calc_code === value });
+                            if (!exist) {
+                                toastr.warning(`暂无计量代号为${value}的列,请先配置该数值列`);
+                            } else {
+                                select.rela_col = value;
+                            }
+                        } else {
+                            select[col.field] = value;
+                        }
+                    });
+                }
+                SpreadJsObj.reLoadRowsData(info.sheet, row);
+            });
             SpreadJsObj.addDeleteBind(this.spread, function(sheet){
                 if (!sheet.zh_setting) return;
 

+ 1 - 1
app/view/template/pos_calc.ejs

@@ -36,7 +36,7 @@
             <div class="row">
                 <div class="col-3">
                     <div id="folder-spread" class="sjs-height-1"></div>
-                    <div class="bcontent-wrap" id="main-bottom">
+                    <div class="bcontent-wrap" id="main-bottom" style="height: 600px;">
                         <div class="bc-bar mb-1 d-flex">
                             <div class="d-inline-block">
                                 <ul class="nav nav-tabs">

+ 4 - 4
app/view/template/pos_calc_modal.ejs

@@ -9,15 +9,15 @@
                     <h5 class="modal-title">导入未分类模板</h5>
                 </div>
             </div>
-            <div class="modal-body">
+            <div class="modal-body modal-height-500 scroll-y">
                 <table class="table table-bordered">
                     <tr><th>选择</th><th>模板名称</th><th>创建人</th></tr>
                     <tbody id="no-folder-list">
                     </tbody>
                 </table>
-                <div>
-                    <div class="alert alert-info p-1 mt-2">仅可导入本人创建的模板</div>
-                </div>
+            </div>
+            <div class="ml-3 mr-3">
+                <div class="alert alert-info p-1 mt-2">仅可导入本人创建的模板</div>
             </div>
             <div class="modal-footer">
                 <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">关闭</button>