示图:

 

代码:

<template>
    <table border="1" width="1000" cellpanding="0" cellspaing="0" style="margin:0 auto">
        <tr>
            <th><input type="checkbox" name="checkAll" id="checkAll" :checked="checkInfo==true"  @click="checkAll"></th>
            <th>商品编号</th>
            <th>名称</th>
            <th>价格</th>
            <th>上货日期</th>
            <th>是否下架</th>
            <th>操作</th>
        </tr>
        <tr v-for="(p, i) in phones" :key="p.id" v-cloak>
            <td>
                <input type="checkbox" name="checkInfo" :checked="checkInfo==true">
            </td>
            <td>{{ p.id }}</td>
            <td>{{ p.name }}</td>
            <td>{{ p.price }}</td>
            <td>{{ p.delivery_date }}</td>
            <td><input type="checkbox" name="" id="" disabled :checked="p.remove==true"></td>
            <td>
                <a href="###" @click="removes(i)">删除</a>
                <a href="###">修改</a>
                <a href="###" @click="details(p,i)">详细</a>
            </td>
        </tr>
    </table>
    <fieldset v-cloak>
        <legend>添加商品</legend>
        <form method="post">
            <p>
                <label>商品编号:</label>
                <input type="text" disabled name="name" class="inp" v-model="id">
            </p>
            <p>
                <label>商品名称:</label>
                <input type="text" name="age" class="inp" v-model="name">
            </p>
            <p>
                <label>商品价格:</label>
                <input type="text" name="price" class="inp" v-model="price">
            </p>
            <p style="margin-left: -151px;margin-bottom: 10px;">
                <label>是否下架:</label>
                <input type="checkbox" v-model="remove" :checked="remove==true" class="inp" >
            </p>
            <p style="margin-bottom: 20px;">
                <label>上货日期:</label>
                <select id="date" v-model="year" style="width:53px;margin-left: 10px;outline: none;">
                    <option value="2011">2011</option>
                    <option value="2012">2012</option>
                    <option value="2013">2013</option>
                    <option value="2014">2014</option>
                    <option value="2015">2015</option>
                    <option value="2016">2016</option>
                    <option value="2017">2017</option>
                    <option value="2018">2018</option>
                    <option value="2019">2019</option>
                    <option value="2020">2020</option>
                    <option value="2021">2021</option>
                    <option value="2022">2022</option>
                    <option value="2023">2023</option>
                </select>
                <select id="date" v-model="mounth" style="width:53px;margin-left: 10px;outline: none;" >
                    <option value="01">1</option>
                    <option value="02">2</option>
                    <option value="03">3</option>
                    <option value="04">5</option>
                    <option value="05">5</option>
                    <option value="06">6</option>
                    <option value="07">7</option>
                    <option value="08">8</option>
                    <option value="09">9</option>
                    <option value="10">10</option>
                    <option value="11">11</option>
                    <option value="12">12</option>
                </select>
                <select id="date" v-model="day" style="width:53px;margin-left: 10px;outline: none;">
                    <option value="01">1</option>
                    <option value="02">2</option>
                    <option value="03">3</option>
                    <option value="04">4</option>
                    <option value="05">5</option>
                    <option value="06">6</option>
                    <option value="07">7</option>
                    <option value="08">8</option>
                    <option value="09">9</option>
                    <option value="10">10</option>
                    <option value="11">11</option>
                    <option value="12">12</option>
                    <option value="13">13</option>
                    <option value="14">14</option>
                    <option value="15">15</option>
                    <option value="16">16</option>
                    <option value="17">17</option>
                    <option value="18">18</option>
                    <option value="19">19</option>
                    <option value="20">20</option>
                    <option value="21">21</option>
                    <option value="22">22</option>
                    <option value="23">23</option>
                    <option value="24">24</option>
                    <option value="25">25</option>
                    <option value="26">26</option>
                    <option value="27">27</option>
                    <option value="28">28</option>
                    <option value="29">29</option>
                    <option value="30">30</option>
                    <option value="31">31</option>
                </select>
            </p>
            <button class="btn" @click.prevent="add()">添加</button>
            <button class="btn" @click.prevent="edit">修改</button>
            <button class="btn" @click.prevent="deleteAll()">批量删除</button>
        </form>
    </fieldset>
</template>
<script lang="ts">
import { reactive,ref} from 'vue';
export default ({
    setup() {
        let check=ref(false);
        let checkInfo=ref(false);
        let phones = reactive([
            { id: 1, name: "小米Pro", price: "1650", delivery_date: "2012-10-27",remove:false},
            { id: 2, name: "华为荣耀", price: "2650", delivery_date: "2011-09-22",remove:true},
            { id: 3, name: "oppo r11", price: "3650", delivery_date: "2014-11-27",remove:false},
            { id: 4, name: "vivo", price: "2650", delivery_date: "2015-11-07",remove:true},
        ])
        function removes(i:any){
            if(confirm("您确定要删除当前商品嘛")){
                phones.splice(i,1)
            }   
        }

        let id=ref();
        let name=ref("");
        let price=ref("");
        let delivery_date=ref("");
        let remove=ref();
        let is=0;
        
        let year=ref("");
        let mounth=ref("");
        let day=ref("");
        
        function details(p:any,i:any){
            is=i
            console.log(p)
            id.value=p.id;
            name.value=p.name;
            price.value=p.price;
            let time=p.delivery_date.split("-")
            year.value=time[0]
            mounth.value=time[1]
            day.value=time[2]
            remove.value=p.remove;
        }
        function add(){
            id.value=phones.length+1
            console.log(id.value);
            delivery_date.value=year.value+"-"+mounth.value+"-"+day.value
            phones.push({
                id:id.value,
                name:name.value,
                price:price.value,
                delivery_date:delivery_date.value,
                remove:remove.value
            })
            alert("添加成功!")
            id.value=null;
            name.value="";
            price.value="";
            delivery_date.value="";
            remove.value=false;
            year.value="";
            mounth.value="";
            day.value="";
        }
        function edit(){
           console.log(is)    
           phones[is].name=name.value;
           phones[is].price=price.value;
           phones[is].delivery_date=year.value+"-"+mounth.value+"-"+day.value;
           phones[is].remove=remove.value;
           alert("修改成功!")
           id.value=null;
            name.value="";
            price.value="";
            delivery_date.value="";
            remove.value=false;
            year.value="";
            mounth.value="";
            day.value="";
        }
        let ids=[]
        function checkAll(){
            checkInfo.value=!checkInfo.value
            console.log(checkInfo.value)
            ids=[1,2,3,4]
        }
        function deleteAll(){
            if(confirm("你确定要删除当前选中的4条数据吗?"))
            for(var i=0;i<ids.length;i++){
                phones.splice(i,4)
                checkInfo.value=false
            }
        }
        return {phones,removes,details,add,check,edit,id,name,price,
            delivery_date,remove,year,mounth,day,checkAll,checkInfo,deleteAll}
    }
})
</script>
<style>
a {
    margin-left: 20px;
}
.inp{
    margin: 10px;
}
.btn{
    padding: 0px 10px;
    margin: 0 20px;
}
</style>

 

posted on 2022-11-01 10:10  最帅爸爸  阅读(52)  评论(0)    收藏  举报