后台多语言优化

This commit is contained in:
gongfuxiang 2023-01-31 18:44:32 +08:00
parent 3c9a8123de
commit b355bb315a
156 changed files with 4365 additions and 3522 deletions

View File

@ -32,8 +32,6 @@ class ArticleCategory extends Base
*/
public function Index()
{
// 是否启用
MyViewAssign('common_is_enable_list', MyLang('common_is_enable_list'));
return MyView();
}

View File

@ -60,8 +60,6 @@ class Brand extends Base
{
// 模板数据
$assign = [
// 静态数据
'common_is_enable_list' => MyLang('common_is_enable_list'),
// 编辑器文件存放地址
'editor_path_type' => ResourcesService::EditorPathTypeValue('brand'),
];

View File

@ -32,8 +32,6 @@ class BrandCategory extends Base
*/
public function Index()
{
// 是否启用
MyViewAssign('common_is_enable_list', MyLang('common_is_enable_list'));
return MyView();
}

View File

@ -34,18 +34,10 @@ class Config extends Base
{
// 模板数据
$assign = [
// 静态数据
'common_excel_charset_list' => MyLang('common_excel_charset_list'),
'common_excel_export_type_list' => MyLang('common_excel_export_type_list'),
'common_map_type_list' => MyLang('common_map_type_list'),
'common_is_enable_list' => MyLang('common_is_enable_list'),
'common_login_type_list' => MyLang('common_login_type_list'),
'common_close_open_list' => MyLang('common_close_open_list'),
'common_is_text_list' => MyLang('common_is_text_list'),
// 数据
'data' => ConfigService::ConfigList(),
'data' => ConfigService::ConfigList(),
// 页面类型
'view_type' => 'index',
'view_type' => 'index',
];
MyViewAssign($assign);
return MyView();

View File

@ -34,10 +34,8 @@ class Express extends Base
public function Index()
{
$assign = [
// 静态数据
'common_is_enable_list' => MyLang('common_is_enable_list'),
// 编辑器文件存放地址
'editor_path_type' => ResourcesService::EditorPathTypeValue('express'),
'editor_path_type' => ResourcesService::EditorPathTypeValue('express'),
];
MyViewAssign($assign);
return MyView();

View File

@ -62,6 +62,10 @@ class Navigation extends Base
'nav_header_pid_list' => NavigationService::LevelOneNav(['nav_type'=>$this->nav_type]),
// 商品分类
'goods_category_list' => GoodsService::GoodsCategoryAll(),
// 管理导航
'nav_data' => MyLang('navigation.base_nav_list'),
// 添加类型列表
'add_type_list' => MyLang('navigation.base_add_type_list'),
];
// 获取列表

View File

@ -58,6 +58,8 @@ class Pluginsadmin extends Base
$assign = [
// 导航参数
'view_type' => $this->view_type,
// 管理导航
'nav_data' => MyLang('pluginsadmin.base_nav_list'),
// 应用商店地址
'store_url' => StoreService::StoreUrl(),
];

View File

@ -32,7 +32,6 @@ class Region extends Base
*/
public function Index()
{
MyViewAssign('common_is_enable_list', MyLang('common_is_enable_list'));
return MyView();
}

View File

@ -32,7 +32,6 @@ class ScreeningPrice extends Base
*/
public function Index()
{
MyViewAssign('common_is_enable_list', MyLang('common_is_enable_list'));
return MyView();
}

View File

@ -61,10 +61,6 @@ class Slide extends Base
$assign = [
// 当前数据
'data' => $this->data_detail,
// 静态资源
'common_is_enable_list' => MyLang('common_is_enable_list'),
'common_platform_type' => MyLang('common_platform_type'),
'common_app_event_type' => MyLang('common_app_event_type'),
// 编辑器文件存放地址
'editor_path_type' => ResourcesService::EditorPathTypeValue('slide'),
];

View File

@ -126,7 +126,7 @@ class AppCenterNav
'search_config' => [
'form_type' => 'select',
'where_type' => 'in',
'data' => MyLang('common_is_enable_list'),
'data' => MyLang('common_is_text_list'),
'data_key' => 'id',
'data_name' => 'name',
'is_multiple' => 1,

View File

@ -126,7 +126,7 @@ class AppHomeNav
'search_config' => [
'form_type' => 'select',
'where_type' => 'in',
'data' => MyLang('common_is_enable_list'),
'data' => MyLang('common_is_text_list'),
'data_key' => 'id',
'data_name' => 'name',
'is_multiple' => 1,

View File

@ -106,7 +106,7 @@ class Article
'search_config' => [
'form_type' => 'select',
'where_type' => 'in',
'data' => MyLang('common_is_enable_list'),
'data' => MyLang('common_is_text_list'),
'data_key' => 'id',
'data_name' => 'name',
'is_multiple' => 1,

View File

@ -123,7 +123,7 @@ class Brand
'search_config' => [
'form_type' => 'select',
'where_type' => 'in',
'data' => MyLang('common_is_enable_list'),
'data' => MyLang('common_is_text_list'),
'data_key' => 'id',
'data_name' => 'name',
'is_multiple' => 1,

View File

@ -79,7 +79,7 @@ class CustomView
'search_config' => [
'form_type' => 'select',
'where_type' => 'in',
'data' => MyLang('common_is_enable_list'),
'data' => MyLang('common_is_text_list'),
'data_key' => 'id',
'data_name' => 'name',
'is_multiple' => 1,

View File

@ -109,7 +109,7 @@ class GoodsParamsTemplate
'search_config' => [
'form_type' => 'select',
'where_type' => 'in',
'data' => MyLang('common_is_enable_list'),
'data' => MyLang('common_is_text_list'),
'data_key' => 'id',
'data_name' => 'name',
'is_multiple' => 1,

View File

@ -108,7 +108,7 @@ class GoodsSpecTemplate
'search_config' => [
'form_type' => 'select',
'where_type' => 'in',
'data' => MyLang('common_is_enable_list'),
'data' => MyLang('common_is_text_list'),
'data_key' => 'id',
'data_name' => 'name',
'is_multiple' => 1,

View File

@ -100,7 +100,7 @@ class Link
'search_config' => [
'form_type' => 'select',
'where_type' => 'in',
'data' => MyLang('common_is_enable_list'),
'data' => MyLang('common_is_text_list'),
'data_key' => 'id',
'data_name' => 'name',
'is_multiple' => 1,

View File

@ -125,7 +125,7 @@ class QuickNav
'search_config' => [
'form_type' => 'select',
'where_type' => 'in',
'data' => MyLang('common_is_enable_list'),
'data' => MyLang('common_is_text_list'),
'data_key' => 'id',
'data_name' => 'name',
'is_multiple' => 1,

View File

@ -124,7 +124,7 @@ class Slide
'search_config' => [
'form_type' => 'select',
'where_type' => 'in',
'data' => MyLang('common_is_enable_list'),
'data' => MyLang('common_is_text_list'),
'data_key' => 'id',
'data_name' => 'name',
'is_multiple' => 1,

View File

@ -94,7 +94,7 @@ class Warehouse
'search_config' => [
'form_type' => 'select',
'where_type' => 'in',
'data' => MyLang('common_is_enable_list'),
'data' => MyLang('common_is_text_list'),
'data_key' => 'id',
'data_name' => 'name',
'is_multiple' => 1,

View File

@ -106,7 +106,7 @@ class WarehouseGoods
'form_type' => 'select',
'form_name' => 'wg.is_enable',
'where_type' => 'in',
'data' => MyLang('common_is_enable_list'),
'data' => MyLang('common_is_text_list'),
'data_key' => 'id',
'data_name' => 'name',
'is_multiple' => 1,

View File

@ -32,24 +32,50 @@ return [
'upgrade_version_name' => 'Updated Version',
'upgrade_date_name' => 'Update Date',
],
],
// 订单管理
'order' => [
// 页面公共
'page_common' => [
'order_id_empty' => 'Wrong order ID',
'express_choice_tips' => 'Please select express delivery method',
'payment_choice_tips' => 'Please select payment method',
],
],
// 插件管理
'pluginsadmin' => [
// 页面公共
'page_common' => [
'not_enable_tips' => 'Please click tick to enable',
'save_no_data_tips' => 'No plug-in data to save',
// 页面基础
'base_update_button_title' => 'Update Now',
'base_item_base_stats_title' => 'Shop Statistics',
'base_item_base_stats_tips' => 'Time filtering is only valid for totals',
'base_item_user_title' => 'Total Users',
'base_item_order_number_title' => 'Total Orders',
'base_item_order_complete_number_title' => 'Total Transaction Volume',
'base_item_order_complete_title' => 'Order Amount',
'base_item_last_month_title' => 'LastMonth',
'base_item_same_month_title' => 'SameMonth',
'base_item_yesterday_title' => 'Yesterday',
'base_item_today_title' => 'Today',
'base_item_order_profit_title' => 'Trend of order transaction amount',
'base_item_order_trading_title' => 'Order trading trend',
'base_item_order_tips' => 'All Orders',
'base_item_hot_sales_goods_title' => 'Hot Goods',
'base_item_hot_sales_goods_tips' => 'Orders without cancelling closing',
'base_item_payment_type_title' => 'Payment Type',
'base_item_map_whole_country_title' => 'Order geographical distribution',
'base_item_map_whole_country_tips' => 'Excluding orders and default dimensions (provinces) to cancel closing',
'base_item_map_whole_country_province' => 'Province',
'base_item_map_whole_country_city' => 'City',
'base_item_map_whole_country_county' => 'County',
'system_info_title' => 'System Info',
'system_ver_title' => 'Software Version',
'system_os_ver_title' => 'Operating System',
'system_php_ver_title' => 'PHP Version',
'system_mysql_ver_title' => 'MySQL Version',
'system_server_ver_title' => 'Server Info',
'system_host_title' => 'Current Domain',
'development_team_title' => 'Development Team',
'development_team_website_title' => 'Website',
'development_team_website_value' => 'Shanghai Zongzhige Technology Co., Ltd',
'development_team_support_title' => 'Support',
'development_team_support_value' => 'ShopXO enterprise e-commerce system provider',
'development_team_ask_title' => 'Questions',
'development_team_ask_value' => 'ShopXO exchange questions',
'development_team_agreement_title' => 'Agreement',
'development_team_agreement_value' => 'View open source agreement',
'development_team_update_log_title' => 'Update Log',
'development_team_update_log_value' => 'View update log',
'development_team_members_title' => 'R&D members',
'development_team_members_value' => [
['name' => 'Brother Gong', 'url' => 'http://gong.gg/']
],
],
@ -85,6 +111,80 @@ return [
['name' => 'Discount', 'type' => 'discount'],
['name' => 'Extensions', 'type' => 'extends'],
],
// 页面基础
'base_item_site_status_title' => 'Site Status',
'base_item_site_domain_title' => 'Site domain name address',
'base_item_site_filing_title' => 'Filing Info',
'base_item_site_other_title' => 'Other',
'base_item_session_cache_title' => 'Session Cache Config',
'base_item_data_cache_title' => 'Data Cache Config',
'base_item_redis_cache_title' => 'Redis Cache Config',
'base_item_crontab_config_title' => 'Timing Script Config',
'base_item_quick_nav_title' => 'Quick Navigation',
'base_item_user_address_title' => 'User Address',
'base_item_site_auto_mode_title' => 'Automatic Mode',
'base_item_site_manual_mode_title' => 'Manual Mode',
'base_item_default_payment_title' => 'Default Payment Method',
'base_item_display_type_title' => 'Display Type',
'base_item_self_extraction_title' => 'Self-promotion',
'base_item_fictitious_title' => 'Virtual Sales',
'choice_upload_logo_title' => 'Choice Logo',
'add_goods_title' => 'Goods Add',
'add_self_extractio_address_title' => 'Add Address',
'site_domain_tips_list' => [
'1. If the site domain name is not set, the current site domain name and address will be used[ '.__MY_DOMAIN__.' ]',
'2. If the attachment and static address are not set, the static domain name address of the current site will be used[ '.__MY_PUBLIC_URL__.' ]',
'3. If public is not set as the root directory on the server side, the configuration of [attachment cdn domain name, css/js static file cdn domain name] needs to be followed by public, such as:'.__MY_PUBLIC_URL__.'public/',
'4. When running the project in command line mode, the address of the zone must be configured, otherwise some addresses in the project will be missing the domain name information',
'5. Do not randomly configure. The wrong address will cause the website to be inaccessible (the address configuration starts with http). If your own site is configured with https, it starts with https',
],
'site_cache_tips_list' => [
'1. The default file cache and Redis cache PHP need to be installed first',
'2. Please ensure the stability of Redis service (after the session uses the cache, the unstable service may cause the background to be unable to log in)',
'3. In case of Redis service exception, you cannot log in to the management background and modify the [session.php, cache. php] file in the [config] directory of the configuration file',
],
'goods_tips_list' => [
'1. By default, the WEB side displays 3 levels, the lowest level is 1 and the highest level is 3 (if set to 0, the default is 3)',
'2. Mobile terminal default display level 0 (commodity list mode), minimum level 0, and maximum level 3 (1~3 are classified display mode)',
'3. The style of the front category page will be different if the level is different',
],
'goods_auto_mode_max_count_tips_list' => [
'1. Configure the maximum number of products displayed on each floor',
'2. It is not recommended to modify the quantity too large, which will lead to too large blank area on the left side of the PC',
],
'goods_auto_mode_order_by_tips_list' => [
'It can be summarized as follows: popularity ->sales volume ->descending order (desc) of the latest',
],
'goods_manual_mode_max_tips_list' => [
'1. Click the title of the item to drag and sort it and display it in order',
'2. It is not recommended to add many products, which will lead to too large blank area on the left side of the PC',
],
'extends_crontab_tips' => 'It is recommended that you add the script address to the timing request of the Linux scheduled task (the result is SUCS: 0, FAIL: 0, followed by the colon is the number of data processed, SUCS succeeded, FALI failed)',
'left_images_random_tips' => 'The left picture can upload up to 3 pictures, and one of them can be displayed randomly each time',
'background_color_tips' => 'Customizable background image, default background gray',
'site_setup_layout_tips' => 'The drag mode needs to enter the homepage design page by yourself. Please save the selected configuration before',
'site_setup_layout_button_name' => 'Go to design page >>',
'site_setup_goods_category_tips' => 'If you need more floor displays, please go to/Product Management ->Product Classification, Primary Classification Settings Home Page Recommendation',
'site_setup_goods_category_no_data_tips'=> 'There is no data for the time being. Please go to/Product Management ->Product Classification, Primary Classification Settings Home Page for recommendation',
'site_setup_order_default_payment_tips' => 'You can set the default payment method corresponding to different platforms. Please install the payment plug-in in [Website Management ->Payment Method] to enable and open it to users',
'site_setup_choice_payment_message' => 'Please select {:name} default payment method',
'sitetype_top_tips_list' => [
'1. Express delivery, conventional e-commerce process, user selects the receiving address to place an order for payment ->merchant shipment ->confirmation of receipt ->order completion',
'2. Display type, only display products, can initiate consultation (cant place an order)',
'3. Select the self-pickup address when placing the order, and the user places the order for payment ->confirm the delivery ->order completion',
'4. Virtual sales, conventional e-commerce process, user order payment ->automatic delivery ->confirmation of delivery ->order completion',
],
// 添加自提地址表单
'form_take_address_logo' => 'LOGO',
'form_take_address_logo_tips' => '300 * 300px proposal',
'form_take_address_alias' => 'Alias',
'form_take_address_alias_message' => 'Alias format can be up to 16 characters',
'form_take_address_name' => 'Contacts Name',
'form_take_address_name_message' => 'Contact name format is between 2 and 16 characters',
'form_take_address_tel' => 'Contact Tel',
'form_take_address_tel_message' => 'Please fill in the contact number',
'form_take_address_address' => 'Detail Address',
'form_take_address_address_message' => 'Detailed address format is between 1 and 80 characters',
],
// 后台配置信息
@ -95,7 +195,6 @@ return [
'2. Naming rules for background pictures (1~50), such as 1.jpg',
],
'map_type_tips' => 'Due to the different map standards of each company, do not switch maps at will, which will lead to inaccurate map coordinates.',
'view_config_course_name' => 'View the configuration tutorial',
'apply_map_baidu_name' => 'Please apply at Baidu Map Open Platform',
'apply_map_amap_name' => 'Please apply at the open platform of Gaode Map',
'apply_map_tencent_name' => 'Please apply at Tencent Map Open Platform',
@ -166,9 +265,6 @@ return [
// 表单
'form_item_title' => 'Title',
'form_item_title_message' => 'The title is 2~60 characters long',
'form_item_is_header' => 'Including head',
'form_item_is_footer' => 'Including tail',
'form_item_is_full_screen' => 'Full screen',
'form_item_content_title' => 'Content',
'form_item_content_placeholder' => 'The content format is between 10 and 105000 characters. For more editing functions, please use the computer to access',
'form_item_content_message' => 'Content format is between 10 and 105000 characters',
@ -185,8 +281,6 @@ return [
// 表单
'form_item_name' => 'Name',
'form_item_name_message' => 'The name is 2~16 characters long',
'form_item_is_header' => 'Including head',
'form_item_is_footer' => 'Including tail',
'form_logo_tips' => 'Recommended size 300 * 300px',
],
@ -272,9 +366,9 @@ return [
'appmini' => [
// 基础导航
'base_nav_list' => [
['view_type' => 'index','name' => 'Current Theme'],
['view_type' => 'upload','name' => 'Theme Install'],
['view_type' => 'package','name' => 'Source Package Download'],
['name' => 'Current Theme', 'type' => 'index'],
['name' => 'Theme Install', 'type' => 'upload'],
['name' => 'Source Package Download', 'type' => 'package'],
],
'nav_store_theme_name' => 'More topic downloads',
'nav_theme_download_name' => 'View the applet packaging tutorial',
@ -294,7 +388,6 @@ return [
['name' => 'Mailbox Settings', 'type' => 'index'],
['name' => 'Message Template', 'type' => 'message'],
],
'view_config_course_name' => 'View the configuration tutorial',
'top_tips' => 'Due to some differences between different mailbox platforms and different configurations, the specific configuration of the mailbox platform is subject to the tutorial',
// 基础
'test_title' => 'Test',
@ -307,6 +400,11 @@ return [
'form_item_test_button_title' => 'Test',
],
// seo设置
'seo' => [
'top_tips' => 'Configure corresponding pseudo-static rules according to different server environments [Nginx, Apache, IIS]',
],
// 商品
'goods' => [
'base_nav_title' => 'Goods',
@ -520,6 +618,142 @@ return [
'form_item_content_message' => 'Specification value format: 1~1000 characters',
],
// 友情链接
'link' => [
'base_nav_title' => 'Friendly link',
// 表单
'form_item_name' => 'Name',
'form_item_name_message' => 'Name format 2~16 characters',
'form_item_url' => 'Link Address',
'form_item_url_placeholder' => 'Link address, starting with http://or https://',
'form_item_url_message' => 'Incorrect format of link address',
'form_item_desc' => 'Describe',
'form_item_desc_message' => 'Description can be up to 60 characters',
],
// 导航管理
'navigation' => [
// 基础导航
'base_nav_list' => [
['name' => 'Header', 'type' => 'header'],
['name' => 'Footer', 'type' => 'footer'],
],
// 添加类型列表
'base_add_type_list' => [
'custom' => 'Custom',
'article' => 'Article',
'customview' => 'Custom Page',
'goods_category' => 'Goods Category',
'design' => 'Page Design',
],
// 表单
'form_item_pid' => 'Navigation Level',
'form_item_pid_placeholder' => 'Primary column...',
'form_item_pid_message' => 'Please select the navigation level',
'form_item_name' => 'Navigation Name',
'form_item_name_tips' => 'Default {:type} name',
'form_item_name_message' => 'Navigation name format 2~16 characters',
'form_item_url' => 'Url Address',
'form_item_url_placeholder' => 'Url address, starting with http://or https://',
'form_item_url_message' => 'Incorrect format of url address',
'form_item_value_article_message' => 'Wrong article selection',
'form_item_value_customview_message' => 'Incorrect selection of custom page',
'form_item_value_goods_category_message'=> 'Wrong selection of commodity classification',
'form_item_value_design_message' => 'Incorrect selection of page design',
],
// 订单管理
'order' => [
// 页面公共
'page_common' => [
'order_id_empty' => 'Wrong order ID',
'express_choice_tips' => 'Please select express delivery method',
'payment_choice_tips' => 'Please select payment method',
],
// 页面基础
'form_delivery_title' => 'Delivery Operation',
'form_payment_title' => 'Payment Operation',
'form_item_take' => 'Take Code',
'form_item_take_message' => 'Please fill in the 4-digit pickup code',
'form_item_express_number' => 'Express Number',
'form_item_express_number_message' => 'Please fill in the express bill number',
// 地址
'detail_user_address_title' => 'Shipping Address',
'detail_user_address_name' => 'Receiving Name',
'detail_user_address_tel' => 'Receiving Phone',
'detail_user_address_value' => 'Address',
'detail_user_address_idcard' => 'ID Card Info',
'detail_user_address_idcard_name' => 'Full Name',
'detail_user_address_idcard_number' => 'Number',
'detail_user_address_idcard_pic' => 'Photo',
'detail_take_address_title' => 'Take Address',
'detail_take_address_contact' => 'Contact Info',
'detail_take_address_value' => 'Detail Info',
'detail_fictitious_title' => 'Key Info',
// 订单售后
'detail_aftersale_status' => 'Status',
'detail_aftersale_type' => 'Type',
'detail_aftersale_price' => 'Price',
'detail_aftersale_number' => 'Number',
'detail_aftersale_reason' => 'Reason',
// 商品
'detail_goods_title' => 'Order Goods',
'detail_payment_amount_less_tips' => 'Please note that the order payment amount is less than the total amount',
'detail_no_payment_tips' => 'Please note that the order has not been paid',
],
// 订单售后
'orderaftersale' => [
'form_audit_title' => 'Audit Operation',
'form_refuse_title' => 'Reject Operation',
'form_user_info_title' => 'User Info',
'form_apply_info_title' => 'Apply Info',
'forn_apply_info_type' => 'Type',
'forn_apply_info_price' => 'Price',
'forn_apply_info_number' => 'Number',
'forn_apply_info_reason' => 'Reason',
'forn_apply_info_msg' => 'Describe',
'form_item_refundment' => 'Refund Method',
'form_item_refundment_message' => 'Please select a refund method',
'form_item_refuse_reason' => 'Reason for rejection',
'form_item_refuse_reason_message' => 'Rejection reason format: 2~230 characters',
],
// 支付方式
'payment' => [
'base_nav_title' => 'PaymentMethod',
'upload_top_list_tips' => [
[
'name' => '1. The class name must be consistent with the file name (remove. php). If Alipay.php, Alipay is used'
],
[
'name' => '2. The method that the class must define',
'item' => [
'2.1. Config configuration method',
'2.2. Pay payment method',
'2.3. Response callback method',
'2.4. Notify asynchronous callback method (optional, call Response method if not defined)',
'2.5. Refund refund method (optional, if not defined, the original refund cannot be initiated)',
],
],
[
'name' => '3. Customizable output content method',
'item' => [
'3.1. SuccessReturn payment succeeded (optional)',
'3.2. ErrorReturn payment failed (optional)',
],
]
],
'upload_top_tips_ps' => 'PS: If the above conditions are not met, the plug-in cannot be viewed. Put the plug-in into the. zip compression package to upload, and support multiple payment plug-ins in one compression',
// 表单
'form_item_name' => 'Name',
'form_item_name_message' => 'Name format 2~30 characters',
'form_item_apply_terminal' => 'Applicable Terminal',
'form_item_apply_terminal_message' => 'Select at least one applicable terminal',
'form_item_logo' => 'LOGO',
'form_item_is_open_user' => 'Open to Users',
],
// 快递
'express' => [
'base_nav_title' => 'Express',
@ -553,8 +787,204 @@ return [
'form_item_is_need_login' => 'Whether login is required',
],
// 支付日志
'paylog' => [
'pay_request_title' => 'Payment Request Log',
],
// 支付请求日志
'payrequestlog' => [
'base_nav_title' => 'Payment Request Log',
],
// 插件调用
'plugins' => [
'back_to_plugins_admin' => 'Return to application management >>'
],
// 插件管理
'pluginsadmin' => [
// 页面公共
'page_common' => [
'not_enable_tips' => 'Please click tick to enable',
'save_no_data_tips' => 'No plug-in data to save',
],
// 基础导航
'base_nav_title' => 'Plugins',
'base_nav_list' => [
['name' => 'Application Management', 'type' => 'index'],
['name' => 'Upload Application', 'type' => 'upload'],
],
'base_nav_more_plugins_download_name' => 'More plug-in downloads',
// 基础页面
'base_search_input_placeholder' => 'Please enter a name/description',
'base_top_tips_one' => 'List sorting method [custom sorting ->earliest installation]',
'base_top_tips_two' => 'Click and drag icon button to adjust plug-in call and display order',
'base_open_sort_title' => 'Enable sorting',
'data_list_author_title' => 'Author',
'data_list_author_url_title' => 'HomePage',
'data_list_version_title' => 'Version',
'uninstall_confirm_tips' => 'Uninstallation may lose the basic configuration data of the plug-in. Is it unrecoverable and confirm the operation?',
'not_install_divide_title' => 'The following plug-ins are not installed',
'delete_plugins_text' => '1. Delete apps only',
'delete_plugins_text_tips' => '(Only delete the application code and keep the application data)',
'delete_plugins_data_text' => '2. Delete app and delete data',
'delete_plugins_data_text_tips' => '(Application code and application data will be deleted)',
'delete_plugins_ps_tips' => 'PS: None of the following operations can be recovered. Please operate carefully!',
'delete_plugins_button_name' => 'Delete apps only',
'delete_plugins_data_button_name' => 'Delete apps and data',
'cancel_delete_plugins_button_name' => 'Think again',
'more_plugins_store_to_text' => 'Go to the app store to select more plug-ins to enrich the site >>',
'no_data_store_to_text' => 'Go to the app store to select plug-in rich sites >>',
'plugins_no_data_tips' => 'There is no relevant application yet',
// 表单
'form_item_upload_tips' => 'Upload an application installation package in zip compression format',
'form_create_error_tips' => 'Please fill in again!',
'form_create_first_step_button_name' => 'Next Step',
'form_item_plugins' => 'Apply unique tags',
'form_item_plugins_tips' => 'Use numbers, lowercase letters and underscores',
'form_item_plugins_message' => 'Apply unique tag format of 2~60 characters',
'form_item_logo' => 'LOGO',
'form_item_logo_tips' => '600 * 600px proposal',
'form_item_name' => 'Name',
'form_item_name_message' => 'Name format: 2~30 characters',
'form_item_author' => 'Author',
'form_item_author_message' => 'Author format 2~30 characters',
'form_item_author_url' => 'Author URI',
'form_item_author_url_tips' => 'Start with http://or https://',
'form_item_author_url_message' => 'Please fill in the authors homepage',
'form_item_version' => 'Version',
'form_item_version_tips' => 'Major version, minor version number and revision number, each segment shall not exceed 6 digits, such as 1.0.0',
'form_item_version_message' => 'Incorrect version format',
'form_item_desc' => 'Describe',
'form_item_desc_message' => 'Description content format: 2~60 characters',
'form_item_apply_terminal' => 'Applicable Terminal',
'form_item_apply_terminal_message' => 'Select at least one applicable terminal',
'form_item_apply_version' => 'Applicable system version',
'form_item_apply_version_message' => 'Select at least one applicable system version',
'form_item_is_home' => 'Whether there is front-end entrance',
'form_item_is_home_tips' => 'Front independent page entry',
],
// 安装页面
'packageinstall' => [
'back_admin_title' => 'Back to Admin',
'get_loading_tips' => 'Getting...',
],
// 角色管理
'role' => [
'base_nav_title' => 'Role',
'admin_not_modify_tips' => 'The super administrator has all permissions by default and cannot be changed.',
// 表单
'form_item_name' => 'Role Name',
'form_item_name_message' => 'Role name format 2~16 characters',
'form_item_menu' => 'Menu Power',
'form_item_menu_no_data_tips' => 'No menu data',
'form_item_plugins' => 'Plugins Power',
'form_item_plugins_tips' => 'The plug-in also needs to check [Application Center ->Application Management+Application Call Management] permission in the current menu permission',
'form_item_plugins_no_data_tips' => 'No plugins data',
],
// 权限管理
'power' => [
'base_nav_title' => 'Power',
'top_tips_list' => [
'1. Non-professional technical personnel should not operate the data on this page. The wrong operation may lead to confusion of the authority menu.',
'2. The permission menu is divided into two types: [Use and Operation]. The use menu is generally displayed, and the operation menu must be hidden.',
'3. If the permission menu is disordered, you can overwrite it again[ '.MyConfig('database.connections.mysql.prefix').'power ]Data recovery of data table.',
'4. [Super administrator, admin account] has all permissions by default and cannot be changed.',
],
'content_top_tips_list' => [
'1. To fill in [controller name and method name], you need to create corresponding definitions of controller and method',
'2. Controller file location [app/admin/controller], this operation is only used by developers',
'3. One controller name/method name and user-defined url address must be filled in',
],
// 表单
'form_item_pid' => 'Column Level',
'form_item_pid_placeholder' => 'Primary column...',
'form_item_pid_message' => 'Column level selection error',
'form_item_name' => 'Power Name',
'form_item_name_message' => 'Power name format 2~16 characters',
'form_item_control' => 'Controller Name',
'form_item_control_message' => 'The format of the controller name is between 1 and 30 characters (it must start with a letter and can be alphanumeric underscore)',
'form_item_action' => 'Action Name',
'form_item_action_message' => 'The format of the method name is between 1 and 30 characters (it must start with a letter and can be alphanumeric underscore)',
'form_item_url' => 'Custom Url Address',
'form_item_url_message' => 'Custom url address, starting with http://or https://',
'form_item_icon' => 'Icon Class',
'form_item_icon_message' => 'Icon format can be up to 30 characters',
'form_item_icon_tips_list' => [
'1. reference resources http://www.iconfont.cn/ Place the icon in the [/static/admin/default/cs/iconfontmenu. css] file',
'2. You can also directly use the icon and reference provided by the frame[ http://amazeui.shopxo.net/css/icon/ ]',
'3. You can also use the plug-in hook to import the css file of the custom icon, and then use the defined icon',
],
],
// 快捷导航
'quicknav' => [
'base_nav_title' => 'QuickNavigation',
// 表单
'form_item_name' => 'Name',
'form_item_name_message' => 'Name format: 2~60 characters',
'form_item_images_url' => 'Navigation Icon',
],
// 地区管理
'region' => [
'base_nav_title' => 'Region',
// 表单
'form_item_id' => 'Unique Number',
'form_item_id_tips' => [
'1. If left blank, the system will automatically generate',
'2. Do not modify at will to avoid data confusion',
],
'form_item_id_message' => 'Please enter a unique number',
'form_item_name' => 'Name',
'form_item_name_message' => 'Name format 2~16 characters',
'form_item_lng' => 'Longitude',
'form_item_lng_message' => 'Please fill in the longitude',
'form_item_lat' => 'Latitude',
'form_item_lat_message' => 'Please fill in the latitude',
'form_item_letters' => 'Initial',
'form_item_letters_message' => 'Please fill in the initials',
],
// 筛选价格
'screeningprice' => [
'base_nav_title' => 'FilterPrice',
'top_tips_list' => [
'Minimum price 0 - maximum price 100 is less than 100',
'Minimum price 1000 - maximum price 0 is greater than 1000',
'The minimum price of 100 - the maximum price of 500 is greater than or equal to 100 and less than 500',
],
// 表单
'form_item_name' => 'Name',
'form_item_name_message' => 'Name format 2~16 characters',
'form_item_min_price' => 'Minimum Price',
'form_item_min_price_message' => 'Incorrect minimum price',
'form_item_max_price' => 'Maximum Price',
'form_item_max_price_message' => 'Incorrect maximum price',
],
// 公共
'common' => [
// 公共
'admin_browser_title' => 'Background management system',
'remove_cache_title' => 'Clear Cache',
// 商店绑定
'store_check_update_name' => 'Check for update',
'store_bind_accounts_name' => 'Bind ShopXO store account',
'store_bind_accounts_tips' => 'Bind ShopXO App Store account, get the latest version information of plug-in, install and update online',
'store_bind_authorized_subject_name' => 'Authorized Subject',
'store_bind_form_accounts' => 'Accounts',
'store_bind_form_accounts_placeholder' => 'User name/mobile phone/email',
'store_bind_form_accounts_message' => 'Account format 1~30 characters',
'store_bind_form_password' => 'Password',
'store_bind_form_password_placeholder' => 'Login Password',
'store_bind_form_password_message' => 'Login password format 6~30 characters',
'store_bind_form_regster_name' => 'No account, go to register',
'store_bind_form_tips' => 'One account supports binding to multiple ShopXO stores',
// 商品参数
'form_goods_params_config_error_tips' => 'Goods parameter configuration information',
'form_goods_params_copy_no_tips' => 'Please paste the configuration information first',

View File

@ -32,24 +32,50 @@ return [
'upgrade_version_name' => '更新版本:',
'upgrade_date_name' => '更新日期:',
],
],
// 订单管理
'order' => [
// 页面公共
'page_common' => [
'order_id_empty' => '订单id有误',
'express_choice_tips' => '请选择快递方式',
'payment_choice_tips' => '请选择支付方式',
],
],
// 插件管理
'pluginsadmin' => [
// 页面公共
'page_common' => [
'not_enable_tips' => '请先点击勾勾启用',
'save_no_data_tips' => '没有可保存的插件数据',
// 页面基础
'base_update_button_title' => '立即更新',
'base_item_base_stats_title' => '商城统计',
'base_item_base_stats_tips' => '时间筛选仅对总数有效',
'base_item_user_title' => '用户总量',
'base_item_order_number_title' => '订单总量',
'base_item_order_complete_number_title' => '成交总量',
'base_item_order_complete_title' => '订单总计',
'base_item_last_month_title' => '上月',
'base_item_same_month_title' => '当月',
'base_item_yesterday_title' => '昨日',
'base_item_today_title' => '今日',
'base_item_order_profit_title' => '订单成交金额走势',
'base_item_order_trading_title' => '订单交易走势',
'base_item_order_tips' => '所有订单',
'base_item_hot_sales_goods_title' => '热销商品',
'base_item_hot_sales_goods_tips' => '不含取消关闭的订单',
'base_item_payment_type_title' => '支付方式',
'base_item_map_whole_country_title' => '订单地域分布',
'base_item_map_whole_country_tips' => '不含取消关闭的订单、默认维度(省)',
'base_item_map_whole_country_province' => '省',
'base_item_map_whole_country_city' => '市',
'base_item_map_whole_country_county' => '区/县',
'system_info_title' => '系统信息',
'system_ver_title' => '软件版本',
'system_os_ver_title' => '操作系统',
'system_php_ver_title' => 'PHP版本',
'system_mysql_ver_title' => 'MySQL版本',
'system_server_ver_title' => '服务器端信息',
'system_host_title' => '当前域名',
'development_team_title' => '开发团队',
'development_team_website_title' => '公司官网',
'development_team_website_value' => '上海纵之格科技有限公司',
'development_team_support_title' => '技术支持',
'development_team_support_value' => 'ShopXO企业级电商系统提供商',
'development_team_ask_title' => '交流提问',
'development_team_ask_value' => 'ShopXO交流提问',
'development_team_agreement_title' => '开源协议',
'development_team_agreement_value' => '查看开源协议',
'development_team_update_log_title' => '更新日志',
'development_team_update_log_value' => '查看更新日志',
'development_team_members_title' => '研发成员',
'development_team_members_value' => [
['name' => '龚哥哥', 'url' => 'http://gong.gg/']
],
],
@ -85,6 +111,80 @@ return [
['name' => '优惠', 'type' => 'discount'],
['name' => '扩展', 'type' => 'extends'],
],
// 页面基础
'base_item_site_status_title' => '站点状态',
'base_item_site_domain_title' => '站点域名地址',
'base_item_site_filing_title' => '备案信息',
'base_item_site_other_title' => '其它',
'base_item_session_cache_title' => 'Session缓存配置',
'base_item_data_cache_title' => '数据缓存配置',
'base_item_redis_cache_title' => 'redis缓存配置',
'base_item_crontab_config_title' => '定时脚本配置',
'base_item_quick_nav_title' => '快捷导航',
'base_item_user_address_title' => '用户地址',
'base_item_site_auto_mode_title' => '自动模式',
'base_item_site_manual_mode_title' => '手动模式',
'base_item_default_payment_title' => '默认支付方式',
'base_item_display_type_title' => '展示型',
'base_item_self_extraction_title' => '自提点',
'base_item_fictitious_title' => '虚拟销售',
'choice_upload_logo_title' => '选择logo',
'add_goods_title' => '商品添加',
'add_self_extractio_address_title' => '添加地址',
'site_domain_tips_list' => [
'1. 站点域名未设置则使用当前站点域名域名地址[ '.__MY_DOMAIN__.' ]',
'2. 附件和静态地址未设置则使用当前站点静态域名地址[ '.__MY_PUBLIC_URL__.' ]',
'3. 如服务器端不是以public设为根目录的、则这里配置【附件cdn域名、css/js静态文件cdn域名】需要后面再加public、如'.__MY_PUBLIC_URL__.'public/',
'4. 在命令行模式下运行项目,该区域地址必须配置、否则项目中一些地址会缺失域名信息',
'5. 请勿乱配置、错误地址会导致网站无法访问地址配置以http开头、如果自己站的配置了https则以https开头',
],
'site_cache_tips_list' => [
'1. 默认使用的文件缓存、使用Redis缓存PHP需要先安装Redis扩展',
'2. 请确保Redis服务稳定性Session使用缓存后、服务不稳定可能导致后台也无法登录',
'3. 如遇到Redis服务异常无法登录管理后台、修改配置文件[ config ]目录下[ session.php,cache.php ]文件',
],
'goods_tips_list' => [
'1. WEB端默认展示3级最低1级、最高3级(如设置为0级则默认为3级)',
'2. 手机端默认展示0级(商品列表模式)、最低0级、最高3级(1~3为分类展示模式)',
'3. 层级不一样、前端分类页样式也会不一样',
],
'goods_auto_mode_max_count_tips_list' => [
'1. 配置每个楼层最多展示多少个商品',
'2. 不建议将数量修改的太大、会导致PC端左侧空白区域太大',
],
'goods_auto_mode_order_by_tips_list' => [
'综合为:热度->销量->最新 进行 降序(desc)排序',
],
'goods_manual_mode_max_tips_list' => [
'1. 可点击商品标题拖拽排序、按照顺序展示',
'2. 不建议添加很多商品、会导致PC端左侧空白区域太大',
],
'extends_crontab_tips' => '建议将脚本地址添加到linux定时任务定时请求即可结果 sucs:0, fail:0 冒号后面则是处理的数据条数sucs成功fali失败',
'left_images_random_tips' => '左侧图片最多可上传3张图片、每次随机展示其中一张',
'background_color_tips' => '可自定义背景图片、默认底灰色',
'site_setup_layout_tips' => '拖拽模式需要自行进入首页设计页面、请先保存选中配置后再',
'site_setup_layout_button_name' => '去设计页面 >>',
'site_setup_goods_category_tips' => '如需更多楼层展示,请先到 / 商品管理->商品分类、一级分类设置首页推荐',
'site_setup_goods_category_no_data_tips'=> '暂无数据,请先到 / 商品管理->商品分类、一级分类设置首页推荐',
'site_setup_order_default_payment_tips' => '可以设置不同平台对应的默认支付方式、请先在[ 网站管理 -> 支付方式 ]中安装好支付插件启用并对用户开放',
'site_setup_choice_payment_message' => '请选择{:name}默认支付方式',
'sitetype_top_tips_list' => [
'1. 快递、常规电商流程,用户选择收货地址下单支付 -> 商家发货 -> 确认收货 -> 订单完成',
'2. 展示型、仅展示产品,可发起咨询(不能下单)',
'3. 自提点、下单时选择自提货物地址,用户下单支付 -> 确认提货 -> 订单完成',
'4. 虚拟销售、常规电商流程,用户下单支付 -> 自动发货 -> 确认提货 -> 订单完成',
],
// 添加自提地址表单
'form_take_address_logo' => 'LOGO',
'form_take_address_logo_tips' => '建议300*300px',
'form_take_address_alias' => '别名',
'form_take_address_alias_message' => '别名格式最多16个字符',
'form_take_address_name' => '联系人',
'form_take_address_name_message' => '联系人格式2~16个字符之间',
'form_take_address_tel' => '联系电话',
'form_take_address_tel_message' => '请填写联系电话',
'form_take_address_address' => '详细地址',
'form_take_address_address_message' => '详细地址格式1~80个字符之间',
],
// 后台配置信息
@ -95,7 +195,6 @@ return [
'2. 背景图片命名规则(1~50)、如 1.jpg',
],
'map_type_tips' => '由于每一家的地图标准不一样、请勿随意切换地图、会导致地图坐标标注不准确的情况。',
'view_config_course_name' => '查看配置教程',
'apply_map_baidu_name' => '请到百度地图开放平台申请',
'apply_map_amap_name' => '请到高德地图开放平台申请',
'apply_map_tencent_name' => '请到腾讯地图开放平台申请',
@ -166,9 +265,6 @@ return [
// 表单
'form_item_title' => '名称',
'form_item_title_message' => '名称长度2~60个字符',
'form_item_is_header' => '是否含头部',
'form_item_is_footer' => '是否含尾部',
'form_item_is_full_screen' => '是否满屏',
'form_item_content_title' => '内容',
'form_item_content_placeholder' => '内容格式10~105000个字符之间更多编辑功能请使用电脑访问',
'form_item_content_message' => '内容格式10~105000个字符之间',
@ -185,9 +281,6 @@ return [
// 表单
'form_item_name' => '名称',
'form_item_name_message' => '名称长度2~16个字符',
'form_item_is_header' => '是否含头部',
'form_item_is_footer' => '是否含尾部',
'form_item_is_full_screen' => '是否满屏',
'form_logo_tips' => '建议大小300*300px',
],
@ -273,9 +366,9 @@ return [
'appmini' => [
// 基础导航
'base_nav_list' => [
['view_type' => 'index','name' => '当前主题'],
['view_type' => 'upload','name' => '主题安装'],
['view_type' => 'package','name' => '源码包下载'],
['name' => '当前主题', 'type' => 'index'],
['name' => '主题安装', 'type' => 'upload'],
['name' => '源码包下载', 'type' => 'package'],
],
'nav_store_theme_name' => '更多主题下载',
'nav_theme_download_name' => '查看小程序打包教程',
@ -295,7 +388,6 @@ return [
['name' => '邮箱设置', 'type' => 'index'],
['name' => '消息模板', 'type' => 'message'],
],
'view_config_course_name' => '查看配置教程',
'top_tips' => '由于不同邮箱平台存在一些差异、配置也有所不同、具体以邮箱平台配置教程为准',
// 基础
'test_title' => '测试',
@ -308,6 +400,11 @@ return [
'form_item_test_button_title' => '测试',
],
// seo设置
'seo' => [
'top_tips' => '根据服务器环境[Nginx、Apache、IIS]不同配置相应的伪静态规则',
],
// 商品
'goods' => [
'base_nav_title' => '商品',
@ -521,6 +618,142 @@ return [
'form_item_content_message' => '规格值格式1~1000个字符',
],
// 友情链接
'link' => [
'base_nav_title' => '友情链接',
// 表单
'form_item_name' => '名称',
'form_item_name_message' => '名称格式2~16个字符',
'form_item_url' => '链接地址',
'form_item_url_placeholder' => '链接地址、以http://或https://开头',
'form_item_url_message' => '链接地址格式有误',
'form_item_desc' => '描述',
'form_item_desc_message' => '描述最多60个字符',
],
// 导航管理
'navigation' => [
// 基础导航
'base_nav_list' => [
['name' => '中间导航', 'type' => 'header'],
['name' => '底部导航', 'type' => 'footer'],
],
// 添加类型列表
'base_add_type_list' => [
'custom' => '自定义',
'article' => '文章',
'customview' => '自定义页面',
'goods_category' => '商品分类',
'design' => '页面设计',
],
// 表单
'form_item_pid' => '导航级别',
'form_item_pid_placeholder' => '一级栏目...',
'form_item_pid_message' => '请选择导航级别',
'form_item_name' => '导航名称',
'form_item_name_tips' => '默认{:type}名称',
'form_item_name_message' => '导航名称格式2~16个字符',
'form_item_url' => 'url地址',
'form_item_url_placeholder' => 'url地址、以http://或https://开头',
'form_item_url_message' => 'url地址格式有误',
'form_item_value_article_message' => '文章选择有误',
'form_item_value_customview_message' => '自定义页面选择有误',
'form_item_value_goods_category_message'=> '商品分类选择有误',
'form_item_value_design_message' => '页面设计选择有误',
],
// 订单管理
'order' => [
// 页面公共
'page_common' => [
'order_id_empty' => '订单id有误',
'express_choice_tips' => '请选择快递方式',
'payment_choice_tips' => '请选择支付方式',
],
// 页面基础
'form_delivery_title' => '发货操作',
'form_payment_title' => '支付操作',
'form_item_take' => '取货码',
'form_item_take_message' => '请填写4位数取货码',
'form_item_express_number' => '快递单号',
'form_item_express_number_message' => '请填写快递单号',
// 地址
'detail_user_address_title' => '收货地址',
'detail_user_address_name' => '收件人',
'detail_user_address_tel' => '收件电话',
'detail_user_address_value' => '详细地址',
'detail_user_address_idcard' => '身份证信息',
'detail_user_address_idcard_name' => '姓名',
'detail_user_address_idcard_number' => '姓名',
'detail_user_address_idcard_pic' => '照片',
'detail_take_address_title' => '取货地址',
'detail_take_address_contact' => '联系信息',
'detail_take_address_value' => '详细地址',
'detail_fictitious_title' => '密钥信息',
// 订单售后
'detail_aftersale_status' => '状态',
'detail_aftersale_type' => '类型',
'detail_aftersale_price' => '金额',
'detail_aftersale_number' => '数量',
'detail_aftersale_reason' => '原因',
// 商品
'detail_goods_title' => '订单商品',
'detail_payment_amount_less_tips' => '请注意、该订单支付金额小于总价金额',
'detail_no_payment_tips' => '请注意、该订单还未支付',
],
// 订单售后
'orderaftersale' => [
'form_audit_title' => '审核操作',
'form_refuse_title' => '拒绝操作',
'form_user_info_title' => '用户信息',
'form_apply_info_title' => '申请信息',
'forn_apply_info_type' => '类型',
'forn_apply_info_price' => '金额',
'forn_apply_info_number' => '数量',
'forn_apply_info_reason' => '原因',
'forn_apply_info_msg' => '说明',
'form_item_refundment' => '退款方式',
'form_item_refundment_message' => '请选择退款方式',
'form_item_refuse_reason' => '拒绝原因',
'form_item_refuse_reason_message' => '拒绝原因格式2~230个字符',
],
// 支付方式
'payment' => [
'base_nav_title' => '支付方式',
'upload_top_list_tips' => [
[
'name' => '1. 类名必须于文件名一致(去除 .php ),如 Alipay.php 则取 Alipay'
],
[
'name' => '2. 类必须定义的方法',
'item' => [
'2.1. Config 配置方法',
'2.2. Pay 支付方法',
'2.3. Respond 回调方法',
'2.4. Notify 异步回调方法可选、未定义则调用Respond方法',
'2.5. Refund 退款方法(可选、未定义则不能发起原路退款)',
],
],
[
'name' => '3. 可自定义输出内容方法',
'item' => [
'3.1. SuccessReturn 支付成功(可选)',
'3.2. ErrorReturn 支付失败(可选)',
],
]
],
'upload_top_tips_ps' => 'PS以上条件不满足则无法查看插件将插件放入.zip压缩包中上传、支持一个压缩中包含多个支付插件',
// 表单
'form_item_name' => '名称',
'form_item_name_message' => '名称格式2~30个字符',
'form_item_apply_terminal' => '适用终端',
'form_item_apply_terminal_message' => '至少选择一个适用终端',
'form_item_logo' => 'LOGO',
'form_item_is_open_user' => '用户开放',
],
// 快递
'express' => [
'base_nav_title' => '快递',
@ -554,8 +787,206 @@ return [
'form_item_is_need_login' => '是否需要登录',
],
// 支付日志
'paylog' => [
'pay_request_title' => '支付请求日志',
],
// 支付请求日志
'payrequestlog' => [
'base_nav_title' => '支付请求日志',
],
// 插件调用
'plugins' => [
'back_to_plugins_admin' => '返回到应用管理 >>'
],
// 插件管理
'pluginsadmin' => [
// 页面公共
'page_common' => [
'not_enable_tips' => '请先点击勾勾启用',
'save_no_data_tips' => '没有可保存的插件数据',
],
// 基础导航
'base_nav_title' => '应用',
'base_nav_list' => [
['name' => '应用管理', 'type' => 'index'],
['name' => '上传应用', 'type' => 'upload'],
],
'base_nav_more_plugins_download_name' => '更多插件下载',
// 基础页面
'base_search_input_placeholder' => '请输入名称/描述',
'base_top_tips_one' => '列表排序方式[ 自定义排序 -> 最早安装 ]',
'base_top_tips_two' => '可点击拖动图标按钮调整插件调用和展示顺序',
'base_open_sort_title' => '开启排序',
'data_list_author_title' => '作者',
'data_list_author_url_title' => '主页',
'data_list_version_title' => '版本',
'uninstall_confirm_tips' => '卸载可能会丢失插件基础配置数据不可恢复、确认操作吗?',
'not_install_divide_title' => '以下插件未安装',
'delete_plugins_text' => '1. 仅删除应用',
'delete_plugins_text_tips' => '(仅删除应用代码,保留应用数据)',
'delete_plugins_data_text' => '2. 删除应用并删除数据',
'delete_plugins_data_text_tips' => '(将删除应用代码和应用数据)',
'delete_plugins_ps_tips' => 'PS以下操作后均不可恢复请谨慎操作',
'delete_plugins_button_name' => '仅删除应用',
'delete_plugins_data_button_name' => '删除应用和数据',
'cancel_delete_plugins_button_name' => '再考虑一下',
'more_plugins_store_to_text' => '去应用商店挑选更多插件丰富站点 >>',
'no_data_store_to_text' => '到应用商店挑选插件丰富站点 >>',
'plugins_no_data_tips' => '还没有相关应用',
// 表单
'form_item_upload_tips' => '上传一个zip压缩格式的应用安装包',
'form_create_error_tips' => '请重新填写!',
'form_create_first_step_button_name' => '下一步',
'form_item_plugins' => '应用唯一标记',
'form_item_plugins_tips' => '以数字、字母小写、下划线',
'form_item_plugins_message' => '应用唯一标记格式2~60个字符',
'form_item_logo' => 'LOGO',
'form_item_logo_tips' => '建议600*600px',
'form_item_name' => '名称',
'form_item_name_message' => '名称格式2~30个字符',
'form_item_author' => '作者',
'form_item_author_message' => '作者格式2~30个字符',
'form_item_author_url' => '作者主页',
'form_item_author_url_tips' => '以http://或https://开头',
'form_item_author_url_message' => '请填写作者主页',
'form_item_version' => '版本',
'form_item_version_tips' => '主版本.次版本号.修订号每个段不超过6位如 1.0.0',
'form_item_version_message' => '版本格式有误',
'form_item_desc' => '描述',
'form_item_desc_message' => '描述内容格式2~60个字符',
'form_item_apply_terminal' => '适用终端',
'form_item_apply_terminal_message' => '至少选择一个适用终端',
'form_item_apply_version' => '适用系统版本',
'form_item_apply_version_message' => '至少选择一个适用系统版本',
'form_item_is_home' => '是否有前端入口',
'form_item_is_home_tips' => '前端独立页面入口',
],
// 安装页面
'packageinstall' => [
'back_admin_title' => '返回后台',
'get_loading_tips' => '正在获取中...',
],
// 角色管理
'role' => [
'base_nav_title' => '角色',
'admin_not_modify_tips' => '超级管理员默认拥有所有权限,不可更改。',
// 表单
'form_item_name' => '角色名称',
'form_item_name_message' => '角色名称格式2~16个字符',
'form_item_menu' => '菜单权限',
'form_item_menu_no_data_tips' => '无菜单数据',
'form_item_plugins' => '插件权限',
'form_item_plugins_tips' => '插件还需在当前菜单权限中勾选[ 应用中心 -> 应用管理+应用调用管理 ]权限',
'form_item_plugins_no_data_tips' => '无插件数据',
],
// 权限管理
'power' => [
'base_nav_title' => '权限',
'top_tips_list' => [
'1. 非专业技术人员请勿操作该页面数据、操作失误可能会导致权限菜单错乱。',
'2. 权限菜单分为[ 使用、操作 ]两种类型,使用菜单一般开启显示,操作菜单必须隐藏。',
'3. 如果出现权限菜单错乱,可以重新覆盖[ '.MyConfig('database.connections.mysql.prefix').'power ]数据表的数据恢复。',
'4. [ 超级管理员、admin账户 ]默认拥有所有权限,不可更改。',
],
'content_top_tips_list' => [
'1. 填写[ 控制器名称 和 方法名称 ]需要对应创建相应的控制器和方法的定义',
'2. 控制器文件位置[ app/admin/controller ]、该操作仅开发人员使用',
'3. 控制器名称/方法名称 与 自定义url地址、两者必须填写一个',
],
// 表单
'form_item_pid' => '栏目级别',
'form_item_pid_placeholder' => '一级栏目...',
'form_item_pid_message' => '栏目级别选择错误',
'form_item_name' => '权限名称',
'form_item_name_message' => '权限名称格式2~16个字符',
'form_item_control' => '控制器名称',
'form_item_control_message' => '控制器名格式1~30个字符之间必须以字母开始可以是字母数字下划线',
'form_item_action' => '方法名称',
'form_item_action_message' => '法名格式1~30个字符之间必须以字母开始可以是字母数字下划线',
'form_item_url' => '自定义url地址',
'form_item_url_message' => '自定义url地址、以http://或https://开头',
'form_item_icon' => '图标class',
'form_item_icon_message' => '图标格式最多30个字符',
'form_item_icon_tips_list' => [
'1. 参考 http://www.iconfont.cn/ 将icon放到 [ /static/admin/default/css/iconfontmenu.css ] 文件中',
'2. 也可以直接使用框架自带的icon、参考 [ http://amazeui.shopxo.net/css/icon/ ]',
'3. 也可以自己使用插件钩子引入自定义的icon图标的css文件然后使用定义好的icon',
],
],
// 快捷导航
'quicknav' => [
'base_nav_title' => '快捷导航',
// 表单
'form_item_name' => '名称',
'form_item_name_message' => '名称格式2~60个字符',
'form_item_images_url' => '导航图标',
],
// 地区管理
'region' => [
'base_nav_title' => '地区',
// 表单
'form_item_id' => '唯一编号',
'form_item_id_tips' => [
'1. 留空则系统自动生成',
'2. 不要随意修改、避免数据错乱',
],
'form_item_id_message' => '请输入唯一编号',
'form_item_name' => '名称',
'form_item_name_message' => '名称格式2~16个字符',
'form_item_lng' => '经度',
'form_item_lng_message' => '请填写经度',
'form_item_lat' => '纬度',
'form_item_lat_message' => '请填写纬度',
'form_item_letters' => '首字母',
'form_item_letters_message' => '请填写首字母',
],
// 筛选价格
'screeningprice' => [
'base_nav_title' => '筛选价格',
'top_tips_list' => [
'最小价格0 - 最大价格100 则是小于100',
'最小价格1000 - 最大价格0 则是大于1000',
'最小价格100 - 最大价格500 则是大于等于100并且小于500',
],
// 表单
'form_item_name' => '名称',
'form_item_name_message' => '名称格式2~16个字符',
'form_item_min_price' => '最小价格',
'form_item_min_price_message' => '最小价格有误',
'form_item_max_price' => '最大价格',
'form_item_max_price_message' => '最大价格有误',
],
// 公共
'common' => [
// 公共
'admin_browser_title' => '后台管理系统',
'remove_cache_title' => '清除缓存',
'user_status_title' => '用户状态',
'user_status_message' => '请选择用户状态',
// 商店绑定
'store_check_update_name' => '检查更新',
'store_bind_accounts_name' => '绑定ShopXO商店账户',
'store_bind_accounts_tips' => '绑定ShopXO应用商店帐号、获取插件最新版本信息、在线安装及更新',
'store_bind_authorized_subject_name' => '授权主体',
'store_bind_form_accounts' => '账号',
'store_bind_form_accounts_placeholder' => '用户名/手机/邮箱',
'store_bind_form_accounts_message' => '账号格式1~30个字符',
'store_bind_form_password' => '密码',
'store_bind_form_password_placeholder' => '登录密码',
'store_bind_form_password_message' => '登录密码格式6~30个字符',
'store_bind_form_regster_name' => '未有账号,去注册',
'store_bind_form_tips' => '一个账号支持绑定多台ShopXO商城',
// 商品参数
'form_goods_params_config_error_tips' => '商品参数配置信息',
'form_goods_params_copy_no_tips' => '请先粘贴配置信息',

View File

@ -4,28 +4,61 @@
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form form-validation am-form-full-screen am-form-popup-fixed" action="{{:MyUrl('admin/admin/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/admin/index', $params)}}">
<form class="am-form form-validation am-form-pure am-form-full-screen am-form-popup-fixed" action="{{:MyUrl('admin/admin/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/admin/index', $params)}}">
<legend>
<span class="am-text-default">{{:MyLang('admin.base_nav_title')}}{{if empty($data['id'])}}{{:MyLang('created_title')}}{{else /}}{{:MyLang('edit_title')}}{{/if}}</span>
<a href="{{:MyUrl('admin/admin/index', $params)}}" class="am-fr am-text-sm am-margin-top-sm am-icon-mail-reply"> {{:MyLang('retreat_title')}}</a>
</legend>
<div class="am-form-group">
<label>{{:MyLang('admin.form_item_username')}}{{if empty($data)}}<span class="am-form-group-label-tips-must">*</span><span class="am-form-group-label-tips">{{:MyLang('admin.form_item_username_created_tips')}}</span>{{else /}}<span class="am-form-group-label-tips">{{:MyLang('admin.form_item_username_edit_tips')}}</span>{{/if}}</label>
<input type="text" name="username" placeholder="{{:MyLang('admin.form_item_username_message')}}" pattern="{{:MyConst('common_regex_username')}}" data-validation-message="{{:MyLang('admin.form_item_username_message')}}" class="am-radius" {{if !empty($data['username'])}}value="{{$data.username}}" disabled{{/if}} required />
</div>
<div class="am-form-group">
<label>{{:MyLang('admin.form_item_password')}}{{if empty($data)}}<span class="am-form-group-label-tips-must">*</span>{{else /}}<span class="am-form-group-label-tips">{{:MyLang('admin.form_item_password_edit_tips')}}</span>{{/if}}</label>
<input type="password" name="login_pwd" placeholder="{{:MyLang('admin.form_item_password')}}" pattern="{{:MyConst('common_regex_pwd')}}" data-validation-message="{{:MyLang('admin.form_item_password_message')}}" class="am-radius" autocomplete="off" {{if empty($data)}}required{{/if}} />
</div>
<div class="am-form-group">
<label>{{:MyLang('admin.form_item_mobile')}}</label>
<input type="text" name="mobile" placeholder="{{:MyLang('admin.form_item_mobile')}}" pattern="{{:MyConst('common_regex_mobile')}}" data-validation-message="{{:MyLang('admin.form_item_mobile_message')}}" class="am-radius" {{if !empty($data['mobile'])}}value="{{$data.mobile}}"{{/if}} />
</div>
<div class="am-form-group">
<label>{{:MyLang('admin.form_item_email')}}</label>
<input type="email" name="email" placeholder="{{:MyLang('admin.form_item_email')}}" maxlength="60" data-validation-message="{{:MyLang('admin.form_item_email_message')}}" class="am-radius" value="{{if !empty($data['email'])}}{{$data.email}}{{/if}}" />
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('admin.form_item_username')}}{{if empty($data)}}<span class="am-form-group-label-tips-must">*</span>{{/if}}{{if is_array(MyLang('goods.form_item_give_integral_tips'))}}<a href="javascript:;" class="am-icon-question-circle am-text-warning am-margin-left-sm" data-am-popover="{content: '{{if empty($data)}}{{:MyLang('admin.form_item_username_created_tips')}}{{else /}}{{:MyLang('admin.form_item_username_edit_tips')}}{{/if}}', trigger: 'hover focus', theme: 'sm'}"></a>{{/if}}</label>
<input type="text" name="username" placeholder="{{:MyLang('admin.form_item_username_message')}}" pattern="{{:MyConst('common_regex_username')}}" data-validation-message="{{:MyLang('admin.form_item_username_message')}}" class="am-radius" {{if !empty($data['username'])}}value="{{$data.username}}" disabled{{/if}} required />
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('admin.form_item_password')}}{{if empty($data)}}<span class="am-form-group-label-tips-must">*</span>{{else /}}<span class="am-form-group-label-tips">{{:MyLang('admin.form_item_password_edit_tips')}}</span>{{/if}}</label>
<input type="password" name="login_pwd" placeholder="{{:MyLang('admin.form_item_password')}}" pattern="{{:MyConst('common_regex_pwd')}}" data-validation-message="{{:MyLang('admin.form_item_password_message')}}" class="am-radius" autocomplete="off" {{if empty($data)}}required{{/if}} />
</div>
</div>
</div>
{{include file="lib/gender" /}}
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('admin.form_item_mobile')}}</label>
<input type="text" name="mobile" placeholder="{{:MyLang('admin.form_item_mobile')}}" pattern="{{:MyConst('common_regex_mobile')}}" data-validation-message="{{:MyLang('admin.form_item_mobile_message')}}" class="am-radius" {{if !empty($data['mobile'])}}value="{{$data.mobile}}"{{/if}} />
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('admin.form_item_email')}}</label>
<input type="email" name="email" placeholder="{{:MyLang('admin.form_item_email')}}" maxlength="60" data-validation-message="{{:MyLang('admin.form_item_email_message')}}" class="am-radius" value="{{if !empty($data['email'])}}{{$data.email}}{{/if}}" />
</div>
</div>
</div>
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
{{include file="lib/gender" /}}
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('admin.form_item_status')}}<span class="am-form-group-label-tips-must">*</span></label>
<select name="status" class="am-radius chosen-select" data-validation-message="{{:MyLang('admin.form_item_status_message')}}" required>
{{foreach :MyLang('common_admin_status_list') as $v}}
<option value="{{$v.value}}" {{if isset($data['status']) and $data['status'] eq $v['value']}}selected{{else /}}{{if !isset($data['status']) and isset($v['checked']) and $v['checked'] eq true}}selected{{/if}}{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
</div>
</div>
</div>
{{if !isset($data['id']) or $admin['id'] neq $data['id']}}
<div class="am-form-group">
@ -39,15 +72,6 @@
</div>
{{/if}}
<div class="am-form-group">
<label>{{:MyLang('admin.form_item_status')}}<span class="am-form-group-label-tips-must">*</span></label>
<select name="status" class="am-radius chosen-select" data-validation-message="{{:MyLang('admin.form_item_status_message')}}" required>
{{foreach :MyLang('common_admin_status_list') as $v}}
<option value="{{$v.value}}" {{if isset($data['status']) and $data['status'] eq $v['value']}}selected{{else /}}{{if !isset($data['status']) and isset($v['checked']) and $v['checked'] eq true}}selected{{/if}}{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
</div>
<!-- 插件扩展数据 start -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
<div class="plugins-tag">

View File

@ -1,9 +1,11 @@
<ul class="am-nav am-nav-pills table-nav second-nav">
{{foreach $nav_data as $v}}
<li {{if $nav_type eq $v['type']}}class="am-active"{{/if}} data-type="{{$v.type}}">
<a href="{{:MyUrl('admin/agreement/index', ['nav_type'=>$v['type']])}}">{{$v.name}}</a>
</li>
{{/foreach}}
{{if !empty($nav_data)}}
{{foreach $nav_data as $v}}
<li {{if $nav_type eq $v['type']}}class="am-active"{{/if}} data-type="{{$v.type}}">
<a href="{{:MyUrl('admin/agreement/index', ['nav_type'=>$v['type']])}}">{{$v.name}}</a>
</li>
{{/foreach}}
{{/if}}
</ul>
<div class="am-alert am-margin-horizontal-sm am-margin-bottom-0" data-am-alert>
<button type="button" class="am-close">&times;</button>

View File

@ -54,15 +54,8 @@
</ul>
<div class="plug-file-upload-submit" data-view-tag="ul.slide-images_url-images-view">+ {{:MyLang('form_upload_images_title')}}</div>
</div>
<div class="am-form-group">
<label>{{:MyLang('form_sort_title')}}</label>
<input type="number" placeholder="{{:MyLang('form_sort_title')}}" name="sort" min="0" max="255" data-validation-message="{{:MyLang('form_sort_message')}}" class="am-radius" value="{{if isset($data['sort'])}}{{$data.sort}}{{else /}}0{{/if}}" required />
</div>
<div class="am-form-group">
<label class="am-block">{{:MyLang('form_is_enable_title')}}</label>
<input name="is_enable" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if !empty($data) and $data['is_enable'] eq 1}} checked="true"{{/if}} />
</div>
{{include file="lib/sort" /}}
{{include file="lib/is_enable" /}}
<div class="am-form-group am-form-group-refreshing am-margin-top-lg am-padding-left-0">
<input type="hidden" name="id" {{if !empty($data)}} value="{{$data.id}}"{{/if}} />
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'{{:MyLang('processing_tips')}}'}">{{:MyLang('save_title')}}</button>

View File

@ -56,14 +56,8 @@
<img src="{{$attachment_host}}/static/common/images/colorpicker.png" />
</button>
</div>
<div class="am-form-group">
<label>{{:MyLang('form_sort_title')}}</label>
<input type="number" placeholder="{{:MyLang('form_sort_title')}}" name="sort" min="0" max="255" data-validation-message="{{:MyLang('form_sort_message')}}" class="am-radius" value="{{if isset($data['sort'])}}{{$data.sort}}{{else /}}0{{/if}}" required />
</div>
<div class="am-form-group">
<label class="am-block">{{:MyLang('form_is_enable_title')}}</label>
<input name="is_enable" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if !empty($data) and $data['is_enable'] eq 1}} checked="true"{{/if}} />
</div>
{{include file="lib/sort" /}}
{{include file="lib/is_enable" /}}
<div class="am-form-group">
<label class="am-block">{{:MyLang('apphomenav.form_item_is_need_login')}}</label>
<input name="is_need_login" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if !empty($data) and $data['is_need_login'] eq 1}} checked="true"{{/if}} />

View File

@ -1,8 +1,8 @@
<ul class="am-nav am-nav-pills table-nav">
{{if !empty($base_nav)}}
{{foreach $base_nav as $v}}
<li {{if $view_type eq $v['view_type']}}class="am-active"{{/if}}>
<a href="{{:MyUrl('admin/appmini/index', ['nav_type'=>$nav_type, 'view_type'=>$v['view_type']])}}">{{$v.name}}</a>
<li {{if $view_type eq $v['type']}}class="am-active"{{/if}}>
<a href="{{:MyUrl('admin/appmini/index', ['nav_type'=>$nav_type, 'view_type'=>$v['type']])}}">{{$v.name}}</a>
</li>
{{/foreach}}
{{/if}}

View File

@ -47,10 +47,7 @@
<div class="am-u-md-6 am-padding-horizontal-0">
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label class="am-block">{{:MyLang('form_is_enable_title')}}</label>
<input name="is_enable" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if isset($data['is_enable']) and $data['is_enable'] eq 1}}checked="true"{{/if}} />
</div>
{{include file="lib/is_enable" /}}
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">

View File

@ -23,11 +23,8 @@
<label>{{:MyLang('articlecategory.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="{{:MyLang('articlecategory.form_item_name_message')}}" name="name" minlength="2" maxlength="16" data-validation-message="{{:MyLang('articlecategory.form_item_name_message')}}" class="am-radius" required />
</div>
<div class="am-form-group">
<label>{{:MyLang('form_sort_title')}}</label>
<input type="number" placeholder="{{:MyLang('form_sort_title')}}" name="sort" min="0" max="255" data-validation-message="{{:MyLang('form_sort_message')}}" class="am-radius" value="0" required />
</div>
{{include file="lib/enable" /}}
{{include file="lib/sort" /}}
{{include file="lib/is_enable" /}}
<div class="am-form-popup-submit">
<input type="hidden" name="id" />
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'{{:MyLang('processing_tips')}}'}">{{:MyLang('save_title')}}</button>

View File

@ -62,16 +62,10 @@
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-cf">
<div class="am-u-md-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('form_sort_title')}}</label>
<input type="number" placeholder="{{:MyLang('form_sort_title')}}" name="sort" min="0" max="255" data-validation-message="{{:MyLang('form_sort_message')}}" class="am-radius" value="{{if isset($data['sort'])}}{{$data.sort}}{{else /}}0{{/if}}" required />
</div>
{{include file="lib/sort" /}}
</div>
<div class="am-u-md-6 am-padding-horizontal-0">
<div class="am-form-group">
<label class="am-block">{{:MyLang('form_is_enable_title')}}</label>
<input name="is_enable" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_enable']) and $data['is_enable'] eq 1) or !isset($data['is_enable'])}}checked="true"{{/if}} />
</div>
{{include file="lib/is_enable" /}}
</div>
</div>
</div>

View File

@ -23,11 +23,8 @@
<label>{{:MyLang('brandcategory.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="{{:MyLang('brandcategory.form_item_name_message')}}" name="name" minlength="2" maxlength="16" data-validation-message="{{:MyLang('brandcategory.form_item_name_message')}}" class="am-radius" required />
</div>
<div class="am-form-group">
<label>{{:MyLang('form_sort_title')}}</label>
<input type="number" placeholder="{{:MyLang('form_sort_title')}}" name="sort" min="0" max="255" data-validation-message="{{:MyLang('form_sort_message')}}" class="am-radius" value="0" required />
</div>
{{include file="lib/enable" /}}
{{include file="lib/sort" /}}
{{include file="lib/is_enable" /}}
<div class="am-form-popup-submit">
<input type="hidden" name="id" />
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'{{:MyLang('processing_tips')}}'}">{{:MyLang('save_title')}}</button>

View File

@ -14,7 +14,7 @@
<div class="am-form-group">
<label>{{$data.admin_excel_charset.name}}<span class="am-form-group-label-tips">{{$data.admin_excel_charset.describe}}</span></label>
<select name="{{$data.admin_excel_charset.only_tag}}" class="am-radius chosen-select" data-validation-message="{{$data.admin_excel_charset.error_tips}}" required>
{{foreach $common_excel_charset_list as $v}}
{{foreach :MyLang('common_excel_charset_list') as $v}}
<option value="{{$v.id}}" {{if isset($data['admin_excel_charset']['value']) and $data['admin_excel_charset']['value'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
@ -22,7 +22,7 @@
<div class="am-form-group">
<label>{{$data.common_excel_export_type.name}}<span class="am-form-group-label-tips">{{$data.common_excel_export_type.describe}}</span></label>
<select name="{{$data.common_excel_export_type.only_tag}}" class="am-radius chosen-select" data-validation-message="{{$data.common_excel_export_type.error_tips}}" required>
{{foreach $common_excel_export_type_list as $v}}
{{foreach :MyLang('common_excel_export_type_list') as $v}}
<option value="{{$v.id}}" {{if isset($data['common_excel_export_type']['value']) and $data['common_excel_export_type']['value'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
@ -47,7 +47,7 @@
<div class="am-form-group">
<label>{{$data.admin_login_info_bg_images_rand.name}}<span class="am-form-group-label-tips">{{$data.admin_login_info_bg_images_rand.describe}}</span></label>
<select name="{{$data.admin_login_info_bg_images_rand.only_tag}}" class="am-radius chosen-select" data-validation-message="{{$data.admin_login_info_bg_images_rand.error_tips}}" required>
{{foreach $common_is_enable_list as $v}}
{{foreach :MyLang('common_is_text_list') as $v}}
<option value="{{$v.id}}" {{if isset($data['admin_login_info_bg_images_rand']['value']) and $data['admin_login_info_bg_images_rand']['value'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
@ -60,7 +60,7 @@
<div class="am-form-group">
<label>{{$data.admin_login_type.name}}<span class="am-form-group-label-tips">{{$data.admin_login_type.describe}}</span></label>
<select name="{{$data.admin_login_type.only_tag}}" multiple="multiple" class="am-radius chosen-select" data-placeholder="{{$data.admin_login_type.name}}" data-validation-message="{{$data.admin_login_type.error_tips}}" required>
{{foreach $common_login_type_list as $v}}
{{foreach :MyLang('common_login_type_list') as $v}}
<option value="{{$v.value}}" {{if isset($data['admin_login_type']['value']) and in_array($v['value'], $data['admin_login_type']['value'])}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
@ -68,7 +68,7 @@
<div class="am-form-group">
<label>{{$data.admin_login_img_verify_state.name}}<span class="am-form-group-label-tips">{{$data.admin_login_img_verify_state.describe}}</span></label>
<select name="{{$data.admin_login_img_verify_state.only_tag}}" class="am-radius chosen-select" data-validation-message="{{$data.admin_login_img_verify_state.error_tips}}" required>
{{foreach $common_close_open_list as $v}}
{{foreach :MyLang('common_close_open_list') as $v}}
<option value="{{$v.value}}" {{if isset($data['admin_login_img_verify_state']['value']) and $data['admin_login_img_verify_state']['value'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
@ -98,7 +98,7 @@
<div class="am-form-group">
<label>{{$data.common_map_type.name}}<span class="am-form-group-label-tips">{{$data.common_map_type.describe}}</span></label>
<select name="{{$data.common_map_type.only_tag}}" class="am-radius chosen-select" data-validation-message="{{$data.common_map_type.error_tips}}" required>
{{foreach $common_map_type_list as $v}}
{{foreach :MyLang('common_map_type_list') as $v}}
<option value="{{$v.id}}" {{if isset($data['common_map_type']['value']) and $data['common_map_type']['value'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
@ -110,7 +110,7 @@
<label>{{$data.common_baidu_map_ak.name}}<span class="am-form-group-label-tips">{{$data.common_baidu_map_ak.describe}}</span></label>
<input type="text" name="{{$data.common_baidu_map_ak.only_tag}}" placeholder="{{$data.common_baidu_map_ak.describe}}" data-validation-message="{{$data.common_baidu_map_ak.error_tips}}" class="am-radius" {{if !empty($data)}}value="{{$data.common_baidu_map_ak.value}}"{{/if}} />
<div class="am-alert am-alert-warning">
{{:MyLang('config.apply_map_baidu_name')}} {{if !empty($site_store_links) and !empty($site_store_links['baidu_map_course'])}}<a href="{{$site_store_links.baidu_map_course}}" target="_blank" class="am-margin-left-sm">{{:MyLang('config.view_config_course_name')}} <i class="am-icon-external-link"></i></a>{{/if}}
{{:MyLang('config.apply_map_baidu_name')}} {{if !empty($site_store_links) and !empty($site_store_links['baidu_map_course'])}}<a href="{{$site_store_links.baidu_map_course}}" target="_blank" class="am-margin-left-sm">{{:MyLang('view_config_course_name')}} <i class="am-icon-external-link"></i></a>{{/if}}
</div>
</div>
<div class="am-form-group">
@ -118,21 +118,21 @@
<input type="text" name="{{$data.common_amap_map_ak.only_tag}}" placeholder="{{$data.common_amap_map_ak.describe}}" data-validation-message="{{$data.common_amap_map_ak.error_tips}}" class="am-radius" {{if !empty($data)}}value="{{$data.common_amap_map_ak.value}}"{{/if}} />
<input type="text" name="{{$data.common_amap_map_safety_ak.only_tag}}" placeholder="{{$data.common_amap_map_safety_ak.describe}}" data-validation-message="{{$data.common_amap_map_safety_ak.error_tips}}" class="am-radius am-margin-top-xs" {{if !empty($data)}}value="{{$data.common_amap_map_safety_ak.value}}"{{/if}} />
<div class="am-alert am-alert-warning">
{{:MyLang('config.apply_map_amap_name')}} {{if !empty($site_store_links) and !empty($site_store_links['amap_map_course'])}}<a href="{{$site_store_links.amap_map_course}}" target="_blank" class="am-margin-left-sm">{{:MyLang('config.view_config_course_name')}} <i class="am-icon-external-link"></i></a>{{/if}}
{{:MyLang('config.apply_map_amap_name')}} {{if !empty($site_store_links) and !empty($site_store_links['amap_map_course'])}}<a href="{{$site_store_links.amap_map_course}}" target="_blank" class="am-margin-left-sm">{{:MyLang('view_config_course_name')}} <i class="am-icon-external-link"></i></a>{{/if}}
</div>
</div>
<div class="am-form-group">
<label>{{$data.common_tencent_map_ak.name}}<span class="am-form-group-label-tips">{{$data.common_tencent_map_ak.describe}}</span></label>
<input type="text" name="{{$data.common_tencent_map_ak.only_tag}}" placeholder="{{$data.common_tencent_map_ak.describe}}" data-validation-message="{{$data.common_tencent_map_ak.error_tips}}" class="am-radius" {{if !empty($data)}}value="{{$data.common_tencent_map_ak.value}}"{{/if}} />
<div class="am-alert am-alert-warning">
{{:MyLang('config.apply_map_tencent_name')}} {{if !empty($site_store_links) and !empty($site_store_links['tencent_map_course'])}}<a href="{{$site_store_links.tencent_map_course}}" target="_blank" class="am-margin-left-sm">{{:MyLang('config.view_config_course_name')}} <i class="am-icon-external-link"></i></a>{{/if}}
{{:MyLang('config.apply_map_tencent_name')}} {{if !empty($site_store_links) and !empty($site_store_links['tencent_map_course'])}}<a href="{{$site_store_links.tencent_map_course}}" target="_blank" class="am-margin-left-sm">{{:MyLang('view_config_course_name')}} <i class="am-icon-external-link"></i></a>{{/if}}
</div>
</div>
<div class="am-form-group">
<label>{{$data.common_tianditu_map_ak.name}}<span class="am-form-group-label-tips">{{$data.common_tianditu_map_ak.describe}}</span></label>
<input type="text" name="{{$data.common_tianditu_map_ak.only_tag}}" placeholder="{{$data.common_tianditu_map_ak.describe}}" data-validation-message="{{$data.common_tianditu_map_ak.error_tips}}" class="am-radius" {{if !empty($data)}}value="{{$data.common_tianditu_map_ak.value}}"{{/if}} />
<div class="am-alert am-alert-warning">
{{:MyLang('config.apply_map_tianditu_name')}} {{if !empty($site_store_links) and !empty($site_store_links['tianditu_map_course'])}}<a href="{{$site_store_links.tianditu_map_course}}" target="_blank" class="am-margin-left-sm">{{:MyLang('config.view_config_course_name')}} <i class="am-icon-external-link"></i></a>{{/if}}
{{:MyLang('config.apply_map_tianditu_name')}} {{if !empty($site_store_links) and !empty($site_store_links['tianditu_map_course'])}}<a href="{{$site_store_links.tianditu_map_course}}" target="_blank" class="am-margin-left-sm">{{:MyLang('view_config_course_name')}} <i class="am-icon-external-link"></i></a>{{/if}}
</div>
</div>
</div>
@ -147,7 +147,7 @@
<div class="am-form-group">
<label>{{$data.common_is_https_connect_store.name}}<span class="am-form-group-label-tips">{{$data.common_is_https_connect_store.describe}}</span></label>
<select name="{{$data.common_is_https_connect_store.only_tag}}" class="am-radius chosen-select" data-validation-message="{{$data.common_is_https_connect_store.error_tips}}" required>
{{foreach $common_is_text_list as $v}}
{{foreach :MyLang('common_is_text_list') as $v}}
<option value="{{$v.id}}" {{if isset($data['common_is_https_connect_store']['value']) and $data['common_is_https_connect_store']['value'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>

View File

@ -17,32 +17,20 @@
<div class="am-u-md-6 am-padding-horizontal-0">
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label class="am-block">{{:MyLang('form_is_enable_title')}}</label>
<input name="is_enable" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_enable']) and $data['is_enable'] eq 1) or !isset($data['is_enable'])}}checked="true"{{/if}} />
</div>
{{include file="lib/is_enable" /}}
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label class="am-block">{{:MyLang('customview.form_item_is_header')}}</label>
<input name="is_header" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_header']) and $data['is_header'] eq 1) or !isset($data['is_header'])}}checked="true"{{/if}} />
</div>
{{include file="lib/is_header" /}}
</div>
</div>
</div>
<div class="am-u-md-6 am-padding-horizontal-0">
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label class="am-block">{{:MyLang('customview.form_item_is_footer')}}</label>
<input name="is_footer" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_footer']) and $data['is_footer'] eq 1) or !isset($data['is_footer'])}}checked="true"{{/if}} />
</div>
{{include file="lib/is_footer" /}}
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label class="am-block">{{:MyLang('customview.form_item_is_full_screen')}}</label>
<input name="is_full_screen" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_full_screen']) and $data['is_full_screen'] eq 1) or !isset($data['is_full_screen'])}}checked="true"{{/if}} />
</div>
{{include file="lib/is_full_screen" /}}
</div>
</div>
</div>

View File

@ -3,60 +3,51 @@
<div class="am-popup-inner">
<span data-am-modal-close class="am-close am-close-alt am-icon-times"></span>
<div class="am-popup-bd am-padding-0">
<form class="am-form form-validation am-padding-sm" request-type="sync" request-value="FormBackSaveinfoEdit">
<!-- 基础信息 -->
<div class="am-panel am-panel-default">
<div class="am-panel-hd">
<h3 class="am-panel-title">{{:MyLang('form_base_data_title')}}</h3>
</div>
<div class="am-panel-bd am-padding-vertical-xs">
<div class="am-form-group am-form-file">
<label class="am-block">LOGO<span class="am-form-group-label-tips">{{:MyLang('design.form_logo_tips')}}</span></label>
<ul class="plug-file-upload-view shop-logo-images-view" data-form-name="logo" data-max-number="1" data-dialog-type="images">
{{if !empty($data['logo'])}}
<li>
<input type="text" name="logo" value="{{$data.logo}}" data-validation-message="{{:MyLang('form_upload_images_message')}}" />
<img src="{{$data.logo}}" />
<i>×</i>
</li>
{{/if}}
</ul>
<div class="plug-file-upload-submit" data-view-tag="ul.shop-logo-images-view">+ {{:MyLang('form_upload_images_title')}}</div>
<form class="am-form form-validation am-form-pure am-form-full-screen am-form-popup-fixed" request-type="sync" request-value="FormBackSaveinfoEdit">
<div class="am-padding-too-sm am-padding-horizontal-sm">
<!-- 基础信息 -->
<div class="am-panel am-panel-default">
<div class="am-panel-hd">
<h3 class="am-panel-title">{{:MyLang('form_base_data_title')}}</h3>
</div>
<div class="am-panel-bd am-padding-vertical-xs">
<div class="am-form-group am-form-file">
<label class="am-block">LOGO<span class="am-form-group-label-tips">{{:MyLang('design.form_logo_tips')}}</span></label>
<ul class="plug-file-upload-view shop-logo-images-view" data-form-name="logo" data-max-number="1" data-dialog-type="images">
{{if !empty($data['logo'])}}
<li>
<input type="text" name="logo" value="{{$data.logo}}" data-validation-message="{{:MyLang('form_upload_images_message')}}" />
<img src="{{$data.logo}}" />
<i>×</i>
</li>
{{/if}}
</ul>
<div class="plug-file-upload-submit" data-view-tag="ul.shop-logo-images-view">+ {{:MyLang('form_upload_images_title')}}</div>
</div>
<div class="am-form-group">
<label>{{:MyLang('design.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" name="name" placeholder="{{:MyLang('design.form_item_name_message')}}" maxlength="16" data-validation-message="{{:MyLang('design.form_item_name_message')}}" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
</div>
<div class="am-form-group">
<label class="am-block">{{:MyLang('form_is_enable_title')}}</label>
<input name="is_enable" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_enable']) and $data['is_enable'] eq 1) or !isset($data['is_enable'])}}checked="true"{{/if}} />
</div>
<div class="am-form-group">
<label class="am-block">{{:MyLang('design.form_item_is_header')}}</label>
<input name="is_header" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_header']) and $data['is_header'] eq 1) or !isset($data['is_header'])}}checked="true"{{/if}} />
</div>
<div class="am-form-group">
<label class="am-block">{{:MyLang('design.form_item_is_footer')}}</label>
<input name="is_footer" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_footer']) and $data['is_footer'] eq 1) or !isset($data['is_footer'])}}checked="true"{{/if}} />
<div class="am-form-group">
<label>{{:MyLang('design.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" name="name" placeholder="{{:MyLang('design.form_item_name_message')}}" maxlength="16" data-validation-message="{{:MyLang('design.form_item_name_message')}}" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
</div>
{{include file="lib/is_enable" /}}
{{include file="lib/is_header" /}}
{{include file="lib/is_footer" /}}
</div>
</div>
</div>
<!-- SEO -->
<div class="am-panel am-panel-default">
<div class="am-panel-hd">
<h3 class="am-panel-title">{{:MyLang('form_seo_data_title')}}</h3>
</div>
<div class="am-panel-bd am-padding-vertical-xs">
{{include file="lib/seo" /}}
<!-- SEO -->
<div class="am-panel am-panel-default">
<div class="am-panel-hd">
<h3 class="am-panel-title">{{:MyLang('form_seo_data_title')}}</h3>
</div>
<div class="am-panel-bd am-padding-vertical-xs">
{{include file="lib/seo" /}}
</div>
</div>
</div>
<!-- 操作 -->
<div class="am-text-center am-padding-sm am-nbfc">
<div class="am-text-center am-padding-sm am-nbfc am-form-popup-submit">
<input type="hidden" name="id" value="{{if !empty($data['id'])}}{{$data.id}}{{/if}}" />
<button type="button" class="am-btn am-btn-warning am-btn-xs am-radius am-margin-right-lg" data-am-modal-close>
<i class="am-icon-paint-brush"></i>

View File

@ -1,11 +1,13 @@
<ul class="am-nav am-nav-pills table-nav second-nav">
{{foreach $nav_data as $v}}
<li {{if $nav_type eq $v['type']}}class="am-active"{{/if}} data-type="{{$v.type}}">
<a href="{{:MyUrl('admin/email/index', ['type'=>$v['type']])}}">{{$v.name}}</a>
</li>
{{/foreach}}
{{if !empty($nav_data)}}
{{foreach $nav_data as $v}}
<li {{if $nav_type eq $v['type']}}class="am-active"{{/if}} data-type="{{$v.type}}">
<a href="{{:MyUrl('admin/email/index', ['type'=>$v['type']])}}">{{$v.name}}</a>
</li>
{{/foreach}}
{{/if}}
</ul>
<div class="am-alert am-alert-warning am-radius am-margin-bottom-0" data-am-alert>
<button type="button" class="am-close">&times;</button>
<p class="am-text-xs">{{:MyLang('email.top_tips')}} {{if !empty($site_store_links) and !empty($site_store_links['email_set_course'])}}<a href="{{$site_store_links.email_set_course}}" class="am-margin-left-sm" target="_blank">{{:MyLang('email.view_config_course_name')}} <i class="am-icon-external-link"></i></a>{{/if}}</p>
<p class="am-text-xs">{{:MyLang('email.top_tips')}} {{if !empty($site_store_links) and !empty($site_store_links['email_set_course'])}}<a href="{{$site_store_links.email_set_course}}" class="am-margin-left-sm" target="_blank">{{:MyLang('view_config_course_name')}} <i class="am-icon-external-link"></i></a>{{/if}}</p>
</div>

View File

@ -38,11 +38,8 @@
<label>{{:MyLang('express.form_item_website_url')}}</label>
<input type="url" placeholder="{{:MyLang('express.form_item_website_url_placeholder')}}" name="website_url" data-validation-message="{{:MyLang('express.form_item_website_url_message')}}" class="am-radius" {{if !empty($data['website_url'])}} value="{{$data.website_url}}"{{/if}} />
</div>
<div class="am-form-group">
<label>{{:MyLang('form_sort_title')}}</label>
<input type="number" placeholder="{{:MyLang('form_sort_title')}}" name="sort" min="0" max="255" data-validation-message="{{:MyLang('form_sort_message')}}" class="am-radius" value="0" required />
</div>
{{include file="lib/enable" /}}
{{include file="lib/sort" /}}
{{include file="lib/is_enable" /}}
<div class="am-form-popup-submit">
<input type="hidden" name="id" />
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'{{:MyLang('processing_tips')}}'}">{{:MyLang('save_title')}}</button>

View File

@ -84,10 +84,7 @@
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('form_sort_title')}}</label>
<input type="number" placeholder="{{:MyLang('form_sort_title')}}" name="sort" min="0" max="255" data-validation-message="{{:MyLang('form_sort_message')}}" class="am-radius" value="0" required />
</div>
{{include file="lib/sort" /}}
</div>
</div>
@ -95,17 +92,11 @@
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('goodscategory.form_item_is_home_recommended')}}</label>
<div>
{{foreach $common_is_text_list as $v}}
<label class="am-radio-inline am-margin-right-sm">
<input type="radio" name="is_home_recommended" value="{{$v.id}}" data-am-ucheck /> {{$v.name}}
</label>
{{/foreach}}
</div>
<input name="is_home_recommended" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_home_recommended']) and $data['is_home_recommended'] eq 1) or !isset($data['is_home_recommended'])}}checked="true"{{/if}} />
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
{{include file="lib/enable" /}}
{{include file="lib/is_enable" /}}
</div>
</div>

View File

@ -54,10 +54,7 @@
<span class="am-text-warning am-margin-left-sm">{{:MyLang('goodsparamstemplate.form_item_config_list_content_tips')}}</span>
{{include file="public/goodsparamstemplate/table" /}}
</div>
<div class="am-form-group">
<label class="am-block">{{:MyLang('form_is_enable_title')}}</label>
<input name="is_enable" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_enable']) and $data['is_enable'] eq 1) or !isset($data['is_enable'])}}checked="true"{{/if}} />
</div>
{{include file="lib/is_enable" /}}
<!-- 插件扩展数据 start -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}

View File

@ -31,10 +31,7 @@
<label>{{:MyLang('goodsspectemplate.form_item_content')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" name="content" placeholder="{{:MyLang('goodsspectemplate.form_item_content_placeholder')}}" minlength="1" maxlength="1000" data-validation-message="{{:MyLang('goodsspectemplate.form_item_content_message')}}" class="am-radius" {{if !empty($data['content'])}} value="{{$data.content}}"{{/if}} required data-am-tagsinput />
</div>
<div class="am-form-group">
<label class="am-block">{{:MyLang('form_is_enable_title')}}</label>
<input name="is_enable" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_enable']) and $data['is_enable'] eq 1) or !isset($data['is_enable'])}}checked="true"{{/if}} />
</div>
{{include file="lib/is_enable" /}}
<!-- 插件扩展数据 start -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}

View File

@ -33,9 +33,9 @@
{{if !empty($site_store_info) and !empty($site_store_info['user'])}}
<i class="am-icon-user"></i>
<span>{{$site_store_info.user.user_name_view}}</span>
<a href="javascript:;" class="am-margin-left-xs store-accounts-event">修改</a>
<a href="javascript:;" class="am-margin-left-xs store-accounts-event">{{:MyLang('modify_title')}}</a>
{{else /}}
<a href="javascript:;" class="am-margin-left-xs store-accounts-event">绑定ShopXO商店账户</a>
<a href="javascript:;" class="am-margin-left-xs store-accounts-event">{{:MyLang('common.store_bind_accounts_name')}}</a>
<!-- 连接商店错误信息 --->
{{if !empty($site_store_error)}}
<span class="am-text-danger am-margin-left-sm">{{$site_store_error}}</span>
@ -50,13 +50,13 @@
<div class="am-fr am-nbfc right-content">
<!-- VIP授权信息 -->
{{if !empty($site_store_info) and !empty($site_store_info['vip']) and !empty($site_store_info['vip']['auth_view'])}}
<a class="am-icon-diamond vip {{if isset($site_store_info['vip']['status']) and $site_store_info['vip']['status'] eq 1}}vip-active{{/if}}" {{if empty($site_store_info['vip']['go_url'])}}href="javascript:;"{{else /}}href="{{$site_store_info.vip.go_url}}" target="_blank"{{/if}} {{if !empty($site_store_info['vip']['auth_person'])}}data-am-popover="{content: '授权主体{{$site_store_info.vip.auth_person}}', trigger: 'hover focus', theme: 'sm'}"{{/if}}> {{$site_store_info.vip.auth_view}}</a>
<a class="am-icon-diamond vip {{if isset($site_store_info['vip']['status']) and $site_store_info['vip']['status'] eq 1}}vip-active{{/if}}" {{if empty($site_store_info['vip']['go_url'])}}href="javascript:;"{{else /}}href="{{$site_store_info.vip.go_url}}" target="_blank"{{/if}} {{if !empty($site_store_info['vip']['auth_person'])}}data-am-popover="{content: '{{:MyLang('common.store_bind_authorized_subject_name')}}{{$site_store_info.vip.auth_person}}', trigger: 'hover focus', theme: 'sm'}"{{/if}}> {{$site_store_info.vip.auth_view}}</a>
{{/if}}
<!-- 右侧版本信息及更新检查 -->
<span class="right-base">
<a {{if !empty($site_store_links) and !empty($site_store_links['system_update_log'])}}href="{{$site_store_links.system_update_log}}" target="_blank"{{else /}}href="javascript:;"{{/if}} class="am-margin-left-xs">{{$Think.APPLICATION_VERSION}}</a>
<a href="javascript:;" class="am-margin-left-sm inspect-upgrade-submit" data-url="{{:MyUrl('admin/index/inspectupgrade')}}">检查更新{{if !empty($site_store_info) and !empty($site_store_info['upgrade']) and !empty($site_store_info['upgrade']['version_old']) and $site_store_info['upgrade']['version_old'] eq $Think.APPLICATION_VERSION}}<i></i>{{/if}}</a>
<a href="javascript:;" class="am-margin-left-sm inspect-upgrade-submit" data-url="{{:MyUrl('admin/index/inspectupgrade')}}">{{:MyLang('common.store_check_update_name')}}{{if !empty($site_store_info) and !empty($site_store_info['upgrade']) and !empty($site_store_info['upgrade']['version_old']) and $site_store_info['upgrade']['version_old'] eq $Think.APPLICATION_VERSION}}<i></i>{{/if}}</a>
</span>
</div>
</div>
@ -118,8 +118,8 @@
<div class="block-container shopxo-base">
<div class="block-title echarts-title">
<span class="icon"></span>
<span class="title">商城统计</span>
<a href="javascript:;" class="am-icon-question-circle am-text-warning" data-am-popover="{content: '时间筛选仅对总数有效', trigger: 'hover focus', theme: 'sm'}"></a>
<span class="title">{{:MyLang('index.base_item_base_stats_title')}}</span>
<a href="javascript:;" class="am-icon-question-circle am-text-warning" data-am-popover="{content: '{{:MyLang('index.base_item_base_stats_tips')}}', trigger: 'hover focus', theme: 'sm'}"></a>
<div class="am-fr right-operate" data-type="base-count" data-empty-time="1">
{{if !empty($time_data)}}
<span class="quick-time">
@ -128,7 +128,7 @@
<a href="javascript:;" data-start="{{$v.start}}" data-end="{{$v.end}}">{{$v.name}}</a>
{{/if}}
{{/foreach}}
<a href="javascript:;" data-start="" data-end="">全部</a>
<a href="javascript:;" data-start="" data-end="">{{:MyLang('all_title')}}</a>
</span>
{{/if}}
{{include file="/index/stats_where" /}}
@ -137,22 +137,22 @@
<ul class="{{if isset($is_income) and $is_income eq true}}am-avg-sm-2 am-avg-lg-4{{else /}}am-avg-sm-1 am-avg-lg-3{{/if}}">
<li>
<div class="li-content">
<p class="name">用户总量</p>
<p class="name">{{:MyLang('index.base_item_user_title')}}</p>
<p class="total animation-count-to base-user-count" data-to="{{$base_count.user_count}}" data-speed="1500">0</p>
<div class="item am-margin-bottom-xs">
<span>上月</span>
<span>{{:MyLang('index.base_item_last_month_title')}}</span>
<span class="animation-count-to" data-to="{{$user.last_month_count}}" data-speed="1500">0</span>
</div>
<div class="item am-margin-bottom-xs">
<span>当月</span>
<span>{{:MyLang('index.base_item_same_month_title')}}</span>
<span class="animation-count-to" data-to="{{$user.same_month_count}}" data-speed="1500">0</span>
</div>
<div class="item am-margin-bottom-xs">
<span>昨日</span>
<span>{{:MyLang('index.base_item_yesterday_title')}}</span>
<span class="animation-count-to" data-to="{{$user.yesterday_count}}" data-speed="1500">0</span>
</div>
<div class="item">
<span>今日</span>
<span>{{:MyLang('index.base_item_today_title')}}</span>
<span class="animation-count-to" data-to="{{$user.today_count}}" data-speed="1500">0</span>
</div>
<i class="am-icon-user am-icon-lg bg-icon"></i>
@ -160,22 +160,22 @@
</li>
<li>
<div class="li-content">
<p class="name">订单总量</p>
<p class="name">{{:MyLang('index.base_item_order_number_title')}}</p>
<p class="total animation-count-to base-order-count" data-to="{{$base_count.order_count}}" data-speed="1500">0</p>
<div class="item am-margin-bottom-xs">
<span>上月</span>
<span>{{:MyLang('index.base_item_last_month_title')}}</span>
<span class="animation-count-to" data-to="{{$order_number.last_month_count}}" data-speed="1500">0</span>
</div>
<div class="item am-margin-bottom-xs">
<span>当月</span>
<span>{{:MyLang('index.base_item_same_month_title')}}</span>
<span class="animation-count-to" data-to="{{$order_number.same_month_count}}" data-speed="1500">0</span>
</div>
<div class="item am-margin-bottom-xs">
<span>昨日</span>
<span>{{:MyLang('index.base_item_yesterday_title')}}</span>
<span class="animation-count-to" data-to="{{$order_number.yesterday_count}}" data-speed="1500">0</span>
</div>
<div class="item">
<span>今日</span>
<span>{{:MyLang('index.base_item_today_title')}}</span>
<span class="animation-count-to" data-to="{{$order_number.today_count}}" data-speed="1500">0</span>
</div>
<i class="am-icon-pie-chart am-icon-lg bg-icon"></i>
@ -183,22 +183,22 @@
</li>
<li>
<div class="li-content">
<p class="name">成交总量</p>
<p class="name">{{:MyLang('index.base_item_order_complete_number_title')}}</p>
<p class="total animation-count-to base-order-sale-count" data-to="{{$base_count.order_sale_count}}" data-speed="1500">0</p>
<div class="item am-margin-bottom-xs">
<span>上月</span>
<span>{{:MyLang('index.base_item_last_month_title')}}</span>
<span class="animation-count-to" data-to="{{$order_complete_number.last_month_count}}" data-speed="1500">0</span>
</div>
<div class="item am-margin-bottom-xs">
<span>当月</span>
<span>{{:MyLang('index.base_item_same_month_title')}}</span>
<span class="animation-count-to" data-to="{{$order_complete_number.same_month_count}}" data-speed="1500">0</span>
</div>
<div class="item am-margin-bottom-xs">
<span>昨日</span>
<span>{{:MyLang('index.base_item_yesterday_title')}}</span>
<span class="animation-count-to" data-to="{{$order_complete_number.yesterday_count}}" data-speed="1500">0</span>
</div>
<div class="item">
<span>今日</span>
<span>{{:MyLang('index.base_item_today_title')}}</span>
<span class="animation-count-to" data-to="{{$order_complete_number.today_count}}" data-speed="1500">0</span>
</div>
<i class="am-icon-gg am-icon-lg bg-icon"></i>
@ -208,22 +208,22 @@
{{if isset($is_income) and $is_income eq true}}
<li>
<div class="li-content">
<p class="name">订单总计</p>
<p class="name">{{:MyLang('index.base_item_order_complete_title')}}</p>
<p class="total animation-count-to base-order-complete-total" data-to="{{$base_count.order_complete_total}}" data-speed="1500" data-decimals="2">0.00</p>
<div class="item am-margin-bottom-xs">
<span>上月</span>
<span>{{:MyLang('index.base_item_last_month_title')}}</span>
<span class="animation-count-to" data-to="{{$order_complete_money.last_month_count}}" data-speed="1500">0</span>
</div>
<div class="item am-margin-bottom-xs">
<span>当月</span>
<span>{{:MyLang('index.base_item_same_month_title')}}</span>
<span class="animation-count-to" data-to="{{$order_complete_money.same_month_count}}" data-speed="1500">0</span>
</div>
<div class="item am-margin-bottom-xs">
<span>昨日</span>
<span>{{:MyLang('index.base_item_yesterday_title')}}</span>
<span class="animation-count-to" data-to="{{$order_complete_money.yesterday_count}}" data-speed="1500" data-decimals="2">0.00</span>
</div>
<div class="item">
<span>今日</span>
<span>{{:MyLang('index.base_item_today_title')}}</span>
<span class="animation-count-to" data-to="{{$order_complete_money.today_count}}" data-speed="1500" data-decimals="2">0.00</span>
</div>
<i class="am-icon-line-chart am-icon-lg bg-icon"></i>
@ -252,8 +252,8 @@
<div class="block-container">
<div class="block-title echarts-title">
<span class="icon"></span>
<span class="title">订单成交金额走势</span>
<a href="javascript:;" class="am-icon-question-circle am-text-warning" data-am-popover="{content: '所有订单', trigger: 'hover focus', theme: 'sm'}"></a>
<span class="title">{{:MyLang('index.base_item_order_profit_title')}}</span>
<a href="javascript:;" class="am-icon-question-circle am-text-warning" data-am-popover="{content: '{{:MyLang('index.base_item_order_tips')}}', trigger: 'hover focus', theme: 'sm'}"></a>
<div class="am-fr right-operate" data-type="order-profit" data-init="1">
{{if !empty($time_data)}}
<span class="quick-time">
@ -287,8 +287,8 @@
<div class="block-container">
<div class="block-title echarts-title">
<span class="icon"></span>
<span class="title">订单交易走势</span>
<a href="javascript:;" class="am-icon-question-circle am-text-warning" data-am-popover="{content: '所有订单', trigger: 'hover focus', theme: 'sm'}"></a>
<span class="title">{{:MyLang('index.base_item_order_trading_title')}}</span>
<a href="javascript:;" class="am-icon-question-circle am-text-warning" data-am-popover="{content: '{{:MyLang('index.base_item_order_tips')}}', trigger: 'hover focus', theme: 'sm'}"></a>
<div class="am-fr right-operate" data-type="order-trading" data-init="1">
{{if !empty($time_data)}}
<span class="quick-time">
@ -323,15 +323,15 @@
<!-- 热销商品 -->
<div class="block-title echarts-title">
<span class="icon"></span>
<span class="title">热销商品</span>
<a href="javascript:;" class="am-icon-question-circle am-text-warning" data-am-popover="{content: '不含取消关闭的订单', trigger: 'hover focus', theme: 'sm'}"></a>
<span class="title">{{:MyLang('index.base_item_hot_sales_goods_title')}}</span>
<a href="javascript:;" class="am-icon-question-circle am-text-warning" data-am-popover="{content: '{{:MyLang('index.base_item_hot_sales_goods_tips')}}', trigger: 'hover focus', theme: 'sm'}"></a>
<div class="am-fr right-operate" data-type="goods-hot" data-init="1" data-empty-time="1">
{{if !empty($time_data)}}
<span class="quick-time">
{{foreach $time_data as $k=>$v}}
<a href="javascript:;" data-start="{{$v.start}}" data-end="{{$v.end}}">{{$v.name}}</a>
{{/foreach}}
<a href="javascript:;" data-start="" data-end="">全部</a>
<a href="javascript:;" data-start="" data-end="">{{:MyLang('all_title')}}</a>
</span>
{{/if}}
{{include file="/index/stats_where" /}}
@ -344,8 +344,8 @@
<!-- 支付方式 -->
<div class="block-title echarts-title">
<span class="icon"></span>
<span class="title">支付方式</span>
<a href="javascript:;" class="am-icon-question-circle am-text-warning" data-am-popover="{content: '所有订单', trigger: 'hover focus', theme: 'sm'}"></a>
<span class="title">{{:MyLang('index.base_item_payment_type_title')}}</span>
<a href="javascript:;" class="am-icon-question-circle am-text-warning" data-am-popover="{content: '{{:MyLang('index.base_item_order_tips')}}', trigger: 'hover focus', theme: 'sm'}"></a>
<div class="am-fr right-operate" data-type="pay-type" data-init="1">
{{if !empty($time_data)}}
<span class="quick-time">
@ -380,12 +380,12 @@
<div class="block-container {{if $is_system_show_base eq 0}}am-margin-bottom-0{{/if}}">
<div class="block-title echarts-title">
<span class="icon"></span>
<span class="title">订单地域分布</span>
<a href="javascript:;" class="am-icon-question-circle am-text-warning" data-am-popover="{content: '不含取消关闭的订单、默认维度(省)', trigger: 'hover focus', theme: 'sm'}"></a>
<span class="title">{{:MyLang('index.base_item_map_whole_country_title')}}</span>
<a href="javascript:;" class="am-icon-question-circle am-text-warning" data-am-popover="{content: '{{:MyLang('index.base_item_map_whole_country_tips')}}', trigger: 'hover focus', theme: 'sm'}"></a>
<select name="value" data-am-selected="{btnWidth: '50px', btnSize: 'xs'}">
<option value="0" selected></option>
<option value="1"></option>
<option value="2">区/县</option>
<option value="0" selected>{{:MyLang('index.base_item_map_whole_country_province')}}</option>
<option value="1">{{:MyLang('index.base_item_map_whole_country_city')}}</option>
<option value="2">{{:MyLang('index.base_item_map_whole_country_county')}}</option>
</select>
<div class="am-fr right-operate" data-type="order-whole-country" data-init="1" data-empty-time="1">
{{if !empty($time_data)}}
@ -393,7 +393,7 @@
{{foreach $time_data as $k=>$v}}
<a href="javascript:;" data-start="{{$v.start}}" data-end="{{$v.end}}">{{$v.name}}</a>
{{/foreach}}
<a href="javascript:;" data-start="" data-end="">全部</a>
<a href="javascript:;" data-start="" data-end="">{{:MyLang('all_title')}}</a>
</span>
{{/if}}
{{include file="/index/stats_where" /}}
@ -424,25 +424,25 @@
<li>
<div class="block-title">
<span class="icon"></span>
<span class="title">系统信息</span>
<span class="title">{{:MyLang('index.system_info_title')}}</span>
</div>
<dl class="dl-content">
<dt class="am-text-truncate">软件版本</dt>
<dt class="am-text-truncate">{{:MyLang('index.system_ver_title')}}</dt>
<dd>{{$data.ver}}</dd>
<dt class="am-text-truncate">操作系统</dt>
<dt class="am-text-truncate">{{:MyLang('index.system_os_ver_title')}}</dt>
<dd>{{$data.os_ver}}</dd>
<dt class="am-text-truncate">PHP版本</dt>
<dt class="am-text-truncate">{{:MyLang('index.system_php_ver_title')}}</dt>
<dd>{{$data.php_ver}}</dd>
<dt class="am-text-truncate">MySQL版本</dt>
<dt class="am-text-truncate">{{:MyLang('index.system_mysql_ver_title')}}</dt>
<dd>{{$data.mysql_ver}}</dd>
<dt class="am-text-truncate">服务器端信息</dt>
<dt class="am-text-truncate">{{:MyLang('index.system_server_ver_title')}}</dt>
<dd>{{$data.server_ver}}</dd>
<dt class="am-text-truncate">当前域名</dt>
<dt class="am-text-truncate">{{:MyLang('index.system_host_title')}}</dt>
<dd>{{$data.host}}</dd>
</dl>
</li>
@ -450,42 +450,46 @@
<li>
<div class="block-title">
<span class="icon"></span>
<span class="title">开发团队</span>
<span class="title">{{:MyLang('index.development_team_title')}}</span>
</div>
<dl class="dl-content">
<dt class="am-text-truncate">公司官网</dt>
<dt class="am-text-truncate">{{:MyLang('index.development_team_website_title')}}</dt>
<dd>
<a href="http://zongzhige.com/" target="_blank">上海纵之格科技有限公司</a>
<a href="http://zongzhige.com/" target="_blank">{{:MyLang('index.development_team_website_value')}}</a>
</dd>
<dt class="am-text-truncate">技术支持</dt>
<dt class="am-text-truncate">{{:MyLang('index.development_team_support_title')}}</dt>
<dd>
<a href="http://shopxo.net/" target="_blank">ShopXO企业级电商系统提供商</a>
<a href="http://shopxo.net/" target="_blank">{{:MyLang('index.development_team_support_value')}}</a>
</dd>
{{if !empty($site_store_links) and !empty($site_store_links['community_website'])}}
<dt class="am-text-truncate">交流提问</dt>
<dt class="am-text-truncate">{{:MyLang('index.development_team_ask_title')}}</dt>
<dd>
<a href="{{$site_store_links.community_website}}" target="_blank">ShopXO交流提问</a>
<a href="{{$site_store_links.community_website}}" target="_blank">{{:MyLang('index.development_team_ask_value')}}</a>
</dd>
{{/if}}
<dt class="am-text-truncate">开源协议</dt>
<dt class="am-text-truncate">{{:MyLang('index.development_team_agreement_title')}}</dt>
<dd>
<a href="{{if !empty($site_store_links) and !empty($site_store_links['source_license'])}}{{$site_store_links.source_license}}{{else /}}https://opensource.org/licenses/mit-license.php{{/if}}" target="_blank">查看开源协议</a>
<a href="{{if !empty($site_store_links) and !empty($site_store_links['source_license'])}}{{$site_store_links.source_license}}{{else /}}https://opensource.org/licenses/mit-license.php{{/if}}" target="_blank">{{:MyLang('index.development_team_agreement_value')}}</a>
</dd>
{{if !empty($site_store_links) and !empty($site_store_links['system_update_log'])}}
<dt class="am-text-truncate">更新日志</dt>
<dt class="am-text-truncate">{{:MyLang('index.development_team_update_log_title')}}</dt>
<dd>
<a href="{{$site_store_links.system_update_log}}" target="_blank">查看更新日志</a>
<a href="{{$site_store_links.system_update_log}}" target="_blank">{{:MyLang('index.development_team_update_log_value')}}</a>
</dd>
{{/if}}
<dt class="am-text-truncate">研发成员</dt>
<dd>
<a href="http://gong.gg/" target="_blank">龚哥哥</a>
</dd>
{{if is_array(MyLang('index.development_team_members_value'))}}
<dt class="am-text-truncate">{{:MyLang('index.development_team_members_title')}}</dt>
<dd>
{{foreach :MyLang('index.development_team_members_value') as $v}}
<a href="{{$v.url}}" target="_blank" class="am-margin-right-sm">{{$v.name}}</a>
{{/foreach}}
</dd>
{{/if}}
</dl>
</li>
</ul>
@ -517,7 +521,7 @@
<div class="upgrade-bottom am-text-right">
<div class="upgrade-bottom-content">
<button type="button" class="am-btn am-btn-default am-radius am-btn-xs" data-am-modal-close>{{:MyLang('cancel_title')}}</button>
<button type="button" class="am-btn am-btn-success am-radius am-btn-xs am-margin-left-sm am-hide inspect-upgrade-confirm" data-url="{{:MyUrl('admin/index/inspectupgradeconfirm')}}">立即更新</button>
<button type="button" class="am-btn am-btn-success am-radius am-btn-xs am-margin-left-sm am-hide inspect-upgrade-confirm" data-url="{{:MyUrl('admin/index/inspectupgradeconfirm')}}">{{:MyLang('index.base_update_button_title')}}</button>
</div>
</div>
</div>

View File

@ -1,6 +1,6 @@
<span class="am-form echarts-where">
<input type="text" autocomplete="off" name="time_start" class="Wdate am-radius" placeholder="开始时间" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd HH:mm:ss'})" value="{{if !empty($time_data) and !empty($default_day) and isset($time_data[$default_day])}}{{$time_data[$default_day]['start']}}{{/if}}" />
<input type="text" autocomplete="off" name="time_start" class="Wdate am-radius" placeholder="{{:MyLang('form_time_start_title')}}" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd HH:mm:ss'})" value="{{if !empty($time_data) and !empty($default_day) and isset($time_data[$default_day])}}{{$time_data[$default_day]['start']}}{{/if}}" />
<span class="join">-</span>
<input type="text" autocomplete="off" class="Wdate am-radius" placeholder="结束时间" name="time_end" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd HH:mm:ss'})" value="{{if !empty($time_data) and !empty($default_day) and isset($time_data[$default_day])}}{{$time_data[$default_day]['end']}}{{/if}}" />
<button type="button" class="am-btn am-btn-secondary am-radius am-btn-xs am-icon-line-chart btn-loading-example echarts-where-submit" data-am-loading="{loadingText:' 加载'}"> 确认</button>
<input type="text" autocomplete="off" class="Wdate am-radius" placeholder="{{:MyLang('form_time_end_title')}}" name="time_end" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd HH:mm:ss'})" value="{{if !empty($time_data) and !empty($default_day) and isset($time_data[$default_day])}}{{$time_data[$default_day]['end']}}{{/if}}" />
<button type="button" class="am-btn am-btn-secondary am-radius am-btn-xs am-icon-line-chart btn-loading-example echarts-where-submit" data-am-loading="{loadingText:' {{:MyLang('loading_title')}}'}"> {{:MyLang('confirm_title')}}</button>
</span>

View File

@ -1,12 +0,0 @@
<!-- 是否启用 开始 -->
<div class="am-form-group">
<label>{{:MyLang('form_whether_enable_title')}}</label>
<div>
{{foreach :MyLang('common_is_enable_list') as $v}}
<label class="am-radio-inline am-margin-right-sm">
<input type="radio" name="is_enable" value="{{$v.id}}" {{if isset($data['is_enable']) and $data['is_enable'] eq $v['id']}}checked="checked"{{else /}}{{if !isset($data['is_enable']) and isset($v['checked']) and $v['checked'] eq true}}checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
</label>
{{/foreach}}
</div>
</div>
<!-- 是否启用 结束 -->

View File

@ -1,38 +0,0 @@
<div class="am-popup am-radius" id="excel-import-win">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title">导入Excel</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<!-- win form start -->
<form class="am-form form-validation excel-form" action="{{$excel_import_form_url}}" method="POST" request-type="ajax-fun" request-value="ExcelImportCallback" enctype="multipart/form-data">
<div class="am-alert am-radius am-alert-tips m-t-0" data-am-alert>
{{if !empty($excel_import_format_url)}}
<p class="am-margin-bottom-sm"><a href="{{$excel_import_format_url}}" class="cr-blue">Excel格式下载</a><span class="am-margin-right-xs"></p>
{{/if}}
{{if !empty($excel_import_tips)}}
<p class="am-margin-top-sm">{{$excel_import_tips}}</p>
{{/if}}
<p class="cr-red">PS导入数据建议一次不要超过10万条。</p>
</div>
<div class="am-form-group am-form-file">
<button type="button" class="am-btn am-btn-default am-btn-sm am-radius"><i class="am-icon-cloud-upload"></i> {{:MyLang('form_choice_images_title')}}</button>
<input type="file" name="excel" multiple data-validation-message="{{:MyLang('form_upload_file_message')}}" accept="application/vnd.ms-excel" required />
</div>
<div class="am-form-group am-form-group-refreshing am-margin-top-lg am-padding-left-0">
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'{{:MyLang('processing_tips')}}'}">{{:MyLang('confirm_title')}}</button>
</div>
</form>
<!-- win form end -->
<!-- import tips start -->
<div class="am-alert am-alert-success am-radius excel-import-success none">导入成功 <strong>0</strong></div>
<div class="am-panel am-panel-danger am-radius excel-import-error none">
<div class="am-panel-hd p-l-10">导入失败 <strong>0</strong></div>
<table class="am-table"><tbody></tbody></table>
</div>
<!-- import tips end -->
</div>
</div>
</div>

View File

@ -1,43 +0,0 @@
<script>
/**
* [ExcelImportCallback excel导入回调公共表单方法校验需要放在这里不能校验其它文件的方法]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-02-11T21:46:50+0800
* @param {[object]} data [回调数据]
*/
function ExcelImportCallback(data)
{
if(data.code == 0)
{
// 成功
if(data.data.success > 0)
{
$('.excel-import-success').removeClass('none');
$('.excel-import-success').find('strong').text(data.data.success);
} else {
$('.excel-import-success').addClass('none');
}
// 失败
if(data.data.error.length == 0)
{
$('.excel-import-error').addClass('none');
} else {
$('.excel-import-error').removeClass('none');
$('.excel-import-error').find('strong').text(data.data.error.length);
var html = '';
for(var i in data.data.error)
{
html += '<tr><td>'+data.data.error[i]+'</td></tr>';
}
$('.excel-import-error').find('table tbody').html(html);
}
} else {
Prompt(data.msg);
}
$.AMUI.progress.done();
$('.form-validation').find('button[type="submit"]').button('reset');
}
</script>

View File

@ -1,6 +1,6 @@
<!-- 性别 开始 -->
<div class="am-form-group">
<label>{{:MyLang('form_gender_title')}}</label>
<label class="am-block">{{:MyLang('form_gender_title')}}</label>
<div>
{{foreach :MyLang('common_gender_list') as $v}}
<label class="am-radio-inline am-margin-right-sm">

View File

@ -0,0 +1,6 @@
<!-- 是否启用 开始 -->
<div class="am-form-group">
<label class="am-block">{{:MyLang('form_whether_enable_title')}}</label>
<input name="is_enable" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_enable']) and $data['is_enable'] eq 1) or !isset($data['is_enable'])}}checked="true"{{/if}} />
</div>
<!-- 是否启用 结束 -->

View File

@ -1,12 +1,6 @@
<!-- 是否包含尾部 开始 -->
<div class="am-form-group">
<label>是否含尾部</label>
<div>
{{foreach :MyLang('common_is_text_list') as $v}}
<label class="am-radio-inline am-margin-right-sm">
<input type="radio" name="is_footer" value="{{$v.id}}" {{if isset($data['is_footer']) and $data['is_footer'] eq $v['id']}}checked="checked"{{else /}}{{if !isset($data['is_footer']) and isset($v['checked']) and $v['checked'] eq true}}checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
</label>
{{/foreach}}
</div>
<label class="am-block">{{:MyLang('form_is_footer_title')}}</label>
<input name="is_footer" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_footer']) and $data['is_footer'] eq 1) or !isset($data['is_footer'])}}checked="true"{{/if}} />
</div>
<!-- 是否包含尾部 结束 -->

View File

@ -1,12 +1,6 @@
<!-- 是否满屏 开始 -->
<div class="am-form-group">
<label>是否满屏</label>
<div>
{{foreach :MyLang('common_is_text_list') as $v}}
<label class="am-radio-inline am-margin-right-sm">
<input type="radio" name="is_full_screen" value="{{$v.id}}" {{if isset($data['is_full_screen']) and $data['is_full_screen'] eq $v['id']}}checked="checked"{{else /}}{{if !isset($data['is_full_screen']) and isset($v['checked']) and $v['checked'] eq true}}checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
</label>
{{/foreach}}
</div>
<label class="am-block">{{:MyLang('form_is_full_screen_title')}}</label>
<input name="is_full_screen" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_full_screen']) and $data['is_full_screen'] eq 1) or !isset($data['is_full_screen'])}}checked="true"{{/if}} />
</div>
<!-- 是否满屏 结束 -->

View File

@ -1,12 +1,6 @@
<!-- 是否包含头部 开始 -->
<div class="am-form-group">
<label>是否含头部</label>
<div>
{{foreach :MyLang('common_is_text_list') as $v}}
<label class="am-radio-inline am-margin-right-sm">
<input type="radio" name="is_header" value="{{$v.id}}" {{if isset($data['is_header']) and $data['is_header'] eq $v['id']}}checked="checked"{{else /}}{{if !isset($data['is_header']) and isset($v['checked']) and $v['checked'] eq true}}checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
</label>
{{/foreach}}
</div>
<label class="am-block">{{:MyLang('form_is_header_title')}}</label>
<input name="is_header" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_header']) and $data['is_header'] eq 1) or !isset($data['is_header'])}}checked="true"{{/if}} />
</div>
<!-- 是否包含头部 结束 -->

View File

@ -1,12 +1,6 @@
<!-- 是否新窗口打开 开始 -->
<div class="am-form-group">
<label>{{:MyLang('form_whether_new_window_open_title')}}</label>
<div>
{{foreach :MyLang('common_is_text_list') as $v}}
<label class="am-radio-inline am-margin-right-sm">
<input type="radio" name="is_new_window_open" value="{{$v.id}}" {{if isset($data['is_new_window_open']) and $data['is_new_window_open'] eq $v['id']}}checked="checked"{{else /}}{{if !isset($data['is_new_window_open']) and isset($v['checked']) and $v['checked'] eq true}}checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
</label>
{{/foreach}}
</div>
<label class="am-block">{{:MyLang('form_whether_new_window_open_title')}}</label>
<input name="is_new_window_open" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_new_window_open']) and $data['is_new_window_open'] eq 1) or !isset($data['is_new_window_open'])}}checked="true"{{/if}} />
</div>
<!-- 是否新窗口打开 结束 -->

View File

@ -1,12 +1,6 @@
<!-- 是否显示 开始 -->
<div class="am-form-group">
<label>{{:MyLang('form_whether_show_title')}}</label>
<div>
{{foreach :MyLang('common_is_show_list') as $v}}
<label class="am-radio-inline am-margin-right-sm">
<input type="radio" name="is_show" value="{{$v.id}}" {{if isset($data['is_show']) and $data['is_show'] eq $v['id']}}checked="checked"{{else /}}{{if !isset($data['is_show']) and isset($v['checked']) and $v['checked'] eq true}}checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
</label>
{{/foreach}}
</div>
<label class="am-block">{{:MyLang('form_whether_show_title')}}</label>
<input name="is_show" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_show']) and $data['is_show'] eq 1) or !isset($data['is_show'])}}checked="true"{{/if}} />
</div>
<!-- 是否显示 结束 -->

View File

@ -1,6 +1,6 @@
<!-- 商品分类 -->
{{if !empty($module_data['data']) && !empty($module_data['form_name_key'])}}
<select class="am-radius chosen-select" multiple name="{{$module_data.form_name_key}}" data-placeholder="商品分类...">
<select class="am-radius chosen-select" multiple name="{{$module_data.form_name_key}}" data-placeholder="{{:MyLang('form_goods_category_placeholder')}}">
{{foreach $module_data.data as $v}}
<option value="{{$v.id}}" {{if !empty($module_data['params']) and !empty($module_data['params'][$module_data['form_name_key']]) and is_array($module_data['params'][$module_data['form_name_key']]) and in_array($v['id'], $module_data['params'][$module_data['form_name_key']])}}selected{{/if}}>{{$v.name}}</option>
{{if !empty($v['items'])}}

View File

@ -4,7 +4,7 @@
<li class="am-text-truncate">{{$module_data.user.user_name_view}}</li>
<li>
{{if !empty($module_data['user']['username'])}}
<a href="javascript:;" class="am-icon-user am-text-grey am-margin-right-sm" data-am-popover="{content: '账号{{$module_data.user.username}}{{if !empty($module_data['user']['nickname'])}}<br />昵称{{$module_data.user.nickname}}{{/if}}', trigger: 'hover focus', theme: 'sm'}"></a>
<a href="javascript:;" class="am-icon-user am-text-grey am-margin-right-sm" data-am-popover="{content: '{{:MyLang('user_username_title')}}{{$module_data.user.username}}{{if !empty($module_data['user']['nickname'])}}<br />{{:MyLang('user_nickname_title')}}{{$module_data.user.nickname}}{{/if}}', trigger: 'hover focus', theme: 'sm'}"></a>
{{/if}}
{{if !empty($module_data['user']['number_code'])}}
<a href="javascript:;" class="am-icon-qrcode am-text-grey am-margin-right-sm" data-am-popover="{content: '{{$module_data.user.number_code}}', trigger: 'hover focus', theme: 'sm'}"></a>

View File

@ -1,4 +1,4 @@
<div class="am-form-group region-linkage" data-url="{{:MyUrl('admin/region/index')}}" data-code-url="{{:MyUrl('admin/region/codedata')}}">
<div class="am-form-group region-linkage" data-url="{{:MyUrl('admin/region/node')}}" data-code-url="{{:MyUrl('admin/region/codedata')}}">
<label class="am-block">
<span>{{:MyLang('form_region_title')}}</span>
{{if isset($is_force_region_choice) and $is_force_region_choice eq 1}}<span class="am-form-group-label-tips-must">*</span>{{/if}}

View File

@ -1,17 +1,17 @@
<div class="am-cf">
<div class="am-u-sm-4 am-padding-horizontal-0">
<div class="am-u-sm-6 am-u-md-4 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('form_seo_title_title')}}<a href="javascript:;" class="am-icon-question-circle am-text-warning am-margin-left-sm" data-am-popover="{content: '{{:MyLang('form_seo_title_tips')}}', trigger: 'hover focus', theme: 'sm'}"></a></label>
<input type="text" name="seo_title" placeholder="{{:MyLang('form_seo_title_title')}}" maxlength="100" data-validation-message="{{:MyLang('form_seo_title_message')}}" class="am-radius" {{if !empty($data['seo_title'])}} value="{{$data.seo_title}}"{{/if}} />
</div>
</div>
<div class="am-u-sm-4 am-padding-horizontal-0">
<div class="am-u-sm-6 am-u-md-4 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('form_seo_keywords_title')}}<a href="javascript:;" class="am-icon-question-circle am-text-warning am-margin-left-sm" data-am-popover="{content: '{{:MyLang('form_seo_keywords_tips')}}', trigger: 'hover focus', theme: 'sm'}"></a></label>
<input type="text" name="seo_keywords" placeholder="{{:MyLang('form_seo_keywords_title')}}" maxlength="130" data-validation-message="{{:MyLang('form_seo_keywords_message')}}" class="am-radius" {{if !empty($data['seo_keywords'])}} value="{{$data.seo_keywords}}"{{/if}} />
</div>
</div>
<div class="am-u-sm-4 am-padding-horizontal-0">
<div class="am-u-sm-12 am-u-md-4 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('form_seo_desc_title')}}<a href="javascript:;" class="am-icon-question-circle am-text-warning am-margin-left-sm" data-am-popover="{content: '{{:MyLang('form_seo_desc_tips')}}', trigger: 'hover focus', theme: 'sm'}"></a></label>
<textarea rows="1" name="seo_desc" maxlength="230" class="am-radius" placeholder="{{:MyLang('form_seo_desc_title')}}" data-validation-message="{{:MyLang('form_seo_desc_message')}}">{{if !empty($data['seo_desc'])}}{{$data.seo_desc}}{{/if}}</textarea>

View File

@ -0,0 +1,6 @@
<!-- 排序 开始 -->
<div class="am-form-group">
<label>{{:MyLang('form_sort_title')}}<span class="am-form-group-label-tips">{{:MyLang('form_sort_tips')}}</span></label>
<input type="number" placeholder="{{:MyLang('form_sort_title')}}" name="sort" min="0" max="255" data-validation-message="{{:MyLang('form_sort_message')}}" class="am-radius" value="{{if isset($data['sort'])}}{{$data.sort}}{{else /}}0{{/if}}" required />
</div>
<!-- 排序 结束 -->

View File

@ -1,7 +1,7 @@
<!-- 用户状态 开始 -->
<div class="am-form-group">
<label>用户状态</label>
<select name="status" class="am-radius chosen-select" data-validation-message="请选择用户状态" required>
<label class="am-block">{{:MyLang('common.user_status_title')}}</label>
<select name="status" class="am-radius chosen-select" data-validation-message="{{:MyLang('common.user_status_message')}}" required>
{{foreach :MyLang('common_user_status_list') as $v}}
<option value="{{$v.id}}" {{if isset($data['status']) and $data['status'] eq $v['id']}}selected{{else /}}{{if !isset($data['status']) and isset($v['checked']) and $v['checked'] eq true}}selected{{/if}}{{/if}}>{{$v.name}}</option>
{{/foreach}}

View File

@ -14,29 +14,26 @@
<div class="am-popup am-radius" id="data-save-win">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title" data-add-title="友情链接添加" data-edit-title="友情链接编辑">友情链接添加</h4>
<h4 class="am-popup-title" data-add-title="{{:MyLang('link.base_nav_title')}}{{:MyLang('add_title')}}" data-edit-title="{{:MyLang('link.base_nav_title')}}{{:MyLang('edit_title')}}">{{:MyLang('link.base_nav_title')}}{{:MyLang('add_title')}}</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<!-- form start -->
<form class="am-form form-validation am-form-popup-fixed" action="{{:MyUrl('admin/link/Save')}}" method="POST" request-type="ajax-reload" request-value="">
<div class="am-form-group">
<label>名称<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="名称" name="name" minlength="2" maxlength="16" data-validation-message="名称格式 2~16 个字符" class="am-radius" required />
<label>{{:MyLang('link.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="{{:MyLang('link.form_item_name_message')}}" name="name" minlength="2" maxlength="16" data-validation-message="{{:MyLang('link.form_item_name_message')}}" class="am-radius" required />
</div>
<div class="am-form-group">
<label>链接地址<span class="am-form-group-label-tips-must">*</span></label>
<input type="url" placeholder="链接地址、以http://或https://开头" name="url" data-validation-message="链接地址格式有误" class="am-radius" required />
</div>
<div class="am-form-group">
<label>{{:MyLang('form_sort_title')}}</label>
<input type="number" placeholder="{{:MyLang('form_sort_title')}}" name="sort" min="0" max="255" data-validation-message="{{:MyLang('form_sort_message')}}" class="am-radius" value="0" required />
<label>{{:MyLang('link.form_item_url')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="url" placeholder="{{:MyLang('link.form_item_url_placeholder')}}" name="url" data-validation-message="{{:MyLang('link.form_item_url_message')}}" class="am-radius" required />
</div>
{{include file="lib/sort" /}}
{{include file="lib/is_new_window_open" /}}
{{include file="lib/enable" /}}
{{include file="lib/is_enable" /}}
<div class="am-form-group am-form-success">
<label>描述</label>
<textarea rows="3" maxlength="60" name="describe" class="am-radius" placeholder="描述" data-validation-message="描述不能大于60个字符"></textarea>
<label>{{:MyLang('link.form_item_desc')}}</label>
<textarea rows="3" maxlength="60" name="describe" class="am-radius" placeholder="{{:MyLang('link.form_item_desc_message')}}" data-validation-message="{{:MyLang('link.form_item_desc_message')}}"></textarea>
</div>
<div class="am-form-popup-submit">
<input type="hidden" name="id" />

View File

@ -4,7 +4,7 @@
{{if isset($params['lng']) and isset($params['lat']) and $params['lng'] neq 0 and $params['lat'] neq 0}}
<div id="map" data-level="17"></div>
{{else /}}
<div class="table-no"><i class="am-icon-warning"></i> 坐标有误</div>
<div class="table-no"><i class="am-icon-warning"></i> {{:MyLang('map_coordinate_error')}}</div>
{{/if}}
<!-- content end -->

View File

@ -12,31 +12,13 @@
<div class="am-dropdown am-margin-right-sm" data-am-dropdown>
<button type="button" class="am-btn am-btn-secondary am-radius am-btn-xs am-dropdown-toggle" data-am-dropdown-toggle>{{:MyLang('add_title')}} <span class="am-icon-caret-down"></span></button>
<ul class="am-dropdown-content">
<li>
<a href="javascript:;" class="am-padding-0">
<button type="button" class="am-btn am-btn-link am-btn-xs am-btn-block am-text-left am-padding-horizontal-sm am-icon-plus submit-add" data-am-modal="{target: '#nav-custom-save-win'}" data-tag="nav-custom-save-win"> 自定义</button>
</a>
</li>
<li>
<a href="javascript:;" class="am-padding-0">
<button type="button" class="am-btn am-btn-link am-btn-xs am-btn-block am-text-left am-padding-horizontal-sm am-icon-plus submit-add" data-am-modal="{target: '#nav-article-save-win'}" data-tag="nav-article-save-win"> 文章</button>
</a>
</li>
<li>
<a href="javascript:;" class="am-padding-0">
<button type="button" class="am-btn am-btn-link am-btn-xs am-btn-block am-text-left am-padding-horizontal-sm am-icon-plus submit-add" data-am-modal="{target: '#nav-customview-save-win'}" data-tag="nav-customview-save-win"> 自定义页面</button>
</a>
</li>
<li>
<a href="javascript:;" class="am-padding-0">
<button type="button" class="am-btn am-btn-link am-btn-xs am-btn-block am-text-left am-padding-horizontal-sm am-icon-plus submit-add" data-am-modal="{target: '#nav-goods_category-save-win'}" data-tag="nav-goods_category-save-win"> 商品分类</button>
</a>
</li>
<li>
<a href="javascript:;" class="am-padding-0">
<button type="button" class="am-btn am-btn-link am-btn-xs am-btn-block am-text-left am-padding-horizontal-sm am-icon-plus submit-add" data-am-modal="{target: '#nav-design-save-win'}" data-tag="nav-design-save-win"> 页面设计</button>
</a>
</li>
{{foreach $add_type_list as $k=>$v}}
<li>
<a href="javascript:;" class="am-padding-0">
<button type="button" class="am-btn am-btn-link am-btn-xs am-btn-block am-text-left am-padding-horizontal-sm am-icon-plus submit-add" data-am-modal="{target: '#nav-{{$k}}-save-win'}" data-tag="nav-{{$k}}-save-win"> {{$v}}</button>
</a>
</li>
{{/foreach}}
</ul>
</div>
@ -50,33 +32,30 @@
<div class="am-popup am-radius" id="nav-custom-save-win">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title" data-add-title="自定义导航添加" data-edit-title="自定义导航编辑">自定义导航添加</h4>
<h4 class="am-popup-title" data-add-title="{{$add_type_list.custom}}{{:MyLang('add_title')}}" data-edit-title="{{$add_type_list.custom}}{{:MyLang('edit_title')}}">{{$add_type_list.custom}}{{:MyLang('add_title')}}</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<!-- form start -->
<form class="am-form form-validation am-form-popup-fixed" action="{{:MyUrl('admin/navigation/save')}}" method="POST" request-type="ajax-reload" request-value="">
<div class="am-form-group">
<label>导航级别</label>
<select class="am-radius chosen-select" name="pid" data-placeholder="一级栏目..." data-validation-message="导航级别选择错误">
<option value="">一级栏目...</option>
<label>{{:MyLang('navigation.form_item_pid')}}</label>
<select class="am-radius chosen-select" name="pid" data-placeholder="{{:MyLang('navigation.form_item_pid_placeholder')}}" data-validation-message="{{:MyLang('navigation.form_item_pid_message')}}">
<option value="">{{:MyLang('navigation.form_item_pid_placeholder')}}</option>
{{foreach $nav_header_pid_list as $v}}
<option value="{{$v.id}}">{{$v.name}}</option>
{{/foreach}}
</select>
</div>
<div class="am-form-group">
<label>导航名称<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="导航名称" name="name" minlength="2" maxlength="16" data-validation-message="导航名称格式 2~16 个字符" class="am-radius" required />
<label>{{:MyLang('navigation.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="{{:MyLang('navigation.form_item_name_message')}}" name="name" minlength="2" maxlength="16" data-validation-message="{{:MyLang('navigation.form_item_name_message')}}" class="am-radius" required />
</div>
<div class="am-form-group">
<label>url地址<span class="am-form-group-label-tips-must">*</span></label>
<input type="url" placeholder="url地址、以http://或https://开头" name="url" data-validation-message="url格式有误" class="am-radius" required />
</div>
<div class="am-form-group">
<label>{{:MyLang('form_sort_title')}}</label>
<input type="number" placeholder="{{:MyLang('form_sort_title')}}" name="sort" min="0" max="255" data-validation-message="{{:MyLang('form_sort_message')}}" class="am-radius" value="0" required />
<label>{{:MyLang('navigation.form_item_url')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="url" placeholder="{{:MyLang('navigation.form_item_url_placeholder')}}" name="url" data-validation-message="{{:MyLang('navigation.form_item_url_message')}}" class="am-radius" required />
</div>
{{include file="lib/sort" /}}
{{include file="lib/is_show" /}}
{{include file="lib/is_new_window_open" /}}
<div class="am-form-popup-submit">
@ -96,24 +75,24 @@
<div class="am-popup am-radius" id="nav-article-save-win">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title" data-add-title="文章导航添加" data-edit-title="文章导航编辑">文章导航添加</h4>
<h4 class="am-popup-title" data-add-title="{{$add_type_list.article}}{{:MyLang('add_title')}}" data-edit-title="{{$add_type_list.article}}{{:MyLang('edit_title')}}">{{$add_type_list.article}}{{:MyLang('add_title')}}</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<!-- form start -->
<form class="am-form form-validation-article am-form-popup-fixed" action="{{:MyUrl('admin/navigation/save')}}" method="POST" request-type="ajax-reload" request-value="">
<div class="am-form-group">
<label>导航级别</label>
<select class="am-radius chosen-select" name="pid" data-placeholder="一级栏目..." data-validation-message="导航级别选择错误">
<option value="">一级栏目...</option>
<label>{{:MyLang('navigation.form_item_pid')}}</label>
<select class="am-radius chosen-select" name="pid" data-placeholder="{{:MyLang('navigation.form_item_pid_placeholder')}}" data-validation-message="{{:MyLang('navigation.form_item_pid_message')}}">
<option value="">{{:MyLang('navigation.form_item_pid_placeholder')}}</option>
{{foreach $nav_header_pid_list as $v}}
<option value="{{$v.id}}">{{$v.name}}</option>
{{/foreach}}
</select>
</div>
<div class="am-form-group">
<label>文章<span class="am-form-group-label-tips-must">*</span></label>
<select class="am-radius chosen-select" name="value" data-placeholder="{{:MyLang('please_select_tips')}}" data-validation-message="文章选择有误" required>
<label>{{$add_type_list.article}}<span class="am-form-group-label-tips-must">*</span></label>
<select class="am-radius chosen-select" name="value" data-placeholder="{{:MyLang('please_select_tips')}}" data-validation-message="{{:MyLang('navigation.form_item_value_article_message')}}" required>
<option value="">{{:MyLang('please_select_tips')}}</option>
{{foreach $article_list as $v}}
<optgroup label="{{$v.name}}">
@ -127,13 +106,10 @@
</select>
</div>
<div class="am-form-group">
<label>导航名称<span class="am-form-group-label-tips">默认文章名称</span></label>
<input type="text" placeholder="导航名称" name="name" maxlength="16" data-validation-message="导航名称格式 2~16 个字符" class="am-radius" />
</div>
<div class="am-form-group">
<label>{{:MyLang('form_sort_title')}}</label>
<input type="number" placeholder="{{:MyLang('form_sort_title')}}" name="sort" min="0" max="255" data-validation-message="{{:MyLang('form_sort_message')}}" class="am-radius" value="0" required />
<label>{{:MyLang('navigation.form_item_name')}}<span class="am-form-group-label-tips">{{:MyLang('navigation.form_item_name_tips', ['type'=>$add_type_list['article']])}}</span></label>
<input type="text" placeholder="{{:MyLang('navigation.form_item_name_message')}}" name="name" maxlength="16" data-validation-message="{{:MyLang('navigation.form_item_name_message')}}" class="am-radius" />
</div>
{{include file="lib/sort" /}}
{{include file="lib/is_show" /}}
{{include file="lib/is_new_window_open" /}}
<div class="am-form-popup-submit">
@ -153,7 +129,7 @@
<div class="am-popup am-radius" id="nav-customview-save-win">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title" data-add-title="自定义页面导航添加" data-edit-title="自定义页面导航编辑">自定义页面导航添加</h4>
<h4 class="am-popup-title" data-add-title="{{$add_type_list.customview}}{{:MyLang('add_title')}}" data-edit-title="{{$add_type_list.customview}}{{:MyLang('edit_title')}}">{{$add_type_list.customview}}{{:MyLang('add_title')}}</h4>
<span data-am-modal-close
class="am-close">&times;</span>
</div>
@ -161,17 +137,17 @@
<!-- form start -->
<form class="am-form form-validation-customview am-form-popup-fixed" action="{{:MyUrl('admin/navigation/save')}}" method="POST" request-type="ajax-reload" request-value="">
<div class="am-form-group">
<label>导航级别</label>
<select class="am-radius chosen-select" name="pid" data-placeholder="一级栏目..." data-validation-message="导航级别选择错误">
<option value="">一级栏目...</option>
<label>{{:MyLang('navigation.form_item_pid')}}</label>
<select class="am-radius chosen-select" name="pid" data-placeholder="{{:MyLang('navigation.form_item_pid_placeholder')}}" data-validation-message="{{:MyLang('navigation.form_item_pid_message')}}">
<option value="">{{:MyLang('navigation.form_item_pid_placeholder')}}</option>
{{foreach $nav_header_pid_list as $v}}
<option value="{{$v.id}}">{{$v.name}}</option>
{{/foreach}}
</select>
</div>
<div class="am-form-group">
<label>自定义页面<span class="am-form-group-label-tips-must">*</span></label>
<select class="am-radius chosen-select" name="value" data-placeholder="{{:MyLang('please_select_tips')}}" data-validation-message="自定义页面选择有误" required>
<label>{{$add_type_list.customview}}<span class="am-form-group-label-tips-must">*</span></label>
<select class="am-radius chosen-select" name="value" data-placeholder="{{:MyLang('please_select_tips')}}" data-validation-message="{{:MyLang('navigation.form_item_value_customview_message')}}" required>
<option value="">{{:MyLang('please_select_tips')}}</option>
{{foreach $customview_list as $v}}
<option value="{{$v.id}}">{{$v.title}}</option>
@ -179,13 +155,10 @@
</select>
</div>
<div class="am-form-group">
<label>导航名称<span class="am-form-group-label-tips">默认自定义页面名称</span></label>
<input type="text" placeholder="导航名称" name="name" maxlength="16" data-validation-message="导航名称格式 2~16 个字符" class="am-radius" />
</div>
<div class="am-form-group">
<label>{{:MyLang('form_sort_title')}}</label>
<input type="number" placeholder="{{:MyLang('form_sort_title')}}" name="sort" min="0" max="255" data-validation-message="{{:MyLang('form_sort_message')}}" class="am-radius" value="0" required />
<label>{{:MyLang('navigation.form_item_name')}}<span class="am-form-group-label-tips">{{:MyLang('navigation.form_item_name_tips', ['type'=>$add_type_list['customview']])}}</span></label>
<input type="text" placeholder="{{:MyLang('navigation.form_item_name_message')}}" name="name" maxlength="16" data-validation-message="{{:MyLang('navigation.form_item_name_message')}}" class="am-radius" />
</div>
{{include file="lib/sort" /}}
{{include file="lib/is_show" /}}
{{include file="lib/is_new_window_open" /}}
<div class="am-form-popup-submit">
@ -205,24 +178,24 @@
<div class="am-popup am-radius" id="nav-goods_category-save-win">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title" data-add-title="商品分类导航添加" data-edit-title="商品分类导航编辑">商品分类导航添加</h4>
<h4 class="am-popup-title" data-add-title="{{$add_type_list.goods_category}}{{:MyLang('add_title')}}" data-edit-title="{{$add_type_list.goods_category}}{{:MyLang('edit_title')}}">{{$add_type_list.goods_category}}{{:MyLang('add_title')}}</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<!-- form start -->
<form class="am-form form-validation-goods_category am-form-popup-fixed" action="{{:MyUrl('admin/navigation/save')}}" method="POST" request-type="ajax-reload" request-value="">
<div class="am-form-group">
<label>导航级别</label>
<select class="am-radius chosen-select" name="pid" data-placeholder="一级栏目..." data-placeholder="一级栏目..." data-validation-message="导航级别选择错误">
<option value="">一级栏目...</option>
<label>{{:MyLang('navigation.form_item_pid')}}</label>
<select class="am-radius chosen-select" name="pid" data-placeholder="{{:MyLang('navigation.form_item_pid_placeholder')}}" data-validation-message="{{:MyLang('navigation.form_item_pid_message')}}">
<option value="">{{:MyLang('navigation.form_item_pid_placeholder')}}</option>
{{foreach $nav_header_pid_list as $v}}
<option value="{{$v.id}}">{{$v.name}}</option>
{{/foreach}}
</select>
</div>
<div class="am-form-group">
<label>商品分类<span class="am-form-group-label-tips-must">*</span></label>
<select class="am-radius chosen-select" name="value" data-placeholder="{{:MyLang('please_select_tips')}}" data-validation-message="商品分类选择有误" required>
<label>{{$add_type_list.goods_category}}<span class="am-form-group-label-tips-must">*</span></label>
<select class="am-radius chosen-select" name="value" data-placeholder="{{:MyLang('please_select_tips')}}" data-validation-message="{{:MyLang('navigation.form_item_value_goods_category_message')}}" required>
<option value="">{{:MyLang('please_select_tips')}}</option>
{{foreach $goods_category_list as $v}}
<option value="{{$v.id}}" {{if !empty($data['category_ids']) and in_array($v['id'], $data['category_ids'])}}selected{{/if}}>{{$v.name}}</option>
@ -240,13 +213,10 @@
</select>
</div>
<div class="am-form-group">
<label>导航名称<span class="am-form-group-label-tips">默认商品分类名称</span></label>
<input type="text" placeholder="导航名称" name="name" maxlength="16" data-validation-message="导航名称格式 2~16 个字符" class="am-radius" />
</div>
<div class="am-form-group">
<label>{{:MyLang('form_sort_title')}}</label>
<input type="number" placeholder="{{:MyLang('form_sort_title')}}" name="sort" min="0" max="255" data-validation-message="{{:MyLang('form_sort_message')}}" class="am-radius" value="0" required />
<label>{{:MyLang('navigation.form_item_name')}}<span class="am-form-group-label-tips">{{:MyLang('navigation.form_item_name_tips', ['type'=>$add_type_list['goods_category']])}}</span></label>
<input type="text" placeholder="{{:MyLang('navigation.form_item_name_message')}}" name="name" maxlength="16" data-validation-message="{{:MyLang('navigation.form_item_name_message')}}" class="am-radius" />
</div>
{{include file="lib/sort" /}}
{{include file="lib/is_show" /}}
{{include file="lib/is_new_window_open" /}}
<div class="am-form-popup-submit">
@ -266,24 +236,24 @@
<div class="am-popup am-radius" id="nav-design-save-win">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title" data-add-title="页面设计导航添加" data-edit-title="页面设计导航编辑">页面设计导航添加</h4>
<h4 class="am-popup-title" data-add-title="{{$add_type_list.design}}{{:MyLang('add_title')}}" data-edit-title="{{$add_type_list.design}}{{:MyLang('edit_title')}}">{{$add_type_list.design}}{{:MyLang('add_title')}}</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<!-- form start -->
<form class="am-form form-validation-design am-form-popup-fixed" action="{{:MyUrl('admin/navigation/save')}}" method="POST" request-type="ajax-reload" request-value="">
<div class="am-form-group">
<label>导航级别</label>
<select class="am-radius chosen-select" name="pid" data-placeholder="一级栏目..." data-placeholder="一级栏目..." data-validation-message="导航级别选择错误">
<option value="">一级栏目...</option>
<label>{{:MyLang('navigation.form_item_pid')}}</label>
<select class="am-radius chosen-select" name="pid" data-placeholder="{{:MyLang('navigation.form_item_pid_placeholder')}}" data-validation-message="{{:MyLang('navigation.form_item_pid_message')}}">
<option value="">{{:MyLang('navigation.form_item_pid_placeholder')}}</option>
{{foreach $nav_header_pid_list as $v}}
<option value="{{$v.id}}">{{$v.name}}</option>
{{/foreach}}
</select>
</div>
<div class="am-form-group">
<label>页面设计<span class="am-form-group-label-tips-must">*</span></label>
<select class="am-radius chosen-select" name="value" data-placeholder="{{:MyLang('please_select_tips')}}" data-validation-message="页面设计选择有误" required>
<label>{{$add_type_list.design}}<span class="am-form-group-label-tips-must">*</span></label>
<select class="am-radius chosen-select" name="value" data-placeholder="{{:MyLang('please_select_tips')}}" data-validation-message="{{:MyLang('navigation.form_item_value_design_message')}}" required>
<option value="">{{:MyLang('please_select_tips')}}</option>
{{foreach $design_list as $v}}
<option value="{{$v.id}}">{{$v.name}}</option>
@ -291,13 +261,10 @@
</select>
</div>
<div class="am-form-group">
<label>导航名称<span class="am-form-group-label-tips">默认页面设计名称</span></label>
<input type="text" placeholder="导航名称" name="name" maxlength="16" data-validation-message="导航名称格式 2~16 个字符" class="am-radius" />
</div>
<div class="am-form-group">
<label>{{:MyLang('form_sort_title')}}</label>
<input type="number" placeholder="{{:MyLang('form_sort_title')}}" name="sort" min="0" max="255" data-validation-message="{{:MyLang('form_sort_message')}}" class="am-radius" value="0" required />
<label>{{:MyLang('navigation.form_item_name')}}<span class="am-form-group-label-tips">{{:MyLang('navigation.form_item_name_tips', ['type'=>$add_type_list['design']])}}</span></label>
<input type="text" placeholder="{{:MyLang('navigation.form_item_name_message')}}" name="name" maxlength="16" data-validation-message="{{:MyLang('navigation.form_item_name_message')}}" class="am-radius" />
</div>
{{include file="lib/sort" /}}
{{include file="lib/is_show" /}}
{{include file="lib/is_new_window_open" /}}
<div class="am-form-popup-submit">

View File

@ -1,8 +1,9 @@
<ul class="am-nav am-nav-pills table-nav second-nav">
<li {{if $nav_type eq 'header'}}class="am-active"{{/if}} data-type="header">
<a href="{{:MyUrl('admin/navigation/index', ['nav_type'=>'header'])}}">中间导航</a>
</li>
<li {{if $nav_type eq 'footer'}}class="am-active"{{/if}} data-type="footer">
<a href="{{:MyUrl('admin/navigation/index', ['nav_type'=>'footer'])}}">底部导航</a>
</li>
</ul>
{{if !empty($nav_data)}}
<ul class="am-nav am-nav-pills table-nav second-nav">
{{foreach $nav_data as $v}}
<li {{if $nav_type eq $v['type']}}class="am-active"{{/if}} data-type="{{$v.type}}">
<a href="{{:MyUrl('admin/navigation/index', ['nav_type'=>$v['type']])}}">{{$v.name}}</a>
</li>
{{/foreach}}
</ul>
{{/if}}

View File

@ -8,7 +8,7 @@
<!-- 订单商品 -->
<div class="am-panel am-panel-default">
<div class="am-panel-hd">订单商品</div>
<div class="am-panel-hd">{{:MyLang('order.detail_goods_title')}}</div>
<div class="am-panel-bd">
{{if !empty($data['items'])}}
{{:ModuleInclude('order/module/goods', $data)}}
@ -21,18 +21,18 @@
<!-- 销售订单 - 收货地址 -->
{{if $data['order_model'] eq 0 and !empty($data['address_data'])}}
<div class="am-panel am-panel-default">
<div class="am-panel-hd">收货地址</div>
<div class="am-panel-hd">{{:MyLang('order.detail_user_address_title')}}</div>
<div class="am-panel-bd">
<p>
<span>收件人</span>
<span>{{:MyLang('order.detail_user_address_name')}}</span>
<span>{{$data.address_data.name}}</span>
</p>
<p>
<span>收件电话</span>
<span>{{:MyLang('order.detail_user_address_tel')}}</span>
<span>{{$data.address_data.tel}}</span>
</p>
<p>
<span>详细地址</span>
<span>{{:MyLang('order.detail_user_address_value')}}</span>
<span>{{$data.address_data.province_name}}</span>
<span>{{$data.address_data.city_name}}</span>
<span>{{$data.address_data.county_name}}</span>
@ -40,20 +40,20 @@
</p>
{{if !empty($data['address_data']['idcard_name']) or !empty($data['address_data']['idcard_number']) or !empty($data['address_data']['idcard_front']) or !empty($data['address_data']['idcard_back'])}}
<div class="am-alert am-alert-secondary">
<p class="am-margin-bottom-xs"><strong>身份证信息</strong></p>
<p class="am-margin-bottom-xs"><strong>{{:MyLang('order.detail_user_address_idcard')}}</strong></p>
<hr data-am-widget="divider" style="" class="am-divider am-divider-dashed am-margin-vertical-0" />
<div class="am-margin-top-xs">
<p>姓名{{$data.address_data.idcard_name}}</p>
<p>号码{{$data.address_data.idcard_number}}</p>
<p>{{:MyLang('order.detail_user_address_idcard_name')}}{{$data.address_data.idcard_name}}</p>
<p>{{:MyLang('order.detail_user_address_idcard_number')}}{{$data.address_data.idcard_number}}</p>
{{if !empty($data['address_data']['idcard_front']) or !empty($data['address_data']['idcard_back'])}}
<p class="am-nbfc"><span class="am-fl">照片</span>{{if !empty($data['address_data']['idcard_front'])}}<a href="{{$data.address_data.idcard_front}}" target="_blank" class="am-fl"><img width="100" height="68" src="{{$data.address_data.idcard_front}}" alt="身份证人像面" class="am-img-thumbnail am-radius am-block" /></a>{{/if}} {{if !empty($data['address_data']['idcard_back'])}}<a href="{{$data.address_data.idcard_back}}" target="_blank" class="am-fl am-margin-left-xs"><img width="100" height="68" src="{{$data.address_data.idcard_back}}" alt="身份证人像面" class="am-img-thumbnail am-radius am-block" /></a>{{/if}}</p>
<p class="am-nbfc"><span class="am-fl">{{:MyLang('order.detail_user_address_idcard_pic')}}</span>{{if !empty($data['address_data']['idcard_front'])}}<a href="{{$data.address_data.idcard_front}}" target="_blank" class="am-fl"><img width="100" height="68" src="{{$data.address_data.idcard_front}}" class="am-img-thumbnail am-radius am-block" /></a>{{/if}} {{if !empty($data['address_data']['idcard_back'])}}<a href="{{$data.address_data.idcard_back}}" target="_blank" class="am-fl am-margin-left-xs"><img width="100" height="68" src="{{$data.address_data.idcard_back}}" class="am-img-thumbnail am-radius am-block" /></a>{{/if}}</p>
{{/if}}
</div>
</div>
{{/if}}
{{if !empty($data['address_data']['lng']) and !empty($data['address_data']['lat']) and $data['address_data']['lng'] neq 0 and $data['address_data']['lat'] neq 0}}
<div class="am-margin-top-xs">
<button type="button" class="am-btn am-btn-success am-btn-xs am-radius am-icon-map-marker am-padding-xs submit-map-popup" data-lng="{{$data.address_data.lng}}" data-lat="{{$data.address_data.lat}}"> 查看位置</button>
<button type="button" class="am-btn am-btn-success am-btn-xs am-radius am-icon-map-marker am-padding-xs submit-map-popup" data-lng="{{$data.address_data.lng}}" data-lat="{{$data.address_data.lat}}"> {{:MyLang('view_map_title')}}</button>
</div>
{{/if}}
</div>
@ -63,18 +63,18 @@
<!-- 自提订单 - 取货信息 -->
{{if $data['order_model'] eq 2 and !empty($data['address_data'])}}
<div class="am-panel am-panel-default">
<div class="am-panel-hd">取货信息</div>
<div class="am-panel-hd">{{:MyLang('order.detail_take_address_title')}}</div>
<div class="am-panel-bd">
<!-- 取货地址 -->
<div class="am-alert am-alert-warning">
<p>
<span>联系信息</span>
<span>{{:MyLang('order.detail_take_address_contact')}}</span>
<span>{{$data.address_data.name}}</span>
<span> / </span>
<span>{{$data.address_data.tel}}</span>
</p>
<p>
<span>详细地址</span>
<span>{{:MyLang('order.detail_take_address_value')}}</span>
<span>{{$data.address_data.province_name}}</span>
<span>{{$data.address_data.city_name}}</span>
<span>{{$data.address_data.county_name}}</span>
@ -82,7 +82,7 @@
</p>
{{if isset($data['address_data']['lng']) and isset($data['address_data']['lat']) and $data['address_data']['lng'] neq 0 and $data['address_data']['lat'] neq 0}}
<div class="am-margin-top-xs">
<button type="button" class="am-btn am-btn-success am-btn-xs am-radius am-icon-map-marker am-padding-xs submit-map-popup" data-lng="{{$data.address_data.lng}}" data-lat="{{$data.address_data.lat}}"> 查看位置</button>
<button type="button" class="am-btn am-btn-success am-btn-xs am-radius am-icon-map-marker am-padding-xs submit-map-popup" data-lng="{{$data.address_data.lng}}" data-lat="{{$data.address_data.lat}}"> {{:MyLang('view_map_title')}}</button>
</div>
{{/if}}
</div>
@ -95,7 +95,7 @@
<!-- 虚拟订单 - 密钥信息 -->
{{if $data['order_model'] eq 3}}
<div class="am-panel am-panel-default">
<div class="am-panel-hd">密钥信息</div>
<div class="am-panel-hd">{{:MyLang('order.detail_fictitious_title')}}</div>
<div class="am-panel-bd">
{{if !empty($data['items'])}}
<ul class="am-list am-margin-bottom-0 fictitious-container">
@ -106,7 +106,7 @@
</div>
<div class="am-u-sm-10 am-list-item-text">
{{if empty($goods['fictitious_goods_value'])}}
<span>未配置数据</span>
<span class="am-text-grey">{{:MyLang('no_config_data_tips')}}</span>
{{else /}}
{{$goods.fictitious_goods_value|raw}}
{{/if}}

View File

@ -12,8 +12,8 @@
<div class="am-modal-bd">
<form class="am-form form-validation-take" method="post" action="{{:MyUrl('admin/order/delivery')}}" request-type="ajax-reload">
<div class="am-form-group am-form-group-refreshing am-margin-bottom-0">
<label>取货码</label>
<input type="text" autocomplete="off" name="extraction_code" placeholder="取货码" minlength="4" maxlength="4" data-validation-message="请填写4位数取货码" class="am-radius" required />
<label>{{:MyLang('order.form_item_take')}}</label>
<input type="text" autocomplete="off" name="extraction_code" placeholder="{{:MyLang('order.form_item_take_message')}}" minlength="4" maxlength="4" data-validation-message="{{:MyLang('order.form_item_take_message')}}" class="am-radius" required />
</div>
<div class="am-form-group am-form-group-refreshing">
<input type="hidden" name="id" value="0" />
@ -29,7 +29,7 @@
<div class="am-popup am-radius" id="order-delivery-popup">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title">发货操作</h4>
<h4 class="am-popup-title">{{:MyLang('order.form_delivery_title')}}</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
@ -59,8 +59,8 @@
</div>
<div class="am-margin-top-sm">
<label>快递单号</label>
<input type="text" autocomplete="off" name="express_number" placeholder="快递单号" minlength="1" data-validation-message="请填写快递单号" class="am-radius" required />
<label>{{:MyLang('order.form_item_express_number')}}</label>
<input type="text" autocomplete="off" name="express_number" placeholder="{{:MyLang('order.form_item_express_number')}}" minlength="1" data-validation-message="{{:MyLang('order.form_item_express_number_message')}}" class="am-radius" required />
</div>
<div class="am-form-popup-submit">
@ -78,7 +78,7 @@
<div class="am-popup am-radius" id="order-pay-popup">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title">支付操作</h4>
<h4 class="am-popup-title">{{:MyLang('order.form_payment_title')}}</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">

View File

@ -16,20 +16,20 @@
</p>
{{if !empty($module_data['address_data']['idcard_name']) or !empty($module_data['address_data']['idcard_number']) or !empty($module_data['address_data']['idcard_front']) or !empty($module_data['address_data']['idcard_back'])}}
<div class="am-alert am-alert-secondary am-margin-vertical-0">
<p class="am-margin-bottom-xs"><strong>身份证信息</strong></p>
<p class="am-margin-bottom-xs"><strong>{{:MyLang('order.detail_user_address_idcard')}}</strong></p>
<hr data-am-widget="divider" style="" class="am-divider am-divider-dashed am-margin-vertical-0" />
<div class="am-margin-top-xs">
<p>姓名{{$module_data.address_data.idcard_name}}</p>
<p>号码{{$module_data.address_data.idcard_number}}</p>
<p>{{:MyLang('order.detail_user_address_idcard_name')}}{{$module_data.address_data.idcard_name}}</p>
<p>{{:MyLang('order.detail_user_address_idcard_number')}}{{$module_data.address_data.idcard_number}}</p>
{{if !empty($module_data['address_data']['idcard_front']) or !empty($module_data['address_data']['idcard_back'])}}
<p class="am-nbfc"><span class="am-fl">照片</span>{{if !empty($module_data['address_data']['idcard_front'])}}<a href="{{$module_data.address_data.idcard_front}}" target="_blank" class="am-fl"><img width="35" height="27" src="{{$module_data.address_data.idcard_front}}" alt="身份证人像面" class="am-img-thumbnail am-radius am-block" /></a>{{/if}} {{if !empty($module_data['address_data']['idcard_back'])}}<a href="{{$module_data.address_data.idcard_back}}" target="_blank" class="am-fl am-margin-left-xs"><img width="35" height="27" src="{{$module_data.address_data.idcard_back}}" alt="身份证人像面" class="am-img-thumbnail am-radius am-block" /></a>{{/if}}</p>
<p class="am-nbfc"><span class="am-fl">{{:MyLang('order.detail_user_address_idcard_pic')}}</span>{{if !empty($module_data['address_data']['idcard_front'])}}<a href="{{$module_data.address_data.idcard_front}}" target="_blank" class="am-fl"><img width="35" height="27" src="{{$module_data.address_data.idcard_front}}" class="am-img-thumbnail am-radius am-block" /></a>{{/if}} {{if !empty($module_data['address_data']['idcard_back'])}}<a href="{{$module_data.address_data.idcard_back}}" target="_blank" class="am-fl am-margin-left-xs"><img width="35" height="27" src="{{$module_data.address_data.idcard_back}}" class="am-img-thumbnail am-radius am-block" /></a>{{/if}}</p>
{{/if}}
</div>
</div>
{{/if}}
{{if isset($module_data['address_data']['lng']) and isset($module_data['address_data']['lat']) and $module_data['address_data']['lng'] neq 0 and $module_data['address_data']['lat'] neq 0}}
<div class="am-margin-top-xs">
<button type="button" class="am-btn am-btn-success am-btn-xs am-radius am-icon-map-marker am-padding-xs submit-map-popup" data-lng="{{$module_data.address_data.lng}}" data-lat="{{$module_data.address_data.lat}}"> 查看位置</button>
<button type="button" class="am-btn am-btn-success am-btn-xs am-radius am-icon-map-marker am-padding-xs submit-map-popup" data-lng="{{$module_data.address_data.lng}}" data-lat="{{$module_data.address_data.lat}}"> {{:MyLang('view_map_title')}}</button>
</div>
{{/if}}
</div>

View File

@ -1,8 +1,8 @@
<!-- 最新售后信息 -->
{{if !empty($module_data) and !empty($module_data['aftersale_first'])}}
<p>状态{{$module_data.aftersale_first.status_text}}</p>
<p>类型{{$module_data.aftersale_first.type_text}}</p>
<p>金额<strong class="am-text-danger">{{$module_data.aftersale_first.price}}</strong></p>
<p>数量{{$module_data.aftersale_first.number}}</p>
<p>原因{{$module_data.aftersale_first.reason}}</p>
<p>{{:MyLang('order.detail_aftersale_status')}}{{$module_data.aftersale_first.status_text}}</p>
<p>{{:MyLang('order.detail_aftersale_type')}}{{$module_data.aftersale_first.type_text}}</p>
<p>{{:MyLang('order.detail_aftersale_price')}}<strong class="am-text-danger">{{$module_data.aftersale_first.price}}</strong></p>
<p>{{:MyLang('order.detail_aftersale_number')}}{{$module_data.aftersale_first.number}}</p>
<p>{{:MyLang('order.detail_aftersale_reason')}}{{$module_data.aftersale_first.reason}}</p>
{{/if}}

View File

@ -26,14 +26,14 @@
{{if $module_data['pay_status'] eq 1 and $module_data['pay_price'] lt $module_data['total_price'] and !in_array($module_data['status'], [0,1,5,6])}}
<p class="am-text-danger am-animation-shake am-animation-delay-1">
<i class="am-icon-warning am-text-lg"></i>
<span class="am-text-sm">请注意、该订单支付金额小于总价金额</span>
<span class="am-text-sm">{{:MyLang('order.detail_payment_amount_less_tips')}}</span>
</p>
<hr data-am-widget="divider" class="am-divider am-divider-dashed" />
{{/if}}
{{if $module_data['pay_status'] eq 0 and in_array($module_data['status'], [2,3,4])}}
<p class="am-text-danger am-animation-shake am-animation-delay-1">
<i class="am-icon-warning am-text-lg"></i>
<span class="am-text-sm">请注意、该订单还未支付</span>
<span class="am-text-sm">{{:MyLang('order.detail_no_payment_tips')}}</span>
</p>
<hr data-am-widget="divider" class="am-divider am-divider-dashed" />
{{/if}}
@ -128,7 +128,7 @@
<span>{{$module_data.currency_data.currency_symbol}}{{$item.price}}x{{$item.buy_number}}</span>
<div class="am-fr">
{{if $item['returned_quantity'] gt 0 or $item['refund_price'] gt 0}}
<span class="am-text-danger am-margin-left-lg">已退 {{$item.returned_quantity}} / {{$module_data.currency_data.currency_symbol}}{{$item.refund_price}}</span>
<span class="am-text-danger am-margin-left-lg">{{:MyLang('already_retreat_title')}} {{$item.returned_quantity}} / {{$module_data.currency_data.currency_symbol}}{{$item.refund_price}}</span>
{{/if}}
</div>
</div>

View File

@ -1,2 +1,2 @@
<!-- 是否评论 -->
{{if !empty($module_data) and isset($module_data['user_is_comments']) and $module_data['user_is_comments'] gt 1}}已{{else /}}未{{/if}}评论
{{if !empty($module_data) and isset($module_data['user_is_comments']) and $module_data['user_is_comments'] gt 1}}{{:MyLang('already_title')}}{{else /}}{{:MyLang('no_title')}}{{/if}}{{:MyLang('comment_title')}}

View File

@ -5,7 +5,7 @@
</button>
{{if !empty($module_data['operate_data'])}}
{{if $module_data['operate_data']['is_confirm'] eq 1}}
<button type="button" class="am-btn am-btn-primary am-btn-xs am-radius am-btn-block submit-ajax" data-url="{{:MyUrl('admin/order/confirm')}}" data-id="{{$module_data.id}}" data-value="{{$module_data.user_id}}" data-view="reload" data-msg="是否操作确认,操作后不可恢复!">
<button type="button" class="am-btn am-btn-primary am-btn-xs am-radius am-btn-block submit-ajax" data-url="{{:MyUrl('admin/order/confirm')}}" data-id="{{$module_data.id}}" data-value="{{$module_data.user_id}}" data-view="reload" data-msg="{{:MyLang('confirm_confirm_tips')}}">
<i class="am-icon-check-circle-o"></i>
<span>{{:MyLang('confirm_title')}}</span>
</button>
@ -18,31 +18,31 @@
{{/if}}
{{if $module_data['operate_data']['is_delivery'] eq 1}}
{{if $module_data['order_model'] eq 2}}
<button type="button" class="am-btn am-btn-secondary am-btn-xs am-radius am-btn-block submit-take" data-id="{{$module_data.id}}" data-user-id="{{$module_data.user_id}}" data-am-modal="{target: '#order-take-modal', closeViaDimmer: 0, width: 200, height: 160}" {{if !empty($module_data) and !empty($module_data['aftersale_first'])}}data-am-popover="{content: '订单有售后、请注意核对', trigger: 'hover focus', theme: 'danger sm'}"{{/if}}>
<button type="button" class="am-btn am-btn-secondary am-btn-xs am-radius am-btn-block submit-take" data-id="{{$module_data.id}}" data-user-id="{{$module_data.user_id}}" data-am-modal="{target: '#order-take-modal', closeViaDimmer: 0, width: 200, height: 160}" {{if !empty($module_data) and !empty($module_data['aftersale_first'])}}data-am-popover="{content: '{{:MyLang('delivery_operate_aftersale_tips')}}', trigger: 'hover focus', theme: 'danger sm'}"{{/if}}>
<i class="am-icon-check"></i>
<span>{{:MyLang('take_title')}}</span>
</button>
{{else /}}
<button type="button" class="am-btn am-btn-secondary am-btn-xs am-radius am-btn-block submit-delivery" data-url="{{:MyUrl('admin/order/delivery')}}" data-id="{{$module_data.id}}" data-user-id="{{$module_data.user_id}}" data-express-id="{{$module_data.express_id}}" data-am-modal="{target: '#order-delivery-popup'}" {{if !empty($module_data) and !empty($module_data['aftersale_first'])}}data-am-popover="{content: '订单有售后、请注意核对', trigger: 'hover focus', theme: 'danger sm'}"{{/if}}>
<button type="button" class="am-btn am-btn-secondary am-btn-xs am-radius am-btn-block submit-delivery" data-url="{{:MyUrl('admin/order/delivery')}}" data-id="{{$module_data.id}}" data-user-id="{{$module_data.user_id}}" data-express-id="{{$module_data.express_id}}" data-am-modal="{target: '#order-delivery-popup'}" {{if !empty($module_data) and !empty($module_data['aftersale_first'])}}data-am-popover="{content: '{{:MyLang('delivery_operate_aftersale_tips')}}', trigger: 'hover focus', theme: 'danger sm'}"{{/if}}>
<i class="am-icon-send-o"></i>
<span>{{:MyLang('delivery_title')}}</span>
</button>
{{/if}}
{{/if}}
{{if $module_data['operate_data']['is_collect'] eq 1}}
<button type="button" class="am-btn am-btn-success am-btn-xs am-radius am-btn-block submit-ajax" data-url="{{:MyUrl('admin/order/collect')}}" data-id="{{$module_data.id}}" data-value="{{$module_data.user_id}}" data-view="reload" data-msg="是否操作收货,操作后不可恢复!">
<button type="button" class="am-btn am-btn-success am-btn-xs am-radius am-btn-block submit-ajax" data-url="{{:MyUrl('admin/order/collect')}}" data-id="{{$module_data.id}}" data-value="{{$module_data.user_id}}" data-view="reload" data-msg="{{:MyLang('collect_confirm_tips')}}">
<i class="am-icon-check-circle-o"></i>
<span>{{:MyLang('collect_title')}}</span>
</button>
{{/if}}
{{if $module_data['operate_data']['is_cancel'] eq 1}}
<button type="button" class="am-btn am-btn-warning am-btn-xs am-radius am-btn-block submit-ajax" data-url="{{:MyUrl('admin/order/cancel')}}" data-id="{{$module_data.id}}" data-value="{{$module_data.user_id}}" data-view="reload" data-msg="取消后无法恢复,确定继续吗?">
<button type="button" class="am-btn am-btn-warning am-btn-xs am-radius am-btn-block submit-ajax" data-url="{{:MyUrl('admin/order/cancel')}}" data-id="{{$module_data.id}}" data-value="{{$module_data.user_id}}" data-view="reload" data-msg="{{:MyLang('cancel_confirm_tips')}}">
<i class="am-icon-paint-brush"></i>
<span>{{:MyLang('cancel_title')}}</span>
</button>
{{/if}}
{{if $module_data['operate_data']['is_delete'] eq 1}}
<button type="button" class="am-btn am-btn-danger am-btn-xs am-radius am-btn-block submit-ajax" data-url="{{:MyUrl('admin/order/delete')}}" data-id="{{$module_data.id}}" data-value="{{$module_data.user_id}}" data-view="delete" data-msg="删除后无法恢复,确定继续吗?">
<button type="button" class="am-btn am-btn-danger am-btn-xs am-radius am-btn-block submit-ajax" data-url="{{:MyUrl('admin/order/delete')}}" data-id="{{$module_data.id}}" data-value="{{$module_data.user_id}}" data-view="delete" data-msg="{{:MyLang('delete_confirm_tips')}}">
<i class="am-icon-trash-o"></i>
<span>{{:MyLang('delete_title')}}</span>
</button>

View File

@ -2,6 +2,6 @@
{{if !empty($module_data)}}
<p>{{$module_data.status_name}}</p>
{{if $module_data['user_is_delete_time'] neq 0}}
<p class="am-text-warning">用户已删除</p>
<p class="am-text-warning">{{:MyLang('user_delete_operate_tips')}}</p>
{{/if}}
{{/if}}

View File

@ -1,16 +1,16 @@
<!-- 取货信息 -->
{{if !empty($module_data) and !empty($module_data['extraction_data'])}}
<p>
<span>取货码 :</span>
<span>{{:MyLang('order.form_item_take')}} :</span>
{{if empty($module_data['extraction_data']['code'])}}
<span class="am-text-danger"></span>
<span class="am-text-danger">{{:MyLang('no_data')}}</span>
{{else /}}
<span class="am-badge am-badge-success am-radius">{{$module_data.extraction_data.code}}</span>
{{/if}}
</p>
{{if !empty($module_data['extraction_data']['images'])}}
<p class="am-margin-top-xs">
<img class="am-img-thumbnail" src="{{$module_data.extraction_data.images}}" alt="取货码" width="100" height="100" />
<img class="am-img-thumbnail" src="{{$module_data.extraction_data.images}}" alt="{{:MyLang('order.form_item_take')}}" width="100" height="100" />
</p>
{{/if}}
{{/if}}

View File

@ -7,12 +7,12 @@
<div class="am-popup" id="order-audit-popup">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title">审核操作</h4>
<h4 class="am-popup-title">{{:MyLang('orderaftersale.form_audit_title')}}</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<dl class="dl-content">
<dt>用户信息</dt>
<dt>{{:MyLang('orderaftersale.form_user_info_title')}}</dt>
<dd class="user-info">
<img src="{{$attachment_host}}/static/common/images/user-img-sm.gif" class="am-img-thumbnail am-radius am-align-left am-margin-right-xs am-margin-bottom-0 am-fl" width="35" height="35" />
<ul class="user-base">
@ -22,31 +22,31 @@
<li class="email">{{:MyLang('user_email_title')}}<span>...</span></li>
</ul>
</dd>
<dt>申请信息</dt>
<dt>{{:MyLang('orderaftersale.form_apply_info_title')}}</dt>
<dd class="apply-info">
<ul>
<li class="type">类型<span>...</span></li>
<li class="reason">原因<span>...</span></li>
<li class="number">数量<span>...</span></li>
<li class="price">金额<span class="am-text-warning">...</span></li>
<li class="msg">说明<span>...</span></li>
<li class="type">{{:MyLang('orderaftersale.forn_apply_info_type')}}<span>...</span></li>
<li class="reason">{{:MyLang('orderaftersale.forn_apply_info_reason')}}<span>...</span></li>
<li class="number">{{:MyLang('orderaftersale.forn_apply_info_number')}}<span>...</span></li>
<li class="price">{{:MyLang('orderaftersale.forn_apply_info_price')}}<span class="am-text-warning">...</span></li>
<li class="msg">{{:MyLang('orderaftersale.forn_apply_info_msg')}}<span>...</span></li>
</ul>
</dd>
</dl>
<form class="am-form form-validation-audit" action="{{:MyUrl('admin/orderaftersale/audit')}}" method="POST" request-type="ajax-reload">
<form class="am-form form-validation-audit am-form-popup-fixed" action="{{:MyUrl('admin/orderaftersale/audit')}}" method="POST" request-type="ajax-reload">
<div class="am-form-group reply-submit am-form-group-refreshing">
<label class="am-block">退款方式</label>
<label class="am-block">{{:MyLang('orderaftersale.form_item_refundment')}}</label>
{{if !empty($common_order_aftersale_refundment_list)}}
{{foreach $common_order_aftersale_refundment_list as $v}}
<label class="am-radio-inline am-success">
<input type="radio" name="refundment" value="{{$v.value}}" data-am-ucheck data-validation-message="请选择退款方式" required /> {{$v.name}}
<input type="radio" name="refundment" value="{{$v.value}}" data-am-ucheck data-validation-message="{{:MyLang('orderaftersale.form_item_refundment_message')}}" required /> {{$v.name}}
</label>
{{/foreach}}
{{/if}}
</div>
<div class="am-form-group reply-submit am-form-group-refreshing am-margin-top-sm">
<div class="am-form-popup-submit">
<input type="hidden" name="id" value="" />
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-sm am-btn-block" data-am-loading="{loadingText:'{{:MyLang('processing_tips')}}'}">{{:MyLang('confirm_title')}}</button>
</div>
@ -59,12 +59,12 @@
<div class="am-popup" id="order-refuse-popup">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title">拒绝操作</h4>
<h4 class="am-popup-title">{{:MyLang('orderaftersale.form_refuse_title')}}</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<dl class="dl-content">
<dt>用户信息</dt>
<dt>{{:MyLang('orderaftersale.form_user_info_title')}}</dt>
<dd class="user-info">
<img src="{{$attachment_host}}/static/common/images/user-img-sm.gif" class="am-img-thumbnail am-radius am-align-left am-margin-right-xs am-margin-bottom-0 am-fl" width="35" height="35" />
<ul class="user-base">
@ -74,25 +74,25 @@
<li class="email">{{:MyLang('user_email_title')}}<span>...</span></li>
</ul>
</dd>
<dt>申请信息</dt>
<dt>{{:MyLang('orderaftersale.form_apply_info_title')}}</dt>
<dd class="apply-info">
<ul>
<li class="type">类型<span>...</span></li>
<li class="reason">原因<span>...</span></li>
<li class="number">数量<span>...</span></li>
<li class="price">金额<span class="am-text-warning">...</span></li>
<li class="msg">说明<span>...</span></li>
<li class="type">{{:MyLang('orderaftersale.forn_apply_info_type')}}<span>...</span></li>
<li class="reason">{{:MyLang('orderaftersale.forn_apply_info_reason')}}<span>...</span></li>
<li class="number">{{:MyLang('orderaftersale.forn_apply_info_number')}}<span>...</span></li>
<li class="price">{{:MyLang('orderaftersale.forn_apply_info_price')}}<span class="am-text-warning">...</span></li>
<li class="msg">{{:MyLang('orderaftersale.forn_apply_info_msg')}}<span>...</span></li>
</ul>
</dd>
</dl>
<form class="am-form form-validation-refuse" action="{{:MyUrl('admin/orderaftersale/refuse')}}" method="POST" request-type="ajax-reload">
<form class="am-form form-validation-refuse am-form-popup-fixed" action="{{:MyUrl('admin/orderaftersale/refuse')}}" method="POST" request-type="ajax-reload">
<div class="am-form-group reply-submit am-form-group-refreshing">
<label>拒绝原因</label>
<textarea name="refuse_reason" rows="5" class="am-radius" placeholder="拒绝原因格式 2~230 个字符" data-validation-message="拒绝原因格式 2~230 个字符" minlength="2" maxlength="230" required></textarea>
<label>{{:MyLang('orderaftersale.form_item_refuse_reason')}}</label>
<textarea name="refuse_reason" rows="5" class="am-radius" placeholder="{{:MyLang('orderaftersale.form_item_refuse_reason_message')}}" data-validation-message="{{:MyLang('orderaftersale.form_item_refuse_reason_message')}}" minlength="2" maxlength="230" required></textarea>
</div>
<div class="am-form-group reply-submit am-form-group-refreshing am-margin-top-sm">
<div class="am-form-popup-submit">
<input type="hidden" name="id" value="" />
<button type="submit" class="am-btn am-btn-danger am-radius am-btn-sm am-btn-block" data-am-loading="{loadingText:'{{:MyLang('processing_tips')}}'}">{{:MyLang('confirm_title')}}</button>
</div>

View File

@ -7,7 +7,7 @@
<p>
<i class="am-icon-spinner am-icon-pulse am-icon-lg"></i>
</p>
<p class="msg-text am-margin-top-sm">正在获取中...</p>
<p class="msg-text am-margin-top-sm">{{:MyLang('packageinstall.get_loading_tips')}}</p>
</div>
<!-- 安装成功 -->
@ -15,17 +15,17 @@
<p>
<i class="am-icon-check-circle am-icon-lg am-text-success"></i>
</p>
<p class="msg-text am-margin-top-sm">安装成功</p>
<a class="am-btn am-btn-secondary am-btn-xs am-radius am-margin-top-lg" href="{{$data.admin_url}}">返回后台</a>
<p class="msg-text am-margin-top-sm">{{:MyLang('install_success')}}</p>
<a class="am-btn am-btn-secondary am-btn-xs am-radius am-margin-top-lg" href="{{$data.admin_url}}">{{:MyLang('packageinstall.back_admin_title')}}</a>
</div>
<!-- 错误提示 -->
<div class="table-no error-container am-hide">
<p>
<i class="am-icon-warning am-text-danger"></i>
<span class="msg-text am-margin-left-xs am-text-danger">异常错误</span>
<span class="msg-text am-margin-left-xs am-text-danger">{{:MyLang('error')}}</span>
</p>
<a class="am-btn am-btn-secondary am-btn-xs am-radius am-margin-top-lg" href="{{$data.admin_url}}">返回后台</a>
<a class="am-btn am-btn-secondary am-btn-xs am-radius am-margin-top-lg" href="{{$data.admin_url}}">{{:MyLang('packageinstall.back_admin_title')}}</a>
</div>
</div>
<!-- content end -->

View File

@ -5,7 +5,7 @@
{{block name="form_operate_top"}}
<!-- 支付请求日志是否有权限 -->
{{if AdminIsPower('payrequestlog', 'index')}}
<a href="{{:MyUrl('admin/payrequestlog/index')}}" class="am-btn am-btn-secondary am-radius am-btn-xs am-icon-forumbee"> 支付请求日志</a>
<a href="{{:MyUrl('admin/payrequestlog/index')}}" class="am-btn am-btn-secondary am-radius am-btn-xs am-icon-forumbee"> {{:MyLang('paylog.pay_request_title')}}</a>
{{/if}}
<!-- 父级内容 -->

View File

@ -3,7 +3,7 @@
<!-- 表单顶部操作栏 -->
{{block name="form_operate_top"}}
<button type="button" class="am-btn am-btn-success am-btn-xs am-icon-cloud-upload am-radius" data-am-modal="{target: '#payment-upload-win'}"> 上传</button>
<button type="button" class="am-btn am-btn-success am-btn-xs am-icon-cloud-upload am-radius" data-am-modal="{target: '#payment-upload-win'}"> {{:MyLang('upload_title')}}</button>
{{if !empty($store_payment_url)}}
<a class="am-margin-left-sm" href="{{$store_payment_url}}" target="_blank">更多支付插件下载 <i class="am-icon-external-link"></i></a>
{{/if}}
@ -17,25 +17,27 @@
<div class="am-popup am-radius" id="payment-upload-win">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title">上传</h4>
<h4 class="am-popup-title">{{:MyLang('upload_title')}}</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<!-- win form start -->
<form class="am-form form-validation am-form-popup-fixed" action="{{:MyUrl('admin/payment/upload')}}" method="POST" request-type="ajax-reload" enctype="multipart/form-data">
<div class="am-alert am-radius am-alert-tips">
<p>1 类名必须于文件名一致(去除 .php ),如 Alipay.php 则取 Alipay</p>
<p>2 类必须定义的方法</p>
<p class="am-margin-left-lg">2.1 Config 配置方法</p>
<p class="am-margin-left-lg">2.2 Pay 支付方法</p>
<p class="am-margin-left-lg">2.3 Respond 回调方法</p>
<p class="am-margin-left-lg">2.4 Notify 异步回调方法可选、未定义则调用Respond方法</p>
<p class="am-margin-left-lg">2.5 Refund 退款方法(可选、未定义则不能发起原路退款)</p>
<p>3 可自定义输出内容方法</p>
<p class="am-margin-left-lg">3.1 SuccessReturn 支付成功(可选)</p>
<p class="am-margin-left-lg">3.2 ErrorReturn 支付失败(可选)</p>
<p class="am-margin-top-xs am-text-danger">PS以上条件不满足则无法查看插件将插件放入.zip压缩包中上传、支持一个压缩中包含多个支付插件</p>
</div>
{{if is_array(MyLang('payment.upload_top_list_tips'))}}
<div class="am-alert am-radius am-alert-tips">
{{foreach :MyLang('payment.upload_top_list_tips') as $v}}
<p>{{$v.name}}</p>
{{if !empty($v['item']) and is_array($v['item'])}}
<div class="am-margin-left-lg">
{{foreach $v.item as $vs}}
<p>{{$vs}}</p>
{{/foreach}}
</div>
{{/if}}
{{/foreach}}
<p class="am-margin-top-xs am-text-danger">{{:MyLang('payment.upload_top_tips_ps')}}</p>
</div>
{{/if}}
<div class="am-form-group am-form-group-refreshing">
<div class="am-form-file">
<button type="button" class="am-btn am-btn-default am-btn-sm am-radius"><i class="am-icon-cloud-upload"></i> {{:MyLang('form_choice_images_title')}}</button>

View File

@ -1,6 +1,6 @@
<!-- 操作栏 -->
{{if $module_data['is_install'] eq 0}}
<button type="button" class="am-btn am-btn-success am-btn-xs am-radius am-btn-block submit-ajax" data-url="{{:MyUrl('admin/payment/install')}}" data-id="{{$module_data.payment}}" data-view="reload" data-msg="安装进行中、确认操作吗?">
<button type="button" class="am-btn am-btn-success am-btn-xs am-radius am-btn-block submit-ajax" data-url="{{:MyUrl('admin/payment/install')}}" data-id="{{$module_data.payment}}" data-view="reload" data-msg="{{:MyLang('install_confirm_tips')}}">
<i class="am-icon-cubes"></i>
<span>{{:MyLang('install_title')}}</span>
</button>
@ -17,7 +17,7 @@
<span>{{:MyLang('edit_title')}}</span>
</a>
<button type="button" class="am-btn am-btn-warning am-btn-xs am-radius am-btn-block submit-ajax" data-url="{{:MyUrl('admin/payment/uninstall')}}" data-id="{{$module_data.payment}}" data-view="reload" data-msg="卸载后不可恢复、确认操作吗?">
<button type="button" class="am-btn am-btn-warning am-btn-xs am-radius am-btn-block submit-ajax" data-url="{{:MyUrl('admin/payment/uninstall')}}" data-id="{{$module_data.payment}}" data-view="reload" data-msg="{{:MyLang('uninstall_confirm_tips')}}">
<i class="am-icon-remove"></i>
<span>{{:MyLang('uninstall_title')}}</span>
</button>

View File

@ -6,19 +6,19 @@
<!-- form start -->
<form class="am-form form-validation" action="{{:MyUrl('admin/payment/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/payment/index')}}" enctype="multipart/form-data">
<legend>
<span class="am-text-default">支付方式{{if empty($data['id'])}}{{:MyLang('created_title')}}{{else /}}{{:MyLang('edit_title')}}{{/if}}</span>
<span class="am-text-default">{{:MyLang('payment.base_nav_title')}}{{if empty($data['id'])}}{{:MyLang('created_title')}}{{else /}}{{:MyLang('edit_title')}}{{/if}}</span>
<a href="{{:MyUrl('admin/payment/index')}}" class="am-fr am-text-sm am-margin-top-sm am-icon-mail-reply"> {{:MyLang('retreat_title')}}</a>
</legend>
{{if empty($data)}}
{{include file="public/not_data" /}}
{{else /}}
<div class="am-form-group">
<label>名称<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" name="name" placeholder="名称" minlength="2" maxlength="60" data-validation-message="名称格式 2~30 个字符" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
<label>{{:MyLang('payment.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" name="name" placeholder="{{:MyLang('payment.form_item_name_message')}}" minlength="2" maxlength="60" data-validation-message="{{:MyLang('payment.form_item_name_message')}}" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
</div>
<div class="am-form-group">
<label>适用终端<span class="am-form-group-label-tips-must">*</span></label>
<select name="apply_terminal" class="am-radius chosen-select" multiple="multiple" minchecked="1" data-placeholder="{{:MyLang('optional_tips')}}" data-validation-message="至少选择一个适用终端" required>
<label>{{:MyLang('payment.form_item_apply_terminal')}}<span class="am-form-group-label-tips-must">*</span></label>
<select name="apply_terminal" class="am-radius chosen-select" multiple="multiple" minchecked="1" data-placeholder="{{:MyLang('optional_tips')}}" data-validation-message="{{:MyLang('payment.form_item_apply_terminal_message')}}" required>
{{foreach $common_platform_type as $v}}
{{if isset($data) and isset($data['apply_terminal_old']) and is_array($data['apply_terminal_old']) and in_array($v['value'], $data['apply_terminal_old'])}}
<option value="{{$v.value}}" {{if isset($data['apply_terminal']) and in_array($v['value'], $data['apply_terminal'])}}selected{{/if}}>{{$v.name}}</option>
@ -28,7 +28,7 @@
</div>
<div class="am-form-group am-form-file">
<label class="am-block">LOGO</label>
<label class="am-block">{{:MyLang('payment.form_item_logo')}}</label>
<ul class="plug-file-upload-view logo-images-view" data-form-name="logo" data-max-number="1" data-dialog-type="images">
{{if !empty($data['logo'])}}
<li>
@ -44,7 +44,7 @@
<!-- plugins config start -->
{{if !empty($data['element'])}}
<div class="am-alert am-alert-secondary">
<label class="am-text-sm am-text-warning">该区域为插件配置填写项,请按照插件文档填写相应的值</label>
<label class="am-text-sm am-text-warning">{{:MyLang('plugins_view_region_config_tips')}}</label>
{{foreach $data.element as $element}}
<div class="am-form-group">
{{if !empty($element['title'])}}
@ -148,20 +148,13 @@
{{/if}}
<!-- plugins config end -->
{{include file="lib/sort" /}}
<div class="am-form-group">
<label>{{:MyLang('form_sort_title')}}</label>
<input type="number" placeholder="{{:MyLang('form_sort_title')}}" name="sort" min="0" max="255" data-validation-message="{{:MyLang('form_sort_message')}}" class="am-radius" value="{{if isset($data['sort'])}}{{$data.sort}}{{else /}}0{{/if}}" required />
</div>
<div class="am-form-group">
<label class="am-block">用户开放</label>
<label class="am-block">{{:MyLang('payment.form_item_is_open_user')}}</label>
<input name="is_open_user" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_open_user']) and $data['is_open_user'] eq 1) or !isset($data['is_open_user'])}}checked="true"{{/if}} />
</div>
<div class="am-form-group">
<label class="am-block">{{:MyLang('form_is_enable_title')}}</label>
<input name="is_enable" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_enable']) and $data['is_enable'] eq 1) or !isset($data['is_enable'])}}checked="true"{{/if}} />
</div>
{{include file="lib/is_enable" /}}
<div class="am-form-group am-form-group-refreshing am-margin-top-lg am-padding-left-0">
<input type="hidden" name="id" {{if !empty($data)}} value="{{$data.id}}"{{/if}} />
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'{{:MyLang('processing_tips')}}'}">{{:MyLang('save_title')}}</button>

View File

@ -4,7 +4,7 @@
<!-- 表单顶部操作栏 -->
{{block name="form_operate_top"}}
<legend>
<span class="am-text-default">支付请求日志</span>
<span class="am-text-default">{{:MyLang('payrequestlog.base_nav_title')}}</span>
<a href="{{:MyUrl('admin/paylog/index')}}" class="am-fr am-text-sm am-margin-top-sm am-icon-mail-reply"> {{:MyLang('retreat_title')}}</a>
</legend>

View File

@ -5,11 +5,11 @@
<div class="content">
<div class="table-no">
<div>
<i class="am-icon-warning"></i>
<span>{{if empty($msg)}}没有相关数据{{else /}}{{$msg}}{{/if}}</span>
<i class="am-icon-skyatlas am-icon-lg"></i>
<p>{{if empty($msg)}}{{:MyLang('no_data')}}{{else /}}{{$msg}}{{/if}}</p>
</div>
<div class="am-margin-top-lg">
<a href="{{:MyUrl('admin/pluginsadmin/index')}}" class="am-btn am-btn-link am-radius am-btn-sm">返回到应用管理 >></a>
<a href="{{:MyUrl('admin/pluginsadmin/index')}}" class="am-btn am-btn-link am-radius am-btn-sm">{{:MyLang('plugins.back_to_plugins_admin')}}</a>
</div>
</div>
</div>

View File

@ -6,24 +6,24 @@
<!-- form start -->
<form class="am-form form-validation" action="{{:MyUrl('admin/pluginsadmin/saveinfo')}}" method="POST" request-type="form" enctype="multipart/form-data">
<legend>
<span class="am-text-default">应用{{if empty($data['id'])}}{{:MyLang('created_title')}}{{else /}}{{:MyLang('edit_title')}}{{/if}}</span>
<span class="am-text-default">{{:MyLang('pluginsadmin.base_nav_title')}}{{if empty($data['id'])}}{{:MyLang('created_title')}}{{else /}}{{:MyLang('edit_title')}}{{/if}}</span>
<a href="{{:MyUrl('admin/pluginsadmin/index')}}" class="am-fr am-text-sm am-margin-top-sm am-icon-mail-reply"> {{:MyLang('retreat_title')}}</a>
</legend>
<div class="am-form-group">
<label>应用唯一标记<span class="am-form-group-label-tips">以数字、字母小写、下划线</span></label>
<input type="text" name="plugins" placeholder="名称" minlength="2" maxlength="60" data-validation-message="应用唯一标记格式 2~60 个字符" pattern="^[a-z0-9_]{2,60}$" class="am-radius" {{if !empty($data)}} value="{{$data.plugins}}"{{/if}} required />
<label>{{:MyLang('pluginsadmin.form_item_plugins')}}<span class="am-form-group-label-tips">{{:MyLang('pluginsadmin.form_item_plugins_tips')}}</span></label>
<input type="text" name="plugins" placeholder="{{:MyLang('pluginsadmin.form_item_plugins_message')}}" minlength="2" maxlength="60" data-validation-message="{{:MyLang('pluginsadmin.form_item_plugins_message')}}" pattern="^[a-z0-9_]{2,60}$" class="am-radius" {{if !empty($data['plugins'])}} value="{{$data.plugins}}"{{/if}} required />
<!-- 校验信息 -->
{{if !empty($verification_msg)}}
<div class="am-alert am-alert-danger" data-am-alert>
{{$verification_msg}} 请重新填写!
{{$verification_msg}} {{:MyLang('pluginsadmin.form_create_error_tips')}}
</div>
{{/if}}
</div>
<div class="am-form-group am-form-group-refreshing am-margin-top-lg am-padding-left-0">
<input type="hidden" name="id" {{if !empty($data)}} value="{{$data.id}}"{{/if}} />
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'{{:MyLang('processing_tips')}}'}">下一步</button>
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'{{:MyLang('processing_tips')}}'}">{{:MyLang('pluginsadmin.form_create_first_step_button_name')}}</button>
</div>
</form>
<!-- form end -->

View File

@ -18,25 +18,25 @@
<div class="plugins-data-list am-nbfc">
{{if !empty($data_list['db_data']) or !empty($data_list['dir_data'])}}
<div class="am-input-group am-input-group-sm plugins-search">
<input type="text" class="am-form-field am-radius" placeholder="请输入名称/描述" />
<input type="text" class="am-form-field am-radius" placeholder="{{:MyLang('pluginsadmin.base_search_input_placeholder')}}" />
<span class="am-input-group-btn">
<button class="am-btn am-btn-default am-radius am-icon-search" type="button"> 搜索</button>
<button class="am-btn am-btn-default am-radius am-icon-search" type="button"> {{:MyLang('search_title')}}</button>
</span>
</div>
<!-- 操作提示 -->
<div class="am-alert">
<p>列表排序方式[ 自定义排序 -> 最早安装 ]</p>
<p>{{:MyLang('pluginsadmin.base_top_tips_one')}}</p>
<p>
<span>可点击拖动图标按钮调整插件调用和展示顺序</span>
<button type="button" class="am-btn am-btn-success am-radius am-btn-xs am-margin-left-xs am-icon-sort-numeric-asc submit-move-sort-open"> 开启排序</button>
<span>{{:MyLang('pluginsadmin.base_top_tips_two')}}</span>
<button type="button" class="am-btn am-btn-success am-radius am-btn-xs am-margin-left-xs am-icon-sort-numeric-asc submit-move-sort-open"> {{:MyLang('pluginsadmin.base_open_sort_title')}}</button>
<button type="button" class="am-btn am-btn-secondary am-radius am-btn-xs am-margin-left-xs am-icon-check submit-move-sort-save am-hide"> {{:MyLang('save_title')}}</button>
<button type="button" class="am-btn am-btn-danger am-radius am-btn-xs am-margin-left-xs am-icon-close submit-move-sort-cancel am-hide"> {{:MyLang('cancel_title')}}</button>
</p>
{{if empty($site_store_info) or empty($site_store_info['user'])}}
<p>
<span>绑定ShopXO应用商店帐号、获取插件最新版本信息、在线安装及更新</span>
<button type="button" class="am-btn am-btn-secondary am-radius am-btn-xs am-margin-left-xs am-icon-gg store-accounts-event"> 绑定ShopXO商店账户</button>
<span>{{:MyLang('common.store_bind_accounts_tips')}}</span>
<button type="button" class="am-btn am-btn-secondary am-radius am-btn-xs am-margin-left-xs am-icon-gg store-accounts-event"> {{:MyLang('common.store_bind_accounts_name')}}</button>
</p>
{{/if}}
</div>
@ -56,33 +56,33 @@
<img src="{{$v.logo}}" class="icon" />
<div class="base">
<h3 class="name">{{$v.name}}</h3>
<p>作者{{$v.author}}</p>
<p>{{:MyLang('pluginsadmin.data_list_author_title')}}{{$v.author}}</p>
{{if empty($site_store_info) or empty($site_store_info['vip']) or !isset($site_store_info['vip']['status']) or $site_store_info['vip']['status'] eq 0}}
<p>主页<a href="{{$v.author_url}}" target="_blank">{{$v.author_url}}</a></p>
<p>{{:MyLang('pluginsadmin.data_list_author_url_title')}}<a href="{{$v.author_url}}" target="_blank">{{$v.author_url}}</a></p>
{{/if}}
<p>版本{{$v.version}}</p>
<p>{{:MyLang('pluginsadmin.data_list_version_title')}}{{$v.version}}</p>
</div>
<div class="desc">{{$v.desc}}</div>
<div class="operation">
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
<a href="{{:MyUrl('admin/pluginsadmin/saveinfo', array('id'=>$v['plugins']))}}" class="am-btn am-btn-default am-btn-xs am-radius am-icon-edit" title="编辑"></a>
<a href="{{:MyUrl('admin/pluginsadmin/download', array('id'=>$v['plugins']))}}" class="am-btn am-btn-default am-btn-xs am-radius am-icon-download" title="打包"></a>
<a href="{{:MyUrl('admin/pluginsadmin/saveinfo', array('id'=>$v['plugins']))}}" class="am-btn am-btn-default am-btn-xs am-radius am-icon-edit" title="{{:MyLang('edit_title')}}"></a>
<a href="{{:MyUrl('admin/pluginsadmin/download', array('id'=>$v['plugins']))}}" class="am-btn am-btn-default am-btn-xs am-radius am-icon-download" title="{{:MyLang('download_title')}}"></a>
{{/if}}
<a href="javascript:;" data-set-url="{{:PluginsAdminUrl($v['plugins'], 'admin', 'index')}}" class="am-btn am-btn-default am-btn-xs am-radius am-icon-gear plugins-set-event" title="设置"></a>
<a href="javascript:;" data-set-url="{{:PluginsAdminUrl($v['plugins'], 'admin', 'index')}}" class="am-btn am-btn-default am-btn-xs am-radius am-icon-gear plugins-set-event" title="{{:MyLang('setup_title')}}"></a>
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-circle-o submit-ajax" data-url="{{:MyUrl('admin/pluginsadmin/uninstall')}}" data-id="{{$v.plugins}}" data-view="reload" data-msg="卸载可能会丢失插件基础配置数据不可恢复、确认操作吗?" title="卸载"></button>
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-circle-o submit-ajax" data-url="{{:MyUrl('admin/pluginsadmin/uninstall')}}" data-id="{{$v.plugins}}" data-view="reload" data-msg="{{:MyLang('pluginsadmin.uninstall_confirm_tips')}}" title="{{:MyLang('uninstall_title')}}"></button>
<a href="javascript:;" class="am-btn am-btn-default am-btn-xs am-icon-check submit-state {{if $v['is_enable'] eq 1}}am-success{{/if}}" data-url="{{:MyUrl('admin/pluginsadmin/statusupdate')}}" data-id="{{$v.plugins}}" data-state="{{$v['is_enable']}}" data-is-update-status="1" title="状态"></a>
<a href="javascript:;" class="am-btn am-btn-default am-btn-xs am-icon-check submit-state {{if $v['is_enable'] eq 1}}am-success{{/if}}" data-url="{{:MyUrl('admin/pluginsadmin/statusupdate')}}" data-id="{{$v.plugins}}" data-state="{{$v['is_enable']}}" data-is-update-status="1" title="{{:MyLang('status_title')}}"></a>
{{if isset($v['is_home']) and $v['is_home'] eq true}}
<a href="{{:PluginsHomeUrl($v['plugins'], 'index', 'index')}}" class="am-btn am-btn-default am-btn-xs am-radius am-icon-home" title="首页" target="_blank"></a>
<a href="{{:PluginsHomeUrl($v['plugins'], 'index', 'index')}}" class="am-btn am-btn-default am-btn-xs am-radius am-icon-home" title="{{:MyLang('home_title')}}" target="_blank"></a>
{{/if}}
<button type="button" class="am-btn am-btn-secondary am-btn-xs am-radius am-icon-arrows submit-move am-hide" title="排序"></button>
<button type="button" class="am-btn am-btn-secondary am-btn-xs am-radius am-icon-arrows submit-move am-hide" title="{{:MyLang('sort_title')}}"></button>
{{if !empty($upgrade_info) and isset($upgrade_info[$v['plugins']]) and $upgrade_info[$v['plugins']]['version_new'] neq $v['version']}}
<button class="am-btn am-btn-danger am-btn-xs am-radius am-icon-refresh package-upgrade-event" title="更新" data-type="plugins" data-name="{{$v.name}}" data-value="{{$v.plugins}}" data-json="{{:urlencode(json_encode($upgrade_info[$v['plugins']]))}}"></button>
<button class="am-btn am-btn-danger am-btn-xs am-radius am-icon-refresh package-upgrade-event" title="{{:MyLang('update_title')}}" data-type="plugins" data-name="{{$v.name}}" data-value="{{$v.plugins}}" data-json="{{:urlencode(json_encode($upgrade_info[$v['plugins']]))}}"></button>
{{/if}}
</div>
</div>
@ -97,7 +97,7 @@
<div class="am-text-center am-margin-top-lg am-margin-bottom-xs middle-divider">
<strong>
<i class="am-icon-angle-double-down"></i>
<span class="am-text-lg am-margin-horizontal-xs">以下插件未安装</span>
<span class="am-text-lg am-margin-horizontal-xs">{{:MyLang('pluginsadmin.not_install_divide_title')}}</span>
<i class="am-icon-angle-double-down"></i>
</strong>
<hr data-am-widget="divider" class="am-divider am-divider-dashed am-margin-top-0" />
@ -110,22 +110,17 @@
<img src="{{$v.logo}}" class="icon" />
<div class="base">
<h3 class="name">{{$v.name}}</h3>
<p>作者{{$v.author}}</p>
<p>{{:MyLang('pluginsadmin.data_list_author_title')}}{{$v.author}}</p>
{{if empty($site_store_info) or empty($site_store_info['vip']) or !isset($site_store_info['vip']['status']) or $site_store_info['vip']['status'] eq 0}}
<p>主页<a href="{{$v.author_url}}" target="_blank">{{$v.author_url}}</a></p>
<p>{{:MyLang('pluginsadmin.data_list_author_url_title')}}<a href="{{$v.author_url}}" target="_blank">{{$v.author_url}}</a></p>
{{/if}}
<p>版本{{$v.version}}</p>
<p>{{:MyLang('pluginsadmin.data_list_version_title')}}{{$v.version}}</p>
</div>
<div class="desc">{{$v.desc}}</div>
<div class="operation">
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
<a href="{{:MyUrl('admin/pluginsadmin/saveinfo', array('id'=>$v['plugins']))}}" class="am-btn am-btn-default am-btn-xs am-radius am-icon-edit" title="编辑"></a>
<a href="{{:MyUrl('admin/pluginsadmin/download', array('id'=>$v['plugins']))}}" class="am-btn am-btn-default am-btn-xs am-radius am-icon-download" title="打包"></a>
{{/if}}
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-remove submit-delete-modal" data-url="{{:MyUrl('admin/pluginsadmin/delete')}}" data-id="{{$v.plugins}}" title="{{:MyLang('delete_title')}}"></button>
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-remove submit-delete-modal" data-url="{{:MyUrl('admin/pluginsadmin/delete')}}" data-id="{{$v.plugins}}" title="删除"></button>
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-cubes submit-ajax" data-url="{{:MyUrl('admin/pluginsadmin/install')}}" data-id="{{$v.plugins}}" data-view="reload" data-msg="进行安装操作、确认继续吗?" title="安装"></button>
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-cubes submit-ajax" data-url="{{:MyUrl('admin/pluginsadmin/install')}}" data-id="{{$v.plugins}}" data-view="reload" data-msg="{{:MyLang('install_confirm_tips')}}" title="{{:MyLang('install_title')}}"></button>
</div>
</div>
</li>
@ -135,21 +130,21 @@
<!-- 删除弹层 -->
<div class="am-modal am-modal-no-btn" tabindex="-1" id="plugins-delete-modal">
<div class="am-modal-dialog">
<div class="am-modal-dialog am-radius am-nbfc">
<div class="am-modal-hd">
<a href="javascript: void(0)" class="am-close" data-am-modal-close>&times;</a>
</div>
<div class="am-modal-bd am-margin-top-sm">
<div class="am-alert am-text-left" data-am-alert>
<p>1. 仅删除应用<span class="am-text-warning">(仅删除应用代码,保留应用数据)</span></p>
<p>2. 删除应用并删除数据<span class="am-text-warning">(将删除应用代码和应用数据)</span></p>
<p>{{:MyLang('pluginsadmin.delete_plugins_text')}}<span class="am-text-warning">{{:MyLang('pluginsadmin.delete_plugins_text_tips')}}</span></p>
<p>{{:MyLang('pluginsadmin.delete_plugins_data_text')}}<span class="am-text-warning">{{:MyLang('pluginsadmin.delete_plugins_data_text_tips')}}</span></p>
</div>
<p class="am-text-danger am-margin-top">PS以下操作后均不可恢复请谨慎操作</p>
<p class="am-text-danger am-margin-top">{{:MyLang('pluginsadmin.delete_plugins_ps_tips')}}</p>
<div class="am-margin-top-sm">
<button class="am-btn am-btn-danger am-btn-xs am-radius am-icon-circle-o submit-ajax" data-url="{{:MyUrl('admin/pluginsadmin/delete')}}" data-id="0" data-value="1" data-view="reload" data-msg="{{:MyLang('delete_confirm_tips')}}" title="删除"> 删除应用和数据</button>
<button class="am-btn am-btn-warning am-btn-xs am-radius am-icon-remove submit-ajax" data-url="{{:MyUrl('admin/pluginsadmin/delete')}}" data-id="0" data-value="0" data-view="reload" data-msg="{{:MyLang('delete_confirm_tips')}}" title="删除"> 仅删除应用</button>
<button class="am-btn am-btn-danger am-btn-xs am-radius am-icon-circle-o submit-ajax" data-url="{{:MyUrl('admin/pluginsadmin/delete')}}" data-id="0" data-value="1" data-view="reload" data-msg="{{:MyLang('delete_confirm_tips')}}"> {{:MyLang('pluginsadmin.delete_plugins_data_button_name')}}</button>
<button class="am-btn am-btn-warning am-btn-xs am-radius am-icon-remove submit-ajax" data-url="{{:MyUrl('admin/pluginsadmin/delete')}}" data-id="0" data-value="0" data-view="reload" data-msg="{{:MyLang('delete_confirm_tips')}}"> {{:MyLang('pluginsadmin.delete_plugins_button_name')}}</button>
<button class="am-btn am-btn-success am-btn-xs am-radius am-icon-reply" data-am-modal-close> 再考虑一下</button>
<button class="am-btn am-btn-success am-btn-xs am-radius am-icon-reply" data-am-modal-close> {{:MyLang('pluginsadmin.cancel_delete_plugins_button_name')}}</button>
</div>
</div>
</div>
@ -157,14 +152,14 @@
{{/if}}
<div class="am-padding-vertical-xl am-text-center">
<a href="{{$store_url}}" target="_blank" class="am-margin-left-xs">去应用商店挑选更多插件丰富站点 >></a>
<a href="{{$store_url}}" target="_blank" class="am-margin-left-xs">{{:MyLang('pluginsadmin.more_plugins_store_to_text')}}</a>
</div>
{{else /}}
<div class="table-no">
<i class="am-icon-skyatlas am-icon-lg"></i>
<p class="am-margin-top-sm">还没有相关应用</p>
<p class="am-margin-top-sm">{{:MyLang('pluginsadmin.plugins_no_data_tips')}}</p>
<div class="am-margin-top-xl">
<a href="{{$store_url}}" target="_blank" class="am-margin-left-xs">到应用商店挑选插件丰富站点 >></a>
<a href="{{$store_url}}" target="_blank" class="am-margin-left-xs">{{:MyLang('pluginsadmin.no_data_store_to_text')}}</a>
</div>
</div>
{{/if}}

View File

@ -1,13 +1,14 @@
<ul class="am-nav am-nav-pills table-nav">
<li {{if $view_type eq 'index'}}class="am-active"{{/if}}>
<a href="{{:MyUrl('admin/pluginsadmin/index', ['view_type'=>'index'])}}">应用管理</a>
</li>
<li {{if $view_type eq 'upload'}}class="am-active"{{/if}}>
<a href="{{:MyUrl('admin/pluginsadmin/index', ['view_type'=>'upload'])}}">上传应用</a>
</li>
{{if !empty($nav_data)}}
{{foreach $nav_data as $v}}
<li {{if $view_type eq $v['type']}}class="am-active"{{/if}}>
<a href="{{:MyUrl('admin/pluginsadmin/index', ['view_type'=>$v['type']])}}">{{$v.name}}</a>
</li>
{{/foreach}}
{{/if}}
{{if !empty($store_url)}}
<li class="am-fr">
<a class="am-margin-left-sm" href="{{$store_url}}" target="_blank">更多插件下载 <i class="am-icon-external-link"></i></a>
<a class="am-margin-left-sm" href="{{$store_url}}" target="_blank">{{:MyLang('pluginsadmin.base_nav_more_plugins_download_name')}} <i class="am-icon-external-link"></i></a>
</li>
{{/if}}
</ul>

View File

@ -4,77 +4,92 @@
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form form-validation" action="{{:MyUrl('admin/pluginsadmin/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/pluginsadmin/index')}}" enctype="multipart/form-data">
<form class="am-form form-validation am-form-pure am-form-full-screen am-form-popup-fixed" action="{{:MyUrl('admin/pluginsadmin/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/pluginsadmin/index')}}" enctype="multipart/form-data">
<legend>
<span class="am-text-default">应用{{if empty($data['id'])}}{{:MyLang('created_title')}}{{else /}}{{:MyLang('edit_title')}}{{/if}}</span>
<span class="am-text-default">{{:MyLang('pluginsadmin.base_nav_title')}}{{if empty($data['id'])}}{{:MyLang('created_title')}}{{else /}}{{:MyLang('edit_title')}}{{/if}}</span>
<a href="{{:MyUrl('admin/pluginsadmin/index')}}" class="am-fr am-text-sm am-margin-top-sm am-icon-mail-reply"> {{:MyLang('retreat_title')}}</a>
</legend>
<div class="am-form-group">
<label>应用唯一标记<span class="am-form-group-label-tips">以数字、字母小写、下划线</span></label>
<input type="text" name="plugins" placeholder="名称" minlength="2" maxlength="60" data-validation-message="应用唯一标记格式 2~60 个字符" pattern="^[a-z0-9_]{2,60}$" class="am-radius" {{if !empty($plugins)}} value="{{$plugins}}"{{/if}} readonly="true" required />
<label class="am-block">{{:MyLang('pluginsadmin.form_item_plugins')}}<span class="am-form-group-label-tips">{{:MyLang('pluginsadmin.form_item_plugins_tips')}}</span></label>
<input type="text" name="plugins" placeholder="{{:MyLang('pluginsadmin.form_item_plugins_message')}}" minlength="2" maxlength="60" data-validation-message="{{:MyLang('pluginsadmin.form_item_plugins_message')}}" pattern="^[a-z0-9_]{2,60}$" class="am-radius" {{if !empty($plugins)}} value="{{$plugins}}"{{/if}} readonly="true" required />
</div>
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group am-form-file">
<label class="am-block">{{:MyLang('pluginsadmin.form_item_logo')}}<span class="am-form-group-label-tips">{{:MyLang('pluginsadmin.form_item_logo_tips')}}</span></label>
<ul class="plug-file-upload-view plugins-logo-view" data-form-name="logo" data-max-number="1" data-delete="0" data-dialog-type="images">
<li>
<input type="text" name="logo" value="{{if !empty($data['logo_old'])}}{{$data.logo_old}}{{/if}}" data-validation-message="{{:MyLang('form_upload_images_message')}}" required />
<img src="{{if !empty($data['logo'])}}{{$data.logo}}{{else /}}{{$attachment_host}}/static/admin/default/images/default-images.jpg{{/if}}" />
</li>
</ul>
<div class="plug-file-upload-submit" data-view-tag="ul.plugins-logo-view">+ {{:MyLang('form_upload_images_title')}}</div>
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-cf">
<div class="am-u-sm-12 am-padding-horizontal-0">
<div class="am-form-group">
<label class="am-block">{{:MyLang('pluginsadmin.form_item_name')}}</label>
<input type="text" name="name" placeholder="{{:MyLang('pluginsadmin.form_item_name_message')}}" minlength="2" maxlength="30" data-validation-message="{{:MyLang('pluginsadmin.form_item_name_message')}}" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
</div>
</div>
<div class="am-u-sm-12 am-padding-horizontal-0">
<div class="am-form-group">
<label class="am-block">{{:MyLang('pluginsadmin.form_item_version')}}<span class="am-form-group-label-tips">{{:MyLang('pluginsadmin.form_item_version_tips')}}</span></label>
<input type="text" name="version" placeholder="{{:MyLang('pluginsadmin.form_item_version')}}" minlength="5" maxlength="18" data-validation-message="{{:MyLang('pluginsadmin.form_item_version_message')}}" pattern="{{:MyConst('common_regex_version')}}" class="am-radius" {{if !empty($data['version'])}} value="{{$data.version}}"{{/if}} required />
</div>
</div>
</div>
</div>
</div>
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label class="am-block">{{:MyLang('pluginsadmin.form_item_author')}}</label>
<input type="text" name="author" placeholder="{{:MyLang('pluginsadmin.form_item_author_message')}}" minlength="2" maxlength="30" data-validation-message="{{:MyLang('pluginsadmin.form_item_author_message')}}" class="am-radius" {{if !empty($data['author'])}} value="{{$data.author}}"{{/if}} required />
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label class="am-block">{{:MyLang('pluginsadmin.form_item_author_url')}}<span class="am-form-group-label-tips">{{:MyLang('pluginsadmin.form_item_author_url_tips')}}</span></label>
<input type="url" placeholder="{{:MyLang('pluginsadmin.form_item_author_url_tips')}}" name="author_url" data-validation-message="{{:MyLang('pluginsadmin.form_item_author_url_message')}}" class="am-radius" {{if !empty($data['author_url'])}} value="{{$data.author_url}}"{{/if}} required />
</div>
</div>
</div>
<div class="am-form-group am-form-file">
<label class="am-block">LOGO<span class="am-form-group-label-tips">建议600x600px</span></label>
<ul class="plug-file-upload-view plugins-logo-view" data-form-name="logo" data-max-number="1" data-delete="0" data-dialog-type="images">
<li>
<input type="text" name="logo" value="{{if !empty($data['logo_old'])}}{{$data.logo_old}}{{/if}}" data-validation-message="{{:MyLang('form_upload_images_message')}}" required />
<img src="{{if !empty($data['logo'])}}{{$data.logo}}{{else /}}{{$attachment_host}}/static/admin/default/images/default-images.jpg{{/if}}" />
</li>
</ul>
<div class="plug-file-upload-submit" data-view-tag="ul.plugins-logo-view">+ {{:MyLang('form_upload_images_title')}}</div>
<label class="am-block">{{:MyLang('pluginsadmin.form_item_desc')}}</label>
<textarea rows="2" name="desc" class="am-radius am-field-valid" placeholder="{{:MyLang('pluginsadmin.form_item_desc_message')}}" minlength="2" maxlength="60" data-validation-message="{{:MyLang('pluginsadmin.form_item_desc_message')}}">{{if !empty($data['desc'])}}{{$data.desc}}{{/if}}</textarea>
</div>
<div class="am-form-group">
<label>名称</label>
<input type="text" name="name" placeholder="名称" minlength="2" maxlength="30" data-validation-message="名称格式 2~30 个字符" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
<label class="am-block">{{:MyLang('pluginsadmin.form_item_apply_terminal')}}</label>
{{foreach :MyLang('common_platform_type') as $v}}
<label class="am-checkbox-inline">
<input type="checkbox" name="apply_terminal" value="{{$v.value}}" data-validation-message="{{:MyLang('pluginsadmin.form_item_apply_terminal_message')}}" {{if isset($data['apply_terminal']) and in_array($v['value'], $data['apply_terminal'])}}checked{{/if}} data-am-ucheck required /> {{$v.name}}
</label>
{{/foreach}}
</div>
<div class="am-form-group">
<label>作者</label>
<input type="text" name="author" placeholder="作者" minlength="2" maxlength="30" data-validation-message="作者格式 2~30 个字符" class="am-radius" {{if !empty($data)}} value="{{$data.author}}"{{/if}} required />
<label class="am-block">{{:MyLang('pluginsadmin.form_item_apply_version')}}</label>
{{foreach :MyConst('common_system_version_list') as $v}}
<label class="am-checkbox-inline">
<input type="checkbox" name="apply_version" value="{{$v.value}}" data-validation-message="{{:MyLang('pluginsadmin.form_item_apply_version_message')}}" {{if isset($data['apply_version']) and in_array($v['value'], $data['apply_version'])}}checked{{/if}} data-am-ucheck required /> {{$v.name}}
</label>
{{/foreach}}
</div>
<div class="am-form-group">
<label>作者主页<span class="am-form-group-label-tips">带http://或https://</span></label>
<input type="url" placeholder="作者主页" name="author_url" data-validation-message="请填写作者主页" class="am-radius" {{if !empty($data)}} value="{{$data.author_url}}"{{/if}} required />
<label class="am-block">{{:MyLang('pluginsadmin.form_item_is_home')}}<span class="am-form-group-label-tips">{{:MyLang('pluginsadmin.form_item_is_home_tips')}}</span></label>
<input name="is_home" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if isset($data['is_home']) and $data['is_home'] eq 1}}checked="true"{{/if}} />
</div>
<div class="am-form-group">
<label>版本<span class="am-form-group-label-tips">主版本.次版本号.修订号每个段不超过6位如 1.0.0</span></label>
<input type="text" name="version" placeholder="版本" minlength="5" maxlength="18" data-validation-message="版本格式有误" pattern="{{:MyConst('common_regex_version')}}" class="am-radius" {{if !empty($data)}} value="{{$data.version}}"{{/if}} required />
</div>
<div class="am-form-group am-form-file">
<label class="am-block">描述</label>
<textarea rows="3" name="desc" class="am-radius am-field-valid" placeholder="描述" minlength="2" maxlength="60" data-validation-message="描述内容格式 2~60 个字符">{{if !empty($data['desc'])}}{{$data.desc}}{{/if}}</textarea>
</div>
<div class="am-form-group">
<label>适用终端</label>
<select name="apply_terminal" class="am-radius chosen-select" multiple="multiple" minchecked="1" data-placeholder="{{:MyLang('optional_tips')}}" data-validation-message="至少选择一个适用终端" required>
{{foreach :MyLang('common_platform_type') as $v}}
<option value="{{$v.value}}" {{if isset($data['apply_terminal']) and in_array($v['value'], $data['apply_terminal'])}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
</div>
<div class="am-form-group">
<label>适用系统版本</label>
<select name="apply_version" class="am-radius chosen-select" multiple="multiple" minchecked="1" data-placeholder="{{:MyLang('optional_tips')}}" data-validation-message="至少选择一个适用系统版本" required>
{{foreach :MyConst('common_system_version_list') as $v}}
<option value="{{$v.value}}" {{if isset($data['apply_version']) and in_array($v['value'], $data['apply_version'])}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
</div>
<div class="am-form-group">
<label class="am-block">是否有前端入口<span class="am-form-group-label-tips">前端独立页面入口</span></label>
<input name="is_home" value="1" type="checkbox" data-off-text="没有" data-on-text="有" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if isset($data['is_home']) and $data['is_home'] eq 1}}checked="true"{{/if}} />
</div>
<div class="am-form-group am-form-group-refreshing am-margin-top-lg am-padding-left-0">
<div class="am-form-popup-submit">
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'{{:MyLang('processing_tips')}}'}">{{:MyLang('save_title')}}</button>
</div>
</form>

View File

@ -6,7 +6,7 @@
<!-- nav start -->
{{include file="pluginsadmin/nav" /}}
<!-- nav end -->
<!-- form start -->
<form class="am-form form-validation am-margin-top-sm" action="{{:MyUrl('admin/pluginsadmin/upload')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/pluginsadmin/index')}}" enctype="multipart/form-data">
<div class="am-form-group am-form-group-refreshing am-margin-bottom-0">
@ -14,7 +14,7 @@
<button type="button" class="am-btn am-btn-default am-btn-sm am-radius">
<i class="am-icon-cloud-upload"></i> {{:MyLang('form_choice_images_title')}}</button>
<input type="file" name="file" class="file-event" data-tips-tag="#form-file-tips" data-validation-message="{{:MyLang('form_upload_file_message')}}" accept=".zip" required />
<span class="tips am-text-xs">上传一个zip压缩格式的应用安装包</span>
<span class="tips am-text-xs">{{:MyLang('pluginsadmin.form_item_upload_tips')}}</span>
<div id="form-file-tips" class="am-margin-top-xs"></div>
</div>
</div>

View File

@ -4,13 +4,12 @@
<div class="content-right">
<div class="content">
<!-- 温馨提示 -->
<div class="am-alert am-alert-danger" data-am-alert>
<button type="button" class="am-close">&times;</button>
<p>1. 非专业技术人员请勿操作该页面数据、操作失误可能会导致权限菜单错乱。</p>
<p>2. 权限菜单分为[ 使用、操作 ]两种类型,使用菜单一般开启显示,操作菜单必须隐藏。</p>
<p>3. 如果出现权限菜单错乱,可以重新覆盖[ {{:MyConfig('database.connections.mysql.prefix')}}power ]数据表的数据恢复。</p>
<p>4. [ 超级管理员、admin账户 ]默认拥有所有权限,不可更改。</p>
</div>
{{if is_array(MyLang('power.top_tips_list'))}}
<div class="am-alert am-alert-danger" data-am-alert>
<button type="button" class="am-close">&times;</button>
<p>{{:implode('</p><p>', MyLang('power.top_tips_list'))}}</p>
</div>
{{/if}}
<!-- operation start -->
<div class="am-g">
@ -22,58 +21,78 @@
<div class="am-popup am-radius" id="power-save-win">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title" data-add-title="权限添加" data-edit-title="权限编辑">权限添加</h4>
<h4 class="am-popup-title" data-add-title="{{:MyLang('power.base_nav_title')}}{{:MyLang('add_title')}}" data-edit-title="{{:MyLang('power.base_nav_title')}}{{:MyLang('edit_title')}}">{{:MyLang('power.base_nav_title')}}{{:MyLang('add_title')}}</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<!-- form start -->
<form class="am-form form-validation am-form-popup-fixed" action="{{:MyUrl('admin/power/save')}}" method="POST" request-type="ajax-reload">
<div class="am-alert am-alert-warning" data-am-alert>
<button type="button" class="am-close">&times;</button>
<p>1. 填写[ 控制器名称 和 方法名称 ]需要对应创建相应的控制器和方法的定义</p>
<p>2. 控制器文件位置[ app/admin/controller ]、该操作仅开发人员使用</p>
<p>3. 控制器名称/方法名称 与 自定义url地址、两者必须填写一个</p>
</div>
<div class="am-form-group">
<label>栏目级别</label>
<select class="am-radius chosen-select" name="pid" data-validation-message="栏目级别选择错误">
<option value="0">一级栏目...</option>
{{foreach $data as $v}}
<option value="{{$v.id}}">{{$v.name}}</option>
{{/foreach}}
</select>
</div>
<div class="am-form-group">
<label>权限名称<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="权限名称" name="name" minlength="2" maxlength="16" data-validation-message="权限名称格式 2~8 个字符之间" class="am-radius" required />
</div>
<div class="am-form-group">
<label>控制器名称</label>
<input type="text" placeholder="控制器名称" name="control" pattern="{{:MyConst('common_regex_control')}}" data-validation-message="控制器名格式 1~30 个字符之间(必须以字母开始,可以是字母数字下划线)" class="am-radius" />
</div>
<div class="am-form-group">
<label>方法名称</label>
<input type="text" placeholder="方法名称" name="action" pattern="{{:MyConst('common_regex_action')}}" data-validation-message="方法名格式 1~30 个字符之间(必须以字母开始,可以是字母数字下划线)" class="am-radius" />
</div>
<div class="am-form-group">
<label>自定义url地址<span class="am-form-group-label-tips">带http://或https://</span></label>
<input type="url" name="url" placeholder="自定义url地址" data-validation-message="自定义url地址格式有误" class="am-radius" />
</div>
<div class="am-form-group">
<label>图标class</label>
<input type="text" placeholder="图标class" name="icon" maxlength="60" data-validation-message="图标格式 0~30 个字符之间" class="am-radius" />
<form class="am-form form-validation am-form-pure am-form-full-screen am-form-popup-fixed" action="{{:MyUrl('admin/power/save')}}" method="POST" request-type="ajax-reload">
{{if is_array(MyLang('power.content_top_tips_list'))}}
<div class="am-alert am-alert-warning" data-am-alert>
<button type="button" class="am-close">&times;</button>
<p>1. 参考 http://www.iconfont.cn/ 将icon放到 [ /static/admin/default/css/iconfontmenu.css ] 文件中</p>
<p>2. 也可以直接使用框架自带的icon、参考 [ http://amazeui.shopxo.net/css/icon/ ]</p>
<p>3. 也可以自己使用插件钩子引入自定义的icon图标的css文件然后使用定义好的icon</p>
</div>
</div>
<div class="am-form-group">
<label>{{:MyLang('form_sort_title')}}</label>
<input type="number" placeholder="{{:MyLang('form_sort_title')}}" name="sort" min="0" max="255" data-validation-message="{{:MyLang('form_sort_message')}}" class="am-radius" value="0" />
</div>
{{include file="lib/is_show" /}}
<button type="button" class="am-close">&times;</button>
<p>{{:implode('</p><p>', MyLang('power.content_top_tips_list'))}}</p>
</div>
{{/if}}
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('power.form_item_pid')}}</label>
<select class="am-radius chosen-select" name="pid" data-placeholder="{{:MyLang('power.form_item_pid_placeholder')}}" data-validation-message="{{:MyLang('power.form_item_pid')}}">
<option value="0">{{:MyLang('power.form_item_pid_placeholder')}}</option>
{{foreach $data as $v}}
<option value="{{$v.id}}">{{$v.name}}</option>
{{/foreach}}
</select>
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('power.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="{{:MyLang('power.form_item_name_message')}}" name="name" minlength="2" maxlength="16" data-validation-message="{{:MyLang('power.form_item_name_message')}}" class="am-radius" required />
</div>
</div>
</div>
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('power.form_item_control')}}</label>
<input type="text" placeholder="{{:MyLang('power.form_item_control_message')}}" name="control" pattern="{{:MyConst('common_regex_control')}}" data-validation-message="{{:MyLang('power.form_item_control_message')}}" class="am-radius" />
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('power.form_item_action')}}</label>
<input type="text" placeholder="{{:MyLang('power.form_item_action_message')}}" name="action" pattern="{{:MyConst('common_regex_action')}}" data-validation-message="{{:MyLang('power.form_item_action_message')}}" class="am-radius" />
</div>
</div>
</div>
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('power.form_item_url')}}</label>
<input type="url" name="url" placeholder="{{:MyLang('power.form_item_url_message')}}" data-validation-message="{{:MyLang('power.form_item_url_message')}}" class="am-radius" />
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('power.form_item_icon')}}{{if is_array(MyLang('power.form_item_icon_tips_list'))}}<a href="javascript:;" class="am-icon-question-circle am-text-warning am-margin-left-sm" data-am-popover="{content: '{{:implode('<br />', MyLang('power.form_item_icon_tips_list'))}}', trigger: 'hover focus', theme: 'sm'}"></a>{{/if}}</label>
<input type="text" placeholder="{{:MyLang('power.form_item_icon_message')}}" name="icon" maxlength="60" data-validation-message="{{:MyLang('power.form_item_icon_message')}}" class="am-radius" />
</div>
</div>
</div>
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
{{include file="lib/sort" /}}
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
{{include file="lib/is_show" /}}
</div>
</div>
<div class="am-form-popup-submit">
<input type="hidden" name="id" />
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'{{:MyLang('processing_tips')}}'}">{{:MyLang('save_title')}}</button>

View File

@ -1,31 +1,22 @@
<div class="am-alert am-alert-warning am-radius am-text-xs" data-am-alert>
<button type="button" class="am-close">&times;</button>
<div>
<p><strong>WEB页面</strong></p>
<div class="am-padding-left-lg">
<p>1. 以http开头</p>
<p>2. 如小程序中使用WEB页面、需要在小程序后台加入白名单</p>
</div>
{{if is_array(MyLang('event_value_tips_list'))}}
<div class="am-alert am-alert-warning am-radius am-text-xs" data-am-alert>
<button type="button" class="am-close">&times;</button>
{{foreach :MyLang('event_value_tips_list') as $k=>$v}}
<div {{if $k gt 0}}class="am-margin-top-xs"{{/if}}>
<p><strong>{{$v.name}}</strong></p>
{{if !empty($v['item'])}}
<div class="am-padding-left-lg">
{{foreach $v.item as $vs}}
<p>{{$vs}}</p>
{{/foreach}}
{{if !empty($v['tips']) and $v['type'] eq 'mini' and !empty($site_store_links) and !empty($site_store_links['app_mini_pages'])}}
<p>
<a href="{{$site_store_links.app_mini_pages}}" target="_blank">{{$v.tips}} <i class="am-icon-external-link"></i></a>
</p>
{{/if}}
</div>
{{/if}}
</div>
{{/foreach}}
</div>
<div class="am-margin-top-xs">
<p><strong>内部页面(小程序/APP内部地址)</strong></p>
<div class="am-padding-left-lg">
<p>1. 小程序或APP内部地址</p>
<p>2. 小程序以/pages开始</p>
<p>3. 例如:/pages/user/user</p>
<p>4. 支持带参数 ?x=xx</p>
{{if !empty($site_store_links) and !empty($site_store_links['app_mini_pages'])}}
<p>
<a href="{{$site_store_links.app_mini_pages}}" target="_blank">小程序页面地址配置说明 <i class="am-icon-external-link"></i></a>
</p>
{{/if}}
</div>
</div>
<div class="am-margin-top-xs">
<p><strong>跳转原生地图查看指定位置</strong></p>
<div class="am-padding-left-lg">
<p>1. 以 | 竖线分割,分别顺序 名称|地址|经度|纬度</p>
<p>2. 例如ShopXO|上海浦东新区张江高科技园区XXX号|121.626444|31.20843</p>
</div>
</div>
</div>
{{/if}}

View File

@ -8,21 +8,21 @@
<!-- form start -->
<form class="am-form form-validation-store-accounts view-save" action="{{:MyUrl('admin/index/storeaccountsbind')}}" method="POST" request-type="ajax-reload">
<div class="am-form-group am-form-group-refreshing business-form-block am-margin-top-xs">
<label>账号<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" name="common_store_accounts" placeholder="用户名/手机/邮箱" data-validation-message="账号格式1~30个字符" class="am-radius" value="" autocomplete="off" required />
<label>{{:MyLang('common.store_bind_form_accounts')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" name="common_store_accounts" placeholder="{{:MyLang('common.store_bind_form_accounts_placeholder')}}" data-validation-message="{{:MyLang('common.store_bind_form_accounts_message')}}" class="am-radius" value="" autocomplete="off" required />
</div>
<div class="am-form-group am-form-group-refreshing business-form-block am-margin-top-xs">
<label>密码<span class="am-form-group-label-tips-must">*</span></label>
<input type="password" name="common_store_password" placeholder="登录密码" data-validation-message="登录密码格式6~30个字符" class="am-radius" value="" autocomplete="off" required />
<label>{{:MyLang('common.store_bind_form_password')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="password" name="common_store_password" placeholder="{{:MyLang('common.store_bind_form_password_placeholder')}}" data-validation-message="{{:MyLang('common.store_bind_form_password_message')}}" class="am-radius" value="" autocomplete="off" required />
</div>
<div class="am-form-group am-form-group-refreshing am-margin-top-sm">
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'绑定中...'}">绑定</button>
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'{{:MyLang('bind_tips')}}'}">{{:MyLang('bind_title')}}</button>
</div>
<div class="am-margin-top-xr am-text-right am-padding-right-xs">
<a href="{{:MyConfig('shopxo.store_regster_url')}}" target="_blank">未有账号,去注册</a>
<a href="{{:MyConfig('shopxo.store_regster_url')}}" target="_blank">{{:MyLang('common.store_bind_form_regster_name')}}</a>
</div>
<p class="am-text-warning am-text-center am-margin-top-sm">一个账号支持绑定多台ShopXO商城</p>
<p class="am-text-warning am-text-center am-margin-top-sm">{{:MyLang('common.store_bind_form_tips')}}</p>
</form>
<!-- form end -->
</div>
@ -43,7 +43,7 @@
<span class="am-icon-vimeo am-margin-left-sm upgrade-version"> ...</span>
<div class="am-fr">
<button type="button" class="am-btn am-btn-default am-radius am-btn-xs" data-am-modal-close>{{:MyLang('cancel_title')}}</button>
<button type="button" class="am-btn am-btn-success am-radius am-btn-xs am-margin-left-sm package-upgrade-submit" data-type="" data-value="" data-url="{{:MyUrl('admin/packageupgrade/upgrade')}}">更新</button>
<button type="button" class="am-btn am-btn-success am-radius am-btn-xs am-margin-left-sm package-upgrade-submit" data-type="" data-value="" data-url="{{:MyUrl('admin/packageupgrade/upgrade')}}">{{:MyLang('update_title')}}</button>
</div>
</div>
</div>

View File

@ -4,7 +4,7 @@
<meta charset="{{:MyConfig('shopxo.default_charset', 'utf-8')}}" />
<link rel="shortcut icon" type="image/x-icon" href="{{$public_host}}favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1, maximum-scale=1" />
<title>{{$admin_theme_site_name}}后台管理系统</title>
<title>{{$admin_theme_site_name}}{{:MyLang('common.admin_browser_title')}}</title>
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/lib/assets/css/amazeui.css?v={{:MyC('home_static_cache_version')}}" />
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/lib/amazeui-switch/amazeui.switch.css?v={{:MyC('home_static_cache_version')}}" />
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/lib/amazeui-chosen/amazeui.chosen.css?v={{:MyC('home_static_cache_version')}}" />

View File

@ -5,10 +5,10 @@
<div class="content">
<div class="am-text-center am-margin-top-xl am-padding-xl">
<p><i class="am-icon-info-circle am-icon-lg am-text-xl am-text-warning"></i></p>
<p class="am-margin-top-xs am-text-sm">{{if isset($msg)}}{{$msg}}{{else /}}操作失败{{/if}}</p>
<p class="am-margin-top-xs am-text-sm">{{if isset($msg)}}{{$msg}}{{else /}}{{:MyLang('operate_fail')}}{{/if}}</p>
<p class="am-margin-top-xl">
<a href="javascript:history.go(-1)" class="am-text-primary">返回上一页</a>
<span class="am-margin-left-sm"><span class="wait-time">{{if empty($wait_time)}}5{{else /}}{{$wait_time}}{{/if}}</span>秒自动返回</span>
<a href="javascript:history.go(-1)" class="am-text-primary">{{:MyLang('back_prev_page_name')}}</a>
<span class="am-margin-left-sm"><span class="wait-time">{{if empty($wait_time)}}5{{else /}}{{$wait_time}}{{/if}}</span>{{:MyLang('back_prev_time_auto_text')}}</span>
</p>
</div>
</div>

View File

@ -5,16 +5,16 @@
<div class="content">
<div class="am-text-center am-margin-top-xl am-padding-xl">
<p><i class="am-icon-check-circle am-icon-lg am-text-xl am-text-success"></i></p>
<p class="am-margin-top-xs am-text-sm">{{if isset($msg)}}{{$msg}}{{else /}}操作成功{{/if}}</p>
<p class="am-margin-top-xs am-text-sm">{{if isset($msg)}}{{$msg}}{{else /}}{{:MyLang('operate_success')}}{{/if}}</p>
<p class="am-margin-top-xl">
<a href="javascript:history.go(-1)" class="am-text-primary">返回上一页</a>
<span class="am-margin-left-sm"><span class="wait-time">{{if empty($wait_time)}}5{{else /}}{{$wait_time}}{{/if}}</span>秒自动返回</span>
<a href="javascript:history.go(-1)" class="am-text-primary">{{:MyLang('back_prev_page_name')}}</a>
<span class="am-margin-left-sm"><span class="wait-time">{{if empty($wait_time)}}5{{else /}}{{$wait_time}}{{/if}}</span>{{:MyLang('back_prev_time_auto_text')}}</span>
</p>
</div>
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->

View File

@ -1,3 +1,3 @@
<div class="am-margin-top-lg am-text-center am-text-grey">
<p>处理中...</p>
<p>{{:MyLang('processing_tips')}}</p>
</div>

View File

@ -4,7 +4,7 @@
<li>
<a href="javascript:;" data-type="menu" data-url="{{:MyUrl('admin/index/init')}}" class="common-left-menu-active">
<span class="iconfont icon-shouye"></span>
<p class="nav-name am-inline-block am-text-break">首页</p>
<p class="nav-name am-inline-block am-text-break">{{:MyLang('home_title')}}</p>
</a>
</li>
{{foreach $left_menu as $v}}

View File

@ -2,7 +2,7 @@
<!-- logo/名称信息 -->
<div class="am-topbar-brand">
<a href="{{:MyUrl('admin/index/index')}}">
<h2>{{$admin_theme_site_name}}<span class="admin-site-vice-name am-margin-left-xs">后台管理系统</span></h2>
<h2>{{$admin_theme_site_name}}<span class="admin-site-vice-name am-margin-left-xs">{{:MyLang('common.admin_browser_title')}}</span></h2>
</a>
</div>
@ -13,7 +13,7 @@
<!-- 手机模式下导航按钮 -->
<button class="am-topbar-btn am-topbar-toggle am-btn am-btn-xs am-btn-success am-show-sm-only am-radius header-nav-submit" data-am-collapse="{target: '#topbar-collapse'}">
<span class="am-sr-only">导航切换</span>
<span class="am-sr-only">{{:MyLang('toggle_navigation_title')}}</span>
<i class="am-icon-bars"></i>
</button>
@ -30,22 +30,22 @@
<li class="am-dropdown">
<a href="javascript:;" class="submit-ajax" data-url="{{:MyUrl('admin/cache/statusupdate')}}" data-is-confirm="0" data-is-loading="1">
<i class="am-icon-paint-brush"></i>
<span>清除缓存</span>
<span>{{:MyLang('common.remove_cache_title')}}</span>
</a>
</li>
{{/if}}
<li class="am-dropdown am-hide-sm-only">
<a href="javascript:;" class="fullscreen-event" data-fulltext-open="开启全屏" data-fulltext-exit="退出全屏">
<a href="javascript:;" class="fullscreen-event" data-fulltext-open="{{:MyLang('fullscreen_open_title')}}" data-fulltext-exit="{{:MyLang('fullscreen_exit_title')}}">
<i class="am-icon-arrows-alt"></i>
<span class="fullscreen-text">开启全屏</span>
<span class="fullscreen-text">{{:MyLang('fullscreen_open_title')}}</span>
</a>
</li>
<li class="am-dropdown">
<a href="{{$home_url}}" target="_blank">
<i class="am-icon-home"></i>
<span>查看首页</span>
<span>{{:MyLang('shop_home_title')}}</span>
</a>
</li>
@ -58,15 +58,15 @@
</a>
<ul class="am-dropdown-content">
<li>
<a href="javascript:;" data-type="nav" data-url="{{:MyUrl('admin/admin/saveInfo', array('id'=>$admin['id']))}}">
<a href="javascript:;" data-type="nav" data-url="{{:MyUrl('admin/admin/saveInfo', array('id'=>$admin['id']))}}" data-node-name="{{:MyLang('setup_title')}}">
<i class="am-icon-cog"></i>
设置
<span>{{:MyLang('setup_title')}}</span>
</a>
</li>
<li>
<a href="{{:MyUrl('admin/admin/logout')}}">
<i class="am-icon-power-off"></i>
退出
<span>{{:MyLang('quit_title')}}</span>
</a>
</li>
</ul>

View File

@ -5,8 +5,8 @@
<div class="content">
<div class="table-no">
<p>
<i class="am-icon-warning cr-999"></i>
{{if isset($msg)}}{{$msg}}{{else /}}异常错误{{/if}}
<i class="am-icon-warning am-text-grey"></i>
{{if isset($msg)}}{{$msg}}{{else /}}{{:MyLang('error')}}{{/if}}
</p>
<!-- 扩展内容 -->

View File

@ -4,67 +4,88 @@
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form form-validation" action="{{:MyUrl('admin/quicknav/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/quicknav/index', $params)}}" enctype="multipart/form-data">
<form class="am-form form-validation am-form-pure am-form-full-screen am-form-popup-fixed" action="{{:MyUrl('admin/quicknav/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/quicknav/index', $params)}}" enctype="multipart/form-data">
<legend>
<span class="am-text-default">快捷导航{{if empty($data['id'])}}{{:MyLang('created_title')}}{{else /}}{{:MyLang('edit_title')}}{{/if}}</span>
<span class="am-text-default">{{:MyLang('quicknav.base_nav_title')}}{{if empty($data['id'])}}{{:MyLang('created_title')}}{{else /}}{{:MyLang('edit_title')}}{{/if}}</span>
<a href="{{:MyUrl('admin/quicknav/index', $params)}}" class="am-fr am-text-sm am-margin-top-sm am-icon-mail-reply"> {{:MyLang('retreat_title')}}</a>
</legend>
<div class="am-form-group">
<label>名称<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" name="name" placeholder="名称" minlength="2" maxlength="60" data-validation-message="名称格式 2~60 个字符" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
</div>
<div class="am-form-group">
<label>{{:MyLang('form_platform_title')}}<span class="am-form-group-label-tips-must">*</span></label>
<select name="platform" class="am-radius chosen-select" data-placeholder="{{:MyLang('optional_tips')}}" data-validation-message="{{:MyLang('form_platform_message')}}" required>
<option value="">{{:MyLang('optional_tips')}}</option>
{{foreach $common_platform_type as $v}}
<option value="{{$v.value}}" {{if isset($data['platform']) and $data['platform'] eq $v['value']}}selected{{else /}}{{if !isset($data['platform']) and isset($v['checked']) and $v['checked'] eq true}}selected{{/if}}{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
</div>
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('quicknav.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" name="name" placeholder="{{:MyLang('quicknav.form_item_name_message')}}" minlength="2" maxlength="60" data-validation-message="{{:MyLang('quicknav.form_item_name_message')}}" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('form_platform_title')}}<span class="am-form-group-label-tips-must">*</span></label>
<select name="platform" class="am-radius chosen-select" data-placeholder="{{:MyLang('optional_tips')}}" data-validation-message="{{:MyLang('form_platform_message')}}" required>
<option value="">{{:MyLang('optional_tips')}}</option>
{{foreach $common_platform_type as $v}}
<option value="{{$v.value}}" {{if isset($data['platform']) and $data['platform'] eq $v['value']}}selected{{else /}}{{if !isset($data['platform']) and isset($v['checked']) and $v['checked'] eq true}}selected{{/if}}{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
</div>
</div>
</div>
<div class="am-form-group">
<label>{{:MyLang('form_event_type_title')}}<span class="am-form-group-label-tips-must">*</span></label>
<select name="event_type" class="am-radius chosen-select" data-placeholder="{{:MyLang('optional_tips')}}" data-validation-message="{{:MyLang('form_event_type_message')}}" required>
<option value="">{{:MyLang('optional_tips')}}</option>
{{foreach $common_app_event_type as $v}}
<option value="{{$v.value}}" {{if isset($data['event_type']) and $data['event_type'] eq $v['value']}}selected{{else /}}{{if !isset($data['event_type']) and isset($v['checked']) and $v['checked'] eq true}}selected{{/if}}{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
</div>
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('form_event_type_title')}}<span class="am-form-group-label-tips-must">*</span></label>
<select name="event_type" class="am-radius chosen-select" data-placeholder="{{:MyLang('optional_tips')}}" data-validation-message="{{:MyLang('form_event_type_message')}}" required>
<option value="">{{:MyLang('optional_tips')}}</option>
{{foreach $common_app_event_type as $v}}
<option value="{{$v.value}}" {{if isset($data['event_type']) and $data['event_type'] eq $v['value']}}selected{{else /}}{{if !isset($data['event_type']) and isset($v['checked']) and $v['checked'] eq true}}selected{{/if}}{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('form_bg_color_title')}}</label>
<input type="hidden" name="bg_color" value="{{if !empty($data)}}{{$data.bg_color}}{{/if}}" />
<button class="am-btn am-btn-default am-btn-xs colorpicker-submit bg-color-tag am-btn-block bk-cr-white t-r" type="button" data-input-tag="button.bg-color-tag" data-color-tag="input[name='bg_color']" data-color-style="background-color" {{if !empty($data)}} style="background-color:{{$data.bg_color}};"{{/if}}>
<img src="{{$attachment_host}}/static/common/images/colorpicker.png" />
</button>
</div>
</div>
</div>
<div class="am-form-group">
<label>{{:MyLang('form_event_value_title')}}</label>
<input type="text" name="event_value" placeholder="{{:MyLang('form_event_value_message')}}" data-validation-message="{{:MyLang('form_event_value_message')}}" class="am-radius" {{if !empty($data['event_value'])}} value="{{$data.event_value}}"{{/if}} />
{{include file="public/event_value_tips" /}}
</div>
<div class="am-form-group am-form-file">
<label class="am-block">导航图标<span class="am-form-group-label-tips-must">*</span></label>
<ul class="plug-file-upload-view slide-images_url-images-view" data-form-name="images_url" data-max-number="1" data-delete="0" data-dialog-type="images">
<li>
<input type="text" name="images_url" value="{{if !empty($data['images_url'])}}{{$data.images_url}}{{/if}}" data-validation-message="{{:MyLang('form_upload_images_message')}}" required />
<img src="{{if !empty($data['images_url'])}}{{$data.images_url}}{{else /}}{{$attachment_host}}/static/admin/default/images/default-images.jpg{{/if}}" />
</li>
</ul>
<div class="plug-file-upload-submit" data-view-tag="ul.slide-images_url-images-view">+ {{:MyLang('form_upload_images_title')}}</div>
</div>
<div class="am-form-group">
<label>{{:MyLang('form_bg_color_title')}}</label>
<input type="hidden" name="bg_color" value="{{if !empty($data)}}{{$data.bg_color}}{{/if}}" />
<button class="am-btn am-btn-default am-btn-xs colorpicker-submit bg-color-tag am-btn-block bk-cr-white t-r" type="button" data-input-tag="button.bg-color-tag" data-color-tag="input[name='bg_color']" data-color-style="background-color" {{if !empty($data)}} style="background-color:{{$data.bg_color}};"{{/if}}>
<img src="{{$attachment_host}}/static/common/images/colorpicker.png" />
</button>
</div>
<div class="am-form-group">
<label>{{:MyLang('form_sort_title')}}</label>
<input type="number" placeholder="{{:MyLang('form_sort_title')}}" name="sort" min="0" max="255" data-validation-message="{{:MyLang('form_sort_message')}}" class="am-radius" value="{{if isset($data['sort'])}}{{$data.sort}}{{else /}}0{{/if}}" required />
</div>
<div class="am-form-group">
<label class="am-block">{{:MyLang('form_is_enable_title')}}</label>
<input name="is_enable" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if !empty($data) and $data['is_enable'] eq 1}} checked="true"{{/if}} />
</div>
<div class="am-form-group am-form-group-refreshing am-margin-top-lg am-padding-left-0">
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group am-form-file">
<label class="am-block">{{:MyLang('quicknav.form_item_images_url')}}<span class="am-form-group-label-tips-must">*</span></label>
<ul class="plug-file-upload-view slide-images_url-images-view" data-form-name="images_url" data-max-number="1" data-delete="0" data-dialog-type="images">
<li>
<input type="text" name="images_url" value="{{if !empty($data['images_url'])}}{{$data.images_url}}{{/if}}" data-validation-message="{{:MyLang('form_upload_images_message')}}" required />
<img src="{{if !empty($data['images_url'])}}{{$data.images_url}}{{else /}}{{$attachment_host}}/static/admin/default/images/default-images.jpg{{/if}}" />
</li>
</ul>
<div class="plug-file-upload-submit" data-view-tag="ul.slide-images_url-images-view">+ {{:MyLang('form_upload_images_title')}}</div>
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-cf">
<div class="am-u-sm-12 am-padding-horizontal-0">
{{include file="lib/sort" /}}
</div>
<div class="am-u-sm-12 am-padding-horizontal-0">
{{include file="lib/is_enable" /}}
</div>
</div>
</div>
</div>
<div class="am-form-popup-submit">
<input type="hidden" name="id" {{if !empty($data)}} value="{{$data.id}}"{{/if}} />
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'{{:MyLang('processing_tips')}}'}">{{:MyLang('save_title')}}</button>
</div>
@ -73,7 +94,7 @@
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->

View File

@ -13,7 +13,7 @@
<div class="am-popup am-radius" id="data-save-win">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title" data-add-title="地区添加" data-edit-title="地区编辑">地区添加</h4>
<h4 class="am-popup-title" data-add-title="{{:MyLang('region.base_nav_title')}}{{:MyLang('add_title')}}" data-edit-title="{{:MyLang('region.base_nav_title')}}{{:MyLang('edit_title')}}">{{:MyLang('region.base_nav_title')}}{{:MyLang('add_title')}}</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
@ -22,47 +22,44 @@
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>唯一编号<a href="javascript:;" class="am-icon-question-circle am-text-warning am-margin-left-sm" data-am-popover="{content: '1. 留空则系统自动生成<br />3. 不要随意修改、避免数据错乱', trigger: 'hover focus', theme: 'sm'}"></a></label>
<input type="text" placeholder="唯一编号" name="id" maxlength="16" data-validation-message="请输入唯一编号" class="am-radius" />
<label>{{:MyLang('region.form_item_id')}}{{if is_array(MyLang('form_item_id_tips'))}}<a href="javascript:;" class="am-icon-question-circle am-text-warning am-margin-left-sm" data-am-popover="{content: '{{:implode('<br />', MyLang('form_item_id_tips'))}}', trigger: 'hover focus', theme: 'sm'}"></a>{{/if}}</label>
<input type="text" placeholder="{{:MyLang('region.form_item_id')}}" name="id" maxlength="16" data-validation-message="{{:MyLang('region.form_item_id_message')}}" class="am-radius" />
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>名称<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="名称" name="name" minlength="2" maxlength="16" data-validation-message="名称格式 2~16 个字符" class="am-radius" required />
<label>{{:MyLang('region.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="{{:MyLang('region.form_item_name_message')}}" name="name" minlength="2" maxlength="16" data-validation-message="{{:MyLang('region.form_item_name_message')}}" class="am-radius" required />
</div>
</div>
</div>
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>经度</label>
<input type="number" placeholder="经度" name="lng" step="0.01" data-validation-message="请输入经度" class="am-radius" />
<label>{{:MyLang('region.form_item_lng')}}</label>
<input type="number" placeholder="{{:MyLang('region.form_item_lng')}}" name="lng" step="0.01" data-validation-message="{{:MyLang('region.form_item_lng_message')}}" class="am-radius" />
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>纬度</label>
<input type="number" placeholder="纬度" name="lat" step="0.01" data-validation-message="请输入纬度" class="am-radius" />
<label>{{:MyLang('region.form_item_lat')}}</label>
<input type="number" placeholder="{{:MyLang('region.form_item_lat')}}" name="lat" step="0.01" data-validation-message="{{:MyLang('region.form_item_lat_message')}}" class="am-radius" />
</div>
</div>
</div>
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>首字母</label>
<input type="text" placeholder="首字母" name="letters" data-validation-message="请填写首字母" class="am-radius" value="" />
<label>{{:MyLang('region.form_item_letters')}}</label>
<input type="text" placeholder="{{:MyLang('region.form_item_letters')}}" name="letters" data-validation-message="{{:MyLang('region.form_item_letters_message')}}" class="am-radius" value="" />
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('form_sort_title')}}</label>
<input type="number" placeholder="{{:MyLang('form_sort_title')}}" name="sort" min="0" max="255" data-validation-message="{{:MyLang('form_sort_message')}}" class="am-radius" value="0" />
</div>
{{include file="lib/sort" /}}
</div>
</div>
{{include file="lib/enable" /}}
{{include file="lib/is_enable" /}}
<div class="am-form-popup-submit">
<input type="hidden" name="pid" value="0" />
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'{{:MyLang('processing_tips')}}'}">{{:MyLang('save_title')}}</button>
@ -82,7 +79,7 @@
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->

View File

@ -8,7 +8,7 @@
<!-- 菜单权限 -->
<div class="am-panel am-panel-default">
<div class="am-panel-hd">菜单权限</div>
<div class="am-panel-hd">{{:MyLang('role.form_item_menu')}}</div>
<div class="am-panel-bd">
<ul class="am-avg-sm-2 am-avg-md-4 am-avg-lg-6 am-gallery-bordered">
{{if !empty($data['power'])}}
@ -26,7 +26,7 @@
<!-- 插件权限 -->
<div class="am-panel am-panel-default">
<div class="am-panel-hd">插件权限</div>
<div class="am-panel-hd">{{:MyLang('role.form_item_plugins')}}</div>
<div class="am-panel-bd">
<ul class="am-avg-sm-2 am-avg-md-4 am-avg-lg-6 am-gallery-bordered">
{{if !empty($data['power_plugins'])}}

View File

@ -6,7 +6,7 @@
<!-- 仅超级管理员显示的温馨提示 -->
<div class="am-alert am-alert-danger" data-am-alert>
<button type="button" class="am-close">&times;</button>
<p>超级管理员默认拥有所有权限,不可更改。</p>
<p>{{:MyLang('role.admin_not_modify_tips')}}</p>
</div>
{{/block}}

View File

@ -4,18 +4,25 @@
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form form-validation" action="{{:MyUrl('admin/role/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/role/index', $params)}}">
<form class="am-form form-validation am-form-pure am-form-full-screen am-form-popup-fixed" action="{{:MyUrl('admin/role/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/role/index', $params)}}">
<legend>
<span class="am-text-default">角色{{if empty($data['id'])}}{{:MyLang('created_title')}}{{else /}}{{:MyLang('edit_title')}}{{/if}}</span>
<span class="am-text-default">{{:MyLang('role.base_nav_title')}}{{if empty($data['id'])}}{{:MyLang('created_title')}}{{else /}}{{:MyLang('edit_title')}}{{/if}}</span>
<a href="{{:MyUrl('admin/role/index', $params)}}" class="am-fr am-text-sm am-margin-top-sm am-icon-mail-reply"> {{:MyLang('retreat_title')}}</a>
</legend>
<div class="am-form-group">
<label>角色名称<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="角色名称" name="name" minlength="2" maxlength="16" data-validation-message="角色名称格式 2~8 个字符之间" class="am-radius" {{if !empty($data)}}value="{{$data.name}}"{{/if}} required />
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('role.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="{{:MyLang('role.form_item_name_message')}}" name="name" minlength="2" maxlength="16" data-validation-message="{{:MyLang('role.form_item_name_message')}}" class="am-radius" {{if !empty($data['name'])}}value="{{$data.name}}"{{/if}} required />
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
{{include file="lib/is_enable" /}}
</div>
</div>
<div class="am-form-group">
<label>菜单权限</label>
<label>{{:MyLang('role.form_item_menu')}}</label>
<ul class="tree-list am-avg-sm-1 am-avg-md-1 am-avg-lg-1">
{{if !empty($power['power'])}}
{{foreach $power.power as $v}}
@ -43,13 +50,13 @@
{{/if}}
{{/foreach}}
{{else /}}
<p class="am-text-warning">无菜单数据</p>
<p class="am-text-warning">{{:MyLang('role.form_item_menu_no_data_tips')}}</p>
{{/if}}
</ul>
</div>
<div class="am-form-group">
<label>插件权限<span class="am-text-warning am-margin-left-sm">插件还需在菜单权限中勾选[ <strong class="am-text-danger">应用中心 -> 应用管理+应用调用管理</strong> ]权限</span></label>
<label>{{:MyLang('role.form_item_plugins')}}<span class="am-text-warning am-margin-left-sm">{{:MyLang('role.form_item_plugins_tips')}}</span></label>
<ul class="tree-list am-avg-sm-2 am-avg-md-3 am-avg-lg-4">
{{if !empty($power['plugins'])}}
{{foreach $power.plugins as $v}}
@ -63,16 +70,11 @@
</li>
{{/foreach}}
{{else /}}
<p class="am-text-warning">无插件数据</p>
<p class="am-text-warning">{{:MyLang('role.form_item_plugins_no_data_tips')}}</p>
{{/if}}
</ul>
</div>
<div class="am-form-group">
<label class="am-block">{{:MyLang('form_is_enable_title')}}</label>
<input name="is_enable" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_enable']) and $data['is_enable'] eq 1) or !isset($data['is_enable'])}}checked="true"{{/if}} />
</div>
<!-- 插件扩展数据 start -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
<div class="plugins-tag">
@ -93,8 +95,8 @@
{{/if}}
<!-- 插件扩展数据 end -->
<div class="am-form-group am-form-group-refreshing am-margin-top-lg am-padding-left-0">
<input type="hidden" name="id" {{if !empty($data)}}value="{{$data.id}}"{{/if}} />
<div class="am-form-popup-submit">
<input type="hidden" name="id" {{if !empty($data['id'])}}value="{{$data.id}}"{{/if}} />
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'{{:MyLang('processing_tips')}}'}">{{:MyLang('save_title')}}</button>
</div>
</form>

Some files were not shown because too many files have changed in this diff Show More