vue+element 模态框表格形式的可编辑表单实现


Posted in Javascript onJune 07, 2019

要实现的效果如下,初始化的时候,不可编辑,点击编辑按钮,编辑按钮隐藏,取消编辑按钮显示;部分input输入框变为可编辑

vue+element 模态框表格形式的可编辑表单实现

vue+element 模态框表格形式的可编辑表单实现

<el-dialog title="营销单详情" width="920px" @close="isEdit = false" class="dialog dialogAdd" custom-class="custom-dialog"
      :visible.sync="dialogEditVisible" :close-on-click-modal='false'>
    <el-form ref="editForm" style="margin-right: 20px;" :model="editForm" :inline="true" label-position="right" label-width="110px" size="mini">
      <el-form-item label="工单号" prop="no">
        <el-input v-model="editForm.no" disabled></el-input>
      </el-form-item>
      <el-form-item label="客户姓名" prop="khxm">
        <el-input v-model="editForm.khxm" :disabled="!isEdit || editForm.openId"></el-input>
      </el-form-item>
      <el-form-item label="联系电话" prop="khdh">
        <el-input v-model="editForm.khdh" :disabled="!isEdit || editForm.openId"></el-input>
      </el-form-item>
      <el-form-item label="客户地址">
        <el-input v-model="editForm.address" disabled></el-input>
      </el-form-item>
      <el-form-item label="营销人员-工号">
        <el-input v-model="editForm.yxry" disabled></el-input>
      </el-form-item>
      <el-form-item label="网格区域">
        <el-input v-model="editForm.qywg" disabled></el-input>
      </el-form-item>
      <el-form-item label="业务类型" prop="ywlx">
        <el-select v-model="editForm.ywlx" :disabled="!isEdit" placeholder="">
          <el-option v-for="item in ywlxList" :key="item" :label="item" :value="item"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="报装宽带兆数(M)" prop="kdzs" class="long-label">
        <el-select v-model="editForm.kdzs" :disabled="!isEdit" placeholder="">
          <el-option v-for="item in kdzsList" :key="item" :label="item" :value="item"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="手机基础套餐(最低消费)" class="long-label" prop="sjjctc" >
        <el-select v-model="editForm.sjjctc" :disabled="!isEdit" placeholder="">
          <el-option v-for="item in sjtcList" :key="item" :label="item" :value="item"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="业务受理单截屏">
        <p><a class="text-base" @click="show">查看图片</a></p>
      </el-form-item>
      <el-form-item label="下单时间" prop="createTime" >
        <el-input v-model="editForm.createTime" disabled></el-input>
      </el-form-item>
      <el-form-item label="备注" prop="remark">
        <el-input v-model="editForm.remark" :disabled="!isEdit"></el-input>
      </el-form-item>
    </el-form>

    <div slot="footer" class="dialog-footer" v-if="editForm.state != 3">
      <el-button v-if="!isEdit" @click="isEdit = true" size="mini">编 辑</el-button>
      <el-button v-else @click="cancelEdit" size="mini">取消编辑</el-button>
      <el-button type="primary" @click="saveEdit" size="mini">保 存</el-button>
    </div>
  </el-dialog>

data中的数据

editForm: {},        // 新增表单
 isEdit: false,   // 是否编辑
 dialogEditVisible: false,  // 新增模态框
 images: [], // 图片信息
 ywlxList: [],    // 业务类型列表
 kdzsList: ['50', '100', '200', '300'],    // 报装宽带兆数列表
 sjtcList: ['38', '58', '88', '98', '128', '138', '188'],    // 手机基础套餐列表
