lanan-system-vue/src/views/base/company/CompanyForm.vue
2024-08-03 17:59:16 +08:00

232 lines
9.1 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="app-container">
<!-- 对话框(添加 / 修改) -->
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="60%" v-dialogDrag append-to-body>
<el-form ref="formRef" :model="formData" :rules="formRules" v-loading="formLoading" label-width="150px">
<el-row :gutter="2">
<el-col :span="12">
<el-form-item label="企业名称" prop="corpName">
<el-input v-model="formData.corpName" placeholder="请输入企业名称" maxlength="255"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="统一社会信用代码" prop="orgCard">
<el-input v-model="formData.orgCard" placeholder="请输入统一社会信用代码" maxlength="18"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="2">
<el-col :span="12">
<el-form-item label="注册资本" prop="registFund">
<el-input type="number" v-model="formData.registFund" placeholder="请输入注册资本">
<template slot="append">万元</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="注册日期" prop="registDate">
<el-date-picker clearable v-model="formData.registDate" type="date" value-format="yyyy-MM-dd"
placeholder="选择注册日期"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="2">
<el-col :span="12">
<el-form-item label="法人姓名" prop="legalName">
<el-input v-model="formData.legalName" placeholder="请输入法人姓名" maxlength="50"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="法人身份证号" prop="legalCard">
<el-input v-model="formData.legalCard" placeholder="请输入法人身份证号" maxlength="18"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="2">
<el-col :span="12">
<el-form-item label="联系人" prop="contactName">
<el-input v-model="formData.contactName" placeholder="请输入联系人" maxlength="50"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系方式" prop="mobilePhone">
<el-input type="tel" v-model="formData.mobilePhone" placeholder="请输入联系方式" maxlength="11" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="2">
<el-col :span="12">
<el-form-item v-if="formData.id === undefined" label="管理员登录账号" prop="loginAccount">
<el-input v-model="formData.loginAccount" placeholder="请输入管理员登录账号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item v-if="formData.id === undefined" label="管理员登录密码" prop="password">
<el-input v-model="formData.password" placeholder="请输入管理员登录密码" type="password" show-password />
</el-form-item>
</el-col>
</el-row>
<el-form-item label="开放服务" prop="serviceCodeArray">
<el-select style="width: 100%" v-model="formData.serviceCodeArray" multiple placeholder="请选择开放服务" clearable >
<el-option v-for="item in packageList" :key="item.id" :label="item.name" :value="item.id"/>
</el-select>
</el-form-item>
<el-form-item label="详细地址" prop="address">
<el-input v-model="formData.address" placeholder="请输入详细地址" maxlength="255" />
</el-form-item>
<el-form-item label="企业简介">
<el-input type="textarea" v-model="formData.corpContent" maxlength="900" placeholder="请输入企业简介"/>
<!-- <Editor v-model="formData.corpContent" :min-height="192"/>-->
</el-form-item>
<el-form-item label="经营范围" prop="business">
<el-input type="textarea" v-model="formData.business" maxlength="900" placeholder="请输入经营范围"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import * as CompanyApi from '@/api/base/company'
import Editor from '@/components/Editor'
import {getServicePackageList} from "@/api/system/servicePackage";
export default {
name: 'CompanyForm',
components: {
Editor
},
data() {
return {
// 弹出层标题
dialogTitle: '',
// 是否显示弹出层
dialogVisible: false,
// 表单的加载中1修改时的数据加载2提交的按钮禁用
formLoading: false,
// 租户服务列表
packageList: [],
// 表单参数
formData: {
id: undefined,
corpName: undefined,
orgCard: undefined,
registFund: undefined,
registDate: undefined,
address: undefined,
legalName: undefined,
legalCard: undefined,
contactName: undefined,
mobilePhone: undefined,
corpContent: undefined,
business: undefined,
loginAccount: undefined,
password: undefined,
serviceCodeArray: [],
serviceCodes:undefined
},
// 表单校验
formRules: {
corpName: [{ required: true, message: '企业名称不能为空', trigger: 'blur' }],
orgCard: [{ required: true, message: '统一社会信用代码不能为空', trigger: 'blur' }],
registFund: [{ required: true, message: '注册资本不能为空', trigger: 'blur' }],
registDate: [{ required: true, message: '注册日期不能为空', trigger: 'blur' }],
address: [{ required: true, message: '详细地址不能为空', trigger: 'blur' }],
legalName: [{ required: true, message: '法人姓名不能为空', trigger: 'blur' }],
legalCard: [
{ required: true, message: '法人身份证号不能为空', trigger: 'blur' },
{ pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/, message: '请输入正确的法人身份证号', trigger: ["blur", "change"] },
],
serviceCodeArray: [{ required: true, message: '开放服务不能为空', trigger: 'blur' }],
contactName: [{ required: true, message: '联系人不能为空', trigger: 'blur' }],
mobilePhone: [
{ required: true, message: '联系方式不能为空', trigger: 'blur' },
{ pattern: /^(?:(?:\+|00)86)?1(?:3[\d]|4[5-79]|5[0-35-9]|6[5-7]|7[0-8]|8[\d]|9[189])\d{8}$/,message: '请输入正确的联系方式', trigger: ["blur", "change"] },
],
loginAccount: [{ required: true, message: '管理员登录账号不能为空', trigger: 'blur' }],
password: [{ required: true, message: '管理员登录密码不能为空', trigger: 'blur' }]
}
}
},
created() {
// 获得服务服务列表
getServicePackageList().then(response => {
this.packageList = response.data;
})
},
methods: {
/** 打开弹窗 */
async open(id) {
this.dialogVisible = true
this.reset()
// 修改时,设置数据
if (id) {
this.formLoading = true
try {
const res = await CompanyApi.getCompany(id)
this.formData = res.data
this.dialogTitle = '修改企业信息'
} finally {
this.formLoading = false
}
}
this.dialogTitle = '新增企业信息'
},
/** 提交按钮 */
async submitForm() {
// 校验主表
await this.$refs['formRef'].validate()
this.formLoading = true
debugger
try {
const data = this.formData
let serviceCodes = this.formData.serviceCodeArray.join(",")
data.serviceCodes = serviceCodes
// 修改的提交
if (data.id) {
await CompanyApi.updateCompany(data)
this.$modal.msgSuccess('修改成功')
this.dialogVisible = false
this.$emit('success')
return
}
// 添加的提交
await CompanyApi.createCompany(data)
this.$modal.msgSuccess('新增成功')
this.dialogVisible = false
this.$emit('success')
} finally {
this.formLoading = false
}
},
/** 表单重置 */
reset() {
this.formData = {
id: undefined,
corpName: undefined,
orgCard: undefined,
registFund: undefined,
registDate: undefined,
address: undefined,
legalName: undefined,
legalCard: undefined,
contactName: undefined,
mobilePhone: undefined,
corpContent: undefined,
business: undefined,
loginAccount: undefined,
password: undefined,
serviceCodeArray: [],
serviceCodes:undefined
}
this.resetForm('formRef')
}
}
}
</script>