尚医通-阿里云oss-认证接口开发-前端整合(三十二)

打印 上一主题 下一主题

主题 847|帖子 847|积分 2541

目录:
(1)前台用户体系-阿里云OSS先容
(2)阿里云oss代码入门案例
(3)上传文件到阿里云oss-接口开发
(4)用户认证-接口开发
(5)用户认证-前端整合

(1)前台用户体系-阿里云OSS先容
扫码登录后显示用户的昵称,点击下面会显示一些下拉列表,下面完成这些功能 

实名认证:在里面申请某些事情,注册某些软件,需要用到某些功能,需要做一个实名认证,比如说填写你的信息,上传身份证号等等,进行认证,提交之后由平台考核,考核通过之后才能进行预约挂号操作
挂号订单:通过它可以看到当天用户曾经挂了哪些 号,号是什么样的信息
就诊人管理:在挂号的时间可以填写由谁挂号,在注册用户里面可以添加多个就诊人,比如说把父母添加进去,帮他们挂号
先做实名认证功能:需要先相识一个技术:阿里云oss
做实名认证的时间需要,上传一些信息,比如说一个头像,上传身份证的正面,反面信息,上传内容需要存储到服务器里面,阿里云oss就是一个存储服务器,是阿里云为我们提供的一个文件存储体系,方便我们存储,实现文件的上传和下载功能。


  • 阿里云oss
 用户认证需要上传证件图片、首页轮播也需要上传图片,因此我们要做文件服务,阿里云oss是一个很好的分布式文件服务体系,所以我们只需要集成阿里云oss即可
1、开通“对象存储OSS”服务

(1)申请阿里云账号
(2)实名认证
(3)开通“对象存储OSS”服务
(4)进入管理控制台
1.1创建Bucket

选择:标准存储、公共读、不开通
 

1.2上传默认头像

创建文件夹avatar,上传默认的用户头像


搜索:
 

 

创建Bucket:点击Bucket列表:
 
点击创建Bucket:新用户标准存储免费一段时间
 
 
 点击确定:

查察这个:下面有Bucket域名 
 
 测试以下存储:点击文件管理

 点击上传文件:
把一个图片拖沓到这里:

 点击上传文件:

 

点击详情:
 
在浏览器输入地址:
 
直接下载了这个图片:
 
上面的操作我是通过控制台操作的,在实际的项目中通过代码实现,写代码需要用到 accesskeys:
 

 使用当前账户的accessKeys里面的id和秘钥
 

 
 (2)阿里云oss代码入门案例
查察资助文档:

 

新建 一个Module: 
 

 

 

 
在这个pom中引入依靠:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5.     <parent>
  6.         <artifactId>service</artifactId>
  7.         <groupId>com.atguigu</groupId>
  8.         <version>0.0.1-SNAPSHOT</version>
  9.     </parent>
  10.     <modelVersion>4.0.0</modelVersion>
  11.     <artifactId>service_oss</artifactId>
  12.     <dependencies>
  13.         <!-- 阿里云oss依赖 -->
  14.         <dependency>
  15.             <groupId>com.aliyun.oss</groupId>
  16.             <artifactId>aliyun-sdk-oss</artifactId>
  17.         </dependency>
  18.         <!-- 日期工具栏依赖 -->
  19.         <dependency>
  20.             <groupId>joda-time</groupId>
  21.             <artifactId>joda-time</artifactId>
  22.         </dependency>
  23.     </dependencies>
  24. </project>
复制代码
 
 
 创建设置文件:application.properties:
  1. # 服务端口
  2. server.port=8205
  3. # 服务名
  4. spring.application.name=service-oss
  5. #返回json的全局时间格式
  6. spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
  7. spring.jackson.time-zone=GMT+8
  8. # nacos服务地址
  9. spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
  10. #阿里云存储的配置
  11. aliyun.oss.endpoint=http://oss-cn-beijing.aliyuncs.com
  12. aliyun.oss.accessKeyId=LTAI5tF2Ej79XRwCiYbiNRyR
  13. aliyun.oss.secret=zvSy5n0sifBKZEmD77glgqbOcuiAp8
