You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1252 lines
64 KiB
HTML

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<extend name="Public/base" />
<block name="css">
<link rel="stylesheet" type="text/css" href="__CSS__/admin_table.css" media="all">
<link rel="stylesheet" type="text/css" href="__STATIC__/webuploader/webuploader.css" media="all">
<style>
#form .txt_area.download_url {width:400px;}
.tabcon1711 .table_radio2 .table_btn {width:215px;}
</style>
</block>
<block name="body">
<script type="text/javascript" src="__STATIC__/uploadify/jquery.uploadify.min.js"></script>
<script src="__STATIC__/md5.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" src="__STATIC__/webuploader/webuploader.js"></script>
<script src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<script type="text/javascript" src="__STATIC__/layer/extend/layer.ext.js"></script>
<!-- 标签页导航 -->
<div class="tab-wrap">
<div class="cf main-place top_nav_list navtab_list">
<ul class="tabnav1711 fr jstabnav">
<li data-tab="tab1" class="current"><a href="javascript:void(0);">基础信息</a></li>
<notempty name='show_status'>
<li data-tab="tab2" ><a href="javascript:void(0);">下载设置</a></li>
</notempty>
<li data-tab="tab3" ><a href="javascript:void(0);">参数配置</a></li>
<li data-tab="tab4" ><a href="javascript:void(0);">H5分享页面</a></li>
<li data-tab="tab5" ><a href="javascript:void(0);">用户等级设置</a></li>
</ul>
<h3 class="page_title">新增游戏</h3>
<p class="description_text">说明:查看和编辑游戏的基础信息、下载设置、参数信息等。</p>
</div>
<div class="tab-content tabcon1711">
<!-- 表单 -->
<form id="form" action="{:U('add')}" method="post" class="form-horizontal">
<!-- 基础 -->
<div id="tab1" class="tab-pane in tab1 ">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="l"><i class="mustmark" style="margin-left:-7px">*</i>游戏名称:</td>
<td class="r" >
<input type="text" class="txt " name="game_name" value="" placeholder="请输入游戏名称" onkeyup="copyGameName()">
<input type="hidden" name="game_appid" value="">
</td>
</tr>
<tr>
<td class="l">游戏类型:</td>
<td class="r">
<select id="game_type_id" name="game_type_id">
<volist name=":get_game_type_all()" id="vo">
<option value="{$vo.id}">{$vo.type_name}</option>
</volist>
</select>
<input type="hidden" id="game_type_name" name="game_type_name" value="">
</td>
</tr>
<tr>
<td class="l noticeinfo">运营平台</td>
<td class="r table_radio">
<span class="form_radio table_btn">
<volist name=":get_systems_list('cnen')" id="vo">
<gt name="key" value="0">
<label>
<input type="radio" class="inp_radio js-device js-devices{$key}" value="{$key}" name="sdk_version"
<if condition="$key eq 1"> checked='true' </if> > {$vo}
</label>
</gt>
</volist></span>
<span class="notice-text">显示该游戏所适用的平台,一般为安卓平台和苹果平台</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">开放类型</td>
<td class="r table_radio">
<span class="form_radio table_btn">
<volist name=":get_opentype_all()" id="vo">
<label><input type="radio" class="inp_radio" value="{$vo.id}" name="category" <eq name="key" value="0"> checked </eq>> {$vo.open_name}</label>
</volist></span>
<span class="notice-text">显示当前游戏的开放状态一般为公测删档内测不删档内测等。主要APP上显示</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">显示状态</td>
<td class="r table_radio">
<span class="form_radio table_btn">
<label>
<input type="radio" class="inp_radio" value="0" name="game_status"> 关闭
</label>
<label>
<input type="radio" class="inp_radio" value="1" name="game_status" checked="checked"> 开启
</label></span>
<span class="notice-text">设置该游戏是否在各个站点显示</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">显示站点</td>
<td class="r table_radio">
<span class="form_radio table_btn">
<label>
<input type="checkbox" class="inp_radio" value="1" name="display_site[]" checked> PC官网
</label>
<label>
<input type="checkbox" class="inp_radio" value="2" name="display_site[]" checked> WAP站
</label>
<label>
<input type="checkbox" class="inp_radio" value="3" name="display_site[]" checked> 游戏盒子APP
</label></span>
<span class="notice-text">控制游戏在不同平台上是否进行展示,可多选,默认为全部站点显示。取消选择后,对应站点上不显示该游戏的所有数据(含礼包与开服信息)</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">推荐状态</td>
<td class="r table_radio">
<span class="form_radio table_btn">
<label class="inp_radio">
<input type="radio" class="inp_radio" value="0" name="recommend_status"> 不推荐
</label>
<label>
<input type="radio" class="inp_radio" value="1" name="recommend_status" checked="checked"> 推荐
</label>
<label>
<input type="radio" class="inp_radio" value="2" name="recommend_status" > 热门
</label>
<label>
<input type="radio" class="inp_radio" value="3" name="recommend_status" > 最新
</label></span>
<span class="notice-text">设置游戏的推荐类型,更改此游戏在网站所属的推荐板块;</span>
</td>
</tr>
<tr>
<td class="l">游戏排序:</td>
<td class="r">
<input type="text" class="txt" name="sort" value="" placeholder="请输入游戏排序如1">
</td>
</tr>
<tr>
<td class="l">游戏下载数:</td>
<td class="r">
<input type="text" class="txt table_btn_input" name="dow_num" value="0" readonly="true" style="background:#e7e7e7">
<a id="dow_num_click" class="table_click" href="javascript:">点击修改</a>
</td>
</tr>
<tr>
<td class="l">游戏评分:</td>
<td class="r">
<input type="text" class="txt" name="game_score" value="" placeholder="请输入0-10数字">
</td>
</tr>
<tr>
<td class="l">游戏首字母:</td>
<td class="r">
<input type="text" class="txt" name="short" value="" placeholder="例如荒莽纪,输入HMJ">
</td>
</tr>
<tr>
<td class="l" >一句话简介:</td>
<td class="r" >
<input type="text" class="txt " name="features" value="" placeholder="输入一句话简介">
</td>
</tr>
<tr>
<td class="l" >游戏开发商:</td>
<td class="r" >
<input type="text" class="txt " name="dev_name" value="" placeholder="输入开发商名称">
</td>
<!-- -->
</tr>
<tr>
<td class="l">游戏详细介绍:</td>
<td class="r">
<textarea name="introduction" class="txt_area"></textarea>
</td>
</tr>
<tr class="picbox">
<td class="l noticeinfo" >游戏ICON</td>
<td class="r">
<span class="table_btn table_upload">
<input type="file" id="upload_picture_icon">
<input type="hidden" name="icon" id="cover_id_icon" value="" />
<div class="upload-img-box">
<notempty name="data['icon']">
<div class="upload-pre-item"><img src=""/></div>
</notempty>
</div>
</span>
<span class="notice-text">尺寸不得小于512*512px圆角半径113px不强制要求可直接提供512*512方图</span>
</td>
</tr>
<tr class="picbox">
<td class="l noticeinfo">游戏素材包</td>
<td class="r">
<span class="table_btn table_upload">
<div id="uploader" class="wu-example">
<div class="btns">
<div id="picker" style="height:30px;">上传素材包</div>
</div>
<!--用来存放文件信息-->
<div id="thelist" class="uploader-list">
</div>
</div>
<input type="hidden" id="file_url" name="material_url" value="{$data['material_url']}"/>
</span>
<span class="notice-text">此处可上传该游戏的素材包,必须为压缩包形式,用于渠道后台下载推广</span>
</td>
</tr>
<tr class="picbox">
<td class="l noticeinfo">游戏推荐图</td>
<td class="r">
<span class="table_btn table_upload">
<input type="file" id="upload_picture_cover">
<input type="hidden" name="cover" id="cover_id_cover" value="" />
<div class="upload-img-box">
<notempty name="data['cover']">
<div class="upload-pre-item"><img src=""/></div>
</notempty>
</div>
</span>
<span class="notice-text">470*350px用于官网首屏推荐游戏位展示</span>
</td>
</tr>
<tr class="picbox">
<td class="l noticeinfo" >游戏截图</td>
<td class="r">
<span class="table_btn table_upload table_screenshot" style="float: none;">
{:hook('UploadImages', array('name'=>'screenshot','value'=>$data['screenshot'],'flag'=>true))}
</span>
<span class="notice-text">横版游戏建议尺寸1691280*720px及以上竖版游戏建议尺寸916720*1280px及以上用于游戏详情页内展示</span>
</td>
</tr>
<tr class="picbox">
<td class="l noticeinfo" >落地页图片</td>
<td class="r">
<span class="table_btn table_upload table_flooring_page_imgs" style="float: none;">
<input type="hidden" name="flooring_page_imgs" value="" />
<div id="uploadImg" class="wu-example">
<div class="btns">
<div id="flooring_page_imgs">上传图片</div>
</div>
<!--用来存放文件信息-->
<div id="flooring_page_imgs_thelist" class="uploader-list" style="display: flex;">
</div>
</div>
</span>
<span class="notice-text">横版游戏建议尺寸1691280*720px及以上竖版游戏建议尺寸916720*1280px及以上用于游戏详情页内展示</span>
</td>
</tr>
</tbody>
</table>
</div>
<!-- 下载 -->
<notempty name='show_status'>
<div id="tab2" class="tab-pane tab2 ">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="l">游戏名称:</td>
<td class="r" >
<input type="text" class="txt " name="game_name_copy" value="" placeholder="请输入游戏名称" readonly="true" style="background:#e7e7e7">
</td>
</tr>
<tr>
<td class="l">运营平台:</td>
<td class="r" >
<span class="form_radio table_btn">
<volist name=":get_systems_list('cnen')" id="vo">
<gt name="key" value="0">
<label>
<input type="radio" class="inp_radio js-device js-devices{$key}" value="{$key}" name="sdk_version_copy" <if condition="$key eq 1"> checked </if> disabled='true'> {$vo}
</label>
</gt>
</volist></span>
</td>
</tr>
<tr>
<td class="l">下载状态:</td>
<td class="r" >
<span class="form_radio table_btn">
<label>
<input type="radio" class="inp_radio" value="1" name="dow_status" checked="checked"> 开启
</label>
<label>
<input type="radio" class="inp_radio" value="0" name="dow_status"> 关闭
</label></span>
</td>
</tr>
<tr>
<td class="l">下载端口:</td>
<td class="r" >
<span class="form_radio table_btn" style="width:414px;">
<label>
<input type="radio" class="inp_radio" value="1" name="down_port" checked="checked"> 官方原包
</label>
<label>
<input type="radio" class="inp_radio" value="2" name="down_port" > 第三方链接
</label></span>
<span class="notice-text" style="line-height:1.3;">选择“第三方链接”后推广员后台-游戏列表-申请游戏页面将不显示该游戏,推广员无法进行申请。</span>
</td>
</tr>
<tr style="<eq name='data.down_port' value='2'>display:table-row;<else />display:none;</eq>">
<td class="l noticeinfo" ><i class="mustmark" style="margin-left:-13px">*</i>
第三方下载地址(<span id='span_type'>安卓</span>)
</td>
<td class="r">
<textarea name="add_game_address" id="game_address" class="download_url txt_area">{$data['add_game_address']}</textarea>
<!-- <span class="notice-text">游戏第三方下载链接,设置后官网游戏下载端口启用第三方链接;不可获取数据,不可进行渠道分包。</span> -->
</td>
</tr>
<tr style="<eq name='data.down_port' value='2'>display:table-row;<else />display:none;</eq>">
<td class="l noticeinfo" ><i class="mustmark" style="margin-left:-13px">*</i>
第三方原包大小
</td>
<td class="r"><input type="text" class="txt2" id="game_address_size" name="game_address_size" value="0MB" placeholder="请输入第三方原包大小"> </td>
</tr>
<tr>
<td class="l">超级签Token</td>
<td class="r" >
<input type="text" class="txt " name="supersign_token" value="" placeholder="请输入超级签Token" >
</td>
</tr>
<tr>
<td class="l">超级签URL</td>
<td class="r" >
<input type="text" class="txt " name="supersign_url" value="" placeholder="请输入超级签URL" >
</td>
</tr>
</tbody>
</table>
</div>
</notempty>
<!-- 设置 -->
<div id="tab3" class="tab-pane tab3 ">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="l noticeinfo"><i class="mustmark" style="margin-left:-7px">*</i>推广充值CPS比例</td>
<td class="r">
<input type="text" class="txt table_text_input" name="ratio" value="0" placeholder="输入0-100之间的数字"><span class="form_unit">%</span>
<span class="notice-text">此处比例为推广结算时CPS模式的分成比例</span>
</td>
</tr>
<tr>
<td class="l noticeinfo"><i class="mustmark" style="margin-left:-7px">*</i>推广注册CPA单价</td>
<td class="r">
<input type="text" class="txt table_text_input" name="money" value="0" placeholder="请输入大于0的数字"><span class="form_unit"></span>
<span class="notice-text">此处数值为推广结算时CPA模式的注册单价</span>
</td>
</tr>
<tr>
<td class="l noticeinfo"><i class="mustmark" style="margin-left:-7px">*</i>开发者分成比例</td>
<td class="r">
<input type="text" class="txt table_text_input" name="dratio" value="0" placeholder="请输入0-100之间的数字"><span class="form_unit">%</span>
<span class="notice-text">此处比例为开发者结算时的分成比例</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">会长代充折扣比例</td>
<td class="r">
<input type="text" class="txt table_text_input" name="discount" value="10" placeholder="请输入0-10之间的数字"><span class="form_unit"></span>
<span class="notice-text">设置该游戏的统一折扣,推广员后台会长代充时使用</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">玩家绑币充值折扣</td>
<td class="r">
<input type="text" class="txt table_text_input" name="bind_recharge_discount" value="10" placeholder="请输入0-10数字"><span class="form_unit"></span>
<span class="notice-text">设置APP游戏的绑币统一折扣APP充值时绑币时使用</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">扶持额度</td>
<td class="r">
<input type="text" class="txt table_text_input" name="support_quota" value="0" placeholder="请输入数字"><span class="form_unit"></span>
<span class="notice-text"> &nbsp&nbsp设置游戏扶持额度</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">扶持比例</td>
<td class="r">
<input type="text" class="txt table_text_input" name="support_ratio" value="0" placeholder="请输入0-100之间的数字"><span class="form_unit">%</span>
<span class="notice-text">设置游戏扶持比例</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">ios版支付方式</td>
<td class="r table_radio table_radio2">
<span class="form_radio table_btn">
<label>
<input type="radio" class="inp_radio" value="1" name="appstatus" checked="checked" > 第三方支付
</label>
<label>
<input type="radio" class="inp_radio" value="0" name="appstatus"> 苹果内购
</label></span>
<span class="notice-text" style="line-height:1.4;width:68%;">iOS上架版游戏内支付方式的配置开关二选一默认是第三方支付非上架版在系统-扩展工具-支付设置内进行配置同Android版</span>
<!-- <span class="notice-text" style="line-height:1.4;width:68%;">ios版游戏内的支付方式二选一默认是第三方支付。上架版选择第三方支付则为wap支付选择苹果内购则为苹果内购非上架版选择第三方支付则为wap支付选择苹果内购则为app支付。金猪支付下支付宝始终是app支付订单充值方式记录为支付宝其它皆为wap支付订单充值方式记录为金猪支付</span> -->
</td>
</tr>
<tr>
<td class="l noticeinfo">是否开启强更</td>
<td class="r table_radio table_radio2">
<span class="form_radio table_btn">
<label>
<input type="radio" class="inp_radio" value="1" name="is_force_update" >开启
</label>
<label>
<input type="radio" class="inp_radio" value="0" name="is_force_update" checked="checked" > 关闭
</label></span>
<span class="notice-text">开启强更后,若后台原包更新,则用户必须重新下载才可以进入游戏</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">游戏标示</td>
<td class="r">
<input type="text" class="txt" name="marking" value="{:generate_game_appid()}" readonly="readonly" placeholder="游戏唯一标示">
<span class="notice-text">苹果游戏分包时需填写的游戏标示,格式无特别要求</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">游戏key</td>
<td class="r">
<input type="text" class="txt" name="game_key" value="" placeholder="游戏支付通知时的加密key">
<span class="notice-text">游戏支付通知时的加密key可自由设置长度不得超过32位字符串设置完必须提供给CP方进行同步</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">游戏支付通知地址</td>
<td class="r" >
<input type="text" class="txt" name="pay_notify_url" value="" placeholder="支付时通知CP方所用的地址">
<span class="notice-text">此处功能为平台用户游戏充值时通知CP方所用该地址由CP方提供</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">访问秘钥</td>
<td class="r">
<input type="text" class="txt" name="access_key" value="" maxlength="20" placeholder="SDK访问服务器时的加密key">
<span class="notice-text">SDK访问服务器时加密key可自由设置长度不得超过20位字符串</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">威富通商户号</td>
<td class="r">
<input type="text" class="txt" name="partner" value="" placeholder="输入威富通商户号">
<span class="notice-text">威富通申请成功以后,威富通方提供的商户号,在此处添加(需要删除,在支付配置里设置即可)</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">威富通秘钥</td>
<td class="r" >
<input type="text" class="txt" name="key" value="" placeholder="输入威富通秘钥">
<span class="notice-text">威富通申请成功以后,威富通方提供的秘钥,在此处添加(需要删除,在支付配置里设置即可)</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">游戏支付appid</td>
<td class="r">
<input type="text" class="txt" name="game_pay_appid" value="" placeholder="微信支付时用的APPID">
<span class="notice-text">使用微信支付时需要的appid需要到微信开放平台申请创建包括官方微信支付和威富通里的微信支付需要删除在支付配置里设置即可</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">游戏合作id</td>
<td class="r">
<input type="text" class="txt" name="agent_id" value="" placeholder="游戏对接时所需的合作id">
<span class="notice-text">游戏对接时需要的合作id此id由CP方提供此功能根据不同游戏CP确定是否需要使用</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">游戏包名</td>
<td class="r">
<input type="text" class="txt" name="apk_pck_name" value="" placeholder="安卓生成APK时的包名">
<span class="notice-text">在微信开放平台申请创建的应用包名app.webchat.payment.agree若无此项可不填写待定</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">游戏签名</td>
<td class="r">
<input type="text" class="txt" name="apk_pck_sign" value="" placeholder="安卓生成APK时的签名">
<span class="notice-text">在微信开放平台申请创建的应用签名fd0e6a444fd988bf23ce8a1818623b58若无此项可不填写待定</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">客服QQ</td>
<td class="r">
<input type="text" class="txt" name="ccustom_service_qq" value="" placeholder="游戏客服QQ">
<span class="notice-text">在游戏里遇到问题点击联系QQ</span>
</td>
</tr>
</tbody>
</table>
</div>
<!-- H5分享页面 -->
<div id="tab4" class="tab-pane tab4 ">
<div class="infomation information1711">
<p>
功能说明H5分享页面每个游戏如下要求进行配置推广员申请渠道包时自动生成对应的H5下载页面便于推广员进行快速推广。
</p>
<p>例如:{$_SERVER['HTTP_HOST']}{:str_ireplace(_PHP_FILE_,'/Index.php',U('Home/Index/game_view'))}</p>
</div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="l">页面标题:</td>
<td class="r" >
<input type="text" class="txt2" id="share_game_describe" name="back_describe" value="" style="width: 630px;" >
</td>
</tr>
<tr class="picbox">
<td class="l noticeinfo" >
分享图标
</td>
<td class="r" >
<span class="table_btn table_upload">
<input type="file" id="upload_dow_icon">
<input type="hidden" name="dow_icon" id="dow_id_icon" value="" />
<div class="upload-img-box">
<notempty name="data['dow_icon']">
<div class="upload-pre-item"><img src=""/></div>
</notempty>
</div>
</span>
<span class="notice-text">512*512px</span>
</td>
</tr>
<tr class="picbox">
<td class="l noticeinfo" >
分享背景图片
</td>
<td class="r" >
<span class="table_btn table_upload">
<input type="file" id="upload_picture_share">
<input type="hidden" name="back_map" id="cover_share_game_cover" value="" />
<div class="upload-img-box">
<notempty name="data['back_map']">
<div class="upload-pre-item"><img src=""/></div>
</notempty>
</div>
</span>
<span class="notice-text">720*1280px及以上</span>
</td>
</tr>
</tbody>
</table>
</div>
<div id="tab5" class="tab-pane tab5 ">
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td class="l">等级档位一:</td>
<td class="r">
<input class="txt" name="first_level_name" value="" type="text"><b class="fl tab5_b"></b> <input class="txt" name="first_level" value="" type="text"><span class="fl tab5_notice">第一个框输入等级名称,如:用户一级;第二个框输入玩家达到该等级所需达到的游戏账号级别数10</span>
</td>
</tr>
<tr>
<td class="l">等级档位二:</td>
<td class="r">
<input class="txt" name="second_level_name" value="" type="text"><b class="fl tab5_b"></b> <input class="txt" name="second_level" value="" type="text"><span class="fl tab5_notice">第一个框输入等级名称,如:用户二级;第二个框输入玩家达到该等级所需达到的游戏账号级别数20</span>
</td>
</tr>
<tr>
<td class="l">等级档位三:</td>
<td class="r">
<input class="txt" name="third_level_name" value="" type="text"><b class="fl tab5_b"></b> <input class="txt" name="third_level" value="" type="text"><span class="fl tab5_notice">第一个框输入等级名称,如:用户三级;第二个框输入玩家达到该等级所需达到的游戏账号级别数30</span>
</td>
</tr>
<tbody>
</table>
</div>
<div class="form-item cf">
<input type="hidden" name="developers" value="0">
<input type="hidden" name="apply_status" value="1">
<button class="submit_btn ajax-post" id="submit" type="submit" target-form="form-horizontal" style="margin-left:210px;">
保存
</button>
<a class="submit_btn " alt="返回上一页" title="返回上一页" href="{:U('Game/lists',array('type'=>I('type',1)))}" >
返回
</a>
</div>
</form>
</div>
</div>
<div class="common_settings">
<span class="plus_icon"><span><img src="__IMG__/zwmimages/icon_jia.png"></span></span>
<form class="addShortcutIcon">
<input type="hidden" name="title" value="{$m_title}">
<input type="hidden" name="url" value="Game/lists">
</form>
<a class="ajax-post add-butn <notempty name='commonset'>addSIsetted</notempty>" href="javascript:;" target-form="addShortcutIcon" url="{:U('Think/addShortcutIcon')}"><img src="__IMG__/zwmimages/icon_jia.png"><span><notempty name='commonset'>已添加<else />添加至常用设置</notempty></span></a>
</div>
</block>
<block name="script">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript">
//导航高亮
highlight_subnav('{:U('Game/lists')}');
$('#submit').click(function(){
$('#form').submit();
});
// $(".js-device").click();
$(function(){
$("input[name='game_appid']").val("{:generate_game_appid()}");
$("#game_type_name").val($("#game_type_id option:selected").text());
$('.date').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView:2,
autoclose:true
});
$('.time').datetimepicker({
format: 'yyyy-mm-dd hh:ii',
language:"zh-CN",
minView:2,
autoclose:true
});
showTab();
$('input:radio[name="down_port"]').change();
});
$(document).ready(function(){
if($(".js-device").val()==1){
$('.android').show();
$('.ios').hide();
}else if($(this).val()==2){
$('.ios').show();
$('.android').hide();
}
$(".js-device").click(function(){
if($(this).val()==1){
$('.android').show();
$('.ios').hide();
}else if($(this).val()==2){
$('.ios').show();
$('.android').hide();
}
});
});
/*获取游戏类型名称*/
$("#game_type_id").change(function() {
$("#game_type_name").val($("#game_type_id option:selected").text());
});
//上传游戏图标
/* 初始化上传插件 */
$("#upload_picture_icon").uploadify({
"height" : 30,
"swf" : "__STATIC__/uploadify/uploadify.swf",
"fileObjName" : "download",
"buttonText" : "上传图标",
"uploader" : "{:U('File/uploadPicture',array('session_id'=>session_id()))}",
"width" : 120,
'removeTimeout' : 1,
'fileTypeExts' : '*.jpg; *.jpeg; *.png; *.gif;',
"onUploadSuccess" : upload_picture_icon{$field.name},
'onFallback' : function() {
// alert('未检测到兼容版本的Flash.');
}
});
function upload_picture_icon{$field.name}(file, data){
var data = $.parseJSON(data);
var src = '';
if(data.status){
$("#cover_id_icon").val(data.id);
src = data.url || '__ROOT__' + data.path;
$("#cover_id_icon").parent().find('.upload-img-box').html(
'<div class="upload-pre-item"><span class="placeholder-graphic placeholder-graphic_icon"><img src="' + src + '"/></span></div>'
);
} else {
updateAlert(data.info,'tip_error');
setTimeout(function(){
$('#top-alert').find('button').click();
$(that).removeClass('disabled').prop('disabled',false);
},1500);
}
}
//上传游戏封面
/* 初始化上传插件 */
$("#upload_picture_cover").uploadify({
"height" : 30,
"swf" : "__STATIC__/uploadify/uploadify.swf",
"fileObjName" : "download",
"buttonText" : "上传封面",
"uploader" : "{:U('File/uploadPicture',array('session_id'=>session_id(),'flag'=>true))}",
"width" : 120,
'removeTimeout' : 1,
'fileTypeExts' : '*.jpg; *.jpeg; *.png; *.gif;',
"onUploadSuccess" : upload_picture_cover{$field.name},
'onFallback' : function() {
// alert('未检测到兼容版本的Flash.');
}
});
function upload_picture_cover{$field.name}(file, data){
var data = $.parseJSON(data);
var src = '';
if(data.status){
$("#cover_id_cover").val(data.id);
src = data.url || '__ROOT__' + data.path;
$("#cover_id_cover").parent().find('.upload-img-box').html(
'<div class="upload-pre-item"><span class="placeholder-graphic placeholder-graphic_ad"><img src="' + src + '"/></span></div>'
);
} else {
updateAlert(data.info,'tip_error');
setTimeout(function(){
$('#top-alert').find('button').click();
$(that).removeClass('disabled').prop('disabled',false);
},1500);
}
}
//上传游戏详情背景
/* 初始化上传插件 */
$("#upload_picture_detail").uploadify({
"height" : 30,
"swf" : "__STATIC__/uploadify/uploadify.swf",
"fileObjName" : "download",
"buttonText" : "上传封面",
"uploader" : "{:U('File/uploadPicture',array('session_id'=>session_id(),'flag'=>true))}",
"width" : 120,
'removeTimeout' : 1,
'fileTypeExts' : '*.jpg; *.jpeg; *.png; *.gif;',
"onUploadSuccess" : upload_picture_detail{$field.name},
'onFallback' : function() {
// alert('未检测到兼容版本的Flash.');
}
});
function upload_picture_detail{$field.name}(file, data){
var data = $.parseJSON(data);
var src = '';
if(data.status){
$("#detail_id_icon").val(data.id);
src = data.url || '__ROOT__' + data.path;
$("#detail_id_icon").parent().find('.upload-img-box').html(
'<div class="upload-pre-item"><span class="placeholder_graphic"><img src="' + src + '"/></span></div>'
);
} else {
updateAlert(data.info,'tip_error');
setTimeout(function(){
$('#top-alert').find('button').click();
$(that).removeClass('disabled').prop('disabled',false);
},1500);
}
}
//上传游戏分享下载图标
/* 初始化上传插件 */
$("#upload_dow_icon").uploadify({
"height" : 30,
"swf" : "__STATIC__/uploadify/uploadify.swf",
"fileObjName" : "download",
"buttonText" : "上传图标",
"uploader" : "{:U('File/uploadPicture',array('session_id'=>session_id()))}",
"width" : 120,
'removeTimeout' : 1,
'fileTypeExts' : '*.jpg; *.jpeg; *.png; *.gif;',
"onUploadSuccess" : upload_dow_icon{$field.name},
'onFallback' : function() {
// alert('未检测到兼容版本的Flash.');
}
});
function upload_dow_icon{$field.name}(file, data){
var data = $.parseJSON(data);
var src = '';
if(data.status){
$("#dow_id_icon").val(data.id);
src = data.url || '__ROOT__' + data.path;
$("#dow_id_icon").parent().find('.upload-img-box').html(
'<div class="upload-pre-item"><img src="' + src + '"/></div>'
);
} else {
updateAlert(data.info,'tip_error');
setTimeout(function(){
$('#top-alert').find('button').click();
$(that).removeClass('disabled').prop('disabled',false);
},1500);
}
}
//上传游戏分享背景图片
/* 初始化上传插件 */
$("#upload_picture_share").uploadify({
"height" : 30,
"swf" : "__STATIC__/uploadify/uploadify.swf",
"fileObjName" : "download",
"buttonText" : "上传背景图片",
"uploader" : "{:U('File/uploadPicture',array('session_id'=>session_id(),'flag'=>true))}",
"width" : 120,
'removeTimeout' : 1,
'fileTypeExts' : '*.jpg; *.jpeg; *.png; *.gif;',
"onUploadSuccess" : upload_picture_share{$field.name},
'onFallback' : function() {
// alert('未检测到兼容版本的Flash.');
}
});
function upload_picture_share{$field.name}(file, data){
var data = $.parseJSON(data);
var src = '';
if(data.status){
$("#cover_share_game_cover").val(data.id);
src = data.url || '__ROOT__' + data.path;
$("#cover_share_game_cover").parent().find('.upload-img-box').html(
'<div class="upload-pre-item"><span class="placeholder_graphic"><img src="' + src + '"/></span></div>'
);
} else {
updateAlert(data.info,'tip_error');
setTimeout(function(){
$('#top-alert').find('button').click();
$(that).removeClass('disabled').prop('disabled',false);
},1500);
}
}
var userInfo = {userId:"kazaff", md5:""}; //用户会话信息
var chunkSize = 5000 * 1024; //分块大小
var uniqueFileName = null; //文件唯一标识符
var md5Mark = null;
var backEndUrl = "{:U('File/shard_upload',array('type'=>1,'session_id'=>session_id()))}";
WebUploader.Uploader.register({
"before-send-file" : "beforeSendFile",
"before-send" : "beforeSend",
"after-send-file" : "afterSendFile"
}, {
beforeSendFile: function(file){
//秒传验证
if (file['source']['ext'] === 'zip' || file['source']['ext'] === 'rar') {
var task = new $.Deferred();
var start = new Date().getTime();
(new WebUploader.Uploader()).md5File(file, 0, 10*1024*1024).progress(function(percentage){
//console.log(percentage);
}).then(function(val){
//console.log("总耗时: "+((new Date().getTime()) - start)/1000);
md5Mark = val;
userInfo.md5 = val;
$.ajax({
type: "POST"
, url: backEndUrl
, data: {status: "md5Check", md5: val}
, cache: false
, timeout: 1000 //todo 超时的话,只能认为该文件不曾上传过
, dataType: "json"
}).then(function(data, textStatus, jqXHR){
alert(data.chunk);
//console.log(data);
if(data.ifExist){ //若存在这返回失败给WebUploader表明该文件不需要上传
task.reject();
uploader.skipFile(file);
file.path = data.path;
}else{
task.resolve();
//拿到上传文件的唯一名称,用于断点续传
uniqueFileName = md5(''+userInfo.userId+file.name+file.type+file.lastModifiedDate+file.size);
}
}, function(jqXHR, textStatus, errorThrown){ //任何形式的验证失败,都触发重新上传
task.resolve();
//拿到上传文件的唯一名称,用于断点续传
uniqueFileName = md5(''+userInfo.userId+file.name+file.type+file.lastModifiedDate+file.size);
});
});
return $.when(task);
}
}
, beforeSend: function(block){
//分片验证是否已传过,用于断点续传
if (block['file']['source']['ext'] === 'zip' || block['file']['source']['ext'] === 'rar') {
var task = new $.Deferred();
$.ajax({
type: "POST"
, url: backEndUrl
, data: {
status: "chunkCheck"
, name: uniqueFileName
, chunkIndex: block.chunk
, size: block.end - block.start
}
, cache: false
, timeout: 1000 //todo 超时的话,只能认为该分片未上传过
, dataType: "json"
}).then(function(data, textStatus, jqXHR){
if(data.ifExist){ //若存在返回失败给WebUploader表明该分块不需要上传
task.reject();
}else{
task.resolve();
}
}, function(jqXHR, textStatus, errorThrown){ //任何形式的验证失败,都触发重新上传
task.resolve();
});
return $.when(task);
}
}
, afterSendFile: function(file){
if (file['source']['ext'] === 'zip' || file['source']['ext'] === 'rar') {
var chunksTotal = 0;
if((chunksTotal = Math.ceil(file.size/chunkSize)) > 1){
//合并请求
var task = new $.Deferred();
$.ajax({
type: "POST"
, url: backEndUrl
, data: {
status: "chunksMerge"
, name: uniqueFileName
, chunks: chunksTotal
, ext: file.ext
, md5: md5Mark
}
, cache: false
, dataType: "json"
}).then(function(data, textStatus, jqXHR){
//todo 检查响应是否正常
task.resolve();
file.path = data.path;
$("#file_name").val(data.name);
$("#file_url").val(data.path+'/'+data.name);
$("#file_size").val(file.size);
}, function(jqXHR, textStatus, errorThrown){
task.reject();
});
return $.when(task);
}else{
//UploadComlate(file);
}
}
}
});
var uploaderFile = WebUploader.create({
// 选完文件后,是否自动上传。
auto: true,
// swf文件路径
swf: '__STATIC__/webuploader/Uploader.swf',
// 文件接收服务端。
server: backEndUrl,
// 选择文件的按钮。可选。
// 内部根据当前运行是创建可能是input元素也可能是flash.
pick: {id:'#picker'},
//dnd: "#theList",
paste: document.body,
accept: {
title: '压缩包',
extensions: 'rar,zip',
mimeTypes: '.rar,.zip',
},
// 不压缩image, 默认如果是jpeg文件上传前会压缩一把再上传
resize: false,
disableGlobalDnd: true,
fileNumLimit:1,
threads:3,
compress: false,
prepareNextFile: true,
formData: function(){return $.extend(true, {}, userInfo);},
chunked:true,
chunkSize: 5*1000*1024,
duplicate: true
});
uploaderFile.on('beforeFileQueued',function(file){
var mycars=new Array("zip","rar","tar","jar");
if($.inArray(file.ext,mycars) == -1){
updateAlert('上传文件非法','tip_error');
setTimeout(function(){
$('#tip').find('.tipclose').click();
},1500);
return false;
}
//$.each(mycars,function(index,value){});
})
// 当有文件被添加进队列的时候
uploaderFile.on( 'fileQueued', function( file ) {
$("#thelist").append( '<div id="' + file.id + '" class="item">' +
'<h4 class="info">' + file.name + '</h4>' +
'<p class="state">等待上传...</p>' +
'</div>' );
});
// 文件上传过程中创建进度条实时显示。
uploaderFile.on( 'uploadProgress', function( file, percentage ) {
var $li = $( '#'+file.id ),
$percent = $li.find('.progress .progress-bar');
// 避免重复创建
if ( !$percent.length ) {
$percent = $('<div class="progress progress-striped active">' +
'<div class="progress-bar" role="progressbar" style="width: 0%">' +
'</div>' +
'</div>').appendTo( $li ).find('.progress-bar');
}
$li.find('p.state').text('上传中');
$percent.css( 'width', percentage * 100 + '%' );
$percent.text( (percentage * 100).toFixed(0) + '%' );
});
uploaderFile.on( 'uploadSuccess', function( file , response) {
$( '#'+file.id ).find('p.state').text('已上传').fadeOut(800);
$('#'+file.id).find('h4.info').append('<a href="javascript:;" class="jsdelzip table_click" style="float:none;display:inline-block;margin-left:10px;">删除</a>');
$('#'+file.id).find('.jsdelzip').on('click',function() {
$("#file_url").val('');
uploader.removeFile( file.id );
$('#'+file.id).remove();
return false;
});
if(!response.chunk){
var url = response.path + "/" +response.name;
$("#file_url").val(url);
}
});
uploaderFile.on( 'uploadError', function( file ) {
$( '#'+file.id ).find('p.state').text('上传出错');
});
uploaderFile.on( 'uploadComplete', function(file) {
$( '#'+file.id ).find('.progress').fadeOut();
});
var uploaderImg = WebUploader.create({
// 选完文件后,是否自动上传。
auto: true,
// swf文件路径
swf: '__STATIC__/webuploader/Uploader.swf',
// 文件接收服务端。
server: "{:U('File/uploadPicture',array('session_id'=>session_id(),'flag'=>true))}",
// 选择文件的按钮。可选。
// 内部根据当前运行是创建可能是input元素也可能是flash.
pick: {
id:'#flooring_page_imgs',
multiple:true
},
// dnd: false,
paste: document.body,
accept: {
title: '图片',
extensions: 'png,gif,jpg,jpeg,bmp',
mimeTypes: '.png,.gif,.jpg,.jpeg,.bmp',
},
// 不压缩image, 默认如果是jpeg文件上传前会压缩一把再上传
resize: false,
disableGlobalDnd: true,
fileNumLimit:5,
threads:5,
thumb:true,
compress:false,
prepareNextFile: true,
formData: function(){return $.extend(true, {}, userInfo);},
chunked:false,
duplicate: true
});
var imgListData = [];
// 当有文件被添加进队列的时候
var imgList = $("#flooring_page_imgs_thelist");
uploaderImg.on( 'fileQueued', function( file ) {
var html = '';
html += '<div id="' + file.id + '" class="item" style="margin-right: 10px;">';
html += '<a href="javascript:;"><img src="" style="width: 100px;height: 100px;"></a>';
html += '<h4 class="info">' + file.name + '</h4>';
html += '<p class="state">等待上传...</p>';
html += '</div>';
imgList.append(html);
imgList.css('margin-top','10px');
var img = imgList.children('#'+file.id).find('img');
uploaderImg.makeThumb(file, function (error, src) {
if (error) {
return;
}
img.attr('src', src);
}, 300, 300);
});
// 文件上传过程中创建进度条实时显示。
uploaderImg.on( 'uploadProgress', function( file, percentage ) {
var $li = $( '#'+file.id ),
$percent = $li.find('.progress .progress-bar');
// 避免重复创建
if ( !$percent.length ) {
$percent = $('<div class="progress progress-striped active">' +
'<div class="progress-bar" role="progressbar" style="width: 0%">' +
'</div>' +
'</div>').appendTo( $li ).find('.progress-bar');
}
$li.find('p.state').text('上传中');
$percent.css( 'width', percentage * 100 + '%' );
$percent.text( (percentage * 100).toFixed(0) + '%' );
});
uploaderImg.on( 'uploadSuccess', function( file , response) {
imgListData.push(response.id);
setFlooringPageImgsVal();
$( '#'+file.id ).find('p.state').text('已上传').fadeOut(800);
//alert(JSON.stringify(response));
$('#'+file.id).find('h4.info').append('<a href="javascript:;" class="jsdelzip table_click" style="float:none;display:inline-block;margin-left:10px;">删除</a>');
$('#'+file.id).find('.jsdelzip').on('click',function() {
uploaderImg.removeFile( file.id );
$('#'+file.id).remove();
$.each(imgListData,function(index, item) {
if (response.id == item) {
imgListData.splice(index,1);
}
});
setFlooringPageImgsVal();
return false;
});
});
uploaderImg.on('uploadError', function(file) {
$( '#'+file.id ).find('p.state').text('上传出错');
});
uploaderImg.on( 'uploadComplete', function(file) {
$( '#'+file.id ).find('.progress').fadeOut();
});
function setFlooringPageImgsVal()
{
var flooring_page_imgs_val = '';
$.each(imgListData,function(index, item) {
flooring_page_imgs_val += item + ',';
});
flooring_page_imgs_val = flooring_page_imgs_val.substring(0, flooring_page_imgs_val.length - 1);
$('input[name=flooring_page_imgs]').val(flooring_page_imgs_val);
}
function copyGameName(){
document.all["game_name_copy"].value=document.all["game_name"].value;
document.all["share_game_name_copy"].value=document.all["game_name"].value;
}
//运行版本change的操作
$('input:radio[name="sdk_version"]').change( function() {
var radio = document.getElementsByName("sdk_version");
var radioLength = radio.length;
for(var i = 0;i < radioLength;i++)
{
if(radio[i].checked)
{
var radioValue = radio[i].value;
}
}
$("input[name='sdk_version_copy'][value="+radioValue+"]").prop("checked",true);
$("#span_type").text(radioValue ==1?'安卓':"苹果");
$("#game_address").attr("name",radioValue ==1?'add_game_address':"ios_game_address");
if(radioValue == 1){
$("input[name='appstatus'][value=1]").prop("disabled",true);
$("input[name='appstatus'][value=0]").prop("disabled",true);
$("input[name='appstatus'][value=0]").prop("checked",true);
}else{
$("input[name='appstatus'][value=1]").removeAttr("disabled");
$("input[name='appstatus'][value=0]").removeAttr("disabled");
}
})
$('input:radio[name="down_port"]').change( function() {
var radio = document.getElementsByName("down_port");
var radioLength = radio.length;
for(var i = 0;i < radioLength;i++)
{
if(radio[i].checked)
{
var radioValue = radio[i].value;
}
}
if(radioValue == 1){
$('#game_address').attr("disabled",true).closest('tr').hide();
$('#game_address').attr('style',"background:#e7e7e7;");
$('#game_address').val('');
$('#game_address_size').attr("disabled",true).closest('tr').hide();
$('#game_address_size').attr('style',"background:#e7e7e7;");
$('#game_address_size').val('');
}else{
$('#game_address').removeAttr("disabled").closest('tr').show();
$('#game_address').attr('style',"");
$('#game_address_size').removeAttr("disabled").closest('tr').show();
$('#game_address_size').attr('style',"");
}
})
$("#dow_num_click").click(function () {
up_dow_num();
// layer.prompt(
// {
// formType: 1,
// title: "请输入二级密码(如果没有请设置)",
// value: ''
// }, function (val) {
// $.ajax({
// url: '{:U("Member/checkpwd")}',
// type: 'post',
// dataType: 'json',
// data: {'second_pwd': val},
// success: function (data) {
// if (data.status > 0) {
// up_dow_num(val);
// } else {
// if (data.status == 0) {
// layer.msg(data.info)
// } else {
// layer.msg(data.msg)
// }
// }
// },
// error: function () {
// alert("错误");
// }
// });
// });
});
function up_dow_num(val){
layer.prompt(
{formType:0,title:"请输入下载数量",value:''},
function(val,index,elem){
$('input[name="dow_num"]').val(val);
layer.close(index);
}
);
}
</script>
</block>