From 6436925093bf03eae64a6351da7b9edba181562c Mon Sep 17 00:00:00 2001 From: Anyon Date: Fri, 16 Jun 2017 18:34:17 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E5=BE=AE=E4=BF=A1=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E5=A2=9E=E5=8A=A0=E5=B0=8F=E7=A8=8B=E5=BA=8F=E6=94=AF?= =?UTF-8?q?=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/controller/Menu.php | 11 ++++++---- application/wechat/view/menu.index.html | 29 +++++++++++++++++++++---- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/application/wechat/controller/Menu.php b/application/wechat/controller/Menu.php index 359884836..e77aa174d 100644 --- a/application/wechat/controller/Menu.php +++ b/application/wechat/controller/Menu.php @@ -116,13 +116,16 @@ class Menu extends BasicAdmin { */ protected function _push() { $result = Db::name($this->table) - ->field('id,index,pindex,name,type,content') - ->where('status', '1') - ->order('sort ASC,id ASC') - ->select(); + ->field('id,index,pindex,name,type,content') + ->where('status', '1') + ->order('sort ASC,id ASC') + ->select(); foreach ($result as &$row) { empty($row['content']) && $row['content'] = uniqid(); switch ($row['type']) { + case 'miniprogram': + list($row['appid'], $row['pagepath']) = explode(',', $row['content']); + break; case 'view': $row['url'] = preg_match('#^(\w+:)?//#i', $row['content']) ? $row['content'] : url($row['content'], '', true, true); break; diff --git a/application/wechat/view/menu.index.html b/application/wechat/view/menu.index.html index 19c0591d8..d889c0600 100644 --- a/application/wechat/view/menu.index.html +++ b/application/wechat/view/menu.index.html @@ -89,6 +89,9 @@ + @@ -232,8 +235,17 @@ $html.find('input[name="menu-type"]').on('click', function () { $span.attr('data-type', this.value || 'text'); var content = $span.data('content') || ''; + var type = this.value; var html = function () { - switch (this.value) { + switch (type) { + case 'miniprogram': + var tpl = '
小程序APPID
Pagepath
'; + var _appid = '', _content = ''; + if (content.indexOf(',') > 0) { + _appid = content.split(',')[0]; + _content = content.split(',')[1]; + } + return tpl.replace('{appid}', _appid).replace('{content}', _content); case 'customservice': case 'text': return '
回复内容
'.replace('{content}', content); @@ -262,7 +274,12 @@ }.call(this); var $html = $(html), $input = $html.find('input,textarea'); $input.on('change keyup click', function () { - $span.data('content', $(this).val() || $(this).html()); + // 将input值写入到span上 + $span.data(this.name, $(this).val() || $(this).html()); + // 如果是小程序,合并内容到span的content上 + if (type === 'miniprogram') { + $span.data('content', $span.data('appid') + ',' + $span.data('pagepath')); + } }); $('.editor-content-input').html($html); }).filter('input[value="{type}"]'.replace('{type}', type)).trigger('click'); @@ -274,12 +291,16 @@ */ menu.prototype.submit = function () { var data = []; - function getdata($span) { var menudata = {}; menudata.name = $span.text(); menudata.type = $span.attr('data-type'); - menudata.content = $span.data('content') || ''; + // 小程序要特殊处理 + if (menudata.type === 'miniprogram') { + menudata.content = $span.data('appid') + ',' + $span.data('pagepath'); + } else { + menudata.content = $span.data('content') || ''; + } return menudata; }