@@ -82175,6 +82175,16 @@ var OpenFileView = external_L_default.a.Control.extend({
8217582175 return this._initOpenFileView();
8217682176 },
8217782177
82178+ /**
82179+ * @function L.supermap.widgets.openfile.prototype.onAdd
82180+ * @description 改变微件样式
82181+ * @param {string} styleName - css样式名
82182+ * @param {string} value - css样式值
82183+ */
82184+ setViewStyle(styleName, value) {
82185+ this.rootContainer.style[styleName] = value;
82186+ },
82187+
8217882188 /**
8217982189 * @function L.supermap.widgets.openfile.prototype._initOpenFileView
8218082190 * @description 创建打开本地文件数据微件
@@ -82200,39 +82210,38 @@ var OpenFileView = external_L_default.a.Control.extend({
8220082210 this.fileInput = external_L_default.a.DomUtil.create('input', 'openFile_input', this.fileSelect);
8220182211 this.fileInput.id = "input_file";
8220282212 this.fileInput.type = "file";
82203- this.fileInput.accept = ".json,.geojson,.csv,.xlsx,. xls,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"
82213+ this.fileInput.accept = ".json,.geojson,.csv,.xls,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"
8220482214
8220582215 this.fileInput.onchange = (fileEventObject) => {
8220682216 this.messageBox.closeView();
8220782217 this.viewModel.readFile(fileEventObject);
8220882218 };
82209-
8221082219 //增加提示框:
8221182220 this.messageBox = new MessageBox();
8221282221
82213- this.viewModel.on("filesizeexceed", this._showMessageListener.bind(this));
82214- this.viewModel.on("errorfileformat", this._showMessageListener.bind(this));
82215- this.viewModel.on("openfilefail", this._showMessageListener.bind(this));
82216- this.viewModel.on("readdatafail", this._showMessageListener.bind(this));
82222+ //添加监听
82223+ this.viewModel.on("filesizeexceed", (e) => {
82224+ this.messageBox.showView(e.message, e.messageType);
82225+ });
82226+ this.viewModel.on("errorfileformat", (e) => {
82227+ this.messageBox.showView(e.message, e.messageType);
82228+ });
82229+ this.viewModel.on("openfilefail", (e) => {
82230+ this.messageBox.showView(e.message, e.messageType);
82231+ });
82232+ this.viewModel.on("readdatafail", (e) => {
82233+ this.messageBox.showView(e.message, e.messageType);
82234+ });
8221782235 this.viewModel.on("openfilesuccess", (e) => {
8221882236 this.event.fire("openfilesuccess", e);
8221982237 });
8222082238
82239+ this.rootContainer = uploadContent;
8222182240 return uploadContent;
8222282241 },
8222382242
8222482243 on(eventType, callback) {
8222582244 this.event.on(eventType, callback);
82226- },
82227-
82228- /**
82229- * @function L.supermap.widgets.openfile.prototype._showMessageListener
82230- * @description 监听 OpenFileViewModel 事件,显示提示框
82231- * @param {Object} e - 事件对象
82232- * @private
82233- */
82234- _showMessageListener(e) {
82235- this.messageBox.showView(e.message, e.messageType);
8223682245 }
8223782246
8223882247});
@@ -83458,7 +83467,7 @@ var DataFlowViewModel = external_L_default.a.Evented.extend({
8345883467 //若当前数据流服务没变,则不进行重新订阅 todo 或者没点击暂停
8345983468 if (this.urlDataFlow === urlDataFlow) {
8346083469 if (this.dataFlowStatus) {
83461- this.fire("dataFlowServiceSubscribed ");
83470+ this.fire("dataflowfervicefubscribed ");
8346283471 return;
8346383472 }
8346483473 } else {
@@ -83472,31 +83481,32 @@ var DataFlowViewModel = external_L_default.a.Evented.extend({
8347283481 }
8347383482 //创建DataFlowLayer,创建DataFlowLayer订阅iServer dataflow服务并将结果加载到地图上
8347483483 const dataFlowLayer = new DataFlowLayer(urlDataFlow, this.options._defaultLayerOptions);
83475- dataFlowLayer.on('dataupdated', this._defaultDataUpdatedCallBack.bind(this));
83484+ dataFlowLayer.on('subscribesuccessed', (result) => {
83485+ this.fire("subscribesuccessed", {result: result});
83486+ });
83487+ dataFlowLayer.on('dataupdated', (result) => {
83488+ //派发出订阅返回的数据:
83489+ this.fire("dataupdated", {result: result});
83490+ //若数据超出当前视图范围,则移动到数据所在视图范围:
83491+ let layerBounds = result.layer.getBounds(),
83492+ mapBounds = CommontypesConversion_CommontypesConversion.toSuperMapBounds(this.map.getBounds()),
83493+ layerBoundsSuperMap = CommontypesConversion_CommontypesConversion.toSuperMapBounds(layerBounds);
83494+ if (!mapBounds.intersectsBounds(layerBoundsSuperMap)) {
83495+ if (layerBoundsSuperMap.left === layerBoundsSuperMap.right && layerBoundsSuperMap.top === layerBoundsSuperMap.bottom) {
83496+ this.map.setView(layerBounds.getCenter())
83497+ } else {
83498+ this.map.flyToBounds(layerBounds);
83499+ }
83500+ }
83501+ if (this.popupsStatus) {
83502+ this.openPopups();
83503+ }
83504+ });
8347683505 dataFlowLayer.addTo(this.map);
8347783506
8347883507 this.dataFlowLayer = dataFlowLayer;
8347983508 },
8348083509
83481- _defaultDataUpdatedCallBack(result) {
83482- //派发出订阅返回的数据:
83483- this.fire("dataupdated", {result: result});
83484- //若数据超出当前视图范围,则移动到数据所在视图范围:
83485- let layerBounds = result.layer.getBounds(),
83486- mapBounds = CommontypesConversion_CommontypesConversion.toSuperMapBounds(this.map.getBounds()),
83487- layerBoundsSuperMap = CommontypesConversion_CommontypesConversion.toSuperMapBounds(layerBounds);
83488- if (!mapBounds.intersectsBounds(layerBoundsSuperMap)) {
83489- if (layerBoundsSuperMap.left === layerBoundsSuperMap.right && layerBoundsSuperMap.top === layerBoundsSuperMap.bottom) {
83490- this.map.setView(layerBounds.getCenter())
83491- } else {
83492- this.map.flyToBounds(layerBounds);
83493- }
83494- }
83495- if (this.popupsStatus) {
83496- this.openPopups();
83497- }
83498- },
83499-
8350083510 /**
8350183511 * @function L.supermap.widgets.dataFlowViewModel.prototype.cancelSubscribe
8350283512 * @description 取消订阅的数据流
@@ -83517,24 +83527,28 @@ var DataFlowViewModel = external_L_default.a.Evented.extend({
8351783527 */
8351883528 openPopups() {
8351983529 this.popupsStatus = true;
83520- const layers = this.dataFlowLayer.getLayers();
83521- for (let i = 0; i < layers.length; i++) {
83522- for (let j = 0; j < layers[i].getLayers().length; j++) {
83523- layers[i].getLayers()[j].openPopup();
83530+ if (this.dataFlowLayer) {
83531+ const layers = this.dataFlowLayer.getLayers();
83532+ for (let i = 0; i < layers.length; i++) {
83533+ for (let j = 0; j < layers[i].getLayers().length; j++) {
83534+ layers[i].getLayers()[j].openPopup();
83535+ }
8352483536 }
83525-
8352683537 }
83538+
8352783539 },
8352883540 /**
8352983541 * @function L.supermap.widgets.dataFlowViewModel.prototype.closePopups
8353083542 * @description 关闭图层要素 popup
8353183543 */
8353283544 closePopups() {
8353383545 this.popupsStatus = false;
83534- const layers = this.dataFlowLayer.getLayers();
83535- for (let i = 0; i < layers.length; i++) {
83536- for (let j = 0; j < layers[i].getLayers().length; j++) {
83537- layers[i].getLayers()[j].closePopup();
83546+ if (this.dataFlowLayer) {
83547+ const layers = this.dataFlowLayer.getLayers();
83548+ for (let i = 0; i < layers.length; i++) {
83549+ for (let j = 0; j < layers[i].getLayers().length; j++) {
83550+ layers[i].getLayers()[j].closePopup();
83551+ }
8353883552 }
8353983553 }
8354083554 }
@@ -83602,13 +83616,11 @@ var DataFlowView = external_L_default.a.Control.extend({
8360283616 }
8360383617 if (this.options.onEachFeature) {
8360483618 styleOptions.onEachFeature = this.options.onEachFeature;
83605-
8360683619 }
8360783620 }
83608-
8360983621 this.styleOptions = styleOptions;
83610-
8361183622 },
83623+
8361283624 /**
8361383625 * @function L.supermap.widgets.DataFlowView.prototype.onAdd
8361483626 * @description 向底图添加微件
@@ -83619,6 +83631,15 @@ var DataFlowView = external_L_default.a.Control.extend({
8361983631 return this._initView();
8362083632 },
8362183633
83634+ /**
83635+ * @function L.supermap.widgets.DataFlowView.prototype.on
83636+ * @param {string} eventType - 监听的事件类型
83637+ * @param {Function} callback - 监听事件的回调函数
83638+ */
83639+ on(eventType, callback) {
83640+ this.event.on(eventType, callback);
83641+ },
83642+
8362283643 /**
8362383644 * @function L.supermap.widgets.DataFlowView.prototype._initView
8362483645 * @description 创建打开本地文件数据微件
@@ -83641,17 +83662,22 @@ var DataFlowView = external_L_default.a.Control.extend({
8364183662 dataFlowInput.type = "text";
8364283663 dataFlowInput.placeholder = "请输入数据流服务地址如:ws://{serviceRoot}/{dataFlowName}/dataflow/subscribe";
8364383664 dataFlowInput.title = "请输入数据流服务地址如:ws://{serviceRoot}/{dataFlowName}/dataflow/subscribe";
83644- //---输入框值改变,打开清除按钮
83645- dataFlowInput.oninput = this.inputOnchange.bind(this);
83665+
8364683666 this.dataFlowInput = dataFlowInput;
8364783667 dataFlowInputContainer.appendChild(dataFlowInput);
8364883668 //删除输入值按钮:
8364983669 const inputClearBtn = document.createElement("span");
8365083670 inputClearBtn.setAttribute("class", "supermapol-icons-close");
8365183671 inputClearBtn.hidden = true;
83652- //---清除输入值
83653- inputClearBtn.onclick = this.clearInputValue.bind(this);
83654- this.inputClearBtn = inputClearBtn;
83672+ //---清除输入值【清除按钮点击事件】
83673+ inputClearBtn.onclick = (e) => {
83674+ dataFlowInput.value = "";
83675+ e.target.hidden = true;
83676+ };
83677+ //---输入框值改变,打开清除按钮【输入框内容改变事件】
83678+ dataFlowInput.oninput = () => {
83679+ inputClearBtn.hidden = false;
83680+ };
8365583681 dataFlowInputContainer.appendChild(inputClearBtn);
8365683682 dataFlowContainer1.appendChild(dataFlowInputContainer);
8365783683
@@ -83665,14 +83691,24 @@ var DataFlowView = external_L_default.a.Control.extend({
8366583691 const attributesCheckbox = document.createElement("div");
8366683692 attributesCheckbox.setAttribute("class", "widget-checkbox-default checkbox-selected-img");
8366783693 attributesCheckbox.checked = true;
83668- attributesCheckbox.onclick = this.isShowAttributes.bind(this);
83669- this.attributesCheckbox = attributesCheckbox;
8367083694 checkboxContainer.appendChild(attributesCheckbox);
8367183695 const checkboxLabel = document.createElement("div");
8367283696 checkboxLabel.setAttribute("class", "label label-selected");
8367383697 checkboxLabel.innerHTML = "显示要素信息";
83674- this.checkboxLabel = checkboxLabel;
8367583698 checkboxContainer.appendChild(checkboxLabel);
83699+ //----是否显示属性框【属性框复选框点击事件】
83700+ attributesCheckbox.onclick = (e) => {
83701+ e.target.checked = !e.target.checked;
83702+ if (e.target.checked) {
83703+ checkboxLabel.setAttribute("class", "label label-selected");
83704+ e.target.setAttribute("class", "widget-checkbox-default checkbox-selected-img");
83705+ this.viewModel.openPopups();
83706+ } else {
83707+ checkboxLabel.setAttribute("class", "label");
83708+ e.target.setAttribute("class", "widget-checkbox-default checkbox-default-img");
83709+ this.viewModel.closePopups();
83710+ }
83711+ };
8367683712
8367783713 dataFlowContainer2.appendChild(checkboxContainer);
8367883714 widgetContent.appendChild(dataFlowContainer2);
@@ -83683,12 +83719,23 @@ var DataFlowView = external_L_default.a.Control.extend({
8368383719 const subscribe = document.createElement("button");
8368483720 subscribe.setAttribute("class", "widget-button-default");
8368583721 subscribe.innerHTML = "订阅";
83686- subscribe.onclick = this.subscribe.bind(this);
83722+ //----订阅服务【订阅按钮点击事件】
83723+ subscribe.onclick = () => {
83724+ const urlDataFlow = dataFlowInput.value;
83725+ if (urlDataFlow === "") {
83726+ this.messageBox.showView("请先输入数据流服务地址。");
83727+ return;
83728+ }
83729+ this.viewModel.subscribe(urlDataFlow);
83730+ };
8368783731 dataFlowContainer3.appendChild(subscribe);
8368883732 const cancelSubscribe = document.createElement("button");
8368983733 cancelSubscribe.setAttribute("class", "widget-button-default");
8369083734 cancelSubscribe.innerHTML = "取消订阅";
83691- cancelSubscribe.onclick = this.cancelSubscribe.bind(this);
83735+ //----取消订阅服务【取消订阅按钮点击事件】
83736+ cancelSubscribe.onclick = () => {
83737+ this.viewModel.cancelSubscribe();
83738+ };
8369283739 dataFlowContainer3.appendChild(cancelSubscribe);
8369383740 widgetContent.appendChild(dataFlowContainer3);
8369483741
@@ -83707,82 +83754,26 @@ var DataFlowView = external_L_default.a.Control.extend({
8370783754
8370883755 //增加提示框:
8370983756 this.messageBox = new MessageBox();
83710- this.viewModel.on("dataFlowServiceSubscribed", this._showMessageBox.bind(this));
83757+
83758+ this.viewModel.on("dataflowfervicefubscribed", () => {
83759+ this.messageBox.showView("已订阅该数据流服务。");
83760+ });
83761+
83762+ this.viewModel.on("subscribesuccessed", () => {
83763+ this.messageBox.showView("数据流服务订阅成功。");
83764+ });
8371183765
8371283766 /**
8371383767 * @event L.supermap.widgets.DataFlowView#dataupdated
8371483768 * @description 数据流服务成功返回数据后触发
8371583769 * @property {Object} result - 事件返回的数据对象。
8371683770 */
83717- this.viewModel.on("dataupdated", (result) => self.event.fire("dataupdated", result));
83771+ this.viewModel.on("dataupdated", (result) => {
83772+ this.messageBox.closeView();
83773+ this.event.fire("dataupdated", result);
83774+ });
8371883775
8371983776 return widgetContainer;
83720- },
83721-
83722- _showMessageBox(e) {
83723- if (e.type === "dataFlowServiceSubscribed") {
83724- this.messageBox.showView("已订阅该数据流服务。");
83725- }
83726- },
83727-
83728- /**
83729- * @function L.supermap.widgets.DataFlowView.prototype.on
83730- * @param {string} eventType - 监听的事件类型
83731- * @param {Function} callback - 监听事件的回调函数
83732- */
83733- on(eventType, callback) {
83734- this.event.on(eventType, callback);
83735- },
83736-
83737- /**
83738- * 订阅
83739- * @private
83740- */
83741- subscribe() {
83742- const urlDataFlow = this.dataFlowInput.value;
83743- if (urlDataFlow === "") {
83744- this.messageBox.showView("请先输入数据流服务地址。");
83745- return;
83746- }
83747- this.viewModel.subscribe(urlDataFlow);
83748- },
83749- /**
83750- * 取消订阅
83751- * @private
83752- */
83753- cancelSubscribe() {
83754- this.viewModel.cancelSubscribe();
83755- },
83756- /**
83757- * 是否显示要素信息
83758- * @private
83759- */
83760- isShowAttributes(e) {
83761- this.attributesCheckbox.checked = !e.target.checked;
83762- if (this.attributesCheckbox.checked) {
83763- this.checkboxLabel.setAttribute("class", "label label-selected");
83764- this.attributesCheckbox.setAttribute("class", "widget-checkbox-default checkbox-selected-img");
83765- this.viewModel.openPopups();
83766- } else {
83767- this.checkboxLabel.setAttribute("class", "label");
83768- this.attributesCheckbox.setAttribute("class", "widget-checkbox-default checkbox-default-img");
83769- this.viewModel.closePopups();
83770- }
83771- },
83772- /**
83773- * 清除输入框内容
83774- * @private
83775- */
83776- clearInputValue() {
83777- this.dataFlowInput.value = "";
83778- this.inputClearBtn.hidden = true;
83779- },
83780- /**
83781- * 输入框值改变,打开清除按钮
83782- * @private
83783- */
83784- inputOnchange() {
83785- this.inputClearBtn.hidden = false;
8378683777 }
8378783778
8378883779});
0 commit comments