olp-table 7.2.87 → 7.2.89

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -278,7 +278,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
278
278
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
279
279
 
280
280
  "use strict";
281
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var element_plus_dist_index_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! element-plus/dist/index.css */ \"./node_modules/element-plus/dist/index.css\");\n/* harmony import */ var element_plus_dist_index_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(element_plus_dist_index_css__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _smallwei_avue_lib_index_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @smallwei/avue/lib/index.css */ \"./node_modules/@smallwei/avue/lib/index.css\");\n/* harmony import */ var _smallwei_avue_lib_index_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_smallwei_avue_lib_index_css__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var vxe_table_lib_style_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vxe-table/lib/style.css */ \"./node_modules/vxe-table/lib/style.css\");\n/* harmony import */ var vxe_table_lib_style_css__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vxe_table_lib_style_css__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _components_auto_height_index_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/auto-height/index.vue */ \"./src/components/auto-height/index.vue\");\n/* harmony import */ var _components_tree_index_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/tree/index.vue */ \"./src/components/tree/index.vue\");\n/* harmony import */ var _utils_http_httpUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils/http/httpUtil */ \"./src/utils/http/httpUtil.js\");\n/* harmony import */ var _components_table_model_model_index_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/table/model/model-index.vue */ \"./src/components/table/model/model-index.vue\");\n/* harmony import */ var _store_dict__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/store/dict */ \"./src/store/dict.js\");\n/* harmony import */ var _store_dictType__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/store/dictType */ \"./src/store/dictType.js\");\n/* harmony import */ var _components_ol_dialog_upload_file_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/components/ol-dialog-upload-file.vue */ \"./src/components/ol-dialog-upload-file.vue\");\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n/* harmony import */ var _components_ol_table_select_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/components/ol-table-select.vue */ \"./src/components/ol-table-select.vue\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst dict = (0,_store_dict__WEBPACK_IMPORTED_MODULE_7__.storeDict)();\nconst dictType = (0,_store_dictType__WEBPACK_IMPORTED_MODULE_8__.storeDictType)();\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'olTable',\n components: {\n OlTableSelect: _components_ol_table_select_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n OlDialogUploadFile: _components_ol_dialog_upload_file_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n ModelIndex: _components_table_model_model_index_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n OlTree: _components_tree_index_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n AutoHeight: _components_auto_height_index_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n provide() {\n return {\n http: _utils_http_httpUtil__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n tableAll: this.table\n };\n },\n data() {\n return {\n uuid: '1787452516924563456',\n treeUuid: '1815551679408418816',\n table: {},\n http: _utils_http_httpUtil__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n formConfig: undefined\n };\n },\n methods: {\n nodeClick(e) {\n console.log(e);\n this.uuid = undefined;\n this.$nextTick(() => {\n this.uuid = e.uuid;\n });\n },\n initOk({\n theme,\n table,\n customerForm\n }) {\n if (theme == 't1') {\n this.formConfig = table.formConfig; //给原有的自定义搜索\n //customerForm();//执行自定义表单,这个方法会隐藏table的表单,隐藏搜索按钮\n }\n console.log(this.formConfig);\n },\n //主子表更新或者保存\n testSave() {\n let params = {\n dbName: 'online',\n //数据库名称\n tableName: 'sys_dict_type',\n //主表名称\n mianColumnAndValueMap: {\n id: '1231564546',\n name: '韦邦杠',\n sex: ''\n },\n //保存主表的数据{表字段:value}\n //mainGenIdMap:{id: 'uuid'} //主表要自动生成的唯一字段 如果没有 可以忽略\n mainTableKey: ['code'],\n //主表的唯一字段\n subTables: [{\n subTableName: 'sys_dict_data',\n //子表名称\n subColumnAndValueList: [{\n dict_code: 'test_code_2',\n dict_value: '1',\n dict_label: 'label'\n }],\n //子表子主表的数据\n subGenIdMap: {\n id: 'uuid'\n },\n //子表要自动生成的唯一字段 如果没有 可以忽略\n subTableKey: ['id'],\n //子表的唯一字段\n subForeignKey: {\n 'code': 'dict_type'\n },\n //表的关联key,这里框架自动复制 {主表字段,子表的字段}\n subDeleteMapWhere: {}\n }]\n };\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_10__.postAes)(this.http, \"/online/crudAes/saveMainAndSubs\", params);\n },\n //主子表删除\n testDelete() {\n let params = {\n dbName: 'online',\n //数据库名称\n tableName: 'sys_dict_type',\n //主表名称\n subTableName: 'sys_dict_data',\n //子表名称\n whereMap: {\n id: 'test_code'\n },\n //主表删除条件\n subForeignKey: {\n 'id': 'parent_id'\n } ////表的关联key,{主表字段,子表的字段}\n };\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_10__.postAes)(this.http, \"/online/crudAes/deleteMainAndSubs\", params);\n },\n //单表更新\n updateOne() {\n let params = {\n dbName: 'online',\n //数据库名称\n tableName: 'sys_dict_type',\n //主表名称\n columnAndValueMap: {\n code: 'test_code',\n sex: 'xxx'\n },\n //更新字段\n whereMap: {\n code: 'test_code'\n } //更新条件\n };\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_10__.postAes)(this.http, \"/online/crudAes/modify\", params);\n },\n //单表批量更新\n updateBatch() {\n let params = {\n dbName: 'online',\n //数据库名称\n tableName: 'sys_dict_type',\n //主表名称\n list: [{\n columnAndValueMap: {\n code: 'test_code'\n },\n //更新字段\n whereMap: {\n code: 'test_code'\n }\n } //更新条件}\n ]\n };\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_10__.postAes)(this.http, \"/online/crudAes/batchModify\", params);\n }\n },\n created() {\n dict.refresh(this.http);\n dictType.refresh(this.http);\n window.$onlineHttps = _utils_http_httpUtil__WEBPACK_IMPORTED_MODULE_5__[\"default\"];\n //this.testDelete();\n //this.nodeClick({uuid:'1787452516924563456'})\n //window.olpTableAxiosBaseURL = \"http://localhost:48090/\"\n }\n});\n\n//# sourceURL=webpack://olp-table/./src/App.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
281
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var element_plus_dist_index_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! element-plus/dist/index.css */ \"./node_modules/element-plus/dist/index.css\");\n/* harmony import */ var element_plus_dist_index_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(element_plus_dist_index_css__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _smallwei_avue_lib_index_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @smallwei/avue/lib/index.css */ \"./node_modules/@smallwei/avue/lib/index.css\");\n/* harmony import */ var _smallwei_avue_lib_index_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_smallwei_avue_lib_index_css__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var vxe_table_lib_style_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vxe-table/lib/style.css */ \"./node_modules/vxe-table/lib/style.css\");\n/* harmony import */ var vxe_table_lib_style_css__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vxe_table_lib_style_css__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _components_auto_height_index_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/auto-height/index.vue */ \"./src/components/auto-height/index.vue\");\n/* harmony import */ var _components_tree_index_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/tree/index.vue */ \"./src/components/tree/index.vue\");\n/* harmony import */ var _utils_http_httpUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils/http/httpUtil */ \"./src/utils/http/httpUtil.js\");\n/* harmony import */ var _components_table_model_model_index_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/table/model/model-index.vue */ \"./src/components/table/model/model-index.vue\");\n/* harmony import */ var _store_dict__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/store/dict */ \"./src/store/dict.js\");\n/* harmony import */ var _store_dictType__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/store/dictType */ \"./src/store/dictType.js\");\n/* harmony import */ var _components_ol_dialog_upload_file_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/components/ol-dialog-upload-file.vue */ \"./src/components/ol-dialog-upload-file.vue\");\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n/* harmony import */ var _components_ol_table_select_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/components/ol-table-select.vue */ \"./src/components/ol-table-select.vue\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst dict = (0,_store_dict__WEBPACK_IMPORTED_MODULE_7__.storeDict)();\nconst dictType = (0,_store_dictType__WEBPACK_IMPORTED_MODULE_8__.storeDictType)();\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'olTable',\n components: {\n OlTableSelect: _components_ol_table_select_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n OlDialogUploadFile: _components_ol_dialog_upload_file_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n ModelIndex: _components_table_model_model_index_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n OlTree: _components_tree_index_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n AutoHeight: _components_auto_height_index_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n provide() {\n return {\n http: _utils_http_httpUtil__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n tableAll: this.table\n };\n },\n data() {\n return {\n uuid: '2011709090178097152',\n treeUuid: '1815551679408418816',\n table: {},\n http: _utils_http_httpUtil__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n formConfig: undefined\n };\n },\n methods: {\n nodeClick(e) {\n console.log(e);\n this.uuid = undefined;\n this.$nextTick(() => {\n this.uuid = e.uuid;\n });\n },\n initOk({\n theme,\n table,\n customerForm\n }) {\n if (theme == 't1') {\n this.formConfig = table.formConfig; //给原有的自定义搜索\n //customerForm();//执行自定义表单,这个方法会隐藏table的表单,隐藏搜索按钮\n }\n console.log(this.formConfig);\n },\n //主子表更新或者保存\n testSave() {\n let params = {\n dbName: 'online',\n //数据库名称\n tableName: 'sys_dict_type',\n //主表名称\n mianColumnAndValueMap: {\n id: '1231564546',\n name: '韦邦杠',\n sex: ''\n },\n //保存主表的数据{表字段:value}\n //mainGenIdMap:{id: 'uuid'} //主表要自动生成的唯一字段 如果没有 可以忽略\n mainTableKey: ['code'],\n //主表的唯一字段\n subTables: [{\n subTableName: 'sys_dict_data',\n //子表名称\n subColumnAndValueList: [{\n dict_code: 'test_code_2',\n dict_value: '1',\n dict_label: 'label'\n }],\n //子表子主表的数据\n subGenIdMap: {\n id: 'uuid'\n },\n //子表要自动生成的唯一字段 如果没有 可以忽略\n subTableKey: ['id'],\n //子表的唯一字段\n subForeignKey: {\n 'code': 'dict_type'\n },\n //表的关联key,这里框架自动复制 {主表字段,子表的字段}\n subDeleteMapWhere: {}\n }]\n };\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_10__.postAes)(this.http, \"/online/crudAes/saveMainAndSubs\", params);\n },\n //主子表删除\n testDelete() {\n let params = {\n dbName: 'online',\n //数据库名称\n tableName: 'sys_dict_type',\n //主表名称\n subTableName: 'sys_dict_data',\n //子表名称\n whereMap: {\n id: 'test_code'\n },\n //主表删除条件\n subForeignKey: {\n 'id': 'parent_id'\n } ////表的关联key,{主表字段,子表的字段}\n };\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_10__.postAes)(this.http, \"/online/crudAes/deleteMainAndSubs\", params);\n },\n //单表更新\n updateOne() {\n let params = {\n dbName: 'online',\n //数据库名称\n tableName: 'sys_dict_type',\n //主表名称\n columnAndValueMap: {\n code: 'test_code',\n sex: 'xxx'\n },\n //更新字段\n whereMap: {\n code: 'test_code'\n } //更新条件\n };\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_10__.postAes)(this.http, \"/online/crudAes/modify\", params);\n },\n //单表批量更新\n updateBatch() {\n let params = {\n dbName: 'online',\n //数据库名称\n tableName: 'sys_dict_type',\n //主表名称\n list: [{\n columnAndValueMap: {\n code: 'test_code'\n },\n //更新字段\n whereMap: {\n code: 'test_code'\n }\n } //更新条件}\n ]\n };\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_10__.postAes)(this.http, \"/online/crudAes/batchModify\", params);\n }\n },\n created() {\n dict.refresh(this.http);\n dictType.refresh(this.http);\n window.$onlineHttps = _utils_http_httpUtil__WEBPACK_IMPORTED_MODULE_5__[\"default\"];\n //this.testDelete();\n //this.nodeClick({uuid:'1787452516924563456'})\n //window.olpTableAxiosBaseURL = \"http://localhost:48090/\"\n }\n});\n\n//# sourceURL=webpack://olp-table/./src/App.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
282
282
 
283
283
  /***/ }),
284
284
 
@@ -366,7 +366,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core
366
366
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
367
367
 
368
368
  "use strict";
369
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/core-js/modules/es.iterator.filter.js\");\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.iterator.for-each.js */ \"./node_modules/core-js/modules/es.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.iterator.map.js */ \"./node_modules/core-js/modules/es.iterator.map.js\");\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _utils_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils/message */ \"./src/utils/message.js\");\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n/* harmony import */ var _utils_ExcelUtil__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/utils/ExcelUtil */ \"./src/utils/ExcelUtil.js\");\n/* harmony import */ var _store_dict__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/store/dict */ \"./src/store/dict.js\");\n/* harmony import */ var _utils_AESCRUDUtils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/utils/AESCRUDUtils */ \"./src/utils/AESCRUDUtils.js\");\n\n\n\n\n\n\n\n\n\n\nconst dict = (0,_store_dict__WEBPACK_IMPORTED_MODULE_8__.storeDict)();\nconst message = (0,_utils_message__WEBPACK_IMPORTED_MODULE_5__.useMessage)(); // 消息弹窗\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'olDialogImport',\n inject: ['http'],\n props: {\n title: {\n default: '导入数据'\n },\n name: {\n default: '导入数据'\n },\n width: {\n default: 800\n },\n draggable: {\n default: true\n },\n center: {\n default: false\n },\n selectData: {\n default: '1'\n }\n },\n data() {\n return {\n form: {\n selectData: ''\n },\n saveParams: {},\n show: '',\n formData: {},\n gridOptions: {\n border: true,\n keepSource: true,\n showOverflow: true,\n loading: false,\n height: 330,\n align: 'left',\n scrollX: {\n enabled: true,\n gt: 15\n },\n scrollY: {\n enabled: true,\n gt: 0\n },\n columnConfig: {\n resizable: true\n },\n rowConfig: {\n useKey: true,\n keyField: 'id'\n },\n expandConfig: {\n labelField: 'seq'\n },\n editConfig: {\n trigger: 'click',\n mode: 'row',\n showStatus: true\n },\n checkboxConfig: {\n labelField: 'title',\n reserve: true,\n highlight: true,\n range: true,\n checkAll: false\n },\n columns: [],\n data: [],\n toolbarConfig: {},\n initColumns: [{\n type: 'checkbox',\n width: 50,\n fixed: 'left'\n }, {\n type: 'seq',\n title: '序号',\n width: 50,\n fixed: 'left'\n }]\n },\n genIdMap: undefined,\n defaultValue: undefined,\n url: '/online/crud/batchSave'\n };\n },\n methods: {\n customUpload(param) {\n const formData = new FormData();\n // 添加文件\n formData.append('file', param.file);\n // 使用 axios 或其他 HTTP 客户端发送请求\n this.http.upload('/online/crud/upload', formData).then(response => {\n this.onChange(response);\n }).catch(error => {\n console.error('上传失败:', error);\n });\n },\n submit() {\n if (!this.gridOptions.data || this.gridOptions.data.length == 0) return message.error('导入数据为空!');\n let params = this.getParams();\n this.gridOptions.loading = true;\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_6__.request)(this.http, {\n url: '/online/crudAes/batchSave',\n method: 'post',\n data: (0,_utils_AESCRUDUtils__WEBPACK_IMPORTED_MODULE_9__.encryptWithCompress)(params),\n timeout: 1000 * 90 * 90\n }, false, false).then(({\n msg,\n code\n }) => {\n if (code == 200) {\n this.show = false;\n this.$emit('emits', {\n m: 'query'\n });\n message.success(msg);\n } else {\n message.error(msg);\n }\n }).finally(() => {\n this.gridOptions.loading = false;\n });\n },\n open({\n column,\n saveParams,\n json,\n defaultValue\n }) {\n if (json) {\n if (json.genIdMap) {\n this.genIdMap = json.genIdMap;\n }\n if (json.url) {\n this.url = json.url;\n }\n }\n this.defaultValue = defaultValue;\n this.saveParams = saveParams;\n this.show = true;\n let columns = column.filter(o => o.visible == 1 && o.importToOtherProp != 1);\n columns.push(...this.gridOptions.initColumns);\n this.gridOptions.columns = columns;\n this.$refs.xGrid.loadColumn(this.gridOptions.columns);\n },\n handleChange(title) {\n let que = [];\n for (let j = 0; j < this.gridOptions.data.length; j++) {\n let data = this.gridOptions.data[j];\n if (j == 0) {\n que.push(data[title]);\n break;\n }\n let index = que.index0f(data[title]);\n if (index != -1) {\n return message.warn('第' + (j + 1) + '行-第' + (index + 1) + '行数据不唯-:' + data[title]);\n }\n que.push(data[title]);\n }\n message.success(title + '无重复数据!');\n },\n selectRowChange() {\n this.formData.disabled = this.$refs.xGrid.getCheckboxRecords(true).length == 0;\n this.formData.selected_but = this.formData.disabled ? 'unselected_but' : 'selected_but';\n },\n batchRemove() {\n let records = this.$refs.xGrid.getCheckboxRecords(true);\n if (!records || records.length == 0) return message.error('未选中数据!');\n this.$refs.xGrid.removeCheckboxRow();\n },\n getParams() {\n return {\n ...this.saveParams,\n genIdMap: this.genIdMap,\n columnAndValueListMap: this.getDataByDict(this.gridOptions.data)\n };\n },\n onChange({\n data\n }) {\n data = this.getDataByTitle(data);\n this.setDefaultValue(data);\n this.gridOptions.data = data;\n },\n setDefaultValue(data) {\n if (this.defaultValue) {\n for (let key of Object.keys(this.defaultValue)) {\n for (let datum of data) {\n datum[key] = this.defaultValue[key];\n }\n }\n }\n },\n getDataByTitle(data) {\n if (data && data.length >= 1) {\n let rows = [];\n data.map(row => {\n let obj = {};\n for (let key in row) {\n this.gridOptions.columns.forEach(item => {\n if (item.title == key) {\n obj[item.field] = row[key];\n }\n });\n }\n rows.push(obj);\n });\n return rows;\n }\n },\n getDataByDict(data) {\n if (data && data.length >= 1) {\n let rows = [];\n data.map(row => {\n let obj = {};\n for (let key in row) {\n this.gridOptions.columns.forEach(item => {\n if (item.field == key && item.tableSaveToOtherProp != 1) {\n obj[item.field] = this.getRowValue(item.dictCode, row[key]);\n }\n });\n }\n rows.push(obj);\n });\n this.setDefaultValue(rows);\n return rows;\n }\n },\n download() {\n (0,_utils_ExcelUtil__WEBPACK_IMPORTED_MODULE_7__.exportExcel)({\n data: [],\n name: '模板下载',\n columns: this.gridOptions.columns.filter(o => o.field),\n option: {\n align: 'center'\n }\n });\n },\n init(id) {\n this.gridOptions.loading = true;\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_6__.get)(this.http, this.gridOptions.url, {\n id: id\n }, true).then(res => {\n for (const data of res) {\n data.width = 100;\n }\n res.push(...this.gridOptions.initColumns);\n this.gridOptions.columns = res;\n this.gridOptions.loading = false;\n });\n },\n getRowValue(dictCode, val) {\n if (dictCode) {\n return this.getDictValueByCode(dictCode, val);\n }\n return val;\n },\n getDictValueByCode(dictCode, val) {\n for (const option of dict.val(dictCode)) {\n if (option.label == val) {\n return option;\n }\n }\n return val;\n },\n close() {\n this.$emit('emits', {});\n this.show = false;\n }\n },\n created() {\n this.formData = {\n action: this.http.axios().defaults.baseURL + '/online/crud/upload',\n uniCode: '',\n headers: this.http.axios().defaults.headers,\n disabled: true,\n selected_but: 'unselected_but'\n };\n }\n});\n\n//# sourceURL=webpack://olp-table/./src/components/ol-dialog-import.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
369
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/core-js/modules/es.iterator.filter.js\");\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.iterator.find.js */ \"./node_modules/core-js/modules/es.iterator.find.js\");\n/* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.iterator.for-each.js */ \"./node_modules/core-js/modules/es.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.iterator.map.js */ \"./node_modules/core-js/modules/es.iterator.map.js\");\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _utils_message__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils/message */ \"./src/utils/message.js\");\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n/* harmony import */ var _utils_ExcelUtil__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/utils/ExcelUtil */ \"./src/utils/ExcelUtil.js\");\n/* harmony import */ var _store_dict__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/store/dict */ \"./src/store/dict.js\");\n/* harmony import */ var _utils_AESCRUDUtils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/utils/AESCRUDUtils */ \"./src/utils/AESCRUDUtils.js\");\n\n\n\n\n\n\n\n\n\n\n\nconst dict = (0,_store_dict__WEBPACK_IMPORTED_MODULE_9__.storeDict)();\nconst message = (0,_utils_message__WEBPACK_IMPORTED_MODULE_6__.useMessage)(); // 消息弹窗\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'olDialogImport',\n inject: ['http'],\n props: {\n title: {\n default: '导入数据'\n },\n name: {\n default: '导入数据'\n },\n width: {\n default: 800\n },\n draggable: {\n default: true\n },\n center: {\n default: false\n },\n selectData: {\n default: '1'\n }\n },\n data() {\n return {\n form: {\n selectData: ''\n },\n saveParams: {},\n show: '',\n formData: {},\n gridOptions: {\n border: true,\n keepSource: true,\n showOverflow: true,\n loading: false,\n height: 330,\n align: 'left',\n scrollX: {\n enabled: true,\n gt: 15\n },\n scrollY: {\n enabled: true,\n gt: 0\n },\n columnConfig: {\n resizable: true\n },\n rowConfig: {\n isCurrent: true,\n useKey: true,\n keyField: 'id'\n },\n expandConfig: {\n labelField: 'seq'\n },\n editConfig: {\n trigger: 'click',\n mode: 'row',\n showStatus: true\n },\n checkboxConfig: {\n labelField: 'title',\n reserve: true,\n highlight: true,\n range: true,\n checkAll: false\n },\n columns: [],\n data: [],\n toolbarConfig: {},\n initColumns: [{\n type: 'checkbox',\n width: 50,\n fixed: 'left'\n }, {\n type: 'seq',\n title: '序号',\n width: 50,\n fixed: 'left'\n }]\n },\n genIdMap: undefined,\n defaultValue: undefined,\n url: '/online/crud/batchSave'\n };\n },\n methods: {\n customUpload(param) {\n const formData = new FormData();\n // 添加文件\n formData.append('file', param.file);\n // 使用 axios 或其他 HTTP 客户端发送请求\n this.http.upload('/online/crud/upload', formData).then(response => {\n this.onChange(response);\n }).catch(error => {\n console.error('上传失败:', error);\n });\n },\n submit() {\n if (!this.gridOptions.data || this.gridOptions.data.length == 0) return message.error('导入数据为空!');\n let params = this.getParams();\n this.gridOptions.loading = true;\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_7__.request)(this.http, {\n url: '/online/crudAes/batchSave',\n method: 'post',\n data: (0,_utils_AESCRUDUtils__WEBPACK_IMPORTED_MODULE_10__.encryptWithCompress)(params),\n timeout: 1000 * 90 * 90\n }, false, false).then(({\n msg,\n code\n }) => {\n if (code == 200) {\n this.show = false;\n this.$emit('emits', {\n m: 'query'\n });\n message.success(msg);\n } else {\n message.error(msg);\n }\n }).finally(() => {\n this.gridOptions.loading = false;\n });\n },\n open({\n column,\n saveParams,\n json,\n defaultValue\n }) {\n if (json) {\n if (json.genIdMap) {\n this.genIdMap = json.genIdMap;\n }\n if (json.url) {\n this.url = json.url;\n }\n }\n this.defaultValue = defaultValue;\n this.saveParams = saveParams;\n this.show = true;\n let columns = column.filter(o => o.visible == 1 && o.importToOtherProp != 1);\n columns.push(...this.gridOptions.initColumns);\n this.gridOptions.columns = columns;\n this.$refs.xGrid.loadColumn(this.gridOptions.columns);\n },\n handleChange(value) {\n // 1. 获取选中的选项对象\n const selectedItem = this.gridOptions.columns.find(o => o.field && o.field === value);\n if (selectedItem) {\n let que = [];\n for (let j = 0; j < this.gridOptions.data.length; j++) {\n let data = this.gridOptions.data[j];\n if (!data || !data[value]) {\n return message.warning(selectedItem.title + '数据为空!');\n }\n if (j == 0) {\n que.push(data[value]);\n continue;\n }\n let index = que.indexOf(data[value]);\n if (index != -1) {\n if (this.$refs.xGrid) {\n // 获取重复行的索引\n this.$refs.xGrid.scrollToRow(data); // 滚动到对应行\n this.$refs.xGrid.setCurrentRow(data); // 高亮\n // this.$refs.xGrid.toggleCheckboxRow(data); // 选中\n }\n return message.warning('第' + (j + 1) + '行-第' + (index + 1) + '行数据不唯-:' + data[value]);\n }\n que.push(data[value]);\n }\n message.success(selectedItem.title + '无重复数据!');\n }\n },\n selectRowChange() {\n this.formData.disabled = this.$refs.xGrid.getCheckboxRecords(true).length == 0;\n this.formData.selected_but = this.formData.disabled ? 'unselected_but' : 'selected_but';\n },\n batchRemove() {\n let records = this.$refs.xGrid.getCheckboxRecords(true);\n if (!records || records.length == 0) return message.error('未选中数据!');\n this.$refs.xGrid.removeCheckboxRow();\n const selectedIds = records.map(row => row.id);\n\n // 过滤掉已删除的行,更新数据源\n this.gridOptions.data = this.gridOptions.data.filter(item => !selectedIds.includes(item.id));\n this.formData.uniCode = '';\n this.selectRowChange();\n },\n getParams() {\n // if (!this.hasUuidInGenIdMap()) {\n // this.genIdMap = undefined\n // }\n return {\n ...this.saveParams,\n genIdMap: this.genIdMap,\n columnAndValueListMap: this.getDataByDict(this.gridOptions.data)\n };\n },\n onChange({\n data\n }) {\n data = this.getDataByTitle(data);\n this.setDefaultValue(data);\n this.setIdValue(data);\n this.gridOptions.data = data;\n },\n setDefaultValue(data) {\n if (this.defaultValue) {\n for (let key of Object.keys(this.defaultValue)) {\n for (let datum of data) {\n datum[key] = this.defaultValue[key];\n }\n }\n }\n },\n getDataByTitle(data) {\n if (data && data.length >= 1) {\n let rows = [];\n data.map(row => {\n let obj = {};\n for (let key in row) {\n this.gridOptions.columns.forEach(item => {\n if (item.title == key) {\n obj[item.field] = row[key];\n }\n });\n }\n rows.push(obj);\n });\n return rows;\n }\n },\n getDataByDict(data) {\n if (data && data.length >= 1) {\n let rows = [];\n data.map(row => {\n let obj = {};\n for (let key in row) {\n this.gridOptions.columns.forEach(item => {\n if (item.field == key && item.tableSaveToOtherProp != 1) {\n obj[item.field] = this.getRowValue(item.dictCode, row[key]);\n }\n });\n }\n rows.push(obj);\n });\n this.setDefaultValue(rows);\n return rows;\n }\n },\n download() {\n (0,_utils_ExcelUtil__WEBPACK_IMPORTED_MODULE_8__.exportExcel)({\n data: [],\n name: '模板下载',\n columns: this.gridOptions.columns.filter(o => o.field),\n option: {\n align: 'center'\n }\n });\n },\n init(id) {\n this.gridOptions.loading = true;\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_7__.get)(this.http, this.gridOptions.url, {\n id: id\n }, true).then(res => {\n for (const data of res) {\n data.width = 100;\n }\n res.push(...this.gridOptions.initColumns);\n this.gridOptions.columns = res;\n this.gridOptions.loading = false;\n });\n },\n getRowValue(dictCode, val) {\n if (dictCode) {\n return this.getDictValueByCode(dictCode, val);\n }\n return val;\n },\n getDictValueByCode(dictCode, val) {\n for (const option of dict.val(dictCode)) {\n if (option.label == val) {\n return option;\n }\n }\n return val;\n },\n close() {\n this.$emit('emits', {});\n this.show = false;\n },\n hasUuidInGenIdMap() {\n // 边界处理:如果 genIdMap 不是对象或 targetUuid 为空,直接返回 false\n if (!this.genIdMap || typeof this.genIdMap !== 'object') {\n return false;\n }\n // 遍历对象的所有键值对\n for (const value of Object.values(this.genIdMap)) {\n // 检查值是否包含目标 UUID(转小写后比对,兼容值为非字符串的情况)\n const valueMatch = String(value).toLowerCase().includes('uuid');\n\n // 只要键或值中任意一个匹配,立即返回 true\n if (valueMatch) {\n return true;\n }\n }\n // 遍历结束未找到,返回 false\n return false;\n },\n setIdValue(data) {\n if (!this.hasUuidInGenIdMap()) {\n for (let key of Object.keys(this.genIdMap)) {\n for (let datum of data) {\n datum[key] = datum[this.genIdMap[key]];\n }\n }\n }\n }\n },\n created() {\n this.formData = {\n action: this.http.axios().defaults.baseURL + '/online/crud/upload',\n uniCode: '',\n headers: this.http.axios().defaults.headers,\n disabled: true,\n selected_but: 'unselected_but'\n };\n }\n});\n\n//# sourceURL=webpack://olp-table/./src/components/ol-dialog-import.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
370
370
 
371
371
  /***/ }),
372
372
 
@@ -608,7 +608,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var spli
608
608
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
609
609
 
610
610
  "use strict";
611
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _mixins_VTMixin_OForm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/mixins/VTMixin/OForm */ \"./src/mixins/VTMixin/OForm.js\");\n/* harmony import */ var _components_ol_upload_file_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/components/ol-upload-file.vue */ \"./src/components/ol-upload-file.vue\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"olForm\",\n mixins: [_mixins_VTMixin_OForm__WEBPACK_IMPORTED_MODULE_0__.OForm],\n components: {\n OlUploadFile: _components_ol_upload_file_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n },\n data() {\n return {};\n },\n methods: {\n getParams() {\n let params = {\n tableConfigId: this.state.tableConfigId,\n dbName: this.state.dbName,\n tableName: this.state.tableName,\n columnAndValueMap: {}\n };\n if (this.state.type != '0') {\n let formData = this.$refs.formRef.getFormData(false);\n for (let prop of Object.keys(formData)) {\n let value = formData[prop];\n if (value instanceof String) {\n value = value.trim();\n }\n params.columnAndValueMap[prop] = value;\n }\n } else {\n params.columnAndValueMap = this.getTableUpdateValue(this.form.column, this.formData);\n }\n if (this.state.saveUrl && this.state.saveUrl.indexOf(\"/online/crudAes/\") == -1) {\n return params.columnAndValueMap;\n }\n if (this.state.edit) {\n params.whereMap = {};\n if (this.state.updateKey) {\n let split = this.state.updateKey.split(',');\n for (let kv of split) {\n let kvs = kv.split(\"=\");\n if (kvs.length == 2) {\n params.whereMap[kvs[0]] = params.columnAndValueMap[kvs[1]];\n delete params.columnAndValueMap[kvs[0]];\n } else {\n let val = params.columnAndValueMap[kvs];\n params.whereMap[kvs] = val != undefined ? val : this.formData[kvs];\n delete params.columnAndValueMap[kvs];\n }\n }\n } else {\n // 编辑时默认更新条件为id\n params.whereMap['id'] = this.formData['id'];\n if (!params.whereMap['id']) {\n params.whereMap['id'] = this.formData['t1_id'];\n }\n delete params.columnAndValueMap['id'];\n }\n } else if (this.state.updateKey) {\n let split = this.state.updateKey.split(',');\n params['genIdMap'] = {};\n for (let kv of split) {\n let kvs = kv.split(\"=\");\n if (kvs.length == 2) {\n params['genIdMap'][kvs[0]] = kvs[1];\n } else {\n params['genIdMap'][kvs[0]] = 'uuid';\n }\n }\n }\n this.setOtherProp(params);\n return params;\n }\n }\n});\n\n//# sourceURL=webpack://olp-table/./src/components/table/ol-form/index.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
611
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _mixins_VTMixin_OForm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/mixins/VTMixin/OForm */ \"./src/mixins/VTMixin/OForm.js\");\n/* harmony import */ var _components_ol_upload_file_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/components/ol-upload-file.vue */ \"./src/components/ol-upload-file.vue\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"olForm\",\n computed: {},\n mixins: [_mixins_VTMixin_OForm__WEBPACK_IMPORTED_MODULE_0__.OForm],\n components: {\n OlUploadFile: _components_ol_upload_file_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n },\n data() {\n return {};\n },\n methods: {\n getParams() {\n let params = {\n tableConfigId: this.state.tableConfigId,\n dbName: this.state.dbName,\n tableName: this.state.tableName,\n columnAndValueMap: {}\n };\n if (this.state.type != '0') {\n let formData = this.$refs.formRef.getFormData(false);\n for (let prop of Object.keys(formData)) {\n let value = formData[prop];\n if (value instanceof String) {\n value = value.trim();\n }\n params.columnAndValueMap[prop] = value;\n }\n } else {\n params.columnAndValueMap = this.getTableUpdateValue(this.form.column, this.formData);\n }\n if (this.state.saveUrl && this.state.saveUrl.indexOf(\"/online/crudAes/\") == -1) {\n return params.columnAndValueMap;\n }\n if (this.state.edit) {\n params.whereMap = {};\n if (this.state.updateKey) {\n let split = this.state.updateKey.split(',');\n for (let kv of split) {\n let kvs = kv.split(\"=\");\n if (kvs.length == 2) {\n params.whereMap[kvs[0]] = params.columnAndValueMap[kvs[1]];\n delete params.columnAndValueMap[kvs[0]];\n } else {\n let val = params.columnAndValueMap[kvs];\n params.whereMap[kvs] = val != undefined ? val : this.formData[kvs];\n delete params.columnAndValueMap[kvs];\n }\n }\n } else {\n // 编辑时默认更新条件为id\n params.whereMap['id'] = this.formData['id'];\n if (!params.whereMap['id']) {\n params.whereMap['id'] = this.formData['t1_id'];\n }\n delete params.columnAndValueMap['id'];\n }\n } else if (this.state.updateKey) {\n let split = this.state.updateKey.split(',');\n params['genIdMap'] = {};\n for (let kv of split) {\n let kvs = kv.split(\"=\");\n if (kvs.length == 2) {\n params['genIdMap'][kvs[0]] = kvs[1];\n } else {\n params['genIdMap'][kvs[0]] = 'uuid';\n }\n }\n }\n this.setOtherProp(params);\n return params;\n }\n }\n});\n\n//# sourceURL=webpack://olp-table/./src/components/table/ol-form/index.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
612
612
 
613
613
  /***/ }),
614
614
 
@@ -674,7 +674,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */
674
674
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
675
675
 
676
676
  "use strict";
677
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'olTableToolBtn',\n props: {\n currentPermi: {\n type: String,\n default: '',\n required: false\n },\n size: {}\n },\n data() {\n return {\n loading: this.$attrs.loading\n };\n },\n methods: {\n handleToolbarBtnClick(code) {\n this.$emit('toolbarBtnClick', code);\n }\n }\n});\n\n//# sourceURL=webpack://olp-table/./src/components/table/ol-table-tool-btn/index.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
677
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _components_Icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/components/Icon */ \"./src/components/Icon/index.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'olTableToolBtn',\n components: {\n Icon: _components_Icon__WEBPACK_IMPORTED_MODULE_0__.Icon\n },\n props: {\n currentPermi: {\n type: String,\n default: '',\n required: false\n },\n size: {}\n },\n data() {\n return {\n loading: this.$attrs.loading\n };\n },\n methods: {\n handleToolbarBtnClick(code) {\n this.$emit('toolbarBtnClick', code);\n }\n }\n});\n\n//# sourceURL=webpack://olp-table/./src/components/table/ol-table-tool-btn/index.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
678
678
 
