提交 a9a0403d 编写于 作者: G gongfuxiang

del petscms

上级 b6f49f5c
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\plugins\petscms;
use think\Controller;
use app\service\PluginsService;
/**
* 顶部公告插件 - 管理
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class Admin extends Controller
{
/**
* 首页
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-02-07T08:21:54+0800
* @param [array] $params [输入参数]
*/
public function index($params = [])
{
return $this->fetch('../../../plugins/view/petscms/admin/index');
}
/**
* 配置管理
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-02-07T08:21:54+0800
* @param [array] $params [输入参数]
*/
public function base($params = [])
{
$ret = PluginsService::PluginsData('petscms', ['logo', 'pets_default_images', 'alipay_qrcode_images', 'weixin_qrcode_images']);
if($ret['code'] == 0)
{
if(!empty($ret['data']['not_bind_desc']))
{
$ret['data']['not_bind_desc'] = str_replace("\n", '<br />', $ret['data']['not_bind_desc']);
}
$this->assign('data', $ret['data']);
return $this->fetch('../../../plugins/view/petscms/admin/base');
} else {
return $ret['msg'];
}
}
/**
* 编辑页面
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-02-07T08:21:54+0800
* @param [array] $params [输入参数]
*/
public function saveinfo($params = [])
{
$ret = PluginsService::PluginsData('petscms', ['logo', 'pets_default_images', 'alipay_qrcode_images', 'weixin_qrcode_images'], false);
if($ret['code'] == 0)
{
// 是否
$is_whether_list = [
0 => array('id' => 0, 'name' => '否', 'checked' => true),
1 => array('id' => 1, 'name' => '是'),
];
$this->assign('is_whether_list', $is_whether_list);
$this->assign('data', $ret['data']);
return $this->fetch('../../../plugins/view/petscms/admin/saveinfo');
} else {
return $ret['msg'];
}
}
/**
* 数据保存
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-02-07T08:21:54+0800
* @param [array] $params [输入参数]
*/
public function save($params = [])
{
return PluginsService::PluginsDataSave(['plugins'=>'petscms', 'data'=>$params], ['logo', 'pets_default_images', 'alipay_qrcode_images', 'weixin_qrcode_images']);
}
}
?>
\ No newline at end of file
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\plugins\petscms;
use think\Controller;
use app\service\PluginsService;
/**
* 顶部公告 - 钩子入口
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class Hook extends Controller
{
/**
* 应用响应入口
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-02-09T14:25:44+0800
* @param [array] $params [输入参数]
*/
public function run($params = [])
{
if(!empty($params['hook_name']))
{
switch($params['hook_name'])
{
// 用户中心左侧导航
case 'plugins_service_users_center_left_menu_handle' :
$ret = $this->UserCenterLeftMenuHandle($params);
break;
// 顶部小导航右侧-我的商城
case 'plugins_service_header_navigation_top_right_handle' :
$ret = $this->CommonTopNavRightMenuHandle($params);
break;
default :
$ret = '';
}
return $ret;
}
}
/**
* 用户中心左侧菜单处理
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-04-11
* @desc description
* @param array $params [description]
*/
public function UserCenterLeftMenuHandle($params = [])
{
$params['data']['business']['item'][] = [
'name' => '我的宠物',
'url' => PluginsHomeUrl('petscms', 'pets', 'index'),
'contains' => ['petsindex', 'petssaveinfo', 'petshelp'],
'is_show' => 1,
'icon' => 'am-icon-github-alt',
];
}
/**
* 顶部小导航右侧-我的商城
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-04-11
* @desc description
* @param array $params [description]
*/
public function CommonTopNavRightMenuHandle($params = [])
{
array_push($params['data'][1]['items'], [
'name' => '我的宠物',
'url' => PluginsHomeUrl('petscms', 'pets', 'index'),
]);
}
}
?>
\ No newline at end of file
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\plugins\petscms;
use think\Controller;
use app\plugins\petscms\Service;
use app\service\PluginsService;
use app\service\UserService;
use app\service\SeoService;
/**
* 宠物管理系统 - 用户宠物管理
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class Pets extends Controller
{
private $user;
/**
* 构造方法
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-03-15
* @desc description
*/
public function __construct()
{
parent::__construct();
// 用户信息
$this->user = UserService::LoginUserInfo();
// 需要登录校验的方法
$is_login_all = ['index', 'saveinfo', 'save', 'untying', 'help', 'helpmap'];
// 登录校验
if(in_array(input('pluginsaction'), $is_login_all) && empty($this->user))
{
if(IS_AJAX)
{
exit(json_encode(DataReturn('登录失效,请重新登录', -400)));
} else {
return $this->redirect('index/user/logininfo');
}
}
}
/**
* 我的宠物
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-03-15T23:51:50+0800
* @param [array] $params [输入参数]
*/
public function index($params = [])
{
// 参数
$params['user'] = $this->user;
// 分页
$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);
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);
$this->assign('pets_attribute_type_list', Service::$pets_attribute_type_list);
return $this->fetch('../../../plugins/view/petscms/pets/index');
}
/**
* 宠物添加/编辑页面
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-03-15T23:51:50+0800
* @param [array] $params [输入参数]
*/
public function saveinfo($params = [])
{
// 是否绑定
if(!empty($params['pest_no']))
{
$data_params = array(
'm' => 0,
'n' => 1,
'where' => ['pest_no' => $params['pest_no']],
);
$ret = Service::PetsList($data_params);
if(!empty($ret['data'][0]['user_id']))
{
$this->assign('msg', '该宠物已被绑定');
return $this->fetch('public/tips_error');
}
$this->assign('pest_no', $params['pest_no']);
unset($params['pest_no']);
}
// 获取数据
$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/pets/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);
// 基础信息
$ret = PluginsService::PluginsData('petscms', ['logo', 'pets_default_images', 'alipay_qrcode_images', 'weixin_qrcode_images']);
if(!empty($ret['data']['not_bind_desc']))
{
$ret['data']['not_bind_desc'] = str_replace("\n", '<br />', $ret['data']['not_bind_desc']);
}
$this->assign('plugins_base_data', $ret['data']);
// 浏览器标题
if(!empty($data['title']))
{
$this->assign('home_seo_site_title', SeoService::BrowserSeoTitle($data['title']));
}
$this->assign('params', $params);
return $this->fetch('../../../plugins/view/petscms/pets/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('非法访问');
}
// 用户
$params['user_id'] = $this->user['id'];
return Service::PetsSave($params);
}
/**
* 宠物解绑
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-15T11:03:30+0800
*/
public function untying($params = [])
{
// 是否ajax
if(!IS_AJAX)
{
return $this->error('非法访问');
}
// 用户
$params['user_id'] = $this->user['id'];
return Service::PetsUntying($params);
}
/**
* 丢失提供信息添加/编辑
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-03-15T23:51:50+0800
* @param [array] $params [输入参数]
*/
public function helpsave($params = [])
{
// 是否ajax请求
if(!IS_AJAX)
{
return $this->error('非法访问');
}
// 用户
$params['user_id'] = $this->user['id'];
return Service::HelpSave($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 = [])
{
// 参数
$params = input();
if(empty($params['pets_id']))
{
$this->assign('msg', '参数有误');
return $this->fetch('public/tips_error');
}
// 分页
$number = 10;
// 条件
$where = [
'user_id' => $this->user['id'],
'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/pets/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/pets/helpmap');
}
}
?>
\ No newline at end of file
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\plugins\petscms;
use think\Controller;
use app\plugins\petscms\Service;
use app\service\PluginsService;
use app\service\UserService;
/**
* 宠物管理系统 - 宠物管理
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class PetsAdmin extends Controller
{
/**
* 列表
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-03-15T23:51:50+0800
* @param [array] $params [输入参数]
*/
public function index($params = [])
{
// 分页
$number = MyC('admin_page_number', 10, true);
// 条件
$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' => PluginsAdminUrl('petscms', 'petsadmin', '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']);
// 插件配置信息
$base = PluginsService::PluginsData('petscms', ['logo', 'pets_default_images', 'alipay_qrcode_images', 'weixin_qrcode_images'], false);
$this->assign('plugins_base_data', $base['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');
}
/**
* 添加/编辑页面
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-03-15T23:51:50+0800
* @param [array] $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::PetsSave($params);
}
/**
* 宠物解绑
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-15T11:03:30+0800
*/
public function untying($params = [])
{
// 是否ajax
if(!IS_AJAX)
{
return $this->error('非法访问');
}
// 开始操作
return Service::PetsUntying($params);
}
/**
* 宠物删除
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-15T11:03:30+0800
*/
public function delete($params = [])
{
// 是否ajax
if(!IS_AJAX)
{
return $this->error('非法访问');
}
// 开始操作
return Service::PetsDelete($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 = MyC('admin_page_number', 10, true);
// 条件
$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' => PluginsAdminUrl('petscms', 'petsadmin', '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);
unset($params['pets_id']);
$this->assign('data_list', $data['data']);
$this->assign('params', $params);
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');
}
}
?>
\ No newline at end of file
此差异已折叠。
{
"base":{
"plugins":"petscms",
"name":"宠物管理系统",
"logo":"\/static\/upload\/images\/plugins_petscms\/2019\/04\/09\/1554814711403578.jpg",
"author":"Devil",
"author_url":"https:\/\/shopxo.net\/",
"version":"1.0.0",
"desc":"宠物管理系统",
"apply_terminal":[
"pc",
"h5"
],
"apply_version":[
"1.5.0"
],
"is_home":false
},
"hook":{
"plugins_service_users_center_left_menu_handle":[
"app\\plugins\\petscms\\Hook"
],
"plugins_service_header_navigation_top_right_handle":[
"app\\plugins\\petscms\\Hook"
]
}
}
\ No newline at end of file
# 宠物管理系统宠物
CREATE TABLE `s_plugins_petscms_pets` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
`user_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '用户id',
`pest_no` char(60) NOT NULL DEFAULT '' COMMENT '宠物编号',
`status` tinyint(2) unsigned NOT NULL DEFAULT '0' COMMENT '状态(0正常, 1丢失, 2去世, 3关闭)',
`qrcode_images` char(255) NOT NULL DEFAULT '' COMMENT '宠物二维码',
`title` char(60) NOT NULL DEFAULT '' COMMENT '标题',
`name` char(30) NOT NULL DEFAULT '' COMMENT '名字',
`birthday` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '出生日期',
`type` char(60) NOT NULL DEFAULT '' COMMENT '类型',
`varieties` char(60) NOT NULL DEFAULT '' COMMENT '品种',
`gender` tinyint(2) NOT NULL DEFAULT '-1' COMMENT '性别(0公, 1母)',
`sterilization` tinyint(2) NOT NULL DEFAULT '-1' COMMENT '是否绝育(0否, 1是)',
`vaccine` tinyint(2) NOT NULL DEFAULT '-1' COMMENT '是否疫苗(0否, 1是)',
`photo` mediumtext NOT NULL COMMENT '相册(json数据)',
`content` mediumtext NOT NULL COMMENT '宠物简介',
`person_name` char(30) NOT NULL DEFAULT '' COMMENT '主人姓名',
`person_tel` char(30) NOT NULL DEFAULT '' COMMENT '主人电话',
`person_weixin` char(30) NOT NULL DEFAULT '' COMMENT '主人微信',
`lose_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '丢失-丢失时间',
`lose_reward_amount` decimal(10,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '丢失-悬赏金额',
`lose_features` char(255) NOT NULL DEFAULT '' COMMENT '丢失-宠物特征',
`lose_province` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '丢失-所在省',
`lose_city` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '丢失-所在市',
`lose_county` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '丢失-所在县/区',
`lose_address` char(80) NOT NULL DEFAULT '' COMMENT '丢失-详细地址',
`lose_lng` decimal(13,10) unsigned NOT NULL DEFAULT '0.0000000000' COMMENT '丢失-经度',
`lose_lat` decimal(13,10) unsigned NOT NULL DEFAULT '0.0000000000' COMMENT '丢失-纬度',
`add_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '添加时间',
`upd_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `pest_no` (`pest_no`),
KEY `type` (`type`),
KEY `gender` (`gender`),
KEY `user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='宠物管理系统宠物 - 应用'
# 宠物管理系统宠物丢失帮助数据
CREATE TABLE `s_plugins_petscms_help` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
`user_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '用户id',
`pets_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '宠物id',
`contacts_name` char(30) NOT NULL DEFAULT '' COMMENT '联系人姓名',
`contacts_tel` char(30) NOT NULL DEFAULT '' COMMENT '联系人电话',
`contacts_weixin` char(30) NOT NULL DEFAULT '' COMMENT '联系人微信',
`province` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '所在省',
`city` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '所在市',
`county` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '所在县/区',
`address` char(80) NOT NULL DEFAULT '' COMMENT '详细地址',
`lng` decimal(13,10) unsigned NOT NULL DEFAULT '0.0000000000' COMMENT '经度',
`lat` decimal(13,10) unsigned NOT NULL DEFAULT '0.0000000000' COMMENT '纬度',
`add_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '添加时间',
`upd_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
KEY `pets_id` (`pets_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='宠物管理系统宠物丢失帮助数据 - 应用'
\ No newline at end of file
# 宠物管理系统宠物 - 应用
DROP TABLE `s_plugins_petscms_pets`;
# 宠物管理系统宠物丢失帮助数据 - 应用
DROP TABLE `s_plugins_petscms_help`;
\ No newline at end of file
{{include file="public/header" /}}
<!-- 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">
<div class="items">
<label>宠物未绑定提示信息</label>
<div>
{{if !empty($data['not_bind_desc'])}}
{{$data.not_bind_desc|raw}}
{{else /}}
{{/if}}
</div>
</div>
<div class="items">
<label>宠物领取名称</label>
<div>
{{if !empty($data['pets_take'])}}
{{$data.pets_take}}
{{else /}}
我要领取
{{/if}}
</div>
</div>
<div class="items">
<label>提供信息名称</label>
<div>
{{if !empty($data['lose_provide'])}}
{{$data.lose_provide}}
{{else /}}
我要提供信息
{{/if}}
</div>
</div>
<div class="items">
<label>二维码logo</label>
<div class="immages-tag">
<img src="{{if !empty($data['logo'])}}{{$data.logo}}{{else /}}{{$attachment_host}}/static/plugins/images/petscms/default-images.jpg{{/if}}" />
</div>
</div>
<div class="items">
<label>宠物默认图片</label>
<div class="immages-tag">
<img src="{{if !empty($data['pets_default_images'])}}{{$data.pets_default_images}}{{else /}}{{$attachment_host}}/static/plugins/images/petscms/pets-default-images.jpg{{/if}}" />
</div>
</div>
<div class="items">
<label>支付宝二维码</label>
<div class="immages-tag">
<img src="{{if !empty($data['alipay_qrcode_images'])}}{{$data.alipay_qrcode_images}}{{else /}}{{$attachment_host}}/static/plugins/images/petscms/default-images.jpg{{/if}}" />
</div>
</div>
<div class="items">
<label>支付宝二维码名称</label>
<div>
{{if !empty($data['alipay_qrcode_name'])}}
{{$data.alipay_qrcode_name}}
{{else /}}
{{/if}}
</div>
</div>
<div class="items">
<label>微信二维码</label>
<div class="immages-tag">
<img src="{{if !empty($data['weixin_qrcode_images'])}}{{$data.weixin_qrcode_images}}{{else /}}{{$attachment_host}}/static/plugins/images/petscms/default-images.jpg{{/if}}" />
</div>
</div>
<div class="items">
<label>微信二维码名称</label>
<div>
{{if !empty($data['weixin_qrcode_name'])}}
{{$data.weixin_qrcode_name}}
{{else /}}
{{/if}}
</div>
</div>
<a href="{{:PluginsAdminUrl('petscms', 'admin', 'saveinfo')}}" class="am-btn am-btn-secondary am-radius btn-loading-example am-btn-sm am-btn-block edit-submit">编辑</a>
</div>
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<legend>
<span class="fs-16">宠物管理系统</span>
<a href="{{:MyUrl('admin/pluginsadmin/index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
</legend>
<div class="petscms-content">
<ul class="index-list am-avg-sm-1 am-avg-md-2 am-avg-lg-4">
<li>
<a href="{{:PluginsAdminUrl('petscms', 'admin', 'base')}}">
<div class="title">配置管理</div>
<div class="desc">基础信息配置</div>
</a>
</li>
<li>
<a href="{{:PluginsAdminUrl('petscms', 'petsadmin', 'index')}}">
<div class="title">宠物管理</div>
<div class="desc">宠物创建、编辑、删除、解绑、二维码下载等等...</div>
</a>
</li>
</ul>
</div>
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form form-validation view-save" action="{{:PluginsAdminUrl('petscms', 'admin', 'save')}}" method="POST" request-type="ajax-url" request-value="{{:PluginsAdminUrl('petscms', 'admin', 'base')}}" enctype="multipart/form-data">
<legend>
<span class="fs-16">宠物管理系统</span>
<a href="{{:PluginsAdminUrl('petscms', 'admin', 'base')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
</legend>
<div class="am-form-group am-form-file">
<label class="block">宠物未绑定提示信息<span class="am-form-group-label-tips">空则不显示</span></label>
<textarea rows="3" name="not_bind_desc" class="am-radius am-field-valid" placeholder="宠物未绑定提示信息" data-validation-message="请填写宠物未绑定提示信息">{{if !empty($data['not_bind_desc'])}}{{$data.not_bind_desc}}{{/if}}</textarea>
</div>
<div class="am-form-group">
<label>宠物领取名称<span class="am-form-group-label-tips">默认 我要领取</span></label>
<input type="text" name="pets_take" placeholder="宠物领取名称" maxlength="30" data-validation-message="宠物领取名称格式最多 30 个字符" class="am-radius" value="{{if !empty($data['pets_take'])}}{{$data.pets_take}}{{else /}}我要领取{{/if}}" />
</div>
<div class="am-form-group">
<label>提供信息名称<span class="am-form-group-label-tips">默认 我要提供信息</span></label>
<input type="text" name="lose_provide" placeholder="提供信息名称" maxlength="30" data-validation-message="提供信息名称格式最多 30 个字符" class="am-radius" value="{{if !empty($data['lose_provide'])}}{{$data.lose_provide}}{{else /}}我要提供信息{{/if}}" />
</div>
<div class="am-form-group am-form-file">
<label class="block">二维码logo<span class="am-form-group-label-tips">建议50像数X50像数</span></label>
<ul class="plug-file-upload-view plugins-logo-view" data-form-name="logo" data-max-number="1" data-dialog-type="images">
{{if !empty($data['logo'])}}
<li>
<input type="text" name="logo" value="{{$data.logo_old}}" data-validation-message="请上传二维码logo" />
<img src="{{$data.logo}}" />
<i>×</i>
</li>
{{/if}}
</ul>
<div class="plug-file-upload-submit" data-view-tag="ul.plugins-logo-view">+上传图片</div>
</div>
<div class="am-form-group am-form-file">
<label class="block">宠物默认图片<span class="am-form-group-label-tips">建议350像数X350像数</span></label>
<ul class="plug-file-upload-view plugins-pets_default_images-view" data-form-name="pets_default_images" data-max-number="1" data-dialog-type="images">
{{if !empty($data['pets_default_images'])}}
<li>
<input type="text" name="pets_default_images" value="{{$data.pets_default_images_old}}" data-validation-message="请上传宠物默认图片" />
<img src="{{$data.pets_default_images}}" />
<i>×</i>
</li>
{{/if}}
</ul>
<div class="plug-file-upload-submit" data-view-tag="ul.plugins-pets_default_images-view">+上传图片</div>
</div>
<div class="am-form-group am-form-file">
<label class="block">支付宝二维码<span class="am-form-group-label-tips">建议150像数X150像数</span></label>
<ul class="plug-file-upload-view plugins-alipay_qrcode_images-view" data-form-name="alipay_qrcode_images" data-max-number="1" data-dialog-type="images">
{{if !empty($data['alipay_qrcode_images'])}}
<li>
<input type="text" name="alipay_qrcode_images" value="{{$data.alipay_qrcode_images_old}}" data-validation-message="请上传支付宝二维码" />
<img src="{{$data.alipay_qrcode_images}}" />
<i>×</i>
</li>
{{/if}}
</ul>
<div class="plug-file-upload-submit" data-view-tag="ul.plugins-alipay_qrcode_images-view">+上传图片</div>
</div>
<div class="am-form-group">
<label>支付宝二维码名称<span class="am-form-group-label-tips">空则不显示</span></label>
<input type="text" name="alipay_qrcode_name" placeholder="支付宝二维码名称" maxlength="30" data-validation-message="支付宝二维码名称格式最多 30 个字符" class="am-radius" value="{{if !empty($data['alipay_qrcode_name'])}}{{$data.alipay_qrcode_name}}{{/if}}" />
</div>
<div class="am-form-group am-form-file">
<label class="block">微信二维码<span class="am-form-group-label-tips">建议150像数X150像数</span></label>
<ul class="plug-file-upload-view plugins-weixin_qrcode_images-view" data-form-name="weixin_qrcode_images" data-max-number="1" data-dialog-type="images">
{{if !empty($data['weixin_qrcode_images'])}}
<li>
<input type="text" name="weixin_qrcode_images" value="{{$data.weixin_qrcode_images_old}}" data-validation-message="请上传微信二维码" />
<img src="{{$data.weixin_qrcode_images}}" />
<i>×</i>
</li>
{{/if}}
</ul>
<div class="plug-file-upload-submit" data-view-tag="ul.plugins-weixin_qrcode_images-view">+上传图片</div>
</div>
<div class="am-form-group">
<label>微信二维码名称<span class="am-form-group-label-tips">空则不显示</span></label>
<input type="text" name="weixin_qrcode_name" placeholder="微信二维码名称" maxlength="30" data-validation-message="微信二维码名称格式最多 30 个字符" class="am-radius" value="{{if !empty($data['weixin_qrcode_name'])}}{{$data.weixin_qrcode_name}}{{/if}}" />
</div>
<div class="am-form-group am-form-group-refreshing">
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm w100" data-am-loading="{loadingText:'处理中...'}">保存</button>
</div>
</form>
<!-- form end -->
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
{{include file="public/header" /}}
<!-- header top nav -->
{{include file="public/header_top_nav" /}}
<!-- search -->
{{include file="public/nav_search" /}}
<!-- header nav -->
{{include file="public/header_nav" /}}
<!-- goods category -->
{{include file="public/goods_category" /}}
{{if !empty($data)}}
<div class="pets-detail am-container">
{{if isset($data['user_id']) and $data['user_id'] gt 0}}
<div class="top">
<div class="am-u-md-4 photo">
<div data-am-widget="slider" class="am-slider am-slider-a1" data-am-slider='{"directionNav":false, "slideshow":false}'>
<ul class="am-slides">
{{if !empty($data['photo'])}}
{{foreach $data.photo as $photo}}
<li>
<img src="{{$photo.images}}" alt="{{$data.title}}" />
</li>
{{/foreach}}
{{else /}}
{{if !empty($plugins_base_data['pets_default_images'])}}
<li>
<img src="{{$plugins_base_data.pets_default_images}}" alt="{{$data.title}}" />
</li>
{{else /}}
<li>
<img src="{{$attachment_host}}/static/plugins/images/petscms/pets-default-images.jpg" alt="{{$data.title}}" />
</li>
{{/if}}
{{/if}}
</ul>
</div>
</div>
<div class="am-u-md-8 base">
<h1>{{$data.title}}</h1>
<ul class="basic">
<li>
<span>编号</span>
<span>{{$data.pest_no}}</span>
</li>
<li>
<span>名字</span>
<span>{{$data.name}}</span>
</li>
<li>
<span>类型</span>
<span>{{$data.type_name}}</span>
</li>
<li>
<span>性别</span>
<span>{{$data.gender_name}}</span>
</li>
<li>
<span>生日</span>
<span>{{$data.birthday_name}}</span>
</li>
<li>
<span>年龄</span>
<span>{{$data.age}}</span>
</li>
<li>
<span>品种</span>
<span>{{$data.varieties}}</span>
</li>
<li>
<span>绝育</span>
<span>{{$data.sterilization_name}}</span>
</li>
<li>
<span>疫苗</span>
<span>{{$data.vaccine_name}}</span>
</li>
<li>
<span>状态</span>
<span>{{$data.status_name}}</span>
</li>
</ul>
{{if isset($data['status']) and $data['status'] eq 1}}
<button type="button" class="am-btn am-btn-primary am-radius am-icon-pencil provide-submit" data-am-modal="{target: '#lose-provide-popup'}"> {{if empty($plugins_base_data['lose_provide'])}}我要提供信息{{else /}}{{$plugins_base_data.lose_provide}}{{/if}}</button>
<!-- 提供信息窗口 -->
<div class="am-popup" id="lose-provide-popup">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title">提供信息</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<form class="am-form form-validation view-save" action="{{:PluginsHomeUrl('petscms', 'pets', 'helpsave')}}" method="POST" request-type="ajax-reload">
<div class="am-form-group">
<label>联系人<span class="am-form-group-label-tips-must">必填</span></label>
<input type="text" name="contacts_name" placeholder="联系人" maxlength="30" data-validation-message="联系人姓名格式 1~30 个字符之间" class="am-radius" required />
</div>
<div class="am-form-group">
<label>联系电话<span class="am-form-group-label-tips-must">电话/微信选填一个</span></label>
<input type="text" name="contacts_tel" placeholder="联系电话" maxlength="30" data-validation-message="联系人电话格式 1~30 个字符之间" class="am-radius js-choice-one" data-choice-one-to="input[name=contacts_weixin]" {{if !empty($user['mobile'])}}value="{{$user.mobile}}"{{/if}} required />
</div>
<div class="am-form-group">
<label>联系微信<span class="am-form-group-label-tips-must">电话/微信选填一个</span></label>
<input type="text" name="contacts_weixin" placeholder="联系微信" maxlength="30" data-validation-message="联系人微信格式 1~30 个字符之间" class="am-radius js-choice-one" data-choice-one-to="input[name=contacts_tel]" required />
</div>
<div class="am-form-group region-linkage" data-url="{{:MyUrl('index/region/index')}}">
<label class="block">省市区<span class="am-form-group-label-tips-must">必选</span></label>
<select name="province" data-next="city" class="am-radius chosen-select" data-placeholder="省份" data-validation-message="请选择省份" data-value="0" required />
<option value="">省份</option>
</select>
<select name="city" data-next="county" class="am-radius chosen-select" data-placeholder="城市" data-validation-message="请选择城市" data-value="0" required />
<option value="">城市</option>
</select>
<select name="county" class="am-radius chosen-select" data-placeholder="区/县" data-validation-message="请选择区/县" data-value="0" required />
<option value="">区/县</option>
</select>
</div>
<div class="am-form-group map-address">
<label>详细地址<span class="am-form-group-label-tips-must">必填</span></label>
<div class="am-input-group am-input-group-sm">
<input type="hidden" name="lng" id="form-lng" value="" />
<input type="hidden" name="lat" id="form-lat" value="" />
<input type="text" name="address" id="form-address" placeholder="详细地址" maxlength="80" data-validation-message="详细地址格式 1~80 个字符之间" class="am-radius" required />
<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 class="am-form-group am-form-group-refreshing">
<input type="hidden" name="pets_id" value="{{if !empty($data['id'])}}{{$data.id}}{{/if}}" />
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">提交</button>
</div>
</form>
</div>
</div>
</div>
{{/if}}
<!-- 分享 -->
<div class="base-share {{if !isset($data['status']) or $data['status'] neq 1}}base-share-mobile{{/if}}">
<div class="plugins-share-view" data-pic="{{if !empty($data['photo'][0]['images'])}}{{$data['photo'][0]['images']}}{{elseif !empty($plugins_base_data['pets_default_images'])}}{{$plugins_base_data.pets_default_images}}{{/if}}"></div>
</div>
</div>
</div>
{{if isset($data['status']) and $data['status'] eq 1}}
<div class="lose">
<div class="am-alert am-alert-warning" data-am-alert>
{{if !empty($data['lose_features'])}}
<p class="lose-desc">{{$data.lose_features|raw}}</p>
{{/if}}
<ul class="person">
{{if !empty($data['person_name'])}}
<li>
<span>主人姓名</span>
<span>{{$data.person_name}}</span>
</li>
{{/if}}
{{if !empty($data['person_tel'])}}
<li class="tel">
<span>主人电话</span>
<a href="tel:{{$data.person_tel}}">{{$data.person_tel}}</a>
</li>
{{/if}}
{{if !empty($data['person_weixin'])}}
<li>
<span>主人微信</span>
<span>{{$data.person_weixin}}</span>
</li>
{{/if}}
{{if !empty($data['lose_time_name'])}}
<li>
<span>丢失时间</span>
<span>{{$data.lose_time_name}}</span>
</li>
{{/if}}
{{if !empty($data['lose_reward_amount']) and $data['lose_reward_amount'] gt 0}}
<li class="price">
<span>悬赏金额</span>
<strong>¥{{$data.lose_reward_amount}}</strong>
</li>
{{/if}}
{{if !empty($data['lose_address'])}}
<li>
<span>丢失地址</span>
<span>{{$data.province_name}}{{$data.city_name}}{{$data.county_name}}{{$data.lose_address}}</span>
</li>
{{/if}}
</ul>
</div>
{{if !empty($data['lose_lng']) and !empty($data['lose_lat'])}}
<div id="map-view" data-level="17" class="am-form-group"></div>
{{/if}}
</div>
{{/if}}
{{if !empty($data['content'])}}
<div class="content">
<div class="spacing-nav-title">
<span class="line"></span>
<span class="text-wrapper">宠物详情</span>
</div>
<div class="rich-content">{{$data.content|raw}}</div>
</div>
{{/if}}
{{else /}}
<div class="pets-not-bind">
<p><i class="am-icon-github-alt"></i></p>
{{if !empty($plugins_base_data['not_bind_desc'])}}
<div class="am-alert am-alert-secondary am-animation-shake" data-am-alert>
{{$plugins_base_data.not_bind_desc|raw}}
</div>
{{/if}}
<a href="{{:PluginsHomeUrl('petscms', 'pets', 'saveinfo', ['pest_no'=>$data['pest_no']])}}" class="am-btn am-btn-primary am-radius am-icon-get-pocket"> {{if empty($plugins_base_data['pets_take'])}}我要领取{{else /}}{{$plugins_base_data.pets_take}}{{/if}}</a>
</div>
{{/if}}
{{if !empty($plugins_base_data['alipay_qrcode_images']) or !empty($plugins_base_data['weixin_qrcode_images'])}}
<div class="pets-qrcode-related">
<ul>
{{if !empty($plugins_base_data['alipay_qrcode_images'])}}
<li>
<img src="{{$plugins_base_data.alipay_qrcode_images}}" alt="二维码" />
{{if !empty($plugins_base_data['alipay_qrcode_name'])}}
<p>{{$plugins_base_data.alipay_qrcode_name}}</p>
{{/if}}
</li>
{{/if}}
{{if !empty($plugins_base_data['weixin_qrcode_images'])}}
<li>
<img src="{{$plugins_base_data.weixin_qrcode_images}}" alt="二维码" />
{{if !empty($plugins_base_data['weixin_qrcode_name'])}}
<p>{{$plugins_base_data.weixin_qrcode_name}}</p>
{{/if}}
</li>
{{/if}}
</ul>
</div>
{{/if}}
</div>
{{else /}}
<div class="table-no"><i class="am-icon-warning"></i> 没有相关数据</div>
{{/if}}
{{include file="public/footer" /}}
{{if !empty($data['lose_lng']) and !empty($data['lose_lat']) and $data['lose_lng'] gt 0 and $data['lose_lat'] gt 0 and isset($data['status']) and $data['status'] eq 1}}
<!-- 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()
{
// 丢失地址-地图展示
{{if $data['lose_lng'] gt 0 and $data['lose_lat'] gt 0}}
var map = new BMap.Map("map-view", {enableMapClick:false});
var level = $('#map-view').data('level') || 16;
var point = new BMap.Point({{$data['lose_lng']}},{{$data['lose_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); //跳动的动画
{{/if}}
// 丢失提供信息-地图
{{if isset($data['status']) and $data['status'] eq 1}}
var map = new BMap.Map("map", {enableMapClick:false});
var level = $('#map').data('level') || 16;
var point = new BMap.Point(116.400244,39.92556);
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});
{{/if}}
});
</script>
{{/if}}
\ No newline at end of file
{{include file="public/header" /}}
<!-- header top nav -->
{{include file="public/header_top_nav" /}}
<!-- search -->
{{include file="public/nav_search" /}}
<!-- header nav -->
{{include file="public/header_nav" /}}
<!-- goods category -->
{{include file="public/goods_category" /}}
<!-- content -->
<div class="am-container user-main">
<!-- user menu start -->
{{include file="public/user_menu" /}}
<!-- user menu end -->
<!-- content start -->
<div class="user-content">
<div class="user-content-body pets-help" data-url="{{:PluginsHomeUrl('petscms', 'pets', '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>
<!-- content end -->
</div>
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
{{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}}
\ No newline at end of file
{{include file="public/header" /}}
<!-- header top nav -->
{{include file="public/header_top_nav" /}}
<!-- search -->
{{include file="public/nav_search" /}}
<!-- header nav -->
{{include file="public/header_nav" /}}
<!-- goods category -->
{{include file="public/goods_category" /}}
<!-- content -->
<div class="am-container user-main">
<!-- user menu start -->
{{include file="public/user_menu" /}}
<!-- user menu end -->
<!-- content start -->
<div class="user-content">
<div class="user-content-body">
<form class="am-form form-validation" method="post" action="{{:PluginsHomeUrl('petscms', 'pets', '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="{{:PluginsHomeUrl('petscms', 'pets', '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="{{:PluginsHomeUrl('petscms', 'pets', '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 class="th-operation">操作</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>
<div data-am-widget="slider" class="am-slider am-slider-a1" data-am-slider='{"directionNav":false, "slideshow":false}' >
<ul class="am-slides">
{{if !empty($v['photo'])}}
{{foreach $v.photo as $photo}}
<li>
<img src="{{$photo.images}}" alt="{{$v.title}}" />
</li>
{{/foreach}}
{{else /}}
{{if !empty($plugins_base_data['pets_default_images'])}}
<li>
<img src="{{$plugins_base_data.pets_default_images}}" alt="{{$v.title}}" />
</li>
{{else /}}
<li>
<img src="{{$attachment_host}}/static/plugins/images/petscms/pets-default-images.jpg" alt="{{$v.title}}" />
</li>
{{/if}}
{{/if}}
</ul>
</div>
</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 />
绝育:{{if empty($v['sterilization_name'])}}<span class="items-value-empty">未设置</span>{{else /}}{{$v.sterilization_name}}{{/if}}<br />
疫苗:{{if empty($v['sterilization_name'])}}<span class="items-value-empty">未设置</span>{{else /}}{{$v.sterilization_name}}{{/if}}<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="{{:PluginsHomeUrl('petscms', 'pets', '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>
<button class="am-btn am-btn-warning am-btn-xs am-radius am-icon-circle-o am-btn-block submit-ajax" data-url="{{:PluginsHomeUrl('petscms', 'pets', 'untying')}}" data-id="{{$v.id}}" data-view="reload" data-msg="解绑后不可恢复,确定操作吗?"> 解绑</button>
{{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="{{:PluginsHomeUrl('petscms', 'pets', '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>
<!-- content end -->
</div>
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
{{include file="public/header" /}}
<!-- header top nav -->
{{include file="public/header_top_nav" /}}
<!-- search -->
{{include file="public/nav_search" /}}
<!-- header nav -->
{{include file="public/header_nav" /}}
<!-- goods category -->
{{include file="public/goods_category" /}}
<!-- content -->
<div class="am-container user-main">
<!-- user menu start -->
{{include file="public/user_menu" /}}
<!-- user menu end -->
<!-- content start -->
<div class="user-content">
<div class="user-content-body">
<form class="am-form form-validation view-save" action="{{:PluginsHomeUrl('petscms', 'pets', 'save')}}" method="POST" request-type="ajax-url" request-value="{{:PluginsHomeUrl('petscms', 'pets', 'index', $params)}}" enctype="multipart/form-data">
<legend>
<span class="legend-title">我的宠物</span>
<a href="{{:PluginsHomeUrl('petscms', 'pets', 'index', $params)}}" class="am-fr am-icon-mail-reply"> 返回</a>
</legend>
<!-- 基础 -->
<div class="base-view">
{{if !empty($pest_no)}}
<div class="am-form-group">
<label>编号<span class="am-form-group-label-tips">宠物绑定</span></label>
<input type="text" name="pest_no" placeholder="编号" maxlength="60" data-validation-message="编号格式 1~60 个字符之间" class="am-radius" value="{{$pest_no}}" readonly="true" />
</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-must">必填</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>
{{if empty($pest_no)}}
<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}}
{{if $v['value'] neq 3}}
<option value="{{$v.value}}" {{if isset($data['status']) and $data['status'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
{{/if}}
{{/foreach}}
</select>
</div>
{{/if}}
<!-- 宠物简介 -->
<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 id="map" data-level="17"></div>
</div>
</div>
<div class="am-form-group am-form-group-refreshing">
<input type="hidden" name="id" value="{{if !empty($data['id'])}}{{$data.id}}{{/if}}" />
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">提交</button>
</div>
</form>
</div>
</div>
<!-- content end -->
</div>
<!-- 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>
\ No newline at end of file
{{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', $params)}}" 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 -->
\ No newline at end of file
{{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}}
\ No newline at end of file
{{include file="public/header" /}}
<!-- 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 class="th-operation">操作</th>
</tr>
</thead>
<tbody>
{{if !empty($data_list)}}
{{foreach $data_list as $v}}
<tr id="data-list-{{$v.id}}">
<td class="am-hide-sm-only row-first">
<p class="ellipsis">{{$v.title}}</p>
<div data-am-widget="slider" class="am-slider am-slider-a1" data-am-slider='{"directionNav":false, "slideshow":false}' >
<ul class="am-slides">
{{if !empty($v['photo'])}}
{{foreach $v.photo as $photo}}
<li>
<img src="{{$photo.images}}" alt="{{$v.title}}" />
</li>
{{/foreach}}
{{else /}}
{{if !empty($plugins_base_data['pets_default_images'])}}
<li>
<img src="{{$plugins_base_data.pets_default_images}}" alt="{{$v.title}}" />
</li>
{{else /}}
<li>
<img src="{{$attachment_host}}/static/plugins/images/petscms/pets-default-images.jpg" alt="{{$v.title}}" />
</li>
{{/if}}
{{/if}}
</ul>
</div>
</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 />
绝育:{{if empty($v['sterilization_name'])}}<span class="items-value-empty">未设置</span>{{else /}}{{$v.sterilization_name}}{{/if}}<br />
疫苗:{{if empty($v['sterilization_name'])}}<span class="items-value-empty">未设置</span>{{else /}}{{$v.sterilization_name}}{{/if}}<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-primary 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-secondary am-btn-xs am-radius am-icon-gg am-btn-block"> 帮助</a>
{{if $v['user_id'] gt 0}}
<button class="am-btn am-btn-warning am-btn-xs am-radius am-icon-circle-o am-btn-block submit-ajax" data-url="{{:PluginsAdminUrl('petscms', 'petsadmin', 'untying')}}" data-id="{{$v.id}}" data-view="reload" data-msg="解绑后不可恢复,确定操作吗?"> 解绑</button>
{{/if}}
<button class="am-btn am-btn-danger am-btn-xs am-radius am-icon-trash-o am-btn-block submit-delete" data-url="{{:PluginsAdminUrl('petscms', 'petsadmin', 'delete')}}" data-id="{{$v.id}}"> 删除</button>
</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 -->
\ No newline at end of file
{{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">
<div class="am-form-group">
<label>标题</label>
<input type="text" name="title" placeholder="标题" maxlength="60" data-validation-message="标题格式最多 60 个字符" class="am-radius" value="{{if !empty($data['title'])}}{{$data.title}}{{/if}}" />
</div>
<div class="am-form-group">
<label>宠物名字</label>
<input type="text" name="name" placeholder="宠物名字" maxlength="30" data-validation-message="宠物名字格式最多 30 个字符" class="am-radius" value="{{if !empty($data['name'])}}{{$data.name}}{{/if}}" />
</div>
<div class="am-form-group">
<label>出生日期</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" />
</div>
<div class="am-form-group">
<label>类型</label>
<select name="type" class="am-radius chosen-select" data-placeholder="可选择..." data-validation-message="请选择类型">
<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>品种</label>
<input type="text" name="varieties" placeholder="品种" maxlength="30" data-validation-message="品种格式最多 30 个字符" class="am-radius" value="{{if !empty($data['varieties'])}}{{$data.varieties}}{{/if}}" />
</div>
<div class="am-form-group">
<label>性别</label>
<select name="gender" class="am-radius chosen-select" data-placeholder="可选择..." data-validation-message="请选择性别">
<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>是否绝育</label>
<select name="sterilization" class="am-radius chosen-select" data-placeholder="可选择..." data-validation-message="请选择是否绝育">
<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>是否疫苗</label>
<select name="vaccine" class="am-radius chosen-select" data-placeholder="可选择..." data-validation-message="请选择是否疫苗">
<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>状态</label>
<select name="status" class="am-radius chosen-select" data-placeholder="可选择..." data-validation-message="请选择状态">
<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">
<label>宠物简介</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>主人姓名</label>
<input type="text" name="person_name" placeholder="主人姓名" maxlength="30" data-validation-message="主人姓名格式最多 30 个字符" class="am-radius" value="{{if !empty($data['person_name'])}}{{$data.person_name}}{{/if}}" />
</div>
<div class="am-form-group">
<label>主人电话</label>
<input type="text" name="person_tel" placeholder="主人电话" maxlength="30" data-validation-message="主人电话格式最多 30 个字符" class="am-radius" value="{{if !empty($data['person_tel'])}}{{$data.person_tel}}{{/if}}" />
</div>
<div class="am-form-group">
<label>主人微信</label>
<input type="text" name="person_weixin" placeholder="主人微信" maxlength="30" data-validation-message="主人微信格式最多 30 个字符" class="am-radius" value="{{if !empty($data['person_weixin'])}}{{$data.person_weixin}}{{/if}}" />
</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>丢失时间</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>宠物特征</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">省市区</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>详细地址</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="详细地址格式最多 180 个字符" 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 id="map" data-level="17"></div>
</div>
</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>
\ No newline at end of file
...@@ -119,16 +119,6 @@ return array ( ...@@ -119,16 +119,6 @@ return array (
array ( array (
0 => 'app\\plugins\\freightfee\\Hook', 0 => 'app\\plugins\\freightfee\\Hook',
), ),
'plugins_service_users_center_left_menu_handle' =>
array (
0 => 'app\\plugins\\petscms\\Hook',
1 => 'app\\plugins\\wallet\\Hook',
),
'plugins_service_header_navigation_top_right_handle' =>
array (
0 => 'app\\plugins\\petscms\\Hook',
1 => 'app\\plugins\\wallet\\Hook',
),
'plugins_js' => 'plugins_js' =>
array ( array (
0 => 'app\\plugins\\share\\Hook', 0 => 'app\\plugins\\share\\Hook',
...@@ -157,5 +147,13 @@ return array ( ...@@ -157,5 +147,13 @@ return array (
array ( array (
0 => 'app\\plugins\\membershiplevel\\Hook', 0 => 'app\\plugins\\membershiplevel\\Hook',
), ),
'plugins_service_users_center_left_menu_handle' =>
array (
0 => 'app\\plugins\\wallet\\Hook',
),
'plugins_service_header_navigation_top_right_handle' =>
array (
0 => 'app\\plugins\\wallet\\Hook',
),
); );
?> ?>
\ No newline at end of file
此差异已折叠。
/**
* 首页
*/
.petscms-content .index-list li {
padding: 10px;
}
.petscms-content .index-list li a {
background: #eee;
display: block;
padding: 20px 10px 10px 10px;
color: #666;
text-align: center;
min-height: 100px;
}
.petscms-content .index-list li a:hover {
background: #e3e3e3;
}
.petscms-content .index-list li a .title {
font-size: 20px;
}
.petscms-content .index-list li a .desc {
color: #999;
}
/**
* 配置管理
*/
.petscms-content .items {
margin: 10px 0 20px 0;
border-bottom: 1px dashed #f1f1f1;
padding-bottom: 20px;
}
.petscms-content .items .immages-tag {
border: 1px solid #eee;
text-align: center;
max-width: 100px;
padding: 5px;
}
.petscms-content .items .immages-tag img {
max-width: 100%;
}
.petscms-content .edit-submit {
margin-bottom: 20px;
}
/**
* 编辑页面
*/
ul.plugins-images-view li {
width: 100%;
height: auto;
}
.form-date input {
width: 30% !important;
display: -webkit-inline-box !important;
}
.form-date span {
vertical-align: middle;
}
\ No newline at end of file
/* 筛选 */
.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; }
.data-list table.am-table .am-slides li { height: 150px; }
@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; }
}
.th-operation {
width: 120px;
}
/**
* 添加/编辑页面
*/
.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 .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;
margin-top: 5px;
}
/**
* 帮助页面
*/
#help-map {
width: 100%;
height: 100vh;
}
\ No newline at end of file
/**
* 公共
*/
.shop-navigation {
border-bottom: 2px solid #03A9F4;
}
.search-bar form {
border: 2px solid #03A9F4;
}
#ai-topsearch {
background: #03A9F4 none repeat scroll 0% 0%;
}
.goods-category-title, .navigation-user, .navigation-user .nav-user, .shop-navigation .am-btn {
background: #03A9F4;
}
.navigation-user * {
color: #ffe500;
}
.am-footer-default {
border-top: 2px solid #03A9F4;
}
.shop-navigation .am-btn, .shop-navigation .navigation-search input {
border-color: #03A9F4;
}
.shop-navigation .am-topbar-nav > li > a:hover, a:hover, a:focus {
color: #03A9F4;
}
.shop-navigation .am-topbar-nav > li > a:hover:after {
border-bottom-color: #03A9F4;
}
/**
* 详情
*/
.pets-detail {
margin-top: 10px;
}
.pets-detail .am-slider-a1 .am-control-nav li a.am-active {
background-color: #03A9F4;
}
.provide-submit, .base-share {
margin-top: 20px;
}
.pets-detail .am-btn-primary {
background-color: #03A9F4;
color: #fff !important;
border-color: #03A9F4;
}
.pets-detail .top {
overflow: hidden;
}
.spacing-nav-title {
color: #02a9f4;
margin-bottom: 10px;
}
.spacing-nav-title, .spacing-nav-title .text-wrapper {
background: #edf9ff;
}
.spacing-nav-title .line {
background: transparent;
}
/**
* 未绑定
*/
.pets-not-bind {
text-align: center;
max-width: 600px;
margin: auto;
margin-top: 30px;
margin-bottom: 50px;
padding: 0 5px;
}
.pets-not-bind i {
font-size: 60px;
color: #f0f0f0;
}
.pets-not-bind .am-alert-secondary {
margin-top: 0;
background: #fcfcfc;
border: 1px solid #f8f8f8;
}
.pets-not-bind .am-btn {
margin-top: 10px;
}
/**
* 相关二维码
*/
.pets-qrcode-related {
margin-top: 30px;
}
.pets-qrcode-related ul {
margin: 0 auto;
max-width: 600px;
overflow: hidden;
border: 1px solid;
border-top: 5px solid;
border-color: #1aa9f3;
}
.pets-qrcode-related li {
width: 50%;
float: left;
text-align: center;
padding: 20px;
}
.pets-qrcode-related li:first-child {
border-right: 1px solid #eee;
}
.pets-qrcode-related li:last-child {
border-left: 1px solid #fff;
}
.pets-qrcode-related li p {
font-size: 14px;
font-weight: 500;
color: #666;
margin-top: 5px;
}
/**
* 左侧
*/
.photo {
padding-left: 0;
padding-right: 0;
}
/**
* 右侧
*/
.base {
padding-right: 0;
}
.base h1 {
font-size: 18px;
font-weight: 600;
margin-bottom: 2px;
}
.base ul.basic {
background: #f8fdff;
padding: 0 10px;
overflow: hidden;
border: 1px solid #ebf9ff;
}
.base ul.basic li {
padding: 10px 0;
float: left;
width: 50%;
border-top: 1px solid #f0faff;
}
.base ul.basic li:first-child, .base ul.basic li:nth-child(2) {
border-top: 0;
}
.base ul.basic li span:first-child {
font-weight: 500;
margin-right: 10px;
border-right: 1px solid #d7f1ff;
padding-right: 10px;
color: #666;
}
/**
* 丢失信息
*/
.lose .am-alert-warning {
background-color: #ffeee1;
border-color: #ffb682;
color: #888;
margin-top: 20px;
margin-bottom: 5px;
}
.lose .lose-desc {
font-size: 16px;
color: #f00;
}
.lose ul.person {
overflow: hidden;
}
.lose ul.person li span:first-child {
font-weight: 500;
margin-right: 10px;
border-right: 1px solid #ffd5b5;
padding-right: 10px;
}
.lose ul.person {
margin-top: 5px;
}
.lose ul.person li {
padding: 8px 0;
border-top: 1px solid #ffe4d0;
}
.lose ul.person li:first-child {
border-top: 0;
}
.lose ul.person li.tel a {
color: #70cfff;
}
#map-view {
width: 100%;
height: 350px;
}
/**
* 地图、联动地址
*/
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: 300px;
}
@media only screen and (min-width: 641px) {
.pets-detail {
padding: 0 5px;
}
.photo .am-slider {
border: 1px solid #eee;
}
.lose ul.person li {
float: left;
width: 50%;
}
.lose ul.person li:nth-child(2) {
border-top: 0;
}
.pets-qrcode-related li img {
max-width: 150px;
}
}
@media only screen and (min-width:1025px) {
/**
* 详情
*/
.pets-detail {
padding: 0;
}
}
@media only screen and (max-width: 641px) {
.base, .lose, .content, .pets-qrcode-related {
padding: 0 5px;
}
.base h1 {
margin: 10px 0 5px 0;
}
.base ul.basic li span:first-child, .lose ul.person li span:first-child {
margin-right: 5px;
padding-right: 5px;
}
#map-view, form.form-validation #map {
height: 200px;
}
.provide-submit, .base-share-mobile {
margin: 0;
position: fixed;
left: 0;
bottom: 0;
width: 100%;
z-index: 2;
height: 35px;
}
.base-share-mobile {
background: #9bddff;
}
.base-share-mobile .plugins-share ul {
padding: 5px;
}
.base-share-mobile .plugins-share ul li {
margin-right: calc(10% - 12.5px);
margin-left: calc(10% - 12.5px);
}
.am-footer {
padding-bottom: 35px;
}
.pets-qrcode-related li img {
max-width: 100%;
}
}
\ No newline at end of file
/* 筛选 */
.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; }
.data-list table.am-table .am-slides li { height: 150px; }
@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; }
}
.th-operation {
width: 120px;
}
/**
* 添加/编辑页面
*/
.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 .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;
margin-top: 5px;
}
/**
* 帮助页面
*/
#help-map {
width: 100%;
height: 100vh;
}
/**
* 公共
*/
.am-slider-a1 {
-webkit-box-shadow: none;
box-shadow: none;
}
$(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');
}
});
});
\ No newline at end of file
$(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');
}
});
});
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册