viewDetail(row){
    console.log(row)
    this.editForm = this.deepClone(row)
    this.dialogEditVisible = true
    this.$post("/anapi/YxdController/getById", {id: row.id}, (data) => {
      this.editForm = data.yxd
      this.editForm.qywg = row.name1 + row.name2 + row.name3 + row.gridName
      this.editForm.address = row.name1 + row.name2 + row.name3 + row.gridName + row.xxdz
      this.editForm.yxry = row.yxCname + '-' + row.yxId
      this.currentItem = this.deepClone(this.editForm)

      let imgs = data.yxd.imgs || []
      this.images = []
      imgs.map(item => {
        this.images.push(this.config.httpHeadUrl + item)
      })
    })
  },
  // 保存编辑
  saveEdit(){
    this.$refs.editForm.validate((valid) => {
      if (valid) {
        this.startLoading()
        this.$post("/api/YxdController/editYxd", this.editForm, (data) => {
          this.$message.success("修改成功!")
          this.dialogEditVisible = false
          this.getTableData(1)
        })
      }
    })
  },
  // 取消编辑
  cancelEdit(){
    this.isEdit = false
    this.editForm = this.deepClone(this.currentItem)
  },

  // 查看图片
  inited (viewer) {
    this.$viewer = viewer
  },
  show () {
    if(!this.images.length){
      this.$message.error("暂无图片")
      return
    }
    this.$viewer.show()
  },

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 动态生成方法的例子
Jul 22 Javascript
JavaScript高级程序设计 事件学习笔记
Sep 10 Javascript
JavaScript高级程序设计(第3版)学习笔记 概述
Oct 11 Javascript
js验证整数加保留小数点的简单实例
Dec 02 Javascript
js仿支付宝多方框输入支付密码效果
Sep 27 Javascript
AngularJS中watch监听用法分析
Nov 04 Javascript
详解基于vue的移动web app页面缓存解决方案
Aug 03 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
Nov 09 jQuery
微信小程序之多文件下载的简单封装示例
Jan 29 Javascript
layui监听select变化,以及设置radio选中的方法
Sep 24 Javascript
微信小程序录音实现功能并上传(使用node解析接收)
Feb 26 Javascript
vue中父子组件的参数传递和应用示例
Jan 04 Vue.js
vue-cli3项目展示本地Markdown文件的方法
Jun 07 #Javascript
Element实现表格分页数据选择+全选所有完善批量操作
Jun 07 #Javascript
详解vue项目中实现图片裁剪功能
Jun 07 #Javascript
sortable+element 实现表格行拖拽的方法示例
Jun 07 #Javascript
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
Jun 07 #Javascript
Vue中实现权限控制的方法示例
Jun 07 #Javascript
vue 父组件中调用子组件函数的方法
Jun 06 #Javascript
You might like
PHP 日常开发小技巧
2009/09/23 PHP
php面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
2014/09/22 PHP
php计算两个坐标(经度,纬度)之间距离的方法
2015/04/17 PHP
php判断当前操作系统类型
2015/10/28 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
cument.execCommand()用法深入理解
2012/12/04 Javascript
ExtJS[Desktop]实现图标换行示例代码
2013/11/17 Javascript
Extjs表单常见验证小结
2014/03/07 Javascript
jQuery树形下拉菜单特效代码分享
2015/08/15 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
2016/05/30 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
Node.js操作redis实现添加查询功能
2017/05/25 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
vue.js移动端app实战1:初始配置详解
2017/07/24 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
2018/08/08 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
[03:04]2018年度DOTA2玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
Python测试模块doctest使用解析
2019/08/10 Python
使用css3匹配手机屏幕横竖状态
2014/01/27 HTML / CSS
h5封装下拉刷新
2020/08/25 HTML / CSS
美国批发零售网站:GearXS
2016/07/26 全球购物
惠而浦美国官网:Whirlpool.com
2021/01/19 全球购物
介绍一下结构化程序设计方法和面向对象程序设计方法的区别
2012/06/27 面试题
青年创业培训欢迎词
2014/01/08 职场文书
高中政治教学反思
2014/01/18 职场文书
情侣吵架检讨书
2014/02/05 职场文书
幼教求职信
2014/03/12 职场文书
政治学求职信
2014/06/03 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
服务标语口号
2014/07/01 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS
MySQL分区表实现按月份归类
2021/11/01 MySQL
Python可视化神器pyecharts绘制水球图
2022/07/07 Python