<template>
|
<el-dialog title="新增成员" :visible.sync="dialogVisible" @close="cancelFunc" :close-on-click-modal="false" :close-on-press-escape="false" width="30%">
|
<el-form ref="form" :model="formData">
|
<el-form-item label="选择用户" prop="user_id" :label-width="formLabelWidth" :rules="[{required: true,message: '请选择用户'}]">
|
<el-row>
|
<el-button @click="selectUser" icon="el-icon-plus">选择用户</el-button>
|
<div v-if="formData.user_id!=''" class="img">
|
<img :src="user_info.avatarUrl" width="100" height="100" />
|
</div>
|
</el-row>
|
</el-form-item>
|
<el-form-item label="姓名" :label-width="formLabelWidth" prop="real_name" :rules="[{required: true,message: '请输入真实姓名'}]">
|
<el-input type="text" v-model="formData.real_name" autocomplete="off"></el-input>
|
</el-form-item>
|
<el-form-item label="手机号" :label-width="formLabelWidth" prop="mobile" :rules="[{required: true,message: '请输入手机号'}]">
|
<el-input type="text" v-model="formData.mobile" autocomplete="off"></el-input>
|
</el-form-item>
|
<el-form-item label="成员身份" prop="position_id" :label-width="formLabelWidth" :rules="[{required: true,message: '请选择成员身份'}]">
|
<el-select v-model="formData.position_id" placeholder="-请选择成员身份">
|
<el-option v-for="(item,index) in positionList" :key="index" :label="item.name" :value="item.position_id"></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="所属企业" prop="shop_supplier_id" :label-width="formLabelWidth" :rules="[{required: true,message: '请选择企业'}]">
|
<el-row>
|
<el-button @click="selectSupplier" icon="el-icon-plus">选择企业</el-button>
|
<div v-if="formData.shop_supplier_id!=''" class="mt10">
|
<el-tag>{{ supplier_name }}</el-tag>
|
</div>
|
</el-row>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click="cancelFunc">取 消</el-button>
|
<el-button type="primary" @click="confirmFunc">确 定</el-button>
|
</div>
|
<!--选择用户-->
|
<GetUser :is_open="open_getuser" @close="closeGetuserFunc"></GetUser>
|
<!--选择商户-->
|
<GetSupplier :open="open_supplier" @close="closeSupplierFunc"></GetSupplier>
|
</el-dialog>
|
</template>
|
|
<script>
|
import BranchApi from '@/api/branch.js';
|
import GetUser from '@/components/user/GetUser.vue';
|
import GetSupplier from '@/components/supplier/Supplier.vue';
|
export default {
|
components: {
|
GetUser,
|
GetSupplier
|
},
|
data() {
|
return {
|
/*左边长度*/
|
formLabelWidth: '100px',
|
/*是否显示*/
|
dialogVisible: false,
|
/*表单数据模型*/
|
formData: {
|
user_id: '',
|
real_name: '',
|
mobile: '',
|
branch_id: '',
|
position_id: '',
|
shop_supplier_id: '', // 所属企业
|
},
|
open_getuser: false,
|
user_info: [],
|
open_supplier: false,
|
supplier_name: '',
|
};
|
},
|
props: ['open_add', 'positionList'],
|
created() {
|
this.dialogVisible = this.open_add;
|
// this.getData();
|
},
|
methods: {
|
getData(){
|
let self = this;
|
BranchApi.positionList({}, true)
|
.then(res => {
|
self.positionList = res.data.positionList;
|
})
|
.catch(error => {});
|
},
|
/*新增成员*/
|
confirmFunc() {
|
let self = this;
|
let form = self.formData;
|
self.$refs.form.validate((valid) => {
|
if (valid) {
|
BranchApi.addMember(self.formData, true)
|
.then(data => {
|
self.$message({
|
message: '恭喜你,成员已添加成功',
|
type: 'success'
|
});
|
self.cancelFunc(true);
|
})
|
.catch(error => {});
|
}
|
});
|
},
|
|
/*打开选择会员弹出层*/
|
selectUser() {
|
this.open_getuser = true;
|
},
|
|
/*关闭获取用户弹窗*/
|
closeGetuserFunc(e) {
|
if (e.type != 'error') {
|
this.user_info = e.params[0];
|
this.formData.user_id = e.params[0].user_id;
|
this.formData.real_name = e.params[0].real_name;
|
this.formData.mobile = e.params[0].mobile;
|
}
|
this.open_getuser = false;
|
},
|
|
/*打开选择商户弹出层*/
|
selectSupplier() {
|
this.open_supplier = true;
|
},
|
|
/*关闭获取商户弹窗*/
|
closeSupplierFunc(e) {
|
if (e.type != 'error') {
|
this.formData.shop_supplier_id = e.params.shop_supplier_id;
|
this.supplier_name = e.params.name;
|
}
|
this.open_supplier = false;
|
},
|
|
/*关闭弹窗*/
|
cancelFunc(e) {
|
let type='cancel';
|
if(e){
|
type='success';
|
}
|
this.$emit('close', {
|
type:type
|
});
|
}
|
}
|
};
|
</script>
|
|
<style lang="scss" scoped>
|
.img {
|
margin-top: 10px;
|
}
|
</style>
|