From 28d32abb4dc4c37d1fb134e96e167b2271ff50cd Mon Sep 17 00:00:00 2001 From: gongfuxiang <2499232802@qq.com> Date: Sun, 17 Feb 2019 22:42:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=9C=A8=E7=BA=BF=E5=AE=A2?= =?UTF-8?q?=E6=9C=8D=E5=BA=94=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugins/commononlineservice/Admin.php | 93 ++++++++++ .../plugins/commononlineservice/Hook.php | 169 ++++++++++++++++++ .../plugins/commononlineservice/config.json | 30 ++++ .../view/commononlineservice/admin/index.html | 77 ++++++++ .../commononlineservice/admin/saveinfo.html | 63 +++++++ .../plugins/css/commononlineservice/admin.css | 25 +++ .../plugins/css/commononlineservice/style.css | 88 +++++++++ .../images/commononlineservice/btn-ctn.png | Bin 0 -> 2786 bytes .../plugins/js/commononlineservice/style.js | 17 ++ .../2019/02/17/1550393245526672.png | Bin 0 -> 8779 bytes 10 files changed, 562 insertions(+) create mode 100644 application/plugins/commononlineservice/Admin.php create mode 100644 application/plugins/commononlineservice/Hook.php create mode 100644 application/plugins/commononlineservice/config.json create mode 100755 application/plugins/view/commononlineservice/admin/index.html create mode 100755 application/plugins/view/commononlineservice/admin/saveinfo.html create mode 100644 public/static/plugins/css/commononlineservice/admin.css create mode 100644 public/static/plugins/css/commononlineservice/style.css create mode 100644 public/static/plugins/images/commononlineservice/btn-ctn.png create mode 100644 public/static/plugins/js/commononlineservice/style.js create mode 100644 public/static/upload/images/plugins_commononlineservice/2019/02/17/1550393245526672.png diff --git a/application/plugins/commononlineservice/Admin.php b/application/plugins/commononlineservice/Admin.php new file mode 100644 index 000000000..8154ebfc2 --- /dev/null +++ b/application/plugins/commononlineservice/Admin.php @@ -0,0 +1,93 @@ +', $ret['data']['online_service']); + + // 数组组装 + $data = [ + 'data' => $ret['data'], + ]; + return DataReturn('处理成功', 0, $data); + } else { + return $ret; + } + } + + /** + * 编辑页面 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @datetime 2019-02-07T08:21:54+0800 + * @param [array] $params [输入参数] + */ + public function saveinfo($params = []) + { + $ret = PluginsService::PluginsData('commononlineservice'); + if($ret['code'] == 0) + { + // 是否 + $is_whether_list = [ + 0 => array('id' => 0, 'name' => '否'), + 1 => array('id' => 1, 'name' => '是', 'checked' => true), + ]; + + // 数组组装 + $data = [ + 'is_whether_list' => $is_whether_list, + 'data' => $ret['data'], + ]; + return DataReturn('处理成功', 0, $data); + } else { + return $ret; + } + } + + /** + * 数据保存 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @datetime 2019-02-07T08:21:54+0800 + * @param [array] $params [输入参数] + */ + public function save($params = []) + { + return PluginsService::PluginsDataSave(['plugins'=>'commononlineservice', 'data'=>$params]); + } +} +?> \ No newline at end of file diff --git a/application/plugins/commononlineservice/Hook.php b/application/plugins/commononlineservice/Hook.php new file mode 100644 index 000000000..8a2c33dbd --- /dev/null +++ b/application/plugins/commononlineservice/Hook.php @@ -0,0 +1,169 @@ +html($params); + break; + + default : + $ret = ''; + } + return $ret; + } else { + return ''; + } + } + } + + /** + * 视图 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @datetime 2019-02-06T16:16:34+0800 + * @param [array] $params [输入参数] + */ + public function html($params = []) + { + // 当前模块/控制器/方法 + $module_name = strtolower(request()->module()); + $controller_name = strtolower(request()->controller()); + $action_name = strtolower(request()->action()); + + // 获取应用数据 + $ret = PluginsService::PluginsData('commononlineservice', ['images']); + + // html拼接 + $html = '
+ 点击这里给我发消息 + '; + $online_service_li_count++; + } + + } + } + + // 电话 + $tel_html = ''; + if(!empty($ret['data']['tel'])) + { + $tel_html .= '
  • + 电话:'.$ret['data']['tel'].' +
  • '; + $online_service_li_count++; + } + + // 背景色 + $bg_color = empty($ret['data']['bg_color']) ? '' : 'background:'.$ret['data']['bg_color'].';'; + + // 组装 + $content = '
    + 展开 + 收缩 +
    +
    +
    +

    '.$ret['data']['title'].'

    +
      '.$online_service_html.$tel_html.' +
    +
    +
    '; + } else { + $content = $ret['msg']; + } + $html .= '>'; + $html .= $content; + $html .= '
    '; + + return $html; + } +} +?> \ No newline at end of file diff --git a/application/plugins/commononlineservice/config.json b/application/plugins/commononlineservice/config.json new file mode 100644 index 000000000..fc4cbbd23 --- /dev/null +++ b/application/plugins/commononlineservice/config.json @@ -0,0 +1,30 @@ +{ + "base":{ + "plugins":"commononlineservice", + "name":"在线客服", + "logo":"\/static\/upload\/images\/plugins_commononlineservice\/2019\/02\/17\/1550393245526672.png", + "author":"Devil", + "author_url":"https:\/\/shopxo.net\/", + "version":"1.0.0", + "desc":"在线客服、QQ、电话", + "apply_terminal":[ + "pc", + "h5" + ], + "apply_version":[ + "1.3.0" + ], + "is_home":false + }, + "hook":{ + "plugins_css":[ + "app\\plugins\\commononlineservice\\Hook" + ], + "plugins_js":[ + "app\\plugins\\commononlineservice\\Hook" + ], + "plugins_view_common_bottom":[ + "app\\plugins\\commononlineservice\\Hook" + ] + } +} \ No newline at end of file diff --git a/application/plugins/view/commononlineservice/admin/index.html b/application/plugins/view/commononlineservice/admin/index.html new file mode 100755 index 000000000..d1627e9f1 --- /dev/null +++ b/application/plugins/view/commononlineservice/admin/index.html @@ -0,0 +1,77 @@ +{{include file="public/header" /}} + + +
    +
    + + 在线客服 + 返回 + + +
    +
    + +
    + {{if !empty($data['title'])}} + {{$data.title}} + {{else /}} + 未填写 + {{/if}} +
    +
    +
    + +
    + {{if !empty($data['online_service'])}} + {{$data.online_service|raw}} + {{else /}} + 未填写 + {{/if}} +
    +
    +
    + +
    + {{if !empty($data['tel'])}} + {{$data.tel}} + {{else /}} + 未填写 + {{/if}} +
    +
    +
    + +
    + {{if isset($data['is_overall']) and $data['is_overall'] eq 1}} + 是 + {{else /}} + 否 + {{/if}} +
    +
    + +
    + +
    +
    +
    + +
    + {{if !empty($data['distance_top'])}} + {{$data.distance_top}} + {{else /}} + 0 + {{/if}} + % +
    +
    + + 编辑 +
    +
    +
    + + + +{{include file="public/footer" /}} + \ No newline at end of file diff --git a/application/plugins/view/commononlineservice/admin/saveinfo.html b/application/plugins/view/commononlineservice/admin/saveinfo.html new file mode 100755 index 000000000..9bf899e70 --- /dev/null +++ b/application/plugins/view/commononlineservice/admin/saveinfo.html @@ -0,0 +1,63 @@ +{{include file="public/header" /}} + + +
    +
    + +
    + + 在线客服 + 返回 + + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + +
    + {{foreach $is_whether_list as $v}} + + {{/foreach}} +
    +
    + +
    + + + +
    + +
    + + +
    + +
    + +
    +
    + +
    +
    + + + +{{include file="public/footer" /}} + \ No newline at end of file diff --git a/public/static/plugins/css/commononlineservice/admin.css b/public/static/plugins/css/commononlineservice/admin.css new file mode 100644 index 000000000..a1c61abfa --- /dev/null +++ b/public/static/plugins/css/commononlineservice/admin.css @@ -0,0 +1,25 @@ +/** + * 首页 + */ +.commononlineservice-content .items { + margin: 10px 0 20px 0; + border-bottom: 1px dashed #f1f1f1; + padding-bottom: 20px; +} +.commononlineservice-content .items .immages-tag { + border: 1px solid #eee; + text-align: center; + max-width: 100px; + padding: 5px; +} +.commononlineservice-content .items .immages-tag img { + max-width: 100%; +} +.commononlineservice-content .items .bg-color-tag { + width: 50px; + height: 50px; + border: 1px solid #eee; +} +.commononlineservice-content .edit-submit { + margin-bottom: 20px; +} \ No newline at end of file diff --git a/public/static/plugins/css/commononlineservice/style.css b/public/static/plugins/css/commononlineservice/style.css new file mode 100644 index 000000000..a157541e9 --- /dev/null +++ b/public/static/plugins/css/commononlineservice/style.css @@ -0,0 +1,88 @@ +.commononlineservice .float-left, .commononlineservice .content { + background:#d2364c; +} +.commononlineservice { + font-size: 12px; + position: fixed; + top: 30%; + right: 0px; + z-index: 1000; +} +.commononlineservice .float-left { + width: 36px; + float:left; + position: relative; + z-index:1; + margin-top: 0; + height: 120px; + border-radius: 6px 0px 0 6px; +} +.commononlineservice .float-left a { + font-size:0; + text-indent: -999em; +} +.commononlineservice .content { + float: left; + padding: 5px; + overflow:hidden; + width: 140px; + margin-right:-150px; + border-radius: 0 0px 0 6px; +} +.commononlineservice .content .cn { + background:#F7F7F7; + border-radius:6px; +} +.commononlineservice .cn .title { + font-size: 14px; + color: #333; + font-weight:600; + line-height:24px; + padding:5px; + text-align:center; + margin: 0; +} +.commononlineservice .cn ul { + padding:0px; + margin: 0; +} +.commononlineservice .cn ul li { + line-height: 38px; + height:38px; + border-bottom: solid 1px #E6E4E4; + overflow: hidden; + text-align:center; +} +.commononlineservice .cn ul li:last-child { + border: 0; +} +.commononlineservice .cn ul li span, .commononlineservice .cn ul li a { + color: #777; +} +.commononlineservice .cn ul li img { + vertical-align: middle; +} +.commononlineservice .btn-open, .commononlineservice .btn-ctn { + position: relative; + z-index:9; + top:0; + left: 0; + background-image: url(../../images/commononlineservice/btn-ctn.png); + background-repeat: no-repeat; + display:block; + height: 120px; + background-size: 55px; +} +.commononlineservice .btn-open { + background-position: 3px 10px; +} +.commononlineservice .btn-ctn { + background-position: -24px 10px; + display: none; +} +.commononlineservice ul li.top { + border-bottom: solid #ACE5F9 1px; +} +.commononlineservice ul li.bot { + border-bottom: none; +} \ No newline at end of file diff --git a/public/static/plugins/images/commononlineservice/btn-ctn.png b/public/static/plugins/images/commononlineservice/btn-ctn.png new file mode 100644 index 0000000000000000000000000000000000000000..8e24a351c4248965503d61fa59fc2c1e41c4c6cb GIT binary patch literal 2786 zcmaJ@d00~U8pf0|9G3{SG$&-p1!GlANL&#U!41Z3+7OPyC_;d{W|_H7T8bHtnTkt} zW!`97)EY}tQ%lpymbo)!xuliWSk_pY7n^GCAGdp+=bYd2yzl#czwh@x-*a*U{Jixc zW)Khvr0=tZ8l)NNnm0#xx#sKkBCSs|td)6%%2=XESpr7_fZTba2mtOQ`+-KlR@T+gc!~e29qchYuF%=vumQ5!;J=H@CYDE5KBQkZ*4=s1w0BO zgvi7(#hw6Puq9anu#)}Q+~jC3iHC4?fjcLXH3C9F#(^gaV`8P`L<-`AE?F~Q+QuT_ zA0V=53gYjiLYV<@Pmu(G6EQ?I7l(I%Zz5svM7)C&ej}WK!`owV_E@|<8c!hONMt+_ z{_#O*qDgp>zg5b+!Vloz+kdS~$u*ZlbQCK{QM8e_-SONj9L7=5cu`*5~ zI#&A4Cj}}XTilWt>eITykgxmZmy*rj{@uY3Nqr7_Ra^s{RCXZxa(W7AJ`YAI|&LA*JvMK zR&XTk$06IDz8=r*%Ld8@kR|xk_sIMHE3MTy!9eS<|?g&yE&sYoRp9iZeubMvTPN=~>!h$%9^PU0#^bn(+rE924bR^{%8 zI!EoRZNi^NIgeSt4taf%CNO+NUnh@tX&B~TYL@W(r#5^4HRxC8WOZk49PWKzSWSUN za~JY=`fyo9&pPjd!NvzReUBWncRx=EuMZH*{L?HRpGojIvvOazV_|kV-mBmnS0L;p? zBMEmLzc28u+ho@E$z{Q+{MY243E3PKMckC1^NU_3E;35Z+NKp$9j-TFV`KH5D{52F ziP49<%XH1di3@Y-Gm7<@c@?3Ik^|$?xYN0C_K|AGhPdIi;EvIYl1%2bJ1H(ay$>Q$ z+%%{7ClwBD)Ma44y%+zeREv1o{jp^ zHLmjw5C#k;zoSH}pH9Knj4TA5p&rgm*>iPNpKePx2T-fpEAbsD#>w`psOwEW#p5TQ z-JYqX;?RLdvua5@?DQ;)n_+eN+Equ2-dGn@@nNlN$5MXg=0HGU11 zpD0j%-&H2Qmp$ro3BGQ?7oziPr?iKq^FD0oSIhwjGwE7Tw1ClPV6FYO9lKsWS(^s? z`X*wo>(4VOg6!29-Ih}gQ7aCHGaDTwu8k(5v7%tZ+-`7jOXyEp6F;+K8okDe?G(2N ziNz(4*2{h;`koAmT~hSmkgV?8&eP3bpJU#CelhjoVPuVI&*(y5Z^-T@|MqFZo(R>3 zh9OLRke-F^fo9yXxXXTa0S$rd{$jlip$voE`SL2$lhl9J73s<^aZ0I^z3>|y_HI;lA1ecLQ=S1iG1m~sxcsVbyjy5C17s6iMD9JqM*G@M@vAnMulh_OcqT@OWxNzY(;oansvaTX)=k~{++p$fw`SiC^g z-_$h7SV}|U(OclU<%jN@zpJ_>dtrlojxZV_RoRDhME@cYf%}`cx_O* z<+Y=Eit{WKCht{)9;6!1KBchEYhktK+pkPiINzwqG*L(3!-DDNLUsP!yV6MdNM(8J z&2wzoUb~I}24?K(rT8ijyQmZ8jCajb#$UOZ+We%(bv!s#BysvCF!1mGi$p<^s7x3X`mvwlge#)&@OGT$j?Zgg|vGILb_k;anbd8!~@pnAOlq@Lt4?Auz`b6 z1pW6Gop|Gn8}l(}^3EGbbo1gt)#vxtl|0{kCF>S1I}zvuS>BnJY&RF bYdPo_b4)FMY8QLyuhYlNk9x{uXU2a3i`|i^ literal 0 HcmV?d00001 diff --git a/public/static/plugins/js/commononlineservice/style.js b/public/static/plugins/js/commononlineservice/style.js new file mode 100644 index 000000000..9c9c418b5 --- /dev/null +++ b/public/static/plugins/js/commononlineservice/style.js @@ -0,0 +1,17 @@ +$(function() +{ + // 在线客服 + $('.commononlineservice .btn-open').click(function() + { + $('.commononlineservice .content').animate({'margin-right':'0px'}, 300); + $('.commononlineservice .btn-open').css('display', 'none'); + $('.commononlineservice .btn-ctn').css('display', 'block'); + }); + + $('.commononlineservice .btn-ctn').click(function() + { + $('.commononlineservice .content').animate({'margin-right':'-150px'}, 300); + $('.commononlineservice .btn-open').css('display', 'block'); + $('.commononlineservice .btn-ctn').css('display', 'none'); + }); +}); \ No newline at end of file diff --git a/public/static/upload/images/plugins_commononlineservice/2019/02/17/1550393245526672.png b/public/static/upload/images/plugins_commononlineservice/2019/02/17/1550393245526672.png new file mode 100644 index 0000000000000000000000000000000000000000..0e08fffa3c1a60d95c0bedc176ae9c3b60e2986b GIT binary patch literal 8779 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 B$k+e? literal 0 HcmV?d00001