vue+element 模态框是表格情势的可编辑表单

要完成的结果以下,初始化的时刻,不可编辑,点击编辑按钮,编辑按钮隐蔽,作废编辑按钮显现;部份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()
    },



























    原文作者:冬瓜先生
    原文地址: https://segmentfault.com/a/1190000019410450
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