bonus-ui/src/views/company-manage/components/add-form.vue

257 lines
8.0 KiB
Vue
Raw Normal View History

2024-12-30 18:07:53 +08:00
<template>
<div>
<el-dialog
width="50%"
2024-12-31 17:49:45 +08:00
:title="dialogTitle"
2024-12-30 18:07:53 +08:00
:visible.sync="dialogVisible"
:before-close="handleClose"
>
<el-form
label-width="120px"
:model="addOrEditForm"
2024-12-31 17:49:45 +08:00
:rules="addOrEditFormRef"
2024-12-30 18:07:53 +08:00
ref="addOrEditFormRef"
>
2024-12-31 17:49:45 +08:00
<TitleTip :titleText="`公司信息`" />
2024-12-30 18:07:53 +08:00
<el-form-item label="公司名称:" prop="deptName">
<el-input v-model="addOrEditForm.deptName" />
</el-form-item>
<el-form-item label="公司简称:" prop="deptAbbreviation">
<el-input v-model="addOrEditForm.deptAbbreviation" />
</el-form-item>
<el-form-item label="公司概述:" prop="remark">
<el-input v-model="addOrEditForm.remark" type="textarea" />
</el-form-item>
2024-12-31 17:49:45 +08:00
<TitleTip :titleText="`基础设置`" />
2024-12-30 18:07:53 +08:00
<el-form-item label="默认密码:" prop="password">
2024-12-31 17:49:45 +08:00
<el-input disabled v-model="addOrEditForm.password" />
2024-12-30 18:07:53 +08:00
</el-form-item>
<el-form-item label="LOGO设置" prop="logo">
2024-12-31 17:49:45 +08:00
<div class="upload-container">
2025-01-03 09:43:29 +08:00
<UploadModel
:uploadFileList.sync="addOrEditForm.fileList"
/>
2024-12-31 17:49:45 +08:00
<div>
1上传图片文件格式仅支持SVG <br />
2LOGO图片大小不超过3MB,尺寸100px * 100px <br />
3收集客户的logo请UI设计完成海购添加 <br />
4默认智慧工地LOGO<a> >> 恢复默认</a> <br />
</div>
</div>
2024-12-30 18:07:53 +08:00
</el-form-item>
2024-12-31 17:49:45 +08:00
<TitleTip :titleText="`默认管理员`" />
2024-12-30 18:07:53 +08:00
<el-form-item label="姓名:" prop="nickName">
<el-input v-model="addOrEditForm.nickName" />
</el-form-item>
<el-form-item label="手机号码:" prop="phonenumber">
<el-input v-model="addOrEditForm.phonenumber" />
</el-form-item>
2024-12-31 17:49:45 +08:00
<el-form-item label="角色:" prop="roles">
<el-input disabled v-model="addOrEditForm.roles" />
2024-12-30 18:07:53 +08:00
</el-form-item>
<el-form-item class="handle">
<el-button
@click="
() => {
$emit('update:formDialogVisible', false)
}
"
>
取消
</el-button>
<el-button type="primary" @click="onSubmitForm">
保存
</el-button>
</el-form-item>
</el-form>
</el-dialog>
</div>
</template>
<script>
2024-12-31 17:49:45 +08:00
import UploadModel from '@/components/UploadModel'
2024-12-30 18:07:53 +08:00
import { addCompanyAPI } from '@/api/company-manage/index.js'
export default {
props: {
2024-12-31 17:49:45 +08:00
formType: {
type: Number,
default: () => 3,
},
2024-12-30 18:07:53 +08:00
formDialogVisible: {
type: Boolean,
default: () => false,
},
},
2024-12-31 17:49:45 +08:00
components: {
UploadModel,
},
2024-12-30 18:07:53 +08:00
data() {
return {
// 新增或修改接口
addOrEditForm: {
deptName: '',
deptAbbreviation: '',
remark: '',
password: '',
logo: '',
nickName: '',
phonenumber: '',
userName: '',
orderNum: 200,
2025-01-03 09:43:29 +08:00
fileList: [],
2024-12-31 17:49:45 +08:00
roles: '系统管理员',
},
addOrEditFormRef: {
deptName: [
{
required: true,
message: '请输入公司名称',
trigger: 'blur',
},
],
deptAbbreviation: [
{
required: true,
message: '请输入公司简称',
trigger: 'blur',
},
],
remark: [
{
required: true,
message: '请输入公司概述',
trigger: 'blur',
},
],
password: [
{
required: true,
message: '请输入默认密码',
trigger: 'blur',
},
],
logo: [
{
required: true,
message: '请上传logo',
trigger: 'blur',
},
],
nickName: [
{
required: true,
message: '请输入管理员姓名',
trigger: 'blur',
},
],
phonenumber: [
{
required: true,
message: '请输入手机号码',
trigger: 'blur',
},
{
pattern: /^1[3456789]\d{9}$/,
message: '请输入正确的手机号码',
trigger: 'blur',
},
],
roles: [
{
required: true,
message: '请输入角色',
trigger: 'blur',
},
],
2024-12-30 18:07:53 +08:00
},
}
},
computed: {
dialogVisible: {
get() {
return this.formDialogVisible
},
},
2024-12-31 17:49:45 +08:00
dialogTitle: {
get() {
if (this.formType === 1) return '公司详情'
if (this.formType === 2) return '公司编辑'
if (this.formType === 3) return '公司注册'
},
},
2024-12-30 18:07:53 +08:00
},
methods: {
handleClose() {
this.$emit('update:formDialogVisible', false)
},
async onSubmitForm() {
2024-12-31 17:49:45 +08:00
this.addOrEditForm.userName = this.addOrEditForm.phonenumber
2024-12-30 18:07:53 +08:00
const res = await addCompanyAPI(this.addOrEditForm)
if (res.code === 200) {
this.$modal.msgSuccess('新增成功')
}
this.$emit('update:formDialogVisible', false)
2024-12-31 17:49:45 +08:00
this.$emit('updateTableList')
2024-12-30 18:07:53 +08:00
},
},
2024-12-31 17:49:45 +08:00
mounted() {
this.getConfigKey('sys.user.initPassword').then((res) => {
this.addOrEditForm.password = res.msg
})
},
2024-12-30 18:07:53 +08:00
watch: {
formDialogVisible: {
handler(newValue) {
if (!newValue) {
this.$refs.addOrEditFormRef.resetFields()
}
},
deep: true,
},
},
}
</script>
<style lang="scss" scoped>
::v-deep .handle .el-form-item__content {
text-align: right;
}
2024-12-31 17:49:45 +08:00
::v-deep .el-dialog {
display: flex !important;
flex-direction: column !important;
margin: 0 !important;
position: absolute !important;
top: 50% !important;
left: 50% !important;
transform: translate(-50%, -50%) !important;
max-height: 100vh !important;
.el-dialog__body {
flex: 1;
overflow-y: scroll !important;
.el-table__header-wrapper .el-checkbox {
display: none !important;
}
}
.dialog-content {
padding: 20px;
}
}
.upload-container {
display: flex;
align-items: center;
& div:last-child {
font-size: 13px;
padding-left: 20px;
line-height: 2.2;
a {
color: #1890ff;
}
}
}
2024-12-30 18:07:53 +08:00
</style>