vue+elemnet开发遇到的问题

摘要:
=DBNull.Value)pi。设置值;}}ts.Add;}返回;}3.从后端发送的查询时间转换数据为datetime类型。前端显示是下载Js的第一步,您还可以创建一个新的Js并直接复制它。步骤2:步骤3:在vue中的方法方法中//格式化时间日期格式:函数{vardate=row[column.property];如果{return“”};返回时刻。format},4在表格中,您需要有可以编辑的列此外,还有一种方法可以使用过滤器<td><el表>{item.OutDate|formatDate}}</el标签></td>过滤器:{formatDate{if(time!“0”+date.getDate():date.getDate();returndate.getFullYear()+“-”+月+“-“+当前日期;}return“”;}},5前端向后端发送一个对象$Ajax6删除表中的一行数据删除//删除行handle删除{this.$确认(“确定要删除此数据吗?

1 选择时间时,代码

 <el-form-item label="订货日期" label-width="80px">
      <el-date-picker size="small" type="daterange" v-model="OrderDate" value-format="yyyy-MM-dd"range-separator=""start-placeholder="开始日期"end-placeholder="结束日期">
       </el-date-picker>
 </el-form-item>

在js初始化

var app = newVue({
            el: "#app",
            data() {
                return{

                    OrderDate: '',
                };
            }
})

vue+elemnet开发遇到的问题第1张

获取这个值的是传到后端

   var url = "/OrderingArea/SearchData?orderDate=" + _this.OrderDate ; //第一种方式
   var date = _this.OrderDate == "" ? "" : _this.OrderDate.join(","); //选择的时间是数组,需要转换
var url = "/OrderingArea/SearchData";
$.ajax({
url: url,
type:"POST" //一般为post,用get会有问题,容易被截取内容
async:false,
dataType:"json",
data:{orderDate:date},
success:function(result){
// 里面写业务逻辑
}
});

