<template> <div style="height:650px"> <el-tabs v-model="activeName" @tab-click="handleClick"> <el-tab-pane label="企业信息" name="1"></el-tab-pane> <el-tab-pane label="材料信息" v-if="formData.isAdd==2" name="2"></el-tab-pane> </el-tabs> <el-form ref="ruleForm" :model="ruleForm" label-width="100px" style="height:90%" v-if="activeName==1" :rules="rules"> <div style="height:90%"> <el-row> <el-col :span="12"> <el-form-item label="企业名称:" prop="qymc"> <el-input v-model="ruleForm.qymc"></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="电话:" prop="dh"> <el-input v-model.number="ruleForm.dh" maxlength="11"></el-input> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="12"> <el-form-item label="证件种类:" prop="zjzl"> <el-select clearable v-model="ruleForm.zjzl" class="width100" placeholder="请选择"> <el-option v-for="item in zjzlList" :key="item.dcode" :label="item.dname" :value="item.dcode"> </el-option> </el-select> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="证件号:" prop="zjh"> <el-input v-model="ruleForm.zjh" maxlength="18"></el-input> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="12"> <el-form-item label="法人名称:" prop="frmc"> <el-input v-model="ruleForm.frmc"></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="法人电话:" prop="frdh"> <el-input v-model="ruleForm.frdh" maxlength="11"></el-input> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="12"> <el-form-item label="单位地址:" prop="dwdz"> <el-input v-model="ruleForm.dwdz"></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="邮编:" prop="yb"> <el-input v-model="ruleForm.yb"></el-input> </el-form-item> </el-col> </el-row> </div> <el-form-item style="text-align:center"> <el-button @click="closeDialog">取消</el-button> <el-button type="primary" @click="submitForm">保存</el-button> </el-form-item> </el-form> <clxx v-if="activeName==2" :formData="formData" /> </div> </template> <script> const checkPhone = (rule, value, callback) => { let regPone = null let mobile = /^(1[3456789]\d{9})$/ //手机号 let tel = /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/ // 座机 if (value && value[0] === '0') {// 检查 value 是否存在并且不是 null 或者 undefined regPone = tel } else if (value && value[0] !== '0') { regPone = mobile } if (regPone === null) { return callback( new Error('请输入电话') ) } else if (!regPone.test(value)) { return callback( new Error("请输入正确的电话格式,其中座机格式'区号-座机号码'") ) } else { callback() } }; import store from '@/store/index.js' import { addQy, update, addYh } from "@/api/xxba.js" import clxx from './clxx/index.vue' export default { props: { formData: { type: Object, default: () => { }, }, }, components: { clxx }, data () { return { zjzlList: store.getters.dictData['A30'], activeName: "1", DJJGLIST: store.getters.dictData['ywly'], readOnly: false, //表单提交数据 ruleForm: { batchno: '', djjg: '', operationtime: '', bz: '', zsstarno: '', zsendno: '', zsnum: '', zmstarno: '', zmendno: '', zmnum: '' }, //表格数据 tableForm: [ { name: '不动产权证书', ksysxlh: '', jsysxlh: '', bs: 0, zslx: 1 }, { name: '不动产登记证明', ksysxlh: '', jsysxlh: '', bs: 0, zslx: 2 } ], rules: { qymc: [ { required: true, message: '企业名称不能为空', trigger: 'blur' } ], dh: [ { required: true, validator: checkPhone, trigger: ["blur"] }, ], zjzl: [ { required: true, message: '请选择证件种类', trigger: 'change' } ], zjh: [ { required: true, message: '请输入证件号', trigger: 'blur' } ], frmc: [ { required: true, message: '请输入法人名称', trigger: 'blur' } ], frdh: [ { required: true, validator: checkPhone, trigger: ["blur"] }, ], dwdz: [ { required: true, message: '请输入单位地址', trigger: 'blur' } ] } } }, mounted () { if (this.formData.bsmBatch) { this.tableForm[0].bs = null; this.tableForm[1].bs = null; this.getDetailInfo(this.formData.bsmBatch) } let list = Object.keys(this.formData).length if (list > 0) { this.ruleForm = this.formData } }, methods: { handleClick () { }, /** * @description: 表单提交 * @author: renchao */ submitForm () { let that = this this.tableForm.forEach((item, index) => { if (item.bs < 0) { return; } }) if (this.formData.isAdd != 1) { store.dispatch("user/refreshPage", false); update(this.ruleForm).then(res => { if (res.code == 200) { this.$message.success('保存成功') this.$emit("input", false); this.$refs['ruleForm'].resetFields(); this.resetTableFields(); this.closeDialog(); //刷新列表 store.dispatch("user/refreshPage", true); } else { this.$message.error(res.message); } }) } else { that.$refs['ruleForm'].validate((valid) => { if (valid) { store.dispatch("user/refreshPage", false); if (this.formData.QyYh == 1) { addQy(this.ruleForm).then(res => { if (res.code == 200) { that.$message.success('保存成功') that.$emit("input", false); that.$refs['ruleForm'].resetFields(); that.resetTableFields(); that.closeDialog(); //刷新列表 store.dispatch("user/refreshPage", true); } else { that.$message.error(res.message); } }) } else { addYh(this.ruleForm).then(res => { if (res.code == 200) { that.$message.success('保存成功') that.$emit("input", false); that.$refs['ruleForm'].resetFields(); that.resetTableFields(); that.closeDialog(); //刷新列表 store.dispatch("user/refreshPage", true); } else { that.$message.error(res.message); } }) } } else { this.$message.error('请完善表单'); return false; } }) } }, /** * @description: 获取详情信息 * @param {*} bsmBatch * @author: renchao */ getDetailInfo (bsmBatch) { getZsglInfo({ "bsmBatch": bsmBatch }).then(res => { if (res.code == 200) { this.ruleForm = res.result; this.readOnly = false; this.tableForm[0].ksysxlh = res.result.zsstarno; this.tableForm[0].jsysxlh = res.result.zsendno; this.tableForm[0].bs = res.result.zsnum; this.tableForm[1].ksysxlh = res.result.zmstarno; this.tableForm[1].jsysxlh = res.result.zmendno; this.tableForm[1].bs = res.result.zmnum; } }) }, /** * @description: resetTableFields * @author: renchao */ resetTableFields () { this.tableForm = [ { name: '不动产权证书', ksysxlh: '', jsysxlh: '', bs: 0, zslx: 1 }, { name: '不动产权登记证明', ksysxlh: '', jsysxlh: '', bs: 0, zslx: 2 } ] }, /** * @description: closeDialog * @author: renchao */ closeDialog () { this.$popupCacel() this.$refs['ruleForm'].resetFields(); this.resetTableFields(); } } } </script> <style scoped lang="scss"> @import "~@/styles/mixin.scss"; @import "~@/styles/dialogBoxheader.scss"; .font-red { color: red; } .middle-margin-bottom { margin-top: 20px; } </style>