Browse Source

fix: 修复复制时的多行文本的<br>标签解析问题

master
菜猫子neko 4 years ago
parent
commit
d35b51c320
  1. 39
      src/controllers/selection.js

39
src/controllers/selection.js

@ -100,6 +100,8 @@ const selection = {
if (!clipboardData) { // for chrome if (!clipboardData) { // for chrome
clipboardData = e.originalEvent.clipboardData; clipboardData = e.originalEvent.clipboardData;
} }
console.log('clipboardData', clipboardData);
Store.luckysheet_selection_range = []; Store.luckysheet_selection_range = [];
//copy范围 //copy范围
@ -439,16 +441,33 @@ const selection = {
if(c_value == null){ if(c_value == null){
c_value = getcellvalue(r, c, d); c_value = getcellvalue(r, c, d);
} }
if(c_value == null && d[r][c] && d[r][c].ct && d[r][c].ct.t == 'inlineStr') { if (c_value == null &&d[r][c] && d[r][c].ct && d[r][c].ct.t == 'inlineStr') {
c_value = d[r][c].ct.s.map(val=>{ c_value = d[r][c].ct.s
const font = $('<font></font>') .map((val) => {
val.fs && font.css('font-size',val.fs) const brDom = $('<br style="mso-data-placement:same-cell;">');
val.bl && font.css('font-weight',val.border) const splitValue = val.v.split('\r\n');
val.it && font.css('font-style',val.italic) return splitValue
val.cl==1 && font.css('text-decoration','underline') .map((item) => {
font.text(val.v) if (!item) {
return font[0].outerHTML return '';
}).join(''); }
const font = $('<font></font>');
val.fs && font.css('font-size', `${val.fs}pt`); // 字号
val.bl && font.css('font-weight', 'bold'); // 加粗
val.it && font.css('font-style', 'italic'); // 斜体
val.un && font.css('text-decoration', 'underline'); // 下划线
val.fc && font.css('color', val.fc); // 字体颜色
if (val.cl) {
// 判断删除线
font.append(`<s>${item}</s>`);
} else {
font.text(item);
}
return font[0].outerHTML;
})
.join(brDom[0].outerHTML);
})
.join('');
} }
if(c_value == null){ if(c_value == null){

Loading…
Cancel
Save