mirror of
https://gitee.com/zongzhige/shopxo.git
synced 2024-12-01 03:18:33 +08:00
应用
This commit is contained in:
parent
07bf01d614
commit
73b3b454d3
@ -52,7 +52,6 @@ class Pets extends Controller
|
||||
public function index($params = [])
|
||||
{
|
||||
// 参数
|
||||
$params = input();
|
||||
$params['user'] = $this->user;
|
||||
|
||||
// 分页
|
||||
@ -82,8 +81,9 @@ class Pets extends Controller
|
||||
'where' => $where,
|
||||
);
|
||||
$data = Service::PetsList($data_params);
|
||||
unset($params['user']);
|
||||
$this->assign('params', $params);
|
||||
$this->assign('data_list', $data['data']);
|
||||
|
||||
$this->assign('pets_attribute_status_list', Service::$pets_attribute_status_list);
|
||||
$this->assign('pets_attribute_is_text_list', Service::$pets_attribute_is_text_list);
|
||||
$this->assign('pets_attribute_gender_list', Service::$pets_attribute_gender_list);
|
||||
@ -173,7 +173,7 @@ class Pets extends Controller
|
||||
}
|
||||
|
||||
// 用户
|
||||
$params['user'] = $this->user;
|
||||
$params['user_id'] = $this->user['id'];
|
||||
return Service::PestSave($params);
|
||||
}
|
||||
|
||||
@ -194,7 +194,7 @@ class Pets extends Controller
|
||||
}
|
||||
|
||||
// 用户
|
||||
$params['user'] = $this->user;
|
||||
$params['user_id'] = $this->user['id'];
|
||||
return Service::HelpSave($params);
|
||||
}
|
||||
|
||||
|
@ -13,6 +13,7 @@ namespace app\plugins\petscms;
|
||||
use think\Controller;
|
||||
use app\plugins\petscms\Service;
|
||||
use app\service\PluginsService;
|
||||
use app\service\UserService;
|
||||
|
||||
/**
|
||||
* 宠物管理系统 - 宠物管理
|
||||
@ -31,8 +32,41 @@ class PetsAdmin extends Controller
|
||||
* @datetime 2019-03-15T23:51:50+0800
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public function Index($params = [])
|
||||
public function index($params = [])
|
||||
{
|
||||
// 分页
|
||||
$number = 10;
|
||||
|
||||
// 条件
|
||||
$where = Service::PetsListWhere($params);
|
||||
|
||||
// 获取总数
|
||||
$total = Service::PetsTotal($where);
|
||||
|
||||
// 分页
|
||||
$page_params = array(
|
||||
'number' => $number,
|
||||
'total' => $total,
|
||||
'where' => $params,
|
||||
'page' => isset($params['page']) ? intval($params['page']) : 1,
|
||||
'url' => PluginsHomeUrl('petscms', 'pets', 'index'),
|
||||
);
|
||||
$page = new \base\Page($page_params);
|
||||
$this->assign('page_html', $page->GetPageHtml());
|
||||
|
||||
// 获取列表
|
||||
$data_params = array(
|
||||
'm' => $page->GetPageStarNumber(),
|
||||
'n' => $number,
|
||||
'where' => $where,
|
||||
);
|
||||
$data = Service::PetsList($data_params);
|
||||
$this->assign('data_list', $data['data']);
|
||||
$this->assign('params', $params);
|
||||
$this->assign('pets_attribute_status_list', Service::$pets_attribute_status_list);
|
||||
$this->assign('pets_attribute_is_text_list', Service::$pets_attribute_is_text_list);
|
||||
$this->assign('pets_attribute_gender_list', Service::$pets_attribute_gender_list);
|
||||
$this->assign('pets_attribute_type_list', Service::$pets_attribute_type_list);
|
||||
return $this->fetch('../../../plugins/view/petscms/petsadmin/index');
|
||||
}
|
||||
|
||||
@ -44,9 +78,158 @@ class PetsAdmin extends Controller
|
||||
* @datetime 2019-03-15T23:51:50+0800
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public function SaveInfo($params = [])
|
||||
public function saveinfo($params = [])
|
||||
{
|
||||
// 获取数据
|
||||
$data = [];
|
||||
if(!empty($params['id']))
|
||||
{
|
||||
$data_params = array(
|
||||
'm' => 0,
|
||||
'n' => 1,
|
||||
'where' => ['id' => intval($params['id'])],
|
||||
);
|
||||
$ret = Service::PetsList($data_params);
|
||||
if(!empty($ret['data'][0]))
|
||||
{
|
||||
$ret['data'][0]['lose_features'] = str_replace('<br />', "\n", $ret['data'][0]['lose_features']);
|
||||
$data = $ret['data'][0];
|
||||
}
|
||||
unset($params['id']);
|
||||
}
|
||||
$this->assign('params', $params);
|
||||
$this->assign('data', $data);
|
||||
$this->assign('pets_attribute_status_list', Service::$pets_attribute_status_list);
|
||||
$this->assign('pets_attribute_is_text_list', Service::$pets_attribute_is_text_list);
|
||||
$this->assign('pets_attribute_gender_list', Service::$pets_attribute_gender_list);
|
||||
$this->assign('pets_attribute_type_list', Service::$pets_attribute_type_list);
|
||||
return $this->fetch('../../../plugins/view/petscms/petsadmin/saveinfo');
|
||||
}
|
||||
|
||||
/**
|
||||
* 宠物详情
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2019-03-15T23:51:50+0800
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public function detail($params = [])
|
||||
{
|
||||
// 获取数据
|
||||
$data = [];
|
||||
if(empty($params['id']))
|
||||
{
|
||||
return '宠物id有误';
|
||||
}
|
||||
$data_params = array(
|
||||
'm' => 0,
|
||||
'n' => 1,
|
||||
'where' => ['id' => intval($params['id']), 'status'=>[0,1,2]],
|
||||
);
|
||||
$ret = Service::PetsList($data_params);
|
||||
$data = empty($ret['data'][0]) ? [] : $ret['data'][0];
|
||||
|
||||
$this->assign('data', $data);
|
||||
$this->assign('params', $params);
|
||||
return $this->fetch('../../../plugins/view/petscms/petsadmin/detail');
|
||||
}
|
||||
|
||||
/**
|
||||
* 宠物添加/编辑
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2019-03-15T23:51:50+0800
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public function save($params = [])
|
||||
{
|
||||
// 是否ajax请求
|
||||
if(!IS_AJAX)
|
||||
{
|
||||
return $this->error('非法访问');
|
||||
}
|
||||
|
||||
// 用户
|
||||
return Service::PestSave($params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 宠物帮助数据列表
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2019-03-15T23:51:50+0800
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public function help($params = [])
|
||||
{
|
||||
// 参数
|
||||
if(empty($params['pets_id']))
|
||||
{
|
||||
return '参数有误';
|
||||
}
|
||||
|
||||
// 分页
|
||||
$number = 10;
|
||||
|
||||
// 条件
|
||||
$where = [
|
||||
'pets_id' => intval($params['pets_id']),
|
||||
];
|
||||
|
||||
// 获取总数
|
||||
$total = Service::HelpTotal($where);
|
||||
|
||||
// 分页
|
||||
$page_params = array(
|
||||
'number' => $number,
|
||||
'total' => $total,
|
||||
'where' => $params,
|
||||
'page' => isset($params['page']) ? intval($params['page']) : 1,
|
||||
'url' => PluginsHomeUrl('petscms', 'pets', 'index'),
|
||||
);
|
||||
$page = new \base\Page($page_params);
|
||||
$this->assign('page_html', $page->GetPageHtml());
|
||||
|
||||
// 获取列表
|
||||
$data_params = array(
|
||||
'm' => $page->GetPageStarNumber(),
|
||||
'n' => $number,
|
||||
'where' => $where,
|
||||
);
|
||||
$data = Service::HelpList($data_params);
|
||||
$this->assign('data_list', $data['data']);
|
||||
return $this->fetch('../../../plugins/view/petscms/petsadmin/help');
|
||||
}
|
||||
|
||||
/**
|
||||
* 宠物帮助数据地图展示
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2019-03-15T23:51:50+0800
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public function helpmap($params = [])
|
||||
{
|
||||
// 隐藏头尾
|
||||
$this->assign('is_header', 0);
|
||||
$this->assign('is_footer', 0);
|
||||
|
||||
// 参数
|
||||
$params = input();
|
||||
if(!empty($params['lng']))
|
||||
{
|
||||
$params['lng'] = base64_decode($params['lng']);
|
||||
}
|
||||
if(!empty($params['lat']))
|
||||
{
|
||||
$params['lat'] = base64_decode($params['lat']);
|
||||
}
|
||||
$this->assign('params', $params);
|
||||
return $this->fetch('../../../plugins/view/petscms/petsadmin/helpmap');
|
||||
}
|
||||
}
|
||||
?>
|
@ -353,7 +353,7 @@ class Service
|
||||
|
||||
// 宠物数据
|
||||
$data = [
|
||||
'user_id' => isset($params['user']['id']) ? intval($params['user']['id']) : 0,
|
||||
'user_id' => isset($params['user_id']) ? intval($params['user_id']) : 0,
|
||||
'title' => isset($params['title']) ? $params['title'] : '',
|
||||
'name' => isset($params['name']) ? $params['name'] : '',
|
||||
'birthday' => empty($params['birthday']) ? 0 : strtotime($params['birthday']),
|
||||
@ -504,7 +504,7 @@ class Service
|
||||
|
||||
// 宠物数据
|
||||
$data = [
|
||||
'user_id' => isset($params['user']['id']) ? intval($params['user']['id']) : 0,
|
||||
'user_id' => isset($params['user_id']) ? intval($params['user_id']) : 0,
|
||||
'pets_id' => intval($params['pets_id']),
|
||||
'contacts_name' => $params['contacts_name'],
|
||||
'contacts_tel' => isset($params['contacts_tel']) ? $params['contacts_tel'] : '',
|
||||
|
79
application/plugins/view/petscms/petsadmin/help.html
Normal file
79
application/plugins/view/petscms/petsadmin/help.html
Normal file
@ -0,0 +1,79 @@
|
||||
{{include file="public/header" /}}
|
||||
|
||||
<!-- right content start -->
|
||||
<div class="content-right">
|
||||
<div class="content">
|
||||
<legend>
|
||||
<span class="fs-16">宠物管理系统</span>
|
||||
<a href="{{:PluginsAdminUrl('petscms', 'petsadmin', 'index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
|
||||
</legend>
|
||||
|
||||
<div class="petscms-content pets-help" data-url="{{:PluginsAdminUrl('petscms', 'petsadmin', 'helpmap')}}">
|
||||
<!-- 列表 -->
|
||||
<div class="data-list">
|
||||
<table class="am-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>联系人信息</th>
|
||||
<th>省市区/县</th>
|
||||
<th>详细地址</th>
|
||||
<th class="am-hide-sm-only">操作时间</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{if !empty($data_list)}}
|
||||
{{foreach $data_list as $v}}
|
||||
<tr>
|
||||
<td>
|
||||
姓名:{{if empty($v['contacts_name'])}}<span class="items-value-empty">未填写</span>{{else /}}{{$v.contacts_name}}{{/if}}<br />
|
||||
|
||||
电话:{{if empty($v['contacts_tel'])}}<span class="items-value-empty">未填写</span>{{else /}}{{$v.contacts_tel}}{{/if}}<br />
|
||||
|
||||
微信:{{if empty($v['contacts_weixin'])}}<span class="items-value-empty">未填写</span>{{else /}}{{$v.contacts_weixin}}{{/if}}
|
||||
</td>
|
||||
<td>
|
||||
所在省:{{if empty($v['province_name'])}}<span class="items-value-empty">未填写</span>{{else /}}{{$v.province_name}}{{/if}}<br />
|
||||
|
||||
所在市:{{if empty($v['city_name'])}}<span class="items-value-empty">未填写</span>{{else /}}{{$v.city_name}}{{/if}}<br />
|
||||
|
||||
所在区/县:{{if empty($v['county_name'])}}<span class="items-value-empty">未填写</span>{{else /}}{{$v.county_name}}{{/if}}<br />
|
||||
</td>
|
||||
<td>{{$v.address}}</td>
|
||||
<td class="am-hide-sm-only">
|
||||
添加:{{$v.add_time_time}}
|
||||
{{if !empty($v['upd_time_time'])}}
|
||||
<br />更新:{{$v.upd_time_time}}
|
||||
{{/if}}
|
||||
</td>
|
||||
<td>
|
||||
{{if !empty($v['lng']) and !empty($v['lat']) and $v['lng'] gt 0 and $v['lat'] gt 0}}
|
||||
<button class="am-btn am-btn-secondary am-btn-xs am-radius am-icon-map-marker am-btn-block map-submit" data-lng="{{$v.lng}}" data-lat="{{$v.lat}}"> 查看地图</button>
|
||||
{{/if}}
|
||||
</td>
|
||||
</tr>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
{{if empty($data_list)}}
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
<div class="table-no"><i class="am-icon-warning"></i> 没有相关数据</div>
|
||||
</td>
|
||||
</tr>
|
||||
{{/if}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- 分页 -->
|
||||
{{if !empty($data_list)}}
|
||||
{{$page_html|raw}}
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- right content end -->
|
||||
|
||||
<!-- footer start -->
|
||||
{{include file="public/footer" /}}
|
||||
<!-- footer end -->
|
39
application/plugins/view/petscms/petsadmin/helpmap.html
Normal file
39
application/plugins/view/petscms/petsadmin/helpmap.html
Normal file
@ -0,0 +1,39 @@
|
||||
{{include file="public/header" /}}
|
||||
|
||||
{{if !empty($params['lng']) and !empty($params['lat']) and $params['lng'] gt 0 and $params['lat'] gt 0}}
|
||||
<div id="help-map"></div>
|
||||
{{else /}}
|
||||
<div class="table-no"><i class="am-icon-warning"></i> 参数有误</div>
|
||||
{{/if}}
|
||||
|
||||
{{include file="public/footer" /}}
|
||||
|
||||
{{if !empty($params['lng']) and !empty($params['lat']) and $params['lng'] gt 0 and $params['lat'] gt 0}}
|
||||
<!-- map -->
|
||||
<script type="text/javascript" src="{{$Think.__MY_HTTP__}}://api.map.baidu.com/api?v=2.0&ak={{:MyC('common_baidu_map_ak')}}"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function()
|
||||
{
|
||||
// 丢失地址-地图展示
|
||||
var map = new BMap.Map("help-map", {enableMapClick:false});
|
||||
var level = 17;
|
||||
var point = new BMap.Point({{$params['lng']}}, {{$params['lat']}});
|
||||
map.centerAndZoom(point, level);
|
||||
|
||||
// 添加控件
|
||||
var navigationControl = new BMap.NavigationControl({
|
||||
// 靠左上角位置
|
||||
anchor: BMAP_ANCHOR_TOP_LEFT,
|
||||
// LARGE类型
|
||||
type: BMAP_NAVIGATION_CONTROL_LARGE,
|
||||
});
|
||||
map.addControl(navigationControl);
|
||||
|
||||
// 创建标注
|
||||
var marker = new BMap.Marker(point); // 创建标注
|
||||
map.addOverlay(marker); // 将标注添加到地图中
|
||||
marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
|
||||
});
|
||||
</script>
|
||||
{{/if}}
|
@ -1,3 +1,195 @@
|
||||
petsadmin - index
|
||||
{{include file="public/header" /}}
|
||||
|
||||
<a href="{{:PluginsAdminUrl('petscms', 'petsadmin', 'saveinfo')}}">新增</a>
|
||||
<!-- right content start -->
|
||||
<div class="content-right">
|
||||
<div class="content">
|
||||
<legend>
|
||||
<span class="fs-16">宠物管理系统</span>
|
||||
<a href="{{:PluginsAdminUrl('petscms', 'admin', 'index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
|
||||
</legend>
|
||||
|
||||
<div class="petscms-content">
|
||||
<form class="am-form form-validation" method="post" action="{{:PluginsAdminUrl('petscms', 'petsadmin', 'index')}}" request-type="form">
|
||||
<div class="thin">
|
||||
<div class="am-input-group am-input-group-sm am-fl so">
|
||||
<input type="text" autocomplete="off" name="keywords" class="am-radius" placeholder="其实搜索很简单 ^_^!" value="{{if !empty($params.keywords)}}{{$params.keywords}}{{/if}}" />
|
||||
<span class="am-input-group-btn">
|
||||
<button class="am-btn am-btn-default am-radius" type="submit" data-am-loading="{spinner:'circle-o-notch', loadingText:'搜索中...'}">搜索</button>
|
||||
</span>
|
||||
</div>
|
||||
<label class="am-fl thin_sub more-submit">
|
||||
更多筛选条件
|
||||
<input type="checkbox" name="is_more" value="1" class="none am-field-valid" {{if isset($params['is_more'])}}checked{{/if}} />
|
||||
<i class="am-icon-angle-up"></i>
|
||||
</label>
|
||||
</div>
|
||||
<table class="so-list more-where {{if !isset($params['is_more'])}}none{{/if}}">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<span>类型:</span>
|
||||
<select name="type" class="chosen-select" data-placeholder="宠物类型...">
|
||||
<option value="">宠物类型...</option>
|
||||
{{if !empty($pets_attribute_type_list)}}
|
||||
{{foreach $pets_attribute_type_list as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($params['type']) and $params['type'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<span>状态:</span>
|
||||
<select name="status" class="chosen-select" data-placeholder="宠物状态...">
|
||||
<option value="-1">宠物状态...</option>
|
||||
{{if !empty($pets_attribute_status_list)}}
|
||||
{{foreach $pets_attribute_status_list as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($params['status']) and $params['status'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<span>绝育:</span>
|
||||
<select name="sterilization" class="chosen-select" data-placeholder="是否绝育...">
|
||||
<option value="-1">是否绝育...</option>
|
||||
{{if !empty($pets_attribute_is_text_list)}}
|
||||
{{foreach $pets_attribute_is_text_list as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($params['sterilization']) and $params['sterilization'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<span>性别:</span>
|
||||
<select name="gender" class="chosen-select" data-placeholder="宠物性别...">
|
||||
<option value="-1">宠物性别...</option>
|
||||
{{if !empty($pets_attribute_gender_list)}}
|
||||
{{foreach $pets_attribute_gender_list as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($params['gender']) and $params['gender'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-xs btn-loading-example" data-am-loading="{spinner:'circle-o-notch', loadingText:'搜索中...'}">搜索</button>
|
||||
<a href="{{:PluginsAdminUrl('petscms', 'petsadmin', 'index')}}" class="am-btn am-btn-warning am-radius am-btn-sm reset-submit">清除条件</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
<!-- operation start -->
|
||||
<div class="am-g operation-nav">
|
||||
<a href="{{:PluginsAdminUrl('petscms', 'petsadmin', 'saveinfo')}}" class="am-btn am-btn-primary am-radius am-btn-xs am-icon-plus"> 新增 / 绑定</a>
|
||||
</div>
|
||||
<!-- operation end -->
|
||||
|
||||
<!-- 列表 -->
|
||||
<div class="data-list">
|
||||
<table class="am-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="am-hide-sm-only">标题/相册</th>
|
||||
<th>宠物信息</th>
|
||||
<th class="am-hide-sm-only">主人信息</th>
|
||||
<th>二维码</th>
|
||||
<th>状态</th>
|
||||
<th class="am-hide-sm-only">操作时间</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{if !empty($data_list)}}
|
||||
{{foreach $data_list as $v}}
|
||||
<tr>
|
||||
<td class="am-hide-sm-only row-first">
|
||||
<p class="ellipsis">{{$v.title}}</p>
|
||||
{{if !empty($v['photo'])}}
|
||||
<div data-am-widget="slider" class="am-slider am-slider-a1" data-am-slider='{"directionNav":false, "slideshow":false}' >
|
||||
<ul class="am-slides">
|
||||
{{foreach $v.photo as $photo}}
|
||||
<li>
|
||||
<img src="{{$photo.images}}" alt="{{$v.title}}" />
|
||||
</li>
|
||||
{{/foreach}}
|
||||
</ul>
|
||||
</div>
|
||||
{{/if}}
|
||||
</td>
|
||||
<td>
|
||||
编号:{{if empty($v['pest_no'])}}<span class="items-value-empty">未填写</span>{{else /}}{{$v.pest_no}}{{/if}}<br />
|
||||
|
||||
名字:{{if empty($v['name'])}}<span class="items-value-empty">未填写</span>{{else /}}{{$v.name}}{{/if}}<br />
|
||||
|
||||
类型:{{if empty($v['type_name'])}}<span class="items-value-empty">未填写</span>{{else /}}{{$v.type_name}}{{/if}}<br />
|
||||
|
||||
性别:{{if empty($v['gender_name'])}}<span class="items-value-empty">未填写</span>{{else /}}{{$v.gender_name}}{{/if}}<br />
|
||||
|
||||
生日:{{if empty($v['birthday_name'])}}<span class="items-value-empty">未填写</span>{{else /}}{{$v.birthday_name}}{{/if}}<br />
|
||||
|
||||
年龄:{{if empty($v['age'])}}<span class="items-value-empty">未填写</span>{{else /}}<span class="am-badge am-radius">{{$v.age}}</span>{{/if}}<br />
|
||||
|
||||
品种:{{if empty($v['varieties'])}}<span class="items-value-empty">未填写</span>{{else /}}{{$v.varieties}}{{/if}}<br />
|
||||
|
||||
绝育:{{$v.sterilization_name}}<br />
|
||||
疫苗:{{$v.vaccine_name}}<br />
|
||||
</td>
|
||||
<td class="am-hide-sm-only">
|
||||
姓名:{{if empty($v['person_name'])}}<span class="items-value-empty">未填写</span>{{else /}}{{$v.person_name}}{{/if}}<br />
|
||||
|
||||
电话:{{if empty($v['person_tel'])}}<span class="items-value-empty">未填写</span>{{else /}}{{$v.person_tel}}{{/if}}<br />
|
||||
|
||||
微信:{{if empty($v['person_weixin'])}}<span class="items-value-empty">未填写</span>{{else /}}{{$v.person_weixin}}{{/if}}<br />
|
||||
</td>
|
||||
<td class="row-qucode">
|
||||
<img src="{{$v.qrcode_url}}" alt="{{$v.title}}" />
|
||||
<a href="{{$v.qrcode_download}}" target="_blank" title="下载二维码">
|
||||
<p><i class="am-icon-cloud-download"></i> 下载二维码</p>
|
||||
</a>
|
||||
</td>
|
||||
<td>{{$v.status_name}}</td>
|
||||
<td class="am-hide-sm-only">
|
||||
添加:{{$v.add_time_time}}
|
||||
{{if !empty($v['upd_time_time'])}}
|
||||
<br />更新:{{$v.upd_time_time}}
|
||||
{{/if}}
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{:PluginsAdminUrl('petscms', 'petsadmin', 'saveinfo',array_merge($params, ['id'=>$v['id']]))}}" class="am-btn am-btn-secondary am-btn-xs am-radius am-icon-edit am-btn-block"> 编辑</a>
|
||||
{{if $v['status'] neq 3}}
|
||||
<a href="{{:PluginsHomeUrl('petscms', 'pets', 'detail',array_merge($params, ['id'=>$v['id']]))}}" class="am-btn am-btn-success am-btn-xs am-radius am-icon-newspaper-o am-btn-block" target="_blank"> 详情</a>
|
||||
{{/if}}
|
||||
<a href="{{:PluginsAdminUrl('petscms', 'petsadmin', 'help',array_merge($params, ['pets_id'=>$v['id']]))}}" class="am-btn am-btn-default am-btn-xs am-radius am-icon-gg am-btn-block" target="_blank"> 帮助</a>
|
||||
</td>
|
||||
</tr>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
{{if empty($data_list)}}
|
||||
<tr>
|
||||
<td colspan="7">
|
||||
<div class="table-no"><i class="am-icon-warning"></i> 没有相关数据</div>
|
||||
</td>
|
||||
</tr>
|
||||
{{/if}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- 分页 -->
|
||||
{{if !empty($data_list)}}
|
||||
{{$page_html|raw}}
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- right content end -->
|
||||
|
||||
<!-- footer start -->
|
||||
{{include file="public/footer" /}}
|
||||
<!-- footer end -->
|
@ -1 +1,227 @@
|
||||
saveinfo
|
||||
{{include file="public/header" /}}
|
||||
|
||||
<!-- right content start -->
|
||||
<div class="content-right">
|
||||
<div class="content">
|
||||
<legend>
|
||||
<span class="fs-16">宠物管理系统</span>
|
||||
<a href="{{:PluginsAdminUrl('petscms', 'petsadmin', 'index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
|
||||
</legend>
|
||||
<div class="petscms-content">
|
||||
<form class="am-form form-validation view-save" action="{{:PluginsAdminUrl('petscms', 'petsadmin', 'save')}}" method="POST" request-type="ajax-url" request-value="{{:PluginsAdminUrl('petscms', 'petsadmin', 'index', $params)}}" enctype="multipart/form-data">
|
||||
<!-- 基础 -->
|
||||
<div class="base-view">
|
||||
{{if empty($data['id'])}}
|
||||
<div class="am-form-group">
|
||||
<label>编号<span class="am-form-group-label-tips-must">请输入二维码上的编号(无二维码留空即可)</span></label>
|
||||
<input type="text" name="pest_no" placeholder="编号" maxlength="60" data-validation-message="编号格式 1~60 个字符之间" class="am-radius" value="" />
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>标题<span class="am-form-group-label-tips-must">必填</span></label>
|
||||
<input type="text" name="title" placeholder="标题" minlength="1" maxlength="60" data-validation-message="标题格式 1~60 个字符之间" class="am-radius" value="{{if !empty($data['title'])}}{{$data.title}}{{/if}}" required />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>宠物名字<span class="am-form-group-label-tips-must">必填</span></label>
|
||||
<input type="text" name="name" placeholder="宠物名字" minlength="1" maxlength="30" data-validation-message="宠物名字格式 1~30 个字符之间" class="am-radius" value="{{if !empty($data['name'])}}{{$data.name}}{{/if}}" required />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>出生日期<span class="am-form-group-label-tips-must">必填</span></label>
|
||||
<input type="text" name="birthday" class="am-form-field am-radius Wdate" placeholder="出生日期" data-validation-message="出生日期格式有误" {{if !empty($data['birthday_name'])}} value="{{$data.birthday_name}}"{{/if}} onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd'})" autocomplete="off" required />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>类型<span class="am-form-group-label-tips-must">必选</span></label>
|
||||
<select name="type" class="am-radius chosen-select" data-placeholder="可选择..." data-validation-message="请选择类型" required>
|
||||
<option value="">可选择...</option>
|
||||
{{foreach $pets_attribute_type_list as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($data['type']) and $data['type'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>品种<span class="am-form-group-label-tips">必填</span></label>
|
||||
<input type="text" name="varieties" placeholder="品种" maxlength="30" data-validation-message="品种格式最多 30 个字符" class="am-radius" value="{{if !empty($data['varieties'])}}{{$data.varieties}}{{/if}}" required />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>性别<span class="am-form-group-label-tips-must">必选</span></label>
|
||||
<select name="gender" class="am-radius chosen-select" data-placeholder="可选择..." data-validation-message="请选择性别" required>
|
||||
<option value="">可选择...</option>
|
||||
{{foreach $pets_attribute_gender_list as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($data['gender']) and $data['gender'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>是否绝育<span class="am-form-group-label-tips-must">必选</span></label>
|
||||
<select name="sterilization" class="am-radius chosen-select" data-placeholder="可选择..." data-validation-message="请选择是否绝育" required>
|
||||
<option value="">可选择...</option>
|
||||
{{foreach $pets_attribute_is_text_list as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($data['sterilization']) and $data['sterilization'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>是否疫苗<span class="am-form-group-label-tips-must">必选</span></label>
|
||||
<select name="vaccine" class="am-radius chosen-select" data-placeholder="可选择..." data-validation-message="请选择是否疫苗" required>
|
||||
<option value="">可选择...</option>
|
||||
{{foreach $pets_attribute_is_text_list as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($data['vaccine']) and $data['vaccine'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- 相册 -->
|
||||
<div class="am-form-group">
|
||||
<label>宠物相册<span class="am-form-group-label-tips">选填,可拖拽图片进行排序,建议图片尺寸一致</span></label>
|
||||
<ul class="plug-file-upload-view goods-photo-view" data-form-name="photo[]" data-max-number="6" data-dialog-type="images">
|
||||
{{if !empty($data['photo'])}}
|
||||
{{foreach $data.photo as $v}}
|
||||
<li>
|
||||
<input type="text" name="photo[]" value="{{$v.images_old}}" />
|
||||
<img src="{{$v.images}}" />
|
||||
<i>×</i>
|
||||
</li>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</ul>
|
||||
<div class="plug-file-upload-submit" data-view-tag="ul.goods-photo-view">+上传相册</div>
|
||||
</div>
|
||||
|
||||
<!-- 宠物简介 -->
|
||||
<div class="am-form-group">
|
||||
<label>宠物简介<span class="am-form-group-label-tips">选填</span></label>
|
||||
<textarea class="am-radius am-validate" name="content" maxlength="105000" id="editor-tag" data-validation-message="宠物简介内容最多 105000 个字符">{{if !empty($data['content'])}}{{$data.content}}{{/if}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 主人信息 -->
|
||||
<div class="am-alert am-alert-secondary person-view" data-am-alert>
|
||||
<h2>主人信息</h2>
|
||||
<hr data-am-widget="divider" style="" class="am-divider am-divider-default" />
|
||||
<div class="am-form-group">
|
||||
<label>主人姓名<span class="am-form-group-label-tips-must">必填</span></label>
|
||||
<input type="text" name="person_name" placeholder="主人姓名" minlength="1" maxlength="30" data-validation-message="主人姓名格式 1~30 个字符之间" class="am-radius" value="{{if !empty($data['person_name'])}}{{$data.person_name}}{{/if}}" required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>主人电话<span class="am-form-group-label-tips-must">必填</span></label>
|
||||
<input type="text" name="person_tel" placeholder="主人电话" minlength="1" maxlength="30" data-validation-message="主人电话格式 1~30 个字符之间" class="am-radius" value="{{if !empty($data['person_tel'])}}{{$data.person_tel}}{{/if}}" required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>主人微信<span class="am-form-group-label-tips-must">必填</span></label>
|
||||
<input type="text" name="person_weixin" placeholder="主人微信" minlength="1" maxlength="30" data-validation-message="主人微信格式 1~30 个字符之间" class="am-radius" value="{{if !empty($data['person_weixin'])}}{{$data.person_weixin}}{{/if}}" required />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 丢失信息 -->
|
||||
<div class="am-alert am-alert-warning lose-view" data-am-alert>
|
||||
<h2>丢失信息(丢失状态下有效)</h2>
|
||||
<hr data-am-widget="divider" style="" class="am-divider am-divider-default" />
|
||||
<div class="am-form-group">
|
||||
<label>丢失时间<span class="am-form-group-label-tips">选填</span></label>
|
||||
<input type="text" name="lose_time" class="am-form-field am-radius Wdate" placeholder="丢失时间" data-validation-message="丢失时间格式有误" {{if !empty($data['lose_time_name'])}} value="{{$data.lose_time_name}}"{{/if}} onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd'})" autocomplete="off" />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>悬赏金额<span class="am-form-group-label-tips">选填(空则无赏金)</span></label>
|
||||
<input type="text" name="lose_reward_amount" placeholder="悬赏金额" data-validation-message="请填写有效的悬赏金额" class="am-radius" pattern="^([0-9]{1}\d{0,6})(\.\d{1,2})?$" value="{{if !empty($data['lose_reward_amount']) and $data['lose_reward_amount'] gt 0}}{{$data.lose_reward_amount}}{{/if}}" />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>宠物特征<span class="am-form-group-label-tips">选填</span></label>
|
||||
<textarea class="am-radius am-validate" name="lose_features" rows="5" maxlength="230" placeholder="内容最多230个字" data-validation-message="宠物特征最多 230 个字符">{{if !empty($data['lose_features'])}}{{$data.lose_features}}{{/if}}</textarea>
|
||||
</div>
|
||||
<div class="am-form-group region-linkage" data-url="{{:MyUrl('index/region/index')}}">
|
||||
<label class="block">省市区<span class="am-form-group-label-tips">选填</span></label>
|
||||
<select name="province" data-next="city" class="am-radius chosen-select" data-placeholder="省份" data-validation-message="请选择省份" data-value="{{if isset($data['lose_province'])}}{{$data.lose_province}}{{else /}}0{{/if}}" />
|
||||
<option value="">省份</option>
|
||||
</select>
|
||||
<select name="city" data-next="county" class="am-radius chosen-select" data-placeholder="城市" data-validation-message="请选择城市" data-value="{{if isset($data['lose_city'])}}{{$data.lose_city}}{{else /}}0{{/if}}" />
|
||||
<option value="">城市</option>
|
||||
</select>
|
||||
<select name="county" class="am-radius chosen-select" data-placeholder="区/县" data-validation-message="请选择区/县" data-value="{{if isset($data['lose_county'])}}{{$data.lose_county}}{{else /}}0{{/if}}" />
|
||||
<option value="">区/县</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-form-group map-address">
|
||||
<label>详细地址<span class="am-form-group-label-tips">选填</span></label>
|
||||
<div class="am-input-group am-input-group-sm">
|
||||
<input type="hidden" name="lng" id="form-lng" value="{{if !empty($data['lose_lng'])}}{{$data.lose_lng}}{{/if}}" />
|
||||
<input type="hidden" name="lat" id="form-lat" value="{{if !empty($data['lose_lat'])}}{{$data.lose_lat}}{{/if}}" />
|
||||
<input type="text" name="address" id="form-address" placeholder="详细地址" maxlength="80" data-validation-message="详细地址格式 1~80 个字符之间" class="am-radius" value="{{if !empty($data['lose_address'])}}{{$data.lose_address}}{{/if}}" />
|
||||
<span class="am-input-group-btn">
|
||||
<button class="am-btn am-btn-default am-radius" type="button" id="map-location-submit"><span class="am-icon-map-marker"></span> 定位</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id="map" data-level="17" class="am-form-group"></div>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>状态<span class="am-form-group-label-tips-must">必选</span></label>
|
||||
<select name="status" class="am-radius chosen-select" data-placeholder="可选择..." data-validation-message="请选择状态" required>
|
||||
<option value="">可选择...</option>
|
||||
{{foreach $pets_attribute_status_list as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($data['status']) and $data['status'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group am-form-group-refreshing">
|
||||
<input type="hidden" name="id" value="{{if !empty($data['id'])}}{{$data.id}}{{/if}}" />
|
||||
<input type="hidden" name="user_id" value="{{if !empty($data['user_id'])}}{{$data.user_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:'处理中...'}">提交</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- right content end -->
|
||||
|
||||
<!-- footer start -->
|
||||
{{include file="public/footer" /}}
|
||||
<!-- footer end -->
|
||||
|
||||
<!-- map -->
|
||||
<script type="text/javascript" src="{{$Think.__MY_HTTP__}}://api.map.baidu.com/api?v=2.0&ak={{:MyC('common_baidu_map_ak')}}"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function()
|
||||
{
|
||||
// 百度地图API功能
|
||||
var map = new BMap.Map("map", {enableMapClick:false});
|
||||
var level = $('#map').data('level') || 16;
|
||||
var point = new BMap.Point({{if !empty($data['lose_lng'])}}{{$data['lose_lng']}}{{else /}}116.400244{{/if}},{{if !empty($data['lose_lat'])}}{{$data['lose_lat']}}{{else /}}39.92556{{/if}});
|
||||
map.centerAndZoom(point, level);
|
||||
|
||||
// 添加控件
|
||||
var navigationControl = new BMap.NavigationControl({
|
||||
// 靠左上角位置
|
||||
anchor: BMAP_ANCHOR_TOP_LEFT,
|
||||
// LARGE类型
|
||||
type: BMAP_NAVIGATION_CONTROL_LARGE,
|
||||
});
|
||||
map.addControl(navigationControl);
|
||||
|
||||
// 创建标注
|
||||
var marker = new BMap.Marker(point); // 创建标注
|
||||
map.addOverlay(marker); // 将标注添加到地图中
|
||||
marker.enableDragging(); // 可拖拽
|
||||
marker.addEventListener("dragend", function(e) {
|
||||
map.panTo(e.point);
|
||||
$('#form-lng').val(e.point.lng);
|
||||
$('#form-lat').val(e.point.lat);
|
||||
});
|
||||
|
||||
// 设置版权控件位置
|
||||
var cr = new BMap.CopyrightControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT});
|
||||
map.addControl(cr); //添加版权控件
|
||||
var bs = map.getBounds(); //返回地图可视区域
|
||||
cr.addCopyright({id: 1, content: "<div class='map-copy'><span>拖动红色图标直接定位</span></div>", bounds:bs});
|
||||
});
|
||||
</script>
|
@ -19,7 +19,7 @@ return [
|
||||
// 应用地址
|
||||
'app_host' => '',
|
||||
// 应用调试模式
|
||||
'app_debug' => false,
|
||||
'app_debug' => true,
|
||||
// 应用Trace
|
||||
'app_trace' => false,
|
||||
// 是否支持多模块
|
||||
|
87
public/static/plugins/css/petscms/petsadmin.css
Normal file
87
public/static/plugins/css/petscms/petsadmin.css
Normal file
@ -0,0 +1,87 @@
|
||||
/* 筛选 */
|
||||
.thin, .pay-list { overflow:hidden; }
|
||||
.thin .so { width:66%; }
|
||||
.thin_sub { font-weight:100; margin:10px 0px 0px 10px; cursor: pointer; }
|
||||
.so-list { width:100%; margin-top: 20px; }
|
||||
.so-list * { font-size:1.2rem !important; }
|
||||
.so-list input { height:28px; display:inline !important; }
|
||||
.time input, .so-list .chosen-container { background:#FFF !important; }
|
||||
.time input { width:100px !important; }
|
||||
.time i { position:absolute; margin:4px 0px 0px -15px; }
|
||||
.price input { width:101px !important; }
|
||||
.time, .time { width:50%; }
|
||||
.so-list tr+tr>td { padding-top:10px; }
|
||||
.so-list .chosen-container { border-radius:2px; }
|
||||
.text-grey { color: #999; }
|
||||
.chosen-container-single .chosen-single, .so-list select { height: 28px; line-height: 28px; width: 100%; }
|
||||
.reset-submit { margin-left: 20px; }
|
||||
.so-list select { padding: 0 0 0 8px; }
|
||||
.operation-nav { margin: 15px 0 10px 0; }
|
||||
.row-qucode img { max-width: 100px; }
|
||||
.row-qucode p { margin-top: 5px; }
|
||||
.row-qucode a:hover, .row-qucode a:focus { text-decoration: none; }
|
||||
.row-first { width: 20%; }
|
||||
.row-first p { font-weight: 500; max-width: 240px; }
|
||||
.row-first .am-slider { max-height: 130px; }
|
||||
.row-first .am-slider .am-slides img { width: auto; max-height: 100%; margin: 0 auto; }
|
||||
@media only screen and (min-width: 641px){
|
||||
.so-list .chosen-container, .so-list select { width:217px !important; display: -webkit-inline-box; }
|
||||
.thin_sub:hover { color:#F60; }
|
||||
}
|
||||
@media only screen and (max-width: 641px){
|
||||
.so-list input { width:40% !important; }
|
||||
.so-list td { width:100%; display:block; }
|
||||
.so-list tr td:last-child { margin-top:10px; }
|
||||
.so-list .chosen-container { width:85%; }
|
||||
.so-list .chosen-container { width:100%; }
|
||||
.so-list tr td:last-child { padding-top:0px !important; }
|
||||
.chosen-container-single .chosen-search input[type="text"] { width: 100% !important; }
|
||||
.so-list select { width: calc(100% - 44px); display: -webkit-inline-box; }
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑页面
|
||||
*/
|
||||
.base-view .am-form-group:last-child, .person-view .am-form-group:last-child, .lose-view .am-form-group:last-child {border-bottom: 0; }
|
||||
form.form-validation h2 { font-weight: 700; font-size: 14px; }
|
||||
form.form-validation .am-divider { margin: 10px auto; }
|
||||
.lose-view { margin-top: 30px; }
|
||||
form.form-validation .am-alert-secondary { background-color: #f8f8f8; }
|
||||
form.form-validation .am-alert-warning { background-color: #fffbf7; }
|
||||
|
||||
|
||||
/**
|
||||
* 地图、联动地址
|
||||
*/
|
||||
form.form-validation .map-address {
|
||||
border-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
form.form-validation .region-linkage .chosen-select {
|
||||
display: -webkit-inline-box;
|
||||
width: calc(33.3% - 3px) !important;
|
||||
}
|
||||
form.form-validation .region-linkage .chosen-select .chosen-single {
|
||||
width: 100%;
|
||||
}
|
||||
form.form-validation #map {
|
||||
width: 100%;
|
||||
height: 350px;
|
||||
}
|
||||
|
||||
/**
|
||||
* 帮助页面
|
||||
*/
|
||||
#help-map {
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
/**
|
||||
* 公共
|
||||
*/
|
||||
.am-slider-a1 {
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
15
public/static/plugins/js/petscms/petsadmin.js
Normal file
15
public/static/plugins/js/petscms/petsadmin.js
Normal file
@ -0,0 +1,15 @@
|
||||
$(function()
|
||||
{
|
||||
// 帮助-地图查看
|
||||
$('.pets-help .map-submit').on('click', function()
|
||||
{
|
||||
var lng = parseFloat($(this).data('lng'));
|
||||
var lat = parseFloat($(this).data('lat'));
|
||||
if(lng > 0 && lat > 0)
|
||||
{
|
||||
// 数据base64避免特殊字符
|
||||
var url = UrlFieldReplace('lat', window.btoa(lat), UrlFieldReplace('lng', window.btoa(lng), $('.pets-help').data('url')));
|
||||
ModalLoad(url, '地图', 'plugins-petscms-popup-modal-help');
|
||||
}
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue
Block a user