Commit c4176e46d8820fd649352f510c6e44156b5c9fe7
0 parents
Exists in
master
add file
Showing
11 changed files
with
1958 additions
and
0 deletions
Show diff stats
.gitignore
handlers/__init__.py
handlers/index.py
| ... | ... | @@ -0,0 +1,24 @@ |
| 1 | +# coding: utf-8 | |
| 2 | + | |
| 3 | +import tornado.web | |
| 4 | + | |
| 5 | +class BaseHandler(tornado.web.RequestHandler): | |
| 6 | + | |
| 7 | + def __init__(self, *args, **kwargs): | |
| 8 | + super(BaseHandler, self).__init__(*args, **kwargs) | |
| 9 | + x_real_ip = self.request.headers.get("X-Real-IP") | |
| 10 | + self.remote_ip = self.request.remote_ip if not x_real_ip else x_real_ip | |
| 11 | + | |
| 12 | + def render(self, template_name, **kwargs): | |
| 13 | + super(BaseHandler, self).render(template_name, **kwargs) | |
| 14 | + | |
| 15 | +class IndexHandler(BaseHandler): | |
| 16 | + | |
| 17 | + def get(self): | |
| 18 | + return self.render('index.html') | |
| 19 | + | |
| 20 | + | |
| 21 | +class WebAppHandler(BaseHandler): | |
| 22 | + | |
| 23 | + def get(self): | |
| 24 | + return self.render('webapp.html') | ... | ... |
log.py
| ... | ... | @@ -0,0 +1,46 @@ |
| 1 | +# coding: utf-8 | |
| 2 | + | |
| 3 | +from os import path | |
| 4 | +import logging.config | |
| 5 | + | |
| 6 | +def init_log(log_dir, debug=False): | |
| 7 | + if not path.exists(log_dir): | |
| 8 | + print 'log path is not exist:%s' % log_dir | |
| 9 | + exit(-1) | |
| 10 | + | |
| 11 | + config = { | |
| 12 | + 'version': 1, | |
| 13 | + 'disable_existing_loggers': False, | |
| 14 | + 'formatters': { | |
| 15 | + 'default': { | |
| 16 | + 'format': '%(levelname)s %(asctime)s %(module)s:%(funcName)s:%(lineno)d %(message)s' | |
| 17 | + }, | |
| 18 | + 'simple': { | |
| 19 | + 'format': '%(level)s %(message)s' | |
| 20 | + } | |
| 21 | + }, | |
| 22 | + 'handlers': { | |
| 23 | + 'console': { | |
| 24 | + 'level': 'DEBUG', | |
| 25 | + 'class': 'logging.StreamHandler', | |
| 26 | + 'formatter': 'default', | |
| 27 | + }, | |
| 28 | + 'file': { | |
| 29 | + 'level': 'DEBUG', | |
| 30 | + 'class': 'logging.handlers.RotatingFileHandler', | |
| 31 | + 'filename': path.join(log_dir, 'webapp.log'), | |
| 32 | + 'maxBytes': 1024 * 1024 * 50, | |
| 33 | + 'backupCount': 5, | |
| 34 | + 'formatter': 'default', | |
| 35 | + }, | |
| 36 | + }, | |
| 37 | + 'loggers': { | |
| 38 | + 'starmachine': { | |
| 39 | + 'handlers': ['console', 'file'], | |
| 40 | + 'level': 'DEBUG', | |
| 41 | + 'propagate': False, | |
| 42 | + }, | |
| 43 | + } | |
| 44 | + } | |
| 45 | + | |
| 46 | + logging.config.dictConfig(config) | ... | ... |
server.py
| ... | ... | @@ -0,0 +1,46 @@ |
| 1 | +# coding: utf-8 | |
| 2 | + | |
| 3 | +import os | |
| 4 | +import tornado.ioloop | |
| 5 | +import tornado.autoreload | |
| 6 | +import tornado.web | |
| 7 | +from tornado.options import define, options, parse_command_line | |
| 8 | +import settings | |
| 9 | +from log import init_log | |
| 10 | + | |
| 11 | + | |
| 12 | +def init_settings(): | |
| 13 | + # 加载环境配置项 | |
| 14 | + define('port', default=8080, type=int, help=u'监听端口') | |
| 15 | + define("log_dir", default='run', type=str, help=u'日志目录') | |
| 16 | + define('profile', default='local', type=str, help=u'运行配置') | |
| 17 | + | |
| 18 | + parse_command_line() | |
| 19 | + init_log(options.log_dir) | |
| 20 | + return options | |
| 21 | + | |
| 22 | +def start_application(): | |
| 23 | + from url import urls | |
| 24 | + log_dir = os.path.join(os.path.dirname(__file__), 'run') | |
| 25 | + application_settings = { | |
| 26 | + 'handlers': urls, | |
| 27 | + 'debug': settings.DEBUG, | |
| 28 | + 'template_path': os.path.join(os.path.dirname(__file__), 'templates'), | |
| 29 | + 'static_path': os.path.join(os.path.dirname(__file__), 'static'), | |
| 30 | + } | |
| 31 | + application = tornado.web.Application(**application_settings) | |
| 32 | + | |
| 33 | + print 'server on port %s' % settings.PORT | |
| 34 | + print 'server log on %s' % log_dir | |
| 35 | + | |
| 36 | + application.listen(settings.PORT) | |
| 37 | + io_loop = tornado.ioloop.IOLoop.instance() | |
| 38 | + | |
| 39 | + io_loop.start() | |
| 40 | + | |
| 41 | +def run(): | |
| 42 | + init_settings() | |
| 43 | + start_application() | |
| 44 | + | |
| 45 | +if __name__ == '__main__': | |
| 46 | + run() | |
| 0 | 47 | \ No newline at end of file | ... | ... |
settings.py
static/img/banner.png
20.2 KB
static/js/tpl.js
| ... | ... | @@ -0,0 +1,486 @@ |
| 1 | +$(function(){ | |
| 2 | + // 轮播图 | |
| 3 | +var mySwiper = new Swiper ('.swiper-container', { | |
| 4 | + direction: 'horizontal', | |
| 5 | + loop: true, | |
| 6 | + // 如果需要分页器 | |
| 7 | + pagination: '.swiper-pagination', | |
| 8 | + // 如果需要前进后退按钮 | |
| 9 | + nextButton: '.swiper-button-next', | |
| 10 | + prevButton: '.swiper-button-prev' | |
| 11 | +}); | |
| 12 | +$(".banner-wrap").height(window.innerWidth * 430 / 2732); | |
| 13 | + var pages = [1], | |
| 14 | + col = parseInt((+$('body').width() * 0.8 < 750 ? 750 : +$('body').width() * 0.8) / 227), | |
| 15 | + _template = '<li data-id="${app_id}" data-desc="${description}" data-logo="${logo}" class="js-tpl"><img class="cover" src="${cover}" onerror="errorWeiyeCover(this)"><p class="name">${app_name}' | |
| 16 | + + '</p><div class="code-mask"><img class="code" src="${qrcode}" alt="">' | |
| 17 | + + '<span class="select-btn js-preview-btn">预览</span>${copy}</div></li> ', | |
| 18 | + _cataData = {}, | |
| 19 | + _appData = {}, | |
| 20 | + cdnUrl="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend"; | |
| 21 | + getCategory(); | |
| 22 | + $('body').on('click', '#first-navs span', function(event) { | |
| 23 | + if($(this).hasClass('active')){ | |
| 24 | + return; | |
| 25 | + } | |
| 26 | + var cate = $(this).attr("data-cate"), | |
| 27 | + index = $(this).index(); | |
| 28 | + | |
| 29 | + $(this).addClass('active').siblings('.active').removeClass('active'); | |
| 30 | + $(".tpl-content").eq(index).addClass('active').siblings('.active').removeClass('active'); | |
| 31 | + if($(this).hasClass('js-uninitial')){ | |
| 32 | + $(this).removeClass('js-uninitial'); | |
| 33 | + if ($('.tpl-content.active .tpl-container').hasClass('js-requesting')) { | |
| 34 | + return; | |
| 35 | + }; | |
| 36 | + $('.tpl-content.active .tpl-container').addClass('js-requesting'); | |
| 37 | + getTpls(cate, index); | |
| 38 | + } | |
| 39 | + }).on('click','.tpl-sec-navs span' ,function(event) { | |
| 40 | + if($(this).hasClass('active')){ | |
| 41 | + return; | |
| 42 | + } | |
| 43 | + var cate = $(this).attr("data-cate"), | |
| 44 | + index = $("#first-navs .active").index(); | |
| 45 | + | |
| 46 | + $(this).addClass('active').siblings('.active').removeClass('active'); | |
| 47 | + pages[index] = 1; | |
| 48 | + $(".tpl-container").removeClass('js-no-more').eq(index).find('.js-tpl').remove(); | |
| 49 | + getTpls(cate, index); | |
| 50 | + }).on('click', '.choose-btn', function(event) { | |
| 51 | + // var appId = $(this).parent().parent().attr('data-id'); | |
| 52 | + // if($(this).hasClass('js-preview-btn')){ | |
| 53 | + // initialPreview(appId); | |
| 54 | + // $('#preview-tpl-dialog').show('slow'); | |
| 55 | + // $('#add-app-dialog').attr('data-id', appId).attr('data-color', ''); | |
| 56 | + // }else{ | |
| 57 | + // $('#add-app-dialog').attr('data-id', appId).attr('data-color', '').show('slow'); | |
| 58 | + // } | |
| 59 | + | |
| 60 | + var $li = $(this).closest('li'), | |
| 61 | + param = { | |
| 62 | + app_name : $li.children('.name').text(), | |
| 63 | + description: '' , | |
| 64 | + logo : cdnUrl + '/static/invitation/images/logo.png', | |
| 65 | + cover: cdnUrl + '/static/webapp/images/share_feng.jpg' , | |
| 66 | + f_app_id : $li.attr("data-id") | |
| 67 | + }; | |
| 68 | + addApp($(this) , param); | |
| 69 | + event.stopPropagation(); | |
| 70 | + }).on('click', '.code-mask', function(event) { | |
| 71 | + var appId = $(this).closest('li').attr('data-id'); | |
| 72 | + window.open('/webapp/?r=pc/Webapp/preview&id=' + appId +'&f_tpl=1'); | |
| 73 | + }).on('click', '.empty-tpl', function(event) { | |
| 74 | + // var appId = $(this).attr('data-id'); | |
| 75 | + // $('#add-app-dialog').attr('data-id', appId).attr('data-color', '').show('slow'); | |
| 76 | + var $li = $(this).closest('li'), | |
| 77 | + param = { | |
| 78 | + app_name : '我的应用', | |
| 79 | + description: '', | |
| 80 | + logo : cdnUrl + '/static/invitation/images/logo.png', | |
| 81 | + cover: cdnUrl + '/static/webapp/images/share_feng.jpg' | |
| 82 | + }; | |
| 83 | + addApp($(this) , param); | |
| 84 | + }) | |
| 85 | + | |
| 86 | + | |
| 87 | + function getCategory(){ | |
| 88 | + $ajax('/index.php?r=pc/AppData/AppCategoryList','get',{type : 0},'json', | |
| 89 | + function(data){ | |
| 90 | + if (data.status === 0) { | |
| 91 | + var categorys = data.data, | |
| 92 | + contentsStr = '', | |
| 93 | + firstCateStr = ''; | |
| 94 | + if(categorys.length){ | |
| 95 | + $(categorys).each(function(index, item) { | |
| 96 | + var secCates = item.cate, | |
| 97 | + contentStr = '<div class="tpl-content '+(index==0 ? 'active' : '')+'"><div class="tpl-sec-navs">', | |
| 98 | + secCatesStr = ''; | |
| 99 | + | |
| 100 | + if(secCates.length > 0){ | |
| 101 | + secCatesStr += '<span data-cate="'+item.id+'" class="active">全部</span>'; | |
| 102 | + $(secCates).each(function(index, el) { | |
| 103 | + secCatesStr += '<span data-cate="'+el.id+'">'+el.name+'</span>'; | |
| 104 | + }); | |
| 105 | + } | |
| 106 | + | |
| 107 | + firstCateStr += '<span data-cate="'+item.id+'" class="'+(index==0 ? 'active' : 'js-uninitial')+'">'+item.name+'</span>' | |
| 108 | + contentStr += secCatesStr + '</div><ul class="tpl-container"><li class="empty-tpl" data-id="-1"><div class="note-icon"></div><p class="name">空白模板</p></li></ul></div>'; | |
| 109 | + contentsStr += contentStr; | |
| 110 | + pages.push(1); | |
| 111 | + }); | |
| 112 | + | |
| 113 | + $('#first-navs').append(firstCateStr); | |
| 114 | + $('body').append(contentsStr); | |
| 115 | + if (window.location.hash == '#single') { | |
| 116 | + // 线上data-cate = 12 | |
| 117 | + $('#first-navs span[data-cate="12"]').trigger('click'); | |
| 118 | + }; | |
| 119 | + getTpls(categorys[0].id , 0); | |
| 120 | + }else{ | |
| 121 | + // 没有分类时 | |
| 122 | + $('#first-navs span').eq(0).trigger('click'); | |
| 123 | + } | |
| 124 | + }else{ | |
| 125 | + alertTip(data.data); | |
| 126 | + } | |
| 127 | + },function(data){ | |
| 128 | + alertTip(data.data); | |
| 129 | + }); | |
| 130 | + } | |
| 131 | + | |
| 132 | + function getTpls(cate, index){ | |
| 133 | + var $container = $('.tpl-container').eq(index), | |
| 134 | + param = {type: 0, page: pages[index], page_size: 20}; | |
| 135 | + | |
| 136 | + if(cate == -1){ | |
| 137 | + param.user = 1; | |
| 138 | + }else{ | |
| 139 | + param.cate_id = cate; | |
| 140 | + } | |
| 141 | + $ajax('/index.php?r=pc/AppData/AppTplList','get',param,'json', | |
| 142 | + function(data){ | |
| 143 | + if (data.status === 0) { | |
| 144 | + var tpls = data.data; | |
| 145 | + tpls.length && dealData(tpls, $container, index); | |
| 146 | + | |
| 147 | + pages[index]++; | |
| 148 | + if(data.is_more == 0){ | |
| 149 | + $container.addClass('js-no-more'); | |
| 150 | + } | |
| 151 | + }else{ | |
| 152 | + alertTip(data.data); | |
| 153 | + } | |
| 154 | + $container.removeClass('js-requesting'); | |
| 155 | + }, | |
| 156 | + function(data){ | |
| 157 | + alertTip(data.tpls); | |
| 158 | + $container.removeClass('js-requesting') | |
| 159 | + }); | |
| 160 | + } | |
| 161 | + | |
| 162 | + function dealData(tpls, $container, index){ | |
| 163 | + $container.find('.filler').remove(); | |
| 164 | + | |
| 165 | + var content = '', | |
| 166 | + addAmount = tpls.length, | |
| 167 | + curAmount = $container.find('.js-tpl').length, | |
| 168 | + temp = (addAmount+curAmount)%col, | |
| 169 | + fillerAmount = ( temp ? col : 0 ), // 需要增加的filler个数 | |
| 170 | + shadowLis = ''; | |
| 171 | + | |
| 172 | + $.each(tpls, function(i, item){ | |
| 173 | + content += ' ' + parseTemplate(item, index); | |
| 174 | + }); | |
| 175 | + for(var i=0; i<fillerAmount; i++){ | |
| 176 | + shadowLis += ' <li class="filler"> </li>'; | |
| 177 | + } | |
| 178 | + content += shadowLis; | |
| 179 | + | |
| 180 | + $container.append(content); | |
| 181 | + } | |
| 182 | + | |
| 183 | + // 拼接请求到的数据内容 | |
| 184 | + function parseTemplate(data , index){ | |
| 185 | + var html = _template.replace(/\$\{(\w+)\}/g, function($0, $1){ | |
| 186 | + switch($1){ | |
| 187 | + case 'copy': | |
| 188 | + // if(index==0){ | |
| 189 | + // return '<span class="select-btn choose-btn">复制</span>'; | |
| 190 | + // }else{ | |
| 191 | + return '<span class="select-btn choose-btn">选择</span>'; | |
| 192 | + // } | |
| 193 | + | |
| 194 | + default : | |
| 195 | + return data[$1]; | |
| 196 | + } | |
| 197 | + }); | |
| 198 | + return html; | |
| 199 | + } | |
| 200 | + | |
| 201 | + | |
| 202 | + // .on('click', '#group-page-container .group-nav', function(event) { | |
| 203 | + // // 组折叠 | |
| 204 | + // event.preventDefault(); | |
| 205 | + // var target = $(this).parent(); | |
| 206 | + // target.toggleClass('active'); | |
| 207 | + // }).on('click', '#group-page-container .page-nav', function(event) { | |
| 208 | + // if($(this).hasClass('active')){ | |
| 209 | + // return; | |
| 210 | + // } | |
| 211 | + // $('.page-nav.active').removeClass('active'); | |
| 212 | + // $(this).addClass('active'); | |
| 213 | + | |
| 214 | + // var router = $(this).attr('data-router'), | |
| 215 | + // $preview = $('#preview-iframe'), | |
| 216 | + // url = '/app?_app_id='+$('#add-app-dialog').attr('data-id')+'&router='+router, | |
| 217 | + // customFeature = _appData[router].customFeature; | |
| 218 | + | |
| 219 | + // if(customFeature.form){ | |
| 220 | + // url += '&detail=-1'; | |
| 221 | + // } | |
| 222 | + // $preview.attr('src',url); | |
| 223 | + // }).on('click', '.style-color-wrap li', function(event) { | |
| 224 | + // $(this).addClass('selected').siblings('.selected').removeClass('selected'); | |
| 225 | + // setColor($(this).attr('data-color')); | |
| 226 | + // }).on('click', '.zhichi-dialog .js-btn', function(event) { | |
| 227 | + // var type = $(this).attr('data-type'); | |
| 228 | + // switch (type){ | |
| 229 | + // case 'next': | |
| 230 | + // // $('#preview-tpl-dialog').hide(); | |
| 231 | + // $('#add-app-dialog').show(); | |
| 232 | + // break; | |
| 233 | + // case 'add': | |
| 234 | + // addApp($(this)); | |
| 235 | + // break; | |
| 236 | + // case 'cancel': | |
| 237 | + // $('#add-app-dialog').hide('slow'); | |
| 238 | + // break; | |
| 239 | + // } | |
| 240 | + // }).on('click', '.change-img-wrap', function(event) { | |
| 241 | + // // 初始化 打开我的图片 | |
| 242 | + // showImgResourceBox($(this).find('img')); | |
| 243 | + // }).on('click', '.style-palette li', function(event) { | |
| 244 | + // if(confirm('您确定要更换应用的风格颜色吗?此操作会影响该应用所有的顶部导航/底部导航/按钮/分类/标题/分割线。')){ | |
| 245 | + // color = $(this).attr('data-color'); | |
| 246 | + // me.savePage(); | |
| 247 | + // me.setStyleColor(); | |
| 248 | + // me.parsePage($('#group-page-container .page-nav.active').attr('data-router')); | |
| 249 | + // me.sthChange(); | |
| 250 | + // }else{ | |
| 251 | + // return false; | |
| 252 | + // } | |
| 253 | + // }); | |
| 254 | + // | |
| 255 | + $(window).scroll(function(event) { | |
| 256 | + var $content = $('.tpl-content.active'), | |
| 257 | + $container = $content.find('.tpl-container'); | |
| 258 | + if ($container.hasClass('js-requesting') || $container.hasClass('js-no-more')) { | |
| 259 | + return; | |
| 260 | + } | |
| 261 | + var scTop = $(this).scrollTop() + 50, | |
| 262 | + scheight = $(document).height() - $(this).height(); | |
| 263 | + if(scTop >= scheight){ | |
| 264 | + var index = $('#first-navs > .active').index(), | |
| 265 | + cate = $content.find('.tpl-sec-navs .active').attr('data-cate') || $('#first-navs > .active').attr('data-cate'); | |
| 266 | + $container.addClass('js-requesting'); | |
| 267 | + getTpls(cate, index); | |
| 268 | + } | |
| 269 | + }); | |
| 270 | + | |
| 271 | + // $('#preview-tpl-dialog').zDialog({ | |
| 272 | + // width: 720, | |
| 273 | + // height: 620, | |
| 274 | + // title: 'APP模板预览' | |
| 275 | + // }); | |
| 276 | + | |
| 277 | + // $('#add-app-dialog').zDialog({ | |
| 278 | + // width: 400, | |
| 279 | + // height: 403, | |
| 280 | + // title: '创建APP' | |
| 281 | + // }); | |
| 282 | + | |
| 283 | + $('#select-color-control').spectrum({ | |
| 284 | + chooseText: '确定', | |
| 285 | + cancelText: '取消', | |
| 286 | + showInput: true, | |
| 287 | + allowEmpty:false, | |
| 288 | + containerClassName: 'full-spectrum', | |
| 289 | + showInitial: true, | |
| 290 | + showPalette: false, | |
| 291 | + showSelectionPalette: false, | |
| 292 | + showAlpha: true, | |
| 293 | + maxPaletteSize: 10, | |
| 294 | + preferredFormat: 'hex', | |
| 295 | + localStorageKey: 'spectrum.demo', | |
| 296 | + change: function(color){ | |
| 297 | + setColor(color); | |
| 298 | + } | |
| 299 | + }); | |
| 300 | + | |
| 301 | + function setColor(color){ | |
| 302 | + var _color = new String(color), | |
| 303 | + appId = $('#add-app-dialog').attr('data-id'); | |
| 304 | + $('#add-app-dialog').attr('data-color', _color); | |
| 305 | + $('#preview-iframe').attr('src', '/app?_app_id='+appId+'&style_color='+encodeURIComponent(_color)); | |
| 306 | + } | |
| 307 | + | |
| 308 | + function initialPreview(appId){ | |
| 309 | + // 预览时 | |
| 310 | + var $preview = $('#preview-iframe'); | |
| 311 | + $preview.attr('src', '/app?_app_id='+appId); | |
| 312 | + | |
| 313 | + $ajax('/index.php?r=pc/AppData/detail','get',{app_id: appId},'json',function(data){ | |
| 314 | + if (data.status === 0) { | |
| 315 | + var info = data.data; | |
| 316 | + | |
| 317 | + _cataData = typeof info.cata_data === 'string' ? JSON.parse(info.cata_data) : info.cata_data; | |
| 318 | + _appData = typeof info.app_data === 'string' ? JSON.parse(info.app_data) : info.app_data; | |
| 319 | + | |
| 320 | + parseCata(); | |
| 321 | + }else{ | |
| 322 | + alertTip(data.data); | |
| 323 | + } | |
| 324 | + | |
| 325 | + }); | |
| 326 | + } | |
| 327 | + function parseCata(router){ | |
| 328 | + var cataStr = '', | |
| 329 | + targetRouter = router || 'page00', | |
| 330 | + cataDataContent = _cataData.data; | |
| 331 | + for(var cata in cataDataContent) { | |
| 332 | + if(cataDataContent[cata]){ | |
| 333 | + var pages = cataDataContent[cata].pages, | |
| 334 | + i = 0; | |
| 335 | + cataStr += '<li class="group-page-nav active" data-index="'+cataDataContent[cata].index+'"><p class="group-nav">'+cataDataContent[cata].group+'</p><ul class="page-navs">'; | |
| 336 | + for(var item in pages){ | |
| 337 | + i++; | |
| 338 | + cataStr += parsePageNavStr(pages[item].router, pages[item].title, pages[item].name); | |
| 339 | + } | |
| 340 | + if(i<=0){ | |
| 341 | + cataStr += '<p class="empty-group-tip">此分组暂无页面</p>'; | |
| 342 | + } | |
| 343 | + | |
| 344 | + cataStr += '</ul></li>'; | |
| 345 | + } | |
| 346 | + }; | |
| 347 | + $('#group-page-container').empty().append(cataStr); | |
| 348 | + $('#group-page-container .page-nav[data-router="'+targetRouter+'"]').addClass('active'); | |
| 349 | + } | |
| 350 | + function parsePageNavStr (router, title, name){ | |
| 351 | + var str = '<li class="page-nav" data-router="'+router+'" data-title="'+title+'" data-name="'+name+'"><span class="js-page-name">'+name+'</span></li>'; | |
| 352 | + return str; | |
| 353 | + } | |
| 354 | + | |
| 355 | + function addApp($btn , param){ | |
| 356 | + if($btn.hasClass('requesting')){ | |
| 357 | + return; | |
| 358 | + } | |
| 359 | + // var name = $('#app-name').val(), | |
| 360 | + // description = $('#app-description').val(), | |
| 361 | + // logo = $('#app-logo').attr('src'), | |
| 362 | + // cover = $('#app-cover').attr('src'); | |
| 363 | + | |
| 364 | + // if(name.length<=0){ | |
| 365 | + // alertTip('请输入应用名'); | |
| 366 | + // $('#app-name').focus(); | |
| 367 | + // return; | |
| 368 | + // } | |
| 369 | + | |
| 370 | + // if(description.length<=0){ | |
| 371 | + // alertTip('请输入应用描述'); | |
| 372 | + // $('#app-description').focus(); | |
| 373 | + // return; | |
| 374 | + // } | |
| 375 | + // if(logo===cdnUrl+'/static/invitation/images/logo.png'){ | |
| 376 | + // alertTip('请上传logo'); | |
| 377 | + // return; | |
| 378 | + // } | |
| 379 | + // if(cover===cdnUrl+'/static/webapp/images/share_feng.jpg'){ | |
| 380 | + // alertTip('请上传封面'); | |
| 381 | + // return; | |
| 382 | + // } | |
| 383 | + | |
| 384 | + // var appId = $('#add-app-dialog').attr('data-id'), | |
| 385 | + // color = $('#add-app-dialog').attr('data-color'), | |
| 386 | + // param = { | |
| 387 | + // app_name : name, | |
| 388 | + // description: description, | |
| 389 | + // logo : logo, | |
| 390 | + // cover: cover, | |
| 391 | + // style_color: color | |
| 392 | + // }; | |
| 393 | + | |
| 394 | + // if(appId!='-1'){ | |
| 395 | + // // appId=='-1'的话 表示没有选择模版 | |
| 396 | + // param.f_app_id = appId; | |
| 397 | + // } | |
| 398 | + // if(color){ | |
| 399 | + // // 预览模版,有选择风格颜色并确定使用该模版时,需要把app里相关的组件变化做处理,并把修改后的app_data发给后台保存 | |
| 400 | + // setAppData(color); | |
| 401 | + // param.app_data = JSON.stringify(_appData); | |
| 402 | + // } | |
| 403 | + | |
| 404 | + $btn.addClass('requesting'); | |
| 405 | + $ajax('/index.php?r=pc/AppData/add','post', param,'json',function(data){ | |
| 406 | + $btn.removeClass('requesting'); | |
| 407 | + if (data.status === 0) { | |
| 408 | + window.location.href = '/index.php?r=pc/Webapp/edit&id='+data.data; | |
| 409 | + }else if (data.status === 2) { | |
| 410 | + loginFunc(); | |
| 411 | + $('.lr-mask').show('slow'); | |
| 412 | + } else if (data.status === 3){ | |
| 413 | + confirmTip({ | |
| 414 | + text : data.data, | |
| 415 | + ConfirmText:'立即升级', | |
| 416 | + CancelText: '暂不升级', | |
| 417 | + ConfirmFunction : function(){ | |
| 418 | + window.open('/index.php?r=pc/Index/appVipPacket'); | |
| 419 | + }, | |
| 420 | + CancelFunction : function(){ | |
| 421 | + | |
| 422 | + }, | |
| 423 | + CloseFunction : function(){ | |
| 424 | + | |
| 425 | + } | |
| 426 | + }) | |
| 427 | + } else { | |
| 428 | + alertTip(data.data); | |
| 429 | + } | |
| 430 | + }, | |
| 431 | + function(data){ | |
| 432 | + $btn.removeClass('requesting'); | |
| 433 | + alertTip(data.data); | |
| 434 | + }); | |
| 435 | + } | |
| 436 | + | |
| 437 | + function setAppData(color){ | |
| 438 | + for(var router in _appData){ | |
| 439 | + var eles = _appData[router].eles; | |
| 440 | + setAppEles(eles, color); | |
| 441 | + } | |
| 442 | + } | |
| 443 | + function setAppEles(eles, color){ | |
| 444 | + $(eles).each(function(index, ele) { | |
| 445 | + switch(ele.type){ | |
| 446 | + case 'top-nav': | |
| 447 | + case 'bottom-nav': | |
| 448 | + case 'button': | |
| 449 | + ele.style = ele.style || {}; | |
| 450 | + ele.style['background-color'] = color; | |
| 451 | + break; | |
| 452 | + case 'classify': | |
| 453 | + ele.customFeature = ele.customFeature || {}; | |
| 454 | + ele.customFeature['selectedColor'] = color; | |
| 455 | + break; | |
| 456 | + case 'breakline': | |
| 457 | + ele.style = ele.style || {}; | |
| 458 | + ele.style['border-color'] = color; | |
| 459 | + break; | |
| 460 | + case 'title-ele': | |
| 461 | + ele.customFeature = ele.customFeature || {}; | |
| 462 | + ele.customFeature['markColor'] = color; | |
| 463 | + break; | |
| 464 | + case 'static-vessel': | |
| 465 | + case 'free-vessel': | |
| 466 | + case 'list-vessel': | |
| 467 | + case 'dynamic-vessel': | |
| 468 | + case 'form-vessel': | |
| 469 | + setAppEles(ele.content, color); | |
| 470 | + break; | |
| 471 | + case 'layout-vessel': | |
| 472 | + setAppEles(ele.content.leftEles, color); | |
| 473 | + setAppEles(ele.content.rightEles, color); | |
| 474 | + break; | |
| 475 | + } | |
| 476 | + }); | |
| 477 | + } | |
| 478 | + | |
| 479 | + $("#add-label-span").on('click', function(event) { | |
| 480 | + $("#add-label").show(); | |
| 481 | + }); | |
| 482 | + $("#add-label").on('click', '.labelClose', function(event) { | |
| 483 | + $("#add-label").hide(); | |
| 484 | + }); | |
| 485 | + | |
| 486 | +}); | |
| 0 | 487 | \ No newline at end of file | ... | ... |
templates/index.html
| ... | ... | @@ -0,0 +1,551 @@ |
| 1 | + | |
| 2 | +<!DOCTYPE html> | |
| 3 | +<html lang="zh-CN"> | |
| 4 | +<head> | |
| 5 | + <title>小程序开发联盟</title> | |
| 6 | + <meta name="renderer" content="webkit"> | |
| 7 | + <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" > | |
| 8 | + <meta charset="UTF-8" name="description" content="小程序开发联盟"> | |
| 9 | + <meta name="keywords" content="小程序开发联盟"> | |
| 10 | + <link rel="shortcut icon" href="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/common/images/favicon.ico" type="image/x-icon"> | |
| 11 | + <link rel="stylesheet" href="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc2/common/css/swiper.min.css?version=10213"> | |
| 12 | + <link rel="stylesheet" href="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc2/common/css/webuploader.css"> | |
| 13 | + <link rel="stylesheet" href="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc/invitation/spectrum/spectrum.css"> | |
| 14 | + <link rel="stylesheet" href="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc2/common/css/common.css?version=10213"> | |
| 15 | + <link rel="stylesheet" href="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/webapp/css/tpl.css?version=10213"> | |
| 16 | + <link rel="stylesheet" href="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc2/common/css/jquery.Jcrop.min.css"> | |
| 17 | + <script src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/webapp/js/library/jquery-2.1.4.min.js"></script> | |
| 18 | +</head> | |
| 19 | +<body class="webapp" is_login="0"> | |
| 20 | + <!-- 导航 --> | |
| 21 | + | |
| 22 | + <link rel="stylesheet" href="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/webapp_home/css/nav.css?version=10213"> | |
| 23 | + <script type="text/javascript" src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc2/common/js/cookie.js"></script> | |
| 24 | + | |
| 25 | + <div class="nav-wrap"> | |
| 26 | + <div class="nav-logo"> | |
| 27 | + <a href="/index.php?r=pc/index/AppHome"> | |
| 28 | + <img src="http://1251027630.cdn.myqcloud.com/1251027630/ | |
| 29 | + zhichi_frontend/static/pc/index/img/nav_logo.png" alt=""> | |
| 30 | + 秀野堂</a> | |
| 31 | + </div> | |
| 32 | + <ul class="top-menu"> | |
| 33 | + <li class="menu-one"> | |
| 34 | + <a target="_blank">微信小程序</a> | |
| 35 | + </li> | |
| 36 | + <li class="menu-one"> | |
| 37 | + <a target="_blank">Home</a> | |
| 38 | + </li> | |
| 39 | + <li class="menu-one"> | |
| 40 | + <a>发现</a> | |
| 41 | + </li> | |
| 42 | + <li class="menu-one"> | |
| 43 | + <a href="/index.php?r=pc/Webapp/exclusive" target='_blank'>私塾</a> | |
| 44 | + </li> | |
| 45 | + <li class="menu-one"> | |
| 46 | + <a href="/index.php?r=pc/Webapp/AppTpl">我要定制</a> | |
| 47 | + </li> | |
| 48 | + </ul> | |
| 49 | + </div> | |
| 50 | + <!-- 导航 end --> | |
| 51 | + <!-- banner --> | |
| 52 | + <div class="banner-wrap"> | |
| 53 | + <div class="swiper-container"> | |
| 54 | + <img src="/static/img/banner.png/" style="width:100%;"/> | |
| 55 | + </div> | |
| 56 | + </div> | |
| 57 | + <!-- banner end --> | |
| 58 | + <!-- 预览 --> | |
| 59 | + <script src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc2/common/js/webuploader.nolog.min.js"></script> | |
| 60 | + <script src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc2/common/js/jquery.Jcrop.min.js"></script> | |
| 61 | + <script src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc/invitation/spectrum/spectrum.js"></script> | |
| 62 | + <script src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc2/common/js/common.js"></script> | |
| 63 | + <script src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc/invitation/js/tip.js"></script> | |
| 64 | + <!--<script src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/webapp/js/tpl.js"></script>--> | |
| 65 | + <script src="/static/js/tpl.js"></script> | |
| 66 | + <link rel="stylesheet" href="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc2/common/css/jquery.Jcrop.min.css"> | |
| 67 | + <style rel="stylesheet"> | |
| 68 | + .webapp-box { | |
| 69 | + position: fixed; | |
| 70 | + -webkit-transform: translateX(-10000px); | |
| 71 | + -moz-transform: translateX(-10000px); | |
| 72 | + transform: translateX(-10000px); | |
| 73 | + z-index: 1001; | |
| 74 | + left: 50%; | |
| 75 | + top: 10%; | |
| 76 | + width: 603px; | |
| 77 | + min-height: 460px; | |
| 78 | + margin-left: -300px; | |
| 79 | + padding-bottom: 15px; | |
| 80 | + border: 1px solid #DDD; | |
| 81 | + border-radius: 10px; | |
| 82 | + box-shadow: 5px 5px 20px rgba(0,0,0,.4),-5px -5px 20px rgba(0,0,0,.4); | |
| 83 | + background: #FFF; | |
| 84 | + } | |
| 85 | + .webapp-box input[type=file]:focus, .webapp-box input[type=checkbox]:focus, .webapp-box input[type=radio]:focus { | |
| 86 | + outline: none; | |
| 87 | + } | |
| 88 | + | |
| 89 | + | |
| 90 | + .webapp-box-header { | |
| 91 | + /* position: absolute; | |
| 92 | + top: 0; | |
| 93 | + left: 0; | |
| 94 | + z-index: 2;*/ | |
| 95 | + width: 100%; | |
| 96 | + height: 45px; | |
| 97 | + background: #FFF; | |
| 98 | + border-bottom: 1px solid #e5e5e5; | |
| 99 | + border-radius: 10px 10px 0 0; | |
| 100 | + } | |
| 101 | + .webapp-box-header-ul { | |
| 102 | + margin: 12px 0 0 10px; | |
| 103 | + padding: 0; | |
| 104 | + font-size: 0; | |
| 105 | + text-align: center; | |
| 106 | + } | |
| 107 | + .webapp-box-header-ul li { | |
| 108 | + display: inline-block; | |
| 109 | + padding: 5px 16px; | |
| 110 | + cursor: pointer; | |
| 111 | + font-size: 14px; | |
| 112 | + border-top: 1px solid #ddd; | |
| 113 | + border-bottom: 1px solid #ddd; | |
| 114 | + } | |
| 115 | + .webapp-box-header-ul li:first-child { | |
| 116 | + border-top-left-radius: 5px; | |
| 117 | + border-bottom-left-radius: 5px; | |
| 118 | + border-left: 1px solid #ddd; | |
| 119 | + } | |
| 120 | + .webapp-box-header-ul li:last-child { | |
| 121 | + border-top-right-radius: 5px; | |
| 122 | + border-bottom-right-radius: 5px; | |
| 123 | + border-right: 1px solid #ddd; | |
| 124 | + } | |
| 125 | + .webapp-box-header-ul li.active { | |
| 126 | + background: #00a3e9; | |
| 127 | + color: #FFF; | |
| 128 | + } | |
| 129 | + .webapp-box-close { | |
| 130 | + position: absolute; | |
| 131 | + top: 15px; | |
| 132 | + right: 20px; | |
| 133 | + cursor: pointer; | |
| 134 | + font-size: 2.1rem; | |
| 135 | + font-weight: bold; | |
| 136 | + line-height: 1; | |
| 137 | + color: #000; | |
| 138 | + text-shadow: 0 1px 0 #fff; | |
| 139 | + opacity: .2; | |
| 140 | + } | |
| 141 | + .webapp-box-content { | |
| 142 | + /*position: relative;*/ | |
| 143 | + /*box-sizing: border-box;*/ | |
| 144 | + /*padding: 55px 0 50px;*/ | |
| 145 | + width: 100%; | |
| 146 | + /*height: 100%;*/ | |
| 147 | + background: #FFF; | |
| 148 | + border-radius: 15px; | |
| 149 | + } | |
| 150 | + .box-hide { | |
| 151 | + display: none; | |
| 152 | + } | |
| 153 | + .webapp-box-content .box-resource-content { | |
| 154 | + display: none; | |
| 155 | + } | |
| 156 | + .webapp-box-content .webapp-content-tab { | |
| 157 | + padding-left: 10px; | |
| 158 | + margin: 0; | |
| 159 | + max-height: 140px; | |
| 160 | + overflow-y: auto; | |
| 161 | + } | |
| 162 | + .webapp-box-content .webapp-content-tab li { | |
| 163 | + display: inline-block; | |
| 164 | + padding: 5px 14px; | |
| 165 | + margin: 5px 0; | |
| 166 | + cursor: pointer; | |
| 167 | + } | |
| 168 | + .webapp-box-content .webapp-content-tab li.active { | |
| 169 | + border-radius: 6px; | |
| 170 | + background: #00a3e9; | |
| 171 | + color: #FFF; | |
| 172 | + } | |
| 173 | + .webapp-box-content .content-top-operation { | |
| 174 | + /* position: absolute; | |
| 175 | + bottom: 49px; | |
| 176 | + left: 0; | |
| 177 | + right: 0;*/ | |
| 178 | + background: #f7f7f7; | |
| 179 | + padding: 8px; | |
| 180 | + } | |
| 181 | + .webapp-box-content .content-top-operation ul { | |
| 182 | + margin: 0; | |
| 183 | + padding: 0; | |
| 184 | + } | |
| 185 | + .content-top-operation .box-operation-menu li { | |
| 186 | + margin-right: 5px; | |
| 187 | + } | |
| 188 | + #webapp-img-box .resource-list-wrap { | |
| 189 | + /* position: absolute; | |
| 190 | + top: 100px; | |
| 191 | + bottom: 100px; | |
| 192 | + left: 0; | |
| 193 | + right: 0;*/ | |
| 194 | + display: none; | |
| 195 | + height: 290px; | |
| 196 | + /*width: 100%;*/ | |
| 197 | + padding-left: 15px; | |
| 198 | + padding-top: 8px; | |
| 199 | + overflow-x: hidden; | |
| 200 | + overflow-y: auto; | |
| 201 | + } | |
| 202 | + #webapp-img-box .resource-list li { | |
| 203 | + display: inline-block; | |
| 204 | + margin: 0 15px 15px 0; | |
| 205 | + position: relative; | |
| 206 | + border: 1px solid transparent; | |
| 207 | + } | |
| 208 | + #webapp-img-box .resource-list li:hover, | |
| 209 | + #webapp-img-box .resource-list li.selected { | |
| 210 | + border-color: #ccc; | |
| 211 | + } | |
| 212 | + #webapp-img-box .resource-list li:hover { | |
| 213 | + background-color: #ddd; | |
| 214 | + } | |
| 215 | + #webapp-img-box .resource-list li.selected:after { | |
| 216 | + position: absolute; | |
| 217 | + right: -12px; | |
| 218 | + top: -10px; | |
| 219 | + display: block; | |
| 220 | + width: 24px; | |
| 221 | + height: 24px; | |
| 222 | + content: '√'; | |
| 223 | + color: #fff; | |
| 224 | + font-family: "微软雅黑"; | |
| 225 | + line-height: 22px; | |
| 226 | + text-align: center; | |
| 227 | + border: 2px solid #fff; | |
| 228 | + background: #6abb03; | |
| 229 | + border-radius: 50%; | |
| 230 | + } | |
| 231 | + /*.webapp-box-content .resource-list .img-title { | |
| 232 | + width: 72px; | |
| 233 | + height: 24px; | |
| 234 | + line-height: 24px; | |
| 235 | + margin: 0; | |
| 236 | + font-size: 12px; | |
| 237 | + white-space: nowrap; | |
| 238 | + overflow: hidden; | |
| 239 | + text-overflow: ellipsis; | |
| 240 | + }*/ | |
| 241 | + #webapp-img-box .resource-list .img-operate { | |
| 242 | + display: none; | |
| 243 | + position: absolute; | |
| 244 | + left: 0; | |
| 245 | + right: 0; | |
| 246 | + bottom: 0; | |
| 247 | + z-index: 1; | |
| 248 | + } | |
| 249 | + #webapp-my-img .resource-list li:hover .img-operate, | |
| 250 | + body[data-admin="1"] #webapp-system-img li:hover .img-operate, | |
| 251 | + body[admin="1"] #webapp-system-img li:hover .img-operate { | |
| 252 | + display: block; | |
| 253 | + } | |
| 254 | + #webapp-img-box .resource-list .img-operate a { | |
| 255 | + display: table-cell; | |
| 256 | + width: 1%; | |
| 257 | + padding: 2px; | |
| 258 | + text-align: center; | |
| 259 | + color: #fff; | |
| 260 | + font-size: 12px; | |
| 261 | + text-decoration: none; | |
| 262 | + background-color: rgba(0,0,0,.5); | |
| 263 | + } | |
| 264 | + #webapp-img-box .resource-list .img-operate a:hover { | |
| 265 | + background-color: rgba(0,0,0,.8); | |
| 266 | + } | |
| 267 | + #webapp-img-box .resource-list .progress-mask { | |
| 268 | + position: absolute; | |
| 269 | + top: 0; | |
| 270 | + left: 0; | |
| 271 | + right: 0; | |
| 272 | + bottom: 0; | |
| 273 | + background-color: rgba(0,0,0,.8); | |
| 274 | + z-index: 2; | |
| 275 | + padding-top: 30px; | |
| 276 | + color: #fff; | |
| 277 | + text-align: center; | |
| 278 | + font-size: 16px; | |
| 279 | + } | |
| 280 | + #webapp-img-box .resource-list .upload-fail-tip { | |
| 281 | + display: none; | |
| 282 | + } | |
| 283 | + .webuploader-container { | |
| 284 | + position: relative; | |
| 285 | + } | |
| 286 | + .webapp-box-footer { | |
| 287 | + position: absolute; | |
| 288 | + bottom: 0; | |
| 289 | + left: 0; | |
| 290 | + right: 0; | |
| 291 | + height: 50px; | |
| 292 | + line-height: 40px; | |
| 293 | + padding-right: 30px; | |
| 294 | + border-radius: 0 0 10px 10px; | |
| 295 | + background: #FFF; | |
| 296 | + border-top: 1px solid #e5e5e5; | |
| 297 | + z-index: 2; | |
| 298 | + font-size: 12px; | |
| 299 | + } | |
| 300 | + #img-crop-box .webapp-box-footer { | |
| 301 | + text-align: right; | |
| 302 | + } | |
| 303 | + .webapp-box .webuploader-pick { | |
| 304 | + font-size: inherit !important; | |
| 305 | + background-color: transparent; | |
| 306 | + overflow: initial; | |
| 307 | + } | |
| 308 | + .webapp-box .resource-select-num { | |
| 309 | + color: #0034FF; | |
| 310 | + } | |
| 311 | + .webapp-box .form-control { | |
| 312 | + display: inline-block; | |
| 313 | + width: 120px; | |
| 314 | + } | |
| 315 | + .webapp-box .progress-bar { | |
| 316 | + position: absolute; | |
| 317 | + left: 365px; | |
| 318 | + top: 20px; | |
| 319 | + } | |
| 320 | + .webapp-box .thumbnail { | |
| 321 | + display: inline-block; | |
| 322 | + width: 80px; | |
| 323 | + height: 80px; | |
| 324 | + margin: 0; | |
| 325 | + text-align: center; | |
| 326 | + font-size: 0; | |
| 327 | + border: none; | |
| 328 | + } | |
| 329 | + .webapp-box .thumbnail:before, .webapp-box .thumbnail:after { | |
| 330 | + content: ""; | |
| 331 | + display: inline-block; | |
| 332 | + width: 0; | |
| 333 | + height: 100%; | |
| 334 | + vertical-align: middle; | |
| 335 | + } | |
| 336 | + .webapp-box .thumbnail img { | |
| 337 | + display: inline-block; | |
| 338 | + max-width: 100%; | |
| 339 | + max-height: 100%; | |
| 340 | + vertical-align: middle; | |
| 341 | + } | |
| 342 | + #img-crop-box { | |
| 343 | + width: 700px; | |
| 344 | + height: 500px; | |
| 345 | + margin-left: -350px; | |
| 346 | + } | |
| 347 | + .img-crop-scope { | |
| 348 | + width: 508px; | |
| 349 | + height: 320px; | |
| 350 | + margin-top: 20px; | |
| 351 | + text-align: center; | |
| 352 | + font-size: 0; | |
| 353 | + border: 1px solid #bbb; | |
| 354 | + background-color: #ccc; | |
| 355 | + overflow: hidden; | |
| 356 | + } | |
| 357 | + .img-crop-top-input { | |
| 358 | + padding: 7px 10px; | |
| 359 | + background-color: #eee; | |
| 360 | + } | |
| 361 | + .jcrop-holder > input[type="radio"] { | |
| 362 | + left: -2000px !important; | |
| 363 | + } | |
| 364 | + .webapp-sub-cate { | |
| 365 | + display: none; | |
| 366 | + padding: 8px 15px; | |
| 367 | + } | |
| 368 | + .webapp-sub-cate > span { | |
| 369 | + cursor: pointer; | |
| 370 | + margin-right: 8px; | |
| 371 | + padding-right: 8px; | |
| 372 | + border-right: 1px solid; | |
| 373 | + color: #6c6c6c; | |
| 374 | + } | |
| 375 | + .webapp-sub-cate > span.active { | |
| 376 | + color: #00a3e9; | |
| 377 | + } | |
| 378 | + .img-box-ui-radio { | |
| 379 | + display: inline-block; | |
| 380 | + width: 22px; | |
| 381 | + height: 22px; | |
| 382 | + position: relative; | |
| 383 | + overflow: visible; | |
| 384 | + border: 0; | |
| 385 | + background: 0 0; | |
| 386 | + -webkit-appearance: none; | |
| 387 | + outline: 0; | |
| 388 | + vertical-align: middle; | |
| 389 | + } | |
| 390 | + .img-box-ui-radio:before { | |
| 391 | + content: ''; | |
| 392 | + display: block; | |
| 393 | + width: 16px; | |
| 394 | + height: 16px; | |
| 395 | + border: 2px solid #dfe0e1; | |
| 396 | + border-radius: 16px; | |
| 397 | + background-clip: padding-box; | |
| 398 | + position: absolute; | |
| 399 | + left: 0; | |
| 400 | + top: 0; | |
| 401 | + } | |
| 402 | + .img-box-ui-radio:checked:before { | |
| 403 | + border: 2px solid #18b4ed; | |
| 404 | + } | |
| 405 | + .img-box-ui-radio:after { | |
| 406 | + content: ''; | |
| 407 | + display: block; | |
| 408 | + width: 8px; | |
| 409 | + height: 8px; | |
| 410 | + background: #dfe0e1; | |
| 411 | + border-radius: 8px; | |
| 412 | + position: absolute; | |
| 413 | + left: 6px; | |
| 414 | + top: 6px; | |
| 415 | + } | |
| 416 | + .img-box-ui-radio:checked:after { | |
| 417 | + background: #18b4ed; | |
| 418 | + } | |
| 419 | + .img-crop-body-left { | |
| 420 | + float: left; | |
| 421 | + padding: 10px; | |
| 422 | + margin: 0 20px; | |
| 423 | + border: 1px solid #eee; | |
| 424 | + } | |
| 425 | + .img-crop-body-left label { | |
| 426 | + display: block; | |
| 427 | + padding: 0 8px; | |
| 428 | + margin: 16px 0; | |
| 429 | + text-align: right; | |
| 430 | + } | |
| 431 | + .img-crop-body-left .img-box-ui-radio { | |
| 432 | + margin-left: 10px; | |
| 433 | + } | |
| 434 | + .webapp-box .btn { | |
| 435 | + display: inline-block; | |
| 436 | + padding: 6px 12px; | |
| 437 | + width: auto; | |
| 438 | + font-size: 14px; | |
| 439 | + line-height: 18px; | |
| 440 | + border: 1px solid #ccc; | |
| 441 | + border-radius: 3px; | |
| 442 | + color: #666; | |
| 443 | + background-color: #fff; | |
| 444 | + cursor: pointer; | |
| 445 | + vertical-align: middle; | |
| 446 | + } | |
| 447 | + .webapp-box .btn.green { | |
| 448 | + color: #fff; | |
| 449 | + background-color: #03d8a2; | |
| 450 | + border-color: #05C897; | |
| 451 | + } | |
| 452 | + .webapp-box .btn.orange { | |
| 453 | + color: #fff; | |
| 454 | + background-color: #ff9f22; | |
| 455 | + border-color: #ee9016; | |
| 456 | + } | |
| 457 | + .webapp-box .btn.blue { | |
| 458 | + color: #fff; | |
| 459 | + background-color: #1dc6f1; | |
| 460 | + border-color: #15bbe5; | |
| 461 | + } | |
| 462 | + .webapp-box input[type="text"] { | |
| 463 | + border: 1px solid #ccc; | |
| 464 | + border-radius: 4px; | |
| 465 | + font-size: 14px; | |
| 466 | + line-height: 14px; | |
| 467 | + padding: 6px; | |
| 468 | + box-shadow: inset 0 1px 3px rgba(0,0,0,.2); | |
| 469 | + outline: 0; | |
| 470 | + -webkit-user-select: text; | |
| 471 | + } | |
| 472 | + .webapp-box select { | |
| 473 | + border: 1px solid #ccc; | |
| 474 | + border-radius: 4px; | |
| 475 | + line-height: 14px; | |
| 476 | + padding: 6px 4px 6px 6px; | |
| 477 | + box-shadow: inset 0 2px 8px rgba(0,0,0,.2); | |
| 478 | + outline: 0; | |
| 479 | + width: 160px; | |
| 480 | + margin: 0; | |
| 481 | + } | |
| 482 | + input[type="file"]{ | |
| 483 | + opacity: 0; | |
| 484 | + } | |
| 485 | + </style> | |
| 486 | + <div class="tpl-content active"> | |
| 487 | + <div class="tpl-sec-navs"></div> | |
| 488 | + <ul class="tpl-container js-no-more"> | |
| 489 | + <li data-id="pz5ouz71UG" data-desc="undefined" data-logo="undefined" | |
| 490 | + class="js-tpl"> | |
| 491 | + <img class="cover" src="http://img.weiye.me/zcimgdir/album/ | |
| 492 | + file_5816e850e6ff8.jpg" onerror="errorWeiyeCover(this)"> | |
| 493 | + <p class="name">影视小程序(微信标准)</p> | |
| 494 | + <div class="code-mask"> | |
| 495 | + <img class="code" src="http://img.weiye.me/tmp_file/4c35ae9d7bbc06ec8d3384f90d001ee6.png" alt=""> | |
| 496 | + <span class="select-btn js-preview-btn">预览</span> | |
| 497 | + <span class="select-btn choose-btn">选择</span> | |
| 498 | + </div> | |
| 499 | + </li> | |
| 500 | + <li data-id="SHq4Dzxth8" data-desc="undefined" data-logo="undefined" | |
| 501 | + class="js-tpl"> | |
| 502 | + <img class="cover" src="http://img.weiye.me/zcimgdir/album/ | |
| 503 | + file_5707497a71a30.jpg" onerror="errorWeiyeCover(this)"> | |
| 504 | + <p class="name">商品售卖(可支付)</p> | |
| 505 | + <div class="code-mask"> | |
| 506 | + <img class="code" src="http://img.weiye.me/tmp_file/ | |
| 507 | + 372dd5a13d48d91ae24fd55f83164c17.png" alt=""> | |
| 508 | + <span class="select-btn js-preview-btn">预览</span> | |
| 509 | + <span class="select-btn choose-btn">选择</span> | |
| 510 | + </div> | |
| 511 | + </li> | |
| 512 | + <li data-id="58v33MQ2mh" data-desc="undefined" data-logo="undefined" | |
| 513 | + class="js-tpl"> | |
| 514 | + <img class="cover" src="http://img.zhichiwangluo.com/zcimgdir/album/ | |
| 515 | + file_569a0c2312394.jpg" onerror="errorWeiyeCover(this)"> | |
| 516 | + <p class="name">好新闻</p> | |
| 517 | + <div class="code-mask"> | |
| 518 | + <img class="code" src="http://img.zhichiwangluo.com/tmp_file/ | |
| 519 | + a12306b208e330b8790ab6dcefcbf4c6.png" alt=""> | |
| 520 | + <span class="select-btn js-preview-btn">预览</span> | |
| 521 | + <span class="select-btn choose-btn">选择</span> | |
| 522 | + </div> | |
| 523 | + </li> | |
| 524 | + <li data-id="zl31CBBC1b" data-desc="undefined" data-logo="undefined" | |
| 525 | + class="js-tpl"> | |
| 526 | + <img class="cover" src="http://img.weiye.me/zcimgdir/album/ | |
| 527 | + file_576df5d02fc70.jpg" onerror="errorWeiyeCover(this)"> | |
| 528 | + <p class="name">旅游</p> | |
| 529 | + <div class="code-mask"> | |
| 530 | + <img class="code" src="http://img.weiye.me/tmp_file/ | |
| 531 | + 3a6dca9b50f64d5033f020b30f521bdd.png" alt=""> | |
| 532 | + <span class="select-btn js-preview-btn">预览</span> | |
| 533 | + <span class="select-btn choose-btn">选择</span> | |
| 534 | + </div> | |
| 535 | + </li> | |
| 536 | + <li data-id="ZSU6l4y4P6" data-desc="undefined" data-logo="undefined" | |
| 537 | + class="js-tpl"> | |
| 538 | + <img class="cover" src="http://img.weiye.me/zcimgdir/album/ | |
| 539 | + file_57fa1d7c68129.jpg" onerror="errorWeiyeCover(this)"> | |
| 540 | + <p class="name">双十一模板</p> | |
| 541 | + <div class="code-mask"> | |
| 542 | + <img class="code" src="http://img.weiye.me/tmp_file/ | |
| 543 | + 21b9bec8d88a32d9e9731e3a1498e580.png" alt=""> | |
| 544 | + <span class="select-btn js-preview-btn">预览</span> | |
| 545 | + <span class="select-btn choose-btn">选择</span> | |
| 546 | + </div> | |
| 547 | + </li> | |
| 548 | + </ul> | |
| 549 | + </div> | |
| 550 | +</body> | |
| 551 | +</html> | |
| 0 | 552 | \ No newline at end of file | ... | ... |
templates/webapp.html
| ... | ... | @@ -0,0 +1,788 @@ |
| 1 | + | |
| 2 | +<!DOCTYPE html> | |
| 3 | +<html lang="zh-CN"> | |
| 4 | +<head> | |
| 5 | + <title>即速应用-预览</title> | |
| 6 | + <meta name="renderer" content="webkit"> | |
| 7 | + <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" > | |
| 8 | + <meta charset="UTF-8" name="description" content="深圳市咫尺网络科技开发有限公司,专注于移动互联网营销解决方案,拥有微信服务号活动汇,微社区微活动应用,及酷炫的邀请函微页等产品,提供快捷方便活动管理,分享、报名统计,营销推广等服务。精彩活动,尽在咫尺!丰富您的活动,精彩您的人生,快来发起属于您的活动吧!"> | |
| 9 | + <meta name="keywords" content="活动汇,微活动,咫尺活动,微页,咫尺网络,微杂志,微邀请函,喜帖,电子邀请函,H5应用,APP,微场景,场景应用,微场景制作,场景应用制作"> | |
| 10 | + <link rel="shortcut icon" href="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/common/images/favicon.ico" type="image/x-icon"> | |
| 11 | + <link rel="stylesheet" href="/zhichi_frontend/static/webapp/css/pc_icomoon.css"> | |
| 12 | + <link rel="stylesheet" href="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc2/common/css/common.css?version=10213"> | |
| 13 | + <style type="text/css"> | |
| 14 | + html { | |
| 15 | + height: 0; | |
| 16 | + overflow: visible; | |
| 17 | + } | |
| 18 | + body { | |
| 19 | + min-width: 1200px; | |
| 20 | + background-color: #fff; | |
| 21 | + padding-top: 10px; | |
| 22 | + box-sizing: border-box; | |
| 23 | + transform-origin: center 0; | |
| 24 | + -webkit-transform-origin: center 0; | |
| 25 | + -ms-transform-origin: center 0; | |
| 26 | + -moz-transform-origin: center 0; | |
| 27 | + } | |
| 28 | + .preview-wrap { | |
| 29 | + width: 1180px; | |
| 30 | + margin-left: auto; | |
| 31 | + margin-right: auto; | |
| 32 | + text-align: center; | |
| 33 | + } | |
| 34 | + #phone-component { | |
| 35 | + position: relative; | |
| 36 | + display: inline-block; | |
| 37 | + width: 332px; | |
| 38 | + height: 678px; | |
| 39 | + margin-left: 80px; | |
| 40 | + margin-right: 80px; | |
| 41 | + background-image: url(http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/webapp/images/phone/6s.png); | |
| 42 | + background-size: 100% 100%; | |
| 43 | + background-repeat: no-repeat; | |
| 44 | + vertical-align: top; | |
| 45 | + z-index: 999; | |
| 46 | + } | |
| 47 | + .phone-head{ | |
| 48 | + position: absolute; | |
| 49 | + top: 81px; | |
| 50 | + left: 22px; | |
| 51 | + width: 288px; | |
| 52 | + height: 58px; | |
| 53 | + background-image: url(http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/webapp/images/phone-head.jpg); | |
| 54 | + background-size: 100% 100%; | |
| 55 | + background-repeat: no-repeat; | |
| 56 | + } | |
| 57 | + .phone-head span{ | |
| 58 | + color: #fff; | |
| 59 | + cursor: pointer; | |
| 60 | + position: absolute; | |
| 61 | + left: 10px; | |
| 62 | + top: 25px; | |
| 63 | + font-size: 14px; | |
| 64 | + line-height: 25px; | |
| 65 | + padding-left: 14px; | |
| 66 | + background-image: url(http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/webapp/images/left.png); | |
| 67 | + background-size: auto 15px; | |
| 68 | + background-repeat: no-repeat; | |
| 69 | + background-position: left center; | |
| 70 | + } | |
| 71 | + .phone-content { | |
| 72 | + position: absolute; | |
| 73 | + top: 139px; | |
| 74 | + left: 22px; | |
| 75 | + width: 288px; | |
| 76 | + height: 454px; | |
| 77 | + overflow: hidden; | |
| 78 | + background-color: #fff; | |
| 79 | + } | |
| 80 | + .preview-iframe { | |
| 81 | + display: block; | |
| 82 | + position: relative; | |
| 83 | + width: 320px; | |
| 84 | + height: 504px; | |
| 85 | + transform: scale(0.9); | |
| 86 | + -webkit-transform: scale(0.9); | |
| 87 | + -ms-transform: scale(0.9); | |
| 88 | + -moz-transform: scale(0.9); | |
| 89 | + transform-origin: 0 0; | |
| 90 | + -webkit-transform-origin: 0 0; | |
| 91 | + -ms-transform-origin: 0 0; | |
| 92 | + -moz-transform-origin: 0 0; | |
| 93 | + outline: none; | |
| 94 | + border: none; | |
| 95 | + } | |
| 96 | + #phone-component .page::-webkit-scrollbar, | |
| 97 | + iframe::-webkit-scrollbar { | |
| 98 | + width: 0; | |
| 99 | + height: 0; | |
| 100 | + } | |
| 101 | + #phone-component .page.dialog-page { | |
| 102 | + background-color: rgba(0,0,0,.5); | |
| 103 | + } | |
| 104 | + .nav-component { | |
| 105 | + display: inline-block; | |
| 106 | + width: 220px; | |
| 107 | + margin-top: 55px; | |
| 108 | + vertical-align: top; | |
| 109 | + text-align: left; | |
| 110 | + } | |
| 111 | + .left-component{ | |
| 112 | + width: 250px; | |
| 113 | + text-align: center; | |
| 114 | + } | |
| 115 | + .nav-component .box-title { | |
| 116 | + color: #535353; | |
| 117 | + font-size: 14px; | |
| 118 | + margin-bottom: 15px; | |
| 119 | + } | |
| 120 | + .nav-component .box-title.title2{ | |
| 121 | + margin-top: 30px; | |
| 122 | + margin-bottom: 15px; | |
| 123 | + } | |
| 124 | + .app-link-wrap input , .copy-link-wrap button{ | |
| 125 | + background-color: #fff; | |
| 126 | + border: 1px solid #ccc; | |
| 127 | + color: #535353; | |
| 128 | + width: 220px; | |
| 129 | + height: 36px; | |
| 130 | + font-size: 14px; | |
| 131 | + outline: none; | |
| 132 | + } | |
| 133 | + .app-link-wrap input{ | |
| 134 | + width: 198px; | |
| 135 | + height: 38px; | |
| 136 | + padding: 0 10px; | |
| 137 | + margin-bottom: 15px; | |
| 138 | + } | |
| 139 | + .nav-component .group-page-container { | |
| 140 | + height: 400px; | |
| 141 | + line-height: 32px; | |
| 142 | + color: #fff; | |
| 143 | + background-color: #fff; | |
| 144 | + text-indent: 34px; | |
| 145 | + border: 1px solid #ccc; | |
| 146 | + overflow-y: auto; | |
| 147 | + } | |
| 148 | + .nav-component .group-page-nav .group-nav { | |
| 149 | + position: relative; | |
| 150 | + background-color: #8d8d8d; | |
| 151 | + cursor: pointer; | |
| 152 | + line-height: 40px; | |
| 153 | + } | |
| 154 | + .nav-component .group-page-nav .group-nav:before { | |
| 155 | + content: ''; | |
| 156 | + position: absolute; | |
| 157 | + left: 6px; | |
| 158 | + top: 7px; | |
| 159 | + width: 24px; | |
| 160 | + height: 22px; | |
| 161 | + background-image: url(http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/webapp/images/icons.png); | |
| 162 | + background-repeat: no-repeat; | |
| 163 | + background-size: auto 24px; | |
| 164 | + background-position-x: -96px; | |
| 165 | + } | |
| 166 | + .nav-component .group-page-nav .group-nav:after { | |
| 167 | + content: ''; | |
| 168 | + position: absolute; | |
| 169 | + right: 12px; | |
| 170 | + top: 17px; | |
| 171 | + display: block; | |
| 172 | + width: 14px; | |
| 173 | + height: 9px; | |
| 174 | + background-image: url(http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/webapp/images/down.png); | |
| 175 | + background-size: 100% auto; | |
| 176 | + background-repeat: no-repeat; | |
| 177 | + } | |
| 178 | + .nav-component .group-page-nav.active .group-nav:after { | |
| 179 | + background-image: url(http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/webapp/images/up.png); | |
| 180 | + } | |
| 181 | + .nav-component .group-page-nav .page-navs { | |
| 182 | + display: none; | |
| 183 | + background-color: #f4f4f4; | |
| 184 | + color: #999; | |
| 185 | + cursor: pointer; | |
| 186 | + } | |
| 187 | + .nav-component .group-page-nav .page-navs .page-nav { | |
| 188 | + position: relative; | |
| 189 | + line-height: 35px; | |
| 190 | + background-color: #fff; | |
| 191 | + border-bottom: 1px solid #c6c6c6; | |
| 192 | + } | |
| 193 | + .nav-component .group-page-nav.active .page-navs { | |
| 194 | + display: block; | |
| 195 | + } | |
| 196 | + .nav-component .group-page-nav .page-navs .active{ | |
| 197 | + background-color: #c6c6c6; | |
| 198 | + color: #fff; | |
| 199 | + } | |
| 200 | + .nav-component .group-page-nav .page-navs li{ | |
| 201 | + box-sizing: border-box; | |
| 202 | + -webkit-box-sizing: border-box; | |
| 203 | + } | |
| 204 | + .nav-component .group-page-nav .page-navs li:hover { | |
| 205 | + outline: 1px solid #ffb100; | |
| 206 | + text-indent: 33px; | |
| 207 | + border: 1px solid #ffb100; | |
| 208 | + border-top: 0; | |
| 209 | + } | |
| 210 | + .nav-component .group-page-nav .page-navs .empty-group-tip { | |
| 211 | + background-color: #fff!important; | |
| 212 | + color: #666; | |
| 213 | + text-align: center; | |
| 214 | + text-indent: 0; | |
| 215 | + cursor: default; | |
| 216 | + } | |
| 217 | + #preview-code { | |
| 218 | + width: 180px; | |
| 219 | + height: 180px; | |
| 220 | + } | |
| 221 | + .code-container { | |
| 222 | + display: inline-block; | |
| 223 | + padding: 10px; | |
| 224 | + border: 1px solid #ccc; | |
| 225 | + } | |
| 226 | + .cata-phone-tab { | |
| 227 | + display: inline-block; | |
| 228 | + margin-right: 26px; | |
| 229 | + margin-top: 147px; | |
| 230 | + cursor: pointer; | |
| 231 | + } | |
| 232 | + .cata-phone-tab > div { | |
| 233 | + padding: 14px 7px; | |
| 234 | + width: 18px; | |
| 235 | + margin-left: auto; | |
| 236 | + margin-right: auto; | |
| 237 | + color: #666; | |
| 238 | + border: 1px solid #ccc; | |
| 239 | + } | |
| 240 | + .cata-phone-tab > div.active { | |
| 241 | + color: #fff; | |
| 242 | + background: #8d8d8d; | |
| 243 | + border: 1px solid #8d8d8d; | |
| 244 | + } | |
| 245 | + .phone-model { | |
| 246 | + display: none; | |
| 247 | + } | |
| 248 | + .phone-model-list { | |
| 249 | + color: #999; | |
| 250 | + font-size: 16px; | |
| 251 | + line-height: 36px; | |
| 252 | + text-align: center; | |
| 253 | + } | |
| 254 | + .phone-model-list li { | |
| 255 | + margin-bottom: 5px; | |
| 256 | + border: 1px solid #ccc; | |
| 257 | + cursor: pointer; | |
| 258 | + } | |
| 259 | + .phone-model-list li.active { | |
| 260 | + color: #fff; | |
| 261 | + background-color: #8d8d8d; | |
| 262 | + border-color: #8d8d8d; | |
| 263 | + } | |
| 264 | + #phone-component.phone-6plus { | |
| 265 | + width: 332px; | |
| 266 | + height: 670px; | |
| 267 | + background-image: url(http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/webapp/images/phone/6s.png); | |
| 268 | + } | |
| 269 | + #phone-component.phone-6plus .phone-head { | |
| 270 | + top: 81px; | |
| 271 | + left: 22px; | |
| 272 | + width: 288px; | |
| 273 | + } | |
| 274 | + #phone-component.phone-6plus .phone-content { | |
| 275 | + top: 139px; | |
| 276 | + left: 22px; | |
| 277 | + width: 288px; | |
| 278 | + height: 446px; | |
| 279 | + } | |
| 280 | + #phone-component.phone-6plus .preview-iframe { | |
| 281 | + width: 320px; | |
| 282 | + height: 495px; | |
| 283 | + transform: scale(0.9); | |
| 284 | + -webkit-transform: scale(0.9); | |
| 285 | + -ms-transform: scale(0.9); | |
| 286 | + -moz-transform: scale(0.9); | |
| 287 | + } | |
| 288 | + #phone-component.phone-5s { | |
| 289 | + width: 312px; | |
| 290 | + height: 648px; | |
| 291 | + background-image: url(http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/webapp/images/phone/5s.png); | |
| 292 | + } | |
| 293 | + #phone-component.phone-5s .phone-head { | |
| 294 | + top: 93px; | |
| 295 | + left: 25px; | |
| 296 | + width: 262px; | |
| 297 | + } | |
| 298 | + #phone-component.phone-5s .phone-content { | |
| 299 | + top: 150px; | |
| 300 | + left: 26px; | |
| 301 | + width: 260px; | |
| 302 | + height: 405px; | |
| 303 | + } | |
| 304 | + #phone-component.phone-5s .preview-iframe { | |
| 305 | + width: 320px; | |
| 306 | + height: 498px; | |
| 307 | + transform: scale(0.8125); | |
| 308 | + -webkit-transform: scale(0.8125); | |
| 309 | + -ms-transform: scale(0.8125); | |
| 310 | + -moz-transform: scale(0.8125); | |
| 311 | + } | |
| 312 | + #phone-component.phone-note4 { | |
| 313 | + width: 340px; | |
| 314 | + height: 665px; | |
| 315 | + background-image: url(http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/webapp/images/phone/note4.png); | |
| 316 | + } | |
| 317 | + #phone-component.phone-note4 .phone-head { | |
| 318 | + top: 56px; | |
| 319 | + left: 16px; | |
| 320 | + width: 306px; | |
| 321 | + } | |
| 322 | + #phone-component.phone-note4 .phone-content { | |
| 323 | + left: 17px; | |
| 324 | + top: 114px; | |
| 325 | + width: 305px; | |
| 326 | + height: 497px; | |
| 327 | + } | |
| 328 | + #phone-component.phone-note4 .preview-iframe { | |
| 329 | + width: 320px; | |
| 330 | + height: 521px; | |
| 331 | + transform: scale(0.953215); | |
| 332 | + -webkit-transform: scale(0.953215); | |
| 333 | + -ms-transform: scale(0.953215); | |
| 334 | + -moz-transform: scale(0.953215); | |
| 335 | + } | |
| 336 | + #phone-component.phone-p8 { | |
| 337 | + width: 334px; | |
| 338 | + height: 650px; | |
| 339 | + background-image: url(http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/webapp/images/phone/p8.png); | |
| 340 | + } | |
| 341 | + #phone-component.phone-p8 .phone-head { | |
| 342 | + top: 57px; | |
| 343 | + left: 10px; | |
| 344 | + width: 315px; | |
| 345 | + } | |
| 346 | + #phone-component.phone-p8 .phone-content { | |
| 347 | + top: 115px; | |
| 348 | + left: 10px; | |
| 349 | + width: 315px; | |
| 350 | + height: 480px; | |
| 351 | + } | |
| 352 | + #phone-component.phone-p8 .preview-iframe { | |
| 353 | + width: 322px; | |
| 354 | + height: 491px; | |
| 355 | + transform: scale(0.978125); | |
| 356 | + -webkit-transform: scale(0.978125); | |
| 357 | + -ms-transform: scale(0.978125); | |
| 358 | + -moz-transform: scale(0.978125); | |
| 359 | + } | |
| 360 | + #phone-component.phone-mi4 { | |
| 361 | + width: 330px; | |
| 362 | + height: 660px; | |
| 363 | + background-image: url(http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/webapp/images/phone/mi4.png); | |
| 364 | + } | |
| 365 | + #phone-component.phone-mi4 .phone-head { | |
| 366 | + top: 63px; | |
| 367 | + left: 17px; | |
| 368 | + width: 296px; | |
| 369 | + } | |
| 370 | + #phone-component.phone-mi4 .phone-content { | |
| 371 | + top: 121px; | |
| 372 | + left: 17px; | |
| 373 | + width: 296px; | |
| 374 | + height: 462px; | |
| 375 | + } | |
| 376 | + #phone-component.phone-mi4 .preview-iframe { | |
| 377 | + width: 322px; | |
| 378 | + height: 503px; | |
| 379 | + transform: scale(0.91875); | |
| 380 | + -webkit-transform: scale(0.91875); | |
| 381 | + -ms-transform: scale(0.91875); | |
| 382 | + -moz-transform: scale(0.91875); | |
| 383 | + } | |
| 384 | + #phone-component.ipad-air { | |
| 385 | + width: 460px; | |
| 386 | + height: 660px; | |
| 387 | + background-image: url(http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/webapp/images/phone/ipad-air.png); | |
| 388 | + } | |
| 389 | + #phone-component.ipad-air .phone-head { | |
| 390 | + top: 59px; | |
| 391 | + left: 30px; | |
| 392 | + width: 400px; | |
| 393 | + height: 80px; | |
| 394 | + } | |
| 395 | + #phone-component.ipad-air .phone-head > span { | |
| 396 | + top: 40px; | |
| 397 | + } | |
| 398 | + #phone-component.ipad-air .phone-content { | |
| 399 | + top: 139px; | |
| 400 | + left: 30px; | |
| 401 | + width: 400px; | |
| 402 | + height: 461px; | |
| 403 | + } | |
| 404 | + #phone-component.ipad-air .preview-iframe { | |
| 405 | + width: 323px; | |
| 406 | + height: 373px; | |
| 407 | + transform: scale(1.2375); | |
| 408 | + -webkit-transform: scale(1.2375); | |
| 409 | + -ms-transform: scale(1.2375); | |
| 410 | + -moz-transform: scale(1.2375); | |
| 411 | + } | |
| 412 | + | |
| 413 | + .bottom-tab { | |
| 414 | + margin-top: 78px; | |
| 415 | + width: 36px !important; | |
| 416 | + padding: 0 !important; | |
| 417 | + } | |
| 418 | + .bottom-tab > span { | |
| 419 | + display: block; | |
| 420 | + width: 36px; | |
| 421 | + height: 50px; | |
| 422 | + line-height: 40px; | |
| 423 | + font-size: 20px; | |
| 424 | + text-align: center; | |
| 425 | + color: #aaa; | |
| 426 | + cursor: pointer; | |
| 427 | + background-color: #fff; | |
| 428 | + } | |
| 429 | + .bottom-tab > span:first-child { | |
| 430 | + border-bottom: 1px solid #e7e7e7; | |
| 431 | + } | |
| 432 | + .bottom-tab a { | |
| 433 | + display: inline-block; | |
| 434 | + color: #aaa; | |
| 435 | + width: 100%; | |
| 436 | + height: 100%; | |
| 437 | + font-size: 12px; | |
| 438 | + line-height: 1em; | |
| 439 | + } | |
| 440 | + .bottom-tab a > span { | |
| 441 | + display: inline-block; | |
| 442 | + width: 100%; | |
| 443 | + margin: 5px 0; | |
| 444 | + font-size: 20px; | |
| 445 | + vertical-align: top; | |
| 446 | + } | |
| 447 | + </style> | |
| 448 | + <script src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/webapp/js/library/jquery-2.1.4.min.js"></script> | |
| 449 | + <script src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc/invitation/js/tip.js"></script> | |
| 450 | + <script type="text/javascript"> | |
| 451 | + var scaleRatio = window.innerHeight/683, | |
| 452 | + scaleStr; | |
| 453 | + | |
| 454 | + if(scaleRatio > 1){ | |
| 455 | + scaleRatio = 1; | |
| 456 | + } | |
| 457 | + scaleStr = 'scale('+scaleRatio+')'; | |
| 458 | + window.onload = function(){ | |
| 459 | + $('.webapp').css({ | |
| 460 | + transform: scaleStr, | |
| 461 | + '-webkit-transform': scaleStr, | |
| 462 | + '-ms-transform': scaleStr, | |
| 463 | + '-moz-transform': scaleStr | |
| 464 | + }); | |
| 465 | + }; | |
| 466 | + </script> | |
| 467 | + <script type='text/javascript'> | |
| 468 | + var _vds = _vds || []; | |
| 469 | + window._vds = _vds; | |
| 470 | + (function(){ | |
| 471 | + _vds.push(['setAccountId', '9fd21c28eb55d8a5']); | |
| 472 | + (function() { | |
| 473 | + var vds = document.createElement('script'); | |
| 474 | + vds.type='text/javascript'; | |
| 475 | + vds.async = true; | |
| 476 | + vds.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'dn-growing.qbox.me/vds.js'; | |
| 477 | + var s = document.getElementsByTagName('script')[0]; | |
| 478 | + s.parentNode.insertBefore(vds, s); | |
| 479 | + })(); | |
| 480 | + })(); | |
| 481 | + </script> | |
| 482 | +</head> | |
| 483 | +<body class="webapp" is_login="0"> | |
| 484 | + <div id="preview-wrap" class="preview-wrap"> | |
| 485 | + <div class="nav-component left-component"> | |
| 486 | + <p class="box-title">扫描二维码预览并分享给朋友</p> | |
| 487 | + <div class="code-container"> | |
| 488 | + <img src="" id="preview-code"> | |
| 489 | + </div> | |
| 490 | + <p class="box-title title2">或复制链接发送给朋友</p> | |
| 491 | + <div class="app-link-wrap"><input type="text" id="app-link"></div> | |
| 492 | + <div class="copy-link-wrap"><button id="copy-link">复制链接</button></div> | |
| 493 | + </div> | |
| 494 | + <div id="phone-component" class="phone-6plus"> | |
| 495 | + <div class="phone-head"><span id="go-back">返回</span></div> | |
| 496 | + <div id="phone-container" class="phone-content"> | |
| 497 | + <iframe class="preview-iframe" id="preview-iframe" frameborder="0" allowtransparency="true" seamless></iframe> | |
| 498 | + </div> | |
| 499 | + </div> | |
| 500 | + <div class="cata-phone-tab"> | |
| 501 | + <div class="tab-item-cata active">目录</div> | |
| 502 | + <div class="tab-item-phone">机型</div> | |
| 503 | + <div class="bottom-tab"> | |
| 504 | + <span><a target="_blank" href="/index.php?r=pc/Webapp/exclusive"><span class="icon-container icon-heart" title="我要定制"></span>定制</a></span> | |
| 505 | + <span><a target="_blank" href="http://jq.qq.com/?_wv=1027&k=2Fp43Eg"><span class="icon-container icon-earphone"></span>客服</a></span> | |
| 506 | + </div> | |
| 507 | + </div> | |
| 508 | + <div id="nav-component" class="nav-component"> | |
| 509 | + <p class="box-title">按目录浏览</p> | |
| 510 | + <ul id="group-page-container" class="group-page-container"></ul> | |
| 511 | + </div> | |
| 512 | + <div id="phone-model" class="phone-model nav-component"> | |
| 513 | + <p class="box-title">此预览仅供参考,以实际设备为准</p> | |
| 514 | + <ul class="phone-model-list"> | |
| 515 | + <li class="active" data-type="phone-6plus">iPhone 6 Plus</li> | |
| 516 | + <li data-type="phone-5s">iPhone 5s</li> | |
| 517 | + <li data-type="phone-note4">三星Note 4</li> | |
| 518 | + <li data-type="phone-p8">华为P8</li> | |
| 519 | + <li data-type="phone-mi4">小米M4</li> | |
| 520 | + <li data-type="ipad-air">iPad Air 2</li> | |
| 521 | + </ul> | |
| 522 | + </div> | |
| 523 | + </div> | |
| 524 | + <!-- 登录注册 --> | |
| 525 | + <link rel="stylesheet" href="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/webapp_home/css/app_login_reg.css?version=10213"> | |
| 526 | + | |
| 527 | + <script type="text/javascript" src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc2/common/js/jquery.md5.js"></script> | |
| 528 | + <script type="text/javascript" src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc2/common/js/cookie.js"></script> | |
| 529 | + <script type="text/javascript" src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/webapp_home/js/app_login_reg.js?version=10213"></script> | |
| 530 | + <div class="lr-mask" id="login_wrap" user_token=""> | |
| 531 | + <div class="lr" id="login-panel"> | |
| 532 | + <div class="lr-left"> | |
| 533 | + <div class="reg-wrap"> | |
| 534 | + <img src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc2/index/images/toreg.png"> | |
| 535 | + <div class="to-reg">注册</div> | |
| 536 | + </div> | |
| 537 | + <div class="login-wrap"> | |
| 538 | + <img src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc2/index/images/tologin.png"> | |
| 539 | + <div class="to-login">登录</div> | |
| 540 | + </div> | |
| 541 | + </div><div class="lr-right"> | |
| 542 | + <div class="login-info-wrap"> | |
| 543 | + <div class="title">登录<span>(个人/企业账号)</span></div> | |
| 544 | + <input style="margin-top: 60px;" id="login-username" type="text" placeholder="邮箱/手机号" class="long-input"> | |
| 545 | + <input style="margin-top: 20px;" id="login-password" type="password" placeholder="请输入6-20位密码" class="long-input"> | |
| 546 | + <div class="Rempw"><input type="checkbox" id="remberPw" checked><label for="remberPw">记住密码</label><span class="forgetPw">忘记密码</span></div> | |
| 547 | + <div id="login-btn" class="login-btn">登录</div> | |
| 548 | + <p style="padding: 10px 0;">还没有账号?<span class="reg-now">免费注册</span></p> | |
| 549 | + <div style="margin-top: 10px;"><span class="cross-Line"></span><span style="margin: 0 10px;font-size: 16px;">第三方账号登录</span><span class="cross-Line"></span></div> | |
| 550 | + <div class="img-qq"> | |
| 551 | + <a class="login-wx" href="javascript:;"><img title="微信" src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc2/index/images/wx.png"></a> | |
| 552 | + <a class="login_qq" href="http://www.zhichiwangluo.com/index.php?r=Login/qLogin"><img title="QQ" src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc2/index/images/qq.png"></a> | |
| 553 | + <a class="login_wd" href="/index.php?r=Login/wdlogin"><img title="微店" src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc2/index/images/wd.png"></a> | |
| 554 | + <a class="login_qq" href="/index.php?r=login/WMLogin"><img title="微盟" src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc2/index/images/weimob.png"></a> | |
| 555 | + <a class="login_qq" href="/index.php?r=login/WBLogin"><img title="微博" src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc2/index/images/wb.png"></a> | |
| 556 | + </div> | |
| 557 | + </div> | |
| 558 | + <div class="wx-login" > | |
| 559 | + <div class="title">微信登录</div> | |
| 560 | + <img class="code-img" src=""> | |
| 561 | + <p style="text-align: center;"><span class="cross-Line"></span>微信扫码登录<span class="cross-Line"></span></p> | |
| 562 | + <p class="account-login" style="margin-top: 30px;text-align: center;color: #3091f2;cursor: pointer;">返回账号登陆</p> | |
| 563 | + </div> | |
| 564 | + <div class="reg-info-wrap"> | |
| 565 | + <div class="reg-type"><span class="active">个人注册</span><span>企业注册</span></div> | |
| 566 | + <div class="person-reg"> | |
| 567 | + <img class="code-img" src="" alt=""> | |
| 568 | + <p style="text-align: center;"><span style="width:55px;" class="cross-Line"></span><span style="margin: 0 5px;">微信扫码注册</span><span style="width:55px;" class="cross-Line"></span></p> | |
| 569 | + | |
| 570 | + <div class="perfit-info" > | |
| 571 | + <input style="margin-top: 60px;" type="text" id="perfit-phone" placeholder="手机号" class="long-input"> | |
| 572 | + <input type="password" placeholder="密码" id="perfit-pw1" class="long-input"> | |
| 573 | + <input type="password" placeholder="确认密码" id="perfit-pw2" class="long-input"> | |
| 574 | + <input type="text" placeholder="验证码" id="perfit-code" style="width: 177px"><span class="getPerfitCode">获取验证码</span> | |
| 575 | + <input type="text" placeholder="邀请码" id="perfit-invite" class="long-input"> | |
| 576 | + <div class="login-btn" id="perfit-info">注册</div> | |
| 577 | + </div> | |
| 578 | + </div> | |
| 579 | + <div class="company-reg"> | |
| 580 | + <input type="text" id="reg-fullname" placeholder="企业名称" class="long-input"><!-- <label class="necessary">*</label> --> | |
| 581 | + <input type="text" id="reg-phone" placeholder="手机号" class="long-input"><img style="width: 20px;vertical-align: middle;margin-left: 10px;" id="reg-phone-exist"><!-- <label class="necessary">*</label> --> | |
| 582 | + <input type="password" class="reg-password long-input" placeholder="密码" class="long-input"><!-- <label class="necessary">*</label> --> | |
| 583 | + <input type="password" class="reg-conpassword long-input" placeholder="确认密码" class="long-input"><!-- <label class="necessary">*</label> --> | |
| 584 | + <input type="text" id="phone-code" placeholder="验证码" class="short-input" style="margin-top: 15px;width: 146px;"><span class="getPhoneCode">获取验证码</span> | |
| 585 | + <select id="reg-company-type"> | |
| 586 | + <option value="政府机构">政府机构</option> | |
| 587 | + <option value="微信">微信</option> | |
| 588 | + <option value="传媒广告">传媒广告</option> | |
| 589 | + <option value="电商">电商</option> | |
| 590 | + <option value="餐饮">餐饮</option> | |
| 591 | + <option value="家具">家具</option> | |
| 592 | + <option value="IT">IT</option> | |
| 593 | + <option value="教育">教育</option> | |
| 594 | + <option value="房地产">房地产</option> | |
| 595 | + <option value="服装">服装</option> | |
| 596 | + <option value="婚庆">婚庆</option> | |
| 597 | + <option value="娱乐">娱乐</option> | |
| 598 | + <option value="旅游">旅游</option> | |
| 599 | + <option value="汽车">汽车</option> | |
| 600 | + <option value="美容">美容</option> | |
| 601 | + <option value="摄影">摄影</option> | |
| 602 | + <option value="公益">公益</option> | |
| 603 | + <option value="金融">金融</option> | |
| 604 | + </select> | |
| 605 | + <div><select id="province-select"><option disabled selected>选择省</option></select><select id="city-select"><option disabled selected>选择市</option></select><select id="area-select"><option disabled selected>选择区</option></select></div> | |
| 606 | + <div style="margin-top: 15px;"><input id="inviteCode" class="short-input" placeholder="邀请码,可不填"><span class="reg-btn">注册</span></div> | |
| 607 | + </div> | |
| 608 | + </div> | |
| 609 | + <div class="findBackPw"> | |
| 610 | + <div class="title"><span class="findtype" type="phone">手机找回</span><span class="changetype">通过邮箱找回</span></div> | |
| 611 | + <div> | |
| 612 | + <input style="margin-top: 60px;" id="email-or-phone" type="text" class="account long-input" placeholder="注册手机号"> | |
| 613 | + <input type="text" id="code-input" class="short-input" placeholder="验证码"><span class="getCode">获取验证码</span> | |
| 614 | + <input type="password" id="newPw1" class="long-input" placeholder="新密码"> | |
| 615 | + <input type="password" id="newPw2" class="long-input" placeholder="确认密码"> | |
| 616 | + <div style="margin-top: 25px;" id='findReset' class="login-btn">确认</div> | |
| 617 | + <p class="login-now" style="margin-top: 30px;text-align: center;color: #3091f2;cursor: pointer;">我想起来了,去登录 ></p> | |
| 618 | + </div> | |
| 619 | + </div> | |
| 620 | + </div> | |
| 621 | + </div> | |
| 622 | + </div> | |
| 623 | + <!-- 登录注册 完 --> | |
| 624 | +<script src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/webapp/js/library/jquery.zeroclipboard.min.js"></script> | |
| 625 | +<script src="http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend/static/pc2/common/js/common.js"></script> | |
| 626 | +<script> | |
| 627 | + $(function() { | |
| 628 | + var appId = GetQueryString('id'), | |
| 629 | + cdnUrl= 'http://1251027630.cdn.myqcloud.com/1251027630/zhichi_frontend', | |
| 630 | + _appData = {}; | |
| 631 | + initialPreview(appId); | |
| 632 | + | |
| 633 | + if(GetQueryString('f_tpl') == 1){ | |
| 634 | + $('#nav-component').append('<div class="copy-link-wrap" style="margin-top:15px;"><button class="choose-tpl" style="background-color:#fdcb2e; color:#3f4125; border-color:#fdcb2e; border-bottom:4px solid #e1ab00;">使用模板</button></div>'); | |
| 635 | + } | |
| 636 | + | |
| 637 | + $('body').on('click', '#group-page-container .group-nav', function(event) { | |
| 638 | + // 组折叠 | |
| 639 | + event.preventDefault(); | |
| 640 | + var target = $(this).parent(); | |
| 641 | + target.toggleClass('active'); | |
| 642 | + }).on('click', '#group-page-container .page-nav', function(event) { | |
| 643 | + if($(this).hasClass('active')){ | |
| 644 | + return; | |
| 645 | + } | |
| 646 | + $('.page-nav.active').removeClass('active'); | |
| 647 | + $(this).addClass('active'); | |
| 648 | + | |
| 649 | + var router = $(this).attr('data-router'), | |
| 650 | + $preview = $('#preview-iframe'), | |
| 651 | + url = 'http://jisuapp.cn/app?_app_id='+appId+'&router='+router, | |
| 652 | + historyId = GetQueryString('history_id'), | |
| 653 | + customFeature = _appData[router].customFeature; | |
| 654 | + | |
| 655 | + historyId && (url += '&history_id='+historyId); | |
| 656 | + if(customFeature.form){ | |
| 657 | + url += '&detail=-1'; | |
| 658 | + } | |
| 659 | + $preview.attr('src',url); | |
| 660 | + | |
| 661 | + }).on('click', '.choose-tpl', function(){ | |
| 662 | + if($('body').attr('is_login') == 0){ | |
| 663 | + loginFunc(); | |
| 664 | + $(".lr-mask").show(); | |
| 665 | + return; | |
| 666 | + } | |
| 667 | + var param = { | |
| 668 | + app_name : '我的应用', | |
| 669 | + description: '' , | |
| 670 | + logo : cdnUrl + '/static/invitation/images/logo.png', | |
| 671 | + cover: cdnUrl + '/static/webapp/images/share_feng.jpg' , | |
| 672 | + f_app_id : appId | |
| 673 | + }, | |
| 674 | + $btn = $(this); | |
| 675 | + | |
| 676 | + if($btn.hasClass('requesting')) { return; } | |
| 677 | + $btn.addClass('requesting'); | |
| 678 | + $ajax('http://jisuapp.cn/index.php?r=pc/AppData/add','post', param,'json',function(data){ | |
| 679 | + $btn.removeClass('requesting'); | |
| 680 | + if (data.status === 0) { | |
| 681 | + window.location.href = 'http://jisuapp.cn/index.php?r=pc/Webapp/edit&id='+data.data; | |
| 682 | + } else if (data.status === 3){ | |
| 683 | + confirmTip({ | |
| 684 | + text : data.data + "<p>是否去升级VIP?</p>", | |
| 685 | + ConfirmFunction : function(){ | |
| 686 | + window.open('http://jisuapp.cn/index.php?r=pc/Index/appVipPacket'); | |
| 687 | + } | |
| 688 | + }); | |
| 689 | + } else { | |
| 690 | + alertTip(data.data); | |
| 691 | + } | |
| 692 | + }, function(data){ | |
| 693 | + $btn.removeClass('requesting'); | |
| 694 | + alertTip(data.data); | |
| 695 | + }); | |
| 696 | + }); | |
| 697 | + function initialPreview(appId){ | |
| 698 | + // 预览时 | |
| 699 | + var $preview = $('#preview-iframe'), | |
| 700 | + router = GetQueryString('router'), | |
| 701 | + para = { | |
| 702 | + app_id: appId, | |
| 703 | + history_id: GetQueryString('history_id') || '' | |
| 704 | + }; | |
| 705 | + | |
| 706 | + $ajax('http://jisuapp.cn/index.php?r=AppData/detail','get',para,'json',function(data){ | |
| 707 | + if (data.status === 0) { | |
| 708 | + var info = data.data, | |
| 709 | + _cataData = typeof info.cata_data === 'string' ? JSON.parse(info.cata_data) : info.cata_data; | |
| 710 | + | |
| 711 | + _appData = typeof info.app_data === 'string' ? JSON.parse(info.app_data) : info.app_data; | |
| 712 | + $('#preview-code').attr('src', info.qrcode); | |
| 713 | + $('#app-link').val(info.url); | |
| 714 | + parseCata(_cataData); | |
| 715 | + if(!router){ | |
| 716 | + router = _appData.version == 1 ? _appData.data['homepage-router'] : 'page10000'; | |
| 717 | + } | |
| 718 | + $('#group-page-container .page-nav[data-router='+router+']').trigger('click'); | |
| 719 | + }else{ | |
| 720 | + alertTip(data.data); | |
| 721 | + } | |
| 722 | + | |
| 723 | + }); | |
| 724 | + } | |
| 725 | + function parseCata(_cataData, router){ | |
| 726 | + var cataStr = '', | |
| 727 | + targetRouter = router || 'page10000', | |
| 728 | + cataDataContent = _cataData.data; | |
| 729 | + for(var cata in cataDataContent) { | |
| 730 | + if(cataDataContent[cata]){ | |
| 731 | + var pages = cataDataContent[cata].pages, | |
| 732 | + i = 0; | |
| 733 | + cataStr += '<li class="group-page-nav active" data-index="'+cataDataContent[cata].index+'"><p class="group-nav">'+cataDataContent[cata].group+'</p><ul class="page-navs">'; | |
| 734 | + for(var item in pages){ | |
| 735 | + i++; | |
| 736 | + cataStr += parsePageNavStr(pages[item].router, pages[item].title, pages[item].name); | |
| 737 | + } | |
| 738 | + if(i<=0){ | |
| 739 | + cataStr += '<p class="empty-group-tip">此分组暂无页面</p>'; | |
| 740 | + } | |
| 741 | + | |
| 742 | + cataStr += '</ul></li>'; | |
| 743 | + } | |
| 744 | + }; | |
| 745 | + $('#group-page-container').empty().append(cataStr); | |
| 746 | + } | |
| 747 | + function parsePageNavStr (router, title, name){ | |
| 748 | + var str = '<li class="page-nav" data-router="'+router+'" data-title="'+title+'" data-name="'+name+'"><span class="js-page-name">'+name+'</span></li>'; | |
| 749 | + return str; | |
| 750 | + } | |
| 751 | + | |
| 752 | + $("#copy-link").on('copy', function(e){ | |
| 753 | + e.clipboardData.clearData(); | |
| 754 | + e.clipboardData.setData('text/plain', $('#app-link').val()); | |
| 755 | + e.preventDefault(); | |
| 756 | + }).on('aftercopy', function(e){ | |
| 757 | + alertTip('复制成功'); | |
| 758 | + }); | |
| 759 | + | |
| 760 | + $("#go-back").on('click' , function(event) { | |
| 761 | + var $preview = $('#preview-iframe')[0]; | |
| 762 | + $preview.contentWindow.history.back() | |
| 763 | + }); | |
| 764 | + | |
| 765 | + $('.tab-item-cata').on('click', function(){ | |
| 766 | + $(this).addClass('active').siblings().removeClass('active'); | |
| 767 | + $('#phone-model').css('display', 'none'); | |
| 768 | + $('#nav-component').css('display', 'inline-block'); | |
| 769 | + }); | |
| 770 | + | |
| 771 | + $('.tab-item-phone').on('click', function(){ | |
| 772 | + $(this).addClass('active').siblings().removeClass('active'); | |
| 773 | + $('#phone-model').css('display', 'inline-block'); | |
| 774 | + $('#nav-component').css('display', 'none'); | |
| 775 | + }); | |
| 776 | + | |
| 777 | + $('.phone-model-list').on('click', 'li', function(){ | |
| 778 | + var type = $(this).attr('data-type'), | |
| 779 | + $phone = $('#phone-component'), | |
| 780 | + $iframe = $phone.find('iframe'); | |
| 781 | + | |
| 782 | + $(this).addClass('active').siblings('.active').removeClass('active'); | |
| 783 | + $phone.attr('class', type); | |
| 784 | + }); | |
| 785 | + }); | |
| 786 | +</script> | |
| 787 | +</body> | |
| 788 | +</html> | |
| 0 | 789 | \ No newline at end of file | ... | ... |