679
679
  /***/ }),
680
680
 
@@ -1444,7 +1444,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
1444
1444
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1445
1445
 
1446
1446
  "use strict";
1447
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/core-js/modules/es.iterator.filter.js\");\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nconst _hoisted_1 = {\n class: \"static-content-item\"\n};\nconst _hoisted_2 = {\n class: \"static-content-item\"\n};\nconst _hoisted_3 = {\n class: \"static-content-item\"\n};\nconst _hoisted_4 = {\n class: \"static-content-item\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_Upload = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"Upload\");\n const _component_el_icon = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-icon\");\n const _component_el_button = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-button\");\n const _component_el_upload = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-upload\");\n const _component_el_col = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-col\");\n const _component_Download = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"Download\");\n const _component_Delete = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"Delete\");\n const _component_el_option = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-option\");\n const _component_el_select = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-select\");\n const _component_el_form_item = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-form-item\");\n const _component_el_row = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-row\");\n const _component_vxe_grid = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"vxe-grid\");\n const _component_el_form = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-form\");\n const _component_el_dialog = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-dialog\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_dialog, {\n modelValue: $data.show,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $data.show = $event),\n \"destroy-on-close\": \"\",\n title: $props.title,\n width: $props.width,\n center: $props.center,\n \"close-on-press-escape\": false,\n draggable: $props.draggable,\n \"show-footer\": \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_form, {\n model: $data.formData,\n ref: \"formRef\",\n \"label-width\": \"80px\",\n class: \"el-form-globals\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_row, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_col, {\n xs: 24,\n sm: 4,\n md: 4,\n lg: 4\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_upload, {\n ref: \"uploadRef\",\n action: $data.formData.action,\n \"http-request\": $options.customUpload,\n \"show-file-list\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_button, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [_cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)(\"上传预览 \")), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_icon, {\n class: \"el-icon--right\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_Upload)]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */,\n __: [2]\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"action\", \"http-request\"])])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_col, {\n xs: 24,\n sm: 4,\n md: 4,\n lg: 4\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_button, {\n onClick: $options.submit\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [_cache[3] || (_cache[3] = (0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)(\"立即上传 \")), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_icon, {\n class: \"el-icon--right\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_Upload)]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */,\n __: [3]\n }, 8 /* PROPS */, [\"onClick\"])])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_col, {\n xs: 24,\n sm: 4,\n md: 4,\n lg: 4\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_button, {\n onClick: $options.download\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)(\"下载模板 \")), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_icon, {\n class: \"el-icon--right\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_Download)]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */,\n __: [4]\n }, 8 /* PROPS */, [\"onClick\"])])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_col, {\n xs: 24,\n sm: 4,\n md: 4,\n lg: 4\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_button, {\n disabled: $data.formData.disabled,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_2__.normalizeClass)($data.formData.selected_but),\n onClick: $options.batchRemove\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [_cache[5] || (_cache[5] = (0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)(\"批量删除 \")), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_icon, {\n class: \"el-icon--right\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_Delete)]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */,\n __: [5]\n }, 8 /* PROPS */, [\"disabled\", \"class\", \"onClick\"])])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_col, {\n xs: 24,\n sm: 8,\n md: 8,\n lg: 8\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_form_item, {\n label: \"校验唯一\",\n prop: \"uniCode\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_select, {\n modelValue: $data.formData.uniCode,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $data.formData.uniCode = $event),\n onChange: $options.handleChange,\n class: \"full-width-input\",\n clearable: \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_2__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_2__.renderList)($data.gridOptions.columns.filter(o => o.field), (item, index) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_option, {\n key: index,\n label: item.title,\n value: item.title,\n disabled: item.disabled\n }, null, 8 /* PROPS */, [\"label\", \"value\", \"disabled\"]);\n }), 128 /* KEYED_FRAGMENT */))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onChange\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_row, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_vxe_grid, (0,vue__WEBPACK_IMPORTED_MODULE_2__.mergeProps)({\n style: {\n \"width\": \"100%\"\n },\n ref: \"xGrid\"\n }, $data.gridOptions, {\n onCheckboxChange: $options.selectRowChange,\n onCheckboxAll: $options.selectRowChange\n }), null, 16 /* FULL_PROPS */, [\"onCheckboxChange\", \"onCheckboxAll\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n footer: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_button, {\n onClick: $options.close\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => _cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)(\"关闭\")])),\n _: 1 /* STABLE */,\n __: [6]\n }, 8 /* PROPS */, [\"onClick\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"title\", \"width\", \"center\", \"draggable\"]);\n}\n\n//# sourceURL=webpack://olp-table/./src/components/ol-dialog-import.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
1447
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/core-js/modules/es.iterator.filter.js\");\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nconst _hoisted_1 = {\n class: \"static-content-item\"\n};\nconst _hoisted_2 = {\n class: \"static-content-item\"\n};\nconst _hoisted_3 = {\n class: \"static-content-item\"\n};\nconst _hoisted_4 = {\n class: \"static-content-item\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_Upload = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"Upload\");\n const _component_el_icon = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-icon\");\n const _component_el_button = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-button\");\n const _component_el_upload = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-upload\");\n const _component_el_col = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-col\");\n const _component_Download = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"Download\");\n const _component_Delete = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"Delete\");\n const _component_el_option = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-option\");\n const _component_el_select = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-select\");\n const _component_el_form_item = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-form-item\");\n const _component_el_row = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-row\");\n const _component_vxe_grid = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"vxe-grid\");\n const _component_el_form = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-form\");\n const _component_el_dialog = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-dialog\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_dialog, {\n modelValue: $data.show,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $data.show = $event),\n \"destroy-on-close\": \"\",\n title: $props.title,\n width: $props.width,\n center: $props.center,\n \"close-on-press-escape\": false,\n draggable: $props.draggable,\n \"show-footer\": \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_form, {\n model: $data.formData,\n ref: \"formRef\",\n \"label-width\": \"80px\",\n class: \"el-form-globals\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_row, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_col, {\n xs: 24,\n sm: 4,\n md: 4,\n lg: 4\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_upload, {\n ref: \"uploadRef\",\n action: $data.formData.action,\n \"http-request\": $options.customUpload,\n \"show-file-list\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_button, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [_cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)(\"上传预览 \")), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_icon, {\n class: \"el-icon--right\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_Upload)]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */,\n __: [2]\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"action\", \"http-request\"])])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_col, {\n xs: 24,\n sm: 4,\n md: 4,\n lg: 4\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_button, {\n onClick: $options.submit\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [_cache[3] || (_cache[3] = (0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)(\"立即上传 \")), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_icon, {\n class: \"el-icon--right\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_Upload)]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */,\n __: [3]\n }, 8 /* PROPS */, [\"onClick\"])])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_col, {\n xs: 24,\n sm: 4,\n md: 4,\n lg: 4\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_button, {\n onClick: $options.download\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)(\"下载模板 \")), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_icon, {\n class: \"el-icon--right\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_Download)]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */,\n __: [4]\n }, 8 /* PROPS */, [\"onClick\"])])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_col, {\n xs: 24,\n sm: 4,\n md: 4,\n lg: 4\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_button, {\n disabled: $data.formData.disabled,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_2__.normalizeClass)($data.formData.selected_but),\n onClick: $options.batchRemove\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [_cache[5] || (_cache[5] = (0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)(\"批量删除 \")), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_icon, {\n class: \"el-icon--right\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_Delete)]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */,\n __: [5]\n }, 8 /* PROPS */, [\"disabled\", \"class\", \"onClick\"])])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_col, {\n xs: 24,\n sm: 8,\n md: 8,\n lg: 8\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_form_item, {\n label: \"校验唯一\",\n prop: \"uniCode\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_select, {\n modelValue: $data.formData.uniCode,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $data.formData.uniCode = $event),\n onChange: $options.handleChange,\n class: \"full-width-input\",\n clearable: \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_2__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_2__.renderList)($data.gridOptions.columns.filter(o => o.field), (item, index) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_option, {\n key: index,\n label: item.title,\n value: item.field,\n disabled: item.disabled\n }, null, 8 /* PROPS */, [\"label\", \"value\", \"disabled\"]);\n }), 128 /* KEYED_FRAGMENT */))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onChange\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_row, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_vxe_grid, (0,vue__WEBPACK_IMPORTED_MODULE_2__.mergeProps)({\n style: {\n \"width\": \"100%\"\n },\n ref: \"xGrid\"\n }, $data.gridOptions, {\n onCheckboxChange: $options.selectRowChange,\n onCheckboxAll: $options.selectRowChange\n }), null, 16 /* FULL_PROPS */, [\"onCheckboxChange\", \"onCheckboxAll\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n footer: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_button, {\n onClick: $options.close\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => _cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)(\"关闭\")])),\n _: 1 /* STABLE */,\n __: [6]\n }, 8 /* PROPS */, [\"onClick\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"title\", \"width\", \"center\", \"draggable\"]);\n}\n\n//# sourceURL=webpack://olp-table/./src/components/ol-dialog-import.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
1448
1448
 
1449
1449
  /***/ }),
1450
1450
 
@@ -1675,7 +1675,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
1675
1675
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1676
1676
 
1677
1677
  "use strict";
1678
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.find.js */ \"./node_modules/core-js/modules/es.iterator.find.js\");\n/* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ol_table_select = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"ol-table-select\");\n const _component_IconSelect = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"IconSelect\");\n const _component_olUploadFile = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"olUploadFile\");\n const _component_el_cascader = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-cascader\");\n const _component_avue_form = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"avue-form\");\n const _component_VFormRender = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"VFormRender\");\n const _component_el_scrollbar = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-scrollbar\");\n const _component_el_button = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-button\");\n const _component_el_dialog = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-dialog\");\n const _component_FileUpload = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"FileUpload\");\n const _directive_loading = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveDirective)(\"loading\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementBlock)(\"div\", null, [_ctx.isDialog === true && _ctx.state.isDialog === true ? (0,vue__WEBPACK_IMPORTED_MODULE_2__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_dialog, {\n key: 0,\n modelValue: _ctx.state.dialogVisible,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => _ctx.state.dialogVisible = $event),\n title: _ctx.state.title,\n \"align-center\": \"\",\n \"destroy-on-close\": \"\",\n width: _ctx.state.width,\n \"close-on-click-modal\": false\n }, {\n footer: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_button, {\n onClick: _ctx.close\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => _cache[4] || (_cache[4] = [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)(\"返 回\")])),\n _: 1 /* STABLE */,\n __: [4]\n }, 8 /* PROPS */, [\"onClick\"]), _ctx.show ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_button, {\n key: 0,\n type: \"primary\",\n loading: _ctx.state.loading,\n onClick: _ctx.doSave\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => _cache[5] || (_cache[5] = [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)(\"保 存\")])),\n _: 1 /* STABLE */,\n __: [5]\n }, 8 /* PROPS */, [\"loading\", \"onClick\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true)]),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_scrollbar, {\n \"max-height\": _ctx.state.maxHeight,\n style: {\n \"padding-right\": \"10px\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [_ctx.state.type == '0' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_avue_form, {\n key: _ctx.state.key,\n ref: \"formRef\",\n option: _ctx.form,\n modelValue: _ctx.formData,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => _ctx.formData = $event)\n }, (0,vue__WEBPACK_IMPORTED_MODULE_2__.createSlots)({\n _: 2 /* DYNAMIC */\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.renderList)(_ctx.dynamicSlotsTable, slotRow => {\n return {\n name: slotRow.slotName,\n fn: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(({\n disabled,\n size\n }) => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" 根据配置动态渲染插槽内容 \"), slotRow.type == '22' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_ol_table_select, {\n key: 0,\n onOlTableSelectChange: _ctx.olTableSelectChange,\n slotName: slotRow.slotName,\n http: _ctx.http,\n defaultValue: _ctx.formData[slotRow.slotName],\n uuid: slotRow.config.uuid,\n disabled: disabled,\n size: size,\n config: slotRow.config\n }, null, 8 /* PROPS */, [\"onOlTableSelectChange\", \"slotName\", \"http\", \"defaultValue\", \"uuid\", \"disabled\", \"size\", \"config\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), slotRow.type == '21' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_IconSelect, {\n key: 1,\n modelValue: _ctx.formData[slotRow.slotName],\n \"onUpdate:modelValue\": $event => _ctx.formData[slotRow.slotName] = $event,\n clearable: \"\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"onUpdate:modelValue\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" <FileUpload v-if=\\\"slotRow.type === '20'\\\" v-model=\\\"formData[slotRow.slotName]\\\" :limit=\\\"1\\\" @emits=\\\"(eventData) => handleEmits(eventData, slotRow.slotName)\\\" />\"), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" {url:\\\"/infra/file/uploadFile\\\",autoClose:true,multiple:true,query:false,js:js})\"), slotRow.type === '20' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_olUploadFile, {\n key: 2,\n slotName: slotRow.slotName,\n column: this.form.column.find(item => item.prop === slotRow.slotName),\n url: \"/infra/file/uploadFile\",\n testMode: true,\n multiple: true,\n fileListData: _ctx.formData[slotRow.slotName],\n onUploadChange: _ctx.uploadChange\n }, null, 8 /* PROPS */, [\"slotName\", \"column\", \"fileListData\", \"onUploadChange\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), slotRow.type === 'tree' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_cascader, {\n key: 3,\n style: {\n \"width\": \"100%\"\n },\n modelValue: _ctx.formData[slotRow.slotName],\n \"onUpdate:modelValue\": $event => _ctx.formData[slotRow.slotName] = $event,\n options: _ctx.getCascaderOptions(slotRow.slotName),\n props: _ctx.elCascaderProps,\n clearable: \"\",\n filterable: \"\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"onUpdate:modelValue\", \"options\", \"props\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true)])\n };\n })]), 1032 /* PROPS, DYNAMIC_SLOTS */, [\"option\", \"modelValue\"])) : ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_VFormRender, {\n key: 1,\n \"form-json\": _ctx.form,\n \"form-data\": _ctx.formData,\n \"option-data\": _ctx.optionData,\n ref: \"formRef\"\n }, null, 8 /* PROPS */, [\"form-json\", \"form-data\", \"option-data\"]))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"max-height\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"title\", \"width\"])), [[_directive_loading, _ctx.state.loading]]) : ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_scrollbar, {\n key: 1,\n modelValue: _ctx.state.dialogVisible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => _ctx.state.dialogVisible = $event),\n \"max-height\": _ctx.state.maxHeight\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [_ctx.state.type == '0' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_avue_form, {\n key: _ctx.state.key,\n ref: \"formRef\",\n option: _ctx.form,\n modelValue: _ctx.formData,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => _ctx.formData = $event)\n }, (0,vue__WEBPACK_IMPORTED_MODULE_2__.createSlots)({\n _: 2 /* DYNAMIC */\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.renderList)(_ctx.dynamicSlotsTable, slotRow => {\n return {\n name: slotRow.slotName,\n fn: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(({\n disabled,\n size\n }) => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" 根据配置动态渲染插槽内容 \"), slotRow.type == '22' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_ol_table_select, {\n key: 0,\n onOlTableSelectChange: _ctx.olTableSelectChange,\n slotName: slotRow.slotName,\n http: _ctx.http,\n defaultValue: _ctx.formData[slotRow.slotName],\n uuid: slotRow.config.uuid,\n disabled: disabled,\n size: size,\n config: slotRow.config\n }, null, 8 /* PROPS */, [\"onOlTableSelectChange\", \"slotName\", \"http\", \"defaultValue\", \"uuid\", \"disabled\", \"size\", \"config\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), slotRow.type == '21' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_IconSelect, {\n key: 1,\n modelValue: _ctx.formData[slotRow.slotName],\n \"onUpdate:modelValue\": $event => _ctx.formData[slotRow.slotName] = $event,\n clearable: \"\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"onUpdate:modelValue\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), slotRow.type === '20' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_FileUpload, {\n key: 2,\n modelValue: _ctx.formData[slotRow.slotName],\n \"onUpdate:modelValue\": $event => _ctx.formData[slotRow.slotName] = $event,\n limit: 1,\n onEmits: _ctx.emits\n }, null, 8 /* PROPS */, [\"modelValue\", \"onUpdate:modelValue\", \"onEmits\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true)])\n };\n })]), 1032 /* PROPS, DYNAMIC_SLOTS */, [\"option\", \"modelValue\"])) : ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_VFormRender, {\n key: 1,\n \"form-json\": _ctx.form,\n \"form-data\": _ctx.formData,\n \"option-data\": _ctx.optionData,\n ref: \"formRef\"\n }, null, 8 /* PROPS */, [\"form-json\", \"form-data\", \"option-data\"]))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"max-height\"]))]);\n}\n\n//# sourceURL=webpack://olp-table/./src/components/table/ol-form/index.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
1678
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.find.js */ \"./node_modules/core-js/modules/es.iterator.find.js\");\n/* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nconst _hoisted_1 = {\n class: \"el-date-table-cell__text\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ol_table_select = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"ol-table-select\");\n const _component_IconSelect = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"IconSelect\");\n const _component_olUploadFile = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"olUploadFile\");\n const _component_el_cascader = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-cascader\");\n const _component_el_date_picker = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-date-picker\");\n const _component_avue_form = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"avue-form\");\n const _component_VFormRender = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"VFormRender\");\n const _component_el_scrollbar = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-scrollbar\");\n const _component_el_button = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-button\");\n const _component_el_dialog = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-dialog\");\n const _component_FileUpload = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"FileUpload\");\n const _directive_loading = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveDirective)(\"loading\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementBlock)(\"div\", null, [_ctx.isDialog === true && _ctx.state.isDialog === true ? (0,vue__WEBPACK_IMPORTED_MODULE_2__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_dialog, {\n key: 0,\n modelValue: _ctx.state.dialogVisible,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => _ctx.state.dialogVisible = $event),\n title: _ctx.state.title,\n \"align-center\": \"\",\n \"destroy-on-close\": \"\",\n width: _ctx.state.width,\n \"close-on-click-modal\": false\n }, {\n footer: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_button, {\n onClick: _ctx.close\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => _cache[4] || (_cache[4] = [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)(\"返 回\")])),\n _: 1 /* STABLE */,\n __: [4]\n }, 8 /* PROPS */, [\"onClick\"]), _ctx.show ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_button, {\n key: 0,\n type: \"primary\",\n loading: _ctx.state.loading,\n onClick: _ctx.doSave\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => _cache[5] || (_cache[5] = [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)(\"保 存\")])),\n _: 1 /* STABLE */,\n __: [5]\n }, 8 /* PROPS */, [\"loading\", \"onClick\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true)]),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_scrollbar, {\n \"max-height\": _ctx.state.maxHeight,\n style: {\n \"padding-right\": \"10px\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [_ctx.state.type == '0' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_avue_form, {\n key: _ctx.state.key,\n ref: \"formRef\",\n option: _ctx.form,\n modelValue: _ctx.formData,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => _ctx.formData = $event)\n }, (0,vue__WEBPACK_IMPORTED_MODULE_2__.createSlots)({\n _: 2 /* DYNAMIC */\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.renderList)(_ctx.dynamicSlotsTable, slotRow => {\n return {\n name: slotRow.slotName,\n fn: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(({\n disabled,\n size\n }) => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" 根据配置动态渲染插槽内容 \"), slotRow.type == '22' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_ol_table_select, {\n key: 0,\n onOlTableSelectChange: _ctx.olTableSelectChange,\n slotName: slotRow.slotName,\n http: _ctx.http,\n defaultValue: _ctx.formData[slotRow.slotName],\n uuid: slotRow.config.uuid,\n disabled: disabled,\n size: size,\n config: slotRow.config\n }, null, 8 /* PROPS */, [\"onOlTableSelectChange\", \"slotName\", \"http\", \"defaultValue\", \"uuid\", \"disabled\", \"size\", \"config\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), slotRow.type == '21' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_IconSelect, {\n key: 1,\n modelValue: _ctx.formData[slotRow.slotName],\n \"onUpdate:modelValue\": $event => _ctx.formData[slotRow.slotName] = $event,\n clearable: \"\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"onUpdate:modelValue\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" <FileUpload v-if=\\\"slotRow.type === '20'\\\" v-model=\\\"formData[slotRow.slotName]\\\" :limit=\\\"1\\\" @emits=\\\"(eventData) => handleEmits(eventData, slotRow.slotName)\\\" />\"), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" {url:\\\"/infra/file/uploadFile\\\",autoClose:true,multiple:true,query:false,js:js})\"), slotRow.type === '20' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_olUploadFile, {\n key: 2,\n slotName: slotRow.slotName,\n column: this.form.column.find(item => item.prop === slotRow.slotName),\n url: \"/infra/file/uploadFile\",\n testMode: true,\n multiple: true,\n fileListData: _ctx.formData[slotRow.slotName],\n onUploadChange: _ctx.uploadChange\n }, null, 8 /* PROPS */, [\"slotName\", \"column\", \"fileListData\", \"onUploadChange\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), slotRow.type === 'tree' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_cascader, {\n key: 3,\n style: {\n \"width\": \"100%\"\n },\n modelValue: _ctx.formData[slotRow.slotName],\n \"onUpdate:modelValue\": $event => _ctx.formData[slotRow.slotName] = $event,\n options: _ctx.getCascaderOptions(slotRow.slotName),\n props: _ctx.elCascaderProps,\n clearable: \"\",\n filterable: \"\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"onUpdate:modelValue\", \"options\", \"props\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), slotRow.type === 'month' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_date_picker, {\n key: 4,\n style: {\n \"width\": \"100%\"\n },\n modelValue: _ctx.formData[slotRow.slotName],\n \"onUpdate:modelValue\": $event => _ctx.formData[slotRow.slotName] = $event,\n type: slotRow.type,\n \"value-format\": slotRow.valueFormat,\n format: slotRow.format,\n placeholder: \"选择月份\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(cell => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_2__.normalizeClass)([\"el-date-table-cell\", {\n current: cell.isCurrent,\n selected: cell.isSelected\n }])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"span\", _hoisted_1, (0,vue__WEBPACK_IMPORTED_MODULE_2__.toDisplayString)(_ctx.getChineseMonth(cell.text)), 1 /* TEXT */)], 2 /* CLASS */)]),\n _: 2 /* DYNAMIC */\n }, 1032 /* PROPS, DYNAMIC_SLOTS */, [\"modelValue\", \"onUpdate:modelValue\", \"type\", \"value-format\", \"format\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true)])\n };\n })]), 1032 /* PROPS, DYNAMIC_SLOTS */, [\"option\", \"modelValue\"])) : ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_VFormRender, {\n key: 1,\n \"form-json\": _ctx.form,\n \"form-data\": _ctx.formData,\n \"option-data\": _ctx.optionData,\n ref: \"formRef\"\n }, null, 8 /* PROPS */, [\"form-json\", \"form-data\", \"option-data\"]))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"max-height\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"title\", \"width\"])), [[_directive_loading, _ctx.state.loading]]) : ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_scrollbar, {\n key: 1,\n modelValue: _ctx.state.dialogVisible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => _ctx.state.dialogVisible = $event),\n \"max-height\": _ctx.state.maxHeight\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [_ctx.state.type == '0' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_avue_form, {\n key: _ctx.state.key,\n ref: \"formRef\",\n option: _ctx.form,\n modelValue: _ctx.formData,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => _ctx.formData = $event)\n }, (0,vue__WEBPACK_IMPORTED_MODULE_2__.createSlots)({\n _: 2 /* DYNAMIC */\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.renderList)(_ctx.dynamicSlotsTable, slotRow => {\n return {\n name: slotRow.slotName,\n fn: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(({\n disabled,\n size\n }) => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" 根据配置动态渲染插槽内容 \"), slotRow.type == '22' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_ol_table_select, {\n key: 0,\n onOlTableSelectChange: _ctx.olTableSelectChange,\n slotName: slotRow.slotName,\n http: _ctx.http,\n defaultValue: _ctx.formData[slotRow.slotName],\n uuid: slotRow.config.uuid,\n disabled: disabled,\n size: size,\n config: slotRow.config\n }, null, 8 /* PROPS */, [\"onOlTableSelectChange\", \"slotName\", \"http\", \"defaultValue\", \"uuid\", \"disabled\", \"size\", \"config\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), slotRow.type == '21' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_IconSelect, {\n key: 1,\n modelValue: _ctx.formData[slotRow.slotName],\n \"onUpdate:modelValue\": $event => _ctx.formData[slotRow.slotName] = $event,\n clearable: \"\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"onUpdate:modelValue\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), slotRow.type === '20' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_FileUpload, {\n key: 2,\n modelValue: _ctx.formData[slotRow.slotName],\n \"onUpdate:modelValue\": $event => _ctx.formData[slotRow.slotName] = $event,\n limit: 1,\n onEmits: _ctx.emits\n }, null, 8 /* PROPS */, [\"modelValue\", \"onUpdate:modelValue\", \"onEmits\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true)])\n };\n })]), 1032 /* PROPS, DYNAMIC_SLOTS */, [\"option\", \"modelValue\"])) : ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_VFormRender, {\n key: 1,\n \"form-json\": _ctx.form,\n \"form-data\": _ctx.formData,\n \"option-data\": _ctx.optionData,\n ref: \"formRef\"\n }, null, 8 /* PROPS */, [\"form-json\", \"form-data\", \"option-data\"]))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"max-height\"]))]);\n}\n\n//# sourceURL=webpack://olp-table/./src/components/table/ol-form/index.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
1679
1679
 
1680
1680
  /***/ }),
1681
1681
 
@@ -1686,7 +1686,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
1686
1686
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1687
1687
 
1688
1688
  "use strict";
1689
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.find.js */ \"./node_modules/core-js/modules/es.iterator.find.js\");\n/* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nconst _hoisted_1 = {\n style: {\n \"padding-right\": \"10px\",\n \"height\": \"86vh\"\n }\n};\nconst _hoisted_2 = {\n class: \"footer-container\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ol_table_select = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"ol-table-select\");\n const _component_IconSelect = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"IconSelect\");\n const _component_olUploadFile = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"olUploadFile\");\n const _component_el_cascader = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-cascader\");\n const _component_avue_form = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"avue-form\");\n const _component_model_index = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"model-index\");\n const _component_el_button = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-button\");\n const _component_el_row = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-row\");\n const _component_el_dialog = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-dialog\");\n const _directive_loading = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveDirective)(\"loading\");\n return _ctx.isDialog === true && _ctx.state.isDialog === true ? (0,vue__WEBPACK_IMPORTED_MODULE_2__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_dialog, {\n key: 0,\n modelValue: _ctx.state.dialogVisible,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => _ctx.state.dialogVisible = $event),\n title: _ctx.state.title,\n \"align-center\": \"\",\n \"destroy-on-close\": \"\",\n fullscreen: \"\",\n \"close-on-click-modal\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", _hoisted_1, [((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_avue_form, {\n key: _ctx.state.key,\n ref: \"formRef\",\n option: _ctx.form,\n modelValue: _ctx.formData,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => _ctx.formData = $event)\n }, (0,vue__WEBPACK_IMPORTED_MODULE_2__.createSlots)({\n _: 2 /* DYNAMIC */\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.renderList)(_ctx.dynamicSlotsTable, slotRow => {\n return {\n name: slotRow.slotName,\n fn: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(({\n disabled,\n size\n }) => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" 根据配置动态渲染插槽内容 \"), slotRow.type == '22' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_ol_table_select, {\n key: 0,\n onOlTableSelectChange: $options.olTableSelectChange,\n slotName: slotRow.slotName,\n http: _ctx.http,\n defaultValue: _ctx.formData[slotRow.slotName],\n uuid: slotRow.config.uuid,\n disabled: disabled,\n size: size,\n config: slotRow.config\n }, null, 8 /* PROPS */, [\"onOlTableSelectChange\", \"slotName\", \"http\", \"defaultValue\", \"uuid\", \"disabled\", \"size\", \"config\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), slotRow.type == '21' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_IconSelect, {\n key: 1,\n modelValue: _ctx.formData[slotRow.slotName],\n \"onUpdate:modelValue\": $event => _ctx.formData[slotRow.slotName] = $event,\n clearable: \"\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"onUpdate:modelValue\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" <FileUpload v-if=\\\"slotRow.type === '20'\\\" v-model=\\\"formData[slotRow.slotName]\\\" :limit=\\\"1\\\" @emits=\\\"(eventData) => handleEmits(eventData, slotRow.slotName)\\\" />\"), slotRow.type === '20' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_olUploadFile, {\n key: 2,\n slotName: slotRow.slotName,\n column: this.form.column.find(item => item.prop === slotRow.slotName),\n url: \"/infra/file/uploadFile\",\n testMode: false,\n multiple: true,\n fileListData: _ctx.formData[slotRow.slotName],\n onUploadChange: _ctx.uploadChange\n }, null, 8 /* PROPS */, [\"slotName\", \"column\", \"fileListData\", \"onUploadChange\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), slotRow.type === 'tree' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_cascader, {\n key: 3,\n style: {\n \"width\": \"100%\"\n },\n modelValue: _ctx.formData[slotRow.slotName],\n \"onUpdate:modelValue\": $event => _ctx.formData[slotRow.slotName] = $event,\n options: _ctx.getCascaderOptions(slotRow.slotName),\n props: _ctx.elCascaderProps,\n clearable: \"\",\n filterable: \"\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"onUpdate:modelValue\", \"options\", \"props\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true)])\n };\n })]), 1032 /* PROPS, DYNAMIC_SLOTS */, [\"option\", \"modelValue\"])), _ctx.state.uuid ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_model_index, {\n key: 0,\n ref: \"subTable\",\n uuid: _ctx.state.uuid,\n http: $options.https,\n onInitOk: $options.ok\n }, null, 8 /* PROPS */, [\"uuid\", \"http\", \"onInitOk\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true)]), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_row, {\n style: {\n \"height\": \"50px\",\n \"padding\": \"10px 20px 0 0\",\n \"border-top\": \"1px solid #e8eaec\",\n \"background\": \"white\",\n \"justify-content\": \"right\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_button, {\n onClick: _ctx.close\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => _cache[2] || (_cache[2] = [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)(\"返 回\")])),\n _: 1 /* STABLE */,\n __: [2]\n }, 8 /* PROPS */, [\"onClick\"]), _ctx.show ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_button, {\n key: 0,\n type: \"primary\",\n loading: _ctx.state.loading,\n onClick: _ctx.doSave\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => _cache[3] || (_cache[3] = [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)(\"保 存\")])),\n _: 1 /* STABLE */,\n __: [3]\n }, 8 /* PROPS */, [\"loading\", \"onClick\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true)]),\n _: 1 /* STABLE */\n })])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"title\"])), [[_directive_loading, _ctx.state.loading]]) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true);\n}\n\n//# sourceURL=webpack://olp-table/./src/components/table/ol-main-form-sub-table/index.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
1689
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.find.js */ \"./node_modules/core-js/modules/es.iterator.find.js\");\n/* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nconst _hoisted_1 = {\n style: {\n \"padding-right\": \"10px\",\n \"height\": \"86vh\"\n }\n};\nconst _hoisted_2 = {\n class: \"el-date-table-cell__text\"\n};\nconst _hoisted_3 = {\n class: \"footer-container\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ol_table_select = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"ol-table-select\");\n const _component_IconSelect = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"IconSelect\");\n const _component_olUploadFile = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"olUploadFile\");\n const _component_el_cascader = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-cascader\");\n const _component_el_date_picker = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-date-picker\");\n const _component_avue_form = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"avue-form\");\n const _component_model_index = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"model-index\");\n const _component_el_button = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-button\");\n const _component_el_row = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-row\");\n const _component_el_dialog = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-dialog\");\n const _directive_loading = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveDirective)(\"loading\");\n return _ctx.isDialog === true && _ctx.state.isDialog === true ? (0,vue__WEBPACK_IMPORTED_MODULE_2__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_dialog, {\n key: 0,\n modelValue: _ctx.state.dialogVisible,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => _ctx.state.dialogVisible = $event),\n title: _ctx.state.title,\n \"align-center\": \"\",\n \"destroy-on-close\": \"\",\n fullscreen: \"\",\n \"close-on-click-modal\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", _hoisted_1, [((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_avue_form, {\n key: _ctx.state.key,\n ref: \"formRef\",\n option: _ctx.form,\n modelValue: _ctx.formData,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => _ctx.formData = $event)\n }, (0,vue__WEBPACK_IMPORTED_MODULE_2__.createSlots)({\n _: 2 /* DYNAMIC */\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.renderList)(_ctx.dynamicSlotsTable, slotRow => {\n return {\n name: slotRow.slotName,\n fn: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(({\n disabled,\n size\n }) => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" 根据配置动态渲染插槽内容 \"), slotRow.type == '22' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_ol_table_select, {\n key: 0,\n onOlTableSelectChange: $options.olTableSelectChange,\n slotName: slotRow.slotName,\n http: _ctx.http,\n defaultValue: _ctx.formData[slotRow.slotName],\n uuid: slotRow.config.uuid,\n disabled: disabled,\n size: size,\n config: slotRow.config\n }, null, 8 /* PROPS */, [\"onOlTableSelectChange\", \"slotName\", \"http\", \"defaultValue\", \"uuid\", \"disabled\", \"size\", \"config\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), slotRow.type == '21' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_IconSelect, {\n key: 1,\n modelValue: _ctx.formData[slotRow.slotName],\n \"onUpdate:modelValue\": $event => _ctx.formData[slotRow.slotName] = $event,\n clearable: \"\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"onUpdate:modelValue\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" <FileUpload v-if=\\\"slotRow.type === '20'\\\" v-model=\\\"formData[slotRow.slotName]\\\" :limit=\\\"1\\\" @emits=\\\"(eventData) => handleEmits(eventData, slotRow.slotName)\\\" />\"), slotRow.type === '20' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_olUploadFile, {\n key: 2,\n slotName: slotRow.slotName,\n column: this.form.column.find(item => item.prop === slotRow.slotName),\n url: \"/infra/file/uploadFile\",\n testMode: false,\n multiple: true,\n fileListData: _ctx.formData[slotRow.slotName],\n onUploadChange: _ctx.uploadChange\n }, null, 8 /* PROPS */, [\"slotName\", \"column\", \"fileListData\", \"onUploadChange\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), slotRow.type === 'tree' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_cascader, {\n key: 3,\n style: {\n \"width\": \"100%\"\n },\n modelValue: _ctx.formData[slotRow.slotName],\n \"onUpdate:modelValue\": $event => _ctx.formData[slotRow.slotName] = $event,\n options: _ctx.getCascaderOptions(slotRow.slotName),\n props: _ctx.elCascaderProps,\n clearable: \"\",\n filterable: \"\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"onUpdate:modelValue\", \"options\", \"props\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), slotRow.type === 'month' ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_date_picker, {\n key: 4,\n style: {\n \"width\": \"100%\"\n },\n modelValue: _ctx.formData[slotRow.slotName],\n \"onUpdate:modelValue\": $event => _ctx.formData[slotRow.slotName] = $event,\n type: slotRow.type,\n \"value-format\": slotRow.valueFormat,\n format: slotRow.format,\n placeholder: \"选择月份\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(cell => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_2__.normalizeClass)([\"el-date-table-cell\", {\n current: cell.isCurrent,\n selected: cell.isSelected\n }])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"span\", _hoisted_2, (0,vue__WEBPACK_IMPORTED_MODULE_2__.toDisplayString)(_ctx.getChineseMonth(cell.text)), 1 /* TEXT */)], 2 /* CLASS */)]),\n _: 2 /* DYNAMIC */\n }, 1032 /* PROPS, DYNAMIC_SLOTS */, [\"modelValue\", \"onUpdate:modelValue\", \"type\", \"value-format\", \"format\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true)])\n };\n })]), 1032 /* PROPS, DYNAMIC_SLOTS */, [\"option\", \"modelValue\"])), _ctx.state.uuid ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_model_index, {\n key: 0,\n ref: \"subTable\",\n uuid: _ctx.state.uuid,\n http: $options.https,\n onInitOk: $options.ok\n }, null, 8 /* PROPS */, [\"uuid\", \"http\", \"onInitOk\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true)]), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_row, {\n style: {\n \"height\": \"50px\",\n \"padding\": \"10px 20px 0 0\",\n \"border-top\": \"1px solid #e8eaec\",\n \"background\": \"white\",\n \"justify-content\": \"right\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_button, {\n onClick: _ctx.close\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => _cache[2] || (_cache[2] = [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)(\"返 回\")])),\n _: 1 /* STABLE */,\n __: [2]\n }, 8 /* PROPS */, [\"onClick\"]), _ctx.show ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_button, {\n key: 0,\n type: \"primary\",\n loading: _ctx.state.loading,\n onClick: _ctx.doSave\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => _cache[3] || (_cache[3] = [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)(\"保 存\")])),\n _: 1 /* STABLE */,\n __: [3]\n }, 8 /* PROPS */, [\"loading\", \"onClick\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true)]),\n _: 1 /* STABLE */\n })])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"title\"])), [[_directive_loading, _ctx.state.loading]]) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true);\n}\n\n//# sourceURL=webpack://olp-table/./src/components/table/ol-main-form-sub-table/index.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
1690
1690
 
1691
1691
  /***/ }),
1692
1692
 
@@ -1741,7 +1741,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
1741
1741
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1742
1742
 
1743
1743
  "use strict";
1744
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);\n\nconst _hoisted_1 = [\"title\"];\nconst _hoisted_2 = {\n key: 1\n};\nconst _hoisted_3 = {\n key: 2\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"el-button\");\n const _directive_hasPermi = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveDirective)(\"hasPermi\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"left\", {}, undefined, true), _ctx.$attrs.value !== undefined ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n key: 0\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)(_ctx.$attrs.value, obj => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_el_button, {\n size: $props.size,\n key: obj.code,\n status: obj['status'],\n type: obj['status'],\n disabled: obj['disabled'],\n circle: obj.alignMode === 'right' && !obj['status'],\n loading: $data.loading[obj.code],\n onClick: $event => $options.handleToolbarBtnClick(obj.code)\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [obj.alignMode === 'right' && !obj['status'] ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", {\n key: 0,\n title: obj.name\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(obj['icon'])\n }, null, 2 /* CLASS */)], 8 /* PROPS */, _hoisted_1)) : obj.code === 'sortable' ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", {\n style: {\n \"color\": \"#1677FF\"\n },\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(obj.values ? 'vxe-icon-checkbox-checked' : 'vxe-icon-checkbox-unchecked')\n }, null, 2 /* CLASS */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(obj['name']), 1 /* TEXT */)])) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(obj['icon'])\n }, null, 2 /* CLASS */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(obj['name']), 1 /* TEXT */)]))]),\n _: 2 /* DYNAMIC */\n }, 1032 /* PROPS, DYNAMIC_SLOTS */, [\"size\", \"status\", \"type\", \"disabled\", \"circle\", \"loading\", \"onClick\"])), [[_directive_hasPermi, [$props.currentPermi + obj.code]], [vue__WEBPACK_IMPORTED_MODULE_0__.vShow, obj['show']]]);\n }), 128 /* KEYED_FRAGMENT */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"right\", {}, undefined, true)]);\n}\n\n//# sourceURL=webpack://olp-table/./src/components/table/ol-table-tool-btn/index.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
1744
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);\n\nconst _hoisted_1 = {\n key: 0\n};\nconst _hoisted_2 = [\"title\"];\nconst _hoisted_3 = {\n key: 2\n};\nconst _hoisted_4 = {\n key: 3\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_icon = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"icon\");\n const _component_el_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"el-button\");\n const _directive_hasPermi = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveDirective)(\"hasPermi\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"left\", {}, undefined, true), _ctx.$attrs.value !== undefined ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n key: 0\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)(_ctx.$attrs.value, obj => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_el_button, {\n size: $props.size,\n key: obj.code,\n status: obj['status'],\n type: obj['status'],\n disabled: obj['disabled'],\n circle: obj.alignMode === 'right' && !obj['status'],\n loading: $data.loading[obj.code],\n onClick: $event => $options.handleToolbarBtnClick(obj.code)\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [obj['icon'] && obj['icon'].includes('ep') ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_icon, {\n icon: obj['icon']\n }, null, 8 /* PROPS */, [\"icon\"])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), obj.alignMode === 'right' && !obj['status'] ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", {\n key: 1,\n title: obj.name\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(obj['icon'])\n }, null, 2 /* CLASS */)], 8 /* PROPS */, _hoisted_2)) : obj.code === 'sortable' ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", {\n style: {\n \"color\": \"#1677FF\"\n },\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(obj.values ? 'vxe-icon-checkbox-checked' : 'vxe-icon-checkbox-unchecked')\n }, null, 2 /* CLASS */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(obj['name']), 1 /* TEXT */)])) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(obj['icon'])\n }, null, 2 /* CLASS */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(obj['name']), 1 /* TEXT */)]))]),\n _: 2 /* DYNAMIC */\n }, 1032 /* PROPS, DYNAMIC_SLOTS */, [\"size\", \"status\", \"type\", \"disabled\", \"circle\", \"loading\", \"onClick\"])), [[_directive_hasPermi, [$props.currentPermi + obj.code]], [vue__WEBPACK_IMPORTED_MODULE_0__.vShow, obj['show']]]);\n }), 128 /* KEYED_FRAGMENT */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"right\", {}, undefined, true)]);\n}\n\n//# sourceURL=webpack://olp-table/./src/components/table/ol-table-tool-btn/index.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
1745
1745
 
