NET MVC中使用Element-Plus框架编写组件

4 篇文章 0 订阅
2 篇文章 0 订阅

一、目的

在NET MVC中使用Element-Plus编写可重复使用的组件。

二、准备工作

2.1 NET MVC项目

2.2 MVC项目中使用Element-Plus框架。不熟悉的可以参考此文章:

NET MVC中如何使用Element-Plus-CSDN博客

三、组件编写

3.1、新建一个MVC的部分视图页面,内容如下:

@{
    Layout = null;
}

<template id="workOrderStatus">
    <el-tag class="ml-2" :type="getStatusClass()" effect="dark" size="small">{{workOrder.StatusName}}</el-tag>
</template>

<script>
    var componentWorkOrderStatus = {
        template: '#workOrderStatus',
        props: ['data'],
        watch: {
            data(newVal, oldVal) {
                this.workOrder = newVal;
            }
        },
        data: function () {
            return {
                workOrder: this.data
            };
        },
        methods: {
            getStatusClass() {
                const { Status } = this.workOrder;
                switch (Status) {
                    case 99:
                        return 'success';
                    case 1:
                        return 'warning';
                    case -1:
                        return 'danger';
                    default:
                        return 'default';
                }
            }
        }
    };
</script>

3.2、在页面中引入组件并使用

在页面中使用Html.RenderPartial("~/Views/WorkOrder/Component/Status.cshtml");引入组件模板

Html.RenderPartial("~/Views/WorkOrder/Component/Status.cshtml");

然后在Vue中使用组件:

const appData = {
    components: {
        'work-order-status': componentWorkOrderStatus
    },
    data() {
        return {
            loading: false,
            search: {
                Page: 1,
                PageSize: 20,
                Total: 0
            }
        };
    },
    mounted() {
    },
    methods: {
    }
};
const app = vueApp.create(appData);

在html使用组件:

<work-order-status :data="scope.row"></work-order-status>

到此,在MVC中编写可重复使用的组件就告一段落。这样我们就可以在列表或者详情页面都使用同一个状态组件,避免状态显示逻辑变更的时候,重复修改不同页面。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,我们需要在MySQL数据库创建一张书籍表,包含id、name、description和image四个字段,其image字段为BLOB类型,用于存储书籍的图片。 接下来,我们可以通过MyBatis-Plus提供的代码生成器快速生成书籍的数据访问层代码以及实体类。在生成实体类的时候,可以使用byte[]类型表示图片数据: ``` public class Book { private Long id; private String name; private String description; private byte[] image; // getter and setter methods } ``` 在Spring Boot,可以使用Spring MVC实现RESTful API,用于提供数据接口给前端页面调用。在Controller,我们可以注入MyBatis-Plus提供的BookMapper,并编写查询书籍列表的接口: ``` @RestController @RequestMapping("/books") public class BookController { @Autowired private BookMapper bookMapper; @GetMapping("") public List<Book> listBooks() { return bookMapper.selectList(null); } } ``` 接下来,我们需要在前端页面调用这个接口并显示书籍列表。可以使用Vue.js编写前端页面,并使用axios库发送Ajax请求获取数据。在数据获取成功后,可以使用element-ui库提供的表格组件展示书籍列表,同时使用element-ui的image组件显示书籍的图片: ``` <template> <div> <el-table :data="books" style="width: 100%"> <el-table-column prop="id" label="ID"></el-table-column> <el-table-column prop="name" label="书名"></el-table-column> <el-table-column prop="description" label="描述"></el-table-column> <el-table-column label="图片"> <template slot-scope="{ row }"> <el-image :src="'data:image/jpeg;base64,' + row.image" style="width: 100px; height: 100px;"></el-image> </template> </el-table-column> </el-table> </div> </template> <script> import axios from 'axios' export default { data() { return { books: [] } }, mounted() { axios.get('/books').then(response => { this.books = response.data }) } } </script> ``` 最后,我们需要在MySQL数据库插入一些书籍数据以供测试。可以使用以下SQL语句插入一本书籍: ``` INSERT INTO book (id, name, description, image) VALUES (1, 'Vue.js入门', 'Vue.js是一款流行的前端框架', LOAD_FILE('/path/to/vuejs.jpg')); ``` 其,/path/to/vuejs.jpg为一张Vue.js的图片文件路径。在MySQL,可以使用LOAD_FILE函数将图片文件读入BLOB类型的字段
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值