|
@@ -1,67 +1,58 @@
|
|
|
<template>
|
|
|
<div class="add-org">
|
|
|
- <div class="add-org-container">
|
|
|
- <el-form ref="form" :model="form" :rules="orgRules" label-position="left" label-width="120px">
|
|
|
- <el-form-item prop="logo" label="LOGO">
|
|
|
- <el-upload
|
|
|
- action="no"
|
|
|
- class="avatar-uploader"
|
|
|
- :http-request="upload"
|
|
|
- :before-upload="beforeUpload"
|
|
|
- :show-file-list="false"
|
|
|
- accept="image/*"
|
|
|
- >
|
|
|
- <img v-if="form.imageUrl" :src="form.imageUrl" class="avatar" />
|
|
|
- <i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
|
|
- </el-upload>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="机构名称" prop="name">
|
|
|
- <el-input ref="name" v-model="form.name" type="text" placeholder="请输入机构名称" />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="机构介绍">
|
|
|
- <el-input
|
|
|
- v-model="form.intro"
|
|
|
- type="textarea"
|
|
|
- rows="5"
|
|
|
- resize="none"
|
|
|
- placeholder="请输入机构简介"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="管理员用户名" prop="admin_user_name">
|
|
|
- <el-input
|
|
|
- ref="admin_user_name"
|
|
|
- v-model="form.admin_user_name"
|
|
|
- type="text"
|
|
|
- placeholder="请输入管理员用户名"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="管理员密码" prop="admin_user_password">
|
|
|
- <el-input
|
|
|
- ref="admin_user_password"
|
|
|
- v-model="form.admin_user_password"
|
|
|
- type="password"
|
|
|
- placeholder="输入管理员密码"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="确认密码" prop="confirm_password">
|
|
|
- <el-input
|
|
|
- ref="confirm_password"
|
|
|
- v-model="form.confirm_password"
|
|
|
- type="password"
|
|
|
- placeholder="请确认密码"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item>
|
|
|
- <el-button class="add-button" @click="addOrg">创建</el-button>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
+ <main class="add-org-container">
|
|
|
+ <div class="org-form">
|
|
|
+ <el-form ref="form" :model="form" :rules="orgRules" label-position="left" label-width="120px">
|
|
|
+ <el-form-item label="机构名称" prop="name">
|
|
|
+ <el-input ref="name" v-model="form.name" type="text" placeholder="请输入机构名称" />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="机构介绍">
|
|
|
+ <el-input v-model="form.intro" type="textarea" rows="5" resize="none" placeholder="请输入机构简介" />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="管理员用户名" prop="admin_user_name">
|
|
|
+ <el-input
|
|
|
+ ref="admin_user_name"
|
|
|
+ v-model="form.admin_user_name"
|
|
|
+ type="text"
|
|
|
+ placeholder="请输入管理员用户名"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="管理员密码" prop="admin_user_password">
|
|
|
+ <el-input
|
|
|
+ ref="admin_user_password"
|
|
|
+ v-model="form.admin_user_password"
|
|
|
+ type="password"
|
|
|
+ placeholder="输入管理员密码"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="确认密码" prop="confirm_password">
|
|
|
+ <el-input ref="confirm_password" v-model="form.confirm_password" type="password" placeholder="请确认密码" />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" class="add-button" @click="addOrg">创建</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="org-image">
|
|
|
+ <el-upload
|
|
|
+ action="no"
|
|
|
+ class="avatar-uploader"
|
|
|
+ :http-request="upload"
|
|
|
+ :before-upload="beforeUpload"
|
|
|
+ :show-file-list="false"
|
|
|
+ accept="image/*"
|
|
|
+ >
|
|
|
+ <img v-if="form.imageUrl" :src="form.imageUrl" class="avatar" />
|
|
|
+ <i v-else class="el-icon-plus avatar-uploader-icon" />
|
|
|
+ </el-upload>
|
|
|
+ </div>
|
|
|
+ </main>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -71,22 +62,6 @@ import { addOrg } from '@/api/org';
|
|
|
|
|
|
export default {
|
|
|
data() {
|
|
|
- const validatorName = (rule, value, callback) => {
|
|
|
- if (!value) {
|
|
|
- callback(new Error('机构名称不能为空!'));
|
|
|
- } else {
|
|
|
- callback();
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
- const validatorUserName = (rule, value, callback) => {
|
|
|
- if (!value) {
|
|
|
- callback(new Error('管理员用户名不能为空!'));
|
|
|
- } else {
|
|
|
- callback();
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
const validateUserPassword = (rule, value, callback) => {
|
|
|
if (value.length < 6) {
|
|
|
callback(new Error('管理员密码必须大于六位!'));
|
|
@@ -96,9 +71,8 @@ export default {
|
|
|
};
|
|
|
|
|
|
const validateConfirmPassword = (rule, value, callback) => {
|
|
|
- console.log(this.form.admin_user_password);
|
|
|
if (this.form.admin_user_password !== value) {
|
|
|
- callback(new Error('上下密码不一致!'));
|
|
|
+ callback(new Error('管理员密码与确认密码不一致!'));
|
|
|
} else {
|
|
|
callback();
|
|
|
}
|
|
@@ -115,10 +89,10 @@ export default {
|
|
|
confirm_password: ''
|
|
|
},
|
|
|
orgRules: {
|
|
|
- name: [{ require: true, trigger: 'blur', validator: validatorName }],
|
|
|
- admin_user_name: [{ require: true, trigger: 'blur', validator: validatorUserName }],
|
|
|
- admin_user_password: [{ require: true, trigger: 'blur', validator: validateUserPassword }],
|
|
|
- confirm_password: [{ require: true, trigger: 'blur', validator: validateConfirmPassword }]
|
|
|
+ name: [{ required: true, message: '机构名称不能为空' }],
|
|
|
+ admin_user_name: [{ required: true, message: '管理员用户名不能为空!' }],
|
|
|
+ admin_user_password: [{ required: true, validator: validateUserPassword }],
|
|
|
+ confirm_password: [{ required: true, validator: validateConfirmPassword }]
|
|
|
}
|
|
|
};
|
|
|
},
|
|
@@ -131,8 +105,7 @@ export default {
|
|
|
return isImage;
|
|
|
},
|
|
|
upload(file) {
|
|
|
- fileUpload('Open', file).then(response => {
|
|
|
- const { file_info_list } = response;
|
|
|
+ fileUpload('Open', file).then(({ file_info_list }) => {
|
|
|
if (file_info_list.length > 0) {
|
|
|
const { file_url, file_id } = file_info_list[0];
|
|
|
this.form.imageUrl = file_url;
|
|
@@ -143,12 +116,9 @@ export default {
|
|
|
addOrg() {
|
|
|
this.$refs.form.validate(valid => {
|
|
|
if (valid) {
|
|
|
- addOrg(this.form).then(response => {
|
|
|
- console.log(response);
|
|
|
- if (response.status === 1) {
|
|
|
- this.$message.success('创建课程成功!');
|
|
|
- this.$router.push('/org_manager');
|
|
|
- }
|
|
|
+ addOrg(this.form).then(() => {
|
|
|
+ this.$message.success('创建课程成功!');
|
|
|
+ this.$router.push('/org_manager');
|
|
|
});
|
|
|
} else {
|
|
|
return false;
|
|
@@ -160,7 +130,8 @@ export default {
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss">
|
|
|
-@import '~@/styles/mixin.scss';
|
|
|
+@import '~@/styles/mixin';
|
|
|
+$avatar-width: 310px;
|
|
|
|
|
|
.add-org {
|
|
|
@include container;
|
|
@@ -168,59 +139,56 @@ export default {
|
|
|
padding: 44px 0 0;
|
|
|
|
|
|
&-container {
|
|
|
+ display: flex;
|
|
|
width: 100%;
|
|
|
- height: 700px;
|
|
|
padding: 48px 64px;
|
|
|
background-color: #fff;
|
|
|
border-radius: 8px;
|
|
|
|
|
|
- .el-input,
|
|
|
- .el-textarea {
|
|
|
- width: 600px;
|
|
|
+ .org-form {
|
|
|
+ flex: 7;
|
|
|
+ margin-right: 12px;
|
|
|
+
|
|
|
+ .add-button {
|
|
|
+ width: 124px;
|
|
|
+ height: 40px;
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 700;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- .avatar-uploader {
|
|
|
- display: inline-block;
|
|
|
+ .org-image {
|
|
|
+ flex: 3;
|
|
|
|
|
|
- & .el-upload {
|
|
|
- border: 1px dashed #d9d9d9;
|
|
|
- border-radius: 6px;
|
|
|
- cursor: pointer;
|
|
|
- position: relative;
|
|
|
- overflow: hidden;
|
|
|
+ .avatar-uploader {
|
|
|
+ display: inline-block;
|
|
|
|
|
|
- &:hover {
|
|
|
- border-color: #409eff;
|
|
|
- }
|
|
|
- }
|
|
|
+ .el-upload {
|
|
|
+ position: relative;
|
|
|
+ overflow: hidden;
|
|
|
+ cursor: pointer;
|
|
|
+ border: 1px dashed #d9d9d9;
|
|
|
+ border-radius: 6px;
|
|
|
|
|
|
- &-icon {
|
|
|
- font-size: 28px;
|
|
|
- color: #8c939d;
|
|
|
- width: 90px;
|
|
|
- height: 90px;
|
|
|
- line-height: 90px;
|
|
|
- text-align: center;
|
|
|
- }
|
|
|
+ &:hover {
|
|
|
+ border-color: #409eff;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- & .avatar {
|
|
|
- width: 90px;
|
|
|
- height: 90px;
|
|
|
- display: block;
|
|
|
- }
|
|
|
- }
|
|
|
+ &-icon {
|
|
|
+ width: $avatar-width;
|
|
|
+ height: $avatar-width;
|
|
|
+ font-size: 28px;
|
|
|
+ line-height: $avatar-width;
|
|
|
+ color: #8c939d;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
|
|
|
- .add-button {
|
|
|
- width: 124px;
|
|
|
- font-size: 16px;
|
|
|
- height: 40px;
|
|
|
- font-weight: 700;
|
|
|
- color: #fff;
|
|
|
- background-color: #f90;
|
|
|
-
|
|
|
- &:hover {
|
|
|
- color: #efefef;
|
|
|
- background-color: #f19100;
|
|
|
+ .avatar {
|
|
|
+ display: block;
|
|
|
+ width: $avatar-width;
|
|
|
+ height: $avatar-width;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|