|
|
@@ -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;
|
|
|
|