aos-element
Version:
A Component Library for Vue.js.
1,709 lines (1,553 loc) • 330 kB
JavaScript
module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "/dist/";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 160);
/******/ })
/************************************************************************/
/******/ ({
/***/ 0:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; });
/* globals __VUE_SSR_CONTEXT__ */
// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
// This module is a runtime utility for cleaner component module output and will
// be included in the final webpack user bundle.
function normalizeComponent (
scriptExports,
render,
staticRenderFns,
functionalTemplate,
injectStyles,
scopeId,
moduleIdentifier, /* server only */
shadowMode /* vue-cli only */
) {
// Vue.extend constructor export interop
var options = typeof scriptExports === 'function'
? scriptExports.options
: scriptExports
// render functions
if (render) {
options.render = render
options.staticRenderFns = staticRenderFns
options._compiled = true
}
// functional template
if (functionalTemplate) {
options.functional = true
}
// scopedId
if (scopeId) {
options._scopeId = 'data-v-' + scopeId
}
var hook
if (moduleIdentifier) { // server build
hook = function (context) {
// 2.3 injection
context =
context || // cached call
(this.$vnode && this.$vnode.ssrContext) || // stateful
(this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
// 2.2 with runInNewContext: true
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
context = __VUE_SSR_CONTEXT__
}
// inject component styles
if (injectStyles) {
injectStyles.call(this, context)
}
// register component module identifier for async chunk inferrence
if (context && context._registeredComponents) {
context._registeredComponents.add(moduleIdentifier)
}
}
// used by ssr in case component is cached and beforeCreate
// never gets called
options._ssrRegister = hook
} else if (injectStyles) {
hook = shadowMode
? function () {
injectStyles.call(
this,
(options.functional ? this.parent : this).$root.$options.shadowRoot
)
}
: injectStyles
}
if (hook) {
if (options.functional) {
// for template-only hot-reload because in that case the render fn doesn't
// go through the normalizer
options._injectStyles = hook
// register for functional component in vue file
var originalRender = options.render
options.render = function renderWithStyleInjection (h, context) {
hook.call(context)
return originalRender(h, context)
}
} else {
// inject component registration as beforeCreate hook
var existing = options.beforeCreate
options.beforeCreate = existing
? [].concat(existing, hook)
: [hook]
}
}
return {
exports: scriptExports,
options: options
}
}
/***/ }),
/***/ 1:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getCell; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return orderBy; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return getColumnById; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return getColumnByKey; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getColumnByCell; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return getRowIdentity; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return getKeysMap; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return mergeOptions; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return parseWidth; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return parseMinWidth; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return parseHeight; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return compose; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return toggleRowStatus; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return walkTreeNode; });
/* harmony import */ var aos_element_src_utils_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
/* harmony import */ var aos_element_src_utils_util__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(aos_element_src_utils_util__WEBPACK_IMPORTED_MODULE_0__);
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var getCell = function getCell(event) {
var cell = event.target;
while (cell && cell.tagName.toUpperCase() !== 'HTML') {
if (cell.tagName.toUpperCase() === 'TD') {
return cell;
}
cell = cell.parentNode;
}
return null;
};
var isObject = function isObject(obj) {
return obj !== null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object';
};
var orderBy = function orderBy(array, sortKey, reverse, sortMethod, sortBy) {
if (!sortKey && !sortMethod && (!sortBy || Array.isArray(sortBy) && !sortBy.length)) {
return array;
}
if (typeof reverse === 'string') {
reverse = reverse === 'descending' ? -1 : 1;
} else {
reverse = reverse && reverse < 0 ? -1 : 1;
}
var getKey = sortMethod ? null : function (value, index) {
if (sortBy) {
if (!Array.isArray(sortBy)) {
sortBy = [sortBy];
}
return sortBy.map(function (by) {
if (typeof by === 'string') {
return Object(aos_element_src_utils_util__WEBPACK_IMPORTED_MODULE_0__["getValueByPath"])(value, by);
} else {
return by(value, index, array);
}
});
}
if (sortKey !== '$key') {
if (isObject(value) && '$value' in value) value = value.$value;
}
return [isObject(value) ? Object(aos_element_src_utils_util__WEBPACK_IMPORTED_MODULE_0__["getValueByPath"])(value, sortKey) : value];
};
var compare = function compare(a, b) {
if (sortMethod) {
return sortMethod(a.value, b.value);
}
for (var i = 0, len = a.key.length; i < len; i++) {
if (a.key[i] < b.key[i]) {
return -1;
}
if (a.key[i] > b.key[i]) {
return 1;
}
}
return 0;
};
return array.map(function (value, index) {
return {
value: value,
index: index,
key: getKey ? getKey(value, index) : null
};
}).sort(function (a, b) {
var order = compare(a, b);
if (!order) {
// make stable https://en.wikipedia.org/wiki/Sorting_algorithm#Stability
order = a.index - b.index;
}
return order * reverse;
}).map(function (item) {
return item.value;
});
};
var getColumnById = function getColumnById(table, columnId) {
var column = null;
table.columns.forEach(function (item) {
if (item.id === columnId) {
column = item;
}
});
return column;
};
var getColumnByKey = function getColumnByKey(table, columnKey) {
var column = null;
for (var i = 0; i < table.columns.length; i++) {
var item = table.columns[i];
if (item.columnKey === columnKey) {
column = item;
break;
}
}
return column;
};
var getColumnByCell = function getColumnByCell(table, cell) {
var matches = (cell.className || '').match(/el-table_[^\s]+/gm);
if (matches) {
return getColumnById(table, matches[0]);
}
return null;
};
var getRowIdentity = function getRowIdentity(row, rowKey) {
if (!row) throw new Error('row is required when get row identity');
if (typeof rowKey === 'string') {
if (rowKey.indexOf('.') < 0) {
return row[rowKey];
}
var key = rowKey.split('.');
var current = row;
for (var i = 0; i < key.length; i++) {
current = current[key[i]];
}
return current;
} else if (typeof rowKey === 'function') {
return rowKey.call(null, row);
}
};
var getKeysMap = function getKeysMap(array, rowKey) {
var arrayMap = {};
(array || []).forEach(function (row, index) {
arrayMap[getRowIdentity(row, rowKey)] = { row: row, index: index };
});
return arrayMap;
};
function hasOwn(obj, key) {
return Object.prototype.hasOwnProperty.call(obj, key);
}
function mergeOptions(defaults, config) {
var options = {};
var key = void 0;
for (key in defaults) {
options[key] = defaults[key];
}
for (key in config) {
if (hasOwn(config, key)) {
var value = config[key];
if (typeof value !== 'undefined') {
options[key] = value;
}
}
}
return options;
}
function parseWidth(width) {
if (width !== undefined) {
width = parseInt(width, 10);
if (isNaN(width)) {
width = null;
}
}
return width;
}
function parseMinWidth(minWidth) {
if (typeof minWidth !== 'undefined') {
minWidth = parseWidth(minWidth);
if (isNaN(minWidth)) {
minWidth = 80;
}
}
return minWidth;
};
function parseHeight(height) {
if (typeof height === 'number') {
return height;
}
if (typeof height === 'string') {
if (/^\d+(?:px)?$/.test(height)) {
return parseInt(height, 10);
} else {
return height;
}
}
return null;
}
// https://github.com/reduxjs/redux/blob/master/src/compose.js
function compose() {
for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {
funcs[_key] = arguments[_key];
}
if (funcs.length === 0) {
return function (arg) {
return arg;
};
}
if (funcs.length === 1) {
return funcs[0];
}
return funcs.reduce(function (a, b) {
return function () {
return a(b.apply(undefined, arguments));
};
});
}
function toggleRowStatus(statusArr, row, newVal) {
var changed = false;
var index = statusArr.indexOf(row);
var included = index !== -1;
var addRow = function addRow() {
statusArr.push(row);
changed = true;
};
var removeRow = function removeRow() {
statusArr.splice(index, 1);
changed = true;
};
if (typeof newVal === 'boolean') {
if (newVal && !included) {
addRow();
} else if (!newVal && included) {
removeRow();
}
} else {
if (included) {
removeRow();
} else {
addRow();
}
}
return changed;
}
function walkTreeNode(root, cb) {
var childrenKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'children';
var lazyKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'hasChildren';
var isNil = function isNil(array) {
return !(Array.isArray(array) && array.length);
};
function _walker(parent, children, level) {
cb(parent, children, level);
children.forEach(function (item) {
if (item[lazyKey]) {
cb(item, null, level + 1);
return;
}
var children = item[childrenKey];
if (!isNil(children)) {
_walker(item, children, level + 1);
}
});
}
root.forEach(function (item) {
if (item[lazyKey]) {
cb(item, null, 0);
return;
}
var children = item[childrenKey];
if (!isNil(children)) {
_walker(item, children, 0);
}
});
}
/***/ }),
/***/ 10:
/***/ (function(module, exports) {
module.exports = require("throttle-debounce/debounce");
/***/ }),
/***/ 11:
/***/ (function(module, exports) {
module.exports = require("aos-element/lib/utils/vue-popper");
/***/ }),
/***/ 12:
/***/ (function(module, exports) {
module.exports = require("aos-element/lib/utils/merge");
/***/ }),
/***/ 13:
/***/ (function(module, exports) {
module.exports = require("aos-element/lib/checkbox");
/***/ }),
/***/ 14:
/***/ (function(module, exports) {
module.exports = require("aos-element/lib/utils/popup");
/***/ }),
/***/ 15:
/***/ (function(module, exports) {
module.exports = require("aos-element/lib/mixins/migrating");
/***/ }),
/***/ 16:
/***/ (function(module, exports) {
module.exports = require("aos-element/lib/input");
/***/ }),
/***/ 160:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/aos-table-form/src/main.vue?vue&type=template&id=337e8c58&
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c(
"div",
{ ref: "AosTableFormContainer", staticClass: "aos-table-form clearfix" },
[
_vm.showAddForm
? _c(
"aos-form",
{
ref: "form",
attrs: {
data: _vm.copyFormData,
edit: true,
formTemplate: _vm.copyFormTemplate
}
},
[
_c(
"div",
{
staticClass: "aos-table-form-add-footer",
attrs: { slot: "footer" },
slot: "footer"
},
[
_c(
"el-button",
{ on: { click: _vm.handleTableFormAddCancel } },
[_vm._v("取消")]
),
_c(
"el-button",
{
attrs: { type: "primary" },
on: { click: _vm.handleTableFormAddClick }
},
[_vm._v("确认")]
)
],
1
)
]
)
: _vm._e(),
_c(
"el-table",
{
ref: "table",
staticClass: "aos-table-form-table",
staticStyle: { width: "100%" },
attrs: {
data: _vm.tableData,
stripe: "",
"highlight-current-row": ""
},
on: {
"selection-change": _vm.handleSelectionChange,
"row-click": _vm.handleRowClick,
"expand-change": _vm.handleExpandChange
}
},
[
_vm.tableFormTemplate.selection &&
_vm.tableFormTemplate.selection.showSelection
? _c("el-table-column", {
attrs: {
type: "selection",
selectable: _vm.selectable,
width: _vm.tableFormTemplate.selection.width
}
})
: _vm._e(),
_c("el-table-column", {
attrs: { type: "expand" },
scopedSlots: _vm._u([
{
key: "default",
fn: function(scope) {
return [
_c(
"aos-form",
{
ref: "expandForm",
attrs: {
data: scope.row,
edit: _vm.expandEdit,
formTemplate: _vm.copyFormTemplate
}
},
[
_c(
"div",
{ attrs: { slot: "footer" }, slot: "footer" },
[
_vm.showExpandButton && !_vm.expandEdit
? _c(
"el-button",
{
attrs: { type: "primary" },
on: {
click: function($event) {
_vm.handleTableFormItemEdit(scope)
}
}
},
[_vm._v("编辑")]
)
: _vm._e(),
_vm.showExpandButton && _vm.expandEdit
? _c(
"el-button",
{
on: {
click: function($event) {
_vm.handleTableFormItemCancel(scope)
}
}
},
[_vm._v("取消")]
)
: _vm._e(),
_vm.showExpandButton && _vm.expandEdit
? _c(
"el-button",
{
attrs: { type: "primary" },
on: {
click: function($event) {
_vm.handleTableFormItemClick(scope)
}
}
},
[_vm._v("确认")]
)
: _vm._e()
],
1
)
]
)
]
}
}
])
}),
_vm._l(_vm.copyTabelTemplate, function(item) {
return _c("el-table-column", {
key: item.prop,
attrs: {
prop: item.prop,
label: item.label,
width: item.width,
"min-width": item.minWidth || "100px",
"show-overflow-tooltip": item.showOverflowTooltip,
sortable: item.sortable
},
scopedSlots: _vm._u([
{
key: "default",
fn: function(scope) {
return [
item.showSlot
? _vm._t(item.prop + "-slot", null, { scope: scope })
: item.type === "defdoc"
? [
_c("aos-defdoc", {
attrs: {
value: scope.row[item.prop],
editable: false,
defCode: item.defCode,
tag: item.tag,
multiple: item.multiple,
"no-def-code": item.noDefCode,
"orm-code": item.ormCode,
"orm-name": item.ormName,
"orm-status": item.ormStatus,
"orm-data": item.ormData,
customerUrl: item.customerUrl
}
})
]
: item.type === "rule-defdoc"
? [
_c("aos-rule-defdoc", {
attrs: {
value: scope.row[item.prop],
editable: false,
defCode: item.attrs.defCode,
multiple: item.attrs.multiple
}
})
]
: item.type === "ref"
? [
_c("aos-ref", {
attrs: {
value: scope.row[item.prop],
editable: false,
refCode: item.attrs.refCode,
filters: item.filters,
multiple: item.attrs.multiple,
onlyTranslate: true,
translateRefValueLable:
scope.row[item.prop + "Label"]
}
})
]
: item.type === "money"
? [
_c("aos-money", {
attrs: {
editable: false,
decimal: item.decimal || 2,
suffixString: item.suffixString
},
model: {
value: scope.row[item.prop],
callback: function($$v) {
_vm.$set(scope.row, item.prop, $$v)
},
expression: "scope.row[item.prop]"
}
})
]
: item.type === "city"
? [
_c("aos-city", {
attrs: {
templateValue: scope.row,
edit: false,
province: item.province,
city: item.city,
county: item.county
}
})
]
: item.type === "date-picker"
? [
_c("span", [
_vm._v(
_vm._s(
_vm.$time.formatTime(
scope.row[item.prop],
(item.attrs && item.attrs.format) || ""
)
)
)
])
]
: _c(
"span",
{ attrs: { title: scope.row[item.prop] } },
[_vm._v(_vm._s(scope.row[item.prop]))]
)
]
}
}
])
})
}),
_vm.tableFormTemplate.operationColumn &&
_vm.tableFormTemplate.operationColumn.showOperation
? _c("el-table-column", {
attrs: {
fixed: _vm.tableFormTemplate.operationColumn.fixed,
label: _vm.tableFormTemplate.operationColumn.label,
width: _vm.tableFormTemplate.operationColumn.width || "50"
},
scopedSlots: _vm._u([
{
key: "default",
fn: function(scope) {
return [
_c(
"div",
{ staticClass: "aos-table-form-operation" },
[
_vm.tableFormTemplate.operationColumn
.showOperationSlot
? _vm._t("operation-slot", null, { scope: scope })
: _vm._e(),
_vm._l(
_vm.tableFormTemplate.operationColumn.iconList,
function(icon) {
return _c("i", {
key: icon.code,
staticClass: "aos-table-form-icon",
class: "el-icon-" + icon.icon,
attrs: { title: icon.title },
on: {
click: function($event) {
_vm.handleIconClick(icon.code, scope)
}
}
})
}
)
],
2
)
]
}
}
])
})
: _vm._e()
],
2
),
_vm.showPagination && _vm.total > 5
? _c("el-pagination", {
staticClass: "aos-table-form-pagination",
attrs: {
"current-page": _vm.currentPage,
"page-sizes": [5, 10, 20, 30, 40, 50],
"page-size": _vm.pageSize,
layout: "total, sizes, prev, pager, next, jumper",
total: _vm.total
},
on: {
"size-change": _vm.handleSizeChange,
"current-change": _vm.handleCurrentChange,
"prev-click": _vm.handlePrevClick,
"next-click": _vm.handleNextClick
}
})
: _vm._e()
],
1
)
}
var staticRenderFns = []
render._withStripped = true
// CONCATENATED MODULE: ./packages/aos-table-form/src/main.vue?vue&type=template&id=337e8c58&
// EXTERNAL MODULE: ./packages/table/index.js + 23 modules
var table = __webpack_require__(36);
// EXTERNAL MODULE: ./packages/pagination/index.js + 6 modules
var pagination = __webpack_require__(37);
// EXTERNAL MODULE: ./packages/aos-form/index.js + 5 modules
var aos_form = __webpack_require__(38);
// EXTERNAL MODULE: external "lodash/cloneDeep"
var cloneDeep_ = __webpack_require__(7);
var cloneDeep_default = /*#__PURE__*/__webpack_require__.n(cloneDeep_);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/aos-table-form/src/main.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
// import {addResizeListener,removeResizeListener} from 'aos-element/src/utils/resize-event.js'
/* harmony default export */ var mainvue_type_script_lang_js_ = ({
name: 'AosTableForm',
components: {
ElTable: table["default"],
ElPagination: pagination["default"],
AosForm: aos_form["default"]
},
props: {
// form绑定的数据
formData: {
type: Object,
required: true
},
// table绑定的数据
tableData: {
type: Array,
required: true,
default: function _default() {
return [];
}
},
// table构成列属性
tableFormTemplate: {
type: Object,
required: true
},
// 是否显示分页
showPagination: {
type: Boolean,
default: true
},
// 分页的当前页
currentPage: {
type: Number,
default: 1
},
// 分页的页的数量
pageSize: {
type: Number,
default: 10
},
// 当前table数据总共的数量
total: {
type: Number,
default: 0
},
// 是否显示新增的表单
showAddForm: {
type: Boolean,
default: false
},
// 是否显示行内表单的操作按钮
showExpandButton: {
type: Boolean,
default: true
},
// 展开行表单的编辑状态
expandEdit: {
type: Boolean,
default: false
},
// 当使用复选框是设置复选框是否可选
selectable: {
type: Function,
default: function _default() {
return function () {
return true;
};
}
}
},
computed: {
copyFormData: {
get: function get() {
this.currentAddFormData = JSON.parse(JSON.stringify(this.formData));
return this.formData;
},
set: function set() {}
},
// tableData: {
// get: function(){
// return this.tableData;
// },
// set: function(){}
// },
copyFormTemplate: function copyFormTemplate() {
var formTemplate = [];
this.tableFormTemplate.tableFormItem.forEach(function (item) {
if (item.formShow === undefined || item.formShow) {
formTemplate.push(item);
}
});
return formTemplate;
},
copyTabelTemplate: function copyTabelTemplate() {
var tableTemplate = [];
this.tableFormTemplate.tableFormItem.forEach(function (item) {
if (item.tableShow === undefined || item.tableShow) {
tableTemplate.push(item);
}
});
return tableTemplate;
},
refPropList: function refPropList() {
var refPropList = [];
if (this.copyTabelTemplate) {
this.copyTabelTemplate.forEach(function (item) {
if (item.type === 'ref') {
refPropList.push(item);
}
});
}
return refPropList;
}
},
watch: {
tableData: {
handler: function handler(val, oldVal) {
if (val && Array.isArray(val)) {
this.translateRef(val);
}
},
deep: true,
immediate: true
}
},
data: function data() {
return {
currentAddFormData: {},
currentTableItemData: {},
tableHeight: 0,
refValueDataListObject: {}
};
},
methods: {
// 多选框选择事件
handleSelectionChange: function handleSelectionChange(data) {
this.$emit('table-form-selection-change', data);
},
handleRowClick: function handleRowClick(row, column, event) {
this.currentRowData = JSON.parse(JSON.stringify(row));
this.$emit('table-form-row-click', row, column, event);
},
// 抛出操作列点击按钮
handleIconClick: function handleIconClick(type, scope) {
this.$emit('table-form-' + type + '-click', scope);
},
// 当前数量改变
handleSizeChange: function handleSizeChange(size) {
this.$emit('table-form-size-change', size);
},
// 当前页数改变
handleCurrentChange: function handleCurrentChange(page) {
this.$emit('table-form-current-change', page);
},
// 点击上一页
handlePrevClick: function handlePrevClick(page) {
this.$emit('table-form-prev-click', page);
},
// 点击下一页
handleNextClick: function handleNextClick(page) {
this.$emit('table-form-next-click', page);
},
// table 详细编辑
handleTableFormItemEdit: function handleTableFormItemEdit(scope) {
this.$emit('update:expandEdit', true);
this.$emit('table-form-expand-edit', scope);
},
// table 详细取消
handleTableFormItemCancel: function handleTableFormItemCancel(scope) {
this.$emit('update:expandEdit', false);
this.tableData[scope.$index] = JSON.parse(JSON.stringify(this.currentTableItemData));
this.$emit('table-form-expand-cancel', scope);
},
// table 详细保存
handleTableFormItemClick: function handleTableFormItemClick(scope) {
this.$emit('table-form-expand-confirm', scope);
},
// table-form form新增取消
handleTableFormAddCancel: function handleTableFormAddCancel() {
this.$emit('table-form-add-cancel', this.copyFormData);
},
// table-form form新增确定
handleTableFormAddClick: function handleTableFormAddClick() {
this.$emit('table-form-add-confirm', this.copyFormData);
},
// table-form 列展开
handleExpandChange: function handleExpandChange(row, expandedRows) {
if (expandedRows.length > 1) {
expandedRows.shift();
}
this.currentTableItemData = JSON.parse(JSON.stringify(row));
},
resizeTableHeight: function resizeTableHeight() {
var _this = this;
this.$nextTick(function () {
var boxHeight = _this.$refs.AosTableFormContainer.parentElement.parentElement.offsetHeight;
if (boxHeight < 600) {
_this.tableHeight = boxHeight - 99;
} else {
_this.tableHeight = 600;
}
});
},
translateRef: function translateRef(val) {
var _this2 = this;
if (val.length > 0 && this.refPropList.length > 0) {
// 拿到对应prop列的值
this.refPropList.forEach(function (item) {
_this2.$set(_this2.refValueDataListObject, item.prop, {});
val.forEach(function (dataItem, index) {
if (dataItem && !dataItem[item.prop + 'Label']) {
_this2.$set(dataItem, item.prop + 'Label', '');
}
if (!_this2.refValueDataListObject[item.prop].valueList) {
_this2.$set(_this2.refValueDataListObject[item.prop], 'valueList', []);
}
if (!_this2.refValueDataListObject[item.prop].labelValueList) {
_this2.$set(_this2.refValueDataListObject[item.prop], 'labelValueList', []);
}
if (!_this2.refValueDataListObject[item.prop].labelValueObject) {
_this2.$set(_this2.refValueDataListObject[item.prop], 'labelValueObject', {});
}
if (dataItem[item.prop]) {
_this2.refValueDataListObject[item.prop].valueList.push(dataItem[item.prop]);
}
});
});
var allGetLabel = [];
this.refPropList.forEach(function (item) {
// this.getRefLabel(item.refCode, this.refValueDataListObject[item.prop])
allGetLabel.push(_this2.getRefLabel(item.attrs.refCode, _this2.refValueDataListObject[item.prop]));
});
window.Promise.all(allGetLabel).then(function () {
_this2.refPropList.forEach(function (item) {
val.forEach(function (dataItem, index) {
if (_this2.refValueDataListObject[item.prop].labelValueObject[dataItem[item.prop]]) {
dataItem[item.prop + 'Label'] = _this2.refValueDataListObject[item.prop].labelValueObject[dataItem[item.prop]];
} else {
dataItem[item.prop + 'Label'] = dataItem[item.prop];
}
});
});
_this2.$emit('update: tableData', val);
});
}
},
getRefLabel: function getRefLabel(refCode, refValueDataListObject) {
var _this3 = this;
if (!refCode) {
this.$message({
type: 'error',
message: '参照对应的 refCode 不能为空.'
});
return;
}
var paramsData = refValueDataListObject.valueList.join(',');
if (!paramsData) {
return;
}
return this.$optimizeHttp({
url: '/core/api/ref/translate/' + refCode,
method: 'get',
params: {
code: paramsData
}
}).then(function (res) {
refValueDataListObject.labelValueList = cloneDeep_default()(res.data);
refValueDataListObject.labelValueObject = _this3.arrayToObject(refValueDataListObject.labelValueList);
});
},
arrayToObject: function arrayToObject(array) {
if (!array && !Array.isArray(array)) return {};
var object = {};
array.forEach(function (item) {
object[item.code] = item.value;
});
return object;
}
}
// mounted(){
// addResizeListener(this.$refs.AosTableFormContainer,this.resizeTableHeight);
// },
// beforeDestroy(){
// removeResizeListener(this.$refs.AosTableFormContainer,this.resizeTableHeight);
// }
});
// CONCATENATED MODULE: ./packages/aos-table-form/src/main.vue?vue&type=script&lang=js&
/* harmony default export */ var src_mainvue_type_script_lang_js_ = (mainvue_type_script_lang_js_);
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(0);
// CONCATENATED MODULE: ./packages/aos-table-form/src/main.vue
/* normalize component */
var component = Object(componentNormalizer["a" /* default */])(
src_mainvue_type_script_lang_js_,
render,
staticRenderFns,
false,
null,
null,
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "packages/aos-table-form/src/main.vue"
/* harmony default export */ var main = (component.exports);
// CONCATENATED MODULE: ./packages/aos-table-form/index.js
main.install = function (Vue) {
Vue.component(main.name, main);
};
/* harmony default export */ var aos_table_form = __webpack_exports__["default"] = (main);
/***/ }),
/***/ 17:
/***/ (function(module, exports) {
module.exports = require("aos-element/lib/utils/clickoutside");
/***/ }),
/***/ 18:
/***/ (function(module, exports) {
module.exports = require("aos-element/lib/utils/resize-event");
/***/ }),
/***/ 19:
/***/ (function(module, exports) {
module.exports = require("aos-element/lib/scrollbar");
/***/ }),
/***/ 20:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addResizeListener; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return removeResizeListener; });
/* harmony import */ var resize_observer_polyfill__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27);
/* harmony import */ var resize_observer_polyfill__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(resize_observer_polyfill__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var throttle_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21);
/* harmony import */ var throttle_debounce__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(throttle_debounce__WEBPACK_IMPORTED_MODULE_1__);
var isServer = typeof window === 'undefined';
/* istanbul ignore next */
var resizeHandler = function resizeHandler(entries) {
for (var _iterator = entries, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref;
if (_isArray) {
if (_i >= _iterator.length) break;
_ref = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref = _i.value;
}
var entry = _ref;
var listeners = entry.target.__resizeListeners__ || [];
if (listeners.length) {
listeners.forEach(function (fn) {
fn();
});
}
}
};
/* istanbul ignore next */
var addResizeListener = function addResizeListener(element, fn) {
if (isServer) return;
if (!element.__resizeListeners__) {
element.__resizeListeners__ = [];
element.__ro__ = new resize_observer_polyfill__WEBPACK_IMPORTED_MODULE_0___default.a(Object(throttle_debounce__WEBPACK_IMPORTED_MODULE_1__["debounce"])(10, resizeHandler));
element.__ro__.observe(element);
}
element.__resizeListeners__.push(fn);
};
/* istanbul ignore next */
var removeResizeListener = function removeResizeListener(element, fn) {
if (!element || !element.__resizeListeners__) return;
element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);
if (!element.__resizeListeners__.length) {
element.__ro__.disconnect();
}
};
/***/ }),
/***/ 21:
/***/ (function(module, exports) {
module.exports = require("throttle-debounce");
/***/ }),
/***/ 24:
/***/ (function(module, exports) {
module.exports = require("aos-element/lib/tooltip");
/***/ }),
/***/ 25:
/***/ (function(module, exports) {
module.exports = require("aos-element/lib/utils/scrollbar-width");
/***/ }),
/***/ 26:
/***/ (function(module, exports) {
module.exports = require("aos-element/lib/checkbox-group");
/***/ }),
/***/ 27:
/***/ (function(module, exports) {
module.exports = require("resize-observer-polyfill");
/***/ }),
/***/ 3:
/***/ (function(module, exports) {
module.exports = require("aos-element/lib/utils/dom");
/***/ }),
/***/ 31:
/***/ (function(module, exports) {
module.exports = require("aos-element/lib/select");
/***/ }),
/***/ 32:
/***/ (function(module, exports) {
module.exports = require("aos-element/lib/option");
/***/ }),
/***/ 33:
/***/ (function(module, exports) {
module.exports = require("normalize-wheel");
/***/ }),
/***/ 36:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/table/src/table.vue?vue&type=template&id=493fe34e&
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c(
"div",
{
staticClass: "el-table",
class: [
{
"el-table--fit": _vm.fit,
"el-table--striped": _vm.stripe,
"el-table--border": _vm.border || _vm.isGroup,
"el-table--hidden": _vm.isHidden,
"el-table--group": _vm.isGroup,
"el-table--fluid-height": _vm.maxHeight,
"el-table--scrollable-x": _vm.layout.scrollX,
"el-table--scrollable-y": _vm.layout.scrollY,
"el-table--enable-row-hover": !_vm.store.states.isComplex,
"el-table--enable-row-transition":
(_vm.store.states.data || []).length !== 0 &&
(_vm.store.states.data || []).length < 100
},
_vm.tableSize ? "el-table--" + _vm.tableSize : ""
],
on: {
mouseleave: function($event) {
_vm.handleMouseLeave($event)
}
}
},
[
_c(
"div",
{ ref: "hiddenColumns", staticClass: "hidden-columns" },
[_vm._t("default")],
2
),
_vm.showHeader
? _c(
"div",
{
directives: [
{
name: "mousewheel",
rawName: "v-mousewheel",
value: _vm.handleHeaderFooterMousewheel,
expression: "handleHeaderFooterMousewheel"
}
],
ref: "headerWrapper",
staticClass: "el-table__header-wrapper"
},
[
_c("table-header", {
ref: "tableHeader",
style: {
width: _vm.layout.bodyWidth ? _vm.layout.bodyWidth + "px" : ""
},
attrs: {
store: _vm.store,
border: _vm.border,
"default-sort": _vm.defaultSort
}
})
],
1
)
: _vm._e(),
_c(
"div",
{
ref: "bodyWrapper",
staticClass: "el-table__body-wrapper",
class: [
_vm.layout.scrollX
? "is-scrolling-" + _vm.scrollPosition
: "is-scrolling-none"
],
style: [_vm.bodyHeight]
},
[
_c("table-body", {
style: {
width: _vm.bodyWidth
},
attrs: {
context: _vm.context,
store: _vm.store,
stripe: _vm.stripe,
"row-class-name": _vm.rowClassName,
"row-style": _vm.rowStyle,
highlight: _vm.highlightCurrentRow
}
}),
!_vm.data || _vm.data.length === 0
? _c(
"div",
{
ref: "emptyBlock",
staticClass: "el-table__empty-block",
style: _vm.emptyBlockStyle
},
[
_c(
"span",
{ staticClass: "el-table__empty-text" },
[
_vm._t("empty", [
_vm._v(
_vm._s(_vm.emptyText || _vm.t("el.table.emptyText"))
)
])
],
2
)
]
)
: _vm._e(),
_vm.$slots.append
? _c(
"div",
{
ref: "appendWrapper",
staticClass: "el-table__append-wrapper"
},
[_vm._t("append")],
2
)
: _vm._e()
],
1
),
_vm.showSummary
? _c(
"div",
{
directives: [
{
name: "show",
rawName: "v-show",
value: _vm.data && _vm.data.length > 0,
expression: "data && data.length > 0"
},
{
name: "mousewheel",
rawName: "v-mousewheel",
value: _vm.handleHeaderFooterMousewheel,
expression: "handleHeaderFooterMousewheel"
}
],
ref: "footerWrapper",
staticClass: "el-table__footer-wrapper"
},
[
_c("table-footer", {
style: {
width: _vm.layout.bodyWidth ? _vm.layout.bodyWidth + "px" : ""
},
attrs: {
store: _vm.store,
border: _vm.border,
"sum-text": _vm.sumText || _vm.t("el.table.sumText"),
"summary-method": _vm.summaryMethod,
"default-sort": _vm.defaultSort
}
})
],
1
)
: _vm._e(),
_vm.fixedColumns.length > 0
? _c(
"div",
{
directives: [
{
name: "mousewheel",
rawName: "v-mousewheel",
value: _vm.handleFixedMousewheel,
expression: "handleFixedMousewheel"
}
],
ref: "fixedWrapper",