复制代码
 创建启动类:
  1. package com.atguigu.yygh.oss;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
  5. import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
  6. import org.springframework.context.annotation.ComponentScan;
  7. @SpringBootApplication(exclude = DataSourceAutoConfiguration.class)//取消数据源自动配置,配置文件中没有配置数据库的配置,所以这里需要取消加载数据库的配置
  8. @EnableDiscoveryClient
  9. @ComponentScan(basePackages = {"com.atguigu"})   //配置相同路径可以使用Swagger文档了
  10. public class ServiceOssApplication {
  11.     public static void main(String[] args) {
  12.         SpringApplication.run(ServiceOssApplication.class, args);
  13.     }
  14. }
复制代码
 设置网关:

编写测试代码:

 
 使用java代码创建bucket:
  1. package com.oss.test;
  2. import com.aliyun.oss.OSS;
  3. import com.aliyun.oss.OSSClientBuilder;
  4. import com.aliyun.oss.model.CannedAccessControlList;
  5. public class OssTest {
  6.     public static void main(String[] args) {
  7.         // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
  8.         String endpoint = "https://oss-cn-beijing.aliyuncs.com";
  9.         // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
  10.         String accessKeyId = "LTAI5tF2Ej79XRwCiYbiNRyR";
  11.         String accessKeySecret = "zvSy5n0sifBKZEmD77glgqbOcuiAp8";
  12.         // 填写Bucket名称,例如examplebucket。
  13.         String bucketName = "yygh-tetss";
  14.         // 创建OSSClient实例。
  15.         OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
  16.         // 创建存储空间。
  17.         ossClient.createBucket(bucketName);
  18.         // 设置存储空间的读写权限。例如将examplebucket的读写权限ACL设置为公有
  19.         ossClient.setBucketAcl(bucketName, CannedAccessControlList.PublicRead);
  20.         //关闭ossClient
  21.         ossClient.shutdown();
  22.     }
  23. }
复制代码
 

查察阿里云页面:乐成创建yygh-tetss名称的Bucket:
 
 (3)上传文件到阿里云oss-接口开发
查察阿里云文档:上传文件:

 使用文件流作为我们的上传代码:

 

 
 创建controller:
  1. package com.atguigu.yygh.oss.controller;
  2. import com.atguigu.yygh.common.result.Result;
  3. import com.atguigu.yygh.oss.service.FileService;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.web.bind.annotation.PostMapping;
  6. import org.springframework.web.bind.annotation.RequestMapping;
  7. import org.springframework.web.bind.annotation.RestController;
  8. import org.springframework.web.multipart.MultipartFile;
  9. @RestController
  10. @RequestMapping("/api/oss/file")
  11. public class FileApiController {
  12.     @Autowired
  13.     private FileService fileService;
  14.     //上传文件到阿里云oss
  15.     @PostMapping("fileUpload")
  16.     public Result fileUpload(MultipartFile file) {
  17.         //获取上传文件
  18.         String url = fileService.upload(file);
  19.         return Result.ok(url);
  20.     }
  21. }
复制代码
创建service:
  1. package com.atguigu.yygh.oss.service;
  2. import org.springframework.web.multipart.MultipartFile;
  3. public interface FileService {
  4.     //上传文件到阿里云oss
  5.     String upload(MultipartFile file);
  6. }
