olp-table 7.2.68 → 7.2.69
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 +8 -8
- package/olp-table.umd.js +8 -8
- package/olp-table.umd.min.js +8 -8
- package/package.json +1 -1
package/olp-table.common.js
CHANGED
|
@@ -938,7 +938,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core
|
|
|
938
938
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
939
939
|
|
|
940
940
|
"use strict";
|
|
941
|
-
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/* harmony import */ var _components_ol_dialog_tagForm_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/components/ol-dialog-tagForm.vue */ \"./src/components/ol-dialog-tagForm.vue\");\n/* harmony import */ var _components_ol_table_select_config_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/components/ol-table-select-config.vue */ \"./src/components/ol-table-select-config.vue\");\n\n\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 isTable: {\n default: true,\n type: Boolean\n }\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 setCardColumnVisible();\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 const setCardColumnVisible = () => {\n let field = ['tableSaveToOtherProp', 'totalToOtherProp', 'groupTotalToOtherProp', 'groupToOtherProp', 'mergeFlag', 'columnAuth', 'width', 'resizable', 'spanSEARCHToOtherProp', 'totalToOtherProp'];\n for (let column of gridOptions.columns) {\n if (field.includes(column.field)) {\n column.visible = props.isTable;\n }\n // 标签配置只有card配置才显示\n if ('tagJsonToOtherProp' === column.field) {\n column.visible = !props.isTable;\n }\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: 95,\n params: {\n all: 0\n },\n slots: {\n header: 'checkedBox_header',\n default: 'checkedBox_default'\n }\n }, {\n title: '必填',\n field: 'required',\n width: 60,\n params: {\n all: null\n },\n slots: {\n header: 'checkedBox_header',\n default: 'checkedBox_default'\n }\n }, {\n title: '不导入',\n field: 'importToOtherProp',\n width: 95,\n params: {\n all: 0\n },\n slots: {\n header: 'checkedBox_header',\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 title: '标签配置',\n field: 'tagJsonToOtherProp',\n width: 168,\n slots: {\n default: 'tag_form_default'\n }\n }, {\n title: '表格选取配置',\n field: 'tableSelectConfToOtherProp',\n width: 100,\n slots: {\n default: 'tableSelectConf_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 setCardColumnVisible,\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 OlDialogTagForm: _components_ol_dialog_tagForm_vue__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n OlTableSelectConfig: _components_ol_table_select_config_vue__WEBPACK_IMPORTED_MODULE_14__[\"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/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");
|
|
941
|
+
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/* harmony import */ var _components_ol_dialog_tagForm_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/components/ol-dialog-tagForm.vue */ \"./src/components/ol-dialog-tagForm.vue\");\n/* harmony import */ var _components_ol_table_select_config_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/components/ol-table-select-config.vue */ \"./src/components/ol-table-select-config.vue\");\n\n\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 isTable: {\n default: true,\n type: Boolean\n }\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 setCardColumnVisible();\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 const setCardColumnVisible = () => {\n let field = ['tableSaveToOtherProp', 'totalToOtherProp', 'groupTotalToOtherProp', 'groupToOtherProp', 'mergeFlag', 'columnAuth', 'width', 'resizable', 'spanSEARCHToOtherProp', 'totalToOtherProp'];\n for (let column of gridOptions.columns) {\n if (field.includes(column.field)) {\n column.visible = props.isTable;\n }\n // 标签配置只有card配置才显示\n if ('tagJsonToOtherProp' === column.field) {\n column.visible = !props.isTable;\n }\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: 95,\n params: {\n all: 0\n },\n slots: {\n header: 'checkedBox_header',\n default: 'checkedBox_default'\n }\n }, {\n title: '必填',\n field: 'required',\n width: 60,\n params: {\n all: null\n },\n slots: {\n header: 'checkedBox_header',\n default: 'checkedBox_default'\n }\n }, {\n title: '不导入',\n field: 'importToOtherProp',\n width: 95,\n params: {\n all: 0\n },\n slots: {\n header: 'checkedBox_header',\n default: 'checkedBox_default'\n }\n }, {\n title: '插槽',\n field: 'customSlotsToOtherProp',\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: '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 title: '标签配置',\n field: 'tagJsonToOtherProp',\n width: 168,\n slots: {\n default: 'tag_form_default'\n }\n }, {\n title: '表格选取配置',\n field: 'tableSelectConfToOtherProp',\n width: 100,\n slots: {\n default: 'tableSelectConf_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 setCardColumnVisible,\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 OlDialogTagForm: _components_ol_dialog_tagForm_vue__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n OlTableSelectConfig: _components_ol_table_select_config_vue__WEBPACK_IMPORTED_MODULE_14__[\"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/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");
|
|
942
942
|
|
|
943
943
|
/***/ }),
|
|
944
944
|
|
|
@@ -1587,7 +1587,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
1587
1587
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1588
1588
|
|
|
1589
1589
|
"use strict";
|
|
1590
|
-
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 style: {\n \"height\": \"100%\",\n \"background-color\": \"white\"\n },\n \"element-loading-text\": \"正在初始化页面...\"\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__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_1, [$data.theme == 1 ? ((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 }, _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)(
|
|
1590
|
+
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 style: {\n \"height\": \"100%\",\n \"background-color\": \"white\"\n },\n \"element-loading-text\": \"正在初始化页面...\"\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__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_1, [$data.theme == 1 ? ((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 }, _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)(scope => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, item, (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeProps)((0,vue__WEBPACK_IMPORTED_MODULE_0__.guardReactiveProps)(scope)))])\n };\n })]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, [\"tabData\", \"uuid\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), $data.theme == 2 ? ((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 }, _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)(scope => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, item, (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeProps)((0,vue__WEBPACK_IMPORTED_MODULE_0__.guardReactiveProps)(scope)))])\n };\n })]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, [\"tabData\", \"uuid\"])) : $data.theme == 3 ? ((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 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)(scope => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, item, (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeProps)((0,vue__WEBPACK_IMPORTED_MODULE_0__.guardReactiveProps)(scope)))])\n };\n })]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, [\"searchRow\", \"tabData\", \"uuid\"])) : $data.theme == 4 ? ((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 }, _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)(scope => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, item, (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeProps)((0,vue__WEBPACK_IMPORTED_MODULE_0__.guardReactiveProps)(scope)))])\n };\n })]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, [\"tabData\", \"uuid\"])) : $data.theme == 5 ? ((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 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)(scope => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, item, (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeProps)((0,vue__WEBPACK_IMPORTED_MODULE_0__.guardReactiveProps)(scope)))])\n };\n })]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, [\"searchRow\", \"tabData\", \"uuid\"])) : $data.theme == 6 ? ((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 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)(scope => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, item, (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeProps)((0,vue__WEBPACK_IMPORTED_MODULE_0__.guardReactiveProps)(scope)))])\n };\n })]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, [\"searchRow\", \"tabData\", \"uuid\"])) : $data.theme == 7 ? ((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 }, _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)(scope => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, item, (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeProps)((0,vue__WEBPACK_IMPORTED_MODULE_0__.guardReactiveProps)(scope)))])\n };\n })]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, [\"uuid\", \"treeUuid\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)])), [[_directive_loading, $data.loading]]);\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");
|
|
1591
1591
|
|
|
1592
1592
|
/***/ }),
|
|
1593
1593
|
|
|
@@ -1708,7 +1708,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
1708
1708
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1709
1709
|
|
|
1710
1710
|
"use strict";
|
|
1711
|
-
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_olTable = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"olTable\");\n const _component_el_tab_pane = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"el-tab-pane\");\n const _component_el_tabs = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"el-tabs\");\n return _ctx.$attrs.tabData.extendConfig?.tableTabs?.[_ctx.theme]?.tabs?.length >= 1 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_el_tabs, {\n key: 0,\n modelValue: this.$attrs.tabData.extendConfig.tableTabs[_ctx.theme].activeName,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => this.$attrs.tabData.extendConfig.tableTabs[_ctx.theme].activeName = $event),\n onTabChange: _ctx.handleTabChange,\n type: \"card\",\n class: \"uniform-height-tabs\"\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)(_ctx.$attrs.tabData.extendConfig.tableTabs?.[_ctx.theme]?.tabs, item => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_el_tab_pane, {\n key: item.name,\n label: item.label,\n name: item.name,\n style: {\n \"height\": \"100%\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_olTable, (0,vue__WEBPACK_IMPORTED_MODULE_0__.mergeProps)({\n ref_for: true\n }, _ctx.$attrs, {\n key: item.name,\n ref_for: true,\n ref: _ctx.getRefsName(item),\n uuid: _ctx.uuid,\n \"init-data-source\": false,\n theme: item.name\n }),
|
|
1711
|
+
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_olTable = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"olTable\");\n const _component_el_tab_pane = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"el-tab-pane\");\n const _component_el_tabs = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"el-tabs\");\n return _ctx.$attrs.tabData.extendConfig?.tableTabs?.[_ctx.theme]?.tabs?.length >= 1 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_el_tabs, {\n key: 0,\n modelValue: this.$attrs.tabData.extendConfig.tableTabs[_ctx.theme].activeName,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => this.$attrs.tabData.extendConfig.tableTabs[_ctx.theme].activeName = $event),\n onTabChange: _ctx.handleTabChange,\n type: \"card\",\n class: \"uniform-height-tabs\"\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)(_ctx.$attrs.tabData.extendConfig.tableTabs?.[_ctx.theme]?.tabs, item => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_el_tab_pane, {\n key: item.name,\n label: item.label,\n name: item.name,\n style: {\n \"height\": \"100%\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_olTable, (0,vue__WEBPACK_IMPORTED_MODULE_0__.mergeProps)({\n ref_for: true\n }, _ctx.$attrs, {\n key: item.name,\n ref_for: true,\n ref: _ctx.getRefsName(item),\n uuid: _ctx.uuid,\n \"init-data-source\": false,\n theme: item.name\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createSlots)({\n _: 2 /* DYNAMIC */\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)(Object.keys(_ctx.$slots), slotName => {\n return {\n name: slotName,\n fn: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(scope => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, slotName, (0,vue__WEBPACK_IMPORTED_MODULE_0__.mergeProps)({\n ref_for: true\n }, scope), undefined, true)])\n };\n })]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, [\"uuid\", \"theme\"]))]),\n _: 2 /* DYNAMIC */\n }, 1032 /* PROPS, DYNAMIC_SLOTS */, [\"label\", \"name\"]);\n }), 128 /* KEYED_FRAGMENT */))]),\n _: 3 /* FORWARDED */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabChange\"])) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_olTable, (0,vue__WEBPACK_IMPORTED_MODULE_0__.mergeProps)({\n key: 1\n }, _ctx.$attrs, {\n ref: \"tableModel\",\n uuid: _ctx.uuid,\n \"init-data-source\": false,\n theme: _ctx.theme\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createSlots)({\n _: 2 /* DYNAMIC */\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)(Object.keys(_ctx.$slots), slotName => {\n return {\n name: slotName,\n fn: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(scope => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, slotName, (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeProps)((0,vue__WEBPACK_IMPORTED_MODULE_0__.guardReactiveProps)(scope)), undefined, true)])\n };\n })]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, [\"uuid\", \"theme\"]));\n}\n\n//# sourceURL=webpack://olp-table/./src/components/table/ol-tab-table/index.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
|
|
1712
1712
|
|
|
1713
1713
|
/***/ }),
|
|
1714
1714
|
|
|
@@ -1796,7 +1796,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
1796
1796
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1797
1797
|
|
|
1798
1798
|
"use strict";
|
|
1799
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/core-js/modules/es.iterator.filter.js\");\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nconst _hoisted_1 = [\"onClick\"];\nconst _hoisted_2 = {\n class: \"video-preview\"\n};\nconst _hoisted_3 = [\"src\", \"height\"];\nconst _hoisted_4 = {\n key: 1\n};\nconst _hoisted_5 = {\n key: 0,\n class: \"title\"\n};\nconst _hoisted_6 = {\n key: 1,\n style: {\n \"margin\": \"0px 15px -30px 0px\"\n }\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"vxe-icon-fullscreen\",\n title: \"全屏\"\n};\nconst _hoisted_8 = {\n key: 1,\n class: \"vxe-icon-minimize\",\n title: \"取消全屏\"\n};\nconst _hoisted_9 = {\n class: \"video-dialog-container\"\n};\nconst _hoisted_10 = [\"src\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_olSelectDom = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"olSelectDom\");\n const _component_el_image = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-image\");\n const _component_vxe_checkbox = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"vxe-checkbox\");\n const _component_Icon = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"Icon\");\n const _component_el_link = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-link\");\n const _component_ol_table_tool_btn = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"ol-table-tool-btn\");\n const _component_el_button = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-button\");\n const _component_olTableOperate = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"olTableOperate\");\n const _component_ol_table_column_dict_color = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"ol-table-column-dict-color\");\n const _component_olPager = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"olPager\");\n const _component_vxe_grid = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"vxe-grid\");\n const _component_ol_table_column_config = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"ol-table-column-config\");\n const _component_olForm = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"olForm\");\n const _component_OlMainFormSubTable = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"OlMainFormSubTable\");\n const _component_el_dialog = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-dialog\");\n const _component_ol_dialog_table = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"ol-dialog-table\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_2__.Fragment, null, [_ctx.table.formConfig.show ? (0,vue__WEBPACK_IMPORTED_MODULE_2__.renderSlot)(_ctx.$slots, $options.getSlotName('search'), {\n key: 0\n }, undefined, true) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_vxe_grid, (0,vue__WEBPACK_IMPORTED_MODULE_2__.mergeProps)(_ctx.table, {\n class: \"ol-table\",\n \"footer-method\": _ctx.footerMethod,\n onCheckboxChange: _ctx.selectRowChange,\n onRadioChange: _ctx.selectRowChange\n }, (0,vue__WEBPACK_IMPORTED_MODULE_2__.toHandlers)(_ctx.events), {\n onCheckboxAll: _ctx.selectRowChange\n }), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createSlots)({\n img_default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(({\n row,\n column\n }) => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_image, {\n style: {\n \"height\": \"60px\",\n \"width\": \"60px\"\n },\n src: row[$options.getFiledName(column)],\n \"preview-src-list\": [row[$options.getFiledName(column)]],\n \"list-type\": \"picture-card\",\n class: \"w-full h-auto rounded-md\"\n }, null, 8 /* PROPS */, [\"src\", \"preview-src-list\"])]),\n checkbox_default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(({\n column,\n row\n }) => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_vxe_checkbox, {\n modelValue: row[column.field],\n \"onUpdate:modelValue\": $event => row[column.field] = $event,\n checkedValue: 1,\n uncheckedValue: 0\n }, null, 8 /* PROPS */, [\"modelValue\", \"onUpdate:modelValue\"]), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" <el-checkbox v-model=\\\"row[column.field]\\\"\"), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" true-value=\\\"1\\\"\"), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" false-value=\\\"0\\\">{{ row[column.field] }}\"), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" </el-checkbox>\")]),\n video_default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(({\n row,\n column\n }) => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", {\n onClick: $event => $options.openVideoDialog(row[$options.getFiledName(column)]),\n style: {\n \"cursor\": \"pointer\"\n },\n class: \"video-thumbnail-container\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"video\", {\n ref: \"videoPreview\",\n src: row[$options.getFiledName(column)],\n preload: \"metadata\",\n width: \"100%\",\n height: (this.table.rowConfig?.height ?? 180) - 20,\n muted: \"\",\n class: \"video-preview-element\"\n }, null, 8 /* PROPS */, _hoisted_3), _cache[6] || (_cache[6] = (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", {\n class: \"video-overlay\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"i\", {\n class: \"el-icon-video-play\"\n })], -1 /* CACHED */))])], 8 /* PROPS */, _hoisted_1)]),\n icon_default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(({\n row,\n column\n }) => [row[$options.getFiledName(column)]?.includes(':') ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_Icon, {\n key: 0,\n icon: row[$options.getFiledName(column)]\n }, null, 8 /* PROPS */, [\"icon\"])) : ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementBlock)(\"i\", {\n key: 1,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_2__.normalizeClass)(row[$options.getFiledName(column)])\n }, null, 2 /* CLASS */)), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_2__.toDisplayString)(row[column[$options.getFiledName(column)]]), 1 /* TEXT */)]),\n selectTable_default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(({\n row,\n column\n }) => [$options.isOpenSelectTable(column) ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_link, {\n key: 0,\n type: \"primary\",\n onClick: $event => $options.openSelectTable(column, row)\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_2__.toDisplayString)($options.getSelectTableValue(column, row, true)), 1 /* TEXT */)]),\n _: 2 /* DYNAMIC */\n }, 1032 /* PROPS, DYNAMIC_SLOTS */, [\"onClick\"])) : ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementBlock)(\"span\", _hoisted_4, (0,vue__WEBPACK_IMPORTED_MODULE_2__.toDisplayString)($options.getSelectTableValue(column, row, false)), 1 /* TEXT */))]),\n header_left: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [_ctx.table['table-title'] ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementBlock)(\"span\", _hoisted_5, (0,vue__WEBPACK_IMPORTED_MODULE_2__.toDisplayString)(_ctx.table['table-title']), 1 /* TEXT */)) : ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementBlock)(\"span\", _hoisted_6)), (0,vue__WEBPACK_IMPORTED_MODULE_2__.renderSlot)(_ctx.$slots, $options.getSlotName('headerLeftLeft'), {}, undefined, true), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_ol_table_tool_btn, {\n size: _ctx.elSize,\n loading: _ctx.loading,\n value: _ctx.toolBtn.filter(o => o.alignMode == 'left'),\n currentPermi: $data.uuid + ':' + $props.theme + ':',\n onToolbarBtnClick: _cache[0] || (_cache[0] = $event => _ctx.toolbarBtnClick($event))\n }, null, 8 /* PROPS */, [\"size\", \"loading\", \"value\", \"currentPermi\"]), (0,vue__WEBPACK_IMPORTED_MODULE_2__.renderSlot)(_ctx.$slots, $options.getSlotName('headerLeftRight'), {}, undefined, true)]),\n header_right: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.renderSlot)(_ctx.$slots, $options.getSlotName('headerRightLeft'), {}, undefined, true), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_ol_table_tool_btn, {\n size: _ctx.elSize,\n loading: _ctx.loading,\n value: _ctx.toolBtn.filter(o => o.alignMode == 'right' && ['olp_fullscreen', 'olp_refresh', 'olp_setting', 'olp_search'].indexOf(o.code) == -1),\n currentPermi: $data.uuid + ':' + $props.theme + ':',\n onToolbarBtnClick: _cache[2] || (_cache[2] = $event => _ctx.toolbarBtnClick($event))\n }, {\n right: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [$options.showToolName('olp_fullscreen') ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_button, {\n key: 0,\n size: _ctx.elSize,\n onClick: _ctx.zoomEvent,\n circle: \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [!_ctx.isMaximized ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementBlock)(\"i\", _hoisted_7)) : ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementBlock)(\"i\", _hoisted_8))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"size\", \"onClick\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), $options.showToolName('olp_refresh') ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_button, {\n key: 1,\n size: _ctx.elSize,\n onClick: _ctx.query,\n title: \"刷新\",\n circle: \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => _cache[7] || (_cache[7] = [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"i\", {\n class: \"vxe-icon-refresh\"\n }, null, -1 /* CACHED */)])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"size\", \"onClick\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), $options.showToolName('olp_setting') ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_button, {\n key: 2,\n size: _ctx.elSize,\n title: \"设置\",\n onClick: _cache[1] || (_cache[1] = $event => _ctx.$refs.olTableColumnConfig.open(_ctx.tableConfig, _ctx.tableConfig.uuid, _ctx.table.columns)),\n circle: \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => _cache[8] || (_cache[8] = [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"i\", {\n class: \"vxe-icon-setting-fill\"\n }, null, -1 /* CACHED */)])),\n _: 1 /* STABLE */,\n __: [8]\n }, 8 /* PROPS */, [\"size\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), $options.showToolName('olp_search') ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_button, {\n key: 3,\n size: _ctx.elSize,\n title: \"搜索\",\n onClick: _ctx.toggleFormDisplay,\n circle: \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => _cache[9] || (_cache[9] = [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"i\", {\n class: \"vxe-icon-search\"\n }, null, -1 /* CACHED */)])),\n _: 1 /* STABLE */,\n __: [9]\n }, 8 /* PROPS */, [\"size\", \"onClick\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true)]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"size\", \"loading\", \"value\", \"currentPermi\"]), (0,vue__WEBPACK_IMPORTED_MODULE_2__.renderSlot)(_ctx.$slots, $options.getSlotName('headerRightRight'), {}, undefined, true)]),\n operate: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(({\n row\n }) => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.renderSlot)(_ctx.$slots, $options.getSlotName('operateLeft'), {}, undefined, true), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_olTableOperate, {\n size: _ctx.elSize,\n row: row,\n value: _ctx.operationBtn,\n onHandleOperationClick: _cache[3] || (_cache[3] = $event => _ctx.handleOperationClick($event))\n }, null, 8 /* PROPS */, [\"size\", \"row\", \"value\"]), (0,vue__WEBPACK_IMPORTED_MODULE_2__.renderSlot)(_ctx.$slots, $options.getSlotName('operateRight'), {}, undefined, true)]),\n _: 2 /* DYNAMIC */\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.renderList)(_ctx.table.formConfig.items.filter(item => item.slotsName != undefined), item => {\n return {\n name: item.slotsName,\n fn: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_olSelectDom, {\n item: item,\n modelValue: _ctx.table.formConfig.data[item.key],\n \"onUpdate:modelValue\": $event => _ctx.table.formConfig.data[item.key] = $event,\n size: _ctx.elSize\n }, null, 8 /* PROPS */, [\"item\", \"modelValue\", \"onUpdate:modelValue\", \"size\"])])\n };\n }), _ctx.pagination.enabled && _ctx.table.columns.length != 0 ? {\n name: \"pager\",\n fn: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_olPager, (0,vue__WEBPACK_IMPORTED_MODULE_2__.mergeProps)(_ctx.pagination, {\n onPageChange: _ctx.handlePageChange,\n onClearSelected: _ctx.clearSelected\n }), {\n left: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_ol_table_column_dict_color, {\n columns: _ctx.table.columns\n }, null, 8 /* PROPS */, [\"columns\"]), (0,vue__WEBPACK_IMPORTED_MODULE_2__.renderSlot)(_ctx.$slots, $options.getSlotName('pageLeft'), {}, undefined, true)]),\n right: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.renderSlot)(_ctx.$slots, $options.getSlotName('pageRight'), {}, undefined, true)]),\n _: 3 /* FORWARDED */\n }, 16 /* FULL_PROPS */, [\"onPageChange\", \"onClearSelected\"])]),\n key: \"0\"\n } : undefined]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, [\"footer-method\", \"onCheckboxChange\", \"onRadioChange\", \"onCheckboxAll\"]), _ctx.customUrl != undefined ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)((0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveDynamicComponent)(_ctx.customUrl), {\n key: 1,\n ref: \"components\",\n onEmits: _ctx.emits\n }, null, 40 /* PROPS, NEED_HYDRATION */, [\"onEmits\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_ol_table_column_config, {\n ref: \"olTableColumnConfig\",\n onUpdate: _ctx.updateColumn,\n onOk: _cache[4] || (_cache[4] = $event => _ctx.init(true))\n }, null, 8 /* PROPS */, [\"onUpdate\"]), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_olForm, {\n ref: \"form\",\n onQuery: _ctx.query,\n onEmits: _ctx.emits\n }, null, 8 /* PROPS */, [\"onQuery\", \"onEmits\"]), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_OlMainFormSubTable, {\n ref: \"subForm\",\n onQuery: _ctx.query,\n onEmits: _ctx.emits\n }, null, 8 /* PROPS */, [\"onQuery\", \"onEmits\"]), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" 视频播放弹框 \"), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_dialog, {\n modelValue: $data.videoDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $data.videoDialogVisible = $event),\n width: \"800px\",\n \"destroy-on-close\": true,\n center: \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", _hoisted_9, [$data.videoDialogVisible ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementBlock)(\"video\", {\n key: 0,\n ref: \"dialogVideoPlayer\",\n src: $data.currentVideoSrc,\n class: \"dialog-video-player\",\n controls: \"\",\n autoplay: \"\",\n controlsList: \"nodownload\",\n width: \"100%\"\n }, null, 8 /* PROPS */, _hoisted_10)) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true)])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"]), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" 表格选取弹框 \"), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_ol_dialog_table, {\n ref: \"selectTableDialogRef\",\n onEmits: $options.getSelectRowChangeButClick\n }, null, 8 /* PROPS */, [\"onEmits\"])], 64 /* STABLE_FRAGMENT */);\n}\n\n//# sourceURL=webpack://olp-table/./src/components/table/ol-table/index.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
|
|
1799
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/core-js/modules/es.iterator.filter.js\");\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nconst _hoisted_1 = [\"onClick\"];\nconst _hoisted_2 = {\n class: \"video-preview\"\n};\nconst _hoisted_3 = [\"src\", \"height\"];\nconst _hoisted_4 = {\n key: 1\n};\nconst _hoisted_5 = {\n key: 0,\n class: \"title\"\n};\nconst _hoisted_6 = {\n key: 1,\n style: {\n \"margin\": \"0px 15px -30px 0px\"\n }\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"vxe-icon-fullscreen\",\n title: \"全屏\"\n};\nconst _hoisted_8 = {\n key: 1,\n class: \"vxe-icon-minimize\",\n title: \"取消全屏\"\n};\nconst _hoisted_9 = {\n class: \"video-dialog-container\"\n};\nconst _hoisted_10 = [\"src\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_olSelectDom = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"olSelectDom\");\n const _component_el_image = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-image\");\n const _component_vxe_checkbox = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"vxe-checkbox\");\n const _component_Icon = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"Icon\");\n const _component_el_link = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-link\");\n const _component_ol_table_tool_btn = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"ol-table-tool-btn\");\n const _component_el_button = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-button\");\n const _component_olTableOperate = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"olTableOperate\");\n const _component_ol_table_column_dict_color = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"ol-table-column-dict-color\");\n const _component_olPager = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"olPager\");\n const _component_vxe_grid = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"vxe-grid\");\n const _component_ol_table_column_config = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"ol-table-column-config\");\n const _component_olForm = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"olForm\");\n const _component_OlMainFormSubTable = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"OlMainFormSubTable\");\n const _component_el_dialog = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"el-dialog\");\n const _component_ol_dialog_table = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveComponent)(\"ol-dialog-table\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_2__.Fragment, null, [_ctx.table.formConfig.show ? (0,vue__WEBPACK_IMPORTED_MODULE_2__.renderSlot)(_ctx.$slots, $options.getSlotName('search'), {\n key: 0\n }, undefined, true) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_vxe_grid, (0,vue__WEBPACK_IMPORTED_MODULE_2__.mergeProps)(_ctx.table, {\n class: \"ol-table\",\n \"footer-method\": _ctx.footerMethod,\n onCheckboxChange: _ctx.selectRowChange,\n onRadioChange: _ctx.selectRowChange\n }, (0,vue__WEBPACK_IMPORTED_MODULE_2__.toHandlers)(_ctx.events), {\n onCheckboxAll: _ctx.selectRowChange\n }), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createSlots)({\n img_default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(({\n row,\n column\n }) => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_image, {\n style: {\n \"height\": \"60px\",\n \"width\": \"60px\"\n },\n src: row[$options.getFiledName(column)],\n \"preview-src-list\": [row[$options.getFiledName(column)]],\n \"list-type\": \"picture-card\",\n class: \"w-full h-auto rounded-md\"\n }, null, 8 /* PROPS */, [\"src\", \"preview-src-list\"])]),\n checkbox_default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(({\n column,\n row\n }) => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_vxe_checkbox, {\n modelValue: row[column.field],\n \"onUpdate:modelValue\": $event => row[column.field] = $event,\n checkedValue: 1,\n uncheckedValue: 0\n }, null, 8 /* PROPS */, [\"modelValue\", \"onUpdate:modelValue\"]), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" <el-checkbox v-model=\\\"row[column.field]\\\"\"), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" true-value=\\\"1\\\"\"), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" false-value=\\\"0\\\">{{ row[column.field] }}\"), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" </el-checkbox>\")]),\n video_default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(({\n row,\n column\n }) => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", {\n onClick: $event => $options.openVideoDialog(row[$options.getFiledName(column)]),\n style: {\n \"cursor\": \"pointer\"\n },\n class: \"video-thumbnail-container\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"video\", {\n ref: \"videoPreview\",\n src: row[$options.getFiledName(column)],\n preload: \"metadata\",\n width: \"100%\",\n height: (this.table.rowConfig?.height ?? 180) - 20,\n muted: \"\",\n class: \"video-preview-element\"\n }, null, 8 /* PROPS */, _hoisted_3), _cache[6] || (_cache[6] = (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", {\n class: \"video-overlay\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"i\", {\n class: \"el-icon-video-play\"\n })], -1 /* CACHED */))])], 8 /* PROPS */, _hoisted_1)]),\n icon_default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(({\n row,\n column\n }) => [row[$options.getFiledName(column)]?.includes(':') ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_Icon, {\n key: 0,\n icon: row[$options.getFiledName(column)]\n }, null, 8 /* PROPS */, [\"icon\"])) : ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementBlock)(\"i\", {\n key: 1,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_2__.normalizeClass)(row[$options.getFiledName(column)])\n }, null, 2 /* CLASS */)), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_2__.toDisplayString)(row[column[$options.getFiledName(column)]]), 1 /* TEXT */)]),\n selectTable_default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(({\n row,\n column\n }) => [$options.isOpenSelectTable(column) ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_link, {\n key: 0,\n type: \"primary\",\n onClick: $event => $options.openSelectTable(column, row)\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_2__.toDisplayString)($options.getSelectTableValue(column, row, true)), 1 /* TEXT */)]),\n _: 2 /* DYNAMIC */\n }, 1032 /* PROPS, DYNAMIC_SLOTS */, [\"onClick\"])) : ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementBlock)(\"span\", _hoisted_4, (0,vue__WEBPACK_IMPORTED_MODULE_2__.toDisplayString)($options.getSelectTableValue(column, row, false)), 1 /* TEXT */))]),\n header_left: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [_ctx.table['table-title'] ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementBlock)(\"span\", _hoisted_5, (0,vue__WEBPACK_IMPORTED_MODULE_2__.toDisplayString)(_ctx.table['table-title']), 1 /* TEXT */)) : ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementBlock)(\"span\", _hoisted_6)), (0,vue__WEBPACK_IMPORTED_MODULE_2__.renderSlot)(_ctx.$slots, $options.getSlotName('headerLeftLeft'), {}, undefined, true), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_ol_table_tool_btn, {\n size: _ctx.elSize,\n loading: _ctx.loading,\n value: _ctx.toolBtn.filter(o => o.alignMode == 'left'),\n currentPermi: $data.uuid + ':' + $props.theme + ':',\n onToolbarBtnClick: _cache[0] || (_cache[0] = $event => _ctx.toolbarBtnClick($event))\n }, null, 8 /* PROPS */, [\"size\", \"loading\", \"value\", \"currentPermi\"]), (0,vue__WEBPACK_IMPORTED_MODULE_2__.renderSlot)(_ctx.$slots, $options.getSlotName('headerLeftRight'), {}, undefined, true)]),\n header_right: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.renderSlot)(_ctx.$slots, $options.getSlotName('headerRightLeft'), {}, undefined, true), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_ol_table_tool_btn, {\n size: _ctx.elSize,\n loading: _ctx.loading,\n value: _ctx.toolBtn.filter(o => o.alignMode == 'right' && ['olp_fullscreen', 'olp_refresh', 'olp_setting', 'olp_search'].indexOf(o.code) == -1),\n currentPermi: $data.uuid + ':' + $props.theme + ':',\n onToolbarBtnClick: _cache[2] || (_cache[2] = $event => _ctx.toolbarBtnClick($event))\n }, {\n right: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [$options.showToolName('olp_fullscreen') ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_button, {\n key: 0,\n size: _ctx.elSize,\n onClick: _ctx.zoomEvent,\n circle: \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [!_ctx.isMaximized ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementBlock)(\"i\", _hoisted_7)) : ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementBlock)(\"i\", _hoisted_8))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"size\", \"onClick\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), $options.showToolName('olp_refresh') ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_button, {\n key: 1,\n size: _ctx.elSize,\n onClick: _ctx.query,\n title: \"刷新\",\n circle: \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => _cache[7] || (_cache[7] = [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"i\", {\n class: \"vxe-icon-refresh\"\n }, null, -1 /* CACHED */)])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"size\", \"onClick\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), $options.showToolName('olp_setting') ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_button, {\n key: 2,\n size: _ctx.elSize,\n title: \"设置\",\n onClick: _cache[1] || (_cache[1] = $event => _ctx.$refs.olTableColumnConfig.open(_ctx.tableConfig, _ctx.tableConfig.uuid, _ctx.table.columns)),\n circle: \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => _cache[8] || (_cache[8] = [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"i\", {\n class: \"vxe-icon-setting-fill\"\n }, null, -1 /* CACHED */)])),\n _: 1 /* STABLE */,\n __: [8]\n }, 8 /* PROPS */, [\"size\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), $options.showToolName('olp_search') ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(_component_el_button, {\n key: 3,\n size: _ctx.elSize,\n title: \"搜索\",\n onClick: _ctx.toggleFormDisplay,\n circle: \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => _cache[9] || (_cache[9] = [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"i\", {\n class: \"vxe-icon-search\"\n }, null, -1 /* CACHED */)])),\n _: 1 /* STABLE */,\n __: [9]\n }, 8 /* PROPS */, [\"size\", \"onClick\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true)]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"size\", \"loading\", \"value\", \"currentPermi\"]), (0,vue__WEBPACK_IMPORTED_MODULE_2__.renderSlot)(_ctx.$slots, $options.getSlotName('headerRightRight'), {}, undefined, true)]),\n operate: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(({\n row\n }) => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.renderSlot)(_ctx.$slots, $options.getSlotName('operateLeft'), {}, undefined, true), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_olTableOperate, {\n size: _ctx.elSize,\n row: row,\n value: _ctx.operationBtn,\n onHandleOperationClick: _cache[3] || (_cache[3] = $event => _ctx.handleOperationClick($event))\n }, null, 8 /* PROPS */, [\"size\", \"row\", \"value\"]), (0,vue__WEBPACK_IMPORTED_MODULE_2__.renderSlot)(_ctx.$slots, $options.getSlotName('operateRight'), {}, undefined, true)]),\n _: 2 /* DYNAMIC */\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_2__.renderList)(Object.keys(_ctx.$slots), slotName => {\n return {\n name: slotName,\n fn: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(scope => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.renderSlot)(_ctx.$slots, slotName, (0,vue__WEBPACK_IMPORTED_MODULE_2__.normalizeProps)((0,vue__WEBPACK_IMPORTED_MODULE_2__.guardReactiveProps)(scope)), undefined, true)])\n };\n }), (0,vue__WEBPACK_IMPORTED_MODULE_2__.renderList)(_ctx.table.formConfig.items.filter(item => item.slotsName != undefined), item => {\n return {\n name: item.slotsName,\n fn: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_olSelectDom, {\n item: item,\n modelValue: _ctx.table.formConfig.data[item.key],\n \"onUpdate:modelValue\": $event => _ctx.table.formConfig.data[item.key] = $event,\n size: _ctx.elSize\n }, null, 8 /* PROPS */, [\"item\", \"modelValue\", \"onUpdate:modelValue\", \"size\"])])\n };\n }), _ctx.pagination.enabled && _ctx.table.columns.length != 0 ? {\n name: \"pager\",\n fn: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_olPager, (0,vue__WEBPACK_IMPORTED_MODULE_2__.mergeProps)(_ctx.pagination, {\n onPageChange: _ctx.handlePageChange,\n onClearSelected: _ctx.clearSelected\n }), {\n left: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_ol_table_column_dict_color, {\n columns: _ctx.table.columns\n }, null, 8 /* PROPS */, [\"columns\"]), (0,vue__WEBPACK_IMPORTED_MODULE_2__.renderSlot)(_ctx.$slots, $options.getSlotName('pageLeft'), {}, undefined, true)]),\n right: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.renderSlot)(_ctx.$slots, $options.getSlotName('pageRight'), {}, undefined, true)]),\n _: 3 /* FORWARDED */\n }, 16 /* FULL_PROPS */, [\"onPageChange\", \"onClearSelected\"])]),\n key: \"0\"\n } : undefined]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, [\"footer-method\", \"onCheckboxChange\", \"onRadioChange\", \"onCheckboxAll\"]), _ctx.customUrl != undefined ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)((0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveDynamicComponent)(_ctx.customUrl), {\n key: 1,\n ref: \"components\",\n onEmits: _ctx.emits\n }, null, 40 /* PROPS, NEED_HYDRATION */, [\"onEmits\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_ol_table_column_config, {\n ref: \"olTableColumnConfig\",\n onUpdate: _ctx.updateColumn,\n onOk: _cache[4] || (_cache[4] = $event => _ctx.init(true))\n }, null, 8 /* PROPS */, [\"onUpdate\"]), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_olForm, {\n ref: \"form\",\n onQuery: _ctx.query,\n onEmits: _ctx.emits\n }, null, 8 /* PROPS */, [\"onQuery\", \"onEmits\"]), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_OlMainFormSubTable, {\n ref: \"subForm\",\n onQuery: _ctx.query,\n onEmits: _ctx.emits\n }, null, 8 /* PROPS */, [\"onQuery\", \"onEmits\"]), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" 视频播放弹框 \"), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_el_dialog, {\n modelValue: $data.videoDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $data.videoDialogVisible = $event),\n width: \"800px\",\n \"destroy-on-close\": true,\n center: \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_2__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementVNode)(\"div\", _hoisted_9, [$data.videoDialogVisible ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createElementBlock)(\"video\", {\n key: 0,\n ref: \"dialogVideoPlayer\",\n src: $data.currentVideoSrc,\n class: \"dialog-video-player\",\n controls: \"\",\n autoplay: \"\",\n controlsList: \"nodownload\",\n width: \"100%\"\n }, null, 8 /* PROPS */, _hoisted_10)) : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\"v-if\", true)])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"]), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)(\" 表格选取弹框 \"), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)(_component_ol_dialog_table, {\n ref: \"selectTableDialogRef\",\n onEmits: $options.getSelectRowChangeButClick\n }, null, 8 /* PROPS */, [\"onEmits\"])], 64 /* STABLE_FRAGMENT */);\n}\n\n//# sourceURL=webpack://olp-table/./src/components/table/ol-table/index.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
|
|
1800
1800
|
|
|
1801
1801
|
/***/ }),
|
|
1802
1802
|
|
|
@@ -12775,7 +12775,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
12775
12775
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
12776
12776
|
|
|
12777
12777
|
"use strict";
|
|
12778
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ OForm: function() { return /* binding */ OForm; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/core-js/modules/es.iterator.filter.js\");\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.iterator.find.js */ \"./node_modules/core-js/modules/es.iterator.find.js\");\n/* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.iterator.for-each.js */ \"./node_modules/core-js/modules/es.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.iterator.map.js */ \"./node_modules/core-js/modules/es.iterator.map.js\");\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _utils_columnProp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils/columnProp */ \"./src/utils/columnProp.js\");\n/* harmony import */ var _utils_message__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/utils/message */ \"./src/utils/message.js\");\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n/* harmony import */ var _utils_tree__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/utils/tree */ \"./src/utils/tree.js\");\n/* harmony import */ var _utils_formUtils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/utils/formUtils */ \"./src/utils/formUtils.js\");\n/* harmony import */ var _api_dist__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/api/dist */ \"./src/api/dist.js\");\n/* harmony import */ var _store_dict__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/store/dict */ \"./src/store/dict.js\");\n/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/utils/object */ \"./src/utils/object.js\");\n/* harmony import */ var _components_FileUpload_index_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/components/FileUpload/index.vue */ \"./src/components/FileUpload/index.vue\");\n/* harmony import */ var _components_Icon__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/components/Icon */ \"./src/components/Icon/index.js\");\n/* harmony import */ var _components_ol_table_select_vue__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/components/ol-table-select.vue */ \"./src/components/ol-table-select.vue\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst dict = (0,_store_dict__WEBPACK_IMPORTED_MODULE_12__.storeDict)();\nfunction replaceDollarBraces(str) {\n return str.toString().replace(/\\$\\{?([^{}]+)\\}?/g, function (match, innerContent) {\n return innerContent ? `'${innerContent}'` : match;\n });\n}\nconst OForm = {\n name: 'OForm',\n components: {\n FileUpload: _components_FileUpload_index_vue__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n IconSelect: _components_Icon__WEBPACK_IMPORTED_MODULE_15__.IconSelect,\n OlTableSelect: _components_ol_table_select_vue__WEBPACK_IMPORTED_MODULE_16__[\"default\"]\n },\n inject: ['http'],\n props: {\n isDialog: {\n type: Boolean,\n default: true\n }\n },\n data() {\n return {\n js: undefined,\n formData: {},\n optionData: {},\n initOkTabs: [],\n form: {\n column: []\n },\n initOk: false,\n dynamicSlotsTable: [],\n dynamicSlotsField: {},\n dynamicSlotsOtherResult: {},\n show: true,\n state: {\n deleteId: '',\n uuid: '',\n foreignKey: '',\n exBtnDisabled: undefined,\n isDialog: true,\n loading: false,\n fullscreen: false,\n dialogVisible: false,\n title: \"\",\n width: '60%',\n comCommit: true,\n maxHeight: '400px',\n type: '0',\n edit: false,\n saveUrl: '',\n requestType: 'post',\n updateKey: '',\n theme: 't1',\n tableConfigId: '',\n dbName: '',\n tableName: '',\n otherProp: {}\n },\n elCascaderProps: {\n expandTrigger: 'hover',\n emitPath: false,\n checkStrictly: false\n }\n };\n },\n methods: {\n getCascaderOptions(slotName) {\n // console.info('getCascaderOptions',this.form.column)\n return this.form.column.find(item => item.prop === slotName).dicData;\n },\n getCascaderColumn(slotName) {\n // console.info('getCascaderOptions',this.form.column)\n return this.form.column.find(item => item.prop === slotName);\n },\n hideColumn(prop) {\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_13__.setArrayObjectKeyValue)(this.form.column, 'display', false, prop);\n },\n showColumn(prop) {\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_13__.setArrayObjectKeyValue)(this.form.column, 'display', true, prop);\n },\n setOtherProp(params) {\n if (this.state.otherProp) {\n if (this.state.otherProp.createBy && this.state.otherProp.createBy.trim()) {\n params.createBy = this.state.otherProp.createBy.trim();\n }\n if (this.state.otherProp.updateBy && this.state.otherProp.updateBy.trim()) {\n params.updateBy = this.state.otherProp.updateBy.trim();\n }\n }\n },\n /**\r\n * 根据列配置获取数据库表更新数据\r\n * @param column\r\n * @param formData\r\n * @returns {{}}\r\n */\n getTableUpdateValue(column, formData) {\n let columnAndValueMap = {};\n for (let {\n prop,\n tableField,\n tableSaveToOtherProp\n } of column) {\n if (tableField && tableField == '1' || tableSaveToOtherProp == '1') {\n continue;\n }\n let value = formData[prop];\n if (value != undefined) {\n if (value instanceof String) {\n value = value.trim();\n }\n if (value instanceof Array) {\n columnAndValueMap[prop] = value.join(',');\n } else {\n columnAndValueMap[prop] = value;\n }\n }\n }\n return columnAndValueMap;\n },\n /**\r\n * 封装主表单校验逻辑\r\n * @returns {Promise<*>}\r\n */\n async validateMainForm() {\n return new Promise(resolve => {\n const validator = this.state.type !== '0' ? this.$refs.formRef.getNativeForm().validate : (valid, done, msg) => this.$refs.formRef.validate(valid, done, msg);\n validator((valid, ...args) => {\n const [msg, done] = this.state.type === '0' ? [args[1], args[0]] : [args[0]];\n if (!valid) {\n const keys = Object.keys(msg);\n const domRef = this.state.type !== '0' ? this.$refs.formRef.getWidgetRef(keys[0])?.$el : this.$refs.formRef.getPropRef(keys[0])?.$el;\n domRef?.scrollIntoView({\n block: \"center\",\n behavior: \"smooth\"\n });\n (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)().error(`主表单还有${keys.length}项未填写`);\n resolve(false);\n } else {\n resolve(true);\n }\n if (this.state.type === '0') done?.();\n });\n });\n },\n /**\r\n * 封装子表校验逻辑\r\n * @returns {Promise<FlatArray<Awaited<*>[], 1>[]>}\r\n */\n async validateSubTables() {\n // 1. 获取所有子表引用\n const subTablesRefs = this.$refs.subTable?.getTableRefs()?.getTabRefAll() || [];\n\n // 2. 并行执行全量校验(包含新增/修改/删除的数据)\n const validationPromises = subTablesRefs.map(subTable =>\n // 传入 true 校验所有数据(包括未修改的)\n subTable.$table.validate(true));\n\n // 3. 等待所有子表校验结果\n const results = await Promise.all(validationPromises);\n return results.flat().filter(Boolean);\n },\n /**\r\n * 错误定位工具函数\r\n * @param error\r\n */\n focusFirstError(error) {\n const targetEl = error.getElement?.();\n if (targetEl) {\n targetEl.scrollIntoView({\n block: \"center\",\n behavior: \"smooth\"\n });\n } else {\n console.warn(\"无法定位错误元素:\", error.field);\n }\n },\n async doMainSubSave() {\n try {\n // ====================== 1. 主表单校验 ======================\n const mainFormValid = await this.validateMainForm();\n if (!mainFormValid) return;\n\n // ====================== 2. 子表并行校验 ======================\n const subTableErrors = await this.validateSubTables();\n if (subTableErrors.length > 0) {\n this.focusFirstError(subTableErrors[0]);\n (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)().error(`子表存在${subTableErrors.length}处错误,请修正后提交`);\n return;\n }\n\n // ====================== 3. 全部通过后保存 ======================\n this.save();\n } catch (error) {\n console.error(\"保存过程中发生异常:\", error);\n (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)().error(\"系统异常,请稍后重试\");\n }\n },\n async doSave() {\n let dom;\n let keys;\n if (this.state.type != '0') {\n await this.$refs.formRef.getNativeForm().validate((valid, msg) => {\n if (!valid) {\n keys = Object.keys(msg);\n dom = this.$refs.formRef.getWidgetRef(keys[0]);\n dom.$el.scrollIntoView({\n block: \"center\",\n behavior: \"smooth\"\n });\n (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)().error(\"您还有\" + keys.length + \"项信息未填写,请填写后再操作!\");\n } else {\n this.save();\n }\n });\n } else {\n await this.$refs.formRef.validate((valid, done, msg) => {\n if (!valid) {\n keys = Object.keys(msg);\n dom = this.$refs.formRef.getPropRef(keys[0]);\n dom.$el.scrollIntoView({\n block: \"center\",\n behavior: \"smooth\"\n });\n (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)().error(\"您还有\" + keys.length + \"项信息未填写,请填写后再操作!\");\n } else {\n this.save();\n }\n done();\n });\n }\n },\n saveOk(status) {\n this.state.loading = false;\n this.initOkTabs = [];\n if (status) {\n this.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 if (this.js) {\n let param = {\n js: this.js,\n v: this.formData\n };\n this.state.dialogVisible = false;\n this.$emit('emits', param);\n return;\n }\n let params = this.getParams();\n if (this.state.otherProp && this.state.otherProp.beforeSave) {\n try {\n let next = eval(\"(params)=>{\" + this.state.otherProp.beforeSave + \"}\");\n if (next(params) === false) {\n return;\n }\n } catch (e) {\n console.log(e);\n return;\n }\n }\n this.state.loading = true;\n try {\n let url = this.state.saveUrl ? this.state.saveUrl : this.state.edit ? '/online/crudAes/modify' : '/online/crudAes/save';\n if (this.state.requestType.toLowerCase() == \"put\") {\n await (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.put)(this.http, url, params).then(status => {\n this.saveOk(status);\n });\n } else if (!this.state.saveUrl || this.state.saveUrl.indexOf(\"/online/crudAes/\") != -1) {\n await (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.postAes)(this.http, url, params).then(status => {\n this.saveOk(status);\n });\n } else {\n await (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.post)(this.http, url, params).then(status => {\n this.saveOk(status);\n });\n }\n } catch (e) {\n console.error(e);\n } finally {\n this.state.loading = false;\n }\n },\n setDepRoleDefault(column) {\n //人员岗位\n if (column.selectDom === '25' || column.selectDom === '26' || column.selectDom === '27' || column.selectDom === '24') {\n let dic = {\n \"24\": 'olp_cloud,system_dept,name,id',\n \"25\": 'olp_cloud,system_role,name,id',\n \"26\": 'olp_cloud,system_post,name,id',\n \"27\": 'olp_cloud,system_users,nickname,id'\n };\n column.dictTable = dic[column.selectDom];\n column.type = 'select';\n }\n },\n initFormColumn(data) {\n for (let column of this.form.column) {\n if (data.disabled || column.disabled == 1) {\n column.disabled = true;\n }\n if (column.value) {\n column.value = (0,_utils_columnProp__WEBPACK_IMPORTED_MODULE_6__.getDefaultValue)(column);\n }\n this.setDepRoleDefault(column);\n if (column.selectDom === '20') {\n let slotObj = {\n slotName: column.prop,\n type: column.selectDom\n };\n this.dynamicSlotsField[column.prop] = column; //收集继续动态改变值的字段信息,以便动态改变值时更新表单数据\n this.dynamicSlotsTable.push(slotObj); //收集需要的动态插槽字段信息\n } else if (column.selectDom === '21') {\n let slotObj = {\n slotName: column.prop,\n type: column.selectDom\n };\n this.dynamicSlotsField[column.prop] = column; //收集继续动态改变值的字段信息,以便动态改变值时更新表单数据\n this.dynamicSlotsTable.push(slotObj); //收集需要的动态插槽字段信息\n } else if (column.selectDom === '22') {\n //表格选取\n let slotObj = {\n slotName: column.prop,\n type: column.selectDom,\n config: JSON.parse(column.attrs).olTableSelect\n };\n this.dynamicSlotsField[column.prop] = column; //收集继续动态改变值的字段信息,以便动态改变值时更新表单数据\n this.dynamicSlotsTable.push(slotObj); //收集需要的动态插槽字段信息\n const otherResult = slotObj.config.otherResult; //返回额外参数字段配置\n if (otherResult !== null && otherResult !== undefined && otherResult !== '') {\n let otherResultArray = [];\n otherResult.split(\",\").forEach(m => {\n let k = m.split(\":\");\n // otherResultArray.push({targetField: k[[k.length - 1]], sourceField: k[0]})\n otherResultArray.push({\n targetField: k[0],\n sourceField: k[[k.length - 1]]\n });\n });\n this.dynamicSlotsOtherResult[column.prop] = otherResultArray;\n }\n } else {\n this.initDict(column);\n }\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_13__.parseJson)(column);\n for (let event of ['change']) {\n if (column[event] && !(column[event] instanceof Function)) {\n try {\n column[event] = eval(\"(params)=>{this.$nextTick(()=>{\" + \"let formData = this.formData;\" + \"let {value} = params;\" + replaceDollarBraces(column[event]) + \"})\" + \"}\");\n } catch (e) {\n console.error(e);\n }\n }\n }\n }\n },\n doInit(data) {\n this.beforeInit();\n this.show = !data.disabled;\n this.initOkTabs = [];\n if (data.saveUrl) {\n this.state.saveUrl = data.saveUrl.trim();\n if (data.requestType) {\n this.state.requestType = data.requestType;\n }\n }\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.formData = data.formData;\n this.form = data.form;\n this.state.dialogVisible = true;\n for (let key of Object.keys(this.state)) {\n if (data[key]) {\n this.state[key] = data[key];\n }\n }\n if (this.state.type == 0) {\n //赋值弹窗宽度和高度\n if (data.form.diaLogWidth) {\n this.state.width = data.form.diaLogWidth;\n }\n if (data.form.diaLogHeight) {\n this.state.maxHeight = data.form.diaLogHeight + 'px';\n }\n this.initFormColumn(data);\n } else {\n let {\n width,\n height\n } = this.form.formConfig;\n //赋值弹窗宽度和高度\n this.state.width = width;\n this.state.maxHeight = height + 'px';\n for (let widgetListElement of this.form.widgetList) {\n this.setDict(widgetListElement);\n }\n }\n setTimeout(() => {\n this.afterInit();\n }, 350);\n },\n setDict(column) {\n if (column && column.dict) {\n column.dictCode = column.dict;\n this.initDict(column);\n }\n if (column.cols instanceof Array) {\n for (let col of column.cols) {\n this.setDict(col);\n }\n }\n },\n init(data, js) {\n try {\n this.js = js;\n this.doInit(data);\n } catch (e) {\n console.error(e);\n }\n },\n /**\r\n * 初始化后回调\r\n */\n afterInit() {\n if (this.state.otherProp) {\n try {\n this.state.otherProp = JSON.parse(this.state.otherProp);\n if (this.state.otherProp.afterInit) {\n eval(this.state.otherProp.afterInit);\n }\n } catch (e) {\n console.log(e);\n }\n }\n },\n /**\r\n * 初始化前回调\r\n */\n beforeInit() {\n if (this.state.otherProp && this.state.otherProp.beforeInit) {\n try {\n eval(this.state.otherProp.beforeInit);\n } catch (e) {\n console.log(e);\n }\n }\n },\n initDict(column) {\n if (column.dictCode) {\n column.dicData = dict.val(column.dictCode);\n if (column.dict && column.options) {\n column.options.optionItems = column.dicData;\n }\n if (column.selectDom == 1 || !column.type) {\n column.type = \"select\";\n }\n //”number”、”string”、”boolean”、”object”、”function” 和 “undefined”\n let dataType = typeof this.formData[column.prop];\n if ([\"number\", \"boolean\"].indexOf(dataType) != -1) {\n this.formData[column.prop] = String(this.formData[column.prop]);\n column.value = this.formData[column.prop];\n }\n if (this.state.edit) {\n return;\n }\n if (this.formData[column.prop] != undefined) {\n this.formData[column.prop] = String(this.formData[column.prop]);\n column.value = this.formData[column.prop];\n } else if (column.value != undefined) {\n this.formData[column.prop] = String(column.value);\n } else {\n // 数据字典与值类型不一致\n if (this.formData[column.prop] == undefined) {\n setTimeout(() => {\n if (column.dicData) {\n for (let dicDatum of column.dicData) {\n if (dicDatum.isDefault == 1) {\n this.formData[column.prop] = dicDatum.value;\n column.value = this.formData[column.prop];\n }\n }\n }\n }, 100);\n }\n }\n } else if (column.dictTable || column.dictUrl) {\n if (column.selectDom == 1 || !column.type) {\n column.type = \"select\";\n }\n column.filterable = true;\n column.dicData = [];\n setTimeout(() => {\n this.setDictTable(column, undefined);\n }, 10);\n if (column.type == 'tree') {\n column.filterable = column.filterable == undefined ? true : column.clearable;\n column.clearable = column.clearable == undefined ? true : column.clearable;\n let slotObj = {\n slotName: column.prop,\n type: 'tree'\n };\n if (column.attrs) {\n const attrs = JSON.parse(column.attrs);\n this.elCascaderProps = {\n ...this.elCascaderProps,\n ...attrs\n };\n }\n this.dynamicSlotsField[column.prop] = column; //收集继续动态改变值的字段信息,以便动态改变值时更新表单数据\n this.dynamicSlotsTable.push(slotObj); //收集需要的动态插槽字段信息\n } else {\n column.filterMethod = e => {\n this.$nextTick(() => {\n this.setDictTable(column, e);\n });\n };\n }\n }\n },\n setDictUrl(column, like) {\n let dictUrl = column.dictUrl.split(\",\");\n let url;\n let label = 'label';\n let value = 'value';\n let parentId = 'parentId';\n // get,url,label,value,parent_id\n let doGet = true;\n if (dictUrl.length > 1) {\n if (dictUrl[0].toString().toLowerCase() == 'post') {\n doGet = false;\n }\n url = dictUrl[1];\n label = dictUrl[2];\n value = dictUrl[3];\n parentId = dictUrl[4];\n } else {\n url = dictUrl[0];\n }\n if (doGet) {\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.get)(this.http, url + \"?label=\" + like).then(data => {\n column.dicData.length = 0;\n if (column.type == 'tree') {\n for (let da of data) {\n da['label'] = da[label];\n da['value'] = da[value];\n }\n column.dicData = (0,_utils_tree__WEBPACK_IMPORTED_MODULE_9__.handleTree)(data, value, parentId);\n } else {\n data.forEach(d => {\n column.dicData.push(d);\n });\n }\n });\n } else {\n let params = {};\n if (like) {\n params['label'] = like;\n }\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.post)(this.http, column.dictUrl, params, false).then(({\n data\n }) => {\n column.dicData.length = 0;\n if (column.type == 'tree') {\n for (let da of data) {\n da['label'] = da[label];\n da['value'] = da[value];\n }\n column.dicData = (0,_utils_tree__WEBPACK_IMPORTED_MODULE_9__.handleTree)(data, value, parentId);\n } else {\n data.forEach(da => {\n da['label'] = da[label];\n da['value'] = da[value];\n column.dicData.push(da);\n });\n }\n });\n }\n },\n setDictTable(column, like) {\n if (column.dictTable && column.dictTable.toString().trim() != '') {\n this.doSetDictTable(column, like);\n } else if (column.dictUrl) {\n this.setDictUrl(column, like);\n }\n },\n doSetDictTable(column, like) {\n let value = this.formData[column.prop];\n /*String tableName;\r\n String dbName;\r\n String label;\r\n String value;\r\n Map<String, Object> where;*/\n // olp-vue-pro,system_users,nickname,id,parentId\n let params = {};\n // let dictTable = column.dictTable;\n try {\n // 使用Function构造函数比eval更安全\n params = new Function('return ' + column.dictTable)();\n } catch (e) {\n // 2. 业务调用侧(清晰的使用逻辑)\n params = (0,_utils_formUtils__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(column.dictTable);\n }\n if (like || value) {\n if (!params.where) {\n params.where = {};\n }\n }\n if (!params[\"parentValue\"]) {\n if (like) {\n params.where['_like_' + params[\"label\"]] = like;\n }\n if (value instanceof Array) {\n let val = '';\n for (let valueElement of value) {\n if (val.length > 0) {\n val += \",\";\n }\n val = val + \"'\" + valueElement + \"'\";\n }\n if (val) {\n params.where['_in_' + params[\"label\"]] = val;\n }\n //params.defaultValue = value;\n } else {\n params.defaultValue = value;\n }\n }\n (0,_api_dist__WEBPACK_IMPORTED_MODULE_11__.initDictTable)(this.http, params).then(data => {\n column.dicData.length = 0;\n if (params[\"parentValue\"]) {\n column.dicData = (0,_utils_tree__WEBPACK_IMPORTED_MODULE_9__.handleTree)(data, 'dictValue', 'parentValue');\n } else {\n data.forEach(d => {\n d.value = d.value + '';\n d.dictValue = d.dictValue + '';\n column.dicData.push(d);\n });\n }\n });\n },\n /**\r\n * 表格选择器回调函数\r\n * @param data\r\n */\n olTableSelectChange(slotName, data) {\n // console.info('插槽名称', slotName, '表格回传的数据', data)\n // console.info('表格', this.form.column)\n this.formData[slotName] = data.value; //修改表单数据,以便后续提交\n if (typeof this.dynamicSlotsField[slotName].change === 'function') {\n this.dynamicSlotsField[slotName].change(data.value); //字段数据更新回调\n }\n //给其他字段赋值\n this.dynamicSlotsOtherResult[slotName]?.forEach(item => {\n this.formData[item.targetField] = data.data[item.sourceField];\n });\n },\n uploadChange(slotName, data) {\n console.info('回调', slotName, data);\n this.formData[slotName] = data; //修改表单数据,以便后续提交\n if (typeof this.dynamicSlotsField[slotName].change === 'function') {\n this.dynamicSlotsField[slotName].change(data); //字段数据更新回调\n }\n },\n handleEmits({\n m,\n v,\n d,\n js\n }, key) {\n if (typeof js === 'string') {\n eval(js);\n } else if (m && this[m]) {\n this[m](v);\n }\n if (d != false) {\n this.customUrl = undefined;\n }\n this.formData[key] = v;\n console.log('emits:', this.formData);\n }\n },\n mounted() {\n this.$nextTick(() => {\n (0,_store_dict__WEBPACK_IMPORTED_MODULE_12__.storeDict)().init(this.http);\n });\n }\n};\n\n//# sourceURL=webpack://olp-table/./src/mixins/VTMixin/OForm.js?");
|
|
12778
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ OForm: function() { return /* binding */ OForm; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/core-js/modules/es.iterator.filter.js\");\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.iterator.find.js */ \"./node_modules/core-js/modules/es.iterator.find.js\");\n/* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.iterator.for-each.js */ \"./node_modules/core-js/modules/es.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.iterator.map.js */ \"./node_modules/core-js/modules/es.iterator.map.js\");\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _utils_columnProp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils/columnProp */ \"./src/utils/columnProp.js\");\n/* harmony import */ var _utils_message__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/utils/message */ \"./src/utils/message.js\");\n/* harmony import */ var _utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/utils/http/httpUtils */ \"./src/utils/http/httpUtils.js\");\n/* harmony import */ var _utils_tree__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/utils/tree */ \"./src/utils/tree.js\");\n/* harmony import */ var _utils_formUtils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/utils/formUtils */ \"./src/utils/formUtils.js\");\n/* harmony import */ var _api_dist__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/api/dist */ \"./src/api/dist.js\");\n/* harmony import */ var _store_dict__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/store/dict */ \"./src/store/dict.js\");\n/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/utils/object */ \"./src/utils/object.js\");\n/* harmony import */ var _components_FileUpload_index_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/components/FileUpload/index.vue */ \"./src/components/FileUpload/index.vue\");\n/* harmony import */ var _components_Icon__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/components/Icon */ \"./src/components/Icon/index.js\");\n/* harmony import */ var _components_ol_table_select_vue__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/components/ol-table-select.vue */ \"./src/components/ol-table-select.vue\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst dict = (0,_store_dict__WEBPACK_IMPORTED_MODULE_12__.storeDict)();\nfunction replaceDollarBraces(str) {\n return str.toString().replace(/\\$\\{?([^{}]+)\\}?/g, function (match, innerContent) {\n return innerContent ? `'${innerContent}'` : match;\n });\n}\nconst OForm = {\n name: 'OForm',\n components: {\n FileUpload: _components_FileUpload_index_vue__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n IconSelect: _components_Icon__WEBPACK_IMPORTED_MODULE_15__.IconSelect,\n OlTableSelect: _components_ol_table_select_vue__WEBPACK_IMPORTED_MODULE_16__[\"default\"]\n },\n inject: ['http'],\n props: {\n isDialog: {\n type: Boolean,\n default: true\n }\n },\n data() {\n return {\n js: undefined,\n formData: {},\n optionData: {},\n initOkTabs: [],\n form: {\n column: []\n },\n initOk: false,\n dynamicSlotsTable: [],\n dynamicSlotsField: {},\n dynamicSlotsOtherResult: {},\n show: true,\n state: {\n deleteId: '',\n uuid: '',\n foreignKey: '',\n exBtnDisabled: undefined,\n isDialog: true,\n loading: false,\n fullscreen: false,\n dialogVisible: false,\n title: \"\",\n width: '60%',\n comCommit: true,\n maxHeight: '400px',\n type: '0',\n edit: false,\n saveUrl: '',\n requestType: 'post',\n updateKey: '',\n theme: 't1',\n tableConfigId: '',\n dbName: '',\n tableName: '',\n otherProp: {}\n },\n elCascaderProps: {\n expandTrigger: 'hover',\n emitPath: false,\n checkStrictly: false\n }\n };\n },\n methods: {\n getCascaderOptions(slotName) {\n // console.info('getCascaderOptions',this.form.column)\n return this.form.column.find(item => item.prop === slotName).dicData;\n },\n getCascaderColumn(slotName) {\n // console.info('getCascaderOptions',this.form.column)\n return this.form.column.find(item => item.prop === slotName);\n },\n hideColumn(prop) {\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_13__.setArrayObjectKeyValue)(this.form.column, 'display', false, prop);\n },\n showColumn(prop) {\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_13__.setArrayObjectKeyValue)(this.form.column, 'display', true, prop);\n },\n setOtherProp(params) {\n if (this.state.otherProp) {\n if (this.state.otherProp.createBy && this.state.otherProp.createBy.trim()) {\n params.createBy = this.state.otherProp.createBy.trim();\n }\n if (this.state.otherProp.updateBy && this.state.otherProp.updateBy.trim()) {\n params.updateBy = this.state.otherProp.updateBy.trim();\n }\n }\n },\n /**\r\n * 根据列配置获取数据库表更新数据\r\n * @param column\r\n * @param formData\r\n * @returns {{}}\r\n */\n getTableUpdateValue(column, formData) {\n let columnAndValueMap = {};\n for (let {\n prop,\n tableField,\n tableSaveToOtherProp\n } of column) {\n if (tableField && tableField == '1' || tableSaveToOtherProp == '1') {\n continue;\n }\n let value = formData[prop];\n if (value != undefined) {\n if (value instanceof String) {\n value = value.trim();\n }\n if (value instanceof Array) {\n columnAndValueMap[prop] = value.join(',');\n } else {\n columnAndValueMap[prop] = value;\n }\n }\n }\n return columnAndValueMap;\n },\n /**\r\n * 封装主表单校验逻辑\r\n * @returns {Promise<*>}\r\n */\n async validateMainForm() {\n return new Promise(resolve => {\n const validator = this.state.type !== '0' ? this.$refs.formRef.getNativeForm().validate : (valid, done, msg) => this.$refs.formRef.validate(valid, done, msg);\n validator((valid, ...args) => {\n const [msg, done] = this.state.type === '0' ? [args[1], args[0]] : [args[0]];\n if (!valid) {\n const keys = Object.keys(msg);\n const domRef = this.state.type !== '0' ? this.$refs.formRef.getWidgetRef(keys[0])?.$el : this.$refs.formRef.getPropRef(keys[0])?.$el;\n domRef?.scrollIntoView({\n block: \"center\",\n behavior: \"smooth\"\n });\n (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)().error(`主表单还有${keys.length}项未填写`);\n resolve(false);\n } else {\n resolve(true);\n }\n if (this.state.type === '0') done?.();\n });\n });\n },\n /**\r\n * 封装子表校验逻辑\r\n * @returns {Promise<FlatArray<Awaited<*>[], 1>[]>}\r\n */\n async validateSubTables() {\n // 1. 获取所有子表引用\n const subTablesRefs = this.$refs.subTable?.getTableRefs()?.getTabRefAll() || [];\n\n // 2. 并行执行全量校验(包含新增/修改/删除的数据)\n const validationPromises = subTablesRefs.map(subTable =>\n // 传入 true 校验所有数据(包括未修改的)\n subTable.$table.validate(true));\n\n // 3. 等待所有子表校验结果\n const results = await Promise.all(validationPromises);\n return results.flat().filter(Boolean);\n },\n /**\r\n * 错误定位工具函数\r\n * @param error\r\n */\n focusFirstError(error) {\n const targetEl = error.getElement?.();\n if (targetEl) {\n targetEl.scrollIntoView({\n block: \"center\",\n behavior: \"smooth\"\n });\n } else {\n console.warn(\"无法定位错误元素:\", error.field);\n }\n },\n async doMainSubSave() {\n try {\n // ====================== 1. 主表单校验 ======================\n const mainFormValid = await this.validateMainForm();\n if (!mainFormValid) return;\n\n // ====================== 2. 子表并行校验 ======================\n const subTableErrors = await this.validateSubTables();\n if (subTableErrors.length > 0) {\n this.focusFirstError(subTableErrors[0]);\n (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)().error(`子表存在${subTableErrors.length}处错误,请修正后提交`);\n return;\n }\n\n // ====================== 3. 全部通过后保存 ======================\n this.save();\n } catch (error) {\n console.error(\"保存过程中发生异常:\", error);\n (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)().error(\"系统异常,请稍后重试\");\n }\n },\n async doSave() {\n let dom;\n let keys;\n if (this.state.type != '0') {\n await this.$refs.formRef.getNativeForm().validate((valid, msg) => {\n if (!valid) {\n keys = Object.keys(msg);\n dom = this.$refs.formRef.getWidgetRef(keys[0]);\n dom.$el.scrollIntoView({\n block: \"center\",\n behavior: \"smooth\"\n });\n (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)().error(\"您还有\" + keys.length + \"项信息未填写,请填写后再操作!\");\n } else {\n this.save();\n }\n });\n } else {\n await this.$refs.formRef.validate((valid, done, msg) => {\n if (!valid) {\n keys = Object.keys(msg);\n dom = this.$refs.formRef.getPropRef(keys[0]);\n dom.$el.scrollIntoView({\n block: \"center\",\n behavior: \"smooth\"\n });\n (0,_utils_message__WEBPACK_IMPORTED_MODULE_7__.useMessage)().error(\"您还有\" + keys.length + \"项信息未填写,请填写后再操作!\");\n } else {\n this.save();\n }\n done();\n });\n }\n },\n saveOk(status) {\n this.state.loading = false;\n this.initOkTabs = [];\n if (status) {\n this.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 if (this.js) {\n let param = {\n js: this.js,\n v: this.formData\n };\n this.state.dialogVisible = false;\n this.$emit('emits', param);\n return;\n }\n let params = this.getParams();\n if (this.state.otherProp && this.state.otherProp.beforeSave) {\n try {\n let next = eval(\"(params)=>{\" + this.state.otherProp.beforeSave + \"}\");\n if (next(params) === false) {\n return;\n }\n } catch (e) {\n console.log(e);\n return;\n }\n }\n this.state.loading = true;\n try {\n let url = this.state.saveUrl ? this.state.saveUrl : this.state.edit ? '/online/crudAes/modify' : '/online/crudAes/save';\n if (this.state.requestType.toLowerCase() == \"put\") {\n await (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.put)(this.http, url, params).then(status => {\n this.saveOk(status);\n });\n } else if (!this.state.saveUrl || this.state.saveUrl.indexOf(\"/online/crudAes/\") != -1) {\n await (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.postAes)(this.http, url, params).then(status => {\n this.saveOk(status);\n });\n } else {\n await (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.post)(this.http, url, params).then(status => {\n this.saveOk(status);\n });\n }\n } catch (e) {\n console.error(e);\n } finally {\n this.state.loading = false;\n }\n },\n setDepRoleDefault(column) {\n //人员岗位\n if (column.selectDom === '25' || column.selectDom === '26' || column.selectDom === '27' || column.selectDom === '24') {\n let dic = {\n \"24\": 'olp_cloud,system_dept,name,id',\n \"25\": 'olp_cloud,system_role,name,id',\n \"26\": 'olp_cloud,system_post,name,id',\n \"27\": 'olp_cloud,system_users,nickname,id'\n };\n column.dictTable = dic[column.selectDom];\n column.type = 'select';\n }\n },\n initFormColumn(data) {\n for (let column of this.form.column) {\n if (data.disabled || column.disabled == 1) {\n column.disabled = true;\n }\n this.setDepRoleDefault(column);\n if (column.selectDom === '20') {\n let slotObj = {\n slotName: column.prop,\n type: column.selectDom\n };\n this.dynamicSlotsField[column.prop] = column; //收集继续动态改变值的字段信息,以便动态改变值时更新表单数据\n this.dynamicSlotsTable.push(slotObj); //收集需要的动态插槽字段信息\n } else if (column.selectDom === '21') {\n let slotObj = {\n slotName: column.prop,\n type: column.selectDom\n };\n this.dynamicSlotsField[column.prop] = column; //收集继续动态改变值的字段信息,以便动态改变值时更新表单数据\n this.dynamicSlotsTable.push(slotObj); //收集需要的动态插槽字段信息\n } else if (column.selectDom === '22') {\n //表格选取\n let slotObj = {\n slotName: column.prop,\n type: column.selectDom,\n config: JSON.parse(column.attrs).olTableSelect\n };\n this.dynamicSlotsField[column.prop] = column; //收集继续动态改变值的字段信息,以便动态改变值时更新表单数据\n this.dynamicSlotsTable.push(slotObj); //收集需要的动态插槽字段信息\n const otherResult = slotObj.config.otherResult; //返回额外参数字段配置\n if (otherResult !== null && otherResult !== undefined && otherResult !== '') {\n let otherResultArray = [];\n otherResult.split(\",\").forEach(m => {\n let k = m.split(\":\");\n // otherResultArray.push({targetField: k[[k.length - 1]], sourceField: k[0]})\n otherResultArray.push({\n targetField: k[0],\n sourceField: k[[k.length - 1]]\n });\n });\n this.dynamicSlotsOtherResult[column.prop] = otherResultArray;\n }\n } else {\n this.initDict(column);\n }\n (0,_utils_object__WEBPACK_IMPORTED_MODULE_13__.parseJson)(column);\n for (let event of ['change']) {\n if (column[event] && !(column[event] instanceof Function)) {\n try {\n column[event] = eval(\"(params)=>{this.$nextTick(()=>{\" + \"let formData = this.formData;\" + \"let {value} = params;\" + replaceDollarBraces(column[event]) + \"})\" + \"}\");\n } catch (e) {\n console.error(e);\n }\n }\n }\n }\n },\n async doInit(data) {\n this.beforeInit();\n this.show = !data.disabled;\n this.initOkTabs = [];\n if (data.saveUrl) {\n this.state.saveUrl = data.saveUrl.trim();\n if (data.requestType) {\n this.state.requestType = data.requestType;\n }\n }\n this.state.edit = data['code'] == 'edit' == true;\n this.state.title = data.title ? data.title : this.state.edit ? '编辑' : '新增';\n if (data.form.title) {\n this.state.title = data.form.title;\n }\n // 设置订单号\n for (const column of data.form.column) {\n column.value = await (0,_utils_columnProp__WEBPACK_IMPORTED_MODULE_6__.getDefaultValue)(this.http, column);\n }\n this.formData = data.formData;\n this.form = data.form;\n this.state.dialogVisible = true;\n for (let key of Object.keys(this.state)) {\n if (data[key]) {\n this.state[key] = data[key];\n }\n }\n if (this.state.type == 0) {\n //赋值弹窗宽度和高度\n if (data.form.diaLogWidth) {\n this.state.width = data.form.diaLogWidth;\n }\n if (data.form.diaLogHeight) {\n this.state.maxHeight = data.form.diaLogHeight + 'px';\n }\n this.initFormColumn(data);\n } else {\n let {\n width,\n height\n } = this.form.formConfig;\n //赋值弹窗宽度和高度\n this.state.width = width;\n this.state.maxHeight = height + 'px';\n for (let widgetListElement of this.form.widgetList) {\n this.setDict(widgetListElement);\n }\n }\n setTimeout(() => {\n this.afterInit();\n }, 350);\n },\n setDict(column) {\n if (column && column.dict) {\n column.dictCode = column.dict;\n this.initDict(column);\n }\n if (column.cols instanceof Array) {\n for (let col of column.cols) {\n this.setDict(col);\n }\n }\n },\n init(data, js) {\n try {\n this.js = js;\n this.doInit(data);\n } catch (e) {\n console.error(e);\n }\n },\n /**\r\n * 初始化后回调\r\n */\n afterInit() {\n if (this.state.otherProp) {\n try {\n this.state.otherProp = JSON.parse(this.state.otherProp);\n if (this.state.otherProp.afterInit) {\n eval(this.state.otherProp.afterInit);\n }\n } catch (e) {\n console.log(e);\n }\n }\n },\n /**\r\n * 初始化前回调\r\n */\n beforeInit() {\n if (this.state.otherProp && this.state.otherProp.beforeInit) {\n try {\n eval(this.state.otherProp.beforeInit);\n } catch (e) {\n console.log(e);\n }\n }\n },\n initDict(column) {\n if (column.dictCode) {\n column.dicData = dict.val(column.dictCode);\n if (column.dict && column.options) {\n column.options.optionItems = column.dicData;\n }\n if (column.selectDom == 1 || !column.type) {\n column.type = \"select\";\n }\n //”number”、”string”、”boolean”、”object”、”function” 和 “undefined”\n let dataType = typeof this.formData[column.prop];\n if ([\"number\", \"boolean\"].indexOf(dataType) != -1) {\n this.formData[column.prop] = String(this.formData[column.prop]);\n column.value = this.formData[column.prop];\n }\n if (this.state.edit) {\n return;\n }\n if (this.formData[column.prop] != undefined) {\n this.formData[column.prop] = String(this.formData[column.prop]);\n column.value = this.formData[column.prop];\n } else if (column.value != undefined) {\n this.formData[column.prop] = String(column.value);\n } else {\n // 数据字典与值类型不一致\n if (this.formData[column.prop] == undefined) {\n setTimeout(() => {\n if (column.dicData) {\n for (let dicDatum of column.dicData) {\n if (dicDatum.isDefault == 1) {\n this.formData[column.prop] = dicDatum.value;\n column.value = this.formData[column.prop];\n }\n }\n }\n }, 100);\n }\n }\n } else if (column.dictTable || column.dictUrl) {\n if (column.selectDom == 1 || !column.type) {\n column.type = \"select\";\n }\n column.filterable = true;\n column.dicData = [];\n setTimeout(() => {\n this.setDictTable(column, undefined);\n }, 10);\n if (column.type == 'tree') {\n column.filterable = column.filterable == undefined ? true : column.clearable;\n column.clearable = column.clearable == undefined ? true : column.clearable;\n let slotObj = {\n slotName: column.prop,\n type: 'tree'\n };\n if (column.attrs) {\n const attrs = JSON.parse(column.attrs);\n this.elCascaderProps = {\n ...this.elCascaderProps,\n ...attrs\n };\n }\n this.dynamicSlotsField[column.prop] = column; //收集继续动态改变值的字段信息,以便动态改变值时更新表单数据\n this.dynamicSlotsTable.push(slotObj); //收集需要的动态插槽字段信息\n } else {\n column.filterMethod = e => {\n this.$nextTick(() => {\n this.setDictTable(column, e);\n });\n };\n }\n }\n },\n setDictUrl(column, like) {\n let dictUrl = column.dictUrl.split(\",\");\n let url;\n let label = 'label';\n let value = 'value';\n let parentId = 'parentId';\n // get,url,label,value,parent_id\n let doGet = true;\n if (dictUrl.length > 1) {\n if (dictUrl[0].toString().toLowerCase() == 'post') {\n doGet = false;\n }\n url = dictUrl[1];\n label = dictUrl[2];\n value = dictUrl[3];\n parentId = dictUrl[4];\n } else {\n url = dictUrl[0];\n }\n if (doGet) {\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.get)(this.http, url + \"?label=\" + like).then(data => {\n column.dicData.length = 0;\n if (column.type == 'tree') {\n for (let da of data) {\n da['label'] = da[label];\n da['value'] = da[value];\n }\n column.dicData = (0,_utils_tree__WEBPACK_IMPORTED_MODULE_9__.handleTree)(data, value, parentId);\n } else {\n data.forEach(d => {\n column.dicData.push(d);\n });\n }\n });\n } else {\n let params = {};\n if (like) {\n params['label'] = like;\n }\n (0,_utils_http_httpUtils__WEBPACK_IMPORTED_MODULE_8__.post)(this.http, column.dictUrl, params, false).then(({\n data\n }) => {\n column.dicData.length = 0;\n if (column.type == 'tree') {\n for (let da of data) {\n da['label'] = da[label];\n da['value'] = da[value];\n }\n column.dicData = (0,_utils_tree__WEBPACK_IMPORTED_MODULE_9__.handleTree)(data, value, parentId);\n } else {\n data.forEach(da => {\n da['label'] = da[label];\n da['value'] = da[value];\n column.dicData.push(da);\n });\n }\n });\n }\n },\n setDictTable(column, like) {\n if (column.dictTable && column.dictTable.toString().trim() != '') {\n this.doSetDictTable(column, like);\n } else if (column.dictUrl) {\n this.setDictUrl(column, like);\n }\n },\n doSetDictTable(column, like) {\n let value = this.formData[column.prop];\n /*String tableName;\r\n String dbName;\r\n String label;\r\n String value;\r\n Map<String, Object> where;*/\n // olp-vue-pro,system_users,nickname,id,parentId\n let params = {};\n // let dictTable = column.dictTable;\n try {\n // 使用Function构造函数比eval更安全\n params = new Function('return ' + column.dictTable)();\n } catch (e) {\n // 2. 业务调用侧(清晰的使用逻辑)\n params = (0,_utils_formUtils__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(column.dictTable);\n }\n if (like || value) {\n if (!params.where) {\n params.where = {};\n }\n }\n if (!params[\"parentValue\"]) {\n if (like) {\n params.where['_like_' + params[\"label\"]] = like;\n }\n if (value instanceof Array) {\n let val = '';\n for (let valueElement of value) {\n if (val.length > 0) {\n val += \",\";\n }\n val = val + \"'\" + valueElement + \"'\";\n }\n if (val) {\n params.where['_in_' + params[\"label\"]] = val;\n }\n //params.defaultValue = value;\n } else {\n params.defaultValue = value;\n }\n }\n (0,_api_dist__WEBPACK_IMPORTED_MODULE_11__.initDictTable)(this.http, params).then(data => {\n column.dicData.length = 0;\n if (params[\"parentValue\"]) {\n column.dicData = (0,_utils_tree__WEBPACK_IMPORTED_MODULE_9__.handleTree)(data, 'dictValue', 'parentValue');\n } else {\n data.forEach(d => {\n d.value = d.value + '';\n d.dictValue = d.dictValue + '';\n column.dicData.push(d);\n });\n }\n });\n },\n /**\r\n * 表格选择器回调函数\r\n * @param data\r\n */\n olTableSelectChange(slotName, data) {\n // console.info('插槽名称', slotName, '表格回传的数据', data)\n // console.info('表格', this.form.column)\n this.formData[slotName] = data.value; //修改表单数据,以便后续提交\n if (typeof this.dynamicSlotsField[slotName].change === 'function') {\n this.dynamicSlotsField[slotName].change(data.value); //字段数据更新回调\n }\n //给其他字段赋值\n this.dynamicSlotsOtherResult[slotName]?.forEach(item => {\n this.formData[item.targetField] = data.data[item.sourceField];\n });\n },\n uploadChange(slotName, data) {\n console.info('回调', slotName, data);\n this.formData[slotName] = data; //修改表单数据,以便后续提交\n if (typeof this.dynamicSlotsField[slotName].change === 'function') {\n this.dynamicSlotsField[slotName].change(data); //字段数据更新回调\n }\n },\n handleEmits({\n m,\n v,\n d,\n js\n }, key) {\n if (typeof js === 'string') {\n eval(js);\n } else if (m && this[m]) {\n this[m](v);\n }\n if (d != false) {\n this.customUrl = undefined;\n }\n this.formData[key] = v;\n console.log('emits:', this.formData);\n }\n },\n mounted() {\n this.$nextTick(() => {\n (0,_store_dict__WEBPACK_IMPORTED_MODULE_12__.storeDict)().init(this.http);\n });\n }\n};\n\n//# sourceURL=webpack://olp-table/./src/mixins/VTMixin/OForm.js?");
|
|
12779
12779
|
|
|
12780
12780
|
/***/ }),
|
|
12781
12781
|
|
|
@@ -12819,7 +12819,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
12819
12819
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
12820
12820
|
|
|
12821
12821
|
"use strict";
|
|
12822
|
-
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 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/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __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_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __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_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__ = __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_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_4__ = __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_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_5__ = __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_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_6__ = __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_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_es_iterator_some_js__WEBPACK_IMPORTED_MODULE_7__ = __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_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_some_js__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _utils_columnProp__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/utils/columnProp */ \"./src/utils/columnProp.js\");\n/* harmony import */ var _utils_FilterType_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/utils/FilterType.js */ \"./src/utils/FilterType.js\");\n/* harmony import */ var _utils_FilterType_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_9__);\n\n\n\n\n\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 if (hasEditConfig) {\n // 设置列表必填\n this.setEditRules(columns);\n }\n let uuidTableSelectConf = {\n '24': '2011044563705458688',\n //部门\n '25': '1904380469886234624',\n //角色\n '26': '2009164807696859136',\n //岗位\n '27': '2011373314888716288' //人员\n };\n for (let o of columns) {\n //部门选择器的Formatter\n if (uuidTableSelectConf[o.selectDom]) {\n o.params = {\n uuid: uuidTableSelectConf[o.selectDom],\n key: 'id',\n label: 'name',\n uniqueId: o.id,\n tableSelect: true\n };\n } else if (o.tableSelectConfToOtherProp) {\n try {\n o.params = JSON.parse(o.tableSelectConfToOtherProp).olTableSelect;\n o.params.uniqueId = o.id;\n o.params.tableSelect = true;\n } catch (e) {}\n }\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 if (o.tableSelectConfToOtherProp) {\n //表格选取的配置\n o.params.tableSelectConfToOtherProp = o.tableSelectConfToOtherProp;\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 /**\r\n * 动态设置列的 formatter(将值映射为字典标签)\r\n * @param {Object} context - Vue 组件实例(this)\r\n * @param {String} selectDomValue - 匹配的 selectDom 值(如 '24')\r\n * @param {String} typeField - 动态列配置属性名(如 'department')\r\n */\n setColumnFormatter(context, selectDomValue, typeField) {\n const configListProp = typeField + 'ColumnsConfig';\n const dictPropName = typeField + 'Dict';\n\n // 1. 过滤出目标列配置\n const configList = context.table.columnSource.filter(item => item.selectDom === selectDomValue);\n context.table.other[configListProp] = configList;\n\n // console.info(`动态列配置(${configListProp}):`, configList);\n\n // 2. 如果存在目标列,设置 formatter\n if (configList.length > 0) {\n configList.forEach(columnConfig => {\n const targetColumn = context.table.columns.find(col => col.field === columnConfig.field);\n if (targetColumn) {\n targetColumn.formatter = ({\n cellValue\n }) => {\n // 检查是否是类似'[1,2]'的数组字符串\n // if (typeof cellValue === 'string' && cellValue.startsWith('[') && cellValue.endsWith(']')) {\n if (typeof cellValue === 'string') {\n try {\n // 尝试解析为数组\n let values = [];\n if (cellValue.startsWith('[') && cellValue.endsWith(']')) {\n values = JSON.parse(cellValue);\n } else {\n values = cellValue.split(\",\");\n }\n if (Array.isArray(values)) {\n // 查找所有匹配的字典项并拼接标签\n const labels = values.map(value => {\n const dictItem = context.table.other[dictPropName]?.find(item => item.value == value // 使用宽松相等比较\n );\n return dictItem ? dictItem.label : value;\n });\n return labels.join(','); // 用逗号连接标签\n }\n } catch (e) {\n // 解析失败,按原样处理\n }\n }\n const dictItem = context.table.other[dictPropName]?.find(item => item.value == cellValue);\n return dictItem ? dictItem.label : cellValue; // 显示标签或原值\n };\n }\n });\n }\n },\n setEditRules(columns) {\n for (const column of columns) {\n if (column.required === '1') {\n this.table.editRules ||= {};\n this.table.editRules[column.field] = [{\n required: true,\n message: '必须填写'\n }];\n }\n }\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 if (o.selectDom == '5') {\n console.log('复选框:', o);\n // o.slotsName = 'checkbox_default';\n // o.slots = {\n // default: 'checkbox_default'\n // }\n o.slots = {\n default: ({\n row,\n column\n }) => (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"vxe-checkbox\"), {\n \"modelValue\": row[column.field],\n \"onUpdate:modelValue\": $event => row[column.field] = $event,\n \"checkedValue\": 1,\n \"uncheckedValue\": 0\n }, null)\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 } else if (o.selectDom == '21') {\n o.slotsName = 'icon_default';\n o.slots = {\n default: 'icon_default'\n };\n } else if (o.selectDom == '23') {\n o.slotsName = 'video_default';\n o.slots = {\n default: 'video_default'\n };\n } else if (o.params && o.params.tableSelect) {\n o.slotsName = 'selectTable_default';\n o.slots = {\n default: 'selectTable_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_9___default().EQUAL):\n return this.isEqual(cellValue, value);\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_9___default().NOT_EQUAL):\n return this.isNotEqual(cellValue, value);\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_9___default().STARTS_WITH):\n return this.startsWith(cellValue, value);\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_9___default().ENDS_WITH):\n return this.endsWith(cellValue, value);\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_9___default().CONTAINS):\n return this.contains(cellValue, value);\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_9___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 item.filterable = true;\n } else if (o.selectDom == 7) {\n item.itemRender.props.type = 'number';\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_0__.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_8__[\"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?");
|
|
12822
|
+
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 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/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __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_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __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_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__ = __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_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_4__ = __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_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_5__ = __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_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_6__ = __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_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_es_iterator_some_js__WEBPACK_IMPORTED_MODULE_7__ = __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_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_some_js__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _utils_columnProp__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/utils/columnProp */ \"./src/utils/columnProp.js\");\n/* harmony import */ var _utils_FilterType_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/utils/FilterType.js */ \"./src/utils/FilterType.js\");\n/* harmony import */ var _utils_FilterType_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_9__);\n\n\n\n\n\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 if (hasEditConfig) {\n // 设置列表必填\n this.setEditRules(columns);\n }\n let uuidTableSelectConf = {\n '24': '2011044563705458688',\n //部门\n '25': '1904380469886234624',\n //角色\n '26': '2009164807696859136',\n //岗位\n '27': '2011373314888716288' //人员\n };\n for (let o of columns) {\n //部门选择器的Formatter\n if (uuidTableSelectConf[o.selectDom]) {\n o.params = {\n uuid: uuidTableSelectConf[o.selectDom],\n key: 'id',\n label: 'name',\n uniqueId: o.id,\n tableSelect: true\n };\n } else if (o.tableSelectConfToOtherProp) {\n try {\n o.params = JSON.parse(o.tableSelectConfToOtherProp).olTableSelect;\n o.params.uniqueId = o.id;\n o.params.tableSelect = true;\n } catch (e) {}\n }\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 if (o.tableSelectConfToOtherProp) {\n //表格选取的配置\n o.params.tableSelectConfToOtherProp = o.tableSelectConfToOtherProp;\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 /**\r\n * 动态设置列的 formatter(将值映射为字典标签)\r\n * @param {Object} context - Vue 组件实例(this)\r\n * @param {String} selectDomValue - 匹配的 selectDom 值(如 '24')\r\n * @param {String} typeField - 动态列配置属性名(如 'department')\r\n */\n setColumnFormatter(context, selectDomValue, typeField) {\n const configListProp = typeField + 'ColumnsConfig';\n const dictPropName = typeField + 'Dict';\n\n // 1. 过滤出目标列配置\n const configList = context.table.columnSource.filter(item => item.selectDom === selectDomValue);\n context.table.other[configListProp] = configList;\n\n // console.info(`动态列配置(${configListProp}):`, configList);\n\n // 2. 如果存在目标列,设置 formatter\n if (configList.length > 0) {\n configList.forEach(columnConfig => {\n const targetColumn = context.table.columns.find(col => col.field === columnConfig.field);\n if (targetColumn) {\n targetColumn.formatter = ({\n cellValue\n }) => {\n // 检查是否是类似'[1,2]'的数组字符串\n // if (typeof cellValue === 'string' && cellValue.startsWith('[') && cellValue.endsWith(']')) {\n if (typeof cellValue === 'string') {\n try {\n // 尝试解析为数组\n let values = [];\n if (cellValue.startsWith('[') && cellValue.endsWith(']')) {\n values = JSON.parse(cellValue);\n } else {\n values = cellValue.split(\",\");\n }\n if (Array.isArray(values)) {\n // 查找所有匹配的字典项并拼接标签\n const labels = values.map(value => {\n const dictItem = context.table.other[dictPropName]?.find(item => item.value == value // 使用宽松相等比较\n );\n return dictItem ? dictItem.label : value;\n });\n return labels.join(','); // 用逗号连接标签\n }\n } catch (e) {\n // 解析失败,按原样处理\n }\n }\n const dictItem = context.table.other[dictPropName]?.find(item => item.value == cellValue);\n return dictItem ? dictItem.label : cellValue; // 显示标签或原值\n };\n }\n });\n }\n },\n setEditRules(columns) {\n for (const column of columns) {\n if (column.required === '1') {\n this.table.editRules ||= {};\n this.table.editRules[column.field] = [{\n required: true,\n message: '必须填写'\n }];\n }\n }\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 if (o.selectDom == '5') {\n console.log('复选框:', o);\n // o.slotsName = 'checkbox_default';\n // o.slots = {\n // default: 'checkbox_default'\n // }\n o.slots = {\n default: ({\n row,\n column\n }) => (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"vxe-checkbox\"), {\n \"modelValue\": row[column.field],\n \"onUpdate:modelValue\": $event => row[column.field] = $event,\n \"checkedValue\": 1,\n \"uncheckedValue\": 0\n }, null)\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 } else if (o.selectDom == '21') {\n o.slotsName = 'icon_default';\n o.slots = {\n default: 'icon_default'\n };\n } else if (o.selectDom == '23') {\n o.slotsName = 'video_default';\n o.slots = {\n default: 'video_default'\n };\n } else if (o.params && o.params.tableSelect) {\n o.slotsName = 'selectTable_default';\n o.slots = {\n default: 'selectTable_default'\n };\n }\n if ('1' === o.customSlotsToOtherProp) {\n //启用自定义插槽\n o.slotsName = this.getSlotName(o.field);\n o.slots = {\n default: o.slotsName\n };\n if (!o.params) {\n o.params = {};\n }\n o.params.customSlots = true;\n }\n },\n getSlotName(name) {\n return name + \"_\" + this.theme;\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_9___default().EQUAL):\n return this.isEqual(cellValue, value);\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_9___default().NOT_EQUAL):\n return this.isNotEqual(cellValue, value);\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_9___default().STARTS_WITH):\n return this.startsWith(cellValue, value);\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_9___default().ENDS_WITH):\n return this.endsWith(cellValue, value);\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_9___default().CONTAINS):\n return this.contains(cellValue, value);\n case (_utils_FilterType_js__WEBPACK_IMPORTED_MODULE_9___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 item.filterable = true;\n } else if (o.selectDom == 7) {\n item.itemRender.props.type = 'number';\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_0__.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_8__[\"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?");
|
|
12823
12823
|
|
|
12824
12824
|
/***/ }),
|
|
12825
12825
|
|
|
@@ -12979,7 +12979,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
12979
12979
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
12980
12980
|
|
|
12981
12981
|
"use strict";
|
|
12982
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ dateFormat: function() { return /* binding */ dateFormat; },\n/* harmony export */ getDate: function() { return /* binding */ getDate; },\n/* harmony export */ getDateByExpression: function() { return /* binding */ getDateByExpression; },\n/* harmony export */ getDateTime: function() { return /* binding */ getDateTime; },\n/* harmony export */ replaceDateByExpression: function() { return /* binding */ replaceDateByExpression; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.for-each.js */ \"./node_modules/core-js/modules/es.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.iterator.map.js */ \"./node_modules/core-js/modules/es.iterator.map.js\");\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! dayjs */ \"./node_modules/dayjs/dayjs.min.js\");\n/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(dayjs__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\n/** 根据表达式获取相应的信息 */\nfunction getDateByExpression(expression) {\n if (!expression)
|
|
12982
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ dateFormat: function() { return /* binding */ dateFormat; },\n/* harmony export */ getDate: function() { return /* binding */ getDate; },\n/* harmony export */ getDateByExpression: function() { return /* binding */ getDateByExpression; },\n/* harmony export */ getDateTime: function() { return /* binding */ getDateTime; },\n/* harmony export */ replaceDateByExpression: function() { return /* binding */ replaceDateByExpression; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.for-each.js */ \"./node_modules/core-js/modules/es.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.iterator.map.js */ \"./node_modules/core-js/modules/es.iterator.map.js\");\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! dayjs */ \"./node_modules/dayjs/dayjs.min.js\");\n/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(dayjs__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\n/** 根据表达式获取相应的信息 */\nfunction getDateByExpression(expression) {\n // 空值直接返回\n if (!expression) return expression;\n\n // 统一转换为小写简化匹配逻辑(保留原始表达式格式)\n const exp = expression.toLowerCase().trim();\n\n // 日期/时间表达式映射表\n const formatMap = {\n 'sys_date': 'YYYY-MM-DD',\n 'sysDate': 'YYYY-MM-DD',\n 'date': 'YYYY-MM-DD',\n 'sys_time': 'HH:mm:ss',\n 'sysTime': 'HH:mm:ss',\n 'time': 'HH:mm:ss',\n 'sys_datetime': 'YYYY-MM-DD HH:mm:ss',\n 'sysDatetime': 'YYYY-MM-DD HH:mm:ss',\n 'datetime': 'YYYY-MM-DD HH:mm:ss',\n 'now': 'YYYY-MM-DD HH:mm:ss' // 新增支持项\n };\n\n // 匹配已知表达式并格式化\n if (Object.prototype.hasOwnProperty.call(formatMap, exp)) {\n return dayjs__WEBPACK_IMPORTED_MODULE_3___default()().format(formatMap[exp]);\n }\n\n // 保留原始表达式(含特殊符号场景)\n return expression;\n}\nfunction replaceDateByExpression(expression) {\n if (!expression) {\n return expression;\n }\n const isString = typeof expression === 'string';\n const isArray = Array.isArray(expression);\n if (!isString && !isArray) {\n return expression;\n }\n const reg = /#{(.*?)}/g;\n const replace = str => {\n if (typeof str !== 'string') {\n return str;\n }\n let result = str.match(reg);\n if (result && result.length > 0) {\n result.forEach(item => {\n let userInfo = getDateByExpression(item.substring(2, item.length - 1));\n str = str.replace(item, userInfo);\n });\n }\n return str;\n };\n // @ts-ignore\n return isString ? replace(expression) : expression.map(replace);\n}\nconst getDate = () => {\n return dateFormat(new Date(), 1);\n};\nconst getDateTime = format => {\n return dateFormat(new Date(), format);\n};\nconst dateFormat = (date, format) => {\n if (!date) {\n date = new Date();\n }\n let yyyy = date.getFullYear(); // 年\n let MM = date.getMonth() + 1; // 月\n MM = MM < 10 ? '0' + MM : MM;\n let dd = date.getDate(); // 日\n dd = dd < 10 ? '0' + dd : dd; // 日\n let HH = date.getHours(); // 时\n HH = HH < 10 ? '0' + HH : HH; // 如果只有一位,则前面补零\n let mm = date.getMinutes(); // 分\n mm = mm < 10 ? '0' + mm : mm; // 如果只有一位,则前面补零\n let ss = date.getSeconds(); //秒\n ss = ss < 10 ? '0' + ss : ss; // 如果只有一位,则前面补零\n\n if (format === 1) {\n return yyyy;\n } else if (format === 2) {\n return yyyy + '-' + MM;\n } else if (format === 3) {\n return yyyy + '-' + MM + '-' + dd;\n } else if (format === 98) {\n return yyyy + '-' + MM + '-' + dd + ' ' + HH + ':' + mm + ':' + ss + \"_\" + date.getTime().toString().substring(10);\n } else if (format === 99) {\n return yyyy + '年' + (date.getMonth() + 1) + '月' + date.getDate() + '日';\n }\n return yyyy + '-' + MM + '-' + dd + ' ' + HH + ':' + mm + ':' + ss;\n};\n\n//# sourceURL=webpack://olp-table/./src/utils/DateUtils.js?");
|
|
12983
12983
|
|
|
12984
12984
|
/***/ }),
|
|
12985
12985
|
|
|
@@ -13033,7 +13033,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
13033
13033
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
13034
13034
|
|
|
13035
13035
|
"use strict";
|
|
13036
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ getFiledName; },\n/* harmony export */ getDefaultValue: function() { return /* binding */ getDefaultValue; }\n/* harmony export */ });\n/* harmony import */ var _utils_DateUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/utils/DateUtils */ \"./src/utils/DateUtils.js\");\n/* harmony import */ var _NumberGenerator_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NumberGenerator.mjs */ \"./src/utils/NumberGenerator.mjs\");\n
|
|
13036
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ getFiledName; },\n/* harmony export */ getDefaultValue: function() { return /* binding */ getDefaultValue; }\n/* harmony export */ });\n/* harmony import */ var _utils_DateUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/utils/DateUtils */ \"./src/utils/DateUtils.js\");\n/* harmony import */ var _NumberGenerator_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NumberGenerator.mjs */ \"./src/utils/NumberGenerator.mjs\");\n\n\nfunction getFiledName(column) {\n return column['property'];\n}\nasync function getDefaultValue(http, column) {\n const {\n value,\n selectDom,\n attrs\n } = column;\n\n // 1. 处理模板字符串(含$符号)\n if (value?.includes('$')) {\n return handleTemplateRequest(http, value);\n }\n\n // 2. 处理编码生成\n if (value?.includes('#{gen_code}')) {\n return generateSequenceCode(attrs);\n }\n\n // 3. 处理时间默认值\n if (value && ['3', '6'].includes(selectDom)) {\n return handleDateTimeValue(value);\n }\n return value;\n}\n\n// ======== 工具函数模块化 ========\nasync function handleTemplateRequest(http, template) {\n try {\n return await http.get('/online/getSequenceNo', {\n template\n });\n } catch (error) {\n console.error('模板请求失败', error);\n return null; // 或返回备用默认值\n }\n}\nfunction generateSequenceCode(attrs) {\n const params = attrs ? parseJSON(attrs) : undefined;\n const generator = new _NumberGenerator_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"](params);\n return generator.generateNext();\n}\nfunction handleDateTimeValue(value) {\n if (value.includes('#{')) {\n return (0,_utils_DateUtils__WEBPACK_IMPORTED_MODULE_0__.replaceDateByExpression)(value);\n }\n if (value.includes('{{')) {\n return safelyEvaluateExpression(value);\n }\n return value;\n}\nfunction safelyEvaluateExpression(expr) {\n try {\n const sanitizedExpr = expr.replace(/{+|}+/g, '');\n return Function(`\"use strict\"; return (${sanitizedExpr})`)();\n } catch (e) {\n console.error('表达式执行失败', e);\n return new Date().toISOString(); // 安全后备值\n }\n}\nfunction parseJSON(jsonStr) {\n try {\n return JSON.parse(jsonStr);\n } catch {\n console.warn('JSON解析失败', jsonStr);\n return null;\n }\n}\n\n//# sourceURL=webpack://olp-table/./src/utils/columnProp.js?");
|
|
13037
13037
|
|
|
13038
13038
|
/***/ }),
|
|
13039
13039
|
|