|
|
@@ -5,83 +5,92 @@
|
|
|
<span>编辑资料</span>
|
|
|
</div>
|
|
|
</el-row>
|
|
|
- <div class="avatar">
|
|
|
+ <div class="avatar-wrapper">
|
|
|
<!-- <img :src="avatar" /> -->
|
|
|
<el-upload
|
|
|
- class="avatar"
|
|
|
:action="uploadUrl"
|
|
|
:show-file-list="false"
|
|
|
:on-success="handleAvatarSuccess"
|
|
|
:before-upload="beforeAvatarUpload"
|
|
|
+ :on-error="handleAvatarError"
|
|
|
+ accept="image/*"
|
|
|
+ v-loading="avatarUploading"
|
|
|
>
|
|
|
<img v-if="avatar" :src="avatar" />
|
|
|
<i v-else class="avatar"></i>
|
|
|
+ <div class="edit_avatar">点击头像修改</div>
|
|
|
</el-upload>
|
|
|
- <div class="edit_avatar">点击头像修改</div>
|
|
|
</div>
|
|
|
- <el-form ref="form" :model="form" label-width="150px" :rules="rules" style="max-width: 450px;" size="small">
|
|
|
- <el-form-item label="id" v-show="false">
|
|
|
- <el-input v-model="form.id"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="企业名称">
|
|
|
+ <el-form ref="form" :model="form" label-width="150px" :rules="rules" style="max-width: 600px;" size="small">
|
|
|
+ <el-form-item label="企业名称" prop="orgName">
|
|
|
<el-input v-model="form.orgName" placeholder="请输入单位名称"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="单位性质">
|
|
|
- <el-select v-model="form.orgType" placeholder="请选择">
|
|
|
- <el-option label="国家行政机构" value="1"></el-option>
|
|
|
- <el-option label="公私合作企业" value="2"></el-option>
|
|
|
- <el-option label="中外合资企业" value="3"></el-option>
|
|
|
- </el-select>
|
|
|
+ <el-form-item label="单位性质" prop="orgType">
|
|
|
+ <auto-input
|
|
|
+ v-model="form.orgType"
|
|
|
+ placeholder="请输入单位性质"
|
|
|
+ :suggestions="[
|
|
|
+ '国家行政机构',
|
|
|
+ '公私合作企业',
|
|
|
+ '中外合资企业',
|
|
|
+ '国有企业',
|
|
|
+ '集体企业',
|
|
|
+ '股份合作企业',
|
|
|
+ '联营企业',
|
|
|
+ '有限责任公司',
|
|
|
+ '股份有限公司',
|
|
|
+ '私营企业',
|
|
|
+ '个体工商户',
|
|
|
+ '其他'
|
|
|
+ ]"
|
|
|
+ ></auto-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="上市公司" prop="publicCompany">
|
|
|
<el-radio v-model="form.publicCompany" :label="true">是</el-radio>
|
|
|
<el-radio v-model="form.publicCompany" :label="false">否</el-radio>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="所属行业">
|
|
|
- <el-select v-model="form.industry" placeholder="请选择">
|
|
|
- <el-option label="水利水电" value="1"></el-option>
|
|
|
- <el-option label="信息产业" value="2"></el-option>
|
|
|
- </el-select>
|
|
|
+ <el-form-item label="所属行业" prop="industry">
|
|
|
+ <el-input v-model="form.industry" placeholder="请输入所属行业"> </el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="所在地">
|
|
|
- <el-select placeholder="省" style="width:120px;margin-right:10px" v-model="shen" @change="Toshen()">
|
|
|
+ <el-form-item label="所在地" prop="address">
|
|
|
+ <el-select placeholder="省" style="width:125px;margin-right:10px" v-model="shen" @change="Toshen()">
|
|
|
<el-option v-for="item in province" :label="item.name" :value="item.code" :key="item.code" />
|
|
|
</el-select>
|
|
|
- <el-select placeholder="市" style="width:120px;margin-right:10px" v-model="shi" @change="Toshi()">
|
|
|
+ <el-select placeholder="市" style="width:125px;margin-right:10px" v-model="shi" @change="Toshi()">
|
|
|
<el-option v-for="item in cities" :label="item.name" :value="item.code" :key="item.code" />
|
|
|
</el-select>
|
|
|
- <el-select placeholder="区" style="width:100px" v-model="qv">
|
|
|
+ <el-select placeholder="区" style="width:130px" v-model="qv">
|
|
|
<el-option v-for="item in areas" :label="item.name" :value="item.code" :key="item.code" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="详细地址">
|
|
|
+ <el-form-item label="详细地址" prop="addressDetail">
|
|
|
<el-input v-model="form.addressDetail" placeholder="请选择"></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="description" label="企业简介">
|
|
|
<el-input type="textarea" v-model="form.intro" placeholder="请填写企业简介,不超过200字"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item prop="logo" label="企业logo">
|
|
|
+ <el-form-item label="企业标志" prop="logo">
|
|
|
<single-upload v-model="form.logo"></single-upload>
|
|
|
- <span class="remind">请上传企业logo图片,格式JPG或PNG,尺寸500x500px,大小不超过1M</span>
|
|
|
+ <span class="remind">请上传企业标志图片,格式JPG或PNG,尺寸500x500px,大小不超过1M</span>
|
|
|
</el-form-item>
|
|
|
- <el-form-item prop="license" label="营业执照">
|
|
|
+ <el-form-item label="营业执照" prop="license">
|
|
|
<single-upload v-model="form.license"></single-upload>
|
|
|
<span class="remind">请上传清晰图片,格式JPG或PNG,大小不超过1M</span>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="统一社会信用代码">
|
|
|
+ <el-form-item label="统一社会信用代码" prop="uscc">
|
|
|
<el-input v-model="form.uscc" placeholder="请输入18位统一社会信用代码"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="姓名">
|
|
|
- <el-input v-model="form.contactName" placeholder="请输入您的真实姓名"></el-input>
|
|
|
+ <el-form-item label="联系人姓名" prop="contactName">
|
|
|
+ <el-input v-model="form.contactName" placeholder="请输入联系人姓名"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="身份证号">
|
|
|
- <el-input v-model="form.contactIdNo" placeholder="请输入您的身份证号"></el-input>
|
|
|
+ <el-form-item label="联系人身份证号" prop="contactIdNo">
|
|
|
+ <el-input v-model="form.contactIdNo" placeholder="请输入联系人身份证号"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="邮箱">
|
|
|
- <el-input v-model="form.contactEmail" placeholder="请输入"></el-input>
|
|
|
+ <el-form-item label="联系邮箱" prop="contactEmail">
|
|
|
+ <el-input v-model="form.contactEmail" placeholder="请输入联系邮箱"></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
- <el-button @click="onSave" :loading="saving" type="primary" class="save">保存</el-button>
|
|
|
+ <el-button @click="submit" :loading="saving" type="primary" class="save">保存</el-button>
|
|
|
<el-button @click="$router.go(-1)" class="back">返回</el-button>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
@@ -101,7 +110,45 @@ export default {
|
|
|
return {
|
|
|
uploadUrl: '',
|
|
|
form: {},
|
|
|
- rules: {},
|
|
|
+ rules: {
|
|
|
+ orgName: [
|
|
|
+ { required: true, message: '请输入单位名称', trigger: 'blur' },
|
|
|
+ { min: 2, max: 50, message: '长度在 2 到 50 个字符', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ orgType: [{ required: true, message: '请输入单位性质', trigger: 'blur' }],
|
|
|
+ publicCompany: [{ required: true, message: '请选择是否上市公司', trigger: 'blur' }],
|
|
|
+ industry: [{ required: true, message: '请输入所属行业', trigger: 'blur' }],
|
|
|
+ address: [
|
|
|
+ {
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
+ if (this.shen === '' || this.shi === '' || this.qv === '') {
|
|
|
+ callback(new Error('请选择所在地'));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ addressDetail: [{ required: true, message: '请输入详细地址', trigger: 'blur' }],
|
|
|
+ license: [{ required: true, message: '请上传营业执照', trigger: 'blur' }],
|
|
|
+ uscc: [
|
|
|
+ { required: true, message: '请输入统一社会信用代码', trigger: 'blur' },
|
|
|
+ { min: 18, max: 18, message: '长度为18个字符', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ contactName: [
|
|
|
+ { required: true, message: '请输入姓名', trigger: 'blur' },
|
|
|
+ { min: 2, max: 50, message: '长度在 2 到 50 个字符', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ contactIdNo: [
|
|
|
+ { required: true, message: '请输入身份证号', trigger: 'blur' },
|
|
|
+ { min: 18, max: 18, message: '长度为18个字符', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ contactEmail: [
|
|
|
+ { required: true, message: '请输入邮箱', trigger: 'blur' },
|
|
|
+ { type: 'email', message: '请输入正确的邮箱地址', trigger: 'blur' }
|
|
|
+ ]
|
|
|
+ },
|
|
|
avatar: '',
|
|
|
saving: false,
|
|
|
province: [],
|
|
|
@@ -109,37 +156,57 @@ export default {
|
|
|
areas: [],
|
|
|
shen: '',
|
|
|
shi: '',
|
|
|
- qv: ''
|
|
|
+ qv: '',
|
|
|
+ avatarUploading: false
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
|
- onSave() {
|
|
|
- this.$refs.form.validate(valid => {
|
|
|
- if (valid) {
|
|
|
- this.submit();
|
|
|
- } else {
|
|
|
- return false;
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
submit() {
|
|
|
- this.form.address = this.shen + ',' + this.shi + ',' + this.qv;
|
|
|
- this.form;
|
|
|
- this.$http
|
|
|
- .post('/orgInfo/save', this.form, { body: 'json' })
|
|
|
- .then(res => {
|
|
|
- this.form = res;
|
|
|
- this.$message.success('修改成功');
|
|
|
+ this.$refs.form
|
|
|
+ .validate()
|
|
|
+ .then(() => {
|
|
|
+ this.form.address = this.shen + ',' + this.shi + ',' + this.qv;
|
|
|
+ this.saving = true;
|
|
|
+ this.$http
|
|
|
+ .post('/orgInfo/save', this.form, { body: 'json' })
|
|
|
+ .then(res => {
|
|
|
+ this.saving = false;
|
|
|
+ this.form = res;
|
|
|
+ this.$message.success('修改成功');
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ this.saving = false;
|
|
|
+ console.log(e);
|
|
|
+ this.$message.error(e.error);
|
|
|
+ });
|
|
|
})
|
|
|
.catch(e => {
|
|
|
- console.log(e);
|
|
|
- this.$message.error(e.error);
|
|
|
+ this.$message.error('表单有误,请检查后重新提交');
|
|
|
});
|
|
|
},
|
|
|
handleAvatarSuccess(res, file) {
|
|
|
this.avatar = URL.createObjectURL(file.raw);
|
|
|
+ this.avatarUploading = false;
|
|
|
+ this.$http.post('/user/updateProfile', { avatar: res }).then(res => {
|
|
|
+ this.$message.success('修改成功');
|
|
|
+ this.$http.get('/user/my').then(res => {
|
|
|
+ this.$store.commit('updateUserInfo', res);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ beforeAvatarUpload(file) {
|
|
|
+ if (file.size / 1024 / 1024 > 1) {
|
|
|
+ this.$message.error('图片大小不能超过1MB!');
|
|
|
+ this.avatarUploading = false;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ this.avatarUploading = true;
|
|
|
+ return true;
|
|
|
+ },
|
|
|
+ handleAvatarError(err, file, fileList) {
|
|
|
+ this.avatarUploading = false;
|
|
|
+ this.$message.error('上传失败');
|
|
|
},
|
|
|
- beforeAvatarUpload(file) {},
|
|
|
Toshen() {
|
|
|
this.cities = [];
|
|
|
this.areas = [];
|
|
|
@@ -167,6 +234,7 @@ export default {
|
|
|
this.$http
|
|
|
.get('orgInfo/my')
|
|
|
.then(res => {
|
|
|
+ res.orgInfo = res.orgInfo || { userId: this.$store.state.userInfo.id, status: 'PENDING' };
|
|
|
this.form = res.orgInfo;
|
|
|
let list = res.orgInfo.address.split(',');
|
|
|
this.shen = list[0];
|
|
|
@@ -206,11 +274,11 @@ export default {
|
|
|
font-weight: 700;
|
|
|
}
|
|
|
}
|
|
|
-.avatar {
|
|
|
+.avatar-wrapper {
|
|
|
// width: auto;
|
|
|
// height: auto;
|
|
|
position: absolute;
|
|
|
- top: 40px;
|
|
|
+ top: 80px;
|
|
|
right: 80px;
|
|
|
// display: flex;
|
|
|
// flex-direction: column;
|
|
|
@@ -224,12 +292,9 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
.edit_avatar {
|
|
|
- position: absolute;
|
|
|
- top: 188px;
|
|
|
- right: 105px;
|
|
|
- margin-top: 20px;
|
|
|
width: 96px;
|
|
|
height: 36px;
|
|
|
+ margin: 20px auto 0 auto;
|
|
|
line-height: 36px;
|
|
|
text-align: center;
|
|
|
cursor: pointer;
|