复制代码
在配之类中添加:
 
 
添加工具类,获取这些数据:
 
  1. package com.atguigu.yygh.oss.utils;
  2. import org.springframework.beans.factory.InitializingBean;
  3. import org.springframework.beans.factory.annotation.Value;
  4. import org.springframework.stereotype.Component;
  5. @Component
  6. public class ConstantOssPropertiesUtils implements InitializingBean {
  7.     @Value("${aliyun.oss.endpoint}")
  8.     private String endpoint;
  9.     @Value("${aliyun.oss.accessKeyId}")
  10.     private String accessKeyId;
  11.     @Value("${aliyun.oss.secret}")
  12.     private String secret;
  13.     @Value("${aliyun.oss.bucket}")
  14.     private String bucket;
  15.     public static String EDNPOINT;
  16.     public static String ACCESS_KEY_ID;
  17.     public static String SECRECT;
  18.     public static String BUCKET;
  19.     @Override
  20.     public void afterPropertiesSet() throws Exception {
  21.         EDNPOINT=endpoint;
  22.         ACCESS_KEY_ID=accessKeyId;
  23.         SECRECT=secret;
  24.         BUCKET=bucket;
  25.     }
  26. }
复制代码
实现类:FileServiceImpl 
  1. package com.atguigu.yygh.oss.service.impl;
  2. import com.aliyun.oss.OSS;
  3. import com.aliyun.oss.OSSClientBuilder;
  4. import com.atguigu.yygh.oss.service.FileService;
  5. import com.atguigu.yygh.oss.utils.ConstantOssPropertiesUtils;
  6. import org.joda.time.DateTime;
  7. import org.springframework.stereotype.Service;
  8. import org.springframework.web.multipart.MultipartFile;
  9. import java.io.IOException;
  10. import java.io.InputStream;
  11. import java.util.UUID;
  12. @Service
  13. public class FileServiceImpl implements FileService {
  14.     //上传文件到阿里云oss
  15.     @Override
  16.     public String upload(MultipartFile file) {
  17.         String endpoint = ConstantOssPropertiesUtils.EDNPOINT;//工具类中的地域节点
  18.         String accessKeyId = ConstantOssPropertiesUtils.ACCESS_KEY_ID;//工具类中的access-key
  19.         String accessKeySecret = ConstantOssPropertiesUtils.SECRECT;//工具类中的secrect
  20.         String bucketName = ConstantOssPropertiesUtils.BUCKET;//工具类上的指定的Bucket存储地址
  21.         try {
  22.             // 创建OSSClient实例。
  23.             OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
  24.             // 上传文件流。
  25.             InputStream inputStream = file.getInputStream();
  26.             String fileName = file.getOriginalFilename();
  27.             //生成随机唯一值,使用uuid,添加到文件名称里面,防止相同文件名导致文件覆盖,因为用户上传的文件名可能会一致
  28.             String uuid = UUID.randomUUID().toString().replaceAll("-",""); //把生成的uuid里面的-替换掉
  29.             fileName = uuid+fileName;
  30.             //按照当前日期,创建文件夹2021/02/02/,上传到创建的文件夹里面, 结果形式为:2021/02/02/uuid01.jpg。
  31.             //因为前面引入了依赖joda-time,所以转日期可以直接.toString("yyyy/MM/dd")
  32.             String timeUrl = new DateTime().toString("yyyy/MM/dd");
  33.             fileName = timeUrl+"/"+fileName;
  34.             //调用方法实现上传
  35.             ossClient.putObject(bucketName, fileName, inputStream);
  36.             // 关闭OSSClient。
  37.             ossClient.shutdown();
  38.             //上传之后文件路径  格式要和阿里云上面的一致
  39.             // https://yygh-atguigu.oss-cn-beijing.aliyuncs.com/uuid01.jpg
  40.             String url = "https://"+bucketName+"."+endpoint+"/"+fileName;
  41.             //返回
  42.             return url;
  43.         } catch (IOException e) {
  44.             e.printStackTrace();
  45.             return null;
  46.         }
  47.     }
  48. }
复制代码
使用swaggert文档进行测试:

 选择文件上传:
 
 在Bucket中乐成上传:

  

 (4)用户认证-接口开发
 
