This commit is contained in:
尖叫 2023-10-24 15:51:34 +08:00
parent 062aa79d8f
commit be5141265c
121 changed files with 25223 additions and 11666 deletions

View File

@ -62,6 +62,7 @@ class LoginForm extends AdminModel
'status' => User::STATUS_NORMAL, 'status' => User::STATUS_NORMAL,
'type' => [User::TYPE_ADMIN,User::TYPE_STAFF,User::TYPE_ADMIN_STAFF] 'type' => [User::TYPE_ADMIN,User::TYPE_STAFF,User::TYPE_ADMIN_STAFF]
]); ]);
if($user == null){ if($user == null){
return [ return [
'code' => 1, 'code' => 1,
@ -71,7 +72,6 @@ class LoginForm extends AdminModel
if(!$user->validatePassword($this->password)){ if(!$user->validatePassword($this->password)){
$err_msg = "密码错误"; $err_msg = "密码错误";
Admin::lastLogin($user->id, 0, $err_msg, $this->cx_mch_id); Admin::lastLogin($user->id, 0, $err_msg, $this->cx_mch_id);
return [ return [
'code' => 1, 'code' => 1,
'msg' => '用户名或者密码错误' 'msg' => '用户名或者密码错误'
@ -85,7 +85,6 @@ class LoginForm extends AdminModel
if($admin == null){ if($admin == null){
$err_msg = "没有权限"; $err_msg = "没有权限";
Admin::lastLogin($user->id, 0, $err_msg, $this->cx_mch_id); Admin::lastLogin($user->id, 0, $err_msg, $this->cx_mch_id);
return [ return [
'code' => 1, 'code' => 1,
'msg' => '用户名或者密码错误' 'msg' => '用户名或者密码错误'

View File

@ -34,44 +34,44 @@ class Menu
'icon' => 'layui-icon-user', 'icon' => 'layui-icon-user',
'children' => [ 'children' => [
[ [
'name' => '用户', 'name' => '用户列表',
'is_menu' => true, 'is_menu' => true,
'is_show' => true, 'is_show' => true,
'route' => 'admin/user/index', 'route' => 'admin/user/index',
], ],
[ // [
'name' => '注销申请', // 'name' => '注销申请',
'is_menu' => true, // 'is_menu' => true,
'is_show' => true, // 'is_show' => true,
'route' => 'admin/user/logout-review', // 'route' => 'admin/user/logout-review',
'action' => [ // 'action' => [
[ // [
'name' => '注销', // 'name' => '注销',
'route' => 'admin/user/logout' // 'route' => 'admin/user/logout'
], // ],
[ // [
'name' => '驳回', // 'name' => '驳回',
'route' => 'admin/user/account-logout-review' // 'route' => 'admin/user/account-logout-review'
], // ],
] // ]
], // ],
], ],
], ],
[ [
'name' => '场地管理', 'name' => '门店管理',
'is_menu' => true, 'is_menu' => true,
'is_show' => true, 'is_show' => true,
'route' => null, 'route' => null,
'icon' => 'layui-icon-location', 'icon' => 'layui-icon-location',
'children' => [ 'children' => [
[ [
'name' => '创建/编辑场地', 'name' => '创建/编辑门店',
'is_menu' => true, 'is_menu' => true,
'is_show' => true, 'is_show' => true,
'route' => 'admin/store/edit', 'route' => 'admin/store/edit',
], ],
[ [
'name' => '场地列表', 'name' => '门店列表',
'is_menu' => true, 'is_menu' => true,
'is_show' => true, 'is_show' => true,
'route' => 'admin/store/index', 'route' => 'admin/store/index',
@ -135,224 +135,204 @@ class Menu
], ],
], ],
[
'name' => '营销管理',
'is_menu' => true,
'is_show' => true,
'route' => null,
'icon' => 'layui-icon-align-left',
'children' => [
[
'name' => '活动列表',
'is_menu' => true,
'is_show' => true,
'route' => 'admin/activity/index',
'action' => [
[
'name' => '删除',
'route' => 'admin/coupon/delete'
],
]
],
[
'name' => '卡券列表',
'is_menu' => true,
'is_show' => true,
'route' => 'admin/coupon/index',
'action' => [
[
'name' => '删除',
'route' => 'admin/coupon/delete'
],
]
],
[
'name' => '添加卡券',
'is_menu' => true,
'is_show' => true,
'route' => 'admin/coupon/edit',
],
[
'name' => '卡券推送',
'is_menu' => true,
'is_show' => true,
'route' => 'admin/user-coupon/send',
'action' => [
[
'name' => '搜索发放用户',
'route' => 'admin/user-coupon/search-user'
],
[
'name' => '推送',
'route' => 'admin/user-coupon/edit'
],
]
],
],
],
[
'name' => '球车管理',
'is_menu' => true,
'is_show' => true,
'route' => null,
'icon' => 'layui-icon-circle',
'children' => [
[
'name' => '球车列表',
'is_menu' => true,
'is_show' => true,
'route' => 'admin/ball/index',
'action' => [
[
'name' => '删除',
'route' => 'admin/ball/delete'
],
[
'name' => '启用',
'route' => 'admin/ball/status-yes'
],
[
'name' => '停用',
'route' => 'admin/ball/status-no'
],
[
'name' => '查看二维码',
'route' => 'admin/ball/find-qrcode'
],
[
'name' => '打包下载二维码',
'route' => 'admin/ball/batch-qrcode'
],
// [ // [
// 'name' => '解绑', // 'name' => '营销管理',
// 'route' => 'admin/ball/untie' // 'is_menu' => true,
// ], // 'is_show' => true,
] // 'route' => null,
], // 'icon' => 'layui-icon-align-left',
[ // 'children' => [
'name' => '添加/编辑球车',
'is_menu' => true,
'is_show' => true,
'route' => 'admin/ball/edit',
],
[
'name' => '型号列表',
'is_menu' => true,
'is_show' => true,
'route' => 'admin/ball/mark',
'action' => [
[
'name' => '删除',
'route' => 'admin/ball/delete'
],
[
'name' => '启用',
'route' => 'admin/ball/mark-yes'
],
[
'name' => '停用',
'route' => 'admin/ball/mark-no'
],
// [ // [
// 'name' => '解绑', // 'name' => '活动列表',
// 'route' => 'admin/ball/untie' // 'is_menu' => true,
// 'is_show' => true,
// 'route' => 'admin/activity/index',
// 'action' => [
// [
// 'name' => '删除',
// 'route' => 'admin/coupon/delete'
// ],
// ]
// ],
// [
// 'name' => '卡券列表',
// 'is_menu' => true,
// 'is_show' => true,
// 'route' => 'admin/coupon/index',
// 'action' => [
// [
// 'name' => '删除',
// 'route' => 'admin/coupon/delete'
// ],
// ]
// ],
// [
// 'name' => '添加卡券',
// 'is_menu' => true,
// 'is_show' => true,
// 'route' => 'admin/coupon/edit',
// ],
// [
// 'name' => '卡券推送',
// 'is_menu' => true,
// 'is_show' => true,
// 'route' => 'admin/user-coupon/send',
// 'action' => [
// [
// 'name' => '搜索发放用户',
// 'route' => 'admin/user-coupon/search-user'
// ],
// [
// 'name' => '推送',
// 'route' => 'admin/user-coupon/edit'
// ],
// ]
// ],
// ],
// ],
// [
// 'name' => '球车管理',
// 'is_menu' => true,
// 'is_show' => true,
// 'route' => null,
// 'icon' => 'layui-icon-circle',
// 'children' => [
// [
// 'name' => '球车列表',
// 'is_menu' => true,
// 'is_show' => true,
// 'route' => 'admin/ball/index',
// 'action' => [
// [
// 'name' => '删除',
// 'route' => 'admin/ball/delete'
// ],
// [
// 'name' => '启用',
// 'route' => 'admin/ball/status-yes'
// ],
// [
// 'name' => '停用',
// 'route' => 'admin/ball/status-no'
// ],
// [
// 'name' => '查看二维码',
// 'route' => 'admin/ball/find-qrcode'
// ],
// [
// 'name' => '打包下载二维码',
// 'route' => 'admin/ball/batch-qrcode'
// ],
//// [
//// 'name' => '解绑',
//// 'route' => 'admin/ball/untie'
//// ],
// ]
// ],
// [
// 'name' => '添加/编辑球车',
// 'is_menu' => true,
// 'is_show' => true,
// 'route' => 'admin/ball/edit',
// ],
// [
// 'name' => '型号列表',
// 'is_menu' => true,
// 'is_show' => true,
// 'route' => 'admin/ball/mark',
// 'action' => [
// [
// 'name' => '删除',
// 'route' => 'admin/ball/delete'
// ],
// [
// 'name' => '启用',
// 'route' => 'admin/ball/mark-yes'
// ],
// [
// 'name' => '停用',
// 'route' => 'admin/ball/mark-no'
// ],
//// [
//// 'name' => '解绑',
//// 'route' => 'admin/ball/untie'
//// ],
// ]
// ],
// [
// 'name' => '添加/编辑球车型号',
// 'is_menu' => true,
// 'is_show' => true,
// 'route' => 'admin/ball/mark-edit',
// ],
// [
// 'name' => '球车详情',
// 'is_menu' => false,
// 'is_show' => true,
// 'route' => 'admin/ball/qc-data',
// 'action' => [
// [
// 'name' => '操作车辆',
// 'route' => 'admin/ball/qc-send-mqtt'
// ],
// [
// 'name' => '查询车辆信息',
// 'route' => 'admin/ball/qc-get-info'
// ],
// ]
// ],
// [
// 'name' => '租赁设置',
// 'is_menu' => false,
// 'is_show' => true,
// 'route' => 'admin/ball/qc-setting',
// 'action' => [
// [
// 'name' => '租赁最低电量设置',
// 'route' => 'admin/ball/set-qc-setting'
// ],
// ]
// ],
//
//
// ],
// ], // ],
]
],
[ [
'name' => '添加/编辑球车型号', 'name' => '模型管理',
'is_menu' => true,
'is_show' => true,
'route' => 'admin/ball/mark-edit',
],
[
'name' => '球车详情',
'is_menu' => false,
'is_show' => true,
'route' => 'admin/ball/qc-data',
'action' => [
[
'name' => '操作车辆',
'route' => 'admin/ball/qc-send-mqtt'
],
[
'name' => '查询车辆信息',
'route' => 'admin/ball/qc-get-info'
],
]
],
[
'name' => '租赁设置',
'is_menu' => false,
'is_show' => true,
'route' => 'admin/ball/qc-setting',
'action' => [
[
'name' => '租赁最低电量设置',
'route' => 'admin/ball/set-qc-setting'
],
]
],
],
],
[
'name' => '数据统计',
'is_menu' => true, 'is_menu' => true,
'is_show' => true, 'is_show' => true,
'route' => null, 'route' => null,
'icon' => 'layui-icon-chart', 'icon' => 'layui-icon-chart',
'children' => [ // 'children' => [
[ // [
'name' => '数据图表', // 'name' => '数据图表',
'is_menu' => true, // 'is_menu' => true,
'is_show' => true, // 'is_show' => true,
'route' => 'admin/bind-log/index', // 'route' => 'admin/bind-log/index',
'action' => [ // 'action' => [
[ // [
'name' => '获取设备绑定数据', // 'name' => '获取设备绑定数据',
'route' => 'admin/bind-log/get-bind-data' // 'route' => 'admin/bind-log/get-bind-data'
], // ],
] // ]
], // ],
//
], // ],
], ],
[ [
'name' => '订单管理', 'name' => '报告管理',
'is_menu' => true, 'is_menu' => true,
'is_show' => true, 'is_show' => true,
'route' => null, 'route' => null,
'icon' => 'layui-icon-list', 'icon' => 'layui-icon-list',
'children' => [ // 'children' => [
[ // [
'name' => '订单列表', // 'name' => '订单列表',
'is_menu' => true, // 'is_menu' => true,
'is_show' => true, // 'is_show' => true,
'route' => 'admin/mall/order/index', // 'route' => 'admin/mall/order/index',
], // ],
/** // ],
* [
* 'name' => '查询分账进度',
* 'is_menu' => true,
* 'is_show' => true,
* 'route' => 'admin/mall/order/search-multi',
* ],
* [
* 'name' => '售后订单',
* 'is_menu' => true,
* 'is_show' => true,
* 'route' => 'admin/mall/order/refund',
* ],
* [
* 'name' => '订单评价',
* 'is_menu' => true,
* 'is_show' => true,
* 'route' => 'admin/mall/order/comment',
* ],
* */
],
], ],
// [ // [
// 'name' => '财务管理', // 'name' => '财务管理',
@ -442,49 +422,49 @@ class Menu
], ],
], ],
], ],
[ // [
'name' => '财务管理', // 'name' => '财务管理',
'is_menu' => true, // 'is_menu' => true,
'is_show' => true, // 'is_show' => true,
'route' => null, // 'route' => null,
'icon' => 'layui-icon-rmb', // 'icon' => 'layui-icon-rmb',
'children' => [ // 'children' => [
/** // /**
* [ // * [
* 'name' => '提现管理', // * 'name' => '提现管理',
* 'is_menu' => true, // * 'is_menu' => true,
* 'is_show' => true, // * 'is_show' => true,
* 'route' => null, // * 'route' => null,
* 'children' => [ // * 'children' => [
* [ // * [
* 'name' => '提现列表', // * 'name' => '提现列表',
* 'is_menu' => true, // * 'is_menu' => true,
* 'is_show' => true, // * 'is_show' => true,
* 'route' => 'store/cash/index', // * 'route' => 'store/cash/index',
* ], // * ],
* [ // * [
* 'name' => '提现设置', // * 'name' => '提现设置',
* 'is_menu' => true, // * 'is_menu' => true,
* 'is_show' => true, // * 'is_show' => true,
* 'route' => 'store/cash/setting', // * 'route' => 'store/cash/setting',
* ], // * ],
* ], // * ],
* ], // * ],
* */ // * */
[ // [
'name' => '门店收益', // 'name' => '门店收益',
'is_menu' => true, // 'is_menu' => true,
'is_show' => true, // 'is_show' => true,
'route' => 'admin/store/store-earings', // 'route' => 'admin/store/store-earings',
], // ],
[ // [
'name' => '数据图表', // 'name' => '数据图表',
'is_menu' => true, // 'is_menu' => true,
'is_show' => true, // 'is_show' => true,
'route' => 'admin/store/bind', // 'route' => 'admin/store/bind',
], // ],
], // ],
], // ],
[ [
'name' => '设置', 'name' => '设置',
'is_menu' => true, 'is_menu' => true,
@ -517,12 +497,12 @@ class Menu
* 'is_show' => true, * 'is_show' => true,
* 'route' => 'admin/setting/payment-config', * 'route' => 'admin/setting/payment-config',
* ],**/ * ],**/
[ // [
'name' => 'Mqtt设置', // 'name' => 'Mqtt设置',
'is_menu' => true, // 'is_menu' => true,
'is_show' => true, // 'is_show' => true,
'route' => 'admin/page/mqtt-config', // 'route' => 'admin/page/mqtt-config',
], // ],
] ]
], ],
[ [
@ -537,12 +517,12 @@ class Menu
'is_show' => true, 'is_show' => true,
'route' => 'admin/page/user-protocol', 'route' => 'admin/page/user-protocol',
], ],
[ // [
'name' => '上传操作视频', // 'name' => '上传操作视频',
'is_menu' => true, // 'is_menu' => true,
'is_show' => true, // 'is_show' => true,
'route' => 'admin/page/handle-video', // 'route' => 'admin/page/handle-video',
], // ],
[ [
'name' => '隐私协议', 'name' => '隐私协议',
'is_menu' => true, 'is_menu' => true,
@ -555,46 +535,46 @@ class Menu
'is_show' => true, 'is_show' => true,
'route' => 'admin/page/about-us', 'route' => 'admin/page/about-us',
], ],
[ // [
'name' => '微信小程序', // 'name' => '微信小程序',
'is_menu' => true, // 'is_menu' => true,
'is_show' => true, // 'is_show' => true,
'route' => null, // 'route' => null,
'children' => [ // 'children' => [
[ // [
'name' => '微信配置', // 'name' => '微信配置',
'is_menu' => true, // 'is_menu' => true,
'is_show' => true, // 'is_show' => true,
'route' => 'admin/wechat/mp', // 'route' => 'admin/wechat/mp',
], // ],
[ // [
'name' => '轮播图', // 'name' => '轮播图',
'is_menu' => true, // 'is_menu' => true,
'is_show' => true, // 'is_show' => true,
'route' => 'admin/wechat/mp-slide', // 'route' => 'admin/wechat/mp-slide',
], // ],
[ // [
'name' => '订阅消息', // 'name' => '订阅消息',
'is_menu' => true, // 'is_menu' => true,
'is_show' => false, // 'is_show' => false,
'route' => 'admin/wechat/mp-tpl-msg', // 'route' => 'admin/wechat/mp-tpl-msg',
], // ],
] // ]
], // ],
[ // [
'name' => '短信设置', // 'name' => '短信设置',
'is_menu' => true, // 'is_menu' => true,
'is_show' => true, // 'is_show' => true,
'route' => null, // 'route' => null,
'children' => [ // 'children' => [
[ // [
'name' => '短信配置', // 'name' => '短信配置',
'is_menu' => true, // 'is_menu' => true,
'is_show' => true, // 'is_show' => true,
'route' => 'admin/sms/config', // 'route' => 'admin/sms/config',
], // ],
] // ]
], // ],
[ [
'name' => '我的设置', 'name' => '我的设置',
'is_menu' => true, 'is_menu' => true,

View File

@ -139,12 +139,7 @@ class StoreEditForm extends AdminModel
foreach ($area_arr as $index => $item){ foreach ($area_arr as $index => $item){
$area_json[$item['area_type']] = $item; $area_json[$item['area_type']] = $item;
} }
if(!isset($area_json['store']))
return Model::asReturnError('请绘制门店区域');
if(!isset($area_json['call']))
return Model::asReturnError('请绘制报警区域');
if(!isset($area_json['stop']))
return Model::asReturnError('请绘制停车区域');
$this->model->province = $province->name; $this->model->province = $province->name;
$this->model->city = $city->name; $this->model->city = $city->name;
$this->model->region = $region->name; $this->model->region = $region->name;

View File

@ -9,7 +9,7 @@
* _____LOG_____ * _____LOG_____
* *
*/ */
$this->title = 'UCaddy Rental Management Center'; $this->title = '主页';
$this->params['breadcrumbs'][] = $this->title; $this->params['breadcrumbs'][] = $this->title;
?> ?>
<style> <style>
@ -32,7 +32,7 @@ $this->params['breadcrumbs'][] = $this->title;
<div class="layui-col-md12"> <div class="layui-col-md12">
<div class="layui-card"> <div class="layui-card">
<div class="layui-card-header">场地管理员后台地址</div> <div class="layui-card-header">门店管理后台地址</div>
<div class="layui-card-body"> <div class="layui-card-body">
<div id="cd_location_body"> <div id="cd_location_body">
<div><span id="cd_location"></span>/store</div> <div><span id="cd_location"></span>/store</div>
@ -42,54 +42,7 @@ $this->params['breadcrumbs'][] = $this->title;
</div> </div>
</div> </div>
</div> </div>
<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header">已完成订单数</div>
<div class="layui-card-body">
<div id="order_success"><i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i></div>
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header">全部车辆</div>
<div class="layui-card-body">
<div id="ball_cart_all"><i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i></div>
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header">可租赁数</div>
<div class="layui-card-body">
<div id="ball_cart_0"><i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i></div>
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header">已租赁数</div>
<div class="layui-card-body">
<div id="ball_cart_1"><i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i></div>
</div>
</div>
</div>
<!--<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header">不可租赁数</div>
<div class="layui-card-body">
<div id="ball_cart_3"><i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i></div>
</div>
</div>
</div>-->
<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header">停用车辆数</div>
<div class="layui-card-body">
<div id="ball_cart_2"><i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i></div>
</div>
</div>
</div>
</div> </div>
</div> </div>
@ -101,9 +54,6 @@ $this->params['breadcrumbs'][] = $this->title;
<div id="container"></div> <div id="container"></div>
</div> </div>
</div> </div>
<script charset="utf-8" src="https://map.qq.com/api/gljs?v=1.exp&key=<?=\Yii::$app->params['mapKey']['qqmap']?>"></script>
<script charset="utf-8" src="https://map.qq.com/api/js?v=2.exp&key=<?=\Yii::$app->params['mapKey']['qqmap']?>"></script>
<script charset="utf-8" src="https://map.qq.com/api/gljs?libraries=tools&v=1.exp&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77"></script>
<script> <script>
<?php $this->beginBlock('js_script_wrap') ?> <?php $this->beginBlock('js_script_wrap') ?>
$('#cd_location_body').hide(); $('#cd_location_body').hide();
@ -112,155 +62,8 @@ $('#cd_location_body').hide();
}).extend({ }).extend({
index: 'lib/index', //主入口模块 index: 'lib/index', //主入口模块
}).use(['index','echarts'],function(){ }).use(['index','echarts'],function(){
var map = null;
var markerLayer = null;
var polygon = null;
$.ajax({
url:"<?=\Yii::$app->urlManager->createUrl(['admin/default/get-data'])?>",
type:'get',
success:function(res){
$.each(res.data,function(key,val){
$('#'+key).html(val)
})
},error:function(){
}
})
$('#cd_location').html(window.location.origin);
$('#cd_location_body').show();
$.ajax({
url:"<?=\Yii::$app->urlManager->createUrl(['admin/default/get-dt-data'])?>",
type:'get',
success:function(res){
var default_ = {lat:0,lng:0}
var geometries = []
var label_arr = []
$.each(res.data.store_data,function(key,val){
var path = []
$.each(val.store,function(k,v){
// path.push(new TMap.LatLng(40.03970460886076, 116.27483769345417))
path.push(v)
default_ = v
if(k == 0){
label_arr.push({
id: 'label', // 点图形数据的标志信息
styleId: 'label', // 样式id
position: v, // 标注点位置
content: val.name, // 标注文本
properties: {
// 标注点的属性数据
title: 'label',
},
})
}
})
geometries.push({
'id': 'store_'+val.id, //该多边形在图层中的唯一标识(删除、更新数据时需要)
'styleId': 'polygon', //绑定样式名
'paths': path, //多边形轮廓
})
})
var MultiMarker = []
var MultiMarker_labels_arr = []
$.each(res.data.ball_data,function(key,val){
var path = []
// 标记位置(纬度,经度,高度)
MultiMarker.push({
position: new TMap.LatLng(val.latlng[0], val.latlng[1]),
id: 'ball_'+val.id,
})
MultiMarker_labels_arr.push({
id: 'label', // 点图形数据的标志信息
styleId: 'label', // 样式id
position: new TMap.LatLng(val.latlng[0], val.latlng[1]), // 标注点位置
content: val.name, // 标注文本
properties: {
// 标注点的属性数据
title: 'label',
},
})
})
initMap(geometries,default_,label_arr,MultiMarker,MultiMarker_labels_arr);
},error:function(){
}
})
function initMap(geometries,default_,label_arr,MultiMarker,MultiMarker_labels_arr) {
var center = new TMap.LatLng(default_.lat,default_.lng);
//初始化地图
map = new TMap.Map("container", {
zoom: 15,//设置地图缩放级别
center: center//设置地图中心点坐标
}); });
$('#cd_location_body').show();
// 初始化polygon
polygon = new TMap.MultiPolygon({
id: 'polygon-layer', // 图层id
map: map, // 显示多边形图层的底图
styles: {
// 多边形的相关样式
polygon: new TMap.PolygonStyle({
color: 'rgba(41,91,255,0.36)', // 面填充色
showBorder: true, // 是否显示拔起面的边线
borderColor: '#3777FF', // 边线颜色
}),
},
geometries: geometries
});
// 初始化label
var label = new TMap.MultiLabel({
id: 'label-layer',
map: map,
styles: {
label: new TMap.LabelStyle({
color: '#3777FF', // 颜色属性
size: 18, // 文字大小属性
offset: { x: 20, y: -35 }, // 文字偏移属性单位为像素
angle: 0, // 文字旋转属性
alignment: 'center', // 文字水平对齐属性
verticalAlignment: 'middle', // 文字垂直对齐属性
}),
},
geometries: label_arr
});
var marker = new TMap.MultiMarker({
map: map,
styles: {
// 点标记样式
marker: new TMap.MarkerStyle({
width: 20, // 样式宽
height: 30, // 样式高
anchor: { x: 10, y: 30 }, // 描点位置
}),
},
geometries: MultiMarker
});
// 初始化label
new TMap.MultiLabel({
id: 'label-layers',
map: map,
styles: {
label: new TMap.LabelStyle({
color: '#3777FF', // 颜色属性
size: 15, // 文字大小属性
offset: { x: 0, y: -55 }, // 文字偏移属性单位为像素
angle: 0, // 文字旋转属性
alignment: 'center', // 文字水平对齐属性
verticalAlignment: 'middle', // 文字垂直对齐属性
}),
},
geometries: MultiMarker_labels_arr
});
};
});
<?php $this->endBlock(); ?> <?php $this->endBlock(); ?>
</script> </script>
<?php $this->registerJs($this->blocks['js_script_wrap'],\yii\web\View::POS_END); ?> <?php $this->registerJs($this->blocks['js_script_wrap'],\yii\web\View::POS_END); ?>

