fix: 更新微信模型语言包

This commit is contained in:
邹景立 2026-01-01 11:34:28 +08:00
parent d862f9570d
commit a731b7c4d0
6 changed files with 140 additions and 62 deletions

View File

@ -23,5 +23,83 @@ $extra['使用微信公众平台直接模式时,需要在微信公众号平台
return array_merge($extra, [ return array_merge($extra, [
'微信公众平台直接模式' => 'WeChat public platform direct mode', '微信公众平台直接模式' => 'WeChat public platform direct mode',
'微信开放平台授权模式' => 'WeChat Open platform authorization mode' '微信开放平台授权模式' => 'WeChat Open platform authorization mode',
// 粉丝管理
'拉入黑名单' => 'Add to Blacklist',
'移出黑名单' => 'Remove from Blacklist',
'清空用户数据' => 'Clear User Data',
'同步用户数据' => 'Sync User Data',
'确定要清空所有用户数据吗?' => 'Are you sure you want to clear all user data?',
'确定要创建同步用户数据的后台任务?' => 'Are you sure you want to create a background task to sync user data?',
'微信昵称' => 'WeChat Nickname',
'所在区域' => 'Location',
'性别' => 'Gender',
'使用语言' => 'Language',
'订阅状态' => 'Subscription Status',
'订阅时间' => 'Subscription Time',
'是否黑名单' => 'Blacklist Status',
'已订阅' => 'Subscribed',
'未订阅' => 'Unsubscribed',
'男' => 'Male',
'女' => 'Female',
'未知' => 'Unknown',
'操作面板' => 'Actions',
'头像' => 'Avatar',
'请输入微信昵称' => 'Please enter WeChat nickname',
'显示未订阅的粉丝' => 'Show Unsubscribed Fans',
'显示已订阅的粉丝' => 'Show Subscribed Fans',
'拉黑状态' => 'Blacklist Status',
'显示未拉黑的粉丝' => 'Show Non-Blacklisted Fans',
'显示已拉黑的粉丝' => 'Show Blacklisted Fans',
'请选择订阅时间' => 'Please select subscription time',
'微信粉丝数据' => 'WeChat Fans Data',
'所在国家' => 'Country',
'所在省份' => 'Province',
'所在城市' => 'City',
'是否拉黑' => 'Is Blacklisted',
'已拉黑' => 'Blacklisted',
'未拉黑' => 'Not Blacklisted',
// 配置
'绑定小程序' => 'Bind Mini Program',
'开放平台接口配置' => 'Open Platform Interface Configuration',
'开放平台接口' => 'Open Platform Interface',
'微信授权测试( 扫码 ' => 'WeChat Authorization Test (Scan Code)',
'微信授权测试' => 'WeChat Authorization Test',
'微信支付测试' => 'WeChat Payment Test',
'温馨提示:' => 'Tips: ',
'微信商户参数配置,此处交易的商户号需要与微信公众号对接的公众号 APPID 匹配。' => 'WeChat merchant parameter configuration. The merchant number used here needs to match the official account APPID connected to the WeChat official account.',
'微信商户账号' => 'WeChat Merchant Account',
'请输入微信商户账号(必填)' => 'Please enter WeChat merchant account (required)',
'微信商户账号,需要在微信商户平台获取' => 'WeChat merchant account needs to be obtained from WeChat merchant platform',
'微信 V2 接口密钥' => 'WeChat V2 Interface Key',
'微信商户V2密钥' => 'WeChat Merchant V2 Key',
'请输入微信商户V2密钥必填' => 'Please enter WeChat merchant V2 key (required)',
'微信商户 V2 密钥,需要在微信商户平台获取商户接口密钥' => 'WeChat merchant V2 key needs to be obtained from WeChat merchant platform',
'微信 V3 接口密钥' => 'WeChat V3 Interface Key',
'微信商户V3密钥' => 'WeChat Merchant V3 Key',
'请输入微信商户V3密钥必填' => 'Please enter WeChat merchant V3 key (required)',
'微信商户 V3 密钥,需要在微信商户平台获取商户接口密钥' => 'WeChat merchant V3 key needs to be obtained from WeChat merchant platform',
'微信 V3 支付公钥ID' => 'WeChat V3 Payment Public Key ID',
'微信商户V3支付公钥ID' => 'WeChat Merchant V3 Payment Public Key ID',
'请输入微信商户V3支付公钥ID必填' => 'Please enter WeChat merchant V3 payment public key ID (required)',
'微信商户 V3 支付证书ID需要在微信商户平台操作设置操作密码并获取商户接口密钥' => 'WeChat merchant V3 payment certificate ID needs to be set in WeChat merchant platform and merchant interface key needs to be obtained',
'微信 V3 支付公钥文件' => 'WeChat V3 Payment Public Key File',
'上传微信支付公钥' => 'Upload WeChat Payment Public Key',
'微信商户证书文件' => 'WeChat Merchant Certificate File',
'请选择需要上传证书类型,上传 P12 证书会自动转换为 PEM 证书。' => 'Please select the certificate type to upload. Uploading P12 certificate will automatically convert to PEM certificate.',
'保存配置' => 'Save Configuration',
'微信商户支付测试配置' => 'WeChat Merchant Payment Test Configuration',
'JSAPI 支付测试需要在微信商户平台配置支付目录:' => 'JSAPI payment test requires configuring payment directory in WeChat merchant platform: ',
'扫码支付①需要在微信商户平台配置支付通知地址:' => 'Scan code payment ① requires configuring payment notification address in WeChat merchant platform: ',
// 菜单管理
'公众号' => 'Official Account',
'菜单编辑' => 'Menu Editor',
'请在左侧创建菜单...' => 'Please create menu on the left...',
'菜单名称' => 'Menu Name',
'请输入菜单名称' => 'Please enter menu name',
'字数不超过13个汉字或40个字母' => 'No more than 13 Chinese characters or 40 letters',
'菜单类型' => 'Menu Type',
]); ]);

View File

@ -2,13 +2,13 @@
{block name="button"} {block name="button"}
<!--{if auth('options_wxapp')}--> <!--{if auth('options_wxapp')}-->
<button data-modal="{:url('options_wxapp')}" data-width="600px" data-title="绑定小程序" class='layui-btn layui-btn-sm layui-btn-primary'>绑定小程序</button> <button data-modal="{:url('options_wxapp')}" data-width="600px" data-title="{:lang('绑定小程序')}" class='layui-btn layui-btn-sm layui-btn-primary'>{:lang('绑定小程序')}</button>
<!--{/if}--> <!--{/if}-->
<!--{if auth('options_jsonrpc')}--> <!--{if auth('options_jsonrpc')}-->
<button data-modal="{:url('options_jsonrpc')}" data-width="600px" data-title="开放平台接口配置" class='layui-btn layui-btn-sm layui-btn-primary'>开放平台接口</button> <button data-modal="{:url('options_jsonrpc')}" data-width="600px" data-title="{:lang('开放平台接口配置')}" class='layui-btn layui-btn-sm layui-btn-primary'>{:lang('开放平台接口')}</button>
<!--{/if}--> <!--{/if}-->
<!--{if auth("options_test")}--> <!--{if auth("options_test")}-->
<button data-modal="{:url('options_test')}" data-width="600px" data-title="微信授权测试( 扫码 " class='layui-btn layui-btn-sm layui-btn-primary'>微信授权测试</button> <button data-modal="{:url('options_test')}" data-width="600px" data-title="{:lang('微信授权测试( 扫码 ')}" class='layui-btn layui-btn-sm layui-btn-primary'>{:lang('微信授权测试')}</button>
<!--{/if}--> <!--{/if}-->
{/block} {/block}

View File

@ -2,13 +2,13 @@
{block name="button"} {block name="button"}
<!--{if auth("payment_test")}--> <!--{if auth("payment_test")}-->
<button data-modal="{:url('payment_test')}" class='layui-btn layui-btn-sm layui-btn-primary'>微信支付测试</button> <button data-modal="{:url('payment_test')}" class='layui-btn layui-btn-sm layui-btn-primary'>{:lang('微信支付测试')}</button>
<!--{/if}--> <!--{/if}-->
{/block} {/block}
{block name="content"} {block name="content"}
<div class="think-box-notify margin-bottom-15"> <div class="think-box-notify margin-bottom-15">
<b>温馨提示:</b>微信商户参数配置,此处交易的商户号需要与微信公众号对接的公众号 APPID 匹配。 <b>{:lang('温馨提示:')}</b>{:lang('微信商户参数配置,此处交易的商户号需要与微信公众号对接的公众号 APPID 匹配。')}
</div> </div>
<form action="{:url('payment_save')}" method="post" data-auto="true" class='layui-form layui-card' lay-filter="payment"> <form action="{:url('payment_save')}" method="post" data-auto="true" class='layui-form layui-card' lay-filter="payment">
@ -16,38 +16,38 @@
<div class="layui-card-body padding-left-40" style="max-width:850px"> <div class="layui-card-body padding-left-40" style="max-width:850px">
<label class="layui-form-item relative block"> <label class="layui-form-item relative block">
<span class="help-label"><b>微信商户账号</b>MCH_ID</span> <span class="help-label"><b>{:lang('微信商户账号')}</b>MCH_ID</span>
<input name="wechat.mch_id" required vali-name="微信商户号" placeholder="请输入微信商户账号(必填)" value="{$data.mch_id|default=''}" class="layui-input"> <input name="wechat.mch_id" required vali-name="{:lang('微信商户号')}" placeholder="{:lang('请输入微信商户账号(必填)')}" value="{$data.mch_id|default=''}" class="layui-input">
<span class="help-block">微信商户账号,需要在微信商户平台获取</span> <span class="help-block">{:lang('微信商户账号,需要在微信商户平台获取')}</span>
</label> </label>
<label class="layui-form-item relative layui-hide"> <label class="layui-form-item relative layui-hide">
<span class="help-label"><b>微信 V2 接口密钥</b>MCH_KEY</span> <span class="help-label"><b>{:lang('微信 V2 接口密钥')}</b>MCH_KEY</span>
<input name="wechat.mch_key" vali-name="微信商户V2密钥" type="password" lay-affix="eye" placeholder="请输入微信商户V2密钥必填" maxlength="32" pattern=".{32}" required value="{$data.mch_key|default=''}" class="layui-input"> <input name="wechat.mch_key" vali-name="{:lang('微信商户V2密钥')}" type="password" lay-affix="eye" placeholder="{:lang('请输入微信商户V2密钥必填')}" maxlength="32" pattern=".{32}" required value="{$data.mch_key|default=''}" class="layui-input">
<span class="help-block">微信商户 V2 密钥,需要在微信商户平台获取商户接口密钥</span> <span class="help-block">{:lang('微信商户 V2 密钥,需要在微信商户平台获取商户接口密钥')}</span>
</label> </label>
<label class="layui-form-item relative block"> <label class="layui-form-item relative block">
<span class="help-label"><b>微信 V3 接口密钥</b>MCH_V3_KEY</span> <span class="help-label"><b>{:lang('微信 V3 接口密钥')}</b>MCH_V3_KEY</span>
<input name="wechat.mch_v3_key" vali-name="微信商户V3密钥" type="password" lay-affix="eye" placeholder="请输入微信商户V3密钥必填" maxlength="32" pattern=".{32}" required value="{$data.mch_v3_key|default=''}" class="layui-input"> <input name="wechat.mch_v3_key" vali-name="{:lang('微信商户V3密钥')}" type="password" lay-affix="eye" placeholder="{:lang('请输入微信商户V3密钥必填')}" maxlength="32" pattern=".{32}" required value="{$data.mch_v3_key|default=''}" class="layui-input">
<span class="help-block">微信商户 V3 密钥,需要在微信商户平台获取商户接口密钥</span> <span class="help-block">{:lang('微信商户 V3 密钥,需要在微信商户平台获取商户接口密钥')}</span>
</label> </label>
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
<label class="layui-form-item relative block"> <label class="layui-form-item relative block">
<span class="help-label"><b>微信 V3 支付公钥ID</b>MCH_V3_PAYID</span> <span class="help-label"><b>{:lang('微信 V3 支付公钥ID')}</b>MCH_V3_PAYID</span>
<input name="wechat.mch_pay_sid" vali-name="微信商户V3支付公钥ID" placeholder="请输入微信商户V3支付公钥ID必填" maxlength="45" pattern="PUB_KEY_ID_.{34}" value="{$data.mch_pay_sid|default=''}" class="layui-input"> <input name="wechat.mch_pay_sid" vali-name="{:lang('微信商户V3支付公钥ID')}" placeholder="{:lang('请输入微信商户V3支付公钥ID必填')}" maxlength="45" pattern="PUB_KEY_ID_.{34}" value="{$data.mch_pay_sid|default=''}" class="layui-input">
<span class="help-block">微信商户 V3 支付证书ID需要在微信商户平台操作设置操作密码并获取商户接口密钥</span> <span class="help-block">{:lang('微信商户 V3 支付证书ID需要在微信商户平台操作设置操作密码并获取商户接口密钥')}</span>
</label> </label>
<div class="layui-form-item"> <div class="layui-form-item">
<span class="help-label label-required-prev"><b>微信 V3 支付公钥文件</b>MCH_V3_PAYCERT</span> <span class="help-label label-required-prev"><b>{:lang('微信 V3 支付公钥文件')}</b>MCH_V3_PAYCERT</span>
<div class="margin-top-10"> <div class="margin-top-10">
<div data-mch-type="pem" class="layui-tab-item"> <div data-mch-type="pem" class="layui-tab-item">
<input type="hidden" name="wechat.mch_ssl_pay" value="{$mch_ssl_pay|default=''}"> <input type="hidden" name="wechat.mch_ssl_pay" value="{$mch_ssl_pay|default=''}">
<button data-file="btn" data-uptype="local" data-safe="true" data-type="pem" data-field="wechat.mch_ssl_pay" type="button" class="layui-btn font-code layui-btn-primary"> <button data-file="btn" data-uptype="local" data-safe="true" data-type="pem" data-field="wechat.mch_ssl_pay" type="button" class="layui-btn font-code layui-btn-primary">
<i class="layui-icon layui-icon-vercode"></i> 上传微信支付公钥 <i class="layui-icon layui-icon-vercode"></i> {:lang('上传微信支付公钥')}
</button> </button>
<a class="layui-btn layui-btn-danger layui-btn-primary ta-ml-5" onclick="$(this).prevAll('input').val('').trigger('change')"><i class="layui-icon layui-icon-close"></i></a> <a class="layui-btn layui-btn-danger layui-btn-primary ta-ml-5" onclick="$(this).prevAll('input').val('').trigger('change')"><i class="layui-icon layui-icon-close"></i></a>
</div> </div>
@ -57,13 +57,13 @@
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
<div class="layui-form-item"> <div class="layui-form-item">
<span class="help-label label-required-prev"><b>微信商户证书文件</b>MCH_CERT_FILE</span> <span class="help-label label-required-prev"><b>{:lang('微信商户证书文件')}</b>MCH_CERT_FILE</span>
<div class="margin-top-10"> <div class="margin-top-10">
<!-- 'none'=>'暂不使用证书' --> <!-- 'none'=>'暂不使用证书' -->
{foreach ['pem'=>'上传 PEM 证书', 'p12'=>'上传 P12 证书'] as $k=>$v} {foreach ['pem'=>'上传 PEM 证书', 'p12'=>'上传 P12 证书'] as $k=>$v}
<input type="radio" data-pem-type="{$k}" name="wechat.mch_ssl_type" value="{$k}" title="{$v}" lay-filter="data-mch-type"> <input type="radio" data-pem-type="{$k}" name="wechat.mch_ssl_type" value="{$k}" title="{$v}" lay-filter="data-mch-type">
{/foreach} {/foreach}
<p class="help-block font-code">请选择需要上传证书类型,上传 P12 证书会自动转换为 PEM 证书。</p> <p class="help-block font-code">{:lang('请选择需要上传证书类型,上传 P12 证书会自动转换为 PEM 证书。')}</p>
<div class="padding-top-10"> <div class="padding-top-10">
<div data-mch-type="none"></div> <div data-mch-type="none"></div>
@ -97,7 +97,7 @@
<!--{if auth('payment_save')}--> <!--{if auth('payment_save')}-->
<div class="hr-line-dashed margin-top-30"></div> <div class="hr-line-dashed margin-top-30"></div>
<div class="layui-form-item text-center"> <div class="layui-form-item text-center">
<button class="layui-btn" type="submit">保存配置</button> <button class="layui-btn" type="submit">{:lang('保存配置')}</button>
</div> </div>
<!--{/if}--> <!--{/if}-->
</div> </div>

View File

@ -2,16 +2,16 @@
{block name="button"} {block name="button"}
<!--{if auth("black")}--> <!--{if auth("black")}-->
<button data-action='{:url("black")}' data-table-id="UserData" data-rule="openid#{openid};black#1" class='layui-btn layui-btn-sm layui-btn-primary'>拉入黑名单</button> <button data-action='{:url("black")}' data-table-id="UserData" data-rule="openid#{openid};black#1" class='layui-btn layui-btn-sm layui-btn-primary'>{:lang('拉入黑名单')}</button>
<button data-action='{:url("black")}' data-table-id="UserData" data-rule="openid#{openid};black#0" class='layui-btn layui-btn-sm layui-btn-primary'>移出黑名单</button> <button data-action='{:url("black")}' data-table-id="UserData" data-rule="openid#{openid};black#0" class='layui-btn layui-btn-sm layui-btn-primary'>{:lang('移出黑名单')}</button>
<!--{/if}--> <!--{/if}-->
<!--{if auth("truncate")}--> <!--{if auth("truncate")}-->
<button data-load='{:url("truncate")}' data-confirm="确定要清空所有用户数据吗?" class='layui-btn layui-btn-sm layui-btn-primary'>清空用户数据</button> <button data-load='{:url("truncate")}' data-confirm="{:lang('确定要清空所有用户数据吗?')}" class='layui-btn layui-btn-sm layui-btn-primary'>{:lang('清空用户数据')}</button>
<!--{/if}--> <!--{/if}-->
<!--{if auth("sync")}--> <!--{if auth("sync")}-->
<button data-queue='{:url("sync")}' data-table-id="UserData" data-confirm="确定要创建同步用户数据的后台任务?" class='layui-btn layui-btn-sm layui-btn-primary'>同步用户数据</button> <button data-queue='{:url("sync")}' data-table-id="UserData" data-confirm="{:lang('确定要创建同步用户数据的后台任务?')}" class='layui-btn layui-btn-sm layui-btn-primary'>{:lang('同步用户数据')}</button>
<!--{/if}--> <!--{/if}-->
{/block} {/block}
@ -31,19 +31,19 @@
cols: [[ cols: [[
{checkbox: true}, {checkbox: true},
{field: 'id', hide: true}, {field: 'id', hide: true},
{field: 'headimg', title: '头像', width: 65, align: "center", templet: '<div>{{-$.layTable.showImage(d.headimgurl)}}</div>'}, {field: 'headimg', title: '{:lang("头像")}', width: 65, align: "center", templet: '<div>{{-$.layTable.showImage(d.headimgurl)}}</div>'},
{field: 'nickname', title: '微信昵称', align: "center", minWidth: 100, templet: '<div>{{d.nickname||"-"}}</div>'}, {field: 'nickname', title: '{:lang("微信昵称")}', align: "center", minWidth: 100, templet: '<div>{{d.nickname||"-"}}</div>'},
{field: 'province', title: '所在区域', align: "center", minWidth: 120, templet: '<div>{{d.country||"-"}} {{d.province}} {{d.city}}</div>'}, {field: 'province', title: '{:lang("所在区域")}', align: "center", minWidth: 120, templet: '<div>{{d.country||"-"}} {{d.province}} {{d.city}}</div>'},
{field: 'sex', title: '性别', align: 'center', minWidth: 80, templet: '<div>{{d.sex==1 ? "男" : (d.sex==2 ? "女" : "未知")}}</div>'}, {field: 'sex', title: '{:lang("性别")}', align: 'center', minWidth: 80, templet: '<div>{{d.sex==1 ? "' + '{:lang("男")}' + '" : (d.sex==2 ? "' + '{:lang("女")}' + '" : "' + '{:lang("未知")}' + '")}}</div>'},
{field: 'language', title: '使用语言', align: 'center', minWidth: 100, templet: '<div>{{d.language}}</div>'}, {field: 'language', title: '{:lang("使用语言")}', align: 'center', minWidth: 100, templet: '<div>{{d.language}}</div>'},
{ {
field: 'subscribe', title: '订阅状态', align: "center", minWidth: 90, templet: function (d) { field: 'subscribe', title: '{:lang("订阅状态")}', align: "center", minWidth: 90, templet: function (d) {
return d.subscribe > 0 ? '<span class="layui-badge layui-bg-green">已订阅</span>' : '<span class="layui-badge">未订阅</span>'; return d.subscribe > 0 ? '<span class="layui-badge layui-bg-green">' + '{:lang("已订阅")}' + '</span>' : '<span class="layui-badge">' + '{:lang("未订阅")}' + '</span>';
} }
}, },
{field: 'subscribe_time', title: '订阅时间', minWidth: 170, align: 'center', sort: true, templet: '<div>{{d.subscribe_at}}</div>'}, {field: 'subscribe_time', title: '{:lang("订阅时间")}', minWidth: 170, align: 'center', sort: true, templet: '<div>{{d.subscribe_at}}</div>'},
{field: 'is_black', title: '是否黑名单', align: 'center', minWidth: 110, templet: '#StatusSwitchTpl'}, {field: 'is_black', title: '{:lang("是否黑名单")}', align: 'center', minWidth: 110, templet: '#StatusSwitchTpl'},
{toolbar: '#toolbar', title: '操作面板', align: 'center', fixed: 'right', minWidth: 80} {toolbar: '#toolbar', title: '{:lang("操作面板")}', align: 'center', fixed: 'right', minWidth: 80}
]] ]]
}); });

