通用评估系统(五)- 前端部分总体说明

通用评估系统(五)- 前端部分总体说明

相关链接

文档说明

本节中说明前端总体显示相关信息。具体数据交互待后端开发时同步进行。

目录结构

在这里插入图片描述

实际显示效果

全局搜索

在这里插入图片描述

评估模型管理

在这里插入图片描述

数据模型管理

在这里插入图片描述

指标体系管理

在这里插入图片描述

评估任务管理

在这里插入图片描述

部分代码说明

评估模型管理组件

<!--
 * @Description: 模型管理
 * @Author: wang keju
 * @Email: git config user.email
 * @Date: 2025-02-14 05:48:16
 * @LastEditTime: 2025-02-17 07:02:36
 * @LastEditors: wang keju
-->
<script lang="ts" setup>
import { ref, h, computed, watch } from "vue";
import { useRoute } from "vue-router";

import ContentLayout from '@/layout/ContentLayout.vue';
import Icon from "@/components/Icon/Icon.vue";
import Empty from "@/components/Empty/Empty.vue";

import TreeDiagram from "@/components/TreeDiagram";



const route = useRoute();
const id = computed(() => route.params['id']);

const breadcrumbs = ref<{[key: string]: any;}[]>([
    { href: "/model", breadcrumbName: "模型管理" },
    { href: "/model/details", breadcrumbName: "模型详情" },
]);
const title = ref<string>("XXXXX评估模型");

watch(id, () => {
    console.log(id.value)
});

const indicatorSys = ref<string>("");


</script>

<template>
    <ContentLayout :title="title" name="评估模型" :breadcrumb="breadcrumbs">
        <template #sidebar>
            <span class="add-btn">
                <Icon name="add" :size="18" />新建模型
            </span>
            <div class="search-container">
                <AInput :prefix="h(Icon, { name: 'sousuo', size: 18 })" placeholder="请输入模型名称" />
            </div>
            <div style="padding: 0 12px;">
                <ATabs style="text-align: center;">
                    <ATabPane key="已发布" tab="已发布"></ATabPane>
                    <ATabPane key="未发布" tab="未发布"></ATabPane>
                </ATabs>
                <AList>
                    
                </AList>
            </div>
        </template>
        <div class="main">
            <template v-if="!title">
                <Empty />
            </template>
            <template v-else>
                <TreeDiagram />
            </template>
        </div>
    </ContentLayout>
</template>

<style lang="less" scoped>
.add-btn {
    display: inline-block;
    height: 32px;
    margin-bottom: 12px;
    color: #666;
    line-height: 32px;
    font-weight: bold;
    cursor: pointer;
    &:hover {
        color: #004CFE;
    }
}
.search-container {
    box-sizing: border-box;
}
.main {
    height: 100%;
    
    // margin: -24px;
    // padding: 24px 24px 0;
}
</style>

全局搜索组件

<!--
 * @Description: 全局搜索
 * @Author: wang keju
 * @Email: git config user.email
 * @Date: 2025-02-15 11:58:46
 * @LastEditTime: 2025-02-17 06:47:52
 * @LastEditors: wang keju
-->
<script lang="ts" setup>
import { ref } from "vue";

import Icon from "@/components/Icon/Icon.vue";
import { SearchOutlined } from "@ant-design/icons-vue";



export type GlobalSearchExpose = {
    open: () => void;
    close: () => void;
}

const visible = ref<boolean>(false);
const open = () => visible.value = true;
const close = () => visible.value = false;
const activeKey = ref<string>("全部");



defineExpose<GlobalSearchExpose>({ open, close });
</script>

<template>
    <AModal v-model:open="visible" title="快速搜索" :width="960" :footer="null">
        <AInput placeholder="请输入关键词">
            <template #prefix>
                <SearchOutlined />
            </template>
        </AInput>
        <ATabs v-model:activeKey="activeKey">
            <ATabPane key="全部" tab="全部">123</ATabPane>
            <ATabPane key="模型">
                <template #tab>
                    <Icon name="pinggumoxing" style="margin-right: 4px;" />评估模型
                </template>
            </ATabPane>
            <ATabPane key="数据">
                <template #tab>
                    <Icon name="shujuguanli" style="margin-right: 4px;" />数据管理
                </template>
            </ATabPane>
            <ATabPane key="指标体系">
                <template #tab>
                    <Icon name="zhibiaotixi" style="margin-right: 4px;" />指标体系
                </template>
            </ATabPane>
            <ATabPane key="评估任务">
                <template #tab>
                    <Icon name="pinggurenwu" style="margin-right: 4px;" />评估任务
                </template>
            </ATabPane>
            <ATabPane key="评估任务">
                <template #tab>
                    <Icon name="lishixiao" style="margin-right: 4px;" />操作历史
                </template>
            </ATabPane>
        </ATabs>
        <div class="search-content">
            
        </div>
    </AModal>
</template>

<style lang="less" scoped>
.search-content {
    height: 400px;
}
</style>

总结

后续具体的页面详细及数据交互,在进行后端开发时同步进行。

相关链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值