@ywfe/materials-design
Version:
YwDesign for lowcode
458 lines (457 loc) • 15.5 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _base = require("../_base");
var _utils = require("../_utils");
var confirmModalProps = [{
name: 'componentProps',
title: {
label: '配置项',
tip: 'componentProps | 配置项'
},
setter: {
componentName: 'ObjectSetter',
props: {
config: {
items: [{
name: 'title',
title: {
label: '提示',
tip: 'title | 提示'
},
setter: 'StringSetter',
supportVariable: false,
getValue: function getValue(_, v) {
return v || '提示';
}
}, {
name: '_content',
title: {
label: '内容',
tip: 'content | 提示内容 通过${this.record.xxxxx} 获取动态值'
},
isRequired: true,
setter: {
componentName: 'MixedSetter',
props: {
setters: [{
componentName: 'StringSetter'
}, {
componentName: 'VariableSetter'
}]
}
},
extraProps: {
getValue: function getValue(_, v) {
return v || '确认删除该数据吗?';
},
setValue: function setValue(target, v) {
var value = v.value || "'" + v + "'";
target.parent.setPropValue('content', {
type: 'JSExpression',
value: "()=>" + value
});
}
}
}, {
name: 'onOk',
title: {
label: '确认事件',
tip: 'onOk | 确认事件'
},
setter: {
componentName: 'MixedSetter',
props: {
setters: [{
componentName: 'SchemaFunctionSetter',
props: {
title: 'onOk',
async: true,
properties: {
input: {
type: 'object',
properties: {
value: {
type: 'object'
},
reload: {
type: 'object'
}
},
required: ['value', 'reload']
},
body: {
type: 'array',
items: [{
type: 'Function',
properties: {
template: 'RequestFunction',
variable: 'requestRes',
extraProps: {
params: {
id: '{{value.id}}'
},
_params: false,
_paramsArr: [{
name: 'id',
value: '{{value.id}}'
}]
}
}
}, {
type: 'JSExpression',
run: 'if (requestRes) reload()'
}]
}
}
}
}, {
componentName: 'VariableSetter'
}]
}
}
}]
}
}
}
}];
var buttonsProps = [].concat(_base.YwButtonBaseProps, [{
name: 'onClick',
title: {
label: '点击回调',
tip: '点击按钮时的回调'
},
propType: 'func',
setter: {
componentName: 'FunctionSetter',
props: {
template: 'function (record,index,reload)=>{}'
}
}
}]);
var historyProps = [{
title: {
label: '按钮文字',
tip: 'btnText | 按钮文字'
},
name: 'btnText',
description: '按钮文字',
supportVariable: false,
setter: {
componentName: 'StringSetter',
initialValue: '按钮',
props: {
placeholder: '请输入'
}
}
}, {
title: {
label: '跳转地址',
tip: '_url | 跳转地址 如 /a/b/c, 查询参数用${record.xx}表示'
},
name: '_url',
setter: {
componentName: 'MixedSetter',
props: {
setters: [{
componentName: 'StringSetter'
}, {
componentName: 'VariableSetter'
}]
}
},
extraProps: {
getValue: function getValue(target, value) {
return value || '/';
},
setValue: function setValue(target, v) {
var type = (0, _utils.getPropValueWithPath)(target, '.__optionType');
var value = v.value || "'" + v + "'";
var func = {
HistoryPush: "function (_,record){this.props.appHelper.history.push(" + value + ")}",
HistoryOpen: "function(_,record){this.props.appHelper.history.open(" + value + ")}"
};
target.parent.setPropValue('onClick', {
type: 'JSExpression',
value: func[type]
});
}
}
}];
var TableMultipleMeta = {
componentName: 'TableOperates',
title: '操作列',
docUrl: '',
screenshot: '',
devMode: 'proCode',
group: '基础组件',
category: '表格',
npm: {
"package": '@ywfe/materials-design',
version: '0.1.0',
exportName: 'TableOperates',
main: 'src/index.tsx',
destructuring: true,
subName: ''
},
configure: {
props: [{
name: 'value',
title: {
label: '操作按钮配置',
tip: '操作按钮配置'
},
setter: {
componentName: 'ArraySetter',
props: {
itemSetter: {
componentName: 'ObjectSetter',
props: {
descriptor: 'primaryKey',
config: {
items: [_base.primaryKeyConfig, {
name: '__optionType',
title: {
label: '操作类型',
tip: '__optionType | 操作类型'
},
setter: {
componentName: 'SelectSetter',
isRequired: true,
props: {
options: [{
label: '普通按钮',
value: 'Button'
}, {
label: '页面跳转(当前页)',
value: 'HistoryPush'
}, {
label: '页面跳转(新开页面)',
value: 'HistoryOpen'
}, {
label: '查看数据(表格弹窗)',
value: 'TableDialog'
}, {
label: '查看数据(表单弹窗)',
value: 'DataDetailDialog'
}, {
label: '编辑数据(表单弹窗)',
value: 'DataEditDialog'
}, {
label: '删除数据',
value: 'ConfirmModal'
}, {
label: '自定义操作',
value: ''
}]
}
},
extraProps: {
setValue: function setValue(target, v) {
switch (v) {
case 'ConfirmModal':
target.parent.setPropValue('type', 'danger');
target.parent.setPropValue('btnText', '删除');
target.parent.setPropValue('render', null);
target.parent.setPropValue('btnType', 'link');
target.parent.setPropValue('component', 'ConfirmModal');
break;
case 'HistoryPush':
target.parent.setPropValue('btnText', '查看详情');
target.parent.setPropValue('render', null);
target.parent.setPropValue('btnType', 'link');
break;
case 'HistoryOpen':
target.parent.setPropValue('btnText', '查看详情');
target.parent.setPropValue('render', null);
target.parent.setPropValue('btnType', 'link');
break;
case 'DataEditDialog':
target.parent.setPropValue('render', {
type: 'JSSlot',
params: ['initialValues', 'index', 'reload'],
value: [{
componentName: 'DataEditDialog',
props: {
btnText: '编辑',
btnType: 'link',
title: '编辑数据',
reload: {
type: 'JSExpression',
value: 'this.reload'
},
initialValues: {
type: 'JSExpression',
value: 'this.initialValues'
},
items: [{
component: 'Input',
title: '表单项',
name: "input_" + (0, _utils.uuid)()
}]
}
}]
});
break;
case 'DataDetailDialog':
target.parent.setPropValue('render', {
type: 'JSSlot',
params: ['initialValues', 'index', 'reload'],
value: [{
componentName: 'DataEditDialog',
props: {
btnText: '编辑',
btnType: 'link',
title: '编辑数据',
reload: {
type: 'JSExpression',
value: 'this.reload'
},
initialValues: {
type: 'JSExpression',
value: 'this.initialValues'
},
items: [{
component: 'Input',
title: '表单项',
name: "input_" + (0, _utils.uuid)()
}]
}
}]
});
break;
case 'TableDialog':
target.parent.setPropValue('render', {
type: 'JSSlot',
params: ['initialValues', 'index', 'reload'],
value: [{
componentName: 'YwTableDialog',
props: {
btnText: '查看数据',
btnType: 'link',
title: '编辑数据',
reload: {
type: 'JSExpression',
value: 'this.reload'
},
initialValues: {
type: 'JSExpression',
value: 'this.initialValues'
}
}
}]
});
break;
default:
break;
}
}
}
}, {
name: 'visible',
title: {
label: '是否显示',
tip: 'visible | 是否显示'
},
setter: 'BoolSetter'
}].concat((0, _utils.getPropsByDependence)(confirmModalProps, ['ConfirmModal'], '.__optionType'), (0, _utils.getPropsByDependence)(historyProps, ['HistoryPush', 'HistoryOpen'], '.__optionType'), (0, _utils.getPropsByDependence)(buttonsProps, ['Button'], '.__optionType'), [{
name: 'render',
title: {
label: '自定义操作',
tip: 'render | 自定义操作按钮'
},
propType: 'func',
setter: {
componentName: 'SlotSetter',
title: '自定义操作按钮',
props: {
hideParams: false
},
initialValue: {
type: 'JSSlot',
hideParams: false,
supportParams: true,
params: ['initialValues', 'index', 'reload'],
value: []
}
},
condition: function condition(target) {
return !(0, _utils.getPropValueWithPath)(target, '.__optionType');
}
}])
}
},
initialValue: {
render: {
type: 'JSSlot',
hideParams: false,
supportParams: true,
params: ['initialValues', 'index', 'reload'],
value: []
}
}
}
}
}
}],
supports: {
style: true,
events: [{
name: 'handeBatchClick',
// 批量操作事件
template: 'handeBatchClick(keys,data,reload){ console.log(keys);reload()}'
}, {
name: 'handeActionClick',
// 批量操作事件
template: 'handeBatchClick(reload){ reload() }'
}]
},
component: {
isMinimalRenderUnit: true
}
}
};
var snippets = [{
title: '操作列',
svgId: 'icon-caozuolie',
screenshot: 'https://yw-fed-static.oss-cn-hangzhou.aliyuncs.com/lowcode/tableOpration',
schema: {
componentName: 'TableOperates',
props: {
record: {
type: 'JSExpression',
value: 'this.record'
},
index: {
type: 'JSExpression',
value: 'this.index'
},
tableRef: {
type: 'JSExpression',
value: 'this.tableRef'
},
reload: {
type: 'JSExpression',
value: 'this.tableRef.current.reload'
},
refresh: {
type: 'JSExpression',
value: 'this.tableRef.current.refresh'
},
value: [{
render: {
type: 'JSSlot',
hideParams: false,
supportParams: true,
params: ['_', 'record', 'reload'],
value: []
}
}]
}
}
}];
var _default = exports["default"] = (0, _extends2["default"])({}, TableMultipleMeta, {
snippets: snippets
});