Setting.cshtml 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572
  1. @using VberZero.Settings
  2. @using Abp.Net.Mail
  3. @using VberZero.Tools.StringModel
  4. @{
  5. ViewBag.Title = L("SettingTitle");
  6. var activeMenu = PermissionNames.VberSystemMgSettingMg; //The menu item will be active for this page.
  7. ViewBag.ActiveMenu = activeMenu;
  8. }
  9. <vc:breadcrumb active-menu="@(activeMenu)"></vc:breadcrumb>
  10. <div class="container">
  11. @*<div class="card mb-5">
  12. <div class="card-header border-0 cursor-pointer min-h-50px" data-bs-toggle="collapse" data-bs-target="#vb_setting_app">
  13. <div class="card-title m-0 py-5">
  14. <h3 class="fw-bolder m-0">应用配置</h3>
  15. </div>
  16. </div>
  17. <div id="vb_setting_app" class="collapse show">
  18. <div class="card-body border-top p-4">
  19. </div>
  20. </div>
  21. </div>
  22. *@
  23. <div class="card mb-5">
  24. <div class="card-header border-0 cursor-pointer min-h-50px" data-bs-toggle="collapse" data-bs-target="#vb_setting_system">
  25. <div class="card-title m-0 py-5">
  26. <h3 class="fw-bolder m-0">系统配置</h3>
  27. </div>
  28. </div>
  29. <div id="vb_setting_system" class="collapse show">
  30. <div class="card-body border-top p-4">
  31. <div class="d-flex flex-wrap align-items-center" data-vb-setting-box="">
  32. <div data-vb-setting-display="" class="">
  33. <div class="fs-6 fw-bolder mb-1">平台名称</div>
  34. <div class="fw-bold text-gray-600" data-vb-setting-value="">@(await SettingManager.GetSettingValueForApplicationAsync(VzSettingNames.AdminSystemName))</div>
  35. </div>
  36. <div data-vb-setting-form="" class="flex-row-fluid d-none">
  37. <form class="form">
  38. <div class="row mb-6">
  39. <div class="col-lg-6 mb-4 mb-lg-0">
  40. <div class="mb-0">
  41. <label class="form-label fs-6 fw-bolder mb-3">平台名称</label>
  42. <input type="text" data-vb-setting-input="input" data-vb-setting-name="@(VzSettingNames.AdminSystemName)" class="form-control form-control-lg form-control-solid" placeholder="请输入平台名称" name="setting-value" value=""/>
  43. </div>
  44. </div>
  45. <div class="col-lg-6">
  46. <div class="mb-0">
  47. <label class="form-label fs-6 fw-bolder mb-3">管理员密码</label>
  48. <input type="password" class="form-control form-control-lg form-control-solid" name="password" id=""/>
  49. </div>
  50. </div>
  51. </div>
  52. <div class="d-flex">
  53. <button data-vb-setting-btn="submit" type="button" class="btn btn-sm btn-primary me-2 px-6">保存</button>
  54. <button data-vb-setting-btn="hide" type="button" class="btn btn-sm btn-color-gray-400 btn-active-light-primary px-6">取消</button>
  55. </div>
  56. </form>
  57. </div>
  58. <div class="ms-auto">
  59. <button data-vb-setting-btn="show" class="btn btn-light btn-light-primary">修改</button>
  60. </div>
  61. </div>
  62. <div class="separator separator-dashed my-6"></div>
  63. <div class="d-flex flex-wrap align-items-center" data-vb-setting-box="">
  64. <div data-vb-setting-display="" class="">
  65. <div class="fs-6 fw-bolder mb-1">用户初始密码</div>
  66. <div class="fw-bold text-gray-600" data-vb-setting-value="">@(await SettingManager.GetSettingValueForApplicationAsync(VzSettingNames.UserDefaultPassword))</div>
  67. </div>
  68. <div data-vb-setting-form="" class="flex-row-fluid d-none">
  69. <form class="form">
  70. <div class="row mb-6">
  71. <div class="col-lg-6 mb-4 mb-lg-0">
  72. <div class="mb-0">
  73. <label class="form-label fs-6 fw-bolder mb-3">用户初始密码</label>
  74. <input type="text" data-vb-setting-input="input" data-vb-setting-name="@(VzSettingNames.UserDefaultPassword)" class="form-control form-control-lg form-control-solid" placeholder="请输入用户初始密码" name="setting-value" value=""/>
  75. </div>
  76. </div>
  77. <div class="col-lg-6">
  78. <div class="mb-0">
  79. <label class="form-label fs-6 fw-bolder mb-3">管理员密码</label>
  80. <input type="password" class="form-control form-control-lg form-control-solid" name="password" id=""/>
  81. </div>
  82. </div>
  83. </div>
  84. <div class="d-flex">
  85. <button data-vb-setting-btn="submit" type="button" class="btn btn-sm btn-primary me-2 px-6">保存</button>
  86. <button data-vb-setting-btn="hide" type="button" class="btn btn-sm btn-color-gray-400 btn-active-light-primary px-6">取消</button>
  87. </div>
  88. </form>
  89. </div>
  90. <div class="ms-auto">
  91. <button data-vb-setting-btn="show" class="btn btn-light btn-light-primary">修改</button>
  92. </div>
  93. </div>
  94. <div class="separator separator-dashed my-6"></div>
  95. <div class="d-flex flex-wrap align-items-center" data-vb-setting-box="">
  96. <div data-vb-setting-display="" class="">
  97. <div class=" "></div>
  98. <label class="d-flex align-items-center mb-1">
  99. <span class="fs-6 fw-bolder">允许上传的文件类型</span>
  100. <i class="fas fa-exclamation-circle ms-2 fs-7" data-bs-toggle="tooltip" data-bs-delay-hide="800" data-bs-delay-show="200" title="以逗号(,)分隔允许的文件后缀"></i>
  101. </label>
  102. <div class="fw-bold text-gray-600" data-vb-setting-value="">@(await SettingManager.GetSettingValueForApplicationAsync(VzSettingNames.UploadFileExt))</div>
  103. </div>
  104. <div data-vb-setting-form="" class="flex-row-fluid d-none">
  105. <form class="form">
  106. <div class="row mb-6">
  107. <div class="col-lg-6 mb-4 mb-lg-0">
  108. <div class="mb-0">
  109. <label class="form-label fs-6 fw-bolder mb-3">允许上传的文件类型</label>
  110. <input type="text" data-vb-setting-input="input" data-vb-setting-name="@(VzSettingNames.UploadFileExt)" class="form-control form-control-lg form-control-solid" placeholder="请输入允许上传的文件类型" name="setting-value" value=""/>
  111. </div>
  112. </div>
  113. <div class="col-lg-6">
  114. <div class="mb-0">
  115. <label class="form-label fs-6 fw-bolder mb-3">管理员密码</label>
  116. <input type="password" class="form-control form-control-lg form-control-solid" name="password" id=""/>
  117. </div>
  118. </div>
  119. </div>
  120. <div class="d-flex">
  121. <button data-vb-setting-btn="submit" type="button" class="btn btn-sm btn-primary me-2 px-6">保存</button>
  122. <button data-vb-setting-btn="hide" type="button" class="btn btn-sm btn-color-gray-400 btn-active-light-primary px-6">取消</button>
  123. </div>
  124. </form>
  125. </div>
  126. <div class="ms-auto">
  127. <button data-vb-setting-btn="show" class="btn btn-light btn-light-primary">修改</button>
  128. </div>
  129. </div>
  130. <div class="separator separator-dashed my-6"></div>
  131. <div class="d-flex flex-wrap align-items-center" data-vb-setting-box="">
  132. <div data-vb-setting-display="" class="">
  133. <div class=" "></div>
  134. <label class="d-flex align-items-center mb-1">
  135. <span class="fs-6 fw-bolder">允许上传的单个文件最大值(单位: M)</span>
  136. <i class="fas fa-exclamation-circle ms-2 fs-7" data-bs-toggle="tooltip" data-bs-delay-hide="800" data-bs-delay-show="200" title="1M—100M"></i>
  137. </label>
  138. <div class="fw-bold text-gray-600" data-vb-setting-value="">@(await SettingManager.GetSettingValueForApplicationAsync(VzSettingNames.UploadFileMaxSize))</div>
  139. </div>
  140. <div data-vb-setting-form="" class="flex-row-fluid d-none">
  141. <form class="form">
  142. <div class="row mb-6">
  143. <div class="col-lg-6 mb-4 mb-lg-0">
  144. <div class="mb-0">
  145. <label class="form-label fs-6 fw-bolder mb-3">允许上传的单个文件最大值(单位: M)</label>
  146. <input type="number" min="1" max="100" data-vb-setting-input="input" data-vb-setting-name="@(VzSettingNames.UploadFileMaxSize)" class="form-control form-control-lg form-control-solid" placeholder="请输入允许上传的单个文件最大值(单位: M)" name="setting-value" value=""/>
  147. </div>
  148. </div>
  149. <div class="col-lg-6">
  150. <div class="mb-0">
  151. <label class="form-label fs-6 fw-bolder mb-3">管理员密码</label>
  152. <input type="password" class="form-control form-control-lg form-control-solid" name="password" id=""/>
  153. </div>
  154. </div>
  155. </div>
  156. <div class="d-flex">
  157. <button data-vb-setting-btn="submit" type="button" class="btn btn-sm btn-primary me-2 px-6">保存</button>
  158. <button data-vb-setting-btn="hide" type="button" class="btn btn-sm btn-color-gray-400 btn-active-light-primary px-6">取消</button>
  159. </div>
  160. </form>
  161. </div>
  162. <div class="ms-auto">
  163. <button data-vb-setting-btn="show" class="btn btn-light btn-light-primary">修改</button>
  164. </div>
  165. </div>
  166. </div>
  167. </div>
  168. </div>
  169. <div class="card">
  170. <div class="card-header border-0 cursor-pointer min-h-50px" data-bs-toggle="collapse" data-bs-target="#vb_setting_email">
  171. <div class="card-title m-0 py-5">
  172. <h3 class="fw-bolder m-0">邮箱配置</h3>
  173. </div>
  174. </div>
  175. <div id="vb_setting_email" class="collapse show">
  176. <div class="card-body border-top p-4">
  177. <div class="d-flex flex-wrap align-items-center" data-vb-setting-box="">
  178. <div data-vb-setting-display="" class="">
  179. <div class="fs-6 fw-bolder mb-1">默认邮箱发送地址</div>
  180. <div class="fw-bold text-gray-600" data-vb-setting-value="">@(await SettingManager.GetSettingValueForApplicationAsync(EmailSettingNames.DefaultFromAddress))</div>
  181. </div>
  182. <div data-vb-setting-form="" class="flex-row-fluid d-none">
  183. <form class="form">
  184. <div class="row mb-6">
  185. <div class="col-lg-6 mb-4 mb-lg-0">
  186. <div class="mb-0">
  187. <label class="form-label fs-6 fw-bolder mb-3">默认邮箱发送地址</label>
  188. <input type="text" data-vb-setting-input="input" data-vb-setting-name="@(EmailSettingNames.DefaultFromAddress)" class="form-control form-control-lg form-control-solid" placeholder="请输入默认邮箱发送地址" name="setting-value" value=""/>
  189. </div>
  190. </div>
  191. <div class="col-lg-6">
  192. <div class="mb-0">
  193. <label class="form-label fs-6 fw-bolder mb-3">管理员密码</label>
  194. <input type="password" class="form-control form-control-lg form-control-solid" name="password" id=""/>
  195. </div>
  196. </div>
  197. </div>
  198. <div class="d-flex">
  199. <button data-vb-setting-btn="submit" type="button" class="btn btn-sm btn-primary me-2 px-6">保存</button>
  200. <button data-vb-setting-btn="hide" type="button" class="btn btn-sm btn-color-gray-400 btn-active-light-primary px-6">取消</button>
  201. </div>
  202. </form>
  203. </div>
  204. <div class="ms-auto">
  205. <button data-vb-setting-btn="show" class="btn btn-light btn-light-primary">修改</button>
  206. </div>
  207. </div>
  208. <div class="separator separator-dashed my-6"></div>
  209. <div class="d-flex flex-wrap align-items-center" data-vb-setting-box="">
  210. <div data-vb-setting-display="" class="">
  211. <div class="fs-6 fw-bolder mb-1">默认邮箱发送人</div>
  212. <div class="fw-bold text-gray-600" data-vb-setting-value="">@(await SettingManager.GetSettingValueForApplicationAsync(EmailSettingNames.DefaultFromDisplayName))</div>
  213. </div>
  214. <div data-vb-setting-form="" class="flex-row-fluid d-none">
  215. <form class="form">
  216. <div class="row mb-6">
  217. <div class="col-lg-6 mb-4 mb-lg-0">
  218. <div class="mb-0">
  219. <label class="form-label fs-6 fw-bolder mb-3">默认邮箱发送人</label>
  220. <input type="text" data-vb-setting-input="input" data-vb-setting-name="@(EmailSettingNames.DefaultFromDisplayName)" class="form-control form-control-lg form-control-solid" placeholder="请输入默认邮箱发送人" name="setting-value" value=""/>
  221. </div>
  222. </div>
  223. <div class="col-lg-6">
  224. <div class="mb-0">
  225. <label class="form-label fs-6 fw-bolder mb-3">管理员密码</label>
  226. <input type="password" class="form-control form-control-lg form-control-solid" name="password" id=""/>
  227. </div>
  228. </div>
  229. </div>
  230. <div class="d-flex">
  231. <button data-vb-setting-btn="submit" type="button" class="btn btn-sm btn-primary me-2 px-6">保存</button>
  232. <button data-vb-setting-btn="hide" type="button" class="btn btn-sm btn-color-gray-400 btn-active-light-primary px-6">取消</button>
  233. </div>
  234. </form>
  235. </div>
  236. <div class="ms-auto">
  237. <button data-vb-setting-btn="show" class="btn btn-light btn-light-primary">修改</button>
  238. </div>
  239. </div>
  240. <div class="separator separator-dashed my-5"></div>
  241. <div class="d-flex flex-stack" data-vb-setting-box="">
  242. <div class="d-flex">
  243. <div class="d-flex flex-column">
  244. <span class="fs-5 text-dark fw-bolder">Ssl</span>
  245. <div class="fs-6 fw-bold text-gray-400">是否启用邮件服务器Ssl</div>
  246. </div>
  247. </div>
  248. <div class="d-flex justify-content-end">
  249. <label class="form-check form-check-solid form-switch">
  250. <input class="form-check-input w-45px h-30px" type="checkbox" data-vb-setting-input="switch" data-vb-setting-name="@(EmailSettingNames.Smtp.EnableSsl)" @((await SettingManager.GetSettingValueForApplicationAsync(EmailSettingNames.Smtp.EnableSsl)).ValB()?"checked=\"checked\"":"") />
  251. <span class="form-check-label"></span>
  252. </label>
  253. </div>
  254. </div>
  255. <div class="separator separator-dashed my-5"></div>
  256. <div class="d-flex flex-stack" data-vb-setting-box="">
  257. <div class="d-flex">
  258. <div class="d-flex flex-column">
  259. <span class="fs-5 text-dark fw-bolder">Credential</span>
  260. <div class="fs-6 fw-bold text-gray-400">是否使用密钥</div>
  261. </div>
  262. </div>
  263. <div class="d-flex justify-content-end">
  264. <label class="form-check form-check-solid form-switch">
  265. <input class="form-check-input w-45px h-30px" type="checkbox" data-vb-setting-input="switch" data-vb-setting-name="@(EmailSettingNames.Smtp.UseDefaultCredentials)" @((await SettingManager.GetSettingValueForApplicationAsync(EmailSettingNames.Smtp.UseDefaultCredentials)).ValB()?"checked=\"checked\"":"") />
  266. <span class="form-check-label"></span>
  267. </label>
  268. </div>
  269. </div>
  270. <div class="separator separator-dashed my-6"></div>
  271. <div class="d-flex flex-wrap align-items-center" data-vb-setting-box="">
  272. <div data-vb-setting-display="" class="">
  273. <div class="fs-6 fw-bolder mb-1">邮件服务器Smtp域名</div>
  274. <div class="fw-bold text-gray-600" data-vb-setting-value="">@(await SettingManager.GetSettingValueForApplicationAsync(EmailSettingNames.Smtp.Domain))</div>
  275. </div>
  276. <div data-vb-setting-form="" class="flex-row-fluid d-none">
  277. <form class="form">
  278. <div class="row mb-6">
  279. <div class="col-lg-6 mb-4 mb-lg-0">
  280. <div class="mb-0">
  281. <label class="form-label fs-6 fw-bolder mb-3">邮件服务器Smtp域名</label>
  282. <input type="text" data-vb-setting-input="input" data-vb-setting-name="@(EmailSettingNames.Smtp.Domain)" class="form-control form-control-lg form-control-solid" placeholder="请输入邮件服务器Smtp域名" name="setting-value" value=""/>
  283. </div>
  284. </div>
  285. <div class="col-lg-6">
  286. <div class="mb-0">
  287. <label class="form-label fs-6 fw-bolder mb-3">管理员密码</label>
  288. <input type="password" class="form-control form-control-lg form-control-solid" name="password" id=""/>
  289. </div>
  290. </div>
  291. </div>
  292. <div class="d-flex">
  293. <button data-vb-setting-btn="submit" type="button" class="btn btn-sm btn-primary me-2 px-6">保存</button>
  294. <button data-vb-setting-btn="hide" type="button" class="btn btn-sm btn-color-gray-400 btn-active-light-primary px-6">取消</button>
  295. </div>
  296. </form>
  297. </div>
  298. <div class="ms-auto">
  299. <button data-vb-setting-btn="show" class="btn btn-light btn-light-primary">修改</button>
  300. </div>
  301. </div>
  302. <div class="separator separator-dashed my-6"></div>
  303. <div class="d-flex flex-wrap align-items-center" data-vb-setting-box="">
  304. <div data-vb-setting-display="" class="">
  305. <div class="fs-6 fw-bolder mb-1">邮件服务器Smtp主机</div>
  306. <div class="fw-bold text-gray-600" data-vb-setting-value="">@(await SettingManager.GetSettingValueForApplicationAsync(EmailSettingNames.Smtp.Host))</div>
  307. </div>
  308. <div data-vb-setting-form="" class="flex-row-fluid d-none">
  309. <form class="form">
  310. <div class="row mb-6">
  311. <div class="col-lg-6 mb-4 mb-lg-0">
  312. <div class="mb-0">
  313. <label class="form-label fs-6 fw-bolder mb-3">邮件服务器Smtp主机</label>
  314. <input type="text" data-vb-setting-input="input" data-vb-setting-name="@(EmailSettingNames.Smtp.Host)" class="form-control form-control-lg form-control-solid" placeholder="请输入邮件服务器Smtp主机" name="setting-value" value=""/>
  315. </div>
  316. </div>
  317. <div class="col-lg-6">
  318. <div class="mb-0">
  319. <label class="form-label fs-6 fw-bolder mb-3">管理员密码</label>
  320. <input type="password" class="form-control form-control-lg form-control-solid" name="password" id=""/>
  321. </div>
  322. </div>
  323. </div>
  324. <div class="d-flex">
  325. <button data-vb-setting-btn="submit" type="button" class="btn btn-sm btn-primary me-2 px-6">保存</button>
  326. <button data-vb-setting-btn="hide" type="button" class="btn btn-sm btn-color-gray-400 btn-active-light-primary px-6">取消</button>
  327. </div>
  328. </form>
  329. </div>
  330. <div class="ms-auto">
  331. <button data-vb-setting-btn="show" class="btn btn-light btn-light-primary">修改</button>
  332. </div>
  333. </div>
  334. <div class="separator separator-dashed my-6"></div>
  335. <div class="d-flex flex-wrap align-items-center" data-vb-setting-box="">
  336. <div data-vb-setting-display="" class="">
  337. <div class="fs-6 fw-bolder mb-1">邮件服务器Smtp端口</div>
  338. <div class="fw-bold text-gray-600" data-vb-setting-value="">@(await SettingManager.GetSettingValueForApplicationAsync(EmailSettingNames.Smtp.Port))</div>
  339. </div>
  340. <div data-vb-setting-form="" class="flex-row-fluid d-none">
  341. <form class="form">
  342. <div class="row mb-6">
  343. <div class="col-lg-6 mb-4 mb-lg-0">
  344. <div class="mb-0">
  345. <label class="form-label fs-6 fw-bolder mb-3">邮件服务器Smtp端口</label>
  346. <input type="text" data-vb-setting-input="input" data-vb-setting-name="@(EmailSettingNames.Smtp.Port)" class="form-control form-control-lg form-control-solid" placeholder="请输入邮件服务器Smtp端口" name="setting-value" value=""/>
  347. </div>
  348. </div>
  349. <div class="col-lg-6">
  350. <div class="mb-0">
  351. <label class="form-label fs-6 fw-bolder mb-3">管理员密码</label>
  352. <input type="password" class="form-control form-control-lg form-control-solid" name="password" id=""/>
  353. </div>
  354. </div>
  355. </div>
  356. <div class="d-flex">
  357. <button data-vb-setting-btn="submit" type="button" class="btn btn-sm btn-primary me-2 px-6">保存</button>
  358. <button data-vb-setting-btn="hide" type="button" class="btn btn-sm btn-color-gray-400 btn-active-light-primary px-6">取消</button>
  359. </div>
  360. </form>
  361. </div>
  362. <div class="ms-auto">
  363. <button data-vb-setting-btn="show" class="btn btn-light btn-light-primary">修改</button>
  364. </div>
  365. </div>
  366. <div class="separator separator-dashed my-6"></div>
  367. <div class="d-flex flex-wrap align-items-center" data-vb-setting-box="">
  368. <div data-vb-setting-display="" class="">
  369. <div class="fs-6 fw-bolder mb-1">邮件服务器Smtp用户名</div>
  370. <div class="fw-bold text-gray-600" data-vb-setting-value="">@(await SettingManager.GetSettingValueForApplicationAsync(EmailSettingNames.Smtp.UserName))</div>
  371. </div>
  372. <div data-vb-setting-form="" class="flex-row-fluid d-none">
  373. <form class="form">
  374. <div class="row mb-6">
  375. <div class="col-lg-6 mb-4 mb-lg-0">
  376. <div class="mb-0">
  377. <label class="form-label fs-6 fw-bolder mb-3">邮件服务器Smtp用户名</label>
  378. <input type="text" data-vb-setting-input="input" data-vb-setting-name="@(EmailSettingNames.Smtp.UserName)" class="form-control form-control-lg form-control-solid" placeholder="请输入邮件服务器Smtp用户名" name="setting-value" value=""/>
  379. </div>
  380. </div>
  381. <div class="col-lg-6">
  382. <div class="mb-0">
  383. <label class="form-label fs-6 fw-bolder mb-3">管理员密码</label>
  384. <input type="password" class="form-control form-control-lg form-control-solid" name="password" id=""/>
  385. </div>
  386. </div>
  387. </div>
  388. <div class="d-flex">
  389. <button data-vb-setting-btn="submit" type="button" class="btn btn-sm btn-primary me-2 px-6">保存</button>
  390. <button data-vb-setting-btn="hide" type="button" class="btn btn-sm btn-color-gray-400 btn-active-light-primary px-6">取消</button>
  391. </div>
  392. </form>
  393. </div>
  394. <div class="ms-auto">
  395. <button data-vb-setting-btn="show" class="btn btn-light btn-light-primary">修改</button>
  396. </div>
  397. </div>
  398. <div class="separator separator-dashed my-6"></div>
  399. <div class="d-flex flex-wrap align-items-center" data-vb-setting-box="">
  400. <div data-vb-setting-display="" class="">
  401. <div class="fs-6 fw-bolder mb-1">邮件服务器Smtp密码</div>
  402. <div class="fw-bold text-gray-600" data-vb-setting-value="">@(await SettingManager.GetSettingValueForApplicationAsync(EmailSettingNames.Smtp.Password))</div>
  403. </div>
  404. <div data-vb-setting-form="" class="flex-row-fluid d-none">
  405. <form class="form">
  406. <div class="row mb-6">
  407. <div class="col-lg-6 mb-4 mb-lg-0">
  408. <div class="mb-0">
  409. <label class="form-label fs-6 fw-bolder mb-3">邮件服务器Smtp密码</label>
  410. <input type="text" data-vb-setting-input="input" data-vb-setting-name="@(EmailSettingNames.Smtp.Password)" class="form-control form-control-lg form-control-solid" placeholder="请输入邮件服务器Smtp密码" name="setting-value" value=""/>
  411. </div>
  412. </div>
  413. <div class="col-lg-6">
  414. <div class="mb-0">
  415. <label class="form-label fs-6 fw-bolder mb-3">管理员密码</label>
  416. <input type="password" class="form-control form-control-lg form-control-solid" name="password" id=""/>
  417. </div>
  418. </div>
  419. </div>
  420. <div class="d-flex">
  421. <button data-vb-setting-btn="submit" type="button" class="btn btn-sm btn-primary me-2 px-6">保存</button>
  422. <button data-vb-setting-btn="hide" type="button" class="btn btn-sm btn-color-gray-400 btn-active-light-primary px-6">取消</button>
  423. </div>
  424. </form>
  425. </div>
  426. <div class="ms-auto">
  427. <button data-vb-setting-btn="show" class="btn btn-light btn-light-primary">修改</button>
  428. </div>
  429. </div>
  430. </div>
  431. </div>
  432. </div>
  433. </div>
  434. @section scripts{
  435. <script>
  436. var VbSettingMethods = {
  437. init: function() {
  438. const ClassName = {
  439. SETTING_BOX: `vb-setting-box`,
  440. SETTING_NAME: `vb-setting-name`,
  441. SETTING_DISPLAY: `vb-setting-display`,
  442. SETTING_FORM: `vb-setting-form`,
  443. SETTING_VALUE: `vb-setting-value`,
  444. SETTING_INPUT: `vb-setting-input`,
  445. SHOW_BTN: `vb-setting-btn="show"`,
  446. HIDE_BTN: `vb-setting-btn="hide"`,
  447. SUBMIT_BTN: `vb-setting-btn="submit"`
  448. };
  449. const Selector = {
  450. SETTING_BOX: `[data-${ClassName.SETTING_BOX}]`,
  451. SETTING_NAME: `[data-${ClassName.SETTING_NAME}]`,
  452. SETTING_DISPLAY: `[data-${ClassName.SETTING_DISPLAY}]`,
  453. SETTING_FORM: `[data-${ClassName.SETTING_FORM}]`,
  454. SETTING_VALUE: `[data-${ClassName.SETTING_VALUE}]`,
  455. SETTING_INPUT: `[data-${ClassName.SETTING_INPUT}]`,
  456. SHOW_BTN: `[data-${ClassName.SHOW_BTN}]`,
  457. HIDE_BTN: `[data-${ClassName.HIDE_BTN}]`,
  458. SUBMIT_BTN: `[data-${ClassName.SUBMIT_BTN}]`,
  459. SUBMIT_BTN_SWITCH: `[data-${ClassName.SETTING_INPUT}="switch"]`,
  460. PASSWORD:`[name="password"]`
  461. };
  462. const _toggle = function(that, isShow) {
  463. const $box = $(that).closest(Selector.SETTING_BOX);
  464. $box.find(Selector.SETTING_DISPLAY).toggleClass('d-none');
  465. $box.find(Selector.SETTING_FORM).toggleClass('d-none');
  466. $box.find(Selector.SHOW_BTN).toggleClass('d-none');
  467. if (isShow) {
  468. $box.find(Selector.SETTING_INPUT).val($box.find(Selector.SETTING_VALUE).text()).trigger('change');
  469. }
  470. },
  471. _save = function(that) {
  472. const $box = $(that).closest(Selector.SETTING_BOX);
  473. let $input = $box.find(Selector.SETTING_INPUT);
  474. let name = $input.data(ClassName.SETTING_NAME),
  475. value = $input.val(),
  476. type = $input.data(ClassName.SETTING_INPUT),
  477. pwd = $box.find(Selector.PASSWORD).val();
  478. if (type == "switch") {
  479. let isChecked = $input.is(":checked");
  480. $input.prop("checked", !isChecked);
  481. $(document).VbModal('create',
  482. {
  483. modalId: "admin-password",
  484. title: "管理员密码",
  485. modalBody: `<form><div class="d-flex flex-column ">
  486. <label class="fs-6 fw-bolder mb-1">管理员密码</label>
  487. <input type="password" class="form-control form-control-sm form-control-solid" name="password" placeholder="请输入管理员密码...">
  488. <div class="invalid-feedback"></div>
  489. </div></form>`,
  490. modalSize: "modal-sm",
  491. save: () => {
  492. pwd = $('#admin-password').find(Selector.PASSWORD).val();
  493. if (!pwd) {
  494. abp.message.warn("管理员密码不能为空!");
  495. return;
  496. }
  497. VbSettingMethods.save($input,name, isChecked + "", pwd,() => {
  498. $input.prop("checked", isChecked);
  499. $('#admin-password').modal('hide');
  500. });
  501. }
  502. });
  503. } else {
  504. if (!pwd) {
  505. abp.message.warn("管理员密码不能为空!");
  506. return;
  507. }
  508. VbSettingMethods.save($input,name, value, pwd,() => {
  509. $box.find(Selector.SETTING_VALUE).html(value);
  510. _toggle($input, false);
  511. });
  512. }
  513. };
  514. $(Selector.SHOW_BTN).on('click.setting', function() { _toggle(this, true); });
  515. $(Selector.HIDE_BTN).on('click.setting', function() { _toggle(this, false); });
  516. $(Selector.SUBMIT_BTN).on('click.setting', function() {_save(this)});
  517. $(Selector.SUBMIT_BTN_SWITCH).on('change.setting', function() {_save(this)});
  518. },
  519. save: function($input,name,value,password,successCallBack,errorCallBack) {
  520. console.log("SETTING", name, value,password);
  521. $.vbAjax1({
  522. url: abp.appUrl + "Setting/ChangeGlobalSetting",
  523. data: { name: name, value: value, password: password },
  524. success: (res) => {
  525. if (successCallBack && typeof successCallBack == "function") {
  526. successCallBack.call($input, res);
  527. }
  528. },
  529. error: (err) => {
  530. if (errorCallBack && typeof errorCallBack == "function") {
  531. errorCallBack.call($input, err);
  532. }
  533. }
  534. });
  535. }
  536. };
  537. $(function() {
  538. VbSettingMethods.init();
  539. });
  540. </script>
  541. }