1746
1746
  /***/ }),
1747
1747
 
@@ -12700,7 +12700,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
12700
12700
  \**********************************/
12701
12701
  /***/ (function(module) {
12702
12702
 
12703
- eval("module.exports = {\n //服务地址\n SERVER_ADDR: \"http://172.18.10.13:8888\"\n};\n\n//# sourceURL=webpack://olp-table/./src/config/dev-config.js?");
12703
+ eval("module.exports = {\n //服务地址\n SERVER_ADDR: \"http://127.0.0.1:8888\"\n};\n\n//# sourceURL=webpack://olp-table/./src/config/dev-config.js?");
12704
12704
 
12705
12705
  /***/ }),
12706
12706
 
@@ -12764,7 +12764,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _sty
12764
12764
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
12765
12765
 
12766
12766
  "use strict";
12767
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DefaultMethods: function() { return /* binding */ DefaultMethods; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.iterator.for-each.js */ \"./node_modules/core-js/modules/es.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.iterator.map.js */ \"./node_modules/core-js/modules/es.iterator.map.js\");\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_iterator_some_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.iterator.some.js */ \"./node_modules/core-js/modules/es.iterator.some.js\");\n/* harmony import */ var core_js_modules_es_iterator_some_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_some_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.set.difference.v2.js */ \"./node_modules/core-js/modules/es.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_es_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.set.intersection.v2.js */ \"./node_modules/core-js/modules/es.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_es_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_es_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_es_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var core_js_modules_es_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/es.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/es.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_es_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var core_js_modules_es_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/es.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/es.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_es_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var core_js_modules_es_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! core-js/modules/es.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/es.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_es_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var core_js_modules_es_set_union_v2_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! core-js/modules/es.set.union.v2.js */ \"./node_modules/core-js/modules/es.set.union.v2.js\");\n/* harmony import */ var core_js_modules_es_set_union_v2_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_union_v2_js__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _utils_tree__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/utils/tree */ \"./src/utils/tree.js\");\n/* harmony import */ var _utils_message__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/utils/message */ \"./src/utils/message.js\");\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n/* harmony import */ var _utils_ExcelUtil__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/utils/ExcelUtil */ \"./src/utils/ExcelUtil.js\");\n/* harmony import */ var vxe_table__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! vxe-table */ \"vxe-table\");\n/* harmony import */ var vxe_table__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(vxe_table__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var _utils_groupCompute__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @/utils/groupCompute */ \"./src/utils/groupCompute.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst message = (0,_utils_message__WEBPACK_IMPORTED_MODULE_13__.useMessage)(); // 消息弹窗\nconst DefaultMethods = {\n methods: {\n //删除主子表 支持一个主表多个子表\n async doRemoveMainAndSub({\n obj,\n row\n }, subTableName, whereObj, subForeignKey, content) {\n if (content) {\n let type = await vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.confirm({\n content: content,\n title: '提示',\n status: 'warning'\n });\n if (type == \"cancel\") {\n return;\n }\n }\n //为了兼容以前的写法subForeignKey是对象的话直接转换成字符串\n if (subForeignKey instanceof Object) {\n for (let key of Object.keys(subForeignKey)) {\n subForeignKey = subForeignKey[key];\n }\n }\n this.doPostAes(obj.code, '/online/crudAes/deleteMainAndSubs', {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n subTableName: subTableName,\n //tableName1,tableName2\n whereMap: this.doGetWhereMap(row, whereObj),\n //更新条件\n subForeignKey: subForeignKey // fk1,fk2\n });\n },\n getUniKey() {\n if (!this.tableConfig.cardKey) {\n return this.formMainList.edit.formMain.updateKey.trim();\n }\n return this.tableConfig.cardKey.trim();\n },\n /**\r\n * 操作列保存:直接在操作按钮的自定义事件加入代码:this.doOneSave(o,'是否要保存数据')\r\n * @param obj 单击按钮的对象\r\n * @param row 单击当前行\r\n * @param content 提示内容\r\n * @returns {Promise<void>}\r\n */\n async doOneSave({\n obj,\n row\n }, content) {\n if (content) {\n let type = await vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.confirm({\n content: content,\n title: '提示',\n status: 'warning'\n });\n if (type == \"cancel\") {\n return;\n }\n }\n if (!row) {\n vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.message({\n content: \"数据为空!\",\n title: '提示',\n status: 'error'\n });\n return;\n }\n let dataSource = this.table.dataSource;\n if (!dataSource) {\n return;\n }\n let newRow = JSON.parse(JSON.stringify(row));\n try {\n newRow[this.getUniKey()] = '';\n } catch (e) {}\n let params = {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n genIdMap: {\n [this.getUniKey()]: 'uuid'\n },\n columnAndValueMap: this.getColumnTableUpdateValue(this.table.columns, newRow)\n };\n this.doPostAes(obj.code, '/online/crudAes/save', params);\n },\n /**\r\n * 操作列更新:直接在操作按钮的自定义事件加入代码:this.doOneModify(o,'数据库更新字段=数据值,数据库更新字段:列字段,数据库更新字段','数据库更新条件','提示内容')\r\n *\r\n * @param obj 单击按钮的对象\r\n * @param row 单击当前行\r\n * @param updateObj\r\n * @param whereObj\r\n * @param content\r\n * @returns {Promise<void>}\r\n */\n async doOneModify({\n obj,\n row\n }, updateObj, whereObj, content) {\n if (content) {\n let type = await vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.confirm({\n content: content,\n title: '提示',\n status: 'warning'\n });\n if (type == \"cancel\") {\n return;\n }\n }\n let newRow = JSON.parse(JSON.stringify(row));\n this.doPostAes(obj.code, '/online/crudAes/modify', {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n columnAndValueMap: this.doGetColumnAndValueMap(newRow, updateObj),\n //更新字段\n whereMap: this.doGetWhereMap(newRow, whereObj) //更新条件\n });\n },\n /**\r\n * 批量保存数据(包含更新)\r\n * @param code\r\n * @param updateObj\r\n * @param whereObj\r\n * @param content\r\n * @param updateRecords 如果为空,获取全部选中数据\r\n * @returns {Promise<void>}\r\n */\n async doBatchSave(code, content, rows, tableKey, genIdMap) {\n if (content) {\n let type = await vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.confirm({\n content: content,\n title: '提示',\n status: 'warning'\n });\n if (type == \"cancel\") {\n return;\n }\n }\n if (rows == undefined) {\n rows = this.getUpdateRecordsRow();\n }\n if (rows.length == 0) {\n vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.message({\n content: \"无需保存数据!\",\n title: '提示',\n status: 'error'\n });\n return;\n }\n if (tableKey == undefined) {\n tableKey = this.tableConfig.cardKey;\n }\n if (genIdMap == undefined) {\n genIdMap = {};\n for (let tableKeyElement of tableKey.split(\",\")) {\n genIdMap[tableKeyElement.toString()] = 'uuid';\n }\n }\n this.doPostAes(code, '/online/crudAes/batchSave', {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n tableConfigId: this.tableConfig.tableConfigId,\n columnAndValueListMap: rows,\n tableKey: tableKey,\n genIdMap: genIdMap\n });\n },\n /**\r\n * 批量更新\r\n * @param code\r\n * @param updateObj\r\n * @param whereObj\r\n * @param content\r\n * @param updateRecords 如果为空,获取全部选中数据\r\n * @returns {Promise<void>}\r\n */\n async doBatchModify(code, updateObj, whereObj, content, updateRecords) {\n if (content) {\n let type = await vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.confirm({\n content: content,\n title: '提示',\n status: 'warning'\n });\n if (type == \"cancel\") {\n return;\n }\n }\n let rows = updateRecords;\n if (!updateRecords || updateRecords.length <= 0) {\n rows = this.getSelectRows();\n }\n if (rows.length == 0) {\n vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.message({\n content: \"请选数据!\",\n title: '提示',\n status: 'error'\n });\n return;\n }\n let list = [];\n for (const row of rows) {\n list.push({\n columnAndValueMap: this.doGetColumnAndValueMap(row, updateObj),\n //更新字段\n whereMap: this.doGetWhereMap(row, whereObj) //更新条件\n });\n }\n this.doPostAes(code, '/online/crudAes/batchModify', {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n list\n });\n },\n /**\r\n * 直接发送post请求\r\n * @param code\r\n * @param url\r\n * @param params\r\n */\n doPostAes(code, url, params, noQuery) {\n if (code != undefined) {\n this.loading[code] = true;\n }\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_14__.postAes)(this.http, url, params).then(r => {\n if (r != false && noQuery != false) {\n this.query();\n }\n }).finally(() => {\n if (code != undefined) {\n this.loading[code] = false;\n }\n });\n },\n /**\r\n * 根据列配置获取数据库表更新数据\r\n * @param column\r\n * @param formData\r\n * @returns {{}}\r\n */\n getTableUpdateValue(column, formData) {\n let columnAndValueMap = {};\n for (let {\n prop,\n tableField\n } of column) {\n if (!tableField || tableField != '1') {\n continue;\n }\n let value = formData[prop];\n if (value) {\n if (value instanceof String) {\n value = value.trim();\n }\n columnAndValueMap[prop] = value;\n }\n }\n return columnAndValueMap;\n },\n /**\r\n * 获取表格更新列值\r\n * @param column\r\n * @param formData\r\n * @returns {{}}\r\n */\n getColumnTableUpdateValue(column, formData) {\n let columnAndValueMap = {};\n for (let {\n field,\n tableSaveToOtherProp\n } of column) {\n // 勾选,不属于数据库表字段\n if (tableSaveToOtherProp && tableSaveToOtherProp == '1') {\n continue;\n }\n let value = formData[field];\n if (value) {\n if (value instanceof String) {\n value = value.trim();\n }\n columnAndValueMap[field] = value;\n }\n }\n return columnAndValueMap;\n },\n /**\r\n * 获取row更新值\r\n * @param row\r\n * @param updateObj 更新对象,允许为:\"name='xx',name\" 如果name=xx,数据直接赋值,如果没有=,则使用row的值\r\n * @returns {{}}\r\n */\n doGetColumnAndValueMap(row, updateObj) {\n let columnAndValueMap = {};\n for (let key of updateObj.split(\",\")) {\n let k = key.split(\"=\");\n if (k.length == 2) {\n columnAndValueMap[k[0]] = k[1];\n } else {\n k = key.split(\":\");\n columnAndValueMap[k[k.length - 1]] = row[k[0]];\n }\n }\n return columnAndValueMap;\n },\n doGetColumnAndValueAny(rows, updateObj) {\n if (!updateObj) {\n return rows;\n }\n let list = [];\n let keys = [];\n let hasKey = '';\n for (const row of rows) {\n keys = keys.length >= 1 ? keys : Object.keys(row);\n if (!hasKey) {\n hasKey = this.hasUpdateKey(keys, updateObj);\n }\n if (hasKey) {\n Object.assign(row, this.doGetColumnAndValueMap(row, updateObj));\n }\n list.push(row);\n }\n return list;\n },\n hasUpdateKey(keys, updateObj) {\n for (const key of keys) {\n if (updateObj.indexOf(key) >= 0) {\n return '1';\n }\n }\n return '0';\n },\n doGetWhereMap(row, whereObj) {\n let whereMap = {};\n for (let key of whereObj.split(\",\")) {\n let k = key.split(\":\");\n //className:class_name row:{className:'xxx'} whereMap:{class_name}\n whereMap[k[k.length - 1]] = row[k[0]];\n }\n return whereMap;\n },\n /**\r\n * 内置批量删除方法\r\n * @param o\r\n * @returns {Promise<void>}\r\n */\n batchRemove() {\n this.confirm(\"您选中\" + this.getSelectRows().length + '条数据,删除后不可恢复,您确定要删除吗?', '删除提示', 'error').then(type => {\n if (type != \"cancel\") {\n // 1. 子数据存在性校验\n const hasChildData = this.getSelectRows().some(row => row?.children);\n if (hasChildData) {\n return message.error('存在包含子数据的记录,禁止删除!');\n }\n // 2. 分离有ID和无ID数据\n const rowsWithId = [];\n const rowsWithoutId = [];\n this.getSelectRows().forEach(row => {\n this.hasValidId(row) ? rowsWithId.push(row) : rowsWithoutId.push(row);\n });\n\n // 3. 处理无ID数据(前端直接移除)\n if (rowsWithoutId.length > 0) {\n rowsWithoutId.forEach(row => this.removeFromTableByReference(row));\n }\n // 修改点:如果没有有ID的数据,直接返回\n if (rowsWithId.length === 0) return;\n let list = [];\n for (let r of this.getSelectRows()) {\n let p = JSON.parse(JSON.stringify(this.deleteParameter));\n delete p['$parentId'];\n for (let key of Object.keys(p)) {\n p[key] = r[key];\n }\n list.push(p);\n }\n this.loading['batchDelete'] = true;\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_14__.postAes)(this.http, '/online/crudAes/batchDelete', {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n list: list\n }).then(r => {\n if (r != false) {\n this.query();\n }\n }).finally(() => {\n this.loading['batchDelete'] = false;\n });\n }\n });\n },\n /**\r\n * 内置重置方法\r\n * @param o\r\n * @returns {Promise<void>}\r\n */\n resetQuery() {\n for (let k of Object.keys(this.table.formConfig.data)) {\n this.table.formConfig.data[k] = undefined;\n }\n for (let k of Object.keys(this.parameter)) {\n this.parameter[k] = undefined;\n }\n this.initDefaultValue();\n this.query();\n },\n /**\r\n * 内置根据参数查询\r\n * @param o\r\n * @returns {Promise<void>}\r\n */\n queryParams(parameter) {\n if (parameter) {\n Object.assign(this.parameter, parameter);\n }\n return this.query();\n },\n /**\r\n * 内置查询\r\n * @param o\r\n * @returns {Promise<void>}\r\n */\n query() {\n let axios = undefined;\n if (this.tableConfig.definitionSql == 2) {\n if (this.tableConfig.requestType == '1') {\n axios = (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_14__.post)(this.http, this.tableConfig.api, this.getParams(), false, false);\n } else {\n axios = (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_14__.get)(this.http, this.tableConfig.api, this.getParams(), false);\n }\n } else if (this.tableConfig.aes == 1) {\n axios = (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_14__.postAes)(this.http, '/online/crudAes/query', this.getParams(), false, false);\n } else {\n axios = (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_14__.post)(this.http, '/online/crud/query', this.getParams(), false, false);\n }\n this.doQuery(axios);\n },\n async doSetData(data) {\n let respData = data instanceof Array ? data : data.listData;\n const dictRequests = [];\n for (let column of this.table.columns) {\n if (column.visible == 1 && column.params && column.params.tableSelect) {\n dictRequests.push(this.fetchAndMapDictData(respData, column));\n }\n }\n await Promise.all(dictRequests);\n if (this.table.treeConfig) {\n respData = (0,_utils_tree__WEBPACK_IMPORTED_MODULE_12__.handleTree)(respData, this.table.treeConfig.treeId, this.table.treeConfig.treeParentId);\n }\n this.table.data = respData;\n this.doGroupAndCompute(respData);\n this.pagination.total = data.count;\n this.doEvent(\"queryAfter\");\n },\n async doQuery(axios) {\n if (this.loading['select']) {\n return;\n }\n this.table.loading = true;\n this.loading['select'] = true;\n await axios.then(async ({\n data,\n code,\n msg\n }) => {\n if (code != 200 && code != 0) {\n message.error(msg);\n return;\n }\n this.doSetData(data);\n }).finally(() => {\n this.table.loading = false;\n this.loading['select'] = false;\n });\n },\n getPKArrays(value) {\n let uniqueIds = new Set();\n //字段值不为空\n if (value != undefined && value.toString().trim().length > 0) {\n try {\n // 尝试解析 JSON 字符串(如 \"[1,2]\" → [1, 2])\n let parsed = JSON.parse(value);\n if (Array.isArray(parsed)) {\n for (let parsedElement of parsed) {\n uniqueIds.add(parsedElement.toString().trim());\n }\n } else {\n uniqueIds.add(String(value).trim());\n }\n } catch {\n if (value.includes(',')) {\n for (let v of value.trim().split(',')) {\n uniqueIds.add(String(v).trim());\n }\n } else {\n uniqueIds.add(String(value).trim());\n }\n }\n }\n return uniqueIds;\n },\n /**\r\n * 根据动态配置获取并映射字典数据\r\n * @param {Array} typeField - 动态列配置(如 departmentColumnsConfig)\r\n */\n async fetchAndMapDictData(data, column) {\n let uniqueIds = new Set();\n for (let item of data) {\n let value = item[column.field];\n uniqueIds.add(...this.getPKArrays(value));\n }\n if (!column.params) {\n column.params = {\n tableDataObj: {}\n };\n } else if (column.params.tableDataObj) {\n for (let key of Object.keys(column.params.tableDataObj)) {\n uniqueIds.delete(key);\n }\n } else {\n column.params.tableDataObj = {};\n }\n if (uniqueIds.size != 0) {\n // 构造请求参数\n const params = {\n id: column.params.uuid,\n theme: \"t1\",\n enablePage: false,\n queryParameterMapIn: {}\n };\n params.queryParameterMapIn[column.params.key] = Array.from(uniqueIds);\n try {\n return (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_14__.postAes)(this.http, '/online/crudAes/query', params, false, false).then(({\n data\n }) => {\n // 处理API返回数据\n if (data?.listData?.length > 0) {\n data.listData.forEach(item => {\n column.params.tableDataObj[item[column.params.key]] = item[column.params.label];\n });\n }\n });\n } catch (error) {\n console.error('数据请求失败:', params, error);\n return true;\n }\n } else {\n return true;\n }\n },\n /**\r\n * 内置删除方法\r\n * @param o\r\n * @returns {Promise<void>}\r\n */\n remove(o) {\n let {\n row\n } = o;\n this.confirm('数据删除后不可恢复,您确定要删除吗?', '删除提示', 'error').then(type => {\n if (type != \"cancel\") {\n // 校验是否存在子数据\n if (row && row.children) {\n return message.error('存在包含子数据的记录,禁止删除!');\n }\n // 判断是否存在有效ID(兼容字符串和数字类型ID)\n const hasValidId = this.hasValidId(row);\n if (!hasValidId) {\n // 通过对象引用删除(无ID时使用)\n return this.removeFromTableByReference(row);\n }\n let params = {};\n for (let key of Object.keys(this.deleteParameter)) {\n if (key != '$parentId') {\n params[key] = row[key];\n }\n }\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_14__.postAes)(this.http, '/online/crudAes/delete', {\n where: params,\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable\n }).then(r => {\n if (r != false) {\n this.query();\n }\n });\n }\n });\n },\n /**\r\n * 有有效id\r\n * @param row\r\n * @returns {boolean}\r\n */\n hasValidId(row) {\n const idKey = this.getDeleteId(this.deleteParameter);\n const idValue = row[idKey];\n console.log('hasValidId', idKey, idValue);\n return idValue !== undefined && idValue !== null && idValue !== '';\n },\n /**\r\n * 通过对象引用删除(无ID时使用)\r\n * @param o\r\n */\n removeFromTableByReference(o) {\n const index = this.table.data.indexOf(o);\n if (index !== -1) {\n this.table.data.splice(index, 1);\n } else {\n console.error(\"未找到要删除的数据项\");\n }\n },\n /**\r\n * 获取查询参数\r\n * @returns {{enablePage: OTMixinBodyMethods.methods.pagination.enabled, theme: OTMixinBodyMethods.methods.theme, id: OTMixinBodyMethods.methods.uuid}}\r\n */\n getParams() {\n if (this.tableConfig.definitionSql == 2) {\n let params = JSON.parse(JSON.stringify(this.table.formConfig.data));\n if (params.enablePage) {\n params.pageNumber = this.pagination.currentPage;\n params.pageSize = this.pagination.pageSize;\n }\n return {\n ...this.parameter,\n ...params\n };\n }\n let params = {\n id: this.uuid,\n theme: this.theme,\n enablePage: this.pagination.enabled\n };\n if (params.enablePage) {\n params.pageNumber = this.pagination.currentPage;\n params.pageSize = this.pagination.pageSize;\n }\n let paramsKey = [];\n for (let o of this.table.formConfig.items) {\n let value = this.table.formConfig.data[o.key];\n if (value == undefined || value == '' || o.itemRender && o.itemRender.name == '$buttons') {\n continue;\n }\n let key = o.key.replace(/\\$/g, '');\n //文本域\n if (o.itemRender && o.itemRender.name == \"textarea\" && o.type != \"9\") {\n let values = value instanceof Array ? value : value.split(\"\\n\");\n if (values.length != 0) {\n let queryParameterMapIn = [];\n for (let v of values) {\n if (v != undefined && v.toString().trim() != '') {\n queryParameterMapIn.push(v);\n }\n }\n if (queryParameterMapIn.length != 0) {\n if (!params['queryParameterMapIn']) {\n params['queryParameterMapIn'] = {};\n }\n params['queryParameterMapIn'][key] = queryParameterMapIn;\n paramsKey.push(key);\n } else if (params['queryParameterMapIn']) {\n delete params['queryParameterMapIn'][key];\n }\n }\n } else if (value.toString().trim() != '') {\n if (!params['queryParameterListAnd']) {\n params['queryParameterListAnd'] = [];\n }\n let values = value instanceof Array ? value : value.split(\",\");\n if (o.type == \"98\") {\n params['queryParameterListAnd'].push({\n value: values[0],\n key: key,\n type: 5,\n toDate: o.toDate\n });\n params['queryParameterListAnd'].push({\n value: values[1],\n key: key,\n type: 6,\n toDate: o.toDate\n });\n paramsKey.push(key);\n } else if (!(values instanceof Array)) {\n let isNumber = o.selectDom == 7;\n o.value = value;\n //type 查询类型 默认等于1--> 1:= 2:!= 3: > 4:< 5: >= 6: <= 7:like '%value' 8:like '%value%' 9:like 'value%'\n //replace(/\\$/g, '') 目的解决范围\n let obj = {\n value: isNumber ? Number(value) : value,\n key: key,\n type: o.type,\n toDate: o.toDate\n };\n params['queryParameterListAnd'].push(obj);\n paramsKey.push(key);\n } else {\n let isNumber = o.selectDom == 7;\n for (let v of values) {\n if (!v) {\n continue;\n }\n let obj = {\n value: isNumber ? Number(v) : v,\n key: key,\n type: o.type,\n toDate: o.toDate\n };\n params['queryParameterListAnd'].push(obj);\n paramsKey.push(key);\n }\n }\n }\n }\n for (let key of Object.keys(this.parameter)) {\n let v = this.parameter[key];\n if (paramsKey.indexOf(key) === -1 && v != undefined && v != '') {\n if (v instanceof Array) {\n if (!params['queryParameterMapIn']) {\n params['queryParameterMapIn'] = {};\n }\n params['queryParameterMapIn'][key] = v;\n } else {\n if (!params['queryParameterListAnd']) {\n params['queryParameterListAnd'] = [];\n }\n params['queryParameterListAnd'].push({\n key: key,\n value: v\n });\n }\n }\n }\n if (this.orderByColumns.length != 0) {\n params['orderBy'] = this.orderByColumns;\n }\n params.authVo = {\n \"tableAliasFiled\": this.tableConfig.tableAliasFiled,\n \"departmentFiled\": this.tableConfig.departmentFiled,\n \"userFiled\": this.tableConfig.userFiled\n };\n this.doEvent(\"queryBefore\", params);\n return params;\n },\n doEvent(name, params) {\n if (this.events[name]) {\n setTimeout(() => {\n this.$nextTick(() => {\n this.events[name](params);\n });\n }, 100);\n }\n },\n /**\r\n * 导出数据\r\n * @param columns 自定义导出字段 t_id\r\n * @param selectData 选择数据: 当前页数据、勾选行数据、全部数据\r\n * @param name\r\n */\n exportData({\n exportParam,\n cancelEvent\n }) {\n let {\n columns,\n selectData,\n name\n } = exportParam;\n for (let column of this.table.columns) {\n for (let c of columns) {\n if (column.field === c.field && column.params) {\n c.params = column.params;\n }\n }\n }\n let data = [];\n switch (selectData) {\n case '1':\n // 当前页\n data = this.table?.data;\n break;\n case '2':\n // 勾选\n data = this.getSelectRows();\n if (!data || data.length == 0) return message.error('勾选行数据为空!');\n break;\n case '3':\n // 全部数据\n this.exportExcelAll(columns, name);\n break;\n default:\n data = this.table.data;\n break;\n }\n if (selectData != '3') {\n (0,_utils_ExcelUtil__WEBPACK_IMPORTED_MODULE_15__.exportExcel)({\n data: data,\n name: name,\n columns: columns,\n option: {\n align: this.$table ? this.$table.align : 'center'\n }\n });\n }\n cancelEvent();\n },\n /**\r\n * 全部数据导出\r\n * @param fields 自定义导出字段\r\n * @param name 文件名\r\n */\n exportExcelAll(columns, name) {\n let params = this.getParams();\n params.enablePage = false;\n if (this.tableConfig.definitionSql == 2) {\n params.pageNumber = 1;\n params.pageSize = 50000;\n }\n let url = this.tableConfig.definitionSql == 2 ? this.tableConfig.api : '/online/crud/query';\n let method = this.tableConfig.definitionSql == 2 ? this.tableConfig.requestType == '1' ? 'post' : 'get' : 'post';\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_14__.request)(this.http, {\n url: url,\n method: method,\n data: params,\n timeout: 1000 * 90 * 90\n }, false, false).then(({\n data\n }) => {\n let respData = data instanceof Array ? data : data.listData;\n (0,_utils_ExcelUtil__WEBPACK_IMPORTED_MODULE_15__.exportExcel)({\n data: respData,\n name: name,\n columns: columns,\n option: {\n align: this.$table ? this.$table.align : 'center'\n }\n });\n });\n },\n /**\r\n * 内置确认框\r\n * @param content\r\n * @param title\r\n * @param status\r\n * @returns {Promise<\"model\"|\"mask\"|\"close\"|\"confirm\"|\"cancel\"|\"exit\"|\"exist\">}\r\n */\n async confirm(content, title, status) {\n return await vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.confirm({\n content: content,\n title: title,\n status: status\n });\n },\n /**\r\n * 内置调用方法\r\n * @param m\r\n * @param v\r\n * @param d\r\n */\n emits({\n m,\n v,\n d,\n js\n }) {\n if (typeof js === 'string') {\n eval(js);\n } else if (m && this[m]) {\n this[m](v);\n }\n if (d != false) {\n this.customUrl = undefined;\n }\n if (js && typeof js === 'object' && typeof js.callback === 'function') {\n this.executeFunction(js.callback, v);\n } else if (typeof js === 'function') {\n this.executeFunction(js, v);\n }\n },\n /**\r\n * 执行函数\r\n * @param func\r\n * @param v\r\n */\n executeFunction(func, v) {\n if (typeof func !== 'function') return;\n try {\n func.call(this, v);\n } catch (error) {\n console.error('函数执行错误:', error);\n }\n },\n /**\r\n * 设置禁用按钮\r\n * @param ex\r\n */\n setAllBtnDisabled(ex) {\n if (ex) {\n ex = ex.split(\",\");\n } else {\n ex = [];\n }\n for (let toolBtn of this.toolBtn) {\n let disabled = true;\n for (let code of ex) {\n if (toolBtn.code == code) {\n disabled = false;\n }\n }\n toolBtn.disabled = disabled;\n }\n for (let toolBtn of this.operationBtn) {\n let disabled = true;\n for (let code of ex) {\n if (toolBtn.code == code) {\n disabled = false;\n }\n }\n toolBtn.disabled = disabled;\n }\n },\n /**\r\n * 设置工具栏 but\r\n * @param code 编码\r\n * @param key 要设置的key\r\n * @param value 要设置的value\r\n */\n setToolBtn(code, key, value) {\n for (let toolBtn of this.toolBtn) {\n if (toolBtn.code == code) {\n toolBtn[key] = value;\n }\n }\n },\n /**\r\n * 获取工具栏 but\r\n * @param code 编码\r\n * @param key 要设置的key\r\n * @param value 要设置的value\r\n */\n getToolBtn(code) {\n for (let toolBtn of this.toolBtn) {\n if (toolBtn.code == code) {\n return toolBtn;\n }\n }\n },\n /**\r\n * 设置操作按钮 but\r\n * @param code 编码\r\n * @param key 要设置的key\r\n * @param value 要设置的value\r\n */\n setOperationBtn(code, key, value) {\n for (let toolBtn of this.operationBtn) {\n if (toolBtn.code == code) {\n toolBtn[key] = value;\n }\n }\n },\n /**\r\n * 获取修改数据(包括未修改数据)\r\n */\n getUpdateRecords() {\n if (this.$table) {\n return [...this.$table.getInsertRecords(), ...this.$table.getUpdateRecords()];\n }\n },\n /**\r\n * 获取修改数据(包括未修改数据)\r\n */\n getUpdateRecordsRow() {\n let rows = [];\n for (let newRow of this.table.data) {\n rows.push(this.getColumnTableUpdateValue(this.table.columns, newRow));\n }\n return rows;\n },\n /**\r\n * 批量保存\r\n */\n async batchSave(code, content, rows, foreignKey, foreignKeyValue) {\n if (content) {\n let type = await vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.confirm({\n content: content,\n title: '提示',\n status: 'warning'\n });\n if (type == \"cancel\") {\n return;\n }\n }\n if (rows.length == 0) {\n vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.message({\n content: \"请选数据!\",\n title: '提示',\n status: 'error'\n });\n return;\n }\n let list = [];\n let updateList = [];\n let dataSource = this.table.dataSource;\n const srcMap = new Map(dataSource.map(item => [item[this.getUniKey()], item]));\n for (const row of rows) {\n delete row._X_ROW_KEY; //删除_X_ROW_KEY属性\n let rowId = row[this.getUniKey()];\n if (rowId) {\n updateList.push({\n columnAndValueMap: this.getDifferingProperties(row, srcMap.get(row[this.getUniKey()])),\n //更新字段\n whereMap: this.doGetWhereMap(row, this.getUniKey()) //更新条件\n });\n continue;\n }\n let columnTableUpdateValue = this.getColumnTableUpdateValue(this.table.columns, row);\n if (foreignKey) {\n columnTableUpdateValue[foreignKey] = foreignKeyValue ? foreignKeyValue : this.mainId;\n }\n list.push(columnTableUpdateValue);\n }\n if (updateList && updateList.length >= 1) {\n this.doPostAes(code, '/online/crudAes/batchModify', {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n list: updateList\n });\n }\n if (list && list.length >= 1) {\n this.doPostAes(code, '/online/crudAes/batchSave', {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n tableConfigId: this.tableConfig.tableConfigId,\n columnAndValueListMap: list,\n genIdMap: {\n [this.getUniKey()]: 'uuid'\n }\n });\n }\n },\n /**\r\n * 保存修改\r\n */\n async saveUpdate(code, content) {\n let dataSource = this.table.dataSource;\n const srcMap = new Map(dataSource.map(item => [item[this.getUniKey()], item]));\n let rows = [];\n for (const row of this.getUpdateRecords()) {\n let src = srcMap.get(row[this.getUniKey()]);\n rows.push(this.getDifferingProperties(row, src));\n }\n // console.log('saveUpdate:',rows)\n if (content) {\n let type = await vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.confirm({\n content: content,\n title: '提示',\n status: 'warning'\n });\n if (type == \"cancel\") {\n return;\n }\n }\n if (rows.length == 0) {\n vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.message({\n content: \"请选数据!\",\n title: '提示',\n status: 'error'\n });\n return;\n }\n let list = [];\n for (const row of this.getUpdateRecords()) {\n list.push({\n columnAndValueMap: this.getDifferingProperties(row, srcMap.get(row[this.getUniKey()])),\n //更新字段\n whereMap: this.doGetWhereMap(row, this.getUniKey()) //更新条件\n });\n }\n this.doPostAes(code, '/online/crudAes/batchModify', {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n list\n });\n // this.doBatchModify('batchModify', \"age\", this.getUniKey(), \"确认修改编辑数据吗?\", this.getUpdateRecords())\n },\n /**\r\n * 获取新增数据\r\n */\n getInsertEvent() {\n if (this.$table) {\n return this.$table.getInsertRecords();\n }\n },\n /**\r\n * 获取删除数据\r\n * @returns {*}\r\n */\n getRemoveEvent() {\n if (this.$table) {\n return this.$table.getRemoveRecords();\n }\n },\n /**\r\n * 获取选中\r\n * @returns {*|*[]|*[]}\r\n */\n getSelectRows() {\n if (this.selectBox == 1) {\n return this.$table.getRadioRecord() ? [this.$table.getRadioRecord()] : [];\n } else if (this.selectBox == 2) {\n return this.$table.getCheckboxRecords(true);\n }\n },\n updateColumn(rows) {\n this.table['show-footer'] = false;\n if (rows && rows instanceof Array) {\n for (let o of this.table.columns) {\n for (let row of rows) {\n if (row.id == o.id) {\n for (let key of Object.keys(row)) {\n o[key] = row[key];\n }\n }\n }\n this.setColumnHide(o);\n this.setFixed(o);\n this.setShowFooter(o);\n }\n }\n let data = this.table.columns.sort((a, b) => {\n return a.sort - b.sort;\n });\n this.doGroupAndCompute();\n this.$table.reloadColumn(data);\n },\n doGroupAndCompute(dataSource) {\n if (dataSource) {\n this.table.dataSource = JSON.parse(JSON.stringify(dataSource));\n }\n if (this.tableConfig.paging != 2) {\n if (dataSource != undefined) {\n this.table.data = dataSource;\n }\n return;\n }\n let groupKey = [];\n let comValue = [];\n for (let column of this.table.columns) {\n if (column.visible && column.groupToOtherProp == 1) {\n groupKey.push(column.field);\n }\n if (column.groupTotalToOtherProp) {\n comValue.push(column.field + \":\" + column.groupTotalToOtherProp);\n }\n }\n if (dataSource == undefined) {\n dataSource = this.table.dataSource;\n }\n if (groupKey.length != 0 & comValue.length != 0) {\n dataSource = (0,_utils_groupCompute__WEBPACK_IMPORTED_MODULE_17__.groupAndCompute)(groupKey, comValue, dataSource);\n }\n this.table.data = dataSource;\n this.$table.reloadData(this.table.data);\n },\n getDifferingProperties1(tar, src) {\n const differingProperties = {};\n // 假设两个对象都有相同的属性\n for (const key in tar) {\n if (Object.hasOwn(tar, key) && Object.hasOwn(src, key)) {\n if (tar[key] !== src[key]) {\n differingProperties[key] = tar[key]; // 可以选择返回obj2的值,或创建一个数组存放两个值\n }\n }\n }\n return differingProperties;\n },\n getDifferingProperties(tar, src) {\n // 1. 边界处理:非法输入转为空对象\n if (src == null || typeof src !== 'object') src = {};\n if (tar == null || typeof tar !== 'object') tar = {};\n const differingProperties = {};\n\n // 2. 遍历 tar 的自有属性\n for (const key in tar) {\n if (!Object.hasOwn(tar, key)) continue;\n\n // 3. 检查 src 是否有同名自有属性\n if (Object.hasOwn(src, key)) {\n // 4. 深度比较值差异\n if (!this.isEqual(tar[key], src[key])) {\n // 5. 记录差异(存储双方值)\n differingProperties[key] = tar[key];\n }\n }\n // 可选:将 tar 存在而 src 不存在的属性视为差异?\n else {\n differingProperties[key] = tar[key];\n }\n }\n return differingProperties;\n },\n isEqual(a, b) {\n if (a === b) return true;\n if (Number.isNaN(a) && Number.isNaN(b)) return true; // 处理 NaN\n if (typeof a === 'object' && typeof b === 'object') {\n // 简化版深层比较(实际项目建议使用 lodash.isEqual )\n return JSON.stringify(a) === JSON.stringify(b);\n }\n return false;\n }\n }\n};\n\n//# sourceURL=webpack://olp-table/./src/mixins/VTMixin/DefaultMethods.js?");
12767
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DefaultMethods: function() { return /* binding */ DefaultMethods; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.iterator.for-each.js */ \"./node_modules/core-js/modules/es.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.iterator.map.js */ \"./node_modules/core-js/modules/es.iterator.map.js\");\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_iterator_some_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.iterator.some.js */ \"./node_modules/core-js/modules/es.iterator.some.js\");\n/* harmony import */ var core_js_modules_es_iterator_some_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_some_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.set.difference.v2.js */ \"./node_modules/core-js/modules/es.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_es_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.set.intersection.v2.js */ \"./node_modules/core-js/modules/es.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_es_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_es_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_es_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var core_js_modules_es_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/es.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/es.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_es_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var core_js_modules_es_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/es.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/es.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_es_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var core_js_modules_es_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! core-js/modules/es.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/es.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_es_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var core_js_modules_es_set_union_v2_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! core-js/modules/es.set.union.v2.js */ \"./node_modules/core-js/modules/es.set.union.v2.js\");\n/* harmony import */ var core_js_modules_es_set_union_v2_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_union_v2_js__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _utils_tree__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/utils/tree */ \"./src/utils/tree.js\");\n/* harmony import */ var _utils_message__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/utils/message */ \"./src/utils/message.js\");\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n/* harmony import */ var _utils_ExcelUtil__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/utils/ExcelUtil */ \"./src/utils/ExcelUtil.js\");\n/* harmony import */ var vxe_table__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! vxe-table */ \"vxe-table\");\n/* harmony import */ var vxe_table__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(vxe_table__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var _utils_groupCompute__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @/utils/groupCompute */ \"./src/utils/groupCompute.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst message = (0,_utils_message__WEBPACK_IMPORTED_MODULE_13__.useMessage)(); // 消息弹窗\nconst DefaultMethods = {\n methods: {\n //删除主子表 支持一个主表多个子表\n async doRemoveMainAndSub({\n obj,\n row\n }, subTableName, whereObj, subForeignKey, content) {\n if (content) {\n let type = await vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.confirm({\n content: content,\n title: '提示',\n status: 'warning'\n });\n if (type == \"cancel\") {\n return;\n }\n }\n //为了兼容以前的写法subForeignKey是对象的话直接转换成字符串\n if (subForeignKey instanceof Object) {\n for (let key of Object.keys(subForeignKey)) {\n subForeignKey = subForeignKey[key];\n }\n }\n this.doPostAes(obj.code, '/online/crudAes/deleteMainAndSubs', {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n subTableName: subTableName,\n //tableName1,tableName2\n whereMap: this.doGetWhereMap(row, whereObj),\n //更新条件\n subForeignKey: subForeignKey // fk1,fk2\n });\n },\n getUniKey() {\n if (!this.tableConfig.cardKey) {\n return this.formMainList.edit.formMain.updateKey.trim();\n }\n return this.tableConfig.cardKey.trim();\n },\n /**\r\n * 操作列保存:直接在操作按钮的自定义事件加入代码:this.doOneSave(o,'是否要保存数据')\r\n * @param obj 单击按钮的对象\r\n * @param row 单击当前行\r\n * @param content 提示内容\r\n * @returns {Promise<void>}\r\n */\n async doOneSave({\n obj,\n row\n }, content) {\n if (content) {\n let type = await vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.confirm({\n content: content,\n title: '提示',\n status: 'warning'\n });\n if (type == \"cancel\") {\n return;\n }\n }\n if (!row) {\n vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.message({\n content: \"数据为空!\",\n title: '提示',\n status: 'error'\n });\n return;\n }\n let dataSource = this.table.dataSource;\n if (!dataSource) {\n return;\n }\n let newRow = JSON.parse(JSON.stringify(row));\n try {\n newRow[this.getUniKey()] = '';\n } catch (e) {}\n let params = {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n genIdMap: {\n [this.getUniKey()]: 'uuid'\n },\n columnAndValueMap: this.getColumnTableUpdateValue(this.table.columns, newRow)\n };\n this.doPostAes(obj.code, '/online/crudAes/save', params);\n },\n /**\r\n * 操作列更新:直接在操作按钮的自定义事件加入代码:this.doOneModify(o,'数据库更新字段=数据值,数据库更新字段:列字段,数据库更新字段','数据库更新条件','提示内容')\r\n *\r\n * @param obj 单击按钮的对象\r\n * @param row 单击当前行\r\n * @param updateObj\r\n * @param whereObj\r\n * @param content\r\n * @returns {Promise<void>}\r\n */\n async doOneModify({\n obj,\n row\n }, updateObj, whereObj, content) {\n if (content) {\n let type = await vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.confirm({\n content: content,\n title: '提示',\n status: 'warning'\n });\n if (type == \"cancel\") {\n return;\n }\n }\n let newRow = JSON.parse(JSON.stringify(row));\n this.doPostAes(obj.code, '/online/crudAes/modify', {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n columnAndValueMap: this.doGetColumnAndValueMap(newRow, updateObj),\n //更新字段\n whereMap: this.doGetWhereMap(newRow, whereObj) //更新条件\n });\n },\n /**\r\n * 批量保存数据(包含更新)\r\n * @param code\r\n * @param updateObj\r\n * @param whereObj\r\n * @param content\r\n * @param updateRecords 如果为空,获取全部选中数据\r\n * @returns {Promise<void>}\r\n */\n async doBatchSave(code, content, rows, tableKey, genIdMap) {\n if (content) {\n let type = await vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.confirm({\n content: content,\n title: '提示',\n status: 'warning'\n });\n if (type == \"cancel\") {\n return;\n }\n }\n if (rows == undefined) {\n rows = this.getUpdateRecordsRow();\n }\n if (rows.length == 0) {\n vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.message({\n content: \"无需保存数据!\",\n title: '提示',\n status: 'error'\n });\n return;\n }\n if (tableKey == undefined) {\n tableKey = this.tableConfig.cardKey;\n }\n if (genIdMap == undefined) {\n genIdMap = {};\n for (let tableKeyElement of tableKey.split(\",\")) {\n genIdMap[tableKeyElement.toString()] = 'uuid';\n }\n }\n this.doPostAes(code, '/online/crudAes/batchSave', {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n tableConfigId: this.tableConfig.tableConfigId,\n columnAndValueListMap: rows,\n tableKey: tableKey,\n genIdMap: genIdMap\n });\n },\n /**\r\n * 批量更新\r\n * @param code\r\n * @param updateObj\r\n * @param whereObj\r\n * @param content\r\n * @param updateRecords 如果为空,获取全部选中数据\r\n * @returns {Promise<void>}\r\n */\n async doBatchModify(code, updateObj, whereObj, content, updateRecords) {\n if (content) {\n let type = await vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.confirm({\n content: content,\n title: '提示',\n status: 'warning'\n });\n if (type == \"cancel\") {\n return;\n }\n }\n let rows = updateRecords;\n if (!updateRecords || updateRecords.length <= 0) {\n rows = this.getSelectRows();\n }\n if (rows.length == 0) {\n vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.message({\n content: \"请选数据!\",\n title: '提示',\n status: 'error'\n });\n return;\n }\n let list = [];\n for (const row of rows) {\n list.push({\n columnAndValueMap: this.doGetColumnAndValueMap(row, updateObj),\n //更新字段\n whereMap: this.doGetWhereMap(row, whereObj) //更新条件\n });\n }\n this.doPostAes(code, '/online/crudAes/batchModify', {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n list\n });\n },\n /**\r\n * 直接发送post请求\r\n * @param code\r\n * @param url\r\n * @param params\r\n */\n doPostAes(code, url, params, noQuery) {\n if (code != undefined) {\n this.loading[code] = true;\n }\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_14__.postAes)(this.http, url, params).then(r => {\n if (r != false && noQuery != false) {\n this.query();\n }\n }).finally(() => {\n if (code != undefined) {\n this.loading[code] = false;\n }\n });\n },\n /**\r\n * 根据列配置获取数据库表更新数据\r\n * @param column\r\n * @param formData\r\n * @returns {{}}\r\n */\n getTableUpdateValue(column, formData) {\n let columnAndValueMap = {};\n for (let {\n prop,\n tableField\n } of column) {\n if (!tableField || tableField != '1') {\n continue;\n }\n let value = formData[prop];\n if (value) {\n if (value instanceof String) {\n value = value.trim();\n }\n columnAndValueMap[prop] = value;\n }\n }\n return columnAndValueMap;\n },\n /**\r\n * 获取表格更新列值\r\n * @param column\r\n * @param formData\r\n * @returns {{}}\r\n */\n getColumnTableUpdateValue(column, formData) {\n let columnAndValueMap = {};\n for (let {\n field,\n tableSaveToOtherProp\n } of column) {\n // 勾选,不属于数据库表字段\n if (tableSaveToOtherProp && tableSaveToOtherProp == '1') {\n continue;\n }\n let value = formData[field];\n if (value) {\n if (value instanceof String) {\n value = value.trim();\n }\n columnAndValueMap[field] = value;\n }\n }\n return columnAndValueMap;\n },\n /**\r\n * 获取row更新值\r\n * @param row\r\n * @param updateObj 更新对象,允许为:\"name='xx',name\" 如果name=xx,数据直接赋值,如果没有=,则使用row的值\r\n * @returns {{}}\r\n */\n doGetColumnAndValueMap(row, updateObj) {\n let columnAndValueMap = {};\n for (let key of updateObj.split(\",\")) {\n let k = key.split(\"=\");\n if (k.length == 2) {\n columnAndValueMap[k[0]] = k[1];\n } else {\n k = key.split(\":\");\n columnAndValueMap[k[k.length - 1]] = row[k[0]];\n }\n }\n return columnAndValueMap;\n },\n doGetColumnAndValueAny(rows, updateObj) {\n if (!updateObj) {\n return rows;\n }\n let list = [];\n let keys = [];\n let hasKey = '';\n for (const row of rows) {\n keys = keys.length >= 1 ? keys : Object.keys(row);\n if (!hasKey) {\n hasKey = this.hasUpdateKey(keys, updateObj);\n }\n if (hasKey) {\n Object.assign(row, this.doGetColumnAndValueMap(row, updateObj));\n }\n list.push(row);\n }\n return list;\n },\n hasUpdateKey(keys, updateObj) {\n for (const key of keys) {\n if (updateObj.indexOf(key) >= 0) {\n return '1';\n }\n }\n return '0';\n },\n doGetWhereMap(row, whereObj) {\n let whereMap = {};\n for (let key of whereObj.split(\",\")) {\n let k = key.split(\":\");\n //className:class_name row:{className:'xxx'} whereMap:{class_name}\n whereMap[k[k.length - 1]] = row[k[0]];\n }\n return whereMap;\n },\n /**\r\n * 内置批量删除方法\r\n * @param o\r\n * @returns {Promise<void>}\r\n */\n batchRemove() {\n this.confirm(\"您选中\" + this.getSelectRows().length + '条数据,删除后不可恢复,您确定要删除吗?', '删除提示', 'error').then(type => {\n if (type != \"cancel\") {\n // 1. 子数据存在性校验\n const hasChildData = this.getSelectRows().some(row => row?.children);\n if (hasChildData) {\n return message.error('存在包含子数据的记录,禁止删除!');\n }\n // 2. 分离有ID和无ID数据\n const rowsWithId = [];\n const rowsWithoutId = [];\n this.getSelectRows().forEach(row => {\n this.hasValidId(row) ? rowsWithId.push(row) : rowsWithoutId.push(row);\n });\n\n // 3. 处理无ID数据(前端直接移除)\n if (rowsWithoutId.length > 0) {\n rowsWithoutId.forEach(row => this.removeFromTableByReference(row));\n }\n // 修改点:如果没有有ID的数据,直接返回\n if (rowsWithId.length === 0) return;\n let list = [];\n for (let r of this.getSelectRows()) {\n let p = JSON.parse(JSON.stringify(this.deleteParameter));\n delete p['$parentId'];\n for (let key of Object.keys(p)) {\n p[key] = r[key];\n }\n list.push(p);\n }\n this.loading['batchDelete'] = true;\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_14__.postAes)(this.http, '/online/crudAes/batchDelete', {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n list: list\n }).then(r => {\n if (r != false) {\n this.query();\n }\n }).finally(() => {\n this.loading['batchDelete'] = false;\n });\n }\n });\n },\n /**\r\n * 内置重置方法\r\n * @param o\r\n * @returns {Promise<void>}\r\n */\n resetQuery() {\n for (let k of Object.keys(this.table.formConfig.data)) {\n this.table.formConfig.data[k] = undefined;\n }\n for (let k of Object.keys(this.parameter)) {\n this.parameter[k] = undefined;\n }\n this.initDefaultValue();\n this.query();\n },\n /**\r\n * 内置根据参数查询\r\n * @param o\r\n * @returns {Promise<void>}\r\n */\n queryParams(parameter) {\n if (parameter) {\n Object.assign(this.parameter, parameter);\n }\n return this.query();\n },\n /**\r\n * 内置查询\r\n * @param o\r\n * @returns {Promise<void>}\r\n */\n query() {\n let axios = undefined;\n if (this.tableConfig.definitionSql == 2) {\n if (this.tableConfig.requestType == '1') {\n axios = (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_14__.post)(this.http, this.tableConfig.api, this.getParams(), false, false);\n } else {\n axios = (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_14__.get)(this.http, this.tableConfig.api, this.getParams(), false);\n }\n } else if (this.tableConfig.aes == 1) {\n axios = (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_14__.postAes)(this.http, '/online/crudAes/query', this.getParams(), false, false);\n } else {\n axios = (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_14__.post)(this.http, '/online/crud/query', this.getParams(), false, false);\n }\n this.doQuery(axios);\n },\n async doSetData(data) {\n let respData = data instanceof Array ? data : data.listData;\n const dictRequests = [];\n for (let column of this.table.columns) {\n if (column.visible == 1 && column.params && column.params.tableSelect) {\n dictRequests.push(this.fetchAndMapDictData(respData, column));\n }\n }\n await Promise.all(dictRequests);\n if (this.table.treeConfig) {\n respData = (0,_utils_tree__WEBPACK_IMPORTED_MODULE_12__.handleTree)(respData, this.table.treeConfig.treeId, this.table.treeConfig.treeParentId);\n }\n this.table.data = respData;\n this.doGroupAndCompute(respData);\n this.pagination.total = data.count;\n this.doEvent(\"queryAfter\");\n },\n async doQuery(axios) {\n if (this.loading['select']) {\n return;\n }\n this.table.loading = true;\n this.loading['select'] = true;\n await axios.then(async ({\n data,\n code,\n msg\n }) => {\n if (code != 200 && code != 0) {\n message.error(msg);\n return;\n }\n this.doSetData(data);\n }).finally(() => {\n this.table.loading = false;\n this.loading['select'] = false;\n });\n },\n getPKArrays(value) {\n let uniqueIds = new Set();\n //字段值不为空\n if (value != undefined && value.toString().trim().length > 0) {\n try {\n // 尝试解析 JSON 字符串(如 \"[1,2]\" → [1, 2])\n let parsed = JSON.parse(value);\n if (Array.isArray(parsed)) {\n for (let parsedElement of parsed) {\n uniqueIds.add(parsedElement.toString().trim());\n }\n } else {\n uniqueIds.add(String(value).trim());\n }\n } catch {\n if (value.includes(',')) {\n for (let v of value.trim().split(',')) {\n uniqueIds.add(String(v).trim());\n }\n } else {\n uniqueIds.add(String(value).trim());\n }\n }\n }\n return uniqueIds;\n },\n /**\r\n * 根据动态配置获取并映射字典数据\r\n * @param {Array} typeField - 动态列配置(如 departmentColumnsConfig)\r\n */\n async fetchAndMapDictData(data, column) {\n let uniqueIds = new Set();\n for (let item of data) {\n let value = item[column.field];\n uniqueIds.add(...this.getPKArrays(value));\n }\n if (!column.params) {\n column.params = {\n tableDataObj: {}\n };\n } else if (column.params.tableDataObj) {\n for (let key of Object.keys(column.params.tableDataObj)) {\n uniqueIds.delete(key);\n }\n } else {\n column.params.tableDataObj = {};\n }\n if (uniqueIds.size != 0) {\n // 构造请求参数\n const params = {\n id: column.params.uuid,\n theme: \"t1\",\n enablePage: false,\n queryParameterMapIn: {}\n };\n params.queryParameterMapIn[column.params.key] = Array.from(uniqueIds);\n try {\n return (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_14__.postAes)(this.http, '/online/crudAes/query', params, false, false).then(({\n data\n }) => {\n // 处理API返回数据\n if (data?.listData?.length > 0) {\n data.listData.forEach(item => {\n column.params.tableDataObj[item[column.params.key]] = item[column.params.label];\n });\n }\n });\n } catch (error) {\n console.error('数据请求失败:', params, error);\n return true;\n }\n } else {\n return true;\n }\n },\n /**\r\n * 内置删除方法\r\n * @param o\r\n * @returns {Promise<void>}\r\n */\n remove(o) {\n let {\n row\n } = o;\n this.confirm('数据删除后不可恢复,您确定要删除吗?', '删除提示', 'error').then(type => {\n if (type != \"cancel\") {\n // 校验是否存在子数据\n if (row && row.children) {\n return message.error('存在包含子数据的记录,禁止删除!');\n }\n // 判断是否存在有效ID(兼容字符串和数字类型ID)\n const hasValidId = this.hasValidId(row);\n if (!hasValidId) {\n // 通过对象引用删除(无ID时使用)\n return this.removeFromTableByReference(row);\n }\n let params = {};\n for (let key of Object.keys(this.deleteParameter)) {\n if (key != '$parentId') {\n params[key] = row[key];\n }\n }\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_14__.postAes)(this.http, '/online/crudAes/delete', {\n where: params,\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable\n }).then(r => {\n if (r != false) {\n this.query();\n }\n });\n }\n });\n },\n /**\r\n * 有有效id\r\n * @param row\r\n * @returns {boolean}\r\n */\n hasValidId(row) {\n const idKey = this.getDeleteId(this.deleteParameter);\n const idValue = row[idKey];\n console.log('hasValidId', idKey, idValue);\n return idValue !== undefined && idValue !== null && idValue !== '';\n },\n /**\r\n * 通过对象引用删除(无ID时使用)\r\n * @param o\r\n */\n removeFromTableByReference(o) {\n const index = this.table.data.indexOf(o);\n if (index !== -1) {\n this.table.data.splice(index, 1);\n } else {\n console.error(\"未找到要删除的数据项\");\n }\n },\n /**\r\n * 获取查询参数\r\n * @returns {{enablePage: OTMixinBodyMethods.methods.pagination.enabled, theme: OTMixinBodyMethods.methods.theme, id: OTMixinBodyMethods.methods.uuid}}\r\n */\n getParams() {\n if (this.tableConfig.definitionSql == 2) {\n let params = JSON.parse(JSON.stringify(this.table.formConfig.data));\n if (params.enablePage) {\n params.pageNumber = this.pagination.currentPage;\n params.pageSize = this.pagination.pageSize;\n }\n return {\n ...this.parameter,\n ...params\n };\n }\n let params = {\n id: this.uuid,\n theme: this.theme,\n enablePage: this.pagination.enabled,\n tree: this.tableConfig.tree\n };\n if (params.enablePage) {\n params.pageNumber = this.pagination.currentPage;\n params.pageSize = this.pagination.pageSize;\n if (this.tableConfig.tree == 1) {\n params.tree = 1;\n params.treeId = this.tableConfig.treeId;\n params.treeParentId = this.tableConfig.treeParentId;\n }\n }\n let paramsKey = [];\n for (let o of this.table.formConfig.items) {\n let value = this.table.formConfig.data[o.key];\n if (value == undefined || value == '' || o.itemRender && o.itemRender.name == '$buttons') {\n continue;\n }\n let key = o.key.replace(/\\$/g, '');\n //文本域\n if (o.itemRender && o.itemRender.name == \"textarea\" && o.type != \"9\") {\n let values = value instanceof Array ? value : value.split(\"\\n\");\n if (values.length != 0) {\n let queryParameterMapIn = [];\n for (let v of values) {\n if (v != undefined && v.toString().trim() != '') {\n queryParameterMapIn.push(v);\n }\n }\n if (queryParameterMapIn.length != 0) {\n if (!params['queryParameterMapIn']) {\n params['queryParameterMapIn'] = {};\n }\n params['queryParameterMapIn'][key] = queryParameterMapIn;\n paramsKey.push(key);\n } else if (params['queryParameterMapIn']) {\n delete params['queryParameterMapIn'][key];\n }\n }\n } else if (value.toString().trim() != '') {\n if (!params['queryParameterListAnd']) {\n params['queryParameterListAnd'] = [];\n }\n let values = value instanceof Array ? value : value.split(\",\");\n if (o.type == \"98\") {\n params['queryParameterListAnd'].push({\n value: values[0],\n key: key,\n type: 5,\n toDate: o.toDate\n });\n params['queryParameterListAnd'].push({\n value: values[1],\n key: key,\n type: 6,\n toDate: o.toDate\n });\n paramsKey.push(key);\n } else if (!(values instanceof Array)) {\n let isNumber = o.selectDom == 7;\n o.value = value;\n //type 查询类型 默认等于1--> 1:= 2:!= 3: > 4:< 5: >= 6: <= 7:like '%value' 8:like '%value%' 9:like 'value%'\n //replace(/\\$/g, '') 目的解决范围\n let obj = {\n value: isNumber ? Number(value) : value,\n key: key,\n type: o.type,\n toDate: o.toDate\n };\n params['queryParameterListAnd'].push(obj);\n paramsKey.push(key);\n } else {\n let isNumber = o.selectDom == 7;\n for (let v of values) {\n if (!v) {\n continue;\n }\n let obj = {\n value: isNumber ? Number(v) : v,\n key: key,\n type: o.type,\n toDate: o.toDate\n };\n params['queryParameterListAnd'].push(obj);\n paramsKey.push(key);\n }\n }\n }\n }\n for (let key of Object.keys(this.parameter)) {\n let v = this.parameter[key];\n if (paramsKey.indexOf(key) === -1 && v != undefined && v != '') {\n if (v instanceof Array) {\n if (!params['queryParameterMapIn']) {\n params['queryParameterMapIn'] = {};\n }\n params['queryParameterMapIn'][key] = v;\n } else {\n if (!params['queryParameterListAnd']) {\n params['queryParameterListAnd'] = [];\n }\n params['queryParameterListAnd'].push({\n key: key,\n value: v\n });\n }\n }\n }\n if (this.orderByColumns.length != 0) {\n params['orderBy'] = this.orderByColumns;\n }\n params.authVo = {\n \"tableAliasFiled\": this.tableConfig.tableAliasFiled,\n \"departmentFiled\": this.tableConfig.departmentFiled,\n \"userFiled\": this.tableConfig.userFiled\n };\n this.doEvent(\"queryBefore\", params);\n return params;\n },\n doEvent(name, params) {\n if (this.events[name]) {\n setTimeout(() => {\n this.$nextTick(() => {\n this.events[name](params);\n });\n }, 100);\n }\n },\n /**\r\n * 导出数据\r\n * @param columns 自定义导出字段 t_id\r\n * @param selectData 选择数据: 当前页数据、勾选行数据、全部数据\r\n * @param name\r\n */\n exportData({\n exportParam,\n cancelEvent\n }) {\n let {\n columns,\n selectData,\n name\n } = exportParam;\n for (let column of this.table.columns) {\n for (let c of columns) {\n if (column.field === c.field && column.params) {\n c.params = column.params;\n }\n }\n }\n let data = [];\n switch (selectData) {\n case '1':\n // 当前页\n data = this.table?.data;\n break;\n case '2':\n // 勾选\n data = this.getSelectRows();\n if (!data || data.length == 0) return message.error('勾选行数据为空!');\n break;\n case '3':\n // 全部数据\n this.exportExcelAll(columns, name);\n break;\n default:\n data = this.table.data;\n break;\n }\n if (selectData != '3') {\n (0,_utils_ExcelUtil__WEBPACK_IMPORTED_MODULE_15__.exportExcel)({\n data: data,\n name: name,\n columns: columns,\n option: {\n align: this.$table ? this.$table.align : 'center'\n }\n });\n }\n cancelEvent();\n },\n /**\r\n * 全部数据导出\r\n * @param fields 自定义导出字段\r\n * @param name 文件名\r\n */\n exportExcelAll(columns, name) {\n let params = this.getParams();\n params.enablePage = false;\n if (this.tableConfig.definitionSql == 2) {\n params.pageNumber = 1;\n params.pageSize = 50000;\n }\n let url = this.tableConfig.definitionSql == 2 ? this.tableConfig.api : '/online/crud/query';\n let method = this.tableConfig.definitionSql == 2 ? this.tableConfig.requestType == '1' ? 'post' : 'get' : 'post';\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_14__.request)(this.http, {\n url: url,\n method: method,\n data: params,\n timeout: 1000 * 90 * 90\n }, false, false).then(({\n data\n }) => {\n let respData = data instanceof Array ? data : data.listData;\n (0,_utils_ExcelUtil__WEBPACK_IMPORTED_MODULE_15__.exportExcel)({\n data: respData,\n name: name,\n columns: columns,\n option: {\n align: this.$table ? this.$table.align : 'center'\n }\n });\n });\n },\n /**\r\n * 内置确认框\r\n * @param content\r\n * @param title\r\n * @param status\r\n * @returns {Promise<\"model\"|\"mask\"|\"close\"|\"confirm\"|\"cancel\"|\"exit\"|\"exist\">}\r\n */\n async confirm(content, title, status) {\n return await vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.confirm({\n content: content,\n title: title,\n status: status\n });\n },\n /**\r\n * 内置调用方法\r\n * @param m\r\n * @param v\r\n * @param d\r\n */\n emits({\n m,\n v,\n d,\n js\n }) {\n if (typeof js === 'string') {\n eval(js);\n } else if (m && this[m]) {\n this[m](v);\n }\n if (d != false) {\n this.customUrl = undefined;\n }\n if (js && typeof js === 'object' && typeof js.callback === 'function') {\n this.executeFunction(js.callback, v);\n } else if (typeof js === 'function') {\n this.executeFunction(js, v);\n }\n },\n /**\r\n * 执行函数\r\n * @param func\r\n * @param v\r\n */\n executeFunction(func, v) {\n if (typeof func !== 'function') return;\n try {\n func.call(this, v);\n } catch (error) {\n console.error('函数执行错误:', error);\n }\n },\n /**\r\n * 设置禁用按钮\r\n * @param ex\r\n */\n setAllBtnDisabled(ex) {\n if (ex) {\n ex = ex.split(\",\");\n } else {\n ex = [];\n }\n for (let toolBtn of this.toolBtn) {\n let disabled = true;\n for (let code of ex) {\n if (toolBtn.code == code) {\n disabled = false;\n }\n }\n toolBtn.disabled = disabled;\n }\n for (let toolBtn of this.operationBtn) {\n let disabled = true;\n for (let code of ex) {\n if (toolBtn.code == code) {\n disabled = false;\n }\n }\n toolBtn.disabled = disabled;\n }\n },\n /**\r\n * 设置工具栏 but\r\n * @param code 编码\r\n * @param key 要设置的key\r\n * @param value 要设置的value\r\n */\n setToolBtn(code, key, value) {\n for (let toolBtn of this.toolBtn) {\n if (toolBtn.code == code) {\n toolBtn[key] = value;\n }\n }\n },\n /**\r\n * 获取工具栏 but\r\n * @param code 编码\r\n * @param key 要设置的key\r\n * @param value 要设置的value\r\n */\n getToolBtn(code) {\n for (let toolBtn of this.toolBtn) {\n if (toolBtn.code == code) {\n return toolBtn;\n }\n }\n },\n /**\r\n * 设置操作按钮 but\r\n * @param code 编码\r\n * @param key 要设置的key\r\n * @param value 要设置的value\r\n */\n setOperationBtn(code, key, value) {\n for (let toolBtn of this.operationBtn) {\n if (toolBtn.code == code) {\n toolBtn[key] = value;\n }\n }\n },\n /**\r\n * 获取修改数据(包括未修改数据)\r\n */\n getUpdateRecords() {\n if (this.$table) {\n return [...this.$table.getInsertRecords(), ...this.$table.getUpdateRecords()];\n }\n },\n /**\r\n * 获取修改数据(包括未修改数据)\r\n */\n getUpdateRecordsRow() {\n let rows = [];\n for (let newRow of this.table.data) {\n rows.push(this.getColumnTableUpdateValue(this.table.columns, newRow));\n }\n return rows;\n },\n /**\r\n * 批量保存\r\n */\n async batchSave(code, content, rows, foreignKey, foreignKeyValue) {\n if (content) {\n let type = await vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.confirm({\n content: content,\n title: '提示',\n status: 'warning'\n });\n if (type == \"cancel\") {\n return;\n }\n }\n if (rows.length == 0) {\n vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.message({\n content: \"请选数据!\",\n title: '提示',\n status: 'error'\n });\n return;\n }\n let list = [];\n let updateList = [];\n let dataSource = this.table.dataSource;\n const srcMap = new Map(dataSource.map(item => [item[this.getUniKey()], item]));\n for (const row of rows) {\n delete row._X_ROW_KEY; //删除_X_ROW_KEY属性\n let rowId = row[this.getUniKey()];\n if (rowId) {\n updateList.push({\n columnAndValueMap: this.getDifferingProperties(row, srcMap.get(row[this.getUniKey()])),\n //更新字段\n whereMap: this.doGetWhereMap(row, this.getUniKey()) //更新条件\n });\n continue;\n }\n let columnTableUpdateValue = this.getColumnTableUpdateValue(this.table.columns, row);\n if (foreignKey) {\n columnTableUpdateValue[foreignKey] = foreignKeyValue ? foreignKeyValue : this.mainId;\n }\n list.push(columnTableUpdateValue);\n }\n if (updateList && updateList.length >= 1) {\n this.doPostAes(code, '/online/crudAes/batchModify', {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n list: updateList\n });\n }\n if (list && list.length >= 1) {\n this.doPostAes(code, '/online/crudAes/batchSave', {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n tableConfigId: this.tableConfig.tableConfigId,\n columnAndValueListMap: list,\n genIdMap: {\n [this.getUniKey()]: 'uuid'\n }\n });\n }\n },\n /**\r\n * 保存修改\r\n */\n async saveUpdate(code, content) {\n let dataSource = this.table.dataSource;\n const srcMap = new Map(dataSource.map(item => [item[this.getUniKey()], item]));\n let rows = [];\n for (const row of this.getUpdateRecords()) {\n let src = srcMap.get(row[this.getUniKey()]);\n rows.push(this.getDifferingProperties(row, src));\n }\n // console.log('saveUpdate:',rows)\n if (content) {\n let type = await vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.confirm({\n content: content,\n title: '提示',\n status: 'warning'\n });\n if (type == \"cancel\") {\n return;\n }\n }\n if (rows.length == 0) {\n vxe_table__WEBPACK_IMPORTED_MODULE_16___default().modal.message({\n content: \"请选数据!\",\n title: '提示',\n status: 'error'\n });\n return;\n }\n let list = [];\n for (const row of this.getUpdateRecords()) {\n list.push({\n columnAndValueMap: this.getDifferingProperties(row, srcMap.get(row[this.getUniKey()])),\n //更新字段\n whereMap: this.doGetWhereMap(row, this.getUniKey()) //更新条件\n });\n }\n this.doPostAes(code, '/online/crudAes/batchModify', {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n list\n });\n // this.doBatchModify('batchModify', \"age\", this.getUniKey(), \"确认修改编辑数据吗?\", this.getUpdateRecords())\n },\n /**\r\n * 获取新增数据\r\n */\n getInsertEvent() {\n if (this.$table) {\n return this.$table.getInsertRecords();\n }\n },\n /**\r\n * 获取删除数据\r\n * @returns {*}\r\n */\n getRemoveEvent() {\n if (this.$table) {\n return this.$table.getRemoveRecords();\n }\n },\n /**\r\n * 获取选中\r\n * @returns {*|*[]|*[]}\r\n */\n getSelectRows() {\n if (this.selectBox == 1) {\n return this.$table.getRadioRecord() ? [this.$table.getRadioRecord()] : [];\n } else if (this.selectBox == 2) {\n return this.$table.getCheckboxRecords(true);\n }\n },\n updateColumn(rows) {\n this.table['show-footer'] = false;\n if (rows && rows instanceof Array) {\n for (let o of this.table.columns) {\n for (let row of rows) {\n if (row.id == o.id) {\n for (let key of Object.keys(row)) {\n o[key] = row[key];\n }\n }\n }\n this.setColumnHide(o);\n this.setFixed(o);\n this.setShowFooter(o);\n }\n }\n let data = this.table.columns.sort((a, b) => {\n return a.sort - b.sort;\n });\n this.doGroupAndCompute();\n this.$table.reloadColumn(data);\n },\n doGroupAndCompute(dataSource) {\n if (dataSource) {\n this.table.dataSource = JSON.parse(JSON.stringify(dataSource));\n }\n if (this.tableConfig.paging != 2) {\n if (dataSource != undefined) {\n this.table.data = dataSource;\n }\n return;\n }\n let groupKey = [];\n let comValue = [];\n for (let column of this.table.columns) {\n if (column.visible && column.groupToOtherProp == 1) {\n groupKey.push(column.field);\n }\n if (column.groupTotalToOtherProp) {\n comValue.push(column.field + \":\" + column.groupTotalToOtherProp);\n }\n }\n if (dataSource == undefined) {\n dataSource = this.table.dataSource;\n }\n if (groupKey.length != 0 & comValue.length != 0) {\n dataSource = (0,_utils_groupCompute__WEBPACK_IMPORTED_MODULE_17__.groupAndCompute)(groupKey, comValue, dataSource);\n }\n this.table.data = dataSource;\n this.$table.reloadData(this.table.data);\n },\n getDifferingProperties1(tar, src) {\n const differingProperties = {};\n // 假设两个对象都有相同的属性\n for (const key in tar) {\n if (Object.hasOwn(tar, key) && Object.hasOwn(src, key)) {\n if (tar[key] !== src[key]) {\n differingProperties[key] = tar[key]; // 可以选择返回obj2的值,或创建一个数组存放两个值\n }\n }\n }\n return differingProperties;\n },\n getDifferingProperties(tar, src) {\n // 1. 边界处理:非法输入转为空对象\n if (src == null || typeof src !== 'object') src = {};\n if (tar == null || typeof tar !== 'object') tar = {};\n const differingProperties = {};\n\n // 2. 遍历 tar 的自有属性\n for (const key in tar) {\n if (!Object.hasOwn(tar, key)) continue;\n\n // 3. 检查 src 是否有同名自有属性\n if (Object.hasOwn(src, key)) {\n // 4. 深度比较值差异\n if (!this.isEqual(tar[key], src[key])) {\n // 5. 记录差异(存储双方值)\n differingProperties[key] = tar[key];\n }\n }\n // 可选:将 tar 存在而 src 不存在的属性视为差异?\n else {\n differingProperties[key] = tar[key];\n }\n }\n return differingProperties;\n },\n isEqual(a, b) {\n if (a === b) return true;\n if (Number.isNaN(a) && Number.isNaN(b)) return true; // 处理 NaN\n if (typeof a === 'object' && typeof b === 'object') {\n // 简化版深层比较(实际项目建议使用 lodash.isEqual )\n return JSON.stringify(a) === JSON.stringify(b);\n }\n return false;\n }\n }\n};\n\n//# sourceURL=webpack://olp-table/./src/mixins/VTMixin/DefaultMethods.js?");
12768
12768
 