View File

@ -3,18 +3,18 @@
<form class="layui-form layui-form-pane form-search" action="{:request()->url()}" onsubmit="return false" method="get" autocomplete="off"> <form class="layui-form layui-form-pane form-search" action="{:request()->url()}" onsubmit="return false" method="get" autocomplete="off">
<div class="layui-form-item layui-inline"> <div class="layui-form-item layui-inline">
<label class="layui-form-label">微信昵称</label> <label class="layui-form-label">{:lang('微信昵称')}</label>
<label class="layui-input-inline"> <label class="layui-input-inline">
<input name="nickname" value="{$get.nickname|default=''}" placeholder="请输入微信昵称" class="layui-input"> <input name="nickname" value="{$get.nickname|default=''}" placeholder="{:lang('请输入微信昵称')}" class="layui-input">
</label> </label>
</div> </div>
<div class="layui-form-item layui-inline"> <div class="layui-form-item layui-inline">
<label class="layui-form-label">订阅状态</label> <label class="layui-form-label">{:lang('订阅状态')}</label>
<label class="layui-input-inline"> <label class="layui-input-inline">
<select class="layui-select" name="subscribe"> <select class="layui-select" name="subscribe">
<option value=''>-- 全部 --</option> <option value=''>-- {:lang('全部')} --</option>
{foreach ['显示未订阅的粉丝','显示已订阅的粉丝'] as $k=>$v} {foreach [lang('显示未订阅的粉丝'),lang('显示已订阅的粉丝')] as $k=>$v}
{if isset($get.subscribe) and $get.subscribe eq $k.""} {if isset($get.subscribe) and $get.subscribe eq $k.""}
<option selected value="{$k}">{$v}</option> <option selected value="{$k}">{$v}</option>
{else} {else}
@ -25,11 +25,11 @@
</div> </div>
<div class="layui-form-item layui-inline"> <div class="layui-form-item layui-inline">
<label class="layui-form-label">拉黑状态</label> <label class="layui-form-label">{:lang('拉黑状态')}</label>
<label class="layui-input-inline"> <label class="layui-input-inline">
<select class="layui-select" name="is_black"> <select class="layui-select" name="is_black">
<option value=''>-- 全部 --</option> <option value=''>-- {:lang('全部')} --</option>
{foreach ['显示未拉黑的粉丝','显示已拉黑的粉丝'] as $k=>$v} {foreach [lang('显示未拉黑的粉丝'),lang('显示已拉黑的粉丝')] as $k=>$v}
{if isset($get.is_black) and $get.is_black eq $k.""} {if isset($get.is_black) and $get.is_black eq $k.""}
<option selected value="{$k}">{$v}</option> <option selected value="{$k}">{$v}</option>
{else} {else}
@ -40,16 +40,16 @@
</div> </div>
<div class="layui-form-item layui-inline"> <div class="layui-form-item layui-inline">
<label class="layui-form-label">订阅时间</label> <label class="layui-form-label">{:lang('订阅时间')}</label>
<label class="layui-input-inline"> <label class="layui-input-inline">
<input data-date-range name="subscribe_at" value="{$get.subscribe_at|default=''}" placeholder="请选择订阅时间" class="layui-input"> <input data-date-range name="subscribe_at" value="{$get.subscribe_at|default=''}" placeholder="{:lang('请选择订阅时间')}" class="layui-input">
</label> </label>
</div> </div>
<div class="layui-form-item layui-inline"> <div class="layui-form-item layui-inline">
<button type="submit" class="layui-btn layui-btn-primary"><i class="layui-icon">&#xe615;</i> 搜 索</button> <button type="submit" class="layui-btn layui-btn-primary"><i class="layui-icon">&#xe615;</i> {:lang('搜 索')}</button>
<button type="button" data-form-export="{:url('index')}?type={$type|default=''}" class="layui-btn layui-btn-primary"> <button type="button" data-form-export="{:url('index')}?type={$type|default=''}" class="layui-btn layui-btn-primary">
<i class="layui-icon layui-icon-export"></i> <i class="layui-icon layui-icon-export"></i> {:lang('导 出')}
</button> </button>
</div> </div>
</form> </form>
@ -58,7 +58,7 @@
<script> <script>
require(['excel'], function (excel) { require(['excel'], function (excel) {
excel.bind(function (data, sexs) { excel.bind(function (data, sexs) {
sexs = {1: '男', 2: '女'}; sexs = {1: '{:lang("")}', 2: '{:lang("")}'};
data.forEach(function (item, index) { data.forEach(function (item, index) {
data[index] = [ data[index] = [
item.openid || '', item.openid || '',
@ -66,19 +66,19 @@
item.country || '', item.country || '',
item.province || '', item.province || '',
item.city || '', item.city || '',
sexs[item.sex] || '未知', sexs[item.sex] || '{:lang("未知")}',
item.subscribe ? '已订阅' : '未订阅', item.subscribe ? '{:lang("已订阅")}' : '{:lang("未订阅")}',
item.subscribe_at || '', item.subscribe_at || '',
item.is_black ? '已拉黑' : '未拉黑', item.is_black ? '{:lang("已拉黑")}' : '{:lang("未拉黑")}',
]; ];
}); });
// 设置表头内容 // 设置表头内容
data.unshift(['OPENID', '微信昵称', '所在国家', '所在省份', '所在城市', '性别', '订阅状态', '订阅时间', '是否拉黑']); data.unshift(['OPENID', '{:lang("微信昵称")}', '{:lang("所在国家")}', '{:lang("所在省份")}', '{:lang("所在城市")}', '{:lang("性别")}', '{:lang("订阅状态")}', '{:lang("订阅时间")}', '{:lang("是否拉黑")}']);
// 应用表格样式 // 应用表格样式
return this.withStyle(data, {A: 200, H: 120}); return this.withStyle(data, {A: 200, H: 120});
}, '微信粉丝数据' + layui.util.toDateString(Date.now(), '_yyyyMMdd_HHmmss')); }, '{:lang("微信粉丝数据")}' + layui.util.toDateString(Date.now(), '_yyyyMMdd_HHmmss'));
}); });
</script> </script>