需求分析
用户登录乐成后都要进行身份认证,认证通事后才可以预约挂号
认证过程:用户填写信息(姓名、证件类型、证件号码和证件照片)==> 平台审批
用户认证设计接口:

  • 提交认证
  • 上传证件图片
  • 获取提交认证信息
 
 起首创建一个工具类,获取用户的信息,这个工具类,在别的地方可能会用到,所以放在common-utils模块中:
创建utils:

  1. package com.atguigu.yygh.common.utils;
  2. import com.atguigu.yygh.common.helper.JwtHelper;
  3. import javax.servlet.http.HttpServletRequest;
  4. //获取当前用户信息工具类
  5. public class AuthContextHolder {
  6.     //获取当前用户id
  7.     public static Long getUserId(HttpServletRequest request) {
  8.         //从header获取token
  9.         String token = request.getHeader("token");
  10.         //jwt从token获取userid
  11.         Long userId = JwtHelper.getUserId(token);
  12.         return userId;
  13.     }
  14.     //获取当前用户名称
  15.     public static String getUserName(HttpServletRequest request) {
  16.         //从header获取token
  17.         String token = request.getHeader("token");
  18.         //jwt从token获取userid
  19.         String userName = JwtHelper.getUserName(token);
  20.         return userName;
  21.     }
  22. }
复制代码
 用户认证的操作在service-user中进行编写:
创建认证的实体类:封装的条件

UserAuthVo : 
  1. package com.atguigu.yygh.vo.user;
  2. import com.baomidou.mybatisplus.annotation.TableField;
  3. import io.swagger.annotations.ApiModel;
  4. import io.swagger.annotations.ApiModelProperty;
  5. import lombok.Data;
  6. @Data
  7. @ApiModel(description="会员认证对象")
  8. public class UserAuthVo {
  9.     @ApiModelProperty(value = "用户姓名")
  10.     @TableField("name")
  11.     private String name;
  12.     @ApiModelProperty(value = "证件类型")
  13.     @TableField("certificates_type")
  14.     private String certificatesType;
  15.     @ApiModelProperty(value = "证件编号")
  16.     @TableField("certificates_no")
  17.     private String certificatesNo;
  18.     @ApiModelProperty(value = "证件路径")
  19.     @TableField("certificates_url")
  20.     private String certificatesUrl;
  21. }
复制代码
 在UserInfoApiController:继续添加接口访问:用户认证接口:
  1. //用户认证接口
  2.     @PostMapping("auth/userAuth")
  3.     public Result userAuth(@RequestBody UserAuthVo userAuthVo, HttpServletRequest request) {
  4.         //其实就是往user_info补充添加一些认证数据进去,根据id查出记录会修改记录
  5.         //传递两个参数,第一个参数用户id,第二个参数认证数据vo对象
  6.         userInfoService.userAuth(AuthContextHolder.getUserId(request),userAuthVo);
  7.         return Result.ok();
  8.     }
复制代码
 service接口:UserInfoService 

  1. package com.atguigu.yygh.user.service;
  2. import com.atguigu.yygh.model.user.UserInfo;
  3. import com.atguigu.yygh.vo.user.LoginVo;
  4. import com.atguigu.yygh.vo.user.UserAuthVo;
  5. import com.baomidou.mybatisplus.extension.service.IService;
  6. import java.util.Map;
  7. public interface UserInfoService extends IService<UserInfo> {
  8.     //用户手机登录接口
  9.     Map<String, Object> login(LoginVo loginVo);
  10.     //根据openid判断数据库是否存在微信的扫描人信息
  11.     UserInfo selectWxInfoOpenId(String openid);
  12.     //用户认证接口
  13.     void userAuth(Long userId, UserAuthVo userAuthVo);
  14. }
