basics.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>编辑管理员</title>
  7. <link rel="shortcut icon" href="favicon.ico">
  8. <link href="__CSS__/bootstrap.min.css?v=3.3.6" rel="stylesheet">
  9. <link href="__CSS__/font-awesome.min.css?v=4.4.0" rel="stylesheet">
  10. <link href="__CSS__/animate.min.css" rel="stylesheet">
  11. <link href="__JS__/layui/css/layui.css" rel="stylesheet">
  12. <link href="__CSS__/style.min.css?v=4.1.0" rel="stylesheet">
  13. </head>
  14. <body class="gray-bg">
  15. <div class="layui-layer-shade" id="all_blank_img" style="display: none;"></div>
  16. <div class="layui-layer layui-layer-dialog" id="check_image" style="display: none;">
  17. <div class="layui-layer-title" style="cursor: move;">请选择图片</div>
  18. <div id="images" class="layui-layer-content layui-layer-padding" style="height: 70vh;">
  19. {volist name="material" id="vo"}
  20. <div style="width: 21.5%;height:100px;float: left;text-align: center;background-color: #DCDCDC;margin: 1%;position: relative;">
  21. <div style="height:23px;line-height: 23px;width:80%;margin: 0 auto;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;font-size: 11px;">{$vo.name}</div>
  22. <img onclick="onCheckImage(`{$vo.url}`)" src="{$vo.url}" style="margin-top: 0px;height: 70px;">
  23. </div>
  24. {/volist}
  25. </div>
  26. <span class="layui-layer-setwin"></span>
  27. <div class="layui-layer-btn layui-layer-btn-">
  28. <a class="layui-layer-btn0" onclick="closeCheckImage()">取消</a>
  29. </div>
  30. <span class="layui-layer-resize"></span>
  31. </div>
  32. <div class="layui-layer-shade" id="all_blank" style="display: none"></div>
  33. <div class="layui-layer layui-layer-dialog" id="check_img" style="display: none">
  34. <div class="layui-layer-title" style="cursor: move;">请选择图片</div>
  35. <div id="imgs" padding="0" class="layui-layer-content layui-layer-padding" style="height: 70vh;">
  36. {volist name="material" id="vo"}
  37. <div style="width: 21.5%;height:100px;float: left;text-align: center;background-color: #DCDCDC;margin: 1%;position: relative;">
  38. <div style="height:23px;line-height: 23px;width:80%;margin: 0 auto;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;font-size: 11px;">{$vo.name}</div>
  39. <img onclick="onCheckImg(`{$vo.url}`)" src="{$vo.url}" style="margin-top: 0px;height: 70px;">
  40. </div>
  41. {/volist}
  42. </div>
  43. <span class="layui-layer-setwin"></span>
  44. <div class="layui-layer-btn layui-layer-btn-">
  45. <a class="layui-layer-btn0" onclick="closeCheckImg()">取消</a>
  46. </div>
  47. <span class="layui-layer-resize"></span>
  48. </div>
  49. <div class="wrapper wrapper-content animated fadeInRight">
  50. <div class="row">
  51. <div class="col-sm-8">
  52. <div class="ibox float-e-margins">
  53. <div class="ibox-title">
  54. <h5>基础设置</h5>
  55. </div>
  56. <div class="ibox-content">
  57. <form class="form-horizontal m-t layui-form" id="commentForm" method="post" action="{:url('system/basics')}">
  58. <h4 style="margin-bottom: 10px;">欢迎语设置</h4>
  59. <div class="ibox-title">
  60. </div>
  61. <div class="form-group">
  62. <label class="col-sm-3 control-label">客服欢迎语:</label>
  63. <div class="input-group col-sm-4">
  64. <input type="text" class="form-control" name="serverWord" required="" aria-required="true" value="{$replyServer['word']}">
  65. </div>
  66. </div>
  67. <h4 style="margin-bottom: 10px; margin-top: 40px">广告设置</h4>
  68. <div class="ibox-title">
  69. </div>
  70. <div class="form-group">
  71. <label class="col-sm-3 control-label">广告网址:</label>
  72. <div class="input-group col-sm-4">
  73. <input type="text" class="form-control" name="advertisementUrl" required="" aria-required="true" value="{$advertisement['advertisement_url']}">
  74. </div>
  75. </div>
  76. <div class="form-group layui-form-item form-inline" style="height: 60px;">
  77. <input type="hidden" name="advertisement_img" id="advertisement_img"/>
  78. <label class="col-sm-3 control-label">广告图片:</label>
  79. <div class="input-group col-sm-1">
  80. <button type="button" class="layui-btn layui-btn-small" id="up-avatar">
  81. <i class="layui-icon"></i>上传图片</button>
  82. </div>
  83. <span>建议上传420px*700px</span>
  84. <button type="button" class="layui-btn layui-btn-small" onclick="checkImage()">选择图片</button>
  85. <div class="input-group col-sm-3" id="avatar">
  86. <img src="{$advertisement['advertisement_img']}" id="ChoiceImg" height="40px"/>
  87. </div>
  88. </div>
  89. <div class="form-group layui-form-item" style="display: none;">
  90. <label class="col-sm-3 control-label">是否启用:</label>
  91. <div class="input-group col-sm-6">
  92. {if !empty($status)}
  93. {foreach name="status" item="vo" key="key"}
  94. <input type="radio" name="status" value="{$key}" title="{$vo}" {if $key eq $advertisement['advertisement_status']}checked{/if}>
  95. {/foreach}
  96. {/if}
  97. </div>
  98. </div>
  99. <h4 style="margin-bottom: 10px; margin-top: 40px">企业logo设置</h4>
  100. <div class="ibox-title">
  101. </div>
  102. <div class="form-group">
  103. <label class="col-sm-3 control-label">企业名称:</label>
  104. <div class="input-group col-sm-4">
  105. <input type="text" class="form-control" name="enterprise_name" required="" aria-required="true" value="{$settings['enterprise_name']}" placeholder="不超过8个字符">
  106. </div>
  107. </div>
  108. <div class="form-group layui-form-item form-inline" style="height: 60px;">
  109. <input type="hidden" name="logo_img" id="logo_img"/>
  110. <label class="col-sm-3 control-label">企业logo:</label>
  111. <div class="input-group col-sm-1">
  112. <button type="button" class="layui-btn layui-btn-small" id="up-logo">
  113. <i class="layui-icon"></i>上传logo</button>
  114. </div>
  115. <span>建议上传48px*48px</span>
  116. <button type="button" class="layui-btn layui-btn-small" id="" onclick="checkImg()">选择图片</button>
  117. <div class="input-group col-sm-3" id="logo">
  118. <img src="{$settings['logo']}" id="onChoiceImg" height="40px"/>
  119. </div>
  120. </div>
  121. <h4 style="margin-bottom: 10px;">接入设置</h4>
  122. <div class="ibox-title">
  123. </div>
  124. <div class="form-group">
  125. <label class="col-sm-3 control-label">网址接入:</label>
  126. <div class="input-group col-sm-4">
  127. <input type="text" class="form-control joinurl" name="joinurl" value="/?pid=%u8FD9%u5C31%u662F%u4E00%u4E2A%u7F16%u7801%u6CA1%u6709%u4EC0%u4E48%u7528%u554A">
  128. </div>
  129. </div>
  130. <div class="form-group">
  131. <label class="col-sm-3 control-label">网址接入参数:</label>
  132. <div class="input-group col-sm-4">
  133. <input type="text" class="form-control" name="joinparams" value="&appId={平台}&appUid={用户名称}">
  134. </div>
  135. </div>
  136. <div class="form-group">
  137. <label class="col-sm-3 control-label">JS接入:</label>
  138. <div class="input-group col-sm-4">
  139. <a href="/admin/settings/entrancelist.html" style="line-height: 32px;" >跳转JS管理</a>
  140. </div>
  141. </div>
  142. <div class="form-group" style="margin-top: 40px;">
  143. <label class="col-sm-3 control-label"></label>
  144. <div class="input-group col-sm-4">
  145. <button class="btn btn-primary btn-sm" type="submit">提交</button>
  146. </div>
  147. </div>
  148. </form>
  149. </div>
  150. </div>
  151. </div>
  152. </div>
  153. </div>
  154. <script src="__JS__/jquery.min.js?v=2.1.4"></script>
  155. <script src="__JS__/bootstrap.min.js?v=3.3.6"></script>
  156. <script src="__JS__/content.min.js?v=1.0.0"></script>
  157. <script src="__JS__/plugins/validate/jquery.validate.min.js"></script>
  158. <script src="__JS__/plugins/validate/messages_zh.min.js"></script>
  159. <script src="__JS__/plugins/layer/layer.min.js"></script>
  160. <script src="__JS__/layui/layui.js"></script>
  161. <script src="__JS__/jquery.form.js"></script>
  162. <script src="/static/customer/js/md5.js"></script>
  163. <script>
  164. function checkImage() {
  165. $("#all_blank_img").css({"z-index": "19991015", "background-color": "rgb(0, 0, 0)", "opacity": "0.3", "display": "block"});
  166. $("#check_image").css({"z-index": "19991016", "top": "40px", "left": "170px", "width": "70vw", "display": "block"});
  167. }
  168. function closeCheckImage() {
  169. $("#all_blank_img").css({"display": "none"});
  170. $("#check_image").css({"display": "none"});
  171. }
  172. function onCheckImage(path) {
  173. $("#all_blank_img").css({"display": "none"});
  174. $("#check_image").css({"display": "none"});
  175. $("#ChoiceImg").attr('src',path);
  176. $("#advertisement_img").val(path);
  177. }
  178. function checkImg() {
  179. $("#all_blank").css({"z-index": "19991015", "background-color": "rgb(0, 0, 0)", "opacity": "0.3", "display": "block"});
  180. $("#check_img").css({"z-index": "19991016", "top": "40px", "left": "170px", "width": "70vw", "display": "block"});
  181. }
  182. function closeCheckImg() {
  183. $("#all_blank").css({"display": "none"});
  184. $("#check_img").css({"display": "none"});
  185. }
  186. function onCheckImg(path) {
  187. $("#all_blank").css({"display": "none"});
  188. $("#check_img").css({"display": "none"});
  189. $("#onChoiceImg").attr('src',path);
  190. $("#logo_img").val(path);
  191. }
  192. </script>
  193. <script type="text/javascript">
  194. let config = {
  195. socket: '{$socket}',
  196. };
  197. let date = new Date(new Date().setHours(0, 0, 0, 0)) / 1000;
  198. let getLocation = window.location.href;
  199. let host = getLocation.split('/admin')[0];
  200. //let apiToken = hex_md5('customer-service'+date+host);
  201. let apiToken = hex_md5('customer-service'+host);
  202. layui.use(['form', 'upload'], function(){
  203. var form = layui.form;
  204. var upload = layui.upload;
  205. //执行实例
  206. var uploadInst = upload.render({
  207. elem: '#up-avatar' //绑定元素
  208. ,url: "{:url('users/upAvatar')}" //上传接口
  209. ,exts: 'png|jpg|jpeg|gif'
  210. ,done: function(res){
  211. //上传完毕回调
  212. if(0 == res.code){
  213. $("#avatar").html('<img src="' + res.data.src + '" id="ChoiceImg" height="40px">');
  214. $("#advertisement_img").val(res.data.src);
  215. }else{
  216. layer.msg(res.msg);
  217. }
  218. }
  219. ,error: function(){
  220. //请求异常回调
  221. }
  222. });
  223. var uploadInst = upload.render({
  224. elem: '#up-logo' //绑定元素
  225. ,url: "{:url('users/upAvatar')}" //上传接口
  226. ,exts: 'png|jpg|jpeg|gif'
  227. ,done: function(res){
  228. //上传完毕回调
  229. if(0 == res.code){
  230. $("#logo").html('<img src="' + res.data.src + '" id="onChoiceImg" height="40px">');
  231. $("#logo_img").val(res.data.src);
  232. }else{
  233. layer.msg(res.msg);
  234. }
  235. }
  236. ,error: function(){
  237. //请求异常回调
  238. }
  239. });
  240. form.on('select(group)', function(value){
  241. $("#group_id").val(value.value);
  242. });
  243. });
  244. var index = '';
  245. function showStart(){
  246. index = layer.load(0, {shade: false});
  247. return true;
  248. }
  249. function showSuccess(res){
  250. let socket = new WebSocket('ws://' + config.socket+'?apiToken=' + apiToken);
  251. socket.onopen = function(res) {
  252. console.log('握手成功');
  253. socket.send(JSON.stringify({
  254. type: 'updatecache',
  255. data: {dtype: ''},
  256. }));
  257. };
  258. layer.ready(function(){
  259. layer.close(index);
  260. if(1 == res.code){
  261. layer.alert(res.msg, {title: '友情提示', icon: 1, closeBtn: 0}, function(){
  262. window.location.href = res.data;
  263. });
  264. }else if(111 == res.code){
  265. window.location.reload();
  266. }else{
  267. layer.msg(res.msg, {anim: 6});
  268. }
  269. });
  270. }
  271. $(document).ready(function(){
  272. var jurl=$('.joinurl').val();
  273. jurl=window.location.protocol+"//"+window.location.host+jurl;
  274. $('.joinurl').val(jurl);
  275. // 添加管理员
  276. var options = {
  277. beforeSubmit:showStart,
  278. success:showSuccess
  279. };
  280. $('#commentForm').submit(function(){
  281. $(this).ajaxSubmit(options);
  282. return false;
  283. });
  284. });
  285. // 表单验证
  286. $.validator.setDefaults({
  287. highlight: function(e) {
  288. $(e).closest(".form-group").removeClass("has-success").addClass("has-error")
  289. },
  290. success: function(e) {
  291. e.closest(".form-group").removeClass("has-error").addClass("has-success")
  292. },
  293. errorElement: "span",
  294. errorPlacement: function(e, r) {
  295. e.appendTo(r.is(":radio") || r.is(":checkbox") ? r.parent().parent().parent() : r.parent())
  296. },
  297. errorClass: "help-block m-b-none",
  298. validClass: "help-block m-b-none"
  299. });
  300. </script>
  301. </body>
  302. </html>