mt-ui-components-vue3
Version:
玛果添实UI组件库(Vue3)
150 lines • 5.06 kB
JavaScript
/* Analyzed bindings: {
"value": "props",
"ref": "setup-const",
"nextTick": "setup-const",
"DataTable": "setup-maybe-ref",
"JButton": "setup-maybe-ref",
"AIcon": "setup-maybe-ref",
"emit": "setup-const",
"props": "setup-reactive-const",
"source": "setup-ref",
"tableRef": "setup-ref",
"columns": "setup-const",
"updateValue": "setup-const",
"addItem": "setup-const",
"valueChange": "setup-const",
"deleteItem": "setup-const",
"getData": "setup-const"
} */
import { defineComponent as _defineComponent } from 'vue';
import { unref as _unref, createVNode as _createVNode, withCtx as _withCtx, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
const _hoisted_1 = { class: "enum-table-warp" };
import { ref, } from 'vue';
import { DataTable, Button as JButton, AIcon } from '../../../components';
const __sfc_main__ = _defineComponent({
props: {
value: {
type: Array,
default: () => [],
},
},
emits: ['update:value', 'change', 'add'],
setup(__props, { expose: __expose, emit }) {
const props = __props;
const source = ref(props.value || []);
const tableRef = ref();
const columns = [
{
title: 'Value',
dataIndex: 'value',
type: 'text',
width: 150,
form: {
required: true,
rules: [
{
required: true,
message: '请输入value',
},
],
},
},
{
title: 'Text',
dataIndex: 'text',
type: 'text',
form: {
required: true,
rules: [
{
required: true,
message: '请输入Text',
},
],
},
},
{
title: '操作',
dataIndex: 'action',
width: 60,
},
];
const updateValue = () => {
emit('update:value', source.value);
emit('change', source.value);
};
const addItem = () => {
source.value.push({
value: undefined,
text: undefined,
});
// nextTick(() => {
// emit('add');
// updateValue();
// });
};
const valueChange = () => {
updateValue();
};
const deleteItem = (index) => {
source.value.splice(index, 1);
updateValue();
};
const getData = () => {
return new Promise((resolve, reject) => {
console.log('开始校验2');
tableRef.value
.getData()
.then((data) => {
source.value = data;
updateValue();
resolve(true);
})
.catch((err) => reject(err));
});
};
__expose({
getData: getData,
});
return (_ctx, _cache) => {
return (_openBlock(), _createElementBlock("div", _hoisted_1, [
_createVNode(_unref(DataTable), {
ref_key: "tableRef",
ref: tableRef,
"data-source": source.value,
columns: columns,
serial: true,
"show-tool": false,
"item-key": "value",
onChange: valueChange
}, {
action: _withCtx(({ data }) => [
_createVNode(_unref(JButton), {
type: "link",
onClick: () => deleteItem(data.index)
}, {
default: _withCtx(() => [
_createVNode(_unref(AIcon), { type: "DeleteOutlined" })
]),
_: 2 /* DYNAMIC */
}, 1032 /* PROPS, DYNAMIC_SLOTS */, ["onClick"])
]),
_: 1 /* STABLE */
}, 8 /* PROPS */, ["data-source"]),
_createVNode(_unref(JButton), {
class: "enum-table-add",
onClick: addItem
}, {
icon: _withCtx(() => [
_createVNode(_unref(AIcon), { type: "PlusOutlined" })
]),
default: _withCtx(() => [
_createTextVNode(" 新增枚举项 ")
]),
_: 1 /* STABLE */
})
]));
};
}
});
export default __sfc_main__;