12769
12769
  /***/ }),
12770
12770
 
@@ -12775,7 +12775,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
12775
12775
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
12776
12776
 
12777
12777
  "use strict";
12778
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ OForm: function() { return /* binding */ OForm; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/core-js/modules/es.iterator.filter.js\");\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.iterator.find.js */ \"./node_modules/core-js/modules/es.iterator.find.js\");\n/* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.iterator.for-each.js */ \"./node_modules/core-js/modules/es.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.iterator.map.js */ \"./node_modules/core-js/modules/es.iterator.map.js\");\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _utils_columnProp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils/columnProp */ \"./src/utils/columnProp.js\");\n/* harmony import */ var _utils_message__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/utils/message */ \"./src/utils/message.js\");\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n/* harmony import */ var _utils_tree__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/utils/tree */ \"./src/utils/tree.js\");\n/* harmony import */ var _utils_formUtils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/utils/formUtils */ \"./src/utils/formUtils.js\");\n/* harmony import */ var _api_dist__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/api/dist */ \"./src/api/dist.js\");\n/* harmony import */ var _store_dict__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/store/dict */ \"./src/store/dict.js\");\n/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/utils/object */ \"./src/utils/object.js\");\n/* harmony import */ var _components_FileUpload_index_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/components/FileUpload/index.vue */ \"./src/components/FileUpload/index.vue\");\n/* harmony import */ var _components_Icon__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/components/Icon */ \"./src/components/Icon/index.js\");\n/* harmony import */ var _components_ol_table_select_vue__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/components/ol-table-select.vue */ \"./src/components/ol-table-select.vue\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst dict = (0,_store_dict__WEBPACK_IMPORTED_MODULE_12__.storeDict)();\nfunction replaceDollarBraces(str) {\n return str.toString().replace(/\\$\\{{?([^{}]+)\\}}?/g, function (match, innerContent) {\n return innerContent ? `'${innerContent}'` : match;\n });\n}\nconst OForm = {\n name: 'OForm',\n components: {\n FileUpload: _components_FileUpload_index_vue__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n IconSelect: _components_Icon__WEBPACK_IMPORTED_MODULE_15__.IconSelect,\n OlTableSelect: _components_ol_table_select_vue__WEBPACK_IMPORTED_MODULE_16__[\"default\"]\n },\n inject: ['http'],\n props: {\n isDialog: {\n type: Boolean,\n default: true\n }\n },\n data() {\n return {\n js: undefined,\n formData: {},\n optionData: {},\n initOkTabs: [],\n form: {\n column: []\n },\n initOk: false,\n dynamicSlotsTable: [],\n dynamicSlotsField: {},\n dynamicSlotsOtherResult: {},\n show: true,\n state: {\n deleteId: '',\n uuid: '',\n foreignKey: '',\n exBtnDisabled: undefined,\n isDialog: true,\n loading: false,\n fullscreen: false,\n dialogVisible: false,\n title: \"\",\n width: '60%',\n comCommit: true,\n maxHeight: '400px',\n type: '0',\n edit: false,\n saveUrl: '',\n requestType: 'post',\n updateKey: '',\n theme: 't1',\n tableConfigId: '',\n dbName: '',\n tableName: '',\n otherProp: {}\n },\n elCascaderProps: {\n expandTrigger: 'hover',\n emitPath: false,\n checkStrictly: false\n }\n };\n },\n methods: {\n getCascaderOptions(slotName) {\n // console.info('getCascaderOptions',this.form.column)\n return this.form.column.find(item => item.prop === slotName).dicData;\n },\n getCascaderColumn(slotName) {\n // console.info('getCascaderOptions',this.form.column)\n return this.form.column.find(item => item.prop === slotName);\n },\n hideColumn(prop) {\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_13__.setArrayObjectKeyValue)(this.form.column, 'display', false, prop);\n },\n showColumn(prop) {\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_13__.setArrayObjectKeyValue)(this.form.column, 'display', true, prop);\n },\n setOtherProp(params) {\n if (this.state.otherProp) {\n if (this.state.otherProp.createBy && this.state.otherProp.createBy.trim()) {\n params.createBy = this.state.otherProp.createBy.trim();\n }\n if (this.state.otherProp.updateBy && this.state.otherProp.updateBy.trim()) {\n params.updateBy = this.state.otherProp.updateBy.trim();\n }\n }\n },\n /**\r\n * 根据列配置获取数据库表更新数据\r\n * @param column\r\n * @param formData\r\n * @returns {{}}\r\n */\n getTableUpdateValue(column, formData) {\n let columnAndValueMap = {};\n for (let {\n prop,\n tableField,\n tableSaveToOtherProp\n } of column) {\n if (tableField && tableField == '1' || tableSaveToOtherProp == '1') {\n continue;\n }\n let value = formData[prop];\n if (value != undefined) {\n if (value instanceof String) {\n value = value.trim();\n }\n if (value instanceof Array) {\n columnAndValueMap[prop] = value.join(',');\n } else {\n columnAndValueMap[prop] = value;\n }\n }\n }\n return columnAndValueMap;\n },\n /**\r\n * 封装主表单校验逻辑\r\n * @returns {Promise<*>}\r\n */\n async validateMainForm() {\n return new Promise(resolve => {\n const validator = this.state.type !== '0' ? this.$refs.formRef.getNativeForm().validate : (valid, done, msg) => this.$refs.formRef.validate(valid, done, msg);\n validator((valid, ...args) => {\n const [msg, done] = this.state.type === '0' ? [args[1], args[0]] : [args[0]];\n if (!valid) {\n const keys = Object.keys(msg);\n const domRef = this.state.type !== '0' ? this.$refs.formRef.getWidgetRef(keys[0])?.$el : this.$refs.formRef.getPropRef(keys[0])?.$el;\n domRef?.scrollIntoView({\n block: \"center\",\n behavior: \"smooth\"\n });\n (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)().error(`主表单还有${keys.length}项未填写`);\n resolve(false);\n } else {\n resolve(true);\n }\n if (this.state.type === '0') done?.();\n });\n });\n },\n /**\r\n * 封装子表校验逻辑\r\n * @returns {Promise<FlatArray<Awaited<*>[], 1>[]>}\r\n */\n async validateSubTables() {\n // 1. 获取所有子表引用\n const subTablesRefs = this.$refs.subTable?.getTableRefs()?.getTabRefAll() || [];\n\n // 2. 并行执行全量校验(包含新增/修改/删除的数据)\n const validationPromises = subTablesRefs.map(subTable =>\n // 传入 true 校验所有数据(包括未修改的)\n subTable.$table.validate(true));\n\n // 3. 等待所有子表校验结果\n const results = await Promise.all(validationPromises);\n return results.flat().filter(Boolean);\n },\n /**\r\n * 错误定位工具函数\r\n * @param error\r\n */\n focusFirstError(error) {\n const targetEl = error.getElement?.();\n if (targetEl) {\n targetEl.scrollIntoView({\n block: \"center\",\n behavior: \"smooth\"\n });\n } else {\n console.warn(\"无法定位错误元素:\", error.field);\n }\n },\n async doMainSubSave() {\n try {\n // ====================== 1. 主表单校验 ======================\n const mainFormValid = await this.validateMainForm();\n if (!mainFormValid) return;\n\n // ====================== 2. 子表并行校验 ======================\n const subTableErrors = await this.validateSubTables();\n if (subTableErrors.length > 0) {\n this.focusFirstError(subTableErrors[0]);\n (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)().error(`子表存在${subTableErrors.length}处错误,请修正后提交`);\n return;\n }\n\n // ====================== 3. 全部通过后保存 ======================\n this.save();\n } catch (error) {\n console.error(\"保存过程中发生异常:\", error);\n (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)().error(\"系统异常,请稍后重试\");\n }\n },\n async doSave() {\n let dom;\n let keys;\n if (this.state.type != '0') {\n await this.$refs.formRef.getNativeForm().validate((valid, msg) => {\n if (!valid) {\n keys = Object.keys(msg);\n dom = this.$refs.formRef.getWidgetRef(keys[0]);\n dom.$el.scrollIntoView({\n block: \"center\",\n behavior: \"smooth\"\n });\n (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)().error(\"您还有\" + keys.length + \"项信息未填写,请填写后再操作!\");\n } else {\n this.save();\n }\n });\n } else {\n await this.$refs.formRef.validate((valid, done, msg) => {\n if (!valid) {\n keys = Object.keys(msg);\n dom = this.$refs.formRef.getPropRef(keys[0]);\n dom.$el.scrollIntoView({\n block: \"center\",\n behavior: \"smooth\"\n });\n (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)().error(\"您还有\" + keys.length + \"项信息未填写,请填写后再操作!\");\n } else {\n this.save();\n }\n done();\n });\n }\n },\n saveOk(status) {\n this.state.loading = false;\n this.initOkTabs = [];\n if (status) {\n this.close();\n this.$emit('query');\n }\n if (this.state.otherProp && this.state.otherProp.afterSave) {\n try {\n eval(this.state.otherProp.afterSave);\n } catch (e) {\n console.log(e);\n }\n }\n },\n close() {\n this.state.dialogVisible = false;\n this.$emit('emits', {});\n },\n async save() {\n if (this.js) {\n let param = {\n js: this.js,\n v: this.formData\n };\n this.state.dialogVisible = false;\n this.$emit('emits', param);\n return;\n }\n let params = this.getParams();\n if (this.state.otherProp && this.state.otherProp.beforeSave) {\n try {\n let next = eval(\"(params)=>{\" + this.state.otherProp.beforeSave + \"}\");\n if (next(params) === false) {\n return;\n }\n } catch (e) {\n console.log(e);\n return;\n }\n }\n this.state.loading = true;\n try {\n let url = this.state.saveUrl ? this.state.saveUrl : this.state.edit ? '/online/crudAes/modify' : '/online/crudAes/save';\n if (this.state.requestType.toLowerCase() == \"put\") {\n await (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.put)(this.http, url, params).then(status => {\n this.saveOk(status);\n });\n } else if (!this.state.saveUrl || this.state.saveUrl.indexOf(\"/online/crudAes/\") != -1) {\n await (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.postAes)(this.http, url, params).then(status => {\n this.saveOk(status);\n });\n } else {\n await (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.post)(this.http, url, params).then(status => {\n this.saveOk(status);\n });\n }\n } catch (e) {\n console.error(e);\n } finally {\n this.state.loading = false;\n }\n },\n setDepRoleDefault(column) {\n //人员岗位\n if (column.selectDom === '25' || column.selectDom === '26' || column.selectDom === '27' || column.selectDom === '24') {\n let dic = {\n \"24\": 'olp_cloud,system_dept,name,id',\n \"25\": 'olp_cloud,system_role,name,id',\n \"26\": 'olp_cloud,system_post,name,id',\n \"27\": 'olp_cloud,system_users,nickname,id'\n };\n column.dictTable = dic[column.selectDom];\n column.type = 'select';\n }\n },\n initFormColumn(data) {\n for (let column of this.form.column) {\n if (data.disabled || column.disabled == 1) {\n column.disabled = true;\n }\n this.setDepRoleDefault(column);\n if (column.selectDom === '20') {\n let slotObj = {\n slotName: column.prop,\n type: column.selectDom\n };\n this.dynamicSlotsField[column.prop] = column; //收集继续动态改变值的字段信息,以便动态改变值时更新表单数据\n this.dynamicSlotsTable.push(slotObj); //收集需要的动态插槽字段信息\n } else if (column.selectDom === '21') {\n let slotObj = {\n slotName: column.prop,\n type: column.selectDom\n };\n this.dynamicSlotsField[column.prop] = column; //收集继续动态改变值的字段信息,以便动态改变值时更新表单数据\n this.dynamicSlotsTable.push(slotObj); //收集需要的动态插槽字段信息\n } else if (column.selectDom === '22') {\n //表格选取\n let slotObj = {\n slotName: column.prop,\n type: column.selectDom,\n config: JSON.parse(column.attrs).olTableSelect\n };\n this.dynamicSlotsField[column.prop] = column; //收集继续动态改变值的字段信息,以便动态改变值时更新表单数据\n this.dynamicSlotsTable.push(slotObj); //收集需要的动态插槽字段信息\n const otherResult = slotObj.config.otherResult; //返回额外参数字段配置\n if (otherResult !== null && otherResult !== undefined && otherResult !== '') {\n let otherResultArray = [];\n otherResult.split(\",\").forEach(m => {\n let k = m.split(\":\");\n // otherResultArray.push({targetField: k[[k.length - 1]], sourceField: k[0]})\n otherResultArray.push({\n targetField: k[0],\n sourceField: k[[k.length - 1]]\n });\n });\n this.dynamicSlotsOtherResult[column.prop] = otherResultArray;\n }\n } else {\n this.initDict(column);\n }\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_13__.parseJson)(column);\n for (let event of ['change']) {\n if (column[event] && !(column[event] instanceof Function)) {\n try {\n column[event] = eval(\"(params)=>{this.$nextTick(()=>{\" + \"let formData = this.formData;\" + \"let {value} = params;\" + replaceDollarBraces(column[event]) + \"})\" + \"}\");\n } catch (e) {\n console.error(e);\n }\n }\n }\n }\n },\n async doInit(data) {\n this.beforeInit();\n this.show = !data.disabled;\n this.initOkTabs = [];\n if (data.saveUrl) {\n this.state.saveUrl = data.saveUrl.trim();\n if (data.requestType) {\n this.state.requestType = data.requestType;\n }\n } else {\n this.state.saveUrl = undefined;\n }\n this.state.edit = data['code'] == 'edit' == true;\n this.state.title = data.title ? data.title : this.state.edit ? '编辑' : '新增';\n if (data.form.title) {\n this.state.title = data.form.title;\n }\n // 设置订单号\n for (const column of data.form.column) {\n column.value = await (0,_utils_columnProp__WEBPACK_IMPORTED_MODULE_6__.getDefaultValue)(this.http, column);\n }\n this.formData = data.formData;\n this.form = data.form;\n this.state.dialogVisible = true;\n for (let key of Object.keys(this.state)) {\n if (data[key]) {\n this.state[key] = data[key];\n }\n }\n if (this.state.type == 0) {\n //赋值弹窗宽度和高度\n if (data.form.diaLogWidth) {\n this.state.width = data.form.diaLogWidth;\n }\n if (data.form.diaLogHeight) {\n this.state.maxHeight = data.form.diaLogHeight + 'px';\n }\n this.initFormColumn(data);\n } else {\n let {\n width,\n height\n } = this.form.formConfig;\n //赋值弹窗宽度和高度\n this.state.width = width;\n this.state.maxHeight = height + 'px';\n for (let widgetListElement of this.form.widgetList) {\n this.setDict(widgetListElement);\n }\n }\n setTimeout(() => {\n this.afterInit();\n }, 350);\n },\n setDict(column) {\n if (column && column.dict) {\n column.dictCode = column.dict;\n this.initDict(column);\n }\n if (column.cols instanceof Array) {\n for (let col of column.cols) {\n this.setDict(col);\n }\n }\n },\n init(data, js) {\n try {\n this.js = js;\n this.doInit(data);\n } catch (e) {\n console.error(e);\n }\n },\n /**\r\n * 初始化后回调\r\n */\n afterInit() {\n if (this.state.otherProp) {\n try {\n this.state.otherProp = JSON.parse(this.state.otherProp);\n if (this.state.otherProp.afterInit) {\n eval(this.state.otherProp.afterInit);\n }\n } catch (e) {\n console.log(e);\n }\n }\n },\n /**\r\n * 初始化前回调\r\n */\n beforeInit() {\n if (this.state.otherProp && this.state.otherProp.beforeInit) {\n try {\n eval(this.state.otherProp.beforeInit);\n } catch (e) {\n console.log(e);\n }\n }\n },\n initDict(column) {\n if (column.dictCode) {\n column.dicData = dict.val(column.dictCode);\n if (column.dict && column.options) {\n column.options.optionItems = column.dicData;\n }\n if (column.selectDom == 1 || !column.type) {\n column.type = \"select\";\n }\n //”number”、”string”、”boolean”、”object”、”function” 和 “undefined”\n let dataType = typeof this.formData[column.prop];\n if ([\"number\", \"boolean\"].indexOf(dataType) != -1) {\n this.formData[column.prop] = String(this.formData[column.prop]);\n column.value = this.formData[column.prop];\n }\n if (this.state.edit) {\n return;\n }\n if (this.formData[column.prop] != undefined) {\n this.formData[column.prop] = String(this.formData[column.prop]);\n column.value = this.formData[column.prop];\n } else if (column.value != undefined) {\n this.formData[column.prop] = String(column.value);\n } else {\n // 数据字典与值类型不一致\n if (this.formData[column.prop] == undefined) {\n setTimeout(() => {\n if (column.dicData) {\n for (let dicDatum of column.dicData) {\n if (dicDatum.isDefault == 1) {\n this.formData[column.prop] = dicDatum.value;\n column.value = this.formData[column.prop];\n }\n }\n }\n }, 100);\n }\n }\n } else if (column.dictTable || column.dictUrl) {\n if (column.selectDom == 1 || !column.type) {\n column.type = \"select\";\n }\n column.filterable = true;\n column.dicData = [];\n setTimeout(() => {\n this.setDictTable(column, undefined);\n }, 10);\n if (column.type == 'tree') {\n column.filterable = column.filterable == undefined ? true : column.clearable;\n column.clearable = column.clearable == undefined ? true : column.clearable;\n let slotObj = {\n slotName: column.prop,\n type: 'tree'\n };\n if (column.attrs) {\n const attrs = JSON.parse(column.attrs);\n this.elCascaderProps = {\n ...this.elCascaderProps,\n ...attrs\n };\n }\n this.dynamicSlotsField[column.prop] = column; //收集继续动态改变值的字段信息,以便动态改变值时更新表单数据\n this.dynamicSlotsTable.push(slotObj); //收集需要的动态插槽字段信息\n } else {\n column.filterMethod = e => {\n this.$nextTick(() => {\n this.setDictTable(column, e);\n });\n };\n }\n }\n },\n setDictUrl(column, like) {\n let dictUrl = column.dictUrl.split(\",\");\n let url;\n let label = 'label';\n let value = 'value';\n let parentId = 'parentId';\n // get,url,label,value,parent_id\n let doGet = true;\n if (dictUrl.length > 1) {\n if (dictUrl[0].toString().toLowerCase() == 'post') {\n doGet = false;\n }\n url = dictUrl[1];\n label = dictUrl[2];\n value = dictUrl[3];\n parentId = dictUrl[4];\n } else {\n url = dictUrl[0];\n }\n if (doGet) {\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.get)(this.http, url + \"?label=\" + like).then(data => {\n column.dicData.length = 0;\n if (column.type == 'tree') {\n for (let da of data) {\n da['label'] = da[label];\n da['value'] = da[value];\n }\n column.dicData = (0,_utils_tree__WEBPACK_IMPORTED_MODULE_9__.handleTree)(data, value, parentId);\n } else {\n data.forEach(d => {\n column.dicData.push(d);\n });\n }\n });\n } else {\n let params = {};\n if (like) {\n params['label'] = like;\n }\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.post)(this.http, column.dictUrl, params, false).then(({\n data\n }) => {\n column.dicData.length = 0;\n if (column.type == 'tree') {\n for (let da of data) {\n da['label'] = da[label];\n da['value'] = da[value];\n }\n column.dicData = (0,_utils_tree__WEBPACK_IMPORTED_MODULE_9__.handleTree)(data, value, parentId);\n } else {\n data.forEach(da => {\n da['label'] = da[label];\n da['value'] = da[value];\n column.dicData.push(da);\n });\n }\n });\n }\n },\n setDictTable(column, like) {\n if (column.dictTable && column.dictTable.toString().trim() != '') {\n this.doSetDictTable(column, like);\n } else if (column.dictUrl) {\n this.setDictUrl(column, like);\n }\n },\n doSetDictTable(column, like) {\n let value = this.formData[column.prop];\n /*String tableName;\r\n String dbName;\r\n String label;\r\n String value;\r\n Map<String, Object> where;*/\n // olp-vue-pro,system_users,nickname,id,parentId\n let params = {};\n // let dictTable = column.dictTable;\n try {\n // 使用Function构造函数比eval更安全\n params = new Function('return ' + column.dictTable)();\n } catch (e) {\n // 2. 业务调用侧(清晰的使用逻辑)\n params = (0,_utils_formUtils__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(column.dictTable);\n }\n if (like || value) {\n if (!params.where) {\n params.where = {};\n }\n }\n if (!params[\"parentValue\"]) {\n if (like) {\n params.where['_like_' + params[\"label\"]] = like;\n }\n if (value instanceof Array) {\n let val = '';\n for (let valueElement of value) {\n if (val.length > 0) {\n val += \",\";\n }\n val = val + \"'\" + valueElement + \"'\";\n }\n if (val) {\n params.where['_in_' + params[\"label\"]] = val;\n }\n //params.defaultValue = value;\n } else {\n params.defaultValue = value;\n }\n }\n (0,_api_dist__WEBPACK_IMPORTED_MODULE_11__.initDictTable)(this.http, params).then(data => {\n column.dicData.length = 0;\n if (params[\"parentValue\"]) {\n column.dicData = (0,_utils_tree__WEBPACK_IMPORTED_MODULE_9__.handleTree)(data, 'dictValue', 'parentValue');\n } else {\n data.forEach(d => {\n d.value = d.value + '';\n d.dictValue = d.dictValue + '';\n column.dicData.push(d);\n });\n }\n });\n },\n /**\r\n * 表格选择器回调函数\r\n * @param data\r\n */\n olTableSelectChange(slotName, data) {\n // console.info('插槽名称', slotName, '表格回传的数据', data)\n // console.info('表格', this.form.column)\n this.formData[slotName] = data.value; //修改表单数据,以便后续提交\n if (typeof this.dynamicSlotsField[slotName].change === 'function') {\n this.dynamicSlotsField[slotName].change(data.value); //字段数据更新回调\n }\n //给其他字段赋值\n this.dynamicSlotsOtherResult[slotName]?.forEach(item => {\n this.formData[item.targetField] = data.data[item.sourceField];\n });\n },\n uploadChange(slotName, data) {\n console.info('回调', slotName, data);\n this.formData[slotName] = data; //修改表单数据,以便后续提交\n if (typeof this.dynamicSlotsField[slotName].change === 'function') {\n this.dynamicSlotsField[slotName].change(data); //字段数据更新回调\n }\n },\n handleEmits({\n m,\n v,\n d,\n js\n }, key) {\n if (typeof js === 'string') {\n eval(js);\n } else if (m && this[m]) {\n this[m](v);\n }\n if (d != false) {\n this.customUrl = undefined;\n }\n this.formData[key] = v;\n console.log('emits:', this.formData);\n }\n },\n mounted() {\n this.$nextTick(() => {\n (0,_store_dict__WEBPACK_IMPORTED_MODULE_12__.storeDict)().init(this.http);\n });\n }\n};\n\n//# sourceURL=webpack://olp-table/./src/mixins/VTMixin/OForm.js?");
12778
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ OForm: function() { return /* binding */ OForm; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/core-js/modules/es.iterator.filter.js\");\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.iterator.find.js */ \"./node_modules/core-js/modules/es.iterator.find.js\");\n/* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.iterator.for-each.js */ \"./node_modules/core-js/modules/es.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.iterator.map.js */ \"./node_modules/core-js/modules/es.iterator.map.js\");\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _utils_columnProp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils/columnProp */ \"./src/utils/columnProp.js\");\n/* harmony import */ var _utils_message__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/utils/message */ \"./src/utils/message.js\");\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n/* harmony import */ var _utils_tree__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/utils/tree */ \"./src/utils/tree.js\");\n/* harmony import */ var _utils_formUtils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/utils/formUtils */ \"./src/utils/formUtils.js\");\n/* harmony import */ var _api_dist__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/api/dist */ \"./src/api/dist.js\");\n/* harmony import */ var _store_dict__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/store/dict */ \"./src/store/dict.js\");\n/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/utils/object */ \"./src/utils/object.js\");\n/* harmony import */ var _components_FileUpload_index_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/components/FileUpload/index.vue */ \"./src/components/FileUpload/index.vue\");\n/* harmony import */ var _components_Icon__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/components/Icon */ \"./src/components/Icon/index.js\");\n/* harmony import */ var _components_ol_table_select_vue__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/components/ol-table-select.vue */ \"./src/components/ol-table-select.vue\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst dict = (0,_store_dict__WEBPACK_IMPORTED_MODULE_12__.storeDict)();\nfunction replaceDollarBraces(str) {\n return str.toString().replace(/\\$\\{{?([^{}]+)\\}}?/g, function (match, innerContent) {\n return innerContent ? `'${innerContent}'` : match;\n });\n}\nconst OForm = {\n name: 'OForm',\n components: {\n FileUpload: _components_FileUpload_index_vue__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n IconSelect: _components_Icon__WEBPACK_IMPORTED_MODULE_15__.IconSelect,\n OlTableSelect: _components_ol_table_select_vue__WEBPACK_IMPORTED_MODULE_16__[\"default\"]\n },\n inject: ['http'],\n props: {\n isDialog: {\n type: Boolean,\n default: true\n }\n },\n data() {\n return {\n js: undefined,\n formData: {},\n optionData: {},\n initOkTabs: [],\n form: {\n column: []\n },\n initOk: false,\n dynamicSlotsTable: [],\n dynamicSlotsField: {},\n dynamicSlotsOtherResult: {},\n show: true,\n state: {\n deleteId: '',\n uuid: '',\n foreignKey: '',\n exBtnDisabled: undefined,\n isDialog: true,\n loading: false,\n fullscreen: false,\n dialogVisible: false,\n title: \"\",\n width: '60%',\n comCommit: true,\n maxHeight: '400px',\n type: '0',\n edit: false,\n saveUrl: '',\n requestType: 'post',\n updateKey: '',\n theme: 't1',\n tableConfigId: '',\n dbName: '',\n tableName: '',\n otherProp: {}\n },\n elCascaderProps: {\n expandTrigger: 'hover',\n emitPath: false,\n checkStrictly: true\n }\n };\n },\n methods: {\n getCascaderOptions(slotName) {\n // console.info('getCascaderOptions',this.form.column)\n return this.form.column.find(item => item.prop === slotName).dicData;\n },\n getCascaderColumn(slotName) {\n // console.info('getCascaderOptions',this.form.column)\n return this.form.column.find(item => item.prop === slotName);\n },\n hideColumn(prop) {\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_13__.setArrayObjectKeyValue)(this.form.column, 'display', false, prop);\n },\n showColumn(prop) {\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_13__.setArrayObjectKeyValue)(this.form.column, 'display', true, prop);\n },\n setOtherProp(params) {\n if (this.state.otherProp) {\n if (this.state.otherProp.createBy && this.state.otherProp.createBy.trim()) {\n params.createBy = this.state.otherProp.createBy.trim();\n }\n if (this.state.otherProp.updateBy && this.state.otherProp.updateBy.trim()) {\n params.updateBy = this.state.otherProp.updateBy.trim();\n }\n }\n },\n /**\r\n * 根据列配置获取数据库表更新数据\r\n * @param column\r\n * @param formData\r\n * @returns {{}}\r\n */\n getTableUpdateValue(column, formData) {\n let columnAndValueMap = {};\n for (let {\n prop,\n tableField,\n tableSaveToOtherProp\n } of column) {\n if (tableField && tableField == '1' || tableSaveToOtherProp == '1') {\n continue;\n }\n let value = formData[prop];\n if (value != undefined) {\n if (value instanceof String) {\n value = value.trim();\n }\n if (value instanceof Array) {\n columnAndValueMap[prop] = value.join(',');\n } else {\n columnAndValueMap[prop] = value;\n }\n }\n }\n return columnAndValueMap;\n },\n /**\r\n * 封装主表单校验逻辑\r\n * @returns {Promise<*>}\r\n */\n async validateMainForm() {\n return new Promise(resolve => {\n const validator = this.state.type !== '0' ? this.$refs.formRef.getNativeForm().validate : (valid, done, msg) => this.$refs.formRef.validate(valid, done, msg);\n validator((valid, ...args) => {\n const [msg, done] = this.state.type === '0' ? [args[1], args[0]] : [args[0]];\n if (!valid) {\n const keys = Object.keys(msg);\n const domRef = this.state.type !== '0' ? this.$refs.formRef.getWidgetRef(keys[0])?.$el : this.$refs.formRef.getPropRef(keys[0])?.$el;\n domRef?.scrollIntoView({\n block: \"center\",\n behavior: \"smooth\"\n });\n (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)().error(`主表单还有${keys.length}项未填写`);\n resolve(false);\n } else {\n resolve(true);\n }\n if (this.state.type === '0') done?.();\n });\n });\n },\n /**\r\n * 封装子表校验逻辑\r\n * @returns {Promise<FlatArray<Awaited<*>[], 1>[]>}\r\n */\n async validateSubTables() {\n // 1. 获取所有子表引用\n const subTablesRefs = this.$refs.subTable?.getTableRefs()?.getTabRefAll() || [];\n\n // 2. 并行执行全量校验(包含新增/修改/删除的数据)\n const validationPromises = subTablesRefs.map(subTable =>\n // 传入 true 校验所有数据(包括未修改的)\n subTable.$table.validate(true));\n\n // 3. 等待所有子表校验结果\n const results = await Promise.all(validationPromises);\n return results.flat().filter(Boolean);\n },\n /**\r\n * 错误定位工具函数\r\n * @param error\r\n */\n focusFirstError(error) {\n const targetEl = error.getElement?.();\n if (targetEl) {\n targetEl.scrollIntoView({\n block: \"center\",\n behavior: \"smooth\"\n });\n } else {\n console.warn(\"无法定位错误元素:\", error.field);\n }\n },\n async doMainSubSave() {\n try {\n // ====================== 1. 主表单校验 ======================\n const mainFormValid = await this.validateMainForm();\n if (!mainFormValid) return;\n\n // ====================== 2. 子表并行校验 ======================\n const subTableErrors = await this.validateSubTables();\n if (subTableErrors.length > 0) {\n this.focusFirstError(subTableErrors[0]);\n (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)().error(`子表存在${subTableErrors.length}处错误,请修正后提交`);\n return;\n }\n\n // ====================== 3. 全部通过后保存 ======================\n this.save();\n } catch (error) {\n console.error(\"保存过程中发生异常:\", error);\n (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)().error(\"系统异常,请稍后重试\");\n }\n },\n async doSave() {\n let dom;\n let keys;\n if (this.state.type != '0') {\n await this.$refs.formRef.getNativeForm().validate((valid, msg) => {\n if (!valid) {\n keys = Object.keys(msg);\n dom = this.$refs.formRef.getWidgetRef(keys[0]);\n dom.$el.scrollIntoView({\n block: \"center\",\n behavior: \"smooth\"\n });\n (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)().error(\"您还有\" + keys.length + \"项信息未填写,请填写后再操作!\");\n } else {\n this.save();\n }\n });\n } else {\n await this.$refs.formRef.validate((valid, done, msg) => {\n if (!valid) {\n keys = Object.keys(msg);\n dom = this.$refs.formRef.getPropRef(keys[0]);\n dom.$el.scrollIntoView({\n block: \"center\",\n behavior: \"smooth\"\n });\n (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)().error(\"您还有\" + keys.length + \"项信息未填写,请填写后再操作!\");\n } else {\n this.save();\n }\n done();\n });\n }\n },\n saveOk(status) {\n this.state.loading = false;\n this.initOkTabs = [];\n if (status) {\n this.close();\n this.$emit('query');\n }\n if (this.state.otherProp && this.state.otherProp.afterSave) {\n try {\n eval(this.state.otherProp.afterSave);\n } catch (e) {\n console.log(e);\n }\n }\n },\n close() {\n this.state.dialogVisible = false;\n this.$emit('emits', {});\n },\n async save() {\n if (this.js) {\n let param = {\n js: this.js,\n v: this.formData\n };\n this.state.dialogVisible = false;\n this.$emit('emits', param);\n return;\n }\n let params = this.getParams();\n if (this.state.otherProp && this.state.otherProp.beforeSave) {\n try {\n let next = eval(\"(params)=>{\" + this.state.otherProp.beforeSave + \"}\");\n if (next(params) === false) {\n return;\n }\n } catch (e) {\n console.log(e);\n return;\n }\n }\n this.state.loading = true;\n try {\n let url = this.state.saveUrl ? this.state.saveUrl : this.state.edit ? '/online/crudAes/modify' : '/online/crudAes/save';\n if (this.state.requestType.toLowerCase() == \"put\") {\n await (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.put)(this.http, url, params).then(status => {\n this.saveOk(status);\n });\n } else if (!this.state.saveUrl || this.state.saveUrl.indexOf(\"/online/crudAes/\") != -1) {\n await (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.postAes)(this.http, url, params).then(status => {\n this.saveOk(status);\n });\n } else {\n await (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.post)(this.http, url, params).then(status => {\n this.saveOk(status);\n });\n }\n } catch (e) {\n console.error(e);\n } finally {\n this.state.loading = false;\n }\n },\n getChineseMonth(monthIndex) {\n const monthNames = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'];\n return monthNames[monthIndex] || `${monthIndex + 1}月`;\n },\n setDepRoleDefault(column) {\n //人员岗位\n if (column.selectDom === '25' || column.selectDom === '26' || column.selectDom === '27' || column.selectDom === '24') {\n let dic = {\n \"24\": 'olp_cloud,system_dept,name,id',\n \"25\": 'olp_cloud,system_role,name,id',\n \"26\": 'olp_cloud,system_post,name,id',\n \"27\": 'olp_cloud,system_users,nickname,id'\n };\n column.dictTable = dic[column.selectDom];\n column.type = 'select';\n }\n },\n initFormColumn(data) {\n for (let column of this.form.column) {\n if (data.disabled || column.disabled == 1) {\n column.disabled = true;\n }\n this.setDepRoleDefault(column);\n if (column.selectDom === '11') {\n let slotObj = {\n slotName: column.prop,\n type: column.type,\n format: column.format,\n valueFormat: column.valueFormat\n };\n this.dynamicSlotsField[column.prop] = column; //收集继续动态改变值的字段信息,以便动态改变值时更新表单数据\n this.dynamicSlotsTable.push(slotObj); //收集需要的动态插槽字段信息\n } else if (column.selectDom === '20') {\n let slotObj = {\n slotName: column.prop,\n type: column.selectDom\n };\n this.dynamicSlotsField[column.prop] = column; //收集继续动态改变值的字段信息,以便动态改变值时更新表单数据\n this.dynamicSlotsTable.push(slotObj); //收集需要的动态插槽字段信息\n } else if (column.selectDom === '21') {\n let slotObj = {\n slotName: column.prop,\n type: column.selectDom\n };\n this.dynamicSlotsField[column.prop] = column; //收集继续动态改变值的字段信息,以便动态改变值时更新表单数据\n this.dynamicSlotsTable.push(slotObj); //收集需要的动态插槽字段信息\n } else if (column.selectDom === '22') {\n //表格选取\n let slotObj = {\n slotName: column.prop,\n type: column.selectDom,\n config: JSON.parse(column.attrs).olTableSelect\n };\n this.dynamicSlotsField[column.prop] = column; //收集继续动态改变值的字段信息,以便动态改变值时更新表单数据\n this.dynamicSlotsTable.push(slotObj); //收集需要的动态插槽字段信息\n const otherResult = slotObj.config.otherResult; //返回额外参数字段配置\n if (otherResult !== null && otherResult !== undefined && otherResult !== '') {\n let otherResultArray = [];\n otherResult.split(\",\").forEach(m => {\n let k = m.split(\":\");\n // otherResultArray.push({targetField: k[[k.length - 1]], sourceField: k[0]})\n otherResultArray.push({\n targetField: k[0],\n sourceField: k[[k.length - 1]]\n });\n });\n this.dynamicSlotsOtherResult[column.prop] = otherResultArray;\n }\n } else {\n this.initDict(column);\n }\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_13__.parseJson)(column);\n for (let event of ['change']) {\n if (column[event] && !(column[event] instanceof Function)) {\n try {\n column[event] = eval(\"(params)=>{this.$nextTick(()=>{\" + \"let formData = this.formData;\" + \"let {value} = params;\" + replaceDollarBraces(column[event]) + \"})\" + \"}\");\n } catch (e) {\n console.error(e);\n }\n }\n }\n }\n },\n async doInit(data) {\n this.beforeInit();\n this.show = !data.disabled;\n this.initOkTabs = [];\n if (data.saveUrl) {\n this.state.saveUrl = data.saveUrl.trim();\n if (data.requestType) {\n this.state.requestType = data.requestType;\n }\n } else {\n this.state.saveUrl = undefined;\n }\n this.state.edit = data['code'] == 'edit' == true;\n this.state.title = data.title ? data.title : this.state.edit ? '编辑' : '新增';\n if (data.form.title) {\n this.state.title = data.form.title;\n }\n // 设置订单号\n for (const column of data.form.column) {\n column.value = await (0,_utils_columnProp__WEBPACK_IMPORTED_MODULE_6__.getDefaultValue)(this.http, column);\n }\n this.formData = data.formData;\n this.form = data.form;\n this.state.dialogVisible = true;\n for (let key of Object.keys(this.state)) {\n if (data[key]) {\n this.state[key] = data[key];\n }\n }\n if (this.state.type == 0) {\n //赋值弹窗宽度和高度\n if (data.form.diaLogWidth) {\n this.state.width = data.form.diaLogWidth;\n }\n if (data.form.diaLogHeight) {\n this.state.maxHeight = data.form.diaLogHeight + 'px';\n }\n this.initFormColumn(data);\n } else {\n let {\n width,\n height\n } = this.form.formConfig;\n //赋值弹窗宽度和高度\n this.state.width = width;\n this.state.maxHeight = height + 'px';\n for (let widgetListElement of this.form.widgetList) {\n this.setDict(widgetListElement);\n }\n }\n setTimeout(() => {\n this.afterInit();\n }, 350);\n },\n setDict(column) {\n if (column && column.dict) {\n column.dictCode = column.dict;\n this.initDict(column);\n }\n if (column.cols instanceof Array) {\n for (let col of column.cols) {\n this.setDict(col);\n }\n }\n },\n init(data, js) {\n try {\n this.js = js;\n this.doInit(data);\n } catch (e) {\n console.error(e);\n }\n },\n /**\r\n * 初始化后回调\r\n */\n afterInit() {\n if (this.state.otherProp) {\n try {\n this.state.otherProp = JSON.parse(this.state.otherProp);\n if (this.state.otherProp.afterInit) {\n eval(this.state.otherProp.afterInit);\n }\n } catch (e) {\n console.log(e);\n }\n }\n },\n /**\r\n * 初始化前回调\r\n */\n beforeInit() {\n if (this.state.otherProp && this.state.otherProp.beforeInit) {\n try {\n eval(this.state.otherProp.beforeInit);\n } catch (e) {\n console.log(e);\n }\n }\n },\n initDict(column) {\n if (column.dictCode) {\n column.dicData = dict.val(column.dictCode);\n if (column.dict && column.options) {\n column.options.optionItems = column.dicData;\n }\n if (column.selectDom == 1 || !column.type) {\n column.type = \"select\";\n }\n //”number”、”string”、”boolean”、”object”、”function” 和 “undefined”\n let dataType = typeof this.formData[column.prop];\n if ([\"number\", \"boolean\"].indexOf(dataType) != -1) {\n this.formData[column.prop] = String(this.formData[column.prop]);\n column.value = this.formData[column.prop];\n }\n if (this.state.edit) {\n return;\n }\n if (this.formData[column.prop] != undefined) {\n this.formData[column.prop] = String(this.formData[column.prop]);\n column.value = this.formData[column.prop];\n } else if (column.value != undefined) {\n this.formData[column.prop] = String(column.value);\n } else {\n // 数据字典与值类型不一致\n if (this.formData[column.prop] == undefined) {\n setTimeout(() => {\n if (column.dicData) {\n for (let dicDatum of column.dicData) {\n if (dicDatum.isDefault == 1) {\n this.formData[column.prop] = dicDatum.value;\n column.value = this.formData[column.prop];\n }\n }\n }\n }, 100);\n }\n }\n } else if (column.dictTable || column.dictUrl) {\n if (column.selectDom == 1 || !column.type) {\n column.type = \"select\";\n }\n column.filterable = true;\n column.dicData = [];\n setTimeout(() => {\n this.setDictTable(column, undefined);\n }, 10);\n if (column.type == 'tree') {\n column.filterable = column.filterable == undefined ? true : column.clearable;\n column.clearable = column.clearable == undefined ? true : column.clearable;\n let slotObj = {\n slotName: column.prop,\n type: 'tree'\n };\n if (column.attrs) {\n const attrs = JSON.parse(column.attrs);\n this.elCascaderProps = {\n ...this.elCascaderProps,\n ...attrs\n };\n }\n this.dynamicSlotsField[column.prop] = column; //收集继续动态改变值的字段信息,以便动态改变值时更新表单数据\n this.dynamicSlotsTable.push(slotObj); //收集需要的动态插槽字段信息\n } else {\n column.filterMethod = e => {\n this.$nextTick(() => {\n this.setDictTable(column, e);\n });\n };\n }\n }\n },\n setDictUrl(column, like) {\n let dictUrl = column.dictUrl.split(\",\");\n let url;\n let label = 'label';\n let value = 'value';\n let parentId = 'parentId';\n // get,url,label,value,parent_id\n let doGet = true;\n if (dictUrl.length > 1) {\n if (dictUrl[0].toString().toLowerCase() == 'post') {\n doGet = false;\n }\n url = dictUrl[1];\n label = dictUrl[2];\n value = dictUrl[3];\n parentId = dictUrl[4];\n } else {\n url = dictUrl[0];\n }\n if (doGet) {\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.get)(this.http, url + \"?label=\" + like).then(data => {\n column.dicData.length = 0;\n if (column.type == 'tree') {\n for (let da of data) {\n da['label'] = da[label];\n da['value'] = da[value];\n }\n column.dicData = (0,_utils_tree__WEBPACK_IMPORTED_MODULE_9__.handleTree)(data, value, parentId);\n } else {\n data.forEach(d => {\n column.dicData.push(d);\n });\n }\n });\n } else {\n let params = {};\n if (like) {\n params['label'] = like;\n }\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.post)(this.http, column.dictUrl, params, false).then(({\n data\n }) => {\n column.dicData.length = 0;\n if (column.type == 'tree') {\n for (let da of data) {\n da['label'] = da[label];\n da['value'] = da[value];\n }\n column.dicData = (0,_utils_tree__WEBPACK_IMPORTED_MODULE_9__.handleTree)(data, value, parentId);\n } else {\n data.forEach(da => {\n da['label'] = da[label];\n da['value'] = da[value];\n column.dicData.push(da);\n });\n }\n });\n }\n },\n setDictTable(column, like) {\n if (column.dictTable && column.dictTable.toString().trim() != '') {\n this.doSetDictTable(column, like);\n } else if (column.dictUrl) {\n this.setDictUrl(column, like);\n }\n },\n doSetDictTable(column, like) {\n let value = this.formData[column.prop];\n /*String tableName;\r\n String dbName;\r\n String label;\r\n String value;\r\n Map<String, Object> where;*/\n // olp-vue-pro,system_users,nickname,id,parentId\n let params = {};\n // let dictTable = column.dictTable;\n try {\n // 使用Function构造函数比eval更安全\n params = new Function('return ' + column.dictTable)();\n } catch (e) {\n // 2. 业务调用侧(清晰的使用逻辑)\n params = (0,_utils_formUtils__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(column.dictTable);\n }\n if (like || value) {\n if (!params.where) {\n params.where = {};\n }\n }\n if (!params[\"parentValue\"]) {\n if (like) {\n params.where['_like_' + params[\"label\"]] = like;\n }\n if (value instanceof Array) {\n let val = '';\n for (let valueElement of value) {\n if (val.length > 0) {\n val += \",\";\n }\n val = val + \"'\" + valueElement + \"'\";\n }\n if (val) {\n params.where['_in_' + params[\"label\"]] = val;\n }\n //params.defaultValue = value;\n } else {\n params.defaultValue = value;\n }\n }\n (0,_api_dist__WEBPACK_IMPORTED_MODULE_11__.initDictTable)(this.http, params).then(data => {\n column.dicData.length = 0;\n if (params[\"parentValue\"]) {\n column.dicData = (0,_utils_tree__WEBPACK_IMPORTED_MODULE_9__.handleTree)(data, 'dictValue', 'parentValue');\n } else {\n data.forEach(d => {\n d.value = d.value + '';\n d.dictValue = d.dictValue + '';\n column.dicData.push(d);\n });\n }\n });\n },\n /**\r\n * 表格选择器回调函数\r\n * @param data\r\n */\n olTableSelectChange(slotName, data) {\n // console.info('插槽名称', slotName, '表格回传的数据', data)\n // console.info('表格', this.form.column)\n this.formData[slotName] = data.value; //修改表单数据,以便后续提交\n if (typeof this.dynamicSlotsField[slotName].change === 'function') {\n this.dynamicSlotsField[slotName].change(data.value); //字段数据更新回调\n }\n //给其他字段赋值\n this.dynamicSlotsOtherResult[slotName]?.forEach(item => {\n this.formData[item.targetField] = data.data[item.sourceField];\n });\n },\n uploadChange(slotName, data) {\n console.info('回调', slotName, data);\n this.formData[slotName] = data; //修改表单数据,以便后续提交\n if (typeof this.dynamicSlotsField[slotName].change === 'function') {\n this.dynamicSlotsField[slotName].change(data); //字段数据更新回调\n }\n },\n handleEmits({\n m,\n v,\n d,\n js\n }, key) {\n if (typeof js === 'string') {\n eval(js);\n } else if (m && this[m]) {\n this[m](v);\n }\n if (d != false) {\n this.customUrl = undefined;\n }\n this.formData[key] = v;\n console.log('emits:', this.formData);\n }\n },\n mounted() {\n this.$nextTick(() => {\n (0,_store_dict__WEBPACK_IMPORTED_MODULE_12__.storeDict)().init(this.http);\n });\n }\n};\n\n//# sourceURL=webpack://olp-table/./src/mixins/VTMixin/OForm.js?");
12779
12779
 
