{"remainingRequest":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\eslint-loader\\index.js??ref--13-0!D:\\jenkins\\workspace\\cssc-fvue\\src\\components\\ImportExportData\\CustomQuery.js","dependencies":[{"path":"D:\\jenkins\\workspace\\cssc-fvue\\src\\components\\ImportExportData\\CustomQuery.js","mtime":1667804638384},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\eslint-loader\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["import \"core-js/modules/es7.object.get-own-property-descriptors\";\nimport \"core-js/modules/es6.object.keys\";\nimport _defineProperty from \"D:/jenkins/workspace/cssc-fvue/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport \"core-js/modules/web.dom.iterable\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport store from \"@/store.js\";\nimport utils from \"@/hotent-ui-util.js\";\nimport req from \"@/request.js\";\nimport { Message } from \"element-ui\";\nvar CustomQuery = {\n /**\r\n * 通过别名获取关联查询定义\r\n */\n get: function get(alias) {\n return new Promise(function (resolve, reject) {\n if (!alias) {\n reject(\"alias can not be null.\");\n }\n\n var _query = null; // 通过vuex加载关联查询对象\n\n var unwatchMethod = store.watch(function (state) {\n return state.form.customQueryData;\n }, function (val) {\n if (val) {\n _query = val[alias];\n }\n\n if (_query) {\n setTimeout(function () {\n // 获取到指定别名的关联查询后即移除watch\n unwatchMethod && unwatchMethod();\n }, 10);\n resolve(_query);\n }\n }, {\n deep: true,\n immediate: true\n });\n setTimeout(function () {\n // vuex缓存的数据中没找到关联查询时,查询后台\n !_query && store.dispatch(\"form/getCustomQuery\", alias); // 15秒后未找到关联查询时,移除watch并显示错误信息。\n\n setTimeout(function () {\n if (!_query) {\n unwatchMethod();\n reject();\n\n CustomQuery._throwException(\"\\u672A\\u627E\\u5230\\u522B\\u540D\\u4E3A\".concat(alias, \"\\u7684\\u5173\\u8054\\u67E5\\u8BE2\"));\n }\n }, 15000);\n }, 10);\n });\n },\n\n /**\r\n * 通过别名获取对话框\r\n */\n getDialog: function getDialog(alias) {\n return new Promise(function (resolve, reject) {\n if (!alias) {\n reject(\"alias can not be null.\");\n }\n\n var _query = null; // 通过vuex加载关联查询对象\n\n var unwatchMethod = store.watch(function (state) {\n return state.form.customDialogData;\n }, function (val) {\n if (val) {\n _query = val[alias];\n }\n\n if (_query) {\n setTimeout(function () {\n // 获取到指定别名的关联查询后即移除watch\n unwatchMethod && unwatchMethod();\n }, 10);\n resolve(_query);\n }\n }, {\n deep: true,\n immediate: true\n });\n setTimeout(function () {\n // vuex缓存的数据中没找到关联查询时,查询后台\n !_query && store.dispatch(\"form/getCustomDialog\", alias); // 15秒后未找到关联查询时,移除watch并显示错误信息。\n\n setTimeout(function () {\n if (!_query) {\n unwatchMethod();\n reject();\n\n CustomQuery._throwException(\"\\u672A\\u627E\\u5230\\u522B\\u540D\\u4E3A\".concat(alias, \"\\u7684\\u5173\\u8054\\u67E5\\u8BE2\"));\n }\n }, 15000);\n }, 10);\n });\n },\n\n /**\r\n * 传入关联查询别名和查询参数,返回查询到的数据\r\n */\n load: function load(alias, params) {\n return new Promise(function (resolve, reject) {\n CustomQuery.get(alias).then(function (query) {\n // 执行关联查询\n CustomQuery._doQuery(query, params, '1', function (data) {\n resolve(data);\n });\n }, function () {\n reject();\n });\n });\n },\n\n /**\r\n * 传入对话框别名和查询参数,返回查询到的数据\r\n */\n loadDialog: function loadDialog(alias, params) {\n return new Promise(function (resolve, reject) {\n CustomQuery.getDialog(alias).then(function (query) {\n // 执行关联查询\n CustomQuery._doQuery(query, params, '2', function (data) {\n resolve(data);\n });\n }, function () {\n reject();\n });\n });\n },\n _throwException: function _throwException(msg) {\n Message.error(msg);\n throw msg;\n },\n // 处理POST请求时的参数\n _handlePostData: function _handlePostData(query, queryParams) {\n if (!query.dataParam || query.dataParam.constructor != String) {\n return queryParams;\n } // 构建上下文数据对象\n\n\n var ctx = {};\n queryParams && queryParams.forEach(function (element) {\n ctx[element.key] = element.value;\n });\n var exp = utils.parseExp(query.dataParam, ctx);\n\n try {\n return JSON.parse(exp);\n } catch (e) {\n CustomQuery._throwException(\"POST\\u53C2\\u6570\\u4E0D\\u662F\\u6709\\u6548\\u7684JSON\\u683C\\u5F0F\".concat(query.dataParam));\n }\n },\n // 处理GET请求的URL(GET请求的查询参数追加到URL后面)\n _handleGetUrl: function _handleGetUrl(url, queryParams) {\n if (!url) {\n CustomQuery._throwException('Restful类型的url地址为空');\n }\n\n var urlParamsAry = [];\n queryParams && queryParams.forEach(function (q) {\n urlParamsAry.push(\"\".concat(q.key, \"=\").concat(q.value));\n });\n var linkWord = url.indexOf(\"?\") == -1 ? \"?\" : \"&\";\n return \"\".concat(url).concat(linkWord).concat(urlParamsAry.join(\"&\"));\n },\n _doQuery: function _doQuery(query, params, type, cb) {\n params = params || {}; // 复制一份关联查询对象\n\n query = _objectSpread({}, query); // 关联数据始终查询第一页\n\n var page = 1; // 关联数据查询参数\n\n var queryParams = [];\n\n if (query.conditionfield) {\n try {\n var conditionFields = JSON.parse(query.conditionfield); // 构建查询参数\n\n if (conditionFields && conditionFields.constructor == Array && conditionFields.length > 0) {\n conditionFields.forEach(function (c) {\n // 默认按照固定值构建查询参数\n var obj = {\n key: c.field,\n value: c.defaultValue\n }; // 参数传入时获取传入的params中的同名参数值\n\n if (c.defaultType == \"1\") {\n if (params.hasOwnProperty(c.field)) {\n obj.value = params[c.field];\n }\n }\n\n queryParams.push(obj);\n });\n }\n } catch (e) {\n CustomQuery._throwException(\"\\u6761\\u4EF6\\u5B57\\u6BB5\\u7684JSON\\u683C\\u5F0F\\u9519\\u8BEF\\uFF1A\".concat(e));\n }\n }\n\n if (query.dsType != \"dataSource\") {\n // POST请求,则处理queryParams参数\n if (query.requestType == \"POST\") {\n queryParams = CustomQuery._handlePostData(query, queryParams);\n } // GET请求,则处理url地址\n else if (query.requestType == \"GET\") {\n query.url = CustomQuery._handleGetUrl(query.url, queryParams);\n }\n } // 构建查询地址\n\n\n var queryUrl = query.dsType == \"dataSource\" ? \"${form}/form/customQuery/v1/doQuery?alias=\" + query.alias + \"&page=\" + page : query.url; // 处理url地址中的${服务名}\n\n queryUrl = utils.parseUrl(queryUrl);\n var requestMethod = \"POST\"; //如果关联数据列表查询数据不是数据源则请求方法为restful配置的请求方式\n\n if (query.dsType != \"dataSource\") {\n requestMethod = query.requestType;\n } //查询数据\n\n\n var response = req.request({\n url: queryUrl,\n method: requestMethod,\n data: queryParams,\n headers: query.header\n }).then(function (response) {\n //自定义对话框因为要显示分页信息,并且显示字段的key是小写,故此处直接返回,由自定义对话框组件本身处理数据\n if (type == '2') {\n var data = CustomQuery._handleDialogResponse(response.data, query);\n\n cb(data);\n } else {\n //如果数据来源是数据源\n if (query.dsType == \"dataSource\") {\n cb(response.data.rows);\n } else {\n // 如果数据来源是REST接口\n var _data = CustomQuery._handleResponse(response.data, query.listKey);\n\n cb(_data);\n }\n }\n }, function (reason) {\n cb([]);\n\n CustomQuery._throwException(reason);\n });\n },\n _handleDialogResponse: function _handleDialogResponse(data, query) {\n if (!data) {\n Message.error(\"返回的数据为空\");\n return [];\n }\n\n if (data.constructor == String) {\n try {\n data = JSON.parse(data);\n } catch (e) {\n CustomQuery._throwException(\"\\u5C06\\u8FD4\\u56DE\\u503C\\u89E3\\u6790\\u4E3AJSON\\u5BF9\\u8C61\\u65F6\\u51FA\\u9519\\u4E86\\uFF1A\".concat(e));\n }\n }\n\n var result = {\n rows: []\n };\n\n if (data.constructor == Object) {\n if (query.dsType == \"dataSource\") {\n if (data && data.rows) {\n result.rows = data.rows; //如果有分页\n\n if (data.page) {\n result.pageResult = {\n page: data.page,\n pageSize: data.pageSize,\n total: data.total\n };\n }\n }\n } else {\n // 如果没有指定提取key,则将返回值包装为列表\n if (!query.listKey) {\n result.rows = [data];\n } else {\n try {\n result.rows = utils.getValueByPath(data, query.listKey) || []; //如果有分页\n\n if (query.pageKey && data[query.pageKey]) {\n result.pageResult = {\n page: data[query.pageKey],\n pageSize: data[query.pageSizeKey],\n total: data[query.totalKey]\n };\n }\n } catch (e) {\n CustomQuery._throwException(\"\\u4ECE\\u8FD4\\u56DE\\u7684\\u6570\\u636E\\u4E2D\\u63D0\\u53D6\\u6570\\u7EC4\\u65F6\\u51FA\\u9519\\u4E86\\uFF1A\".concat(e));\n }\n }\n }\n } else if (data.constructor == Array) {\n // 已经是数组类型时,不再通过rowsKey提取\n result.rows = data;\n } else {\n CustomQuery._throwException(\"\\u8FD4\\u56DE\\u7684\\u6570\\u636E\\u65E0\\u6CD5\\u89E3\\u6790:\".concat(data));\n }\n\n result.rows = CustomQuery._listKeyToLower(result.rows);\n return result;\n },\n _handleResponse: function _handleResponse(data, rowsKey) {\n if (!data) {\n Message.error(\"返回的数据为空\");\n return [];\n }\n\n if (data.constructor == String) {\n try {\n data = JSON.parse(data);\n } catch (e) {\n CustomQuery._throwException(\"\\u5C06\\u8FD4\\u56DE\\u503C\\u89E3\\u6790\\u4E3AJSON\\u5BF9\\u8C61\\u65F6\\u51FA\\u9519\\u4E86\\uFF1A\".concat(e));\n }\n }\n\n if (data.constructor == Object) {\n // 如果没有指定提取key,则将返回值包装为列表\n if (!rowsKey) {\n return [data];\n }\n\n try {\n return utils.getValueByPath(data, rowsKey);\n } catch (e) {\n CustomQuery._throwException(\"\\u4ECE\\u8FD4\\u56DE\\u7684\\u6570\\u636E\\u4E2D\\u63D0\\u53D6\\u6570\\u7EC4\\u65F6\\u51FA\\u9519\\u4E86\\uFF1A\".concat(e));\n }\n } else if (data.constructor == Array) {\n // 已经是数组类型时,不再通过rowsKey提取\n return data;\n } else {\n CustomQuery._throwException(\"\\u8FD4\\u56DE\\u7684\\u6570\\u636E\\u65E0\\u6CD5\\u89E3\\u6790:\".concat(data));\n }\n },\n _listKeyToLower: function _listKeyToLower(list) {\n var newRows = []; //不知道为什么724的某个版本自定义对话框的显示字段key后台被转小写了,所以此处把返回值也转小写\n\n var _loop = function _loop(i) {\n var data = list[i];\n var keys = Object.keys(data);\n var objRows = {};\n keys.forEach(function (key) {\n objRows[key.toLowerCase()] = data[key];\n });\n newRows.push(objRows);\n };\n\n for (var i = 0; i < list.length; i++) {\n _loop(i);\n }\n\n return newRows;\n }\n};\nexport default CustomQuery;",null]}