Vue任务列表中,有多个可选项,直接单击进行修改——0920

4 篇文章 0 订阅

任务列表中,有多个可选项,直接单击进行修改。功能实现。

 

 

<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>vue1-0918</title>

    <style>




        .color1{
            color: skyblue;
        }


        .deletedline{
             background: #ccc;
             color: red;
             text-decoration: line-through;
        }

    </style>


</head>
<body>
   <h1>vue测试!</h1><br>

   <div id="div1">

       <h1>这是view层</h1>
       <h2>测试:双向绑定!</h2>
       <h2>{{message}}</h2>
       <h2>{{teacherListJson[0].name}}</h2>
       <br>


       message<input type="text" v-model="message" name="msg"><br>
       obj.name<input type="text" v-model="obj.name" name="name"><br>
       jsonList<input type="text" v-model="teacherListJson[0].name" name="jsonlist1">

       <h2>测试:button.click方法、监听事件</h2>
       <button @click="fn1">测试message</button>
       <button @click="fn2('abc')">测试btn的传参</button>

       <br>
       <h2>测试:if语句</h2>
       <h3 v-if="isComeBack">你快回来</h3>
       <h3 v-if="!isFinished">活没干完呢</h3>
       <h3 v-else>活干完了</h3>
       <h3>---------------------------------</h3>
       <h3 v-if="obj.age>17">你成年了:{{obj.age}}岁了。</h3>

       <br>
       <h2>测试v-show</h2>
       <h3 v-show="obj.age>20">你是未成年人:才{{obj.age}}</h3>
       <!--<h3 v-else>{{obj.age}}岁了,老大不小了</h3>-->


       <h2>测试v-for</h2>
        <table>
            <thead style="color: blue;background-color: coral">
               <th>行号</th>
               <th>Id号</th>
               <th>Name</th>
               <th>Age</th>
            </thead>
            <tbody>
             <tr v-for="(item,index) in teacherListJson">
                 <td>{{index+1}}</td>
                 <td>{{item.id}}</td>
                 <td>{{item.name}}</td>
                 <td>{{item.age}}</td>
             </tr>

            </tbody>

        </table>



       <h2>测试:v-bind</h2>
       <h3>数据分页行 示例</h3>
       <h3>
           <ul class="pagination">
               <li v-for="n in pageCount">
                   <a href="javascripit:void(0)" v-bind:class="activeNumber===n+1?'active':''">{{n}}</a>
               </li>
           </ul>
       </h3>



       <h2>综合测试</h2>
       <h3>



       </h3>




   </div>


   <div id="div2">
        <h3>测试:任务列表</h3>
        <p>任务数:{{todoList.length}},还有{{countLeavingRows()}}个未完成 <button @click="delRowMore()">删除</button></p>

        <ul style="list-style: none">
            <li v-for="(item,index) in todoList" v-bind:class="{deletedline:item.isDo}" >
                <input type="checkbox" v-model="item.isDo">
                <!--默认显示项-->
                <span v-show="item.isEdit" v-text="item.desc" @click="toggleShowModify(index)"></span>

                <!--修改栏,先隐藏-->
                <input  v-show="!item.isEdit"  type="text"  v-model="item.desc"  @blur="item.isEdit=true">
            </li>

            <input type="text" v-model="newLine.desc">
            <button @click="addRow()">添加一行</button>
        </ul>

   </div>


</body>
<script src="js/vue.js"></script>
<script>

      <!--这是model层的数据-->
    var exampleData={
           isComeBack:true,
           isFinished:false,

           message:'hello world!',
           arr1:["吃饭","睡觉","打恒大"],
           obj:{name:'tom', age:18},

           teacherListJson:[{id:21,name:"jack陈",age:19},{id:32,name:"司马青云",age:26},{id:63,name:"jackson",age:28}],

           activeNumber:0,
           pageCount:10

     };

      // ViewModel vue实例1
    var v1=  new Vue({
          el:'#div1',
          data: exampleData,

          methods:{
                fn1:function(){
                    console.log("fn1,clicked!");
                    alert(this.message);
                },

                fn2:function(msg){
                    console.log("传入的参数是:"+ msg);
                    alert("传入的参数是:"+ msg);
                },


                  createPerson: function(){
                      this.people.push(this.newPerson);
                      // 添加完newPerson对象后,重置newPerson对象
                      this.newPerson = {name: '', age: 0, sex: 'Male'}
                  },
                  deletePerson: function(index){
                      // 删一个数组元素
                      this.people.splice(index,1);
                  },




            }

    });


    //v2:任务列表
    var v2Data={
        isShowline:true,
        lineInfo:'',
        v2Arr:["吃饭","睡觉","打恒大"],

        newLine:{id:0,desc:'',isDo:false},  //单行任务
        todoList:[{id:21,desc:"接人",isDo:false,isEdit:true},{id:22,desc:"送人",isDo:false,isEdit:true},{id:26,desc:"打人",isDo:false,isEdit:true}]

    };


    var v2= new Vue({
        el:'#div2',
        data:  v2Data,
        methods: {
            addRow: function(){
                this.todoList.push(this.newLine); //增加一行
                // newLine,重置newLine对象
                 this.newLine = {id:0,desc:'',isDo:false}
            },

            delRow:function (index) {
                this.todoList.splice(index); //删除一行
            },

            delRowMore:function () {
                //删除多行
                for (var i=this.todoList.length-1;i>=0;i--){
                    console.log(i);
                    console.log("isDo:"+ this.todoList[i].isDo);

                   if (this.todoList[i].isDo){
                       this.todoList.splice(i,1);
                   }

                }


            },


            countLeavingRows:function () {
                var num=0;
                this.todoList.forEach(function (item) {
                        if (!item.isDo){
                            num++;
                        }
                    }
                )
                return num; //有几个被选中
            },


            toggleShowModify(index){
                console.log("click!!!")
                // this.isShowline=false; //显示 修改栏
                console.log("index:"+ index);
                console.log("isEdit:"+ this.todoList[index].isEdit);

                this.todoList[index].isEdit=false;
            },






        }


    });






