UNPKG

@zpc_npm/vue-iclient-common

Version:

KQGIS iClient for Vue.js

1,463 lines (1,246 loc) 52.9 kB
/******/ (function() { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ({ /***/ 1349: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { /* harmony import */ var element_plus_es__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2442); /* harmony import */ var element_plus_es__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(element_plus_es__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8945); /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_init__WEBPACK_IMPORTED_MODULE_1__); element_plus_es__WEBPACK_IMPORTED_MODULE_0__.ElMessage.install = (Vue, opts) => { _init__WEBPACK_IMPORTED_MODULE_1___default()(Vue, opts); Vue.component("KqMessage", element_plus_es__WEBPACK_IMPORTED_MODULE_0__.ElMessage); }; /* harmony default export */ __webpack_exports__["default"] = (element_plus_es__WEBPACK_IMPORTED_MODULE_0__.ElMessage); /***/ }), /***/ 2442: /***/ (function(module) { module.exports = require("element-plus/es"); /***/ }), /***/ 8945: /***/ (function(module) { module.exports = require("@zpc_npm/vue-iclient-common/init.js"); /***/ }) /******/ }); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/compat get default export */ /******/ !function() { /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function() { return module['default']; } : /******/ function() { return module; }; /******/ __webpack_require__.d(getter, { a: getter }); /******/ return getter; /******/ }; /******/ }(); /******/ /******/ /* webpack/runtime/define property getters */ /******/ !function() { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = function(exports, definition) { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ }(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ !function() { /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } /******/ }(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ !function() { /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ }(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. !function() { // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { "AdvancedQueryViewModel": function() { return /* reexport */ AdvancedQueryViewModel; }, "default": function() { return /* reexport */ AdvancedQuery; } }); ;// CONCATENATED MODULE: external "vue" var external_vue_namespaceObject = require("vue"); ;// CONCATENATED MODULE: external "@zpc_npm/vue-iclient-common/_utils/mitt" var mitt_namespaceObject = require("@zpc_npm/vue-iclient-common/_utils/mitt"); var mitt_default = /*#__PURE__*/__webpack_require__.n(mitt_namespaceObject); ;// CONCATENATED MODULE: external "@zpc_npm/vue-iclient-common/_utils/util" var util_namespaceObject = require("@zpc_npm/vue-iclient-common/_utils/util"); ;// CONCATENATED MODULE: external "@zpc_npm/vue-iclient-common/_utils/gis-utils" var gis_utils_namespaceObject = require("@zpc_npm/vue-iclient-common/_utils/gis-utils"); // EXTERNAL MODULE: ./src/common/_ui/message/index.js var message = __webpack_require__(1349); ;// CONCATENATED MODULE: ./src/common/advancedquery/AdvancedQueryViewModel.js /** * Author: renjun * Date: 2022-11-23 * Description: 高级查询逻辑层 */ /** * @class AdvancedQueryViewModel * @classdesc 高级查询 * @param {string} mapTarget - 绑定的当前mapview * @param {number} limit - 查询条数限制,不传入或者传入0时返回全部 */ class AdvancedQueryViewModel extends (mitt_default()) { constructor(mapTarget, limit) { super(); /** * 绑定地图的target,可为“” * @type {string} * @private */ this._mapTarget = mapTarget; /** * 查询返回条数限制,不传入或者传入0时返回全部 * @type {number} * @private */ this._limit = limit; /** * 传入的图层参数 * @type {object} * @private */ this.queryLayers = null; /** * 勾选的图层 * @type {object} * @private */ this.maplayers = null; /** * 选择的图层 * @type {object} * @private */ this.selLayer = null; // 事件绑定this this._resetListData = this._resetListData.bind(this); this._changeMap = this._changeMap.bind(this); this._registerEvents(); } /** * 注册事件 */ _registerEvents() { // mapview初始化结束监听 如果view已经存在了,mounted事件不会添加监听 gis_utils_namespaceObject.mapViewUtils.bindViewEvents("mounted", this._resetListData, this._mapTarget); // 添加图层数据源变化监听 gis_utils_namespaceObject.mapViewUtils.bindViewEvents("resetLayerDatas", this._resetListData, this._mapTarget); // 切换监听事件 指定mapTarget时 不需要监听 if (!(this._mapTarget && this._mapTarget !== "")) { gis_utils_namespaceObject.utils.bindChangeMapEvents(this._changeMap); } } /** * 地图切换事件 * @param {object} e */ _changeMap(e) { // 为了防止两个监听同时存在 出现数据出错 const preMapTarget = e.preMapTarget; // 地图切换时 移除切换前地图的数据监听事件 gis_utils_namespaceObject.mapViewUtils.offViewEvents("mounted", this._resetListData, preMapTarget); gis_utils_namespaceObject.mapViewUtils.offViewEvents("resetLayerDatas", this._resetListData, preMapTarget); // 地图切换时 添加切换地图的数据监听事件 不传maptarget 获取当前地图的maptarget gis_utils_namespaceObject.mapViewUtils.bindViewEvents("mounted", this._resetListData); gis_utils_namespaceObject.mapViewUtils.bindViewEvents("resetLayerDatas", this._resetListData); if (e.preMapTarget !== e.currentMapTarget) { this.fire("cleanData"); } } /** * 图层监听事件 * @param {object} e * @returns */ _resetListData(e) { // 如果图层变化事件是自己触发的 则不继续执行 避免死循环 if (e.eventTarget && e.eventTarget === this) { return; } this.setListData(this.queryLayers); } /** * 根据传入的图层参数来重置图层下拉数据 * @param {object} maplayers * @returns 图层数据 */ resetmapLayers(maplayers) { if (maplayers) { let queryLayers = this.queryLayers; let layers = []; if (queryLayers.length > 0) { for (let s = 0; s < queryLayers.length; s++) { for (let i = 0; i < maplayers.length; i++) { if (maplayers[i].guid === queryLayers[s].guid && parseInt(maplayers[i].id) === parseInt(queryLayers[s].id)) { layers.push(maplayers[i]); continue; } } } maplayers = layers; } return maplayers; } return null; } /** * 初始化选择图层 * @param {object} queryLayers */ init(queryLayers) { this.maplayers = gis_utils_namespaceObject.mapLayerUtils.getLayerDataByLayerChecked(this._mapTarget); if (!this.maplayers) { if (queryLayers) { this.queryLayers = queryLayers; } // mapview初始化结束监听 如果view已经存在了,mounted事件不会添加监听 gis_utils_namespaceObject.mapViewUtils.bindViewOnceEvents("mounted", this._resetListData, this._mapTarget); } else { this.setListData(queryLayers); } this._registerEvents(); } /** * 初始化选择图层 * @param {object} queryLayers */ setListData(queryLayers) { this.maplayers = gis_utils_namespaceObject.mapLayerUtils.getLayerDataByLayerChecked(this._mapTarget); if (queryLayers) { this.queryLayers = queryLayers; this.maplayers = this.resetmapLayers(this.maplayers); } if (this.maplayers && this.maplayers.length > 0) { let maplayers = this.maplayers; this.fire("setData", { maplayers }); } } /** * 图层查询的字段,字段别名,图表相关属性的自定义 * @param {object} currentNode * @returns 选择的图层 */ getqueryNode(currentNode) { if (this.queryLayers) { let queryLayers = this.queryLayers; if (queryLayers.length > 0) { let layer = queryLayers.find(item => { return item.guid == currentNode.guid && parseInt(item.id) == parseInt(currentNode.id); }); let fields = this.unique(layer.fields.split(",")); let fieldsAlias = this.unique(layer.fields.split(",")); if (layer.fieldsAlias) { fieldsAlias = this.unique(layer.fieldsAlias.split(",")); } let chartField = this.unique(layer.fields.split(",")); if (layer.chartField) { chartField = this.unique(layer.chartField.split(",")); } let summaryField = this.unique(layer.fields.split(",")); if (layer.summaryField) { summaryField = this.unique(layer.summaryField.split(",")); } let fieldslist = []; for (let i = 0; i < currentNode.fields.length; i++) { for (let f = 0; f < fields.length; f++) { if (fields[f].toUpperCase() === currentNode.fields[i].name.toUpperCase()) { if (fieldsAlias[f]) { currentNode.fields[i].aliasName = fieldsAlias[f]; } for (let c = 0; c < chartField.length; c++) { if (chartField[c].toUpperCase() === currentNode.fields[i].name.toUpperCase()) { currentNode.fields[i].chartField = currentNode.fields[i].name; } } for (let s = 0; s < summaryField.length; s++) { if (summaryField[s].toUpperCase() === currentNode.fields[i].name.toUpperCase()) { currentNode.fields[i].summaryField = currentNode.fields[i].name; } } fieldslist.push(currentNode.fields[i]); } } } currentNode.fields = fieldslist; } } return currentNode; } /** * 数组去重 * @param {object[]} arr * @returns */ unique(arr) { return Array.from(new Set(arr)); } /** * 选择图层 * @param {object} currentNode */ handleClick(currentNode) { let selLayer = {}; currentNode = this.getqueryNode(currentNode); if (currentNode.children) { selLayer.title = "请选择图层"; } else { selLayer.title = currentNode.name; selLayer.layerId = currentNode.id; selLayer.url = currentNode.url; selLayer.token = currentNode.accessToken; } if (currentNode.fields) { let fieldslist = []; let aliaslist = []; let chartField = []; let summaryField = []; currentNode.fields.map(function (node) { fieldslist.push(node.name); aliaslist.push(node.aliasName); if (node.chartField) { chartField.push(node.chartField); } if (node.summaryField) { summaryField.push(node.summaryField); } }); selLayer.fields = fieldslist; selLayer.fieldsAlias = aliaslist; // 中文别名 selLayer.chartField = fieldslist; if (chartField.length > 0) { selLayer.chartField = chartField; } selLayer.summaryField = fieldslist; if (summaryField.length > 0) { selLayer.summaryField = summaryField; } this.selLayer = selLayer; } this.fire("getselLayer", { selLayer }); } /** * 获取唯一值 * @param {string} name */ getUniqueValue(name) { let selLayer = this.selLayer; //当前选择图层 selLayer.name = name; let self = this; if (selLayer.layerId !== "") { if (selLayer.name !== "") { let dataUrl = (0,util_namespaceObject.getKQURLFromURL)(selLayer.url) + "/data"; let params = new window.KqGIS.Data.GetFieldsStatisticParams({ layerId: selLayer.layerId, statisticinfos: [{ [selLayer.name]: "UNIQUEVALUE" }], ua_token: selLayer.token }); let onSuccess = res => { if (res.result.resultcode === "success") { let unique = res.result.result[0].statistic[0][selLayer.name].result; self.fire("getUnique", { unique }); } else { let error = "error"; self.fire("getUnique", { error }); (0,message["default"])({ message: "获取唯一值失败!", type: "error", duration: 2000 }); } }; let onFailed = error => { self.fire("getUnique", { error }); (0,message["default"])({ message: "获取唯一值失败!", type: "error", duration: 2000 }); }; let service = new window.KqGIS.Data.GetFieldsStatisticService(dataUrl, { eventListeners: { processCompleted: onSuccess, processFailed: onFailed } }); service.processAsync(params); } } } /** * 查询方法 * @param {object} drawJson * @param {string} condtion */ advancedQuery(drawJson, condtion) { let selLayer = this.selLayer; //当前选择图层 let limit = this._limit ? this._limit : 0; if (selLayer.layerId !== "") { let attributeFilter = new window.KqGIS.SQLFilterParams({ where: condtion, subfields: selLayer.fields.join(",") }); // 限制返回条数 if (limit > 0) { attributeFilter.limit = limit; } // 设置投影 let geoSRS = new window.KqGIS.ServiceSRS({ type: window.KqGIS.ProjectSystemType.EPSG, value: "4326" }); // 查询条件 let params = new window.KqGIS.Data.GetFeaturesBySQLParams({ layerId: selLayer.layerId, attributeFilter: attributeFilter, returnContent: true, hasGeometry: true, ua_token: selLayer.token }); // 当有空间条件时 if (drawJson) { let geometry = { type: "GeometryCollection", geometries: [drawJson] }; let filter = new window.KqGIS.FilterParams({ attributeFilter: attributeFilter, geometry: window.L.Util.toKqGISGeometry(geometry), geoSRS: geoSRS, SpatialRel: window.KqGIS.SpatialRel.INTERSECT }); params = new window.KqGIS.Data.GetFeaturesByGeometryParams({ layerId: selLayer.layerId, filter: filter, returnContent: true, hasGeometry: true, ua_token: selLayer.token }); } let dataUrl = (0,util_namespaceObject.getKQURLFromURL)(selLayer.url) + "/data"; let self = this; let onSuccess = res => { if (res.result.resultcode === "success") { let selLayer = self.selLayer; let result = {}; result.fields = selLayer.fields; result.chartField = selLayer.chartField; result.summaryField = selLayer.summaryField; result.fieldsAlias = selLayer.fieldsAlias; result.features = res.result.result.features.features; self.fire("getResult", { result }); } else { let error = "error"; self.fire("getResult", { error }); (0,message["default"])({ message: "查询失败!请检查服务状态和参数", type: "error", duration: 2000 }); } }; let onFailed = error => { self.fire("getResult", { error }); (0,message["default"])({ message: "查询失败!" + error.error.message, type: "error", duration: 2000 }); }; let service = new window.KqGIS.Data.GetFeaturesService(dataUrl, { eventListeners: { processCompleted: onSuccess, processFailed: onFailed } }); service.processAsync(params); } } /** *销毁执行方法。删除所有事件监听 */ destroy() { this.off(); gis_utils_namespaceObject.mapViewUtils.offViewEvents("mounted", this._resetListData, this._mapTarget); gis_utils_namespaceObject.mapViewUtils.offViewEvents("resetLayerDatas", this._resetListData, this._mapTarget); if (!(this._mapTarget && this._mapTarget !== "")) { gis_utils_namespaceObject.utils.offChangeMapEvents(this._changeMap); } } } ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/index.js??ruleSet[0]!./src/common/advancedquery/AdvancedQuery.vue?vue&type=script&setup=true&lang=js const _hoisted_1 = { class: "collapse" }; const _hoisted_2 = { class: "search" }; const _hoisted_3 = { class: "queryMainBox" }; const _hoisted_4 = { class: "chooseBox" }; const _hoisted_5 = { class: "checkMain" }; const _hoisted_6 = { style: { "float": "left", "width": "45%" } }; const _hoisted_7 = { class: "btnCont" }; const _hoisted_8 = { class: "btnCont" }; const _hoisted_9 = { class: "btnCont" }; const _hoisted_10 = { style: { "float": "right", "width": "55%" } }; const _hoisted_11 = { class: "borerBox checkCont" }; const _hoisted_12 = /*#__PURE__*/(0,external_vue_namespaceObject.createTextVNode)("获取唯一值(V) "); const _hoisted_13 = { class: "selectBox" }; const _hoisted_14 = { class: "selectMain", ref: "chooseValues" }; const _hoisted_15 = { class: "kMainBox" }; const _hoisted_16 = { style: { "text-align": "right" } }; const _hoisted_17 = /*#__PURE__*/(0,external_vue_namespaceObject.createTextVNode)("查询"); const _hoisted_18 = /*#__PURE__*/(0,external_vue_namespaceObject.createTextVNode)("重置"); // 逻辑类 逻辑运算代码都写在里面 // 获取组件传参 // vue3.2声明名称暂时只支持这样写 name在绑定组件的时候使用 const __default__ = { name: "KqAdvancedQuery" }; /* harmony default export */ var AdvancedQueryvue_type_script_setup_true_lang_js = (/*#__PURE__*/Object.assign(__default__, { props: { // 每个地图相关组件的必须参数 非必传 指定组件绑定的map对象的div的id mapTarget: String, // 查询返回条数限制,不传入或者传入0时返回全部 limit: { type: Number }, // 空间条件属性 skecthAttributes: { type: Object, default: function () { return { drawTypes: ["point", "polygon", "polyline", "rectangle", "circle"], showSettingPanel: true, collapseSettingPanel: true, showBuffer: true, drawGroupName: "draw", drawStyle: {}, isShowShadow: false, geometryServerUrl: "", //几何服务token geometryServerToken: "" }; } }, // 要素表格结果属性 featureAttributes: { type: Object, default: function () { return { fields: "", //结果表格显示的字段 chartField: "", // 图表分类字段,不传时同结果表格显示的字段(fields) summaryField: "", //图表统计字段字段,不传时同结果表格显示的字段(fields) fieldsAlias: "", // 结果表格显示的字段说明,不传时同结果表格显示的字段(fields) features: {}, // 结果数据 geometryServerUrl: "", //几何服务token geometryServerToken: "", exportEpsg: null }; } }, // 是否显示阴影 showShadow: { type: Boolean, default: false }, //几何服务地址前缀 geometryServerUrl: { type: String }, //几何服务token geometryServerToken: { type: String }, // 分页控件的属性参数设置。 position: [String, Object] }, setup(__props, { expose }) { const props = __props; // 获取唯一值的符号 let btnText = (0,external_vue_namespaceObject.reactive)({ text1: "=", text2: "<>", text3: ">", text4: " Like ", text5: ">=", text6: "<", text7: "<=", text8: " And ", text9: "-", text10: "%", text11: "()", text12: " Or ", text13: " Is ", text14: " Not " }); // 查询进度条 let loadState = (0,external_vue_namespaceObject.ref)(false); let uniqueState = (0,external_vue_namespaceObject.ref)(false); // 选中的图层 let selLayer = (0,external_vue_namespaceObject.reactive)({ title: "", // 图层选框中绑定的值 layerId: "", //图层Id name: "", //图层名 geometry: null, fields: [], //字段 fieldsAlias: [], //字段别名 chartField: [], //图表字段 summaryField: [], //合计字段 where: [], //查询条件 url: "", //url token: "" //token }); // 要素表格组件对象 let feature_table = (0,external_vue_namespaceObject.ref)(null); // 绘图组件对象 let ref_sketch = (0,external_vue_namespaceObject.ref)(null); // 唯一值列表 let uniqueList = (0,external_vue_namespaceObject.reactive)([]); // 图层下拉控件 let ref_Select = (0,external_vue_namespaceObject.ref)(null); // 图层数据 let treeData = (0,external_vue_namespaceObject.reactive)([]); // collapse选中,查询条件和查询结果切换 let activeName = (0,external_vue_namespaceObject.ref)("1"); // tab选中,属性条件和空间条件切换 let queryName = (0,external_vue_namespaceObject.ref)("attr"); // option绑定选中节点 let selectedNode = (0,external_vue_namespaceObject.ref)(""); //属性条件 let chooseValue = (0,external_vue_namespaceObject.ref)(""); // 属性条件选中行 let seletcIndex = (0,external_vue_namespaceObject.ref)("-1"); //唯一值选中行 let unqIndex = (0,external_vue_namespaceObject.ref)("-1"); // 逻辑类 let viewModel = null; let adv_ref = (0,external_vue_namespaceObject.ref)(null); // 要素表格属性 const _featureProps = (0,external_vue_namespaceObject.reactive)({ ...props.featureAttributes }); (0,external_vue_namespaceObject.onMounted)(() => { // 组件位置 (0,util_namespaceObject.updatePosition)(adv_ref.value, props); viewModel = new AdvancedQueryViewModel(props.mapTarget, props.limit); viewModel.on("cleanData", () => { // 清除数据 cleanData(); }); viewModel.on("setData", _data => { treeData.value = _data.maplayers; }); }); // 初始化查询图层 function init(queryLayers) { viewModel.on("setData", _data => { treeData.value = _data.maplayers; }); viewModel.init(queryLayers); } (0,external_vue_namespaceObject.onBeforeUnmount)(() => { cleanAll(); viewModel = null; }); /** * 图层树的行内容重写 * @param {object} h * @param {object} root * @param {object} node * @param {object} data * @returns {JSX.Element} */ function renderContent(h, { root, node, data }) { return h("span", { style: { display: "inline-block", width: "100%" } }, [h("span", [h("span", { // 下拉框选项的样式 style: { display: "inline-block", cursor: "pointer" }, class: node.selected ? "ivu-tree-title ivu-tree-title-selected" : "ivu-tree-title" // 根据选中状态设置样式 }, data.name)])]); } /** * 树控件节点的点击事件 * @param {object} currentNode 当前点击的节点 */ function handleClick(currentNode) { ref_Select.value.$refs.child.blur(); viewModel.on("getselLayer", _data => { for (let sel in _data.selLayer) { selLayer[sel] = _data.selLayer[sel]; } }); viewModel.handleClick(currentNode); } /** * 点击选择属性条件 * @param {number} n 点击行数 * @param {string} values 属性值 */ function chooselyF(n, values) { seletcIndex.value = n; selLayer.name = values; chooseValue.value = chooseValue.value.concat(values); } /** * 获取属性条件的运算符 * @param {string} value 运算符 */ function getValue(value) { chooseValue.value = chooseValue.value.concat(value); } /** * 获取唯一值 * @param {*} n 选择行数 * @param {*} value 唯一值的字段 */ function chooselyV(n, value) { unqIndex.value = n; // 判断是否为数字 if (isNaN(parseFloat(value)) && isFinite(value)) { chooseValue.value = chooseValue.value.concat(value); } else { chooseValue.value = chooseValue.value.concat("'" + value + "'"); } } /** * 获取唯一值请求数据 */ function getUniqueValue() { viewModel.on("getUnique", _data => { if (_data.error) { uniqueState.value = false; return false; } uniqueState.value = false; uniqueList.value = _data.unique; }); uniqueState.value = true; viewModel.getUniqueValue(selLayer.name); } /** * 点击查询按扭进行查询 */ function handleOk() { if (selLayer.title === "") { loadState.value = false; (0,message["default"])({ message: "请先选择图层!", type: "warning" }); return false; } loadState.value = true; let drawJson = ref_sketch.value.getDrawGeoJSON(); let condtion = chooseValue.value; viewModel.on("getResult", _data => { if (_data.error) { loadState.value = false; return false; } loadState.value = false; activeName.value = "2"; _featureProps.fields = _data.result.fields; _featureProps.fieldsAlias = _data.result.fieldsAlias; _featureProps.chartField = _data.result.chartField; _featureProps.summaryField = _data.result.summaryField; _featureProps.features = _data.result.features; (0,external_vue_namespaceObject.nextTick)(() => { if (feature_table.value) { feature_table.value.initResult(); } }); }); viewModel.advancedQuery(drawJson, condtion); } /** * 点击重置按扭 */ function advQueryReset() { cleanAll(); } /** * 清除数据 */ function cleanData() { selLayer.title = ""; selLayer.fields = []; selLayer.name = ""; uniqueList.value = []; chooseValue.value = ""; activeName.value = "1"; seletcIndex.value = -1; unqIndex.value = -1; queryName.value = "attr"; if (feature_table.value) { feature_table.value.clearResult(); } if (ref_sketch.value) { ref_sketch.value.resetSketch(); } loadState.value = false; } /** * 清除数据和对象 */ function cleanAll() { cleanData(); viewModel.destroy(); } // 抛出方法 外部调用 expose({ cleanAll, init }); return (_ctx, _cache) => { const _component_kq_tree = (0,external_vue_namespaceObject.resolveComponent)("kq-tree"); const _component_kq_option = (0,external_vue_namespaceObject.resolveComponent)("kq-option"); const _component_kq_select = (0,external_vue_namespaceObject.resolveComponent)("kq-select"); const _component_kq_form_item = (0,external_vue_namespaceObject.resolveComponent)("kq-form-item"); const _component_kq_form = (0,external_vue_namespaceObject.resolveComponent)("kq-form"); const _component_kq_col = (0,external_vue_namespaceObject.resolveComponent)("kq-col"); const _component_kq_row = (0,external_vue_namespaceObject.resolveComponent)("kq-row"); const _component_kq_scrollbar = (0,external_vue_namespaceObject.resolveComponent)("kq-scrollbar"); const _component_kq_button = (0,external_vue_namespaceObject.resolveComponent)("kq-button"); const _component_kq_input = (0,external_vue_namespaceObject.resolveComponent)("kq-input"); const _component_kq_tab_pane = (0,external_vue_namespaceObject.resolveComponent)("kq-tab-pane"); const _component_kq_sketch = (0,external_vue_namespaceObject.resolveComponent)("kq-sketch"); const _component_kq_tabs = (0,external_vue_namespaceObject.resolveComponent)("kq-tabs"); const _component_kq_collapse_item = (0,external_vue_namespaceObject.resolveComponent)("kq-collapse-item"); const _component_kq_feature_table = (0,external_vue_namespaceObject.resolveComponent)("kq-feature-table"); const _component_kq_collapse = (0,external_vue_namespaceObject.resolveComponent)("kq-collapse"); return (0,external_vue_namespaceObject.openBlock)(), (0,external_vue_namespaceObject.createElementBlock)("div", { class: (0,external_vue_namespaceObject.normalizeClass)(["advancedquery", __props.showShadow ? 'shadow' : null]), ref_key: "adv_ref", ref: adv_ref }, [(0,external_vue_namespaceObject.createElementVNode)("div", _hoisted_1, [(0,external_vue_namespaceObject.createVNode)(_component_kq_collapse, { modelValue: (0,external_vue_namespaceObject.unref)(activeName), "onUpdate:modelValue": _cache[17] || (_cache[17] = $event => (0,external_vue_namespaceObject.isRef)(activeName) ? activeName.value = $event : activeName = $event), accordion: "", class: "treeMenu" }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createVNode)(_component_kq_collapse_item, { title: "查询条件", class: "collapseTitle", name: "1" }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createElementVNode)("div", _hoisted_2, [(0,external_vue_namespaceObject.createVNode)(_component_kq_form, null, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createVNode)(_component_kq_form_item, { label: "图层" }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createVNode)(_component_kq_select, { ref_key: "ref_Select", ref: ref_Select, modelValue: (0,external_vue_namespaceObject.unref)(selLayer).title, "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => (0,external_vue_namespaceObject.unref)(selLayer).title = $event), placeholder: "请选择图层", "no-data-text": "暂无数据", style: { "width": "100%" }, "popper-append-to-body": false, "popper-class": "self-eSelect" }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createVNode)(_component_kq_option, { value: (0,external_vue_namespaceObject.unref)(selectedNode), style: { "height": "auto" } }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createVNode)(_component_kq_tree, { data: (0,external_vue_namespaceObject.unref)(treeData).value, "node-key": "guid", "default-expanded-keys": [200], "render-content": renderContent, ref: "tree", onNodeClick: handleClick }, null, 8 /* PROPS */ , ["data"])]), _: 1 /* STABLE */ }, 8 /* PROPS */ , ["value"])]), _: 1 /* STABLE */ }, 8 /* PROPS */ , ["modelValue"])]), _: 1 /* STABLE */ })]), _: 1 /* STABLE */ })]), (0,external_vue_namespaceObject.createElementVNode)("div", _hoisted_3, [(0,external_vue_namespaceObject.createVNode)(_component_kq_tabs, { modelValue: (0,external_vue_namespaceObject.unref)(queryName), "onUpdate:modelValue": _cache[16] || (_cache[16] = $event => (0,external_vue_namespaceObject.isRef)(queryName) ? queryName.value = $event : queryName = $event) }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createVNode)(_component_kq_tab_pane, { label: "属性条件", name: "attr" }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createElementVNode)("div", _hoisted_4, [(0,external_vue_namespaceObject.createVNode)(_component_kq_scrollbar, { class: "page-scroll" }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createVNode)(_component_kq_row, null, { default: (0,external_vue_namespaceObject.withCtx)(() => [((0,external_vue_namespaceObject.openBlock)(true), (0,external_vue_namespaceObject.createElementBlock)(external_vue_namespaceObject.Fragment, null, (0,external_vue_namespaceObject.renderList)((0,external_vue_namespaceObject.unref)(selLayer).fields, (item, index) => { return (0,external_vue_namespaceObject.openBlock)(), (0,external_vue_namespaceObject.createBlock)(_component_kq_col, { class: (0,external_vue_namespaceObject.normalizeClass)(["zxlybtn", { zxlybtn2: (0,external_vue_namespaceObject.unref)(seletcIndex) === index }]), key: index, onClick: $event => chooselyF(index, item) }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createElementVNode)("span", null, (0,external_vue_namespaceObject.toDisplayString)(item), 1 /* TEXT */ )]), _: 2 /* DYNAMIC */ }, 1032 /* PROPS, DYNAMIC_SLOTS */ , ["onClick", "class"]); }), 128 /* KEYED_FRAGMENT */ ))]), _: 1 /* STABLE */ })]), _: 1 /* STABLE */ })]), (0,external_vue_namespaceObject.createElementVNode)("div", _hoisted_5, [(0,external_vue_namespaceObject.createElementVNode)("div", _hoisted_6, [(0,external_vue_namespaceObject.createElementVNode)("div", _hoisted_7, [(0,external_vue_namespaceObject.createVNode)(_component_kq_button, { class: "btnWith", onClick: _cache[1] || (_cache[1] = $event => getValue((0,external_vue_namespaceObject.unref)(btnText).text1)) }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createTextVNode)((0,external_vue_namespaceObject.toDisplayString)((0,external_vue_namespaceObject.unref)(btnText).text1), 1 /* TEXT */ )]), _: 1 /* STABLE */ }), (0,external_vue_namespaceObject.createVNode)(_component_kq_button, { class: "btnWith", onClick: _cache[2] || (_cache[2] = $event => getValue((0,external_vue_namespaceObject.unref)(btnText).text2)) }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createTextVNode)((0,external_vue_namespaceObject.toDisplayString)((0,external_vue_namespaceObject.unref)(btnText).text2), 1 /* TEXT */ )]), _: 1 /* STABLE */ }), (0,external_vue_namespaceObject.createVNode)(_component_kq_button, { class: "btnWith", onClick: _cache[3] || (_cache[3] = $event => getValue((0,external_vue_namespaceObject.unref)(btnText).text3)) }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createTextVNode)((0,external_vue_namespaceObject.toDisplayString)((0,external_vue_namespaceObject.unref)(btnText).text3), 1 /* TEXT */ )]), _: 1 /* STABLE */ }), (0,external_vue_namespaceObject.createVNode)(_component_kq_button, { class: "btnWith", onClick: _cache[4] || (_cache[4] = $event => getValue((0,external_vue_namespaceObject.unref)(btnText).text4)) }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createTextVNode)((0,external_vue_namespaceObject.toDisplayString)((0,external_vue_namespaceObject.unref)(btnText).text4), 1 /* TEXT */ )]), _: 1 /* STABLE */ }), (0,external_vue_namespaceObject.createVNode)(_component_kq_button, { class: "btnWith", onClick: _cache[5] || (_cache[5] = $event => getValue((0,external_vue_namespaceObject.unref)(btnText).text13)) }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createTextVNode)((0,external_vue_namespaceObject.toDisplayString)((0,external_vue_namespaceObject.unref)(btnText).text13), 1 /* TEXT */ )]), _: 1 /* STABLE */ })]), (0,external_vue_namespaceObject.createElementVNode)("div", _hoisted_8, [(0,external_vue_namespaceObject.createVNode)(_component_kq_button, { class: "btnWith", onClick: _cache[6] || (_cache[6] = $event => getValue((0,external_vue_namespaceObject.unref)(btnText).text5)) }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createTextVNode)((0,external_vue_namespaceObject.toDisplayString)((0,external_vue_namespaceObject.unref)(btnText).text5), 1 /* TEXT */ )]), _: 1 /* STABLE */ }), (0,external_vue_namespaceObject.createVNode)(_component_kq_button, { class: "btnWith", onClick: _cache[7] || (_cache[7] = $event => getValue((0,external_vue_namespaceObject.unref)(btnText).text6)) }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createTextVNode)((0,external_vue_namespaceObject.toDisplayString)((0,external_vue_namespaceObject.unref)(btnText).text6), 1 /* TEXT */ )]), _: 1 /* STABLE */ }), (0,external_vue_namespaceObject.createVNode)(_component_kq_button, { class: "btnWith", onClick: _cache[8] || (_cache[8] = $event => getValue((0,external_vue_namespaceObject.unref)(btnText).text7)) }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createTextVNode)((0,external_vue_namespaceObject.toDisplayString)((0,external_vue_namespaceObject.unref)(btnText).text7), 1 /* TEXT */ )]), _: 1 /* STABLE */ }), (0,external_vue_namespaceObject.createVNode)(_component_kq_button, { class: "btnWith", onClick: _cache[9] || (_cache[9] = $event => getValue((0,external_vue_namespaceObject.unref)(btnText).text8)) }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createTextVNode)((0,external_vue_namespaceObject.toDisplayString)((0,external_vue_namespaceObject.unref)(btnText).text8), 1 /* TEXT */ )]), _: 1 /* STABLE */ }), (0,external_vue_namespaceObject.createVNode)(_component_kq_button, { class: "btnWith", onClick: _cache[10] || (_cache[10] = $event => getValue((0,external_vue_namespaceObject.unref)(btnText).text14)) }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createTextVNode)((0,external_vue_namespaceObject.toDisplayString)((0,external_vue_namespaceObject.unref)(btnText).text14), 1 /* TEXT */ )]), _: 1 /* STABLE */ })]), (0,external_vue_namespaceObject.createElementVNode)("div", _hoisted_9, [(0,external_vue_namespaceObject.createVNode)(_component_kq_button, { class: "btnWith", onClick: _cache[11] || (_cache[11] = $event => getValue((0,external_vue_namespaceObject.unref)(btnText).text9)) }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createTextVNode)((0,external_vue_namespaceObject.toDisplayString)((0,external_vue_namespaceObject.unref)(btnText).text9), 1 /* TEXT */ )]), _: 1 /* STABLE */ }), (0,external_vue_namespaceObject.createVNode)(_component_kq_button, { class: "btnWith", onClick: _cache[12] || (_cache[12] = $event => getValue((0,external_vue_namespaceObject.unref)(btnText).text10)) }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createTextVNode)((0,external_vue_namespaceObject.toDisplayString)((0,external_vue_namespaceObject.unref)(btnText).text10), 1 /* TEXT */ )]), _: 1 /* STABLE */ }), (0,external_vue_namespaceObject.createVNode)(_component_kq_button, { class: "btnWith", onClick: _cache[13] || (_cache[13] = $event => getValue((0,external_vue_namespaceObject.unref)(btnText).text11)) }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createTextVNode)((0,external_vue_namespaceObject.toDisplayString)((0,external_vue_namespaceObject.unref)(btnText).text11), 1 /* TEXT */ )]), _: 1 /* STABLE */ }), (0,external_vue_namespaceObject.createVNode)(_component_kq_button, { class: "btnWith", onClick: _cache[14] || (_cache[14] = $event => getValue((0,external_vue_namespaceObject.unref)(btnText).text12)) }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createTextVNode)((0,external_vue_namespaceObject.toDisplayString)((0,external_vue_namespaceObject.unref)(btnText).text12), 1 /* TEXT */ )]), _: 1 /* STABLE */ })])]), (0,external_vue_namespaceObject.createElementVNode)("div", _hoisted_10, [(0,external_vue_namespaceObject.createElementVNode)("div", _hoisted_11, [(0,external_vue_namespaceObject.createCommentVNode)(" <div class=\"uniqueBox\"> "), (0,external_vue_namespaceObject.createVNode)(_component_kq_scrollbar, { class: "page-scroll" }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createVNode)(_component_kq_row, null, { default: (0,external_vue_namespaceObject.withCtx)(() => [((0,external_vue_namespaceObject.openBlock)(true), (0,external_vue_namespaceObject.createElementBlock)(external_vue_namespaceObject.Fragment, null, (0,external_vue_namespaceObject.renderList)((0,external_vue_namespaceObject.unref)(uniqueList).value, (item, index) => { return (0,external_vue_namespaceObject.openBlock)(), (0,external_vue_namespaceObject.createBlock)(_component_kq_col, { class: (0,external_vue_namespaceObject.normalizeClass)(["uniquebtn", { uniquebtn2: (0,external_vue_namespaceObject.unref)(unqIndex) === index }]), key: index, onClick: $event => chooselyV(index, item) }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createTextVNode)((0,external_vue_namespaceObject.toDisplayString)(item), 1 /* TEXT */ )]), _: 2 /* DYNAMIC */ }, 1032 /* PROPS, DYNAMIC_SLOTS */ , ["onClick", "class"]); }), 128 /* KEYED_FRAGMENT */ ))]), _: 1 /* STABLE */ })]), _: 1 /* STABLE */ }), (0,external_vue_namespaceObject.createCommentVNode)(" </div> ")]), (0,external_vue_namespaceObject.createVNode)(_component_kq_button, { type: "primary", class: "btnUniqueWith btnCont", onClick: getUniqueValue, loading: (0,external_vue_namespaceObject.unref)(uniqueState) }, { default: (0,external_vue_namespaceObject.withCtx)(() => [_hoisted_12]), _: 1 /* STABLE */ }, 8 /* PROPS */ , ["loading"])])]), (0,external_vue_namespaceObject.createElementVNode)("div", _hoisted_13, [(0,external_vue_namespaceObject.createElementVNode)("p", null, "SELECT \"FROM\" " + (0,external_vue_namespaceObject.toDisplayString)((0,external_vue_namespaceObject.unref)(selLayer).title) + " WHERE", 1 /* TEXT */ ), (0,external_vue_namespaceObject.createElementVNode)("div", _hoisted_14, [(0,external_vue_namespaceObject.createVNode)(_component_kq_input, { modelValue: (0,external_vue_namespaceObject.unref)(chooseValue), "onUpdate:modelValue": _cache[15] || (_cache[15] = $event => (0,external_vue_namespaceObject.isRef)(chooseValue) ? chooseValue.value = $event : chooseValue = $event), type: "textarea", autosize: { minRows: 2, maxRows: 2 } }, null, 8 /* PROPS */ , ["modelValue"])], 512 /* NEED_PATCH */ )])]), _: 1 /* STABLE */ }), (0,external_vue_namespaceObject.createVNode)(_component_kq_tab_pane, { label: "空间条件", name: "space" }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createElementVNode)("div", _hoisted_15, [(0,external_vue_namespaceObject.createVNode)(_component_kq_sketch, (0,external_vue_namespaceObject.mergeProps)({ ref_key: "ref_sketch", ref: ref_sketch, style: { "padding": "0px !important" } }, props.skecthAttributes, { "map-target": props.mapTarget }), null, 16 /* FULL_PROPS */ , ["map-target"])])]), _: 1 /* STABLE */ })]), _: 1 /* STABLE */ }, 8 /* PROPS */ , ["modelValue"]), (0,external_vue_namespaceObject.createElementVNode)("div", _hoisted_16, [(0,external_vue_namespaceObject.createVNode)(_component_kq_button, { type: "primary", onClick: handleOk, style: { "margin-right": "10px" }, loading: (0,external_vue_namespaceObject.unref)(loadState) }, { default: (0,external_vue_namespaceObject.withCtx)(() => [_hoisted_17]), _: 1 /* STABLE */ }, 8 /* PROPS */ , ["loading"]), (0,external_vue_namespaceObject.createVNode)(_component_kq_button, { onClick: advQueryReset }, { default: (0,external_vue_namespaceObject.withCtx)(() => [_hoisted_18]), _: 1 /* STABLE */ })])])]), _: 1 /* STABLE */ }), (0,external_vue_namespaceObject.createVNode)(_component_kq_collapse_item, { title: "查询结果", class: "collapseTitleresult", name: "2" }, { default: (0,external_vue_namespaceObject.withCtx)(() => [(0,external_vue_namespaceObject.createVNode)(_component_kq_feature_table, (0,external_vue_namespaceObject.mergeProps)({ ref_key: "feature_table", ref: feature_table }, _featureProps, { "map-target": props.mapTarget, style: { "padding": "0px" } }), null, 16 /* FULL_PROPS */ , ["map-target"])]), _: 1