UserProfile.cshtml 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. @model VberAdmin.Authorization.Accounts.Dto.UserProfileDto
  2. @{
  3. ViewBag.ActiveMenu = PermissionNames.Vber;
  4. ViewBag.Title = "我的资料";
  5. }
  6. <div class="container">
  7. <div class="card mt-2">
  8. <div class="card-header border-0 cursor-pointer" role="button" data-bs-toggle="collapse" data-bs-target="#vb_account_profile_details" >
  9. <div class="card-title m-0">
  10. <h3 class="fw-bolder m-0">个人信息</h3>
  11. </div>
  12. </div>
  13. <div id="vb_account_profile_details" class="collapse show">
  14. <form id="vb_account_profile_details_form" class="form">
  15. <input type="hidden" name="id" value="@Model.Id" />
  16. <input type="hidden" name="userName" value="@Model.UserName" />
  17. <div class="card-body border-top p-9">
  18. <div class="row mb-5">
  19. <label class="col-lg-3 col-form-label fw-bolder fs-6">头像</label>
  20. <div class="col-lg-9">
  21. <div class="image-input image-input-outline" data-kt-image-input="true" style="background-image: url('@Html.Raw(Model.AvatarPath)')">
  22. <div id="vb_account_profile_avatar" class="image-input-wrapper w-125px h-125px" style="background-image: url('@Html.Raw(Model.AvatarPath)')"></div>
  23. <label class="btn btn-icon btn-circle btn-active-color-primary w-25px h-25px bg-body shadow" data-kt-image-input-action="change" data-bs-toggle="tooltip" title="修改头像">
  24. <i class="bi bi-pencil-fill fs-7"></i>
  25. <input type="file" name="avatar" accept=".png, .jpg, .jpeg"/>
  26. <input type="hidden" name="avatar_remove"/>
  27. </label>
  28. <span class="btn btn-icon btn-circle btn-active-color-primary w-25px h-25px bg-body shadow" data-kt-image-input-action="cancel" data-bs-toggle="tooltip" title="取消修改">
  29. <i class="bi bi-x fs-2"></i>
  30. </span>
  31. @* <span class="btn btn-icon btn-circle btn-active-color-primary w-25px h-25px bg-body shadow" data-kt-image-input-action="remove" data-bs-toggle="tooltip" title="移除头像">
  32. <i class="bi bi-x fs-2"></i>
  33. </span>*@
  34. </div>
  35. </div>
  36. </div>
  37. <div class="row mb-5">
  38. <label class="col-lg-3 col-form-label fw-bolder fs-6">用户名</label>
  39. <div class="col-lg-9 col-form-label fw-bolder fs-6">
  40. <span>@Model.UserName</span>
  41. </div>
  42. </div>
  43. <div class="row mb-5">
  44. <label class="col-lg-3 col-form-label required fw-bolder fs-6">姓名</label>
  45. <div class="col-lg-9">
  46. <div class="row">
  47. <div class="col-lg-6 d-flex">
  48. <input type="text" name="surname" class="form-control form-control-lg form-control-solid mb-3 mb-lg-0 required" placeholder="姓" value="@Model.Surname"/>
  49. <div class="invalid-feedback"></div>
  50. </div>
  51. <div class="col-lg-6 d-flex">
  52. <input type="text" name="name" class="form-control form-control-lg form-control-solid" placeholder="名" value="@Model.Name"/>
  53. <div class="invalid-feedback"></div>
  54. </div>
  55. </div>
  56. </div>
  57. </div>
  58. <div class="row mb-5">
  59. <label class="col-lg-3 col-form-label required fw-bolder fs-6">手机号码</label>
  60. <div class=" col-lg-9 d-flex flex-column">
  61. <input type="text" name="phoneNumber" class="form-control form-control-lg required form-control-solid" placeholder="手机号码" value="@Model.PhoneNumber"/>
  62. <div class="invalid-feedback"></div>
  63. </div>
  64. </div>
  65. <div class="row mb-0">
  66. <label class="col-lg-3 col-form-label fw-bolder fs-6">电子邮箱</label>
  67. <div class=" col-lg-9 d-flex flex-column">
  68. <input type="text" name="emailAddress" class="form-control form-control-lg form-control-solid" placeholder="电子邮箱" value="@Model.EmailAddress"/>
  69. <div class="invalid-feedback"></div>
  70. </div>
  71. </div>
  72. </div>
  73. <div class="card-footer d-flex justify-content-end py-6 px-9">
  74. <button type="reset" class="btn btn-light btn-active-light-primary me-2">重置</button>
  75. <button type="button" class="btn btn-primary" id="vb_account_profile_details_submit">保存</button>
  76. </div>
  77. </form>
  78. </div>
  79. </div>
  80. <div class="card mt-10">
  81. <div class="card-header border-0 cursor-pointer" role="button" data-bs-toggle="collapse" data-bs-target="#vb_account_change_password">
  82. <div class="card-title m-0">
  83. <h3 class="fw-bolder m-0">修改密码</h3>
  84. </div>
  85. </div>
  86. <div id="vb_account_change_password" class="collapse show">
  87. <form id="vb_account_change_password_form" class="form">
  88. <input type="hidden" name="id" value="@Model.Id" />
  89. <input type="hidden" name="userName" value="@Model.UserName" />
  90. <div class="card-body border-top p-9">
  91. <div class="row mb-5">
  92. <label class="col-lg-3 col-form-label fw-bolder fs-6">用户名</label>
  93. <div class="col-lg-9 col-form-label fw-bolder fs-6">
  94. <span>@Model.UserName</span>
  95. </div>
  96. </div>
  97. <div class="row mb-5">
  98. <label class="col-lg-3 col-form-label required fw-bolder fs-6">原密码</label>
  99. <div class=" col-lg-9 d-flex flex-column">
  100. <input type="password" name="currentPassword" class="form-control form-control-lg required form-control-solid" placeholder="原密码" value=""/>
  101. <div class="invalid-feedback"></div>
  102. </div>
  103. </div>
  104. <div class="row mb-5">
  105. <label class="col-lg-3 col-form-label required fw-bolder fs-6">新密码</label>
  106. <div class=" col-lg-9 d-flex flex-column">
  107. <input type="password" name="newPassword" class="form-control form-control-lg required form-control-solid" placeholder="新密码" value=""/>
  108. <div class="invalid-feedback"></div>
  109. </div>
  110. </div>
  111. <div class="row mb-0">
  112. <label class="col-lg-3 col-form-label required fw-bolder fs-6">确认密码</label>
  113. <div class=" col-lg-9 d-flex flex-column">
  114. <input type="password" name="confirmPassword" class="form-control form-control-lg required form-control-solid confirm-password" placeholder="确认密码" value=""/>
  115. <div class="invalid-feedback"></div>
  116. </div>
  117. </div>
  118. </div>
  119. <div class="card-footer d-flex justify-content-end py-6 px-9">
  120. <button type="reset" class="btn btn-light btn-active-light-primary me-2">重置</button>
  121. <button type="button" class="btn btn-primary" id="vb_account_change_password_submit">保存</button>
  122. </div>
  123. </form>
  124. </div>
  125. </div>
  126. @* <div class="card mt-10">
  127. <div class="card-header border-0 cursor-pointer" role="button" data-bs-toggle="collapse" data-bs-target="#vb_user_setting">
  128. <div class="card-title m-0">
  129. <h3 class="fw-bolder m-0">用户配置</h3>
  130. </div>
  131. </div>
  132. <div id="vb_user_setting" class="collapse show">
  133. <form id="vb_user_setting_form" class="form">
  134. <input type="hidden" name="id" value="@Model.Id" />
  135. <input type="hidden" name="userName" value="@Model.UserName" />
  136. <div class="card-body border-top p-9">
  137. </div>
  138. </form>
  139. </div>
  140. </div>*@
  141. </div>
  142. @section scripts{
  143. <script>
  144. $(function() {
  145. $('#vb_account_profile_details_submit').on('click', function() {
  146. let $form = $('#vb_account_profile_details_form');
  147. if ($.formValidate($form)) {
  148. let data = $form.formSerialize();
  149. let avatar = $('#vb_account_profile_avatar').css('backgroundImage');
  150. if (avatar) {
  151. data.avatarPath = avatar.replace('url("', '').replace('")', '');
  152. }
  153. $.vbAjax1({
  154. url: abp.appUrl + "Account/UpdateUserProfile",
  155. data: data
  156. });
  157. }
  158. });
  159. //密码验证
  160. jQuery.validator.addMethod("confirm-password", function(value, element) {
  161. return this.optional(element) ||value == $('#vb_account_change_password_form [name="newPassword"]').val();
  162. }, "两次密码输入不一致");
  163. $('#vb_account_change_password_submit').on('click', function() {
  164. $.vbAjax({
  165. url: abp.appUrl + "Account/ChangePassword",
  166. form:'vb_account_change_password_form',
  167. success:() => {
  168. window.location.href = "@Url.Action("Logout","Account")";
  169. }
  170. });
  171. });
  172. })
  173. </script>
  174. }