2将查找出来的datatable转化为list的帮助类(这样可以避免一行一行的赋值)(需要注意的是c#区分大小写,而sql不区分,会出现问题

 public static IList<T>ConvertToModel(DataTable dt)
        {
            //定义集合   
            IList<T> ts = new List<T>();

            //获得此模型的类型  
            Type type = typeof(T);
            string tempName = "";

            foreach (DataRow dr indt.Rows)
            {
                T t = newT();
                //获得此模型的公共属性     
                PropertyInfo[] propertys =t.GetType().GetProperties();
                foreach (PropertyInfo pi inpropertys)
                {
                    tempName = pi.Name;  //检查DataTable是否包含此列   
                    
                    if(dt.Columns.Contains(tempName))
                    {
                        //判断此属性是否有Setter     
                        if (!pi.CanWrite) continue;

                        object value =dr[tempName];
                        if (value !=DBNull.Value)
                            pi.SetValue(t, value, null);
                    }
                }
                ts.Add(t);
            }
            returnts;
        }

3 查询出来的时间转化

从后端传过来的数据是datetime类型的(当然可以直接将类型.tostring()格式化)

前端显示是这样的

vue+elemnet开发遇到的问题第2张

第一步下载moment.js (地址:http://momentjs.cn/),也可以新建js,直接复制过来

第二步

<el-table-column label="需求日期" prop="绑定的列名" :formatter="dateFormat"> </el-table-column> 

第三步

在vue中的methods方法中

//格式化时间
dateFormat: function (row, column) {
                    var date =row[column.property];
                    if (date == undefined) { return ''};
                    return moment(date).format("YYYY-MM-DD")
                },

4在table中有需要有可以编辑的列(使用slot-scope,然后绑定)

 <el-table-column label="单价(元)" width="120">
    <template slot-scope="scope">
       <el-input v-model="scope.row.price" placeholder="请输入价格"></el-input>
     </template>
 </el-table-column>

另外还有一种传过来的是这样的(/Date(1600012800000)/)

就需要用到filters

 <td><el-lable>{{item.OutDate | formatDate}}</el-lable></td>
filters: {
            formatDate(time) {
                if (time != null) {
                    var date = new Date(parseInt(time.replace("/Date(", "").replace(")/", ""), 10));
                    var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
                    var currentDate = date.getDate < 10 ? "0" +date.getDate() : date.getDate();
                    return date.getFullYear() + "-" + month + "-" +currentDate;
                }
                return "";
            }
        },

5前端传一个对象给到后端(注意从后端传过来的对象和前端传过去的对象要一致,后端用list<object> 接收)

$.ajax({
                        url: url,
                        type: "POST",
                        async: false,
                        contentType: "application/json",//必选
                        dataType: "JSON",//可选
                        data: JSON.stringify(_this.multipleSelection), //必选
success: function (result) {
                            if (result == 1) {
                                alert("成功")
                            }
                        }
                    })

6删除table中的一行数据

 <el-table-column label="操作" width="100">
      <template slot-scope="scope">
         <el-button type="danger" icon="el-icon-delete" @@click="handleDelete(scope.$index,scope.row)" circle>删除</el-button>
      </template>
  </el-table-column>
                //删除行
handleDelete(val, row) {
                    this.$confirm("是否确认删除本条数据?", "提示", {
                        confirmButtonText: "确认",
                        cancelButtonText: "取消",
                        type: "info"}).then(() =>{
                        //此为假删除。只是删除了模态框中当前行的数据,并没有真正删除表格数据
                        this.tableData.splice(val, 1);
                    }
                    )
                }

7一个页面的数据保存,然后在另一个页面使用(window.sessionStorage)

8tableRowClassName方法可以获取每一行的index 声明

:row-class-name="tableRowClassName"     //element官方有这个方法tableRowClassName({ row, rowIndex }) {
                    //把每一行的索引放进row
                    row.index =rowIndex;

                },

9声明一个对象

var object={AName:AValue;bName:BValue;CName:CValue}//声明一个对象并赋值
var object={};//声明
object.prop=a; //赋值
object.prop1=b;

10 ve-line的使用,图像表示法

11如何让table只显示左上的一半,右下的一半不显示

vue+elemnet开发遇到的问题第3张

12点击v-for中的某一行,设置点击事件并且带参数 (疑惑的是为什么只能传item,不能传item.id这个)

 <td style="text-align:right"><el-link @@click="Modify(item)">修改</el-link>

js中代码

Modify(e) {
                var id = e.id;  //代表item的属性
                alert("修改出货单" +id);
            },

样式的绑定

:class="['固定样式', onfoces?'样式1':'样式2'] "
:class="{样式1:true,样式2:!onfoces}">

在vue中的input,当type=number 或text时,maxlength属性无效

v-on:input="maxPhoneLength"
@@input="maxPhoneLength"

设置button不可点击事件

 <template>
  <button type="button" @@click="getCode" id="btn" v-bind:disabled="disabled" :class="[disabled?'clicksubmitBtn':'codeBtn']">{{buttonName}} </button>
  </template>

免责声明:文章转载自《vue+elemnet开发遇到的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇mac 小程序 helloworld初识fastDFS下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

django后台admin的配置

DJANGO ADMIN 一些有用的设置Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据。后台管理可以在各个app的admin.py文件中进行控制。以下是我最近摸索总结出比较实用的配置。若你有什么比较好的配置,欢迎补充。 一、基本设置 1、应用注册 若要把app应用显示在后台管理中,需要在admin.py中注册。这...

Quartz的基本使用之入门(2.3.0版本)

一、Quartz可以用来做什么 Quartz是一个强大任务调度框架,我工作时候会在这些情况下使用到quartz框架,当然还有很多的应用场景,在这里只列举2个实际用到的 餐厅系统会在每周四晚上的22点自动审核并生成报表 人事系统会在每天早晨8点给有待办的人员自动发送Email提醒 二、使用Quartz之前的准备 1.建立一个Maven项目 2.引入qu...

手把手教学在Springboot中搭建使用Guava cache,包教包会,不会我输一包辣条给你

 guava cache使用简介   概述   缓存是日常开发中经常应用到的一种技术手段,合理的利用缓存可以极大的改善应用程序的性能。   Guava官方对Cache的描述连接   缓存在各种各样的用例中非常有用。例如,当计算或检索值很昂贵时,您应该考虑使用缓存,并且不止一次需要它在某个输入上的值。   缓存ConcurrentMap要小,但不完全相同。最...

多功能日历插件:Kalendae

Kalendae 主要功能: 便携无依赖,只需添加js和css。 通过css自定皮肤,方便更换。 支持所有现代浏览器和IE8。 支持一天,多天,或范围选择。 可配置显示几个月。 可作为内嵌部件显示,或通过一个或多个input触发。 可以被附加到任何页面元素,不仅仅是命名元素。 可配置的禁选,通过定义日期数组或一个回调函数。 可配置所选日期的格式。 利用m...

date-fns时间库的基本使用

在react中使用date-fns: import sub_days from 'date-fns/sub_days'; import start_of_week from 'date-fns/start_of_week'; import end_of_week from 'date-fns/end_of_week'; import start_of_...

Linux系统时间和硬件时间设置

在linux系统中有两个时间,硬件时钟和系统时间,硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。所有Linux相关指令与函数都是读取系统时钟的设定。因为存在两种不同的时钟,那么它们之间就会存在差异。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。 用date命令对系统时...