12780
12780
  /***/ }),
12781
12781
 
@@ -12786,7 +12786,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
12786
12786
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
12787
12787
 
12788
12788
  "use strict";
12789
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ OTMixinBody: function() { return /* binding */ OTMixinBody; }\n/* harmony export */ });\n/* harmony import */ var _OTMixinBodyMethods__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./OTMixinBodyMethods */ \"./src/mixins/VTMixin/OTMixinBodyMethods.js\");\n/* harmony import */ var _mixins_VTMixin_OTMixinColumnMethod__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/mixins/VTMixin/OTMixinColumnMethod */ \"./src/mixins/VTMixin/OTMixinColumnMethod.js\");\n/* harmony import */ var _mixins_VTMixin_OTMixinBodyFooter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/mixins/VTMixin/OTMixinBodyFooter */ \"./src/mixins/VTMixin/OTMixinBodyFooter.js\");\n\n\n\nconst OTMixinBody = {\n name: 'OTMixinBody',\n mixins: [_OTMixinBodyMethods__WEBPACK_IMPORTED_MODULE_0__.OTMixinBodyMethods, _mixins_VTMixin_OTMixinColumnMethod__WEBPACK_IMPORTED_MODULE_1__.OTMixinColumnMethod, _mixins_VTMixin_OTMixinBodyFooter__WEBPACK_IMPORTED_MODULE_2__.OTMixinBodyFooter],\n data() {\n return {\n components: undefined,\n customUrl: undefined,\n parameter: {},\n parameterDefault: {},\n orderByColumns: [],\n tableDataObj: {},\n loading: {},\n deleteParameter: {},\n tableConfig: {},\n isMaximized: false,\n operationBtn: [],\n toolBtn: [],\n formItem: [],\n selectBox: \"0\",\n //0/无、1/单选、2/\n table: {\n sortable: false,\n scrollX: {\n enabled: true,\n gt: 5\n },\n scrollY: {\n enabled: true,\n gt: 5\n },\n ref: 'vTable',\n loading: false,\n border: false,\n align: 'center',\n size: \"mini\",\n height: 'auto',\n \"show-footer\": false,\n // 合并行字段\n mergeFields: [],\n loadingConfig: {\n text: '数据加载中..'\n },\n formConfig: {\n show: true,\n size: \"medium\",\n titleWidth: 100,\n titleAlign: 'right',\n titleOverflow: true,\n items: [],\n data: {}\n },\n columnConfig: {\n resizable: true\n },\n rowConfig: {\n isCurrent: true\n },\n sortConfig: {\n defaultSort: []\n },\n columns: [],\n columnSource: [],\n data: [],\n dataSource: [],\n toolbarConfig: {\n slots: {\n buttons: 'header_left',\n tools: 'header_right'\n }\n },\n ...this.$attrs,\n other: {\n departmentDict: []\n } //其他信息\n },\n search: {\n show: false,\n queryBtn: true,\n resetBtn: true\n },\n toolbar: {\n show: false,\n //是否显示\n addBtn: true,\n //添加按钮\n batchDeleteBtn: true,\n //查询按钮\n uploadBtn: true,\n //上传按钮\n downloadBtn: true,\n //下载按钮\n refresh: true,\n // 显示刷新按钮\n import: true,\n // 显示导入按钮\n export: true,\n // 显示导出按钮\n print: true,\n // 显示打印按钮\n zoom: true,\n // 显示全屏按钮\n custom: true // 显示自定义列按钮\n },\n formMainList: [],\n dialog: {\n title: '弹窗',\n width: '80%',\n height: '',\n form: [],\n designer: '0'\n },\n formKey: 0,\n dialogVisible: false,\n events: {},\n player: {},\n showCustomModal: true,\n playerOptions: {\n language: 'zh-CN',\n languages: {\n 'zh-CN': {\n 'Play': '播放',\n 'Play Video': '播放',\n 'Replay': '重播',\n 'Pause': '暂停',\n 'Mute': '静音',\n 'Unmute': '取消静音',\n 'Fullscreen': '全屏',\n 'Exit Fullscreen': '退出全屏',\n 'Picture-in-Picture': '画中画',\n 'Exit Picture-in-Picture': '退出画中画'\n }\n }\n }\n };\n },\n computed: {\n elSize() {\n let data = {\n 'mini': 'small',\n 'small': 'default',\n 'medium': 'large'\n };\n return data[this.table.size] ? data[this.table.size] : 'default';\n },\n $table() {\n return this.$refs[this.table.ref];\n }\n }\n};\n\n//# sourceURL=webpack://olp-table/./src/mixins/VTMixin/OTMixinBody.js?");
12789
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ OTMixinBody: function() { return /* binding */ OTMixinBody; }\n/* harmony export */ });\n/* harmony import */ var _OTMixinBodyMethods__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./OTMixinBodyMethods */ \"./src/mixins/VTMixin/OTMixinBodyMethods.js\");\n/* harmony import */ var _mixins_VTMixin_OTMixinColumnMethod__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/mixins/VTMixin/OTMixinColumnMethod */ \"./src/mixins/VTMixin/OTMixinColumnMethod.js\");\n/* harmony import */ var _mixins_VTMixin_OTMixinBodyFooter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/mixins/VTMixin/OTMixinBodyFooter */ \"./src/mixins/VTMixin/OTMixinBodyFooter.js\");\n\n\n\nconst OTMixinBody = {\n name: 'OTMixinBody',\n mixins: [_OTMixinBodyMethods__WEBPACK_IMPORTED_MODULE_0__.OTMixinBodyMethods, _mixins_VTMixin_OTMixinColumnMethod__WEBPACK_IMPORTED_MODULE_1__.OTMixinColumnMethod, _mixins_VTMixin_OTMixinBodyFooter__WEBPACK_IMPORTED_MODULE_2__.OTMixinBodyFooter],\n data() {\n return {\n components: undefined,\n customUrl: undefined,\n parameter: {},\n parameterDefault: {},\n orderByColumns: [],\n tableDataObj: {},\n loading: {},\n deleteParameter: {},\n tableConfig: {},\n isMaximized: false,\n operationBtn: [],\n toolBtn: [],\n formItem: [],\n selectBox: \"0\",\n //0/无、1/单选、2/\n table: {\n sortable: false,\n scrollX: {\n enabled: true,\n gt: 5\n },\n scrollY: {\n enabled: true,\n gt: 5\n },\n ref: 'vTable',\n loading: false,\n border: false,\n align: 'center',\n size: \"mini\",\n height: 'auto',\n \"show-footer\": false,\n // 合并行字段\n mergeFields: [],\n loadingConfig: {\n text: '数据加载中..'\n },\n formConfig: {\n show: true,\n size: \"medium\",\n titleWidth: 100,\n titleAlign: 'right',\n titleOverflow: true,\n items: [],\n data: {}\n },\n columnConfig: {\n resizable: true\n },\n rowConfig: {\n isCurrent: true\n },\n sortConfig: {\n defaultSort: []\n },\n columns: [],\n columnSource: [],\n data: [],\n dataSource: [],\n toolbarConfig: {\n slots: {\n buttons: 'header_left',\n tools: 'header_right'\n }\n },\n printConfig: {},\n ...this.$attrs,\n other: {\n departmentDict: []\n } //其他信息\n },\n search: {\n show: false,\n queryBtn: true,\n resetBtn: true\n },\n toolbar: {\n show: false,\n //是否显示\n addBtn: true,\n //添加按钮\n batchDeleteBtn: true,\n //查询按钮\n uploadBtn: true,\n //上传按钮\n downloadBtn: true,\n //下载按钮\n refresh: true,\n // 显示刷新按钮\n import: true,\n // 显示导入按钮\n export: true,\n // 显示导出按钮\n print: true,\n // 显示打印按钮\n zoom: true,\n // 显示全屏按钮\n custom: true // 显示自定义列按钮\n },\n formMainList: [],\n dialog: {\n title: '弹窗',\n width: '80%',\n height: '',\n form: [],\n designer: '0'\n },\n formKey: 0,\n dialogVisible: false,\n events: {},\n player: {},\n showCustomModal: true,\n playerOptions: {\n language: 'zh-CN',\n languages: {\n 'zh-CN': {\n 'Play': '播放',\n 'Play Video': '播放',\n 'Replay': '重播',\n 'Pause': '暂停',\n 'Mute': '静音',\n 'Unmute': '取消静音',\n 'Fullscreen': '全屏',\n 'Exit Fullscreen': '退出全屏',\n 'Picture-in-Picture': '画中画',\n 'Exit Picture-in-Picture': '退出画中画'\n }\n }\n }\n };\n },\n computed: {\n elSize() {\n let data = {\n 'mini': 'small',\n 'small': 'default',\n 'medium': 'large'\n };\n return data[this.table.size] ? data[this.table.size] : 'default';\n },\n $table() {\n return this.$refs[this.table.ref];\n }\n }\n};\n\n//# sourceURL=webpack://olp-table/./src/mixins/VTMixin/OTMixinBody.js?");
12790
12790
 
