del petscms
parent
b6f49f5c62
commit
a9a0403d72
|
|
@ -1,102 +0,0 @@
|
|||
<?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']);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,93 +0,0 @@
|
|||
<?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'),
|
||||
]);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,350 +0,0 @@
|
|||
<?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');
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,280 +0,0 @@
|
|||
<?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');
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,700 +0,0 @@
|
|||
<?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\Db;
|
||||
use app\service\ResourcesService;
|
||||
use app\service\RegionService;
|
||||
use app\service\PluginsService;
|
||||
|
||||
/**
|
||||
* 宠物管理系统 - 服务层
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2016-12-01T21:51:08+0800
|
||||
*/
|
||||
class Service
|
||||
{
|
||||
// 类型
|
||||
public static $pets_attribute_type_list = [
|
||||
'cat' => ['value' => 'cat', 'name' => '猫咪'],
|
||||
'dog' => ['value' => 'dog', 'name' => '狗狗'],
|
||||
'other' => ['value' => 'other', 'name' => '其它'],
|
||||
];
|
||||
|
||||
// 是否
|
||||
public static $pets_attribute_is_text_list = [
|
||||
0 => ['value' => 0, 'name' => '否', 'checked' => true],
|
||||
1 => ['value' => 1, 'name' => '是'],
|
||||
];
|
||||
|
||||
// 性别
|
||||
public static $pets_attribute_gender_list = [
|
||||
0 => ['value' => 0, 'name' => '公'],
|
||||
1 => ['value' => 1, 'name' => '母'],
|
||||
];
|
||||
|
||||
// 状态(0正常, 1丢失, 2去世, 3关闭)
|
||||
public static $pets_attribute_status_list = [
|
||||
0 => ['value' => 0, 'name' => '正常'],
|
||||
1 => ['value' => 1, 'name' => '丢失'],
|
||||
2 => ['value' => 2, 'name' => '去世'],
|
||||
3 => ['value' => 3, 'name' => '关闭'],
|
||||
];
|
||||
|
||||
/**
|
||||
* 宠物列表
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-09-29
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function PetsList($params = [])
|
||||
{
|
||||
$where = empty($params['where']) ? [] : $params['where'];
|
||||
$m = isset($params['m']) ? intval($params['m']) : 0;
|
||||
$n = isset($params['n']) ? intval($params['n']) : 10;
|
||||
$order_by = empty($params['order_by']) ? 'status asc, id desc' : $params['order_by'];
|
||||
|
||||
// 获取数据列表
|
||||
$data = Db::name('PluginsPetscmsPets')->where($where)->limit($m, $n)->order($order_by)->select();
|
||||
if(!empty($data))
|
||||
{
|
||||
foreach($data as &$v)
|
||||
{
|
||||
// 类型
|
||||
$v['type_name'] = (isset($v['type']) && isset(self::$pets_attribute_type_list[$v['type']])) ? self::$pets_attribute_type_list[$v['type']]['name'] : '';
|
||||
|
||||
// 性别
|
||||
$v['gender_name'] = (isset($v['gender']) && isset(self::$pets_attribute_gender_list[$v['gender']])) ? self::$pets_attribute_gender_list[$v['gender']]['name'] : '';
|
||||
|
||||
// 是否绝育
|
||||
$v['sterilization_name'] = (isset($v['sterilization']) && isset(self::$pets_attribute_is_text_list[$v['sterilization']])) ? self::$pets_attribute_is_text_list[$v['sterilization']]['name'] : '';
|
||||
|
||||
// 是否疫苗
|
||||
$v['vaccine_name'] = (isset($v['vaccine']) && isset(self::$pets_attribute_is_text_list[$v['vaccine']])) ? self::$pets_attribute_is_text_list[$v['vaccine']]['name'] : '';
|
||||
|
||||
// 状态
|
||||
$v['status_name'] = self::$pets_attribute_status_list[$v['status']]['name'];
|
||||
|
||||
// 生日/年龄
|
||||
if(empty($v['birthday']))
|
||||
{
|
||||
$v['birthday_name'] = null;
|
||||
$v['age'] = '0岁';
|
||||
} else {
|
||||
$v['birthday_name'] = date('Y-m-d', $v['birthday']);
|
||||
$age = \base\Age::CalAge($v['birthday_name']);
|
||||
$v['age'] = $age['year'].'年'.$age['month'].'月'.$age['day'].'天';
|
||||
}
|
||||
|
||||
// 内容
|
||||
$v['content'] = ResourcesService::ContentStaticReplace($v['content'], 'get');
|
||||
|
||||
// 相册
|
||||
$v['photo'] = empty($v['photo']) ? null : self::GetPetsPhotoHandle($v['photo']);
|
||||
|
||||
// 丢失时间
|
||||
$v['lose_time_name'] = empty($v['lose_time']) ? '' : date('Y-m-d', $v['lose_time']);
|
||||
|
||||
// 丢失宠物特征
|
||||
$v['lose_features'] = str_replace("\n", '<br />', $v['lose_features']);
|
||||
|
||||
// 二维码
|
||||
$v['qrcode_url'] = empty($v['qrcode_images']) ? MyUrl('index/qrcode/index', ['content'=>urlencode(base64_encode(PluginsHomeUrl('petscms', 'pets', 'detail', ['id'=>$v['id']])))]) : ResourcesService::AttachmentPathViewHandle($v['qrcode_images']);
|
||||
$v['qrcode_download'] = MyUrl('index/qrcode/download', ['url'=>urlencode(base64_encode($v['qrcode_url'])), 'filename'=>$v['pest_no']]);
|
||||
|
||||
// 地址
|
||||
$v['province_name'] = RegionService::RegionName($v['lose_province']);
|
||||
$v['city_name'] = RegionService::RegionName($v['lose_city']);
|
||||
$v['county_name'] = RegionService::RegionName($v['lose_county']);
|
||||
|
||||
// 时间
|
||||
$v['add_time_time'] = date('Y-m-d H:i:s', $v['add_time']);
|
||||
$v['add_time_date'] = date('Y-m-d', $v['add_time']);
|
||||
$v['upd_time_time'] = empty($v['upd_time']) ? '' : date('Y-m-d H:i:s', $v['upd_time']);
|
||||
$v['upd_time_date'] = empty($v['upd_time']) ? '' : date('Y-m-d', $v['upd_time']);
|
||||
}
|
||||
}
|
||||
return DataReturn('处理成功', 0, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 宠物相册获取处理
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2019-04-11T22:56:49+0800
|
||||
* @param [array] $photo [相册数据]
|
||||
*/
|
||||
private static function GetPetsPhotoHandle($photo)
|
||||
{
|
||||
$result = [];
|
||||
if(!empty($photo))
|
||||
{
|
||||
if(is_string($photo))
|
||||
{
|
||||
$photo = json_decode($photo, true);
|
||||
}
|
||||
foreach($photo as &$v)
|
||||
{
|
||||
$result[] = [
|
||||
'images_old' => $v,
|
||||
'images' => ResourcesService::AttachmentPathViewHandle($v),
|
||||
];
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 宠物列表条件
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-09-29
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function PetsListWhere($params = [])
|
||||
{
|
||||
// 条件初始化
|
||||
$where = [];
|
||||
|
||||
// 用户id
|
||||
if(!empty($params['user']))
|
||||
{
|
||||
$where[] = ['user_id', '=', $params['user']['id']];
|
||||
}
|
||||
|
||||
// 关键字
|
||||
if(!empty($params['keywords']))
|
||||
{
|
||||
$where[] = ['title|detail', 'like', '%'.$params['keywords'].'%'];
|
||||
}
|
||||
|
||||
// 是否更多条件
|
||||
if(isset($params['is_more']) && $params['is_more'] == 1)
|
||||
{
|
||||
// 等值
|
||||
if(!empty($params['type']))
|
||||
{
|
||||
$where[] = ['type', '=', $params['type']];
|
||||
}
|
||||
if(isset($params['status']) && $params['status'] > -1)
|
||||
{
|
||||
$where[] = ['status', '=', intval($params['status'])];
|
||||
}
|
||||
if(isset($params['gender']) && $params['gender'] > -1)
|
||||
{
|
||||
$where[] = ['gender', '=', intval($params['gender'])];
|
||||
}
|
||||
if(isset($params['sterilization']) && $params['sterilization'] > -1)
|
||||
{
|
||||
$where[] = ['sterilization', '=', intval($params['sterilization'])];
|
||||
}
|
||||
|
||||
if(!empty($params['time_start']))
|
||||
{
|
||||
$where[] = ['add_time', '>', strtotime($params['time_start'])];
|
||||
}
|
||||
if(!empty($params['time_end']))
|
||||
{
|
||||
$where[] = ['add_time', '<', strtotime($params['time_end'])];
|
||||
}
|
||||
}
|
||||
|
||||
return $where;
|
||||
}
|
||||
|
||||
/**
|
||||
* 宠物总数
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-09-29
|
||||
* @desc description
|
||||
* @param [array] $where [条件]
|
||||
*/
|
||||
public static function PetsTotal($where = [])
|
||||
{
|
||||
return (int) Db::name('PluginsPetscmsPets')->where($where)->count();
|
||||
}
|
||||
|
||||
/**
|
||||
* 宠物保存
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2019-04-11
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function PetsSave($params = [])
|
||||
{
|
||||
// 请求参数
|
||||
$p = [
|
||||
[
|
||||
'checked_type' => 'length',
|
||||
'key_name' => 'title',
|
||||
'checked_data' => '1,60',
|
||||
'is_checked' => 1,
|
||||
'error_msg' => '标题格式 1~60 个字符之间',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'length',
|
||||
'key_name' => 'name',
|
||||
'checked_data' => '1,30',
|
||||
'is_checked' => 1,
|
||||
'error_msg' => '宠物名字格式 1~30 个字符之间',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'empty',
|
||||
'key_name' => 'birthday',
|
||||
'is_checked' => 1,
|
||||
'error_msg' => '请填写出生日期',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'in',
|
||||
'key_name' => 'type',
|
||||
'checked_data' => array_column(self::$pets_attribute_type_list, 'value'),
|
||||
'is_checked' => 2,
|
||||
'error_msg' => '宠物类型有误',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'length',
|
||||
'key_name' => 'varieties',
|
||||
'checked_data' => '30',
|
||||
'is_checked' => 1,
|
||||
'error_msg' => '品种格式最多 30 个字符',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'in',
|
||||
'key_name' => 'gender',
|
||||
'checked_data' => array_column(self::$pets_attribute_gender_list, 'value'),
|
||||
'is_checked' => 2,
|
||||
'error_msg' => '宠物性别有误',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'in',
|
||||
'key_name' => 'sterilization',
|
||||
'checked_data' => array_column(self::$pets_attribute_gender_list, 'value'),
|
||||
'is_checked' => 2,
|
||||
'error_msg' => '宠物是否绝育有误',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'empty',
|
||||
'key_name' => 'photo',
|
||||
'is_checked' => 1,
|
||||
'error_msg' => '请上传宠物相册',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'length',
|
||||
'key_name' => 'content',
|
||||
'checked_data' => '105000',
|
||||
'is_checked' => 1,
|
||||
'error_msg' => '宠物简介内容最多 105000 个字符',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'length',
|
||||
'key_name' => 'person_name',
|
||||
'checked_data' => '1,30',
|
||||
'is_checked' => 1,
|
||||
'error_msg' => '主人姓名格式 1~30 个字符之间',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'length',
|
||||
'key_name' => 'person_tel',
|
||||
'checked_data' => '1,30',
|
||||
'is_checked' => 1,
|
||||
'error_msg' => '主人电话格式 1~30 个字符之间',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'length',
|
||||
'key_name' => 'person_weixin',
|
||||
'checked_data' => '1,30',
|
||||
'is_checked' => 1,
|
||||
'error_msg' => '主人微信格式 1~30 个字符之间',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'in',
|
||||
'key_name' => 'status',
|
||||
'checked_data' => array_column(self::$pets_attribute_status_list, 'value'),
|
||||
'is_checked' => 2,
|
||||
'error_msg' => '宠物状态有误',
|
||||
],
|
||||
];
|
||||
$ret = ParamsChecked($params, $p);
|
||||
if($ret !== true)
|
||||
{
|
||||
return DataReturn($ret, -1);
|
||||
}
|
||||
|
||||
// 相册
|
||||
$photo = self::GetFormPetsPhotoParams($params);
|
||||
if($photo['code'] != 0)
|
||||
{
|
||||
return $photo;
|
||||
}
|
||||
|
||||
// 编辑器内容
|
||||
$content = empty($params['content']) ? '' : ResourcesService::ContentStaticReplace(htmlspecialchars_decode($params['content']), 'add');
|
||||
|
||||
// 宠物数据
|
||||
$data = [
|
||||
'user_id' => isset($params['user_id']) ? intval($params['user_id']) : 0,
|
||||
'title' => isset($params['title']) ? $params['title'] : '',
|
||||
'name' => isset($params['name']) ? $params['name'] : '',
|
||||
'birthday' => empty($params['birthday']) ? 0 : strtotime($params['birthday']),
|
||||
'type' => isset($params['type']) ? $params['type'] : '',
|
||||
'varieties' => isset($params['varieties']) ? $params['varieties'] : '',
|
||||
'gender' => isset($params['gender']) ? $params['gender'] : -1,
|
||||
'sterilization' => isset($params['sterilization']) ? $params['sterilization'] : -1,
|
||||
'vaccine' => isset($params['vaccine']) ? $params['vaccine'] : -1,
|
||||
'photo' => empty($photo['data']) ? '' : json_encode($photo['data']),
|
||||
'content' => $content,
|
||||
'person_name' => isset($params['person_name']) ? $params['person_name'] : '',
|
||||
'person_tel' => isset($params['person_tel']) ? $params['person_tel'] : '',
|
||||
'person_weixin' => isset($params['person_weixin']) ? $params['person_weixin'] : '',
|
||||
|
||||
'lose_time' => empty($params['lose_time']) ? 0 : strtotime($params['lose_time']),
|
||||
'lose_reward_amount' => !empty($params['lose_reward_amount']) ? PriceNumberFormat($params['lose_reward_amount']) : 0.00,
|
||||
'lose_features' => isset($params['lose_features']) ? $params['lose_features'] : '',
|
||||
'lose_province' => isset($params['province']) ? intval($params['province']) : 0,
|
||||
'lose_city' => isset($params['city']) ? intval($params['city']) : 0,
|
||||
'lose_county' => isset($params['county']) ? intval($params['county']) : 0,
|
||||
'lose_lng' => empty($params['lng']) ? 0.00 : floatval($params['lng']),
|
||||
'lose_lat' => empty($params['lat']) ? 0.00 : floatval($params['lat']),
|
||||
'lose_address' => isset($params['address']) ? $params['address'] : '',
|
||||
'status' => isset($params['status']) ? intval($params['status']) : 0,
|
||||
];
|
||||
|
||||
// 绑定编号
|
||||
$edit_msg_title = '编辑';
|
||||
if(!empty($params['pest_no']))
|
||||
{
|
||||
$pets = Db::name('PluginsPetscmsPets')->where(['pest_no'=>$params['pest_no']])->field('id,pest_no,user_id')->find();
|
||||
if(empty($pets))
|
||||
{
|
||||
return DataReturn('宠物编号不存在['.$params['pest_no'].']', -10);
|
||||
}
|
||||
|
||||
// 是否被其他用户绑定
|
||||
if(!empty($pets['user_id']))
|
||||
{
|
||||
return DataReturn('宠物编号已被绑定['.$params['pest_no'].']', -11);
|
||||
}
|
||||
|
||||
// 使用编辑模式
|
||||
$params['id'] = $pets['id'];
|
||||
$edit_msg_title = '绑定';
|
||||
}
|
||||
|
||||
// 添加/编辑
|
||||
if(empty($params['id']))
|
||||
{
|
||||
$data['pest_no'] = date('YmdHis').GetNumberCode(6);
|
||||
$data['add_time'] = time();
|
||||
$pets_id = Db::name('PluginsPetscmsPets')->insertGetId($data);
|
||||
if($pets_id > 0)
|
||||
{
|
||||
// 生成二维码
|
||||
self::PetsQrcodeCreate($pets_id);
|
||||
|
||||
return DataReturn('添加成功', 0);
|
||||
}
|
||||
return DataReturn('添加失败', -100);
|
||||
} else {
|
||||
$data['upd_time'] = time();
|
||||
if(Db::name('PluginsPetscmsPets')->where(['id'=>intval($params['id'])])->update($data))
|
||||
{
|
||||
return DataReturn($edit_msg_title.'成功', 0);
|
||||
}
|
||||
return DataReturn($edit_msg_title.'失败', -100);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 宠物二维码生成
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2019-04-19
|
||||
* @desc description
|
||||
* @param [type] $pets_id [description]
|
||||
*/
|
||||
private static function PetsQrcodeCreate($pets_id)
|
||||
{
|
||||
if(!empty($pets_id))
|
||||
{
|
||||
$base = PluginsService::PluginsData('petscms', ['logo']);
|
||||
$params = [
|
||||
'path' => DS.'static'.DS.'upload'.DS.'images'.DS.'plugins_petscms'.DS.'qrcode'.DS.date('Y').DS.date('m').DS.date('d').DS,
|
||||
'content' => PluginsHomeUrl('petscms', 'pets', 'detail', ['id'=>$pets_id]),
|
||||
'logo' => empty($base['data']['logo']) ? '' : $base['data']['logo'],
|
||||
];
|
||||
$ret = (new \base\Qrcode())->Create($params);
|
||||
if($ret['code'] == 0)
|
||||
{
|
||||
if(!Db::name('PluginsPetscmsPets')->where(['id'=>$pets_id])->update(['qrcode_images'=>$ret['data']['path'].$ret['data']['filename'], 'upd_time'=>time()]))
|
||||
{
|
||||
return DataReturn('二维码生成失败', -10);
|
||||
}
|
||||
}
|
||||
}
|
||||
return DataReturn('二维码生成成功', 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取宠物相册
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-07-10
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
* @return [array] [一维数组但图片地址]
|
||||
*/
|
||||
private static function GetFormPetsPhotoParams($params = [])
|
||||
{
|
||||
$result = [];
|
||||
if(!empty($params['photo']) && is_array($params['photo']))
|
||||
{
|
||||
foreach($params['photo'] as $v)
|
||||
{
|
||||
$result[] = ResourcesService::AttachmentPathHandle($v);
|
||||
}
|
||||
}
|
||||
return DataReturn('success', 0, $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 丢失提供信息保存
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2019-04-11
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function HelpSave($params = [])
|
||||
{
|
||||
// 请求参数
|
||||
$p = [
|
||||
[
|
||||
'checked_type' => 'empty',
|
||||
'key_name' => 'pets_id',
|
||||
'error_msg' => '宠物id有误',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'length',
|
||||
'key_name' => 'contacts_name',
|
||||
'checked_data' => '1,30',
|
||||
'error_msg' => '联系人姓名格式 1~30 个字符之间',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'empty',
|
||||
'key_name' => 'province',
|
||||
'error_msg' => '请选择省份',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'empty',
|
||||
'key_name' => 'city',
|
||||
'error_msg' => '请选择城市',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'empty',
|
||||
'key_name' => 'county',
|
||||
'error_msg' => '请选择区/县',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'length',
|
||||
'key_name' => 'address',
|
||||
'checked_data' => '1,80',
|
||||
'error_msg' => '详细地址格式 1~80 个字符之间',
|
||||
],
|
||||
];
|
||||
$ret = ParamsChecked($params, $p);
|
||||
if($ret !== true)
|
||||
{
|
||||
return DataReturn($ret, -1);
|
||||
}
|
||||
|
||||
// 电话微信只至少填写一个
|
||||
if(empty($params['contacts_tel']) && empty($params['contacts_weixin']))
|
||||
{
|
||||
return DataReturn('电话/微信只至少填写一个', -1);
|
||||
}
|
||||
|
||||
// 宠物数据
|
||||
$data = [
|
||||
'user_id' => isset($params['user_id']) ? intval($params['user_id']) : 0,
|
||||
'pets_id' => intval($params['pets_id']),
|
||||
'contacts_name' => $params['contacts_name'],
|
||||
'contacts_tel' => isset($params['contacts_tel']) ? $params['contacts_tel'] : '',
|
||||
'contacts_weixin' => isset($params['contacts_weixin']) ? $params['contacts_weixin'] : '',
|
||||
'province' => intval($params['province']),
|
||||
'city' => intval($params['city']),
|
||||
'county' => intval($params['county']),
|
||||
'address' => $params['address'],
|
||||
'lng' => empty($params['lng']) ? 0.00 : floatval($params['lng']),
|
||||
'lat' => empty($params['lat']) ? 0.00 : floatval($params['lat']),
|
||||
];
|
||||
|
||||
// 添加/编辑
|
||||
if(empty($params['id']))
|
||||
{
|
||||
$data['add_time'] = time();
|
||||
if(Db::name('PluginsPetscmsHelp')->insertGetId($data) > 0)
|
||||
{
|
||||
return DataReturn('提供成功', 0);
|
||||
}
|
||||
return DataReturn('提供失败', -100);
|
||||
} else {
|
||||
$data['upd_time'] = time();
|
||||
if(Db::name('PluginsPetscmsHelp')->where(['id'=>intval($params['id'])])->update($data))
|
||||
{
|
||||
return DataReturn('编辑成功', 0);
|
||||
}
|
||||
return DataReturn('编辑失败', -100);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 宠物帮助数据列表
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-09-29
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function HelpList($params = [])
|
||||
{
|
||||
$where = empty($params['where']) ? [] : $params['where'];
|
||||
$m = isset($params['m']) ? intval($params['m']) : 0;
|
||||
$n = isset($params['n']) ? intval($params['n']) : 10;
|
||||
$order_by = empty($params['order_by']) ? 'id desc' : $params['order_by'];
|
||||
|
||||
// 获取数据列表
|
||||
$data = Db::name('PluginsPetscmsHelp')->where($where)->limit($m, $n)->order($order_by)->select();
|
||||
if(!empty($data))
|
||||
{
|
||||
foreach($data as &$v)
|
||||
{
|
||||
// 地址
|
||||
$v['province_name'] = RegionService::RegionName($v['province']);
|
||||
$v['city_name'] = RegionService::RegionName($v['city']);
|
||||
$v['county_name'] = RegionService::RegionName($v['county']);
|
||||
|
||||
// 时间
|
||||
$v['add_time_time'] = date('Y-m-d H:i:s', $v['add_time']);
|
||||
$v['add_time_date'] = date('Y-m-d', $v['add_time']);
|
||||
$v['upd_time_time'] = empty($v['upd_time']) ? '' : date('Y-m-d H:i:s', $v['upd_time']);
|
||||
$v['upd_time_date'] = empty($v['upd_time']) ? '' : date('Y-m-d', $v['upd_time']);
|
||||
}
|
||||
}
|
||||
return DataReturn('处理成功', 0, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 宠物帮助数据总数
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-09-29
|
||||
* @desc description
|
||||
* @param [array] $where [条件]
|
||||
*/
|
||||
public static function HelpTotal($where = [])
|
||||
{
|
||||
return (int) Db::name('PluginsPetscmsHelp')->where($where)->count();
|
||||
}
|
||||
|
||||
/**
|
||||
* 宠物解绑
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-12-18
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function PetsUntying($params = [])
|
||||
{
|
||||
// 请求参数
|
||||
$p = [
|
||||
[
|
||||
'checked_type' => 'empty',
|
||||
'key_name' => 'id',
|
||||
'error_msg' => '操作id有误',
|
||||
],
|
||||
];
|
||||
$ret = ParamsChecked($params, $p);
|
||||
if($ret !== true)
|
||||
{
|
||||
return DataReturn($ret, -1);
|
||||
}
|
||||
|
||||
// 条件
|
||||
$where = ['id'=>intval($params['id'])];
|
||||
if(!empty($params['user_id']))
|
||||
{
|
||||
$where['user_id'] = intval($params['user_id']);
|
||||
}
|
||||
|
||||
// 解绑操作
|
||||
if(Db::name('PluginsPetscmsPets')->where($where)->update(['user_id'=>0, 'upd_time'=>time()]))
|
||||
{
|
||||
return DataReturn('解绑成功');
|
||||
}
|
||||
|
||||
return DataReturn('解绑失败或资源不存在', -100);
|
||||
}
|
||||
|
||||
/**
|
||||
* 宠物删除
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-12-18
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function PetsDelete($params = [])
|
||||
{
|
||||
// 请求参数
|
||||
$p = [
|
||||
[
|
||||
'checked_type' => 'empty',
|
||||
'key_name' => 'id',
|
||||
'error_msg' => '操作id有误',
|
||||
],
|
||||
];
|
||||
$ret = ParamsChecked($params, $p);
|
||||
if($ret !== true)
|
||||
{
|
||||
return DataReturn($ret, -1);
|
||||
}
|
||||
|
||||
// 删除操作
|
||||
if(Db::name('PluginsPetscmsPets')->where(['id'=>intval($params['id'])])->delete())
|
||||
{
|
||||
return DataReturn('删除成功');
|
||||
}
|
||||
|
||||
return DataReturn('删除失败或资源不存在', -100);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
{
|
||||
"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"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
# 宠物管理系统宠物
|
||||
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='宠物管理系统宠物丢失帮助数据 - 应用'
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
# 宠物管理系统宠物 - 应用
|
||||
DROP TABLE `s_plugins_petscms_pets`;
|
||||
|
||||
# 宠物管理系统宠物丢失帮助数据 - 应用
|
||||
DROP TABLE `s_plugins_petscms_help`;
|
||||
|
|
@ -1,99 +0,0 @@
|
|||
{{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 -->
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
{{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 -->
|
||||
|
|
@ -1,103 +0,0 @@
|
|||
{{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 -->
|
||||
|
|
@ -1,319 +0,0 @@
|
|||
{{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">×</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}}
|
||||
|
|
@ -1,92 +0,0 @@
|
|||
{{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 -->
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
{{include file="public/header" /}}
|
||||
|
||||
{{if !empty($params['lng']) and !empty($params['lat']) and $params['lng'] gt 0 and $params['lat'] gt 0}}
|
||||
<div id="help-map"></div>
|
||||
{{else /}}
|
||||
<div class="table-no"><i class="am-icon-warning"></i> 参数有误</div>
|
||||
{{/if}}
|
||||
|
||||
{{include file="public/footer" /}}
|
||||
|
||||
{{if !empty($params['lng']) and !empty($params['lat']) and $params['lng'] gt 0 and $params['lat'] gt 0}}
|
||||
<!-- map -->
|
||||
<script type="text/javascript" src="{{$Think.__MY_HTTP__}}://api.map.baidu.com/api?v=2.0&ak={{:MyC('common_baidu_map_ak')}}"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function()
|
||||
{
|
||||
// 丢失地址-地图展示
|
||||
var map = new BMap.Map("help-map", {enableMapClick:false});
|
||||
var level = 17;
|
||||
var point = new BMap.Point({{$params['lng']}}, {{$params['lat']}});
|
||||
map.centerAndZoom(point, level);
|
||||
|
||||
// 添加控件
|
||||
var navigationControl = new BMap.NavigationControl({
|
||||
// 靠左上角位置
|
||||
anchor: BMAP_ANCHOR_TOP_LEFT,
|
||||
// LARGE类型
|
||||
type: BMAP_NAVIGATION_CONTROL_LARGE,
|
||||
});
|
||||
map.addControl(navigationControl);
|
||||
|
||||
// 创建标注
|
||||
var marker = new BMap.Marker(point); // 创建标注
|
||||
map.addOverlay(marker); // 将标注添加到地图中
|
||||
marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
|
||||
});
|
||||
</script>
|
||||
{{/if}}
|
||||
|
|
@ -1,220 +0,0 @@
|
|||
{{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 -->
|
||||
|
|
@ -1,249 +0,0 @@
|
|||
{{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>
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
{{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 -->
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
{{include file="public/header" /}}
|
||||
|
||||
{{if !empty($params['lng']) and !empty($params['lat']) and $params['lng'] gt 0 and $params['lat'] gt 0}}
|
||||
<div id="help-map"></div>
|
||||
{{else /}}
|
||||
<div class="table-no"><i class="am-icon-warning"></i> 参数有误</div>
|
||||
{{/if}}
|
||||
|
||||
{{include file="public/footer" /}}
|
||||
|
||||
{{if !empty($params['lng']) and !empty($params['lat']) and $params['lng'] gt 0 and $params['lat'] gt 0}}
|
||||
<!-- map -->
|
||||
<script type="text/javascript" src="{{$Think.__MY_HTTP__}}://api.map.baidu.com/api?v=2.0&ak={{:MyC('common_baidu_map_ak')}}"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function()
|
||||
{
|
||||
// 丢失地址-地图展示
|
||||
var map = new BMap.Map("help-map", {enableMapClick:false});
|
||||
var level = 17;
|
||||
var point = new BMap.Point({{$params['lng']}}, {{$params['lat']}});
|
||||
map.centerAndZoom(point, level);
|
||||
|
||||
// 添加控件
|
||||
var navigationControl = new BMap.NavigationControl({
|
||||
// 靠左上角位置
|
||||
anchor: BMAP_ANCHOR_TOP_LEFT,
|
||||
// LARGE类型
|
||||
type: BMAP_NAVIGATION_CONTROL_LARGE,
|
||||
});
|
||||
map.addControl(navigationControl);
|
||||
|
||||
// 创建标注
|
||||
var marker = new BMap.Marker(point); // 创建标注
|
||||
map.addOverlay(marker); // 将标注添加到地图中
|
||||
marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
|
||||
});
|
||||
</script>
|
||||
{{/if}}
|
||||
|
|
@ -1,210 +0,0 @@
|
|||
{{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 -->
|
||||
|
|
@ -1,220 +0,0 @@
|
|||
{{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>
|
||||
|
|
@ -119,16 +119,6 @@ return array (
|
|||
array (
|
||||
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' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\share\\Hook',
|
||||
|
|
@ -157,5 +147,13 @@ return array (
|
|||
array (
|
||||
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',
|
||||
),
|
||||
);
|
||||
?>
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,60 +0,0 @@
|
|||
/**
|
||||
* 首页
|
||||
*/
|
||||
.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;
|
||||
}
|
||||
|
|
@ -1,78 +0,0 @@
|
|||
/* 筛选 */
|
||||
.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;
|
||||
}
|
||||
|
|
@ -1,288 +0,0 @@
|
|||
/**
|
||||
* 公共
|
||||
*/
|
||||
.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%;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,87 +0,0 @@
|
|||
/* 筛选 */
|
||||
.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;
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 13 KiB |
|
|
@ -1 +0,0 @@
|
|||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 16 KiB |
|
|
@ -1,15 +0,0 @@
|
|||
$(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');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
$(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');
|
||||
}
|
||||
});
|
||||
});
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.3 KiB |
Loading…
Reference in New Issue