@cimom-ui/standard-ui 1.1.11 → 1.1.13

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.
@@ -3137,7 +3137,7 @@ __webpack_require__.r(__webpack_exports__);
3137
3137
 
3138
3138
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
3139
3139
  // Module
3140
- ___CSS_LOADER_EXPORT___.push([module.id, `.normal-report-table-panel{flex:1 1 0%;min-width:0;min-height:0;background:#fff;border:1px solid #e8edf4;border-radius:10px;box-shadow:0 6px 18px rgba(31,73,125,.06);height:100%;overflow:hidden;display:flex;flex-direction:column}.normal-report-table-wrap{flex:1;min-height:0;display:flex;flex-direction:column;padding:0 12px}.normal-report-table-wrap .el-table,.normal-report-table-wrap .vxe-table{flex:1;min-height:0}.normal-report-table-actions{flex-shrink:0;display:flex;align-items:center;gap:6px;padding:10px 12px;border-bottom:1px solid #edf1f6;margin-bottom:10px}.normal-report-table-actions .el-button+.el-button{margin-left:0}.normal-report-table-actions-left{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:6px}.normal-report-table-actions-right{flex-shrink:0;margin-left:auto;display:flex;align-items:center;gap:6px}.standard-toolbar-left,.standard-toolbar-right{display:flex;align-items:center;gap:6px;min-width:0}.standard-toolbar-left .el-button+.el-button,.standard-toolbar-right .el-button+.el-button{margin-left:0}.normal-report-column-setting-entry,.normal-report-column-setting-entry .el-popover__reference-wrapper{display:inline-flex;align-items:center}.normal-report-column-setting{min-width:270px}.normal-report-column-setting-header{padding-bottom:8px;border-bottom:1px solid #ebeef5}.normal-report-column-setting-list{max-height:300px;overflow-y:auto;padding:4px 0}.normal-report-column-setting-item{display:flex;align-items:center;gap:2px;padding:5px 4px;border-radius:4px}.normal-report-column-setting-item .el-checkbox{flex:1;min-width:0;margin-right:0;display:flex;align-items:center}.normal-report-column-setting-item .el-checkbox__input{display:flex;align-items:center;flex-shrink:0}.normal-report-column-setting-item .normal-report-column-setting-item-title{cursor:grab}.normal-report-column-setting-item .normal-report-column-setting-item-title:active{cursor:grabbing}.normal-report-column-setting-item .el-checkbox,.normal-report-column-setting-item .el-checkbox__label{-webkit-user-select:none;-moz-user-select:none;user-select:none}.normal-report-column-setting-item .normal-report-column-setting-item-title .el-checkbox__label{flex-shrink:0;width:var(--normal-report-title-width);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.normal-report-column-setting-item .normal-report-column-setting-item-width{flex-shrink:0;width:92px}.normal-report-column-setting-item .el-button+.el-button{margin-left:0}.normal-report-column-setting-item .is-pinned{color:#409eff}.normal-report-column-setting-item .is-sort-off,.normal-report-column-setting-item .is-sort-off:focus,.normal-report-column-setting-item .is-sort-off:hover{color:#c0c4cc}.normal-report-column-setting-item.drag-over{background:#ecf5ff}.normal-report-column-setting-footer{margin-top:8px;padding-top:8px;border-top:1px solid #ebeef5;text-align:right}.normal-report-table-footer{flex-shrink:0;box-sizing:border-box;min-height:49px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:8px 12px;border-top:1px solid #edf1f6}.normal-report-table-footer .normal-report-table-pagination{padding-top:0}.normal-report-table-footer.is-only-pagination{justify-content:flex-end}.normal-report-footer-empty{margin-top:10px}.normal-report-toolbar-empty{margin-bottom:10px}.normal-report-update-time{font-size:13px;color:#909399;flex-shrink:0}.vxe-table--context-menu-wrapper .vxe-context-menu--option-wrapper+.vxe-context-menu--option-wrapper,.vxe-table--context-menu-wrapper .vxe-table--context-menu-group-wrapper+.vxe-table--context-menu-group-wrapper{border-top:1px solid #e8eaec;margin-top:2px;padding-top:2px}.normal-report-table-pagination{flex-shrink:0;padding-top:10px;text-align:right}.normal-report-op-more{margin-left:10px}.normal-report-main-table.vxe-table .vxe-body--row{transition:transform .22s ease,filter .22s ease}.normal-report-main-table.vxe-table .vxe-body--row:hover{transform:translateY(-3px);filter:drop-shadow(0 8px 16px rgba(31,73,125,.22))}.vxe-table--footer-wrapper::-webkit-scrollbar{width:8px!important;height:8px!important}.vxe-table--footer-wrapper::-webkit-scrollbar-track{background-color:#fff!important}.vxe-table--footer-wrapper::-webkit-scrollbar-thumb{background-color:#dddee0!important;border-radius:5px!important;border:1px solid #f1f1f1!important}.vxe-table--footer-wrapper::-webkit-scrollbar-thumb:hover{background-color:#a8a8a8!important}.vxe-table--footer-wrapper::-webkit-scrollbar-thumb:active{background-color:#dddee0!important}.vxe-table--footer-wrapper::-webkit-scrollbar-corner{background-color:#fff!important}.vxe-table--body-wrapper::-webkit-scrollbar{width:8px!important;height:8px!important}.vxe-table--body-wrapper::-webkit-scrollbar-track{background-color:#fff!important}.vxe-table--body-wrapper::-webkit-scrollbar-thumb{background-color:#dddee0!important;border-radius:5px!important;border:1px solid #f1f1f1!important}.vxe-table--body-wrapper::-webkit-scrollbar-thumb:active,.vxe-table--body-wrapper::-webkit-scrollbar-thumb:hover{background-color:#dddee0!important}.vxe-table--body-wrapper::-webkit-scrollbar-corner{background-color:#fff!important}.vxe-table .vxe-header--row{height:40px!important}.vxe-table .vxe-header--column{padding:0!important;color:#636364!important;font-weight:600!important;font-size:13px!important;background-color:#f5f7fa!important}.vxe-table .vxe-header--column,.vxe-table .vxe-header--column>.vxe-cell{height:40px!important;max-height:40px!important;line-height:40px!important}.vxe-table .vxe-header--column>.vxe-cell{padding-top:0!important;padding-bottom:0!important}.vxe-table .vxe-body--row{height:36px!important}.vxe-table .vxe-body--column>.vxe-cell,.vxe-table .vxe-body--row td.vxe-body--column{height:36px!important;max-height:36px!important;line-height:36px!important;padding-top:0!important;padding-bottom:0!important}.vxe-table .vxe-body--column.col--active>.vxe-cell{overflow:visible!important;line-height:normal!important}.vxe-table .vxe-body--column.col--active .el-input,.vxe-table .vxe-body--column.col--active .el-input__inner,.vxe-table .vxe-body--column.col--active .vxe-default-input,.vxe-table .vxe-body--column.col--active .vxe-default-select,.vxe-table .vxe-body--column.col--active .vxe-default-textarea,.vxe-table .vxe-body--column.col--active .vxe-input{width:100%;height:36px!important;max-height:36px!important;line-height:34px!important;box-sizing:border-box}.vxe-header--column.nr-header-drag-source{opacity:.45}.vxe-header--column.nr-header-drag-target{background-color:rgba(64,158,255,.08);box-shadow:inset 2px 0 0 #409eff}body.nr-header-dragging{-webkit-user-select:none;-moz-user-select:none;user-select:none}body.nr-header-dragging .vxe-header--column{cursor:grab}`, ""]);
3140
+ ___CSS_LOADER_EXPORT___.push([module.id, `.normal-report-table-panel{flex:1 1 0%;min-width:0;min-height:0;background:#fff;border:1px solid #e8edf4;border-radius:10px;box-shadow:0 6px 18px rgba(31,73,125,.06);height:100%;overflow:hidden;display:flex;flex-direction:column}.normal-report-table-wrap{flex:1;min-height:0;display:flex;flex-direction:column;padding:0 12px}.normal-report-table-wrap .el-table,.normal-report-table-wrap .vxe-table{flex:1;min-height:0}.normal-report-table-actions{flex-shrink:0;display:flex;align-items:center;gap:6px;padding:10px 12px;border-bottom:1px solid #edf1f6;margin-bottom:10px}.normal-report-table-actions .el-button+.el-button{margin-left:0}.normal-report-table-actions-left{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:6px}.normal-report-table-actions-right{flex-shrink:0;margin-left:auto;display:flex;align-items:center;gap:6px}.standard-toolbar-left,.standard-toolbar-query,.standard-toolbar-right{display:flex;align-items:center;gap:6px;min-width:0}.standard-toolbar-left .el-button+.el-button,.standard-toolbar-query .el-button+.el-button,.standard-toolbar-right .el-button+.el-button{margin-left:0}.normal-report-column-setting-entry,.normal-report-column-setting-entry .el-popover__reference-wrapper{display:inline-flex;align-items:center}.normal-report-column-setting{min-width:270px}.normal-report-column-setting-header{padding-bottom:8px;border-bottom:1px solid #ebeef5}.normal-report-column-setting-list{max-height:300px;overflow-y:auto;padding:4px 0}.normal-report-column-setting-item{display:flex;align-items:center;gap:2px;padding:5px 4px;border-radius:4px}.normal-report-column-setting-item .el-checkbox{flex:1;min-width:0;margin-right:0;display:flex;align-items:center}.normal-report-column-setting-item .el-checkbox__input{display:flex;align-items:center;flex-shrink:0}.normal-report-column-setting-item .normal-report-column-setting-item-title{cursor:grab}.normal-report-column-setting-item .normal-report-column-setting-item-title:active{cursor:grabbing}.normal-report-column-setting-item .el-checkbox,.normal-report-column-setting-item .el-checkbox__label{-webkit-user-select:none;-moz-user-select:none;user-select:none}.normal-report-column-setting-item .normal-report-column-setting-item-title .el-checkbox__label{flex-shrink:0;width:var(--normal-report-title-width);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.normal-report-column-setting-item .normal-report-column-setting-item-width{flex-shrink:0;width:92px}.normal-report-column-setting-item .el-button+.el-button{margin-left:0}.normal-report-column-setting-item .is-pinned{color:#409eff}.normal-report-column-setting-item .is-sort-off,.normal-report-column-setting-item .is-sort-off:focus,.normal-report-column-setting-item .is-sort-off:hover{color:#c0c4cc}.normal-report-column-setting-item.drag-over{background:#ecf5ff}.normal-report-column-setting-footer{margin-top:8px;padding-top:8px;border-top:1px solid #ebeef5;text-align:right}.normal-report-table-footer{flex-shrink:0;box-sizing:border-box;min-height:49px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:8px 12px;border-top:1px solid #edf1f6}.normal-report-table-footer .normal-report-table-pagination{padding-top:0}.normal-report-table-footer.is-only-pagination{justify-content:flex-end}.normal-report-footer-empty{margin-top:10px}.normal-report-toolbar-empty{margin-bottom:10px}.normal-report-update-time{font-size:13px;color:#909399;flex-shrink:0}.vxe-table--context-menu-wrapper .vxe-context-menu--option-wrapper+.vxe-context-menu--option-wrapper,.vxe-table--context-menu-wrapper .vxe-table--context-menu-group-wrapper+.vxe-table--context-menu-group-wrapper{border-top:1px solid #e8eaec;margin-top:2px;padding-top:2px}.normal-report-table-pagination{flex-shrink:0;padding-top:10px;text-align:right}.normal-report-op-more{margin-left:10px}.normal-report-main-table.vxe-table .vxe-body--row{transition:transform .22s ease,filter .22s ease}.normal-report-main-table.vxe-table .vxe-body--row:hover{transform:translateY(-3px);filter:drop-shadow(0 8px 16px rgba(31,73,125,.22))}.vxe-table--footer-wrapper::-webkit-scrollbar{width:8px!important;height:8px!important}.vxe-table--footer-wrapper::-webkit-scrollbar-track{background-color:#fff!important}.vxe-table--footer-wrapper::-webkit-scrollbar-thumb{background-color:#dddee0!important;border-radius:5px!important;border:1px solid #f1f1f1!important}.vxe-table--footer-wrapper::-webkit-scrollbar-thumb:hover{background-color:#a8a8a8!important}.vxe-table--footer-wrapper::-webkit-scrollbar-thumb:active{background-color:#dddee0!important}.vxe-table--footer-wrapper::-webkit-scrollbar-corner{background-color:#fff!important}.vxe-table--body-wrapper::-webkit-scrollbar{width:8px!important;height:8px!important}.vxe-table--body-wrapper::-webkit-scrollbar-track{background-color:#fff!important}.vxe-table--body-wrapper::-webkit-scrollbar-thumb{background-color:#dddee0!important;border-radius:5px!important;border:1px solid #f1f1f1!important}.vxe-table--body-wrapper::-webkit-scrollbar-thumb:active,.vxe-table--body-wrapper::-webkit-scrollbar-thumb:hover{background-color:#dddee0!important}.vxe-table--body-wrapper::-webkit-scrollbar-corner{background-color:#fff!important}.vxe-table .vxe-header--row{height:36px!important}.vxe-table .vxe-header--column{padding:0!important;color:#636364!important;font-weight:600!important;font-size:13px!important;background-color:#f5f7fa!important}.vxe-table .vxe-header--column,.vxe-table .vxe-header--column>.vxe-cell{height:36px!important;max-height:36px!important;line-height:36px!important}.vxe-table .vxe-header--column>.vxe-cell{padding-top:0!important;padding-bottom:0!important}.vxe-table .vxe-body--row{height:34px!important}.vxe-table .vxe-body--row td.vxe-body--column{font-size:12px!important}.vxe-table .vxe-body--column>.vxe-cell,.vxe-table .vxe-body--row td.vxe-body--column{height:34px!important;max-height:34px!important;line-height:34px!important;padding-top:0!important;padding-bottom:0!important}.vxe-table .vxe-tree-cell{display:flex;align-items:center;height:34px;line-height:34px;overflow:hidden}.vxe-table .vxe-body--column .el-tag--mini{height:26px;line-height:24px;padding:0 4px;font-size:12px;vertical-align:middle}.vxe-table .vxe-body--column .el-button--mini{height:26px;line-height:24px;padding:0 2px;font-size:12px;vertical-align:middle}.vxe-table .vxe-body--column.col--active>.vxe-cell{overflow:visible!important;line-height:normal!important}.vxe-table .vxe-body--column.col--active .el-input,.vxe-table .vxe-body--column.col--active .el-input__inner,.vxe-table .vxe-body--column.col--active .vxe-default-input,.vxe-table .vxe-body--column.col--active .vxe-default-select,.vxe-table .vxe-body--column.col--active .vxe-default-textarea,.vxe-table .vxe-body--column.col--active .vxe-input{width:100%;height:34px!important;max-height:34px!important;line-height:32px!important;font-size:12px!important;box-sizing:border-box}.vxe-header--column.nr-header-drag-source{opacity:.45}.vxe-header--column.nr-header-drag-target{background-color:rgba(64,158,255,.08);box-shadow:inset 2px 0 0 #409eff}body.nr-header-dragging{-webkit-user-select:none;-moz-user-select:none;user-select:none}body.nr-header-dragging .vxe-header--column{cursor:grab}`, ""]);
3141
3141
  // Exports