12791
12791
  /***/ }),
12792
12792
 
@@ -12808,7 +12808,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
12808
12808
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
12809
12809
 
12810
12810
  "use strict";
12811
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ OTMixinBodyMethods: function() { return /* binding */ OTMixinBodyMethods; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/core-js/modules/es.iterator.filter.js\");\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_iterator_some_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.iterator.some.js */ \"./node_modules/core-js/modules/es.iterator.some.js\");\n/* harmony import */ var core_js_modules_es_iterator_some_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_some_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _store_dict__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/store/dict */ \"./src/store/dict.js\");\n/* harmony import */ var _store_dictType__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/store/dictType */ \"./src/store/dictType.js\");\n/* harmony import */ var _utils_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils/util */ \"./src/utils/util.js\");\n/* harmony import */ var _utils_message__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/utils/message */ \"./src/utils/message.js\");\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _utils_TableSortUtil__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/utils/TableSortUtil */ \"./src/utils/TableSortUtil.js\");\n/* harmony import */ var _mixins_VTMixin_DefaultMethods__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/mixins/VTMixin/DefaultMethods */ \"./src/mixins/VTMixin/DefaultMethods.js\");\n/* harmony import */ var _directives_permission_hasPermi__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/directives/permission/hasPermi */ \"./src/directives/permission/hasPermi.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst message = (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)(); // 消息弹窗\nconst dict = (0,_store_dict__WEBPACK_IMPORTED_MODULE_4__.storeDict)();\nconst dictType = (0,_store_dictType__WEBPACK_IMPORTED_MODULE_5__.storeDictType)();\nconst OTMixinBodyMethods = {\n mixins: [_mixins_VTMixin_DefaultMethods__WEBPACK_IMPORTED_MODULE_11__.DefaultMethods],\n emits: ['handleOperationClick', 'toolbarBtnClick', 'initComponents', 'selectRowChange'],\n methods: {\n /**\r\n * 自定义表单方法\r\n * @returns {*}\r\n */\n customerForm(show) {\n this.toggleFormDisplay();\n this.table.formConfig.show = show == true;\n return this.table.formConfig;\n },\n /**\r\n * 搜索隐藏/显示\r\n */\n toggleFormDisplay() {\n // 获取组件的根 DOM 元素\n const rootEl = this.$refs[this.table.ref].$el;\n\n // 查询第一个子标签是否为 vxe-grid--form-wrapper\n const formWrapperEl = rootEl.querySelector('.vxe-grid--form-wrapper');\n if (formWrapperEl) {\n // 查询 formWrapperEl 下的第一个 form 标签\n const formEl = formWrapperEl.querySelector('form');\n if (formEl) {\n // 获取 form 标签的当前 display 样式\n const currentDisplay = window.getComputedStyle(formEl).display;\n\n // 根据当前 display 样式设置新的样式\n if (currentDisplay === 'none') {\n // 如果当前是 none,则移除 display 样式(设置为空字符串)\n formEl.style.display = '';\n } else {\n // 否则设置为 none\n formEl.style.display = 'none';\n }\n }\n }\n },\n /**\r\n * 选中回调\r\n */\n selectRowChange() {\n let rows = this.getSelectRows();\n if (!rows) {\n return;\n }\n this.pagination.selectionRowsLength = rows.length;\n this.setToolBtn('batchDelete', 'disabled', rows.length == 0);\n rows = this.selectBox == 1 ? rows[0] : rows;\n if (this.events['selectRowChange']) {\n this.events['selectRowChange'](rows);\n }\n this.$emit(\"selectRowChange\", rows);\n },\n /**\r\n * 切换表格最大化/还原\r\n */\n zoomEvent() {\n if (this.$table) {\n this.$table.zoom();\n this.isMaximized = this.$table.isMaximized();\n }\n },\n initToolBtn(toolBut) {\n let obj = undefined;\n for (let i = 0; i < toolBut.length; i++) {\n let toolButElement = toolBut[i];\n toolButElement.disabled = toolButElement.defaultDisabled == 1;\n toolButElement.show = toolButElement.defaultShow == 1;\n if (toolButElement.code == 'sortable') {\n toolButElement.values = false;\n obj = JSON.parse(JSON.stringify(toolButElement));\n obj.id = obj.id + \"_sortable\";\n obj.name = \"调整完成\";\n obj.code = \"sortableOk\";\n obj.icon = \"vxe-icon-check\";\n obj.show = false;\n obj.disabled = true;\n obj.index = i + 1;\n }\n }\n if (obj) {\n toolBut.splice(obj.index, 0, obj);\n }\n this.toolBtn = toolBut;\n },\n initOperationBtn(operationBtn) {\n this.operationBtn = operationBtn;\n let permissEx = 0;\n for (let i = 0; i < this.operationBtn.length; i++) {\n let operationBtnElement = this.operationBtn[i];\n let flag = (0,_directives_permission_hasPermi__WEBPACK_IMPORTED_MODULE_12__.doPermission)({\n parentNode: false\n }, [this.uuid + ':' + this.theme + ':' + operationBtnElement.code]);\n if (!flag) {\n operationBtnElement.permission = false;\n permissEx++;\n }\n }\n let length = this.operationBtn.length - permissEx;\n let width = 35;\n if (length != 0) {\n if (this.table.operationWidth) {\n width = this.table.operationWidth;\n } else {\n for (let o of this.operationBtn.filter(o => o.permission !== false)) {\n width += o.name.length * (35 - length) + (o.icon !== undefined ? 5 : 0);\n }\n }\n const hasOperateColumn = this.table.columns.some(col => ['操作'].includes(col.title));\n if (!hasOperateColumn) {\n this.table.columns.push({\n title: '操作',\n width: width,\n fixed: \"right\",\n slots: {\n default: 'operate'\n }\n });\n }\n }\n },\n initTree({\n tree,\n treeId,\n treeParentId\n }) {\n if (tree == 1) {\n this.table.treeConfig = {\n show: true,\n transform: false,\n indent: 15,\n reserve: tree,\n rowField: treeId,\n parentField: treeParentId,\n treeId: treeId,\n treeParentId: treeParentId,\n iconClose: \"vxe-icon-arrow-right\",\n iconOpen: \"vxe-icon-arrow-down\"\n };\n this.table.rowConfig.keyField = treeId;\n }\n },\n initFormMainList(formMainList) {\n this.formMainList = formMainList;\n },\n async doSetComponents(customUrl, method, props, multipleProps) {\n this.customUrl = (0,vue__WEBPACK_IMPORTED_MODULE_9__.markRaw)(customUrl);\n await this.$nextTick(async () => {\n if (multipleProps == '1' || multipleProps == true) {\n doCallback(this.$refs.components[method], props);\n } else if (multipleProps == '2') {\n doCallback2(this.$refs.components[method], props);\n } else {\n this.$refs.components[method](props);\n }\n });\n },\n setComponent(url, method, props, multipleProps) {\n if (url.indexOf(\"@\") == 0) {\n this.$emit('initComponents', {\n url: url,\n method: method,\n props: props,\n multipleProps: multipleProps,\n doSetComponents: this.doSetComponents\n });\n } else {\n this.doSetComponents(__webpack_require__(\"./src sync recursive ^\\\\.\\\\/.*$\")(`./${url}`).default, method, props, multipleProps);\n }\n },\n async toolbarBtnClick(code) {\n if (code == \"batchDelete\") {\n this.batchRemove();\n this.$emit('toolbarBtnClick', code);\n return;\n } else if (code == 'download') {\n this.setComponent(\"components/ol-dialog-excel\", \"open\", {\n column: JSON.parse(JSON.stringify(this.table.columnSource)),\n selectData: this.pagination.selectionRowsLength >= 1 ? '2' : '1'\n });\n return;\n } else if (code == 'upload') {\n let toolBtn = this.getToolBtn(code);\n let {\n json,\n beforeFunction\n } = toolBtn;\n if (json) {\n json = json.replace(/([{,]\\s*)([a-zA-Z0-9_]+)(\\s*:)/g, '$1\"$2\"$3').replace(/:(\\s*)'([^']+)'(\\s*[,}])/g, ':$1\"$2\"$3'); // 修正字符串值\n json = JSON.parse(json);\n }\n let defaultValue = {};\n if (beforeFunction) {\n // 第一次分割:按逗号分割成键值对\n //\"department_id=#{department_id},sex=1\"\n let pairs = beforeFunction.split(',');\n for (const pair of pairs) {\n // 第二次分割:按等号分割键和值\n let [key, value] = pair.split('=');\n if (value != undefined) {\n let value2 = value.toString().trim();\n if (value2.trim().startsWith('#{') && value2.endsWith('}')) {\n // 处理 #{department_id} 格式的值\n let key2 = value.slice(2, -1).trim(); // 去掉 #{ 和 }\n this.setParamsValue(defaultValue, key2);\n } else {\n defaultValue[key] = value;\n }\n } else {\n this.setParamsValue(defaultValue, key);\n }\n }\n }\n this.setComponent(\"components/ol-dialog-import\", \"open\", {\n column: JSON.parse(JSON.stringify(this.table.columnSource)),\n tableConfigId: this.tableConfig.id,\n json: json,\n defaultValue: defaultValue,\n saveParams: {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n tableConfigId: this.tableConfig.id\n }\n });\n return;\n } else if (code == 'sortable') {\n this.sortableClick();\n return;\n } else if (code == 'sortableOk') {\n this.loading['sortableOk'] = true;\n this.sortableOkClick();\n return;\n }\n let customFunction = this.getToolBtn(code).customFunction;\n if (customFunction != undefined && customFunction.toString().trim().length > 0) {\n eval(customFunction);\n } else if (code == 'add') {\n this.showForm(code);\n }\n this.$emit('toolbarBtnClick', code);\n },\n setParamsValue(params, key) {\n key = key.trim();\n let v = this.table.formConfig.data[key];\n if (v == undefined) {\n v = this.parameter[key];\n }\n if (v != undefined) {\n params[key] = v;\n }\n },\n getBtnJson(code) {\n for (const toolBtn of this.operationBtn) {\n if (toolBtn.code == code) {\n return this.getSubParam(toolBtn.json);\n }\n }\n for (const toolBtn of this.toolBtn) {\n if (toolBtn.code == code) {\n return this.getSubParam(toolBtn.json);\n }\n }\n },\n getDeleteId(param) {\n for (let key of Object.keys(param)) {\n if (key != '$parentId') {\n return key;\n }\n }\n },\n sortableClick() {\n for (let toolBtn of this.toolBtn) {\n if (toolBtn.code == 'sortable') {\n toolBtn.values = !toolBtn.values;\n this.loading['sortableOk'] = false;\n this.setToolBtn('sortableOk', 'show', toolBtn.values);\n toolBtn.start = 999999;\n toolBtn.end = -1;\n if (toolBtn.values) {\n if (toolBtn.beforeFunction == undefined || toolBtn.beforeFunction == '' || toolBtn.beforeFunction.split(\",\") < 2) {\n message.error(\"排序字段未配置,请在做工具栏按钮配置中配置参数1(sort,id)\");\n return;\n }\n toolBtn.updateData = {};\n toolBtn.$elm = (0,_utils_TableSortUtil__WEBPACK_IMPORTED_MODULE_10__.updateSortRowCall)(this.$table, (oldIndex, newIndex) => {\n let start = Math.min(oldIndex, newIndex);\n let end = Math.max(oldIndex, newIndex);\n toolBtn.start = Math.min(start, toolBtn.start);\n toolBtn.end = Math.max(end, toolBtn.end);\n this.setToolBtn('sortableOk', 'disabled', false);\n this.table.data = (0,_utils_TableSortUtil__WEBPACK_IMPORTED_MODULE_10__.getNewArrDataToolBtn)(oldIndex, newIndex, this.table.data, toolBtn);\n });\n } else if (toolBtn.$elm) {\n this.setToolBtn('sortableOk', 'disabled', true);\n toolBtn.$elm.destroy();\n toolBtn.$elm = undefined;\n this.query();\n }\n return;\n }\n }\n },\n sortableOkClick() {\n for (let toolBtn of this.toolBtn) {\n if (toolBtn.code == 'sortable') {\n let url;\n this.loading['sortableOk'] = true;\n this.table.loading = true;\n let params = {\n list: [],\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable\n };\n //sort,id 排序字段,更新主键\n let kw = toolBtn.beforeFunction.split(\",\");\n if (toolBtn.alterFunction) {\n url = toolBtn.alterFunction;\n } else {\n url = '/online/crud/batchModify';\n params.tableConfigId = this.tableConfig.id;\n }\n //这里肯定只有一个值\n for (let key of Object.keys(toolBtn.updateData)) {\n if (toolBtn.alterFunction) {\n let kv = {};\n kv[kw[1]] = key;\n kv[kw[0]] = toolBtn.updateData[key];\n params.list.push(kv);\n } else {\n let columnAndValueMap = {};\n let whereMap = {};\n whereMap[kw[1]] = key;\n columnAndValueMap[kw[0]] = toolBtn.updateData[key];\n params.list.push({\n columnAndValueMap,\n whereMap\n });\n }\n }\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.post)(this.http, url, params).then(status => {\n if (status) {\n this.query();\n this.setToolBtn('sortableOk', 'disabled', true);\n }\n }).finally(() => {\n this.loading['sortableOk'] = false;\n this.table.loading = false;\n });\n }\n }\n },\n showRender(descCode, url, title) {\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.get)(this.http, '/online/formDesigner/getOne', {\n descCode: descCode\n }, undefined, true).then(d => {\n let data = {\n type: 1,\n saveUrl: url,\n title: title,\n form: JSON.parse(d.formJson),\n tableConfigId: this.tableConfig.id\n };\n this.$refs[\"form\"].init(data, false);\n });\n },\n showForm(code, formData, js) {\n if (!formData) {\n formData = {};\n }\n let disabled = false;\n let btnJson = this.getBtnJson(code);\n //详情\n if (code == 'details') {\n disabled = true;\n code = 'edit';\n let btnJson2 = this.getBtnJson(code);\n if (btnJson2) {\n btnJson = {\n ...btnJson,\n ...btnJson2\n };\n } else if (btnJson2 !== undefined) {\n btnJson = btnJson2;\n }\n if (!btnJson || !btnJson.title) {\n btnJson.title = '详情';\n }\n }\n let form = this.formMainList[code];\n if (!form) {\n return;\n }\n let formJsonStr = form.formJson[form.formMain.designer == 0 ? 'optionJson' : 'customJson'];\n let data = {\n type: form.formMain.designer,\n saveUrl: form.formMain.saveUrl,\n requestType: form.formMain.requestType,\n updateKey: form.formMain.updateKey,\n otherProp: form.formMain.otherProp,\n formData,\n theme: this.theme,\n form: JSON.parse(formJsonStr),\n tableConfigId: this.tableConfig.id,\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n code,\n disabled\n };\n if (btnJson && btnJson.type == 1) {\n data.uuid = btnJson.subUuid;\n data.title = btnJson.title;\n data.deleteId = btnJson.deleteId;\n data.foreignKey = btnJson.subForeignKey;\n data.exBtnDisabled = btnJson.exBtnDisabled;\n this.$refs[\"subForm\"].init(data, js);\n } else {\n this.$nextTick(() => {\n data.title = btnJson.title;\n this.$refs[\"form\"].init(data, js);\n });\n }\n },\n async handleOperationClick(o) {\n let {\n obj,\n row\n } = o;\n if (obj.customFunction) {\n eval(obj.customFunction);\n } else if (obj.code == \"delete\") {\n this.remove(o);\n } else if (obj.code == 'edit' || obj.code == 'details' || obj.isForm == 1) {\n this.showForm(obj.code, row);\n }\n this.$emit(\"handleOperationClick\", o);\n },\n getSubParam(json) {\n let obj = {\n deleteId: this.getDeleteId(this.deleteParameter)\n }; // 初始化为空对象\n if (json) {\n return {\n ...obj,\n ...JSON.parse(json)\n };\n }\n return {\n ...obj\n };\n }\n },\n created() {\n dict.init(this.http);\n dictType.init(this.http);\n }\n};\nfunction rowCamelCase(o) {\n let obj = {};\n for (let key of Object.keys(o)) {\n if (key == 'XROWKEY') {\n continue;\n }\n let k = key;\n if (re(key)) {\n k = key.substring(3);\n }\n obj[(0,_utils_util__WEBPACK_IMPORTED_MODULE_6__.toCamelCase)(k)] = o[key];\n }\n return obj;\n}\nfunction re(k) {\n let reg = /^t\\d_/;\n return reg.test(k);\n}\nfunction doCallback(fn, args) {\n for (let arg of args) {\n fn.apply(this, arg);\n }\n}\nfunction doCallback2(fn, args) {\n fn.apply(this, args);\n}\n\n//# sourceURL=webpack://olp-table/./src/mixins/VTMixin/OTMixinBodyMethods.js?");
12811
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ OTMixinBodyMethods: function() { return /* binding */ OTMixinBodyMethods; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/core-js/modules/es.iterator.filter.js\");\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_iterator_some_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.iterator.some.js */ \"./node_modules/core-js/modules/es.iterator.some.js\");\n/* harmony import */ var core_js_modules_es_iterator_some_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_some_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _store_dict__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/store/dict */ \"./src/store/dict.js\");\n/* harmony import */ var _store_dictType__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/store/dictType */ \"./src/store/dictType.js\");\n/* harmony import */ var _utils_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils/util */ \"./src/utils/util.js\");\n/* harmony import */ var _utils_message__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/utils/message */ \"./src/utils/message.js\");\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _utils_TableSortUtil__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/utils/TableSortUtil */ \"./src/utils/TableSortUtil.js\");\n/* harmony import */ var _mixins_VTMixin_DefaultMethods__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/mixins/VTMixin/DefaultMethods */ \"./src/mixins/VTMixin/DefaultMethods.js\");\n/* harmony import */ var _directives_permission_hasPermi__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/directives/permission/hasPermi */ \"./src/directives/permission/hasPermi.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst message = (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)(); // 消息弹窗\nconst dict = (0,_store_dict__WEBPACK_IMPORTED_MODULE_4__.storeDict)();\nconst dictType = (0,_store_dictType__WEBPACK_IMPORTED_MODULE_5__.storeDictType)();\nconst OTMixinBodyMethods = {\n mixins: [_mixins_VTMixin_DefaultMethods__WEBPACK_IMPORTED_MODULE_11__.DefaultMethods],\n emits: ['handleOperationClick', 'toolbarBtnClick', 'initComponents', 'selectRowChange'],\n methods: {\n /**\r\n * 自定义表单方法\r\n * @returns {*}\r\n */\n customerForm(show) {\n this.toggleFormDisplay();\n this.table.formConfig.show = show == true;\n return this.table.formConfig;\n },\n /**\r\n * 搜索隐藏/显示\r\n */\n toggleFormDisplay() {\n // 获取组件的根 DOM 元素\n const rootEl = this.$refs[this.table.ref].$el;\n\n // 查询第一个子标签是否为 vxe-grid--form-wrapper\n const formWrapperEl = rootEl.querySelector('.vxe-grid--form-wrapper');\n if (formWrapperEl) {\n // 查询 formWrapperEl 下的第一个 form 标签\n const formEl = formWrapperEl.querySelector('form');\n if (formEl) {\n // 获取 form 标签的当前 display 样式\n const currentDisplay = window.getComputedStyle(formEl).display;\n\n // 根据当前 display 样式设置新的样式\n if (currentDisplay === 'none') {\n // 如果当前是 none,则移除 display 样式(设置为空字符串)\n formEl.style.display = '';\n } else {\n // 否则设置为 none\n formEl.style.display = 'none';\n }\n }\n }\n },\n /**\r\n * 选中回调\r\n */\n selectRowChange() {\n let rows = this.getSelectRows();\n if (!rows) {\n return;\n }\n this.pagination.selectionRowsLength = rows.length;\n this.setToolBtn('batchDelete', 'disabled', rows.length == 0);\n rows = this.selectBox == 1 ? rows[0] : rows;\n if (this.events['selectRowChange']) {\n this.events['selectRowChange'](rows);\n }\n this.$emit(\"selectRowChange\", rows);\n },\n /**\r\n * 切换表格最大化/还原\r\n */\n zoomEvent() {\n if (this.$table) {\n this.$table.zoom();\n this.isMaximized = this.$table.isMaximized();\n }\n },\n initToolBtn(toolBut) {\n let obj = undefined;\n for (let i = 0; i < toolBut.length; i++) {\n let toolButElement = toolBut[i];\n toolButElement.disabled = toolButElement.defaultDisabled == 1;\n toolButElement.show = toolButElement.defaultShow == 1;\n if (toolButElement.code == 'sortable') {\n toolButElement.values = false;\n obj = JSON.parse(JSON.stringify(toolButElement));\n obj.id = obj.id + \"_sortable\";\n obj.name = \"调整完成\";\n obj.code = \"sortableOk\";\n obj.icon = \"vxe-icon-check\";\n obj.show = false;\n obj.disabled = true;\n obj.index = i + 1;\n }\n }\n if (obj) {\n toolBut.splice(obj.index, 0, obj);\n }\n this.toolBtn = toolBut;\n },\n initOperationBtn(operationBtn) {\n this.operationBtn = operationBtn;\n let permissEx = 0;\n for (let i = 0; i < this.operationBtn.length; i++) {\n let operationBtnElement = this.operationBtn[i];\n let flag = (0,_directives_permission_hasPermi__WEBPACK_IMPORTED_MODULE_12__.doPermission)({\n parentNode: false\n }, [this.uuid + ':' + this.theme + ':' + operationBtnElement.code]);\n if (!flag) {\n operationBtnElement.permission = false;\n permissEx++;\n }\n }\n let length = this.operationBtn.length - permissEx;\n let width = 35;\n if (length != 0) {\n if (this.table.operationWidth) {\n width = this.table.operationWidth;\n } else {\n for (let o of this.operationBtn.filter(o => o.permission !== false)) {\n width += o.name.length * (35 - length) + (o.icon !== undefined ? 5 : 0);\n }\n }\n const hasOperateColumn = this.table.columns.some(col => ['操作'].includes(col.title));\n if (!hasOperateColumn) {\n this.table.columns.push({\n title: '操作',\n width: width,\n fixed: \"right\",\n slots: {\n default: 'operate'\n }\n });\n }\n }\n },\n initTree({\n tree,\n treeId,\n treeParentId\n }) {\n if (tree == 1) {\n this.table.treeConfig = {\n show: true,\n transform: false,\n indent: 15,\n reserve: tree,\n rowField: treeId,\n parentField: treeParentId,\n treeId: treeId,\n treeParentId: treeParentId,\n iconClose: \"vxe-icon-arrow-right\",\n iconOpen: \"vxe-icon-arrow-down\"\n };\n this.table.rowConfig.keyField = treeId;\n }\n },\n initFormMainList(formMainList) {\n this.formMainList = formMainList;\n },\n async doSetComponents(customUrl, method, props, multipleProps) {\n this.customUrl = (0,vue__WEBPACK_IMPORTED_MODULE_9__.markRaw)(customUrl);\n await this.$nextTick(async () => {\n if (multipleProps == '1' || multipleProps == true) {\n doCallback(this.$refs.components[method], props);\n } else if (multipleProps == '2') {\n doCallback2(this.$refs.components[method], props);\n } else {\n this.$refs.components[method](props);\n }\n });\n },\n setComponent(url, method, props, multipleProps) {\n if (url.indexOf(\"@\") == 0) {\n this.$emit('initComponents', {\n url: url,\n method: method,\n props: props,\n multipleProps: multipleProps,\n doSetComponents: this.doSetComponents\n });\n } else {\n this.doSetComponents(__webpack_require__(\"./src sync recursive ^\\\\.\\\\/.*$\")(`./${url}`).default, method, props, multipleProps);\n }\n },\n async toolbarBtnClick(code) {\n let customFunction = this.getToolBtn(code).customFunction;\n if (customFunction != undefined && customFunction.toString().trim().length > 0) {\n eval(customFunction);\n return;\n } else if (code == 'add') {\n this.showForm(code);\n return;\n }\n if (code == \"batchDelete\") {\n this.batchRemove();\n this.$emit('toolbarBtnClick', code);\n return;\n } else if (code == 'download') {\n this.setComponent(\"components/ol-dialog-excel\", \"open\", {\n column: JSON.parse(JSON.stringify(this.table.columnSource)),\n selectData: this.pagination.selectionRowsLength >= 1 ? '2' : '1'\n });\n return;\n } else if (code == 'upload') {\n let toolBtn = this.getToolBtn(code);\n let {\n json,\n beforeFunction\n } = toolBtn;\n if (json) {\n json = json.replace(/([{,]\\s*)([a-zA-Z0-9_]+)(\\s*:)/g, '$1\"$2\"$3').replace(/:(\\s*)'([^']+)'(\\s*[,}])/g, ':$1\"$2\"$3'); // 修正字符串值\n json = JSON.parse(json);\n }\n let defaultValue = {};\n if (beforeFunction) {\n // 第一次分割:按逗号分割成键值对\n //\"department_id=#{department_id},sex=1\"\n let pairs = beforeFunction.split(',');\n for (const pair of pairs) {\n // 第二次分割:按等号分割键和值\n let [key, value] = pair.split('=');\n if (value != undefined) {\n let value2 = value.toString().trim();\n if (value2.trim().startsWith('#{') && value2.endsWith('}')) {\n // 处理 #{department_id} 格式的值\n let key2 = value.slice(2, -1).trim(); // 去掉 #{ 和 }\n this.setParamsValue(defaultValue, key2);\n } else {\n defaultValue[key] = value;\n }\n } else {\n this.setParamsValue(defaultValue, key);\n }\n }\n }\n this.setComponent(\"components/ol-dialog-import\", \"open\", {\n column: JSON.parse(JSON.stringify(this.table.columnSource)),\n tableConfigId: this.tableConfig.id,\n json: json,\n defaultValue: defaultValue,\n saveParams: {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n tableConfigId: this.tableConfig.id\n }\n });\n return;\n } else if (code == 'sortable') {\n this.sortableClick();\n return;\n } else if (code == 'sortableOk') {\n this.loading['sortableOk'] = true;\n this.sortableOkClick();\n return;\n }\n if (code == 'print') {\n this.openPrint();\n return;\n }\n this.$emit('toolbarBtnClick', code);\n },\n setParamsValue(params, key) {\n key = key.trim();\n let v = this.table.formConfig.data[key];\n if (v == undefined) {\n v = this.parameter[key];\n }\n if (v != undefined) {\n params[key] = v;\n }\n },\n getBtnJson(code) {\n for (const toolBtn of this.operationBtn) {\n if (toolBtn.code == code) {\n return this.getSubParam(toolBtn.json);\n }\n }\n for (const toolBtn of this.toolBtn) {\n if (toolBtn.code == code) {\n return this.getSubParam(toolBtn.json);\n }\n }\n },\n getDeleteId(param) {\n for (let key of Object.keys(param)) {\n if (key != '$parentId') {\n return key;\n }\n }\n },\n sortableClick() {\n for (let toolBtn of this.toolBtn) {\n if (toolBtn.code == 'sortable') {\n toolBtn.values = !toolBtn.values;\n this.loading['sortableOk'] = false;\n this.setToolBtn('sortableOk', 'show', toolBtn.values);\n toolBtn.start = 999999;\n toolBtn.end = -1;\n if (toolBtn.values) {\n if (toolBtn.beforeFunction == undefined || toolBtn.beforeFunction == '' || toolBtn.beforeFunction.split(\",\") < 2) {\n message.error(\"排序字段未配置,请在做工具栏按钮配置中配置参数1(sort,id)\");\n return;\n }\n toolBtn.updateData = {};\n toolBtn.$elm = (0,_utils_TableSortUtil__WEBPACK_IMPORTED_MODULE_10__.updateSortRowCall)(this.$table, (oldIndex, newIndex) => {\n let start = Math.min(oldIndex, newIndex);\n let end = Math.max(oldIndex, newIndex);\n toolBtn.start = Math.min(start, toolBtn.start);\n toolBtn.end = Math.max(end, toolBtn.end);\n this.setToolBtn('sortableOk', 'disabled', false);\n this.table.data = (0,_utils_TableSortUtil__WEBPACK_IMPORTED_MODULE_10__.getNewArrDataToolBtn)(oldIndex, newIndex, this.table.data, toolBtn);\n });\n } else if (toolBtn.$elm) {\n this.setToolBtn('sortableOk', 'disabled', true);\n toolBtn.$elm.destroy();\n toolBtn.$elm = undefined;\n this.query();\n }\n return;\n }\n }\n },\n print() {\n this.$table.print();\n },\n openPrint() {\n this.$table.openPrint({\n style: `.vxe-table--print-wrapper.vxe-body--row td,.vxe-table--print-wrapper.vxe-header--row th{white-space:nowrap!important;overflow:visible!important}@page{size:landscape;margin:10mm}@media print{@page{margin:0}body{margin:1cm}}`,\n zoom: 0.8\n });\n },\n sortableOkClick() {\n for (let toolBtn of this.toolBtn) {\n if (toolBtn.code == 'sortable') {\n let url;\n this.loading['sortableOk'] = true;\n this.table.loading = true;\n let params = {\n list: [],\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable\n };\n //sort,id 排序字段,更新主键\n let kw = toolBtn.beforeFunction.split(\",\");\n if (toolBtn.alterFunction) {\n url = toolBtn.alterFunction;\n } else {\n url = '/online/crud/batchModify';\n params.tableConfigId = this.tableConfig.id;\n }\n //这里肯定只有一个值\n for (let key of Object.keys(toolBtn.updateData)) {\n if (toolBtn.alterFunction) {\n let kv = {};\n kv[kw[1]] = key;\n kv[kw[0]] = toolBtn.updateData[key];\n params.list.push(kv);\n } else {\n let columnAndValueMap = {};\n let whereMap = {};\n whereMap[kw[1]] = key;\n columnAndValueMap[kw[0]] = toolBtn.updateData[key];\n params.list.push({\n columnAndValueMap,\n whereMap\n });\n }\n }\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.post)(this.http, url, params).then(status => {\n if (status) {\n this.query();\n this.setToolBtn('sortableOk', 'disabled', true);\n }\n }).finally(() => {\n this.loading['sortableOk'] = false;\n this.table.loading = false;\n });\n }\n }\n },\n showRender(descCode, url, title) {\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.get)(this.http, '/online/formDesigner/getOne', {\n descCode: descCode\n }, undefined, true).then(d => {\n let data = {\n type: 1,\n saveUrl: url,\n title: title,\n form: JSON.parse(d.formJson),\n tableConfigId: this.tableConfig.id\n };\n this.$refs[\"form\"].init(data, false);\n });\n },\n showForm(code, formData, js) {\n if (!formData) {\n formData = {};\n }\n let disabled = false;\n let btnJson = this.getBtnJson(code);\n //详情\n if (code == 'details') {\n disabled = true;\n code = 'edit';\n let btnJson2 = this.getBtnJson(code);\n if (btnJson2) {\n btnJson = {\n ...btnJson,\n ...btnJson2\n };\n } else if (btnJson2 !== undefined) {\n btnJson = btnJson2;\n }\n if (!btnJson || !btnJson.title) {\n btnJson.title = '详情';\n }\n }\n let form = this.formMainList[code];\n if (!form) {\n return;\n }\n let formJsonStr = form.formJson[form.formMain.designer == 0 ? 'optionJson' : 'customJson'];\n let data = {\n type: form.formMain.designer,\n saveUrl: form.formMain.saveUrl,\n requestType: form.formMain.requestType,\n updateKey: form.formMain.updateKey,\n otherProp: form.formMain.otherProp,\n formData,\n theme: this.theme,\n form: JSON.parse(formJsonStr),\n tableConfigId: this.tableConfig.id,\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n code,\n disabled\n };\n if (btnJson && btnJson.type == 1) {\n data.uuid = btnJson.subUuid;\n data.title = btnJson.title;\n data.deleteId = btnJson.deleteId;\n data.foreignKey = btnJson.subForeignKey;\n data.exBtnDisabled = btnJson.exBtnDisabled;\n this.$refs[\"subForm\"].init(data, js);\n } else {\n this.$nextTick(() => {\n data.title = btnJson.title;\n this.$refs[\"form\"].init(data, js);\n });\n }\n },\n async handleOperationClick(o) {\n let {\n obj,\n row\n } = o;\n if (obj.customFunction) {\n eval(obj.customFunction);\n } else if (obj.code == \"delete\") {\n this.remove(o);\n } else if (obj.code == 'edit' || obj.code == 'details' || obj.isForm == 1) {\n this.showForm(obj.code, row);\n }\n this.$emit(\"handleOperationClick\", o);\n },\n getSubParam(json) {\n let obj = {\n deleteId: this.getDeleteId(this.deleteParameter)\n }; // 初始化为空对象\n if (json) {\n return {\n ...obj,\n ...JSON.parse(json)\n };\n }\n return {\n ...obj\n };\n }\n },\n created() {\n dict.init(this.http);\n dictType.init(this.http);\n }\n};\nfunction rowCamelCase(o) {\n let obj = {};\n for (let key of Object.keys(o)) {\n if (key == 'XROWKEY') {\n continue;\n }\n let k = key;\n if (re(key)) {\n k = key.substring(3);\n }\n obj[(0,_utils_util__WEBPACK_IMPORTED_MODULE_6__.toCamelCase)(k)] = o[key];\n }\n return obj;\n}\nfunction re(k) {\n let reg = /^t\\d_/;\n return reg.test(k);\n}\nfunction doCallback(fn, args) {\n for (let arg of args) {\n fn.apply(this, arg);\n }\n}\nfunction doCallback2(fn, args) {\n fn.apply(this, args);\n}\n\n//# sourceURL=webpack://olp-table/./src/mixins/VTMixin/OTMixinBodyMethods.js?");
12812
12812
 
