图书管理前段

本文详细介绍了一个基于Vue.js的图书管理系统的设计与实现过程,包括HTML结构布局、CSS样式设置及JavaScript交互逻辑。展示了如何使用Vue.js进行数据绑定、条件渲染和事件处理,以及自定义过滤器对日期进行格式化。

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .grid {
            margin: auto;
            width: 500px;
            text-align: center;
        }

        .grid table {
            width: 100%;
            border-collapse: collapse;
        }

        .grid th, td {
            padding: 10;
            border: 1px dashed orange;
            height: 35px;
            line-height: 35px;
        }

        .grid th {
            background-color: orange;
        }

        .grid div {
            margin: auto; /*居中*/
            width: 500px; /*宽度*/
            text-align: center;
            background-color: orange; /*背景色*/
        }
    </style>
</head>
<body>
<div id="app">
    <div class="grid">图书管理</div>
    <div class="grid">
        <div>
            编号: <input type="text" id="id" v-model="id" :disabled="flag"> 名称: <input type="text" id="name" v-model="name" >
            <button @click="tianjia()">添加</button>
        </div>
        <table>
            <thead>
            <tr>
                <th>编号</th>
                <th>名称</th>
                <th>时间</th>
                <th>操作</th>
            </tr>
            </thead>
            <tbody>
            <tr v-for="(book,index) in books" :key="book.id">
                <td>{{book.id}}</td>
                <td>{{book.name}}</td>
                <td>{{book.date | format('yyyy-MM-dd hh:mm:ss')}}</td>
                <td>
                    <a href="" @click.prevent="edit(book.id)">编辑</a>
                    <a href="" @click.prevent='adelete(book.id)'>删除</a>
                </td>
            </tr>
            </tbody>
        </table>
    </div>
</div>
<script type="text/javascript" src="js/vue.js"></script>
<script type="text/javascript">
    /*
      图书管理-图书列表展示功能
      注意事项:<a href="" @click.prevent>修改</a>
      事件绑定时,可以只添加修饰符,而不绑定事件函数
    */
    Vue.filter('format', function(value, arg) {
        function dateFormat(date, format) {
            if (typeof date === "string") {
                var mts = date.match(/(\/Date\((\d+)\)\/)/);
                if (mts && mts.length >= 3) {
                    date = parseInt(mts[2]);
                }
            }
            date = new Date(date);
            if (!date || date.toUTCString() == "Invalid Date") {
                return "";
            }
            var map = {
                "M": date.getMonth() + 1, //月份
                "d": date.getDate(), //日
                "h": date.getHours(), //小时
                "m": date.getMinutes(), //分
                "s": date.getSeconds(), //秒
                "q": Math.floor((date.getMonth() + 3) / 3), //季度
                "S": date.getMilliseconds() //毫秒
            };
            format = format.replace(/([yMdhmsqS])+/g, function(all, t) {
                var v = map[t];
                if (v !== undefined) {
                    if (all.length > 1) {
                        v = '0' + v;
                        v = v.substr(v.length - 2);
                    }
                    return v;
                } else if (t === 'y') {
                    return (date.getFullYear() + '').substr(4 - all.length);
                }
                return all;
            });
            return format;
        }
        return dateFormat(value, arg);
    })
    var vm = new Vue({
        el: '#app',
        data: {
            books:[{
                id: 1,
                name: '三国演义',
                date: 2525609975000
            },{
                id: 2,
                name: '水浒传',
                date: 2525609975000
            },{
                id: 3,
                name: '红楼梦',
                date: 2525609975000
            },{
                id: 4,
                name: '西游记',
                date: 2525609975000
            }],
            id: '',
            name: '',
            flag:false
        },
        methods: {

            tianjia: function () {
                if(this.flag){
                    for (var i=0; i<this.books.length;i++){
                        if(this.books[i].id==this.id){
                            this.books[i].name=this.name;
                        }
                    }
                    this.flag=false;
                }else{
                    // 添加图书
                    var book = {};
                    book.id = this.id;
                    book.name = this.name;
                    book.date = '';
                    this.books.push(book);
                    // 清空表单
                    this.id = '';
                    this.name = '';
                }
            },
            edit:function (id) {
                for (var i=1; i<=this.books.length; i++){
                    if(id==i){
                        this.id=this.books[i-1].id;
                        this.name=this.books[i-1].name;
                    }
                }
                this.flag=true;
            },
            adelete:function (id) {
                // var index = this.books.findIndex(function(item){
                //   return item.id == id;
                // });
                // this.books.splice(index, 1);

                var index;
                for (var i=0; i<this.books.length;i++){
                    if(this.books[i].id == id){
                        index=i;
                    }
                }
                this.books.splice(index,1);
            }
        }
    })

</script>
</body>
</html>
于2024年4月-2025年9月期间,研究团队在贵州习水国家级自然保护区制定39条样线,涵盖灌木林、常绿阔叶林、针叶林、常绿落叶阔叶混交林、针阔混交林等不同植被类型,每条样线分春夏秋冬4个季节采集样品,用真菌采集软件记录经纬度、海拔、采集地点、时间、生境等信息,使用佳能相机(R6 mark Ⅱ)对大型真菌进行拍照,并采集标本,标本存放于贵州省生物研究所大型真菌标本馆(HGAMF)。 通过形态学初步鉴定,结合分子生物学最终鉴定,参考已]报道的中国毒蘑菇名录开展毒蘑菇的认定。 调查到保护区内有毒真菌7目25科64种,导致中毒的主要类型有急性肾衰竭型、神经精神型和胃肠炎型。最终形成贵州习水国家级自然保护区大型有毒真菌图片数据集,它由以下2个部分组成。 (1)附件1包含78张原始照片(.JPG),照片名字包括了大型有毒真菌的拉丁名和中文名,若无中文名的直接用拉丁名。 (2)附件2是一个压缩文件,包含了2张工作表,其中一张表是大型有毒真菌39条样线的信息,另一张表是大型有毒真菌的中毒类型。 照片采用佳能相机R6 mark Ⅱ拍摄,物种鉴定通过多种文献核实,并经两位以上专家鉴定确认。该数据集可为研究地及周边的普通人识别有毒大型真菌提供参考,通过及时的图片对比,能有效避免误采误食大型有毒真菌,同时为因误食大型真菌可能引发的身体损伤进行了总结,能为患者及时治疗提供参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值