Signed-off-by: 1iyc <5212514+liycone@user.noreply.gitee.com>
main
1iyc 3 weeks ago
parent 110c1668da
commit 03a67e3c87

@ -49,7 +49,20 @@ export default {
default: true
}
},
created() {
this.setDefaultValue();
},
methods: {
setDefaultValue() {
this.searchFields.forEach(field => {
if (field.type === 'select') {
const defaultOption = field.options.find(option => option.default);
if (defaultOption) {
this.queryParams[field.prop] = defaultOption.value;
}
}
});
},
getComponentType(type) {
switch (type) {
case 'input':

@ -4,12 +4,12 @@
<el-col :span="3">
<el-card style="height: calc(100vh - 125px)">
<div slot="header">
<span><el-button type="text" size="small">新建标签页</el-button></span>
<span>导航</span>
</div>
<el-menu
:default-active="localIndex"
@select="onSelect"
mode="horizontal"
mode="vertical"
>
<el-menu-item v-for="(tab, index) in tabs"
:key="index"
@ -66,7 +66,6 @@
</div>
</template>
<script>
export default {
props: {
@ -129,63 +128,98 @@ export default {
},
methods: {
onSelect(index) {
this.localIndex = index;
this.queryParams.name = this.tabs[index].name;
this.handleQuery();
try {
this.localIndex = index;
this.queryParams.name = this.tabs[index].name;
this.handleQuery();
} catch (error) {
console.error('Error in onSelect:', error);
}
},
onClick(tab) {
this.localIndex = tab.name;
this.queryParams.name = this.tabs[tab.name].name;
this.handleQuery();
try {
this.localIndex = tab.name;
this.queryParams.name = this.tabs[tab.name].name;
this.handleQuery();
} catch (error) {
console.error('Error in onClick:', error);
}
},
handleQuery(queryParams) {
if (queryParams) {
this.queryParams = queryParams;
try {
if (queryParams) {
this.queryParams = queryParams;
}
this.$emit('query', this.queryParams);
} catch (error) {
console.error('Error in handleQuery:', error);
}
this.$emit('query', this.queryParams);
},
handleReset() {
this.$emit('reset', this.queryParams);
try {
this.$emit('reset', this.queryParams);
} catch (error) {
console.error('Error in handleReset:', error);
}
},
handleUpdate(row) {
alert(row.id);
try {
alert(row.id);
} catch (error) {
console.error('Error in handleUpdate:', error);
}
},
handleSortChange() {
try {
//
} catch (error) {
console.error('Error in handleSortChange:', error);
}
},
handlePageChange() {
try {
//
} catch (error) {
console.error('Error in handlePageChange:', error);
}
},
removeTab(targetName) {
const tabs = this.tabs;
let activeName = this.localIndex;
try {
const tabs = this.tabs;
let activeName = this.localIndex;
if (activeName === targetName) {
tabs.forEach((tab, index) => {
if (tab.name === targetName) {
const nextTab = tabs[index + 1] || tabs[index - 1];
if (nextTab) {
activeName = nextTab.name;
if (activeName === targetName) {
tabs.forEach((tab, index) => {
if (tab.name === targetName) {
const nextTab = tabs[index + 1] || tabs[index - 1];
if (nextTab) {
activeName = nextTab.name;
}
}
}
});
}
});
}
this.localIndex = activeName;
this.$emit('update:index', activeName);
this.$emit('remove', targetName);
this.localIndex = activeName;
this.$emit('update:index', activeName);
this.$emit('remove', targetName);
} catch (error) {
console.error('Error in removeTab:', error);
}
},
handleOperationClick(operation, row) {
this.$emit('operation-click', operation, row);
try {
this.$emit('operation-click', operation, row);
} catch (error) {
console.error('Error in handleOperationClick:', error);
}
},
},
mounted() {
console.log('Received props:', this.$props);
}
}
</script>
<style scoped>
.table-container {
height: calc(100vh - 250px); /* 调整高度以适应页面布局 */

@ -37,7 +37,7 @@
<!-- 分页组件 -->
<el-pagination
v-if="pagination && rows.length > 0"
v-if="showPagination"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
@ -87,24 +87,58 @@ export default {
default: false
}
},
computed: {
showPagination() {
return this.pagination && this.rows.length > 0;
}
},
mounted() {
this.validateProps();
console.log('Table component received props:', this.$props);
},
methods: {
validateProps() {
if (!Array.isArray(this.columns) || !this.columns.length) {
console.error('Columns prop must be a non-empty array.');
}
if (!Array.isArray(this.rows)) {
console.error('Rows prop must be an array.');
}
},
handleSortChange({prop, order}) {
this.$emit('sort-change', {prop, order});
try {
this.$emit('sort-change', {prop, order});
} catch (error) {
console.error('Error in handleSortChange:', error);
}
},
handleSizeChange(newSize) {
this.$emit('update:page-size', newSize);
this.$emit('page-change', {page: this.currentPage, size: newSize});
try {
this.$emit('update:page-size', newSize);
this.$emit('page-change', {page: this.currentPage, size: newSize});
} catch (error) {
console.error('Error in handleSizeChange:', error);
}
},
handleCurrentChange(newPage) {
this.$emit('update:current-page', newPage);
this.$emit('page-change', {page: newPage, size: this.pageSize});
try {
this.$emit('update:current-page', newPage);
this.$emit('page-change', {page: newPage, size: this.pageSize});
} catch (error) {
console.error('Error in handleCurrentChange:', error);
}
},
handleOperationClick(operation, row) {
this.$emit('operation-click', operation, row);
try {
this.$emit('operation-click', operation, row);
} catch (error) {
console.error('Error in handleOperationClick:', error);
}
}
}
};
</script>
<style scoped>
/* 你可以在这里添加一些样式优化 */
</style>

@ -62,7 +62,8 @@ export default {
placeholder: '请选择',
gutter: 2,
options: [
{label: '是', value: '1'},
{label: '全部', value: ' '},
{label: '是', value: '1', default: true},
{label: '否', value: '0'},
],
},
@ -133,7 +134,6 @@ export default {
//
handleQuery() {
this.getRows();
},
//
handleReset() {
@ -167,19 +167,22 @@ export default {
},
//
handleOperationClick(operation, row) {
//
switch (operation) {
case 'edit':
this.handleEdit(row);
break;
case 'delete':
this.handleDelete(row);
break;
case 'sync':
this.handleSync(row);
break;
default:
console.log('未知操作');
try {
switch (operation) {
case 'edit':
this.handleEdit(row);
break;
case 'delete':
this.handleDelete(row);
break;
case 'sync':
this.handleSync(row);
break;
default:
console.log('未知操作');
}
} catch (error) {
console.error('操作处理失败:', error);
}
},
//
@ -192,11 +195,15 @@ export default {
console.log('删除行:', row);
//
},
//
//
handleSync(row) {
console.log('同步操作:', row);
//
//
},
}
};
</script>
<style scoped>
/* 可以在这里添加样式 */
</style>

Loading…
Cancel
Save