site.php 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450
  1. <?php
  2. use yii\helpers\Url;
  3. use yii\helpers\Html;
  4. ?>
  5. <!doctype html>
  6. <html>
  7. <head>
  8. <meta charset="UTF-8">
  9. <title>工地详情</title>
  10. <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
  11. <?= Html::cssFile('@web/css/weui.min.css') ?>
  12. <?= Html::cssFile('@web/css/jquery-weui.min.css') ?>
  13. <?= Html::cssFile('@web/css/base.css') ?>
  14. <?= Html::cssFile('@web/iconfont/iconfont.css') ?>
  15. <?= Html::cssFile('@web/css/swiper-3.4.2.min.css') ?>
  16. </head>
  17. <style>
  18. /*.cancel{color: #9d9d9d;important;}*/
  19. .hide{display: none};
  20. </style>
  21. <body>
  22. <div class="show-box">
  23. <div class="banner">
  24. <div class="swiper-container">
  25. <div class="swiper-wrapper">
  26. <?php if(!empty($datas->allimg)):?>
  27. <?php foreach($datas->allimg as $image):?>
  28. <div class="swiper-slide">
  29. <img src="<?=empty($image->pic)?\common\models\Building::DEFAULT_PIC:Yii::getAlias('@imgdomain').'/'.$image->pic?>"/>
  30. </div>
  31. <?php endforeach;?>
  32. <?php else:?>
  33. <img src="<?=\common\models\Building::DEFAULT_PIC?>"/>
  34. <?php endif;?>
  35. </div>
  36. <div class="swiper-pagination"></div>
  37. <?php if($type==1): ?>
  38. <div class="back"><a href="<?= Url::toRoute(['site/index']) ?>"><img src="<?= Yii::getAlias('@web') ?>/images/round_left_fill.png" alt=""></a></div>
  39. <?php endif; ?>
  40. </div>
  41. <div class="title">
  42. <?=empty($datas->name)?'':$datas->name?>
  43. <span>距离:<?=empty($distance)?'': sprintf("%.1f", $distance/1000) ?>km </span>
  44. </div>
  45. </div>
  46. <div class="info-box">
  47. <h2><i class="iconfont icon-biaotiwenzitubiao"></i>基础信息</h2>
  48. <div class="weui-flex basic-info">
  49. <div class="weui-flex__item">
  50. <span>户型</span>
  51. <?=empty($datas->layout)?'':$datas->layout?>
  52. </div>
  53. <div class="weui-flex__item">
  54. <span>单价</span>
  55. <?=empty($datas->budget)?'':$datas->budget.'元/平方'?>
  56. </div>
  57. </div>
  58. <div class="weui-flex basic-info">
  59. <!-- <div class="weui-flex__item">
  60. <span>类型</span>
  61. <?/*=empty($datas->pattern)?'':$datas->pattern*/?>
  62. </div>-->
  63. <div class="weui-flex__item">
  64. <span>风格</span>
  65. <?=empty($datas->style)?'':$datas->style?>
  66. </div>
  67. <div class="weui-flex__item">
  68. <span>户型面积</span>
  69. <?=empty($datas->acreage)?'':$datas->acreage.'㎡'?>
  70. </div>
  71. </div>
  72. <div class="weui-flex basic-info">
  73. <?php if($datas->type==\common\models\Building::TYPE_SITE):?>
  74. <div class="weui-flex__item">
  75. <span>装修进度</span>
  76. <b> <?=empty($datas->stage)?'':$datas->stage?></b>
  77. </div>
  78. <div class="weui-flex__item">
  79. <span>装修模式</span>
  80. <?=empty($datas->pattern )?'':$datas->pattern?>
  81. </div>
  82. <?php endif;?>
  83. </div>
  84. <div class="address">
  85. <a href="<?=Url::toRoute(['building/buildingposition','lat'=>$datas->latitude,'lng'=>$datas->longitude,'type'=>$datas->type]);?>">
  86. <i class="iconfont icon-fangzi"></i>
  87. <?=empty($datas->address)?'':$datas->address?>
  88. <i class="iconfont icon-gengduo"></i>
  89. </a>
  90. </div>
  91. </div>
  92. <div class="info-box">
  93. <div class="yy-date">
  94. <div class="left">
  95. 可约时间
  96. </div>
  97. <div class="right">
  98. <?=empty($datas->opening_begin)?'':date('Y-m-d',$datas->opening_begin)?>至 <?=empty($datas->opening_end)?'':date('Y-m-d',$datas->opening_end)?>
  99. </div>
  100. </div>
  101. </div>
  102. <div class="info-box">
  103. <div class="weui-flex role">
  104. <div class="weui-flex__item">
  105. <? $designer = isset($datas->designer)?$datas->designer:'';?>
  106. <? $dImage = isset($designer->image)?$designer->image:'';?>
  107. <? $user = isset($designer->user)?$designer->user:'';?>
  108. <? $company = isset($user->usercompany)?$user->usercompany:'';?>
  109. <a href="<?=Url::toRoute(['building/designer','id'=>$datas->designer_id]);?>">
  110. <div class="img dg"><img src="<?=empty($dImage->pic)?\common\models\User::DEFAULT_FACE:\common\models\UserInfo::imagesUrl($dImage->pic)?>" /></div>
  111. <p><?=empty($designer->realname)?'':$designer->realname?></p>
  112. <p class="small">设计师</p>
  113. </a>
  114. </div>
  115. <div class="weui-flex__item">
  116. <? $manager = isset($datas->manager)?$datas->manager:'';?>
  117. <? $mImage = isset($manager->image)?$manager->image:'';?>
  118. <? $user = isset($manager->user)?$manager->user:'';?>
  119. <? $company = isset($user->usercompany)?$user->usercompany:'';?>
  120. <a href="<?=Url::toRoute(['building/manager','id'=>$datas->manager_id]);?>">
  121. <div class="img pm"><img src="<?=empty($mImage->pic)?\common\models\User::DEFAULT_FACE:\common\models\UserInfo::imagesUrl($mImage->pic)?>" /></div>
  122. <p><?=empty($manager->realname)?'':$manager->realname?></p>
  123. <p class="small">项目经理</p>
  124. </a>
  125. </div>
  126. </div>
  127. </div>
  128. <div class="info-box">
  129. <? $flat = isset($datas->flat)?$datas->flat:'';?>
  130. <h2><i class="iconfont icon-biaotiwenzitubiao"></i>户型图</h2>
  131. <div class="hx-img">
  132. <img src="<?=empty($flat->pic)?'':Yii::getAlias('@imgdomain').'/'.$flat->pic?>">
  133. </div>
  134. </div>
  135. <div class="info-box">
  136. <h2><i class="iconfont icon-biaotiwenzitubiao"></i>附近推荐</h2>
  137. <ul class="recommend">
  138. <?php if(!empty($nearlist)):?>
  139. <?php foreach($nearlist as $building):?>
  140. <li>
  141. <a href="<?=Url::toRoute(['building/detail','id'=>$building['id']]);?>">
  142. <?php if(!empty($building['image'])):?>
  143. <?php $images = $building['image'];?>
  144. <img src="<?=empty($images[0]['pic'])?\common\models\Building::DEFAULT_PIC:Yii::getAlias('@imgdomain').'/'.$images[0]['pic']?>"/>
  145. <?php else:?>
  146. <img src="<?=\common\models\Building::DEFAULT_PIC?>" />
  147. <?php endif;?>
  148. <div class="re-info">
  149. <h3><?= $building['name']." ".$building['layout'] ?></h3>
  150. <div>
  151. <p><i class="iconfont icon-fangzi"></i><?= $building['acreage'] ?>㎡</p>
  152. <p class="right">距离 <?= sprintf("%.1f",$building['distance']/1000) ?>km</p>
  153. </div>
  154. </div>
  155. </a>
  156. </li>
  157. <?php endforeach;?>
  158. <?php endif;?>
  159. </ul>
  160. </div>
  161. <div class="info-box">
  162. <h2><i class="iconfont icon-biaotiwenzitubiao"></i>所有评论</h2>
  163. <ul class="comment">
  164. <?php if(!empty($comments)):?>
  165. <?php foreach($comments as $comment):?>
  166. <li>
  167. <div class="name">
  168. <div class="img">
  169. <? $userInfo = isset($comment->userinfo)?$comment->userinfo:'';?>
  170. <img src="<?=empty($userInfo->portrait)?\common\models\User::DEFAULT_FACE:\common\models\UserInfo::imagesUrl($userInfo->portrait)?>" />
  171. <div class="xj">
  172. <?php $start = empty($comment->star)?'0':$comment->star?>
  173. <?php for($i=0;$i<$start;$i++):?>
  174. <i class="iconfont icon-xing1"></i>
  175. <?php endfor;?>
  176. <!-- <i class="iconfont icon-xing1"></i>-->
  177. <!-- <i class="iconfont icon-xing1"></i>-->
  178. </div>
  179. </div>
  180. <div class="details">
  181. <p><?=empty($userInfo->nickname)?'':$userInfo->nickname?><span class="right"> <?php echo \common\models\Comment::time_tran($comment->created_at); ?></span></p>
  182. <p><?=empty($comment->content)?'':$comment->content?></p>
  183. <?php if(isset($comment->reply)):?>
  184. <?php foreach($comment->reply as $reply):?>
  185. <?php
  186. $fromuser = isset($reply->fromuser)?$reply->fromuser:'';
  187. $touser = isset($reply->touser)?$reply->touser:'';
  188. if($fromuser->role==\common\models\User::USER_ROLE_COMMON){
  189. $fromname = isset($fromuser->userinfo)?$fromuser->userinfo:'';
  190. $toname = isset($touser->usercompany)?$touser->usercompany:'';?>
  191. <div class="reply" style="">
  192. <a href="#"><?=empty($fromname->nickname)?'':$fromname->nickname?></a> 回复 <a href="#"><?=empty($toname->company)?'':$toname->company?></a><?=empty($reply->content)?'':$reply->content?>
  193. <span style="float: right;"><?php echo \common\models\Comment::time_tran($reply->created_at); ?></span>
  194. </div>
  195. <?php }elseif($fromuser->role==\common\models\User::USER_ROLE_DECORATE){
  196. $fromname = isset($fromuser->usercompany)?$fromuser->usercompany:'';
  197. $toname = isset($touser->userinfo)?$touser->userinfo:'';?>
  198. <div class="reply">
  199. <a href="#"><?=empty($fromname->company)?'':$fromname->company?></a> 回复 <a href="#"><?=empty($toname->nickname)?'':$toname->nickname?></a> <?=empty($reply->content)?'':$reply->content?>
  200. <span style="float: right;"><?php echo \common\models\Comment::time_tran($reply->created_at); ?></span>
  201. </div>
  202. <?php }?>
  203. <?php endforeach;?>
  204. <?php endif?>
  205. </div>
  206. </div>
  207. </li>
  208. <?php endforeach;?>
  209. <?php endif?>
  210. <!-- <li>-->
  211. <!-- <div class="name">-->
  212. <!-- <div class="img">-->
  213. <!-- <img src="../images/touxiang.jpg" />-->
  214. <!-- <div class="xj">-->
  215. <!-- <i class="iconfont icon-xing1"></i>-->
  216. <!-- <i class="iconfont icon-xing1"></i>-->
  217. <!-- <i class="iconfont icon-xing1"></i>-->
  218. <!-- </div>-->
  219. <!-- </div>-->
  220. <!-- <div class="details">-->
  221. <!-- <p>张伟明<span class="right">28分钟前</span></p>-->
  222. <!-- <p>房子还不错,看了很喜欢</p>-->
  223. <!-- <div class="reply">-->
  224. <!-- <a href="#">万亿达装饰</a> 回复 <a href="#">张伟明</a> 谢谢,我们会做得更好欢迎下次再来。-->
  225. <!-- </div>-->
  226. <!-- </div>-->
  227. <!-- </div>-->
  228. <!-- </li>-->
  229. <!-- <li>-->
  230. <!-- <div class="name">-->
  231. <!-- <div class="img">-->
  232. <!-- <img src="../images/touxiang.jpg" />-->
  233. <!-- <div class="xj">-->
  234. <!-- <i class="iconfont icon-xing1"></i>-->
  235. <!-- <i class="iconfont icon-xing1"></i>-->
  236. <!-- <i class="iconfont icon-xing1"></i>-->
  237. <!-- </div>-->
  238. <!-- </div>-->
  239. <!-- <div class="details">-->
  240. <!-- <p>张伟明<span class="right">28分钟前</span></p>-->
  241. <!-- <p>房子还不错,看了很喜欢</p>-->
  242. <!-- </div>-->
  243. <!-- </div>-->
  244. <!-- </li>-->
  245. </ul>
  246. </div>
  247. <div class="weui-flex show-bottom">
  248. <div class="weui-flex__item left">
  249. <a href="<?=Url::toRoute(['building/evaluate','type'=>$datas->type,'id'=>$datas->id]);?>"><i class="iconfont icon-pingjia"></i>评价</a>
  250. </div>
  251. <div class="weui-flex__item right yy <?=empty($arr)?'show':'hide'?>">
  252. <a href="javascript:;" class="yy-btn"><i class="iconfont icon-xingzhuang97kaobei5"></i>预约</a>
  253. </div>
  254. <div class="weui-flex__item right qxyy <?= empty($arr)?'hide':'show'?>" style="">
  255. <a class="cancel" href="javascript:;">取消预约</a>
  256. </div>
  257. </div>
  258. </div>
  259. </div>
  260. <?= Html::jsFile('@web/js/jquery.min.js') ?>
  261. <?= Html::jsFile('@web/js/jquery-weui.min.js') ?>
  262. <?= Html::jsFile('@web/js/swiper-3.4.2.min.js') ?>
  263. <script>
  264. //banner
  265. var swiper = new Swiper('.swiper-container',{
  266. pagination : '.swiper-pagination'
  267. });
  268. var tel = '<?=empty($usertel)?'':$usertel?>';
  269. //预约弹出层
  270. $('.show-bottom .yy-btn').click(function () {
  271. if(tel=='')
  272. {
  273. window.location.href = "<?=Url::toRoute(['user/usertel','id'=>$datas->id]);?>";
  274. return false;
  275. }
  276. var time = '';
  277. $('body').append('<div class="p_bg" style="display: block;"></div><div class="date"><input class="weui-input" id="time-inline" type="text" value="" readonly><div class="title">可预约时间<span>(<?=empty($datas->opening_begin)?'':date('Y-m-d',$datas->opening_begin)?>至 <?=empty($datas->opening_end)?'':date('Y-m-d',$datas->opening_end)?>)</span></div><div id="time-container"></div><div class="date-btn"><a href="#" id="cancel" class="close-date">取消</a><a id="subscribe" href="javascript:;">马上预约</a></div></div>');
  278. $("#time-inline").datetimePicker({
  279. container: '#time-container',
  280. onChange: function (picker, values, displayValues) {
  281. // console.log(values);
  282. // time =values[0]+values[1]+values[2]+values[3]+values[4];
  283. var a = values;
  284. var a1 = a.slice(0, 3);
  285. var a2 = a.slice(3, 5);
  286. var date = a1.join("/")+' '+a2.join(":");
  287. time = (new Date(date)).getTime()/1000;//苹果不兼容
  288. }
  289. });
  290. $('.date #subscribe').click(function(){
  291. if(tel==''){
  292. window.location.href = "<?=Url::toRoute(['user/usertel','id'=>$datas->id]);?>";
  293. }else{
  294. var nowTime = <?=time()?>;
  295. var pid = <?=empty($datas->id)?'':$datas->id?>;
  296. var type = <?=empty($datas->type)?'':$datas->type?>;
  297. var begin = <?=empty($datas->opening_begin)?time():$datas->opening_begin?>;
  298. var end = <?=empty($datas->opening_end)?'':$datas->opening_end?>;
  299. // $.ajax({
  300. // url: '<?//=Url::toRoute(['building/checktime'])?>//',
  301. // type: 'POST',
  302. // dataType:"json",
  303. // data: {pid:pid,time:time, '_csrf-frontend': '<?//=Yii::$app->request->getCsrfToken();?>//'},
  304. // success: function (data) {
  305. // if(data.sign==0){
  306. // alert(data.msg);
  307. // lock = false;
  308. // return false;
  309. // }else if(data.sign==1){
  310. // lock = true;
  311. // }
  312. // }
  313. // });
  314. // console.log(time,nowTime);
  315. var lock = true;
  316. if(time<nowTime-60){
  317. $.alert('请选择当前时间后面的时间');
  318. $('.date,.p_bg').remove();
  319. return false;
  320. }
  321. if(time<begin||time>end){
  322. $.alert('请选择可预约时间内');
  323. $('.date,.p_bg').remove();
  324. return false;
  325. }
  326. if(lock){
  327. lock = false;
  328. $.ajax({
  329. url: '<?=Url::toRoute(['building/appointment'])?>',
  330. type: 'POST',
  331. dataType:"json",
  332. data: {pid:pid,type:type,time:time, '_csrf-frontend': '<?=Yii::$app->request->getCsrfToken();?>'},
  333. success: function (data) {
  334. if(data.sign==0){
  335. $('.date,.p_bg').remove();
  336. alert(data.msg);
  337. }else if(data.sign==1){
  338. <?php if($datas->type == \common\models\Building::TYPE_SITE): ?>
  339. $.confirm("预约成功,是否导航去工地", function() {
  340. //点击确认后的回调函数
  341. window.location.href = "<?=Url::toRoute(['building/buildingposition','lat'=>$datas->latitude,'lng'=>$datas->longitude,'type'=>$datas->type]);?>";
  342. }, function() {
  343. //点击取消后的回调函数
  344. });
  345. <?php else: ?>
  346. $.alert('预约成功');
  347. <?php endif; ?>
  348. $('.date,.p_bg').remove();
  349. $('.yy').addClass('hide');
  350. $('.qxyy').removeClass('hide');
  351. }
  352. }
  353. });
  354. }
  355. }
  356. });
  357. $('.date .close-date').click(function () {
  358. $('.date,.p_bg').remove();
  359. });
  360. });
  361. $('.cancel').click(function(){
  362. $.confirm("确定取消预约吗?", function() {
  363. var pid = <?=empty($datas->id)?'':$datas->id?>;
  364. $.ajax({
  365. url: '<?=Url::toRoute(['building/cancelappointment'])?>',
  366. type: 'POST',
  367. dataType:"json",
  368. data: {pid:pid, '_csrf-frontend': '<?=Yii::$app->request->getCsrfToken();?>'},
  369. success: function (data) {
  370. if(data.sign==0){
  371. alert(data.msg);
  372. }else if(data.sign==1){
  373. $.alert('取消成功');
  374. $('.yy').removeClass('hide');
  375. $('.qxyy').addClass('hide');
  376. }
  377. }
  378. });
  379. }, function() {
  380. //点击取消后的回调函数
  381. });
  382. })
  383. </script>
  384. <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
  385. <script type="text/javascript">
  386. wx.config({
  387. debug: false,
  388. appId: '<?= $signPackage['appId']; ?>', // 必填,公众号的唯一标识
  389. timestamp:<?= $signPackage['timestamp']; ?>, // 必填,生成签名的
  390. nonceStr: '<?= $signPackage['nonceStr']; ?>', // 必填,生成签名的
  391. signature: '<?= $signPackage['signature'];?>',
  392. jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage']
  393. });
  394. wx.ready(function() {
  395. var link = "<?= Yii::$app->request->getHostInfo().Yii::$app->request->url."&type=1" ?>";
  396. var title = '<?=empty($datas->name)?'':$datas->name?>';
  397. var imgUrl ="<?=!empty($datas->all->pic)?Yii::getAlias('@imgdomain').$datas->all->pic:""?>";
  398. wx.onMenuShareTimeline({
  399. title: title, // 分享标题
  400. link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  401. imgUrl: imgUrl, // 分享图标
  402. success: function () {
  403. }
  404. });
  405. wx.onMenuShareAppMessage({
  406. title: title, // 分享标题
  407. desc: title, // 分享描述
  408. link:link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  409. imgUrl: imgUrl, // 分享图标
  410. success: function () {
  411. // 用户确认分享后执行的回调函数
  412. }
  413. });
  414. });
  415. </script>
  416. <style>
  417. .show-box .banner .back{
  418. width: 2rem;
  419. height: 2rem;
  420. position: absolute;
  421. left: 1rem;
  422. top: 1rem;
  423. z-index: 99999;
  424. }
  425. .show-box .banner .back a{
  426. display: block;
  427. }
  428. .show-box .banner .back a img{
  429. width: 100%;
  430. height: 100%;
  431. vertical-align: top;
  432. }
  433. </style>
  434. </body>
  435. </html>