system.blade.php 60 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822
  1. @extends('admin.layouts')
  2. @section('css')
  3. <link href="/assets/global/vendor/bootstrap-select/bootstrap-select.min.css" rel="stylesheet">
  4. <link href="/assets/global/vendor/switchery/switchery.min.css" rel="stylesheet">
  5. <link href="/assets/global/vendor/dropify/dropify.min.css" rel="stylesheet">
  6. @endsection
  7. @section('content')
  8. <div class="page-content container-fluid">
  9. <div class="panel">
  10. <div class="panel-heading">
  11. <h1 class="panel-title">
  12. <i class="icon wb-settings" aria-hidden="true"></i>{{ trans('admin.setting.system.title') }}
  13. </h1>
  14. </div>
  15. <div class="panel-body">
  16. <div class="nav-tabs-horizontal" data-plugin="tabs">
  17. <ul class="nav nav-tabs" role="tablist">
  18. <li class="nav-item" role="presentation">
  19. <a class="nav-link active" data-toggle="tab" href="#webSetting" role="tab"
  20. aria-controls="webSetting">{{ trans('admin.setting.system.web') }}</a>
  21. </li>
  22. <li class="nav-item" role="presentation">
  23. <a class="nav-link" data-toggle="tab" href="#account" role="tab"
  24. aria-controls="account">{{ trans('admin.setting.system.account') }}</a>
  25. </li>
  26. <li class="nav-item" role="presentation">
  27. <a class="nav-link" data-toggle="tab" href="#node" role="tab" aria-controls="node">{{ trans('admin.setting.system.node') }}</a>
  28. </li>
  29. <li class="nav-item" role="presentation">
  30. <a class="nav-link" data-toggle="tab" href="#extend" role="tab"
  31. aria-controls="extend">{{ trans('admin.setting.system.extend') }}</a>
  32. </li>
  33. <li class="nav-item" role="presentation">
  34. <a class="nav-link" data-toggle="tab" href="#checkIn" role="tab"
  35. aria-controls="checkIn">{{ trans('admin.setting.system.check_in') }}</a>
  36. </li>
  37. <li class="nav-item" role="presentation">
  38. <a class="nav-link" data-toggle="tab" href="#promo" role="tab"
  39. aria-controls="promo">{{ trans('admin.setting.system.promotion') }}</a>
  40. </li>
  41. <li class="nav-item" role="presentation">
  42. <a class="nav-link" data-toggle="tab" href="#notify" role="tab"
  43. aria-controls="notify">{{ trans('admin.setting.system.notify') }}</a>
  44. </li>
  45. <li class="nav-item" role="presentation">
  46. <a class="nav-link" data-toggle="tab" href="#auto" role="tab"
  47. aria-controls="auto">{{ trans('admin.setting.system.auto_job') }}</a>
  48. </li>
  49. <li class="nav-item" role="presentation">
  50. <a class="nav-link" data-toggle="tab" href="#other" role="tab" aria-controls="other">{{ trans('admin.setting.system.other') }}</a>
  51. </li>
  52. <li class="nav-item" role="presentation">
  53. <a class="nav-link" data-toggle="tab" href="#payment" role="tab"
  54. aria-controls="payment">{{ trans('admin.setting.system.payment') }}</a>
  55. </li>
  56. <li class="dropdown nav-item" role="presentation">
  57. <a class="dropdown-toggle nav-link" data-toggle="dropdown" href="#"
  58. aria-expanded="false">{{ trans('admin.setting.system.menu') }}</a>
  59. <div class="dropdown-menu" role="menu">
  60. <a class="dropdown-item active" data-toggle="tab" href="#webSetting" role="tab"
  61. aria-controls="webSetting">{{ trans('admin.setting.system.web') }}</a>
  62. <a class="dropdown-item" data-toggle="tab" href="#account" role="tab"
  63. aria-controls="account">{{ trans('admin.setting.system.account') }}</a>
  64. <a class="dropdown-item" data-toggle="tab" href="#node" role="tab"
  65. aria-controls="node">{{ trans('admin.setting.system.node') }}</a>
  66. <a class="dropdown-item" data-toggle="tab" href="#extend" role="tab"
  67. aria-controls="extend">{{ trans('admin.setting.system.extend') }}</a>
  68. <a class="dropdown-item" data-toggle="tab" href="#checkIn" role="tab"
  69. aria-controls="checkIn">{{ trans('admin.setting.system.check_in') }}</a>
  70. <a class="dropdown-item" data-toggle="tab" href="#promo" role="tab"
  71. aria-controls="promo">{{ trans('admin.setting.system.promotion') }}</a>
  72. <a class="dropdown-item" data-toggle="tab" href="#notify" role="tab"
  73. aria-controls="notify">{{ trans('admin.setting.system.notify') }}</a>
  74. <a class="dropdown-item" data-toggle="tab" href="#auto" role="tab"
  75. aria-controls="auto">{{ trans('admin.setting.system.auto_job') }}</a>
  76. <a class="dropdown-item" data-toggle="tab" href="#other" role="tab"
  77. aria-controls="other">{{ trans('admin.setting.system.other') }}</a>
  78. <a class="dropdown-item" data-toggle="tab" href="#payment" role="tab"
  79. aria-controls="payment">{{ trans('admin.setting.system.payment') }}</a>
  80. </div>
  81. </li>
  82. </ul>
  83. <div class="tab-content py-35 px-35">
  84. <x-system.tab-pane id="webSetting" :active="true">
  85. <x-system.input code="website_name" :value="$website_name" />
  86. <x-system.input type="url" code="website_url" :value="$website_url" />
  87. <x-system.select code="standard_currency" :list="array_column(config('common.currency'), 'code', 'name')" />
  88. <x-system.input type="email" code="AppStore_id" :value="$AppStore_id" />
  89. <x-system.input type="password" code="AppStore_password" :value="$AppStore_password" />
  90. <x-system.input type="email" code="webmaster_email" :value="$webmaster_email" />
  91. <div class="form-group col-lg-6">
  92. <div class="form-row">
  93. <label class="col-md-3 col-form-label" for="website_security_code">{{ trans('admin.system.website_security_code') }}</label>
  94. <div class="col-md-6">
  95. <div class="input-group">
  96. <input class="form-control" id="website_security_code" type="text" value="{{ $website_security_code }}" />
  97. <span class="input-group-append">
  98. <button class="btn btn-info" type="button"
  99. onclick="makeWebsiteSecurityCode()">{{ trans('common.generate') }}</button>
  100. <button class="btn btn-primary" type="button"
  101. onclick="update('website_security_code')">{{ trans('common.update') }}</button>
  102. </span>
  103. </div>
  104. <span class="text-help">{!! trans('admin.system.hint.website_security_code', ['url' => route('login') . '?securityCode=']) !!}</span>
  105. </div>
  106. </div>
  107. </div>
  108. <x-system.select code="forbid_mode" :list="[
  109. trans('common.status.closed') => '',
  110. trans('admin.system.forbid.mainland') => 'ban_mainland',
  111. trans('admin.system.forbid.china') => 'ban_china',
  112. trans('admin.system.forbid.oversea') => 'ban_oversea',
  113. ]" />
  114. <x-system.switch code="is_forbid_robot" :check="$is_forbid_robot" />
  115. <x-system.switch code="maintenance_mode" :check="$maintenance_mode" :url="route('admin.login')" />
  116. <x-system.input type="datetime-local" code="maintenance_time" :value="$maintenance_time" />
  117. <x-system.textarea code="maintenance_content" :value="$maintenance_content" row="3" />
  118. <x-system.input type="url" code="redirect_url" :value="$redirect_url" />
  119. </x-system.tab-pane>
  120. <x-system.tab-pane id="account">
  121. <x-system.switch code="is_register" :check="$is_register" />
  122. <x-system.select code="oauth_path" multiple="1" :list="array_flip(config('common.oauth.labels'))" />
  123. <x-system.select code="username_type" :list="[
  124. trans('admin.system.username.email') => 'email',
  125. trans('admin.system.username.mobile') => 'numeric',
  126. trans('admin.system.username.any') => 'string',
  127. ]" />
  128. <x-system.select code="is_invite_register" :list="[trans('common.status.closed') => '', trans('admin.optional') => 1, trans('admin.require') => 2]" />
  129. <x-system.select code="is_activate_account" :list="[
  130. trans('common.status.closed') => '',
  131. trans('admin.system.active_account.before') => 1,
  132. trans('admin.system.active_account.after') => 2,
  133. ]" />
  134. <x-system.select code="password_reset_notification" :list="[trans('common.status.closed') => '', trans('admin.system.notification.channel.email') => 'mail']" />
  135. <x-system.switch code="is_free_code" :check="$is_free_code" />
  136. <x-system.input code="aff_salt" :value="$aff_salt" />
  137. <x-system.switch code="is_rand_port" :check="$is_rand_port" />
  138. <x-system.input-limit code="min_port" hcode="max_port" :value="$min_port" min="1000" max="$('#max_port').val()"
  139. :hvalue="$max_port" hmin="$
  140. ('#min_port').val()" hmax="65535" />
  141. <x-system.input-limit code="default_days" :value="$default_days" unit="{{ trans_choice('common.days.attribute', 1) }}" />
  142. <x-system.input-limit code="default_traffic" :value="$default_traffic" unit="MB" />
  143. <x-system.input-limit code="invite_num" :value="$invite_num" />
  144. <x-system.input-limit code="reset_password_times" :value="$reset_password_times" />
  145. <x-system.select code="is_email_filtering" :list="[trans('common.status.closed') => '', trans('admin.setting.email.black') => 1, trans('admin.setting.email.white') => 2]" />
  146. <x-system.input-limit code="active_times" :value="$active_times" />
  147. <x-system.input-limit code="register_ip_limit" :value="$register_ip_limit" />
  148. <x-system.input-limit code="user_invite_days" :value="$user_invite_days" min="1"
  149. unit="{{ trans_choice('common.days.attribute', 1) }}" />
  150. <x-system.input-limit code="admin_invite_days" :value="$admin_invite_days" min="1"
  151. unit="{{ trans_choice('common.days.attribute', 1) }}" />
  152. </x-system.tab-pane>
  153. <x-system.tab-pane id="node">
  154. <x-system.input type="url" code="subscribe_domain" :value="$subscribe_domain" :holder="trans('admin.system.placeholder.default_url', ['url' => $website_url])" />
  155. <x-system.input-limit code="subscribe_max" :value="$subscribe_max" />
  156. <x-system.switch code="rand_subscribe" :check="$rand_subscribe" />
  157. <x-system.switch code="is_custom_subscribe" :check="$is_custom_subscribe" />
  158. <x-system.input type="url" code="web_api_url" :value="$web_api_url" />
  159. <x-system.input code="v2ray_license" :value="$v2ray_license" />
  160. <x-system.input code="trojan_license" :value="$trojan_license" />
  161. <x-system.input code="v2ray_tls_provider" :value="$v2ray_tls_provider" />
  162. </x-system.tab-pane>
  163. <x-system.tab-pane id="extend">
  164. <x-system.select code="ddns_mode" :list="$ddns_labels" />
  165. <x-system.input code="ddns_key" :value="$ddns_key" />
  166. <x-system.input code="ddns_secret" :value="$ddns_secret" />
  167. <hr class="col-lg-12">
  168. <x-system.select code="is_captcha" :list="[
  169. trans('common.status.closed') => '',
  170. trans('admin.system.captcha.standard') => 1,
  171. trans('admin.system.captcha.geetest') => 2,
  172. trans('admin.system.captcha.recaptcha') => 3,
  173. trans('admin.system.captcha.hcaptcha') => 4,
  174. trans('admin.system.captcha.turnstile') => 5,
  175. ]" />
  176. <x-system.input code="captcha_key" :value="$captcha_key" />
  177. <x-system.input code="captcha_secret" :value="$captcha_secret" />
  178. </x-system.tab-pane>
  179. <x-system.tab-pane id="checkIn">
  180. <x-system.switch code="is_checkin" :check="$is_checkin" />
  181. <x-system.input-limit code="traffic_limit_time" :value="$traffic_limit_time" />
  182. <x-system.input-limit code="min_rand_traffic" hcode="max_rand_traffic" :value="$min_rand_traffic" :hvalue="$max_rand_traffic" :max="$max_rand_traffic"
  183. :hmin="$min_rand_traffic" unit="MB" />
  184. </x-system.tab-pane>
  185. <x-system.tab-pane id="promo">
  186. <x-system.switch code="referral_status" :check="$referral_status" />
  187. <x-system.select code="referral_type" :list="[
  188. trans('common.status.closed') => '',
  189. trans('admin.system.referral.once') => 1,
  190. trans('admin.system.referral.loop') => 2,
  191. ]" />
  192. <x-system.input-limit code="referral_traffic" :value="$referral_traffic" unit="MB" />
  193. <x-system.input-limit code="referral_percent" :value="$referral_percent * 100" max="100" unit="%" />
  194. <x-system.input-limit code="referral_money" :value="$referral_money"
  195. unit="{{ array_column(config('common.currency'), 'symbol', 'code')[sysConfig('standard_currency')] }}" />
  196. </x-system.tab-pane>
  197. <x-system.tab-pane id="notify">
  198. <x-system.input-test code="server_chan_key" :value="$server_chan_key" holder="{{ trans('admin.system.placeholder.server_chan_key') }}"
  199. test="serverChan" />
  200. <x-system.input-test code="pushDeer_key" :value="$pushDeer_key" holder="{{ trans('admin.system.placeholder.pushDeer_key') }}"
  201. test="pushDeer" />
  202. <x-system.input-test code="iYuu_token" :value="$iYuu_token" holder="{{ trans('admin.system.placeholder.iYuu_token') }}"
  203. test="iYuu" />
  204. <x-system.input-test code="bark_key" :value="$bark_key" holder="{{ trans('admin.system.placeholder.bark_key') }}" test="bark" />
  205. <x-system.input-test code="telegram_token" :value="$telegram_token" holder="{{ trans('admin.system.placeholder.telegram_token') }}"
  206. test="telegram" />
  207. <x-system.input-test code="pushplus_token" :value="$pushplus_token" holder="{{ trans('admin.system.placeholder.pushplus_token') }}"
  208. test="pushPlus" />
  209. <x-system.input code="dingTalk_access_token" :value="$dingTalk_access_token"
  210. holder="{{ trans('admin.system.placeholder.dingTalk_access_token') }}" />
  211. <x-system.input-test code="dingTalk_secret" :value="$dingTalk_secret" holder="{{ trans('admin.system.placeholder.dingTalk_secret') }}"
  212. test="dingTalk" />
  213. <x-system.input code="wechat_cid" :value="$wechat_cid" holder="{{ trans('admin.system.placeholder.wechat_cid') }}" />
  214. <x-system.input code="wechat_aid" :value="$wechat_aid" holder="{{ trans('admin.system.placeholder.wechat_aid') }}" />
  215. <x-system.input-test code="wechat_secret" :value="$wechat_secret" holder="{{ trans('admin.system.placeholder.wechat_secret') }}"
  216. test="weChat" />
  217. <x-system.input code="wechat_token" :value="$wechat_token" :url="route('wechat.verify')" />
  218. <x-system.input code="wechat_encodingAESKey" :value="$wechat_encodingAESKey" />
  219. <x-system.input-test code="tg_chat_token" :value="$tg_chat_token" holder="{{ trans('admin.system.placeholder.tg_chat_token') }}"
  220. test="tgChat" />
  221. <hr class="col-10" />
  222. <x-system.select code="account_expire_notification" multiple="1" :list="[
  223. trans('admin.system.notification.channel.email') => 'mail',
  224. trans('admin.system.notification.channel.site') => 'database',
  225. ]" />
  226. <x-system.input-limit code="expire_days" :value="$expire_days" unit="{{ trans_choice('common.days.attribute', 1) }}" />
  227. <x-system.select code="data_exhaust_notification" multiple="1" :list="[
  228. trans('admin.system.notification.channel.email') => 'mail',
  229. trans('admin.system.notification.channel.site') => 'database',
  230. ]" />
  231. <x-system.input-limit code="traffic_warning_percent" :value="$traffic_warning_percent" unit="%" />
  232. <x-system.select code="node_offline_notification" multiple="1" :list="[
  233. trans('admin.system.notification.channel.email') => 'mail',
  234. trans('admin.system.notification.channel.bark') => 'bark',
  235. trans('admin.system.notification.channel.serverchan') => 'serverChan',
  236. trans('admin.system.notification.channel.pushdeer') => 'pushDear',
  237. trans('admin.system.notification.channel.iyuu') => 'iYuu',
  238. trans('admin.system.notification.channel.telegram') => 'telegram',
  239. trans('admin.system.notification.channel.dingtalk') => 'dingTalk',
  240. trans('admin.system.notification.channel.wechat') => 'weChat',
  241. trans('admin.system.notification.channel.tg_chat') => 'tgChat',
  242. trans('admin.system.notification.channel.pushplus') => 'pushPlus',
  243. ]" />
  244. <x-system.select code="node_renewal_notification" multiple="1" :list="[
  245. trans('admin.system.notification.channel.email') => 'mail',
  246. trans('admin.system.notification.channel.bark') => 'bark',
  247. trans('admin.system.notification.channel.serverchan') => 'serverChan',
  248. trans('admin.system.notification.channel.pushdeer') => 'pushDear',
  249. trans('admin.system.notification.channel.iyuu') => 'iYuu',
  250. trans('admin.system.notification.channel.telegram') => 'telegram',
  251. trans('admin.system.notification.channel.dingtalk') => 'dingTalk',
  252. trans('admin.system.notification.channel.wechat') => 'weChat',
  253. trans('admin.system.notification.channel.tg_chat') => 'tgChat',
  254. trans('admin.system.notification.channel.pushplus') => 'pushPlus',
  255. trans('admin.system.notification.channel.site') => 'database',
  256. ]" />
  257. <x-system.input-limit code="offline_check_times" :value="$offline_check_times" unit="{{ trans('admin.times') }}" />
  258. <x-system.select code="node_blocked_notification" multiple="1" :list="[
  259. trans('admin.system.notification.channel.email') => 'mail',
  260. trans('admin.system.notification.channel.serverchan') => 'serverChan',
  261. trans('admin.system.notification.channel.pushdeer') => 'pushDear',
  262. trans('admin.system.notification.channel.iyuu') => 'iYuu',
  263. trans('admin.system.notification.channel.telegram') => 'telegram',
  264. trans('admin.system.notification.channel.wechat') => 'weChat',
  265. trans('admin.system.notification.channel.tg_chat') => 'tgChat',
  266. trans('admin.system.notification.channel.pushplus') => 'pushPlus',
  267. ]" />
  268. <x-system.input-limit code="detection_check_times" :value="$detection_check_times" max="12" unit="{{ trans('admin.times') }}" />
  269. <x-system.select code="payment_received_notification" multiple="1" :list="[
  270. trans('admin.system.notification.channel.email') => 'mail',
  271. trans('admin.system.notification.channel.site') => 'database',
  272. trans('admin.system.notification.channel.telegram') => 'telegram',
  273. ]" />
  274. <x-system.select code="payment_confirm_notification" :list="[
  275. trans('common.status.closed') => '',
  276. trans('admin.system.notification.channel.telegram') => 'telegram',
  277. trans('admin.system.notification.channel.dingtalk') => 'dingTalk',
  278. trans('admin.system.notification.channel.wechat') => 'weChat',
  279. ]" />
  280. <x-system.select code="ticket_closed_notification" multiple="1" :list="[
  281. trans('admin.system.notification.channel.email') => 'mail',
  282. trans('admin.system.notification.channel.bark') => 'bark',
  283. trans('admin.system.notification.channel.serverchan') => 'serverChan',
  284. trans('admin.system.notification.channel.pushdeer') => 'pushDear',
  285. trans('admin.system.notification.channel.iyuu') => 'iYuu',
  286. trans('admin.system.notification.channel.telegram') => 'telegram',
  287. trans('admin.system.notification.channel.dingtalk') => 'dingTalk',
  288. trans('admin.system.notification.channel.wechat') => 'weChat',
  289. trans('admin.system.notification.channel.tg_chat') => 'tgChat',
  290. trans('admin.system.notification.channel.pushplus') => 'pushPlus',
  291. ]" />
  292. <x-system.select code="ticket_created_notification" multiple="1" :list="[
  293. trans('admin.system.notification.channel.email') => 'mail',
  294. trans('admin.system.notification.channel.bark') => 'bark',
  295. trans('admin.system.notification.channel.serverchan') => 'serverChan',
  296. trans('admin.system.notification.channel.pushdeer') => 'pushDear',
  297. trans('admin.system.notification.channel.iyuu') => 'iYuu',
  298. trans('admin.system.notification.channel.telegram') => 'telegram',
  299. trans('admin.system.notification.channel.dingtalk') => 'dingTalk',
  300. trans('admin.system.notification.channel.wechat') => 'weChat',
  301. trans('admin.system.notification.channel.tg_chat') => 'tgChat',
  302. trans('admin.system.notification.channel.pushplus') => 'pushPlus',
  303. ]" />
  304. <x-system.select code="ticket_replied_notification" multiple="1" :list="[
  305. trans('admin.system.notification.channel.email') => 'mail',
  306. trans('admin.system.notification.channel.bark') => 'bark',
  307. trans('admin.system.notification.channel.serverchan') => 'serverChan',
  308. trans('admin.system.notification.channel.pushdeer') => 'pushDear',
  309. trans('admin.system.notification.channel.iyuu') => 'iYuu',
  310. trans('admin.system.notification.channel.telegram') => 'telegram',
  311. trans('admin.system.notification.channel.dingtalk') => 'dingTalk',
  312. trans('admin.system.notification.channel.wechat') => 'weChat',
  313. trans('admin.system.notification.channel.tg_chat') => 'tgChat',
  314. trans('admin.system.notification.channel.pushplus') => 'pushPlus',
  315. ]" />
  316. </x-system.tab-pane>
  317. <x-system.tab-pane id="auto">
  318. <x-system.switch code="is_clear_log" :check="$is_clear_log" />
  319. <x-system.switch code="reset_traffic" :check="$reset_traffic" />
  320. <x-system.switch code="is_subscribe_ban" :check="$is_subscribe_ban" />
  321. <x-system.input-limit code="subscribe_ban_times" :value="$subscribe_ban_times" />
  322. <x-system.switch code="is_traffic_ban" :check="$is_traffic_ban" />
  323. <x-system.select code="data_anomaly_notification" multiple="1" :list="[
  324. trans('admin.system.notification.channel.email') => 'mail',
  325. trans('admin.system.notification.channel.bark') => 'bark',
  326. trans('admin.system.notification.channel.serverchan') => 'serverChan',
  327. trans('admin.system.notification.channel.pushdeer') => 'pushDear',
  328. trans('admin.system.notification.channel.iyuu') => 'iYuu',
  329. trans('admin.system.notification.channel.telegram') => 'telegram',
  330. trans('admin.system.notification.channel.dingtalk') => 'dingTalk',
  331. trans('admin.system.notification.channel.wechat') => 'weChat',
  332. trans('admin.system.notification.channel.tg_chat') => 'tgChat',
  333. trans('admin.system.notification.channel.pushplus') => 'pushPlus',
  334. ]" />
  335. <x-system.input-limit code="traffic_ban_value" :value="$traffic_ban_value" min="1" unit="GB" />
  336. <x-system.input-limit code="traffic_ban_time" :value="$traffic_ban_time" unit="{{ trans('admin.minute') }}" />
  337. <x-system.switch code="auto_release_port" :check="$auto_release_port" />
  338. <x-system.switch code="is_ban_status" :check="$is_ban_status" />
  339. <x-system.select code="node_daily_notification" multiple="1" :list="[
  340. trans('admin.system.notification.channel.email') => 'mail',
  341. trans('admin.system.notification.channel.serverchan') => 'serverChan',
  342. trans('admin.system.notification.channel.pushdeer') => 'pushDear',
  343. trans('admin.system.notification.channel.iyuu') => 'iYuu',
  344. trans('admin.system.notification.channel.telegram') => 'telegram',
  345. trans('admin.system.notification.channel.dingtalk') => 'dingTalk',
  346. trans('admin.system.notification.channel.wechat') => 'weChat',
  347. trans('admin.system.notification.channel.tg_chat') => 'tgChat',
  348. trans('admin.system.notification.channel.pushplus') => 'pushPlus',
  349. ]" />
  350. </x-system.tab-pane>
  351. <x-system.tab-pane id="other">
  352. <div class="col-12">
  353. @if ($errors->any())
  354. <x-alert type="danger" :message="$errors->all()" />
  355. @endif
  356. @if (Session::has('successMsg'))
  357. <x-alert type="success" :message="Session::pull('successMsg')" />
  358. @endif
  359. </div>
  360. <x-system.input type="url" code="website_home_logo" :value="$website_home_logo" />
  361. <x-system.input type="url" code="website_logo" :value="$website_logo" />
  362. <form class="upload-form col-lg-12 row" role="form" action="{{ route('admin.system.extend') }}" method="post"
  363. enctype="multipart/form-data">@csrf
  364. <x-system.input-file code="website_home_logo" :value="$website_home_logo" />
  365. <x-system.input-file code="website_logo" :value="$website_logo" />
  366. </form>
  367. <x-system.textarea code="website_analytics" :value="$website_analytics" />
  368. <x-system.textarea code="website_customer_service" :value="$website_customer_service" />
  369. </x-system.tab-pane>
  370. <div class="tab-pane" id="payment" role="tabpanel">
  371. <div class="tab-content pb-100">
  372. <x-system.tab-pane id="paymentSetting" :active="true">
  373. <x-system.select code="is_AliPay" :list="[
  374. trans('common.status.closed') => '',
  375. trans('admin.system.payment.channel.alipay') => 'f2fpay',
  376. trans('admin.system.payment.channel.codepay') => 'codepay',
  377. trans('admin.system.payment.channel.epay') => 'epay',
  378. trans('admin.system.payment.channel.paybeaver') => 'paybeaver',
  379. trans('admin.system.payment.channel.theadpay') => 'theadpay',
  380. trans('admin.system.payment.channel.stripe') => 'stripe',
  381. ]" />
  382. <x-system.select code="is_QQPay" :list="[
  383. trans('common.status.closed') => '',
  384. trans('admin.system.payment.channel.codepay') => 'codepay',
  385. trans('admin.system.payment.channel.epay') => 'epay',
  386. ]" />
  387. <x-system.select code="is_WeChatPay" :list="[
  388. trans('common.status.closed') => '',
  389. trans('admin.system.payment.channel.codepay') => 'codepay',
  390. trans('admin.system.payment.channel.payjs') => 'payjs',
  391. trans('admin.system.payment.channel.epay') => 'epay',
  392. trans('admin.system.payment.channel.paybeaver') => 'paybeaver',
  393. trans('admin.system.payment.channel.stripe') => 'stripe',
  394. ]" />
  395. <x-system.select code="is_otherPay" multiple="1" :list="[
  396. trans('admin.system.payment.channel.paypal') => 'paypal',
  397. trans('admin.system.payment.channel.stripe') => 'stripe',
  398. trans('admin.system.payment.channel.cryptomus') => 'cryptomus',
  399. ]" />
  400. <x-system.input code="subject_name" :value="$subject_name" />
  401. <x-system.input type="url" code="website_callback_url" :value="$website_callback_url" :holder="trans('admin.system.placeholder.default_url', ['url' => $website_url])" />
  402. </x-system.tab-pane>
  403. <x-system.tab-pane id="AlipayF2F">
  404. <div class="form-group col-lg-6 d-flex">
  405. <label class="col-md-3 col-form-label">{{ trans('admin.system.payment.channel.alipay') }}</label>
  406. <div class="col-md-9">
  407. {!! trans('admin.system.payment.hint.alipay') !!}
  408. </div>
  409. </div>
  410. <x-system.input code="f2fpay_app_id" :value="$f2fpay_app_id" />
  411. <x-system.input code="f2fpay_private_key" :value="$f2fpay_private_key" />
  412. <x-system.input code="f2fpay_public_key" :value="$f2fpay_public_key" />
  413. </x-system.tab-pane>
  414. <x-system.tab-pane id="CodePay">
  415. <div class="form-group col-lg-6 d-flex">
  416. <label class="col-md-3 col-form-label">{{ trans('admin.system.payment.channel.codepay') }}</label>
  417. <div class="col-md-7">
  418. {!! trans('admin.system.payment.hint.codepay') !!}
  419. </div>
  420. </div>
  421. <x-system.input type="url" code="codepay_url" :value="$codepay_url" :holder="trans('admin.system.placeholder.codepay_url')" />
  422. <x-system.input code="codepay_id" :value="$codepay_id" />
  423. <x-system.input code="codepay_key" :value="$codepay_key" />
  424. </x-system.tab-pane>
  425. <x-system.tab-pane id="EPay">
  426. <div class="form-group col-lg-6 d-flex">
  427. <label class="col-md-3 col-form-label">{{ trans('admin.system.payment.channel.epay') }}</label>
  428. @can('admin.test.epay')
  429. <div class="col-md-7">
  430. <button class="btn btn-primary" type="button" onclick="epayInfo()">{{ trans('admin.query') }}</button>
  431. </div>
  432. @endcan
  433. </div>
  434. <x-system.input type="url" code="epay_url" :value="$epay_url" />
  435. <x-system.input code="epay_mch_id" :value="$epay_mch_id" />
  436. <x-system.input code="epay_key" :value="$epay_key" />
  437. </x-system.tab-pane>
  438. <x-system.tab-pane id="PayJs">
  439. <div class="form-group col-lg-6 d-flex">
  440. <label class="col-md-3 col-form-label">{{ trans('admin.system.payment.channel.payjs') }}</label>
  441. <div class="col-md-7">
  442. {!! trans('admin.system.payment.hint.payjs') !!}
  443. </div>
  444. </div>
  445. <x-system.input code="payjs_mch_id" :value="$payjs_mch_id" />
  446. <x-system.input code="payjs_key" :value="$payjs_key" />
  447. </x-system.tab-pane>
  448. <x-system.tab-pane id="PayPal">
  449. <div class="form-group col-lg-6 d-flex">
  450. <label class="col-md-3 col-form-label">{{ trans('admin.system.payment.channel.paypal') }}</label>
  451. <div class="col-md-7">
  452. {!! trans('admin.system.payment.hint.paypal') !!}
  453. </div>
  454. </div>
  455. <x-system.input code="paypal_client_id" :value="$paypal_client_id" />
  456. <x-system.input code="paypal_client_secret" :value="$paypal_client_secret" />
  457. <x-system.input code="paypal_app_id" :value="$paypal_app_id" />
  458. </x-system.tab-pane>
  459. <x-system.tab-pane id="Stripe">
  460. <div class="form-group col-lg-6 d-flex">
  461. <label class="col-md-3 col-form-label">{{ trans('admin.system.payment.channel.stripe') }}</label>
  462. </div>
  463. <x-system.input code="stripe_public_key" :value="$stripe_public_key" />
  464. <x-system.input code="stripe_secret_key" :value="$stripe_secret_key" />
  465. <x-system.input code="stripe_signing_secret" :value="$stripe_signing_secret" />
  466. </x-system.tab-pane>
  467. <x-system.tab-pane id="PayBeaver">
  468. <div class="form-group col-lg-6 d-flex">
  469. <label class="col-md-3 col-form-label">{{ trans('admin.system.payment.channel.paybeaver') }}</label>
  470. <div class="col-md-7">
  471. {!! trans('admin.system.payment.hint.paybeaver') !!}
  472. </div>
  473. </div>
  474. <x-system.input code="paybeaver_app_id" :value="$paybeaver_app_id" />
  475. <x-system.input code="paybeaver_app_secret" :value="$paybeaver_app_secret" />
  476. </x-system.tab-pane>
  477. <x-system.tab-pane id="THeadPay">
  478. <div class="form-group col-lg-6 d-flex">
  479. <label class="col-md-3 col-form-label">{{ trans('admin.system.payment.channel.theadpay') }}</label>
  480. <div class="col-md-7">
  481. {!! trans('admin.system.payment.hint.theadpay') !!}
  482. </div>
  483. </div>
  484. <x-system.input type="url" code="theadpay_url" :value="$theadpay_url" />
  485. <x-system.input code="theadpay_mchid" :value="$theadpay_mchid" />
  486. <x-system.input code="theadpay_key" :value="$theadpay_key" />
  487. </x-system.tab-pane>
  488. <x-system.tab-pane id="Cryptomus">
  489. <div class="form-group col-lg-6 d-flex">
  490. <label class="col-md-3 col-form-label">{{ trans('admin.system.payment.channel.cryptomus') }}</label>
  491. <div class="col-md-7">
  492. {!! trans('admin.system.payment.hint.cryptomus') !!}
  493. </div>
  494. </div>
  495. <x-system.input code="cryptomus_merchant_uuid" :value="$cryptomus_merchant_uuid" />
  496. <x-system.input code="cryptomus_api_key" :value="$cryptomus_api_key" />
  497. </x-system.tab-pane>
  498. <x-system.tab-pane id="Manual">
  499. <div class="form-group col-lg-12 d-flex">
  500. <label class="col-md-3 col-form-label">{{ trans('admin.system.payment.channel.manual') }}</label>
  501. <div class="col-md-7">
  502. {!! trans('admin.system.payment.hint.manual') !!}
  503. </div>
  504. </div>
  505. <div class="col-12">
  506. @if ($errors->any())
  507. <x-alert type="danger" :message="$errors->all()" />
  508. @endif
  509. @if (Session::has('successMsg'))
  510. <x-alert type="success" :message="Session::pull('successMsg')" />
  511. @endif
  512. </div>
  513. <x-system.input type="url" code="alipay_qrcode" :value="$alipay_qrcode" />
  514. <x-system.input type="url" code="wechat_qrcode" :value="$wechat_qrcode" />
  515. <form class="upload-form col-lg-12 row" role="form" action="{{ route('admin.system.extend') }}" method="post"
  516. enctype="multipart/form-data">@csrf
  517. <x-system.input-file code="alipay_qrcode" :value="$alipay_qrcode" />
  518. <x-system.input-file code="wechat_qrcode" :value="$wechat_qrcode" />
  519. </form>
  520. </x-system.tab-pane>
  521. </div>
  522. <ul class="nav nav-tabs nav-tabs-bottom nav-tabs-line dropup" role="tablist">
  523. <li class="nav-item">
  524. <a class="nav-link active" data-toggle="tab" href="#paymentSetting" role="tab"
  525. aria-controls="paymentSetting">{{ trans('admin.system.payment.attribute') }}</a>
  526. </li>
  527. <li class="nav-item">
  528. <a class="nav-link" data-toggle="tab" href="#AlipayF2F" role="tab"
  529. aria-controls="AlipayF2F">{{ trans('admin.system.payment.channel.alipay') }}</a>
  530. </li>
  531. <li class="nav-item">
  532. <a class="nav-link" data-toggle="tab" href="#CodePay" role="tab"
  533. aria-controls="CodePay">{{ trans('admin.system.payment.channel.codepay') }}</a>
  534. </li>
  535. <li class="nav-item">
  536. <a class="nav-link" data-toggle="tab" href="#EPay" role="tab"
  537. aria-controls="EPay">{{ trans('admin.system.payment.channel.epay') }}</a>
  538. </li>
  539. <li class="nav-item">
  540. <a class="nav-link" data-toggle="tab" href="#PayJs" role="tab"
  541. aria-controls="PayJs">{{ trans('admin.system.payment.channel.payjs') }}</a>
  542. </li>
  543. <li class="nav-item">
  544. <a class="nav-link" data-toggle="tab" href="#PayPal" role="tab"
  545. aria-controls="PayPal">{{ trans('admin.system.payment.channel.paypal') }}</a>
  546. </li>
  547. <li class="nav-item">
  548. <a class="nav-link" data-toggle="tab" href="#Stripe" role="tab"
  549. aria-controls="Stripe">{{ trans('admin.system.payment.channel.stripe') }}</a>
  550. </li>
  551. <li class="nav-item">
  552. <a class="nav-link" data-toggle="tab" href="#Cryptomus" role="tab"
  553. aria-controls="Cryptomus">{{ trans('admin.system.payment.channel.cryptomus') }}</a>
  554. </li>
  555. <li class="nav-item">
  556. <a class="nav-link" data-toggle="tab" href="#PayBeaver" role="tab"
  557. aria-controls="PayBeaver">{{ trans('admin.system.payment.channel.paybeaver') }}</a>
  558. </li>
  559. <li class="nav-item">
  560. <a class="nav-link" data-toggle="tab" href="#THeadPay" role="tab"
  561. aria-controls="THeadPay">{{ trans('admin.system.payment.channel.theadpay') }}</a>
  562. </li>
  563. <li class="nav-item">
  564. <a class="nav-link" data-toggle="tab" href="#Manual" role="tab"
  565. aria-controls="Manual">{{ trans('admin.system.payment.channel.manual') }}</a>
  566. </li>
  567. <li class="nav-item dropdown" style="display: none;">
  568. <a class="dropdown-toggle nav-link" data-toggle="dropdown" href="#" aria-expanded="false"
  569. aria-haspopup="true">{{ trans('admin.setting.system.menu') }}</a>
  570. <div class="dropdown-menu" role="menu">
  571. <a class="dropdown-item active" data-toggle="tab" href="#paymentSetting" role="tab"
  572. aria-controls="paymentSetting">{{ trans('admin.system.payment.attribute') }}</a>
  573. <a class="dropdown-item" data-toggle="tab" href="#AlipayF2F" role="tab"
  574. aria-controls="AlipayF2F">{{ trans('admin.system.payment.channel.alipay') }}</a>
  575. <a class="dropdown-item" data-toggle="tab" href="#CodePay" role="tab"
  576. aria-controls="CodePay">{{ trans('admin.system.payment.channel.codepay') }}</a>
  577. <a class="dropdown-item" data-toggle="tab" href="#EPay" role="tab"
  578. aria-controls="EPay">{{ trans('admin.system.payment.channel.epay') }}</a>
  579. <a class="dropdown-item" data-toggle="tab" href="#PayJs" role="tab"
  580. aria-controls="PayJs">{{ trans('admin.system.payment.channel.payjs') }}</a>
  581. <a class="dropdown-item" data-toggle="tab" href="#PayPal" role="tab"
  582. aria-controls="PayPal">{{ trans('admin.system.payment.channel.paypal') }}</a>
  583. <a class="dropdown-item" data-toggle="tab" href="#Stripe" role="tab"
  584. aria-controls="Stripe">{{ trans('admin.system.payment.channel.stripe') }}</a>
  585. <a class="dropdown-item" data-toggle="tab" href="#Cryptomus" role="tab"
  586. aria-controls="Cryptomus">{{ trans('admin.system.payment.channel.cryptomus') }}</a>
  587. <a class="dropdown-item" data-toggle="tab" href="#PayBeaver" role="tab"
  588. aria-controls="PayBeaver">{{ trans('admin.system.payment.channel.paybeaver') }}</a>
  589. <a class="dropdown-item" data-toggle="tab" href="#THeadPay" role="tab"
  590. aria-controls="THeadPay">{{ trans('admin.system.payment.channel.theadpay') }}</a>
  591. <a class="dropdown-item" data-toggle="tab" href="#Manual" role="tab"
  592. aria-controls="Manual">{{ trans('admin.system.payment.channel.manual') }}</a>
  593. </div>
  594. </li>
  595. </ul>
  596. </div>
  597. </div>
  598. </div>
  599. </div>
  600. </div>
  601. </div>
  602. @endsection
  603. @section('javascript')
  604. <script src="/assets/global/vendor/lodash/lodash.min.js"></script>
  605. <script src="/assets/global/vendor/bootstrap-select/bootstrap-select.min.js"></script>
  606. <script src="/assets/global/vendor/switchery/switchery.min.js"></script>
  607. <script src="/assets/global/vendor/dropify/dropify.min.js"></script>
  608. <script src="/assets/global/js/Plugin/bootstrap-select.js"></script>
  609. <script src="/assets/global/js/Plugin/switchery.js"></script>
  610. <script src="/assets/global/js/Plugin/responsive-tabs.js"></script>
  611. <script src="/assets/global/js/Plugin/tabs.js"></script>
  612. <script src="/assets/custom/jump-tab.js"></script>
  613. <script src="/assets/global/js/Plugin/dropify.js"></script>
  614. <script>
  615. $(document).ready(function() {
  616. const selectorValues = {
  617. forbid_mode: '{{ $forbid_mode }}',
  618. username_type: '{{ $username_type ?: 'email' }}',
  619. is_invite_register: '{{ $is_invite_register }}',
  620. is_activate_account: '{{ $is_activate_account }}',
  621. ddns_mode: '{{ $ddns_mode }}',
  622. is_captcha: '{{ $is_captcha }}',
  623. referral_type: '{{ $referral_type }}',
  624. is_email_filtering: '{{ $is_email_filtering }}',
  625. is_AliPay: '{{ $is_AliPay }}',
  626. is_QQPay: '{{ $is_QQPay }}',
  627. is_WeChatPay: '{{ $is_WeChatPay }}',
  628. is_otherPay: {!! $is_otherPay ?: 'null' !!},
  629. standard_currency: '{{ $standard_currency }}',
  630. oauth_path: {!! $oauth_path ?: 'null' !!},
  631. account_expire_notification: {!! $account_expire_notification ?: 'null' !!},
  632. data_anomaly_notification: {!! $data_anomaly_notification ?: 'null' !!},
  633. data_exhaust_notification: {!! $data_exhaust_notification ?: 'null' !!},
  634. node_blocked_notification: {!! $node_blocked_notification ?: 'null' !!},
  635. node_daily_notification: {!! $node_daily_notification ?: 'null' !!},
  636. node_offline_notification: {!! $node_offline_notification ?: 'null' !!},
  637. node_renewal_notification: {!! $node_renewal_notification ?: 'null' !!},
  638. password_reset_notification: '{{ $password_reset_notification }}',
  639. payment_confirm_notification: '{{ $payment_confirm_notification }}',
  640. payment_received_notification: {!! $payment_received_notification ?: 'null' !!},
  641. ticket_closed_notification: {!! $ticket_closed_notification ?: 'null' !!},
  642. ticket_created_notification: {!! $ticket_created_notification ?: 'null' !!},
  643. ticket_replied_notification: {!! $ticket_replied_notification ?: 'null' !!},
  644. };
  645. Object.entries(selectorValues).forEach(([selector, value]) => {
  646. $(`#${selector}`).selectpicker('val', value);
  647. });
  648. const disablePayment = (selectId) => {
  649. const payments = @json($payments);
  650. const parentId = $(`#${selectId}`);
  651. parentId.find('option').each(function(index) {
  652. if (selectId === 'is_otherPay' || index > 0) {
  653. $(this).prop('disabled', !payments.includes($(this).val()));
  654. }
  655. });
  656. parentId.selectpicker('refresh');
  657. };
  658. ['is_AliPay', 'is_QQPay', 'is_WeChatPay', 'is_otherPay'].forEach(disablePayment);
  659. const disableChannel = (selectId) => {
  660. const channels = @json($channels);
  661. const parentId = $(`#${selectId}`);
  662. parentId.find('option').each(function() {
  663. $(this).prop('disabled', !channels.includes($(this).val()));
  664. });
  665. parentId.selectpicker('refresh');
  666. };
  667. ['account_expire_notification', 'data_anomaly_notification', 'data_exhaust_notification', 'node_blocked_notification',
  668. 'node_daily_notification', 'node_offline_notification', 'node_renewal_notification', 'payment_received_notification',
  669. 'ticket_closed_notification', 'ticket_created_notification', 'ticket_replied_notification'
  670. ].forEach(disableChannel);
  671. @if (!$captcha)
  672. $('#is_captcha').find('option').each(function(index) {
  673. if (index > 1) $(this).prop('disabled', true);
  674. });
  675. $('#is_captcha').selectpicker('refresh');
  676. @endif
  677. });
  678. // 系统设置更新
  679. const systemUpdate = _.debounce(function(systemItem, value) {
  680. @can('admin.system.update')
  681. $.post('{{ route('admin.system.update') }}', {
  682. _token: '{{ csrf_token() }}',
  683. name: systemItem,
  684. value: value,
  685. }, function(ret) {
  686. if (ret.status === 'success') {
  687. swal.fire({
  688. title: ret.message,
  689. icon: 'success',
  690. timer: 1500,
  691. showConfirmButton: false
  692. });
  693. } else {
  694. swal.fire({
  695. title: ret.message,
  696. icon: 'error'
  697. }).then(() => window.location.reload());
  698. }
  699. });
  700. @else
  701. swal.fire({
  702. title: '{{ trans('admin.setting.no_permission') }}',
  703. icon: 'error',
  704. timer: 1500,
  705. showConfirmButton: false,
  706. });
  707. @endcan
  708. }, 100);
  709. // 正常input更新
  710. const update = systemItem => systemUpdate(systemItem, $(`#${systemItem}`).val());
  711. // 需要检查限制的更新
  712. const updateFromInput = (systemItem, lowerBound = null, upperBound = null) => {
  713. const value = parseInt($(`#${systemItem}`).val());
  714. let errorMessage = null;
  715. if (lowerBound !== null && value < lowerBound) {
  716. errorMessage = `值不能小于 ${lowerBound}`;
  717. } else if (upperBound !== null && value > upperBound) {
  718. errorMessage = `值不能大于 ${upperBound}`;
  719. }
  720. if (errorMessage) {
  721. Swal.fire({
  722. title: errorMessage,
  723. icon: 'warning',
  724. timer: 1500,
  725. showConfirmButton: false
  726. });
  727. } else {
  728. systemUpdate(systemItem, value);
  729. }
  730. };
  731. // 其他项更新选择
  732. const updateFromOther = (inputType, systemItem) => {
  733. const input = $(`#${systemItem}`);
  734. let pendingValue = null; // 用于存储待更新的值
  735. const updateActions = {
  736. select: () => input.on('changed.bs.select', () => systemUpdate(systemItem, input.val())),
  737. multiSelect: () => input.on('changed.bs.select', () => {
  738. // 存储当前选择的值
  739. pendingValue = input.val();
  740. }).on('hidden.bs.select', () => {
  741. // 当 selectpicker 隐藏时进行更新
  742. if (pendingValue !== null) {
  743. systemUpdate(systemItem, pendingValue);
  744. pendingValue = null; // 清除待更新的值
  745. }
  746. }),
  747. switch: () => systemUpdate(systemItem, document.getElementById(systemItem).checked ? 1 : 0)
  748. }
  749. updateActions[inputType] && updateActions[inputType]();
  750. };
  751. // 使用通知渠道 发送测试消息
  752. @can('admin.test.notify')
  753. function sendTestNotification(channel) {
  754. $.post('{{ route('admin.test.notify') }}', {
  755. _token: '{{ csrf_token() }}',
  756. channel: channel
  757. }, function(ret) {
  758. if (ret.status === 'success') {
  759. swal.fire({
  760. title: ret.message,
  761. icon: 'success',
  762. timer: 1500,
  763. showConfirmButton: false
  764. });
  765. } else {
  766. swal.fire({
  767. title: ret.message,
  768. icon: 'error'
  769. });
  770. }
  771. });
  772. }
  773. @endcan
  774. // 生成网站安全码
  775. function makeWebsiteSecurityCode() {
  776. $.get('{{ route('createStr') }}')
  777. .done(function(securityCode) {
  778. $('#website_security_code').val(securityCode);
  779. });
  780. }
  781. @can('admin.test.epay')
  782. function epayInfo() {
  783. $.get('{{ route('admin.test.epay') }}', function(ret) {
  784. if (ret.status === 'success') {
  785. swal.fire({
  786. title: '易支付信息(仅供参考)',
  787. html: '商户状态: ' + ret.data['active'] + ' | 账号余额: ' + ret.data['money'] + ' | 结算账号:' +
  788. ret.data['account'] + '<br\><br\>渠道手续费:【支付宝 - ' + (100 - ret.data['alirate']) +
  789. '% | 微信 - ' + (100 - ret.data['wxrate']) + '% | QQ钱包 - ' + (100 - ret.data['qqrate']) +
  790. '%】<br\><br\> 请按照支付平台的介绍为准,本信息纯粹为Api获取信息',
  791. icon: 'info',
  792. });
  793. } else {
  794. swal.fire({
  795. title: ret.message,
  796. icon: 'error'
  797. });
  798. }
  799. });
  800. }
  801. @endcan
  802. </script>
  803. @endsection