|
@@ -10,7 +10,7 @@
|
|
<h3>{{id?'编辑机构':'创建机构'}}</h3>
|
|
<h3>{{id?'编辑机构':'创建机构'}}</h3>
|
|
<div class="btn-box">
|
|
<div class="btn-box">
|
|
<el-button size="small" @click="handleStep('-')" :disabled="stepIndex===0">上一步</el-button>
|
|
<el-button size="small" @click="handleStep('-')" :disabled="stepIndex===0">上一步</el-button>
|
|
- <el-button type="primary" size="small" @click="handleStep('+')" :disabled="stepIndex===2">下一步</el-button>
|
|
|
|
|
|
+ <el-button type="primary" size="small" @click="handleStep('+')" :disabled="stepIndex===2" v-loading="loading">下一步</el-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<el-steps :active="stepIndex" align-center>
|
|
<el-steps :active="stepIndex" align-center>
|
|
@@ -26,83 +26,85 @@
|
|
</el-steps>
|
|
</el-steps>
|
|
</div>
|
|
</div>
|
|
<div class="create-bottom">
|
|
<div class="create-bottom">
|
|
- <el-form :model="organizeForm" :rules="rulesOrganize" ref="organizeForm" label-width="100px" class="registerForm">
|
|
|
|
- <template v-if="stepIndex===0">
|
|
|
|
- <el-form-item label="机构名称" prop="name">
|
|
|
|
- <el-input v-model="organizeForm.name" placeholder="请输入机构名称"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="机构代码" prop="sn">
|
|
|
|
- <el-input v-model="organizeForm.sn" placeholder="请输入机构代码"></el-input>
|
|
|
|
- <p class="tips">4-8位英文或数字</p>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="机构类型" prop="orgType">
|
|
|
|
- <el-select v-model="organizeForm.orgType" placeholder="请选择">
|
|
|
|
- <el-option
|
|
|
|
- v-for="item in $orgType"
|
|
|
|
- :key="item.study_phase"
|
|
|
|
- :label="item.study_phase_name"
|
|
|
|
- :value="item.study_phase">
|
|
|
|
- </el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="所在地区" prop="selectedOptions">
|
|
|
|
- <el-cascader
|
|
|
|
- size="medium"
|
|
|
|
- :options="province_list"
|
|
|
|
- :props="props"
|
|
|
|
- v-model="organizeForm.selectedOptions"
|
|
|
|
- @change="handleCity">
|
|
|
|
- <template slot-scope="{ data }">
|
|
|
|
- <span>{{ data.name }}</span>
|
|
|
|
- </template>
|
|
|
|
- </el-cascader>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="人员上限" prop="personalCeil">
|
|
|
|
- <el-input-number v-model="organizeForm.personalCeil" @change="handleChange" :min="1" size="small" class="personal-ceil"></el-input-number>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="机构有效期" prop="validity">
|
|
|
|
- <el-date-picker
|
|
|
|
- v-model="organizeForm.validity"
|
|
|
|
- type="daterange"
|
|
|
|
- size="small"
|
|
|
|
- range-separator="-"
|
|
|
|
- start-placeholder="开始日期"
|
|
|
|
- end-placeholder="结束日期">
|
|
|
|
- </el-date-picker>
|
|
|
|
- </el-form-item>
|
|
|
|
- </template>
|
|
|
|
- <template v-if="stepIndex===1">
|
|
|
|
- <el-form-item label="用户名" prop="name">
|
|
|
|
- <el-input v-model="organizeForm.name" placeholder="请输入用户名"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="手机号" prop="phone">
|
|
|
|
- <el-input v-model="organizeForm.phone" autocomplete="off" placeholder="请输入完整手机号" >
|
|
|
|
- <template slot="prepend">+86</template>
|
|
|
|
- </el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="邮箱" prop="email">
|
|
|
|
- <el-input v-model="organizeForm.email" autocomplete="off" placeholder="请输入邮箱地址" >
|
|
|
|
- </el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="账号密码" prop="newPwd">
|
|
|
|
- <el-input v-model="organizeForm.newPwd" :type="newPwdFlag?'text':'password'" autocomplete="off" placeholder="请输入密码" >
|
|
|
|
- <i slot="suffix" class="el-icon-view show-icon" @click="changeIcon('newPwdFlag')" v-if="newPwdFlag"></i>
|
|
|
|
- <i slot="suffix" class="show-icon" @click="changeIcon('newPwdFlag')" v-else>
|
|
|
|
- <svg-icon icon-class="eye-invisible"></svg-icon>
|
|
|
|
- </i>
|
|
|
|
- </el-input>
|
|
|
|
- <p class="tips">不少于6位,且必须同时包含数字和大小写字母</p>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="再次输入" prop="confirmPwd">
|
|
|
|
- <el-input v-model="organizeForm.confirmPwd" :type="comfirmPwdFlag?'text':'password'" autocomplete="off" placeholder="请输入密码" >
|
|
|
|
- <i slot="suffix" class="el-icon-view show-icon" @click="changeIcon('comfirmPwdFlag')" v-if="comfirmPwdFlag"></i>
|
|
|
|
- <i slot="suffix" class="show-icon" @click="changeIcon('comfirmPwdFlag')" v-else>
|
|
|
|
- <svg-icon icon-class="eye-invisible"></svg-icon>
|
|
|
|
- </i>
|
|
|
|
- </el-input>
|
|
|
|
- <p class="tips">再次输入密码,两次输入保持一致</p>
|
|
|
|
- </el-form-item>
|
|
|
|
- </template>
|
|
|
|
|
|
+ <el-form :model="organizeForm" :rules="rulesOrganize" ref="organizeForm" label-width="100px" class="registerForm" key="organizeForm" v-if="stepIndex===0">
|
|
|
|
+ <el-form-item label="机构名称" prop="name">
|
|
|
|
+ <el-input v-model="organizeForm.name" placeholder="请输入机构名称" @blur="handleTrim('organizeForm','name')"></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="机构代码" prop="sn">
|
|
|
|
+ <el-input v-model="organizeForm.sn" placeholder="请输入机构代码" @blur="handleTrim('organizeForm','sn')"></el-input>
|
|
|
|
+ <p class="tips">4-8位英文或数字</p>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="机构类型" prop="orgType">
|
|
|
|
+ <el-select v-model="organizeForm.orgType" placeholder="请选择">
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="item in $orgType"
|
|
|
|
+ :key="item.study_phase"
|
|
|
|
+ :label="item.study_phase_name"
|
|
|
|
+ :value="item.study_phase">
|
|
|
|
+ </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="所在地区" prop="selectedOptions">
|
|
|
|
+ <!-- <el-cascader
|
|
|
|
+ size="medium"
|
|
|
|
+ :options="province_list"
|
|
|
|
+ :props="props"
|
|
|
|
+ v-model="organizeForm.selectedOptions"
|
|
|
|
+ @change="handleCity">
|
|
|
|
+ <template slot-scope="{ data }">
|
|
|
|
+ <span>{{ data.name }}</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-cascader> -->
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="人员上限" prop="personalCeil">
|
|
|
|
+ <el-input-number v-model="organizeForm.personalCeil" @change="handleChange" :min="1" size="small" class="personal-ceil"></el-input-number>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="机构有效期" prop="validity">
|
|
|
|
+ <el-date-picker
|
|
|
|
+ v-model="organizeForm.validity"
|
|
|
|
+ type="daterange"
|
|
|
|
+ size="small"
|
|
|
|
+ range-separator="-"
|
|
|
|
+ start-placeholder="开始日期"
|
|
|
|
+ end-placeholder="结束日期"
|
|
|
|
+ value-format="yyyy-MM-dd">
|
|
|
|
+ </el-date-picker>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ <el-form :model="managerForm" :rules="rulesManager" ref="managerForm" label-width="100px" class="registerForm" key="managerForm" v-if="stepIndex===1">
|
|
|
|
+ <el-form-item label="用户名" prop="name">
|
|
|
|
+ <el-input v-model="managerForm.name" placeholder="请输入用户名" @blur="handleTrim('managerForm','name')"></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="真实姓名" prop="realName">
|
|
|
|
+ <el-input v-model="managerForm.realName" placeholder="请输入真实姓名" @blur="handleTrim('managerForm','realName')"></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="手机号" prop="phone">
|
|
|
|
+ <el-input v-model="managerForm.phone" autocomplete="off" placeholder="请输入完整手机号" @blur="handleTrim('managerForm','phone')" >
|
|
|
|
+ <template slot="prepend">+86</template>
|
|
|
|
+ </el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="邮箱" prop="email">
|
|
|
|
+ <el-input v-model="managerForm.email" autocomplete="off" placeholder="请输入邮箱地址" @blur="handleTrim('managerForm','email')" >
|
|
|
|
+ </el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="账号密码" prop="newPwd">
|
|
|
|
+ <el-input v-model="managerForm.newPwd" :type="newPwdFlag?'text':'password'" autocomplete="off" placeholder="请输入密码" @blur="handleTrim('managerForm','newPwd')" >
|
|
|
|
+ <i slot="suffix" class="el-icon-view show-icon" @click="changeIcon('newPwdFlag')" v-if="newPwdFlag"></i>
|
|
|
|
+ <i slot="suffix" class="show-icon" @click="changeIcon('newPwdFlag')" v-else>
|
|
|
|
+ <svg-icon icon-class="eye-invisible"></svg-icon>
|
|
|
|
+ </i>
|
|
|
|
+ </el-input>
|
|
|
|
+ <p class="tips">不少于6位,且必须同时包含数字和大小写字母</p>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="再次输入" prop="confirmPwd">
|
|
|
|
+ <el-input v-model="managerForm.confirmPwd" :type="comfirmPwdFlag?'text':'password'" autocomplete="off" placeholder="请输入密码" @blur="handleTrim('managerForm','confirmPwd')" >
|
|
|
|
+ <i slot="suffix" class="el-icon-view show-icon" @click="changeIcon('comfirmPwdFlag')" v-if="comfirmPwdFlag"></i>
|
|
|
|
+ <i slot="suffix" class="show-icon" @click="changeIcon('comfirmPwdFlag')" v-else>
|
|
|
|
+ <svg-icon icon-class="eye-invisible"></svg-icon>
|
|
|
|
+ </i>
|
|
|
|
+ </el-input>
|
|
|
|
+ <p class="tips">再次输入密码,两次输入保持一致</p>
|
|
|
|
+ </el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
<div v-if="stepIndex===2">
|
|
<div v-if="stepIndex===2">
|
|
<el-result icon="success" :subTitle="id?'机构编辑成功':'机构创建成功'">
|
|
<el-result icon="success" :subTitle="id?'机构编辑成功':'机构创建成功'">
|
|
@@ -157,7 +159,7 @@ export default {
|
|
if (result) {
|
|
if (result) {
|
|
callback();
|
|
callback();
|
|
} else {
|
|
} else {
|
|
- callback(new Error('密码只能包含数字和字母'));
|
|
|
|
|
|
+ callback(new Error('密码必须同时包含数字和大小写字母'));
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
@@ -165,7 +167,7 @@ export default {
|
|
const validatePass2 = (rule, value, callback) => {
|
|
const validatePass2 = (rule, value, callback) => {
|
|
if (value === '') {
|
|
if (value === '') {
|
|
callback(new Error('请再次输入密码'));
|
|
callback(new Error('请再次输入密码'));
|
|
- } else if (value !== this.organizeForm.newPwd) {
|
|
|
|
|
|
+ } else if (value !== this.managerForm.newPwd) {
|
|
callback(new Error('两次输入密码不一致!'));
|
|
callback(new Error('两次输入密码不一致!'));
|
|
} else {
|
|
} else {
|
|
callback();
|
|
callback();
|
|
@@ -221,10 +223,13 @@ export default {
|
|
name: '',
|
|
name: '',
|
|
sn: '',
|
|
sn: '',
|
|
orgType: '',
|
|
orgType: '',
|
|
- selectedOptions: [],
|
|
|
|
|
|
+ selectedOptions: '0409',
|
|
personalCeil: 50,
|
|
personalCeil: 50,
|
|
- validity:'',
|
|
|
|
|
|
+ validity:''
|
|
|
|
+ },
|
|
|
|
+ managerForm:{
|
|
name: '',
|
|
name: '',
|
|
|
|
+ realName: '',
|
|
phone:'',
|
|
phone:'',
|
|
email:'',
|
|
email:'',
|
|
newPwd:'', // 密码
|
|
newPwd:'', // 密码
|
|
@@ -241,15 +246,20 @@ export default {
|
|
orgType: [
|
|
orgType: [
|
|
{ required: true, message: '请选择机构类型', trigger: 'change' }
|
|
{ required: true, message: '请选择机构类型', trigger: 'change' }
|
|
],
|
|
],
|
|
|
|
+ // selectedOptions: [
|
|
|
|
+ // { type: 'array', required: true, message: '请选择所在地区', trigger: 'change' }
|
|
|
|
+ // ],
|
|
selectedOptions: [
|
|
selectedOptions: [
|
|
- { type: 'array', required: true, message: '请选择所在地区', trigger: 'change' }
|
|
|
|
|
|
+ { required: true, message: '请选择所在地区', trigger: 'change' }
|
|
],
|
|
],
|
|
personalCeil:[
|
|
personalCeil:[
|
|
{ required: true, message: '请输入人员上限', trigger: 'blur' }
|
|
{ required: true, message: '请输入人员上限', trigger: 'blur' }
|
|
],
|
|
],
|
|
validity:[
|
|
validity:[
|
|
{ required: true, message: '请选择机构有效期', trigger: 'blur' }
|
|
{ required: true, message: '请选择机构有效期', trigger: 'blur' }
|
|
- ],
|
|
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ rulesManager:{
|
|
name:[
|
|
name:[
|
|
{ required: true, message: '请输入用户名', trigger: 'blur' },
|
|
{ required: true, message: '请输入用户名', trigger: 'blur' },
|
|
{ max: 10, message: '用户名最多10位', trigger:'change' },
|
|
{ max: 10, message: '用户名最多10位', trigger:'change' },
|
|
@@ -285,7 +295,8 @@ export default {
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
+ },
|
|
|
|
+ loading: false
|
|
}
|
|
}
|
|
},
|
|
},
|
|
//计算属性 类似于data概念
|
|
//计算属性 类似于data概念
|
|
@@ -300,10 +311,26 @@ export default {
|
|
methods: {
|
|
methods: {
|
|
// 上一步下一步
|
|
// 上一步下一步
|
|
handleStep(type){
|
|
handleStep(type){
|
|
- if(type=='-'){
|
|
|
|
|
|
+ if(type=='-'){
|
|
if(this.stepIndex>0) this.stepIndex--
|
|
if(this.stepIndex>0) this.stepIndex--
|
|
}else{
|
|
}else{
|
|
- if(this.stepIndex<2) this.stepIndex++
|
|
|
|
|
|
+ if(this.stepIndex===0){
|
|
|
|
+ this.$refs['organizeForm'].validate((valid) => {
|
|
|
|
+ if (!valid) {
|
|
|
|
+ return false;
|
|
|
|
+ }else{
|
|
|
|
+ this.stepIndex++
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }else if(this.stepIndex===1){
|
|
|
|
+ this.$refs['managerForm'].validate((valid) => {
|
|
|
|
+ if (!valid) {
|
|
|
|
+ return false;
|
|
|
|
+ }else{
|
|
|
|
+ this.handleSubmit()
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
}
|
|
}
|
|
},
|
|
},
|
|
// 级联选择器
|
|
// 级联选择器
|
|
@@ -346,6 +373,43 @@ export default {
|
|
.catch(() => {
|
|
.catch(() => {
|
|
this.loading = false
|
|
this.loading = false
|
|
});
|
|
});
|
|
|
|
+ },
|
|
|
|
+ // 提交
|
|
|
|
+ handleSubmit(){
|
|
|
|
+ this.loading = true
|
|
|
|
+ let MethodName = "/OrgServer/Manager/OrgManager/AddOrg";
|
|
|
|
+ let data = {
|
|
|
|
+ org:{
|
|
|
|
+ name: this.organizeForm.name,
|
|
|
|
+ sn: this.organizeForm.sn,
|
|
|
|
+ type: this.organizeForm.orgType,
|
|
|
|
+ city_id: this.organizeForm.selectedOptions,
|
|
|
|
+ max_person_count: this.organizeForm.personalCeil*1,
|
|
|
|
+ effective_date_begin: this.organizeForm.validity[0],
|
|
|
|
+ effective_date_end: this.organizeForm.validity[1]
|
|
|
|
+ },
|
|
|
|
+ manager:{
|
|
|
|
+ user_name: this.managerForm.name,
|
|
|
|
+ real_name: this.managerForm.real_name,
|
|
|
|
+ phone: this.managerForm.phone,
|
|
|
|
+ email: this.managerForm.email,
|
|
|
|
+ password: this.managerForm.newPwd
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ getLogin(MethodName, data)
|
|
|
|
+ .then((res) => {
|
|
|
|
+ this.loading = false
|
|
|
|
+ if(res.status===1){
|
|
|
|
+ this.stepIndex++
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ .catch(() => {
|
|
|
|
+ this.loading = false
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ // 去掉前后空格
|
|
|
|
+ handleTrim(form,fild){
|
|
|
|
+ this[form][fild] = this[form][fild].trim()
|
|
}
|
|
}
|
|
},
|
|
},
|
|
//生命周期 - 创建完成(可以访问当前this实例)
|
|
//生命周期 - 创建完成(可以访问当前this实例)
|