index.vue 6.7 KB

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