mt-ui-components-vue3
Version:
玛果添实UI组件库(Vue3)
173 lines (172 loc) • 6.64 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _vue = require("vue");
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _scroll = _interopRequireDefault(require("./scroll"));
var _components = require("../../../components");
var tableProps = function tableProps() {
return {
loading: {
type: Boolean,
default: undefined
},
request: {
type: Function,
default: undefined
},
bodyStyle: {
type: Object,
default: {}
},
params: {
type: Object,
default: function _default() {}
},
dataSource: {
type: Array,
default: function _default() {
return [];
}
},
defaultParams: {
type: Object,
default: function _default() {
return {
pageIndex: 0,
pageSize: 12
};
}
}
};
};
var JScrollTable = (0, _vue.defineComponent)({
name: 'JScrollTable',
slots: ['prev'],
props: tableProps(),
setup: function setup(props, _ref) {
var slots = _ref.slots,
emit = _ref.emit,
expose = _ref.expose;
var _dataSource = (0, _vue.ref)([]);
var pageIndex = (0, _vue.ref)(0);
var pageSize = (0, _vue.ref)(6);
var total = (0, _vue.ref)(0);
var _loading = (0, _vue.ref)(true);
var handleSearch = /*#__PURE__*/function () {
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_params, isRest) {
var _props$defaultParams, resp, obj, _resp$result, _resp$result2, _resp$result3, _resp$result4, _resp$result5, _resp$result6;
return _regenerator.default.wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_loading.value = props.loading !== undefined ? props.loading : true;
if (props.request) {
_context.next = 5;
break;
}
_dataSource.value = (props === null || props === void 0 ? void 0 : props.dataSource) || [];
_context.next = 9;
break;
case 5:
_context.next = 7;
return props.request((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
pageIndex: 0,
pageSize: 12
}, props.defaultParams), _params), {}, {
terms: [].concat((0, _toConsumableArray2.default)(((_props$defaultParams = props.defaultParams) === null || _props$defaultParams === void 0 ? void 0 : _props$defaultParams.terms) || []), (0, _toConsumableArray2.default)((_params === null || _params === void 0 ? void 0 : _params.terms) || []))
}));
case 7:
resp = _context.sent;
if (resp.status === 200) {
obj = Array.isArray(resp.result) ? resp.result[0] : resp.result;
if (obj) {
if (isRest) {
_dataSource.value = (0, _toConsumableArray2.default)(obj.data);
pageIndex.value = ((_resp$result = resp.result) === null || _resp$result === void 0 ? void 0 : _resp$result.pageIndex) || 0;
pageSize.value = ((_resp$result2 = resp.result) === null || _resp$result2 === void 0 ? void 0 : _resp$result2.pageSize) || 6;
total.value = ((_resp$result3 = resp.result) === null || _resp$result3 === void 0 ? void 0 : _resp$result3.total) || 0;
} else {
_dataSource.value = [].concat((0, _toConsumableArray2.default)(_dataSource.value), (0, _toConsumableArray2.default)(obj.data));
pageIndex.value = ((_resp$result4 = resp.result) === null || _resp$result4 === void 0 ? void 0 : _resp$result4.pageIndex) || 0;
pageSize.value = ((_resp$result5 = resp.result) === null || _resp$result5 === void 0 ? void 0 : _resp$result5.pageSize) || 6;
total.value = ((_resp$result6 = resp.result) === null || _resp$result6 === void 0 ? void 0 : _resp$result6.total) || 0;
}
}
} else {
_dataSource.value = [];
}
case 9:
_loading.value = props.loading !== undefined ? props.loading : false;
case 10:
case "end":
return _context.stop();
}
}, _callee);
}));
return function handleSearch(_x, _x2) {
return _ref2.apply(this, arguments);
};
}();
(0, _vue.watch)(function () {
return props.params;
}, function (newValue) {
handleSearch(newValue, true);
}, {
deep: true,
immediate: true
});
(0, _vue.watch)(function () {
return props.dataSource;
}, function () {
if (props.dataSource && !props.request) {
handleSearch(props.params);
}
}, {
deep: true,
immediate: true
});
var onReachBottom = function onReachBottom(scrollTop) {
if (total.value > _dataSource.value.length) {
pageIndex.value += 1;
handleSearch((0, _objectSpread2.default)((0, _objectSpread2.default)({}, props.params), {}, {
pageIndex: pageIndex.value
}));
}
};
/**
* 刷新数据
* @param _params
*/
var reload = function reload(_params) {
handleSearch((0, _objectSpread2.default)((0, _objectSpread2.default)({}, _params), {}, {
pageSize: 12,
pageIndex: 0
}), true);
};
return function () {
return (0, _vue.createVNode)(_components.Spin, {
"spinning": _loading.value
}, {
default: function _default() {
return [(0, _vue.createVNode)(_scroll.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
"total": total.value,
"dataSource": _dataSource.value,
"onReachBottom": onReachBottom
}), {
default: function _default() {
return [(0, _objectSpread2.default)({}, slots)];
}
})];
}
});
};
}
});
var _default2 = JScrollTable;
exports.default = _default2;