提交 53db2315 编写于 作者: G gongfuxiang

应用开发

上级 23693b09
......@@ -212,10 +212,10 @@ class Common extends Controller
$default_theme = strtolower(MyC('common_default_theme', 'default', true));
$this->assign('default_theme', $default_theme);
// 当前操作名称, 兼容插件模块名称
$module_name = empty($params['pluginsname']) ? strtolower(request()->module()) : $params['pluginsname'];
$controller_name = empty($params['pluginscontrol']) ? strtolower(request()->controller()) : $params['pluginscontrol'];
$action_name = empty($params['pluginsaction']) ? strtolower(request()->action()) : $params['pluginsaction'];
// 当前操作名称, 兼容插件模块名称
$module_name = strtolower(request()->module());
$controller_name = strtolower(request()->controller());
$action_name = strtolower(request()->action());
// 当前操作名称
$this->assign('module_name', $module_name);
......
......@@ -6,7 +6,7 @@
{{foreach $user_left_menu as $k=>$v}}
{{if $v.is_show eq 1}}
{{if empty($v['item'])}}
<li class="{{if isset($v['contains']) and in_array(strtolower($controller_name.$action_name), $v['contains'])}} am-active{{/if}}" >
<li class="{{if isset($v['contains']) and (in_array(strtolower($controller_name.$action_name), $v['contains']) or (isset($params['pluginscontrol']) and isset($params['pluginsaction']) and in_array(strtolower($params['pluginscontrol'].$params['pluginsaction']), $v['contains'])))}} am-active{{/if}}" >
<a href="{{$v.url}}">{{if !empty($v['icon'])}}<i class="{{$v.icon}}"></i>{{/if}} {{$v.name}}</a>
</li>
{{else /}}
......@@ -15,7 +15,7 @@
<ul class="am-list am-collapse user-sidebar-sub am-in" id="collapse-nav-{{$k}}">
{{foreach $v.item as $vs}}
{{if $vs.is_show eq 1}}
<li class="{{if isset($vs['contains']) and in_array(strtolower($controller_name.$action_name), $vs['contains'])}} am-active{{/if}}">
<li class="{{if isset($vs['contains']) and (in_array(strtolower($controller_name.$action_name), $vs['contains']) or (isset($params['pluginscontrol']) and isset($params['pluginsaction']) and in_array(strtolower($params['pluginscontrol'].$params['pluginsaction']), $vs['contains'])))}} am-active{{/if}}">
<a href="{{$vs.url}}" class="am-cf">{{if !empty($vs['icon'])}}<i class="{{$vs.icon}}"></i>{{/if}} {{$vs.name}}</a>
</li>
{{/if}}
......
......@@ -123,6 +123,35 @@ class Pets extends Controller
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'])],
);
$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/pets/detail');
}
/**
* 宠物添加/编辑
* @author Devil
......
......@@ -12,6 +12,7 @@ namespace app\plugins\petscms;
use think\Db;
use app\service\ResourcesService;
use app\service\RegionService;
/**
* 宠物管理系统 - 服务层
......@@ -103,9 +104,17 @@ class Service
// 相册
$v['photo'] = empty($v['photo']) ? null : self::GetPestPhotoHandle($v['photo']);
// 丢失时间
$v['lose_time_name'] = empty($v['lose_time']) ? '' : date('Y-m-d', $v['lose_time']);
// 二维码
$v['qrcode_url'] = MyUrl('index/qrcode/index', ['content'=>urlencode(base64_encode(MyUrl('index/goods/index', ['id'=>$v['id']], true, true)))]);
// 地址
$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']);
......@@ -314,6 +323,13 @@ class Service
'is_checked' => 2,
'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)
......@@ -347,6 +363,17 @@ class Service
'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']) ? floatval($params['lng']) : 0.00,
'lose_lat' => !empty($params['lat']) ? floatval($params['lat']) : 0.00,
'lose_address' => isset($params['address']) ? $params['address'] : '',
'status' => isset($params['status']) ? intval($params['status']) : 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" /}}
<div class="pets-detail am-container">
<div class="top">
<div class="am-u-md-4 photo">
{{if !empty($data['photo'])}}
<div data-am-widget="slider" class="am-slider am-slider-a1" data-am-slider='{"directionNav":false, "slideshow":false}'>
<ul class="am-slides">
{{foreach $data.photo as $photo}}
<li>
<img src="{{$photo.images}}" alt="{{$data.title}}" />
</li>
{{/foreach}}
</ul>
</div>
{{/if}}
</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>
</ul>
{{if isset($data['status']) and in_array($data['status'], [0,1])}}
<div class="base-btn">
<!-- <button type="button" class="am-btn am-btn-primary am-radius am-icon-share-alt"> 分享</button> -->
<div class="bdsharebuttonbox"><a href="#" class="bds_more" data-cmd="more"></a><a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间"></a><a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博"></a><a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信"></a><a href="#" class="bds_sqq" data-cmd="sqq" title="分享到QQ好友"></a><a href="#" class="bds_renren" data-cmd="renren" title="分享到人人网"></a><a href="#" class="bds_tieba" data-cmd="tieba" title="分享到百度贴吧"></a><a href="#" class="bds_linkedin" data-cmd="linkedin" title="分享到linkedin"></a></div>
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"24"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
</div>
{{/if}}
</div>
</div>
{{if isset($data['status']) and $data['status'] eq 1}}
<div class="lose">
<div class="am-alert am-alert-warning" data-am-alert>
<p class="lose-title">该宠物已丢失,欢迎大家提供信息,重重有赏!</p>
<ul class="person">
{{if !empty($data['person_name'])}}
<li>
<span>主人姓名</span>
<span>{{$data.person_name}}</span>
</li>
{{/if}}
{{if !empty($data['person_tel'])}}
<li>
<span>主人电话</span>
<span>{{$data.person_tel}}</span>
</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>
<span>悬赏金额</span>
<span>{{$data.lose_reward_amount}}</span>
</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>
<div id="map" data-level="17" class="am-form-group"></div>
</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}}
</div>
{{include file="public/footer" /}}
<!-- 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); // 将标注添加到地图中
});
</script>
\ No newline at end of file
......@@ -128,7 +128,7 @@
<ul class="am-slides">
{{foreach $v.photo as $photo}}
<li>
<img src="{{$photo.images}}" />
<img src="{{$photo.images}}" alt="{{$v.title}}" />
</li>
{{/foreach}}
</ul>
......@@ -175,7 +175,7 @@
</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>
<a href="{{:PluginsHomeUrl('petscms', 'pets', 'saveinfo',array_merge($params, ['id'=>$v['id']]))}}" class="am-btn am-btn-success am-btn-xs am-radius am-icon-newspaper-o am-btn-block"> 详情</a>
<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>
</td>
</tr>
{{/foreach}}
......
......@@ -155,13 +155,24 @@
<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>
{{include file="lib/region_linkage" /}}
<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>详细地址</label>
<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['lng'])}}{{$data.lng}}{{/if}}" />
<input type="hidden" name="lat" id="form-lat" value="{{if !empty($data['lat'])}}{{$data.lat}}{{/if}}" />
<input type="text" name="lose_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}}" />
<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>
......@@ -203,7 +214,7 @@ $(function()
// 百度地图API功能
var map = new BMap.Map("map", {enableMapClick:false});
var level = $('#map').data('level') || 16;
var point = new BMap.Point({{if !empty($data['lng'])}}{{$data['lng']}}{{else /}}116.400244{{/if}},{{if !empty($data['lat'])}}{{$data['lat']}}{{else /}}39.92556{{/if}});
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);
// 添加控件
......
此差异已折叠。
......@@ -23,7 +23,7 @@
.row-first { width: 20%; }
.row-first p { font-weight: 500; max-width: 240px; }
.row-first .am-slider { max-height: 130px; }
.am-slider .am-slides img { width: auto; max-height: 100%; margin: 0 auto; }
.row-first .am-slider .am-slides img { width: auto; max-height: 100%; margin: 0 auto; }
@media only screen and (min-width: 641px){
.so-list .chosen-container, .so-list select { width:217px !important; display: -webkit-inline-box; }
.thin_sub:hover { color:#F60; }
......
/**
* 公共
*/
.search-bar form {
border: 2px solid #03A9F4;
}
#ai-topsearch {
background: #03A9F4 none repeat scroll 0% 0%;
}
.goods-category-title, .nav-cont .nav-extra, .nav-cont .nav-extra .nav-user {
background: #03A9F4;
}
.nav-cont .nav-extra * {
color: #ffe500;
}
.am-footer-default {
border-top: 2px solid #03A9F4;
}
.am-slider-a1 .am-control-nav li a.am-active {
background-color: #03A9F4;
}
.nav-cont li a:hover, a:hover, a:focus {
color: #03A9F4;
}
/**
* 详情
*/
.pets-detail {
margin-top: 10px;
}
.base-btn {
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;
}
/**
* 左侧
*/
.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 #edf9ff;
}
.base ul.basic li {
padding: 10px 0;
float: left;
width: 50%;
}
.base ul.basic li:not(:last-child) {
border-bottom: 1px solid #edf9ff;
}
.base ul.basic li span:first-child {
font-weight: 500;
margin-right: 10px;
border-right: 1px solid #ebf6fc;
padding-right: 10px;
color: #666;
}
/**
* 丢失信息
*/
.lose .am-alert-warning {
background-color: #fff8ef;
border-color: #fff3ea;
color: #888;
margin-top: 20px;
margin-bottom: 5px;
}
.lose .lose-title {
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 #feebdd;
padding-right: 10px;
}
.lose ul.person {
margin-top: 5px;
}
.lose ul.person li {
padding: 8px 0;
}
.lose ul.person li:not(:last-child) {
border-bottom: 1px solid #fff2e8;
}
.lose ul.person li:last-child {
padding-bottom: 0;
}
#map {
width: 100%;
height: 350px;
}
@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-last-child(2) {
border-bottom: 0;
padding-bottom: 0;
}
}
@media only screen and (min-width:1025px) {
/**
* 公共
*/
.shop-nav {
border-bottom: 2px solid #03A9F4;
}
/**
* 详情
*/
.pets-detail {
padding: 0;
}
}
@media only screen and (max-width: 641px) {
.base, .lose, .content {
padding: 0 5px;
}
.base h1 {
margin: 10px 0 5px 0;
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册