1.父组件

<template>
<card-layout :title="L('Users')" :actions="actions" @click="handleClick">
<el-table :data="tableData4.slice((currentPage-1)*pagesize,currentPage*pagesize)" :default-sort="{prop: 'date', order: 'descending'}" style="width: 100%">
<el-table-column fixed prop="id" label="编号" width="">
</el-table-column>
<el-table-column prop="name" label="姓名" width="">
</el-table-column>
<el-table-column prop="password" type="password" label="密码" width="">
</el-table-column>
<el-table-column prop="sexType" label="性别" width="" :formatter="sexTypes">
</el-table-column>
<el-table-column prop="phone" label="电话" width="">
</el-table-column>
<el-table-column prop="email" label="邮箱" width="">
</el-table-column>
<el-table-column prop="birthday" label="生日" width="">
</el-table-column>
<el-table-column prop="integral" label="等级" width="" :formatter="Getlevel">
</el-table-column>
<el-table-column fixed="right" label="操作" width=""> <template slot-scope="scope">
<el-button type="danger" @click.native.prevent="deleteRow(scope.row, tableData4)" size="small">
移除
</el-button>
<el-button type="primary" @click="EditClick(scope.row)" size="small">
{{Edit}}
</el-button>
</template> </el-table-column>
</el-table>
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[5, 10, 20, 40]" :page-size="pagesize" layout="total, sizes, prev, pager, next, jumper" :total="tableData4.length">
</el-pagination> <update :show.sync="shows" @renovate="getuser" :datas="mydata" ></update>
<UserEdit :show.sync="show" @renovate="getuser"></UserEdit> </card-layout>
</template> <script>
import datatablepaging from "../.././components/basicElement/dataTable/dataTablePaging.vue";
import UserEdit from "./UserEdit-dialog.vue";
import update from './Update.vue'
export default {
methods: {
deleteRow(index, rows) {
rows.splice(index, );
}
},
data() {
return {
Edit:"编辑",
pagesize: , //每页的数据条数
currentPage: , //默认开始页面
show: false,
shows:false,
mydata:{},
SkipCount: ,
MaxResultCount: ,
actions: [
[
{
id: "New",
type: "primary",
text: "New",
icon: "fa fa-plus"
},
{
id: "Refresh",
type: "success",
text: "Refresh",
icon: "fa fa-refresh"
}
]
],
tableData4: []
};
},
components: {
UserEdit,
datatablepaging,
update
},
methods: {
open() {
this.show = true;
},
opens(){
this.shows = true;
},
created: function() {
this.total = this.tableData4.length;
},
current_change: function(currentPage) {
this.currentPage = currentPage;
},
handleClick(id) {
switch (id) {
case "New":
this.AddUser();
break;
case "Refresh":
this.Refresh();
break;
default:
break;
}
},
AddUser() {
this.open();
},
Refresh() {
this.getuser();
},
getuser() {
this.$http
.get(
"/api/services/app/Userinfro/GetUserinofor?MaxResultCount=" +
this.MaxResultCount
)
.then(result => {
this.tableData4 = result.data.result.items;
//console.log(result.data.result.items);
})
.catch(err => {
console.log(err);
});
},
sexTypes(row, column) {
if (row.sexType == ) {
return "男";
} else {
return "女";
}
},
Getlevel(row, column) {
if (row.integral >= && row.integral < ) {
return "白银";
}
if (row.integral >= && row.integral < ) {
return "黄金";
}
if (row.integral >= && row.integral < ) {
return "铂金";
}
if (row.integral >= ) {
return "钻石";
}
},
deleteRow(row) {
this.$confirm("此操作将永久删除该用户, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
console.log(row.id);
this.$http
.delete("/api/services/app/Userinfro/DeleteUserByid?Id=" + row.id)
.then(result => {
this.$message({
type: "success",
message: "删除成功!"
});
this.getuser();
})
.catch(err => {
console.log(err);
});
});
},
EditClick(data) {
this.opens();
//console.log(data)
this.mydata=data;
},
handleSizeChange(size){
this.pagesize=size;
},
handleCurrentChange(currentPage)
{
this.currentPage=currentPage;
}
},
created() {
this.getuser();
}
};
</script>
<style>
.el-pagination { padding-top: 12px;
}
</style>

2.子组件

