@zpc_npm/vue-iclient-common
Version:
KQGIS iClient for Vue.js
1,463 lines (1,246 loc) • 52.9 kB
JavaScript
/******/ (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