</script>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 前端使用Vue框架时,可以借助Office.js插件来实现打开多个Word打印窗口的功能。 Office.js是微软提供的JavaScript库,用于与Office文档进行交互,包括打开、编辑、保存等操作。它也支持在前端集成Word文档的打印功能。 在Vue使用Office.js插件,需要先将插件引入项目,并进行相应的配置。 首先,在Vue的入口文件main.js引入Office.js插件: import * as OfficeJS from "office-js"; Vue.prototype.$OfficeJS = OfficeJS; 然后,在需要使用打印功能的组件,可以通过调用Office.js的API来实现打开多个Word打印窗口的功能。 在方法调用Office.js的API来打开Word文档,并设置打印选项: printWord() { Word.run(function (context) { var document = context.document; document.load(); return context.sync().then(function () { document.print(); return context.sync(); }); }); } 以上代码只是简单示例,具体的实现还需要根据具体情况进行调整。 需要注意的是,Office.js插件依赖于Office Online,因此在使用Office.js之前,需要确保目标环境已经安装了Office Online,并且用户有相应的访问权限。另外,Office.js的功能和特性可能会因为不同的Office版本而有所差异,需要做相应的兼容性测试和适配。 总之,通过引入Office.js插件,可以在Vue项目实现打开多个Word打印窗口的功能,从而满足用户对于多个Word文档同时打印的需求。 ### 回答2: 前端vue框架,可以使用插件QZPrint来打开多个Word打印窗口。 QZPrint是一个基于浏览器的插件,它提供了一个简便的方式来控制打印机并打印文档。它可以打开多个Word打印窗口,让用户同时打印多个文档。 使用QZPrint插件,首先需要在Vue项目引入插件的库文件。可以使用npm或者直接通过CDN引入。 安装完成后,可以在需要打印Word文档的地方调用相关的方法。首先,需要创建一个打印任务的对象,将Word文档的内容传递给这个对象。然后,调用插件的打印方法,将打印任务发送给打印机。 在Vue的组件,可以通过按钮或者其他触发事件的方式来调用打印方法。当用户点击按钮时,会触发相应的事件,调用QZPrint插件的方法来打开多个Word打印窗口。 使用QZPrint插件的好处是,它能够在浏览器直接控制打印机,而不需要使用其他的插件或者软件来实现。这样,用户可以直接在浏览器完成打印任务,而不需要切换到Word等其他的应用程序。 总之,如果需要在Vue打开多个Word打印窗口,可以使用QZPrint插件来实现。它能够方便地控制打印机并打印文档,提供了一种简便的方式来进行打印操作。 ### 回答3: 在前端的Vue框架,可以通过使用一些插件来实现打开多个Word打印窗口的功能。其比较常用的插件有: 1. Vue-print-nb: 这是一个专门用于打印的Vue插件,支持打印多个Word文档。你可以通过安装该插件并在代码引入,然后使用相关的方法来实现打开多个Word打印窗口的功能。 2. Vue-html-to-paper: 这是一个将HTML内容转换为打印页面的Vue插件。你可以将Word文档以HTML形式展示,然后使用该插件进行打印,从而实现打开多个Word打印窗口的效果。 3. Vue-print: 这是一个基于Vue的打印插件,支持在浏览器打开多个Word文档并进行打印。你可以通过添加相应的配置和调用方法,实现打开多个Word打印窗口的功能。 以上插件都可以通过在Vue项目引入并使用,具体的使用方法和配置可以参考它们的官方文档。另外,需要注意的是,打印功能一般需要用户的浏览器支持并正确配置打印机相关的设置,才能实现预期的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值