完善后台用户添加和公司管理接口

This commit is contained in:
龙运模 2024-07-06 22:46:15 +08:00
parent 6e01d7c891
commit c2fe2415a4
5 changed files with 71 additions and 47 deletions

View File

@ -68,7 +68,6 @@
.el-header .right-panel > * + * {margin-left:10px;}
.el-footer {background: #fff;border-top: 1px solid var(--el-border-color-light);padding:13px 15px;}
.el-main {padding:10px;width: 100%;height: 100%;box-sizing: border-box;background: var(--el-color-white);border-radius: 4px;}
.noBorderRadius{border-radius: 0 !important;}
.el-main.nopadding {padding:0;background: #fff;display: flex;flex-direction: column;}
.el-main.nopadding .scTable{flex: 1;overflow: hidden;}

View File

@ -36,7 +36,7 @@
<el-table-column type="selection" align="center" width="40"></el-table-column>
<el-table-column type="index" align="center" label="序号" width="50"></el-table-column>
<template #logo="scope">
<el-image class="logoCell" :src="scope.row.logo"></el-image>
<el-image class="logoCell" :src="scope.row.logo" fit="contain"></el-image>
</template>
<template #active_status="scope">
<el-switch :size="size" v-model="scope.row.active_status" @change="changeSwitch($event, scope.row)" :loading="scope.row.$switch_status" :active-value="true" :inactive-value="false"></el-switch>
@ -141,7 +141,7 @@ export default {
//
async table_del(row){
const reqData = {id: row.id};
const res = await this.$API.demo.post.post(reqData);
const res = await this.$API.system.company.delete.post(reqData);
if(res.code == 200){
this.$refs.table.refresh()
this.$message.success("删除成功")
@ -195,6 +195,7 @@ export default {
.logoCell{
display: flex;
align-items: center;
height: 100%;
height: 20px;
margin: 0 auto;
}
</style>

View File

@ -1,5 +1,5 @@
<template>
<el-dialog :title="titleMap[mode]" v-model="visible" :width="580" destroy-on-close draggable @closed="$emit('closed')">
<el-dialog :title="titleMap[mode]" v-model="visible" :width="640" destroy-on-close draggable @closed="$emit('closed')">
<el-scrollbar height="460px" style="padding: 0 20px;">
<el-form :model="form" :rules="rules" ref="dialogForm" label-width="140px">
<div class="dialogBoxTitle"><span class="make"></span><span class="name">企业信息</span></div>
@ -32,13 +32,13 @@
<div class="dialogBoxTitle"><span class="make"></span><span class="name">企业管理员信息</span></div>
<el-form-item label="负责人/联系方式" prop="status">
<el-row justify="space-between">
<el-col :span="7">
<el-col :span="5">
<el-input v-model="form.owner" placeholder="公司负责人"></el-input>
</el-col>
<el-col :span="7">
<el-input v-model="form.mobile" placeholder="联系方式"></el-input>
</el-col>
<el-col :span="8">
<el-col :span="10">
<el-input v-model="form.email" placeholder="邮箱地址"></el-input>
</el-col>
</el-row>
@ -110,13 +110,14 @@ export default {
}
},
mounted() {
this.getCompanyTypeSelect(true);
},
methods: {
//
open(mode='add'){
this.mode = mode;
this.visible = true;
return this
},
//
@ -149,13 +150,29 @@ export default {
})
},
//
setData(data){
this.form.id = data.id
this.form.label = data.label
this.form.status = data.status
this.form.sort = data.sort
this.form.parentId = data.parentId
this.form.remark = data.remark
async setData(data) {
let params = {
id:data.id
}
const res = await this.$API.system.company.info.post(params);
if(res.code == 200){
this.form.id = res.data.id;
this.form.domain = res.data.domain;
this.form.company_type = res.data.company_type;
this.form.name = res.data.name;
this.form.full_name = res.data.full_name;
this.form.address = res.data.address;
this.form.email = res.data.platform_user && res.data.platform_user.email?res.data.platform_user.email:'';
this.form.logo = res.data.logo;
this.form.doc_url = [];
this.form.owner = res.data.owner;
this.form.mobile = res.data.mobile;
this.form.admin_access = res.data.admin_access;
this.form.password = res.data.password;
this.form.remark = res.data.remark;
this.form.accord = 1;
}
}
}
}

View File

@ -2,34 +2,35 @@
<el-dialog :title="titleMap[mode]" v-model="visible" :width="500" destroy-on-close @closed="$emit('closed')">
<el-form :model="form" :rules="rules" :disabled="mode=='show'" ref="dialogForm" label-width="100px" label-position="right">
<el-form-item label="头像" prop="avatar">
<sc-upload v-model="form.avatar" title="上传头像"></sc-upload>
<ossImgUpload @parentParams="parentParams" :url="form.avatar" />
</el-form-item>
<el-form-item label="登录账号" prop="userName">
<el-input v-model="form.userName" placeholder="用于登录系统" clearable></el-input>
<el-form-item label="登录账号" prop="login_name">
<el-input v-model="form.login_name" placeholder="请填写登录账号" clearable></el-input>
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入完整的真实姓名" clearable></el-input>
<el-input v-model="form.name" placeholder="请填写真实姓名" clearable></el-input>
</el-form-item>
<el-form-item label="联系电话" prop="mobile">
<el-input v-model="form.mobile" placeholder="请填写联系电话" clearable></el-input>
</el-form-item>
<el-form-item label="电子邮件" prop="email">
<el-input v-model="form.email" placeholder="请填写电子邮件" clearable></el-input>
</el-form-item>
<template v-if="mode=='add'">
<el-form-item label="登录密码" prop="password">
<el-input type="password" v-model="form.password" clearable show-password></el-input>
<el-input type="password" v-model="form.password" placeholder="请填写密码" clearable show-password></el-input>
</el-form-item>
<el-form-item label="确认密码" prop="password2">
<el-input type="password" v-model="form.password2" clearable show-password></el-input>
<el-form-item label="所属部门" prop="dept_id">
<el-cascader v-model="form.dept_id" :options="depts" :props="deptsProps" placeholder="请选择部门" clearable style="width: 100%;"></el-cascader>
</el-form-item>
</template>
<el-form-item label="所属部门" prop="dept">
<el-cascader v-model="form.dept" :options="depts" :props="deptsProps" clearable style="width: 100%;"></el-cascader>
</el-form-item>
<el-form-item label="所属角色" prop="group">
<el-select v-model="form.group" multiple filterable style="width: 100%">
<el-form-item label="所属角色" prop="role_ids">
<el-select v-model="form.role_ids" multiple filterable placeholder="请选择角色" style="width: 100%">
<el-option v-for="item in groups" :key="item.id" :label="item.label" :value="item.id"/>
</el-select>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="visible=false" > </el-button>
<el-button v-if="mode!='show'" type="primary" :loading="isSaveing" @click="submit()"> </el-button>
<el-button v-if="mode!='show'" type="primary" :loading="isSave" @click="submit()"> </el-button>
</template>
</el-dialog>
</template>
@ -46,22 +47,25 @@
show: '查看'
},
visible: false,
isSaveing: false,
isSave: false,
//
form: {
id:"",
userName: "",
login_name: "",
name:"",
mobile:"",
email:"",
avatar: "",
name: "",
dept: "",
group: []
password:"",
dept_id: "",
role_ids: []
},
//
rules: {
avatar:[
{required: true, message: '请上传头像'}
],
userName: [
login_name: [
{required: true, message: '请输入登录账号'}
],
name: [
@ -103,8 +107,10 @@
depts: [],
deptsProps: {
value: "id",
checkStrictly: true
checkStrictly: false,
emitPath:false
}
// checkStrictly: false,
}
},
mounted() {
@ -120,26 +126,27 @@
},
//
async getGroup(){
var res = await this.$API.system.role.list.get();
const res = await this.$API.system.role.list.get();
this.groups = res.data.rows;
},
async getDept(){
var res = await this.$API.system.dept.list.get();
const res = await this.$API.system.dept.active.post();
this.depts = res.data;
},
parentParams(item){
this.form.avatar = item;
},
//
submit(){
this.$refs.dialogForm.validate(async (valid) => {
if (valid) {
this.isSaveing = true;
var res = await this.$API.demo.post.post(this.form);
this.isSaveing = false;
this.isSave = true;
const res = await this.$API.system.user.add.post(this.form);
this.isSave = false;
if(res.code == 200){
this.$emit('success', this.form, this.mode)
this.visible = false;
this.$message.success("操作成功")
}else{
this.$alert(res.message, "提示", {type: 'error'})
}
}else{
return false;

View File

@ -136,5 +136,5 @@
}
</script>
<style scoped lang="scss">
.noBorderRadius{border-radius: 0 !important;}
</style>