<template>
<div>
<el-dialog title="UpdateCustomer" :visible.sync="visible" @close="$emit('update:show', false)" :show="show" append-to-body>
<el-form :model="form" ref="Userform" :rules="rules" label-position="top" label-width="80px"> <el-form-item label="姓名" :label-width="formLabelWidth" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item> <el-form-item label="密码" :label-width="formLabelWidth" prop="password">
<el-input v-model="form.password" autocomplete="off"></el-input>
</el-form-item> <el-form-item label="性别" :label-width="formLabelWidth" prop="sexType">
<el-radio-group v-model="form.sexType">
<el-radio :label="">WuMan</el-radio>
<el-radio :label="">Man</el-radio>
</el-radio-group>
</el-form-item> <el-form-item label="电话" :label-width="formLabelWidth" prop="phone">
<el-input v-model="form.phone" autocomplete="off"></el-input>
</el-form-item> <el-form-item label="邮箱" :label-width="formLabelWidth" prop="email">
<el-input v-model="form.email" autocomplete="off"></el-input>
</el-form-item> <el-form-item label="生日" :label-width="formLabelWidth" prop="birthday">
<el-date-picker v-model="form.birthday" type="date" style="width: 100%;" placeholder="选择日期">
</el-date-picker>
</el-form-item> <el-form-item label="积分" :label-width="formLabelWidth" prop="integral">
<el-input v-model="form.integral" autocomplete="off"></el-input>
</el-form-item>
</el-form> <div slot="footer" class="dialog-footer">
<el-button @click="cellsumbit">取 消</el-button>
<el-button type="primary" @click="sumbit">确 定</el-button>
</div>
</el-dialog>
</div>
</template> <script>
export default {
data() {
return {
form: {
name: "",
password: "",
sexType: ,
phone: "",
email: "",
birthday: "",
integral: ""
},
formLabelWidth: "80px",
visible: this.show,
rules: {
name: [
{ required: true, message: "name is not null", trigger: "blur" },
{
min: ,
max: ,
message: "Names are between two and eight characters "
}
],
password: [
{ required: true, message: "password is not null", trigger: "blur" },
{ min: , message: "Minimum length of six digits" }
],
phone: [
{ required: true, message: "phone is not nul", trigger: "blur" },
{ validator: this.checkphone, trigger: "blur" }
],
email: [
{ required: true, message: "email is not null", trigger: "blur" },
{ type: "email", message: "邮箱格式不正确", trigger: "blur" }
],
birthday: [
{ required: true, message: "birthday is not null", trigger: "blur" }
]
}
};
},
props: {
show: {
type: Boolean,
default: false
},
EDIT: {
type: String
},
datas:{
type :Object,
}
},
watch: {
show() { //注意要随时监控
console.log(this.datas);
this.form=this.datas;
this.visible = this.show;
}
},
methods: {
checkphone(rule, value, callback) {
if (!Number.isInteger(+value)) {
callback(this.$message("请输入数字类型"));
}
if (value) {
const reg = /^[||||][-]{}$/;
if (reg.test(value)) {
callback();
} else {
return callback(this.$message("请输入正确的手机格式"));
}
}
},
cellsumbit() {
this.visible = false;
this.$emit("renovate");
},
sumbit() {
this.visible = false; this.$refs.Userform.validate(valid => {
console.log(valid)
if (valid) {
this.$http
.put("/api/services/app/Userinfro/UpdateUser", this.form)
.then(result => {
console.log(result.status);
if (result.status == ) {
this.$message("更新成功");
this.$emit("renovate");
this.form.name = "";
}
})
.catch(err => {
console.log(err);
});
}
});
}
},
};
</script>

