@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.
@@ -3147,7 +3147,7 @@ __webpack_require__.r(__webpack_exports__);
3147
3147
 
3148
3148
  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()));
3149
3149
  // Module
3150
- ___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}`, ""]);
3150
+ ___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}`, ""]);
3151
3151
  // Exports
3152
3152
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
3153
3153
 
@@ -121109,8 +121109,8 @@ var StandardTimePick_component = normalizeComponent(
121109
121109
  )
121110
121110
 
121111
121111
  /* harmony default export */ const StandardTimePick = (StandardTimePick_component.exports);
121112
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
121113
- var StandardTablevue_type_template_id_05e17600_render = function render() {
121112
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
121113
+ var StandardTablevue_type_template_id_a9e9136a_render = function render() {
121114
121114
  var _vm = this,
121115
121115
  _c = _vm._self._c;
121116
121116
  return _c('section', {
@@ -121372,7 +121372,7 @@ var StandardTablevue_type_template_id_05e17600_render = function render() {
121372
121372
  return _vm.onTableMousedown.apply(null, arguments);
121373
121373
  }
121374
121374
  }
121375
- }, [_vm.showCheckbox ? _c('vxe-column', {
121375
+ }, [_vm.columnsReady && _vm.showCheckbox ? _c('vxe-column', {
121376
121376
  attrs: {
121377
121377
  "type": "checkbox",
121378
121378
  "width": "50",
@@ -121381,7 +121381,7 @@ var StandardTablevue_type_template_id_05e17600_render = function render() {
121381
121381
  "align": "center",
121382
121382
  "resizable": false
121383
121383
  }
121384
- }) : _vm._e(), _vm._l(_vm.vxeColumns, function (col) {
121384
+ }) : _vm._e(), _vm._l(_vm.renderedColumns, function (col) {
121385
121385
  return _c('vxe-column', {
121386
121386
  key: col.key,
121387
121387
  attrs: {
@@ -121444,7 +121444,7 @@ var StandardTablevue_type_template_id_05e17600_render = function render() {
121444
121444
  }
121445
121445
  }) : _vm.getFooterEmptyVisible() ? _c('standard-footer-empty') : _vm._e()], 1);
121446
121446
  };
121447
- var StandardTablevue_type_template_id_05e17600_staticRenderFns = [];
121447
+ var StandardTablevue_type_template_id_a9e9136a_staticRenderFns = [];
121448
121448
 
121449
121449
  ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/StandardTable/ToolbarEmpty.vue?vue&type=script&lang=js
121450
121450
  /**
@@ -121598,7 +121598,9 @@ var NormalReportCell = {
121598
121598
  edit = _ctx$props.edit;
121599
121599
  var parent = ctx.parent;
121600
121600
  if (!col || !parent || typeof parent.renderCell !== 'function') return null;
121601
- var result = parent.renderCell(col, scope, edit);
121601
+ // 把本次渲染的 h 传下去:操作列按钮必须在当前渲染里创建,
121602
+ // 不能用表格实例上预先生成的 VNode,否则 vxe 调用插槽时按钮挂不上
121603
+ var result = parent.renderCell(col, scope, edit, h);
121602
121604
  if (result == null || result === '') return null;
121603
121605
  if (Array.isArray(result)) {
121604
121606
  return result.map(function (item) {
@@ -121789,12 +121791,12 @@ var NormalReportSlotView = {
121789
121791
  // ===== 其它 =====
121790
121792
  updateTime: '--',
121791
121793
  // 数据更新时间(tableData 变化时自动刷新)
121792
- // 表头行高 40px、内容行高 36px:交给 vxe-table 计算行高,和样式保持一致
121794
+ // 表头行高 36px、内容行高 34px:交给 vxe-table 计算行高,和样式保持一致
121793
121795
  headerCellConfig: {
121794
- height: 40
121796
+ height: 36
121795
121797
  },
121796
121798
  cellConfig: {
121797
- height: 36
121799
+ height: 34
121798
121800
  },
121799
121801
  // 有可编辑列且未传 edit-config 时使用,保持对象引用稳定,避免表格反复重置编辑状态
121800
121802
  defaultEditConfig: {
@@ -121828,7 +121830,9 @@ var NormalReportSlotView = {
121828
121830
  // ResizeObserver 实例(监听表格容器尺寸变化)
121829
121831
  resizeTimer: null,
121830
121832
  // 尺寸变化防抖定时器
121831
- resizeSkipFirst: false // 跳过 ResizeObserver 挂载后的首次通知(避免初始化时无意义重算)
121833
+ // 首屏先让 standard-column 在 created 中注册完,再渲染 vxe-column。
121834
+ // 否则第一次往往只有操作列,vxe-table 会固化它的插槽,随后数据列插入后操作列变空白
121835
+ columnsReady: false
121832
121836
  };
121833
121837
  },
121834
121838
  computed: {
@@ -122005,6 +122009,10 @@ var NormalReportSlotView = {
122005
122009
  };
122006
122010
  }).filter(Boolean);
122007
122011
  },
122012
+ // 实际交给 vxe-table 的列:列注册完成前不输出,避免操作列先挂载
122013
+ renderedColumns: function renderedColumns() {
122014
+ return this.columnsReady ? this.vxeColumns : [];
122015
+ },
122008
122016
  // vxe-table 列配置(用户列 + 操作列;多选框列在模板中单独以 <vxe-column> 声明)
122009
122017
  // 注意:vxe-table 3.x 不消费 columns 配置对象,本计算属性仅供模板 v-for 生成 <vxe-column> 子组件
122010
122018
  vxeColumns: function vxeColumns() {
@@ -122103,9 +122111,22 @@ var NormalReportSlotView = {
122103
122111
  }
122104
122112
  },
122105
122113
  mounted: function mounted() {
122114
+ var _this4 = this;
122106
122115
  this.initResizeObserver();
122107
122116
  // 表头拖拽排序结束后抑制一次 click(document 捕获阶段拦截,防止拖拽结束触发排序切换)
122108
122117
  document.addEventListener('click', this.onDocumentClickCapture, true);
122118
+ // 本次 patch 中 standard-column 的 created 已经完成注册,此刻再放行列
122119
+ this.columnsReady = true;
122120
+ // 列挂载后再重算。height="100%" 要等浏览器完成 flex 布局才有父容器高度,
122121
+ // 只在 nextTick 里算会把表体高度当成内容高度,滚动条不再出现
122122
+ this.$nextTick(function () {
122123
+ _this4.resizeRecalculate();
122124
+ if (typeof requestAnimationFrame === 'function') {
122125
+ requestAnimationFrame(function () {
122126
+ return _this4.resizeRecalculate();
122127
+ });
122128
+ }
122129
+ });
122109
122130
  },
122110
122131
  beforeDestroy: function beforeDestroy() {
122111
122132
  this.destroyResizeObserver();
@@ -122130,51 +122151,51 @@ var NormalReportSlotView = {
122130
122151
  },
122131
122152
  // 工具栏左侧子组件 vnode(渲染到操作区左侧)
122132
122153
  getToolbarLeftVNodes: function getToolbarLeftVNodes() {
122133
- var _this4 = this;
122154
+ var _this5 = this;
122134
122155
  return this.getDefaultSlotVNodes().filter(function (v) {
122135
- return _this4.isVNodeOfType(v, TOOLBAR_LEFT_TYPES);
122156
+ return _this5.isVNodeOfType(v, TOOLBAR_LEFT_TYPES);
122136
122157
  });
122137
122158
  },
122138
122159
  // 工具栏右侧子组件 vnode(渲染到操作区右侧)
122139
122160
  getToolbarRightVNodes: function getToolbarRightVNodes() {
122140
- var _this5 = this;
122161
+ var _this6 = this;
122141
122162
  return this.getDefaultSlotVNodes().filter(function (v) {
122142
- return _this5.isVNodeOfType(v, TOOLBAR_RIGHT_TYPES);
122163
+ return _this6.isVNodeOfType(v, TOOLBAR_RIGHT_TYPES);
122143
122164
  });
122144
122165
  },
122145
122166
  // 底部栏左侧子组件 vnode(渲染到底部栏左侧)
122146
122167
  getFooterLeftVNodes: function getFooterLeftVNodes() {
122147
- var _this6 = this;
122168
+ var _this7 = this;
122148
122169
  return this.getDefaultSlotVNodes().filter(function (v) {
122149
- return _this6.isVNodeOfType(v, FOOTER_LEFT_TYPES);
122170
+ return _this7.isVNodeOfType(v, FOOTER_LEFT_TYPES);
122150
122171
  });
122151
122172
  },
122152
122173
  // 底部栏右侧分页子组件 vnode(渲染到底部栏右侧)
122153
122174
  getFooterRightVNodes: function getFooterRightVNodes() {
122154
- var _this7 = this;
122175
+ var _this8 = this;
122155
122176
  return this.getDefaultSlotVNodes().filter(function (v) {
122156
- return _this7.isVNodeOfType(v, FOOTER_RIGHT_TYPES);
122177
+ return _this8.isVNodeOfType(v, FOOTER_RIGHT_TYPES);
122157
122178
  });
122158
122179
  },
122159
122180
  // 底部空占位子组件 vnode(页面声明时渲染,未声明时使用内置默认占位)
122160
122181
  getFooterEmptyVNodes: function getFooterEmptyVNodes() {
122161
- var _this8 = this;
122182
+ var _this9 = this;
122162
122183
  return this.getDefaultSlotVNodes().filter(function (v) {
122163
- return _this8.isVNodeOfType(v, FOOTER_EMPTY_TYPES);
122184
+ return _this9.isVNodeOfType(v, FOOTER_EMPTY_TYPES);
122164
122185
  });
122165
122186
  },
122166
122187
  // 工具栏空占位子组件 vnode(页面声明时渲染,未声明时使用内置默认占位)
122167
122188
  getToolbarEmptyVNodes: function getToolbarEmptyVNodes() {
122168
- var _this9 = this;
122189
+ var _this0 = this;
122169
122190
  return this.getDefaultSlotVNodes().filter(function (v) {
122170
- return _this9.isVNodeOfType(v, TOOLBAR_EMPTY_TYPES);
122191
+ return _this0.isVNodeOfType(v, TOOLBAR_EMPTY_TYPES);
122171
122192
  });
122172
122193
  },
122173
122194
  // 隐藏注册区 vnode:默认插槽中除区域子组件(工具栏/底部栏功能区 + 空占位)之外的内容
122174
122195
  getHiddenSlotVNodes: function getHiddenSlotVNodes() {
122175
- var _this0 = this;
122196
+ var _this1 = this;
122176
122197
  return this.getDefaultSlotVNodes().filter(function (v) {
122177
- 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);
122198
+ 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);
122178
122199
  });
122179
122200
  },
122180
122201
  // 操作区是否显示
@@ -122264,14 +122285,14 @@ var NormalReportSlotView = {
122264
122285
  },
122265
122286
  // ===== 单元格渲染 =====
122266
122287
  // 渲染单元格内容(统一分发):seq 序号 / 操作列按钮 / 列组件插槽与字段值
122267
- renderCell: function renderCell(col, scope, isEdit) {
122288
+ renderCell: function renderCell(col, scope, isEdit, h) {
122268
122289
  // 内置序号列:vxe 插槽参数 seq 即显示序号
122269
122290
  if (col.isSeq) {
122270
122291
  return String(scope.seq != null ? scope.seq : '');
122271
122292
  }
122272
- // 操作列:渲染操作按钮
122293
+ // 操作列:渲染操作按钮(使用单元格本次渲染的 h)
122273
122294
  if (col.isOp) {
122274
- return this.renderOpCell(scope.row);
122295
+ return this.renderOpCell(scope.row, h);
122275
122296
  }
122276
122297
  var comp = col.comp;
122277
122298
  if (!comp) return '';
@@ -122296,7 +122317,7 @@ var NormalReportSlotView = {
122296
122317
  // 渲染单个操作按钮:active 为 false 时不再隐藏(原按 v-if 消失),
122297
122318
  // 改为渲染 disabled 按钮(变灰不可操作)
122298
122319
  renderOpButton: function renderOpButton(h, row, btn, idx) {
122299
- var _this1 = this;
122320
+ var _this10 = this;
122300
122321
  var active = this.isOpActive(btn, row);
122301
122322
  var data = {
122302
122323
  key: idx,
@@ -122307,7 +122328,7 @@ var NormalReportSlotView = {
122307
122328
  },
122308
122329
  on: {
122309
122330
  click: function click() {
122310
- return _this1.handleOpClick(row, btn);
122331
+ return _this10.handleOpClick(row, btn);
122311
122332
  }
122312
122333
  },
122313
122334
  // 阻止点击事件冒泡到表格单元格:
@@ -122329,7 +122350,7 @@ var NormalReportSlotView = {
122329
122350
  // 超出按钮渲染为 el-dropdown-item,点击后走与直接按钮一致的 handleOpClick;
122330
122351
  // active 为 false 的按钮以 disabled 形式变灰展示
122331
122352
  renderOpMore: function renderOpMore(h, row, restButtons) {
122332
- var _this10 = this;
122353
+ var _this11 = this;
122333
122354
  return h('el-dropdown', {
122334
122355
  key: '__normal_report_op_more__',
122335
122356
  "class": 'normal-report-op-more',
@@ -122339,7 +122360,7 @@ var NormalReportSlotView = {
122339
122360
  },
122340
122361
  on: {
122341
122362
  command: function command(btn) {
122342
- return _this10.handleOpClick(row, btn);
122363
+ return _this11.handleOpClick(row, btn);
122343
122364
  }
122344
122365
  },
122345
122366
  nativeOn: {
@@ -122357,7 +122378,7 @@ var NormalReportSlotView = {
122357
122378
  })]), h('el-dropdown-menu', {
122358
122379
  slot: 'dropdown'
122359
122380
  }, restButtons.map(function (btn, idx) {
122360
- var active = _this10.isOpActive(btn, row);
122381
+ var active = _this11.isOpActive(btn, row);
122361
122382
  return h('el-dropdown-item', {
122362
122383
  key: idx,
122363
122384
  props: {
@@ -122372,20 +122393,20 @@ var NormalReportSlotView = {
122372
122393
  },
122373
122394
  // 渲染操作列:按钮 ≤ 3 个时全部直接渲染;超过 3 个时前 3 个直接渲染,
122374
122395
  // 其余统一收纳进“更多”下拉菜单;active 为 false 的按钮渲染为 disabled(变灰)
122375
- renderOpCell: function renderOpCell(row) {
122376
- var _this11 = this;
122377
- var h = this.$createElement;
122396
+ renderOpCell: function renderOpCell(row, h) {
122397
+ var _this12 = this;
122398
+ var createElement = h || this.$createElement;
122378
122399
  var btns = this.opButtons;
122379
122400
  if (!btns.length) return null;
122380
122401
  if (btns.length <= OP_MAX_DIRECT_COUNT) {
122381
122402
  return btns.map(function (btn, idx) {
122382
- return _this11.renderOpButton(h, row, btn, idx);
122403
+ return _this12.renderOpButton(createElement, row, btn, idx);
122383
122404
  });
122384
122405
  }
122385
122406
  var nodes = btns.slice(0, OP_MAX_DIRECT_COUNT).map(function (btn, idx) {
122386
- return _this11.renderOpButton(h, row, btn, idx);
122407
+ return _this12.renderOpButton(createElement, row, btn, idx);
122387
122408
  });
122388
- nodes.push(this.renderOpMore(h, row, btns.slice(OP_MAX_DIRECT_COUNT)));
122409
+ nodes.push(this.renderOpMore(createElement, row, btns.slice(OP_MAX_DIRECT_COUNT)));
122389
122410
  return nodes;
122390
122411
  },
122391
122412
  // 操作按钮是否有效:active 可为布尔值或 (row, btn) => boolean 函数
@@ -122466,12 +122487,12 @@ var NormalReportSlotView = {
122466
122487
  },
122467
122488
  // 复制文本到剪贴板:优先使用现代 API,失败时降级 execCommand
122468
122489
  copyTextToClipboard: function copyTextToClipboard(text) {
122469
- var _this12 = this;
122490
+ var _this13 = this;
122470
122491
  if (navigator.clipboard && window.isSecureContext) {
122471
122492
  navigator.clipboard.writeText(text).then(function () {
122472
- _this12.$message && _this12.$message.success('复制成功:' + text);
122493
+ _this13.$message && _this13.$message.success('复制成功:' + text);
122473
122494
  })["catch"](function () {
122474
- _this12.fallbackCopyText(text);
122495
+ _this13.fallbackCopyText(text);
122475
122496
  });
122476
122497
  } else {
122477
122498
  this.fallbackCopyText(text);
@@ -122557,23 +122578,23 @@ var NormalReportSlotView = {
122557
122578
  // 切换列的排序开关:sortable 已纳入列 key,修改后强制重建列,
122558
122579
  // 再由 applyColumnOrder 恢复列顺序(重建会打乱 staticColumns 顺序)
122559
122580
  toggleHeaderColumnSort: function toggleHeaderColumnSort(uid) {
122560
- var _this13 = this;
122581
+ var _this14 = this;
122561
122582
  var st = this.columnStates[uid];
122562
122583
  if (!st) return;
122563
122584
  this.$set(st, 'sortable', !st.sortable);
122564
122585
  this.$nextTick(function () {
122565
- return _this13.applyColumnOrder();
122586
+ return _this14.applyColumnOrder();
122566
122587
  });
122567
122588
  },
122568
122589
  // 切换列的固定状态(左/右固定互斥,再次点击同侧即取消):
122569
122590
  // fixed 同样纳入列 key,重建后 vxe-table 重新解析固定列分组
122570
122591
  toggleHeaderColumnFixed: function toggleHeaderColumnFixed(uid, side) {
122571
- var _this14 = this;
122592
+ var _this15 = this;
122572
122593
  var st = this.columnStates[uid];
122573
122594
  if (!st) return;
122574
122595
  this.$set(st, 'fixed', st.fixed === side ? '' : side);
122575
122596
  this.$nextTick(function () {
122576
- return _this14.applyColumnOrder();
122597
+ return _this15.applyColumnOrder();
122577
122598
  });
122578
122599
  },
122579
122600
  // ===== 单元格编辑 =====
@@ -122689,7 +122710,7 @@ var NormalReportSlotView = {
122689
122710
  },
122690
122711
  // 交换列顺序(columnOrder 重排后强制同步 vxe-table 内部列配置)
122691
122712
  moveColumnOrder: function moveColumnOrder(fromUid, toUid) {
122692
- var _this15 = this;
122713
+ var _this16 = this;
122693
122714
  var from = this.columnOrder.indexOf(fromUid);
122694
122715
  var to = this.columnOrder.indexOf(toUid);
122695
122716
  if (from < 0 || to < 0 || from === to) return;
@@ -122698,7 +122719,7 @@ var NormalReportSlotView = {
122698
122719
  order.splice(to, 0, moved);
122699
122720
  this.columnOrder = order;
122700
122721
  this.$nextTick(function () {
122701
- return _this15.applyColumnOrder();
122722
+ return _this16.applyColumnOrder();
122702
122723
  });
122703
122724
  },
122704
122725
  // ===== 对外方法(父组件通过 ref 调用) =====
@@ -122718,9 +122739,10 @@ var NormalReportSlotView = {
122718
122739
  getSelection: function getSelection() {
122719
122740
  return this.$refs.xTable ? this.$refs.xTable.getCheckboxRecords() : [];
122720
122741
  },
122721
- // 表格重新布局(扩展:外层容器尺寸变化后调用)
122742
+ // 表格重新布局(扩展:外层容器尺寸变化后调用)。
122743
+ // 必须完整重算:否则父容器高度变化后表体高度不更新,内容超出也不出滚动条
122722
122744
  recalculate: function recalculate() {
122723
- if (this.$refs.xTable) this.$refs.xTable.recalculate();
122745
+ if (this.$refs.xTable) this.$refs.xTable.recalculate(true);
122724
122746
  },
122725
122747
  // 树形表格:设置所有节点展开/收起(供页面“展开全部/收起全部”按钮使用)
122726
122748
  setAllTreeExpand: function setAllTreeExpand(expanded) {
@@ -122735,18 +122757,14 @@ var NormalReportSlotView = {
122735
122757
  // 表现为固定列行与数据行错位。此处监听表格容器尺寸变化,防抖后
122736
122758
  // 重新计算布局并调用 refreshScroll() 强制同步各滚动层位置。
122737
122759
  initResizeObserver: function initResizeObserver() {
122738
- var _this16 = this;
122760
+ var _this17 = this;
122739
122761
  var wrapEl = this.$refs.tableWrap;
122740
122762
  if (!wrapEl) return;
122741
122763
  if (typeof ResizeObserver !== 'undefined') {
122742
- this.resizeSkipFirst = true;
122764
+ // 首次通知也要重算。挂载时容器往往已有高度,但还不是 flex 约束后的高度,
122765
+ // 跳过这次就会把“内容撑开的高度”当成可视高度,滚动条不再出现
122743
122766
  this.resizeObserver = new ResizeObserver(function () {
122744
- // 挂载后的首次通知仅记录基准,跳过无意义重算
122745
- if (_this16.resizeSkipFirst) {
122746
- _this16.resizeSkipFirst = false;
122747
- return;
122748
- }
122749
- _this16.scheduleTableRecalculate();
122767
+ _this17.scheduleTableRecalculate();
122750
122768
  });
122751
122769
  this.resizeObserver.observe(wrapEl);
122752
122770
  } else {
@@ -122754,27 +122772,30 @@ var NormalReportSlotView = {
122754
122772
  window.addEventListener('resize', this.handleWindowResize);
122755
122773
  }
122756
122774
  },
122757
- // 防抖:连续尺寸变化(如拖拽分割线)期间只重算一次
122775
+ // 防抖:连续尺寸变化(如拖拽分割线)停稳后再重算,读到的是最终宽高
122758
122776
  scheduleTableRecalculate: function scheduleTableRecalculate() {
122759
- var _this17 = this;
122760
- if (this.resizeTimer) return;
122777
+ var _this18 = this;
122778
+ if (this.resizeTimer) clearTimeout(this.resizeTimer);
122761
122779
  this.resizeTimer = setTimeout(function () {
122762
- _this17.resizeTimer = null;
122763
- _this17.resizeRecalculate();
122764
- }, 100);
122780
+ _this18.resizeTimer = null;
122781
+ _this18.resizeRecalculate();
122782
+ }, 50);
122765
122783
  },
122766
- // 重新计算布局,并在重算完成后强制同步固定列与主表体的滚动位置
122784
+ // 重新计算布局,并在重算完成后强制同步固定列与主表体的滚动位置。
122785
+ // 容器还没有宽度时 vxe 会直接跳过滚动计算,等下一次尺寸通知再算
122767
122786
  resizeRecalculate: function resizeRecalculate() {
122768
- var _this18 = this;
122787
+ var _this19 = this;
122769
122788
  var xTable = this.$refs.xTable;
122789
+ var wrapEl = this.$refs.tableWrap;
122770
122790
  if (!xTable) return;
122791
+ if (wrapEl && wrapEl.clientWidth === 0) return;
122771
122792
  var restore = function restore() {
122772
- _this18.$nextTick(function () {
122793
+ _this19.$nextTick(function () {
122773
122794
  if (xTable.refreshScroll) xTable.refreshScroll();
122774
122795
  });
122775
122796
  };
122776
122797
  if (xTable.recalculate) {
122777
- var result = xTable.recalculate();
122798
+ var result = xTable.recalculate(true);
122778
122799
  if (result && typeof result.then === 'function') {
122779
122800
  result.then(restore);
122780
122801
  } else {
@@ -122830,13 +122851,13 @@ var NormalReportSlotView = {
122830
122851
  });
122831
122852
  xTable.staticColumns = next;
122832
122853
  this.$nextTick(function () {
122833
- xTable.recalculate && xTable.recalculate();
122854
+ xTable.recalculate && xTable.recalculate(true);
122834
122855
  });
122835
122856
  },
122836
122857
  // ===== 列设置弹层 =====
122837
122858
  // 打开列设置:以当前注册列生成工作副本(每次打开都重新初始化)
122838
122859
  openColumnSetting: function openColumnSetting() {
122839
- var _this19 = this;
122860
+ var _this20 = this;
122840
122861
  var compMap = {};
122841
122862
  this.columnComps.forEach(function (comp) {
122842
122863
  compMap[comp._uid] = comp;
@@ -122864,7 +122885,7 @@ var NormalReportSlotView = {
122864
122885
  // 列标题宽度:按最长列名称计算(中文 25px/字 + 英文 15px/字 + 30px 余量),
122865
122886
  // 各列标题统一按该宽度显示,保证输入框与按钮对齐
122866
122887
  this.columnTitleWidth = this.columnDraft.reduce(function (max, c) {
122867
- return Math.max(max, _this19.calcColumnTitleWidth(c.title));
122888
+ return Math.max(max, _this20.calcColumnTitleWidth(c.title));
122868
122889
  }, 0);
122869
122890
  },
122870
122891
  // 计算单个列标题的显示宽度(px):中文 25px/字 + 英文 15px/字 + 30px 余量
@@ -122956,10 +122977,10 @@ var NormalReportSlotView = {
122956
122977
  },
122957
122978
  // 确认:将面板副本应用到列状态并刷新表格
122958
122979
  confirmColumnSetting: function confirmColumnSetting() {
122959
- var _this20 = this;
122980
+ var _this21 = this;
122960
122981
  var order = [];
122961
122982
  this.columnDraft.forEach(function (d) {
122962
- _this20.$set(_this20.columnStates, d.uid, {
122983
+ _this21.$set(_this21.columnStates, d.uid, {
122963
122984
  visible: d.visible,
122964
122985
  fixed: d.fixed || '',
122965
122986
  minWidth: d.minWidth != null ? d.minWidth : null,
@@ -122970,7 +122991,7 @@ var NormalReportSlotView = {
122970
122991
  this.columnOrder = order;
122971
122992
  this.columnSettingVisible = false;
122972
122993
  this.$nextTick(function () {
122973
- _this20.applyColumnOrder();
122994
+ _this21.applyColumnOrder();
122974
122995
  });
122975
122996
  }
122976
122997
  }
@@ -122992,8 +123013,8 @@ var StandardTablevue_type_style_index_0_prod_lang_scss_external = __webpack_requ
122992
123013
 
122993
123014
  var StandardTable_component = normalizeComponent(
122994
123015
  components_StandardTablevue_type_script_lang_js,
122995
- StandardTablevue_type_template_id_05e17600_render,
122996
- StandardTablevue_type_template_id_05e17600_staticRenderFns,
123016
+ StandardTablevue_type_template_id_a9e9136a_render,
123017
+ StandardTablevue_type_template_id_a9e9136a_staticRenderFns,
122997
123018
  false,
122998
123019
  null,
122999
123020
  null,
@@ -123289,12 +123310,13 @@ var ToolbarLeft_component = normalizeComponent(
123289
123310
  * 工具栏右侧子组件(双标签组件):
123290
123311
  *
123291
123312
  * <standard-toolbar-right show-adjustment>
123292
- * <el-button size="mini" icon="el-icon-download" @click="onExport">导出</el-button>
123313
+ * <standard-toolbar-query query-method="onQuery" show-export export-method="onExport" />
123293
123314
  * </standard-toolbar-right>
123294
123315
  *
123295
123316
  * 说明:
123296
- * 1. 必须放在 <standard-table> 默认插槽内,标签内部内容(按钮等)由主组件
123297
- * 就地渲染到表格操作区右侧(“调整”列设置按钮之前);
123317
+ * 1. 必须放在 <standard-table> 默认插槽内,标签内部内容(按钮、standard-toolbar-query 等)
123318
+ * 由主组件就地渲染到表格操作区右侧(“调整”列设置按钮之前);
123319
+ * standard-toolbar-query 只能放在本组件内部;
123298
123320
  * 2. showAdjustment(模板写法 show-adjustment):是否显示“调整”列设置按钮。
123299
123321
  * 列设置弹层仍由主组件 StandardTable 渲染,本组件仅声明开关;
123300
123322
  * 主组件自身的 showAdjustment 属性继续有效(任一为 true 即显示“调整”按钮);
@@ -123365,6 +123387,199 @@ var ToolbarRight_component = normalizeComponent(
123365
123387
  )
123366
123388
 
123367
123389
  /* harmony default export */ const ToolbarRight = (ToolbarRight_component.exports);
123390
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
123391
+ var ToolbarQueryvue_type_template_id_2b616fae_render = function render() {
123392
+ var _vm = this,
123393
+ _c = _vm._self._c;
123394
+ return _vm.placedCorrectly ? _c('div', {
123395
+ staticClass: "standard-toolbar-query"
123396
+ }, [_c('standard-input', {
123397
+ attrs: {
123398
+ "value": _vm.keyword,
123399
+ "placeholder": _vm.placeholder
123400
+ },
123401
+ on: {
123402
+ "input": _vm.onInput,
123403
+ "enter": _vm.onQuery
123404
+ }
123405
+ }), _c('standard-button', {
123406
+ attrs: {
123407
+ "type": "primary",
123408
+ "icon": "el-icon-search",
123409
+ "label": "查询",
123410
+ "loading": _vm.loading
123411
+ },
123412
+ on: {
123413
+ "click": _vm.onQuery
123414
+ }
123415
+ }), _vm.showExport ? _c('standard-button', {
123416
+ attrs: {
123417
+ "icon": "el-icon-upload2",
123418
+ "label": "导出"
123419
+ },
123420
+ on: {
123421
+ "click": _vm.onExport
123422
+ }
123423
+ }) : _vm._e()], 1) : _vm._e();
123424
+ };
123425
+ var ToolbarQueryvue_type_template_id_2b616fae_staticRenderFns = [];
123426
+
123427
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/StandardTable/ToolbarQuery.vue?vue&type=script&lang=js
123428
+
123429
+
123430
+
123431
+ /**
123432
+ * 工具栏右侧查询子组件(单标签):
123433
+ *
123434
+ * <standard-toolbar-right>
123435
+ * <standard-toolbar-query
123436
+ * v-model="keyword"
123437
+ * placeholder="请输入关键字"
123438
+ * query-method="onQuery"
123439
+ * show-export
123440
+ * export-method="onExport"
123441
+ * />
123442
+ * </standard-toolbar-right>
123443
+ *
123444
+ * 说明:
123445
+ * 1. 只能作为 standard-toolbar-right 的子组件使用,放在其它位置时不渲染并给出警告;
123446
+ * 2. 默认包含输入框、查询按钮;showExport(模板写法 show-export)为 true 时再显示导出按钮。
123447
+ * 输入框回车与点击查询等效;
123448
+ * 3. queryMethod / exportMethod(模板写法 query-method / export-method)
123449
+ * 支持函数(直接调用)与字符串(沿父组件链查找页面方法),入参为当前关键字;
123450
+ * 4. 同时派发 query / export 事件,参数同样为当前关键字。export 仅在导出按钮显示时由点击触发。
123451
+ */
123452
+ /* harmony default export */ const ToolbarQueryvue_type_script_lang_js = ({
123453
+ name: 'StandardToolbarQuery',
123454
+ components: {
123455
+ StandardInput: StandardInput,
123456
+ StandardButton: StandardButton
123457
+ },
123458
+ model: {
123459
+ prop: 'value',
123460
+ event: 'input'
123461
+ },
123462
+ props: {
123463
+ // v-model 绑定的查询关键字
123464
+ value: {
123465
+ type: [String, Number],
123466
+ "default": ''
123467
+ },
123468
+ // 输入框占位文案
123469
+ placeholder: {
123470
+ type: String,
123471
+ "default": '请输入关键字'
123472
+ },
123473
+ // 查询方法:函数直接调用,字符串则沿父组件链查找同名方法
123474
+ queryMethod: {
123475
+ type: [Function, String],
123476
+ "default": ''
123477
+ },
123478
+ // 导出方法:函数直接调用,字符串则沿父组件链查找同名方法
123479
+ exportMethod: {
123480
+ type: [Function, String],
123481
+ "default": ''
123482
+ },
123483
+ // 是否显示导出按钮,默认不显示
123484
+ showExport: {
123485
+ type: Boolean,
123486
+ "default": false
123487
+ },
123488
+ // 查询按钮加载态
123489
+ loading: {
123490
+ type: Boolean,
123491
+ "default": false
123492
+ }
123493
+ },
123494
+ data: function data() {
123495
+ return {
123496
+ // 未确认父级前先渲染,挂载后若不在 toolbar-right 内再隐藏,避免正确用法被误伤
123497
+ placedCorrectly: true,
123498
+ keyword: this.value == null ? '' : String(this.value)
123499
+ };
123500
+ },
123501
+ watch: {
123502
+ value: function value(val) {
123503
+ this.keyword = val == null ? '' : String(val);
123504
+ }
123505
+ },
123506
+ mounted: function mounted() {
123507
+ this.validatePlacement();
123508
+ },
123509
+ methods: {
123510
+ // 沿父组件链查找 StandardToolbarRight(插槽内容的 $parent 为实际渲染它的组件)
123511
+ findToolbarRight: function findToolbarRight() {
123512
+ var parent = this.$parent;
123513
+ while (parent) {
123514
+ if (parent.$options && parent.$options.name === 'StandardToolbarRight') return parent;
123515
+ parent = parent.$parent;
123516
+ }
123517
+ return null;
123518
+ },
123519
+ // 父组件链与 DOM 宿主双重确认:任一命中即视为放在 standard-toolbar-right 内
123520
+ validatePlacement: function validatePlacement() {
123521
+ var el = this.$el;
123522
+ var byDom = !!(el && el.nodeType === 1 && el.parentElement && el.parentElement.closest('.standard-toolbar-right'));
123523
+ if (this.findToolbarRight() || byDom) return;
123524
+ this.placedCorrectly = false;
123525
+ console.warn('[StandardToolbarQuery] 只能放在 standard-toolbar-right 内部');
123526
+ },
123527
+ onInput: function onInput(val) {
123528
+ this.keyword = val == null ? '' : String(val);
123529
+ this.$emit('input', this.keyword);
123530
+ },
123531
+ // method 为函数时直接调用;为字符串时沿父组件链查找同名方法
123532
+ invokeMethod: function invokeMethod(method, keyword) {
123533
+ if (typeof method === 'function') {
123534
+ method(keyword);
123535
+ return;
123536
+ }
123537
+ if (typeof method === 'string' && method) {
123538
+ var parent = this.$parent;
123539
+ while (parent) {
123540
+ if (typeof parent[method] === 'function') {
123541
+ parent[method](keyword);
123542
+ return;
123543
+ }
123544
+ parent = parent.$parent;
123545
+ }
123546
+ console.warn("[StandardToolbarQuery] \u672A\u627E\u5230\u65B9\u6CD5 ".concat(method));
123547
+ }
123548
+ },
123549
+ onQuery: function onQuery() {
123550
+ var keyword = this.keyword;
123551
+ this.invokeMethod(this.queryMethod, keyword);
123552
+ this.$emit('query', keyword);
123553
+ },
123554
+ onExport: function onExport() {
123555
+ var keyword = this.keyword;
123556
+ this.invokeMethod(this.exportMethod, keyword);
123557
+ this.$emit('export', keyword);
123558
+ }
123559
+ }
123560
+ });
123561
+ ;// ./src/components/StandardTable/ToolbarQuery.vue?vue&type=script&lang=js
123562
+ /* harmony default export */ const StandardTable_ToolbarQueryvue_type_script_lang_js = (ToolbarQueryvue_type_script_lang_js);
123563
+ ;// ./src/components/StandardTable/ToolbarQuery.vue
123564
+
123565
+
123566
+
123567
+
123568
+
123569
+ /* normalize component */
123570
+ ;
123571
+ var ToolbarQuery_component = normalizeComponent(
123572
+ StandardTable_ToolbarQueryvue_type_script_lang_js,
123573
+ ToolbarQueryvue_type_template_id_2b616fae_render,
123574
+ ToolbarQueryvue_type_template_id_2b616fae_staticRenderFns,
123575
+ false,
123576
+ null,
123577
+ null,
123578
+ null
123579
+
123580
+ )
123581
+
123582
+ /* harmony default export */ const ToolbarQuery = (ToolbarQuery_component.exports);
123368
123583
  ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/StandardTable/FooterLeft.vue?vue&type=script&lang=js
123369
123584
  /**
123370
123585
  * 底部栏左侧子组件(单标签组件):
@@ -123546,6 +123761,7 @@ var FooterRight_component = normalizeComponent(
123546
123761
  * 'standard-column': StandardTable.Column,
123547
123762
  * 'standard-toolbar-left': StandardTable.ToolbarLeft,
123548
123763
  * 'standard-toolbar-right': StandardTable.ToolbarRight,
123764
+ * 'standard-toolbar-query': StandardTable.ToolbarQuery,
123549
123765
  * 'standard-footer-left': StandardTable.FooterLeft,
123550
123766
  * 'standard-footer-right': StandardTable.FooterRight,
123551
123767
  * 'standard-footer-empty': StandardTable.FooterEmpty,
@@ -123567,10 +123783,12 @@ var FooterRight_component = normalizeComponent(
123567
123783
 
123568
123784
 
123569
123785
 
123786
+
123570
123787
  // 将各子组件挂载为静态属性,方便引用方统一引入注册
123571
123788
  StandardTable.Column = Column;
123572
123789
  StandardTable.ToolbarLeft = ToolbarLeft;
123573
123790
  StandardTable.ToolbarRight = ToolbarRight;
123791
+ StandardTable.ToolbarQuery = ToolbarQuery;
123574
123792
  StandardTable.FooterLeft = FooterLeft;
123575
123793
  StandardTable.FooterRight = FooterRight;
123576
123794
  StandardTable.FooterEmpty = FooterEmpty;
@@ -123582,6 +123800,7 @@ StandardTable.install = function (Vue) {
123582
123800
  Vue.component(Column.name, Column);
123583
123801
  Vue.component(ToolbarLeft.name, ToolbarLeft);
123584
123802
  Vue.component(ToolbarRight.name, ToolbarRight);
123803
+ Vue.component(ToolbarQuery.name, ToolbarQuery);
123585
123804
  Vue.component(FooterLeft.name, FooterLeft);
123586
123805
  Vue.component(FooterRight.name, FooterRight);
123587
123806
  Vue.component(FooterEmpty.name, FooterEmpty);