提交 4ed2d6b1 authored 作者: ch's avatar ch

111

上级 522ae882
...@@ -9,7 +9,7 @@ function findLinkEntities(contentBlock, callback, contentState) { ...@@ -9,7 +9,7 @@ function findLinkEntities(contentBlock, callback, contentState) {
const entityKey = character.getEntity(); const entityKey = character.getEntity();
return entityKey !== null && contentState.getEntity(entityKey).getType() === 'LINK'; return entityKey !== null && contentState.getEntity(entityKey).getType() === 'LINK';
}, },
function() { function () {
console.log(arguments); console.log(arguments);
callback(...arguments); callback(...arguments);
}, },
...@@ -121,14 +121,16 @@ export function preHandle(values) { ...@@ -121,14 +121,16 @@ export function preHandle(values) {
values[key][k][xxx[i]] = values[key][j][i]; values[key][k][xxx[i]] = values[key][j][i];
} }
} }
} delete values[key][k][j];
if (childObj[j] != null) { } else {
if (childObj[j] instanceof moment) { if (childObj[j] != null) {
values[key][k][j] = values[key][k][j].valueOf(); if (childObj[j] instanceof moment) {
} else if (childObj[j] instanceof Date) { values[key][k][j] = values[key][k][j].valueOf();
values[key][k][j] = values[key][k][j].valueOf(); } else if (childObj[j] instanceof Date) {
} else if (childObj[j] instanceof Boolean) { values[key][k][j] = values[key][k][j].valueOf();
values[key][k][j] = values[key][k][j] ? 0 : 1; } else if (childObj[j] instanceof Boolean) {
values[key][k][j] = values[key][k][j] ? 0 : 1;
}
} }
} }
} }
...@@ -145,46 +147,46 @@ export function preHandle(values) { ...@@ -145,46 +147,46 @@ export function preHandle(values) {
* 深拷贝函数 一站式使用 * 深拷贝函数 一站式使用
* */ * */
export function deepCopy(obj, parent = null) { export function deepCopy(obj, parent = null) {
if (React.isValidElement(obj)) { if (React.isValidElement(obj)) {
return React.cloneElement(obj); return React.cloneElement(obj);
} }
if (['boolean', 'string', 'number'].indexOf(typeof obj) > -1 || !obj) { if (['boolean', 'string', 'number'].indexOf(typeof obj) > -1 || !obj) {
return obj; return obj;
} }
let result; let result;
if (obj.constructor === Array) { if (obj.constructor === Array) {
result = []; result = [];
} else { } else {
result = {}; result = {};
} }
let keys = Object.keys(obj), let keys = Object.keys(obj),
key = null, key = null,
temp = null, temp = null,
_parent = parent; _parent = parent;
// 该字段有父级则需要追溯该字段的父级 // 该字段有父级则需要追溯该字段的父级
while (_parent) { while (_parent) {
// 如果该字段引用了它的父级则为循环引用 // 如果该字段引用了它的父级则为循环引用
if (_parent.originalParent === obj) { if (_parent.originalParent === obj) {
// 循环引用直接返回同级的新对象 // 循环引用直接返回同级的新对象
return _parent.currentParent; return _parent.currentParent;
} }
_parent = _parent.parent; _parent = _parent.parent;
} }
for (let i = 0; i < keys.length; i++) { for (let i = 0; i < keys.length; i++) {
key = keys[i]; key = keys[i];
temp = obj[key]; temp = obj[key];
if(temp && moment.isMoment(temp)){ if (temp && moment.isMoment(temp)) {
result[key] = temp.clone(); result[key] = temp.clone();
}else if (temp && typeof temp === 'object') { // 如果字段的值也是一个对象 } else if (temp && typeof temp === 'object') { // 如果字段的值也是一个对象
// 递归执行深拷贝 将同级的待拷贝对象与新对象传递给 parent 方便追溯循环引用 // 递归执行深拷贝 将同级的待拷贝对象与新对象传递给 parent 方便追溯循环引用
result[key] = deepCopy(temp, { result[key] = deepCopy(temp, {
originalParent: obj, originalParent: obj,
currentParent: result, currentParent: result,
parent: parent, parent: parent,
}); });
} else { } else {
result[key] = temp; result[key] = temp;
} }
} }
return result; return result;
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论