12813
12813
  /***/ }),
12814
12814
 
@@ -12979,7 +12979,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
12979
12979
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
12980
12980
 
12981
12981
  "use strict";
12982
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ dateFormat: function() { return /* binding */ dateFormat; },\n/* harmony export */ getDate: function() { return /* binding */ getDate; },\n/* harmony export */ getDateByExpression: function() { return /* binding */ getDateByExpression; },\n/* harmony export */ getDateTime: function() { return /* binding */ getDateTime; },\n/* harmony export */ replaceDateByExpression: function() { return /* binding */ replaceDateByExpression; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.for-each.js */ \"./node_modules/core-js/modules/es.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.iterator.map.js */ \"./node_modules/core-js/modules/es.iterator.map.js\");\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! dayjs */ \"./node_modules/dayjs/dayjs.min.js\");\n/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(dayjs__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\n/** 根据表达式获取相应的信息 */\nfunction getDateByExpression(expression) {\n // 空值直接返回\n if (!expression) return expression;\n\n // 统一转换为小写简化匹配逻辑(保留原始表达式格式)\n const exp = expression.toLowerCase().trim();\n\n // 日期/时间表达式映射表\n const formatMap = {\n 'sys_date': 'YYYY-MM-DD',\n 'sysDate': 'YYYY-MM-DD',\n 'date': 'YYYY-MM-DD',\n 'sys_time': 'HH:mm:ss',\n 'sysTime': 'HH:mm:ss',\n 'time': 'HH:mm:ss',\n 'sys_datetime': 'YYYY-MM-DD HH:mm:ss',\n 'sysDatetime': 'YYYY-MM-DD HH:mm:ss',\n 'datetime': 'YYYY-MM-DD HH:mm:ss',\n 'now': 'YYYY-MM-DD HH:mm:ss' // 新增支持项\n };\n\n // 匹配已知表达式并格式化\n if (Object.prototype.hasOwnProperty.call(formatMap, exp)) {\n return dayjs__WEBPACK_IMPORTED_MODULE_3___default()().format(formatMap[exp]);\n }\n\n // 保留原始表达式(含特殊符号场景)\n return expression;\n}\nfunction replaceDateByExpression(expression) {\n if (!expression) {\n return expression;\n }\n const isString = typeof expression === 'string';\n const isArray = Array.isArray(expression);\n if (!isString && !isArray) {\n return expression;\n }\n const reg = /#{(.*?)}/g;\n const replace = str => {\n if (typeof str !== 'string') {\n return str;\n }\n let result = str.match(reg);\n if (result && result.length > 0) {\n result.forEach(item => {\n let userInfo = getDateByExpression(item.substring(2, item.length - 1));\n str = str.replace(item, userInfo);\n });\n }\n return str;\n };\n // @ts-ignore\n return isString ? replace(expression) : expression.map(replace);\n}\nconst getDate = () => {\n return dateFormat(new Date(), 1);\n};\nconst getDateTime = format => {\n return dateFormat(new Date(), format);\n};\nconst dateFormat = (date, format) => {\n if (!date) {\n date = new Date();\n }\n let yyyy = date.getFullYear(); // 年\n let MM = date.getMonth() + 1; // 月\n MM = MM < 10 ? '0' + MM : MM;\n let dd = date.getDate(); // 日\n dd = dd < 10 ? '0' + dd : dd; // 日\n let HH = date.getHours(); // 时\n HH = HH < 10 ? '0' + HH : HH; // 如果只有一位,则前面补零\n let mm = date.getMinutes(); // 分\n mm = mm < 10 ? '0' + mm : mm; // 如果只有一位,则前面补零\n let ss = date.getSeconds(); //秒\n ss = ss < 10 ? '0' + ss : ss; // 如果只有一位,则前面补零\n\n if (format === 1) {\n return yyyy;\n } else if (format === 2) {\n return yyyy + '-' + MM;\n } else if (format === 3) {\n return yyyy + '-' + MM + '-' + dd;\n } else if (format === 98) {\n return yyyy + '-' + MM + '-' + dd + ' ' + HH + ':' + mm + ':' + ss + \"_\" + date.getTime().toString().substring(10);\n } else if (format === 99) {\n return yyyy + '年' + (date.getMonth() + 1) + '月' + date.getDate() + '日';\n }\n return yyyy + '-' + MM + '-' + dd + ' ' + HH + ':' + mm + ':' + ss;\n};\n\n//# sourceURL=webpack://olp-table/./src/utils/DateUtils.js?");
12982
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ dateFormat: function() { return /* binding */ dateFormat; },\n/* harmony export */ getDate: function() { return /* binding */ getDate; },\n/* harmony export */ getDateByExpression: function() { return /* binding */ getDateByExpression; },\n/* harmony export */ getDateTime: function() { return /* binding */ getDateTime; },\n/* harmony export */ replaceDateByExpression: function() { return /* binding */ replaceDateByExpression; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.for-each.js */ \"./node_modules/core-js/modules/es.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.iterator.map.js */ \"./node_modules/core-js/modules/es.iterator.map.js\");\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! dayjs */ \"./node_modules/dayjs/dayjs.min.js\");\n/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(dayjs__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\n/** 根据表达式获取相应的信息 */\nfunction getDateByExpression(expression) {\n // 空值直接返回\n if (!expression) return expression;\n\n // 统一转换为小写简化匹配逻辑(保留原始表达式格式)\n const exp = expression.toLowerCase().trim();\n\n // 日期/时间表达式映射表\n const formatMap = {\n 'date': 'YYYY-MM-DD',\n 'time': 'HH:mm:ss',\n 'datetime': 'YYYY-MM-DD HH:mm:ss',\n 'year': 'YYYY',\n 'month': 'MM',\n 'day': 'DD',\n 'hour': 'HH',\n 'minute': 'mm',\n 'second': 'ss',\n // 中文支持\n '': 'YYYY',\n '月': 'MM',\n '日': 'DD',\n '小时': 'HH',\n '分钟': 'mm',\n '秒': 'ss',\n // 短横线分隔格式\n 'yyyy-mm-dd': 'YYYY-MM-DD',\n 'yyyy-mm': 'YYYY-MM',\n 'mm-dd': 'MM-DD',\n 'hh:mm:ss': 'HH:mm:ss',\n 'hh:mm': 'HH:mm'\n };\n\n // 匹配已知表达式并格式化\n if (Object.prototype.hasOwnProperty.call(formatMap, exp)) {\n return dayjs__WEBPACK_IMPORTED_MODULE_3___default()().format(formatMap[exp]);\n }\n\n // 保留原始表达式(含特殊符号场景)\n return expression;\n}\nfunction replaceDateByExpression(expression) {\n if (!expression) {\n return expression;\n }\n const isString = typeof expression === 'string';\n const isArray = Array.isArray(expression);\n if (!isString && !isArray) {\n return expression;\n }\n const reg = /#{(.*?)}/g;\n const replace = str => {\n if (typeof str !== 'string') {\n return str;\n }\n let result = str.match(reg);\n if (result && result.length > 0) {\n result.forEach(item => {\n let userInfo = getDateByExpression(item.substring(2, item.length - 1));\n str = str.replace(item, userInfo);\n });\n }\n return str;\n };\n // @ts-ignore\n return isString ? replace(expression) : expression.map(replace);\n}\nconst getDate = () => {\n return dateFormat(new Date(), 1);\n};\nconst getDateTime = format => {\n return dateFormat(new Date(), format);\n};\nconst dateFormat = (date, format) => {\n if (!date) {\n date = new Date();\n }\n let yyyy = date.getFullYear(); // 年\n let MM = date.getMonth() + 1; // 月\n MM = MM < 10 ? '0' + MM : MM;\n let dd = date.getDate(); // 日\n dd = dd < 10 ? '0' + dd : dd; // 日\n let HH = date.getHours(); // 时\n HH = HH < 10 ? '0' + HH : HH; // 如果只有一位,则前面补零\n let mm = date.getMinutes(); // 分\n mm = mm < 10 ? '0' + mm : mm; // 如果只有一位,则前面补零\n let ss = date.getSeconds(); //秒\n ss = ss < 10 ? '0' + ss : ss; // 如果只有一位,则前面补零\n\n if (format === 1) {\n return yyyy;\n } else if (format === 2) {\n return yyyy + '-' + MM;\n } else if (format === 3) {\n return yyyy + '-' + MM + '-' + dd;\n } else if (format === 98) {\n return yyyy + '-' + MM + '-' + dd + ' ' + HH + ':' + mm + ':' + ss + \"_\" + date.getTime().toString().substring(10);\n } else if (format === 99) {\n return yyyy + '年' + (date.getMonth() + 1) + '月' + date.getDate() + '日';\n }\n return yyyy + '-' + MM + '-' + dd + ' ' + HH + ':' + mm + ':' + ss;\n};\n\n//# sourceURL=webpack://olp-table/./src/utils/DateUtils.js?");
12983
12983
 
12984
12984
  /***/ }),
12985
12985
 
@@ -13165,7 +13165,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
13165
13165
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
13166
13166
 
13167
13167
  "use strict";
13168
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ handleTree: function() { return /* binding */ handleTree; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\r\n * 构造树型结构数据\r\n * @param {*} data 数据源\r\n * @param {*} id id字段 默认 'id'\r\n * @param {*} parentId 父节点字段 默认 'parentId'\r\n * @param {*} children 孩子节点字段 默认 'children'\r\n */\nconst handleTree = (data, id, parentId, children) => {\n if (!Array.isArray(data)) {\n console.warn('data must be an array');\n return [];\n }\n const config = {\n id: id || 'id',\n parentId: parentId || 'parentId',\n children: children || 'children'\n };\n const childrenListMap = {};\n const nodeIds = {};\n const tree = [];\n for (const d of data) {\n const parentId = d[config.parentId];\n if (childrenListMap[parentId] == null) {\n childrenListMap[parentId] = [];\n }\n nodeIds[d[config.id]] = d;\n childrenListMap[parentId].push(d);\n }\n for (const d of data) {\n const parentId = d[config.parentId];\n if (nodeIds[parentId] == null) {\n tree.push(d);\n }\n }\n for (const t of tree) {\n adaptToChildrenList(t);\n }\n function adaptToChildrenList(o) {\n if (childrenListMap[o[config.id]] !== null) {\n o[config.children] = childrenListMap[o[config.id]];\n }\n if (o[config.children]) {\n for (const c of o[config.children]) {\n adaptToChildrenList(c);\n }\n }\n }\n return tree;\n};\n\n//# sourceURL=webpack://olp-table/./src/utils/tree.js?");
13168
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ handleTree: function() { return /* binding */ handleTree; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.iterator.for-each.js */ \"./node_modules/core-js/modules/es.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nconst handleTree = (data, id, parentId, children) => {\n if (!Array.isArray(data)) {\n console.warn('data must be an array');\n return [];\n }\n const config = {\n id: id || 'id',\n parentId: parentId || 'parentId',\n children: children || 'children'\n };\n const childrenListMap = new Map();\n const nodeMap = new Map();\n const tree = [];\n\n // 单次遍历构建所有映射关系\n data.forEach(item => {\n const itemId = String(item[config.id]);\n const itemParentId = item[config.parentId] === undefined || item[config.parentId] === null ? null : String(item[config.parentId]);\n\n // 更新节点映射\n nodeMap.set(itemId, item);\n\n // 构建子节点列表\n if (!childrenListMap.has(itemParentId)) {\n childrenListMap.set(itemParentId, []);\n }\n childrenListMap.get(itemParentId).push(item);\n });\n\n // 找出根节点(parentId为null或不在nodeMap中的节点)\n data.forEach(item => {\n const parentId = item[config.parentId] === undefined || item[config.parentId] === null ? null : String(item[config.parentId]);\n if (parentId === null || !nodeMap.has(parentId)) {\n tree.push(item);\n }\n });\n\n // 递归构建树结构(尾递归优化)\n const buildTree = node => {\n const nodeId = String(node[config.id]);\n if (childrenListMap.has(nodeId)) {\n node[config.children] = childrenListMap.get(nodeId);\n node[config.children].forEach(child => buildTree(child));\n }\n };\n tree.forEach(root => buildTree(root));\n return tree;\n};\n\n//# sourceURL=webpack://olp-table/./src/utils/tree.js?");
13169
13169
 
13170
13170
  /***/ }),