View File

@ -3,7 +3,7 @@
{block name='content'} {block name='content'}
<div id="MenuEditor" class="layui-hide think-box-shadow" style="width:900px"> <div id="MenuEditor" class="layui-hide think-box-shadow" style="width:900px">
<div class='mobile-preview inline-block'> <div class='mobile-preview inline-block'>
<div class='mobile-header'>公众号</div> <div class='mobile-header'>{:lang('公众号')}</div>
<div class='mobile-body'></div> <div class='mobile-body'></div>
<ul class='mobile-footer notselect'> <ul class='mobile-footer notselect'>
<li class="parent-menu" style="{{getItemStyle(list)}}" ng-repeat="one in list"> <li class="parent-menu" style="{{getItemStyle(list)}}" ng-repeat="one in list">
@ -30,22 +30,22 @@
</div> </div>
<div class="absolute inline-block layui-card margin-left-10" style="height:578px;width:570px"> <div class="absolute inline-block layui-card margin-left-10" style="height:578px;width:570px">
<div class="layui-card-header layui-bg-gray text-center">菜单编辑</div> <div class="layui-card-header layui-bg-gray text-center">{:lang('菜单编辑')}</div>
<div class="layui-card-body" ng-if="list.length<1"> <div class="layui-card-body" ng-if="list.length<1">
<blockquote class="layui-elem-quote border-0 text-center">请在左侧创建菜单...</blockquote> <blockquote class="layui-elem-quote border-0 text-center">{:lang('请在左侧创建菜单...')}</blockquote>
</div> </div>
<div class="layui-card-body"> <div class="layui-card-body">
<form class="layui-form padding-right-40" name="menu" role="form" onsubmit="return false"> <form class="layui-form padding-right-40" name="menu" role="form" onsubmit="return false">
<div ng-if="list.length>0"> <div ng-if="list.length>0">
<div class="layui-form-item margin-top-20"> <div class="layui-form-item margin-top-20">
<label class="layui-form-label">菜单名称</label> <label class="layui-form-label">{:lang('菜单名称')}</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input required vali-name="菜单名称" ng-model="item.name" class="layui-input" placeholder="请输入菜单名称"> <input required vali-name="{:lang('菜单名称')}" ng-model="item.name" class="layui-input" placeholder="{:lang('请输入菜单名称')}">
<span class="help-block">字数不超过13个汉字或40个字母</span> <span class="help-block">{:lang('字数不超过13个汉字或40个字母')}</span>
</div> </div>
</div> </div>
<div class="layui-form-item margin-top-20" ng-if="!item.sub_button||item.sub_button.length<1"> <div class="layui-form-item margin-top-20" ng-if="!item.sub_button||item.sub_button.length<1">
<label class="layui-form-label label-required">菜单类型</label> <label class="layui-form-label label-required">{:lang('菜单类型')}</label>
<div class="layui-input-block"> <div class="layui-input-block">
{foreach $menuTypes as $key => $type} {foreach $menuTypes as $key => $type}
<label class="think-radio layui-elip"> <label class="think-radio layui-elip">