复制代码
 实现类:UserInfoService Impl:
  1. //用户认证接口
  2.     @Override
  3.     public void userAuth(Long userId, UserAuthVo userAuthVo) {
  4.         //刚开始数据库中有这条用户信息,只是信息不完善,需要先把他查询出来,在进行更新
  5.         //根据用户id查询用户信息
  6.         UserInfo userInfo = baseMapper.selectById(userId);
  7.         //设置认证信息
  8.         //认证人姓名
  9.         userInfo.setName(userAuthVo.getName());
  10.         //其他认证信息
  11.         userInfo.setCertificatesType(userAuthVo.getCertificatesType());
  12.         userInfo.setCertificatesNo(userAuthVo.getCertificatesNo());
  13.         userInfo.setCertificatesUrl(userAuthVo.getCertificatesUrl());
  14.         userInfo.setAuthStatus(AuthStatusEnum.AUTH_RUN.getStatus());
  15.         //进行信息更新
  16.         baseMapper.updateById(userInfo);
  17.     }
复制代码
就是更新表中字段的其他信息:

在UserInfoApiController:中继续添加用去用户信息接口

 
  1. package com.atguigu.yygh.user.controller;import com.atguigu.yygh.common.result.Result;import com.atguigu.yygh.common.utils.AuthContextHolder;import com.atguigu.yygh.model.user.UserInfo;import com.atguigu.yygh.user.service.UserInfoService;import com.atguigu.yygh.vo.user.LoginVo;import com.atguigu.yygh.vo.user.UserAuthVo;import io.swagger.annotations.ApiOperation;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;import java.util.Map;@RestController@RequestMapping("/api/user")public class UserInfoApiController {    @Autowired    private UserInfoService userInfoService;    //用户手机登录接口    @ApiOperation(value = "用户登录")    @PostMapping("login")    public Result login(@RequestBody LoginVo loginVo) {        Map<String, Object> info = userInfoService.login(loginVo);        return Result.ok(info);    }    //用户认证接口
  2.     @PostMapping("auth/userAuth")
  3.     public Result userAuth(@RequestBody UserAuthVo userAuthVo, HttpServletRequest request) {
  4.         //其实就是往user_info补充添加一些认证数据进去,根据id查出记录会修改记录
  5.         //传递两个参数,第一个参数用户id,第二个参数认证数据vo对象
  6.         userInfoService.userAuth(AuthContextHolder.getUserId(request),userAuthVo);
  7.         return Result.ok();
  8.     }    //用户id获取信息接口    @GetMapping("auth/getUserInfo")    public Result getUserInfo(HttpServletRequest request) {        Long userId = AuthContextHolder.getUserId(request);        UserInfo userInfo = userInfoService.getById(userId);        return Result.ok(userInfo);    }}
复制代码
(5)用户认证-前端整合

 

在userInfo.js中继续添加两个路径 :

 在page目录下创建

 
  1. <template>
  2.   <!-- header -->
  3.   <div class="nav-container page-component">
  4.     <!--左侧导航 #start -->
  5.     <div class="nav left-nav">
  6.       <div class="nav-item selected">
  7.         <span
  8.           class="v-link selected dark"
  9.           onclick="javascript:window.location='/user'"
  10.           >实名认证
  11.         </span>
  12.       </div>
  13.       <div class="nav-item">
  14.         <span
  15.           class="v-link selected dark"
  16.           onclick="javascript:window.location='/order'"
  17.         >
  18.           挂号订单
  19.         </span>
  20.       </div>
  21.       <div class="nav-item">
  22.         <span
  23.           class="v-link clickable dark"
  24.           onclick="javascript:window.location='/patient'"
  25.         >
  26.           就诊人管理
  27.         </span>
  28.       </div>
  29.       <div class="nav-item">
  30.         <span class="v-link clickable dark"> 修改账号信息 </span>
  31.       </div>
  32.       <div class="nav-item">
  33.         <span class="v-link clickable dark"> 意见反馈 </span>
  34.       </div>
  35.     </div>
  36.     <!-- 左侧导航 #end -->
  37.     <!-- 右侧内容 #start -->
  38.     <div class="page-container">
  39.       <div>
  40.         <div class="title">实名认证</div>
  41.         <div class="status-bar">
  42.           <div class="status-wrapper">
  43.             <span class="iconfont"></span>{{ userInfo.param.authStatusString }}
  44.           </div>
  45.         </div>
  46.         <div class="tips">
  47.           <span class="iconfont"></span>
  48.           完成实名认证后才能添加就诊人,正常进行挂号,为了不影响后续步骤,建议提前实名认证。
  49.         </div>
  50.         <div class="form-wrapper" v-if="userInfo.authStatus == 0">
  51.           <div>
  52.             <el-form
  53.               :model="userAuah"
  54.               label-width="110px"
  55.               label-position="left"
  56.             >
  57.               <el-form-item prop="name" label="姓名:" class="form-normal">
  58.                 <div class="name-input">
  59.                   <el-input
  60.                     v-model="userAuah.name"
  61.                     placeholder="请输入联系人姓名全称"
  62.                     class="input v-input"
  63.                   />
  64.                 </div>
  65.               </el-form-item>
  66.               <el-form-item prop="certificatesType" label="证件类型:">
  67.                 <el-select
  68.                   v-model="userAuah.certificatesType"
  69.                   placeholder="请选择证件类型"
  70.                   class="v-select patient-select"
  71.                 >
  72.                   <el-option
  73.                     v-for="item in certificatesTypeList"
  74.                     :key="item.value"
  75.                     :label="item.name"
  76.                     :value="item.name"
  77.                   >
  78.                   </el-option>
  79.                 </el-select>
  80.               </el-form-item>
  81.               <el-form-item prop="certificatesNo" label="证件号码:">
  82.                 <el-input
  83.                   v-model="userAuah.certificatesNo"
  84.                   placeholder="请输入联系人证件号码"
  85.                   class="input v-input"
  86.                 />
  87.               </el-form-item>
  88.               <el-form-item prop="name" label="上传证件:">
  89.                 <div class="upload-wrapper">
  90.                   <div class="avatar-uploader">
  91.                     <el-upload
  92.                       class="avatar-uploader"
  93.                       :action="fileUrl"
  94.                       :show-file-list="false"
  95.                       :on-success="onUploadSuccess"
  96.                     >
  97.                       <div class="upload-inner-wrapper">
  98.                         <img
  99.                           v-if="userAuah.certificatesUrl"
  100.                           :src="userAuah.certificatesUrl"
  101.                           class="avatar"
  102.                         />
  103.                         <i v-else class="el-icon-plus avatar-uploader-icon"></i>
  104.                         <div v-if="!userAuah.certificatesUrl" class="text">
  105.                           上传证件合照
  106.                         </div>
  107.                       </div>
  108.                     </el-upload>
  109.                   </div>
  110.                   <img
  111.                     src="//img.114yygh.com/static/web/auth_example.png"
  112.                     class="example"
  113.                   />
  114.                 </div>
  115.               </el-form-item>
  116.             </el-form>
  117.             <div class="bottom-wrapper">
  118.               <div class="button-wrapper">
  119.                 <div class="v-button" @click="saveUserAuah()">
  120.                   {{ submitBnt }}
  121.                 </div>
  122.               </div>
  123.             </div>
  124.           </div>
  125.         </div>
  126.         <div class="context-container" v-if="userInfo.authStatus != 0">
  127.           <div>
  128.             <el-form
  129.               :model="formData"
  130.               label-width="110px"
  131.               label-position="right"
  132.             >
  133.               <el-form-item prop="name" label="姓名:" class="form-normal">
  134.                 <div class="name-input">
  135.                   {{ userInfo.name }}
  136.                 </div>
  137.               </el-form-item>
  138.               <el-form-item prop="name" label="证件类型:">
  139.                 {{ userInfo.certificatesType }}
  140.               </el-form-item>
  141.               <el-form-item prop="name" label="证件号码:">
  142.                 {{ userInfo.certificatesNo }}
  143.               </el-form-item>
  144.             </el-form>
  145.           </div>
  146.         </div>
  147.       </div>
  148.     </div>
  149.     <!-- 右侧内容 #end -->
  150.     <!-- 登录弹出框 -->
  151.   </div>
  152.   <!-- footer -->
  153. </template>
  154.    
  155.     <script>
  156. import "~/assets/css/hospital_personal.css";
  157. import "~/assets/css/hospital.css";
  158. import "~/assets/css/personal.css";
  159. import dictApi from "@/api/dict";
  160. import userInfoApi from "@/api/userInfo";
  161. const defaultForm = {
  162.   name: "",
  163.   certificatesType: "", //证件类型
  164.   certificatesNo: "", //证件编号
  165.   certificatesUrl: "", //
  166. };
  167. export default {
  168.   data() {
  169.     return {
  170.       userAuah: defaultForm,
  171.       certificatesTypeList: [],
  172.       fileUrl: "http://localhost/api/oss/file/fileUpload",
  173.       userInfo: {
  174.         param: {},
  175.       },
  176.       submitBnt: "提交",
  177.     };
  178.   },
  179.   created() {
  180.     this.init();
  181.   },
  182.   methods: {
  183.     init() {
  184.       this.getUserInfo(); //得到用户信息
  185.       this.getDict(); //得到字典信息
  186.     },
  187.     //得到用户信息
  188.     getUserInfo() {
  189.       userInfoApi.getUserInfo().then((response) => {
  190.         this.userInfo = response.data;
  191.       });
  192.     },
  193.     //认证操作方法
  194.     saveUserAuah() {
  195.       if (this.submitBnt == "正在提交...") {
  196.         this.$message.info("重复提交");
  197.         return;
  198.       }
  199.       this.submitBnt = "正在提交...";
  200.       userInfoApi
  201.         .saveUserAuah(this.userAuah)
  202.         .then((response) => {
  203.           this.$message.success("提交成功");
  204.           window.location.reload();
  205.         })
  206.         .catch((e) => {
  207.           this.submitBnt = "提交";
  208.         });
  209.     },
  210.     getDict() {
  211.       dictApi.findByDictCode("CertificatesType").then((response) => {
  212.         this.certificatesTypeList = response.data;
  213.       });
  214.     },
  215.     onUploadSuccess(response, file) {
  216.       if (response.code !== 200) {
  217.         this.$message.error("上传失败");
  218.         return;
  219.       }
  220.       // 填充上传文件列表
  221.       this.userAuah.certificatesUrl = file.response.data;
  222.     },
  223.   },
  224. };
  225. </script>
  226.     <style>
  227. .header-wrapper .title {
  228.   font-size: 16px;
  229.   margin-top: 0;
  230. }
  231. .content-wrapper {
  232.   margin-left: 0;
  233. }
  234. .patient-card .el-card__header .detail {
  235.   font-size: 14px;
  236. }
  237. .page-container .title {
  238.   letter-spacing: 1px;
  239.   font-weight: 700;
  240.   color: #333;
  241.   font-size: 16px;
  242.   margin-top: 0;
  243.   margin-bottom: 20px;
  244. }
  245. .page-container .tips {
  246.   width: 100%;
  247.   padding-left: 0;
  248. }
  249. .page-container .form-wrapper {
  250.   padding-left: 92px;
  251.   width: 580px;
  252. }
  253. .form-normal {
  254.   height: 40px;
  255. }
  256. .bottom-wrapper {
  257.   width: 100%;
  258.   padding: 0;
  259.   margin-top: 0;
  260. }
  261. </style>
复制代码

 
 
 

 

 点击提交:

 数据库中:user_info:中的登录的用户数据乐成进行了认证,数据进行了更新

 
 


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

渣渣兔

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表