View File

@ -209,7 +209,7 @@ $urlManager = \Yii::$app->urlManager;
'class' => 'layui-breadcrumb' 'class' => 'layui-breadcrumb'
], ],
'homeLink' => [ 'homeLink' => [
'label' => 'Main Page', 'label' => '主页',
'url' => ['/admin/default/index'] 'url' => ['/admin/default/index']
], ],
'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [], 'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [],

View File

@ -11,8 +11,8 @@
*/ */
use app\widgets\PickFile; use app\widgets\PickFile;
use app\components\EncryptHelper; use app\components\EncryptHelper;
$this->title = $model->isNewRecord ? '创建场地' : '编辑场地'; $this->title = $model->isNewRecord ? '创建门店' : '编辑门店';
$this->params['breadcrumbs'][] = ['label' => '场地列表' , 'url' => [\Yii::$app->urlManager->createUrl(["admin/store/index"])]]; $this->params['breadcrumbs'][] = ['label' => '门店列表' , 'url' => [\Yii::$app->urlManager->createUrl(["admin/store/index"])]];
$this->params['breadcrumbs'][] = $this->title; $this->params['breadcrumbs'][] = $this->title;
?> ?>
<style> <style>
@ -100,15 +100,15 @@ $this->params['breadcrumbs'][] = $this->title;
<div class="layui-form"> <div class="layui-form">
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label required">场地名称</label> <label class="layui-form-label required">门店名称</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" name="name" placeholder="请输入场地名称" autocomplete="off" class="layui-input" value="<?= $model->name ?>" lay-verify="required" style="width: 200%" onclick="check_action_mode()"> <input type="text" name="name" placeholder="请输入门店名称" autocomplete="off" class="layui-input" value="<?= $model->name ?>" lay-verify="required" style="width: 200%" onclick="check_action_mode()">
</div> </div>
<div class="layui-form-mid layui-word-aux"></div> <div class="layui-form-mid layui-word-aux"></div>
</div> </div>
<div class="layui-form-item layui-form" id="district" > <div class="layui-form-item layui-form" id="district" >
<label class="layui-form-label required">场地所在地区</label> <label class="layui-form-label required">门店所在地区</label>
<div class="layui-input-inline" style="width:120px;" v-if="province.length != 0"> <div class="layui-input-inline" style="width:120px;" v-if="province.length != 0">
<select class="form-control province layui-select" lay-filter="province" <select class="form-control province layui-select" lay-filter="province"
name="province_id" v-model="province_id" id="province_id" lay-ignore> name="province_id" v-model="province_id" id="province_id" lay-ignore>
@ -137,9 +137,9 @@ $this->params['breadcrumbs'][] = $this->title;
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label required">场地具体位置</label> <label class="layui-form-label required">门店具体位置</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" name="location_detail" placeholder="请输入场地具体位置" autocomplete="off" class="layui-input" value="<?= $model->location_detail ?>" style="width: 200%" onclick="check_action_mode()"> <input type="text" name="location_detail" placeholder="请输入门店具体位置" autocomplete="off" class="layui-input" value="<?= $model->location_detail ?>" style="width: 200%" onclick="check_action_mode()">
</div> </div>
<div class="layui-form-mid layui-word-aux"></div> <div class="layui-form-mid layui-word-aux"></div>
</div> </div>
@ -167,16 +167,16 @@ $this->params['breadcrumbs'][] = $this->title;
</div> </div>
<div class="layui-form-item"> <!-- <div class="layui-form-item">-->
<label class="layui-form-label">收益比例</label> <!-- <label class="layui-form-label">收益比例</label>-->
<div class="layui-input-inline"> <!-- <div class="layui-input-inline">-->
<input type="number" name="ratio" placeholder="请输入收益比例" autocomplete="off" class="layui-input" value="<?= $model->ratio ?>" lay-verify="required" onclick="check_action_mode()"> <!-- <input type="number" name="ratio" placeholder="请输入收益比例" autocomplete="off" class="layui-input" value="--><?//= $model->ratio ?><!--" lay-verify="required" onclick="check_action_mode()">-->
</div> <!-- </div>-->
<div class="layui-form-mid layui-word-aux">% <span style="color: red">所选区间:0~100</span></div> <!-- <div class="layui-form-mid layui-word-aux">% <span style="color: red">所选区间:0~100</span></div>-->
</div> <!-- </div>-->
<div class="layui-form-item input-static"> <div class="layui-form-item input-static">
<label class="layui-form-label">场地状态</label> <label class="layui-form-label">门店状态</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="radio" name="status" value="0" title="停业" <?= $model->status == null || $model->status == 0 ? 'checked' : ''?> lay-filter="static"> <input type="radio" name="status" value="0" title="停业" <?= $model->status == null || $model->status == 0 ? 'checked' : ''?> lay-filter="static">
<input type="radio" name="status" value="1" title="营业" <?= $model->status == 1 ? 'checked' : ''?> lay-filter="static"> <input type="radio" name="status" value="1" title="营业" <?= $model->status == 1 ? 'checked' : ''?> lay-filter="static">
@ -194,48 +194,48 @@ $this->params['breadcrumbs'][] = $this->title;
</div> </div>
</div> </div>
<div class="layui-col-md7"> <!-- <div class="layui-col-md7">-->
<div class="layui-form-item layui-hide"> <!-- <div class="layui-form-item layui-hide">-->
<label class="layui-form-label">输入城市和关键词搜索</label> <!-- <label class="layui-form-label">输入城市和关键词搜索</label>-->
<div class="layui-input-block" > <!-- <div class="layui-input-block" >-->
<input type="text" style="width: 120px;float: left" id="mRegion" name="mRegion" <!-- <input type="text" style="width: 120px;float: left" id="mRegion" name="mRegion"-->
lay-verify="" placeholder="城市" autocomplete="off" <!-- lay-verify="" placeholder="城市" autocomplete="off"-->
class="layui-input" onclick="check_action_mode()"> <!-- class="layui-input" onclick="check_action_mode()">-->
<input type="text" style="width: 120px;float: left" id="mKeywords" name="mKeywords" <!-- <input type="text" style="width: 120px;float: left" id="mKeywords" name="mKeywords"-->
lay-verify="" placeholder="关键词" autocomplete="off" <!-- lay-verify="" placeholder="关键词" autocomplete="off"-->
class="layui-input" onclick="check_action_mode()"> <!-- class="layui-input" onclick="check_action_mode()">-->
<button type="button" class="layui-btn" id="mSearch">搜索</button> <!-- <button type="button" class="layui-btn" id="mSearch">搜索</button>-->
</div> <!-- </div>-->
<div class="layui-form-mid layui-word-aux" style="margin-left: 110px;"></div> <!-- <div class="layui-form-mid layui-word-aux" style="margin-left: 110px;"></div>-->
</div> <!-- </div>-->
<div class="layui-form-item" style="margin-top: 1%"> <!-- <div class="layui-form-item" style="margin-top: 1%">-->
<body onload="initMap()"> <!-- <body onload="initMap()">-->
<div id="container"></div> <!-- <div id="container"></div>-->
<div id="toolControl" style="top: 0"> <!-- <div id="toolControl" style="top: 0">-->
<div class="toolItem" id="enable" title="启用地图"></div> <!-- <div class="toolItem" id="enable" title="启用地图"></div>-->
<div class="toolItem" id="polygon" title="绘制"></div> <!-- <div class="toolItem" id="polygon" title="绘制"></div>-->
<!-- <div class="toolItem" id="delete" onclick="editor.delete();" title="删除"></div>--> <!-- <div class="toolItem" id="delete" onclick="editor.delete();" title="删除"></div>-->
<div class="toolItem" id="select" title="重绘"></div> <!-- <div class="toolItem" id="select" title="重绘"></div>-->
<div class="toolItem" id="setActionMode_interact" title="交互模式"></div> <!-- <div class="toolItem" id="setActionMode_interact" title="交互模式"></div>-->
</div> <!-- </div>-->
<div id="info"> <!-- <div id="info">-->
当前点击坐标为:<span id="position"></span> <!-- 当前点击坐标为:<span id="position"></span>-->
</div> <!-- </div>-->
</body> <!-- </body>-->
</div> <!-- </div>-->
<div class="layui-form-item"> <!-- <div class="layui-form-item">-->
<h4><b>地图上方按钮按顺序依次为:</b>【解锁】【绘制】【重绘】【交互模式】</h4> <!-- <h4><b>地图上方按钮按顺序依次为:</b>【解锁】【绘制】【重绘】【交互模式】</h4>-->
<h4><b>绘制:</b>鼠标左键点击及移动即可绘制图形</h4> <!-- <h4><b>绘制:</b>鼠标左键点击及移动即可绘制图形</h4>-->
<h4><b>结束:</b>鼠标左键双击即可结束绘制</h4> <!-- <h4><b>结束:</b>鼠标左键双击即可结束绘制</h4>-->
<h4><b>中断:</b>绘制过程中按下esc键可中断该过程</h4> <!-- <h4><b>中断:</b>绘制过程中按下esc键可中断该过程</h4>-->
<h4><b>注意:</b></h4> <!-- <h4><b>注意:</b></h4>-->
&nbsp;<span>1.进入页面绘制时需将地图【解锁】,并点击【绘制】</span><br> <!-- &nbsp;<span>1.进入页面绘制时需将地图【解锁】,并点击【绘制】</span><br>-->
&nbsp;<span>2.点击【重绘】会将所有区域删除,然后点击【绘制】再次做画</span><br> <!-- &nbsp;<span>2.点击【重绘】会将所有区域删除,然后点击【绘制】再次做画</span><br>-->
&nbsp;<span>3.操作文本框时地图将进入锁定模式,再次绘制区域需点击【解锁】【绘制】</span><br> <!-- &nbsp;<span>3.操作文本框时地图将进入锁定模式,再次绘制区域需点击【解锁】【绘制】</span><br>-->
&nbsp;<span>4.【交互模式】进入交互模式则无法进行绘制,只能进行重画</span><br> <!-- &nbsp;<span>4.【交互模式】进入交互模式则无法进行绘制,只能进行重画</span><br>-->
<!---->
</div> <!-- </div>-->
</div> </div>
</div> </div>
@ -249,7 +249,7 @@ $this->params['breadcrumbs'][] = $this->title;
<label class="layui-form-label ">区域类型</label> <label class="layui-form-label ">区域类型</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="radio" name="map_area_type" value="2" title="报警区域" checked=""> <input type="radio" name="map_area_type" value="2" title="报警区域" checked="">
<input type="radio" name="map_area_type" value="1" title="场地区域" > <input type="radio" name="map_area_type" value="1" title="门店区域" >
<input type="radio" name="map_area_type" value="3" title="停车区域"> <input type="radio" name="map_area_type" value="3" title="停车区域">
</div> </div>
</div> </div>
@ -317,295 +317,295 @@ $this->params['breadcrumbs'][] = $this->title;
}) })
console.log('area编辑',area) console.log('area编辑',area)
} }
document.getElementById('toolControl').addEventListener('click', (e) => { // document.getElementById('toolControl').addEventListener('click', (e) => {
var id = e.target.id; // var id = e.target.id;
var mode = editor.getActionMode() // var mode = editor.getActionMode()
console.log(mode) // console.log(mode)
//
// if(id === 'enable'){
// layer.msg('图层解锁,请选择操作')
// editor.enable()
// is_disable = false
// }
// if(id === 'polygon' && mode === 1){
// //绘制
// layer.msg('图层进入绘制模式,如需删除区域请切换为交互模式')
// editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.DRAW)
// }
//
// if(id === 'setActionMode_draw' && mode === 1){
// //进入绘制模式
// layer.msg('图层进入绘制模式,如需删除区域请切换为交互模式')
// editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.DRAW)
// return
// }
// if(id === 'setActionMode_interact' && mode === 2){
// //进入交互模式
// layer.msg('图层进入交互模式,如需绘制区域请切换为绘制模式')
// editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.INTERACT)
// return
// }
// if(id === 'select' && mode === 2){
// editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.INTERACT)
//
// }
// if (id !== 'toolControl' && id !== '') {
// document.getElementById(activeType).className = 'toolItem';
// editor.setActiveOverlay(activeType);
// console.log('id',id)
// if(id === 'select'){
// console.log('重画前的area',area)
// var tmp_area_ids = []
// for (let i in area){
// tmp_area_ids.push(area[i].id)
//
// }
// console.log('重画中的tmp_area_ids',tmp_area_ids)
// editor.select(tmp_area_ids)
// editor.delete()
// console.log('重画后的area',area)
// is_select = true
// console.log('编辑清空--------')
// area = []
// console.log('编辑清空--------',area)
//
// }
// }
// });
if(id === 'enable'){ // var initMap = function () {
layer.msg('图层解锁,请选择操作') //
editor.enable() // if (isNewRecord) {
is_disable = false // center = new TMap.LatLng(24.476404,118.129105);
} // } else {
if(id === 'polygon' && mode === 1){ // center = new TMap.LatLng(lat, lng);
//绘制 // }
layer.msg('图层进入绘制模式,如需删除区域请切换为交互模式') //
editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.DRAW) //
} // //初始化地图
// map = new TMap.Map("container", {
if(id === 'setActionMode_draw' && mode === 1){ // zoom: 12,//设置地图缩放级别
//进入绘制模式 // center: center//设置地图中心点坐标
layer.msg('图层进入绘制模式,如需删除区域请切换为交互模式') // });
editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.DRAW) //
return // // // 初始化几何图形及编辑器
} // var polygon = new TMap.MultiPolygon({
if(id === 'setActionMode_interact' && mode === 2){ // map: map,
//进入交互模式 // styles: {
layer.msg('图层进入交互模式,如需绘制区域请切换为绘制模式') // highlight: new TMap.PolygonStyle({
editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.INTERACT) // color: 'rgba(255, 255, 0, 0.6)'
return // })
} // },
if(id === 'select' && mode === 2){ // geometries:area
editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.INTERACT) // });
//
} // editor = new TMap.tools.GeometryEditor({
if (id !== 'toolControl' && id !== '') { // map: map,
document.getElementById(activeType).className = 'toolItem'; // overlayList: [
editor.setActiveOverlay(activeType); // {
console.log('id',id) // overlay: polygon,
if(id === 'select'){ // id: 'polygon',
console.log('重画前的area',area) // },
var tmp_area_ids = [] // ],
for (let i in area){ // actionMode: TMap.tools.constants.EDITOR_ACTION.INTERACT, // 编辑器的工作模式EDITOR_ACTION.INTERACT|EDITOR_ACTION.DRAW
tmp_area_ids.push(area[i].id) // activeOverlayId: 'polygon', // 激活图层
// snappable: true, // 开启吸附
} // });
console.log('重画中的tmp_area_ids',tmp_area_ids) //
editor.select(tmp_area_ids) // editor.disable();
editor.delete() // // 监听绘制结束事件,获取绘制几何图形
console.log('重画后的area',area) // editor.on('draw_complete', (geometry) => {
is_select = true // console.log('监听绘制结束事件,获取绘制几何图形',geometry);
console.log('编辑清空--------') // if(area.length > 3){
area = [] // layer.msg('只能创建三个区域(警戒区域,门店区域,停车位区域)', {
console.log('编辑清空--------',area) // offset: '15px'
// , icon: 2
} // , time: 3000
} // }, function () {
}); // editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.INTERACT)
// editor.select([geometry.id])
var initMap = function () { // editor.delete()
// editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.DRAW)
if (isNewRecord) { // });
center = new TMap.LatLng(24.476404,118.129105); // return false;
} else { // }
center = new TMap.LatLng(lat, lng); //
} // var content = $("#map_area_type_html").html();
// layer.open({
// type: 1
//初始化地图 // ,offset: 'auto'
map = new TMap.Map("container", { // ,id: 'layerDemo'
zoom: 12,//设置地图缩放级别 // ,content: content
center: center//设置地图中心点坐标 // ,btn: ['确定','重画']
}); // ,btnAlign: 'c' //按钮居中
// ,area: ['530px', '200px'] //宽高
// // 初始化几何图形及编辑器 // // ,area: 'auto' //宽高
var polygon = new TMap.MultiPolygon({ // ,shade: 0.8 //不显示遮罩
map: map, // ,closeBtn:0
styles: { // ,title:'区域内容'
highlight: new TMap.PolygonStyle({ // ,moveType: 1 //拖拽模式0或者1
color: 'rgba(255, 255, 0, 0.6)' // ,yes: function(index,layero){
}) //
}, // var map_area_type = $("input[name='map_area_type']:checked").val()
geometries:area // var name = '';
}); // if(map_area_type === '1'){
// //门店
editor = new TMap.tools.GeometryEditor({ // name = 'store';
map: map, // }else if(map_area_type === '2'){
overlayList: [ // //报警
{ // name = 'call';
overlay: polygon, // }else if(map_area_type === '3'){
id: 'polygon', // //停车
}, // name = 'stop';
], // }
actionMode: TMap.tools.constants.EDITOR_ACTION.INTERACT, // 编辑器的工作模式EDITOR_ACTION.INTERACT|EDITOR_ACTION.DRAW //
activeOverlayId: 'polygon', // 激活图层 // if(area.length > 0){
snappable: true, // 开启吸附 // $.each(area,function (index,item) {
}); // if(item.area_type === 'store' && name === 'store'){
// layer.msg('一个门店只能创建一个门店区域)', {
editor.disable(); // offset: '15px'
// 监听绘制结束事件,获取绘制几何图形 // , icon: 2
editor.on('draw_complete', (geometry) => { // , time: 3000
console.log('监听绘制结束事件,获取绘制几何图形',geometry); // }, function () {
if(area.length > 3){ // editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.INTERACT)
layer.msg('只能创建三个区域(警戒区域,场地区域,停车位区域)', { // editor.select([geometry.id])
offset: '15px' // editor.delete()
, icon: 2 // editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.DRAW)
, time: 3000 // });
}, function () { // return;
editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.INTERACT) // }
editor.select([geometry.id]) //
editor.delete() // if(item.area_type === 'call' && name === 'call'){
editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.DRAW) // layer.msg('一个门店只能创建一个警戒区域)', {
}); // offset: '15px'
return false; // , icon: 2
} // , time: 3000
// }, function () {
var content = $("#map_area_type_html").html(); // editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.INTERACT)
layer.open({ // editor.select([geometry.id])
type: 1 // editor.delete()
,offset: 'auto' // editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.DRAW)
,id: 'layerDemo' // });
,content: content // return;
,btn: ['确定','重画'] // }
,btnAlign: 'c' //按钮居中 //
,area: ['530px', '200px'] //宽高 // if(item.area_type === 'stop' && name === 'stop'){
// ,area: 'auto' //宽高 // layer.msg('一个门店只能创建一个停车区域)', {
,shade: 0.8 //不显示遮罩 // offset: '15px'
,closeBtn:0 // , icon: 2
,title:'区域内容' // , time: 3000
,moveType: 1 //拖拽模式0或者1 // }, function () {
,yes: function(index,layero){ // editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.INTERACT)
// editor.select([geometry.id])
var map_area_type = $("input[name='map_area_type']:checked").val() // editor.delete()
var name = ''; // editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.DRAW)
if(map_area_type === '1'){ // });
//场地 // return;
name = 'store'; // }
}else if(map_area_type === '2'){ // })
//报警 // }
name = 'call'; //
}else if(map_area_type === '3'){ // geometry.area_type = name
//停车 // if(is_select){
name = 'stop'; // area.push(geometry)
} // }
// console.log('绘制结束后的area',area)
if(area.length > 0){ // layer.close(index)
$.each(area,function (index,item) { // },
if(item.area_type === 'store' && name === 'store'){ // btn2: function(index, layero){
layer.msg('一个场地只能创建一个场地区域)', { // editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.INTERACT)
offset: '15px' // editor.select([geometry.id])
, icon: 2 // editor.delete()
, time: 3000 // editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.DRAW)
}, function () { // layer.close(index)
editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.INTERACT) // },
editor.select([geometry.id]) //
editor.delete() // });
editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.DRAW) // layui.form.render();
}); // });
return; //
} // // 监听删除、修改、拆分、合并完成事件
// let evtList = ['delete', 'adjust', 'split', 'union','select'];
if(item.area_type === 'call' && name === 'call'){ // evtList.forEach(evtName => {
layer.msg('一个场地只能创建一个警戒区域)', { // editor.on(evtName + '_complete', evtResult => {
offset: '15px' // console.log('操作',evtName,evtResult)
, icon: 2 // for (let i in evtResult){
, time: 3000 // var id = evtResult[i].id
}, function () { // console.log('删除id',id)
editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.INTERACT) // if(evtName === 'delete'){
editor.select([geometry.id]) // for (let i in area){
editor.delete() // if(area[i].id == id){
editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.DRAW) // area.splice(i,1)
}); // }
return; // }
} // console.log('删除后的area',area)
// }
if(item.area_type === 'stop' && name === 'stop'){ //
layer.msg('一个场地只能创建一个停车区域)', { // }
offset: '15px' // });
, icon: 2 //
, time: 3000 //
}, function () { // });
editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.INTERACT) //
editor.select([geometry.id]) // // 监听拆分失败事件,获取拆分失败原因
editor.delete() // editor.on('split_fail', (res) => {
editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.DRAW) // alert(res.message);
}); // });
return; // // 监听合并失败事件,获取合并失败原因
} // editor.on('union_fail', (res) => {
}) // alert(res.message);
} // });
//
geometry.area_type = name //
if(is_select){ //
area.push(geometry) //
} //
console.log('绘制结束后的area',area) // var latlngBounds = new qq.maps.LatLngBounds();
layer.close(index) // //调用Poi检索类
}, // searchService = new qq.maps.SearchService({
btn2: function(index, layero){ // complete: function (results) {
editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.INTERACT) // var pois = results.detail.pois;
editor.select([geometry.id]) // if (!pois) {
editor.delete() // layer.alert('关键字搜索不到,请重新输入');
editor.setActionMode(TMap.tools.constants.EDITOR_ACTION.DRAW) // return;
layer.close(index) // }
}, // for (var i = 0, l = pois.length; i < l; i++) {
// (function (n) {
}); // var poi = pois[n];
layui.form.render(); // if(i == 0){
}); // map.setCenter(new TMap.LatLng(poi.latLng.lat,poi.latLng.lng));
// }
// 监听删除、修改、拆分、合并完成事件 // latlngBounds.extend(poi.latLng);
let evtList = ['delete', 'adjust', 'split', 'union','select']; // let _marker = new TMap.MultiMarker({
evtList.forEach(evtName => { // id: 'mkr_' + (new Date()).getTime() + '_' + i,
editor.on(evtName + '_complete', evtResult => { // map: map,
console.log('操作',evtName,evtResult) // styles: {
for (let i in evtResult){ // "marker": new TMap.MarkerStyle({
var id = evtResult[i].id // "width": 25,
console.log('删除id',id) // "height": 35,
if(evtName === 'delete'){ // "anchor": {x: 16, y: 32},
for (let i in area){ // "src": 'https://mapapi.qq.com/web/lbs/javascriptGL/demo/img/markerDefault.png'
if(area[i].id == id){ // })
area.splice(i,1) // },
} // geometries: [{
} // "id": 'demo',
console.log('删除后的area',area) // "styleId": 'marker',
} // "position": new TMap.LatLng(poi.latLng.lat, poi.latLng.lng),
// "properties": {
} // "title": "marker"
}); // }
// }]
// });
}); // _marker.on("click", function(e){
// locationToAddress(e.latLng.lat,e.latLng.lng);
// 监听拆分失败事件,获取拆分失败原因 // });
editor.on('split_fail', (res) => { // markers.push(_marker);
alert(res.message); // })(i);
}); // }
// 监听合并失败事件,获取合并失败原因 // //map.fitBounds(latlngBounds);
editor.on('union_fail', (res) => { // }
alert(res.message); // });
}); // };
var latlngBounds = new qq.maps.LatLngBounds();
//调用Poi检索类
searchService = new qq.maps.SearchService({
complete: function (results) {
var pois = results.detail.pois;
if (!pois) {
layer.alert('关键字搜索不到,请重新输入');
return;
}
for (var i = 0, l = pois.length; i < l; i++) {
(function (n) {
var poi = pois[n];
if(i == 0){
map.setCenter(new TMap.LatLng(poi.latLng.lat,poi.latLng.lng));
}
latlngBounds.extend(poi.latLng);
let _marker = new TMap.MultiMarker({
id: 'mkr_' + (new Date()).getTime() + '_' + i,
map: map,
styles: {
"marker": new TMap.MarkerStyle({
"width": 25,
"height": 35,
"anchor": {x: 16, y: 32},
"src": 'https://mapapi.qq.com/web/lbs/javascriptGL/demo/img/markerDefault.png'
})
},
geometries: [{
"id": 'demo',
"styleId": 'marker',
"position": new TMap.LatLng(poi.latLng.lat, poi.latLng.lng),
"properties": {
"title": "marker"
}
}]
});
_marker.on("click", function(e){
locationToAddress(e.latLng.lat,e.latLng.lng);
});
markers.push(_marker);
})(i);
}
//map.fitBounds(latlngBounds);
}
});
};
function check_action_mode() { function check_action_mode() {
var mode = editor.getActionMode() var mode = editor.getActionMode()

View File

@ -9,7 +9,7 @@ use app\models\Store;
* _____LOG_____ * _____LOG_____
* *
*/ */
$this->title = '场地列表'; $this->title = '门店列表';
$this->params['breadcrumbs'][] = $this->title; $this->params['breadcrumbs'][] = $this->title;
$status_labels = Store::statusLabels(); $status_labels = Store::statusLabels();
@ -60,16 +60,16 @@ $cat_id = \Yii::$app->request->get('cat_id');
</select> </select>
</div> </div>
</div> </div>
<div class="layui-inline layui-form-item"> <!-- <div class="layui-inline layui-form-item">-->
<div class="layui-input-inline"> <!-- <div class="layui-input-inline">-->
<select class="layui-select" name="status"> <!-- <select class="layui-select" name="status">-->
<option value="" <?=$status === null ? 'selected' : ''?>>全部状态</option> <!-- <option value="" --><?//=$status === null ? 'selected' : ''?><!--全部状态</option>
<?php foreach ($status_labels as $key => $val):?> <!-- --><?php //foreach ($status_labels as $key => $val):?>
<option value="<?=$key?>" <?=$status == $key && $status != null ? 'selected' : ''?>><?=$val?></option> <!-- <option value="--><?//=$key?><!--" --><?//=$status == $key && $status != null ? 'selected' : ''?><!--><?//=$val?><!--</option>-->
<?php endforeach;?> <!-- --><?php //endforeach;?>
</select> <!-- </select>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
<div class="layui-inline layui-form-item"> <div class="layui-inline layui-form-item">
<label class="layui-form-label">关键词</label> <label class="layui-form-label">关键词</label>
<div class="layui-input-block"> <div class="layui-input-block">
@ -194,7 +194,7 @@ $cat_id = \Yii::$app->request->get('cat_id');
,cols: [[ ,cols: [[
{checkbox: true} {checkbox: true}
, {field: 'id', title: 'ID', width: 80} , {field: 'id', title: 'ID', width: 80}
, {field: 'name', title: '场地名称'} , {field: 'name', title: '门店名称'}
, {field: 'address', title: '位置'} , {field: 'address', title: '位置'}
, {field: 'business', title: '营业时间', width: 110} , {field: 'business', title: '营业时间', width: 110}
, {field: 'phone', title: '客服电话', width: 110} , {field: 'phone', title: '客服电话', width: 110}

View File

@ -11,7 +11,7 @@
*/ */
use app\widgets\PickFile; use app\widgets\PickFile;
use app\components\EncryptHelper; use app\components\EncryptHelper;
$this->title = $model->isNewRecord ? '创建场地人员' : '编辑场地人员'; $this->title = $model->isNewRecord ? '创建门店人员' : '编辑门店人员';
$this->params['breadcrumbs'][] = ['label' => '人员列表' , 'url' => [\Yii::$app->urlManager->createUrl(["admin/store/store-user"])]]; $this->params['breadcrumbs'][] = ['label' => '人员列表' , 'url' => [\Yii::$app->urlManager->createUrl(["admin/store/store-user"])]];
$this->params['breadcrumbs'][] = $this->title; $this->params['breadcrumbs'][] = $this->title;
?> ?>
@ -35,15 +35,15 @@ $this->params['breadcrumbs'][] = $this->title;
<div class="layui-form"> <div class="layui-form">
<blockquote class="layui-elem-quote"> <blockquote class="layui-elem-quote">
<span style="color: red"><b>1.人员创建成功后【人员身份】【所属场地】【登录账号】【手机号】不可变更,请谨慎操作</b></span> <span style="color: red"><b>1.人员创建成功后【人员身份】【所属门店】【登录账号】</b></span>
</blockquote> </blockquote>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label required">人员身份</label> <label class="layui-form-label required">人员身份</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="radio" name="user_type" value="1" title="场地管理员" <?= $model->user_type == null || $model->user_type == 1 ? 'checked' : ''?> lay-filter="static" <?=!$model->isNewRecord ? 'disabled' : ''?>> <input type="radio" name="user_type" value="1" title="门店管理员" <?= $model->user_type == null || $model->user_type == 1 ? 'checked' : ''?> lay-filter="static" <?=!$model->isNewRecord ? 'disabled' : ''?>>
<input type="radio" name="user_type" value="2" title="场地服务员" <?= $model->user_type == 2 ? 'checked' : ''?> lay-filter="static" <?=!$model->isNewRecord ? 'disabled' : ''?>> <!-- <input type="radio" name="user_type" value="2" title="门店服务员" --><?//= $model->user_type == 2 ? 'checked' : ''?><!-- lay-filter="static" --><?//=!$model->isNewRecord ? 'disabled' : ''?><!-->
<input type="radio" name="user_type" value="3" title="场地财务员" <?= $model->user_type == 3 ? 'checked' : ''?> lay-filter="static" <?=!$model->isNewRecord ? 'disabled' : ''?>> <input type="radio" name="user_type" value="3" title="门店医师" <?= $model->user_type == 3 ? 'checked' : ''?> lay-filter="static" <?=!$model->isNewRecord ? 'disabled' : ''?>>
</div> </div>
<div class="layui-form-mid layui-word-aux"></div> <div class="layui-form-mid layui-word-aux"></div>
</div> </div>
@ -76,7 +76,7 @@ $this->params['breadcrumbs'][] = $this->title;
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" name="mobile_phone" placeholder="请输入手机号" autocomplete="off" class="layui-input" value="<?= empty($user) ? '' : EncryptHelper::decryptMobilePhone($user->mobile_phone) ?>" lay-verify="<?=$model->isNewRecord ? 'required' : ''?>" <?=!$model->isNewRecord ? 'disabled' : ''?>> <input type="text" name="mobile_phone" placeholder="请输入手机号" autocomplete="off" class="layui-input" value="<?= empty($user) ? '' : EncryptHelper::decryptMobilePhone($user->mobile_phone) ?>" lay-verify="<?=$model->isNewRecord ? 'required' : ''?>" <?=!$model->isNewRecord ? 'disabled' : ''?>>
</div> </div>
<div class="layui-form-mid layui-word-aux">注意:使用此手机号授权登录小程序享有相应权限</div> <!-- <div class="layui-form-mid layui-word-aux">注意:使用此手机号授权登录小程序享有相应权限</div>-->
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label required">真实姓名</label> <label class="layui-form-label required">真实姓名</label>
@ -87,7 +87,7 @@ $this->params['breadcrumbs'][] = $this->title;
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label required">所属场地</label> <label class="layui-form-label required">所属门店</label>
<div class="layui-input-block"> <div class="layui-input-block">
<select name="store_id" <?=!$model->isNewRecord ? 'disabled' : ''?>> <select name="store_id" <?=!$model->isNewRecord ? 'disabled' : ''?>>
<option value=""></option> <option value=""></option>

View File

@ -32,7 +32,7 @@ $user_type = \Yii::$app->request->get('user_type');
<div class="layui-inline layui-form-item"> <div class="layui-inline layui-form-item">
<div class="layui-input-inline"> <div class="layui-input-inline">
<select class="layui-select" name="status"> <select class="layui-select" name="status">
<option value="" <?=$status === null ? 'selected' : ''?>>全部场地状态</option> <option value="" <?=$status === null ? 'selected' : ''?>>全部门店状态</option>
<option value="0" <?=$status == 0 && $status != null ? 'selected' : ''?>>停业</option> <option value="0" <?=$status == 0 && $status != null ? 'selected' : ''?>>停业</option>
<option value="1" <?=$status == 1 && $status != null ? 'selected' : ''?>>营业</option> <option value="1" <?=$status == 1 && $status != null ? 'selected' : ''?>>营业</option>
</select> </select>
@ -42,9 +42,9 @@ $user_type = \Yii::$app->request->get('user_type');
<div class="layui-input-inline"> <div class="layui-input-inline">
<select class="layui-select" name="user_type"> <select class="layui-select" name="user_type">
<option value="" <?=$user_type === null ? 'selected' : ''?>>全部人员</option> <option value="" <?=$user_type === null ? 'selected' : ''?>>全部人员</option>
<option value="1" <?=$user_type == 1 && $user_type != null ? 'selected' : ''?>>场地管理员</option> <option value="1" <?=$user_type == 1 && $user_type != null ? 'selected' : ''?>>门店管理员</option>
<option value="2" <?=$user_type == 2 && $user_type != null ? 'selected' : ''?>>场地服务员</option> <!-- <option value="2" --><?//=$user_type == 2 && $user_type != null ? 'selected' : ''?><!-->门店服务员</option>-->
<option value="3" <?=$user_type == 3 && $user_type != null ? 'selected' : ''?>>场地财务员</option> <option value="3" <?=$user_type == 3 && $user_type != null ? 'selected' : ''?>>门店医师</option>
</select> </select>
</div> </div>
</div> </div>
@ -64,9 +64,9 @@ $user_type = \Yii::$app->request->get('user_type');
</div> </div>
<div class="layui-card-body"> <div class="layui-card-body">
<div id="cd_location_body"> <div id="cd_location_body">
<div>场地管理员后台地址:<span id="cd_location"></span>/store</div> <div>门店管理员后台地址:<span id="cd_location"></span>/store</div>
<div>如果本机浏览器访问不了,则在本机中换个浏览器进行访问,或开启浏览器无痕模式进行访问</div> <div>如果本机浏览器访问不了,则在本机中换个浏览器进行访问,或开启浏览器无痕模式进行访问</div>
<div>本地址访问人员:场地管理员、场地财务</div> <div>本地址访问人员:门店管理员、门店财务</div>
</div> </div>
<table id="dtable" lay-filter="dtable"></table> <table id="dtable" lay-filter="dtable"></table>
</div> </div>
@ -112,11 +112,9 @@ $user_type = \Yii::$app->request->get('user_type');
<script type="text/html" id="usertypeTpl"> <script type="text/html" id="usertypeTpl">
{{# if(d.user_type == '1'){ }} {{# if(d.user_type == '1'){ }}
<span class="layui-badge layui-bg-black">场地管理员</span> <span class="layui-badge layui-bg-black">门店管理员</span>
{{# } else if(d.user_type == '2'){ }}
<span class="layui-badge layui-bg-green">场地服务员</span>
{{# } else if(d.user_type == '3'){ }} {{# } else if(d.user_type == '3'){ }}
<span class="layui-badge layui-bg-blue">场地财务员</span> <span class="layui-badge layui-bg-green">门店医师</span>
{{# } }} {{# } }}
</script> </script>
@ -124,20 +122,20 @@ $user_type = \Yii::$app->request->get('user_type');
<img src="{{d.avatar_url}}" style="width:24px;height:24px;border-radius: 24px;margin-right: 4px;">{{d.real_name}} <img src="{{d.avatar_url}}" style="width:24px;height:24px;border-radius: 24px;margin-right: 4px;">{{d.real_name}}
</script> </script>
<script type="text/html" id="gjsmsTpl"> <!--<script type="text/html" id="gjsmsTpl">-->
{{# if(d.gjsms == 1){ }} <!-- {{# if(d.gjsms == 1){ }}-->
<input type="checkbox" lay-skin="switch" checked="" data="{{d.mobile_phone}}" lay-filter="switchgjsmsTpl" lay-text="接收|不接收"> <!-- <input type="checkbox" lay-skin="switch" checked="" data="{{d.mobile_phone}}" lay-filter="switchgjsmsTpl" lay-text="接收|不接收">-->
{{# }else{ }} <!-- {{# }else{ }}-->
<input type="checkbox" lay-skin="switch" data="{{d.mobile_phone}}" lay-filter="switchgjsmsTpl" lay-text="接收|不接收"> <!-- <input type="checkbox" lay-skin="switch" data="{{d.mobile_phone}}" lay-filter="switchgjsmsTpl" lay-text="接收|不接收">-->
{{# } }} <!-- {{# } }}-->
</script> <!--</script>-->
<script type="text/html" id="ghsmsTpl"> <!--<script type="text/html" id="ghsmsTpl">-->
{{# if(d.ghsms == 1){ }} <!-- {{# if(d.ghsms == 1){ }}-->
<input type="checkbox" checked="" lay-skin="switch" data="{{d.mobile_phone}}" lay-filter="switchghsmsTpl" lay-text="接收|不接收"> <!-- <input type="checkbox" checked="" lay-skin="switch" data="{{d.mobile_phone}}" lay-filter="switchghsmsTpl" lay-text="接收|不接收">-->
{{# }else{ }} <!-- {{# }else{ }}-->
<input type="checkbox" lay-skin="switch" data="{{d.mobile_phone}}" lay-filter="switchghsmsTpl" lay-text="接收|不接收"> <!-- <input type="checkbox" lay-skin="switch" data="{{d.mobile_phone}}" lay-filter="switchghsmsTpl" lay-text="接收|不接收">-->
{{# } }} <!-- {{# } }}-->
</script> <!--</script>-->
@ -189,16 +187,16 @@ $user_type = \Yii::$app->request->get('user_type');
,cols: [[ ,cols: [[
{checkbox: true} {checkbox: true}
, {field: 'id', title: 'ID', width: 80} , {field: 'id', title: 'ID', width: 80}
, {field: 'name', title: '场地名称'} , {field: 'name', title: '门店名称'}
, {field: 'business', title: '营业时间', width: 110} , {field: 'business', title: '营业时间', width: 110}
, {field: 'store_status', title: '场地状态',templet:'#storestatusTpl', width: 110} , {field: 'store_status', title: '门店状态',templet:'#storestatusTpl', width: 110}
, {field: 'username', title: 'PC端账号', width: 150} , {field: 'username', title: 'PC端账号', width: 150}
, {field: 'real_name', title: '管理员', templet:'#realnameTpl'} , {field: 'real_name', title: '管理员', templet:'#realnameTpl'}
, {field: 'status', title: '状态',templet:'#statusTpl', width: 80} , {field: 'status', title: '状态',templet:'#statusTpl', width: 80}
, {field: 'user_type', title: '角色',templet:'#usertypeTpl', width: 110} , {field: 'user_type', title: '角色',templet:'#usertypeTpl', width: 110}
, {field: 'created_at_cn', title: '创建时间', width: 150} , {field: 'created_at_cn', title: '创建时间', width: 150}
, {title: '归还短信',templet:'#ghsmsTpl', width: 150} // , {title: '归还短信',templet:'#ghsmsTpl', width: 150}
, {title: '告警短信',templet:'#gjsmsTpl', width: 150} // , {title: '告警短信',templet:'#gjsmsTpl', width: 150}
, {title: '操作',fixed: 'right', toolbar: '#rowBarTpl', width:200} , {title: '操作',fixed: 'right', toolbar: '#rowBarTpl', width:200}
] ]
] ]

View File

@ -55,7 +55,7 @@ $status = \Yii::$app->request->get('status');
<div class="layui-inline layui-form-item"> <div class="layui-inline layui-form-item">
<label class="layui-form-label">关键词</label> <label class="layui-form-label">关键词</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="keywords" placeholder="搜索昵称、用户名、姓名" autocomplete="off" class="layui-input" value="<?=\Yii::$app->request->get("keywords")?>"> <input type="text" name="keywords" placeholder="搜索姓名" autocomplete="off" class="layui-input" value="<?=\Yii::$app->request->get("keywords")?>">
</div> </div>
</div> </div>
@ -79,7 +79,7 @@ $status = \Yii::$app->request->get('status');
<!--工具栏模板--> <!--工具栏模板-->
<script type="text/html" id="toolBarTpl"> <script type="text/html" id="toolBarTpl">
<div class="layui-btn-container"> <div class="layui-btn-container">
<!--<button class="layui-btn layui-btn-sm" lay-event="add">添加</button>--> <!-- <button class="layui-btn layui-btn-sm" lay-event="add">添加</button>-->
<button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="forbidden">批量封禁</button> <button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="forbidden">批量封禁</button>
<button class="layui-btn layui-btn-sm" lay-event="cancel_forbidden">批量取消封禁</button> <button class="layui-btn layui-btn-sm" lay-event="cancel_forbidden">批量取消封禁</button>
<!--<button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="hangup">批量挂起</button>--> <!--<button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="hangup">批量挂起</button>-->
@ -89,8 +89,8 @@ $status = \Yii::$app->request->get('status');
</script> </script>
<!--行操作列模板--> <!--行操作列模板-->
<script type="text/html" id="rowBarTpl"> <script type="text/html" id="rowBarTpl">
<!-- <a href="javascript:;" class="layui-btn layui-btn-normal layui-btn-xs layui-hide" lay-event="recharge" >余额充值</a>--> <a href="javascript:;" class="layui-btn layui-btn-danger layui-btn-xs" lay-event="forbidden" >用户报告</a>
<!-- <a href="javascript:;" class="layui-btn layui-btn-normal layui-btn-xs layui-hide" lay-event="rechargeintegral" >积分充值</a>-->
{{# if(d.status == <?=User::STATUS_NORMAL?>){ }} {{# if(d.status == <?=User::STATUS_NORMAL?>){ }}
<!--<a href="javascript:;" class="layui-btn layui-btn-warm layui-btn-xs" lay-event="hangup" >挂起</a>--> <!--<a href="javascript:;" class="layui-btn layui-btn-warm layui-btn-xs" lay-event="hangup" >挂起</a>-->
<a href="javascript:;" class="layui-btn layui-btn-danger layui-btn-xs" lay-event="forbidden" >封禁</a> <a href="javascript:;" class="layui-btn layui-btn-danger layui-btn-xs" lay-event="forbidden" >封禁</a>
@ -102,7 +102,7 @@ $status = \Yii::$app->request->get('status');
<!-- <a href="javascript:;" class="layui-btn layui-btn-danger layui-btn-xs layui-hide" lay-event="account_logout" >注销</a>--> <!-- <a href="javascript:;" class="layui-btn layui-btn-danger layui-btn-xs layui-hide" lay-event="account_logout" >注销</a>-->
{{# } }} {{# } }}
{{# if(d.is_view == 1){ }} {{# if(d.is_view == 1){ }}
<a href="javascript:;" class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit_is_view" >变更未观看视频</a> <!--<a href="javascript:;" class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit_is_view" >变更未观看视频</a>-->
{{# } }} {{# } }}
</script> </script>
@ -441,11 +441,12 @@ function toExcel(FileName, ShowLabel, JSONData) {
,cols: [[ ,cols: [[
{checkbox: true} {checkbox: true}
, {field: 'id', title: 'ID', width: 80} , {field: 'id', title: 'ID', width: 80}
, {field: 'nickname', title: '用户',templet:'#nicknameTpl'} // , {field: 'nickname', title: '用户',templet:'#nicknameTpl'}
, {field: 'username', title: '用户名', width: 120} // , {field: 'username', title: '用户名', width: 120}
, {field: 'real_name', title: '姓名'} , {field: 'real_name', title: '姓名'}
, {field: 'mobile', title: '手机号',templet:'<div>+{{d.mobile_prefix}} {{d.mobile_phone}}</div>'} , {field: 'mobile', title: '手机号',templet:'<div>+{{d.mobile_prefix}} {{d.mobile_phone}}</div>'}
, {field: 'gender_cn', title: '性别'} , {field: 'gender_cn', title: '性别'}
, {field: 'gender_cn', title: '鞋码'}
, {field: 'created_at_cn', title: '注册时间'} , {field: 'created_at_cn', title: '注册时间'}
, {field: 'status_cn', title: '状态', templet:'#statusTpl'} , {field: 'status_cn', title: '状态', templet:'#statusTpl'}
, {title: '操作',fixed: 'right', toolbar: '#rowBarTpl', width: 240} , {title: '操作',fixed: 'right', toolbar: '#rowBarTpl', width: 240}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

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