const sjsSettingObj = (function () { const FxTreeStyle = { jz: 'jianzhu', }; const setJzFxTreeStyle = function (setting) { setting.selectedBackColor = '#fffacd'; setting.tree = { getFont: function (sheet, data, row, col, defaultFont) { if (sheet.zh_tree) { const levelField = sheet.zh_tree.setting.level; return data[levelField] === 1 ? 'bold ' + defaultFont : defaultFont; } else { return defaultFont; } }, getColor: function (sheet, data, row, col, defaultColor) { if (sheet.zh_tree) { const levelField = sheet.zh_tree.setting.level; if (data[levelField] === 2) { return '#C4CAFB'; } else if ((!data.b_code || data.b_code === '') && data[levelField] > 2) { return '#DFE8F9'; } else { return defaultColor; } } else { return defaultColor; } } } }; const setContractFxTreeStyle = function (setting) { setting.selectedBackColor = '#fffacd'; setting.tree = { getFont: function (sheet, data, row, col, defaultFont) { if (sheet.zh_tree) { const levelField = sheet.zh_tree.setting.level; return data[levelField] === 1 ? 'bold ' + defaultFont : defaultFont; } else { return defaultFont; } }, getColor: function (sheet, data, row, col, defaultColor) { if (sheet.zh_tree) { const levelField = sheet.zh_tree.setting.level; if (data[levelField] === 2) { return '#C4CAFB'; } else if (!data.c_code && data[levelField] > 2) { return '#DFE8F9'; } else { return defaultColor; } } else { return defaultColor; } } } }; const setFxTreeStyle = function (setting, tag) { switch (tag) { case FxTreeStyle.jz: setJzFxTreeStyle(setting); break; case FxTreeStyle.contract: setContractFxTreeStyle(setting); break; } }; const setGridSelectStyle = function (setting) { setting.selectedBackColor = '#fffacd'; }; const setTpThousandthFormat = function (setting, fields = []) { for (const col of setting.cols) { if (col.field === 'total_price' || col.field.indexOf('tp') >= 0 || fields.indexOf(col.field) >= 0) col.formatter = '#,##0.######'; } }; const setThousandthFormat = function (setting, fields) { for (const f of fields) { const col = setting.cols.find(function (x) { return x.field === f }); if (col) col.formatter = '#,##0.######'; } }; const setTpColsThousandthFormat = function (cols, fields = []) { for (const col of cols) { if (col.field === 'total_price' || col.field.indexOf('tp') >= 0 || fields.indexOf(col.field) >= 0) col.formatter = '#,##0.######'; } }; const setPropValue = function (setting, fields, prop, value) { for (const f of fields) { const col = setting.cols.find(function (x) { return x.field === f }); if (col) col[prop] = value; } }; const setRelaCols = function(cols, rela, fun) { for (const r of rela) { const col = _.find(cols, {field: r.field}); if (!col) continue; fun(col, r); } }; const set3FCols = function (cols, rela) { setRelaCols(cols, rela, function(col, r) { col.getValue = r.getValue; col.cellType = 'imageBtn'; col.normalImg = '#rela-file-icon'; col.indent = 12; col.imgAlign = 2; col.showImage = function (data) { return data && data[r.url_field]; } }); }; const setQcCols = function (cols, rela){ setRelaCols(cols, rela, function(col, r) { col.readOnly = true; col.cellType = 'activeImageBtn'; col.normalImg = '#ellipsis-icon'; col.indent = 5; col.showImage = r.showImage; }); }; const setOrgPriceCol = function (cols, rela) { setRelaCols(cols, rela, function(col, r) { col.getValue = function (data) { return data.contract_pc_tp || data.qc_pc_tp || data.pc_tp ? data.org_price : null; }; }); }; const setNodeTypeCol = function (cols, rela) { setRelaCols(cols, rela, function(col, r) { col.comboItems = nodeType; col.cellType = 'specCombo'; col.comboEdit = function (sheet, data) { if (!data) return false; const tree = sheet.zh_tree; if (!tree) return false; const parent = tree.getParent(data); if (!parent) return false; return true; // const topParent = tree.getTopParent(data); // return [1, 5].indexOf(topParent.node_type) >= 0; }; }); }; const setIsTpCol = function(cols, rela) { setRelaCols(cols, rela, function(col, r) { col.headerCellType = 'tip'; col.getHeaderTip = function() { return '可用单位:总额、元、台、个、处、月 、棵、套、组、辆、项、座、根、块、系统'; }; }); }; return { setFxTreeStyle, FxTreeStyle, setGridSelectStyle, setTpThousandthFormat, setThousandthFormat, setTpColsThousandthFormat, setPropValue, set3FCols, setQcCols, setOrgPriceCol, setNodeTypeCol, setIsTpCol, }; })();