element-dialog封装成子组件的更多相关文章

  1. html5音频audio对象封装成vue组件的方式调用以及setTimeout如何在vue2生效 (vue2正在熟悉中,ajax还是用jQuery来写舒服些,里面含有一些php写法可略过) 此网页应用在PC不考虑手机端

    // vue2 组件封装如下: <template> <div> <div><!--vue element 组件的引用 Switch 开关 不懂请自行百度(重 ...

  2. angular8 集成swiper, 并将swiper封装成公共组件

    安装Swiper npm install swiper --save 或者 yarn add swiper --save 在angular.json文件添加swiper.js和swiper.css   ...

  3. echart——vue封装成公共组件

    <!-- 自定义Echarts * options: Object,//数据 * theme: String,//主题 * initOptions: Object,//初始化 * group: ...

  4. vue 中 echart 在子组件中只显示一次的问题

    问题描述 一次项目开发过程中,需要做一些图表,用的是百度开源的 echarts. vue推荐组件化开发,所以就把每个图表封装成子组件,然后在需要用到该图表的父组件中直接使用. 实际开发中,数据肯定都是 ...

  5. 父组件向子组件传值时,值已经传过来却没有触发子组件的watch监听,解决~

    需求: 父组件像封装的子组件传值  (父组件属性传值,子组件props接受)   子组件接受后经过处理回显页面; 预想:子组件接受值 , 经过watch监听,在监听中处理数据,回显数据; 问题:子组件 ...

  6. 封装Vue Element的form表单组件

    前两天封装了一个基于vue和Element的table表格组件,阅读的人还是很多的,看来大家都是很认同组件化.高复用这种开发模式的,毕竟开发效率高,代码优雅,逼格高嘛.虽然这两天我的心情很糟糕,就像& ...

  7. 封装Vue Element的upload上传组件

    本来昨天就想分享封装的这个upload组件,结果刚写了两句话,就被边上的同事给偷窥上了,于是在我全神贯注地写分享的时候他就神不知鬼不觉地突然移动到我身边,腆着脸问我在干啥呢.卧槽你妈,当场就把我吓了一 ...

  8. element el-table表格的vue组件二次封装(附表格高度自适应)

    基于vue的el-table表格二次封装组件方法 前言 在公司实习使用vue+element-ui框架进行前端开发,使用表格el-table较为多,有些业务逻辑比较相似,有些地方使用的重复性高,如果多 ...

  9. vue+element ui项目总结点(四)零散细节概念巩固如vue父组件调用子组件的方法、拷贝数据、数组置空问题 等

    vue config下面的index.js配置host: '0.0.0.0',共享ip (假设你的电脑启动了这个服务我电脑一样可以启动)-------------------------------- ...

随机推荐

  1. 深入探讨WPF的ListView控件

    接上一篇博客初步探讨WPF的ListView控件(涉及模板.查找子控件)  我们继续探讨ListView的用法      一.实现排序功能 需求是这样的:假如我们把学生的分数放入ListView,当我 ...

  2. traff.sh

    #!/bin/bash #网络监控 while [ "1" ] do eth=$1 RXpre=$(cat /proc/net/dev | grep $eth | tr : &qu ...

  3. android程序---->android多线程下载(二)

    上篇我们讲到了android中下载的断点续传问题,今天我们开始学习下载的多线程问题.本次的多线程源码下载:androdi中多线程下载的实现代码.有关断点续传的问题,请参见博客:android程序--- ...

  4. Go学习笔记(一)安装Go语言环境

    Go Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入 ...

  5. 企业邮箱绑定微信后,如何设置通过本地验证。(Foxmail)

    老的电脑不行了,换了台暗影精灵3plus顶配,需要把相应的资料移动过来. 然后就发现企业邮箱是绑定了微信的,不能再机器上的Foxmail直接登录,这个问题以前解决过结果自己忘记了,重新解决记录下. 解 ...

  6. mui---取消掉默认加载框

    我们在进行打开页面新页面的时候,在APP中会在中间有一个加载框,考虑到用户体验,要取消掉,具体方法是,对openWindow进行配置: 具体参考:http://dev.dcloud.net.cn/mu ...

  7. ML.NET教程之客户细分(聚类问题)

    理解问题 客户细分需要解决的问题是按照客户之间的相似特征区分不同客户群体.这个问题的先决条件中没有可供使用的客户分类列表,只有客户的人物画像. 数据集 已有的数据是公司的历史商业活动记录以及客户的购买 ...

  8. F#周报2018年第49期

    新闻 ML.NET 0.8--Machine Learning for .NET .NET Core 3预览 1以及开源Windows桌面框架 .NET Core 2.2 尝试C# 8.0 .NET ...

  9. .NET Core开发日志——WCF Client

    WCF作为.NET Framework3.0就被引入的用于构建面向服务的框架在众多项目中发挥着重大作用.时至今日,虽然已有更新的技术可以替代它,但对于那些既存项目或产品,使用新框架重构的代价未必能找到 ...

  10. [No0000154]详解为什么32位系统只能用4G内存.

    既然是详解, 就从最基础的讲起了. 或者1来存储数据的, 所以Bit实际上可以看成存放1个二进制数字的1个位置.也就是说bit只有2种值, 0 或者 1, 所以1个bit能存放1个布尔类型的值(boo ...