681 lines
22 KiB
JavaScript
681 lines
22 KiB
JavaScript
let thisWidget;
|
|
|
|
//当前页面业务
|
|
function initWidgetView(_thisWidget) {
|
|
thisWidget = _thisWidget;
|
|
|
|
//清除所有标号
|
|
$("#btnDelete").click(function () {
|
|
thisWidget.deleteEntity();
|
|
});
|
|
|
|
$("#btnCenter").click(function (e) {
|
|
thisWidget.centerCurrentEntity();
|
|
});
|
|
|
|
$("#btn_plot_savefile").click(function () {
|
|
let data = thisWidget.getGeoJson();
|
|
haoutil.file.downloadFile("标绘item.json", JSON.stringify(data));
|
|
});
|
|
|
|
plotEdit.initEvent();
|
|
thisWidget.startEditing();
|
|
}
|
|
|
|
//属性编辑相关
|
|
var plotEdit = {
|
|
hasEditSylte: true,
|
|
initEvent: function () {
|
|
let that = this;
|
|
if (!this.hasEditSylte) {
|
|
$("#attr_style_view").hide();
|
|
}
|
|
|
|
//改变高度 - 高程全部设置为
|
|
$("#plot_latlngs_allheight").bind("input propertychange", function () {
|
|
$("#plot_latlngs_addheight").val("");
|
|
|
|
let thisval = Number($(this).val()); //高度(米)
|
|
if (isNaN(thisval)) {
|
|
thisval = 1;
|
|
}
|
|
|
|
let latlngs = [];
|
|
$(".plot_latlngs").each(function () {
|
|
if ($(this).attr("data-type") == "height") {
|
|
$(this).val(thisval);
|
|
latlngs.push(thisval);
|
|
} else {
|
|
latlngs.push(Number($(this).val())); //经纬度值
|
|
}
|
|
});
|
|
|
|
let arrPoint = [];
|
|
for (let i = 0; i < latlngs.length; i += 3) {
|
|
arrPoint.push([latlngs[i], latlngs[i + 1], latlngs[i + 2]]);
|
|
}
|
|
thisWidget.updatePoints2map(arrPoint);
|
|
});
|
|
|
|
//改变高度 - 在地表高程偏移
|
|
$("#plot_latlngs_addheight").bind("input propertychange", function () {
|
|
$("#plot_latlngs_allheight").val("");
|
|
let thisval = Number($(this).val()); //高度(米)
|
|
if (isNaN(thisval)) {
|
|
thisval = 1;
|
|
}
|
|
|
|
let latlngs = [];
|
|
$(".plot_latlngs").each(function () {
|
|
if ($(this).attr("data-type") == "height") {
|
|
let oldval = Number($(this).attr("oldvalue"));
|
|
$(this).val(oldval + thisval);
|
|
latlngs.push(oldval + thisval);
|
|
} else {
|
|
latlngs.push(Number($(this).val())); //经纬度值
|
|
}
|
|
});
|
|
|
|
let arrPoint = [];
|
|
for (let i = 0; i < latlngs.length; i += 3) {
|
|
arrPoint.push([latlngs[i], latlngs[i + 1], latlngs[i + 2]]);
|
|
}
|
|
thisWidget.updatePoints2map(arrPoint);
|
|
});
|
|
},
|
|
_last_attr: null,
|
|
//选中标号,激活属性面板
|
|
startEditing: function (attr, latlngs) {
|
|
if (!thisWidget.attrConfig) {
|
|
return;
|
|
}
|
|
if (attr && attr.attr) {
|
|
attr = {
|
|
...attr,
|
|
...attr.attr,
|
|
};
|
|
}
|
|
this._last_attr = attr;
|
|
let config = thisWidget.attrConfig[attr.edittype || attr.type] || {};
|
|
config.style = config.style || {};
|
|
|
|
if (latlngs) {
|
|
this._hasHeight = true;
|
|
|
|
if (attr.style.clampToGround) {
|
|
this._hasHeight = false;
|
|
} else if (attr.type == "rectangle" || attr.type == "corridor") {
|
|
this._hasHeight = false;
|
|
}
|
|
|
|
this.updateLatlngsHtml(latlngs);
|
|
}
|
|
|
|
let arrFun = [];
|
|
let parname, inHtml;
|
|
//==============style==================
|
|
if (this.hasEditSylte) {
|
|
parname = "plot_attr_style_";
|
|
inHtml = `<tr><td class="nametd">所在图层:</td><td>${thisWidget.getLayerName()}</td></tr>
|
|
<tr><td class="nametd">标号类型:</td><td>${attr.name || config.name}</td></tr>`;
|
|
|
|
for (let idx = 0; idx < config.style.length; idx++) {
|
|
let edit = config.style[idx];
|
|
if (edit.type == "hidden") {
|
|
continue;
|
|
}
|
|
let attrName = edit.name;
|
|
let attrVal = attr.style[attrName] ?? edit.defval;
|
|
attr.style[attrName] = attrVal;
|
|
|
|
//贴地对象
|
|
if (attr.style["clampToGround"]) {
|
|
if (
|
|
attrName == "fill" || //不能取消填充。
|
|
attrName == "height" || //没有高度
|
|
attrName == "distanceDisplayCondition" ||
|
|
attrName == "distanceDisplayCondition_far" ||
|
|
attrName == "distanceDisplayCondition_near" ||
|
|
attrName == "outline" ||
|
|
attrName == "outlineWidth" ||
|
|
attrName == "outlineColor" ||
|
|
attrName == "outlineOpacity" ||
|
|
attrName == "hasShadows" ||
|
|
attrName == "diffHeight"
|
|
) {
|
|
continue;
|
|
}
|
|
} else {
|
|
if (attrName == "zIndex") {
|
|
continue;
|
|
}
|
|
}
|
|
|
|
//三维立体对象
|
|
if (attr.style["diffHeight"] > 0) {
|
|
if (attrName == "clampToGround" || attrName == "outlineWidth") {
|
|
continue;
|
|
}
|
|
}
|
|
let input = this.getAttrInput(parname, attrName, attrVal, edit);
|
|
if (input.fun) {
|
|
arrFun.push({ parname: parname, name: attrName, value: attrVal, edit: edit, fun: input.fun });
|
|
}
|
|
|
|
inHtml += '<tr id="' + parname + "tr_" + attrName + '" > <td class="nametd">' + edit.label + "</td> <td>" + input.html + "</td> </tr>";
|
|
}
|
|
$("#talbe_style").html(inHtml);
|
|
|
|
//注记属性
|
|
if (attr.style.label) {
|
|
let configLbl = thisWidget.attrConfig["label"] || {};
|
|
let defStyleLbl = thisWidget.getDefStyle("label"); //赋值默认样式
|
|
|
|
parname = "plot_attr_stylelabel_";
|
|
inHtml = "";
|
|
for (let idx = 0; idx < configLbl.style.length; idx++) {
|
|
let edit = configLbl.style[idx];
|
|
if (edit.type == "hidden") {
|
|
continue;
|
|
}
|
|
|
|
let attrName = edit.name;
|
|
let attrVal = attr.style.label[attrName] ?? defStyleLbl[attrName];
|
|
attr.style.label[attrName] = attrVal;
|
|
|
|
let input = this.getAttrInput(parname, attrName, attrVal, edit);
|
|
if (input.fun) {
|
|
arrFun.push({ parname: parname, name: attrName, value: attrVal, edit: edit, fun: input.fun });
|
|
}
|
|
|
|
inHtml += '<tr id="' + parname + "tr_" + attrName + '" > <td class="nametd">' + edit.label + "</td> <td>" + input.html + "</td> </tr>";
|
|
}
|
|
$("#talbe_stylelabel").html(inHtml);
|
|
$("#attr_stylelabel_view").show();
|
|
} else {
|
|
$("#attr_stylelabel_view").hide();
|
|
}
|
|
}
|
|
//==============attr==================
|
|
parname = "plot_attr_attr_";
|
|
inHtml = "";
|
|
attr.attr = attr.attr || {};
|
|
|
|
let attrcfg = thisWidget.getAttrList();
|
|
let tempKyes = {};
|
|
for (let idx = 0; idx < attrcfg.length; idx++) {
|
|
let edit = attrcfg[idx];
|
|
tempKyes[edit.name] = true;
|
|
}
|
|
for (var key in attr.attr) {
|
|
let attrVal = attr.attr[key];
|
|
if (tempKyes[key]) {
|
|
continue;
|
|
}
|
|
|
|
if (haoutil.isutil.isString(attrVal)) {
|
|
attrcfg.push({ name: key, label: key, type: "text", defval: "" });
|
|
} else if (haoutil.isutil.isNumber(attrVal)) {
|
|
attrcfg.push({ name: key, label: key, type: "number", defval: 0.0 });
|
|
} else if (typeof attrVal == "boolean") {
|
|
attrcfg.push({ name: key, label: key, type: "radio", defval: false });
|
|
}
|
|
}
|
|
|
|
for (let idx = 0; idx < attrcfg.length; idx++) {
|
|
let edit = attrcfg[idx];
|
|
if (edit.type == "hidden") {
|
|
continue;
|
|
}
|
|
|
|
let attrName = edit.name;
|
|
let attrVal = attr.attr[attrName] ?? edit.defval ?? "";
|
|
|
|
let input = this.getAttrInput(parname, attrName, attrVal, edit);
|
|
if (input.fun) {
|
|
arrFun.push({ parname: parname, name: attrName, value: attrVal, edit: edit, fun: input.fun });
|
|
}
|
|
|
|
inHtml += '<tr id="' + parname + "tr_" + attrName + '" > <td class="nametd">' + edit.label + "</td> <td>" + input.html + "</td> </tr>";
|
|
}
|
|
|
|
$("#talbe_attr").html(inHtml);
|
|
|
|
//执行各方法
|
|
for (let idx = 0; idx < arrFun.length; idx++) {
|
|
let item = arrFun[idx];
|
|
item.fun(item.parname, item.name, item.value, item.edit);
|
|
}
|
|
|
|
window.tab2attr(); //切换面板
|
|
},
|
|
updateLatlngsHtml: function (latlngs) {
|
|
$("#plot_latlngs_addheight").val("");
|
|
$("#plot_latlngs_allheight").val("");
|
|
$("#view_updateheight").hide();
|
|
|
|
//显示坐标信息
|
|
let inHtml = "";
|
|
if (!latlngs || latlngs.length == 0) {
|
|
//
|
|
} else if (latlngs.length == 1) {
|
|
let latlng = latlngs[0];
|
|
let jd = latlng[0];
|
|
let wd = latlng[1];
|
|
let height = latlng.length == 3 ? latlng[2] : 0;
|
|
|
|
inHtml +=
|
|
' <div class="mp_attr" style=" margin-top: 10px;"><table>' +
|
|
' <tr> <td class="nametd">经度:</td> <td><input type="number" class="mp_input plot_latlngs" data-type="jd" step="0.000001" value="' +
|
|
jd +
|
|
'"></td></tr>' +
|
|
'<tr> <td class="nametd">纬度:</td> <td><input type="number" class="mp_input plot_latlngs" data-type="wd" step="0.000001" value="' +
|
|
wd +
|
|
'"></td></tr>';
|
|
if (this._hasHeight) {
|
|
inHtml +=
|
|
'<tr><td class="nametd">高程:</td> <td><input type="number" class="mp_input plot_latlngs" data-type="height" step="0.1" value="' +
|
|
height +
|
|
'" oldvalue="' +
|
|
height +
|
|
'"></td></tr>';
|
|
}
|
|
inHtml += " </table> </div>";
|
|
} else {
|
|
if (this._hasHeight) {
|
|
$("#view_updateheight").show();
|
|
}
|
|
|
|
let delhtml = "";
|
|
|
|
if (latlngs.length > thisWidget.getMinPointNum()) {
|
|
delhtml = '<i class="fa fa-trash-o latlng-del" title="删除点" ></i>';
|
|
}
|
|
|
|
for (let idx = 0; idx < latlngs.length; idx++) {
|
|
let latlng = latlngs[idx];
|
|
|
|
let jd = latlng[0];
|
|
let wd = latlng[1];
|
|
let height = latlng.length == 3 ? latlng[2] : 0;
|
|
|
|
let addthml = "";
|
|
if (latlngs.length < thisWidget.getMaxPointNum()) {
|
|
addthml = '<i class="fa fa-plus-square-o latlng-install" title="插入点" data-index="' + idx + '" ></i> ';
|
|
}
|
|
|
|
//
|
|
inHtml +=
|
|
'<div><div class="open"><i class="tree_icon">-</i>第' +
|
|
(idx + 1) +
|
|
'点 <label style="width:100px;"> </label> ' +
|
|
addthml +
|
|
delhtml +
|
|
' </div><div class="mp_attr"><table>' +
|
|
'<tr> <td class="nametd">经度:</td> <td><input type="number" class="mp_input plot_latlngs" data-type="jd" step="0.000001" data-index="' +
|
|
idx +
|
|
'" value="' +
|
|
jd +
|
|
'"></td> </tr> ' +
|
|
'<tr> <td class="nametd">纬度:</td> <td><input type="number" class="mp_input plot_latlngs" data-type="wd" step="0.000001" data-index="' +
|
|
idx +
|
|
'" value="' +
|
|
wd +
|
|
'"></td> </tr> ';
|
|
if (this._hasHeight) {
|
|
inHtml +=
|
|
'<tr> <td class="nametd">高程:</td> <td><input type="number" step="0.1" class="mp_input plot_latlngs" data-type="height" data-index="' +
|
|
idx +
|
|
'" value="' +
|
|
height +
|
|
'" oldvalue="' +
|
|
height +
|
|
'"></td> </tr> ';
|
|
}
|
|
inHtml += " </table> </div> </div>";
|
|
}
|
|
}
|
|
$("#view_latlngs").html(inHtml);
|
|
$("#view_latlngs .open").click(window.changeOpenShowHide);
|
|
|
|
let that = this;
|
|
$("#view_latlngs .latlng-del").click(function () {
|
|
$(this).parent().parent().remove();
|
|
|
|
let latlngs = [];
|
|
let withHeight = false;
|
|
$(".plot_latlngs").each(function () {
|
|
latlngs.push(Number($(this).val()));
|
|
if ($(this).attr("data-type") === "height") {
|
|
withHeight = true;
|
|
}
|
|
});
|
|
|
|
//重新修改界面
|
|
let arr = [];
|
|
if (withHeight) {
|
|
for (let i = 0; i < latlngs.length; i += 3) {
|
|
arr.push([latlngs[i], latlngs[i + 1], latlngs[i + 2]]);
|
|
}
|
|
} else {
|
|
for (let i = 0; i < latlngs.length; i += 2) {
|
|
arr.push([latlngs[i], latlngs[i + 1]]);
|
|
}
|
|
}
|
|
that.updateLatlngsHtml(arr);
|
|
thisWidget.updatePoints2map(arr);
|
|
});
|
|
$("#view_latlngs .latlng-install").click(function () {
|
|
let idx = Number($(this).attr("data-index"));
|
|
|
|
let latlngs = [];
|
|
let withHeight = false;
|
|
$(".plot_latlngs").each(function () {
|
|
latlngs.push(Number($(this).val() || 0));
|
|
if ($(this).attr("data-type") === "height") {
|
|
withHeight = true;
|
|
}
|
|
});
|
|
|
|
//重新修改界面
|
|
let arr = [];
|
|
if (withHeight) {
|
|
for (let i = 0; i < latlngs.length; i += 3) {
|
|
arr.push([latlngs[i], latlngs[i + 1], latlngs[i + 2]]);
|
|
}
|
|
} else {
|
|
for (let i = 0; i < latlngs.length; i += 2) {
|
|
arr.push([latlngs[i], latlngs[i + 1]]);
|
|
}
|
|
}
|
|
|
|
let pt1 = arr[idx];
|
|
let pt2 = idx == arr.length - 1 ? arr[0] : arr[idx + 1];
|
|
let jd = Number(((pt1[0] + pt2[0]) / 2).toFixed(6));
|
|
let wd = Number(((pt1[1] + pt2[1]) / 2).toFixed(6));
|
|
|
|
if (withHeight) {
|
|
let gd = Number(((pt1[2] + pt2[2]) / 2).toFixed(1));
|
|
arr.splice(idx + 1, 0, [jd, wd, gd]);
|
|
} else {
|
|
arr.splice(idx + 1, 0, [jd, wd]);
|
|
}
|
|
|
|
that.updateLatlngsHtml(arr);
|
|
thisWidget.updatePoints2map(arr);
|
|
});
|
|
|
|
$(".plot_latlngs").bind("input propertychange", function () {
|
|
let latlngs = [];
|
|
let withHeight = false;
|
|
$(".plot_latlngs").each(function () {
|
|
latlngs.push(Number($(this).val()));
|
|
if ($(this).attr("data-type") === "height") {
|
|
withHeight = true;
|
|
}
|
|
});
|
|
|
|
let arrPoint = [];
|
|
if (withHeight) {
|
|
for (let i = 0; i < latlngs.length; i += 3) {
|
|
arrPoint.push([latlngs[i], latlngs[i + 1], latlngs[i + 2]]);
|
|
}
|
|
} else {
|
|
for (let i = 0; i < latlngs.length; i += 2) {
|
|
arrPoint.push([latlngs[i], latlngs[i + 1]]);
|
|
}
|
|
}
|
|
thisWidget.updatePoints2map(arrPoint);
|
|
});
|
|
},
|
|
// //单击地图空白,释放属性面板
|
|
// stopEditing: function () {
|
|
// $("#talbe_style").html('');
|
|
// $("#talbe_attr").html('');
|
|
// this._last_attr = null;
|
|
// },
|
|
//获取各属性的编辑html和change方法
|
|
getAttrInput: function (parname, attrName, attrVal, edit) {
|
|
if (attrVal == null || attrVal == undefined) {
|
|
attrVal = "";
|
|
}
|
|
|
|
let that = this;
|
|
|
|
let inHtml = "";
|
|
let fun = null;
|
|
switch (edit.type) {
|
|
default:
|
|
case "label":
|
|
inHtml = attrVal;
|
|
break;
|
|
case "text":
|
|
inHtml = '<input id="' + parname + attrName + '" type="text" value="' + attrVal + '" class="mp_input" />';
|
|
|
|
fun = function (parname, attrName, attrVal, edit) {
|
|
$("#" + parname + attrName).on("input propertychange", function (e) {
|
|
let attrVal = $(this).val();
|
|
that.updateAttr(parname, attrName, attrVal);
|
|
});
|
|
};
|
|
break;
|
|
case "textarea":
|
|
attrVal = attrVal.replace(new RegExp("<br />", "gm"), "\n");
|
|
inHtml = '<textarea id="' + parname + attrName + '" class="mp_input" style="height:50px;resize: none;" >' + attrVal + "</textarea>";
|
|
|
|
fun = function (parname, attrName, attrVal, edit) {
|
|
$("#" + parname + attrName).on("input propertychange", function (e) {
|
|
let attrVal = $(this).val();
|
|
if (attrVal.length == 0) {
|
|
attrVal = "";
|
|
}
|
|
attrVal = attrVal.replace(/\n/g, "<br />");
|
|
|
|
that.updateAttr(parname, attrName, attrVal);
|
|
});
|
|
};
|
|
break;
|
|
case "number":
|
|
inHtml = '<input id="' + parname + attrName + '" type="number" value="' + (attrVal || 0) + '" class="mp_input"/>';
|
|
fun = function (parname, attrName, attrVal, edit) {
|
|
$("#" + parname + attrName).on("input propertychange", function (e) {
|
|
let attrVal = Number($(this).val());
|
|
|
|
that.updateAttr(parname, attrName, attrVal);
|
|
});
|
|
};
|
|
break;
|
|
|
|
case "combobox":
|
|
inHtml = '<select id="' + parname + attrName + '" class="mp_select" data-value="' + attrVal + '" >';
|
|
for (let jj = 0; jj < edit.data.length; jj++) {
|
|
let temp = edit.data[jj];
|
|
inHtml += '<option value="' + temp.value + '">' + temp.text + "</option>";
|
|
}
|
|
inHtml += "</select>";
|
|
|
|
fun = function (parname, attrName, attrVal, edit) {
|
|
$("#" + parname + attrName).select(); //绑定样式
|
|
$("#" + parname + attrName).change(function () {
|
|
let attrVal = $(this).attr("data-value");
|
|
|
|
that.updateAttr(parname, attrName, attrVal);
|
|
let thisSel;
|
|
for (let jj = 0; jj < edit.data.length; jj++) {
|
|
let temp = edit.data[jj];
|
|
if (temp.impact == null) {
|
|
continue;
|
|
}
|
|
if (temp.value === attrVal) {
|
|
thisSel = temp;
|
|
continue;
|
|
}
|
|
that.changeViewByAttr(parname, temp.impact, false);
|
|
}
|
|
if (thisSel) {
|
|
that.changeViewByAttr(parname, thisSel.impact, true);
|
|
}
|
|
});
|
|
|
|
let thisSel;
|
|
for (let jj = 0; jj < edit.data.length; jj++) {
|
|
let temp = edit.data[jj];
|
|
if (temp.impact == null) {
|
|
continue;
|
|
}
|
|
if (temp.value === attrVal) {
|
|
thisSel = temp;
|
|
continue;
|
|
}
|
|
that.changeViewByAttr(parname, temp.impact, false);
|
|
}
|
|
if (thisSel) {
|
|
that.changeViewByAttr(parname, thisSel.impact, true);
|
|
}
|
|
};
|
|
break;
|
|
|
|
case "radio":
|
|
{
|
|
let _name_key = parname + attrName;
|
|
inHtml = `<div class="radio radio-info radio-inline">
|
|
<input type="radio" id="${_name_key}_1" value="1" name="${_name_key}" ${attrVal ? 'checked="checked"' : ""}>
|
|
<label for="${_name_key}_1"> 是</label>
|
|
</div>
|
|
<div class="radio radio-info radio-inline">
|
|
<input type="radio" id="${_name_key}_0" value="0" name="${_name_key}" ${attrVal ? "" : 'checked="checked"'}">
|
|
<label for="${_name_key}_0"> 否 </label>
|
|
</div>`;
|
|
|
|
fun = function (parname, attrName, attrVal, edit) {
|
|
$('input:radio[name="' + parname + attrName + '"]').change(function () {
|
|
let attrVal = $(this).val() == "1";
|
|
let isOK = that.updateAttr(parname, attrName, attrVal);
|
|
if (isOK) {
|
|
that.changeViewByAttr(parname, edit.impact, attrVal);
|
|
}
|
|
});
|
|
that.changeViewByAttr(parname, edit.impact, attrVal);
|
|
};
|
|
}
|
|
break;
|
|
case "color":
|
|
inHtml = '<input id="' + parname + attrName + '" class="mp_input" style="width: 100%;" value="' + attrVal + '" />';
|
|
|
|
fun = function (parname, attrName, attrVal, edit) {
|
|
$("#" + parname + attrName).minicolors({
|
|
position: "bottom right",
|
|
control: "saturation",
|
|
change: function (hex, opacity) {
|
|
that.updateAttr(parname, attrName, hex);
|
|
},
|
|
});
|
|
};
|
|
break;
|
|
case "slider":
|
|
inHtml = '<input id="' + parname + attrName + '" type="text" value="' + attrVal * 100 + '" />';
|
|
fun = function (parname, attrName, attrVal, edit) {
|
|
let _width = $(".mp_tab_card").width() * 0.7 - 30;
|
|
$("#" + parname + attrName).progress(_width); //绑定样式
|
|
$("#" + parname + attrName).change(function () {
|
|
let attrVal = Number($(this).val()) / 100;
|
|
|
|
that.updateAttr(parname, attrName, attrVal);
|
|
});
|
|
};
|
|
break;
|
|
case "window":
|
|
inHtml = '<input id="' + parname + attrName + '" type="text" value="' + attrVal + '" readonly class="mp_input" />';
|
|
|
|
fun = function (parname, attrName, attrVal, edit) {
|
|
$("#" + parname + attrName).on("click", function (e) {
|
|
thisWidget.showEditAttrWindow({
|
|
data: that._last_attr,
|
|
parname: parname,
|
|
attrName: attrName,
|
|
attrVal: attrVal,
|
|
});
|
|
});
|
|
|
|
$("#" + parname + attrName).on("input propertychange", function (e) {
|
|
let attrVal = $(this).val();
|
|
that.updateAttr(parname, attrName, attrVal);
|
|
});
|
|
};
|
|
break;
|
|
}
|
|
return { html: inHtml, fun: fun };
|
|
},
|
|
//联动属性控制
|
|
changeViewByAttr: function (parname, arrimpact, show) {
|
|
if (arrimpact && arrimpact.length > 0) {
|
|
for (let jj = 0; jj < arrimpact.length; jj++) {
|
|
let attrName = arrimpact[jj];
|
|
if (show) {
|
|
$("#" + parname + "tr_" + attrName).show();
|
|
} else {
|
|
$("#" + parname + "tr_" + attrName).hide();
|
|
}
|
|
}
|
|
}
|
|
},
|
|
//属性面板值修改后触发此方法
|
|
updateAttr: function (parname, attrName, attrVal) {
|
|
let newAttr = {};
|
|
switch (parname) {
|
|
default:
|
|
break;
|
|
case "plot_attr_style_": {
|
|
newAttr.style = {};
|
|
newAttr.style[attrName] = attrVal;
|
|
|
|
this._last_attr.style[attrName] = attrVal;
|
|
|
|
let type = this._last_attr.type;
|
|
if (
|
|
(attrName == "fill" || attrName == "outline") &&
|
|
attrVal === false &&
|
|
(type == "plane" ||
|
|
type == "circle" ||
|
|
type == "ellipse" ||
|
|
type == "cylinder" ||
|
|
type == "ellipsoid" ||
|
|
type == "box" ||
|
|
type == "polylineVolume" ||
|
|
type == "wall" ||
|
|
type == "corridor" ||
|
|
type == "rectangle" ||
|
|
type == "polygon"
|
|
)
|
|
) {
|
|
if (!this._last_attr.style["fill"] && !this._last_attr.style["outline"]) {
|
|
this._last_attr.style[attrName] = true;
|
|
$("input[name='" + parname + attrName + "']:eq(0)").attr("checked", "checked");
|
|
$("input[name='" + parname + attrName + "']:eq(0)").click();
|
|
haoutil.msg("填充和边框不能同时为否,需要至少开启一个!");
|
|
return false;
|
|
}
|
|
}
|
|
|
|
break;
|
|
}
|
|
case "plot_attr_stylelabel_":
|
|
this._last_attr.style.label = this._last_attr.style.label || {};
|
|
this._last_attr.style.label[attrName] = attrVal;
|
|
|
|
newAttr.style = { label: {} };
|
|
newAttr.style.label[attrName] = attrVal;
|
|
break;
|
|
case "plot_attr_attr_":
|
|
this._last_attr.attr[attrName] = attrVal;
|
|
//this.startEditing(this._last_attr);
|
|
|
|
newAttr.attr = {};
|
|
newAttr.attr[attrName] = attrVal;
|
|
break;
|
|
}
|
|
thisWidget.updateAttr2map(newAttr);
|
|
return true;
|
|
},
|
|
};
|