olp-table 7.2.7 → 7.2.9
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.
- package/bundle-report.html +3 -3
- package/olp-table.common.js +11 -11
- package/olp-table.umd.js +11 -11
- package/olp-table.umd.min.js +11 -11
- package/package.json +1 -1
package/olp-table.common.js
CHANGED
|
@@ -355,7 +355,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core
|
|
|
355
355
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
356
356
|
|
|
357
357
|
"use strict";
|
|
358
|
-
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_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 vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _store_dictType__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/store/dictType */ \"./src/store/dictType.js\");\n/* harmony import */ var _store_dict__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/store/dict */ \"./src/store/dict.js\");\n/* harmony import */ var _api_dist__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/api/dist */ \"./src/api/dist.js\");\n\n\n\n\n\n\n\n\nconst __default__ = {\n name: \"olDictTag\"\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (/*@__PURE__*/Object.assign(__default__, {\n props: {\n border: {\n default: false,\n type: Boolean\n },\n type: {\n default: 'select'\n },\n code: {},\n like: {},\n placeholder: {\n default: '可搜索'\n },\n clearable: {\n default: true,\n type: Boolean\n },\n allowCreate: {\n default: false,\n type: Boolean\n },\n modelValue: {\n required: true\n },\n dictType: {\n default: false,\n type: Boolean\n },\n label: {\n default: 'dictLabel'\n },\n value: {\n default: 'dictValue'\n },\n orderBy: {\n default: undefined,\n type: Array\n },\n groupBy: {\n default: undefined,\n type: Array\n },\n whereAnd: {\n default: []\n },\n whereOr: {\n default: []\n },\n //[{String key:''value:'',type:''}]//type 查询类型 默认等于1--> 1:= 2:!= 3: > 4:< 5: >= 6: <= 7:like '%value' 8:like '%value%' 9:like 'value%'\n disabledInit: {\n type: Boolean,\n required: false,\n default: false\n },\n data: {\n default: []\n }\n },\n emits: ['update:modelValue', 'change'],\n setup(__props, {\n expose: __expose,\n emit: __emit\n }) {\n const http = (0,vue__WEBPACK_IMPORTED_MODULE_4__.inject)(\"http\");\n const dict = (0,_store_dict__WEBPACK_IMPORTED_MODULE_6__.storeDict)();\n const dictType = (0,_store_dictType__WEBPACK_IMPORTED_MODULE_5__.storeDictType)();\n const props = __props;\n const loading = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(false);\n const ex = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(0);\n const value = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(undefined);\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.watch)(() => props.modelValue, () => {\n if (props.type == 'checkbox') {\n value.value = Array.isArray(props.modelValue) ? props.modelValue : [props.modelValue + ''];\n } else {\n value.value = props.modelValue + '';\n }\n }, {\n deep: true // 开启深度监听\n });\n const getValue = () => {\n if (!props.modelValue) {\n return;\n }\n if (props.type == 'checkbox') {\n return Array.isArray(props.modelValue) ? props.modelValue : [props.modelValue + ''];\n } else {\n return props.modelValue + '';\n }\n };\n const options = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)([]);\n let optionsBk = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)([]);\n const isDictTable = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(false);\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.onMounted)(() => {\n dict.init(http);\n dictType.init(http);\n if (!props.disabledInit) {\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.nextTick)(() => {\n init();\n value.value = getValue();\n });\n }\n });\n function doFilterMethod(o) {\n if (optionsBk.value.length == 0) {\n optionsBk.value = options.value;\n }\n let data = optionsBk.value.filter(option => option[props.label].toLowerCase().includes(o ? o.trim().toLowerCase() : ''));\n options.value = data;\n }\n function getParameter(valueData) {\n let code = props.code.split(\",\");\n let whereAnd = JSON.parse(JSON.stringify(props.whereAnd));\n let whereOr = JSON.parse(JSON.stringify(props.whereOr));\n let parameter = {\n dbName: code[0],\n tableName: code[1],\n label: code[2],\n value: code[3],\n orderByStr: props.orderBy,\n groupBy: props.groupBy,\n whereAnd: whereAnd,\n whereOr: whereOr\n };\n if (valueData) {\n loading.value = true;\n (0,_api_dist__WEBPACK_IMPORTED_MODULE_7__.initDictTag)(http, parameter).then(data => {\n options.value = data;\n let existValue = data.map(item => item[props.value]);\n let initValue = [];\n if (props.modelValue instanceof Array) {\n for (const modelValue of props.modelValue) {\n if (modelValue != undefined && existValue.indexOf(modelValue) == -1) {\n initValue.push(modelValue);\n }\n }\n } else {\n if (props.modelValue != undefined && existValue.indexOf(props.modelValue) == -1) {\n initValue.push(props.modelValue);\n }\n }\n value.value = props.modelValue;\n if (initValue.length != 0) {\n for (const modelValue of initValue) {\n if (modelValue) {\n parameter.whereAnd.push({\n key: parameter.value,\n value: modelValue\n });\n }\n }\n (0,_api_dist__WEBPACK_IMPORTED_MODULE_7__.initDictTag)(http, parameter).then(data => {\n options.value = [...options.value, ...data];\n value.value = props.modelValue;\n });\n }\n }).finally(() => {\n loading.value = false;\n });\n } else {\n return parameter;\n }\n }\n async function filterMethod(o) {\n if (isDictTable.value == false) {\n doFilterMethod(o);\n } else {\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.nextTick)(() => {\n ex.value++;\n if (ex.value == 1) {\n getParameter(true);\n } else {\n let parameter = getParameter();\n if (o) {\n parameter.whereAnd.push({\n key: parameter.label,\n value: o,\n type: 8\n });\n if (props.like) {\n let like = props.like.split(\",\");\n for (let key of like) {\n parameter.whereOr.push({\n key: key,\n value: o,\n type: 8\n });\n }\n }\n }\n loading.value = true;\n (0,_api_dist__WEBPACK_IMPORTED_MODULE_7__.initDictTag)(http, parameter).then(data => {\n options.value = data;\n }).finally(() => {\n loading.value = false;\n });\n }\n });\n }\n }\n async function init() {\n if (props.code) {\n let code = props.code.split(\",\");\n //逗号分割是查询数据表\n if (code.length < 3) {\n //查询数据字典\n options.value = dict.val(props.code);\n setDefault(options.value);\n } else {\n isDictTable.value = true;\n getParameter(true);\n }\n } else if (props.dictType) {\n options.value = dictType.val();\n } else {\n options.value = props.data;\n }\n }\n function setDefault(res) {\n if (res == undefined || value.value != \"\") {\n return;\n }\n for (let o of res) {\n if (o.isDefault == 1) {\n value.value = o.dictValue.toString();\n emits(\"update:modelValue\", o.dictValue.toString());\n }\n }\n }\n function getLabel(code) {\n if (!code) {\n code = value.value;\n }\n for (const option of this.options) {\n if (option[props.value] == code) {\n return option[props.label];\n }\n }\n }\n function getObj(code) {\n if (!code) {\n code = value.value;\n }\n for (const option of this.options) {\n if (option[props.value] == code) {\n return option;\n }\n }\n }\n function clear() {\n filterMethod();\n }\n function change(e) {\n emits(\"update:modelValue\", value.value == undefined ? '' : value.value);\n emits(\"change\", e);\n }\n function visibleChange(par) {\n if (par) {\n ex.value = 0;\n }\n }\n\n // 子组件调用父组件\n const emits = __emit; //声明 emits\n __expose({\n init,\n getLabel,\n getObj\n });\n const __returned__ = {\n http,\n dict,\n dictType,\n props,\n loading,\n ex,\n value,\n getValue,\n options,\n get optionsBk() {\n return optionsBk;\n },\n set optionsBk(v) {\n optionsBk = v;\n },\n isDictTable,\n doFilterMethod,\n getParameter,\n filterMethod,\n init,\n setDefault,\n getLabel,\n getObj,\n clear,\n change,\n visibleChange,\n emits,\n nextTick: vue__WEBPACK_IMPORTED_MODULE_4__.nextTick,\n ref: vue__WEBPACK_IMPORTED_MODULE_4__.ref,\n onMounted: vue__WEBPACK_IMPORTED_MODULE_4__.onMounted,\n watch: vue__WEBPACK_IMPORTED_MODULE_4__.watch,\n inject: vue__WEBPACK_IMPORTED_MODULE_4__.inject,\n get storeDictType() {\n return _store_dictType__WEBPACK_IMPORTED_MODULE_5__.storeDictType;\n },\n get storeDict() {\n return _store_dict__WEBPACK_IMPORTED_MODULE_6__.storeDict;\n },\n get initDictTag() {\n return _api_dist__WEBPACK_IMPORTED_MODULE_7__.initDictTag;\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n}));\n\n//# sourceURL=webpack://olp-table/./src/components/ol-dict-tag.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");
|
|
358
|
+
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_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 vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _store_dictType__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/store/dictType */ \"./src/store/dictType.js\");\n/* harmony import */ var _store_dict__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/store/dict */ \"./src/store/dict.js\");\n/* harmony import */ var _api_dist__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/api/dist */ \"./src/api/dist.js\");\n\n\n\n\n\n\n\n\nconst __default__ = {\n name: \"olDictTag\"\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (/*@__PURE__*/Object.assign(__default__, {\n props: {\n border: {\n default: false,\n type: Boolean\n },\n type: {\n default: 'select'\n },\n code: {},\n like: {},\n placeholder: {\n default: '可搜索'\n },\n clearable: {\n default: true,\n type: Boolean\n },\n allowCreate: {\n default: false,\n type: Boolean\n },\n modelValue: {\n required: true\n },\n dictType: {\n default: false,\n type: Boolean\n },\n label: {\n default: 'dictLabel'\n },\n value: {\n default: 'dictValue'\n },\n orderBy: {\n default: undefined,\n type: Array\n },\n groupBy: {\n default: undefined,\n type: Array\n },\n whereAnd: {\n default: []\n },\n whereOr: {\n default: []\n },\n //[{String key:''value:'',type:''}]//type 查询类型 默认等于1--> 1:= 2:!= 3: > 4:< 5: >= 6: <= 7:like '%value' 8:like '%value%' 9:like 'value%'\n disabledInit: {\n type: Boolean,\n required: false,\n default: false\n },\n data: {\n default: []\n }\n },\n emits: ['update:modelValue', 'change'],\n setup(__props, {\n expose: __expose,\n emit: __emit\n }) {\n const http = (0,vue__WEBPACK_IMPORTED_MODULE_4__.inject)(\"http\");\n const dict = (0,_store_dict__WEBPACK_IMPORTED_MODULE_6__.storeDict)();\n const dictType = (0,_store_dictType__WEBPACK_IMPORTED_MODULE_5__.storeDictType)();\n const props = __props;\n const loading = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(false);\n const ex = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(0);\n const value = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(undefined);\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.watch)(() => props.modelValue, () => {\n if (props.type == 'checkbox') {\n value.value = Array.isArray(props.modelValue) ? props.modelValue : [props.modelValue + ''];\n } else {\n value.value = props.modelValue + '';\n }\n }, {\n deep: true // 开启深度监听\n });\n const getValue = () => {\n if (!props.modelValue) {\n return;\n }\n if (props.type == 'checkbox') {\n return Array.isArray(props.modelValue) ? props.modelValue : [props.modelValue + ''];\n } else {\n return props.modelValue + '';\n }\n };\n const options = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)([]);\n let optionsBk = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)([]);\n const isDictTable = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(false);\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.onMounted)(() => {\n dict.init(http);\n dictType.init(http);\n if (!props.disabledInit) {\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.nextTick)(() => {\n init();\n value.value = getValue();\n });\n }\n });\n function doFilterMethod(o) {\n if (optionsBk.value.length == 0) {\n optionsBk.value = options.value;\n }\n let data = optionsBk.value.filter(option => option[props.label].toLowerCase().includes(o ? o.trim().toLowerCase() : ''));\n options.value = data;\n }\n function getParameter(valueData) {\n let code = props.code.split(\",\");\n let whereAnd = JSON.parse(JSON.stringify(props.whereAnd));\n let whereOr = JSON.parse(JSON.stringify(props.whereOr));\n let parameter = {\n dbName: code[0],\n tableName: code[1],\n label: code[2],\n value: code[3],\n orderByStr: props.orderBy,\n groupBy: props.groupBy,\n whereAnd: whereAnd,\n whereOr: whereOr\n };\n if (valueData) {\n loading.value = true;\n (0,_api_dist__WEBPACK_IMPORTED_MODULE_7__.initDictTag)(http, parameter).then(data => {\n if (!data) {\n return;\n }\n options.value = data;\n let existValue = data.map(item => item[props.value]);\n let initValue = [];\n if (props.modelValue instanceof Array) {\n for (const modelValue of props.modelValue) {\n if (modelValue != undefined && existValue.indexOf(modelValue) == -1) {\n initValue.push(modelValue);\n }\n }\n } else {\n if (props.modelValue != undefined && existValue.indexOf(props.modelValue) == -1) {\n initValue.push(props.modelValue);\n }\n }\n value.value = props.modelValue;\n if (initValue.length != 0) {\n for (const modelValue of initValue) {\n if (modelValue) {\n parameter.whereAnd.push({\n key: parameter.value,\n value: modelValue\n });\n }\n }\n (0,_api_dist__WEBPACK_IMPORTED_MODULE_7__.initDictTag)(http, parameter).then(data => {\n options.value = [...options.value, ...data];\n value.value = props.modelValue;\n });\n }\n }).finally(() => {\n loading.value = false;\n });\n } else {\n return parameter;\n }\n }\n async function filterMethod(o) {\n if (isDictTable.value == false) {\n doFilterMethod(o);\n } else {\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.nextTick)(() => {\n ex.value++;\n if (ex.value == 1) {\n getParameter(true);\n } else {\n let parameter = getParameter();\n if (o) {\n parameter.whereAnd.push({\n key: parameter.label,\n value: o,\n type: 8\n });\n if (props.like) {\n let like = props.like.split(\",\");\n for (let key of like) {\n parameter.whereOr.push({\n key: key,\n value: o,\n type: 8\n });\n }\n }\n }\n loading.value = true;\n (0,_api_dist__WEBPACK_IMPORTED_MODULE_7__.initDictTag)(http, parameter).then(data => {\n options.value = data;\n }).finally(() => {\n loading.value = false;\n });\n }\n });\n }\n }\n async function init() {\n if (props.code) {\n let code = props.code.split(\",\");\n //逗号分割是查询数据表\n if (code.length < 3) {\n //查询数据字典\n options.value = dict.val(props.code);\n setDefault(options.value);\n } else {\n isDictTable.value = true;\n getParameter(true);\n }\n } else if (props.dictType) {\n options.value = dictType.val();\n } else {\n options.value = props.data;\n }\n }\n function setDefault(res) {\n if (res == undefined || value.value != \"\") {\n return;\n }\n for (let o of res) {\n if (o.isDefault == 1) {\n value.value = o.dictValue.toString();\n emits(\"update:modelValue\", o.dictValue.toString());\n }\n }\n }\n function getLabel(code) {\n if (!code) {\n code = value.value;\n }\n for (const option of this.options) {\n if (option[props.value] == code) {\n return option[props.label];\n }\n }\n }\n function getObj(code) {\n if (!code) {\n code = value.value;\n }\n for (const option of this.options) {\n if (option[props.value] == code) {\n return option;\n }\n }\n }\n function clear() {\n filterMethod();\n }\n function change(e) {\n emits(\"update:modelValue\", value.value == undefined ? '' : value.value);\n emits(\"change\", e);\n }\n function visibleChange(par) {\n if (par) {\n ex.value = 0;\n }\n }\n\n // 子组件调用父组件\n const emits = __emit; //声明 emits\n __expose({\n init,\n getLabel,\n getObj\n });\n const __returned__ = {\n http,\n dict,\n dictType,\n props,\n loading,\n ex,\n value,\n getValue,\n options,\n get optionsBk() {\n return optionsBk;\n },\n set optionsBk(v) {\n optionsBk = v;\n },\n isDictTable,\n doFilterMethod,\n getParameter,\n filterMethod,\n init,\n setDefault,\n getLabel,\n getObj,\n clear,\n change,\n visibleChange,\n emits,\n nextTick: vue__WEBPACK_IMPORTED_MODULE_4__.nextTick,\n ref: vue__WEBPACK_IMPORTED_MODULE_4__.ref,\n onMounted: vue__WEBPACK_IMPORTED_MODULE_4__.onMounted,\n watch: vue__WEBPACK_IMPORTED_MODULE_4__.watch,\n inject: vue__WEBPACK_IMPORTED_MODULE_4__.inject,\n get storeDictType() {\n return _store_dictType__WEBPACK_IMPORTED_MODULE_5__.storeDictType;\n },\n get storeDict() {\n return _store_dict__WEBPACK_IMPORTED_MODULE_6__.storeDict;\n },\n get initDictTag() {\n return _api_dist__WEBPACK_IMPORTED_MODULE_7__.initDictTag;\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n}));\n\n//# sourceURL=webpack://olp-table/./src/components/ol-dict-tag.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");
|
|
359
359
|
|
|
360
360
|
/***/ }),
|
|
361
361
|
|
|
@@ -531,7 +531,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var spli
|
|
|
531
531
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
532
532
|
|
|
533
533
|
"use strict";
|
|
534
|
-
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_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 _utils_object__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/object */ \"./src/utils/object.js\");\n/* harmony import */ var _utils_message__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/message */ \"./src/utils/message.js\");\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n/* harmony import */ var _utils_tree__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils/tree */ \"./src/utils/tree.js\");\n/* harmony import */ var _utils_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/utils/util */ \"./src/utils/util.js\");\n/* harmony import */ var _api_dist__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/api/dist */ \"./src/api/dist.js\");\n/* harmony import */ var _store_dict__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/store/dict */ \"./src/store/dict.js\");\n/* harmony import */ var _store_dictType__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/store/dictType */ \"./src/store/dictType.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_9__.storeDict)();\nconst dictType = (0,_store_dictType__WEBPACK_IMPORTED_MODULE_10__.storeDictType)();\nfunction replaceDollarBraces(str) {\n return str.toString().replace(/\\$\\{?([^{}]+)\\}?/g, function (match, innerContent) {\n return innerContent ? `'${innerContent}'` : match;\n });\n}\nfunction parseJson(column) {\n let attrs = column.attrs;\n if (attrs) {\n try {\n attrs = JSON.parse(attrs);\n for (let key of Object.keys(attrs)) {\n column[key] = attrs[key];\n }\n } catch (e) {\n console.error(\"解析attrs异常\", attrs);\n }\n }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"olForm\",\n components: {\n OlTableSelect: _components_ol_table_select_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"]\n },\n inject: ['http'],\n props: {\n isDialog: {\n type: Boolean,\n default: true\n }\n },\n data() {\n return {\n formData: {},\n optionData: {},\n form: {},\n initOk: false,\n dynamicSlotsTable: [],\n dynamicSlotsField: {},\n dynamicSlotsOtherResult: {},\n show: true,\n state: {\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 };\n },\n methods: {\n hideColumn(prop) {\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_3__.setArrayObjectKeyValue)(this.form.column, 'display', false, prop);\n },\n showColumn(prop) {\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_3__.setArrayObjectKeyValue)(this.form.column, 'display', true, prop);\n },\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.concat(\"/online/crudAes/\")) {\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 return params;\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 != undefined) {\n if (value instanceof String) {\n value = value.trim();\n }\n columnAndValueMap[prop] = value;\n }\n }\n return columnAndValueMap;\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_4__.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_4__.useMessage)().error(\"您还有\" + keys.length + \"项信息未填写,请填写后再操作!\");\n } else {\n this.save();\n }\n done();\n });\n }\n },\n saveOk(status) {\n this.state.loading = false;\n if (status) {\n this.state.dialogVisible = false;\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 async save() {\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_5__.put)(this.http, url, params).then(status => {\n this.saveOk(status);\n });\n } else if (!this.state.saveUrl || this.state.saveUrl.concat(\"/online/crudAes/\")) {\n await (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_5__.postAes)(this.http, url, params).then(status => {\n this.saveOk(status);\n });\n } else {\n await (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_5__.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 initFormColumn(data) {\n for (let column of this.form.column) {\n if (data.disabled || column.disabled == 1) {\n column.disabled = true;\n }\n if (column.selectDom === '22') {\n //表格选取\n let slotObj = {\n slotName: column.prop,\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({\n targetField: k[[k.length - 1]],\n sourceField: k[0]\n });\n });\n this.dynamicSlotsOtherResult[column.prop] = otherResultArray;\n }\n } else {\n this.initDict(column);\n }\n 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 doInit(data) {\n if (data.disabled) {\n this.show = false;\n }\n if (data.saveUrl) {\n this.state.saveUrl = data.saveUrl.trim();\n if (data.requestType) {\n this.state.requestType = data.requestType;\n }\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 this.state.dialogVisible = true;\n this.formData = data.formData;\n for (let key of Object.keys(this.state)) {\n if (data[key]) {\n this.state[key] = data[key];\n }\n }\n this.form = data.form;\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 }\n if (this.state.otherProp) {\n try {\n this.state.otherProp = JSON.parse(this.state.otherProp);\n } catch (e) {\n console.log(e);\n }\n }\n },\n init(data) {\n try {\n this.beforeInit();\n this.doInit(data);\n setTimeout(() => {\n this.afterInit();\n }, 350);\n } catch (e) {\n console.error(e);\n }\n },\n /**\r\n * 初始化后回调\r\n */\n afterInit() {\n if (this.state.otherProp && this.state.otherProp.afterInit) {\n try {\n eval(this.state.otherProp.afterInit);\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.selectDom == 1) {\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) {\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 } 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_5__.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_6__.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_5__.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_6__.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 dataBase;\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 = JSON.parse(JSON.stringify(column.dictTable));\n if (dictTable instanceof Object) {\n params = dictTable;\n } else {\n dictTable = column.dictTable.split(\",\");\n params[\"dbName\"] = dictTable[0];\n params[\"tableName\"] = dictTable[1];\n params[\"label\"] = dictTable[2];\n params[\"value\"] = dictTable[3];\n if (dictTable[4]) {\n params[\"parentValue\"] = dictTable[4];\n }\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) {\n params.defaultValue = value;\n }\n }\n (0,_api_dist__WEBPACK_IMPORTED_MODULE_8__.initDictTable)(this.http, params).then(data => {\n column.dicData.length = 0;\n if (params[\"parentValue\"]) {\n column.dicData = (0,_utils_tree__WEBPACK_IMPORTED_MODULE_6__.handleTree)(data, 'dictValue', 'parentValue');\n } else {\n data.forEach(d => {\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 },\n mounted() {\n this.$nextTick(() => {\n (0,_store_dict__WEBPACK_IMPORTED_MODULE_9__.storeDict)().init(this.http);\n });\n },\n created() {}\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");
|
|
534
|
+
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_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 _utils_object__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/object */ \"./src/utils/object.js\");\n/* harmony import */ var _utils_message__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/message */ \"./src/utils/message.js\");\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n/* harmony import */ var _utils_tree__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils/tree */ \"./src/utils/tree.js\");\n/* harmony import */ var _utils_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/utils/util */ \"./src/utils/util.js\");\n/* harmony import */ var _api_dist__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/api/dist */ \"./src/api/dist.js\");\n/* harmony import */ var _store_dict__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/store/dict */ \"./src/store/dict.js\");\n/* harmony import */ var _store_dictType__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/store/dictType */ \"./src/store/dictType.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_9__.storeDict)();\nconst dictType = (0,_store_dictType__WEBPACK_IMPORTED_MODULE_10__.storeDictType)();\nfunction replaceDollarBraces(str) {\n return str.toString().replace(/\\$\\{?([^{}]+)\\}?/g, function (match, innerContent) {\n return innerContent ? `'${innerContent}'` : match;\n });\n}\nfunction parseJson(column) {\n let attrs = column.attrs;\n if (attrs) {\n try {\n attrs = JSON.parse(attrs);\n for (let key of Object.keys(attrs)) {\n column[key] = attrs[key];\n }\n } catch (e) {\n console.error(\"解析attrs异常\", attrs);\n }\n }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"olForm\",\n components: {\n OlTableSelect: _components_ol_table_select_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"]\n },\n inject: ['http'],\n props: {\n isDialog: {\n type: Boolean,\n default: true\n }\n },\n data() {\n return {\n formData: {},\n optionData: {},\n form: {},\n initOk: false,\n dynamicSlotsTable: [],\n dynamicSlotsField: {},\n dynamicSlotsOtherResult: {},\n show: true,\n state: {\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 };\n },\n methods: {\n hideColumn(prop) {\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_3__.setArrayObjectKeyValue)(this.form.column, 'display', false, prop);\n },\n showColumn(prop) {\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_3__.setArrayObjectKeyValue)(this.form.column, 'display', true, prop);\n },\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.concat(\"/online/crudAes/\")) {\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 return params;\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 != undefined) {\n if (value instanceof String) {\n value = value.trim();\n }\n columnAndValueMap[prop] = value;\n }\n }\n return columnAndValueMap;\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_4__.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_4__.useMessage)().error(\"您还有\" + keys.length + \"项信息未填写,请填写后再操作!\");\n } else {\n this.save();\n }\n done();\n });\n }\n },\n saveOk(status) {\n this.state.loading = false;\n if (status) {\n this.state.dialogVisible = false;\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 async save() {\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_5__.put)(this.http, url, params).then(status => {\n this.saveOk(status);\n });\n } else if (!this.state.saveUrl || this.state.saveUrl.concat(\"/online/crudAes/\")) {\n console.log(\"金融ces\", this.state.saveUrl);\n await (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_5__.postAes)(this.http, url, params).then(status => {\n this.saveOk(status);\n });\n } else {\n await (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_5__.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 initFormColumn(data) {\n for (let column of this.form.column) {\n if (data.disabled || column.disabled == 1) {\n column.disabled = true;\n }\n if (column.selectDom === '22') {\n //表格选取\n let slotObj = {\n slotName: column.prop,\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({\n targetField: k[[k.length - 1]],\n sourceField: k[0]\n });\n });\n this.dynamicSlotsOtherResult[column.prop] = otherResultArray;\n }\n } else {\n this.initDict(column);\n }\n 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 doInit(data) {\n if (data.disabled) {\n this.show = false;\n }\n if (data.saveUrl) {\n this.state.saveUrl = data.saveUrl.trim();\n if (data.requestType) {\n this.state.requestType = data.requestType;\n }\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 this.state.dialogVisible = true;\n this.formData = data.formData;\n for (let key of Object.keys(this.state)) {\n if (data[key]) {\n this.state[key] = data[key];\n }\n }\n this.form = data.form;\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 }\n if (this.state.otherProp) {\n try {\n this.state.otherProp = JSON.parse(this.state.otherProp);\n } catch (e) {\n console.log(e);\n }\n }\n },\n init(data) {\n try {\n this.beforeInit();\n this.doInit(data);\n setTimeout(() => {\n this.afterInit();\n }, 350);\n } catch (e) {\n console.error(e);\n }\n },\n /**\r\n * 初始化后回调\r\n */\n afterInit() {\n if (this.state.otherProp && this.state.otherProp.afterInit) {\n try {\n eval(this.state.otherProp.afterInit);\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.selectDom == 1) {\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) {\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 } 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_5__.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_6__.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_5__.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_6__.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 dataBase;\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 = JSON.parse(JSON.stringify(column.dictTable));\n if (dictTable instanceof Object) {\n params = dictTable;\n } else {\n dictTable = column.dictTable.split(\",\");\n params[\"dbName\"] = dictTable[0];\n params[\"tableName\"] = dictTable[1];\n params[\"label\"] = dictTable[2];\n params[\"value\"] = dictTable[3];\n if (dictTable[4]) {\n params[\"parentValue\"] = dictTable[4];\n }\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) {\n params.defaultValue = value;\n }\n }\n (0,_api_dist__WEBPACK_IMPORTED_MODULE_8__.initDictTable)(this.http, params).then(data => {\n column.dicData.length = 0;\n if (params[\"parentValue\"]) {\n column.dicData = (0,_utils_tree__WEBPACK_IMPORTED_MODULE_6__.handleTree)(data, 'dictValue', 'parentValue');\n } else {\n data.forEach(d => {\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 },\n mounted() {\n this.$nextTick(() => {\n (0,_store_dict__WEBPACK_IMPORTED_MODULE_9__.storeDict)().init(this.http);\n });\n },\n created() {}\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");
|
|
535
535
|
|
|
536
536
|
/***/ }),
|
|
537
537
|
|
|
@@ -784,7 +784,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core
|
|
|
784
784
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
785
785
|
|
|
786
786
|
"use strict";
|
|
787
|
-
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_find_js__WEBPACK_IMPORTED_MODULE_2__ = __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_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils/object */ \"./src/utils/object.js\");\n/* harmony import */ var _store_dict__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/store/dict */ \"./src/store/dict.js\");\n/* harmony import */ var element_plus__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! element-plus */ \"element-plus\");\n/* harmony import */ var element_plus__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(element_plus__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var sql_formatter__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! sql-formatter */ \"./node_modules/sql-formatter/lib/sqlFormatter.js\");\n/* harmony import */ var sql_formatter__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(sql_formatter__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _views_table_add_or_edit_config_field_config_index_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/views/table/add-or-edit/config/field-config/index.vue */ \"./src/views/table/add-or-edit/config/field-config/index.vue\");\n/* harmony import */ var _components_lazy_load_select_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/components/lazy-load-select.vue */ \"./src/components/lazy-load-select.vue\");\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n __name: 'index',\n emits: [\"emits\", 'updateTab'],\n setup(__props, {\n expose: __expose,\n emit: __emit\n }) {\n const http = (0,vue__WEBPACK_IMPORTED_MODULE_3__.inject)('http');\n const addOrEditRootData = (0,vue__WEBPACK_IMPORTED_MODULE_3__.inject)('addOrEditRootData');\n const dict = (0,_store_dict__WEBPACK_IMPORTED_MODULE_6__.storeDict)();\n const dicData = (0,vue__WEBPACK_IMPORTED_MODULE_3__.reactive)({\n joinFiledDicData: [{\n label: '内连接',\n value: 'join'\n }, {\n label: '左连接',\n value: 'left join'\n }, {\n label: '右连接',\n value: 'right join'\n }],\n joinTableDicData: []\n });\n const form = (0,vue__WEBPACK_IMPORTED_MODULE_3__.reactive)({\n form: {\n table: [{\n index: \"t1\",\n type: \"主表\",\n joinTable: \"\",\n joinFiled: \"/\",\n deleteWhere: 'id=${id}'\n }],\n executeSql: '',\n executeWhere: '',\n orderBy: '',\n authTableName: ''\n }\n });\n const option = (0,vue__WEBPACK_IMPORTED_MODULE_3__.reactive)({\n submitBtn: false,\n emptyBtn: false,\n column: [\n /* {\r\n label: '转换驼峰', prop: 'hump', border: true, type: 'radio', value: '0', span: 7, dicData: [{\r\n label: '不转换', value: '0'\r\n }, {\r\n label: '转换', value: '1'\r\n },{\r\n label: '请求转换', value: '2'\r\n }],\r\n dictCode: 'converting_hump'\r\n },*/\n {\n label: '数据源类型',\n type: 'radio',\n span: 7,\n prop: 'definitionSql',\n border: true,\n value: '0',\n onChange: ({\n value\n }) => {\n if (value == '0') {\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_5__.setArrayObjectKeyValue)(option.column, 'display', true, \"executeSql,where,table,orderBy\");\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_5__.setArrayObjectKeyValue)(option.column, 'display', false, \"api,requestType\");\n } else if (value == '1') {\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_5__.setArrayObjectKeyValue)(option.column, 'display', true, \"executeSql,where,orderBy\");\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_5__.setArrayObjectKeyValue)(option.column, 'display', false, \"api,table,requestType\");\n } else {\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_5__.setArrayObjectKeyValue)(option.column, 'display', true, \"api,requestType\");\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_5__.setArrayObjectKeyValue)(option.column, 'display', false, \"executeSql,where,table,orderBy\");\n }\n },\n dicData: [{\n label: '自动SQL',\n value: '0'\n }, {\n label: '手动SQL',\n value: '1'\n }, {\n label: 'API',\n value: '2'\n }],\n dictCode: 'tree_data_type'\n }, {\n label: '权限表名',\n display: true,\n type: 'input',\n span: 6,\n prop: 'authTableName'\n }, {\n label: '查询表格',\n prop: 'table',\n type: 'dynamic',\n span: 24,\n children: {\n align: 'center',\n minHeight: 100,\n maxHeight: 170,\n size: \"small\",\n headerAlign: 'center',\n rowAdd: done => {\n let obj = {\n index: \"t\" + (form.form.table.length + 1),\n type: \"join\",\n joinTable: \"\",\n joinFiled: \"t\" + form.form.table.length + \".=t\" + (form.form.table.length + 1) + \".\"\n };\n done(obj);\n },\n rowDel: row => {\n if (row.$index != 0) {\n setSql(row.$index);\n } else {\n element_plus__WEBPACK_IMPORTED_MODULE_7__.ElMessage.error(\"主表不能删除!\");\n }\n },\n column: [{\n width: 60,\n prop: \"index\",\n label: '序号'\n }, {\n label: '类型',\n prop: \"type\",\n width: 120,\n disabled: true,\n type: 'select'\n }, {\n label: '数据表',\n prop: \"joinTable\",\n type: 'select',\n dicData: []\n }, {\n label: 'on',\n prop: \"joinFiled\",\n type: 'input'\n }, {\n label: '删除条件',\n prop: \"deleteWhere\",\n width: 200,\n type: 'input'\n }]\n }\n }, {\n label: '执行SQL',\n display: true,\n type: 'textarea',\n maxRows: 7,\n span: 24,\n prop: 'executeSql'\n }, {\n label: 'where条件',\n display: true,\n type: 'input',\n span: 24,\n prop: 'executeWhere'\n }, {\n label: '排序',\n display: true,\n type: 'input',\n span: 24,\n prop: 'orderBy'\n }, {\n label: '默认参数',\n type: 'input',\n span: 24,\n prop: 'parameterDefault'\n }, {\n label: 'API',\n display: true,\n type: 'input',\n span: 24,\n prop: 'api'\n }, {\n label: '请求类型',\n prop: 'requestType',\n border: true,\n type: 'radio',\n value: '0',\n span: 6,\n dicData: [],\n dictCode: 'request_type'\n }]\n });\n const configData = (0,vue__WEBPACK_IMPORTED_MODULE_3__.inject)('configData');\n function parseData(data) {\n if (form.form.definitionSql == '1') {\n data.mainTable = form.form.mainTable;\n } else {\n data.mainTable = form.form.table[0].joinTable;\n }\n data.definitionSql = form.form.definitionSql;\n data.executeSql = form.form.executeSql;\n data.orderBy = form.form.orderBy;\n data.groupBy = form.form.groupBy;\n data.executeWhere = form.form.executeWhere;\n data.parameterDefault = form.form.parameterDefault;\n data.hump = form.form.hump;\n data.api = form.form.api;\n data.requestType = form.form.requestType;\n data.authTableName = form.form.authTableName;\n if (form.form.definitionSql == 0) {\n if (form.form.table[0].deleteWhere) {\n data.deleteWhere = {\n wheres: form.form.table[0].deleteWhere.trim(),\n tableName: form.form.table[0].joinTable\n };\n } else {\n delete data.deleteWhere;\n }\n }\n }\n function setData(f) {\n form.form.definitionSql = f;\n form.form.hump = f.hump;\n form.form.mainTable = f.mainTable;\n form.form.executeSql = f.executeSql;\n form.form.orderBy = f.orderBy;\n form.form.api = f.api;\n form.form.requestType = f.requestType;\n form.form.executeWhere = f.executeWhere;\n form.form.parameterDefault = f.parameterDefault;\n form.form.definitionSql = f.definitionSql;\n form.form.authTableName = f.authTableName;\n if (form.form.definitionSql == 0) {\n sqlParseTable(f.deleteWhere);\n }\n }\n function setTable() {\n let promise = [];\n for (let i = 0; i < form.form.table.length; i++) {\n promise.push((0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_4__.get)(http, \"/online/getDBTableColumnList/\" + addOrEditRootData.form.dbName, {\n tableName: form.form.table[i].joinTable\n }));\n }\n Promise.all(promise).then(result => {\n for (let i = 0; i < result.length; i++) {\n form.form.table[i]['columnList'] = result[i];\n }\n setSql();\n });\n }\n function setSql(index, seq) {\n if (seq != undefined && seq != 0) {\n let arr = form.form.table.find(item => {\n return item.index == seq;\n });\n if (!arr || !arr.joinTable) {\n return;\n }\n }\n if (index != undefined && index != 0) {\n form.form.table.splice(index, 1);\n }\n let sqlTableOn = form.form.table[0].joinTable + \" t1 \";\n let sqlFiled = \"\";\n let tableColumns = [];\n let sort = 0;\n let mapFiled = {};\n for (let i = 0; i < form.form.table.length; i++) {\n if (i === index) {\n continue;\n }\n let obj = form.form.table[i];\n for (let j = 0; j < obj.columnList.length; j++) {\n let column = obj.columnList[j];\n if (column.checked == 0) {\n continue;\n }\n if (sqlFiled.length != 0) {\n sqlFiled += \",\";\n }\n if (mapFiled[column.column_name] !== undefined) {\n mapFiled[column.column_name]++;\n } else {\n mapFiled[column.column_name] = 0;\n }\n sort++;\n let asName = mapFiled[column.column_name] === 0 ? column.column_name : obj.index + \"_\" + column.column_name;\n sqlFiled += obj.index + \".\" + column.column_name + \" AS \" + asName;\n let column_name = column.column_name;\n let column_comment = column.column_comment ? column.column_comment : column_name;\n tableColumns.push({\n sort: sort,\n tableField: column_name,\n field: column_name,\n title: column_comment,\n label: column_comment,\n visible: column.visible,\n display: 1,\n asName: asName\n });\n }\n if (i != 0) {\n sqlTableOn += \" \" + obj.type + \" \" + obj.joinTable + \" \" + obj.index + \" on \" + obj.joinFiled;\n }\n }\n for (let tableColumn of tableColumns) {\n let add = true;\n for (let c of configData.tableColumn) {\n if (c.field == tableColumn.field) {\n add = false;\n }\n }\n if (add) {\n configData.tableColumn.push(tableColumn);\n }\n }\n for (let i = 0; i < configData.tableColumn.length; i++) {\n let remove = true;\n for (let tableColumn of tableColumns) {\n if (configData.tableColumn[i].field == tableColumn.field) {\n remove = false;\n }\n }\n if (remove) {\n configData.tableColumn.splice(i, 1);\n }\n }\n form.form.executeSql = \"select \" + sqlFiled + \" from \" + sqlTableOn;\n }\n const isSyncCurd = (0,vue__WEBPACK_IMPORTED_MODULE_3__.ref)(false);\n const sync = (0,vue__WEBPACK_IMPORTED_MODULE_3__.ref)(false);\n function syncTable() {\n emit('loading', true);\n configData.form.executeSql = form.form.executeSql;\n configData.form.executeWhere = form.form.where;\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_4__.post)(http, \"/online/getTableFiled\", {\n sql: form.form.executeSql,\n where: form.form.where,\n definitionSql: form.form.definitionSql,\n dbName: addOrEditRootData.form.dbName,\n uuid: configData.form.uuid\n }, undefined, false).then(data => {\n emit(\"updateTable\", data.data);\n isSyncCurd.value = form.form?.definitionSql == 0 && form.form?.table?.length == 1;\n if (isSyncCurd.value && sync.value) {\n emit(\"updateCurd\");\n }\n setFieldConfig();\n }).finally(() => {\n emit('loading', false);\n });\n }\n const filedConfig = (0,vue__WEBPACK_IMPORTED_MODULE_3__.ref)();\n function setFieldConfig(filedConf) {\n if (form.form.definitionSql != 0) {\n return;\n }\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_4__.post)(http, \"/online/getTableSetFiled\", {\n sql: form.form.executeSql,\n where: form.form.where,\n dbName: addOrEditRootData.form.dbName,\n definitionSql: form.form.definitionSql,\n uuid: configData.form.uuid\n }, false, false).then(({\n data\n }) => {\n setFormTable(data);\n if (filedConf) {\n filedConfig.value.init(form.form.table);\n }\n });\n }\n function getTableNamesByFormSql() {\n let formSql = form.form.executeSql.substring(form.form.executeSql.indexOf('from') + 4);\n let tableNames = [];\n for (const join of formSql.split('join')) {\n tableNames.push(join);\n }\n return tableNames;\n }\n function getTableComment(key) {\n for (const item of dicData.joinTableDicData) {\n if (item.value == key) return item.label;\n }\n }\n function setFormTable(data) {\n let tableNames = getTableNamesByFormSql();\n let tables = [];\n for (const key of Object.keys(data)) {\n let table = {\n index: 't1',\n type: '主表',\n joinTable: key,\n joinFiled: '/',\n deleteWhere: '',\n columnList: [],\n tableComment: getTableComment(key)\n };\n table.columnList = Object.values(data[key]);\n tables.push(table);\n }\n form.form.table = [];\n for (let i = 0; i < tableNames.length; i++) {\n const tableName = tableNames[i];\n for (const table of tables) {\n if (tableName.includes(table.joinTable)) {\n if (i == 0) {\n table.deleteWhere = 'id=${id}';\n table.mainTable = table.joinTable;\n }\n if (i != 0) {\n table.index = 't' + (i + 1);\n table.type = 'join';\n let joinFiled = tableName.substring(tableName.indexOf('on') + 2).replace(/[\\n\\t\\s]+/g, '');\n if (tableNames[i - 1].includes('left')) {\n table.type = 'left join';\n joinFiled = joinFiled.replace('left', '');\n }\n if (tableNames[i - 1].includes('right')) {\n table.type = 'right join';\n joinFiled = joinFiled.replace('right', '');\n }\n table.joinFiled = joinFiled;\n }\n form.form.table.push(table);\n break;\n }\n }\n }\n }\n function updateExecuteSql(v) {\n if (v === 0) {\n form.form.executeSql = sql_formatter__WEBPACK_IMPORTED_MODULE_8___default().format(form.form.executeSql, {\n language: 'sql',\n keywordCase: 'upper',\n indentStyle: 'tabularLeft'\n });\n } else {\n form.form.executeSql = form.form.executeSql.replace(/\\s+/g, \" \");\n }\n }\n function filedConfigClose(data) {\n if (!data) return;\n for (let j = 0; j < form.form.table.length; j++) {\n let obj = form.form.table[j];\n if (Object.keys(data).includes(obj.index)) {\n form.form.table[j].columnList = data[obj.index];\n }\n }\n setSql();\n }\n function setFieldEvent(row) {\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_4__.post)(http, \"/online/getTableSetFiled\", {\n sql: form.form.executeSql,\n definitionSql: form.form.definitionSql,\n dbName: addOrEditRootData.form.dbName,\n where: form.form.where,\n uuid: configData.form.uuid\n }, undefined, false).then(data => {\n row.columnList = Object.values(data.data[row.joinTable]);\n filedConfig.value.init(row);\n });\n }\n\n /**\r\n * 一键同步CURD\r\n */\n const syncCurd = () => {\n sync.value = true;\n syncTable();\n };\n function parseSqlToTables(sql) {\n // 标准化SQL,去除多余空格和换行\n let normalizedSql = sql.replace(/[\\n\\r\\s]+/g, ' ').trim();\n\n // 分割FROM后面的部分\n let fromPart = normalizedSql.split(/from/i)[1];\n let result = [{\n index: 't1',\n type: '主表',\n joinTable: '',\n joinFiled: '/'\n }];\n if (!fromPart) return result;\n let currentIndex = 1;\n\n // 分割所有JOIN(包括LEFT JOIN, RIGHT JOIN等)\n let parts = fromPart.split(/\\s+(?:left\\s+)?(?:right\\s+)?(?:inner\\s+)?join\\s+/i);\n\n // 处理主表\n let mainTablePart = parts[0].trim();\n let mainTableName = mainTablePart.split(/\\s+/)[0];\n result[0].joinTable = mainTableName;\n\n // 处理关联表\n for (let i = 1; i < parts.length; i++) {\n currentIndex++;\n let joinPart = parts[i].trim();\n\n // 获取JOIN类型\n let joinType = 'left';\n if (normalizedSql.toLowerCase().includes('right join')) {\n joinType = 'right';\n } else if (normalizedSql.toLowerCase().includes('inner join')) {\n joinType = 'inner';\n }\n\n // 分割ON条件\n let onPart = joinPart.split(/\\s+on\\s+/i);\n let joinTableName = onPart[0].trim().split(/\\s+/)[0];\n let joinFields = onPart[1] ? onPart[1].trim() : '';\n result.push({\n index: 't' + (currentIndex + 1),\n type: joinType,\n joinTable: joinTableName,\n joinFiled: joinFields\n });\n }\n return result;\n }\n const sqlParseTable = o => {\n if (configData.form.executeSql && configData.form.executeSql.toLowerCase().indexOf(\"from\") === -1) {\n return;\n }\n let tableData = parseSqlToTables(configData.form.executeSql);\n if (o) {\n tableData[0].deleteWhere = o.wheres;\n }\n form.form.table = tableData;\n };\n function remoteMethod() {\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_4__.get)(http, \"/online/getDBTableList\", {\n dbName: addOrEditRootData.form.dbName\n }).then(data => {\n dicData.joinTableDicData = data;\n });\n }\n function initDict() {\n for (const column of option.column) {\n if (column.dictCode) {\n column.dicData = dict.val(column.dictCode);\n }\n }\n }\n const emit = __emit; //声明 emits\n (0,vue__WEBPACK_IMPORTED_MODULE_3__.onMounted)(() => {\n remoteMethod();\n initDict();\n });\n __expose({\n setData,\n parseData,\n form\n });\n const __returned__ = {\n http,\n addOrEditRootData,\n dict,\n dicData,\n form,\n option,\n configData,\n parseData,\n setData,\n setTable,\n setSql,\n isSyncCurd,\n sync,\n syncTable,\n filedConfig,\n setFieldConfig,\n getTableNamesByFormSql,\n getTableComment,\n setFormTable,\n updateExecuteSql,\n filedConfigClose,\n setFieldEvent,\n syncCurd,\n parseSqlToTables,\n sqlParseTable,\n remoteMethod,\n initDict,\n emit,\n inject: vue__WEBPACK_IMPORTED_MODULE_3__.inject,\n reactive: vue__WEBPACK_IMPORTED_MODULE_3__.reactive,\n onMounted: vue__WEBPACK_IMPORTED_MODULE_3__.onMounted,\n ref: vue__WEBPACK_IMPORTED_MODULE_3__.ref,\n get get() {\n return _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_4__.get;\n },\n get post() {\n return _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_4__.post;\n },\n get setArrayObjectKeyValue() {\n return _utils_object__WEBPACK_IMPORTED_MODULE_5__.setArrayObjectKeyValue;\n },\n get storeDict() {\n return _store_dict__WEBPACK_IMPORTED_MODULE_6__.storeDict;\n },\n get ElMessage() {\n return element_plus__WEBPACK_IMPORTED_MODULE_7__.ElMessage;\n },\n get sqlFormatter() {\n return (sql_formatter__WEBPACK_IMPORTED_MODULE_8___default());\n },\n FieldConfig: _views_table_add_or_edit_config_field_config_index_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n LazyLoadSelect: _components_lazy_load_select_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"]\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://olp-table/./src/views/table/add-or-edit/config/base-config/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");
|
|
787
|
+
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_find_js__WEBPACK_IMPORTED_MODULE_2__ = __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_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils/object */ \"./src/utils/object.js\");\n/* harmony import */ var _store_dict__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/store/dict */ \"./src/store/dict.js\");\n/* harmony import */ var element_plus__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! element-plus */ \"element-plus\");\n/* harmony import */ var element_plus__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(element_plus__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var sql_formatter__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! sql-formatter */ \"./node_modules/sql-formatter/lib/sqlFormatter.js\");\n/* harmony import */ var sql_formatter__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(sql_formatter__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _views_table_add_or_edit_config_field_config_index_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/views/table/add-or-edit/config/field-config/index.vue */ \"./src/views/table/add-or-edit/config/field-config/index.vue\");\n/* harmony import */ var _components_lazy_load_select_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/components/lazy-load-select.vue */ \"./src/components/lazy-load-select.vue\");\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n __name: 'index',\n emits: [\"emits\", 'updateTab'],\n setup(__props, {\n expose: __expose,\n emit: __emit\n }) {\n const http = (0,vue__WEBPACK_IMPORTED_MODULE_3__.inject)('http');\n const addOrEditRootData = (0,vue__WEBPACK_IMPORTED_MODULE_3__.inject)('addOrEditRootData');\n const dict = (0,_store_dict__WEBPACK_IMPORTED_MODULE_6__.storeDict)();\n const dicData = (0,vue__WEBPACK_IMPORTED_MODULE_3__.reactive)({\n joinFiledDicData: [{\n label: '内连接',\n value: 'join'\n }, {\n label: '左连接',\n value: 'left join'\n }, {\n label: '右连接',\n value: 'right join'\n }],\n joinTableDicData: []\n });\n const form = (0,vue__WEBPACK_IMPORTED_MODULE_3__.reactive)({\n form: {\n table: [{\n index: \"t1\",\n type: \"主表\",\n joinTable: \"\",\n joinFiled: \"/\",\n deleteWhere: 'id=${id}'\n }],\n mainTable: '',\n definitionSql: '',\n executeSql: '',\n orderBy: '',\n groupBy: '',\n executeWhere: '',\n parameterDefault: '',\n hump: '',\n api: '',\n requestType: '',\n tableAliasFiled: '',\n userFiled: '',\n departmentFiled: '',\n aes: ''\n }\n });\n const option = (0,vue__WEBPACK_IMPORTED_MODULE_3__.reactive)({\n submitBtn: false,\n emptyBtn: false,\n column: [\n /* {\r\n label: '转换驼峰', prop: 'hump', border: true, type: 'radio', value: '0', span: 7, dicData: [{\r\n label: '不转换', value: '0'\r\n }, {\r\n label: '转换', value: '1'\r\n },{\r\n label: '请求转换', value: '2'\r\n }],\r\n dictCode: 'converting_hump'\r\n },*/\n {\n label: '数据源类型',\n type: 'radio',\n span: 7,\n prop: 'definitionSql',\n border: true,\n value: '0',\n onChange: ({\n value\n }) => {\n if (value == '0') {\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_5__.setArrayObjectKeyValue)(option.column, 'display', true, \"executeSql,where,table,orderBy\");\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_5__.setArrayObjectKeyValue)(option.column, 'display', false, \"api,requestType\");\n } else if (value == '1') {\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_5__.setArrayObjectKeyValue)(option.column, 'display', true, \"executeSql,where,orderBy\");\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_5__.setArrayObjectKeyValue)(option.column, 'display', false, \"api,table,requestType\");\n } else {\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_5__.setArrayObjectKeyValue)(option.column, 'display', true, \"api,requestType\");\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_5__.setArrayObjectKeyValue)(option.column, 'display', false, \"executeSql,where,table,orderBy\");\n }\n },\n dicData: [{\n label: '自动SQL',\n value: '0'\n }, {\n label: '手动SQL',\n value: '1'\n }, {\n label: 'API',\n value: '2'\n }],\n dictCode: 'tree_data_type'\n }, {\n label: '加密传输',\n prop: 'aes',\n type: 'switch',\n span: 3,\n dicData: [{\n label: '否',\n value: '0'\n }, {\n label: '是',\n value: '1'\n }]\n }, {\n label: '权限表名',\n type: 'input',\n span: 3,\n prop: 'tableAliasFiled'\n }, {\n label: '部门字段',\n type: 'input',\n span: 3,\n prop: 'departmentFiled'\n }, {\n label: '用户字段',\n type: 'input',\n span: 3,\n prop: 'userFiled'\n }, {\n label: '查询表格',\n prop: 'table',\n type: 'dynamic',\n span: 24,\n children: {\n align: 'center',\n minHeight: 100,\n maxHeight: 170,\n size: \"small\",\n headerAlign: 'center',\n rowAdd: done => {\n let obj = {\n index: \"t\" + (form.form.table.length + 1),\n type: \"join\",\n joinTable: \"\",\n joinFiled: \"t\" + form.form.table.length + \".=t\" + (form.form.table.length + 1) + \".\"\n };\n done(obj);\n },\n rowDel: row => {\n if (row.$index != 0) {\n setSql(row.$index);\n } else {\n element_plus__WEBPACK_IMPORTED_MODULE_7__.ElMessage.error(\"主表不能删除!\");\n }\n },\n column: [{\n width: 60,\n prop: \"index\",\n label: '序号'\n }, {\n label: '类型',\n prop: \"type\",\n width: 120,\n disabled: true,\n type: 'select'\n }, {\n label: '数据表',\n prop: \"joinTable\",\n type: 'select',\n dicData: []\n }, {\n label: 'on',\n prop: \"joinFiled\",\n type: 'input'\n }, {\n label: '删除条件',\n prop: \"deleteWhere\",\n width: 200,\n type: 'input'\n }]\n }\n }, {\n label: '执行SQL',\n display: true,\n type: 'textarea',\n maxRows: 7,\n span: 24,\n prop: 'executeSql'\n }, {\n label: 'where条件',\n display: true,\n type: 'input',\n span: 24,\n prop: 'executeWhere'\n }, {\n label: '排序',\n display: true,\n type: 'input',\n span: 24,\n prop: 'orderBy'\n }, {\n label: '默认参数',\n type: 'input',\n span: 24,\n prop: 'parameterDefault'\n }, {\n label: 'API',\n display: true,\n type: 'input',\n span: 24,\n prop: 'api'\n }, {\n label: '请求类型',\n prop: 'requestType',\n border: true,\n type: 'radio',\n value: '0',\n span: 6,\n dicData: [],\n dictCode: 'request_type'\n }]\n });\n const configData = (0,vue__WEBPACK_IMPORTED_MODULE_3__.inject)('configData');\n function parseData(data) {\n if (form.form.definitionSql == '1') {\n data.mainTable = form.form.mainTable;\n } else {\n data.mainTable = form.form.table[0].joinTable;\n }\n for (let key of Object.keys(form.form)) {\n if ([\"mainTable\", \"table\"].indexOf(key) == -1) {\n data[key] = form.form[key];\n }\n }\n if (form.form.definitionSql == 0) {\n if (form.form.table[0].deleteWhere) {\n data.deleteWhere = {\n wheres: form.form.table[0].deleteWhere.trim(),\n tableName: form.form.table[0].joinTable\n };\n } else {\n delete data.deleteWhere;\n }\n }\n }\n function setData(f) {\n for (let key of Object.keys(form.form)) {\n if ([\"table\"].indexOf(key) == -1) {\n form.form[key] = f[key];\n }\n }\n if (form.form.definitionSql == 0) {\n sqlParseTable(f.deleteWhere);\n }\n }\n function setTable() {\n let promise = [];\n for (let i = 0; i < form.form.table.length; i++) {\n promise.push((0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_4__.get)(http, \"/online/getDBTableColumnList/\" + addOrEditRootData.form.dbName, {\n tableName: form.form.table[i].joinTable\n }));\n }\n Promise.all(promise).then(result => {\n for (let i = 0; i < result.length; i++) {\n form.form.table[i]['columnList'] = result[i];\n }\n setSql();\n });\n }\n function setSql(index, seq) {\n if (seq != undefined && seq != 0) {\n let arr = form.form.table.find(item => {\n return item.index == seq;\n });\n if (!arr || !arr.joinTable) {\n return;\n }\n }\n if (index != undefined && index != 0) {\n form.form.table.splice(index, 1);\n }\n let sqlTableOn = form.form.table[0].joinTable + \" t1 \";\n let sqlFiled = \"\";\n let tableColumns = [];\n let sort = 0;\n let mapFiled = {};\n for (let i = 0; i < form.form.table.length; i++) {\n if (i === index) {\n continue;\n }\n let obj = form.form.table[i];\n for (let j = 0; j < obj.columnList.length; j++) {\n let column = obj.columnList[j];\n if (column.checked == 0) {\n continue;\n }\n if (sqlFiled.length != 0) {\n sqlFiled += \",\";\n }\n if (mapFiled[column.column_name] !== undefined) {\n mapFiled[column.column_name]++;\n } else {\n mapFiled[column.column_name] = 0;\n }\n sort++;\n let asName = mapFiled[column.column_name] === 0 ? column.column_name : obj.index + \"_\" + column.column_name;\n sqlFiled += obj.index + \".\" + column.column_name + \" AS \" + asName;\n let column_name = column.column_name;\n let column_comment = column.column_comment ? column.column_comment : column_name;\n tableColumns.push({\n sort: sort,\n tableField: column_name,\n field: column_name,\n title: column_comment,\n label: column_comment,\n visible: column.visible,\n display: 1,\n asName: asName\n });\n }\n if (i != 0) {\n sqlTableOn += \" \" + obj.type + \" \" + obj.joinTable + \" \" + obj.index + \" on \" + obj.joinFiled;\n }\n }\n for (let tableColumn of tableColumns) {\n let add = true;\n for (let c of configData.tableColumn) {\n if (c.field == tableColumn.field) {\n add = false;\n }\n }\n if (add) {\n configData.tableColumn.push(tableColumn);\n }\n }\n for (let i = 0; i < configData.tableColumn.length; i++) {\n let remove = true;\n for (let tableColumn of tableColumns) {\n if (configData.tableColumn[i].field == tableColumn.field) {\n remove = false;\n }\n }\n if (remove) {\n configData.tableColumn.splice(i, 1);\n }\n }\n form.form.executeSql = \"select \" + sqlFiled + \" from \" + sqlTableOn;\n }\n const isSyncCurd = (0,vue__WEBPACK_IMPORTED_MODULE_3__.ref)(false);\n const sync = (0,vue__WEBPACK_IMPORTED_MODULE_3__.ref)(false);\n function syncTable() {\n emit('loading', true);\n configData.form.executeSql = form.form.executeSql;\n configData.form.executeWhere = form.form.where;\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_4__.post)(http, \"/online/getTableFiled\", {\n sql: form.form.executeSql,\n where: form.form.where,\n definitionSql: form.form.definitionSql,\n dbName: addOrEditRootData.form.dbName,\n uuid: configData.form.uuid\n }, undefined, false).then(data => {\n emit(\"updateTable\", data.data);\n isSyncCurd.value = form.form?.definitionSql == 0 && form.form?.table?.length == 1;\n if (isSyncCurd.value && sync.value) {\n emit(\"updateCurd\");\n }\n setFieldConfig();\n }).finally(() => {\n emit('loading', false);\n });\n }\n const filedConfig = (0,vue__WEBPACK_IMPORTED_MODULE_3__.ref)();\n function setFieldConfig(filedConf) {\n if (form.form.definitionSql != 0) {\n return;\n }\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_4__.post)(http, \"/online/getTableSetFiled\", {\n sql: form.form.executeSql,\n where: form.form.where,\n dbName: addOrEditRootData.form.dbName,\n definitionSql: form.form.definitionSql,\n uuid: configData.form.uuid\n }, false, false).then(({\n data\n }) => {\n setFormTable(data);\n if (filedConf) {\n filedConfig.value.init(form.form.table);\n }\n });\n }\n function getTableNamesByFormSql() {\n let formSql = form.form.executeSql.substring(form.form.executeSql.indexOf('from') + 4);\n let tableNames = [];\n for (const join of formSql.split('join')) {\n tableNames.push(join);\n }\n return tableNames;\n }\n function getTableComment(key) {\n for (const item of dicData.joinTableDicData) {\n if (item.value == key) return item.label;\n }\n }\n function setFormTable(data) {\n let tableNames = getTableNamesByFormSql();\n let tables = [];\n for (const key of Object.keys(data)) {\n let table = {\n index: 't1',\n type: '主表',\n joinTable: key,\n joinFiled: '/',\n deleteWhere: '',\n columnList: [],\n tableComment: getTableComment(key)\n };\n table.columnList = Object.values(data[key]);\n tables.push(table);\n }\n form.form.table = [];\n for (let i = 0; i < tableNames.length; i++) {\n const tableName = tableNames[i];\n for (const table of tables) {\n if (tableName.includes(table.joinTable)) {\n if (i == 0) {\n table.deleteWhere = 'id=${id}';\n table.mainTable = table.joinTable;\n }\n if (i != 0) {\n table.index = 't' + (i + 1);\n table.type = 'join';\n let joinFiled = tableName.substring(tableName.indexOf('on') + 2).replace(/[\\n\\t\\s]+/g, '');\n if (tableNames[i - 1].includes('left')) {\n table.type = 'left join';\n joinFiled = joinFiled.replace('left', '');\n }\n if (tableNames[i - 1].includes('right')) {\n table.type = 'right join';\n joinFiled = joinFiled.replace('right', '');\n }\n table.joinFiled = joinFiled;\n }\n form.form.table.push(table);\n break;\n }\n }\n }\n }\n function updateExecuteSql(v) {\n if (v === 0) {\n form.form.executeSql = sql_formatter__WEBPACK_IMPORTED_MODULE_8___default().format(form.form.executeSql, {\n language: 'sql',\n keywordCase: 'upper',\n indentStyle: 'tabularLeft'\n });\n } else {\n form.form.executeSql = form.form.executeSql.replace(/\\s+/g, \" \");\n }\n }\n function filedConfigClose(data) {\n if (!data) return;\n for (let j = 0; j < form.form.table.length; j++) {\n let obj = form.form.table[j];\n if (Object.keys(data).includes(obj.index)) {\n form.form.table[j].columnList = data[obj.index];\n }\n }\n setSql();\n }\n function setFieldEvent(row) {\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_4__.post)(http, \"/online/getTableSetFiled\", {\n sql: form.form.executeSql,\n definitionSql: form.form.definitionSql,\n dbName: addOrEditRootData.form.dbName,\n where: form.form.where,\n uuid: configData.form.uuid\n }, undefined, false).then(data => {\n row.columnList = Object.values(data.data[row.joinTable]);\n filedConfig.value.init(row);\n });\n }\n\n /**\r\n * 一键同步CURD\r\n */\n const syncCurd = () => {\n sync.value = true;\n syncTable();\n };\n function parseSqlToTables(sql) {\n // 标准化SQL,去除多余空格和换行\n let normalizedSql = sql.replace(/[\\n\\r\\s]+/g, ' ').trim();\n\n // 分割FROM后面的部分\n let fromPart = normalizedSql.split(/from/i)[1];\n let result = [{\n index: 't1',\n type: '主表',\n joinTable: '',\n joinFiled: '/'\n }];\n if (!fromPart) return result;\n let currentIndex = 1;\n\n // 分割所有JOIN(包括LEFT JOIN, RIGHT JOIN等)\n let parts = fromPart.split(/\\s+(?:left\\s+)?(?:right\\s+)?(?:inner\\s+)?join\\s+/i);\n\n // 处理主表\n let mainTablePart = parts[0].trim();\n let mainTableName = mainTablePart.split(/\\s+/)[0];\n result[0].joinTable = mainTableName;\n\n // 处理关联表\n for (let i = 1; i < parts.length; i++) {\n currentIndex++;\n let joinPart = parts[i].trim();\n\n // 获取JOIN类型\n let joinType = 'left';\n if (normalizedSql.toLowerCase().includes('right join')) {\n joinType = 'right';\n } else if (normalizedSql.toLowerCase().includes('inner join')) {\n joinType = 'inner';\n }\n\n // 分割ON条件\n let onPart = joinPart.split(/\\s+on\\s+/i);\n let joinTableName = onPart[0].trim().split(/\\s+/)[0];\n let joinFields = onPart[1] ? onPart[1].trim() : '';\n result.push({\n index: 't' + (currentIndex + 1),\n type: joinType,\n joinTable: joinTableName,\n joinFiled: joinFields\n });\n }\n return result;\n }\n const sqlParseTable = o => {\n if (configData.form.executeSql && configData.form.executeSql.toLowerCase().indexOf(\"from\") === -1) {\n return;\n }\n let tableData = parseSqlToTables(configData.form.executeSql);\n if (o) {\n tableData[0].deleteWhere = o.wheres;\n }\n form.form.table = tableData;\n };\n function remoteMethod() {\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_4__.get)(http, \"/online/getDBTableList\", {\n dbName: addOrEditRootData.form.dbName\n }).then(data => {\n dicData.joinTableDicData = data;\n });\n }\n function initDict() {\n for (const column of option.column) {\n if (column.dictCode) {\n column.dicData = dict.val(column.dictCode);\n }\n }\n }\n const emit = __emit; //声明 emits\n (0,vue__WEBPACK_IMPORTED_MODULE_3__.onMounted)(() => {\n remoteMethod();\n initDict();\n });\n __expose({\n setData,\n parseData,\n form\n });\n const __returned__ = {\n http,\n addOrEditRootData,\n dict,\n dicData,\n form,\n option,\n configData,\n parseData,\n setData,\n setTable,\n setSql,\n isSyncCurd,\n sync,\n syncTable,\n filedConfig,\n setFieldConfig,\n getTableNamesByFormSql,\n getTableComment,\n setFormTable,\n updateExecuteSql,\n filedConfigClose,\n setFieldEvent,\n syncCurd,\n parseSqlToTables,\n sqlParseTable,\n remoteMethod,\n initDict,\n emit,\n inject: vue__WEBPACK_IMPORTED_MODULE_3__.inject,\n reactive: vue__WEBPACK_IMPORTED_MODULE_3__.reactive,\n onMounted: vue__WEBPACK_IMPORTED_MODULE_3__.onMounted,\n ref: vue__WEBPACK_IMPORTED_MODULE_3__.ref,\n get get() {\n return _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_4__.get;\n },\n get post() {\n return _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_4__.post;\n },\n get setArrayObjectKeyValue() {\n return _utils_object__WEBPACK_IMPORTED_MODULE_5__.setArrayObjectKeyValue;\n },\n get storeDict() {\n return _store_dict__WEBPACK_IMPORTED_MODULE_6__.storeDict;\n },\n get ElMessage() {\n return element_plus__WEBPACK_IMPORTED_MODULE_7__.ElMessage;\n },\n get sqlFormatter() {\n return (sql_formatter__WEBPACK_IMPORTED_MODULE_8___default());\n },\n FieldConfig: _views_table_add_or_edit_config_field_config_index_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n LazyLoadSelect: _components_lazy_load_select_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"]\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://olp-table/./src/views/table/add-or-edit/config/base-config/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");
|
|
788
788
|
|
|
789
789
|
/***/ }),
|
|
790
790
|
|
|
@@ -817,7 +817,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core
|
|
|
817
817
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
818
818
|
|
|
819
819
|
"use strict";
|
|
820
|
-
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 vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _element_plus_icons_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @element-plus/icons-vue */ \"@element-plus/icons-vue\");\n/* harmony import */ var _element_plus_icons_vue__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_element_plus_icons_vue__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var vxe_table__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vxe-table */ \"vxe-table\");\n/* harmony import */ var vxe_table__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(vxe_table__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var xe_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! xe-utils */ \"./node_modules/xe-utils/index.js\");\n/* harmony import */ var xe_utils__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(xe_utils__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var sortablejs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! sortablejs */ \"./node_modules/sortablejs/modular/sortable.esm.js\");\n/* harmony import */ var _store_dict__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/store/dict */ \"./src/store/dict.js\");\n/* harmony import */ var _store_dictType__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/store/dictType */ \"./src/store/dictType.js\");\n/* harmony import */ var _views_table_add_or_edit_config_column_config_header_config_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/views/table/add-or-edit/config/column-config/header-config.vue */ \"./src/views/table/add-or-edit/config/column-config/header-config.vue\");\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n __name: 'index',\n props: {\n addVisible: {},\n editVisible: {}\n },\n emits: ['checkBoxChange'],\n setup(__props, {\n expose: __expose,\n emit: __emit\n }) {\n const props = __props;\n const show = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(false);\n const vexGridRef = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)();\n const headerConfig = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)();\n const dict = (0,_store_dict__WEBPACK_IMPORTED_MODULE_9__.storeDict)();\n const dictType = (0,_store_dictType__WEBPACK_IMPORTED_MODULE_10__.storeDictType)();\n function setShow(value) {\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.nextTick)(() => {\n show.value = value;\n updateSort();\n });\n }\n function setGroupByMin() {\n gridOptions.data.forEach(item => {\n if (item.groupToOtherProp != 1 && !item.groupTotalToOtherProp) {\n item.groupTotalToOtherProp = 'sum';\n }\n });\n }\n const http = (0,vue__WEBPACK_IMPORTED_MODULE_4__.inject)('http');\n dict.init(http);\n dictType.init(http);\n function headerConfigShow() {\n if (gridOptions.data) {\n let tableConfigId = gridOptions.data[0].parentId;\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_12__.get)(http, '/online/tableConfigColumn/queryGroupByParentId', {\n id: tableConfigId\n }).then(res => {\n headerConfig.value.setColumn(res);\n });\n }\n }\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.watch)(props, () => {\n for (let column of gridOptions.columns) {\n if (column.prop == 'addDisplay' || column.field == 'addDisplay') {\n if (!column.visible && props.addVisible) {\n checkBoxAllChange(column.field);\n }\n column.visible = props.addVisible;\n }\n if (column.prop == 'editDisplay' || column.field == 'editDisplay') {\n if (!column.visible && props.editVisible) {\n checkBoxAllChange(column.field);\n }\n column.visible = props.editVisible;\n }\n }\n if (show.value) {\n vexGridRef.value.loadColumn(gridOptions.columns);\n }\n }, {\n deep: true\n });\n const checkBoxAllChange = field => {\n emits('checkBoxAll', {\n checkBoxName: field == 'editDisplay' ? 'edit' : 'add',\n isAll: true,\n list: gridOptions.data.filter(row => row[field] == '1')\n });\n };\n //表头全选框更新\n const headerClick = column => {\n if (column.field != 'columnAuth' && column.field == 'visible') {\n let columnField = vexGridRef.value.getColumnByField('columnAuth');\n columnField.params.all = column.params.all;\n headerClick(columnField);\n }\n gridOptions.data.forEach(item => {\n item[column.field] = column.params.all ? '1' : '0';\n });\n if (column.params.all == '0') {\n //全不选的时候\n if (column.field == 'addDisplay') {\n emits(\"checkBoxAll\", {\n checkBoxName: \"add\",\n isAll: false,\n list: gridOptions.data\n });\n } else if (column.field == 'editDisplay') {\n emits(\"checkBoxAll\", {\n checkBoxName: \"edit\",\n isAll: false,\n list: gridOptions.data\n });\n }\n } else if (column.params.all == '1') {\n //全选\n if (column.field == 'addDisplay') {\n emits(\"checkBoxAll\", {\n checkBoxName: \"add\",\n isAll: true,\n list: gridOptions.data\n });\n } else if (column.field == 'editDisplay') {\n emits(\"checkBoxAll\", {\n checkBoxName: \"edit\",\n isAll: true,\n list: gridOptions.data\n });\n }\n }\n };\n //表格多选框更新\n const checkBoxClick = (column, row) => {\n emits(\"checkBoxChange\", {\n row: row,\n column: column\n });\n if (column.field != 'columnAuth' && column.field == 'visible') {\n let columnField = vexGridRef.value.getColumnByField('columnAuth');\n row.columnAuth = row.visible;\n checkBoxClick(columnField, row);\n }\n let f = true;\n gridOptions.data.forEach(item => {\n if (item[column.field] != '1') {\n f = false;\n }\n });\n column.params.all = f;\n };\n\n //拿到数据\n const setData = data => {\n if (!data) {\n return;\n }\n gridOptions.data = data;\n //查看多选框是否多选\n gridOptions.columns.forEach(item => {\n if (item.slots && item.slots.default == \"checkedBox_default\") {\n //默认全选状态\n let flag = gridOptions.data.length > 0;\n gridOptions.data.forEach(row => {\n if (row[item.field] != \"1\") {\n //有某个参数没选择则不是全选的状态\n flag = false;\n }\n });\n item.params.all = flag;\n }\n });\n };\n\n //新增新字段\n const onAdd = () => {\n let newBtn = {\n visible: 0,\n form: {},\n sort: gridOptions.data.length + 1\n };\n gridOptions.data.push(newBtn);\n vexGridRef.value.loadData(gridOptions.data);\n setTimeout(() => {\n vexGridRef.value.scrollToRow(gridOptions.data[newBtn.sort - 1], null);\n }, 500);\n };\n\n //删除数据\n const removeRowEvent = row => {\n vxe_table__WEBPACK_IMPORTED_MODULE_6___default().modal.confirm('您确定要删除该数据?').then(() => {\n gridOptions.data = gridOptions.data.filter(item => item._X_ROW_KEY != row._X_ROW_KEY);\n handleCheckBoxClick(row);\n }).catch(() => {});\n };\n const handleCheckBoxClick = row => {\n for (let column of gridOptions.columns) {\n if (column.field == 'addDisplay' || column.field == 'editDisplay') {\n row.addDisplay = undefined;\n row.editDisplay = undefined;\n checkBoxClick(column, row);\n }\n }\n };\n\n //表更新\n const updateData = data => {\n let list = gridOptions.data;\n // 字段映射hash表\n let map = {};\n for (let item of list) {\n if (item.visible == 1) {\n item.visible = \"1\";\n }\n map[item.asName] = item;\n }\n gridOptions.data = [];\n if (!data) {\n return;\n }\n data.forEach((item, index) => {\n if (map[item.prop]) {\n // 存在字段不覆盖\n gridOptions.data.push(map[item.prop]);\n return;\n }\n if (!item.column_comment || item.column_comment.toString().trim()) {\n item.column_comment = item.prop;\n }\n let data = {\n field: item.prop,\n title: item.column_comment,\n tableField: item.column_name,\n asName: item.prop,\n sort: index,\n visible: \"1\",\n form: {},\n label: item.column_comment\n };\n //映射表更新返回的字段\n gridOptions.data.push(data);\n });\n // title格式化\n updateTitleAndWidth();\n // 列权限更新\n updateColumnAuth();\n };\n const visible = item => {\n return item.visible && '1' == item.visible;\n };\n const setAddDisplay = value => {\n let data = [];\n gridOptions.data.forEach(item => {\n if (visible(item)) {\n item.addDisplay = value;\n data.push(item);\n }\n });\n doEmits('add', data);\n };\n const doEmits = (name, data) => {\n emits('checkBoxAll', {\n checkBoxName: name,\n isAll: true,\n list: data\n });\n };\n const setEditDisplay = value => {\n let data = [];\n gridOptions.data.forEach(item => {\n if (visible(item)) {\n item.editDisplay = value;\n data.push(item);\n }\n });\n doEmits('edit', data);\n };\n const updateColumnAuth = () => {\n gridOptions.data.forEach(item => {\n if (item.visible == '0') {\n item.columnAuth = item.visible;\n }\n });\n };\n const updateTitleAndWidth = () => {\n gridOptions.data.forEach(item => {\n let index = -1;\n if (item.title) {\n item.title = item.title.trim();\n }\n if (item.title && (index = item.title.indexOf(' ')) != -1) {\n item.title = item.title.substring(0, index);\n }\n if (item.title && (index = item.title.indexOf('(')) >= 1) {\n item.title = item.title.substring(0, index);\n }\n if (item.title && (index = item.title.lastIndexOf('(')) >= 1) {\n item.title = item.title.substring(0, index);\n }\n });\n };\n\n //表格配置项\n const gridOptions = (0,vue__WEBPACK_IMPORTED_MODULE_4__.reactive)({\n scrollX: {\n enabled: true,\n gt: 1\n },\n scrollY: {\n enabled: true,\n gt: 1\n },\n border: true,\n showHeaderOverflow: true,\n showOverflow: true,\n height: 620,\n align: \"center\",\n size: 'mini',\n rowConfig: {\n isHover: true,\n isCurrent: true\n },\n editConfig: {\n trigger: 'click',\n mode: 'cell'\n },\n toolbarConfig: {\n custom: true,\n zoom: true,\n slots: {\n buttons: 'toolbar_buttons'\n },\n perfect: true\n },\n columns: [\n /* {\r\n type: \"expand\",\r\n title: \"其他属性\",\r\n width: 80,\r\n fixed: \"left\",\r\n slots: {\r\n content: 'content',\r\n },\r\n },*/\n {\n type: \"seq\",\n width: 60,\n title: \"序号\",\n slots: {\n default: 'seq'\n }\n }, {\n title: '字段',\n field: 'field',\n fixed: 'left',\n width: 200,\n editRender: {\n props: {\n clearable: true\n },\n name: '$input'\n },\n filters: [{\n data: ''\n }],\n filterMethod({\n option,\n row,\n column\n }) {\n if (option.data) {\n return xe_utils__WEBPACK_IMPORTED_MODULE_7___default().toValueString(row[column.field]).toLowerCase().indexOf(option.data) > -1;\n }\n return true;\n },\n slots: {\n filter: 'label_filter'\n }\n }, {\n title: '字段描述',\n field: 'label',\n fixed: 'left',\n width: 200,\n filters: [{\n data: ''\n }],\n filterMethod({\n option,\n row,\n column\n }) {\n if (option.data) {\n return xe_utils__WEBPACK_IMPORTED_MODULE_7___default().toValueString(row[column.field]).toLowerCase().indexOf(option.data) > -1;\n }\n return true;\n },\n slots: {\n filter: 'label_filter'\n }\n }, {\n title: '标题',\n field: 'title',\n width: 200,\n editRender: {\n props: {\n clearable: true\n },\n name: '$input'\n },\n filters: [{\n data: ''\n }],\n filterMethod({\n option,\n row,\n column\n }) {\n if (option.data) {\n return xe_utils__WEBPACK_IMPORTED_MODULE_7___default().toValueString(row[column.field]).toLowerCase().indexOf(option.data) > -1;\n }\n return true;\n },\n slots: {\n filter: 'label_filter'\n }\n }, {\n title: '显示',\n field: 'visible',\n align: 'center',\n width: 80,\n params: {\n all: null\n },\n slots: {\n header: 'checkedBox_header',\n default: 'checkedBox_default'\n }\n }, {\n title: '新增',\n field: 'addDisplay',\n align: 'center',\n visible: props.addVisible,\n params: {\n all: 1\n },\n width: 80,\n slots: {\n header: 'checkedBox_header',\n default: 'checkedBox_default'\n }\n }, {\n title: '编辑',\n field: 'editDisplay',\n align: 'center',\n width: 80,\n visible: props.editVisible,\n params: {\n all: 0\n },\n slots: {\n header: 'checkedBox_header',\n default: 'checkedBox_default'\n }\n }, {\n title: '不保存',\n field: 'tableSaveToOtherProp',\n width: 100,\n params: {\n all: 0\n },\n slots: {\n default: 'checkedBox_default'\n }\n }, {\n title: '排序',\n field: 'sortable',\n align: 'center',\n width: 100,\n params: {\n all: 0,\n dictCode: 'order_by_type'\n },\n editRender: {\n props: {\n clearable: true,\n filterable: true\n },\n name: '$select',\n options: dict.val('order_by_type')\n }\n }, {\n title: '数据字典',\n field: 'dictCode',\n params: {\n dictCode: 'dictCode'\n },\n width: 200,\n editRender: {\n props: {\n clearable: true,\n filterable: true\n },\n name: '$select',\n options: dictType.val()\n }\n // editRender: {props: {clearable: true, filterable: true}, name: 'input', options: dictType.val()}\n }, {\n title: '搜索类型',\n field: 'selectType',\n params: {\n dictCode: 'select_type'\n },\n width: 120,\n editRender: {\n props: {\n clearable: true,\n filterable: true\n },\n name: '$select',\n options: dict.val('select_type')\n }\n }, {\n title: '控件类型',\n field: 'selectDom',\n /*params: {\r\n dictCode: 'select_dom'\r\n },*/\n width: 180,\n editRender: {\n props: {\n clearable: true,\n filterable: true\n },\n name: '$select',\n options: dict.val('select_dom')\n }\n /*slots: {\r\n default: 'select_default'\r\n },*/\n }, {\n title: '固定',\n field: 'fixed',\n params: {\n dictCode: 'table_fixed'\n },\n editRender: {\n props: {\n clearable: true\n },\n name: '$select',\n options: dict.val('table_fixed')\n },\n width: 80\n }, {\n title: '表尾',\n field: 'totalToOtherProp',\n width: 100,\n params: {\n all: null\n },\n editRender: {\n props: {\n clearable: true,\n filterable: true\n },\n name: '$select',\n options: dict.val('online_calculation_type')\n }\n }, {\n title: '分组',\n field: 'groupToOtherProp',\n width: 100,\n params: {\n all: null\n },\n slots: {\n default: 'checkedBox_default'\n }\n }, {\n title: '分组合计',\n field: 'groupTotalToOtherProp',\n width: 100,\n editRender: {\n props: {\n clearable: true,\n filterable: true\n },\n name: '$select',\n options: dict.val('online_calculation_type')\n }\n }, {\n title: '行合并',\n field: 'mergeFlag',\n width: 100,\n params: {\n all: null\n },\n slots: {\n header: 'checkedBox_header',\n default: 'checkedBox_default'\n }\n }, {\n title: '可列配置',\n field: 'columnAuth',\n align: 'center',\n width: 80,\n params: {\n all: null\n },\n slots: {\n header: 'checkedBox_header',\n default: 'checkedBox_default'\n }\n }, {\n title: '对齐',\n field: 'align',\n params: {\n dictCode: 'align'\n },\n editRender: {\n props: {\n clearable: true\n },\n name: '$select',\n options: dict.val('align')\n },\n width: 80\n }, {\n title: '列宽',\n width: 80,\n field: 'width',\n editRender: {\n props: {\n clearable: true\n },\n name: '$input'\n }\n }, {\n title: '列宽拖动',\n field: 'resizable',\n width: 80,\n params: {\n all: null\n },\n slots: {\n header: 'checkedBox_header',\n default: 'checkedBox_default'\n }\n }, {\n title: 'formatter',\n field: 'formatter',\n width: 168,\n slots: {\n default: 'dialog_default'\n }\n }, {\n title: '搜索顺序',\n field: 'searchSort',\n width: 100,\n editRender: {\n name: '$input',\n props: {\n type: 'number'\n }\n }\n }, {\n title: '搜索默认值',\n field: 'valueSEARCHToOtherProp',\n width: 100,\n editRender: {\n name: '$input'\n }\n }, {\n title: '不可清空',\n field: 'clearableSEARCHToOtherProp',\n width: 100,\n params: {},\n slots: {\n default: 'checkedBox_default'\n }\n }, {\n title: '时间',\n field: 'toDateSEARCHToOtherProp',\n width: 80,\n params: {},\n slots: {\n default: 'checkedBox_default'\n }\n }, {\n title: '搜索span',\n field: 'spanSEARCHToOtherProp',\n width: 110,\n editRender: {\n name: '$input',\n props: {\n clearable: true,\n min: 2,\n max: 24,\n type: 'number'\n }\n }\n }, {\n title: '搜索label',\n field: 'titleSEARCHToOtherProp',\n width: 120,\n editRender: {\n name: '$input',\n props: {\n clearable: true\n }\n }\n }, {\n title: '搜索别名',\n field: 'tableNameSEARCHToOtherProp',\n width: 100,\n editRender: {\n name: '$input',\n props: {\n clearable: true\n }\n }\n }, {\n title: '操作',\n width: 100,\n fixed: 'right',\n align: 'center',\n slots: {\n default: 'operate'\n }\n }, {\n title: '表尾自定义',\n field: 'totalToOtherProp',\n width: 100,\n params: {\n all: null\n },\n slots: {\n default: 'totalToOtherProp_default'\n }\n }],\n data: [],\n groupColumns: []\n });\n //表格拖动更新\n const updateSort = () => {\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.nextTick)(() => {\n if (!vexGridRef.value) {\n return;\n }\n //el绑定元素需要找到vxe的DOM下的tbody元素\n sortablejs__WEBPACK_IMPORTED_MODULE_8__[\"default\"].create(vexGridRef.value.$el.querySelector('.body--wrapper>.vxe-table--body tbody'), {\n animation: 200,\n //拖拽动画过渡时间\n sort: true,\n handle: '.col--seq',\n //必须设置该属性,属性值为你要拖动的该单元格的样式名\n // 元素被选中\n onStart: function (/**Event*/evt) {\n //关闭所有展开行\n vexGridRef.value.clearRowExpand();\n evt.oldIndex; // element index within parent\n },\n // 结束拖拽\n onEnd: function (/**Event*/{\n oldIndex,\n newIndex,\n item\n }) {\n //evt.to; // 目标列表\n //evt.from; // 来自以前的列表\n //evt.oldIndex; // 元素在旧父元素中的旧索引\n //evt.newIndex; // 元素在新父元素中的新索引\n //evt.clone // 克隆元素\n //evt.pullMode; // 当项在另一个可排序中时:\"clone\"(克隆),\"true\"(移动)\n let rowNode = vexGridRef.value.getRowNode(item);\n newIndex = rowNode.index - oldIndex + newIndex;\n const list = JSON.parse(JSON.stringify(gridOptions.data)); //保存旧数据\n const targetRow = list.splice(rowNode.index, 1)[0]; //保存移动的元素并删除原列表中移动的元素\n list.splice(newIndex, 0, targetRow); //插入到目标新索引中\n const newsArr = JSON.parse(JSON.stringify(list)); //重新赋值数组\n //将新数据重新排序\n for (let i = 0; i < newsArr.length; i++) {\n newsArr[i].sort = i + 1;\n }\n gridOptions.data = newsArr;\n }\n });\n });\n };\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.onMounted)(() => {\n updateSort();\n });\n const enterFilterEvent = ({\n $panel\n }) => {\n $panel.confirmFilter();\n };\n\n // 子组件调用父组件\n const emits = __emit; //声明 emits\n function getColumns() {\n return gridOptions.data;\n }\n function getGroupColumnData() {\n return gridOptions.groupColumns;\n }\n function setGroupColumnData(value) {\n gridOptions.groupColumns = value.groupColumns;\n }\n\n // 对外暴露\n __expose({\n setData,\n updateData,\n gridOptions,\n vexGridRef,\n getColumns,\n setAddDisplay,\n setEditDisplay,\n setShow,\n getGroupColumnData\n });\n const __returned__ = {\n props,\n show,\n vexGridRef,\n headerConfig,\n dict,\n dictType,\n setShow,\n setGroupByMin,\n http,\n headerConfigShow,\n checkBoxAllChange,\n headerClick,\n checkBoxClick,\n setData,\n onAdd,\n removeRowEvent,\n handleCheckBoxClick,\n updateData,\n visible,\n setAddDisplay,\n doEmits,\n setEditDisplay,\n updateColumnAuth,\n updateTitleAndWidth,\n gridOptions,\n updateSort,\n enterFilterEvent,\n emits,\n getColumns,\n getGroupColumnData,\n setGroupColumnData,\n ref: vue__WEBPACK_IMPORTED_MODULE_4__.ref,\n reactive: vue__WEBPACK_IMPORTED_MODULE_4__.reactive,\n onMounted: vue__WEBPACK_IMPORTED_MODULE_4__.onMounted,\n nextTick: vue__WEBPACK_IMPORTED_MODULE_4__.nextTick,\n watch: vue__WEBPACK_IMPORTED_MODULE_4__.watch,\n inject: vue__WEBPACK_IMPORTED_MODULE_4__.inject,\n get Delete() {\n return _element_plus_icons_vue__WEBPACK_IMPORTED_MODULE_5__.Delete;\n },\n get VXETable() {\n return (vxe_table__WEBPACK_IMPORTED_MODULE_6___default());\n },\n get XEUtils() {\n return (xe_utils__WEBPACK_IMPORTED_MODULE_7___default());\n },\n get Sortable() {\n return sortablejs__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\n },\n get storeDict() {\n return _store_dict__WEBPACK_IMPORTED_MODULE_9__.storeDict;\n },\n get storeDictType() {\n return _store_dictType__WEBPACK_IMPORTED_MODULE_10__.storeDictType;\n },\n HeaderConfig: _views_table_add_or_edit_config_column_config_header_config_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n get get() {\n return _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_12__.get;\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://olp-table/./src/views/table/add-or-edit/config/column-config/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");
|
|
820
|
+
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 vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _element_plus_icons_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @element-plus/icons-vue */ \"@element-plus/icons-vue\");\n/* harmony import */ var _element_plus_icons_vue__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_element_plus_icons_vue__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var vxe_table__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vxe-table */ \"vxe-table\");\n/* harmony import */ var vxe_table__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(vxe_table__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var xe_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! xe-utils */ \"./node_modules/xe-utils/index.js\");\n/* harmony import */ var xe_utils__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(xe_utils__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var sortablejs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! sortablejs */ \"./node_modules/sortablejs/modular/sortable.esm.js\");\n/* harmony import */ var _store_dict__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/store/dict */ \"./src/store/dict.js\");\n/* harmony import */ var _store_dictType__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/store/dictType */ \"./src/store/dictType.js\");\n/* harmony import */ var _views_table_add_or_edit_config_column_config_header_config_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/views/table/add-or-edit/config/column-config/header-config.vue */ \"./src/views/table/add-or-edit/config/column-config/header-config.vue\");\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n __name: 'index',\n props: {\n addVisible: {},\n editVisible: {}\n },\n emits: ['checkBoxChange'],\n setup(__props, {\n expose: __expose,\n emit: __emit\n }) {\n const props = __props;\n const show = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(false);\n const vexGridRef = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)();\n const headerConfig = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)();\n const dict = (0,_store_dict__WEBPACK_IMPORTED_MODULE_9__.storeDict)();\n const dictType = (0,_store_dictType__WEBPACK_IMPORTED_MODULE_10__.storeDictType)();\n function setShow(value) {\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.nextTick)(() => {\n show.value = value;\n updateSort();\n });\n }\n function setGroupByMin() {\n gridOptions.data.forEach(item => {\n if (item.groupToOtherProp != 1 && !item.groupTotalToOtherProp) {\n item.groupTotalToOtherProp = 'sum';\n }\n });\n }\n const http = (0,vue__WEBPACK_IMPORTED_MODULE_4__.inject)('http');\n dict.init(http);\n dictType.init(http);\n function headerConfigShow() {\n if (gridOptions.data) {\n let tableConfigId = gridOptions.data[0].parentId;\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_12__.get)(http, '/online/tableConfigColumn/queryGroupByParentId', {\n id: tableConfigId\n }).then(res => {\n headerConfig.value.setColumn(res);\n });\n }\n }\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.watch)(props, () => {\n for (let column of gridOptions.columns) {\n if (column.prop == 'addDisplay' || column.field == 'addDisplay') {\n if (!column.visible && props.addVisible) {\n checkBoxAllChange(column.field);\n }\n column.visible = props.addVisible;\n }\n if (column.prop == 'editDisplay' || column.field == 'editDisplay') {\n if (!column.visible && props.editVisible) {\n checkBoxAllChange(column.field);\n }\n column.visible = props.editVisible;\n }\n }\n if (show.value) {\n vexGridRef.value.loadColumn(gridOptions.columns);\n }\n }, {\n deep: true\n });\n const checkBoxAllChange = field => {\n emits('checkBoxAll', {\n checkBoxName: field == 'editDisplay' ? 'edit' : 'add',\n isAll: true,\n list: gridOptions.data.filter(row => row[field] == '1')\n });\n };\n //表头全选框更新\n const headerClick = column => {\n if (column.field != 'columnAuth' && column.field == 'visible') {\n let columnField = vexGridRef.value.getColumnByField('columnAuth');\n columnField.params.all = column.params.all;\n headerClick(columnField);\n }\n gridOptions.data.forEach(item => {\n item[column.field] = column.params.all ? '1' : '0';\n });\n if (column.params.all == '0') {\n //全不选的时候\n if (column.field == 'addDisplay') {\n emits(\"checkBoxAll\", {\n checkBoxName: \"add\",\n isAll: false,\n list: gridOptions.data\n });\n } else if (column.field == 'editDisplay') {\n emits(\"checkBoxAll\", {\n checkBoxName: \"edit\",\n isAll: false,\n list: gridOptions.data\n });\n }\n } else if (column.params.all == '1') {\n //全选\n if (column.field == 'addDisplay') {\n emits(\"checkBoxAll\", {\n checkBoxName: \"add\",\n isAll: true,\n list: gridOptions.data\n });\n } else if (column.field == 'editDisplay') {\n emits(\"checkBoxAll\", {\n checkBoxName: \"edit\",\n isAll: true,\n list: gridOptions.data\n });\n }\n }\n };\n //表格多选框更新\n const checkBoxClick = (column, row) => {\n emits(\"checkBoxChange\", {\n row: row,\n column: column\n });\n if (column.field != 'columnAuth' && column.field == 'visible') {\n let columnField = vexGridRef.value.getColumnByField('columnAuth');\n row.columnAuth = row.visible;\n checkBoxClick(columnField, row);\n }\n let f = true;\n gridOptions.data.forEach(item => {\n if (item[column.field] != '1') {\n f = false;\n }\n });\n column.params.all = f;\n };\n\n //拿到数据\n const setData = data => {\n if (!data) {\n return;\n }\n gridOptions.data = data;\n //查看多选框是否多选\n gridOptions.columns.forEach(item => {\n if (item.slots && item.slots.default == \"checkedBox_default\") {\n //默认全选状态\n let flag = gridOptions.data.length > 0;\n gridOptions.data.forEach(row => {\n if (row[item.field] != \"1\") {\n //有某个参数没选择则不是全选的状态\n flag = false;\n }\n });\n item.params.all = flag;\n }\n });\n };\n\n //新增新字段\n const onAdd = () => {\n let newBtn = {\n visible: 0,\n form: {},\n sort: gridOptions.data.length + 1\n };\n gridOptions.data.push(newBtn);\n vexGridRef.value.loadData(gridOptions.data);\n setTimeout(() => {\n vexGridRef.value.scrollToRow(gridOptions.data[newBtn.sort - 1], null);\n }, 500);\n };\n\n //删除数据\n const removeRowEvent = row => {\n vxe_table__WEBPACK_IMPORTED_MODULE_6___default().modal.confirm('您确定要删除该数据?').then(() => {\n gridOptions.data = gridOptions.data.filter(item => item._X_ROW_KEY != row._X_ROW_KEY);\n handleCheckBoxClick(row);\n }).catch(() => {});\n };\n const handleCheckBoxClick = row => {\n for (let column of gridOptions.columns) {\n if (column.field == 'addDisplay' || column.field == 'editDisplay') {\n row.addDisplay = undefined;\n row.editDisplay = undefined;\n checkBoxClick(column, row);\n }\n }\n };\n\n //表更新\n const updateData = data => {\n let list = gridOptions.data;\n // 字段映射hash表\n let map = {};\n for (let item of list) {\n if (item.visible == 1) {\n item.visible = \"1\";\n }\n map[item.asName] = item;\n }\n gridOptions.data = [];\n if (!data) {\n return;\n }\n data.forEach((item, index) => {\n if (map[item.prop]) {\n // 存在字段不覆盖\n gridOptions.data.push(map[item.prop]);\n return;\n }\n if (!item.column_comment || item.column_comment.toString().trim()) {\n item.column_comment = item.prop;\n }\n let data = {\n field: item.prop,\n title: item.column_comment,\n tableField: item.column_name,\n asName: item.prop,\n sort: index,\n visible: \"1\",\n form: {},\n label: item.column_comment\n };\n //映射表更新返回的字段\n gridOptions.data.push(data);\n });\n // title格式化\n updateTitleAndWidth();\n // 列权限更新\n updateColumnAuth();\n };\n const visible = item => {\n return item.visible && '1' == item.visible;\n };\n const setAddDisplay = value => {\n let data = [];\n gridOptions.data.forEach(item => {\n if (visible(item)) {\n item.addDisplay = value;\n data.push(item);\n }\n });\n doEmits('add', data);\n };\n const doEmits = (name, data) => {\n emits('checkBoxAll', {\n checkBoxName: name,\n isAll: true,\n list: data\n });\n };\n const setEditDisplay = value => {\n let data = [];\n gridOptions.data.forEach(item => {\n if (visible(item)) {\n item.editDisplay = value;\n data.push(item);\n }\n });\n doEmits('edit', data);\n };\n const updateColumnAuth = () => {\n gridOptions.data.forEach(item => {\n if (item.visible == '0') {\n item.columnAuth = item.visible;\n }\n });\n };\n const updateTitleAndWidth = () => {\n gridOptions.data.forEach(item => {\n let index = -1;\n if (item.title) {\n item.title = item.title.trim();\n }\n if (item.title && (index = item.title.indexOf(' ')) != -1) {\n item.title = item.title.substring(0, index);\n }\n if (item.title && (index = item.title.indexOf('(')) >= 1) {\n item.title = item.title.substring(0, index);\n }\n if (item.title && (index = item.title.lastIndexOf('(')) >= 1) {\n item.title = item.title.substring(0, index);\n }\n });\n };\n\n //表格配置项\n const gridOptions = (0,vue__WEBPACK_IMPORTED_MODULE_4__.reactive)({\n scrollX: {\n enabled: true,\n gt: 1\n },\n scrollY: {\n enabled: true,\n gt: 1\n },\n border: true,\n showHeaderOverflow: true,\n showOverflow: true,\n height: 620,\n align: \"center\",\n size: 'mini',\n rowConfig: {\n isHover: true,\n isCurrent: true\n },\n editConfig: {\n trigger: 'click',\n mode: 'cell'\n },\n toolbarConfig: {\n custom: true,\n zoom: true,\n slots: {\n buttons: 'toolbar_buttons'\n },\n perfect: true\n },\n columns: [\n /* {\r\n type: \"expand\",\r\n title: \"其他属性\",\r\n width: 80,\r\n fixed: \"left\",\r\n slots: {\r\n content: 'content',\r\n },\r\n },*/\n {\n type: \"seq\",\n width: 60,\n title: \"序号\",\n slots: {\n default: 'seq'\n }\n }, {\n title: '字段',\n field: 'field',\n fixed: 'left',\n width: 200,\n editRender: {\n props: {\n clearable: true\n },\n name: '$input'\n },\n filters: [{\n data: ''\n }],\n filterMethod({\n option,\n row,\n column\n }) {\n if (option.data) {\n return xe_utils__WEBPACK_IMPORTED_MODULE_7___default().toValueString(row[column.field]).toLowerCase().indexOf(option.data) > -1;\n }\n return true;\n },\n slots: {\n filter: 'label_filter'\n }\n }, {\n title: '字段描述',\n field: 'label',\n fixed: 'left',\n width: 200,\n filters: [{\n data: ''\n }],\n filterMethod({\n option,\n row,\n column\n }) {\n if (option.data) {\n return xe_utils__WEBPACK_IMPORTED_MODULE_7___default().toValueString(row[column.field]).toLowerCase().indexOf(option.data) > -1;\n }\n return true;\n },\n slots: {\n filter: 'label_filter'\n }\n }, {\n title: '标题',\n field: 'title',\n width: 200,\n editRender: {\n props: {\n clearable: true\n },\n name: '$input'\n },\n filters: [{\n data: ''\n }],\n filterMethod({\n option,\n row,\n column\n }) {\n if (option.data) {\n return xe_utils__WEBPACK_IMPORTED_MODULE_7___default().toValueString(row[column.field]).toLowerCase().indexOf(option.data) > -1;\n }\n return true;\n },\n slots: {\n filter: 'label_filter'\n }\n }, {\n title: '显示',\n field: 'visible',\n align: 'center',\n width: 80,\n params: {\n all: null\n },\n slots: {\n header: 'checkedBox_header',\n default: 'checkedBox_default'\n }\n }, {\n title: '新增',\n field: 'addDisplay',\n align: 'center',\n visible: props.addVisible,\n params: {\n all: 1\n },\n width: 80,\n slots: {\n header: 'checkedBox_header',\n default: 'checkedBox_default'\n }\n }, {\n title: '编辑',\n field: 'editDisplay',\n align: 'center',\n width: 80,\n visible: props.editVisible,\n params: {\n all: 0\n },\n slots: {\n header: 'checkedBox_header',\n default: 'checkedBox_default'\n }\n }, {\n title: '不保存',\n field: 'tableSaveToOtherProp',\n width: 100,\n params: {\n all: 0\n },\n slots: {\n default: 'checkedBox_default'\n }\n }, {\n title: '排序',\n field: 'sortable',\n align: 'center',\n width: 100,\n params: {\n all: 0,\n dictCode: 'order_by_type'\n },\n editRender: {\n props: {\n clearable: true,\n filterable: true\n },\n name: '$select',\n options: dict.val('order_by_type')\n }\n }, {\n title: '数据字典',\n field: 'dictCode',\n params: {\n dictCode: 'dictCode'\n },\n width: 200,\n editRender: {\n props: {\n clearable: true,\n filterable: true\n },\n name: '$select',\n options: dictType.val()\n }\n // editRender: {props: {clearable: true, filterable: true}, name: 'input', options: dictType.val()}\n }, {\n title: '搜索类型',\n field: 'selectType',\n params: {\n dictCode: 'select_type'\n },\n width: 120,\n editRender: {\n props: {\n clearable: true,\n filterable: true\n },\n name: '$select',\n options: dict.val('select_type')\n }\n }, {\n title: '固定',\n field: 'fixed',\n params: {\n dictCode: 'table_fixed'\n },\n editRender: {\n props: {\n clearable: true,\n filterable: true\n },\n name: '$select',\n options: dict.val('table_fixed')\n },\n width: 80\n }, {\n title: '控件类型',\n field: 'selectDom',\n /*params: {\r\n dictCode: 'select_dom'\r\n },*/\n width: 180,\n editRender: {\n props: {\n clearable: true,\n filterable: true\n },\n name: '$select',\n options: dict.val('select_dom')\n }\n /*slots: {\r\n default: 'select_default'\r\n },*/\n }, {\n title: '表尾',\n field: 'totalToOtherProp',\n width: 100,\n editRender: {\n props: {\n clearable: true,\n filterable: true\n },\n name: '$select',\n options: dict.val('online_calculation_type')\n }\n }, {\n title: '分组合计',\n field: 'groupTotalToOtherProp',\n width: 100,\n editRender: {\n props: {\n clearable: true,\n filterable: true\n },\n name: '$select',\n options: dict.val('online_calculation_type')\n }\n }, {\n title: '分组',\n field: 'groupToOtherProp',\n width: 100,\n params: {\n all: null\n },\n slots: {\n default: 'checkedBox_default'\n }\n }, {\n title: '行合并',\n field: 'mergeFlag',\n width: 100,\n params: {\n all: null\n },\n slots: {\n header: 'checkedBox_header',\n default: 'checkedBox_default'\n }\n }, {\n title: '可列配置',\n field: 'columnAuth',\n align: 'center',\n width: 80,\n params: {\n all: null\n },\n slots: {\n header: 'checkedBox_header',\n default: 'checkedBox_default'\n }\n }, {\n title: '对齐',\n field: 'align',\n params: {\n dictCode: 'align'\n },\n editRender: {\n props: {\n clearable: true\n },\n name: '$select',\n options: dict.val('align')\n },\n width: 80\n }, {\n title: '列宽',\n width: 80,\n field: 'width',\n editRender: {\n props: {\n clearable: true\n },\n name: '$input'\n }\n }, {\n title: '列宽拖动',\n field: 'resizable',\n width: 80,\n params: {\n all: null\n },\n slots: {\n header: 'checkedBox_header',\n default: 'checkedBox_default'\n }\n }, {\n title: 'formatter',\n field: 'formatter',\n width: 168,\n slots: {\n default: 'dialog_default'\n }\n }, {\n title: '搜索顺序',\n field: 'searchSort',\n width: 100,\n editRender: {\n name: '$input',\n props: {\n type: 'number'\n }\n }\n }, {\n title: '搜索默认值',\n field: 'valueSEARCHToOtherProp',\n width: 100,\n editRender: {\n name: '$input'\n }\n }, {\n title: '不可清空',\n field: 'clearableSEARCHToOtherProp',\n width: 100,\n params: {},\n slots: {\n default: 'checkedBox_default'\n }\n }, {\n title: '时间',\n field: 'toDateSEARCHToOtherProp',\n width: 80,\n params: {},\n slots: {\n default: 'checkedBox_default'\n }\n }, {\n title: '搜索span',\n field: 'spanSEARCHToOtherProp',\n width: 110,\n editRender: {\n name: '$input',\n props: {\n clearable: true,\n min: 2,\n max: 24,\n type: 'number'\n }\n }\n }, {\n title: '搜索label',\n field: 'titleSEARCHToOtherProp',\n width: 120,\n editRender: {\n name: '$input',\n props: {\n clearable: true\n }\n }\n }, {\n title: '搜索字段',\n field: 'fieldNameSEARCHToOtherProp',\n width: 100,\n editRender: {\n name: '$input',\n props: {\n clearable: true\n }\n }\n }, {\n title: '搜索表别名',\n field: 'tableNameSEARCHToOtherProp',\n width: 100,\n editRender: {\n name: '$input',\n props: {\n clearable: true\n }\n }\n }, {\n title: '操作',\n width: 100,\n fixed: 'right',\n align: 'center',\n slots: {\n default: 'operate'\n }\n }, {\n title: '表尾自定义',\n field: 'totalToOtherProp',\n width: 100,\n params: {\n all: null\n },\n slots: {\n default: 'totalToOtherProp_default'\n }\n }],\n data: [],\n groupColumns: []\n });\n //表格拖动更新\n const updateSort = () => {\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.nextTick)(() => {\n if (!vexGridRef.value) {\n return;\n }\n //el绑定元素需要找到vxe的DOM下的tbody元素\n sortablejs__WEBPACK_IMPORTED_MODULE_8__[\"default\"].create(vexGridRef.value.$el.querySelector('.body--wrapper>.vxe-table--body tbody'), {\n animation: 200,\n //拖拽动画过渡时间\n sort: true,\n handle: '.col--seq',\n //必须设置该属性,属性值为你要拖动的该单元格的样式名\n // 元素被选中\n onStart: function (/**Event*/evt) {\n //关闭所有展开行\n vexGridRef.value.clearRowExpand();\n evt.oldIndex; // element index within parent\n },\n // 结束拖拽\n onEnd: function (/**Event*/{\n oldIndex,\n newIndex,\n item\n }) {\n //evt.to; // 目标列表\n //evt.from; // 来自以前的列表\n //evt.oldIndex; // 元素在旧父元素中的旧索引\n //evt.newIndex; // 元素在新父元素中的新索引\n //evt.clone // 克隆元素\n //evt.pullMode; // 当项在另一个可排序中时:\"clone\"(克隆),\"true\"(移动)\n let rowNode = vexGridRef.value.getRowNode(item);\n newIndex = rowNode.index - oldIndex + newIndex;\n const list = JSON.parse(JSON.stringify(gridOptions.data)); //保存旧数据\n const targetRow = list.splice(rowNode.index, 1)[0]; //保存移动的元素并删除原列表中移动的元素\n list.splice(newIndex, 0, targetRow); //插入到目标新索引中\n const newsArr = JSON.parse(JSON.stringify(list)); //重新赋值数组\n //将新数据重新排序\n for (let i = 0; i < newsArr.length; i++) {\n newsArr[i].sort = i + 1;\n }\n gridOptions.data = newsArr;\n }\n });\n });\n };\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.onMounted)(() => {\n updateSort();\n });\n const enterFilterEvent = ({\n $panel\n }) => {\n $panel.confirmFilter();\n };\n\n // 子组件调用父组件\n const emits = __emit; //声明 emits\n function getColumns() {\n return gridOptions.data;\n }\n function getGroupColumnData() {\n return gridOptions.groupColumns;\n }\n function setGroupColumnData(value) {\n gridOptions.groupColumns = value.groupColumns;\n }\n\n // 对外暴露\n __expose({\n setData,\n updateData,\n gridOptions,\n vexGridRef,\n getColumns,\n setAddDisplay,\n setEditDisplay,\n setShow,\n getGroupColumnData\n });\n const __returned__ = {\n props,\n show,\n vexGridRef,\n headerConfig,\n dict,\n dictType,\n setShow,\n setGroupByMin,\n http,\n headerConfigShow,\n checkBoxAllChange,\n headerClick,\n checkBoxClick,\n setData,\n onAdd,\n removeRowEvent,\n handleCheckBoxClick,\n updateData,\n visible,\n setAddDisplay,\n doEmits,\n setEditDisplay,\n updateColumnAuth,\n updateTitleAndWidth,\n gridOptions,\n updateSort,\n enterFilterEvent,\n emits,\n getColumns,\n getGroupColumnData,\n setGroupColumnData,\n ref: vue__WEBPACK_IMPORTED_MODULE_4__.ref,\n reactive: vue__WEBPACK_IMPORTED_MODULE_4__.reactive,\n onMounted: vue__WEBPACK_IMPORTED_MODULE_4__.onMounted,\n nextTick: vue__WEBPACK_IMPORTED_MODULE_4__.nextTick,\n watch: vue__WEBPACK_IMPORTED_MODULE_4__.watch,\n inject: vue__WEBPACK_IMPORTED_MODULE_4__.inject,\n get Delete() {\n return _element_plus_icons_vue__WEBPACK_IMPORTED_MODULE_5__.Delete;\n },\n get VXETable() {\n return (vxe_table__WEBPACK_IMPORTED_MODULE_6___default());\n },\n get XEUtils() {\n return (xe_utils__WEBPACK_IMPORTED_MODULE_7___default());\n },\n get Sortable() {\n return sortablejs__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\n },\n get storeDict() {\n return _store_dict__WEBPACK_IMPORTED_MODULE_9__.storeDict;\n },\n get storeDictType() {\n return _store_dictType__WEBPACK_IMPORTED_MODULE_10__.storeDictType;\n },\n HeaderConfig: _views_table_add_or_edit_config_column_config_header_config_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n get get() {\n return _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_12__.get;\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://olp-table/./src/views/table/add-or-edit/config/column-config/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");
|
|
821
821
|
|
|
822
822
|
/***/ }),
|
|
823
823
|
|
|
@@ -861,7 +861,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core
|
|
|
861
861
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
862
862
|
|
|
863
863
|
"use strict";
|
|
864
|
-
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 vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _views_table_add_or_edit_config_base_config_index_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/views/table/add-or-edit/config/base-config/index.vue */ \"./src/views/table/add-or-edit/config/base-config/index.vue\");\n/* harmony import */ var _views_table_add_or_edit_config_column_config_index_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/views/table/add-or-edit/config/column-config/index.vue */ \"./src/views/table/add-or-edit/config/column-config/index.vue\");\n/* harmony import */ var _views_table_add_or_edit_config_table_config_index_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/views/table/add-or-edit/config/table-config/index.vue */ \"./src/views/table/add-or-edit/config/table-config/index.vue\");\n/* harmony import */ var _views_table_add_or_edit_config_form_config_index_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/views/table/add-or-edit/config/form-config/index.vue */ \"./src/views/table/add-or-edit/config/form-config/index.vue\");\n/* harmony import */ var _views_table_add_or_edit_config_initFormObject_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/views/table/add-or-edit/config/initFormObject.js */ \"./src/views/table/add-or-edit/config/initFormObject.js\");\n/* harmony import */ var _views_table_add_or_edit_config_script_config_index_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/views/table/add-or-edit/config/script-config/index.vue */ \"./src/views/table/add-or-edit/config/script-config/index.vue\");\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n/* harmony import */ var _utils_message__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/utils/message */ \"./src/utils/message.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n __name: 'index',\n emits: [\"emits\"],\n setup(__props, {\n expose: __expose,\n emit: __emit\n }) {\n const msg = (0,_utils_message__WEBPACK_IMPORTED_MODULE_12__.useMessage)(); // 消息弹窗\n const refMap = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)({});\n const setRefMap = (el, item) => {\n if (el) {\n refMap.value[item] = el;\n }\n };\n const http = (0,vue__WEBPACK_IMPORTED_MODULE_4__.inject)(\"http\");\n const show = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(false);\n const loading = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(true);\n const baseConfig = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(null);\n const tableConfig = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(null);\n const columnConfig = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(null);\n const columns = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)([]);\n const provides = (0,vue__WEBPACK_IMPORTED_MODULE_4__.reactive)({\n loadingText: '正在获取数据...',\n form: {\n mainTable: '',\n hump: '0',\n definitionSql: '0',\n executeSql: '',\n executeWhere: '',\n parameterDefault: '',\n paging: '1',\n selectBox: '2',\n tips: '1',\n tree: '0',\n treeParentId: '',\n openColumn: '',\n operationBut: [],\n tableDelete: {},\n toolBut: [],\n parentId: '',\n theme: '',\n toolButOptions: [],\n operationButOptions: []\n },\n updateIndex: 0,\n tableColumn: [],\n tableOption: '{}',\n operationButConfig: [],\n toolButConfig: []\n });\n const activeName = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)('baseConfig');\n\n //列配置多选框更新\n const columnCheckBoxChange = ({\n row,\n column\n }) => {\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.nextTick)(() => {\n if (column.field == 'addDisplay' && refMap.value['add']) {\n //新增多选点击\n refMap.value['add'].updateData(row, column);\n } else if (column.field == 'editDisplay' && refMap.value['edit']) {\n refMap.value['edit'].updateData(row, column);\n }\n });\n };\n function updateShow(v) {\n if (v == 'columnConfig') {\n columnConfig.value.setShow(true);\n } else if (refMap.value[v]) {\n refMap.value[v].setShow(true);\n }\n }\n\n //列配置全选框更新\n const columnCheckBoxAll = ({\n checkBoxName,\n isAll,\n list\n }) => {\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.nextTick)(() => {\n //新增全选和全不选\n if (refMap.value[checkBoxName]) {\n refMap.value[checkBoxName].setAll({\n list,\n isAll\n });\n }\n });\n };\n function setOtherProp(item) {\n let filedToOtherProp = Object.keys(item).filter(item => item.indexOf(\"ToOtherProp\") != -1);\n if (filedToOtherProp.length != 0) {\n let otherProp = {};\n if (item.otherProp) {\n try {\n otherProp = JSON.parse(item.otherProp);\n if (!otherProp) {\n otherProp = {};\n }\n } catch (e) {}\n }\n for (let filed of filedToOtherProp) {\n if (item[filed] != undefined) {\n otherProp[filed] = item[filed];\n }\n }\n //将展开行的表单设置为json的形式传给其他属性\n item.otherProp = JSON.stringify(otherProp);\n }\n }\n\n //点击保存\n const saveClick = () => {\n let columnConfigData = columnConfig.value.gridOptions.data;\n baseConfig.value.parseData(provides.form);\n if ((provides.form.toolBut.indexOf(\"batchDelete\") != -1 || provides.form.operationBut.indexOf(\"delete\") != -1) && !provides.form.deleteWhere) {\n msg.error(\"您启用删除功能,请填写删除条件!\");\n return;\n }\n let tableConfigData = tableConfig.value;\n //保存列配置\n columnConfigData.forEach(item => {\n setOtherProp(item);\n item.field = item.field.toString().trim();\n //下拉值为空字符串时置为Null处理\n item.selectType = item.selectType != '' ? item.selectType : null;\n item.tableField = item.tableField ? item.tableField : item.field;\n item.fixed = item.fixed != '' ? item.fixed : null;\n item.selectDom = item.selectDom != '' ? item.selectDom : null;\n });\n provides.tableColumn = columnConfigData;\n provides.tableGroupHeader = columnConfig.value.getGroupColumnData();\n let options = tableConfigData.getOptions();\n options['authTableName'] = provides.form.authTableName;\n provides.form.optionJson = JSON.stringify(options);\n if (refMap.value['add'] && refMap.value['add'].getData()) {\n try {\n JSON.parse(refMap.value['add'].getData().codeForm);\n } catch (e) {\n console.error(e);\n msg.error('解析编码设计json失败,请检查对象格式是否正确' + e);\n return;\n }\n }\n setFormList();\n if (provides.form.operationBut.includes('edit') && provides.formMainList) {\n for (const item of provides.formMainList) {\n // 基础表单 编辑时,更新条件或保存路径不能为空!\n if (item.formMain.designer == '0' && item.formMain.formType == 'edit' && item.formMain.updateKey.trim() == '' && item.formMain.saveUrl.trim() == '') {\n activeName.value = 'edit';\n msg.error(\"基础表单 编辑时,更新条件或保存路径不能为空!\");\n return;\n }\n }\n }\n saveData();\n };\n function setFormList() {\n //保存新增和编辑表单配置\n provides.formMainList = [];\n for (let key of Object.keys(refMap.value)) {\n provides.formMainList.push(getFormMain(refMap.value[key]));\n }\n }\n function getFormMain(formConfig) {\n let form = formConfig.getForm();\n let formConfigData = formConfig.getData();\n let formMain = {\n uuid: provides.form.uuid\n };\n let formJson = {};\n if (formConfigData) {\n formMain.designer = \"\" + formConfigData.designer; //表单类型 (0)基础表单 (1)自定义表单\n formMain.customForm = formConfigData.customForm;\n formJson.optionJson = formConfigData.codeForm;\n formJson.customJson = JSON.stringify(formConfigData.customJson);\n }\n for (let key of Object.keys(form)) {\n formMain[key] = form[key];\n }\n return {\n formMain,\n formJson\n };\n }\n function saveData() {\n loading.value = true;\n // baseConfig.value.setDeleteTable();\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_11__.post)(http, \"/online/tableConfig/saveJson\", (0,vue__WEBPACK_IMPORTED_MODULE_4__.toRaw)(provides), undefined, false).then(({\n code\n }) => {\n if (code == 200) {\n show.value = false;\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.nextTick)(() => {\n emits('configClose', provides.form.theme);\n });\n }\n }).finally(() => {\n loading.value = false;\n });\n }\n\n //数据配置更新数据表\n function updateTable(data) {\n columnConfig.value.updateData(data);\n loading.value = false;\n }\n const updateCurd = () => {\n columnConfig.value.setAddDisplay(\"1\");\n columnConfig.value.setEditDisplay(\"1\");\n };\n\n //配置中心更新数据\n function tableConfigChange(map) {\n columnConfig.value.updateColumnConfig(map);\n }\n const updateBtnData = (options, type) => {\n let butType = type.substr(0, type.indexOf('Options'));\n for (let i = options.length - 1; i >= 0; i--) {\n let o = options[i];\n if (provides.form[butType].indexOf(o.code) == -1) {\n provides.form[butType].push(o.code);\n }\n }\n provides.form[type] = options;\n };\n function initForm(res) {\n res.form = JSON.parse(JSON.stringify(_views_table_add_or_edit_config_initFormObject_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"]));\n res.tableColumn = [];\n }\n function parseOtherProp(res) {\n if (!res.tableColumn) {\n return;\n }\n for (let column of res.tableColumn) {\n if (column.otherProp && column.otherProp != '') {\n try {\n let otherProp = JSON.parse(column.otherProp);\n for (let key of Object.keys(otherProp)) {\n column[key] = otherProp[key];\n }\n } catch (e) {}\n }\n }\n }\n function init({\n o,\n v\n }) {\n show.value = true;\n loading.value = true;\n provides.loadingText = \"正在加载数据...\";\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_11__.get)(http, \"/online/tableConfig/getJson\", {\n uuid: v.uuid,\n theme: o\n }).then(res => {\n parseOtherProp(res);\n provides.toolButConfig = res.toolButConfig;\n provides.operationButConfig = res.operationButConfig;\n if (res.newConfig) {\n initForm(res);\n res.form.parentId = v.parentId;\n res.form.uuid = v.uuid;\n res.form.theme = o;\n }\n provides.form = res.form;\n if (!res.form.optionJson) {\n res.form.optionJson = \"{}\";\n }\n // 将json解析为对象\n provides.form.optionObj = JSON.parse(res.form.optionJson);\n if (provides.form.optionObj.table) {\n provides.form.tableObj = provides.form.optionObj.table;\n } else {\n provides.form.tableObj = {};\n }\n if (provides.form.optionObj.authTableName) {\n provides.form.authTableName = provides.form.optionObj.authTableName;\n res.form.authTableName = provides.form.authTableName;\n }\n provides.tableColumn = res.tableColumn;\n columnConfig.value.setData(res.tableColumn);\n baseConfig.value.setData(res.form);\n tableConfig.value.setData(res.form);\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.nextTick)(() => {\n if (res.formMainList) {\n for (let obj of provides.form.toolButOptions) {\n let data = res.formMainList[obj.code];\n if (data && refMap.value[obj.code]) {\n refMap.value[obj.code].setData(data);\n }\n }\n for (let obj of provides.form.operationButOptions) {\n let data = res.formMainList[obj.code];\n if (data && refMap.value[obj.code]) {\n refMap.value[obj.code].setData(data);\n }\n }\n }\n });\n loading.value = false;\n }).catch(() => {\n loading.value = false;\n });\n }\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.provide)('configData', provides);\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.provide)('updateBtnData', updateBtnData);\n const emits = (m, v) => {\n if (m == \"updateVisible\") {\n baseConfig.value.refreshColumn();\n } else {\n emit(\"emits\", {\n m: m,\n v\n });\n }\n };\n\n // 子组件调用父组件\n const emit = __emit; //声明 emits\n __expose({\n init\n });\n const __returned__ = {\n msg,\n refMap,\n setRefMap,\n http,\n show,\n loading,\n baseConfig,\n tableConfig,\n columnConfig,\n columns,\n provides,\n activeName,\n columnCheckBoxChange,\n updateShow,\n columnCheckBoxAll,\n setOtherProp,\n saveClick,\n setFormList,\n getFormMain,\n saveData,\n updateTable,\n updateCurd,\n tableConfigChange,\n updateBtnData,\n initForm,\n parseOtherProp,\n init,\n emits,\n emit,\n nextTick: vue__WEBPACK_IMPORTED_MODULE_4__.nextTick,\n provide: vue__WEBPACK_IMPORTED_MODULE_4__.provide,\n reactive: vue__WEBPACK_IMPORTED_MODULE_4__.reactive,\n ref: vue__WEBPACK_IMPORTED_MODULE_4__.ref,\n toRaw: vue__WEBPACK_IMPORTED_MODULE_4__.toRaw,\n inject: vue__WEBPACK_IMPORTED_MODULE_4__.inject,\n BaseConfig: _views_table_add_or_edit_config_base_config_index_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n ColumnConfig: _views_table_add_or_edit_config_column_config_index_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n TableConfig: _views_table_add_or_edit_config_table_config_index_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n FormConfig: _views_table_add_or_edit_config_form_config_index_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n get initFormObject() {\n return _views_table_add_or_edit_config_initFormObject_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"];\n },\n ScriptConfig: _views_table_add_or_edit_config_script_config_index_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n get post() {\n return _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_11__.post;\n },\n get get() {\n return _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_11__.get;\n },\n get useMessage() {\n return _utils_message__WEBPACK_IMPORTED_MODULE_12__.useMessage;\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://olp-table/./src/views/table/add-or-edit/config/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");
|
|
864
|
+
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 vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _views_table_add_or_edit_config_base_config_index_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/views/table/add-or-edit/config/base-config/index.vue */ \"./src/views/table/add-or-edit/config/base-config/index.vue\");\n/* harmony import */ var _views_table_add_or_edit_config_column_config_index_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/views/table/add-or-edit/config/column-config/index.vue */ \"./src/views/table/add-or-edit/config/column-config/index.vue\");\n/* harmony import */ var _views_table_add_or_edit_config_table_config_index_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/views/table/add-or-edit/config/table-config/index.vue */ \"./src/views/table/add-or-edit/config/table-config/index.vue\");\n/* harmony import */ var _views_table_add_or_edit_config_form_config_index_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/views/table/add-or-edit/config/form-config/index.vue */ \"./src/views/table/add-or-edit/config/form-config/index.vue\");\n/* harmony import */ var _views_table_add_or_edit_config_initFormObject_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/views/table/add-or-edit/config/initFormObject.js */ \"./src/views/table/add-or-edit/config/initFormObject.js\");\n/* harmony import */ var _views_table_add_or_edit_config_script_config_index_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/views/table/add-or-edit/config/script-config/index.vue */ \"./src/views/table/add-or-edit/config/script-config/index.vue\");\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n/* harmony import */ var _utils_message__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/utils/message */ \"./src/utils/message.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n __name: 'index',\n emits: [\"emits\"],\n setup(__props, {\n expose: __expose,\n emit: __emit\n }) {\n const msg = (0,_utils_message__WEBPACK_IMPORTED_MODULE_12__.useMessage)(); // 消息弹窗\n const refMap = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)({});\n const setRefMap = (el, item) => {\n if (el) {\n refMap.value[item] = el;\n }\n };\n const http = (0,vue__WEBPACK_IMPORTED_MODULE_4__.inject)(\"http\");\n const show = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(false);\n const loading = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(true);\n const baseConfig = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(null);\n const tableConfig = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(null);\n const columnConfig = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(null);\n const columns = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)([]);\n const provides = (0,vue__WEBPACK_IMPORTED_MODULE_4__.reactive)({\n loadingText: '正在获取数据...',\n form: {\n mainTable: '',\n hump: '0',\n definitionSql: '0',\n executeSql: '',\n executeWhere: '',\n parameterDefault: '',\n paging: '1',\n selectBox: '2',\n tips: '1',\n tree: '0',\n treeParentId: '',\n openColumn: '',\n operationBut: [],\n tableDelete: {},\n toolBut: [],\n parentId: '',\n theme: '',\n toolButOptions: [],\n operationButOptions: []\n },\n updateIndex: 0,\n tableColumn: [],\n tableOption: '{}',\n operationButConfig: [],\n toolButConfig: []\n });\n const activeName = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)('baseConfig');\n\n //列配置多选框更新\n const columnCheckBoxChange = ({\n row,\n column\n }) => {\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.nextTick)(() => {\n if (column.field == 'addDisplay' && refMap.value['add']) {\n //新增多选点击\n refMap.value['add'].updateData(row, column);\n } else if (column.field == 'editDisplay' && refMap.value['edit']) {\n refMap.value['edit'].updateData(row, column);\n }\n });\n };\n function updateShow(v) {\n if (v == 'columnConfig') {\n columnConfig.value.setShow(true);\n } else if (refMap.value[v]) {\n refMap.value[v].setShow(true);\n }\n }\n\n //列配置全选框更新\n const columnCheckBoxAll = ({\n checkBoxName,\n isAll,\n list\n }) => {\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.nextTick)(() => {\n //新增全选和全不选\n if (refMap.value[checkBoxName]) {\n refMap.value[checkBoxName].setAll({\n list,\n isAll\n });\n }\n });\n };\n function setOtherProp(item) {\n let filedToOtherProp = Object.keys(item).filter(item => item.indexOf(\"ToOtherProp\") != -1);\n if (filedToOtherProp.length != 0) {\n let otherProp = {};\n if (item.otherProp) {\n try {\n otherProp = JSON.parse(item.otherProp);\n if (!otherProp) {\n otherProp = {};\n }\n } catch (e) {}\n }\n for (let filed of filedToOtherProp) {\n otherProp[filed] = item[filed];\n }\n //将展开行的表单设置为json的形式传给其他属性\n item.otherProp = JSON.stringify(otherProp);\n }\n }\n\n //点击保存\n const saveClick = () => {\n let columnConfigData = columnConfig.value.gridOptions.data;\n baseConfig.value.parseData(provides.form);\n if ((provides.form.toolBut.indexOf(\"batchDelete\") != -1 || provides.form.operationBut.indexOf(\"delete\") != -1) && !provides.form.deleteWhere) {\n msg.error(\"您启用删除功能,请填写删除条件!\");\n return;\n }\n let tableConfigData = tableConfig.value;\n //保存列配置\n columnConfigData.forEach(item => {\n setOtherProp(item);\n item.field = item.field.toString().trim();\n //下拉值为空字符串时置为Null处理\n item.selectType = item.selectType != '' ? item.selectType : null;\n item.tableField = item.tableField ? item.tableField : item.field;\n item.fixed = item.fixed != '' ? item.fixed : null;\n item.selectDom = item.selectDom != '' ? item.selectDom : null;\n });\n provides.tableColumn = columnConfigData;\n provides.tableGroupHeader = columnConfig.value.getGroupColumnData();\n let options = tableConfigData.getOptions();\n provides.form.optionJson = JSON.stringify(options);\n if (refMap.value['add'] && refMap.value['add'].getData()) {\n try {\n JSON.parse(refMap.value['add'].getData().codeForm);\n } catch (e) {\n console.error(e);\n msg.error('解析编码设计json失败,请检查对象格式是否正确' + e);\n return;\n }\n }\n setFormList();\n if (provides.form.operationBut.includes('edit') && provides.formMainList) {\n for (const item of provides.formMainList) {\n // 基础表单 编辑时,更新条件或保存路径不能为空!\n if (item.formMain.designer == '0' && item.formMain.formType == 'edit' && item.formMain.updateKey.trim() == '' && item.formMain.saveUrl.trim() == '') {\n activeName.value = 'edit';\n msg.error(\"基础表单 编辑时,更新条件或保存路径不能为空!\");\n return;\n }\n }\n }\n saveData();\n };\n function setFormList() {\n //保存新增和编辑表单配置\n provides.formMainList = [];\n for (let key of Object.keys(refMap.value)) {\n provides.formMainList.push(getFormMain(refMap.value[key]));\n }\n }\n function getFormMain(formConfig) {\n let form = formConfig.getForm();\n let formConfigData = formConfig.getData();\n let formMain = {\n uuid: provides.form.uuid\n };\n let formJson = {};\n if (formConfigData) {\n formMain.designer = \"\" + formConfigData.designer; //表单类型 (0)基础表单 (1)自定义表单\n formMain.customForm = formConfigData.customForm;\n formJson.optionJson = formConfigData.codeForm;\n formJson.customJson = JSON.stringify(formConfigData.customJson);\n }\n for (let key of Object.keys(form)) {\n formMain[key] = form[key];\n }\n return {\n formMain,\n formJson\n };\n }\n function saveData() {\n loading.value = true;\n // baseConfig.value.setDeleteTable();\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_11__.post)(http, \"/online/tableConfig/saveJson\", (0,vue__WEBPACK_IMPORTED_MODULE_4__.toRaw)(provides), undefined, false).then(({\n code\n }) => {\n if (code == 200) {\n show.value = false;\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.nextTick)(() => {\n emits('configClose', provides.form.theme);\n });\n }\n }).finally(() => {\n loading.value = false;\n });\n }\n\n //数据配置更新数据表\n function updateTable(data) {\n columnConfig.value.updateData(data);\n loading.value = false;\n }\n const updateCurd = () => {\n columnConfig.value.setAddDisplay(\"1\");\n columnConfig.value.setEditDisplay(\"1\");\n };\n\n //配置中心更新数据\n function tableConfigChange(map) {\n columnConfig.value.updateColumnConfig(map);\n }\n const updateBtnData = (options, type) => {\n let butType = type.substr(0, type.indexOf('Options'));\n for (let i = options.length - 1; i >= 0; i--) {\n let o = options[i];\n if (provides.form[butType].indexOf(o.code) == -1) {\n provides.form[butType].push(o.code);\n }\n }\n provides.form[type] = options;\n };\n function initForm(res) {\n res.form = JSON.parse(JSON.stringify(_views_table_add_or_edit_config_initFormObject_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"]));\n res.tableColumn = [];\n }\n function parseOtherProp(res) {\n if (!res.tableColumn) {\n return;\n }\n for (let column of res.tableColumn) {\n if (column.otherProp && column.otherProp != '') {\n try {\n let otherProp = JSON.parse(column.otherProp);\n for (let key of Object.keys(otherProp)) {\n column[key] = otherProp[key];\n }\n } catch (e) {}\n }\n }\n }\n function init({\n o,\n v\n }) {\n show.value = true;\n loading.value = true;\n provides.loadingText = \"正在加载数据...\";\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_11__.get)(http, \"/online/tableConfig/getJson\", {\n uuid: v.uuid,\n theme: o\n }).then(res => {\n parseOtherProp(res);\n provides.toolButConfig = res.toolButConfig;\n provides.operationButConfig = res.operationButConfig;\n if (res.newConfig) {\n initForm(res);\n res.form.parentId = v.parentId;\n res.form.uuid = v.uuid;\n res.form.theme = o;\n }\n provides.form = res.form;\n if (!res.form.optionJson) {\n res.form.optionJson = \"{}\";\n }\n // 将json解析为对象\n provides.form.optionObj = JSON.parse(res.form.optionJson);\n if (provides.form.optionObj.table) {\n provides.form.tableObj = provides.form.optionObj.table;\n } else {\n provides.form.tableObj = {};\n }\n provides.tableColumn = res.tableColumn;\n columnConfig.value.setData(res.tableColumn);\n baseConfig.value.setData(res.form);\n tableConfig.value.setData(res.form);\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.nextTick)(() => {\n if (res.formMainList) {\n for (let obj of provides.form.toolButOptions) {\n let data = res.formMainList[obj.code];\n if (data && refMap.value[obj.code]) {\n refMap.value[obj.code].setData(data);\n }\n }\n for (let obj of provides.form.operationButOptions) {\n let data = res.formMainList[obj.code];\n if (data && refMap.value[obj.code]) {\n refMap.value[obj.code].setData(data);\n }\n }\n }\n });\n loading.value = false;\n }).catch(() => {\n loading.value = false;\n });\n }\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.provide)('configData', provides);\n (0,vue__WEBPACK_IMPORTED_MODULE_4__.provide)('updateBtnData', updateBtnData);\n const emits = (m, v) => {\n if (m == \"updateVisible\") {\n baseConfig.value.refreshColumn();\n } else {\n emit(\"emits\", {\n m: m,\n v\n });\n }\n };\n\n // 子组件调用父组件\n const emit = __emit; //声明 emits\n __expose({\n init\n });\n const __returned__ = {\n msg,\n refMap,\n setRefMap,\n http,\n show,\n loading,\n baseConfig,\n tableConfig,\n columnConfig,\n columns,\n provides,\n activeName,\n columnCheckBoxChange,\n updateShow,\n columnCheckBoxAll,\n setOtherProp,\n saveClick,\n setFormList,\n getFormMain,\n saveData,\n updateTable,\n updateCurd,\n tableConfigChange,\n updateBtnData,\n initForm,\n parseOtherProp,\n init,\n emits,\n emit,\n nextTick: vue__WEBPACK_IMPORTED_MODULE_4__.nextTick,\n provide: vue__WEBPACK_IMPORTED_MODULE_4__.provide,\n reactive: vue__WEBPACK_IMPORTED_MODULE_4__.reactive,\n ref: vue__WEBPACK_IMPORTED_MODULE_4__.ref,\n toRaw: vue__WEBPACK_IMPORTED_MODULE_4__.toRaw,\n inject: vue__WEBPACK_IMPORTED_MODULE_4__.inject,\n BaseConfig: _views_table_add_or_edit_config_base_config_index_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n ColumnConfig: _views_table_add_or_edit_config_column_config_index_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n TableConfig: _views_table_add_or_edit_config_table_config_index_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n FormConfig: _views_table_add_or_edit_config_form_config_index_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n get initFormObject() {\n return _views_table_add_or_edit_config_initFormObject_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"];\n },\n ScriptConfig: _views_table_add_or_edit_config_script_config_index_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n get post() {\n return _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_11__.post;\n },\n get get() {\n return _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_11__.get;\n },\n get useMessage() {\n return _utils_message__WEBPACK_IMPORTED_MODULE_12__.useMessage;\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://olp-table/./src/views/table/add-or-edit/config/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");
|
|
865
865
|
|
|
866
866
|
/***/ }),
|
|
867
867
|
|
|
@@ -1400,7 +1400,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
1400
1400
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1401
1401
|
|
|
1402
1402
|
"use strict";
|
|
1403
|
-
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\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_date_picker = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"el-date-picker\");\n return $props.item.
|
|
1403
|
+
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\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_date_picker = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"el-date-picker\");\n return $props.item.domData ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_el_date_picker, (0,vue__WEBPACK_IMPORTED_MODULE_0__.mergeProps)({\n key: 0,\n modelValue: $data.localValue,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $data.localValue = $event)\n }, _ctx.$attrs, {\n type: $props.item.domType,\n \"value-format\": $props.item.domFormat,\n placeholder: $props.item.placeholder,\n onChange: $options.handleChange\n }), null, 16 /* FULL_PROPS */, [\"modelValue\", \"type\", \"value-format\", \"placeholder\", \"onChange\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true);\n}\n\n//# sourceURL=webpack://olp-table/./src/components/ol-table-render.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");
|
|
1404
1404
|
|
|
1405
1405
|
/***/ }),
|
|
1406
1406
|
|
|
@@ -1433,7 +1433,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
1433
1433
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1434
1434
|
|
|
1435
1435
|
"use strict";
|
|
1436
|
-
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\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ol_tab_table = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"ol-tab-table\");\n const _component_otTopBottom = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"otTopBottom\");\n const _component_OtLeftRight = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"OtLeftRight\");\n const _component_OtTop1Bottom2 = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"OtTop1Bottom2\");\n const _component_OtTop2Bottom1 = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"OtTop2Bottom1\");\n const _component_otTop2Bottom2 = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"otTop2Bottom2\");\n const _component_otLeftTreeRightTable = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"otLeftTreeRightTable\");\n const
|
|
1436
|
+
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\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ol_tab_table = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"ol-tab-table\");\n const _component_otTopBottom = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"otTopBottom\");\n const _component_OtLeftRight = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"OtLeftRight\");\n const _component_OtTop1Bottom2 = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"OtTop1Bottom2\");\n const _component_OtTop2Bottom1 = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"OtTop2Bottom1\");\n const _component_otTop2Bottom2 = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"otTop2Bottom2\");\n const _component_otLeftTreeRightTable = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"otLeftTreeRightTable\");\n const _directive_loading = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveDirective)(\"loading\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [$data.theme == 1 ? (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_ol_tab_table, (0,vue__WEBPACK_IMPORTED_MODULE_0__.mergeProps)({\n key: 0,\n \"element-loading-text\": \"正在初始化页面...\"\n }, _ctx.$attrs, {\n ref: \"tableModel\",\n tabData: this.tabData,\n uuid: $props.uuid,\n \"init-data-source\": false,\n theme: \"t1\"\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createSlots)({\n _: 2 /* DYNAMIC */\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)(Object.keys(_ctx.$slots), item => {\n return {\n name: item,\n fn: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, item)])\n };\n })]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, [\"tabData\", \"uuid\"])), [[_directive_loading, $data.loading]]) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), $data.theme == 2 ? (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_otTopBottom, (0,vue__WEBPACK_IMPORTED_MODULE_0__.mergeProps)({\n key: 1,\n \"element-loading-text\": \"正在初始化页面...\"\n }, _ctx.$attrs, {\n ref: \"tableModel\",\n tabData: this.tabData,\n uuid: $props.uuid\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createSlots)({\n _: 2 /* DYNAMIC */\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)(Object.keys(_ctx.$slots), item => {\n return {\n name: item,\n fn: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, item)])\n };\n })]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, [\"tabData\", \"uuid\"])), [[_directive_loading, $data.loading]]) : $data.theme == 3 ? (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_OtLeftRight, (0,vue__WEBPACK_IMPORTED_MODULE_0__.mergeProps)({\n key: 2,\n \"element-loading-text\": \"正在初始化页面...\",\n searchRow: $data.searchRow\n }, _ctx.$attrs, {\n ref: \"tableModel\",\n tabData: this.tabData,\n uuid: $props.uuid\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createSlots)({\n _: 2 /* DYNAMIC */\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)(Object.keys(_ctx.$slots), item => {\n return {\n name: item,\n fn: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, item)])\n };\n })]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, [\"searchRow\", \"tabData\", \"uuid\"])), [[_directive_loading, $data.loading]]) : $data.theme == 4 ? (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_OtTop1Bottom2, (0,vue__WEBPACK_IMPORTED_MODULE_0__.mergeProps)({\n key: 3,\n \"element-loading-text\": \"正在初始化页面...\"\n }, _ctx.$attrs, {\n ref: \"tableModel\",\n tabData: this.tabData,\n uuid: $props.uuid\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createSlots)({\n _: 2 /* DYNAMIC */\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)(Object.keys(_ctx.$slots), item => {\n return {\n name: item,\n fn: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, item)])\n };\n })]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, [\"tabData\", \"uuid\"])), [[_directive_loading, $data.loading]]) : $data.theme == 5 ? (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_OtTop2Bottom1, (0,vue__WEBPACK_IMPORTED_MODULE_0__.mergeProps)({\n key: 4,\n \"element-loading-text\": \"正在初始化页面...\",\n searchRow: $data.searchRow\n }, _ctx.$attrs, {\n ref: \"tableModel\",\n tabData: this.tabData,\n uuid: $props.uuid\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createSlots)({\n _: 2 /* DYNAMIC */\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)(Object.keys(_ctx.$slots), item => {\n return {\n name: item,\n fn: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, item)])\n };\n })]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, [\"searchRow\", \"tabData\", \"uuid\"])), [[_directive_loading, $data.loading]]) : $data.theme == 6 ? (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_otTop2Bottom2, (0,vue__WEBPACK_IMPORTED_MODULE_0__.mergeProps)({\n key: 5,\n \"element-loading-text\": \"正在初始化页面...\",\n searchRow: $data.searchRow\n }, _ctx.$attrs, {\n ref: \"tableModel\",\n tabData: this.tabData,\n uuid: $props.uuid\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createSlots)({\n _: 2 /* DYNAMIC */\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)(Object.keys(_ctx.$slots), item => {\n return {\n name: item,\n fn: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, item)])\n };\n })]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, [\"searchRow\", \"tabData\", \"uuid\"])), [[_directive_loading, $data.loading]]) : $data.theme == 7 ? (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_otLeftTreeRightTable, (0,vue__WEBPACK_IMPORTED_MODULE_0__.mergeProps)({\n key: 6,\n \"element-loading-text\": \"正在初始化页面...\"\n }, _ctx.$attrs, {\n ref: \"tableModel\",\n uuid: $props.uuid,\n treeUuid: $data.treeUuid\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createSlots)({\n _: 2 /* DYNAMIC */\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)(Object.keys(_ctx.$slots), item => {\n return {\n name: item,\n fn: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, item)])\n };\n })]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, [\"uuid\", \"treeUuid\"])), [[_directive_loading, $data.loading]]) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)], 64 /* STABLE_FRAGMENT */);\n}\n\n//# sourceURL=webpack://olp-table/./src/components/table/model/model-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");
|
|
1437
1437
|
|
|
1438
1438
|
/***/ }),
|
|
1439
1439
|
|
|
@@ -2016,7 +2016,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2016
2016
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
2017
2017
|
|
|
2018
2018
|
"use strict";
|
|
2019
|
-
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 class: \"left\"\n};\nconst _hoisted_2 = {\n class: \"right\"\n};\nconst _hoisted_3 = {\n style: {\n \"width\": \"100%\",\n \"line-height\": \"50px\",\n \"border-bottom\": \"1px solid #d1d1d1\"\n }\n};\nconst _hoisted_4 = {\n style: {\n \"width\": \"100%\",\n \"height\": \"calc(100% - 71px)\",\n \"padding\": \"10px\"\n }\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_input = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"el-input\");\n const _component_el_form_item = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"el-form-item\");\n const _component_ol_dict_tag = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"ol-dict-tag\");\n const _component_olDictTag = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"olDictTag\");\n const _component_el_option = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"el-option\");\n const _component_el_select = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"el-select\");\n const _component_el_form = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"el-form\");\n const _component_vxe_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"vxe-button\");\n const _component_theme_model = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"theme-model\");\n const _component_ol_component = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"ol-component\");\n const _component_el_dialog = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"el-dialog\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_dialog, {\n class: \"online-development-table-add-or-edit\",\n modelValue: $data.dialogVisible,\n \"onUpdate:modelValue\": _cache[12] || (_cache[12] = $event => $data.dialogVisible = $event),\n fullscreen: \"\",\n \"show-close\": false,\n showHeader: false,\n \"close-on-press-escape\": false,\n \"close-on-click-modal\": false,\n \"before-close\": $options.handleClose\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_form, {\n model: $data.addOrEditRootData.form,\n \"label-width\": \"80px\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_form_item, {\n label: \"配置名称\",\n prop: \"configName\",\n span: 24\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_input, {\n modelValue: $data.addOrEditRootData.form.configName,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $data.addOrEditRootData.form.configName = $event)\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_form_item, {\n label: \"主题模板\",\n prop: \"theme\",\n span: 24\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_ol_dict_tag, {\n code: \"theme_model\",\n modelValue: $data.addOrEditRootData.form.theme,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $data.addOrEditRootData.form.theme = $event)\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_form_item, {\n label: \"数据源\",\n prop: \"theme\",\n span: 24\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_ol_dict_tag, {\n code: \"db_name\",\n modelValue: $data.addOrEditRootData.form.dbName,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $data.addOrEditRootData.form.dbName = $event)\n }, null, 8 /* PROPS */, [\"modelValue\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" <olDictTag code=\\\"online,system_data_source,database_chinese,db_name\\\" v-model=\\\"addOrEditRootData.form.dbName\\\"></olDictTag>\")]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_form_item, {\n label: \"模块\",\n prop: \"module\",\n span: 24\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_olDictTag, {\n code: \"online,table_main,module,module\",\n groupBy: $data.module.groupBy,\n whereAnd: $data.module.whereAnd,\n \"allow-create\": true,\n modelValue: $data.addOrEditRootData.form.module,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.addOrEditRootData.form.module = $event)\n }, null, 8 /* PROPS */, [\"groupBy\", \"whereAnd\", \"modelValue\"])]),\n _: 1 /* STABLE */\n }), $data.addOrEditRootData.form.theme == 7 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_el_form_item, {\n key: 0,\n label: \"树uuid\",\n prop: \"treeUuid\",\n span: 24\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_ol_dict_tag, {\n modelValue: $data.addOrEditRootData.form.treeUuid,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = $event => $data.addOrEditRootData.form.treeUuid = $event),\n code: \"online,tree_config,config_name,uuid\",\n clearable: false,\n whereAnd: $data.whereAnd,\n style: {\n \"margin-bottom\": \"20px\"\n }\n }, null, 8 /* PROPS */, [\"modelValue\", \"whereAnd\"])]),\n _: 1 /* STABLE */\n })) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), $data.addOrEditRootData.form.theme == 3 || $data.addOrEditRootData.form.theme == 5 || $data.addOrEditRootData.form.theme == 6 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_el_form_item, {\n key: 1,\n label: \"搜索占行\",\n prop: \"searchRow\",\n span: 24\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_ol_dict_tag, {\n code: \"pubilc_yes_no\",\n modelValue: $data.addOrEditRootData.form.searchRow,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $data.addOrEditRootData.form.searchRow = $event),\n clearable: false\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_form_item, {\n label: \"tabs表格\",\n prop: \"tabName\",\n span: 24\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_select, {\n modelValue: $data.addOrEditRootData.form.tabName,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = $event => $data.addOrEditRootData.form.tabName = $event),\n onChange: $options.handleChange,\n class: \"full-width-input\",\n clearable: \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($options.setTabsData(), (item, index) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_el_option, {\n key: index,\n label: item.dictLabel,\n value: item.dictValue,\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 }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_form_item, {\n label: \"tab标签名\",\n prop: \"tabLabel\",\n span: 24\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_input, {\n modelValue: $data.addOrEditRootData.form.tabLabel,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = $event => $data.addOrEditRootData.form.tabLabel = $event)\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_vxe_button, {\n status: \"primary\",\n onClick: _cache[8] || (_cache[8] = $event => $options.save(false))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.addOrEditRootData.disabled ? '保存' : '更新'), 1 /* TEXT */)]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_vxe_button, {\n status: \"primary\",\n onClick: _cache[9] || (_cache[9] = $event => $options.save(true))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.addOrEditRootData.disabled ? '保存并关闭' : '更新并关闭'), 1 /* TEXT */)]),\n _: 1 /* STABLE */\n }), $data.addOrEditRootData.form.tabName ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_vxe_button, {\n key: 0,\n status: \"primary\",\n onClick: _cache[10] || (_cache[10] = $event => $options.addTab(true))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => _cache[13] || (_cache[13] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"新增Tab\")])),\n _: 1 /* STABLE */,\n __: [13]\n })) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_vxe_button, {\n onClick: _cache[11] || (_cache[11] = $event => $options.handleClose(true))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => _cache[14] || (_cache[14] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"取消\")])),\n _: 1 /* STABLE */,\n __: [14]\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_theme_model, (0,vue__WEBPACK_IMPORTED_MODULE_0__.mergeProps)({\n onInitConfig: $options.initConfig,\n ref: \"theme\"\n }, $data.addOrEditRootData.form, {\n onRemoveTab: $options.removeTab,\n onEmits: $options.emits\n }), null, 16 /* FULL_PROPS */, [\"onInitConfig\", \"onRemoveTab\", \"onEmits\"]), $data.configShow ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_ol_component, {\n key: 0,\n ref: \"vComponent\",\n onEmits: $options.emits\n }, null, 8 /* PROPS */, [\"onEmits\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)])])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"before-close\"])]);\n}\n\n//# sourceURL=webpack://olp-table/./src/views/table/add-or-edit/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");
|
|
2019
|
+
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 class: \"left\"\n};\nconst _hoisted_2 = {\n class: \"right\"\n};\nconst _hoisted_3 = {\n style: {\n \"width\": \"100%\",\n \"line-height\": \"50px\",\n \"border-bottom\": \"1px solid #d1d1d1\"\n }\n};\nconst _hoisted_4 = {\n style: {\n \"width\": \"100%\",\n \"height\": \"calc(100% - 71px)\",\n \"padding\": \"10px\"\n }\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_input = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"el-input\");\n const _component_el_form_item = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"el-form-item\");\n const _component_ol_dict_tag = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"ol-dict-tag\");\n const _component_el_option = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"el-option\");\n const _component_el_select = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"el-select\");\n const _component_el_form = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"el-form\");\n const _component_vxe_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"vxe-button\");\n const _component_theme_model = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"theme-model\");\n const _component_ol_component = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"ol-component\");\n const _component_el_dialog = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"el-dialog\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_dialog, {\n class: \"online-development-table-add-or-edit\",\n modelValue: $data.dialogVisible,\n \"onUpdate:modelValue\": _cache[11] || (_cache[11] = $event => $data.dialogVisible = $event),\n fullscreen: \"\",\n \"show-close\": false,\n showHeader: false,\n \"close-on-press-escape\": false,\n \"close-on-click-modal\": false,\n \"before-close\": $options.handleClose\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_form, {\n model: $data.addOrEditRootData.form,\n \"label-width\": \"80px\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_form_item, {\n label: \"配置名称\",\n prop: \"configName\",\n span: 24\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_input, {\n modelValue: $data.addOrEditRootData.form.configName,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $data.addOrEditRootData.form.configName = $event)\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_form_item, {\n label: \"主题模板\",\n prop: \"theme\",\n span: 24\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_ol_dict_tag, {\n code: \"theme_model\",\n modelValue: $data.addOrEditRootData.form.theme,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $data.addOrEditRootData.form.theme = $event)\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_form_item, {\n label: \"数据源\",\n prop: \"theme\",\n span: 24\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_ol_dict_tag, {\n code: \"db_name\",\n modelValue: $data.addOrEditRootData.form.dbName,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $data.addOrEditRootData.form.dbName = $event)\n }, null, 8 /* PROPS */, [\"modelValue\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" <olDictTag code=\\\"online,system_data_source,database_chinese,db_name\\\" v-model=\\\"addOrEditRootData.form.dbName\\\"></olDictTag>\")]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" <el-form-item label=\\\"模块\\\" prop=\\\"module\\\" :span=\\\"24\\\">\\r\\n <olDictTag code=\\\"online,table_main,module,module\\\" :groupBy=\\\"module.groupBy\\\" :whereAnd=\\\"module.whereAnd\\\" :allow-create=\\\"true\\\" v-model=\\\"addOrEditRootData.form.module\\\"/>\\r\\n </el-form-item>\"), $data.addOrEditRootData.form.theme == 7 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_el_form_item, {\n key: 0,\n label: \"树uuid\",\n prop: \"treeUuid\",\n span: 24\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_ol_dict_tag, {\n modelValue: $data.addOrEditRootData.form.treeUuid,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.addOrEditRootData.form.treeUuid = $event),\n code: \"online,tree_config,config_name,uuid\",\n clearable: false,\n whereAnd: $data.whereAnd,\n style: {\n \"margin-bottom\": \"20px\"\n }\n }, null, 8 /* PROPS */, [\"modelValue\", \"whereAnd\"])]),\n _: 1 /* STABLE */\n })) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), $data.addOrEditRootData.form.theme == 3 || $data.addOrEditRootData.form.theme == 5 || $data.addOrEditRootData.form.theme == 6 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_el_form_item, {\n key: 1,\n label: \"搜索占行\",\n prop: \"searchRow\",\n span: 24\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_ol_dict_tag, {\n code: \"pubilc_yes_no\",\n modelValue: $data.addOrEditRootData.form.searchRow,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = $event => $data.addOrEditRootData.form.searchRow = $event),\n clearable: false\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_form_item, {\n label: \"tabs表格\",\n prop: \"tabName\",\n span: 24\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_select, {\n modelValue: $data.addOrEditRootData.form.tabName,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $data.addOrEditRootData.form.tabName = $event),\n onChange: $options.handleChange,\n class: \"full-width-input\",\n clearable: \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($options.setTabsData(), (item, index) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_el_option, {\n key: index,\n label: item.dictLabel,\n value: item.dictValue,\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 }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_form_item, {\n label: \"tab标签名\",\n prop: \"tabLabel\",\n span: 24\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_el_input, {\n modelValue: $data.addOrEditRootData.form.tabLabel,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = $event => $data.addOrEditRootData.form.tabLabel = $event)\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_vxe_button, {\n status: \"primary\",\n onClick: _cache[7] || (_cache[7] = $event => $options.save(false))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.addOrEditRootData.disabled ? '保存' : '更新'), 1 /* TEXT */)]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_vxe_button, {\n status: \"primary\",\n onClick: _cache[8] || (_cache[8] = $event => $options.save(true))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.addOrEditRootData.disabled ? '保存并关闭' : '更新并关闭'), 1 /* TEXT */)]),\n _: 1 /* STABLE */\n }), $data.addOrEditRootData.form.tabName ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_vxe_button, {\n key: 0,\n status: \"primary\",\n onClick: _cache[9] || (_cache[9] = $event => $options.addTab(true))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => _cache[12] || (_cache[12] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"新增Tab\")])),\n _: 1 /* STABLE */,\n __: [12]\n })) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_vxe_button, {\n onClick: _cache[10] || (_cache[10] = $event => $options.handleClose(true))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => _cache[13] || (_cache[13] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"取消\")])),\n _: 1 /* STABLE */,\n __: [13]\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_theme_model, (0,vue__WEBPACK_IMPORTED_MODULE_0__.mergeProps)({\n onInitConfig: $options.initConfig,\n ref: \"theme\"\n }, $data.addOrEditRootData.form, {\n onRemoveTab: $options.removeTab,\n onEmits: $options.emits\n }), null, 16 /* FULL_PROPS */, [\"onInitConfig\", \"onRemoveTab\", \"onEmits\"]), $data.configShow ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_ol_component, {\n key: 0,\n ref: \"vComponent\",\n onEmits: $options.emits\n }, null, 8 /* PROPS */, [\"onEmits\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)])])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"before-close\"])]);\n}\n\n//# sourceURL=webpack://olp-table/./src/views/table/add-or-edit/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");
|
|
2020
2020
|
|
|
2021
2021
|
/***/ }),
|
|
2022
2022
|
|
|
@@ -10792,7 +10792,7 @@ eval("module.exports = {\n //服务地址\n SERVER_ADDR: \"http://127.0.0.1:88
|
|
|
10792
10792
|
\***********************************/
|
|
10793
10793
|
/***/ (function(module) {
|
|
10794
10794
|
|
|
10795
|
-
eval("module.exports = {\n //服务地址\n SERVER_ADDR: \"http://
|
|
10795
|
+
eval("module.exports = {\n //服务地址\n // SERVER_ADDR: \"http://10.200.16.34/prod-api\"\n SERVER_ADDR: \"http://172.18.10.13:8888\"\n};\n\n//# sourceURL=webpack://olp-table/./src/config/prod-config.js?");
|
|
10796
10796
|
|
|
10797
10797
|
/***/ }),
|
|
10798
10798
|
|
|
@@ -10846,7 +10846,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _sty
|
|
|
10846
10846
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
10847
10847
|
|
|
10848
10848
|
"use strict";
|
|
10849
|
-
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_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 _utils_tree__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/tree */ \"./src/utils/tree.js\");\n/* harmony import */ var _utils_message__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/message */ \"./src/utils/message.js\");\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n/* harmony import */ var _utils_ExcelUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils/ExcelUtil */ \"./src/utils/ExcelUtil.js\");\n/* harmony import */ var vxe_table__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vxe-table */ \"vxe-table\");\n/* harmony import */ var vxe_table__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(vxe_table__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _utils_groupCompute__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/utils/groupCompute */ \"./src/utils/groupCompute.js\");\n\n\n\n\n\n\n\n\n\nconst message = (0,_utils_message__WEBPACK_IMPORTED_MODULE_4__.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_7___default().modal.confirm({\n content: content,\n title: '提示',\n status: 'warning'\n });\n if (type == \"cancel\") {\n return;\n }\n }\n this.doPostAes(obj.code, '/online/crudAes/deleteMainAndSubs', {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n subTableName: subTableName,\n whereMap: this.doGetWhereMap(row, whereObj),\n //更新条件\n subForeignKey: subForeignKey\n });\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_7___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_7___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.formMainList.edit.formMain.updateKey] = '';\n } catch (e) {}\n let params = {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n genIdMap: {\n [this.formMainList.edit.formMain.updateKey]: '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_7___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 doBatchModify(code, updateObj, whereObj, content, updateRecords) {\n if (content) {\n let type = await vxe_table__WEBPACK_IMPORTED_MODULE_7___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_7___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_5__.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 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_5__.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_5__.post)(this.http, this.tableConfig.api, this.getParams(), false, false);\n } else {\n axios = (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_5__.get)(this.http, this.tableConfig.api, this.getParams(), false);\n }\n } else {\n axios = (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_5__.postAes)(this.http, '/online/crudAes/query', this.getParams(), false, false);\n }\n this.doQuery(axios);\n },\n doQuery(axios) {\n if (this.loading['select']) {\n return;\n }\n this.table.loading = true;\n this.loading['select'] = true;\n axios.then(({\n data,\n code,\n msg\n }) => {\n if (code != 200 && code != 0) {\n message.error(msg);\n return;\n }\n let respData = data instanceof Array ? data : data.listData;\n if (this.table.treeConfig) {\n //id , parentId , children\n respData = (0,_utils_tree__WEBPACK_IMPORTED_MODULE_3__.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 }).finally(() => {\n this.table.loading = false;\n this.loading['select'] = false;\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 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_5__.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 * 获取查询参数\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 (value.length == 1 && !(value instanceof Array)) {\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: 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 for (let v of values) {\n if (!v) {\n continue;\n }\n let obj = {\n value: 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 (!params['queryParameterListAnd']) {\n params['queryParameterListAnd'] = [];\n }\n params['queryParameterListAnd'].push({\n key: key,\n value: v\n });\n }\n }\n if (this.orderByColumns.length != 0) {\n params['orderBy'] = this.orderByColumns;\n }\n if (this.events['queryBefore']) {\n this.events['queryBefore'](params);\n }\n return params;\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_6__.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_5__.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_6__.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_7___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 },\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 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.getUpdateRecords();\n }\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_7___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_7___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 this.formMainList.edit.formMain.updateKey = this.formMainList.edit.formMain.updateKey.trim();\n const srcMap = new Map(dataSource.map(item => [item[this.formMainList.edit.formMain.updateKey], item]));\n for (const row of rows) {\n let rowId = row[this.formMainList.edit.formMain.updateKey];\n if (rowId) {\n updateList.push({\n columnAndValueMap: this.getDifferingProperties(row, srcMap.get(row[this.formMainList.edit.formMain.updateKey])),\n //更新字段\n whereMap: this.doGetWhereMap(row, this.formMainList.edit.formMain.updateKey) //更新条件\n });\n continue;\n }\n let columnTableUpdateValue = this.getColumnTableUpdateValue(this.table.columns, row);\n columnTableUpdateValue[foreignKey] = foreignKeyValue ? foreignKeyValue : this.mainId;\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 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.formMainList.edit.formMain.updateKey]: '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.formMainList.edit.formMain.updateKey], item]));\n let rows = [];\n for (const row of this.getUpdateRecords()) {\n let src = srcMap.get(row[this.formMainList.edit.formMain.updateKey]);\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_7___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_7___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.formMainList.edit.formMain.updateKey])),\n //更新字段\n whereMap: this.doGetWhereMap(row, this.formMainList.edit.formMain.updateKey) //更新条件\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.formMainList.edit.formMain.updateKey, \"确认修改编辑数据吗?\", 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_8__.groupAndCompute)(groupKey, comValue, dataSource);\n }\n this.table.data = dataSource;\n this.$table.reloadData(this.table.data);\n },\n getDifferingProperties(tar, src) {\n const differingProperties = {};\n // 假设两个对象都有相同的属性\n for (const key in tar) {\n if (tar.hasOwnProperty(key) && src.hasOwnProperty(key)) {\n if (tar[key] !== src[key]) {\n differingProperties[key] = tar[key]; // 可以选择返回obj2的值,或创建一个数组存放两个值\n }\n }\n }\n return differingProperties;\n }\n }\n};\n\n//# sourceURL=webpack://olp-table/./src/mixins/VTMixin/DefaultMethods.js?");
|
|
10849
|
+
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_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 _utils_tree__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/tree */ \"./src/utils/tree.js\");\n/* harmony import */ var _utils_message__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/message */ \"./src/utils/message.js\");\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n/* harmony import */ var _utils_ExcelUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils/ExcelUtil */ \"./src/utils/ExcelUtil.js\");\n/* harmony import */ var vxe_table__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vxe-table */ \"vxe-table\");\n/* harmony import */ var vxe_table__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(vxe_table__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _utils_groupCompute__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/utils/groupCompute */ \"./src/utils/groupCompute.js\");\n\n\n\n\n\n\n\n\n\nconst message = (0,_utils_message__WEBPACK_IMPORTED_MODULE_4__.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_7___default().modal.confirm({\n content: content,\n title: '提示',\n status: 'warning'\n });\n if (type == \"cancel\") {\n return;\n }\n }\n this.doPostAes(obj.code, '/online/crudAes/deleteMainAndSubs', {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n subTableName: subTableName,\n whereMap: this.doGetWhereMap(row, whereObj),\n //更新条件\n subForeignKey: subForeignKey\n });\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_7___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_7___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.formMainList.edit.formMain.updateKey] = '';\n } catch (e) {}\n let params = {\n dbName: this.tableConfig.dbName,\n tableName: this.tableConfig.mainTable,\n genIdMap: {\n [this.formMainList.edit.formMain.updateKey]: '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_7___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 doBatchModify(code, updateObj, whereObj, content, updateRecords) {\n if (content) {\n let type = await vxe_table__WEBPACK_IMPORTED_MODULE_7___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_7___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_5__.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 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_5__.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_5__.post)(this.http, this.tableConfig.api, this.getParams(), false, false);\n } else {\n axios = (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_5__.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_5__.postAes)(this.http, '/online/crudAes/query', this.getParams(), false, false);\n } else {\n axios = (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_5__.post)(this.http, '/online/crud/query', this.getParams(), false, false);\n }\n this.doQuery(axios);\n },\n doQuery(axios) {\n if (this.loading['select']) {\n return;\n }\n this.table.loading = true;\n this.loading['select'] = true;\n axios.then(({\n data,\n code,\n msg\n }) => {\n if (code != 200 && code != 0) {\n message.error(msg);\n return;\n }\n let respData = data instanceof Array ? data : data.listData;\n if (this.table.treeConfig) {\n //id , parentId , children\n respData = (0,_utils_tree__WEBPACK_IMPORTED_MODULE_3__.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 }).finally(() => {\n this.table.loading = false;\n this.loading['select'] = false;\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 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_5__.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 * 获取查询参数\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 (value.length == 1 && !(value instanceof Array)) {\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: 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 for (let v of values) {\n if (!v) {\n continue;\n }\n let obj = {\n value: 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 (!params['queryParameterListAnd']) {\n params['queryParameterListAnd'] = [];\n }\n params['queryParameterListAnd'].push({\n key: key,\n value: v\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.userFiled,\n \"userFiled\": this.tableConfig.userFiled\n };\n if (this.events['queryBefore']) {\n this.events['queryBefore'](params);\n }\n return params;\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_6__.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_5__.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_6__.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_7___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 },\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 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.getUpdateRecords();\n }\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_7___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_7___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 this.formMainList.edit.formMain.updateKey = this.formMainList.edit.formMain.updateKey.trim();\n const srcMap = new Map(dataSource.map(item => [item[this.formMainList.edit.formMain.updateKey], item]));\n for (const row of rows) {\n let rowId = row[this.formMainList.edit.formMain.updateKey];\n if (rowId) {\n updateList.push({\n columnAndValueMap: this.getDifferingProperties(row, srcMap.get(row[this.formMainList.edit.formMain.updateKey])),\n //更新字段\n whereMap: this.doGetWhereMap(row, this.formMainList.edit.formMain.updateKey) //更新条件\n });\n continue;\n }\n let columnTableUpdateValue = this.getColumnTableUpdateValue(this.table.columns, row);\n columnTableUpdateValue[foreignKey] = foreignKeyValue ? foreignKeyValue : this.mainId;\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 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.formMainList.edit.formMain.updateKey]: '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.formMainList.edit.formMain.updateKey], item]));\n let rows = [];\n for (const row of this.getUpdateRecords()) {\n let src = srcMap.get(row[this.formMainList.edit.formMain.updateKey]);\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_7___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_7___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.formMainList.edit.formMain.updateKey])),\n //更新字段\n whereMap: this.doGetWhereMap(row, this.formMainList.edit.formMain.updateKey) //更新条件\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.formMainList.edit.formMain.updateKey, \"确认修改编辑数据吗?\", 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_8__.groupAndCompute)(groupKey, comValue, dataSource);\n }\n this.table.data = dataSource;\n this.$table.reloadData(this.table.data);\n },\n getDifferingProperties(tar, src) {\n const differingProperties = {};\n // 假设两个对象都有相同的属性\n for (const key in tar) {\n if (tar.hasOwnProperty(key) && src.hasOwnProperty(key)) {\n if (tar[key] !== src[key]) {\n differingProperties[key] = tar[key]; // 可以选择返回obj2的值,或创建一个数组存放两个值\n }\n }\n }\n return differingProperties;\n }\n }\n};\n\n//# sourceURL=webpack://olp-table/./src/mixins/VTMixin/DefaultMethods.js?");
|
|
10850
10850
|
|
|
10851
10851
|
/***/ }),
|
|
10852
10852
|
|
|
@@ -10890,7 +10890,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
10890
10890
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
10891
10891
|
|
|
10892
10892
|
"use strict";
|
|
10893
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ OTMixinColumnMethod: function() { return /* binding */ OTMixinColumnMethod; }\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_some_js__WEBPACK_IMPORTED_MODULE_2__ = __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_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_some_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_columnProp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/columnProp */ \"./src/utils/columnProp.js\");\n/* harmony import */ var _utils_FilterType_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/FilterType.js */ \"./src/utils/FilterType.js\");\n/* harmony import */ var _utils_FilterType_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n\n\n\nfunction setColumnParams(column, key, value) {\n if (value === undefined) {\n return;\n }\n if (!column['params']) {\n column['params'] = {};\n }\n column['params'][key] = value;\n}\nconst OTMixinColumnMethod = {\n methods: {\n setColumnCssClass(o) {\n if (o.dictCode) {\n let vals = this.dictVal(o.dictCode);\n let cssClass = {};\n if (vals) {\n let dictValueLabel = {};\n for (let obj of vals) {\n dictValueLabel[obj.dictValue] = obj.dictLabel;\n if (obj.cssClass) {\n let css = obj.cssClass.trim();\n try {\n css = css.replace(/([a-zA-Z_]\\w*):/g, '\"$1\":').replace(/'/g, '\"');\n css = JSON.parse(css);\n if (Array.isArray(css)) {\n let data = {};\n if (css[0]) {\n data['backgroundColor'] = css[0];\n }\n if (css[1]) {\n data['color'] = css[1];\n }\n cssClass[obj.dictValue] = data;\n } else {\n cssClass[obj.dictValue] = css;\n }\n } catch (e) {\n console.error(\"列名:\", o.title, \"数据字典:\", obj.dictLabel, \"样式异常:\", css);\n }\n }\n }\n setColumnParams(o, 'dictValueLabel', dictValueLabel);\n }\n if (Object.keys(cssClass).length != 0) {\n setColumnParams(o, 'cssClass', cssClass);\n }\n }\n },\n initColumn(columns, tableConfig) {\n this.table.mergeFields = [];\n let items = [];\n columns = columns.sort(({\n sort: a\n }, {\n sort: b\n }) => a - b);\n for (let column of columns) {\n this.toParseOtherProp(column);\n }\n this.table.columnSource = JSON.parse(JSON.stringify(columns));\n let {\n optionJson,\n seq\n } = tableConfig;\n if (optionJson) {\n optionJson = JSON.parse(optionJson);\n }\n let enableFilter = optionJson?.table?.enableFilter;\n let hasEditConfig = this.hasEditConfig();\n for (let o of columns) {\n this.setColumnCssClass(o);\n this.initFormatter(o);\n this.initSlots(o);\n this.setTreeOpenColumn(o, tableConfig);\n this.setMergeField(o);\n this.setColumnShowOverFlow(o, optionJson);\n this.setProp(o);\n this.setColumnHide(o);\n this.setFixed(o);\n this.setShowFooter(o);\n this.getVNode(o, items);\n if (enableFilter) {\n this.setFilters(o);\n }\n // 可编辑配置\n if (hasEditConfig) {\n this.setEditConfig(o);\n }\n }\n items.sort(({\n searchSort: a\n }, {\n searchSort: b\n }) => a - b);\n this.setSearchArea(items);\n columns = this.initBodyLeftColumn(columns, seq);\n if (this.table['show-footer']) {\n if (!columns[0].width || columns[0].width < 55) {\n columns[0].width = 55;\n }\n }\n this.table.columns = columns;\n //暂时不合并,启用虚拟滚动\n this.initMergeCells();\n },\n hasEditConfig() {\n return this.table.editConfig && (this.table.editConfig.enabled === true || typeof this.table.editConfig.enabled === 'string' && this.table.editConfig.enabled.toLowerCase() === 'true');\n },\n setEditConfig(o) {\n if (o.tableSaveToOtherProp && o.tableSaveToOtherProp == '1') {\n return;\n }\n if (o.selectDom == '1') {\n o.editRender = {\n name: '$input',\n props: {\n placeholder: '请输入' + o.title,\n clearable: o.clearableSEARCHToOtherProp == '1' ? false : true\n }\n };\n }\n // 文本域\n if (o.selectDom == '10') {\n o.editRender = {\n name: 'textarea',\n props: {\n type: 'textarea',\n // 指定为多行文本框\n placeholder: '请输入' + o.title,\n rows: 3,\n // 默认显示行数\n autosize: {\n minRows: 2,\n maxRows: 6\n },\n // 自动调整高度\n clearable: o.clearableSEARCHToOtherProp == '1' ? false : true\n }\n };\n }\n // 数字\n if (o.selectDom == '7') {\n o.editRender = {\n name: '$input',\n props: {\n type: this.getType(o.selectDom),\n placeholder: '请输入' + o.title,\n clearable: o.clearableSEARCHToOtherProp == '1' ? false : true\n }\n };\n }\n // 时间\n if (o.selectDom == '3' || o.selectDom == '6') {\n o.editRender = {\n name: 'VxeInput',\n props: {\n type: this.getType(o.selectDom),\n valueFormat: 'yyyy-MM-dd HH:mm:ss'\n }\n };\n }\n // 下拉框\n if (o.selectDom == '2' || o.selectDom == '8') {\n o.editRender = {\n name: 'VxeSelect',\n options: this.dictVal(o.dictCode),\n props: {\n placeholder: '请选择' + o.title\n }\n };\n }\n },\n getType(selectDom) {\n if (selectDom == '3') {\n return 'datetime';\n }\n if (selectDom == '6') {\n return 'date';\n }\n if (selectDom == '7') {\n return 'number';\n }\n },\n /**\r\n * 初始化列左边\r\n * @param columns\r\n * @param type\r\n * @returns {*}\r\n */\n initBodyLeftColumn(columns, type) {\n const hasSeqColumn = columns.some(col => ['seq', 'sequence', '序号'].includes(col.field || col.prop || col.type));\n if (type == 1 && !hasSeqColumn) {\n columns.unshift({\n type: 'seq',\n width: 55,\n title: '序号',\n fixed: 'left'\n });\n }\n const hasCheckboxColumn = columns.some(col => ['checkbox'].includes(col.type));\n const hasRadioColumn = columns.some(col => ['radio'].includes(col.type));\n if (this.selectBox == 2 && !hasCheckboxColumn) {\n columns.unshift({\n type: 'checkbox',\n width: 45,\n showOverflow: false,\n fixed: 'left'\n });\n } else if (this.selectBox == 1 && !hasRadioColumn) {\n columns.unshift({\n type: 'radio',\n width: 45,\n showOverflow: false,\n fixed: 'left'\n });\n }\n return columns;\n },\n setTreeOpenColumn(o, tableConfig) {\n if (tableConfig.tree == 1 && o.field == tableConfig.openColumn) {\n o.treeNode = true;\n if (!o.align) {\n o.align = 'left';\n }\n }\n },\n setMergeField(column) {\n if (column.mergeFlag == '1') {\n this.table.mergeFields.push(column.field);\n }\n },\n setColumnHide(o) {\n //隐藏\n if (o.visible == \"0\") {\n o.visible = false;\n }\n },\n initFormatter(o) {\n try {\n if (o.formatter) {\n o.formatter = eval(\"({cellValue, row, column})=>{\" + o.formatter + \"}\");\n } else if (o.dictCode) {\n o.formatter = eval(\"\" + \"({cellValue, row, column})=>{if(column.params && column.params.dictValueLabel){ let dictValueLabelElement = column.params.dictValueLabel[cellValue];if(dictValueLabelElement){return dictValueLabelElement;} }return cellValue}\");\n }\n } catch (e) {\n console.log(o.title, \"formatter异常:\", o.formatter);\n this.$message.error(o.title + \"formatter异常!\");\n }\n },\n initSlots(o) {\n if (o.selectDom == 20) {\n o.slotsName = 'img_default';\n o.slots = {\n default: 'img_default'\n };\n }\n if (o.selectDom == '21') {\n o.slotsName = 'icon_default';\n o.slots = {\n default: 'icon_default'\n };\n }\n if (o.selectDom == '23') {\n o.slotsName = 'video_default';\n o.slots = {\n default: 'video_default'\n };\n }\n },\n /**\r\n * 播放器初始化\r\n * @param player\r\n */\n handleReady(player) {\n console.log(' 播放器已初始化', player);\n this.player = player;\n },\n /**\r\n * 视频播放\r\n */\n handlePlay() {\n console.log(' 视频开始播放');\n },\n changeToChinese() {\n console.log(\"this.playerOptions.value.player\", this.player);\n },\n handlePlay1() {\n console.log(' 视频开始播放');\n this.$refs.playerRef.player.play(); // 通过ref调用播放器方法\n this.showCustomModal.value = false;\n },\n setFixed(item) {\n //修改固定字段的值\n if (item.fixed === '1') {\n item.fixed = 'left';\n } else if (item.fixed === '2') {\n item.fixed = 'right';\n }\n if (item.align === '1') {\n item.align = 'left';\n } else if (item.align === '2') {\n item.align = 'right';\n } else if (item.align === '0') {\n item.align = 'center';\n }\n },\n setProp(item) {\n item.resizable = undefined;\n if (item.sortable != undefined && item.sortable != \"\") {\n let order = item.field + (item.sortable == 0 ? \" ASC \" : \" DESC \");\n this.orderByColumns.push(order);\n }\n ////时间类型\n if (!item.width && (item.selectDom == 3 || item.selectDom == 6)) {\n item.minWidth = 150;\n } else if (!item.width && item.title) {\n item.minWidth = item.title.length * 30;\n }\n },\n setShowFooter(item) {\n if (item['totalToOtherProp']) {\n this.table['show-footer'] = true;\n }\n },\n toParseOtherProp(item) {\n //其他属性赋值\n try {\n let otherProp = JSON.parse(item.otherProp);\n item.otherProp = otherProp;\n for (let key of Object.keys(otherProp)) {\n item[key] = otherProp[key];\n }\n } catch (e) {\n if (item.otherProp) {\n console.error(item.field + \"其他属性无法解析:\" + item.otherProp);\n }\n item.otherProp = {};\n }\n if (item['totalToOtherProp'] === undefined) {\n item['totalToOtherProp'] = '';\n }\n },\n /**\r\n * 设置搜索\r\n * @param items\r\n */\n setSearchArea(items) {\n if (items.length != 0) {\n items.push({\n itemRender: {\n name: '$buttons',\n children: [{\n props: {\n type: 'submit',\n content: '查询',\n status: 'primary'\n },\n events: {\n click: this.query\n }\n }, {\n props: {\n type: 'button',\n content: '重置'\n },\n events: {\n click: this.resetQuery\n }\n }]\n }\n });\n this.table.formConfig.size = this.table.size;\n }\n this.table.formConfig.items = items;\n },\n setFilters(o) {\n if (o.dictCode) {\n o.filters = this.dictVal(o.dictCode);\n o.filterMultiple = true;\n o.filterMethod = ({\n option,\n row,\n column\n }) => {};\n } else {\n // o.slots={\n // header:'OlTableFilterRender'\n // }\n o.filters = [{\n data: ''\n }];\n o.filterMultiple = false;\n o.filterRender = {\n name: 'FilterExtend'\n };\n o.cellType = this.getType(o.selectDom);\n }\n o.filterMethod = this.filterMethod;\n },\n filterMethod({\n option,\n row,\n column\n }) {\n const {\n type,\n value,\n min,\n max\n } = option?.data || {};\n const cellValue = String(row[column.field]);\n switch (type) {\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_4___default().EQUAL):\n return this.isEqual(cellValue, value);\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_4___default().NOT_EQUAL):\n return this.isNotEqual(cellValue, value);\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_4___default().STARTS_WITH):\n return this.startsWith(cellValue, value);\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_4___default().ENDS_WITH):\n return this.endsWith(cellValue, value);\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_4___default().CONTAINS):\n return this.contains(cellValue, value);\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_4___default().BETWEEN):\n if (column.cellType === 'date' || column.cellType === 'datetime') {\n return this.dateTimeFilterMethod({\n cellValue,\n min,\n max\n });\n }\n return this.isInRange(cellValue, min, max);\n default:\n if (option.value) {\n return cellValue === option.value;\n }\n return true;\n }\n },\n /**\r\n * 数值范围筛选方法\r\n * @param cellValue\r\n * @param min\r\n * @param max\r\n * @returns {boolean}\r\n */\n isInRange(cellValue, min, max) {\n const numValue = Number(cellValue) || 0;\n const numMin = Number(min) || -Infinity;\n const numMax = Number(max) || Infinity;\n return numValue >= numMin && numValue <= numMax;\n },\n /**\r\n * 判断是否包含开头\r\n * @param cellValue\r\n * @param value\r\n * @returns {*}\r\n */\n endsWith(cellValue, value) {\n if (Array.isArray(value)) {\n return value.some(item => cellValue.endsWith(item));\n }\n return cellValue.endsWith(value);\n },\n /**\r\n * 判断是否包含开头\r\n * @param cellValue\r\n * @param value\r\n * @returns {*}\r\n */\n startsWith(cellValue, value) {\n if (Array.isArray(value)) {\n return value.some(item => cellValue.startsWith(item));\n }\n return cellValue.startsWith(value);\n },\n /**\r\n * 判断是否包含\r\n * @param cellValue\r\n * @param value\r\n * @returns {*}\r\n */\n contains(cellValue, value) {\n if (Array.isArray(value)) {\n return value.some(item => cellValue.includes(item));\n }\n return cellValue.includes(value);\n },\n /**\r\n * 判断字符串与值是否不相等(支持值可能是数组的情况)\r\n * @param {string} cellValue - 要比较的字符串\r\n * @param {string|Array} value - 要比较的值(可以是字符串或数组)\r\n * @returns {boolean} 是否不相等\r\n */\n isNotEqual(cellValue, value) {\n // 如果value是数组,循环判断是否包含cellValue\n if (Array.isArray(value)) {\n return !value.some(item => item === cellValue);\n }\n\n // 如果value不是数组,直接比较字符串\n return cellValue !== value;\n },\n /**\r\n * 比较字符串与值是否相等(支持值可能是数组的情况)\r\n * @param {string} cellValue - 要比较的字符串\r\n * @param {string|Array} value - 要比较的值(可以是字符串或数组)\r\n * @returns {boolean} 是否相等\r\n */\n isEqual(cellValue, value) {\n // 如果value是数组,循环判断是否包含cellValue\n if (Array.isArray(value)) {\n return value.some(item => item === cellValue);\n }\n\n // 如果value不是数组,直接比较字符串\n return cellValue === value;\n },\n /**\r\n * 日期时间范围筛选方法\r\n * @param cellValue 表格数据值\r\n * @param min 最小值\r\n * @param max 最大值\r\n * @returns {boolean}\r\n */\n dateTimeFilterMethod({\n cellValue,\n min,\n max\n }) {\n if (!min && !max) {\n return true;\n }\n const rowValue = cellValue ? new Date(cellValue) : null;\n const startDate = min ? new Date(min) : null;\n const endDate = max ? new Date(max) : null;\n if (startDate && endDate) {\n return rowValue >= startDate && rowValue <= endDate;\n } else if (startDate) {\n return rowValue >= startDate;\n } else if (endDate) {\n return rowValue <= endDate;\n }\n return true;\n },\n getVNode(o, items) {\n if (o.selectType == undefined) {\n return;\n }\n //99是范围查询\n if (o.selectType == 99) {\n let itemStart = this.initFormConfig(o, 5);\n let itemEnd = this.initFormConfig(o, 6);\n //时间范围查询\n if (o.selectDom == 3 || o.selectDom == 6) {\n let placeholder = o.selectDom == 3 ? '时间' : '';\n itemStart.placeholder = '请选择开始日期' + placeholder;\n delete itemStart.itemRender;\n itemEnd.placeholder = '请选择结束日期' + placeholder;\n }\n items.push(itemStart);\n items.push(itemEnd);\n } else {\n items.push(this.initFormConfig(o));\n }\n },\n initFormConfig(o, type) {\n let key = o.tableField;\n if (o.tableNameSEARCHToOtherProp != undefined && o.tableNameSEARCHToOtherProp != '') {\n key = o.tableNameSEARCHToOtherProp + '.' + key;\n }\n let item = {\n align: 'left',\n field: key,\n span: 6,\n searchSort: o.searchSort,\n title: o.titleSEARCHToOtherProp != undefined ? o.titleSEARCHToOtherProp : o.title,\n key: key,\n type: o.selectType,\n selectDom: o.selectDom,\n tableName: o.tableNameSEARCHToOtherProp,\n clearable: o.clearableSEARCHToOtherProp == '1' ? false : true,\n toDate: o.toDateSEARCHToOtherProp,\n itemRender: {\n name: '$input',\n props: {\n placeholder: '请输入' + o.title,\n clearable: o.clearableSEARCHToOtherProp == '1' ? false : true\n }\n }\n };\n // if(this.table.editConfig && (\n // this.table.editConfig.enabled === true ||\n // (typeof this.table.editConfig.enabled === 'string' &&\n // this.table.editConfig.enabled.toLowerCase() === 'true')\n // )){\n // o.editRender = {\n // name:'$input',\n // props: {\n // placeholder: '请输入' + o.title,\n // clearable: o.clearableSEARCHToOtherProp == '1' ? false : true\n // }\n // }\n // }\n try {\n this.table.formConfig.data[item.key] = eval(o.valueSEARCHToOtherProp);\n } catch (e) {}\n if (type == 5) {\n item.title = o.title + \"开始\";\n item.type = 5;\n item.field = \"$\" + o.tableField;\n item.key = \"$\" + o.tableField;\n } else if (type == 6) {\n item.field = o.tableField + \"$\";\n item.type = 6;\n item.key = o.tableField + \"$\";\n item.title = o.title + \"结束\";\n }\n if ((item.type == 6 || item.type == 5) && o.selectDom == undefined) {\n o.selectDom = 7;\n }\n this.getItemRender(o, item, type);\n if (item.title && item.title.length > 6) {\n item.titleWidth = 20 * (item.title.length - 2);\n } else if (item.title.toString().trim().length == 0) {\n item.titleWidth = 0;\n }\n if (o.spanSEARCHToOtherProp != undefined) {\n item.span = 6;\n }\n return item;\n },\n getItemRender(o, item, type) {\n if (o.dictCode) {\n delete item.itemRender;\n item.slots = {\n default: o.selectDom + item.field\n };\n item.slotsName = o.selectDom + item.field;\n item.options = this.dictVal(o.dictCode);\n item.placeholder = '请选择' + o.title;\n item.clearable = o.clearableSEARCHToOtherProp == '1';\n item.multiple = o.selectDom == '8';\n } else if (o.selectDom == 7) {\n item.itemRender.props.type = 'integer';\n } else if (o.selectDom == 10) {\n item.itemRender.name = 'textarea';\n } else if (o.selectDom == 3 || o.selectDom == 6) {\n delete item.itemRender;\n item.domDate = true;\n item.selectType = o.selectType;\n if (o.selectType == 98) {\n item.domType = vue__WEBPACK_IMPORTED_MODULE_5__.version.split('.')[0] == 2 ? 'daterange' : 'datetimerange';\n } else {\n item.domType = item.selectDom == 3 ? 'datetime' : 'date';\n }\n //这里跟element plus不一样\n item.domFormat = vue__WEBPACK_IMPORTED_MODULE_5__.version.split('.')[0] == 2 ? 'yyyy-MM-dd' : 'YYYY-MM-DD';\n if (item.selectDom == 3) {\n item.domFormat = item.domFormat + ' HH:mm:ss';\n }\n item.slots = {\n default: o.selectDom + item.field + \"_time\"\n };\n item.slotsName = o.selectDom + item.field + \"_time\";\n item.placeholder = '请选择';\n if (type == 5) {\n item.placeholder += \"开始\";\n } else if (type == 6) {\n item.placeholder += \"结束\";\n }\n if (o.selectDom == 3) {\n item.placeholder += \"时间\";\n }\n }\n },\n setColumnShowOverFlow(column, optionObj) {\n if (optionObj) {\n if (optionObj.table && optionObj.table.columnConfig && optionObj.table.columnConfig.showOverflow) {\n if (column.type != 'seq' || column.type != 'checkbox') {\n column.showOverflow = optionObj.table.columnConfig.showOverflow;\n }\n }\n }\n },\n initMergeCells() {\n if (this.table.mergeCells) {\n this.table.mergeCells = JSON.parse(this.table.mergeCells);\n return;\n }\n if (this.table.mergeFields && this.table.mergeFields.length != 0) {\n this.table.spanMethod = this.mergeRowMethod;\n }\n },\n // 通用行合并函数(将相同多列数据合并为一行)\n mergeRowMethod({\n row,\n _rowIndex,\n column,\n visibleData\n }) {\n const cellValue = row[column.field];\n if (cellValue && this.table.mergeFields.includes(column.field)) {\n const prevRow = visibleData[_rowIndex - 1];\n let nextRow = visibleData[_rowIndex + 1];\n if (prevRow && prevRow[column.field] === cellValue) {\n return {\n rowspan: 0,\n colspan: 0\n };\n } else {\n let countRowspan = 1;\n while (nextRow && nextRow[column.field] === cellValue) {\n nextRow = visibleData[++countRowspan + _rowIndex];\n }\n if (countRowspan > 1) {\n return {\n rowspan: countRowspan,\n colspan: 1\n };\n }\n }\n }\n },\n setDictCellStyle({\n row,\n rowIndex,\n $rowIndex,\n column,\n columnIndex,\n $columnIndex\n }) {\n if (column.params && column.params.cssClass) {\n return column.params.cssClass[row[column[(0,_utils_columnProp__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(column)]]];\n }\n },\n setTableStyle(option) {\n if (option['cell-style'] === undefined) {\n option['cell-style'] = {\n flag: \"flag##function#\",\n isFunction: true\n };\n }\n option['cell-style']['code'] = \"let OTMixinColumnMethod_setDictCellStyle = this.setDictCellStyle(params); if(OTMixinColumnMethod_setDictCellStyle){ return OTMixinColumnMethod_setDictCellStyle;}\\n\" + option['cell-style']['code'];\n }\n }\n};\n\n//# sourceURL=webpack://olp-table/./src/mixins/VTMixin/OTMixinColumnMethod.js?");
|
|
10893
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ OTMixinColumnMethod: function() { return /* binding */ OTMixinColumnMethod; }\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_some_js__WEBPACK_IMPORTED_MODULE_2__ = __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_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_some_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_columnProp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/columnProp */ \"./src/utils/columnProp.js\");\n/* harmony import */ var _utils_FilterType_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/FilterType.js */ \"./src/utils/FilterType.js\");\n/* harmony import */ var _utils_FilterType_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n\n\n\nfunction setColumnParams(column, key, value) {\n if (value === undefined) {\n return;\n }\n if (!column['params']) {\n column['params'] = {};\n }\n column['params'][key] = value;\n}\nconst OTMixinColumnMethod = {\n methods: {\n setColumnCssClass(o) {\n if (o.dictCode) {\n let vals = this.dictVal(o.dictCode);\n let cssClass = {};\n if (vals) {\n let dictValueLabel = {};\n for (let obj of vals) {\n dictValueLabel[obj.dictValue] = obj.dictLabel;\n if (obj.cssClass) {\n let css = obj.cssClass.trim();\n try {\n css = css.replace(/([a-zA-Z_]\\w*):/g, '\"$1\":').replace(/'/g, '\"');\n css = JSON.parse(css);\n if (Array.isArray(css)) {\n let data = {};\n if (css[0]) {\n data['backgroundColor'] = css[0];\n }\n if (css[1]) {\n data['color'] = css[1];\n }\n cssClass[obj.dictValue] = data;\n } else {\n cssClass[obj.dictValue] = css;\n }\n } catch (e) {\n console.error(\"列名:\", o.title, \"数据字典:\", obj.dictLabel, \"样式异常:\", css);\n }\n }\n }\n setColumnParams(o, 'dictValueLabel', dictValueLabel);\n }\n if (Object.keys(cssClass).length != 0) {\n setColumnParams(o, 'cssClass', cssClass);\n }\n }\n },\n initColumn(columns, tableConfig) {\n this.table.mergeFields = [];\n let items = [];\n columns = columns.sort(({\n sort: a\n }, {\n sort: b\n }) => a - b);\n for (let column of columns) {\n this.toParseOtherProp(column);\n }\n this.table.columnSource = JSON.parse(JSON.stringify(columns));\n let {\n optionJson,\n seq\n } = tableConfig;\n if (optionJson) {\n optionJson = JSON.parse(optionJson);\n }\n let enableFilter = optionJson?.table?.enableFilter;\n let hasEditConfig = this.hasEditConfig();\n for (let o of columns) {\n this.setColumnCssClass(o);\n this.initFormatter(o);\n this.initSlots(o);\n this.setTreeOpenColumn(o, tableConfig);\n this.setMergeField(o);\n this.setColumnShowOverFlow(o, optionJson);\n this.setProp(o);\n this.setColumnHide(o);\n this.setFixed(o);\n this.setShowFooter(o);\n this.getVNode(o, items);\n if (enableFilter) {\n this.setFilters(o);\n }\n // 可编辑配置\n if (hasEditConfig) {\n this.setEditConfig(o);\n }\n }\n items.sort(({\n searchSort: a\n }, {\n searchSort: b\n }) => a - b);\n this.setSearchArea(items);\n columns = this.initBodyLeftColumn(columns, seq);\n if (this.table['show-footer']) {\n if (!columns[0].width || columns[0].width < 55) {\n columns[0].width = 55;\n }\n }\n this.table.columns = columns;\n //暂时不合并,启用虚拟滚动\n this.initMergeCells();\n },\n hasEditConfig() {\n return this.table.editConfig && (this.table.editConfig.enabled === true || typeof this.table.editConfig.enabled === 'string' && this.table.editConfig.enabled.toLowerCase() === 'true');\n },\n setEditConfig(o) {\n if (o.tableSaveToOtherProp && o.tableSaveToOtherProp == '1') {\n return;\n }\n if (o.selectDom == '1') {\n o.editRender = {\n name: '$input',\n props: {\n placeholder: '请输入' + o.title,\n clearable: o.clearableSEARCHToOtherProp == '1' ? false : true\n }\n };\n }\n // 文本域\n if (o.selectDom == '10') {\n o.editRender = {\n name: 'textarea',\n props: {\n type: 'textarea',\n // 指定为多行文本框\n placeholder: '请输入' + o.title,\n rows: 3,\n // 默认显示行数\n autosize: {\n minRows: 2,\n maxRows: 6\n },\n // 自动调整高度\n clearable: o.clearableSEARCHToOtherProp == '1' ? false : true\n }\n };\n }\n // 数字\n if (o.selectDom == '7') {\n o.editRender = {\n name: '$input',\n props: {\n type: this.getType(o.selectDom),\n placeholder: '请输入' + o.title,\n clearable: o.clearableSEARCHToOtherProp == '1' ? false : true\n }\n };\n }\n // 时间\n if (o.selectDom == '3' || o.selectDom == '6') {\n o.editRender = {\n name: 'VxeInput',\n props: {\n type: this.getType(o.selectDom),\n valueFormat: 'yyyy-MM-dd HH:mm:ss'\n }\n };\n }\n // 下拉框\n if (o.selectDom == '2' || o.selectDom == '8') {\n o.editRender = {\n name: 'VxeSelect',\n options: this.dictVal(o.dictCode),\n props: {\n placeholder: '请选择' + o.title\n }\n };\n }\n },\n getType(selectDom) {\n if (selectDom == '3') {\n return 'datetime';\n }\n if (selectDom == '6') {\n return 'date';\n }\n if (selectDom == '7') {\n return 'number';\n }\n },\n /**\r\n * 初始化列左边\r\n * @param columns\r\n * @param type\r\n * @returns {*}\r\n */\n initBodyLeftColumn(columns, type) {\n const hasSeqColumn = columns.some(col => ['seq', 'sequence', '序号'].includes(col.field || col.prop || col.type));\n if (type == 1 && !hasSeqColumn) {\n columns.unshift({\n type: 'seq',\n width: 55,\n title: '序号',\n fixed: 'left'\n });\n }\n const hasCheckboxColumn = columns.some(col => ['checkbox'].includes(col.type));\n const hasRadioColumn = columns.some(col => ['radio'].includes(col.type));\n if (this.selectBox == 2 && !hasCheckboxColumn) {\n columns.unshift({\n type: 'checkbox',\n width: 45,\n showOverflow: false,\n fixed: 'left'\n });\n } else if (this.selectBox == 1 && !hasRadioColumn) {\n columns.unshift({\n type: 'radio',\n width: 45,\n showOverflow: false,\n fixed: 'left'\n });\n }\n return columns;\n },\n setTreeOpenColumn(o, tableConfig) {\n if (tableConfig.tree == 1 && o.field == tableConfig.openColumn) {\n o.treeNode = true;\n if (!o.align) {\n o.align = 'left';\n }\n }\n },\n setMergeField(column) {\n if (column.mergeFlag == '1') {\n this.table.mergeFields.push(column.field);\n }\n },\n setColumnHide(o) {\n //隐藏\n if (o.visible == \"0\") {\n o.visible = false;\n }\n },\n initFormatter(o) {\n try {\n if (o.formatter) {\n o.formatter = eval(\"({cellValue, row, column})=>{\" + o.formatter + \"}\");\n } else if (o.dictCode) {\n o.formatter = eval(\"\" + \"({cellValue, row, column})=>{if(column.params && column.params.dictValueLabel){ let dictValueLabelElement = column.params.dictValueLabel[cellValue];if(dictValueLabelElement){return dictValueLabelElement;} }return cellValue}\");\n }\n } catch (e) {\n console.log(o.title, \"formatter异常:\", o.formatter);\n this.$message.error(o.title + \"formatter异常!\");\n }\n },\n initSlots(o) {\n if (o.selectDom == 20) {\n o.slotsName = 'img_default';\n o.slots = {\n default: 'img_default'\n };\n }\n if (o.selectDom == '21') {\n o.slotsName = 'icon_default';\n o.slots = {\n default: 'icon_default'\n };\n }\n if (o.selectDom == '23') {\n o.slotsName = 'video_default';\n o.slots = {\n default: 'video_default'\n };\n }\n },\n /**\r\n * 播放器初始化\r\n * @param player\r\n */\n handleReady(player) {\n console.log(' 播放器已初始化', player);\n this.player = player;\n },\n /**\r\n * 视频播放\r\n */\n handlePlay() {\n console.log(' 视频开始播放');\n },\n changeToChinese() {\n console.log(\"this.playerOptions.value.player\", this.player);\n },\n handlePlay1() {\n console.log(' 视频开始播放');\n this.$refs.playerRef.player.play(); // 通过ref调用播放器方法\n this.showCustomModal.value = false;\n },\n setFixed(item) {\n //修改固定字段的值\n if (item.fixed === '1') {\n item.fixed = 'left';\n } else if (item.fixed === '2') {\n item.fixed = 'right';\n }\n if (item.align === '1') {\n item.align = 'left';\n } else if (item.align === '2') {\n item.align = 'right';\n } else if (item.align === '0') {\n item.align = 'center';\n }\n },\n setProp(item) {\n item.resizable = undefined;\n if (item.sortable != undefined && item.sortable != \"\") {\n let order = item.field + (item.sortable == 0 ? \" ASC \" : \" DESC \");\n this.orderByColumns.push(order);\n }\n ////时间类型\n if (!item.width && (item.selectDom == 3 || item.selectDom == 6)) {\n item.minWidth = 150;\n } else if (!item.width && item.title) {\n item.minWidth = item.title.length * 30;\n }\n },\n setShowFooter(item) {\n if (item['totalToOtherProp']) {\n this.table['show-footer'] = true;\n }\n },\n toParseOtherProp(item) {\n //其他属性赋值\n try {\n let otherProp = JSON.parse(item.otherProp);\n item.otherProp = otherProp;\n for (let key of Object.keys(otherProp)) {\n item[key] = otherProp[key];\n }\n } catch (e) {\n if (item.otherProp) {\n console.error(item.field + \"其他属性无法解析:\" + item.otherProp);\n }\n item.otherProp = {};\n }\n if (item['totalToOtherProp'] === undefined) {\n item['totalToOtherProp'] = '';\n }\n },\n /**\r\n * 设置搜索\r\n * @param items\r\n */\n setSearchArea(items) {\n if (items.length != 0) {\n items.push({\n itemRender: {\n name: '$buttons',\n children: [{\n props: {\n type: 'submit',\n content: '查询',\n status: 'primary'\n },\n events: {\n click: this.query\n }\n }, {\n props: {\n type: 'button',\n content: '重置'\n },\n events: {\n click: this.resetQuery\n }\n }]\n }\n });\n this.table.formConfig.size = this.table.size;\n }\n this.table.formConfig.items = items;\n },\n setFilters(o) {\n if (o.dictCode) {\n o.filters = this.dictVal(o.dictCode);\n o.filterMultiple = true;\n o.filterMethod = ({\n option,\n row,\n column\n }) => {};\n } else {\n // o.slots={\n // header:'OlTableFilterRender'\n // }\n o.filters = [{\n data: ''\n }];\n o.filterMultiple = false;\n o.filterRender = {\n name: 'FilterExtend'\n };\n o.cellType = this.getType(o.selectDom);\n }\n o.filterMethod = this.filterMethod;\n },\n filterMethod({\n option,\n row,\n column\n }) {\n const {\n type,\n value,\n min,\n max\n } = option?.data || {};\n const cellValue = String(row[column.field]);\n switch (type) {\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_4___default().EQUAL):\n return this.isEqual(cellValue, value);\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_4___default().NOT_EQUAL):\n return this.isNotEqual(cellValue, value);\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_4___default().STARTS_WITH):\n return this.startsWith(cellValue, value);\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_4___default().ENDS_WITH):\n return this.endsWith(cellValue, value);\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_4___default().CONTAINS):\n return this.contains(cellValue, value);\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_4___default().BETWEEN):\n if (column.cellType === 'date' || column.cellType === 'datetime') {\n return this.dateTimeFilterMethod({\n cellValue,\n min,\n max\n });\n }\n return this.isInRange(cellValue, min, max);\n default:\n if (option.value) {\n return cellValue === option.value;\n }\n return true;\n }\n },\n /**\r\n * 数值范围筛选方法\r\n * @param cellValue\r\n * @param min\r\n * @param max\r\n * @returns {boolean}\r\n */\n isInRange(cellValue, min, max) {\n const numValue = Number(cellValue) || 0;\n const numMin = Number(min) || -Infinity;\n const numMax = Number(max) || Infinity;\n return numValue >= numMin && numValue <= numMax;\n },\n /**\r\n * 判断是否包含开头\r\n * @param cellValue\r\n * @param value\r\n * @returns {*}\r\n */\n endsWith(cellValue, value) {\n if (Array.isArray(value)) {\n return value.some(item => cellValue.endsWith(item));\n }\n return cellValue.endsWith(value);\n },\n /**\r\n * 判断是否包含开头\r\n * @param cellValue\r\n * @param value\r\n * @returns {*}\r\n */\n startsWith(cellValue, value) {\n if (Array.isArray(value)) {\n return value.some(item => cellValue.startsWith(item));\n }\n return cellValue.startsWith(value);\n },\n /**\r\n * 判断是否包含\r\n * @param cellValue\r\n * @param value\r\n * @returns {*}\r\n */\n contains(cellValue, value) {\n if (Array.isArray(value)) {\n return value.some(item => cellValue.includes(item));\n }\n return cellValue.includes(value);\n },\n /**\r\n * 判断字符串与值是否不相等(支持值可能是数组的情况)\r\n * @param {string} cellValue - 要比较的字符串\r\n * @param {string|Array} value - 要比较的值(可以是字符串或数组)\r\n * @returns {boolean} 是否不相等\r\n */\n isNotEqual(cellValue, value) {\n // 如果value是数组,循环判断是否包含cellValue\n if (Array.isArray(value)) {\n return !value.some(item => item === cellValue);\n }\n\n // 如果value不是数组,直接比较字符串\n return cellValue !== value;\n },\n /**\r\n * 比较字符串与值是否相等(支持值可能是数组的情况)\r\n * @param {string} cellValue - 要比较的字符串\r\n * @param {string|Array} value - 要比较的值(可以是字符串或数组)\r\n * @returns {boolean} 是否相等\r\n */\n isEqual(cellValue, value) {\n // 如果value是数组,循环判断是否包含cellValue\n if (Array.isArray(value)) {\n return value.some(item => item === cellValue);\n }\n\n // 如果value不是数组,直接比较字符串\n return cellValue === value;\n },\n /**\r\n * 日期时间范围筛选方法\r\n * @param cellValue 表格数据值\r\n * @param min 最小值\r\n * @param max 最大值\r\n * @returns {boolean}\r\n */\n dateTimeFilterMethod({\n cellValue,\n min,\n max\n }) {\n if (!min && !max) {\n return true;\n }\n const rowValue = cellValue ? new Date(cellValue) : null;\n const startDate = min ? new Date(min) : null;\n const endDate = max ? new Date(max) : null;\n if (startDate && endDate) {\n return rowValue >= startDate && rowValue <= endDate;\n } else if (startDate) {\n return rowValue >= startDate;\n } else if (endDate) {\n return rowValue <= endDate;\n }\n return true;\n },\n getVNode(o, items) {\n if (o.selectType == undefined) {\n return;\n }\n //99是范围查询\n if (o.selectType == 99) {\n let itemStart = this.initFormConfig(o, 5);\n let itemEnd = this.initFormConfig(o, 6);\n //时间范围查询\n if (o.selectDom == 3 || o.selectDom == 6) {\n let placeholder = o.selectDom == 3 ? '时间' : '';\n itemStart.placeholder = '请选择开始日期' + placeholder;\n delete itemStart.itemRender;\n itemEnd.placeholder = '请选择结束日期' + placeholder;\n }\n items.push(itemStart);\n items.push(itemEnd);\n } else {\n items.push(this.initFormConfig(o));\n }\n },\n initFormConfig(o, type) {\n let key = o.fieldNameSEARCHToOtherProp != undefined && o.fieldNameSEARCHToOtherProp != '' ? o.fieldNameSEARCHToOtherProp : o.tableField;\n if (o.tableNameSEARCHToOtherProp != undefined && o.tableNameSEARCHToOtherProp != '') {\n key = o.tableNameSEARCHToOtherProp + '.' + key;\n }\n let item = {\n align: 'left',\n field: key,\n span: 6,\n searchSort: o.searchSort,\n title: o.titleSEARCHToOtherProp != undefined ? o.titleSEARCHToOtherProp : o.title,\n key: key,\n type: o.selectType,\n selectDom: o.selectDom,\n tableName: o.tableNameSEARCHToOtherProp,\n clearable: o.clearableSEARCHToOtherProp == '1' ? false : true,\n toDate: o.toDateSEARCHToOtherProp,\n itemRender: {\n name: '$input',\n props: {\n placeholder: '请输入' + o.title,\n clearable: o.clearableSEARCHToOtherProp == '1' ? false : true\n }\n }\n };\n try {\n this.table.formConfig.data[item.key] = eval(o.valueSEARCHToOtherProp);\n } catch (e) {}\n if (type == 5) {\n item.title = o.title + \"开始\";\n item.type = 5;\n item.field = \"$\" + o.tableField;\n item.key = \"$\" + o.tableField;\n } else if (type == 6) {\n item.field = o.tableField + \"$\";\n item.type = 6;\n item.key = o.tableField + \"$\";\n item.title = o.title + \"结束\";\n }\n if ((item.type == 6 || item.type == 5) && o.selectDom == undefined) {\n o.selectDom = 7;\n }\n this.getItemRender(o, item, type);\n if (item.title && item.title.length > 6) {\n item.titleWidth = 20 * (item.title.length - 2);\n } else if (item.title.toString().trim().length == 0) {\n item.titleWidth = 0;\n }\n if (o.spanSEARCHToOtherProp != undefined) {\n item.span = 6;\n }\n return item;\n },\n getItemRender(o, item, type) {\n if (o.dictCode) {\n delete item.itemRender;\n item.slots = {\n default: o.selectDom + item.field\n };\n item.slotsName = o.selectDom + item.field;\n item.options = this.dictVal(o.dictCode);\n item.placeholder = '请选择' + o.title;\n item.clearable = o.clearableSEARCHToOtherProp == '1';\n item.multiple = o.selectDom == '8';\n } else if (o.selectDom == 7) {\n item.itemRender.props.type = 'integer';\n } else if (o.selectDom == 10) {\n item.itemRender.name = 'textarea';\n } else if (o.selectDom == 3 || o.selectDom == 6) {\n delete item.itemRender;\n item.domDate = true;\n item.selectType = o.selectType;\n //这里跟element plus不一样\n item.domFormat = vue__WEBPACK_IMPORTED_MODULE_5__.version.split('.')[0] == 2 ? 'yyyy-MM-dd' : 'YYYY-MM-DD';\n if (item.selectDom == 3) {\n item.domFormat = item.domFormat + ' HH:mm:ss';\n item.domType = o.selectType == 98 ? \"datetimerange\" : 'datetime';\n } else {\n item.domType = o.selectType == 98 ? \"daterange\" : 'date';\n }\n item.slots = {\n default: o.selectDom + item.field + \"_time\"\n };\n item.slotsName = o.selectDom + item.field + \"_time\";\n item.placeholder = '请选择';\n if (type == 5) {\n item.placeholder += \"开始\";\n } else if (type == 6) {\n item.placeholder += \"结束\";\n }\n if (o.selectDom == 3) {\n item.placeholder += \"时间\";\n }\n }\n },\n setColumnShowOverFlow(column, optionObj) {\n if (optionObj) {\n if (optionObj.table && optionObj.table.columnConfig && optionObj.table.columnConfig.showOverflow) {\n if (column.type != 'seq' || column.type != 'checkbox') {\n column.showOverflow = optionObj.table.columnConfig.showOverflow;\n }\n }\n }\n },\n initMergeCells() {\n if (this.table.mergeCells) {\n this.table.mergeCells = JSON.parse(this.table.mergeCells);\n return;\n }\n if (this.table.mergeFields && this.table.mergeFields.length != 0) {\n this.table.spanMethod = this.mergeRowMethod;\n }\n },\n // 通用行合并函数(将相同多列数据合并为一行)\n mergeRowMethod({\n row,\n _rowIndex,\n column,\n visibleData\n }) {\n const cellValue = row[column.field];\n if (cellValue && this.table.mergeFields.includes(column.field)) {\n const prevRow = visibleData[_rowIndex - 1];\n let nextRow = visibleData[_rowIndex + 1];\n if (prevRow && prevRow[column.field] === cellValue) {\n return {\n rowspan: 0,\n colspan: 0\n };\n } else {\n let countRowspan = 1;\n while (nextRow && nextRow[column.field] === cellValue) {\n nextRow = visibleData[++countRowspan + _rowIndex];\n }\n if (countRowspan > 1) {\n return {\n rowspan: countRowspan,\n colspan: 1\n };\n }\n }\n }\n },\n setDictCellStyle({\n row,\n rowIndex,\n $rowIndex,\n column,\n columnIndex,\n $columnIndex\n }) {\n if (column.params && column.params.cssClass) {\n return column.params.cssClass[row[column[(0,_utils_columnProp__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(column)]]];\n }\n },\n setTableStyle(option) {\n if (option['cell-style'] === undefined) {\n option['cell-style'] = {\n flag: \"flag##function#\",\n isFunction: true\n };\n }\n option['cell-style']['code'] = \"let OTMixinColumnMethod_setDictCellStyle = this.setDictCellStyle(params); if(OTMixinColumnMethod_setDictCellStyle){ return OTMixinColumnMethod_setDictCellStyle;}\\n\" + option['cell-style']['code'];\n }\n }\n};\n\n//# sourceURL=webpack://olp-table/./src/mixins/VTMixin/OTMixinColumnMethod.js?");
|
|
10894
10894
|
|
|
10895
10895
|
/***/ }),
|
|
10896
10896
|
|