administrator_update.blade.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. @extends('base.base')
  2. @section('base')
  3. <!-- 内容区域 -->
  4. <div class="main-panel">
  5. <div class="content-wrapper">
  6. <div class="row">
  7. <div class="col-12 grid-margin stretch-card">
  8. <div class="card">
  9. <div class="card-body">
  10. <h4 class="card-title">{{ __('auto.请修改管理员信息') }}</h4>
  11. {{-- <form class="forms-sample" id="form">--}}
  12. <form class="form-horizontal" id="form">
  13. <div class="form-group">
  14. <label>{{ __('auto.头像上传') }}</label>
  15. <input type="file" class="file-upload-default img-file" data-path="avatar">
  16. <input type="hidden" name="avatar" class="image-path" value="{{$admin->avatar}}">
  17. <div class="input-group col-xs-12">
  18. <input type="text" class="form-control file-upload-info" disabled=""
  19. value="{{$admin->avatar}}">
  20. <span class="input-group-append">
  21. <button class="file-upload-browse btn btn-gradient-primary"
  22. onclick="upload($(this))" type="button">{{ __('auto.上传') }}</button>
  23. </span>
  24. </div>
  25. <div class="img-yl" style="display: block;">
  26. <img src="{{$admin->avatar}}">
  27. </div>
  28. </div>
  29. <div class="form-group">
  30. <label for="nickname">*昵称</label>
  31. <input type="text" class="form-control required" name="nickname"
  32. value="{{$admin->nickname}}">
  33. </div>
  34. <div class="form-group">
  35. <label for="account">*账号</label>
  36. <input type="text" class="form-control required" name="account"
  37. value="{{$admin->account}}">
  38. </div>
  39. <div class="form-group">
  40. <label for="password">*密码</label>
  41. <input type="password" id="password" class="form-control" name="password"
  42. value="{{$admin->clear_password}}">
  43. </div>
  44. <div class="form-group">
  45. <label for="password">*确认密码</label>
  46. <input type="password" id="password_verify" class="form-control"
  47. name="password_verify" value="{{$admin->clear_password}}">
  48. </div>
  49. <div class="form-group">
  50. <label for="">*请添加彩金额度:</label>
  51. <div class="input-group col-xs-12">
  52. <span class="input-group-append">
  53. <button class="btn " type="button">{{ __('auto.当前余额:') }}{{$admin->lottery_amount}}</button>
  54. </span>
  55. <input type="text" class="form-control" name="lottery_amount" value="">
  56. </div>
  57. </div>
  58. <div class="form-group">
  59. <label for="">*请添加彩金单控送金额度:</label>
  60. <div class="input-group col-xs-12">
  61. <span class="input-group-append">
  62. <button class="btn " type="button">{{ __('auto.当前余额:') }}{{$admin->recharge_amount}}</button>
  63. </span>
  64. <input type="text" class="form-control" name="recharge_amount" value="">
  65. </div>
  66. </div>
  67. <input type="hidden" name="type" value="{{$admin->type}}">
  68. <div class="form-group">
  69. <label for="role">*角色</label>
  70. <select id="roles-selector" class="form-control form-control-lg"
  71. multiple="multiple">
  72. @foreach($roles as $role)
  73. <option value="{{$role->id}}"
  74. @if(in_array($role->id, $s_role_id_arr)) selected @endif>{{$role->name}}</option>
  75. @endforeach
  76. </select>
  77. </div>
  78. <div class="form-group">
  79. <label for="locale">*语言</label>
  80. <select id="locale" name="locale" class="form-control form-control-lg" >
  81. <option value="zh_CN" selected>{{ __('auto.中文') }}</option>
  82. <option value="en_US" >English</option>
  83. </select>
  84. </div>
  85. <div class="form-group">
  86. <label for="channel">*渠道编号<button type="button" onclick="checkAllChannel()"class="btn btn-sm btn-gradient-primary btn-icon-text">All</button> </label>
  87. @foreach($channels as $channel)
  88. <input value="{{$channel}}" name="channel[]" @if(in_array($channel, $admin->channel)) checked @endif id="channel" type="checkbox"><span>{{$channel}}</span>
  89. @endforeach
  90. </div>
  91. <div class="form-group">
  92. <label>Google Authenticator</label>
  93. <div class="input-group col-xs-12" style="margin-bottom: 10px;">
  94. <input type="text" id="ga_secret" class="form-control" name="ga_secret" value="{{ $ga['secret'] }}" readonly>
  95. <span class="input-group-append">
  96. <button class="btn btn-gradient-info" type="button" onclick="resetGaSecret({{ $admin->id }})">重置GA密钥</button>
  97. </span>
  98. </div>
  99. <div style="margin-bottom: 10px;">
  100. <label><input type="checkbox" id="ga_enabled" name="ga_enabled" value="1" @if($ga['enabled'] == 1) checked @endif> 启用GA登录校验</label>
  101. </div>
  102. <div>
  103. <img id="ga_qr_img" src="{{ $ga['qr_code_url'] }}" alt="ga-qr" style="max-width: 200px; border: 1px solid #eee; padding: 4px; @if(empty($ga['qr_code_url'])) display:none; @endif">
  104. </div>
  105. </div>
  106. <button type="button" onclick="commit({{$admin->id}})"
  107. class="btn btn-sm btn-gradient-primary btn-icon-text">
  108. <i class="mdi mdi-file-check btn-icon-prepend"></i>
  109. {{ __('auto.提交') }}
  110. </button>
  111. <button type="button" onclick="cancel()"
  112. class="btn btn-sm btn-gradient-warning btn-icon-text">
  113. <i class="mdi mdi-reload btn-icon-prepend"></i>
  114. {{ __('auto.取消') }}
  115. </button>
  116. </form>
  117. </div>
  118. </div>
  119. </div>
  120. </div>
  121. </div>
  122. </div>
  123. <script>
  124. let allchecked=false;
  125. function checkAllChannel(){
  126. allchecked=!allchecked
  127. var rolesSelector = $('input#channel')
  128. for (opt of rolesSelector) {
  129. opt.checked=allchecked;
  130. }
  131. }
  132. function commit(id) {
  133. if ($("#password").val() != $("#password_verify").val()) {
  134. layer.msg('{{ __('auto.两次密码输入不一致') }}', function () {
  135. });
  136. }
  137. if (!checkForm()) {
  138. return false;
  139. }
  140. var data = $("#form").serializeObject();
  141. data.roles = []
  142. var rolesSelector = document.querySelector('select#roles-selector')
  143. for (opt of rolesSelector) {
  144. if (opt.selected) {
  145. data.roles.push(opt.value)
  146. }
  147. }
  148. data.channel = []
  149. var rolesSelector = $('input#channel')
  150. for (opt of rolesSelector) {
  151. if (opt.checked) {
  152. data.channel.push(opt.value)
  153. }
  154. }
  155. data.ga_enabled = $('#ga_enabled').is(':checked') ? 1 : 0
  156. data.ga_secret = $('#ga_secret').val()
  157. myRequest("/admin/administrator/update/" + id, "post", data, function (res) {
  158. if (res.code == '200') {
  159. layer.msg(res.msg)
  160. setTimeout(function () {
  161. parent.location.reload();
  162. }, 1500)
  163. } else {
  164. layer.msg(res.msg)
  165. }
  166. });
  167. }
  168. function resetGaSecret(id) {
  169. myRequest("/admin/administrator/ga/reset/" + id, "post", {}, function (res) {
  170. if (res.code == '200') {
  171. layer.msg(res.msg)
  172. var payload = res.data || {}
  173. $('#ga_secret').val(payload.secret || '')
  174. if (payload.qr_code_url) {
  175. $('#ga_qr_img').attr('src', payload.qr_code_url).show()
  176. }
  177. $('#ga_enabled').prop('checked', false)
  178. } else {
  179. layer.msg(res.msg)
  180. }
  181. });
  182. }
  183. function cancel() {
  184. parent.location.reload();
  185. }
  186. </script>
  187. @endsection