|
@@ -1,7 +1,18 @@
|
|
|
<template>
|
|
|
- <div>
|
|
|
- <p class="form_item_title">人员信息:</p>
|
|
|
- <el-form ref="form" :model="personalForm" :rules="rules" label-position="left" label-width="100px" :class="model == 'detail'?'pointer_events_none':''">
|
|
|
+ <div class="message">
|
|
|
+ <div class="form_item_title">
|
|
|
+ 个人信息:
|
|
|
+ <div>
|
|
|
+ <el-button v-if="!personalForm.edit" type="text" @click="edit(1)">编辑</el-button>
|
|
|
+ <template v-else>
|
|
|
+ <div>
|
|
|
+ <el-button type="text" :loading="personalForm.btnLoading" @click="savePersonalForm">保存</el-button>
|
|
|
+ <el-button type="text" @click="cancel(1)">取消</el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-form ref="personalForm" :model="personalForm" :rules="rule1" label-position="left" label-width="100px" :class="personalForm.edit != true?'pointer_events_none':''">
|
|
|
<el-row :gutter="24">
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="姓名:" prop="name">
|
|
@@ -12,17 +23,18 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="邮箱:" prop="email">
|
|
|
+ <el-form-item label="状态:" prop="state">
|
|
|
<el-input
|
|
|
- v-model="personalForm.email"
|
|
|
- placeholder="邮箱"
|
|
|
+ :value="personalForm.state==1?'启用':'禁用'"
|
|
|
+ readonly
|
|
|
+ placeholder="状态"
|
|
|
></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="手机号:" prop="mobile">
|
|
|
<el-input
|
|
|
- v-model="form.mobile"
|
|
|
+ v-model="personalForm.mobile"
|
|
|
placeholder="手机号"
|
|
|
maxlength="11"
|
|
|
></el-input>
|
|
@@ -31,7 +43,7 @@
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="邮箱:" prop="email">
|
|
|
<el-input
|
|
|
- v-model="form.email"
|
|
|
+ v-model="personalForm.email"
|
|
|
placeholder="邮箱"
|
|
|
></el-input>
|
|
|
</el-form-item>
|
|
@@ -39,7 +51,7 @@
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="账号:" prop="username">
|
|
|
<el-input
|
|
|
- v-model="form.email"
|
|
|
+ v-model="personalForm.email"
|
|
|
placeholder="邮箱"
|
|
|
></el-input>
|
|
|
</el-form-item>
|
|
@@ -47,7 +59,8 @@
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="会员类型:" prop="username">
|
|
|
<el-input
|
|
|
- v-model="form.vipTypeName"
|
|
|
+ v-model="personalForm.vipTypeName"
|
|
|
+ readonly
|
|
|
placeholder="会员类型"
|
|
|
></el-input>
|
|
|
</el-form-item>
|
|
@@ -56,7 +69,8 @@
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="到期时间:" prop="expitrTime">
|
|
|
<el-input
|
|
|
- v-model="form.expitrTime"
|
|
|
+ v-model="personalForm.expitrTime"
|
|
|
+ readonly
|
|
|
placeholder="到期时间"
|
|
|
></el-input>
|
|
|
</el-form-item>
|
|
@@ -64,8 +78,9 @@
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="剩余天数:" prop="expitrTime">
|
|
|
<el-input
|
|
|
- :value="getRemainDays(form.expitrTime)"
|
|
|
- placeholder="到期时间"
|
|
|
+ :value="getRemainDays(personalForm.expitrTime)"
|
|
|
+ readonly
|
|
|
+ placeholder="剩余天数"
|
|
|
></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -73,8 +88,19 @@
|
|
|
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
- <p class="form_item_title">所属企业信息:</p>
|
|
|
- <el-form ref="form" :model="tenantForm" :rules="rules" label-position="left" label-width="100px" :class="model == 'detail'?'pointer_events_none':''">
|
|
|
+ <div class="form_item_title">
|
|
|
+ 所属企业信息:
|
|
|
+ <div>
|
|
|
+ <el-button v-if="!tenantForm.edit" type="text" @click="edit(2)">编辑</el-button>
|
|
|
+ <template v-else>
|
|
|
+ <div>
|
|
|
+ <el-button type="text" :loading="tenantForm.btnLoading" @click="saveTenantForm">保存</el-button>
|
|
|
+ <el-button type="text" @click="cancel(2)">取消</el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-form ref="tenantForm" :model="tenantForm" label-position="left" label-width="100px" :class="tenantForm.edit != true?'pointer_events_none':''">
|
|
|
<el-row :gutter="24">
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="名称:" prop="name">
|
|
@@ -86,21 +112,27 @@
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="类型:" prop="type">
|
|
|
- <el-select v-model="tenantForm.type" placeholder="企业类型">
|
|
|
+ <el-select v-model="tenantForm.type" placeholder="企业类型" style="width:100%">
|
|
|
<el-option v-for="item in tenantType" :key="item.dictChildValue" :label="item.dictChildLabel" :value="Number(item.dictChildValue)"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="状态:" prop="state">
|
|
|
- <el-select v-model="tenantForm.state" placeholder="企业类型">
|
|
|
- <el-option v-for="item in tenantType" :key="item.dictChildValue" :label="item.dictChildLabel" :value="Number(item.dictChildValue)"></el-option>
|
|
|
- </el-select>
|
|
|
+ <el-input
|
|
|
+ :value="tenantForm.state==1?'启用':'禁用'"
|
|
|
+ readonly
|
|
|
+ placeholder="状态"
|
|
|
+ ></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="可使用人数:" prop="number">
|
|
|
- <el-input-number v-model="tenantForm.number" size="small" controls-position="right" :min="0"></el-input-number>
|
|
|
+ <el-input
|
|
|
+ :value="tenantForm.number || 0"
|
|
|
+ readonly
|
|
|
+ placeholder="可使用人数"
|
|
|
+ ></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
@@ -129,8 +161,7 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
- <p class="form_item_title">版本信息:</p>
|
|
|
- <div style="border:1px solid white;padding:10px;margin:10px 0;border-radius:8px;height:300px">
|
|
|
+ <div style="border:1px solid white;padding:10px;margin:10px 0;border-radius:8px;height:300px" :class="tenantForm.edit != true?'pointer_events_none':''">
|
|
|
<vipTypeTable :tableData="tenantForm.vipTypes||[]"></vipTypeTable>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -151,13 +182,43 @@ export default {
|
|
|
data() {
|
|
|
return {
|
|
|
tenantForm:{},
|
|
|
- personalForm:{}
|
|
|
+ personalForm:{},
|
|
|
+ editMessage:{},
|
|
|
+ rule1:{
|
|
|
+ mobile: [
|
|
|
+ { required: true, message: "请输入手机号码", trigger: "blur" },
|
|
|
+ {
|
|
|
+ pattern:
|
|
|
+ /(^((\+86)|(86))?(1[3-9])\d{9}$)|(^(0\d{2,3})-?(\d{7,8})$)/,
|
|
|
+ message: "请输入正确的手机号码",
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ email: [
|
|
|
+ { required: false, message: "请输入邮箱", trigger: "blur" },
|
|
|
+ {
|
|
|
+ pattern:
|
|
|
+ /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9_\.\-])+\.)+([a-zA-Z0-9]{2,4})+$/,
|
|
|
+ message: "请输入正确的邮箱格式",
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ }
|
|
|
};
|
|
|
},
|
|
|
watch: {
|
|
|
-
|
|
|
+ personalId(){
|
|
|
+ this.getPersonalForm()
|
|
|
+ },
|
|
|
+ tenantId(){
|
|
|
+ this.getTenantForm()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ tenantType(){
|
|
|
+ return this.$store.state.admin.tenantType
|
|
|
+ }
|
|
|
},
|
|
|
- computed: {},
|
|
|
created() {},
|
|
|
mounted() {
|
|
|
this.init()
|
|
@@ -169,7 +230,7 @@ export default {
|
|
|
},
|
|
|
//获取租户信息
|
|
|
getTenantForm(){
|
|
|
- if(this.tenantId){
|
|
|
+ if(!this.tenantId){
|
|
|
return
|
|
|
}
|
|
|
var params = {
|
|
@@ -177,7 +238,7 @@ export default {
|
|
|
}
|
|
|
this.$api.queryQiaoBiTenant(params).then(response=>{
|
|
|
if(response.code == 200){
|
|
|
- var data = response.data
|
|
|
+ var data = response.data.records
|
|
|
if(data && data.length){
|
|
|
this.tenantForm = data[0]
|
|
|
}
|
|
@@ -187,17 +248,22 @@ export default {
|
|
|
},
|
|
|
//获取人员信息
|
|
|
getPersonalForm(){
|
|
|
- if(this.personalId){
|
|
|
+ if(!this.personalId){
|
|
|
return
|
|
|
}
|
|
|
var params = {
|
|
|
- id:this.personalId
|
|
|
+ id:this.personalId,
|
|
|
+ current:1,
|
|
|
+ size:1
|
|
|
}
|
|
|
this.$api.getPersonnelList(params).then(response=>{
|
|
|
if(response.code == 200){
|
|
|
var data = response.data
|
|
|
if(data && data.length){
|
|
|
this.personalForm = data[0]
|
|
|
+ if(!this.personalForm.vipTypes || this.personalForm.vipTypes.length == 0){
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}).catch(error=>{
|
|
@@ -227,8 +293,75 @@ export default {
|
|
|
}
|
|
|
return `剩余${remainDays}天`
|
|
|
},
|
|
|
+ //保存个人信息
|
|
|
+ savePersonalForm(){
|
|
|
+ this.$refs['personalForm'].validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ this.$set(this.personalForm,'btnLoading',true)
|
|
|
+ this.$api.editPersonnel(this.personalForm).then((response) => {
|
|
|
+ if(response.code == 200){
|
|
|
+ this.$message.success("保存成功");
|
|
|
+ this.$set(this.personalForm,'edit',false)
|
|
|
+ this.$set(this.personalForm,'btnLoading',false)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((error) => {
|
|
|
+ this.$set(this.personalForm,'btnLoading',false)
|
|
|
+ });
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ },
|
|
|
+ //保存所属企业信息
|
|
|
+ saveTenantForm(){
|
|
|
+ this.tenantForm.tenantId = this.tenantForm.id
|
|
|
+ this.$set(this.tenantForm,'btnLoading',true)
|
|
|
+ this.$api.updateTenantVip(this.tenantForm).then(response => {
|
|
|
+ if (response.code === 200) {
|
|
|
+ this.btnLoading = false
|
|
|
+ this.$message.success('保存成功');
|
|
|
+ this.$set(this.tenantForm,'edit',false)
|
|
|
+ this.$set(this.tenantForm,'btnLoading',false)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(error => {
|
|
|
+ this.$set(this.tenantForm,'btnLoading',false)
|
|
|
+ });
|
|
|
+ },
|
|
|
+ edit(type){
|
|
|
+ if(type == 1){
|
|
|
+ this.editMessage.personalForm = JSON.parse(JSON.stringify(this.personalForm))
|
|
|
+ this.$set(this.personalForm,'edit',true)
|
|
|
+ }
|
|
|
+ if(type == 2){
|
|
|
+ this.editMessage.tenantForm = JSON.parse(JSON.stringify(this.tenantForm))
|
|
|
+ this.$set(this.tenantForm,'edit',true)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ cancel(type){
|
|
|
+ if(type == 1){
|
|
|
+ this.personalForm = JSON.parse(JSON.stringify(this.editMessage.personalForm))
|
|
|
+ this.$set(this.personalForm,'edit',false)
|
|
|
+ }
|
|
|
+ if(type == 2){
|
|
|
+ this.tenantForm = JSON.parse(JSON.stringify(this.editMessage.tenantForm))
|
|
|
+ this.$set(this.tenantForm,'edit',false)
|
|
|
+ }
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
+.message{
|
|
|
+ width: 800px;
|
|
|
+ margin: 0px auto;
|
|
|
+}
|
|
|
+.form_item_title{
|
|
|
+ padding: 10px 0;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 16px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
</style>
|