13171
13171
 
@@ -13891,7 +13891,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */
13891
13891
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
13892
13892
 
13893
13893
  "use strict";
13894
- eval("__webpack_require__.r(__webpack_exports__);\nconst other = [{\n \"parentId\": null,\n \"t1\": \"toolbar-config\",\n \"t2\": \"工具栏配置\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 100\n}, {\n \"parentId\": null,\n \"t1\": \"resizable-config\",\n \"t2\": \"列宽拖动配置项\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 400\n}, {\n \"parentId\": null,\n \"t1\": \"seq-config\",\n \"t2\": \"序号配置项\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 500\n}, {\n \"parentId\": null,\n \"t1\": \"filter-config\",\n \"t2\": \"筛选配置项\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 600\n}, {\n \"parentId\": null,\n \"t1\": \"export-config\",\n \"t2\": \"导出配置项\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 700\n}, {\n \"parentId\": null,\n \"t1\": \"import-config\",\n \"t2\": \"导入配置项\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 800\n}, {\n \"parentId\": null,\n \"t1\": \"tooltip-config\",\n \"t2\": \"tooltip 配置项\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 1100\n}];\nconst table = [{\n \"parentId\": null,\n \"t1\": \"option\",\n \"t2\": \"表格配置\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 0\n}, {\n \"parentId\": 0,\n \"t1\": \"sortable\",\n \"t2\": \"可拖动列\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 1000001\n}, {\n \"parentId\": 0,\n \"t1\": \"operationWidth\",\n \"t2\": \"表格操作width\",\n \"t3\": \"number\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 1000002\n}, {\n \"parentId\": 0,\n \"t1\": \"size\",\n \"t2\": \"组件的尺寸\",\n \"t3\": \"medium/small/mini\",\n \"$cellEdit\": true,\n \"t5\": \"mini\",\n \"$index\": 1\n}, {\n \"parentId\": 0,\n \"t1\": \"height\",\n \"t2\": \"表格的高度\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": \"auto\",\n \"$index\": 2\n}, {\n \"parentId\": 0,\n \"t1\": \"empty-text\",\n \"t2\": \"空数据时显示的内容\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": \"暂无数据\",\n \"$index\": 4\n}, {\n \"parentId\": 0,\n \"t1\": \"table-title\",\n \"t2\": \"表头标题\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": \"\",\n \"$index\": 4\n}, {\n \"parentId\": 0,\n \"t1\": \"max-height\",\n \"t2\": \"表格的最大高度\",\n \"t3\": \"number\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 5\n}, {\n \"parentId\": 0,\n \"t1\": \"row-style\",\n \"t2\": \"给行附加样式,也可以是函数\",\n \"t3\": \"function\",\n \"$cellEdit\": true,\n \"t5\": \"{ row, rowIndex, $rowIndex }\",\n \"$index\": 2\n}, {\n \"parentId\": 0,\n \"t1\": \"cell-style\",\n \"t2\": \"给单元格附加样式\",\n \"t3\": \"function\",\n \"$cellEdit\": true,\n \"t5\": \"{ row, rowIndex, $rowIndex, column, columnIndex, $columnIndex }\",\n \"$index\": 2\n}, {\n \"parentId\": 0,\n \"t1\": \"min-height\",\n \"t2\": \"表格最小高度\",\n \"t3\": \"number\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 6\n}, {\n \"parentId\": 0,\n \"t1\": \"auto-resize\",\n \"t2\": \"自动监听父元素的变化去重新计算表格\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 7\n}, {\n \"parentId\": 0,\n \"t1\": \"sync-resize\",\n \"t2\": \"自动跟随某个属性的变化去重新计算表格\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 8\n}, {\n \"parentId\": 0,\n \"t1\": \"stripe\",\n \"t2\": \"是否为斑马纹\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 9\n}, {\n \"parentId\": 0,\n \"t1\": \"border\",\n \"t2\": \"是否带有边框false(默认), full(完整边框), outer(外边框), inner(内边框), none(无边框)\",\n \"t3\": \"false/full/outer/inner/none\",\n \"$cellEdit\": true,\n \"t5\": 'false',\n \"$index\": 10\n}, {\n \"parentId\": 0,\n \"t1\": \"round\",\n \"t2\": \"是否为圆角边框\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 11\n}, {\n \"parentId\": 0,\n \"t1\": \"align\",\n \"t2\": \"所有的列对齐方式\",\n \"t3\": \"left/center/right\",\n \"$cellEdit\": true,\n \"t5\": \"center\",\n \"$index\": 12\n}, {\n \"parentId\": 0,\n \"t1\": \"header-align\",\n \"t2\": \"所有的表头列的对齐方式\",\n \"t3\": \"left/center/right\",\n \"$cellEdit\": true,\n \"t5\": \"center\",\n \"$index\": 13\n}, {\n \"parentId\": 0,\n \"t1\": \"footer-align\",\n \"t2\": \"所有的表头列的对齐方式\",\n \"t3\": \"left/center/right\",\n \"$cellEdit\": true,\n \"t5\": \"center\",\n \"$index\": 14\n}, {\n \"parentId\": 0,\n \"t1\": \"row-class-name\",\n \"t2\": \"给行附加 className\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 15\n}, {\n \"parentId\": 0,\n \"t1\": \"cell-class-name\",\n \"t2\": \"给单元格附加 className\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 16\n}, {\n \"parentId\": 0,\n \"t1\": \"show-header\",\n \"t2\": \"是否显示表头\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 17\n}, {\n \"parentId\": 0,\n \"t1\": \"show-footer\",\n \"t2\": \"是否显示表尾\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 18\n}, {\n \"parentId\": 0,\n \"t1\": \"footers\",\n \"t2\": \"表尾,逗号分科,要和列的表尾逗号一致,例如 合计,平均\",\n \"t3\": \"\",\n \"$cellEdit\": true,\n \"t5\": \"\",\n \"$index\": 18\n},\n/* {\r\n \"parentId\": 0,\r\n \"t1\": \"show-overflow\",\r\n \"t2\": \"设置所有内容过长时显示为省略号(如果是固定列建议设置该值,提升渲染速度)\",\r\n \"t3\": \"boolean\",\r\n \"$cellEdit\": true,\r\n \"t5\": true,\r\n \"$index\": 21\r\n },*/\n{\n \"parentId\": 0,\n \"t1\": \"show-header-overflow\",\n \"t2\": \"设置表头所有内容过长时显示为省略号\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 22\n}, {\n \"parentId\": 0,\n \"t1\": \"mergeCells\",\n \"t2\": \"临时合并指定的单元格 (不能用于展开行,不建议用于固定列、树形结构),数据例子([{\\\"row\\\":1,\\\"col\\\":3,\\\"rowspan\\\":2,\\\"colspan\\\":1}])\",\n \"t3\": \"Array\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 23\n}, {\n \"parentId\": 0,\n \"t1\": \"keep-source\",\n \"t2\": \"保持原始值的状态,被某些功能所依赖,比如编辑状态、还原数据等(开启后影响性能,具体取决于数据量)\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 24\n}, {\n \"parentId\": 0,\n \"t1\": \"enableFilter\",\n \"t2\": \"是否筛选\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 25\n}];\nconst column = [{\n \"parentId\": null,\n \"t1\": \"columnConfig\",\n \"t2\": \"列的默认参数\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 20\n}, {\n \"parentId\": 20,\n \"t1\": \"useKey\",\n \"t2\": \"是否需要为每一列的 VNode 设置 key 属性\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 21,\n 'redirect': 'columnConfig.useKey'\n}, {\n \"parentId\": 20,\n \"t1\": \"isCurrent\",\n \"t2\": \"当鼠标点击列头时,是否要高亮当前列\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 21,\n 'redirect': 'columnConfig.isCurrent'\n}, {\n \"parentId\": 20,\n \"t1\": \"isHover\",\n \"t2\": \"当鼠标移到列头时,是否要高亮当前列头\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 21,\n 'redirect': 'columnConfig.isHover'\n}, {\n \"parentId\": 20,\n \"t1\": \"resizable\",\n \"t2\": \"每一列是否启用列宽调整\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 21,\n 'redirect': 'columnConfig.resizable'\n}, {\n \"parentId\": 20,\n \"t1\": \"width\",\n \"t2\": \"每一列的宽度\",\n \"t3\": \"number\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 21,\n 'redirect': 'columnConfig.width'\n}, {\n \"parentId\": 20,\n \"t1\": \"minWidth\",\n \"t2\": \"每一列的最小宽度\",\n \"t3\": \"number\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 21,\n 'redirect': 'columnConfig.minWidth'\n}, {\n \"parentId\": 20,\n \"t1\": \"maxFixedSize\",\n \"t2\": \"固定列允许设置的最大数量(如果是分组,则一个分组算一个\",\n \"t3\": \"number\",\n \"$cellEdit\": true,\n \"t5\": 4,\n \"$index\": 21,\n 'redirect': 'columnConfig.maxFixedSize'\n}, {\n \"parentId\": 20,\n \"t1\": \"showOverflow\",\n \"t2\": \"当内容过长时显示为省略号\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": undefined,\n \"$index\": 21,\n 'redirect': 'columnConfig.showOverflow'\n}];\nconst row = [{\n \"parentId\": null,\n \"t1\": \"rowConfig\",\n \"t2\": \"行配置信息\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 50\n}, {\n \"parentId\": 50,\n \"t1\": \"height\",\n \"t2\": \"只对 show-overflow 有效,每一行的高度\",\n \"t3\": \"number\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 51,\n 'redirect': 'rowConfig.height'\n}, {\n \"parentId\": 50,\n \"t1\": \"isCurrent\",\n \"t2\": \"当鼠标点击行时,是否要高亮当前行\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 51\n}, {\n \"parentId\": 50,\n \"t1\": \"useKey\",\n \"t2\": \"是否需要为每一列的 VNode 设置 key 属性\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 51,\n 'redirect': 'rowConfig.useKey'\n}, {\n \"parentId\": 50,\n \"t1\": \"keyField\",\n \"t2\": \"自定义行数据唯一主键的字段名(默认自动生成)\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": '_X_ROW_KEY',\n \"$index\": 51,\n 'redirect': 'rowConfig.keyField'\n}, {\n \"parentId\": 50,\n \"t1\": \"isHover\",\n \"t2\": \"当鼠标移到行时,是否要高亮当前行\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 51,\n 'redirect': 'rowConfig.isHover'\n}];\nconst sort = [{\n \"parentId\": null,\n \"t1\": \"sortConfig\",\n \"t2\": \"排序配置项\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 300\n}, {\n \"parentId\": 300,\n \"t1\": \"orders\",\n \"t2\": \"自定义轮转顺序\",\n \"t3\": \"string[]\",\n \"$cellEdit\": true,\n \"t5\": \"['asc', 'desc', 'null']\",\n \"$index\": 301,\n 'redirect': 'sortConfig.orders'\n}, {\n \"parentId\": 300,\n \"t1\": \"trigger\",\n \"t2\": \"触发方式(注:当多种功能重叠时,会同时触发)default(点击按钮触发), cell(点击表头触发)\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": \"default\",\n \"$index\": 301,\n 'redirect': 'sortConfig.trigger'\n}, {\n \"parentId\": 300,\n \"t1\": \"iconAsc\",\n \"t2\": \"自定义升序的图标\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 301,\n 'redirect': 'sortConfig.iconAsc'\n}, {\n \"parentId\": 300,\n \"t1\": \"iconDesc\",\n \"t2\": \"自定义降序的图标\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 301,\n 'redirect': 'sortConfig.iconDesc'\n}];\nconst radio = [{\n \"parentId\": null,\n \"t1\": \"radioConfig\",\n \"t2\": \"单选框配置项\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 900\n}, {\n \"parentId\": 900,\n \"t1\": \"strict\",\n \"t2\": \"严格模式,选中后不能取消\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 901,\n 'redirect': 'radioConfig.strict'\n}, {\n \"parentId\": 900,\n \"t1\": \"reserve\",\n \"t2\": \"是否保留勾选状态,例如:数据被刷新或者分页之后还保留之前选中的状态(需要有 row-config.keyField)\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 901,\n 'redirect': 'radioConfig.reserve'\n}, {\n \"parentId\": 900,\n \"t1\": \"trigger\",\n \"t2\": \"触发方式(注:当多种功能重叠时,会同时触发))default(默认), cell(点击单元格触发), row(点击行触发)\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": \"row\",\n \"$index\": 901,\n 'redirect': 'radioConfig.trigger'\n}, {\n \"parentId\": 900,\n \"t1\": \"highlight\",\n \"t2\": \"高亮选中行\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 901,\n 'redirect': 'radioConfig.highlight'\n}];\nconst checkbox = [{\n \"parentId\": null,\n \"t1\": \"checkboxConfig\",\n \"t2\": \"复选框配置项\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 1000\n}, {\n \"parentId\": 1000,\n \"t1\": \"checkAll\",\n \"t2\": \"默认勾选所有(只会在初始化时被触发一次)\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 1001\n},\n// {\n// \"parentId\": 1000,\n// \"t1\": \"checkMethod\",\n// \"t2\": \"是否允许勾选的方法,该方法,的返回值用来决定这一行的 checkbox 是否可以勾选\",\n// \"t3\": \"function\",\n// \"$cellEdit\": true,\n// \"t5\": \"{ row, rowIndex, $rowIndex }\",\n// \"$index\": 2\n// },\n{\n \"parentId\": 1000,\n \"t1\": \"reserve\",\n \"t2\": \"是否保留勾选状态,例如:数据被刷新或者分页之后还保留之前选中的状态(需要有 row-config.keyField)\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 1001\n}, {\n \"parentId\": 1000,\n \"t1\": \"trigger\",\n \"t2\": \"触发方式(注:当多种功能重叠时,会同时触发))default(默认), cell(点击单元格触发), row(点击行触发)\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": \"default\",\n \"$index\": 1001\n}, {\n \"parentId\": 1000,\n \"t1\": \"highlight\",\n \"t2\": \"高亮选中行\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 1001\n}];\nconst edit = [{\n \"parentId\": null,\n \"t1\": \"editConfig\",\n \"t2\": \"可编辑渲染器配置项\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 1200\n}, {\n \"parentId\": 1200,\n \"t1\": \"trigger\",\n \"t2\": \"触发方式manual(手动触发方式,只能用于 mode=row),click(点击触发编辑),dblclick(双击触发编辑)\",\n \"t3\": \"manual/click/dblclick\",\n \"$cellEdit\": true,\n \"t5\": 'click',\n \"$index\": 1201\n}, {\n \"parentId\": 1200,\n \"t1\": \"enabled\",\n \"t2\": \"是否启用\",\n \"t3\": \"false/true\",\n \"$cellEdit\": true,\n \"t5\": 'false',\n \"$index\": 1201\n}, {\n \"parentId\": 1200,\n \"t1\": \"mode\",\n \"t2\": \"cell(单元格编辑模式),row(行编辑模式)\",\n \"t3\": \"cell/row\",\n \"$cellEdit\": true,\n \"t5\": 'cell',\n \"$index\": 1201\n}, {\n \"parentId\": 1200,\n \"t1\": \"showAsterisk\",\n \"t2\": \"是否显示必填字段的红色星号\",\n \"t3\": \"false/true\",\n \"$cellEdit\": true,\n \"t5\": 'true',\n \"$index\": 1201\n}, {\n \"parentId\": 1200,\n \"t1\": \"showStatus\",\n \"t2\": \"是否显示单元格新增与修改状态\",\n \"t3\": \"false/true\",\n \"$cellEdit\": true,\n \"t5\": 'true',\n \"$index\": 1201\n}, {\n \"parentId\": 1200,\n \"t1\": \"showUpdateStatus\",\n \"t2\": \"是否显示单元格修改状态\",\n \"t3\": \"false/true\",\n \"$cellEdit\": true,\n \"t5\": 'true',\n \"$index\": 1201\n}, {\n \"parentId\": 1200,\n \"t1\": \"autoClear\",\n \"t2\": \"当点击非编辑列之后,是否自动清除单元格的激活状态\",\n \"t3\": \"false/true\",\n \"$cellEdit\": true,\n \"t5\": 'true',\n \"$index\": 1201\n}];\nconst options = [...table, ...row, ...column, ...sort, ...radio, ...checkbox, ...edit];\n\n// 初始化映射\nconst initRedirect = () => {\n let parentMap = {};\n for (let option of options) {\n if (option.t3 == \"any\") {\n parentMap[option.$index] = option;\n }\n }\n for (let option of options) {\n if (option.parentId && option.parentId != 0 && !option.redirect) {\n let parentProp = parentMap[option.parentId].t1;\n if (parentMap[option.parentId].redirect) parentProp = parentMap[option.parentId].redirect;\n option.redirect = parentProp + \".\" + option.t1;\n }\n }\n};\ninitRedirect();\n/* harmony default export */ __webpack_exports__[\"default\"] = (options);\n\n//# sourceURL=webpack://olp-table/./src/views/table/add-or-edit/config/data/option.js?");
13894
+ eval("__webpack_require__.r(__webpack_exports__);\nconst other = [{\n \"parentId\": null,\n \"t1\": \"toolbar-config\",\n \"t2\": \"工具栏配置\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 100\n}, {\n \"parentId\": null,\n \"t1\": \"resizable-config\",\n \"t2\": \"列宽拖动配置项\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 400\n}, {\n \"parentId\": null,\n \"t1\": \"seq-config\",\n \"t2\": \"序号配置项\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 500\n}, {\n \"parentId\": null,\n \"t1\": \"filter-config\",\n \"t2\": \"筛选配置项\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 600\n}, {\n \"parentId\": null,\n \"t1\": \"export-config\",\n \"t2\": \"导出配置项\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 700\n}, {\n \"parentId\": null,\n \"t1\": \"import-config\",\n \"t2\": \"导入配置项\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 800\n}, {\n \"parentId\": null,\n \"t1\": \"tooltip-config\",\n \"t2\": \"tooltip 配置项\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 1100\n}];\nconst table = [{\n \"parentId\": null,\n \"t1\": \"option\",\n \"t2\": \"表格配置\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 0\n}, {\n \"parentId\": 0,\n \"t1\": \"sortable\",\n \"t2\": \"可拖动列\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 1000001\n}, {\n \"parentId\": 0,\n \"t1\": \"operationWidth\",\n \"t2\": \"表格操作width\",\n \"t3\": \"number\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 1000002\n}, {\n \"parentId\": 0,\n \"t1\": \"size\",\n \"t2\": \"组件的尺寸\",\n \"t3\": \"medium/small/mini\",\n \"$cellEdit\": true,\n \"t5\": \"mini\",\n \"$index\": 1\n}, {\n \"parentId\": 0,\n \"t1\": \"height\",\n \"t2\": \"表格的高度\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": \"auto\",\n \"$index\": 2\n}, {\n \"parentId\": 0,\n \"t1\": \"empty-text\",\n \"t2\": \"空数据时显示的内容\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": \"暂无数据\",\n \"$index\": 4\n}, {\n \"parentId\": 0,\n \"t1\": \"table-title\",\n \"t2\": \"表头标题\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": \"\",\n \"$index\": 4\n}, {\n \"parentId\": 0,\n \"t1\": \"max-height\",\n \"t2\": \"表格的最大高度\",\n \"t3\": \"number\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 5\n}, {\n \"parentId\": 0,\n \"t1\": \"row-style\",\n \"t2\": \"给行附加样式,也可以是函数\",\n \"t3\": \"function\",\n \"$cellEdit\": true,\n \"t5\": \"{ row, rowIndex, $rowIndex }\",\n \"$index\": 2\n}, {\n \"parentId\": 0,\n \"t1\": \"cell-style\",\n \"t2\": \"给单元格附加样式\",\n \"t3\": \"function\",\n \"$cellEdit\": true,\n \"t5\": \"{ row, rowIndex, $rowIndex, column, columnIndex, $columnIndex }\",\n \"$index\": 2\n}, {\n \"parentId\": 0,\n \"t1\": \"min-height\",\n \"t2\": \"表格最小高度\",\n \"t3\": \"number\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 6\n}, {\n \"parentId\": 0,\n \"t1\": \"auto-resize\",\n \"t2\": \"自动监听父元素的变化去重新计算表格\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 7\n}, {\n \"parentId\": 0,\n \"t1\": \"sync-resize\",\n \"t2\": \"自动跟随某个属性的变化去重新计算表格\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 8\n}, {\n \"parentId\": 0,\n \"t1\": \"stripe\",\n \"t2\": \"是否为斑马纹\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 9\n}, {\n \"parentId\": 0,\n \"t1\": \"border\",\n \"t2\": \"是否带有边框false(默认), full(完整边框), outer(外边框), inner(内边框), none(无边框)\",\n \"t3\": \"false/full/outer/inner/none\",\n \"$cellEdit\": true,\n \"t5\": 'false',\n \"$index\": 10\n}, {\n \"parentId\": 0,\n \"t1\": \"round\",\n \"t2\": \"是否为圆角边框\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 11\n}, {\n \"parentId\": 0,\n \"t1\": \"align\",\n \"t2\": \"所有的列对齐方式\",\n \"t3\": \"left/center/right\",\n \"$cellEdit\": true,\n \"t5\": \"center\",\n \"$index\": 12\n}, {\n \"parentId\": 0,\n \"t1\": \"header-align\",\n \"t2\": \"所有的表头列的对齐方式\",\n \"t3\": \"left/center/right\",\n \"$cellEdit\": true,\n \"t5\": \"center\",\n \"$index\": 13\n}, {\n \"parentId\": 0,\n \"t1\": \"footer-align\",\n \"t2\": \"所有的表头列的对齐方式\",\n \"t3\": \"left/center/right\",\n \"$cellEdit\": true,\n \"t5\": \"center\",\n \"$index\": 14\n}, {\n \"parentId\": 0,\n \"t1\": \"row-class-name\",\n \"t2\": \"给行附加 className\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 15\n}, {\n \"parentId\": 0,\n \"t1\": \"cell-class-name\",\n \"t2\": \"给单元格附加 className\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 16\n}, {\n \"parentId\": 0,\n \"t1\": \"show-header\",\n \"t2\": \"是否显示表头\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 17\n}, {\n \"parentId\": 0,\n \"t1\": \"show-footer\",\n \"t2\": \"是否显示表尾\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 18\n}, {\n \"parentId\": 0,\n \"t1\": \"footers\",\n \"t2\": \"表尾,逗号分科,要和列的表尾逗号一致,例如 合计,平均\",\n \"t3\": \"\",\n \"$cellEdit\": true,\n \"t5\": \"\",\n \"$index\": 18\n},\n/* {\r\n \"parentId\": 0,\r\n \"t1\": \"show-overflow\",\r\n \"t2\": \"设置所有内容过长时显示为省略号(如果是固定列建议设置该值,提升渲染速度)\",\r\n \"t3\": \"boolean\",\r\n \"$cellEdit\": true,\r\n \"t5\": true,\r\n \"$index\": 21\r\n },*/\n{\n \"parentId\": 0,\n \"t1\": \"show-header-overflow\",\n \"t2\": \"设置表头所有内容过长时显示为省略号\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 22\n}, {\n \"parentId\": 0,\n \"t1\": \"mergeCells\",\n \"t2\": \"临时合并指定的单元格 (不能用于展开行,不建议用于固定列、树形结构),数据例子([{\\\"row\\\":1,\\\"col\\\":3,\\\"rowspan\\\":2,\\\"colspan\\\":1}])\",\n \"t3\": \"Array\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 23\n}, {\n \"parentId\": 0,\n \"t1\": \"keep-source\",\n \"t2\": \"保持原始值的状态,被某些功能所依赖,比如编辑状态、还原数据等(开启后影响性能,具体取决于数据量)\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 24\n}, {\n \"parentId\": 0,\n \"t1\": \"enableFilter\",\n \"t2\": \"是否筛选\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 25\n}];\nconst column = [{\n \"parentId\": null,\n \"t1\": \"columnConfig\",\n \"t2\": \"列的默认参数\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 20\n}, {\n \"parentId\": 20,\n \"t1\": \"useKey\",\n \"t2\": \"是否需要为每一列的 VNode 设置 key 属性\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 21,\n 'redirect': 'columnConfig.useKey'\n}, {\n \"parentId\": 20,\n \"t1\": \"isCurrent\",\n \"t2\": \"当鼠标点击列头时,是否要高亮当前列\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 21,\n 'redirect': 'columnConfig.isCurrent'\n}, {\n \"parentId\": 20,\n \"t1\": \"isHover\",\n \"t2\": \"当鼠标移到列头时,是否要高亮当前列头\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 21,\n 'redirect': 'columnConfig.isHover'\n}, {\n \"parentId\": 20,\n \"t1\": \"resizable\",\n \"t2\": \"每一列是否启用列宽调整\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 21,\n 'redirect': 'columnConfig.resizable'\n}, {\n \"parentId\": 20,\n \"t1\": \"width\",\n \"t2\": \"每一列的宽度\",\n \"t3\": \"number\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 21,\n 'redirect': 'columnConfig.width'\n}, {\n \"parentId\": 20,\n \"t1\": \"minWidth\",\n \"t2\": \"每一列的最小宽度\",\n \"t3\": \"number\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 21,\n 'redirect': 'columnConfig.minWidth'\n}, {\n \"parentId\": 20,\n \"t1\": \"maxFixedSize\",\n \"t2\": \"固定列允许设置的最大数量(如果是分组,则一个分组算一个\",\n \"t3\": \"number\",\n \"$cellEdit\": true,\n \"t5\": 4,\n \"$index\": 21,\n 'redirect': 'columnConfig.maxFixedSize'\n}, {\n \"parentId\": 20,\n \"t1\": \"showOverflow\",\n \"t2\": \"当内容过长时显示为省略号\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": undefined,\n \"$index\": 21,\n 'redirect': 'columnConfig.showOverflow'\n}];\nconst row = [{\n \"parentId\": null,\n \"t1\": \"rowConfig\",\n \"t2\": \"行配置信息\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 50\n}, {\n \"parentId\": 50,\n \"t1\": \"height\",\n \"t2\": \"只对 show-overflow 有效,每一行的高度\",\n \"t3\": \"number\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 51,\n 'redirect': 'rowConfig.height'\n}, {\n \"parentId\": 50,\n \"t1\": \"isCurrent\",\n \"t2\": \"当鼠标点击行时,是否要高亮当前行\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 51\n}, {\n \"parentId\": 50,\n \"t1\": \"useKey\",\n \"t2\": \"是否需要为每一列的 VNode 设置 key 属性\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 51,\n 'redirect': 'rowConfig.useKey'\n}, {\n \"parentId\": 50,\n \"t1\": \"keyField\",\n \"t2\": \"自定义行数据唯一主键的字段名(默认自动生成)\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": '_X_ROW_KEY',\n \"$index\": 51,\n 'redirect': 'rowConfig.keyField'\n}, {\n \"parentId\": 50,\n \"t1\": \"isHover\",\n \"t2\": \"当鼠标移到行时,是否要高亮当前行\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 51,\n 'redirect': 'rowConfig.isHover'\n}];\nconst sort = [{\n \"parentId\": null,\n \"t1\": \"sortConfig\",\n \"t2\": \"排序配置项\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 300\n}, {\n \"parentId\": 300,\n \"t1\": \"orders\",\n \"t2\": \"自定义轮转顺序\",\n \"t3\": \"string[]\",\n \"$cellEdit\": true,\n \"t5\": \"['asc', 'desc', 'null']\",\n \"$index\": 301,\n 'redirect': 'sortConfig.orders'\n}, {\n \"parentId\": 300,\n \"t1\": \"trigger\",\n \"t2\": \"触发方式(注:当多种功能重叠时,会同时触发)default(点击按钮触发), cell(点击表头触发)\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": \"default\",\n \"$index\": 301,\n 'redirect': 'sortConfig.trigger'\n}, {\n \"parentId\": 300,\n \"t1\": \"iconAsc\",\n \"t2\": \"自定义升序的图标\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 301,\n 'redirect': 'sortConfig.iconAsc'\n}, {\n \"parentId\": 300,\n \"t1\": \"iconDesc\",\n \"t2\": \"自定义降序的图标\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": null,\n \"$index\": 301,\n 'redirect': 'sortConfig.iconDesc'\n}];\nconst radio = [{\n \"parentId\": null,\n \"t1\": \"radioConfig\",\n \"t2\": \"单选框配置项\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 900\n}, {\n \"parentId\": 900,\n \"t1\": \"strict\",\n \"t2\": \"严格模式,选中后不能取消\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 901,\n 'redirect': 'radioConfig.strict'\n}, {\n \"parentId\": 900,\n \"t1\": \"reserve\",\n \"t2\": \"是否保留勾选状态,例如:数据被刷新或者分页之后还保留之前选中的状态(需要有 row-config.keyField)\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 901,\n 'redirect': 'radioConfig.reserve'\n}, {\n \"parentId\": 900,\n \"t1\": \"trigger\",\n \"t2\": \"触发方式(注:当多种功能重叠时,会同时触发))default(默认), cell(点击单元格触发), row(点击行触发)\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": \"row\",\n \"$index\": 901,\n 'redirect': 'radioConfig.trigger'\n}, {\n \"parentId\": 900,\n \"t1\": \"highlight\",\n \"t2\": \"高亮选中行\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 901,\n 'redirect': 'radioConfig.highlight'\n}];\nconst checkbox = [{\n \"parentId\": null,\n \"t1\": \"checkboxConfig\",\n \"t2\": \"复选框配置项\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 1000\n}, {\n \"parentId\": 1000,\n \"t1\": \"checkAll\",\n \"t2\": \"默认勾选所有(只会在初始化时被触发一次)\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 1001\n},\n// {\n// \"parentId\": 1000,\n// \"t1\": \"checkMethod\",\n// \"t2\": \"是否允许勾选的方法,该方法,的返回值用来决定这一行的 checkbox 是否可以勾选\",\n// \"t3\": \"function\",\n// \"$cellEdit\": true,\n// \"t5\": \"{ row, rowIndex, $rowIndex }\",\n// \"$index\": 2\n// },\n{\n \"parentId\": 1000,\n \"t1\": \"reserve\",\n \"t2\": \"是否保留勾选状态,例如:数据被刷新或者分页之后还保留之前选中的状态(需要有 row-config.keyField)\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 1001\n}, {\n \"parentId\": 1000,\n \"t1\": \"trigger\",\n \"t2\": \"触发方式(注:当多种功能重叠时,会同时触发))default(默认), cell(点击单元格触发), row(点击行触发)\",\n \"t3\": \"string\",\n \"$cellEdit\": true,\n \"t5\": \"default\",\n \"$index\": 1001\n}, {\n \"parentId\": 1000,\n \"t1\": \"highlight\",\n \"t2\": \"高亮选中行\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": true,\n \"$index\": 1001\n}, {\n \"parentId\": 1000,\n \"t1\": \"checkStrictly\",\n \"t2\": \"是否严格的遵循父子不互相关联的做法\",\n \"t3\": \"boolean\",\n \"$cellEdit\": true,\n \"t5\": false,\n \"$index\": 1001\n}];\nconst edit = [{\n \"parentId\": null,\n \"t1\": \"editConfig\",\n \"t2\": \"可编辑渲染器配置项\",\n \"t3\": \"any\",\n \"$cellEdit\": true,\n \"t5\": \"-\",\n \"$index\": 1200\n}, {\n \"parentId\": 1200,\n \"t1\": \"trigger\",\n \"t2\": \"触发方式manual(手动触发方式,只能用于 mode=row),click(点击触发编辑),dblclick(双击触发编辑)\",\n \"t3\": \"manual/click/dblclick\",\n \"$cellEdit\": true,\n \"t5\": 'click',\n \"$index\": 1201\n}, {\n \"parentId\": 1200,\n \"t1\": \"enabled\",\n \"t2\": \"是否启用\",\n \"t3\": \"false/true\",\n \"$cellEdit\": true,\n \"t5\": 'false',\n \"$index\": 1201\n}, {\n \"parentId\": 1200,\n \"t1\": \"mode\",\n \"t2\": \"cell(单元格编辑模式),row(行编辑模式)\",\n \"t3\": \"cell/row\",\n \"$cellEdit\": true,\n \"t5\": 'cell',\n \"$index\": 1201\n}, {\n \"parentId\": 1200,\n \"t1\": \"showAsterisk\",\n \"t2\": \"是否显示必填字段的红色星号\",\n \"t3\": \"false/true\",\n \"$cellEdit\": true,\n \"t5\": 'true',\n \"$index\": 1201\n}, {\n \"parentId\": 1200,\n \"t1\": \"showStatus\",\n \"t2\": \"是否显示单元格新增与修改状态\",\n \"t3\": \"false/true\",\n \"$cellEdit\": true,\n \"t5\": 'true',\n \"$index\": 1201\n}, {\n \"parentId\": 1200,\n \"t1\": \"showUpdateStatus\",\n \"t2\": \"是否显示单元格修改状态\",\n \"t3\": \"false/true\",\n \"$cellEdit\": true,\n \"t5\": 'true',\n \"$index\": 1201\n}, {\n \"parentId\": 1200,\n \"t1\": \"autoClear\",\n \"t2\": \"当点击非编辑列之后,是否自动清除单元格的激活状态\",\n \"t3\": \"false/true\",\n \"$cellEdit\": true,\n \"t5\": 'true',\n \"$index\": 1201\n}];\nconst options = [...table, ...row, ...column, ...sort, ...radio, ...checkbox, ...edit];\n\n// 初始化映射\nconst initRedirect = () => {\n let parentMap = {};\n for (let option of options) {\n if (option.t3 == \"any\") {\n parentMap[option.$index] = option;\n }\n }\n for (let option of options) {\n if (option.parentId && option.parentId != 0 && !option.redirect) {\n let parentProp = parentMap[option.parentId].t1;\n if (parentMap[option.parentId].redirect) parentProp = parentMap[option.parentId].redirect;\n option.redirect = parentProp + \".\" + option.t1;\n }\n }\n};\ninitRedirect();\n/* harmony default export */ __webpack_exports__[\"default\"] = (options);\n\n//# sourceURL=webpack://olp-table/./src/views/table/add-or-edit/config/data/option.js?");
13895
13895
 
13896
13896
  /***/ }),
13897
13897