3142
3142
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
3143
3143
 
@@ -121099,8 +121099,8 @@ var StandardTimePick_component = normalizeComponent(
121099
121099
  )
121100
121100
 
121101
121101
  /* harmony default export */ const StandardTimePick = (StandardTimePick_component.exports);
121102
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/StandardTable/index.vue?vue&type=template&id=05e17600
121103
- var StandardTablevue_type_template_id_05e17600_render = function render() {
121102
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/StandardTable/index.vue?vue&type=template&id=a9e9136a
121103
+ var StandardTablevue_type_template_id_a9e9136a_render = function render() {
121104
121104
  var _vm = this,
121105
121105
  _c = _vm._self._c;
121106
121106
  return _c('section', {
@@ -121362,7 +121362,7 @@ var StandardTablevue_type_template_id_05e17600_render = function render() {
121362
121362
  return _vm.onTableMousedown.apply(null, arguments);
121363
121363
  }
121364
121364
  }
121365
- }, [_vm.showCheckbox ? _c('vxe-column', {
121365
+ }, [_vm.columnsReady && _vm.showCheckbox ? _c('vxe-column', {
121366
121366
  attrs: {
121367
121367
  "type": "checkbox",
121368
121368
  "width": "50",
@@ -121371,7 +121371,7 @@ var StandardTablevue_type_template_id_05e17600_render = function render() {
121371
121371
  "align": "center",
121372
121372
  "resizable": false
121373
121373
  }
121374
- }) : _vm._e(), _vm._l(_vm.vxeColumns, function (col) {
121374
+ }) : _vm._e(), _vm._l(_vm.renderedColumns, function (col) {
121375
121375
  return _c('vxe-column', {
121376
121376
  key: col.key,
121377
121377
  attrs: {
@@ -121434,7 +121434,7 @@ var StandardTablevue_type_template_id_05e17600_render = function render() {
121434
121434
  }
121435
121435
  }) : _vm.getFooterEmptyVisible() ? _c('standard-footer-empty') : _vm._e()], 1);
121436
121436
  };
121437
- var StandardTablevue_type_template_id_05e17600_staticRenderFns = [];
121437
+ var StandardTablevue_type_template_id_a9e9136a_staticRenderFns = [];
121438
121438
 
121439
121439
  ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/StandardTable/ToolbarEmpty.vue?vue&type=script&lang=js
121440
121440
  /**
@@ -121588,7 +121588,9 @@ var NormalReportCell = {
121588
121588
  edit = _ctx$props.edit;
121589
121589
  var parent = ctx.parent;
121590
121590
  if (!col || !parent || typeof parent.renderCell !== 'function') return null;
121591
- var result = parent.renderCell(col, scope, edit);
121591
+ // 把本次渲染的 h 传下去:操作列按钮必须在当前渲染里创建,
121592
+ // 不能用表格实例上预先生成的 VNode,否则 vxe 调用插槽时按钮挂不上
121593
+ var result = parent.renderCell(col, scope, edit, h);
121592
121594
  if (result == null || result === '') return null;
121593
121595
  if (Array.isArray(result)) {
121594
121596
  return result.map(function (item) {
@@ -121779,12 +121781,12 @@ var NormalReportSlotView = {
121779
121781
  // ===== 其它 =====
121780
121782
  updateTime: '--',
121781
121783
  // 数据更新时间(tableData 变化时自动刷新)
121782
- // 表头行高 40px、内容行高 36px:交给 vxe-table 计算行高,和样式保持一致
121784
+ // 表头行高 36px、内容行高 34px:交给 vxe-table 计算行高,和样式保持一致
121783
121785
  headerCellConfig: {
121784
- height: 40
121786
+ height: 36
121785
121787
  },
121786
121788
  cellConfig: {
121787
- height: 36
121789
+ height: 34
121788
121790
  },
121789
121791
  // 有可编辑列且未传 edit-config 时使用,保持对象引用稳定,避免表格反复重置编辑状态
121790
121792
  defaultEditConfig: {
@@ -121818,7 +121820,9 @@ var NormalReportSlotView = {
121818
121820
  // ResizeObserver 实例(监听表格容器尺寸变化)
121819
121821
  resizeTimer: null,
121820
121822
  // 尺寸变化防抖定时器
121821
- resizeSkipFirst: false // 跳过 ResizeObserver 挂载后的首次通知(避免初始化时无意义重算)
121823
+ // 首屏先让 standard-column 在 created 中注册完,再渲染 vxe-column。
121824
+ // 否则第一次往往只有操作列,vxe-table 会固化它的插槽,随后数据列插入后操作列变空白
121825
+ columnsReady: false
121822
121826
  };
121823
121827
  },
121824
121828
  computed: {
@@ -121995,6 +121999,10 @@ var NormalReportSlotView = {
121995
121999
  };
121996
122000
  }).filter(Boolean);
121997
122001
  },
122002
+ // 实际交给 vxe-table 的列:列注册完成前不输出,避免操作列先挂载
122003
+ renderedColumns: function renderedColumns() {
122004
+ return this.columnsReady ? this.vxeColumns : [];
122005
+ },
121998
122006
  // vxe-table 列配置(用户列 + 操作列;多选框列在模板中单独以 <vxe-column> 声明)
121999
122007
  // 注意:vxe-table 3.x 不消费 columns 配置对象,本计算属性仅供模板 v-for 生成 <vxe-column> 子组件
122000
122008
  vxeColumns: function vxeColumns() {
@@ -122093,9 +122101,22 @@ var NormalReportSlotView = {
122093
122101
  }
122094
122102
  },
122095
122103
  mounted: function mounted() {
122104
+ var _this4 = this;
122096
122105
  this.initResizeObserver();
122097
122106
  // 表头拖拽排序结束后抑制一次 click(document 捕获阶段拦截,防止拖拽结束触发排序切换)
122098
122107
  document.addEventListener('click', this.onDocumentClickCapture, true);
122108
+ // 本次 patch 中 standard-column 的 created 已经完成注册,此刻再放行列
122109
+ this.columnsReady = true;
122110
+ // 列挂载后再重算。height="100%" 要等浏览器完成 flex 布局才有父容器高度,
122111
+ // 只在 nextTick 里算会把表体高度当成内容高度,滚动条不再出现
122112
+ this.$nextTick(function () {
122113
+ _this4.resizeRecalculate();
122114
+ if (typeof requestAnimationFrame === 'function') {
122115
+ requestAnimationFrame(function () {
122116
+ return _this4.resizeRecalculate();
122117
+ });
122118
+ }
122119
+ });
122099
122120
  },
122100
122121
  beforeDestroy: function beforeDestroy() {
122101
122122
  this.destroyResizeObserver();
@@ -122120,51 +122141,51 @@ var NormalReportSlotView = {
122120
122141
  },
122121
122142
  // 工具栏左侧子组件 vnode(渲染到操作区左侧)
122122
122143
  getToolbarLeftVNodes: function getToolbarLeftVNodes() {
122123
- var _this4 = this;
122144
+ var _this5 = this;
122124
122145
  return this.getDefaultSlotVNodes().filter(function (v) {
122125
- return _this4.isVNodeOfType(v, TOOLBAR_LEFT_TYPES);
122146
+ return _this5.isVNodeOfType(v, TOOLBAR_LEFT_TYPES);
122126
122147
  });
122127
122148
  },
122128
122149
  // 工具栏右侧子组件 vnode(渲染到操作区右侧)
122129
122150
  getToolbarRightVNodes: function getToolbarRightVNodes() {
122130
- var _this5 = this;
122151
+ var _this6 = this;
122131
122152
  return this.getDefaultSlotVNodes().filter(function (v) {
122132
- return _this5.isVNodeOfType(v, TOOLBAR_RIGHT_TYPES);
122153
+ return _this6.isVNodeOfType(v, TOOLBAR_RIGHT_TYPES);
122133
122154
  });
122134
122155
  },
122135
122156
  // 底部栏左侧子组件 vnode(渲染到底部栏左侧)
122136
122157
  getFooterLeftVNodes: function getFooterLeftVNodes() {
122137
- var _this6 = this;
122158
+ var _this7 = this;
122138
122159
  return this.getDefaultSlotVNodes().filter(function (v) {
122139
- return _this6.isVNodeOfType(v, FOOTER_LEFT_TYPES);
122160
+ return _this7.isVNodeOfType(v, FOOTER_LEFT_TYPES);
122140
122161
  });
122141
122162
  },
122142
122163
  // 底部栏右侧分页子组件 vnode(渲染到底部栏右侧)
122143
122164
  getFooterRightVNodes: function getFooterRightVNodes() {
122144
- var _this7 = this;
122165
+ var _this8 = this;
122145
122166
  return this.getDefaultSlotVNodes().filter(function (v) {
122146
- return _this7.isVNodeOfType(v, FOOTER_RIGHT_TYPES);
122167
+ return _this8.isVNodeOfType(v, FOOTER_RIGHT_TYPES);
122147
122168
  });
122148
122169
  },
122149
122170
  // 底部空占位子组件 vnode(页面声明时渲染,未声明时使用内置默认占位)
122150
122171
  getFooterEmptyVNodes: function getFooterEmptyVNodes() {
122151
- var _this8 = this;
122172
+ var _this9 = this;
122152
122173
  return this.getDefaultSlotVNodes().filter(function (v) {
122153
- return _this8.isVNodeOfType(v, FOOTER_EMPTY_TYPES);
122174
+ return _this9.isVNodeOfType(v, FOOTER_EMPTY_TYPES);
122154
122175
  });
122155
122176
  },
122156
122177
  // 工具栏空占位子组件 vnode(页面声明时渲染,未声明时使用内置默认占位)
122157
122178
  getToolbarEmptyVNodes: function getToolbarEmptyVNodes() {
122158
- var _this9 = this;
122179
+ var _this0 = this;
122159
122180
  return this.getDefaultSlotVNodes().filter(function (v) {
122160
- return _this9.isVNodeOfType(v, TOOLBAR_EMPTY_TYPES);
122181
+ return _this0.isVNodeOfType(v, TOOLBAR_EMPTY_TYPES);
122161
122182
  });
122162
122183
  },
122163
122184
  // 隐藏注册区 vnode:默认插槽中除区域子组件(工具栏/底部栏功能区 + 空占位)之外的内容
122164
122185
  getHiddenSlotVNodes: function getHiddenSlotVNodes() {
122165
- var _this0 = this;
122186
+ var _this1 = this;
122166
122187
  return this.getDefaultSlotVNodes().filter(function (v) {
122167
- return !_this0.isVNodeOfType(v, TOOLBAR_LEFT_TYPES) && !_this0.isVNodeOfType(v, TOOLBAR_RIGHT_TYPES) && !_this0.isVNodeOfType(v, FOOTER_LEFT_TYPES) && !_this0.isVNodeOfType(v, FOOTER_RIGHT_TYPES) && !_this0.isVNodeOfType(v, FOOTER_EMPTY_TYPES) && !_this0.isVNodeOfType(v, TOOLBAR_EMPTY_TYPES);
122188
+ return !_this1.isVNodeOfType(v, TOOLBAR_LEFT_TYPES) && !_this1.isVNodeOfType(v, TOOLBAR_RIGHT_TYPES) && !_this1.isVNodeOfType(v, FOOTER_LEFT_TYPES) && !_this1.isVNodeOfType(v, FOOTER_RIGHT_TYPES) && !_this1.isVNodeOfType(v, FOOTER_EMPTY_TYPES) && !_this1.isVNodeOfType(v, TOOLBAR_EMPTY_TYPES);
122168
122189
  });
122169
122190
  },
122170
122191
  // 操作区是否显示
@@ -122254,14 +122275,14 @@ var NormalReportSlotView = {
122254
122275
  },
122255
122276
  // ===== 单元格渲染 =====
122256
122277
  // 渲染单元格内容(统一分发):seq 序号 / 操作列按钮 / 列组件插槽与字段值
122257
- renderCell: function renderCell(col, scope, isEdit) {
122278
+ renderCell: function renderCell(col, scope, isEdit, h) {
122258
122279
  // 内置序号列:vxe 插槽参数 seq 即显示序号
122259
122280
  if (col.isSeq) {
122260
122281
  return String(scope.seq != null ? scope.seq : '');
122261
122282
  }
122262
- // 操作列:渲染操作按钮
122283
+ // 操作列:渲染操作按钮(使用单元格本次渲染的 h)
122263
122284
  if (col.isOp) {
122264
- return this.renderOpCell(scope.row);
122285
+ return this.renderOpCell(scope.row, h);
122265
122286
  }
122266
122287
  var comp = col.comp;
122267
122288
  if (!comp) return '';
@@ -122286,7 +122307,7 @@ var NormalReportSlotView = {
122286
122307
  // 渲染单个操作按钮:active 为 false 时不再隐藏(原按 v-if 消失),
122287
122308
  // 改为渲染 disabled 按钮(变灰不可操作)
122288
122309
  renderOpButton: function renderOpButton(h, row, btn, idx) {
122289
- var _this1 = this;
122310
+ var _this10 = this;
122290
122311
  var active = this.isOpActive(btn, row);
122291
122312
  var data = {
122292
122313
  key: idx,
@@ -122297,7 +122318,7 @@ var NormalReportSlotView = {
122297
122318
  },
122298
122319
  on: {
122299
122320
  click: function click() {
122300
- return _this1.handleOpClick(row, btn);
122321
+ return _this10.handleOpClick(row, btn);
122301
122322
  }
122302
122323
  },
122303
122324
  // 阻止点击事件冒泡到表格单元格:
@@ -122319,7 +122340,7 @@ var NormalReportSlotView = {
122319
122340
  // 超出按钮渲染为 el-dropdown-item,点击后走与直接按钮一致的 handleOpClick;
122320
122341
  // active 为 false 的按钮以 disabled 形式变灰展示
122321
122342
  renderOpMore: function renderOpMore(h, row, restButtons) {
122322
- var _this10 = this;
122343
+ var _this11 = this;
122323
122344
  return h('el-dropdown', {
122324
122345
  key: '__normal_report_op_more__',
122325
122346
  "class": 'normal-report-op-more',
@@ -122329,7 +122350,7 @@ var NormalReportSlotView = {
122329
122350
  },
122330
122351
  on: {
122331
122352
  command: function command(btn) {
122332
- return _this10.handleOpClick(row, btn);
122353
+ return _this11.handleOpClick(row, btn);
122333
122354
  }
122334
122355
  },
122335
122356
  nativeOn: {
@@ -122347,7 +122368,7 @@ var NormalReportSlotView = {
122347
122368
  })]), h('el-dropdown-menu', {
122348
122369
  slot: 'dropdown'
122349
122370
  }, restButtons.map(function (btn, idx) {
122350
- var active = _this10.isOpActive(btn, row);
122371
+ var active = _this11.isOpActive(btn, row);
122351
122372
  return h('el-dropdown-item', {
122352
122373
  key: idx,
122353
122374
  props: {
@@ -122362,20 +122383,20 @@ var NormalReportSlotView = {
122362
122383
  },
122363
122384
  // 渲染操作列:按钮 ≤ 3 个时全部直接渲染;超过 3 个时前 3 个直接渲染,
122364
122385
  // 其余统一收纳进“更多”下拉菜单;active 为 false 的按钮渲染为 disabled(变灰)
122365
- renderOpCell: function renderOpCell(row) {
122366
- var _this11 = this;
122367
- var h = this.$createElement;
122386
+ renderOpCell: function renderOpCell(row, h) {
122387
+ var _this12 = this;
122388
+ var createElement = h || this.$createElement;
122368
122389
  var btns = this.opButtons;
122369
122390
  if (!btns.length) return null;
122370
122391
  if (btns.length <= OP_MAX_DIRECT_COUNT) {
122371
122392
  return btns.map(function (btn, idx) {
122372
- return _this11.renderOpButton(h, row, btn, idx);
122393
+ return _this12.renderOpButton(createElement, row, btn, idx);
122373
122394
  });
122374
122395
  }
122375
122396
  var nodes = btns.slice(0, OP_MAX_DIRECT_COUNT).map(function (btn, idx) {
122376
- return _this11.renderOpButton(h, row, btn, idx);
122397
+ return _this12.renderOpButton(createElement, row, btn, idx);
122377
122398
  });
122378
- nodes.push(this.renderOpMore(h, row, btns.slice(OP_MAX_DIRECT_COUNT)));
122399
+ nodes.push(this.renderOpMore(createElement, row, btns.slice(OP_MAX_DIRECT_COUNT)));
122379
122400
  return nodes;
122380
122401
  },
122381
122402
  // 操作按钮是否有效:active 可为布尔值或 (row, btn) => boolean 函数
@@ -122456,12 +122477,12 @@ var NormalReportSlotView = {
122456
122477
  },
122457
122478
  // 复制文本到剪贴板:优先使用现代 API,失败时降级 execCommand
122458
122479
  copyTextToClipboard: function copyTextToClipboard(text) {
122459
- var _this12 = this;
122480
+ var _this13 = this;
122460
122481
  if (navigator.clipboard && window.isSecureContext) {
122461
122482
  navigator.clipboard.writeText(text).then(function () {
122462
- _this12.$message && _this12.$message.success('复制成功:' + text);
122483
+ _this13.$message && _this13.$message.success('复制成功:' + text);
122463
122484
  })["catch"](function () {
122464
- _this12.fallbackCopyText(text);
122485
+ _this13.fallbackCopyText(text);
122465
122486
  });
122466
122487
  } else {
122467
122488
  this.fallbackCopyText(text);
@@ -122547,23 +122568,23 @@ var NormalReportSlotView = {
122547
122568
  // 切换列的排序开关:sortable 已纳入列 key,修改后强制重建列,
122548
122569
  // 再由 applyColumnOrder 恢复列顺序(重建会打乱 staticColumns 顺序)
122549
122570
  toggleHeaderColumnSort: function toggleHeaderColumnSort(uid) {
122550
- var _this13 = this;
122571
+ var _this14 = this;
122551
122572
  var st = this.columnStates[uid];
122552
122573
  if (!st) return;
122553
122574
  this.$set(st, 'sortable', !st.sortable);
122554
122575
  this.$nextTick(function () {
122555
- return _this13.applyColumnOrder();
122576
+ return _this14.applyColumnOrder();
122556
122577
  });
122557
122578
  },
122558
122579
  // 切换列的固定状态(左/右固定互斥,再次点击同侧即取消):
122559
122580
  // fixed 同样纳入列 key,重建后 vxe-table 重新解析固定列分组
122560
122581
  toggleHeaderColumnFixed: function toggleHeaderColumnFixed(uid, side) {
122561
- var _this14 = this;
122582
+ var _this15 = this;
122562
122583
  var st = this.columnStates[uid];
122563
122584
  if (!st) return;
122564
122585
  this.$set(st, 'fixed', st.fixed === side ? '' : side);
122565
122586
  this.$nextTick(function () {
122566
- return _this14.applyColumnOrder();
122587
+ return _this15.applyColumnOrder();
122567
122588
  });
122568
122589
  },
122569
122590
  // ===== 单元格编辑 =====
@@ -122679,7 +122700,7 @@ var NormalReportSlotView = {
122679
122700
  },
122680
122701
  // 交换列顺序(columnOrder 重排后强制同步 vxe-table 内部列配置)
122681
122702
  moveColumnOrder: function moveColumnOrder(fromUid, toUid) {
122682
- var _this15 = this;
122703
+ var _this16 = this;
122683
122704
  var from = this.columnOrder.indexOf(fromUid);
122684
122705
  var to = this.columnOrder.indexOf(toUid);
122685
122706
  if (from < 0 || to < 0 || from === to) return;
@@ -122688,7 +122709,7 @@ var NormalReportSlotView = {
122688
122709
  order.splice(to, 0, moved);
122689
122710
  this.columnOrder = order;
122690
122711
  this.$nextTick(function () {
122691
- return _this15.applyColumnOrder();
122712
+ return _this16.applyColumnOrder();
122692
122713
  });
122693
122714
  },
122694
122715
  // ===== 对外方法(父组件通过 ref 调用) =====
@@ -122708,9 +122729,10 @@ var NormalReportSlotView = {
122708
122729
  getSelection: function getSelection() {
122709
122730
  return this.$refs.xTable ? this.$refs.xTable.getCheckboxRecords() : [];
122710
122731
  },
122711
- // 表格重新布局(扩展:外层容器尺寸变化后调用)
122732
+ // 表格重新布局(扩展:外层容器尺寸变化后调用)。
122733
+ // 必须完整重算:否则父容器高度变化后表体高度不更新,内容超出也不出滚动条
122712
122734
  recalculate: function recalculate() {
122713
- if (this.$refs.xTable) this.$refs.xTable.recalculate();
122735
+ if (this.$refs.xTable) this.$refs.xTable.recalculate(true);
122714
122736
  },
122715
122737
  // 树形表格:设置所有节点展开/收起(供页面“展开全部/收起全部”按钮使用)
122716
122738
  setAllTreeExpand: function setAllTreeExpand(expanded) {
@@ -122725,18 +122747,14 @@ var NormalReportSlotView = {
122725
122747
  // 表现为固定列行与数据行错位。此处监听表格容器尺寸变化,防抖后
122726
122748
  // 重新计算布局并调用 refreshScroll() 强制同步各滚动层位置。
122727
122749
  initResizeObserver: function initResizeObserver() {
122728
- var _this16 = this;
122750
+ var _this17 = this;
122729
122751
  var wrapEl = this.$refs.tableWrap;
122730
122752
  if (!wrapEl) return;
122731
122753
  if (typeof ResizeObserver !== 'undefined') {
122732
- this.resizeSkipFirst = true;
122754
+ // 首次通知也要重算。挂载时容器往往已有高度,但还不是 flex 约束后的高度,
122755
+ // 跳过这次就会把“内容撑开的高度”当成可视高度,滚动条不再出现
122733
122756
  this.resizeObserver = new ResizeObserver(function () {
122734
- // 挂载后的首次通知仅记录基准,跳过无意义重算
122735
- if (_this16.resizeSkipFirst) {
122736
- _this16.resizeSkipFirst = false;
122737
- return;
122738
- }
122739
- _this16.scheduleTableRecalculate();
122757
+ _this17.scheduleTableRecalculate();
122740
122758
  });
122741
122759
  this.resizeObserver.observe(wrapEl);
122742
122760
  } else {
@@ -122744,27 +122762,30 @@ var NormalReportSlotView = {
122744
122762
  window.addEventListener('resize', this.handleWindowResize);
122745
122763
  }
122746
122764
  },
122747
- // 防抖:连续尺寸变化(如拖拽分割线)期间只重算一次
122765
+ // 防抖:连续尺寸变化(如拖拽分割线)停稳后再重算,读到的是最终宽高
122748
122766
  scheduleTableRecalculate: function scheduleTableRecalculate() {
122749
- var _this17 = this;
122750
- if (this.resizeTimer) return;
122767
+ var _this18 = this;
122768
+ if (this.resizeTimer) clearTimeout(this.resizeTimer);
122751
122769
  this.resizeTimer = setTimeout(function () {
122752
- _this17.resizeTimer = null;
122753
- _this17.resizeRecalculate();
122754
- }, 100);
122770
+ _this18.resizeTimer = null;
122771
+ _this18.resizeRecalculate();
122772
+ }, 50);
122755
122773
  },
122756
- // 重新计算布局,并在重算完成后强制同步固定列与主表体的滚动位置
122774
+ // 重新计算布局,并在重算完成后强制同步固定列与主表体的滚动位置。
122775
+ // 容器还没有宽度时 vxe 会直接跳过滚动计算,等下一次尺寸通知再算
122757
122776
  resizeRecalculate: function resizeRecalculate() {
122758
- var _this18 = this;
122777
+ var _this19 = this;
122759
122778
  var xTable = this.$refs.xTable;
122779
+ var wrapEl = this.$refs.tableWrap;
122760
122780
  if (!xTable) return;
122781
+ if (wrapEl && wrapEl.clientWidth === 0) return;
122761
122782
  var restore = function restore() {
122762
- _this18.$nextTick(function () {
122783
+ _this19.$nextTick(function () {
122763
122784
  if (xTable.refreshScroll) xTable.refreshScroll();
122764
122785
  });
122765
122786
  };
122766
122787
  if (xTable.recalculate) {
122767
- var result = xTable.recalculate();
122788
+ var result = xTable.recalculate(true);
122768
122789
  if (result && typeof result.then === 'function') {
122769
122790
  result.then(restore);
122770
122791
  } else {
@@ -122820,13 +122841,13 @@ var NormalReportSlotView = {
122820
122841
  });
122821
122842
  xTable.staticColumns = next;
122822
122843
  this.$nextTick(function () {
122823
- xTable.recalculate && xTable.recalculate();
122844
+ xTable.recalculate && xTable.recalculate(true);
122824
122845
  });
122825
122846
  },
122826
122847
  // ===== 列设置弹层 =====
122827
122848
  // 打开列设置:以当前注册列生成工作副本(每次打开都重新初始化)
122828
122849
  openColumnSetting: function openColumnSetting() {
122829
- var _this19 = this;
122850
+ var _this20 = this;
122830
122851
  var compMap = {};
122831
122852
  this.columnComps.forEach(function (comp) {
122832
122853
  compMap[comp._uid] = comp;
@@ -122854,7 +122875,7 @@ var NormalReportSlotView = {
122854
122875
  // 列标题宽度:按最长列名称计算(中文 25px/字 + 英文 15px/字 + 30px 余量),
122855
122876
  // 各列标题统一按该宽度显示,保证输入框与按钮对齐
122856
122877
  this.columnTitleWidth = this.columnDraft.reduce(function (max, c) {
122857
- return Math.max(max, _this19.calcColumnTitleWidth(c.title));
122878
+ return Math.max(max, _this20.calcColumnTitleWidth(c.title));
122858
122879
  }, 0);
122859
122880
  },
122860
122881
  // 计算单个列标题的显示宽度(px):中文 25px/字 + 英文 15px/字 + 30px 余量
@@ -122946,10 +122967,10 @@ var NormalReportSlotView = {
122946
122967
  },
122947
122968
  // 确认:将面板副本应用到列状态并刷新表格
122948
122969
  confirmColumnSetting: function confirmColumnSetting() {
122949
- var _this20 = this;
122970
+ var _this21 = this;
122950
122971
  var order = [];
122951
122972
  this.columnDraft.forEach(function (d) {
122952
- _this20.$set(_this20.columnStates, d.uid, {
122973
+ _this21.$set(_this21.columnStates, d.uid, {
122953
122974
  visible: d.visible,
122954
122975
  fixed: d.fixed || '',
122955
122976
  minWidth: d.minWidth != null ? d.minWidth : null,
@@ -122960,7 +122981,7 @@ var NormalReportSlotView = {
122960
122981
  this.columnOrder = order;
122961
122982
  this.columnSettingVisible = false;
122962
122983
  this.$nextTick(function () {
122963
- _this20.applyColumnOrder();
122984
+ _this21.applyColumnOrder();
122964
122985
  });
122965
122986
  }
122966
122987
  }
@@ -122982,8 +123003,8 @@ var StandardTablevue_type_style_index_0_prod_lang_scss_external = __webpack_requ
122982
123003
 
122983
123004
  var StandardTable_component = normalizeComponent(
122984
123005
  components_StandardTablevue_type_script_lang_js,
122985
- StandardTablevue_type_template_id_05e17600_render,
122986
- StandardTablevue_type_template_id_05e17600_staticRenderFns,
123006
+ StandardTablevue_type_template_id_a9e9136a_render,
123007
+ StandardTablevue_type_template_id_a9e9136a_staticRenderFns,
122987
123008
  false,
122988
123009
  null,
122989
123010
  null,
@@ -123279,12 +123300,13 @@ var ToolbarLeft_component = normalizeComponent(
123279
123300
  * 工具栏右侧子组件(双标签组件):
123280
123301
  *
123281
123302
  * <standard-toolbar-right show-adjustment>
123282
- * <el-button size="mini" icon="el-icon-download" @click="onExport">导出</el-button>
123303
+ * <standard-toolbar-query query-method="onQuery" show-export export-method="onExport" />
123283
123304
  * </standard-toolbar-right>
123284
123305
  *
123285
123306
  * 说明:
123286
- * 1. 必须放在 <standard-table> 默认插槽内,标签内部内容(按钮等)由主组件
123287
- * 就地渲染到表格操作区右侧(“调整”列设置按钮之前);
123307
+ * 1. 必须放在 <standard-table> 默认插槽内,标签内部内容(按钮、standard-toolbar-query 等)
123308
+ * 由主组件就地渲染到表格操作区右侧(“调整”列设置按钮之前);
123309
+ * standard-toolbar-query 只能放在本组件内部;
123288
123310
  * 2. showAdjustment(模板写法 show-adjustment):是否显示“调整”列设置按钮。
123289
123311
  * 列设置弹层仍由主组件 StandardTable 渲染,本组件仅声明开关;
123290
123312
  * 主组件自身的 showAdjustment 属性继续有效(任一为 true 即显示“调整”按钮);
@@ -123355,6 +123377,199 @@ var ToolbarRight_component = normalizeComponent(
123355
123377
  )
123356
123378
 
123357
123379
  /* harmony default export */ const ToolbarRight = (ToolbarRight_component.exports);
123380
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/StandardTable/ToolbarQuery.vue?vue&type=template&id=2b616fae
123381
+ var ToolbarQueryvue_type_template_id_2b616fae_render = function render() {
123382
+ var _vm = this,
123383
+ _c = _vm._self._c;
123384
+ return _vm.placedCorrectly ? _c('div', {
123385
+ staticClass: "standard-toolbar-query"
123386
+ }, [_c('standard-input', {
123387
+ attrs: {
123388
+ "value": _vm.keyword,
123389
+ "placeholder": _vm.placeholder
123390
+ },
123391
+ on: {
123392
+ "input": _vm.onInput,
123393
+ "enter": _vm.onQuery
123394
+ }
123395
+ }), _c('standard-button', {
123396
+ attrs: {
123397
+ "type": "primary",
123398
+ "icon": "el-icon-search",
123399
+ "label": "查询",
123400
+ "loading": _vm.loading
123401
+ },
123402
+ on: {
123403
+ "click": _vm.onQuery
123404
+ }
123405
+ }), _vm.showExport ? _c('standard-button', {
123406
+ attrs: {
123407
+ "icon": "el-icon-upload2",
123408
+ "label": "导出"
123409
+ },
123410
+ on: {
123411
+ "click": _vm.onExport
123412
+ }
123413
+ }) : _vm._e()], 1) : _vm._e();
123414
+ };
123415
+ var ToolbarQueryvue_type_template_id_2b616fae_staticRenderFns = [];
123416
+
123417
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/StandardTable/ToolbarQuery.vue?vue&type=script&lang=js
123418
+
123419
+
123420
+
123421
+ /**
123422
+ * 工具栏右侧查询子组件(单标签):
123423
+ *
123424
+ * <standard-toolbar-right>
123425
+ * <standard-toolbar-query
123426
+ * v-model="keyword"
123427
+ * placeholder="请输入关键字"
123428
+ * query-method="onQuery"
123429
+ * show-export
123430
+ * export-method="onExport"
123431
+ * />
123432
+ * </standard-toolbar-right>
123433
+ *
123434
+ * 说明:
123435
+ * 1. 只能作为 standard-toolbar-right 的子组件使用,放在其它位置时不渲染并给出警告;
123436
+ * 2. 默认包含输入框、查询按钮;showExport(模板写法 show-export)为 true 时再显示导出按钮。
123437
+ * 输入框回车与点击查询等效;
123438
+ * 3. queryMethod / exportMethod(模板写法 query-method / export-method)
123439
+ * 支持函数(直接调用)与字符串(沿父组件链查找页面方法),入参为当前关键字;
123440
+ * 4. 同时派发 query / export 事件,参数同样为当前关键字。export 仅在导出按钮显示时由点击触发。
123441
+ */
123442
+ /* harmony default export */ const ToolbarQueryvue_type_script_lang_js = ({
123443
+ name: 'StandardToolbarQuery',
123444
+ components: {
123445
+ StandardInput: StandardInput,
123446
+ StandardButton: StandardButton
123447
+ },
123448
+ model: {
123449
+ prop: 'value',
123450
+ event: 'input'
123451
+ },
123452
+ props: {
123453
+ // v-model 绑定的查询关键字
123454
+ value: {
123455
+ type: [String, Number],
123456
+ "default": ''
123457
+ },
123458
+ // 输入框占位文案
123459
+ placeholder: {
123460
+ type: String,
123461
+ "default": '请输入关键字'
123462
+ },
123463
+ // 查询方法:函数直接调用,字符串则沿父组件链查找同名方法
123464
+ queryMethod: {
123465
+ type: [Function, String],
123466
+ "default": ''
123467
+ },
123468
+ // 导出方法:函数直接调用,字符串则沿父组件链查找同名方法
123469
+ exportMethod: {
123470
+ type: [Function, String],
123471
+ "default": ''
123472
+ },
123473
+ // 是否显示导出按钮,默认不显示
123474
+ showExport: {
123475
+ type: Boolean,
123476
+ "default": false
123477
+ },
123478
+ // 查询按钮加载态
123479
+ loading: {
123480
+ type: Boolean,
123481
+ "default": false
123482
+ }
123483
+ },
123484
+ data: function data() {
123485
+ return {
123486
+ // 未确认父级前先渲染,挂载后若不在 toolbar-right 内再隐藏,避免正确用法被误伤
123487
+ placedCorrectly: true,
123488
+ keyword: this.value == null ? '' : String(this.value)
123489
+ };
123490
+ },
123491
+ watch: {
123492
+ value: function value(val) {
123493
+ this.keyword = val == null ? '' : String(val);
123494
+ }
123495
+ },
123496
+ mounted: function mounted() {
123497
+ this.validatePlacement();
123498
+ },
123499
+ methods: {
123500
+ // 沿父组件链查找 StandardToolbarRight(插槽内容的 $parent 为实际渲染它的组件)
123501
+ findToolbarRight: function findToolbarRight() {
123502
+ var parent = this.$parent;
123503
+ while (parent) {
123504
+ if (parent.$options && parent.$options.name === 'StandardToolbarRight') return parent;
123505
+ parent = parent.$parent;
123506
+ }
123507
+ return null;
123508
+ },
123509
+ // 父组件链与 DOM 宿主双重确认:任一命中即视为放在 standard-toolbar-right 内
123510
+ validatePlacement: function validatePlacement() {
123511
+ var el = this.$el;
123512
+ var byDom = !!(el && el.nodeType === 1 && el.parentElement && el.parentElement.closest('.standard-toolbar-right'));
123513
+ if (this.findToolbarRight() || byDom) return;
123514
+ this.placedCorrectly = false;
123515
+ console.warn('[StandardToolbarQuery] 只能放在 standard-toolbar-right 内部');
123516
+ },
123517
+ onInput: function onInput(val) {
123518
+ this.keyword = val == null ? '' : String(val);
123519
+ this.$emit('input', this.keyword);
123520
+ },
123521
+ // method 为函数时直接调用;为字符串时沿父组件链查找同名方法
123522
+ invokeMethod: function invokeMethod(method, keyword) {
123523
+ if (typeof method === 'function') {
123524
+ method(keyword);
123525
+ return;
123526
+ }
123527
+ if (typeof method === 'string' && method) {
123528
+ var parent = this.$parent;
123529
+ while (parent) {
123530
+ if (typeof parent[method] === 'function') {
123531
+ parent[method](keyword);
123532
+ return;
123533
+ }
123534
+ parent = parent.$parent;
123535
+ }
123536
+ console.warn("[StandardToolbarQuery] \u672A\u627E\u5230\u65B9\u6CD5 ".concat(method));
123537
+ }
123538
+ },
123539
+ onQuery: function onQuery() {
123540
+ var keyword = this.keyword;
123541
+ this.invokeMethod(this.queryMethod, keyword);
123542
+ this.$emit('query', keyword);
123543
+ },
123544
+ onExport: function onExport() {
123545
+ var keyword = this.keyword;
123546
+ this.invokeMethod(this.exportMethod, keyword);
123547
+ this.$emit('export', keyword);
123548
+ }
123549
+ }
123550
+ });
123551
+ ;// ./src/components/StandardTable/ToolbarQuery.vue?vue&type=script&lang=js
123552
+ /* harmony default export */ const StandardTable_ToolbarQueryvue_type_script_lang_js = (ToolbarQueryvue_type_script_lang_js);
123553
+ ;// ./src/components/StandardTable/ToolbarQuery.vue
123554
+
123555
+
123556
+
123557
+
123558
+
123559
+ /* normalize component */
123560
+ ;
123561
+ var ToolbarQuery_component = normalizeComponent(
123562
+ StandardTable_ToolbarQueryvue_type_script_lang_js,
123563
+ ToolbarQueryvue_type_template_id_2b616fae_render,
123564
+ ToolbarQueryvue_type_template_id_2b616fae_staticRenderFns,
123565
+ false,
123566
+ null,
123567
+ null,
123568
+ null
123569
+
123570
+ )
123571
+
123572
+ /* harmony default export */ const ToolbarQuery = (ToolbarQuery_component.exports);
123358
123573
  ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/StandardTable/FooterLeft.vue?vue&type=script&lang=js
123359
123574
  /**
123360
123575
  * 底部栏左侧子组件(单标签组件):
@@ -123536,6 +123751,7 @@ var FooterRight_component = normalizeComponent(
123536
123751
  * 'standard-column': StandardTable.Column,
123537
123752
  * 'standard-toolbar-left': StandardTable.ToolbarLeft,
123538
123753
  * 'standard-toolbar-right': StandardTable.ToolbarRight,
123754
+ * 'standard-toolbar-query': StandardTable.ToolbarQuery,
123539
123755
  * 'standard-footer-left': StandardTable.FooterLeft,
123540
123756
  * 'standard-footer-right': StandardTable.FooterRight,
123541
123757
  * 'standard-footer-empty': StandardTable.FooterEmpty,
@@ -123557,10 +123773,12 @@ var FooterRight_component = normalizeComponent(
123557
123773
 
123558
123774
 
123559
123775
 
123776
+
123560
123777
  // 将各子组件挂载为静态属性,方便引用方统一引入注册
123561
123778
  StandardTable.Column = Column;
123562
123779
  StandardTable.ToolbarLeft = ToolbarLeft;
123563
123780
  StandardTable.ToolbarRight = ToolbarRight;
123781
+ StandardTable.ToolbarQuery = ToolbarQuery;
123564
123782
  StandardTable.FooterLeft = FooterLeft;
123565
123783
  StandardTable.FooterRight = FooterRight;
123566
123784
  StandardTable.FooterEmpty = FooterEmpty;
@@ -123572,6 +123790,7 @@ StandardTable.install = function (Vue) {
123572
123790
  Vue.component(Column.name, Column);
123573
123791
  Vue.component(ToolbarLeft.name, ToolbarLeft);
123574
123792
  Vue.component(ToolbarRight.name, ToolbarRight);
123793
+ Vue.component(ToolbarQuery.name, ToolbarQuery);
123575
123794
  Vue.component(FooterLeft.name, FooterLeft);
123576
123795
  Vue.component(FooterRight.name, FooterRight);
123577
123796
  Vue.component(FooterEmpty.name, FooterEmpty);