blade 6 rokov pred
rodič
commit
545c6c0f27

+ 1 - 4
application/admin/controller/Settings.php

@@ -119,9 +119,7 @@ class Settings extends Base
         return $this->fetch();
     }
 
-    public function updateJsFromTemple($settings,$target_dir){
-        
-    }
+  
     // 访客端入口列表
     public function add()
     {
@@ -330,7 +328,6 @@ class Settings extends Base
      */
     function UpdataFile ($file, $arr, $len, $end, $loke = true)
     {
-        print_r($arr);
         if (is_dir($file)) {
             exit($file. '请传入正确的文件路径');
         }

+ 18 - 1
application/admin/controller/System.php

@@ -18,6 +18,10 @@ class System extends Base
      */
     public function basics()
     {
+        $settings = db('settings')->find();
+        if($settings){
+            $settings=current($settings);
+        }
         // 表单提交.
         if (request()->isPost()) {
             $param = input('post.');
@@ -50,6 +54,7 @@ class System extends Base
                 model('Reply')->updateReply($updateSevWhere, $updateSevData);
                 if(!empty($updateinfo)){
                     db('settings')->where('id',1)->update($updateinfo);
+                    $this->updateJsTmpl($updateinfo);
                 }
                 return json(['code' => 1, 'data' => '', 'msg' => '设置成功']);
             } catch (\Exception $e) {
@@ -66,7 +71,7 @@ class System extends Base
         $replyServerWhere['id'] = 2;
         $replyServer            = model('Reply')->findReply($replyServerWhere);
         // 获取logo.
-        $settings = db('settings')->find();
+        
         $this->assign(
             [
                 'advertisement' => $advertisement,
@@ -82,6 +87,18 @@ class System extends Base
 
     }//end basics()
 
+    public function updateJsTmpl($settings){
+      
+        $src=ROOT_PATH.'public/entranceJs/jstmpl.js';
+        if(is_writable($src)){
+            $content=file_get_contents($src);
+            $content=str_replace('VISITOR_DOMAIN',$settings['visitor_url'],$content);
+            $content=str_replace('CUSTOMER_DOMAIN',$settings['customer_url'],$content);
+            $content=str_replace('ADMIN_DOMAIN',$settings['backend_url'],$content);
+            file_put_contents($src,$content);
+        }
+    }
+
     /**
      * 系统欢迎语
      *

+ 155 - 0
public/entranceJs/jstmpl.js

@@ -0,0 +1,155 @@
+var xmlhttp=new XMLHttpRequest();
+var data = [];//配置信息
+var appip_source = '';
+var appuip_user = '';
+var isIE=!!window.ActiveXObject;    //是否IE浏览器
+var isIE6=isIE&&!window.XMLHttpRequest;  //是否IE6浏览器
+var isIE7=isIE&&!isIE6&&!isIE8;  //是否IE7浏览器
+var isIE8=isIE&&!!document.documentMode;  //是否IE8浏览器
+var availheight = screen.availHeight;   //默认高度为屏幕的高度
+var hostname = location.protocol+'//'+location.host;
+var adminDomain = '{ADMIN_DOMAIN}';   //服务器域名
+var serverDomain = '{CUSTOMER_DOMAIN}';   //客服域名
+var userDomain = '{VISITOR_DOMAIN}?pid='+escape("这就是一个编码没有什么用啊");   //用户域名
+if(isIE8){
+  availheight= screen.height;
+}
+//IE11升级弹出窗口小
+if (!!window.ActiveXObject || "ActiveXObject" in window){
+  availheight= screen.height;
+}
+
+
+var div = document.createElement('div');
+
+data = [];
+//浮动按钮样式
+div.style = `position: fixed; right:15px; top:${data[data.length - 1].margin_top}px;width:80px;background: #867c7c00;border-radius: 10px 0 0 10px;
+            display:flex;flex-direction: column; justify-content: space-between;z-index:1000;`;
+div.style.height = 80 * (data.length) + 'px';
+//拼接浮动按钮样式
+let btn_html = '';
+for (let i = 0; i < data.length - 1; i++) {
+  btn_html += `<div id='set_user_info_${data[i].group_id}' style="width:80px;height:80px;background:#9a949775;display:flex;
+                flex-direction: column;justify-content: center;align-items: center; cursor:pointer;z-index:1000; "> 
+                <img  id='set_user_img_${data[i].group_id}'src='${adminDomain}${data[i].image}'></img> 
+                <span id='set_user_span_${data[i].group_id}' style="font-size:12px;font-weight:bold; color: #f0f0f0;">${data[i].name}</span> </div>`;
+}
+div.innerHTML = btn_html;
+//延时显示提示框
+setTimeout(function () {
+  create_prompt_box();
+}, data[data.length - 1].stop_time * 1000);
+
+/***
+ * 打开会话窗口
+ */
+div.onclick =function(e){
+  console.log(window.location.href)
+  var index=e.target.id.lastIndexOf("_");
+  // console.log(e.target,index);
+  var group_id  = e.target.id.substring(index+1,e.target.id.length);
+  console.log(window);
+  if(appuip_user && appip_source){
+    openWindowCenter(userDomain+"&appid="+appip_source+"&appuid="+appuip_user+'&group_id='+group_id,700,700);
+  }else{
+    openWindowCenter(userDomain+"&appid="+appip_source+"&appuid="+appuip_user,700,700);
+  }
+}
+//将浮动按钮添加到对应到网站body上
+setTimeout(function(){
+  document.body.appendChild(div);
+}, 2000);
+
+
+
+
+/**
+ * 提示框样式
+ */
+function create_prompt_box(){
+  var popupWindowBox = document.createElement('div');
+  popupWindowBox.style = `position: fixed; top:35%; padding: 10px; left:45%;width:350px;height:160px;
+    background:#e5e5e5;border-radius:10px;font-size:17px;display:flex; flex-direction: column;
+    justify-content: space-between;z-index:9999;`;
+  //拼接提示框样式
+  popupWindowBox.innerHTML =`
+    <div style='display:flex;flex-direction: row;justify-content: center;'> 
+    <span style="font-weight:bold; color: #666666;">${data[data.length - 1].copywriting}</span> 
+    </div> 
+    <div style='flex-direction: row;display:flex;justify-content: flex-end;'>
+    <div id="$startSession" style='margin-right: 10px; padding: 4px;border: 1px solid #999; border-radius: 4px; color: #666666;font-weight: bold;cursor:pointer;'>开始会话</div>
+    <div id="$cancel" style="padding: 3px;border: 1px solid #999; border-radius: 4px; color: #666666;font-weight: bold;cursor:pointer;">下次再说</div> 
+    </div> 
+    `;
+  popupWindowBox.onclick =function(e){
+    if(e.target.id == '$startSession'){
+      openWindowCenter(userDomain+"&appid="+appip_source+"&appuid="+appuip_user,700,700);
+    }else if(e.target.id == '$cancel'){
+      popupWindowBox.style.display="none";
+    }
+  }
+
+
+  //将提示框添加到对应到网站body上
+  document.body.appendChild(popupWindowBox);
+}
+
+// padding: 3px;border: 1px solid #999; border-radius: 4px; color: #666666;font-weight: bold;
+
+// /***
+//  *
+//  */
+// function   (){
+
+// }
+
+/**
+ * 打开一个居中的窗口
+ * @param pageUrl url链接
+ * @param innerWidth 宽度,不带px,小于0表示百分比
+ * @param innerHeight 高度,不带px,小于0表示百分比
+ */
+function openWindowCenter(pageUrl, innerWidth, innerHeight){
+  var screenWidth = screen.availWidth;
+  var screenHeight = screen.availHeight;
+  var width = screenWidth;
+  var height = screenHeight;
+
+  if(innerWidth < 1){
+    width = screenWidth * innerWidth;
+    screenWidth = (screen.availWidth - width)/2;
+  }else{
+    width = innerWidth;
+    screenWidth = (screen.availWidth - innerWidth)/2;
+  }
+  if(innerHeight < 1){
+    height = screenHeight * innerHeight;
+    screenHeight = (screen.availHeight - height)/2;
+  }else{
+    height = innerHeight;
+    screenHeight = (screen.availHeight - innerHeight)/2;
+  }
+  window.open(pageUrl, "", "left=" + screenWidth + ",top=" + screenHeight +",width=" + width + ",height=" + height + ",resizable=no,scrollbars=no,status=no,toolbar=no,menubar=no,location=no");
+};
+
+
+//html页面调用
+/**
+ * 获取数据
+ */
+function set_user_info_js(a,b){
+  appip_source = a;
+  appuip_user=b;
+}
+
+//vue调用
+// export default {
+//     /**
+//      * 获取数据
+//      */
+//     set_user_info_vue: function (a,b){
+//         appip_source = a;
+//         appuip_user =b;
+//     }
+// }