Initial commit,修正

This commit is contained in:
2025-07-13 19:37:38 +08:00
parent 38ce288e27
commit 65bbd06981
12384 changed files with 3985464 additions and 8 deletions
+43
View File
@@ -0,0 +1,43 @@
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
use yii\bootstrap\Alert;
/* @var $this yii\web\View */
/* @var $model backend\models\User */
/* @var $form yii\widgets\ActiveForm */
$params = Yii::$app->params;
?>
<div class="user-form">
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'username')->textInput(['maxlength' => true]) ?>
<?php
if( Yii::$app->getSession()->hasFlash('error') ) {
echo Alert::widget([
'options' => [
'class' => 'alert alert-danger',
],
'body' => Yii::$app->getSession()->getFlash('error'),
]);
}
?>
<?= $form->field($model, 'avatar')->textInput(['value'=>'@web/img/profile_small.png'])->label('头像')?>
<?= $form->field($model, 'auth_key')->textInput(['maxlength' => true,'value'=>$params['defaultAdminPassword']]) ?>
<?= $form->field($model, 'email')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'mobile')->textInput(['label' => '']) ?>
<?= $form->field($model1, 'name' )->dropDownList($item)->label(Yii::t('common' ,'Role'))?>
<div class="form-group">
<?= Html::submitButton($model->isNewRecord ? '新增' : '更新', ['class' => $model->isNewRecord ? 'btn btn-primary' : 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
+27
View File
@@ -0,0 +1,27 @@
<?php
use yii\helpers\Html;
/* @var $this yii\web\View */
/* @var $model backend\models\User */
$this->title = '新增用户';
$this->params['breadcrumbs'][] = ['label' => 'Users', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content">
<div class="user-create">
<div class="ibox-content">
<h1><?= Html::encode($this->title) ?></h1>
<hr/>
<?= $this->render('_form', [
'model' => $model,
'model1' => $model1,
'item' => $item,
]) ?>
</div>
</div>
</div>
+37
View File
@@ -0,0 +1,37 @@
<?php
use yii\helpers\Html;
use yii\grid\GridView;
/* @var $this yii\web\View */
/* @var $dataProvider yii\data\ActiveDataProvider */
$this->title = 'Users';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="user-index">
<h1><?= Html::encode($this->title) ?></h1>
<p>
<?= Html::a('Create User', ['create'], ['class' => 'btn btn-success']) ?>
</p>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
'username',
'auth_key',
'password_hash',
'password_reset_token',
// 'email:email',
// 'role',
// 'status',
// 'created_at',
// 'updated_at',
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
</div>
+75
View File
@@ -0,0 +1,75 @@
<?php
/* @var $this yii\web\View */
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\helpers\Url;
use yii\widgets\LinkPager;
$this->title = '运维人员列表';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-content">
<h1><?= Html::encode($this->title) ?></h1>
<div class="row">
<div class="col-sm-3">
<a class="btn btn-info btn-sm" href="<?= Url::toRoute('adminer/create')?>">新增运维</a>
</div>
<div class="col-sm-3 pull-right">
<form action="<?=Url::toRoute('adminer/list')?>" method="post">
<input type="hidden" name="_csrf-backend" value="<?= Yii::$app->getRequest()->getCsrfToken();?>" />
<div class="input-group">
<input type="text" placeholder="请输入用户名或工号" name="username" class="input-sm form-control"> <span class="input-group-btn">
<button type="submit" class="btn btn-sm btn-primary"> 搜索</button> </span>
</div>
</form>
</div>
</div>
<hr>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>序号</th>
<th>账号</th>
<th>邮箱</th>
<th>手机</th>
<th>用户组</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php foreach($user as $vo){?>
<tr>
<td><?=$vo['id']?></td>
<td><img src="<?=Url::to($vo['avatar'])?>" alt="" style="width:40px;height:40px;"><?=$vo['username']?></td>
<td><?=$vo['email']?></td>
<td><?=$vo['mobile']?></td>
<td><?=$vo['usergroup']['item_name']?></td>
<td><a class="btn btn-primary btn-xs" href="<?=Url::toRoute(['adminer/update','item_name'=>$vo['usergroup']['item_name'],'id'=>$vo['id']])?>"><i class="fa fa-edit"></i>编辑</a> <?php if(!in_array($vo['username'],array('fm453','admin'))):?><a href="<?=Url::toRoute(['adminer/delete','id'=>$vo['id']])?>" class="btn btn-default btn-xs"><i class="fa fa-close"></i>删除</a><?php endif;?></td>
</tr>
<?php };?>
</tbody>
</table>
<!--分页-->
<div class="f-r">
<?= LinkPager::widget([
'pagination'=>$pages,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
+44
View File
@@ -0,0 +1,44 @@
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $model backend\models\AuthItem */
$this->title = '更新用户 ';
?>
<div class="wrapper wrapper-content">
<div class="ibox-content">
<div class="row pd-10">
<h1><?= Html::encode($this->title) ?></h1>
<hr>
<div class="auth-item-form col-sm-4">
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'id')->hiddenInput()->label('')?>
<?= $form->field($model, 'username')->textInput(['readonly'=>true])->label('账号') ?>
<?= $form->field($model, 'avatar')->textInput(['placeholder'=>'@web/img/profile_small.png'])->label('头像')?>
<?= $form->field($model, 'email')->textInput(['placheholder'=>''])->label('邮箱')?>
<?= $form->field($model, 'mobile')->textInput(['placheholder'=>''])->label('手机号')?>
<?= $form->field($model, 'auth_key_new')->textInput(['value'=>''])->label('密码')?>
<?= $form->field($model, 'auth_key')->hiddenInput()->label(false)?>
<?php if($model->username =='fm453' || $model->username =='admin'):?>
<?= $form->field($model->usergroup, 'item_name' )->dropDownList($item,['disabled'=>true])->label('用户组')?>
<?php else:?>
<?= $form->field($model->usergroup, 'item_name' )->dropDownList($item)->label('用户组')?>
<?php endif;?>
<div class="form-group">
<?= Html::submitButton('保存', ['class' => 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
</div>
</div>
</div>
+44
View File
@@ -0,0 +1,44 @@
<?php
use yii\helpers\Html;
use yii\widgets\DetailView;
/* @var $this yii\web\View */
/* @var $model backend\models\User */
$this->title = $model->id;
$this->params['breadcrumbs'][] = ['label' => 'Users', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="user-view">
<h1><?= Html::encode($this->title) ?></h1>
<p>
<?= Html::a('Update', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
<?= Html::a('Delete', ['delete', 'id' => $model->id], [
'class' => 'btn btn-danger',
'data' => [
'confirm' => 'Are you sure you want to delete this item?',
'method' => 'post',
],
]) ?>
</p>
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'id',
'username',
'auth_key',
'password_hash',
'password_reset_token',
'email:email',
'role',
'status',
'created_at',
'updated_at',
],
]) ?>
</div>
+135
View File
@@ -0,0 +1,135 @@
<?php
/* @var $this yii\web\View */
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\helpers\Url;
use yii\widgets\LinkPager;
$this->title = '登陆日志';
?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-6">
<div class="ibox float-e-margins">
<div class="ibox-title">
<span class="label label-primary pull-right">历史</span>
<h5>访客</h5>
</div>
<div class="ibox-content">
<h1 class="no-margins"><?=\backend\components\Helper::getHistoryVisNum()?></h1>
<small>访客</small>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="ibox float-e-margins">
<div class="ibox-title">
<span class="label label-danger pull-right">最近一个月</span>
<h5>活跃用户</h5>
</div>
<div class="ibox-content">
<h1 class="no-margins"><?=\backend\components\Helper::getMonthHistoryVisNum()?></h1>
<small><?= date('m')?>月</small>
</div>
</div>
</div>
<div class="col-sm-12">
<div id="history"></div>
</div>
</div>
<?php if(\Yii::$app->user->can('/log/login')):?> <!--判断是否有权限,有则显示,无则隐藏-->
<div class="row">
<div class="col-md-12">
<div class="ibox-content">
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>ID</th>
<th>用户名</th>
<th>登录IP</th>
<th>登录时间</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<?php foreach($log as $vo):?>
<tr>
<td><?=$vo['id']?></td>
<td><?=$vo['username']?></td>
<td><?=$vo['ip']?></td>
<td><?= date('Y-m-d H:i:s',$vo['create_time'])?></td>
<td><?=str_replace('-','',$vo['data'])?></td>
</tr>
<?php endforeach;?>
</tbody>
</table>
<!--分页-->
<div class="f-r">
<?= LinkPager::widget([
'pagination'=>$pages,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) ?>
</div>
</div>
</div>
</div>
</div>
<?php endif;?>
</div>
<?=Html::jsFile('@web/js/plugins/Highcharts/4.1.7/js/highcharts.js')?>
<?=Html::jsFile('@web/js/plugins/Highcharts/4.1.7/js/modules/exporting.js')?>
<script type="text/javascript">
$(function () {
$('#history').highcharts({
title: {
text: '',
x: -20 //center
},
credits: { enabled:false }, //屏蔽右下角
exporting: { enabled:false }, //屏蔽右上角
subtitle: {
text: '',
x: -20
},
xAxis: {
categories: [<?=$HistoryMonthStr?>]
},
yAxis: {
title: {
text: '访客/人'
},
//min: 7.5, // 这个用来控制y轴的开始刻度(最小刻度),另外还有一个表示最大刻度的max属性
startOnTick: false, // y轴坐标是否从某一刻度开始(这个设定与标题无关)
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
valueSuffix: '人',
pointFormat: '<span style="color:{series.color}">{series.name}</span>: <b>{point.y:,.0f} 人</b><br/>',
shared: true
},
/*legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'middle',
borderWidth: 0
},*/
series: [{
name: '访客数',
data: [<?=$HistoryMonthNum?>]
}]
});
});
</script>
+33
View File
@@ -0,0 +1,33 @@
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $model backend\models\Menu */
/* @var $form yii\widgets\ActiveForm */
?>
<div class="menu-form">
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'name')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'parent' )->dropDownList($menuArr)?>
<?= $form->field($model, 'route')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'sort')->textInput()->label('排序') ?>
<?= $form->field($model, 'status')->radioList(['1'=>'显示','0'=>'隐藏'])->label('显示')?>
<?= $form->field($model, 'data')->textarea(['rows' => 6]) ?>
<div class="form-group">
<?= Html::submitButton($model->isNewRecord ? '创建' : '更新', ['class' => $model->isNewRecord ? 'btn btn-primary' : 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
+23
View File
@@ -0,0 +1,23 @@
<?php
use yii\helpers\Html;
/* @var $this yii\web\View */
/* @var $model backend\models\Menu */
$this->title = '创建菜单';
$this->params['breadcrumbs'][] = ['label' => 'Menus', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content">
<div class="ibox-content">
<h1><?= Html::encode($this->title) ?></h1>
<hr>
<?= $this->render('_form', [
'model' => $model,
'menuArr' => $menuArr,
]) ?>
</div>
</div>
+85
View File
@@ -0,0 +1,85 @@
<?php
use yii\helpers\Html;
use yii\grid\GridView;
use yii\bootstrap\ActiveForm;
use yii\helpers\Url;
use yii\widgets\LinkPager;
$this->title = '菜单';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content">
<div class="ibox float-e-margins">
<div class="ibox-content">
<p>
<?= Html::a('创建菜单', ['create'], ['class' => 'btn btn-sm btn-primary']) ?>
</p>
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-content">
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>ID</th>
<th>名称</th>
<th>父级</th>
<th>路由</th>
<th>状态</th>
<th>排序</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php foreach($menu as $vo):?>
<tr>
<td><?=$vo['id']?></td>
<td><?=$vo['name']?></td>
<td><?=$vo['parent']?></td>
<td><?=$vo['route']?></td>
<td><?=$vo['status'] >0 ? '显示 ' : '隐藏'?></td>
<td><?=($vo['sort']==''?'未排序':$vo['sort'])?></td>
<td><a class="btn btn-primary btn-xs" href="<?=Url::toRoute(['menu/update','id'=>$vo['id']])?>"><i class="fa fa-edit"></i>编辑</a> <a class="btn btn-default btn-xs" href="<?=Url::toRoute(['menu/delete','id'=>$vo['id']])?>"><i class="fa fa-close"></i>删除</a></td>
</tr>
<?php if(!empty($vo['_child'])):?>
<?php foreach($vo['_child'] as $v):?>
<tr>
<td><?=$v['id']?></td>
<td><?=$v['name']?></td>
<td><?=$v['parent']?></td>
<td><?=$v['route']?></td>
<td><?=$v['status'] > 0 ? '显示' : '隐藏'?></td>
<td><?=($v['sort']==''?'未排序':$v['sort'])?></td>
<td><a class="btn btn-primary btn-xs" href="<?=Url::toRoute(['menu/update','id'=>$v['id']])?>"><i class="fa fa-edit"></i>编辑</a> <a class="btn btn-default btn-xs" href="<?=Url::toRoute(['menu/delete','id'=>$v['id']])?>"><i class="fa fa-close"></i>删除</a></td>
</tr>
<?php endforeach;?>
<?php endif;?>
<?php endforeach;?>
</tbody>
</table>
<!--分页-->
<!--<div class="f-r">
<?/*= LinkPager::widget([
'pagination'=>$pages,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) */?>
</div>-->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
+22
View File
@@ -0,0 +1,22 @@
<?php
use yii\helpers\Html;
/* @var $this yii\web\View */
/* @var $model backend\models\Menu */
$this->title = '更新菜单: ' . ' ' . $model->name;
$this->params['breadcrumbs'][] = ['label' => 'Menus', 'url' => ['index']];
$this->params['breadcrumbs'][] = ['label' => $model->name, 'url' => ['view', 'id' => $model->id]];
$this->params['breadcrumbs'][] = 'Update';
?>
<div class="wrapper wrapper-content ">
<div class="ibox-content">
<h1><?= Html::encode($this->title) ?></h1>
<hr>
<?= $this->render('_form', [
'model' => $model,
'menuArr' => $menuArr,
]) ?>
</div>
</div>
+40
View File
@@ -0,0 +1,40 @@
<?php
use yii\helpers\Html;
use yii\widgets\DetailView;
/* @var $this yii\web\View */
/* @var $model backend\models\Menu */
$this->title = $model->name;
$this->params['breadcrumbs'][] = ['label' => 'Menus', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content animated fadeInRight">
<h1><?= Html::encode($this->title) ?></h1>
<p>
<?= Html::a('创建', ['create'], ['class' => 'btn btn-primary']) ?>
<?= Html::a('更新', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
<?= Html::a('删除', ['delete', 'id' => $model->id], [
'class' => 'btn btn-danger',
'data' => [
'confirm' => 'Are you sure you want to delete this item?',
'method' => 'post',
],
]) ?>
</p>
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'id',
'name',
'parent',
'route',
'sort',
'data:ntext',
],
]) ?>
</div>
+25
View File
@@ -0,0 +1,25 @@
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $model backend\models\AuthItemChild */
/* @var $form yii\widgets\ActiveForm */
?>
<div class="auth-item-child-form">
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'parent')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'child')->textInput(['maxlength' => true]) ?>
<div class="form-group">
<?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
+21
View File
@@ -0,0 +1,21 @@
<?php
use yii\helpers\Html;
/* @var $this yii\web\View */
/* @var $model backend\models\AuthItemChild */
$this->title = 'Create Auth Item Child';
$this->params['breadcrumbs'][] = ['label' => 'Auth Item Children', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="auth-item-child-create">
<h1><?= Html::encode($this->title) ?></h1>
<?= $this->render('_form', [
'model' => $model,
]) ?>
</div>
+30
View File
@@ -0,0 +1,30 @@
<?php
use yii\helpers\Html;
use yii\grid\GridView;
/* @var $this yii\web\View */
/* @var $dataProvider yii\data\ActiveDataProvider */
$this->title = 'Auth Item Children';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="auth-item-child-index">
<h1><?= Html::encode($this->title) ?></h1>
<p>
<?= Html::a('Create Auth Item Child', ['create'], ['class' => 'btn btn-success']) ?>
</p>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'parent',
'child',
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
</div>
+75
View File
@@ -0,0 +1,75 @@
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
use yii\helpers\Url;
/* @var $this yii\web\View */
/* @var $model backend\models\AuthItemChild */
$this->title = '配置权限';
$this->params['breadcrumbs'][] = ['label' => 'Auth Item Children', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content">
<div class="ibox-content">
<h1><?= Html::encode($this->title) ?></h1>
<hr>
<form action="<?=Url::toRoute(['permission/set','id'=>$id])?>" method="post">
<div class="row">
<?php foreach($menu as $vo):?>
<div class="col-sm-12 permission-block">
<div class="ibox-permission">
<h3><?= $vo->name?></h3>
<hr>
<input name="parent" type="hidden" value="<?=$id?>">
<!--<label><input type="checkbox" class="chkall" name="checkall" value="1">全选</label>&nbsp;&nbsp;-->
<?php foreach($items as $v):?>
<?php if($vo['id'] == $v->permissionName['parent']):?>
<?php if($id == '超级管理员'):?>
<label><input type="checkbox" class="chk" disabled name="permission[]" value="<?=$v->name?>"><?=($v->permissionName['name'] ==''? $v->name : $v->permissionName['name'])?></label>&nbsp;&nbsp;
<?php else:?>
<label><input type="checkbox" class="chk" name="permission[]" value="<?=$v->name?>"><?=($v->permissionName['name'] ==''? $v->name : $v->permissionName['name'])?></label>&nbsp;&nbsp;
<?php endif;?>
<?php endif;?>
<?php endforeach;?>
</div>
</div>
<?php endforeach;?>
</div>
<br>
<br>
<div class="clear"></div>
<input type="submit" value="保存" class="btn btn-primary">
</form>
</div>
</div>
<script type="text/javascript">
$(document).ready(function () {
var num = 0;
var permission = <?= json_encode($Permission);?>;
$('.chk').each(function(){
var self = $(this);
var selfVal = self.val();
$.each(permission, function(n, v){
if(v.name == selfVal){
self.attr('checked' , 'true');
num++;
};
});
});
var nums = $('.chk').size(); //全选勾中
if(nums == num){
$('.chkall').attr("checked",true);
}
$(".chkall").click(function(){
var isChecked = $(this).prop("checked");
$("input[name='permission[]']").prop("checked", isChecked);
});
});
</script>
+21
View File
@@ -0,0 +1,21 @@
<?php
use yii\helpers\Html;
/* @var $this yii\web\View */
/* @var $model backend\models\AuthItemChild */
$this->title = 'Update Auth Item Child: ' . ' ' . $model->parent;
$this->params['breadcrumbs'][] = ['label' => 'Auth Item Children', 'url' => ['index']];
$this->params['breadcrumbs'][] = ['label' => $model->parent, 'url' => ['view', 'parent' => $model->parent, 'child' => $model->child]];
$this->params['breadcrumbs'][] = 'Update';
?>
<div class="auth-item-child-update">
<h1><?= Html::encode($this->title) ?></h1>
<?= $this->render('_form', [
'model' => $model,
]) ?>
</div>
+36
View File
@@ -0,0 +1,36 @@
<?php
use yii\helpers\Html;
use yii\widgets\DetailView;
/* @var $this yii\web\View */
/* @var $model backend\models\AuthItemChild */
$this->title = $model->parent;
$this->params['breadcrumbs'][] = ['label' => 'Auth Item Children', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="auth-item-child-view">
<h1><?= Html::encode($this->title) ?></h1>
<p>
<?= Html::a('Update', ['update', 'parent' => $model->parent, 'child' => $model->child], ['class' => 'btn btn-primary']) ?>
<?= Html::a('Delete', ['delete', 'parent' => $model->parent, 'child' => $model->child], [
'class' => 'btn btn-danger',
'data' => [
'confirm' => 'Are you sure you want to delete this item?',
'method' => 'post',
],
]) ?>
</p>
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'parent',
'child',
],
]) ?>
</div>
+41
View File
@@ -0,0 +1,41 @@
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
use yii\bootstrap\Alert;
/* @var $this yii\web\View */
/* @var $model backend\models\User */
/* @var $form yii\widgets\ActiveForm */
$params = Yii::$app->params;
?>
<div class="user-form">
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'username')->textInput(['maxlength' => true]) ?>
<?php
if( Yii::$app->getSession()->hasFlash('error') ) {
echo Alert::widget([
'options' => [
'class' => 'alert alert-danger',
],
'body' => Yii::$app->getSession()->getFlash('error'),
]);
}
?>
<?= $form->field($model, 'avatar')->textInput(['value'=>'@web/img/profile_small.png'])->label('头像')?>
<?= $form->field($model, 'auth_key')->textInput(['maxlength' => true,'value'=>$params['defaultAdminPassword']]) ?>
<?= $form->field($model, 'email')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'mobile')->textInput(['label' => '']) ?>
<div class="form-group">
<?= Html::submitButton($model->isNewRecord ? '新增' : '更新', ['class' => $model->isNewRecord ? 'btn btn-primary' : 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
+25
View File
@@ -0,0 +1,25 @@
<?php
use yii\helpers\Html;
/* @var $this yii\web\View */
/* @var $model backend\models\User */
$this->title = '新增用户';
$this->params['breadcrumbs'][] = ['label' => 'Users', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content">
<div class="user-create">
<div class="ibox-content">
<h1><?= Html::encode($this->title) ?></h1>
<hr/>
<?= $this->render('_form', [
'model' => $model,
]) ?>
</div>
</div>
</div>
+38
View File
@@ -0,0 +1,38 @@
<?php
use yii\helpers\Html;
use yii\grid\GridView;
/* @var $this yii\web\View */
/* @var $dataProvider yii\data\ActiveDataProvider */
$this->title = 'Users';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="user-index">
<h1><?= Html::encode($this->title) ?></h1>
<p>
<?= Html::a('Create User', ['create'], ['class' => 'btn btn-success']) ?>
</p>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
'username',
'auth_key',
'password_hash',
'password_reset_token',
// 'email:email',
// 'role',
// 'status',
// 'created_at',
// 'updated_at',
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
</div>
+80
View File
@@ -0,0 +1,80 @@
<?php
/* @var $this yii\web\View */
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\helpers\Url;
use yii\widgets\LinkPager;
$this->title = '用户列表';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-content">
<h1><?= Html::encode($this->title) ?></h1>
<div class="row">
<div class="col-sm-3">
<a class="btn btn-info btn-sm" href="<?= Url::toRoute('user/create')?>">新增用户</a>
</div>
<div class="col-sm-3 pull-right">
<form action="<?=Url::toRoute('user/list')?>" method="post">
<input type="hidden" name="_csrf-backend" value="<?= Yii::$app->getRequest()->getCsrfToken();?>" />
<div class="input-group">
<input type="text" placeholder="请输入用户名" name="username" class="input-sm form-control"> <span class="input-group-btn">
</div>
<div class="input-group">
<input type="text" placeholder="请输入手机号" name="mobile" class="input-sm form-control"> <span class="input-group-btn">
<button type="submit" class="btn btn-sm btn-primary"> 搜索</button> </span>
</div>
</form>
</div>
</div>
<hr>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>序号</th>
<th>账号</th>
<th>联系方式</th>
<th>站点</th>
<th>授权信息</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php foreach($user as $vo):?>
<tr>
<td><?=$vo['id']?></td>
<td><img src="<?=Url::to($vo['avatar'])?>" alt="" style="width:40px;height:40px;"><?=$vo['username']?></td>
<td><?=$vo['mobile']?><br><?=$vo['email']?></td>
<td></td>
<td></td>
<td><?=$vo['status']?></td>
<td><a class="btn btn-primary btn-xs" href="<?=Url::toRoute(['user/update','item_name'=>$vo['usergroup']['item_name'],'id'=>$vo['id']])?>"><i class="fa fa-edit"></i>编辑</a> <?php if(!in_array($vo['username'],array('publicapi','test'))):?><a href="<?=Url::toRoute(['user/delete','id'=>$vo['id']])?>" class="btn btn-default btn-xs"><i class="fa fa-close"></i>删除</a><?php endif;?></td>
</tr>
<?php endforeach;?>
</tbody>
</table>
<!--分页-->
<div class="f-r">
<?= LinkPager::widget([
'pagination'=>$pages,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
+41
View File
@@ -0,0 +1,41 @@
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $model backend\models\AuthItem */
$this->title = '更新用户 ';
?>
<div class="wrapper wrapper-content">
<div class="ibox-content">
<div class="row pd-10">
<h1><?= Html::encode($this->title) ?></h1>
<hr>
<div class="auth-item-form col-sm-4">
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'id')->hiddenInput()->label('')?>
<?= $form->field($model, 'username')->textInput(['readonly'=>true])->label('账号') ?>
<?= $form->field($model, 'avatar')->textInput(['placeholder'=>'@web/img/profile_small.png'])->label('头像')?>
<?= $form->field($model, 'email')->textInput(['placheholder'=>''])->label('邮箱')?>
<?= $form->field($model, 'mobile')->textInput(['placheholder'=>''])->label('手机号')?>
<?= $form->field($model, 'auth_key_new')->textInput(['value'=>''])->label('密码')?>
<?= $form->field($model, 'auth_key')->hiddenInput()->label(false)?>
<?= $form->field($model, 'status')->textInput(['placheholder'=>''])->label('状态码(0~10)')?>
<div class="form-group">
<?= Html::submitButton('保存', ['class' => 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
</div>
</div>
</div>
+44
View File
@@ -0,0 +1,44 @@
<?php
use yii\helpers\Html;
use yii\widgets\DetailView;
/* @var $this yii\web\View */
/* @var $model backend\models\User */
$this->title = $model->id;
$this->params['breadcrumbs'][] = ['label' => 'Users', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="user-view">
<h1><?= Html::encode($this->title) ?></h1>
<p>
<?= Html::a('Update', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
<?= Html::a('Delete', ['delete', 'id' => $model->id], [
'class' => 'btn btn-danger',
'data' => [
'confirm' => 'Are you sure you want to delete this item?',
'method' => 'post',
],
]) ?>
</p>
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'id',
'username',
'auth_key',
'password_hash',
'password_reset_token',
'email:email',
'role',
'status',
'created_at',
'updated_at',
],
]) ?>
</div>
+82
View File
@@ -0,0 +1,82 @@
<?php
use yii\helpers\Html;
use yii\helpers\Url;
use yii\bootstrap\ActiveForm;
use yii\widgets\LinkPager;
$this->title = '城市列表';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-xs-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>搜索</h5>
</div>
<div class="ibox-content">
<div class="row">
<div class="table-responsive">
<form class="form-search" method="get" action="<?=Url::toRoute('city/select')?>" role="form">
<input type="hidden" name="_csrf-backend" value="<?= Yii::$app->getRequest()->getCsrfToken();?>" />
<div class="form-group draggable">
<div class="col-sm-5">
<div class="input-group">
<input type="text" class="form-control" name="title" value="<?=isset($search['title']) ? $search['title']:''?>" placeholder="输入城市名称;支持模糊检索" autocomplete="off">
<span class="input-group-btn"> <button type="button" class="btn btn-primary">搜索
</button> </span>
<span class="hidden input-group-btn"> <a class="btn btn-info" href="<?=Url::toRoute('city/new')?>" target="_blank">去新增一个
</a> </span>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h1><?= Html::encode($this->title) ?></h1>
</div>
<div class="ibox-content">
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>ID</th>
<th>城市</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php foreach($citys as $vo):?>
<tr>
<td><?=$vo['id']?></td>
<td><?=$vo['name']?></td>
<td>
<a onclick="parent.selectCity('<?=$vo['name']?>','<?=$vo['id']?>','<?=$callback?>');" href="javascript:void(0);" class="btn btn-xs btn-info">选择</a>
</td>
</tr>
<?php endforeach;?>
</tbody>
</table>
<!--分页-->
<div class="f-r">
<?= LinkPager::widget([
'pagination'=>$pager,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
+309
View File
@@ -0,0 +1,309 @@
<?php
/**
* @Author: fm453
* @Date: 2018-11-23 12:17:02
* @Last Modified by: fm453
* @Last Modified time: 2019-01-08 12:12:22
* @Email: fm453@lukegzs.com
*/
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\helpers\Url;
use yii\widgets\LinkPager;
$this->title = '客户列表';
$this->params['breadcrumbs'][] = $this->title;
?>
<!--日期时间选择器-->
<?=Html::jsFile('@web/js/plugins/layer/laydate/laydate.js')?>
<?=Html::cssFile('@web/js/plugins/layer/laydate/need/laydate.css')?>
<?=Html::cssFile('@web/js/plugins/layer/laydate/skins/molv/laydate.css')?>
<style>
.laydate_body .laydate_top{
padding:0;
}
.laydate_body .laydate_ym{
/*margin:0;
padding:5px;*/
}
.laydate_body .laydate_table{
border:0;
border-bottom: 1px solid rgb(204, 204, 204);
}
.laydate_body .laydate_bottom {
border: 0;
margin-bottom: 10px;
}
</style>
<!--滑块选择器-->
<?=Html::cssFile('@web/css/plugins/ionRangeSlider/ion.rangeSlider.css')?>
<?=Html::cssFile('@web/css/plugins/ionRangeSlider/ion.rangeSlider.skinFlat.css')?>
<?=Html::jsFile('@web/js/plugins/ionRangeSlider/ion.rangeSlider.min.js')?>
<!--下拉选择、选项框-->
<?=Html::cssFile('@web/css/plugins/chosen/chosen.css')?>
<?=Html::jsFile('@web/js/plugins/chosen/chosen.jquery.js')?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-content" style="text-align: center;">
<h1>搜索与筛选</h1>
<form role="form" class="form-horizontal m-t" action="<?=Url::toRoute('guest/list')?>" method="post">
<input type="hidden" name="_csrf-backend" value="<?= Yii::$app->getRequest()->getCsrfToken();?>" />
<div class="form-group">
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">姓名</button>
</span>
<input class="input-sm form-control" type="text" placeholder="请输入客户姓名" name="search[title]" value="<?=$search['title']?>">
</div>
</div>
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">昵称</button>
</span>
<input class="input-sm form-control" type="text" placeholder="请输入客户昵称" name="search[nickname]" value="<?=isset($search['nickname'])?$search['nickname']:''?>">
</div>
</div>
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">手机号搜索</button>
</span>
<input class="input-sm form-control" type="text" placeholder="请输入客户手机号" name="search[phone]" value="<?=isset($search['phone'])?$search['phone']:''?>">
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">入住月份</button>
</span>
<input class="input-sm form-control layer-date" type="text" name="search[checkin_m]" placeholder="请选择月份" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM'})" value="<?=isset($search['checkin_m'])?$search['checkin_m']:''?>">
</div>
</div>
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">入住时间不早于</button>
</span>
<input class="input-sm form-control layer-date" type="text" name="search[checkin_after]" placeholder="请选择日期" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($search['checkin_after'])?$search['checkin_after']:''?>">
</div>
</div>
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">入住时间不晚于</button>
</span>
<input class="input-sm form-control layer-date" type="text" name="search[checkin_before]" placeholder="请选择日期" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($search['checkin_before'])?$search['checkin_before']:''?>">
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">生日月份</button>
</span>
<input class="input-sm form-control layer-date" type="text" name="search[birthday_m]" placeholder="请选择月份" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM'})" value="<?=isset($search['birthday_m'])?$search['birthday_m']:''?>">
</div>
</div>
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">生日不早于</button>
</span>
<input class="input-sm form-control layer-date" type="text" name="search[birthday_after]" placeholder="请选择日期" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($search['birthday_after'])?$search['birthday_after']:''?>">
</div>
</div>
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">生日不晚于</button>
</span>
<input class="input-sm form-control layer-date" type="text" name="search[birthday_before]" placeholder="请选择日期" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($search['birthday_before'])?$search['birthday_before']:''?>">
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-4">
<select data-placeholder="选择来源渠道..." class="select-sm form-control chosen-select" tabindex="2" name="search[channel]">
<option value="">选择来源渠道</option>
<?php foreach(Yii::$app->params['saleChannels'] as $key=>$val){?>
<option value="<?=$key?>" hassubinfo="true" <?=isset($search['channel']) && $search['channel']==$key ? 'selected':'';?>><?=$val?></option>
<?php }?>
</select>
</div>
<div class="col-sm-4">
<div class="input-group">
<input type="text" class="form-control" name="hotel_title" id="hotel-title" value="<?=isset($search['hotel_title'])?$search['hotel_title']:'';?>" placeholder="点击选择关联酒店" autocomplete="off" href="<?=Url::toRoute(['hotel/select','callback'=>'hotel']);?>" w="80%;" h="90%;" title="选择所在关联酒店" mini="load">
<input type="hidden" class="form-control" name="search[hotel]" id="hotel-value" value="<?=isset($search['hotel'])?$search['hotel']:0;?>">
<span class="input-group-btn">
<button type="button" class="btn btn-info" onclick="clearHotel('hotel')">清除选择</button>
</span>
</div>
</div>
<script>
function selectHotel(title,id,callback)
{
layer.closeAll();
layer.msg('已选择');
$('#'+callback+'-value').val(id);
$('#'+callback+'-title').val(title);
}
function clearHotel(id)
{
$('#'+id+'-value').val('');
$('#'+id+'-title').val('');
}
</script>
<div class="col-sm-4">
<div class="input-group">
<input type="text" class="form-control" name="employee_title" id="employee-title" value="<?=isset($search['employee_title'])?$search['employee_title']:'';?>" placeholder="点击选择该客户的介绍人" autocomplete="off" href="<?=Url::toRoute(['employee/select','callback'=>'employee']);?>" w="80%;" h="90%;" title="选择该客户的介绍人" mini="load">
<input type="hidden" class="form-control" name="search[employee]" id="employee-value" value="<?=isset($search['employee'])?$search['employee']:0;?>">
<span class="input-group-btn">
<button type="button" class="btn btn-info" onclick="clearEmployee('employee')">清除选择</button>
</span>
</div>
</div>
<script>
function selectEmployee(title,id,callback)
{
layer.closeAll();
layer.msg('已选择');
$('#'+callback+'-value').val(id);
$('#'+callback+'-title').val(title);
}
function clearEmployee(id)
{
$('#'+id+'-value').val('');
$('#'+id+'-title').val('');
}
</script>
</div>
<div class="form-group">
<div class="col-sm-12">
<button type="submit" class="btn btn-sm btn-warning"> 搜索</button>
<a class="btn btn-info btn-sm" href="<?= Url::toRoute('guest/new')?>">新增客户</a>
</div>
</div>
</form>
</div>
<!--分页-->
<div class="ibox-content" style="padding:0;text-align: center;">
<div class="f-r">
<?= LinkPager::widget([
'pagination'=>$pager,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) ?>
</div>
</div>
<div class="ibox-title"><?= Html::encode($this->title) ?></div>
<div class="ibox-content">
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>序号</th>
<th>酒店及业务员</th>
<th>姓名</th>
<th>联系方式</th>
<th>消费信息</th>
<th>备忘</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php foreach($guests as $vo):?>
<tr>
<td><?=$vo['id']?></td>
<td>
【来源酒店】<code><?=isset($hotels[$vo['hotel_id']]['title'])?$hotels[$vo['hotel_id']]['title']:'未设置'?></code><br>
【来源渠道】<code><?=isset(Yii::$app->params['saleChannels'][$vo['channel']]) ? Yii::$app->params['saleChannels'][$vo['channel']]:'未设置'?></code><br>
【业务员】<code><?=isset($employees[$vo['employee_id']]['name'])?$employees[$vo['employee_id']]['name']:'未关联'?></code>
</td>
<td>
<kbd>姓名</kbd><?=$vo['name']?><code>【<?=$gender[$vo['gender']]?>】</code><br>
<kbd>昵称</kbd><?=$exts[$vo['mid']]['nickname']?><br>
<kbd>称谓</kbd><?=$exts[$vo['mid']]['title']?>
</td>
<td>
【手机】<?=isset($vo['mobile']) ? $vo['mobile']:''?><br>
【常在省份】<?=isset($vo['province']) ? (isset(Yii::$app->params['regionAreas'][$vo['province']])?Yii::$app->params['regionAreas'][$vo['province']]:'') : ''?>
</td>
<td>
【上次入住时间】<?=isset($vo['last_checkin']) && $vo['last_checkin']>0 ? date('Y-m-d',$vo['last_checkin']) : '未记录'?><br>
【预存余额】<?=isset($vo['money']) ? $vo['money'] : 0?><br>
【积分】<?=isset($vo['jifen']) ? $vo['jifen'] : 0?><br>
</td>
<td>
【上次联系时间】<?=isset($vo['last_contact']) && $vo['last_contact']>0 ? date('Y-m-d',$vo['last_contact']) : '未记录'?><br>
【生日】<?=isset($exts[$vo['mid']]['birthday'])? $exts[$vo['mid']]['birthday'] : '未记录'?><br>
【评分】<?=isset($vo['score']) ? $vo['score'].'分': ''?><br>
</td>
<td>
<?php if($vo['status_code']==1){?>
<a class="btn btn-info btn-xs" href="<?=Url::toRoute(['guest/ajax','id'=>$vo['id'],'do'=>'hide'])?>" mini="ajax"><?=$status[$vo['status_code']]?></a>
<?php }else{?>
<a class="btn btn-default btn-xs" href="<?=Url::toRoute(['guest/ajax','id'=>$vo['id'],'do'=>'show'])?>" mini="ajax"><?=$status[$vo['status_code']]?></a>
<?php }?>
</td>
<td>
<p>
<a class="btn btn-primary btn-xs" href="<?=Url::toRoute(['guest/edit','id'=>$vo['id']])?>"><i class="fa fa-edit"></i>编辑</a>
<a title="点击将删除" href="<?=Url::toRoute(['guest/delete','id'=>$vo['id']])?>" class="btn btn-xs btn-danger" mini="act"><i class="fa fa-trash bigger-120"></i>删除</a>
</p>
<p>
<a class="btn btn-success btn-xs" href="<?=Url::toRoute(['guest/ajax','id'=>$vo['id'],'do'=>'contact'])?>" mini="ajax">标记联系</a>
</p>
<p>
<a class="btn btn-primary btn-xs" href="<?=Url::toRoute(['guest/msg','id'=>$vo['id']])?>" w="80%;" h="90%;" title="短信营销" mini="load"><i class="fa fa-envelope"></i> 短信营销</a>
</p>
</td>
</tr>
<?php endforeach;?>
</tbody>
</table>
</div>
</div>
<!--分页-->
<div class="ibox-content" style="padding:0;text-align: center;">
<div class="f-r">
<?= LinkPager::widget([
'pagination'=>$pager,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) ?>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
laydate.skin('molv');
</script>
+375
View File
@@ -0,0 +1,375 @@
<?php
use yii\helpers\Html;
use yii\helpers\Url;
?>
<!--百度编辑器-->
<?=Html::jsFile('@web/plugins/ueditor/ueditor.config.js')?>
<!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
<!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->
<?=Html::jsFile('@web/plugins/ueditor/ueditor.all.min.js')?>
<?=Html::jsFile('@web/plugins/ueditor/lang/zh-cn/zh-cn.js')?>
<!--日期时间选择器-->
<?=Html::jsFile('@web/js/plugins/layer/laydate/laydate.js')?>
<?=Html::cssFile('@web/js/plugins/layer/laydate/need/laydate.css')?>
<?=Html::cssFile('@web/js/plugins/layer/laydate/skins/molv/laydate.css')?>
<!--滑块选择器-->
<?=Html::cssFile('@web/css/plugins/ionRangeSlider/ion.rangeSlider.css')?>
<?=Html::cssFile('@web/css/plugins/ionRangeSlider/ion.rangeSlider.skinFlat.css')?>
<?=Html::jsFile('@web/js/plugins/ionRangeSlider/ion.rangeSlider.min.js')?>
<!--旋扭输入-->
<?=Html::jsFile('@web/js/plugins/jsKnob/jquery.knob.js')?>
<!--下拉选择、选项框-->
<?=Html::cssFile('@web/css/plugins/chosen/chosen.css')?>
<?=Html::jsFile('@web/js/plugins/chosen/chosen.jquery.js')?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>基础资料</h5>
<div class="ibox-tools">
<a class="collapse-link">
<i class="fa fa-chevron-up"></i>
</a>
<a class="close-link">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<div class="ibox-content">
<div class="alert alert-info">
在此处录入客户的基础资料,如果是新客户,系统将自动为其新建一份档案;
</div>
<form role="form" class="form-horizontal m-t" method="post" action="<?=Url::toRoute('guest/save')?>" >
<input type="hidden" name="_csrf-backend" value="<?=Yii::$app->getRequest()->getCsrfToken();?>" />
<input type="hidden" name="id" value="<?=isset($detail['id'])?$detail['id']:0;?>">
<div class="form-group draggable">
<label class="col-sm-1 control-label"><span class="red">*</span> 姓名:</label>
<div class="col-sm-4">
<input class="form-control" type="text" name="realname" placeholder="请输入客户的姓名" autocomplete="off" value="<?=isset($detail['realname'])?$detail['realname']:'';?>">
<span class="help-block m-b-none">这里输入客户的真实姓名</span>
</div>
<label class="col-sm-1 control-label"><span class="red">*</span>主手机号:</label>
<div class="col-sm-4">
<input class="form-control" type="text" name="mobile" id="mobile" placeholder="请输入客户的手机号" autocomplete="off" value="<?=isset($detail['mobile'])?$detail['mobile']:'';?>">
<span class="help-block m-b-none">如<code>18608981880</code></span>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">昵称:</label>
<div class="col-sm-4">
<input class="form-control" type="text" name="ext[nickname]" placeholder="请输入客户的昵称" autocomplete="off" value="<?=isset($detail['nickname'])?$detail['nickname']:'';?>">
<span class="help-block m-b-none">这里输入客户的昵称,如<code>老姜</code>、<code>方少</code></span>
</div>
<label class="col-sm-1 control-label">称谓:</label>
<div class="col-sm-4">
<input class="form-control" type="text" name="ext[title]" placeholder="请输入客户的称谓" autocomplete="off" value="<?=isset($detail['title'])?$detail['title']:'';?>">
<span class="help-block m-b-none">这里输入客户的称谓,如“周老师”、“吴叔”、“刘院长”、“王教授”</span>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">密码框:</label>
<div class="col-sm-4">
<input class="form-control" type="password" name="password" id="password" readonly="readonly" placeholder="请输入密码,可用于平台后期开放的用户端登陆" autocomplete="off" value="<?=isset($detail['password'])?$detail['password']: ''?>">
<span class="help-block m-b-none">预留功能,如不填写,将默认使用初始密码<code><?=Yii::$app->params['defaultUserPassword']?></code></span>
<script>
setTimeout(function removeReadonly(){
document.getElementById("password").removeAttribute("readonly");
},500);
</script>
</div>
<label class="col-sm-1 control-label">性别:</label>
<div class="col-sm-4">
<select class="form-control" name="gender">
<option value="0" <?php if(isset($detail['gender']) && $detail['gender']==0){echo 'selected';}else{echo '';}?>>未知</option>
<option value="1" <?php if(isset($detail['gender']) && $detail['gender']==1){echo 'selected';}else{echo '';}?>>男</option>
<option value="2" <?php if(isset($detail['gender']) && $detail['gender']==2){echo 'selected';}else{echo '';}?>>女</option>
</select>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">总消费额:</label>
<div class="col-sm-2">
<div class="input-group">
<input type="text" class="form-control" name="total_fee" id="total_fee-value" placeholder="该客户的总消费金额" autocomplete="off" value="<?=isset($detail['total_fee'])?$detail['total_fee']:0;?>">
<span class="input-group-btn">
<button type="button" class="btn btn-primary">元</button>
</span>
</div>
</div>
<label class="col-sm-1 control-label">常在省份:</label>
<div class="col-sm-2">
<select data-placeholder="选择省份..." class="form-control chosen-select" tabindex="2" name="province">
<option value="">请选择省份</option>
<?php foreach(Yii::$app->params['regionAreas'] as $key=>$val){?>
<option value="<?=$key?>" hassubinfo="true" <?=isset($detail['province']) && $detail['province']==$key ? 'selected':'';?>><?=$val?></option>
<?php }?>
</select>
</div>
<label class="col-sm-1 control-label">国籍:</label>
<div class="col-sm-3">
<input type="text" class="form-control" name="country" id="country" placeholder="请输入客户国籍" autocomplete="off" value="<?=isset($detail['country'])?$detail['country']:'中国';?>">
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">身份证号:</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="idcard" id="idcard" placeholder="请输入客户身份证号" autocomplete="off" value="<?=isset($detail['idcard'])?$detail['idcard']:'';?>">
</div>
<label class="col-sm-1 control-label">护照号:</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="passport" id="passport" placeholder="请输入客户护照号" autocomplete="off" value="<?=isset($detail['passport'])?$detail['passport']:'';?>">
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">生日:</label>
<div class="col-sm-4">
<input class="form-control layer-date" type="text" name="ext[birthday]" placeholder="请选择日期" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($detail['birthday'])?$detail['birthday']:''?>">
</div>
<label class="col-sm-1 control-label">来源渠道:</label>
<div class="col-sm-4">
<select data-placeholder="选择渠道..." class="form-control chosen-select" tabindex="2" name="channel">
<option value="">请选择渠道</option>
<?php foreach(Yii::$app->params['saleChannels'] as $key=>$val){?>
<option value="<?=$key?>" hassubinfo="true" <?=isset($detail['channel']) && $detail['channel']==$key ? 'selected':'';?>><?=$val?></option>
<?php }?>
</select>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">评分:</label>
<div class="col-sm-9">
<input id="score" name="score" type="number" value="<?=isset($detail['score'])?($detail['score']>=100?100:$detail['score']):60?>">
<span class="help-block m-b-none">对客户打分,该评分仅作为内部评判客户等级、沟通便利性等参考</span>
</div>
<script>
var score = <?=isset($detail['score'])?($detail['score']>=100?100:$detail['score']):60?>;
score = score < 0 ? 0 : score;
$("#score").ionRangeSlider({
min: 0,
max: 100,
postfix: " 分",
from: score
});
</script>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">更多手机号:</label>
<div class="col-sm-9">
<input class="form-control" type="text" name="ext[mobiles]" placeholder="请输入其他手机号" autocomplete="off" value="<?=isset($detail['mobiles'])?$detail['mobiles']:'';?>">
<span class="help-block m-b-none">多个手机号时,号码间用逗号(<kbd>,</kbd> )隔开;如<code>18608981880</code><kbd>,</kbd><code>13812345678</code>。</span>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">客户照片:</label>
<div class="col-sm-9">
<div class="input-group">
<input type="text" class="form-control" name="thumb" id="thumb-value" placeholder="如有客户照片,可上传一张" autocomplete="off" value="<?=isset($detail['thumb'])?$detail['thumb']:'';?>"> <span class="input-group-btn"> <button type="button" class="btn btn-primary" data-id="thumb-value" href="<?= Url::toRoute(['upload/image','multi'=>false,'callback'=>'thumb']);?>" w="80%;" h="90%;" title="选择或上传图片" mini="load">选择图片
</button> </span>
</div>
<div class="input-group " style="margin-top:.5em;">
<img id="thumb-preview" src="<?=isset($detail['thumb'])? Url::base(true)."/../../upload".$detail['thumb']:'../img/nopic.jpg';?>" onerror="this.src='../img/nopic.jpg'; this.title='图片未找到.'" class="img-responsive img-thumbnail" width="150">
<em class="close" style="position:absolute; top: 0px; right: -14px;" title="删除这张图片" onclick="deleteImage(this)">×</em>
</div>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">关联酒店:</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="hotel_title" id="hotel-title" value="<?=isset($detail['hotel_title'])?$detail['hotel_title']:'';?>" placeholder="点击选择关联酒店" autocomplete="off" href="<?=Url::toRoute(['hotel/select','callback'=>'hotel']);?>" w="80%;" h="90%;" title="选择所在关联酒店" mini="load">
<input type="hidden" class="form-control" name="hotel" id="hotel-value" value="<?=isset($detail['hotel_id'])?$detail['hotel_id']:0;?>">
</div>
<script>
function selectHotel(title,id,callback)
{
layer.closeAll();
layer.msg('已选择');
$('#'+callback+'-value').val(id);
$('#'+callback+'-title').val(title);
}
</script>
<label class="col-sm-1 control-label">关联员工:</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="employee_title" id="employee-title" value="<?=isset($detail['employee_title'])?$detail['employee_title']:'';?>" placeholder="点击选择该客户的介绍人" autocomplete="off" href="<?=Url::toRoute(['employee/select','callback'=>'employee']);?>" w="80%;" h="90%;" title="选择该客户的介绍人" mini="load">
<input type="hidden" class="form-control" name="employee" id="employee-value" value="<?=isset($detail['employee_id'])?$detail['employee_id']:0;?>">
</div>
<script>
function selectEmployee(title,id,callback)
{
layer.closeAll();
layer.msg('已选择');
$('#'+callback+'-value').val(id);
$('#'+callback+'-title').val(title);
}
</script>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">最近入住日期:</label>
<div class="col-sm-4">
<input class="form-control layer-date" type="text" name="last_checkin" placeholder="请选择时间" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($detail['last_checkin'])?$detail['last_checkin']:''?>">
</div>
<label class="col-sm-1 control-label">上次业务联系时间:</label>
<div class="col-sm-4">
<input class="form-control layer-date" type="text" name="last_contact" placeholder="请选择时间" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($detail['last_contact'])?$detail['last_contact']:''?>">
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">是否显示:
</label>
<div class="col-sm-9">
<div class="radio radio-primary radio-inline">
<input type="radio" <?=(isset($detail['status_code'])&&$detail['status_code']==1)?'checked':'';?> value="1" id="status_code1" name="status_code">
<label for="status_code">是</label>
</div>
<div class="radio radio-primary radio-inline">
<input type="radio" <?=((!isset($detail['status_code']))||isset($detail['status_code'])&&$detail['status_code']==0)?'checked':'';?> value="0" id="status_code0" name="status_code">
<label for="status_code">否</label>
</div>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">备注:</label>
<div class="col-sm-9">
<textarea id="editor" name="editor" style="min-height:300px;"><?=isset($detail['remark'])?$detail['remark']:''?></textarea>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group draggable">
<div class="col-sm-12 col-sm-offset-3">
<button class="btn btn-primary" type="submit">保存内容</button>
<button class="btn btn-white" type="submit">取消</button>
<a class="btn btn-info" href="<?=Url::toRoute('guest/list')?>">客户列表</a>
</div>
</div>
</form>
<div class="clearfix"></div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
function showImageFrame(obj){
//取预设参数
var id,title,width,height,url;
id = $(obj).attr('data-id');
title = $(obj).attr('data-title');
width = $(obj).attr('data-width');
height = $(obj).attr('data-height');
url = $(obj).attr('data-src');
//iframe层
parent.layer.open({
type: 2,
title: title,
shadeClose: true,
shade: 0.8,
area: [width, height],
content: url //iframe的url
});
}
function deleteImage(elm){
$(elm).prev().attr("src", "../img/nopic.jpg");
$(elm).parent().prev().find("input").val("");
parent.layer.msg('图片已删除;您可重新上传');
}
function selectImage(title,path,src,callback)
{
layer.closeAll();
layer.msg('图片已选择');
$('#'+callback+'-value').val(path);
$('#'+callback+'-preview').attr('src',src);
}
</script>
<script type="text/javascript">
//实例化编辑器
//建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例
var ue = UE.getEditor('editor');
/* 传入参数表,添加到已有参数表里 */
ue.ready(function() {
ue.execCommand('serverparam', {
'siteId': "<?=Yii::$app->params['siteId']?>",
'pid': "<?=Yii::$app->session->get('pid')?>"
});
});
</script>
<script>
laydate.skin('molv');
$(document).ready(function() {
var config = {
".chosen-select": {},
".chosen-select-deselect": {
allow_single_deselect: !0
},
".chosen-select-no-single": {
disable_search_threshold: 10
},
".chosen-select-no-results": {
no_results_text: "Oops, nothing found!"
},
".chosen-select-width": {
width: "95%"
}
};
for (var selector in config) $(selector).chosen(config[selector]);
});
</script>
<style>
.laydate_body .laydate_top{
padding:0;
}
.laydate_body .laydate_ym{
/*margin:0;
padding:5px;*/
}
.laydate_body .laydate_table{
border:0;
border-bottom: 1px solid rgb(204, 204, 204);
}
.laydate_body .laydate_bottom {
border: 0;
margin-bottom: 10px;
}
</style>
<style>
.chosen-container-single .chosen-single{
line-height:30px;
}
</style>
+108
View File
@@ -0,0 +1,108 @@
<?php
/**
* @Author: fm453
* @Date: 2018-11-23 12:17:02
* @Last Modified by: fm453
* @Last Modified time: 2018-12-04 22:32:09
* @Email: fm453@lukegzs.com
*/
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\helpers\Url;
use yii\widgets\LinkPager;
$this->title = '客户列表';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-content">
<h1><?= Html::encode($this->title) ?></h1>
<div class="row">
<div class="col-sm-3">
<a class="btn btn-info btn-sm" href="<?= Url::toRoute('guest/new')?>">新增客户</a>
</div>
<div class="col-sm-3 pull-right">
<form action="<?=Url::toRoute('guest/list')?>" method="post">
<input type="hidden" name="_csrf-backend" value="<?= Yii::$app->getRequest()->getCsrfToken();?>" />
<div class="input-group">
<input class="input-sm form-control" type="text" placeholder="请输入客户姓名" name="title" value="<?=$search['title']?>">
<span class="input-group-btn">
<button type="submit" class="btn btn-sm btn-primary"> 搜索</button>
</span>
</div>
</form>
</div>
</div>
<hr>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>序号</th>
<th>门店及业务员</th>
<th>姓名</th>
<th>联系方式</th>
<th>备忘</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php foreach($guests as $vo):?>
<tr>
<td><?=$vo['id']?></td>
<td>
【网点】<code><?=isset($hotels[$vo['store_id']]['title'])?$hotels[$vo['store_id']]['title']:'未设置'?></code><br>
【业务员】<?=isset($employees[$vo['employee_id']]['name'])?$employees[$vo['employee_id']]['name']:'未关联'?>
</td>
<td>
<kbd>姓名</kbd><?=$exts[$vo['mid']]['realname']?><code>【<?=$gender[$vo['gender']]?>】</code><br>
<kbd>昵称</kbd><?=$exts[$vo['mid']]['nickname']?><br>
<kbd>称谓</kbd><?=$exts[$vo['mid']]['title']?>
</td>
<td>
【手机】<?=$users[$vo['mid']]['mobile']?><br>
【常在省份】<?=isset($vo['province']) ? (isset(Yii::$app->params['regionAreas'][$vo['province']])?Yii::$app->params['regionAreas'][$vo['province']]:'') : ''?>
</td>
<td>
【上次发车时间】<?=isset($vo['last_send']) && $vo['last_send']>0 ? date('Y-m-d',$vo['last_send']) : '未记录'?><br>
【上次联系时间】<?=isset($vo['last_contact']) && $vo['last_contact']>0 ? date('Y-m-d',$vo['last_contact']) : '未记录'?><br>
【评分|星级】<?=isset($vo['score']) ? $vo['score'].'分': ''?><?=isset($vo['level']) ? $vo['level'].'级': ''?><br>
</td>
<td>
<?php if($vo['status_code']==1){?>
<a class="btn btn-info btn-xs" href="<?=Url::toRoute(['carowner/ajax','id'=>$vo['id'],'do'=>'out'])?>" mini="ajax"><?=$status[$vo['status_code']]?></a>
<?php }else{?>
<a class="btn btn-default btn-xs" href="<?=Url::toRoute(['carowner/ajax','id'=>$vo['id'],'do'=>'in'])?>" mini="ajax"><?=$status[$vo['status_code']]?></a>
<?php }?>
</td>
<td>
<a class="btn btn-primary btn-xs" onclick="parent.selectCarOwner('<?=$vo['realname']?>','<?=$vo['id']?>','<?=$callback?>');">选择</a>
</td>
</tr>
<?php endforeach;?>
</tbody>
</table>
<!--分页-->
<div class="f-r">
<?= LinkPager::widget([
'pagination'=>$pager,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
+95
View File
@@ -0,0 +1,95 @@
<?php
/**
* @Author: fm453
* @Date: 2018-11-23 12:17:02
* @Last Modified by: fm453
* @Last Modified time: 2018-12-02 12:49:11
* @Email: fm453@lukegzs.com
*/
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\helpers\Url;
use yii\widgets\LinkPager;
$this->title = '员工列表';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-content">
<h1><?= Html::encode($this->title) ?></h1>
<div class="row">
<div class="col-sm-3">
<a class="btn btn-info btn-sm" href="<?= Url::toRoute('employee/new')?>">新增员工</a>
</div>
<div class="col-sm-3 pull-right">
<form action="<?=Url::toRoute('employee/list')?>" method="post">
<input type="hidden" name="_csrf-backend" value="<?= Yii::$app->getRequest()->getCsrfToken();?>" />
<div class="input-group">
<input class="input-sm form-control" type="text" placeholder="请输入员工姓名" name="title" value="<?=$search['title']?>">
<span class="input-group-btn">
<button type="submit" class="btn btn-sm btn-primary"> 搜索</button>
</span>
</div>
</form>
</div>
</div>
<hr>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>序号</th>
<th>网点门店</th>
<th>姓名</th>
<th>手机</th>
<th>性别</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php foreach($employees as $vo):?>
<tr>
<td><?=$vo['id']?></td>
<td>【<code><?=isset($stores[$vo['store_id']]['title'])?$stores[$vo['store_id']]['title']:'未设置'?></code>】</td>
<td><?=$vo['name']?></td>
<td><?=$vo['mobile']?></td>
<td><?=$gender[$vo['gender']]?></td>
<td>
<?php if($vo['status']==1){?>
<a class="btn btn-info btn-xs" href="<?=Url::toRoute(['employee/ajax','id'=>$vo['id'],'do'=>'out'])?>" mini="ajax"><?=$status[$vo['status']]?></a>
<?php }else{?>
<a class="btn btn-default btn-xs" href="<?=Url::toRoute(['employee/ajax','id'=>$vo['id'],'do'=>'in'])?>" mini="ajax"><?=$status[$vo['status']]?></a>
<?php }?>
</td>
<td>
<a class="btn btn-primary btn-xs" href="<?=Url::toRoute(['employee/edit','id'=>$vo['id']])?>"><i class="fa fa-edit"></i>编辑</a>
<a title="点击将删除" href="<?=Url::toRoute(['employee/delete','id'=>$vo['id']])?>" class="btn btn-xs btn-danger" mini="act"><i class="fa fa-trash bigger-120"></i>删除</a>
</td>
</tr>
<?php endforeach;?>
</tbody>
</table>
<!--分页-->
<div class="f-r">
<?= LinkPager::widget([
'pagination'=>$pager,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
+169
View File
@@ -0,0 +1,169 @@
<?php
use yii\helpers\Html;
use yii\helpers\Url;
?>
<!--百度编辑器-->
<?=Html::jsFile('@web/plugins/ueditor/ueditor.config.js')?>
<!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
<!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->
<?=Html::jsFile('@web/plugins/ueditor/ueditor.all.min.js')?>
<?=Html::jsFile('@web/plugins/ueditor/lang/zh-cn/zh-cn.js')?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>员工管理</h5>
<div class="ibox-tools">
<a class="collapse-link">
<i class="fa fa-chevron-up"></i>
</a>
<a class="close-link">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<div class="ibox-content">
<div class="alert alert-info">
此处录入各网点/门店/办事处/分公司的员工资料
</div>
<form class="form-horizontal m-t" method="post" action="<?=Url::toRoute('employee/save')?>" role="form">
<input type="hidden" name="_csrf-backend" value="<?=Yii::$app->getRequest()->getCsrfToken();?>" />
<input type="hidden" name="id" value="<?=isset($detail['id'])?$detail['id']:0;?>">
<div class="form-group draggable">
<label class="col-sm-1 control-label"><span class="red">*</span> 姓名:</label>
<div class="col-sm-2">
<input class="form-control" type="text" name="name" value="<?=isset($detail['name'])?$detail['name']:'';?>" placeholder="请输入员工姓名" autocomplete="off">
</div>
<label class="col-sm-1 control-label"><span class="red">*</span> 手机号:</label>
<div class="col-sm-2">
<input class="form-control" type="text" name="mobile" value="<?=isset($detail['mobile'])?$detail['mobile']:'';?>" placeholder="请输入手机号码" autocomplete="off">
</div>
<label class="col-sm-1 control-label"><span class="red">*</span> 性别:</label>
<div class="col-sm-2">
<select class="form-control" name="gender">
<option value="0" <?php if(isset($detail['gender']) && $detail['gender']==0){echo 'selected';}else{echo '';}?>>未知</option>
<option value="1" <?php if(isset($detail['gender']) && $detail['gender']==1){echo 'selected';}else{echo '';}?>>男</option>
<option value="2" <?php if(isset($detail['gender']) && $detail['gender']==2){echo 'selected';}else{echo '';}?>>女</option>
</select>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label"><span class="red">*</span> 对应网点:</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="store_title" id="store-title" value="<?=isset($detail['store_title'])?$detail['store_title']:'';?>" placeholder="点击选择所在网点" autocomplete="off" href="<?=Url::toRoute(['store/select','callback'=>'store']);?>" w="80%;" h="90%;" title="选择所在网点" mini="load">
<input type="hidden" class="form-control" name="store" id="store-value" value="<?=isset($detail['store_id'])?$detail['store_id']:0;?>">
</div>
<script>
function selectStore(title,id,callback)
{
layer.closeAll();
layer.msg('已选择');
$('#'+callback+'-value').val(id);
$('#'+callback+'-title').val(title);
}
</script>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">备注:</label>
<div class="col-sm-9">
<textarea id="editor" name="editor" style="min-height:300px;"><?=isset($detail['remark'])?$detail['remark']:''?></textarea>
<script type="text/javascript">
//实例化编辑器
//建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例
var ue = UE.getEditor('editor');
/* 传入参数表,添加到已有参数表里 */
ue.ready(function() {
ue.execCommand('serverparam', {
'siteId': "<?=Yii::$app->params['siteId']?>",
'pid': "<?=Yii::$app->session->get('pid')?>",
'attachSrc': "<?=Yii::$app->params['attachSrc']?>",
'attachDir': "<?=Yii::$app->params['attachDir']?>"
});
});
</script>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">是否在职:
</label>
<div class="col-sm-9">
<label class="radio-inline">
<input type="radio" <?=(isset($detail['status'])&&$detail['status']==1)?'checked':'';?> value="1" id="status1" name="status">是</label>
<label class="radio-inline">
<input type="radio" <?=((!isset($detail['status']))||isset($detail['status'])&&$detail['status']==0)?'checked':'';?> value="0" id="status2" name="status">否</label>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">是否删除:
</label>
<div class="col-sm-9">
<label class="radio-inline">
<input type="radio" <?=(isset($detail['deleted'])&&$detail['deleted']==1)?'checked':'';?> value="1" id="deleted1" name="deleted">是</label>
<label class="radio-inline">
<input type="radio" <?=((!isset($detail['deleted']))||isset($detail['deleted'])&&$detail['deleted']==0)?'checked':'';?> value="0" id="deleted2" name="deleted">否</label>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group draggable">
<div class="col-sm-12 col-sm-offset-3">
<button class="btn btn-primary" type="submit">保存</button>
<button class="btn btn-white" type="reset">清空</button>
<a class="btn btn-white" href="<?=Yii::$app->request->referrer?>">取消并返回</a>
<a class="btn btn-info" href="<?=Url::toRoute('employee/list')?>">全部员工</a>
</div>
</div>
</form>
<div class="clearfix"></div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
function showImageFrame(obj){
//取预设参数
var id,title,width,height,url;
id = $(obj).attr('data-id');
title = $(obj).attr('data-title');
width = $(obj).attr('data-width');
height = $(obj).attr('data-height');
url = $(obj).attr('data-src');
//iframe层
parent.layer.open({
type: 2,
title: title,
shadeClose: true,
shade: 0.8,
area: [width, height],
content: url //iframe的url
});
}
function deleteImage(elm){
$(elm).prev().attr("src", "../img/nopic.jpg");
$(elm).parent().prev().find("input").val("");
parent.layer.msg('图片已删除;您可重新上传');
}
function selectImage(title,path,src,callback)
{
layer.closeAll();
layer.msg('图片已选择');
$('#'+callback+'-value').val(path);
$('#'+callback+'-preview').attr('src',src);
}
</script>
+94
View File
@@ -0,0 +1,94 @@
<?php
/**
* @Author: fm453
* @Date: 2018-11-23 12:17:02
* @Last Modified by: fm453
* @Last Modified time: 2018-12-02 19:22:57
* @Email: fm453@lukegzs.com
*/
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\helpers\Url;
use yii\widgets\LinkPager;
$this->title = '员工列表';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-content">
<h1><?= Html::encode($this->title) ?></h1>
<div class="row">
<div class="col-sm-3">
<a class="btn btn-info btn-sm" href="<?= Url::toRoute('employee/new')?>">新增员工</a>
</div>
<div class="col-sm-3 pull-right">
<form action="<?=Url::toRoute('employee/list')?>" method="post">
<input type="hidden" name="_csrf-backend" value="<?= Yii::$app->getRequest()->getCsrfToken();?>" />
<div class="input-group">
<input class="input-sm form-control" type="text" placeholder="请输入员工姓名" name="title" value="<?=$search['title']?>">
<span class="input-group-btn">
<button type="submit" class="btn btn-sm btn-primary"> 搜索</button>
</span>
</div>
</form>
</div>
</div>
<hr>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>序号</th>
<th>网点门店</th>
<th>姓名</th>
<th>手机</th>
<th>性别</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php foreach($employees as $vo):?>
<tr>
<td><?=$vo['id']?></td>
<td>【<code><?=isset($stores[$vo['store_id']]['title'])?$stores[$vo['store_id']]['title']:'未设置'?></code>】</td>
<td><?=$vo['name']?></td>
<td><?=$vo['mobile']?></td>
<td><?=$gender[$vo['gender']]?></td>
<td>
<?php if($vo['status']==1){?>
<a class="btn btn-info btn-xs" href="<?=Url::toRoute(['employee/ajax','id'=>$vo['id'],'do'=>'out'])?>" mini="ajax"><?=$status[$vo['status']]?></a>
<?php }else{?>
<a class="btn btn-default btn-xs" href="<?=Url::toRoute(['employee/ajax','id'=>$vo['id'],'do'=>'in'])?>" mini="ajax"><?=$status[$vo['status']]?></a>
<?php }?>
</td>
<td>
<a class="btn btn-primary btn-xs" onclick="parent.selectEmployee('<?=$vo['name']?>','<?=$vo['id']?>','<?=$callback?>');">选择</a>
</td>
</tr>
<?php endforeach;?>
</tbody>
</table>
<!--分页-->
<div class="f-r">
<?= LinkPager::widget([
'pagination'=>$pager,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
+90
View File
@@ -0,0 +1,90 @@
<?php
# @Author: 嗨噜客科技(www.hiluker.cn) <fm453>
# @Date: 1970-01-01T08:00:00+08:00
# @Email: fm453@hiluker.com
# @Last modified by: fm453
# @Last modified time: 2021-09-15T17:45:52+08:00
use yii\helpers\Html;
use yii\helpers\Url;
$this->title = isset($title) ? $title : '提示';
?>
<div class="site-error">
<div style="text-align: center;">
<h1>温馨提示</h1><br>
</div>
<h4 style="margin: 10px auto;text-align: center;background-color: #1ab394; color: #ffffff;width: 90%;line-height: 50px;border-radius: 5px;"><i class="fa fa-spinner fa-spin"></i> 系统已记录您的操作请求,敬请稍候。为了便于工程师进行检查,烦请您对您发现的情况尽可能准确地说明告知,感谢您的反馈……</h4>
<form role="form" class="form-horizontal m-t" action="" method="post">
<input name="_csrf" type="hidden" id="_csrf" value="<?= Yii::$app->request->csrfToken ?>">
<input name="code" type="hidden" id="code" value="<?= isset($code) ? $code : 0 ?>">
<div class="form-group draggable">
<label class="col-sm-2 control-label"><i class="fa fa-spin" style="color:#f00;">*</i>出错页面:</label>
<div class="col-sm-9">
<input class="form-control" type="text" name="url" placeholder="当前报错页面的网址" autocomplete="off" value="<?= Html::encode($url) ?>">
<span class="help-block m-b-none">页面网址由系统自动获取,您也可以直接填入修改</span>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label">错误描述:</label>
<div class="col-sm-9">
<textarea class="form-control" type="text" name="desc" placeholder="请描述一下您遇到的问题,比如在什么情况下出现的,出错时您正在操作页面的什么东西,等" autocomplete="off"><?php if(isset($data['desc'])){?><?= Html::encode($data['desc']) ?><?php }?></textarea>
<span class="help-block m-b-none">您描述的越详细、清楚,越有利于工程师排查问题</span>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label">您的称谓:</label>
<div class="col-sm-9">
<input class="form-control" type="text" name="name" placeholder="怎么称呼您呢?" value="<?php if(isset($data['name'])){?><?= Html::encode($data['name']) ?><?php }?>">
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label">联系方式:</label>
<div class="col-sm-9">
<input class="form-control" type="text" name="mobile" placeholder="请输入您的手机号,以便工程师与您联系咨询" value="<?php if(isset($data['mobile'])){?><?= Html::encode($data['mobile']) ?><?php }?>">
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label">QQ:</label>
<div class="col-sm-9">
<input class="form-control" type="text" name="QQ" placeholder="请输入您的QQ号,以便工程师与您联系咨询" value="<?php if(isset($data['QQ'])){?><?= Html::encode($data['QQ']) ?><?php }?>">
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label">微信:</label>
<div class="col-sm-9">
<input class="form-control" type="text" name="wechat" placeholder="请输入您的微信号,以便工程师与您联系咨询" value="<?php if(isset($data['wechat'])){?><?= Html::encode($data['wechat']) ?><?php }?>">
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label">反馈时间:</label>
<div class="col-sm-9">
<p class="form-control-static"><?php if(isset($data['time'])){?><?= Html::encode($data['time']) ?><?php }else{echo date('Y-m-d h:i');}?></p>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label">接收通知:</label>
<div class="col-sm-9">
<label class="radio-inline">
<input type="radio" value="1" <?php if(isset($data['is_notice']) && $data['is_notice']==1){?> checked="true" <?php }?> id="optionsRadios1" name="is_notice">问题解决后,请联系我</label>
<label class="radio-inline">
<input type="radio" <?php if(isset($data['is_notice']) && $data['is_notice']==0){?> checked="true" <?php }?> value="0" id="optionsRadios2" name="is_notice">我不需要接收该报错的解决结果通知</label>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group draggable">
<div class="col-sm-12 col-sm-offset-3">
<button class="btn btn-primary" type="submit">反馈</button>
<button class="btn btn-white" type="button">取消</button>
</div>
</div>
</form>
<div class="alert alert-info alert-dismissible fade in" role="alert">
<button type="button" class="close" data-dismiss="alert">×</button>
<h4>您还可以扫描工程师客服微信直接反馈(遇忙时,工程师可能无法快速响应,请耐心等待);申请添加好友时请备注“运车系统反馈”
</h4>
<div style="text-align: center;"><img class="img-round" src="<?=Yii::getAlias('@web')?>/img/fm-qrcode.jpg" width="230px" height="230px"></div>
</div>
</div>
</div>
+309
View File
@@ -0,0 +1,309 @@
<?php
/**
* @Author: fm453
* @Date: 2018-11-23 12:17:02
* @Last Modified by: fm453
* @Last Modified time: 2019-01-08 12:12:22
* @Email: fm453@lukegzs.com
*/
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\helpers\Url;
use yii\widgets\LinkPager;
$this->title = '客户列表';
$this->params['breadcrumbs'][] = $this->title;
?>
<!--日期时间选择器-->
<?=Html::jsFile('@web/js/plugins/layer/laydate/laydate.js')?>
<?=Html::cssFile('@web/js/plugins/layer/laydate/need/laydate.css')?>
<?=Html::cssFile('@web/js/plugins/layer/laydate/skins/molv/laydate.css')?>
<style>
.laydate_body .laydate_top{
padding:0;
}
.laydate_body .laydate_ym{
/*margin:0;
padding:5px;*/
}
.laydate_body .laydate_table{
border:0;
border-bottom: 1px solid rgb(204, 204, 204);
}
.laydate_body .laydate_bottom {
border: 0;
margin-bottom: 10px;
}
</style>
<!--滑块选择器-->
<?=Html::cssFile('@web/css/plugins/ionRangeSlider/ion.rangeSlider.css')?>
<?=Html::cssFile('@web/css/plugins/ionRangeSlider/ion.rangeSlider.skinFlat.css')?>
<?=Html::jsFile('@web/js/plugins/ionRangeSlider/ion.rangeSlider.min.js')?>
<!--下拉选择、选项框-->
<?=Html::cssFile('@web/css/plugins/chosen/chosen.css')?>
<?=Html::jsFile('@web/js/plugins/chosen/chosen.jquery.js')?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-content" style="text-align: center;">
<h1>搜索与筛选</h1>
<form role="form" class="form-horizontal m-t" action="<?=Url::toRoute('guest/list')?>" method="post">
<input type="hidden" name="_csrf-backend" value="<?= Yii::$app->getRequest()->getCsrfToken();?>" />
<div class="form-group">
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">姓名</button>
</span>
<input class="input-sm form-control" type="text" placeholder="请输入客户姓名" name="search[title]" value="<?=$search['title']?>">
</div>
</div>
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">昵称</button>
</span>
<input class="input-sm form-control" type="text" placeholder="请输入客户昵称" name="search[nickname]" value="<?=isset($search['nickname'])?$search['nickname']:''?>">
</div>
</div>
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">手机号搜索</button>
</span>
<input class="input-sm form-control" type="text" placeholder="请输入客户手机号" name="search[phone]" value="<?=isset($search['phone'])?$search['phone']:''?>">
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">入住月份</button>
</span>
<input class="input-sm form-control layer-date" type="text" name="search[checkin_m]" placeholder="请选择月份" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM'})" value="<?=isset($search['checkin_m'])?$search['checkin_m']:''?>">
</div>
</div>
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">入住时间不早于</button>
</span>
<input class="input-sm form-control layer-date" type="text" name="search[checkin_after]" placeholder="请选择日期" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($search['checkin_after'])?$search['checkin_after']:''?>">
</div>
</div>
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">入住时间不晚于</button>
</span>
<input class="input-sm form-control layer-date" type="text" name="search[checkin_before]" placeholder="请选择日期" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($search['checkin_before'])?$search['checkin_before']:''?>">
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">生日月份</button>
</span>
<input class="input-sm form-control layer-date" type="text" name="search[birthday_m]" placeholder="请选择月份" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM'})" value="<?=isset($search['birthday_m'])?$search['birthday_m']:''?>">
</div>
</div>
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">生日不早于</button>
</span>
<input class="input-sm form-control layer-date" type="text" name="search[birthday_after]" placeholder="请选择日期" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($search['birthday_after'])?$search['birthday_after']:''?>">
</div>
</div>
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">生日不晚于</button>
</span>
<input class="input-sm form-control layer-date" type="text" name="search[birthday_before]" placeholder="请选择日期" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($search['birthday_before'])?$search['birthday_before']:''?>">
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-4">
<select data-placeholder="选择来源渠道..." class="select-sm form-control chosen-select" tabindex="2" name="search[channel]">
<option value="">选择来源渠道</option>
<?php foreach(Yii::$app->params['saleChannels'] as $key=>$val){?>
<option value="<?=$key?>" hassubinfo="true" <?=isset($search['channel']) && $search['channel']==$key ? 'selected':'';?>><?=$val?></option>
<?php }?>
</select>
</div>
<div class="col-sm-4">
<div class="input-group">
<input type="text" class="form-control" name="hotel_title" id="hotel-title" value="<?=isset($search['hotel_title'])?$search['hotel_title']:'';?>" placeholder="点击选择关联酒店" autocomplete="off" href="<?=Url::toRoute(['hotel/select','callback'=>'hotel']);?>" w="80%;" h="90%;" title="选择所在关联酒店" mini="load">
<input type="hidden" class="form-control" name="search[hotel]" id="hotel-value" value="<?=isset($search['hotel'])?$search['hotel']:0;?>">
<span class="input-group-btn">
<button type="button" class="btn btn-info" onclick="clearHotel('hotel')">清除选择</button>
</span>
</div>
</div>
<script>
function selectHotel(title,id,callback)
{
layer.closeAll();
layer.msg('已选择');
$('#'+callback+'-value').val(id);
$('#'+callback+'-title').val(title);
}
function clearHotel(id)
{
$('#'+id+'-value').val('');
$('#'+id+'-title').val('');
}
</script>
<div class="col-sm-4">
<div class="input-group">
<input type="text" class="form-control" name="employee_title" id="employee-title" value="<?=isset($search['employee_title'])?$search['employee_title']:'';?>" placeholder="点击选择该客户的介绍人" autocomplete="off" href="<?=Url::toRoute(['employee/select','callback'=>'employee']);?>" w="80%;" h="90%;" title="选择该客户的介绍人" mini="load">
<input type="hidden" class="form-control" name="search[employee]" id="employee-value" value="<?=isset($search['employee'])?$search['employee']:0;?>">
<span class="input-group-btn">
<button type="button" class="btn btn-info" onclick="clearEmployee('employee')">清除选择</button>
</span>
</div>
</div>
<script>
function selectEmployee(title,id,callback)
{
layer.closeAll();
layer.msg('已选择');
$('#'+callback+'-value').val(id);
$('#'+callback+'-title').val(title);
}
function clearEmployee(id)
{
$('#'+id+'-value').val('');
$('#'+id+'-title').val('');
}
</script>
</div>
<div class="form-group">
<div class="col-sm-12">
<button type="submit" class="btn btn-sm btn-warning"> 搜索</button>
<a class="btn btn-info btn-sm" href="<?= Url::toRoute('guest/new')?>">新增客户</a>
</div>
</div>
</form>
</div>
<!--分页-->
<div class="ibox-content" style="padding:0;text-align: center;">
<div class="f-r">
<?= LinkPager::widget([
'pagination'=>$pager,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) ?>
</div>
</div>
<div class="ibox-title"><?= Html::encode($this->title) ?></div>
<div class="ibox-content">
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>序号</th>
<th>酒店及业务员</th>
<th>姓名</th>
<th>联系方式</th>
<th>消费信息</th>
<th>备忘</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php foreach($guests as $vo):?>
<tr>
<td><?=$vo['id']?></td>
<td>
【来源酒店】<code><?=isset($hotels[$vo['hotel_id']]['title'])?$hotels[$vo['hotel_id']]['title']:'未设置'?></code><br>
【来源渠道】<code><?=isset(Yii::$app->params['saleChannels'][$vo['channel']]) ? Yii::$app->params['saleChannels'][$vo['channel']]:'未设置'?></code><br>
【业务员】<code><?=isset($employees[$vo['employee_id']]['name'])?$employees[$vo['employee_id']]['name']:'未关联'?></code>
</td>
<td>
<kbd>姓名</kbd><?=$vo['name']?><code>【<?=$gender[$vo['gender']]?>】</code><br>
<kbd>昵称</kbd><?=$exts[$vo['mid']]['nickname']?><br>
<kbd>称谓</kbd><?=$exts[$vo['mid']]['title']?>
</td>
<td>
【手机】<?=isset($vo['mobile']) ? $vo['mobile']:''?><br>
【常在省份】<?=isset($vo['province']) ? (isset(Yii::$app->params['regionAreas'][$vo['province']])?Yii::$app->params['regionAreas'][$vo['province']]:'') : ''?>
</td>
<td>
【上次入住时间】<?=isset($vo['last_checkin']) && $vo['last_checkin']>0 ? date('Y-m-d',$vo['last_checkin']) : '未记录'?><br>
【预存余额】<?=isset($vo['money']) ? $vo['money'] : 0?><br>
【积分】<?=isset($vo['jifen']) ? $vo['jifen'] : 0?><br>
</td>
<td>
【上次联系时间】<?=isset($vo['last_contact']) && $vo['last_contact']>0 ? date('Y-m-d',$vo['last_contact']) : '未记录'?><br>
【生日】<?=isset($exts[$vo['mid']]['birthday'])? $exts[$vo['mid']]['birthday'] : '未记录'?><br>
【评分】<?=isset($vo['score']) ? $vo['score'].'分': ''?><br>
</td>
<td>
<?php if($vo['status_code']==1){?>
<a class="btn btn-info btn-xs" href="<?=Url::toRoute(['guest/ajax','id'=>$vo['id'],'do'=>'hide'])?>" mini="ajax"><?=$status[$vo['status_code']]?></a>
<?php }else{?>
<a class="btn btn-default btn-xs" href="<?=Url::toRoute(['guest/ajax','id'=>$vo['id'],'do'=>'show'])?>" mini="ajax"><?=$status[$vo['status_code']]?></a>
<?php }?>
</td>
<td>
<p>
<a class="btn btn-primary btn-xs" href="<?=Url::toRoute(['guest/edit','id'=>$vo['id']])?>"><i class="fa fa-edit"></i>编辑</a>
<a title="点击将删除" href="<?=Url::toRoute(['guest/delete','id'=>$vo['id']])?>" class="btn btn-xs btn-danger" mini="act"><i class="fa fa-trash bigger-120"></i>删除</a>
</p>
<p>
<a class="btn btn-success btn-xs" href="<?=Url::toRoute(['guest/ajax','id'=>$vo['id'],'do'=>'contact'])?>" mini="ajax">标记联系</a>
</p>
<p>
<a class="btn btn-primary btn-xs" href="<?=Url::toRoute(['guest/msg','id'=>$vo['id']])?>" w="80%;" h="90%;" title="短信营销" mini="load"><i class="fa fa-envelope"></i> 短信营销</a>
</p>
</td>
</tr>
<?php endforeach;?>
</tbody>
</table>
</div>
</div>
<!--分页-->
<div class="ibox-content" style="padding:0;text-align: center;">
<div class="f-r">
<?= LinkPager::widget([
'pagination'=>$pager,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) ?>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
laydate.skin('molv');
</script>
+378
View File
@@ -0,0 +1,378 @@
<?php
use yii\helpers\Html;
use yii\helpers\Url;
?>
<!--百度编辑器-->
<?=Html::jsFile('@web/plugins/ueditor/ueditor.config.js')?>
<!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
<!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->
<?=Html::jsFile('@web/plugins/ueditor/ueditor.all.min.js')?>
<?=Html::jsFile('@web/plugins/ueditor/lang/zh-cn/zh-cn.js')?>
<!--日期时间选择器-->
<?=Html::jsFile('@web/js/plugins/layer/laydate/laydate.js')?>
<?=Html::cssFile('@web/js/plugins/layer/laydate/need/laydate.css')?>
<?=Html::cssFile('@web/js/plugins/layer/laydate/skins/molv/laydate.css')?>
<!--滑块选择器-->
<?=Html::cssFile('@web/css/plugins/ionRangeSlider/ion.rangeSlider.css')?>
<?=Html::cssFile('@web/css/plugins/ionRangeSlider/ion.rangeSlider.skinFlat.css')?>
<?=Html::jsFile('@web/js/plugins/ionRangeSlider/ion.rangeSlider.min.js')?>
<!--旋扭输入-->
<?=Html::jsFile('@web/js/plugins/jsKnob/jquery.knob.js')?>
<!--下拉选择、选项框-->
<?=Html::cssFile('@web/css/plugins/chosen/chosen.css')?>
<?=Html::jsFile('@web/js/plugins/chosen/chosen.jquery.js')?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>基础资料</h5>
<div class="ibox-tools">
<a class="collapse-link">
<i class="fa fa-chevron-up"></i>
</a>
<a class="close-link">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<div class="ibox-content">
<div class="alert alert-info">
在此处录入客户的基础资料,如果是新客户,系统将自动为其新建一份档案;
</div>
<form role="form" class="form-horizontal m-t" method="post" action="<?=Url::toRoute('guest/save')?>" >
<input type="hidden" name="_csrf-backend" value="<?=Yii::$app->getRequest()->getCsrfToken();?>" />
<input type="hidden" name="id" value="<?=isset($detail['id'])?$detail['id']:0;?>">
<div class="form-group draggable">
<label class="col-sm-1 control-label"><span class="red">*</span> 姓名:</label>
<div class="col-sm-4">
<input class="form-control" type="text" name="realname" placeholder="请输入客户的姓名" autocomplete="off" value="<?=isset($detail['realname'])?$detail['realname']:'';?>">
<span class="help-block m-b-none">这里输入客户的真实姓名</span>
</div>
<label class="col-sm-1 control-label"><span class="red">*</span>主手机号:</label>
<div class="col-sm-4">
<input class="form-control" type="text" name="mobile" id="mobile" placeholder="请输入客户的手机号" autocomplete="off" value="<?=isset($detail['mobile'])?$detail['mobile']:'';?>">
<span class="help-block m-b-none">如<code>18608981880</code></span>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">昵称:</label>
<div class="col-sm-4">
<input class="form-control" type="text" name="ext[nickname]" placeholder="请输入客户的昵称" autocomplete="off" value="<?=isset($detail['nickname'])?$detail['nickname']:'';?>">
<span class="help-block m-b-none">这里输入客户的昵称,如<code>老姜</code>、<code>方少</code></span>
</div>
<label class="col-sm-1 control-label">称谓:</label>
<div class="col-sm-4">
<input class="form-control" type="text" name="ext[title]" placeholder="请输入客户的称谓" autocomplete="off" value="<?=isset($detail['title'])?$detail['title']:'';?>">
<span class="help-block m-b-none">这里输入客户的称谓,如“周老师”、“吴叔”、“刘院长”、“王教授”</span>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">密码框:</label>
<div class="col-sm-4">
<input class="form-control" type="password" name="password" id="password" readonly="readonly" placeholder="请输入密码,可用于平台后期开放的用户端登陆" autocomplete="off" value="<?=isset($detail['password'])?$detail['password']: ''?>">
<span class="help-block m-b-none">预留功能,如不填写,将默认使用初始密码<code><?=Yii::$app->params['defaultUserPassword']?></code></span>
<script>
setTimeout(function removeReadonly(){
document.getElementById("password").removeAttribute("readonly");
},500);
</script>
</div>
<label class="col-sm-1 control-label">性别:</label>
<div class="col-sm-4">
<select class="form-control" name="gender">
<option value="0" <?php if(isset($detail['gender']) && $detail['gender']==0){echo 'selected';}else{echo '';}?>>未知</option>
<option value="1" <?php if(isset($detail['gender']) && $detail['gender']==1){echo 'selected';}else{echo '';}?>>男</option>
<option value="2" <?php if(isset($detail['gender']) && $detail['gender']==2){echo 'selected';}else{echo '';}?>>女</option>
</select>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">总消费额:</label>
<div class="col-sm-2">
<div class="input-group">
<input type="text" class="form-control" name="total_fee" id="total_fee-value" placeholder="该客户的总消费金额" autocomplete="off" value="<?=isset($detail['total_fee'])?$detail['total_fee']:0;?>">
<span class="input-group-btn">
<button type="button" class="btn btn-primary">元</button>
</span>
</div>
</div>
<label class="col-sm-1 control-label">常在省份:</label>
<div class="col-sm-2">
<select data-placeholder="选择省份..." class="form-control chosen-select" tabindex="2" name="province">
<option value="">请选择省份</option>
<?php foreach(Yii::$app->params['regionAreas'] as $key=>$val){?>
<option value="<?=$key?>" hassubinfo="true" <?=isset($detail['province']) && $detail['province']==$key ? 'selected':'';?>><?=$val?></option>
<?php }?>
</select>
</div>
<label class="col-sm-1 control-label">国籍:</label>
<div class="col-sm-3">
<input type="text" class="form-control" name="country" id="country" placeholder="请输入客户国籍" autocomplete="off" value="<?=isset($detail['country'])?$detail['country']:'中国';?>">
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">身份证号:</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="idcard" id="idcard" placeholder="请输入客户身份证号" autocomplete="off" value="<?=isset($detail['idcard'])?$detail['idcard']:'';?>">
</div>
<label class="col-sm-1 control-label">护照号:</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="passport" id="passport" placeholder="请输入客户护照号" autocomplete="off" value="<?=isset($detail['passport'])?$detail['passport']:'';?>">
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">生日:</label>
<div class="col-sm-4">
<input class="form-control layer-date" type="text" name="ext[birthday]" placeholder="请选择日期" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($detail['birthday'])?$detail['birthday']:''?>">
</div>
<label class="col-sm-1 control-label">来源渠道:</label>
<div class="col-sm-4">
<select data-placeholder="选择渠道..." class="form-control chosen-select" tabindex="2" name="channel">
<option value="">请选择渠道</option>
<?php foreach(Yii::$app->params['saleChannels'] as $key=>$val){?>
<option value="<?=$key?>" hassubinfo="true" <?=isset($detail['channel']) && $detail['channel']==$key ? 'selected':'';?>><?=$val?></option>
<?php }?>
</select>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">评分:</label>
<div class="col-sm-9">
<input id="score" name="score" type="number" value="<?=isset($detail['score'])?($detail['score']>=100?100:$detail['score']):60?>">
<span class="help-block m-b-none">对客户打分,该评分仅作为内部评判客户等级、沟通便利性等参考</span>
</div>
<script>
var score = <?=isset($detail['score'])?($detail['score']>=100?100:$detail['score']):60?>;
score = score < 0 ? 0 : score;
$("#score").ionRangeSlider({
min: 0,
max: 100,
postfix: " 分",
from: score
});
</script>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">更多手机号:</label>
<div class="col-sm-9">
<input class="form-control" type="text" name="ext[mobiles]" placeholder="请输入其他手机号" autocomplete="off" value="<?=isset($detail['mobiles'])?$detail['mobiles']:'';?>">
<span class="help-block m-b-none">多个手机号时,号码间用逗号(<kbd>,</kbd> )隔开;如<code>18608981880</code><kbd>,</kbd><code>13812345678</code>。</span>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">客户照片:</label>
<div class="col-sm-9">
<div class="input-group">
<input type="text" class="form-control" name="thumb" id="thumb-value" placeholder="如有客户照片,可上传一张" autocomplete="off" value="<?=isset($detail['thumb'])?$detail['thumb']:'';?>"> <span class="input-group-btn"> <button type="button" class="btn btn-primary" data-id="thumb-value" href="<?= Url::toRoute(['upload/image','multi'=>false,'callback'=>'thumb']);?>" w="80%;" h="90%;" title="选择或上传图片" mini="load">选择图片
</button> </span>
</div>
<div class="input-group " style="margin-top:.5em;">
<img id="thumb-preview" src="<?=isset($detail['thumb'])? Yii::$app->params['attachSrc'].Yii::$app->params['attachDir'].$detail['thumb']:'../img/nopic.jpg';?>" onerror="this.src='../img/nopic.jpg'; this.title='图片未找到.'" class="img-responsive img-thumbnail" width="150">
<em class="close" style="position:absolute; top: 0px; right: -14px;" title="删除这张图片" onclick="deleteImage(this)">×</em>
</div>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">关联酒店:</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="hotel_title" id="hotel-title" value="<?=isset($detail['hotel_title'])?$detail['hotel_title']:'';?>" placeholder="点击选择关联酒店" autocomplete="off" href="<?=Url::toRoute(['hotel/select','callback'=>'hotel']);?>" w="80%;" h="90%;" title="选择所在关联酒店" mini="load">
<input type="hidden" class="form-control" name="hotel" id="hotel-value" value="<?=isset($detail['hotel_id'])?$detail['hotel_id']:0;?>">
</div>
<script>
function selectHotel(title,id,callback)
{
layer.closeAll();
layer.msg('已选择');
$('#'+callback+'-value').val(id);
$('#'+callback+'-title').val(title);
}
</script>
<label class="col-sm-1 control-label">关联员工:</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="employee_title" id="employee-title" value="<?=isset($detail['employee_title'])?$detail['employee_title']:'';?>" placeholder="点击选择该客户的介绍人" autocomplete="off" href="<?=Url::toRoute(['employee/select','callback'=>'employee']);?>" w="80%;" h="90%;" title="选择该客户的介绍人" mini="load">
<input type="hidden" class="form-control" name="employee" id="employee-value" value="<?=isset($detail['employee_id'])?$detail['employee_id']:0;?>">
</div>
<script>
function selectEmployee(title,id,callback)
{
layer.closeAll();
layer.msg('已选择');
$('#'+callback+'-value').val(id);
$('#'+callback+'-title').val(title);
}
</script>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">最近入住日期:</label>
<div class="col-sm-4">
<input class="form-control layer-date" type="text" name="last_checkin" placeholder="请选择时间" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($detail['last_checkin'])?$detail['last_checkin']:''?>">
</div>
<label class="col-sm-1 control-label">上次业务联系时间:</label>
<div class="col-sm-4">
<input class="form-control layer-date" type="text" name="last_contact" placeholder="请选择时间" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($detail['last_contact'])?$detail['last_contact']:''?>">
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">是否显示:
</label>
<div class="col-sm-9">
<div class="radio radio-primary radio-inline">
<input type="radio" <?=(isset($detail['status_code'])&&$detail['status_code']==1)?'checked':'';?> value="1" id="status_code1" name="status_code">
<label for="status_code">是</label>
</div>
<div class="radio radio-primary radio-inline">
<input type="radio" <?=((!isset($detail['status_code']))||isset($detail['status_code'])&&$detail['status_code']==0)?'checked':'';?> value="0" id="status_code0" name="status_code">
<label for="status_code">否</label>
</div>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">备注:</label>
<div class="col-sm-9">
<textarea id="editor" name="editor" style="min-height:300px;"><?=isset($detail['remark'])?$detail['remark']:''?></textarea>
<script type="text/javascript">
//实例化编辑器
//建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例
var ue = UE.getEditor('editor');
/* 传入参数表,添加到已有参数表里 */
ue.ready(function() {
ue.execCommand('serverparam', {
'siteId': "<?=Yii::$app->params['siteId']?>",
'pid': "<?=Yii::$app->session->get('pid')?>",
'attachSrc': "<?=Yii::$app->params['attachSrc']?>",
'attachDir': "<?=Yii::$app->params['attachDir']?>"
});
});
</script>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group draggable">
<div class="col-sm-12 col-sm-offset-3">
<button class="btn btn-primary" type="submit">保存内容</button>
<button class="btn btn-white" type="reset">清空</button>
<a class="btn btn-white" href="<?=Yii::$app->request->referrer?>">取消并返回</a>
<a class="btn btn-info" href="<?=Url::toRoute('guest/list')?>">客户列表</a>
</div>
</div>
</form>
<div class="clearfix"></div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
function showImageFrame(obj){
//取预设参数
var id,title,width,height,url;
id = $(obj).attr('data-id');
title = $(obj).attr('data-title');
width = $(obj).attr('data-width');
height = $(obj).attr('data-height');
url = $(obj).attr('data-src');
//iframe层
parent.layer.open({
type: 2,
title: title,
shadeClose: true,
shade: 0.8,
area: [width, height],
content: url //iframe的url
});
}
function deleteImage(elm){
$(elm).prev().attr("src", "../img/nopic.jpg");
$(elm).parent().prev().find("input").val("");
parent.layer.msg('图片已删除;您可重新上传');
}
function selectImage(title,path,src,callback)
{
layer.closeAll();
layer.msg('图片已选择');
$('#'+callback+'-value').val(path);
$('#'+callback+'-preview').attr('src',src);
}
</script>
<script>
laydate.skin('molv');
$(document).ready(function() {
var config = {
".chosen-select": {},
".chosen-select-deselect": {
allow_single_deselect: !0
},
".chosen-select-no-single": {
disable_search_threshold: 10
},
".chosen-select-no-results": {
no_results_text: "Oops, nothing found!"
},
".chosen-select-width": {
width: "95%"
}
};
for (var selector in config) $(selector).chosen(config[selector]);
});
</script>
<style>
.laydate_body .laydate_top{
padding:0;
}
.laydate_body .laydate_ym{
/*margin:0;
padding:5px;*/
}
.laydate_body .laydate_table{
border:0;
border-bottom: 1px solid rgb(204, 204, 204);
}
.laydate_body .laydate_bottom {
border: 0;
margin-bottom: 10px;
}
</style>
<style>
.chosen-container-single .chosen-single{
line-height:30px;
}
</style>
+108
View File
@@ -0,0 +1,108 @@
<?php
/**
* @Author: fm453
* @Date: 2018-11-23 12:17:02
* @Last Modified by: fm453
* @Last Modified time: 2018-12-04 22:32:09
* @Email: fm453@lukegzs.com
*/
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\helpers\Url;
use yii\widgets\LinkPager;
$this->title = '客户列表';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-content">
<h1><?= Html::encode($this->title) ?></h1>
<div class="row">
<div class="col-sm-3">
<a class="btn btn-info btn-sm" href="<?= Url::toRoute('guest/new')?>">新增客户</a>
</div>
<div class="col-sm-3 pull-right">
<form action="<?=Url::toRoute('guest/list')?>" method="post">
<input type="hidden" name="_csrf-backend" value="<?= Yii::$app->getRequest()->getCsrfToken();?>" />
<div class="input-group">
<input class="input-sm form-control" type="text" placeholder="请输入客户姓名" name="title" value="<?=$search['title']?>">
<span class="input-group-btn">
<button type="submit" class="btn btn-sm btn-primary"> 搜索</button>
</span>
</div>
</form>
</div>
</div>
<hr>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>序号</th>
<th>门店及业务员</th>
<th>姓名</th>
<th>联系方式</th>
<th>备忘</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php foreach($guests as $vo):?>
<tr>
<td><?=$vo['id']?></td>
<td>
【网点】<code><?=isset($hotels[$vo['store_id']]['title'])?$hotels[$vo['store_id']]['title']:'未设置'?></code><br>
【业务员】<?=isset($employees[$vo['employee_id']]['name'])?$employees[$vo['employee_id']]['name']:'未关联'?>
</td>
<td>
<kbd>姓名</kbd><?=$exts[$vo['mid']]['realname']?><code>【<?=$gender[$vo['gender']]?>】</code><br>
<kbd>昵称</kbd><?=$exts[$vo['mid']]['nickname']?><br>
<kbd>称谓</kbd><?=$exts[$vo['mid']]['title']?>
</td>
<td>
【手机】<?=$users[$vo['mid']]['mobile']?><br>
【常在省份】<?=isset($vo['province']) ? (isset(Yii::$app->params['regionAreas'][$vo['province']])?Yii::$app->params['regionAreas'][$vo['province']]:'') : ''?>
</td>
<td>
【上次发车时间】<?=isset($vo['last_send']) && $vo['last_send']>0 ? date('Y-m-d',$vo['last_send']) : '未记录'?><br>
【上次联系时间】<?=isset($vo['last_contact']) && $vo['last_contact']>0 ? date('Y-m-d',$vo['last_contact']) : '未记录'?><br>
【评分|星级】<?=isset($vo['score']) ? $vo['score'].'分': ''?><?=isset($vo['level']) ? $vo['level'].'级': ''?><br>
</td>
<td>
<?php if($vo['status_code']==1){?>
<a class="btn btn-info btn-xs" href="<?=Url::toRoute(['carowner/ajax','id'=>$vo['id'],'do'=>'out'])?>" mini="ajax"><?=$status[$vo['status_code']]?></a>
<?php }else{?>
<a class="btn btn-default btn-xs" href="<?=Url::toRoute(['carowner/ajax','id'=>$vo['id'],'do'=>'in'])?>" mini="ajax"><?=$status[$vo['status_code']]?></a>
<?php }?>
</td>
<td>
<a class="btn btn-primary btn-xs" onclick="parent.selectCarOwner('<?=$vo['realname']?>','<?=$vo['id']?>','<?=$callback?>');">选择</a>
</td>
</tr>
<?php endforeach;?>
</tbody>
</table>
<!--分页-->
<div class="f-r">
<?= LinkPager::widget([
'pagination'=>$pager,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
+91
View File
@@ -0,0 +1,91 @@
<?php
/**
* @Author: fm453
* @Date: 2018-11-23 12:17:02
* @Last Modified by: fm453
* @Last Modified time: 2018-12-11 01:33:31
* @Email: fm453@lukegzs.com
*/
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\helpers\Url;
use yii\widgets\LinkPager;
$this->title = '酒店列表';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-content">
<h1><?= Html::encode($this->title) ?></h1>
<div class="row">
<div class="col-sm-3">
<a class="btn btn-info btn-sm" href="<?= Url::toRoute('hotel/new')?>">新增酒店</a>
</div>
<div class="col-sm-3 pull-right">
<form action="<?=Url::toRoute('hotel/list')?>" method="post">
<input type="hidden" name="_csrf-backend" value="<?= Yii::$app->getRequest()->getCsrfToken();?>" />
<div class="input-group">
<input type="text" placeholder="请输入酒店名" name="title" class="input-sm form-control">
<span class="input-group-btn">
<button type="submit" class="btn btn-sm btn-primary"> 搜索</button>
</span>
</div>
</form>
</div>
</div>
<hr>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>序号</th>
<th>区域地址</th>
<th>名称</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php foreach($hotels as $vo):?>
<tr>
<td><?=$vo['id']?></td>
<td>【<code><?=isset($citys[$vo['city']]['name'])?$citys[$vo['city']]['name']:'未设置'?></code>】<?=$vo['addr']?></td>
<td><?=$vo['title']?></td>
<td>
<?php if($vo['status_code']==1){?>
<a class="btn btn-info btn-xs" href="<?=Url::toRoute(['hotel/ajax','id'=>$vo['id'],'do'=>'hide'])?>" mini="ajax"><?=$status[$vo['status_code']]?></a>
<?php }else{?>
<a class="btn btn-default btn-xs" href="<?=Url::toRoute(['hotel/ajax','id'=>$vo['id'],'do'=>'show'])?>" mini="ajax"><?=$status[$vo['status_code']]?></a>
<?php }?>
</td>
<td>
<a class="btn btn-primary btn-xs" href="<?=Url::toRoute(['hotel/edit','id'=>$vo['id']])?>"><i class="fa fa-edit"></i>编辑</a>
<a title="点击将删除" href="<?=Url::toRoute(['hotel/delete','id'=>$vo['id']])?>" class="btn btn-xs btn-danger" mini="act"><i class="fa fa-trash bigger-120"></i>删除</a>
</td>
</tr>
<?php endforeach;?>
</tbody>
</table>
<!--分页-->
<div class="f-r">
<?= LinkPager::widget([
'pagination'=>$pager,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
+141
View File
@@ -0,0 +1,141 @@
<?php
use yii\helpers\Html;
use yii\helpers\Url;
?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-22">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>酒店管理</h5>
<div class="ibox-tools">
<a class="collapse-link">
<i class="fa fa-chevron-up"></i>
</a>
<a class="close-link">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<div class="ibox-content">
<div class="alert alert-info">
此处录入酒店的基础资料
</div>
<form class="form-horizontal m-t" method="post" action="<?=Url::toRoute('hotel/save')?>" role="form">
<input type="hidden" name="_csrf-backend" value="<?=Yii::$app->getRequest()->getCsrfToken();?>" />
<input type="hidden" name="id" value="<?=isset($detail['id'])?$detail['id']:0;?>">
<div class="form-group draggable">
<label class="col-sm-2 control-label"><span class="red">*</span> 名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="title" value="<?=isset($detail['title'])?$detail['title']:'';?>" placeholder="请输入酒店名称" autocomplete="on">
<span class="help-block m-b-none">如:海南嗨路客度假公寓三亚湾店</span>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"><span class="red">*</span> 地理位置:</label>
<div class="col-sm-3" style="margin-right: 0; padding-right: 0;">
<input type="text" class="form-control" value="<?=isset($detail['lat'])?$detail['lat']:'';?>" placeholder="纬度" id="lat" name="lat"/>
</div>
<div class="col-sm-2" style="margin: 0;padding: 0;width: 3rem; line-height: 3rem;text-align: center;">--</div>
<div class="col-sm-3" style="margin-left: 0; padding-left: 0;" >
<input type="text" class="form-control" value="<?=isset($detail['longt'])?$detail['longt']:'';?>" placeholder="经度" id="lng" name="lng"/>
</div>
<div class="col-sm-2">
<button type="button" mini="load" w="90%" h="90%" href="<?=Url::toRoute(['index/map','callback'=>'showLatLng','lat'=>isset($detail['lat'])?$detail['lat']:'0','lng'=>isset($detail['longt'])?$detail['longt']:'0']);?>" class="btn btn-w-m btn-primary">从地图选择</button>
</div>
<script>
function showLatLng(lat,lng,detail){
layer.closeAll();
layer.msg('选取经纬度成功!');
$("#lat").val(lat);
$("#lng").val(lng);
$("#address").val(detail);
}
</script>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label"><span class="red">*</span> 办公地址:</label>
<div class="col-sm-2">
<input type="text" class="form-control" name="city_title" id="city-title" value="<?=isset($detail['city_title'])?$detail['city_title']:'';?>" placeholder="点击选择所在城市" autocomplete="off" href="<?=Url::toRoute(['city/select','callback'=>'city']);?>" w="80%;" h="90%;" title="选择所在城市" mini="load">
<input type="hidden" class="form-control" name="city" id="city-value" value="<?=isset($detail['city'])?$detail['city']:0;?>">
</div>
<script>
function selectCity(title,id,callback)
{
layer.closeAll();
layer.msg('已选择');
$('#'+callback+'-value').val(id);
$('#'+callback+'-title').val(title);
}
</script>
<div class="col-sm-7">
<input class="form-control" type="text" name="addr" id="address" placeholder="请填写具体位置,如**路**号**楼**室" value="<?=isset($detail['addr'])?$detail['addr']:'';?>" autocomplete="off">
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label">是否删除:
</label>
<div class="col-sm-8">
<label class="radio-inline">
<input type="radio" <?=(isset($detail['deleted'])&&$detail['deleted']==1)?'checked':'';?> value="1" id="deleted1" name="deleted">是</label>
<label class="radio-inline">
<input type="radio" <?=((!isset($detail['deleted']))||isset($detail['deleted'])&&$detail['deleted']==0)?'checked':'';?> value="0" id="deleted2" name="deleted">否</label>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group draggable">
<div class="col-sm-22 col-sm-offset-3">
<button class="btn btn-primary" type="submit">保存</button>
<button class="btn btn-white" type="reset">清空</button>
<a class="btn btn-white" href="<?=Yii::$app->request->referrer?>">取消并返回</a>
<a class="btn btn-info" href="<?=Url::toRoute('hotel/list')?>">全部酒店</a>
</div>
</div>
</form>
<div class="clearfix"></div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
function showImageFrame(obj){
//取预设参数
var id,title,width,height,url;
id = $(obj).attr('data-id');
title = $(obj).attr('data-title');
width = $(obj).attr('data-width');
height = $(obj).attr('data-height');
url = $(obj).attr('data-src');
//iframe层
parent.layer.open({
type: 2,
title: title,
shadeClose: true,
shade: 0.8,
area: [width, height],
content: url //iframe的url
});
}
function deleteImage(elm){
$(elm).prev().attr("src", "../img/nopic.jpg");
$(elm).parent().prev().find("input").val("");
parent.layer.msg('图片已删除;您可重新上传');
}
function selectImage(title,path,src,callback)
{
layer.closeAll();
layer.msg('图片已选择');
$('#'+callback+'-value').val(path);
$('#'+callback+'-preview').attr('src',src);
}
</script>
+90
View File
@@ -0,0 +1,90 @@
<?php
/**
* @Author: fm453
* @Date: 2018-11-23 12:17:02
* @Last Modified by: fm453
* @Last Modified time: 2018-12-11 01:30:24
* @Email: fm453@lukegzs.com
*/
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\helpers\Url;
use yii\widgets\LinkPager;
$this->title = '酒店列表';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-content">
<h1><?= Html::encode($this->title) ?></h1>
<div class="row">
<div class="col-sm-3">
<a class="btn btn-info btn-sm" href="<?= Url::toRoute('hotel/new')?>">新增酒店</a>
</div>
<div class="col-sm-3 pull-right">
<form action="<?=Url::toRoute('hotel/list')?>" method="post">
<input type="hidden" name="_csrf-backend" value="<?= Yii::$app->getRequest()->getCsrfToken();?>" />
<div class="input-group">
<input type="text" placeholder="请输入酒店名" name="title" class="input-sm form-control">
<span class="input-group-btn">
<button type="submit" class="btn btn-sm btn-primary"> 搜索</button>
</span>
</div>
</form>
</div>
</div>
<hr>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>序号</th>
<th>区域地址</th>
<th>名称</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php foreach($hotels as $vo):?>
<tr>
<td><?=$vo['id']?></td>
<td>【<code><?=isset($citys[$vo['city']]['name'])?$citys[$vo['city']]['name']:'未设置'?></code>】<?=$vo['addr']?></td>
<td><?=$vo['title']?></td>
<td>
<?php if($vo['status_code']==1){?>
<a class="btn btn-info btn-xs" href="<?=Url::toRoute(['hotel/ajax','id'=>$vo['id'],'do'=>'hide'])?>" mini="ajax"><?=$status[$vo['status_code']]?></a>
<?php }else{?>
<a class="btn btn-default btn-xs" href="<?=Url::toRoute(['hotel/ajax','id'=>$vo['id'],'do'=>'show'])?>" mini="ajax"><?=$status[$vo['status_code']]?></a>
<?php }?>
</td>
<td>
<a class="btn btn-primary btn-xs" onclick="parent.selectHotel('<?=$vo['title']?>','<?=$vo['id']?>','<?=$callback?>');">选择</a>
</td>
</tr>
<?php endforeach;?>
</tbody>
</table>
<!--分页-->
<div class="f-r">
<?= LinkPager::widget([
'pagination'=>$pager,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
+32
View File
@@ -0,0 +1,32 @@
<?php
/* @var $this yii\web\View */
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\helpers\Url;
use yii\widgets\LinkPager;
$this->title = '选择平台';
$plats = [
['pid'=>1,'title'=>'情景海湾','thumb'=>Yii::getAlias('@web').'/img/nopic.jpg']
];
?>
<div class="wrapper wrapper-content">
<div class="row">
<?php foreach($plats as $plat){?>
<div class="col-sm-4 col-md-3">
<a href="<?php echo Url::toRoute(['index/index','pid'=>$plat['pid']]);?>">
<div class="thumbnail">
<img alt="300x200" src="<?php echo $plat['thumb']?>"/>
<div class="caption" style="text-align: center;">
<h3>
<?php echo $plat['title']?>
</h3>
</div>
</div>
</a>
</div>
<?php }?>
</div>
</div>
<?=Html::jsFile('@web/js/welcome.min.js?v=1.0.0')?>
+204
View File
@@ -0,0 +1,204 @@
<?php
/**
* @Author: fm453
* @Date: 2018-11-22 12:36:48
* @Last Modified by: fm453
* @Last Modified time: 2018-11-22 23:55:18
* @Email: fm453@lukegzs.com
*/
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\helpers\Url;
use yii\widgets\LinkPager;
$this->title = '地理位置选择';
?>
<style>
body .wrapper{
height: 100%;
margin: 0;
width: 100%;
padding: 0;
overflow: hidden;
}
.map {
height: 100%;
width: 100%;
float: left;
z-index:99;
}
</style>
<!-- 原始地址://webapi.amap.com/ui/1.0/ui/misc/PositionPicker/examples/positionPicker.html -->
<!-- <base href="//webapi.amap.com/ui/1.0/ui/misc/PositionPicker/examples/" /> -->
<div class="wrapper wrapper-content">
<div class="ibox-content" style="padding:0;width:100%;height:100%;">
<form class="form-search" method="get" action="<?=Url::toRoute('index/map')?>" role="form">
<input type="hidden" name="_csrf-backend" value="<?= Yii::$app->getRequest()->getCsrfToken();?>" />
<div class="form-group btn btn-block" style="position:fixed;top:10px;z-index: 100;background-color: rgba(0,0,0,.5);">
<div class="col-sm-7">
<div class="input-group">
<span class="input-group-btn"> <button type="button" class="btn btn-primary">输入地址:
</button> </span>
<input type="text" class="form-control" id="keyword" name="keyword" value="<?=isset($search['keyword']) ? $search['keyword']:''?>" placeholder="输入地址关键词进行查询" autocomplete="off">
<span class="hidden input-group-btn"> <button type="submit" class="btn btn-info">搜索
</button> </span>
</div>
</div>
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-btn"> <button type="button" class="btn btn-primary">纬度
</button> </span>
<input type="text" class="form-control" id="lat" name="lat" value="" autocomplete="off">
<span class="input-group-btn"> <button type="button" class="btn btn-primary">经度
</button> </span>
<input type="text" class="form-control" id="lng" name="lng" value="" autocomplete="off">
</div>
</div>
</div>
</form>
<div id="container" class="map" tabindex="0" style="z-index: 0;"></div>
<div class="" style="position:fixed;bottom:10px;left:50%;margin-left:-75px;width:150px;z-index: 100;">
<button onclick="callback();" class="btn btn-lg btn-primary" type="button">
<i class="ace-icon fa fa-check bigger-110"></i>
确定选择
</button>
</div>
</div>
</div>
<script>
function callback(){
parent.<?=$callback;?>($("#lat").val(),$("#lng").val(),$("#keyword").val());
}
</script>
<script type="text/javascript" src='//webapi.amap.com/maps?v=1.4.10&key=fea3f28a32780b33d97b2afb9a5236fe&plugin=AMap.ToolBar'></script>
<!-- UI组件库 1.0 -->
<script src="//webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script>
<script type="text/javascript">
AMapUI.loadUI(['misc/PositionPicker'], function(PositionPicker) {
var lng = "<?=$lng?>";
var lat = "<?=$lat?>";
if(lng != 0 && lat != 0){
lnglatXY = [lng, lat]; //纬度,经度
}else{
lnglatXY = [109.512444,18.252986]; //三亚市政务中心
}
var map = new AMap.Map('container', {
zoom: 16,
scrollWheel: true,
resizeEnable: true,
center: lnglatXY
});
var positionPicker = new PositionPicker({
mode: 'dragMarker',
map: map
});
positionPicker.on('success', function(positionResult) {
console.log(positionResult);
$("#keyword").val(positionResult.address);
var pos = positionResult.position;
$("#lng").val(pos.lng);
$("#lat").val(pos.lat);
});
positionPicker.on('fail', function(positionResult) {
console.log(positionResult);
$("#lng").val('');
$("#lat").val('');
});
positionPicker.start(map.getBounds().getSouthWest());
// positionPicker.start();
map.panBy(0, 1);
map.addControl(new AMap.ToolBar({
liteStyle: true
}))
AMap.plugin(['AMap.Autocomplete','AMap.PlaceSearch'],function(){
var autoOptions = {
city: "三亚市", //城市,默认全国
input: "keyword"//使用联想输入的input的id
};
autocomplete= new AMap.Autocomplete(autoOptions);
var placeSearch = new AMap.PlaceSearch({
city:'三亚市',
map:map
})
//下拉框选择
AMap.event.addListener(autocomplete, "select", function(e){
placeSearch.search(e.poi.name)
});
//关键字查询
// placeSearch.search('<?=$search['keyword']?>');
});
//设置初始化标注数据
var geocoder = new AMap.Geocoder({
radius: 1000,
extensions: "all"
});
function getAddr(lnglatXY){
geocoder.getAddress(lnglatXY, function(status, result) {
// console.log(result);
if (status === 'complete' && result.info === 'OK') {
$("#keyword").val(result.regeocode.formattedAddress);
}
});
}
getAddr(lnglatXY);
//设置地图中心点
map.setCenter(lnglatXY);
var marker = new AMap.Marker({ //加点
map: map,
position: lnglatXY
});
// map.setFitView(); //自动调整视图范围
//绑定点选maker事件
function showInfoClick(e){
console.log(e);
var lnglatXY = [e.lnglat.getLng(),e.lnglat.getLat()];
getAddr(lnglatXY);
map.setCenter(lnglatXY);
map.clearMap(); // 清除地图覆盖物
var marker = new AMap.Marker({ //加点
map: map,
position: lnglatXY
});
map.setFitView();
$("#lng").val(e.lnglat.getLng());
$("#lat").val(e.lnglat.getLat());
var text = '您在 [ '+e.lnglat.getLng()+','+e.lnglat.getLat()+' ] 的位置单击了地图!'
console.log(text);
}
function showInfoDbClick(e){
console.log(e);
var lnglatXY = [e.lnglat.getLng(),e.lnglat.getLat()];
getAddr(lnglatXY);
map.setCenter(lnglatXY);
map.clearMap(); // 清除地图覆盖物
var marker = new AMap.Marker({ //加点
map: map,
position: lnglatXY
});
map.setFitView();
$("#lng").val(e.lnglat.getLng());
$("#lat").val(e.lnglat.getLat());
var text = '您在 [ '+e.lnglat.getLng()+','+e.lnglat.getLat()+' ] 的位置双击了地图!'
console.log(text);
}
map.on('click', showInfoClick);
map.on('dblclick', showInfoDbClick);
});
</script>
+33
View File
@@ -0,0 +1,33 @@
<?php
/* @var $this yii\web\View */
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\helpers\Url;
use yii\widgets\LinkPager;
$this->title = '系统入口界面';
?>
<div class="wrapper wrapper-content">
<div class="row">
<?php foreach($navs as $nav){?>
<?php $entries = $nav['entries'];?>
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<a href="<?php echo Url::toRoute('index/index');?>" target=""><span class="label label-warning pull-right">主界面</span></a>
<h5><?php echo $nav['name'];?></h5>
</div>
<div class="ibox-content">
<?php foreach($entries as $item){?>
<a class="btn btn-<?= trim(Html::encode($item['class']))?>" href="<?= trim(Html::encode($item['url']))?>" data-toggle="tooltip" data-placement="top" data-title="<?= trim(Html::encode($item['title']))?>" trigger="hover|focus|click"><i class="<?= trim(Html::encode($item['icon'])) ?>"></i> <?= trim(Html::encode($item['name'])) ?></a>
<?php }?>
</div>
</div>
</div>
<?php }?>
</div>
</div>
<?=Html::jsFile('@web/js/welcome.min.js?v=1.0.0')?>
+37
View File
@@ -0,0 +1,37 @@
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $model backend\models\AuthItem */
/* @var $form yii\widgets\ActiveForm */
?>
<div class="auth-item-form col-sm-4">
<?php $form = ActiveForm::begin(); ?>
<?php if($model->name =='超级管理员'):?>
<?= $form->field($model, 'name')->textInput(['maxlength' => true,'readonly'=>true]) ?>
<?= $form->field($model, 'type' )->dropDownList(['1' =>'角色' ,'2' =>'权限'],['disabled'=>true])?>
<?php else:?>
<?= $form->field($model, 'name')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'type' )->dropDownList(['1' =>'角色' ,'2' =>'权限'])?>
<?php endif;?>
<?= $form->field($model, 'description')->textarea(['rows' => 6]) ?>
<?/*= $form->field($model, 'rule_name')->textInput(['maxlength' => true]) */?><!--
<?/*= $form->field($model, 'data')->textarea(['rows' => 6]) */?>
<?/*= $form->field($model, 'created_at')->textInput() */?>
--><?/*= $form->field($model, 'updated_at')->textInput() */?>
<div class="form-group">
<?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-primary' : 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
+24
View File
@@ -0,0 +1,24 @@
<?php
use yii\helpers\Html;
/* @var $this yii\web\View */
/* @var $model backend\models\AuthItem */
$this->title = '创建角色';
$this->params['breadcrumbs'][] = ['label' => 'Auth Items', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content">
<div class="ibox-content">
<div class="row pd-10">
<h1><?= Html::encode($this->title) ?></h1>
<hr>
<?= $this->render('_form', [
'model' => $model,
]) ?>
</div>
</div>
</div>
+191
View File
@@ -0,0 +1,191 @@
<?php
use yii\helpers\Html;
use yii\helpers\Url;
use backend\widgets\common\LinkPages;
$this->title = '角色&权限列表';
$this->params['breadcrumbs'][] = $this-> title;
?>
<div class="wrapper wrapper-content">
<div class="ibox-content">
<div class="row">
<div class="col-sm-6 m-b-xs">
<?=Html::a("创建 <i class='icon-plus'></i>" , ['create' ], ['class' => 'btn btn-sm btn-primary'])?>
<a class="btn btn-info btn-sm" href="<?= Url::toRoute('item/index')?>">角色管理</a>
<a class="btn btn-info btn-sm" href="<?= Url::toRoute('item/permission')?>">权限管理</a>
</div>
</div>
<hr>
<div class="table-responsive">
<table class ="table table-striped table_base">
<thead >
<tr >
<th >ID </th>
<th >名称 </th>
<th >类型 </th>
<th >描述 </th>
<th >创建时间 </th>
<th >操作 </th>
</tr>
</thead>
<tbody >
<?php if ( empty($data[ 'data'])): ?>
<tr ><td colspan ="20"><?=Yii::t('common' ,'Not find data') ?> </td ></tr >
<?php else: ?>
<?php $i = $data['start'];?>
<?php foreach ( $data['data'] as $list):?>
<tr data-key =" <?=$list[ 'name'] ?>" >
<td ><?= $i++?> </td >
<td ><?= Html::encode($list[ 'name']) ?></ td>
<td ><?= Html::encode(($list[ 'type']==1)? '角色': '权限') ?></ td>
<td ><?= Html::encode($list[ 'description']) ?></ td>
<td> <?=Html:: encode($list['created_at']?date('Y-m-d',$list['created_at']):'未设置') ?></ td>
<td >
<a class="btn btn-primary btn-xs" href= "<?= Url::to([ 'update', 'id'=>$list[ 'name']]); ?>" ><i class="fa fa-edit"></i>编辑 </a >
<a class="btn btn-success btn-xs" href= "<?= Url::toRoute([ 'permission/set', 'id'=>$list[ 'name']]); ?>" ><i class="fa fa-unlock-alt"></i>权限 </a >
<?php if($list['name'] != '超级管理员'):?>
<a class ="del btn btn-default btn-xs" href= "javaScript:;"><i class="fa fa-close"></i>删除</a >
<?php endif;?>
</td >
</tr >
<?php endforeach; ?>
<?php endif; ?>
</tbody >
</table >
<?=Yii::t('common' , '{start}-{end} a total of {total}',['start' => $data[ 'start'], 'end'=> $data['end'],'total'=> $data['count' ]])?> </div >
<?=LinkPages:: widget(['pagination' => $pages]);?>
<input type ="hidden" name="delUrl" value= "<?= Url::to([ 'delete']) ?>" >
</div>
</div >
<script>
(function($) {
var delUrl = $('input[name=delUrl]').val(),
delAllUrl = $('input[name=delAllUrl]').val(),
obj_thead = $('.table_base > thead'),
obj_tbody = $('.table_base > tbody'),
obj_check = $('.table_base .checker'),
obj_check_ipt = obj_tbody.find('input[name=select]'),
obj_check_all = obj_thead.find('input[name=select_all]'),
submitData = {};
submitData[$('[name=csrf-param]').attr('content')] = $('[name=csrf-token]').attr('content');
/*复选框start*/
obj_check.hover(function(){
$(this).addClass('hover');
},function(){
$(this).removeClass('hover');
});
obj_check.click(function(){
var _checkbox = $(this).find('input[name^=select]'),
isChecked = _checkbox[0].checked;
_checkbox.parent()[ isChecked ? 'addClass' : 'removeClass' ]('checked');
if(_checkbox.hasClass('select-on-check-all')){
$.each(obj_check_ipt,function(){
$(this)[0].checked = isChecked ? true : false;
$(this).parent()[ isChecked ? 'addClass' : 'removeClass' ]('checked');
})
}
ifAllCheck();
checkToIpt();
});
$('.bottomBtn > #selectall').click(function(){
obj_check_all.click();
});
$('.bottomBtn > #export').click(function(){
if(confirm('您确定要删除选中项吗?')){
var ids = $('.bottomBtn > #selected').val();
if(ids){
doAjax(
delAllUrl,
{ids: ids},
function(json){
if(json.status){
location.reload(true);
}else{
alert(json.msg);
}
}
);
}
}
});
function ifAllCheck(){
var allCheck = true
$.each(obj_check_ipt,function(){
if( !$(this)[0].checked ){
allCheck = false;
return;
}
})
obj_check_all[0].checked = allCheck;
obj_check_all.parent()[ allCheck ? 'addClass' : 'removeClass' ]('checked');
}
function checkToIpt(){
var selectedTemp = [];
$.each(obj_check_ipt,function(){
if( $(this)[0].checked ){
selectedTemp.push( $(this).parents('tr:first').attr('data-key') );
}
});
$('.bottomBtn > #selected').val( selectedTemp.join(',') );
}
/*复选框end*/
$('.table_base .del').click(function(){ // 点击删除
if(confirm('您确定要删除此项吗?')){
submitData['id'] = $(this).parents('tr:first').attr('data-key');
doAjax(
delUrl,
submitData,
function(json){
if(json.status){
location.reload(true);
}else{
alert(json.msg);
}
}
);
}
});
function renderTmp(item, tmp) { // 渲染值
return tmp.replace( /\{.+?\}/g, function($1) { return item[$1.slice(1, -1)] ? item[$1.slice(1, -1)] : ''; });
}
function trBC(){ // tr背景颜色间隔
obj_tbody.find('td').css('background-color','#ffffff');
obj_tbody.find('tr:visible').each(function(key,val){
if(key%2 == 0){
$(val).find('td').css('background-color','#f9f9f9');
}
});
}
function doAjax(url,data,sucFn){
$.ajax({
url: url,
type: 'POST',
dataType: 'json',
data: data,
success: sucFn,
error: function(){
alert('交互错误');
}
});
}
})(jQuery)
</script>
+24
View File
@@ -0,0 +1,24 @@
<?php
use yii\helpers\Html;
/* @var $this yii\web\View */
/* @var $model backend\models\AuthItem */
$this->title = '更新角色 ' . ' ' . $model->name;
$this->params['breadcrumbs'][] = ['label' => 'Auth Items', 'url' => ['index']];
$this->params['breadcrumbs'][] = ['label' => $model->name, 'url' => ['view', 'id' => $model->name]];
$this->params['breadcrumbs'][] = 'Update';
?>
<div class="wrapper wrapper-content ">
<div class="ibox-content">
<div class="row pd-10">
<h1><?= Html::encode($this->title) ?></h1>
<hr>
<?= $this->render('_form', [
'model' => $model,
]) ?>
</div>
</div>
</div>
+41
View File
@@ -0,0 +1,41 @@
<?php
use yii\helpers\Html;
use yii\widgets\DetailView;
/* @var $this yii\web\View */
/* @var $model backend\models\AuthItem */
$this->title = $model->name;
$this->params['breadcrumbs'][] = ['label' => 'Auth Items', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content">
<h4><?= Html::encode($this->title) ?></h4>
<p>
<?= Html::a('Update', ['update', 'id' => $model->name], ['class' => 'btn btn-primary']) ?>
<?= Html::a('Delete', ['delete', 'id' => $model->name], [
'class' => 'btn btn-danger',
'data' => [
'confirm' => 'Are you sure you want to delete this item?',
'method' => 'post',
],
]) ?>
</p>
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'name',
'type',
'description:ntext',
'rule_name',
'data:ntext',
'created_at',
'updated_at',
],
]) ?>
</div>
+7
View File
@@ -0,0 +1,7 @@
<div class="site-error">
<div style="margin-top: 100px;text-align: center;">
<h1>温馨提示</h1><br>
</div>
<h4 style="margin: 10px auto;text-align: center;background-color: #1ab394; color: #ffffff;width: 500px;height: 50px;line-height: 50px;border-radius: 5px;"><i class="fa fa-spinner fa-spin"></i> 功能尚未开放,敬请稍候……</h4>
</div>
+211
View File
@@ -0,0 +1,211 @@
<?php
# @Author: 嗨噜客科技(www.hiluker.cn) <fm453>
# @Date: 1970-01-01T08:00:00+08:00
# @Email: fm453@hiluker.com
# @Last modified by: fm453
# @Last modified time: 2021-09-15T17:42:47+08:00
/* @var $this \yii\web\View */
/* @var $content string */
use backend\assets\AppAsset;
use yii\helpers\Html;
use yii\helpers\Url;
use yii\bootstrap\Nav;
use yii\bootstrap\NavBar;
use yii\widgets\Breadcrumbs;
use common\widgets\Alert;
// AppAsset::register($this);
$keywords = '';
$description = '';
$routes = ['data']; //自添加的controllers列表集,用于为新添加的控制器在渲染视图时自动加入HTML代码段,以便兼容h+的后台模板
?>
<?php $this->beginPage() ?>
<!DOCTYPE html>
<html lang="<?= Yii::$app->language ?>">
<head>
<meta charset="<?= Yii::$app->charset ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<?= Html::csrfMetaTags() ?>
<title><?= Html::encode($this->title) ?></title>
<meta name="renderer" content="webkit">
<meta http-equiv="Cache-Control" content="no-siteapp" />
<meta name="keywords" content="<?php echo $keywords ?>">
<meta name="description" content="<?php echo $description ?>">
<!--[if lt IE 9]>
<meta http-equiv="refresh" content="0;ie.html" />
<![endif]-->
<link rel="shortcut icon" href="<?=Url::to('@web/favicon.ico',true);?>">
<?=Html::cssFile('@web/css/bootstrap.min.css')?>
<?=Html::cssFile('@web/css/font-awesome.css')?>
<?=Html::cssFile('@web/css/animate.min.css')?>
<?=Html::cssFile('@web/css/site.css')?>
<?=Html::cssFile('@web/css/style.min.css')?>
<?=Html::jsFile('@web/js/jquery.min.js?v=2.1.4')?>
<?=Html::jsFile('@web/js/bootstrap.min.js?v=3.3.6')?>
<?=Html::jsFile('@web/js/plugins/layer/layer.min.js')?>
<?=Html::jsFile('@web/js/admin.js')?>
<?=Html::cssFile('@web/css/plugins/iCheck/custom.css')?>
<?=Html::cssFile('@web/css/plugins/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css')?>
<?php $this->head() ?>
</head>
<body class="fixed-sidebar full-height-layout gray-bg animated">
<?php $this->beginBody() ?>
<?php if((Yii::$app->controller->module->defaultRoute!="site") ||(Yii::$app->controller->module->defaultRoute=="site" && Yii::$app->controller->module->requestedRoute!=""
&& Yii::$app->controller->module->requestedRoute!="site/login")):?>
<nav class="breadcrumb fix_top hidden-sm hidden-xs" id="_HiQuickMenu" style="background-color:#ccc;width: 55px;padding-top: 15px;padding-left: 10px;position:fixed;top:40%;right:15px;z-index:9999;">
<div class="pull-right">
<a class="btn btn-primary radius goback" style="line-height:1.6em;margin-top:3px" href="javascript:history.go(-1);" title="后退">
<span class="fa fa-reply"></span>
</a>
<br>
<a class="btn btn-primary radius refresh" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace(location.href);" title="刷新">
<span class="fa fa-refresh"></span>
</a>
<br>
<a class="btn btn-warning radius" style="line-height:1.6em;margin-top:3px" href="<?php echo url::toRoute(['error/report','url'=>urlDecode(Url::current())]);?>" title="报错反馈">
<span class="fa fa-at"></span>
</a>
<br>
<button class="btn btn-danger radius lockscreen" style="line-height:1.6em;margin-top:3px" title="锁屏">
<span class="fa fa-expeditedssl"></span>
</button>
&nbsp;
</div>
</nav>
<?php endif;?>
<?php if(in_array(Yii::$app->controller->module->id,$routes)): ?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-content">
<?php endif;?>
<?= Alert::widget() ?>
<?= $content ?>
<?php if(in_array(Yii::$app->controller->module->id,$routes)): ?>
</div>
</div>
</div>
</div>
</div>
<?php endif;?>
<?php $this->endBody() ?>
<style>
.modal-backdrop.in {
opacity: .7;
}
</style>
<div class="modal inmodal" id="myModal" tabindex="-1" role="dialog" aria-hidden="true" data-keyboard='false' data-backdrop="static" style="z-index:9999;">
<div class="modal-dialog">
<div class="modal-content animated bounceInRight">
<div class="modal-header">
<i class="fa fa-laptop modal-icon"></i>
<h4 class="modal-title">屏幕解锁</h4>
<small class="font-bold"><?php echo date('Y-m-d H:i:s');?></small>
</div>
<div class="modal-body">
<p id="_LockScreenTips"></p>
<form class="form-horizontal m-t" id="commentForm" novalidate="novalidate">
<div class="form-group">
<label class="col-sm-3 control-label">口令:</label>
<div class="col-sm-8">
<input id="_ScreenLockCode" name="code" type="password" class="form-control" required="" aria-required="true">
</div>
</div>
<div class="form-group">
<div class="col-sm-4 col-sm-offset-3">
<button type="button" class="btn btn-white unlockscreen">验证</button>
<button type="reset" class="btn btn-warning">再等等</button>
</div>
</div>
</form>
</div>
<div class="modal-footer" style="text-align: center;">
<button type="button" class="hidden btn btn-primary closelockscreen" data-dismiss="modal">现在点我,立即解锁</button>
</div>
</div>
</div>
</div>
<script>
//锁屏
$(function(){
var modalId = 'myModal';
sessionStorage.unLockScreen =true;
$('.lockscreen').bind('click',function(){
layer.confirm('您确认要锁屏吗?', {
btn: ['确认','算了'], //按钮
shade: true //是否显示遮罩
}, function(index){
layer.close(index);
layer.prompt(
{
title: '输入解锁屏幕时要用的口令(仅数字与字母)后按确认,即可锁屏',
formType: 0 //prompt风格,支持0-2
},
function(value,index,elem){
layer.close(index);
var code1 = value;
sessionStorage.unLockScreen =false;
sessionStorage.LockScreenCode = code1;
var msg = '锁屏完成,您的口令是:'+ code1 + ' ;如果您不小心忘记锁屏密码,请重新登陆;如果您有可能未保存的页面数据,可通过浏览器的网页开发调试工具,清除会话缓存中的锁屏键;如果您不会操作,可联系微信客服<?php echo Yii::$app->params["developerWx"];?>获取付费协助';
console.log(msg);
var msg2 = '锁屏完成;如果您不小心忘记锁屏密码,请重新登陆;如果您有可能未保存的页面数据,可通过浏览器的网页开发调试工具,清除会话缓存中的锁屏键;如果您不会操作,可联系微信客服<?php echo Yii::$app->params["developerWx"];?>获取付费协助';
$('#_LockScreenTips').html(msg2);
$('#'+modalId).modal('show');
}
);
}, function(){
layer.msg('您取消了锁屏操作', {shift: 6});
});
$('#'+modalId).on('hide.bs.modal',
function() {
$('.closelockscreen').addClass('hidden').hide();
layer.msg('好的,您已成功解锁');
});
});
$('.unlockscreen').bind('click',function(){
var code = $('#_ScreenLockCode').val();
var LockScreenCode = sessionStorage.LockScreenCode;
if(code == LockScreenCode){
sessionStorage.unLockScreen =true;
$('.closelockscreen').removeClass('hidden').show();
}else{
layer.msg('口令错误,请重新输入');
}
});
if(!sessionStorage.unLockScreen){
if(sessionStorage.LockScreenCode){
$('#'+modalId).modal('show');
}
return;
}
});
</script>
<script>
var HOME_URL = '<?php echo Url::home();?>'; //定义首页位置,用于content.min.js中快速跳转首页按钮
</script>
<!-- 以下js必须放在页尾,顺序不可更换 -->
<?=Html::jsFile('@web/js/bootstrap.min.js?v=3.3.6')?>
<?=Html::jsFile('@web/js/plugins/layer/layer.js')?>
<?=Html::jsFile('@web/js/content.min.js')?>
</body>
</html>
<?php $this->endPage() ?>
+21
View File
@@ -0,0 +1,21 @@
<?php
use yii\helpers\Html;
use yii\helpers\Url;
$this->title = isset($title) ? $title : '提示';
$content = isset($content) ? $content : '';
$class = isset($class) ? $class : 'info';
$class = in_array($class,['danger','warning','success','info']) ? $class : 'info';
$buttons = isset($buttons) ? $buttons : [['title'=>'好的,我知道了','class'=>'primary','url'=>false]];
?>
<div class="site-index" style="text-align: center;width:80%;margin-left:10%;">
<div style="margin-top: 100px;">
<h1><?=Html::encode($this->title) ?></h1><br>
</div>
<div class="alert alert-<?php echo $class;?> fade in" role="alert">
<?php echo $content; ?>
</div>
<?php foreach($buttons as $btn){?>
<a <?php if($btn['url']){?> href="<?php echo $btn['url'];?>" <?php }?> class="btn btn-<?php if($btn['class']){echo $btn['class'];}else{echo 'primary';}?>"><?php if($btn['title']){echo $btn['title'];}else{echo '点击按钮';}?></a>
<?php }?>
</div>
+93
View File
@@ -0,0 +1,93 @@
<?php
/**
* @Author: fm453
* @Date: 2018-11-23 12:17:02
* @Last Modified by: fm453
* @Last Modified time: 2019-01-10 16:21:08
* @Email: fm453@lukegzs.com
*/
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\helpers\Url;
use yii\widgets\LinkPager;
$this->title = '业主列表';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-content">
<h1><?= Html::encode($this->title) ?></h1>
<div class="row">
<div class="col-sm-3">
<a class="btn btn-info btn-sm" href="<?= Url::toRoute('owner/new')?>">新增业主</a>
</div>
<div class="col-sm-3 pull-right">
<form action="<?=Url::toRoute('owner/list')?>" method="post">
<input type="hidden" name="_csrf-backend" value="<?= Yii::$app->getRequest()->getCsrfToken();?>" />
<div class="input-group">
<input class="input-sm form-control" type="text" placeholder="请输入业主姓名" name="title" value="<?=$search['title']?>">
<span class="input-group-btn">
<button type="submit" class="btn btn-sm btn-primary"> 搜索</button>
</span>
</div>
</form>
</div>
</div>
<hr>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>序号</th>
<th>姓名</th>
<th>手机</th>
<th>性别</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php foreach($owners as $vo):?>
<tr>
<td><?=$vo['id']?></td>
<td><?=$vo['name']?></td>
<td><?=$vo['mobile']?></td>
<td><?=$gender[$vo['gender']]?></td>
<td>
<?php if($vo['status']==1){?>
<a class="btn btn-info btn-xs" href="<?=Url::toRoute(['owner/ajax','id'=>$vo['id'],'do'=>'out'])?>" mini="ajax"><?=$status[$vo['status']]?></a>
<?php }else{?>
<a class="btn btn-default btn-xs" href="<?=Url::toRoute(['owner/ajax','id'=>$vo['id'],'do'=>'in'])?>" mini="ajax"><?=$status[$vo['status']]?></a>
<?php }?>
</td>
<td>
<a class="btn btn-primary btn-xs" href="<?=Url::toRoute(['owner/edit','id'=>$vo['id']])?>"><i class="fa fa-edit"></i>编辑</a>
<a title="点击将删除" href="<?=Url::toRoute(['owner/delete','id'=>$vo['id']])?>" class="btn btn-xs btn-danger" mini="act"><i class="fa fa-trash bigger-120"></i>删除</a>
</td>
</tr>
<?php endforeach;?>
</tbody>
</table>
<!--分页-->
<div class="f-r">
<?= LinkPager::widget([
'pagination'=>$pager,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
+152
View File
@@ -0,0 +1,152 @@
<?php
use yii\helpers\Html;
use yii\helpers\Url;
?>
<!--百度编辑器-->
<?=Html::jsFile('@web/plugins/ueditor/ueditor.config.js')?>
<!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
<!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->
<?=Html::jsFile('@web/plugins/ueditor/ueditor.all.min.js')?>
<?=Html::jsFile('@web/plugins/ueditor/lang/zh-cn/zh-cn.js')?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>业主管理</h5>
<div class="ibox-tools">
<a class="collapse-link">
<i class="fa fa-chevron-up"></i>
</a>
<a class="close-link">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<div class="ibox-content">
<div class="alert alert-info">
此处录入/编辑业主资料
</div>
<form class="form-horizontal m-t" method="post" action="<?=Url::toRoute('owner/save')?>" role="form">
<input type="hidden" name="_csrf-backend" value="<?=Yii::$app->getRequest()->getCsrfToken();?>" />
<input type="hidden" name="id" value="<?=isset($detail['id'])?$detail['id']:0;?>">
<div class="form-group draggable">
<label class="col-sm-1 control-label"><span class="red">*</span> 姓名:</label>
<div class="col-sm-2">
<input class="form-control" type="text" name="name" value="<?=isset($detail['name'])?$detail['name']:'';?>" placeholder="请输入业主姓名" autocomplete="off">
</div>
<label class="col-sm-1 control-label"><span class="red">*</span> 手机号:</label>
<div class="col-sm-2">
<input class="form-control" type="text" name="mobile" value="<?=isset($detail['mobile'])?$detail['mobile']:'';?>" placeholder="请输入手机号码" autocomplete="off">
</div>
<label class="col-sm-1 control-label"><span class="red">*</span> 性别:</label>
<div class="col-sm-2">
<select class="form-control" name="gender">
<option value="0" <?php if(isset($detail['gender']) && $detail['gender']==0){echo 'selected';}else{echo '';}?>>未知</option>
<option value="1" <?php if(isset($detail['gender']) && $detail['gender']==1){echo 'selected';}else{echo '';}?>>男</option>
<option value="2" <?php if(isset($detail['gender']) && $detail['gender']==2){echo 'selected';}else{echo '';}?>>女</option>
</select>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">备注:</label>
<div class="col-sm-9">
<textarea id="editor" name="editor" style="min-height:300px;"><?=isset($detail['remark'])?$detail['remark']:''?></textarea>
<script type="text/javascript">
//实例化编辑器
//建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例
var ue = UE.getEditor('editor');
/* 传入参数表,添加到已有参数表里 */
ue.ready(function() {
ue.execCommand('serverparam', {
'siteId': "<?=Yii::$app->params['siteId']?>",
'pid': "<?=Yii::$app->session->get('pid')?>",
'attachSrc': "<?=Yii::$app->params['attachSrc']?>",
'attachDir': "<?=Yii::$app->params['attachDir']?>"
});
});
</script>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">是否签约:
</label>
<div class="col-sm-9">
<label class="radio-inline">
<input type="radio" <?=(isset($detail['status'])&&$detail['status']==1)?'checked':'';?> value="1" id="status1" name="status">是</label>
<label class="radio-inline">
<input type="radio" <?=((!isset($detail['status']))||isset($detail['status'])&&$detail['status']==0)?'checked':'';?> value="0" id="status2" name="status">否</label>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">是否删除:
</label>
<div class="col-sm-9">
<label class="radio-inline">
<input type="radio" <?=(isset($detail['deleted'])&&$detail['deleted']==1)?'checked':'';?> value="1" id="deleted1" name="deleted">是</label>
<label class="radio-inline">
<input type="radio" <?=((!isset($detail['deleted']))||isset($detail['deleted'])&&$detail['deleted']==0)?'checked':'';?> value="0" id="deleted2" name="deleted">否</label>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group draggable">
<div class="col-sm-12 col-sm-offset-3">
<button class="btn btn-primary" type="submit">保存</button>
<button class="btn btn-white" type="reset">清空</button>
<a class="btn btn-white" href="<?=Yii::$app->request->referrer?>">取消并返回</a>
<a class="btn btn-info" href="<?=Url::toRoute('owner/list')?>">全部业主</a>
</div>
</div>
</form>
<div class="clearfix"></div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
function showImageFrame(obj){
//取预设参数
var id,title,width,height,url;
id = $(obj).attr('data-id');
title = $(obj).attr('data-title');
width = $(obj).attr('data-width');
height = $(obj).attr('data-height');
url = $(obj).attr('data-src');
//iframe层
parent.layer.open({
type: 2,
title: title,
shadeClose: true,
shade: 0.8,
area: [width, height],
content: url //iframe的url
});
}
function deleteImage(elm){
$(elm).prev().attr("src", "../img/nopic.jpg");
$(elm).parent().prev().find("input").val("");
parent.layer.msg('图片已删除;您可重新上传');
}
function selectImage(title,path,src,callback)
{
layer.closeAll();
layer.msg('图片已选择');
$('#'+callback+'-value').val(path);
$('#'+callback+'-preview').attr('src',src);
}
</script>
+92
View File
@@ -0,0 +1,92 @@
<?php
/**
* @Author: fm453
* @Date: 2018-11-23 12:17:02
* @Last Modified by: fm453
* @Last Modified time: 2019-01-10 19:03:07
* @Email: fm453@lukegzs.com
*/
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\helpers\Url;
use yii\widgets\LinkPager;
$this->title = '业主列表';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-content">
<h1><?= Html::encode($this->title) ?></h1>
<div class="row">
<div class="col-sm-3">
<a class="btn btn-info btn-sm" href="<?= Url::toRoute('owner/new')?>">新增业主</a>
</div>
<div class="col-sm-3 pull-right">
<form action="<?=Url::toRoute('owner/list')?>" method="post">
<input type="hidden" name="_csrf-backend" value="<?= Yii::$app->getRequest()->getCsrfToken();?>" />
<div class="input-group">
<input class="input-sm form-control" type="text" placeholder="请输入业主姓名" name="title" value="<?=$search['title']?>">
<span class="input-group-btn">
<button type="submit" class="btn btn-sm btn-primary"> 搜索</button>
</span>
</div>
</form>
</div>
</div>
<hr>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>序号</th>
<th>姓名</th>
<th>手机</th>
<th>性别</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php foreach($owners as $vo):?>
<tr>
<td><?=$vo['id']?></td>
<td><?=$vo['name']?></td>
<td><?=$vo['mobile']?></td>
<td><?=$gender[$vo['gender']]?></td>
<td>
<?php if($vo['status']==1){?>
<a class="btn btn-info btn-xs" href="<?=Url::toRoute(['owner/ajax','id'=>$vo['id'],'do'=>'out'])?>" mini="ajax"><?=$status[$vo['status']]?></a>
<?php }else{?>
<a class="btn btn-default btn-xs" href="<?=Url::toRoute(['owner/ajax','id'=>$vo['id'],'do'=>'in'])?>" mini="ajax"><?=$status[$vo['status']]?></a>
<?php }?>
</td>
<td>
<a class="btn btn-primary btn-xs" onclick="parent.selectOwner('<?=$vo['name']?>','<?=$vo['id']?>','<?=$callback?>');">选择</a>
</td>
</tr>
<?php endforeach;?>
</tbody>
</table>
<!--分页-->
<div class="f-r">
<?= LinkPager::widget([
'pagination'=>$pager,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
+211
View File
@@ -0,0 +1,211 @@
<?php
/**
* @Author: fm453
* @Date: 2018-11-23 12:17:02
* @Last Modified by: fm453
* @Last Modified time: 2019-01-12 17:11:20
* @Email: fm453@lukegzs.com
*/
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\helpers\Url;
use yii\widgets\LinkPager;
$this->title = '房间列表';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-content" style="text-align: center;">
<h1>搜索与筛选</h1>
<form role="form" class="form-horizontal m-t" action="<?=Url::toRoute('room/list')?>" method="post">
<input type="hidden" name="_csrf-backend" value="<?= Yii::$app->getRequest()->getCsrfToken();?>" />
<div class="form-group">
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">名称</button>
</span>
<input class="input-sm form-control" type="text" placeholder="请输入房间名称" name="search[title]" value="<?=isset($search['title']) ? $search['title']:''?>">
</div>
</div>
<div class="col-sm-5">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">户型</button>
</span>
<input class="input-sm form-control" type="text" placeholder="" name="search[f]" value="<?=isset($search['f'])?$search['f']:''?>">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-info">室</button>
</span>
<input class="input-sm form-control" type="text" placeholder="" name="search[t]" value="<?=isset($search['t'])?$search['t']:''?>">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-info">厅</button>
</span>
<input class="input-sm form-control" type="text" placeholder="" name="search[c]" value="<?=isset($search['c'])?$search['c']:''?>">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-info">厨</button>
</span>
<input class="input-sm form-control" type="text" placeholder="" name="search[w]" value="<?=isset($search['w'])?$search['w']:''?>">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-info">卫</button>
</span>
<input class="input-sm form-control" type="text" placeholder="" name="search[b]" value="<?=isset($search['b'])?$search['b']:''?>">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-info">阳台</button>
</span>
</div>
</div>
<div class="col-sm-3">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">面积大于</button>
</span>
<input class="input-sm form-control" type="text" placeholder="请填写正整数" name="search[measure]" value="<?=isset($search['measure'])?$search['measure']:''?>">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-info">m<sup>2</sup></button>
</span>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-4">
<div class="input-group">
<input type="text" class="form-control" name="hotel_title" id="hotel-title" value="<?=isset($search['hotel_title'])?$search['hotel_title']:'';?>" placeholder="点击选择关联酒店" autocomplete="off" href="<?=Url::toRoute(['hotel/select','callback'=>'hotel']);?>" w="80%;" h="90%;" title="选择所在关联酒店" mini="load">
<input type="hidden" class="form-control" name="search[hotel]" id="hotel-value" value="<?=isset($search['hotel'])?$search['hotel']:0;?>">
<span class="input-group-btn">
<button type="button" class="btn btn-info" onclick="clearHotel('hotel')">清除选择</button>
</span>
</div>
</div>
<script>
function selectHotel(title,id,callback)
{
layer.closeAll();
layer.msg('已选择');
$('#'+callback+'-value').val(id);
$('#'+callback+'-title').val(title);
}
function clearHotel(id)
{
$('#'+id+'-value').val('');
$('#'+id+'-title').val('');
}
</script>
</div>
<div class="form-group">
<div class="col-sm-12">
<button type="submit" class="btn btn-sm btn-warning"> 搜索</button>
<a class="btn btn-info btn-sm" href="<?= Url::toRoute(['room/new','hotel_id'=>$hotel_id])?>">新增房间</a>
</div>
</div>
</form>
</div>
<!--分页-->
<div class="ibox-content" style="padding:0;text-align: center;">
<div class="f-r">
<?= LinkPager::widget([
'pagination'=>$pager,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) ?>
</div>
</div>
<div class="ibox-content">
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>序号</th>
<th>关联酒店</th>
<th>房间</th>
<th>地址</th>
<th>参数</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php foreach($rooms as $vo):?>
<tr>
<td><?=$vo['id']?></td>
<td><?=isset($hotels[$vo['hotel_id']])?$hotels[$vo['hotel_id']]['title']:'未设置'?></td>
<td>【<code><?=$vo['sn']?></code>】<?=$vo['title']?><br>
<?=$vo['f']?>室<?=$vo['t']?>厅<?=$vo['c']?>厨<?=$vo['w']?>卫<?=$vo['b']?>阳台(<code><?=$vo['measure']?></code>m<sup>2</sup>)
</td>
<td><?=$vo['addr']?></td>
<td>
开火:<?php if($vo['cooking']==1){?>
<a class="btn btn-info btn-xs" href="<?=Url::toRoute(['room/ajax','id'=>$vo['id'],'do'=>'cooking'])?>" mini="ajax">可以</a>
<?php }else{?>
<a class="btn btn-default btn-xs" href="<?=Url::toRoute(['room/ajax','id'=>$vo['id'],'do'=>'cooking'])?>" mini="ajax">不支持</a>
<?php }?>
泳池:<?php if($vo['swimmingpool']==1){?>
<a class="btn btn-info btn-xs" href="<?=Url::toRoute(['room/ajax','id'=>$vo['id'],'do'=>'swimmingpool'])?>" mini="ajax">有</a>
<?php }else{?>
<a class="btn btn-default btn-xs" href="<?=Url::toRoute(['room/ajax','id'=>$vo['id'],'do'=>'swimmingpool'])?>" mini="ajax">无</a>
<?php }?>
天然气:<?php if($vo['gas']==1){?>
<a class="btn btn-info btn-xs" href="<?=Url::toRoute(['room/ajax','id'=>$vo['id'],'do'=>'gas'])?>" mini="ajax">有</a>
<?php }else{?>
<a class="btn btn-default btn-xs" href="<?=Url::toRoute(['room/ajax','id'=>$vo['id'],'do'=>'gas'])?>" mini="ajax">无</a>
<?php }?>
停车位:<?php if($vo['parker']==1){?>
<a class="btn btn-info btn-xs" href="<?=Url::toRoute(['room/ajax','id'=>$vo['id'],'do'=>'parker'])?>" mini="ajax">有</a>
<?php }else{?>
<a class="btn btn-default btn-xs" href="<?=Url::toRoute(['room/ajax','id'=>$vo['id'],'do'=>'parker'])?>" mini="ajax">无</a>
<?php }?>
WIFI:<?php if($vo['wifi']==1){?>
<a class="btn btn-info btn-xs" href="<?=Url::toRoute(['room/ajax','id'=>$vo['id'],'do'=>'wifi'])?>" mini="ajax">有</a>
<?php }else{?>
<a class="btn btn-default btn-xs" href="<?=Url::toRoute(['room/ajax','id'=>$vo['id'],'do'=>'wifi'])?>" mini="ajax">无</a>
<?php }?>
</td>
<td>
<?php if($vo['status_code']==1){?>
<a class="btn btn-info btn-xs" href="<?=Url::toRoute(['room/ajax','id'=>$vo['id'],'do'=>'hide'])?>" mini="ajax"><?=$status[$vo['status_code']]?></a>
<?php }else{?>
<a class="btn btn-default btn-xs" href="<?=Url::toRoute(['room/ajax','id'=>$vo['id'],'do'=>'show'])?>" mini="ajax"><?=$status[$vo['status_code']]?></a>
<?php }?>
</td>
<td>
<a class="btn btn-primary btn-xs" href="<?=Url::toRoute(['room/edit','id'=>$vo['id']])?>"><i class="fa fa-edit"></i>编辑</a>
<a title="点击将删除" href="<?=Url::toRoute(['room/delete','id'=>$vo['id']])?>" class="btn btn-xs btn-danger" mini="act"><i class="fa fa-trash bigger-120"></i>删除</a>
</td>
</tr>
<?php endforeach;?>
</tbody>
</table>
</div>
</div>
<!--分页-->
<div class="ibox-content" style="padding:0;text-align: center;">
<div class="f-r">
<?= LinkPager::widget([
'pagination'=>$pager,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) ?>
</div>
</div>
</div>
</div>
</div>
</div>
+581
View File
@@ -0,0 +1,581 @@
<?php
use yii\helpers\Html;
use yii\helpers\Url;
?>
<!--百度编辑器-->
<?=Html::jsFile('@web/plugins/ueditor/ueditor.config.js')?>
<!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
<!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->
<?=Html::jsFile('@web/plugins/ueditor/ueditor.all.min.js')?>
<?=Html::jsFile('@web/plugins/ueditor/lang/zh-cn/zh-cn.js')?>
<!--日期时间选择器-->
<?=Html::jsFile('@web/js/plugins/layer/laydate/laydate.js')?>
<?=Html::cssFile('@web/js/plugins/layer/laydate/need/laydate.css')?>
<?=Html::cssFile('@web/js/plugins/layer/laydate/skins/molv/laydate.css')?>
<!--下拉选择、选项框-->
<?=Html::cssFile('@web/css/plugins/chosen/chosen.css')?>
<?=Html::jsFile('@web/js/plugins/chosen/chosen.jquery.js')?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>客房基础资料录入管理</h5>
<div class="ibox-tools">
<a class="collapse-link" data-href="#basic">
<i class="fa fa-chevron-up"></i>
</a>
<a class="close-link" data-href="#basic">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<div class="ibox-content" id="basic">
<div class="alert alert-info">
此处录入客房的基础资料
</div>
<form class="form-horizontal m-t" method="post" action="<?=Url::toRoute(['room/save','op'=>'basic'])?>" role="form">
<input type="hidden" name="_csrf-backend" value="<?=Yii::$app->getRequest()->getCsrfToken();?>" />
<input type="hidden" name="id" value="<?=isset($detail['id'])?$detail['id']:0;?>">
<div class="form-group draggable">
<label class="col-sm-2 control-label">归属酒店:
</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="hotel_title" id="hotel-title" value="<?=isset($detail['hotel_title'])?$detail['hotel_title']:'';?>" placeholder="点击选择关联酒店" autocomplete="off" href="<?=Url::toRoute(['hotel/select','callback'=>'hotel']);?>" w="80%;" h="90%;" title="选择所在关联酒店" mini="load">
<input type="hidden" class="form-control" name="hotel_id" id="hotel-value" value="<?=isset($detail['hotel_id'])?$detail['hotel_id']:0;?>">
</div>
<script>
function selectHotel(title,id,callback)
{
layer.closeAll();
layer.msg('已选择');
$('#'+callback+'-value').val(id);
$('#'+callback+'-title').val(title);
}
</script>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label"><span class="red">*</span> 房间名称:</label>
<div class="col-sm-5">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">名称</button>
</span>
<input class="input-sm form-control" type="text" name="title" value="<?=isset($detail['title'])?$detail['title']:'';?>" placeholder="请输入房间名称" autocomplete="on">
</div>
<span class="help-block m-b-none">如:无敌海景大床房</span>
</div>
<div class="col-sm-3">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">房号</button>
</span>
<input class="input-sm form-control" type="text" name="sn" value="<?=isset($detail['sn'])?$detail['sn']:'';?>" placeholder="请输入房号" autocomplete="on">
</div>
<span class="help-block m-b-none">如:憩云阁A1507;请根据实际情况填写并尽量保持简洁</span>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label">主形象图:</label>
<div class="col-sm-8">
<div class="input-group">
<input type="text" class="form-control" name="thumb" id="thumb-value" placeholder="如有房间照片,可上传一张" autocomplete="off" value="<?=isset($detail['thumb'])?$detail['thumb']:'';?>"> <span class="input-group-btn"> <button type="button" class="btn btn-primary" data-id="thumb-value" href="<?= Url::toRoute(['upload/image','multi'=>false,'callback'=>'thumb']);?>" w="80%;" h="90%;" title="选择或上传图片" mini="load">选择图片
</button> </span>
</div>
<div class="input-group " style="margin-top:.5em;">
<img id="thumb-preview" src="<?=isset($detail['thumb'])? Yii::$app->params['attachSrc'].Yii::$app->params['attachDir'].$detail['thumb']:'../img/nopic.jpg';?>" onerror="this.src='../img/nopic.jpg'; this.title='图片未找到.'" class="img-responsive img-thumbnail" width="150">
<em class="close" style="position:absolute; top: 0px; right: -14px;" title="删除这张图片" onclick="deleteImage(this)">×</em>
</div>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label"><span class="red">*</span>户型结构:</label>
<div class="col-sm-6">
<div class="input-group">
<input class="input-sm form-control" type="text" placeholder="" name="f" value="<?=isset($detail['f'])?$detail['f']:''?>">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-info">室</button>
</span>
<input class="input-sm form-control" type="text" placeholder="" name=t" value="<?=isset($detail['t'])?$detail['t']:''?>">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-info">厅</button>
</span>
<input class="input-sm form-control" type="text" placeholder="" name="c" value="<?=isset($detail['c'])?$detail['c']:''?>">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-info">厨</button>
</span>
<input class="input-sm form-control" type="text" placeholder="" name="w" value="<?=isset($detail['w'])?$detail['w']:''?>">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-info">卫</button>
</span>
<input class="input-sm form-control" type="text" placeholder="" name="b" value="<?=isset($detail['b'])?$detail['b']:''?>">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-info">阳台</button>
</span>
</div>
</div>
<div class="col-sm-2">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">面积</button>
</span>
<input class="input-sm form-control" type="text" placeholder="请输入面积(单位:平方米);四舍五入取整即可" name="measure" value="<?=isset($detail['measure'])?$detail['measure']:''?>">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-info">m<sup>2</sup></button>
</span>
</div>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label"><span class="red">*</span> 地理位置:</label>
<div class="col-sm-3" style="margin-right: 0; padding-right: 0;">
<input type="text" class="form-control" value="<?=isset($detail['lat'])?$detail['lat']:'';?>" placeholder="纬度" id="lat" name="lat"/>
</div>
<div class="col-sm-2" style="margin: 0;padding: 0;width: 3rem; line-height: 3rem;text-align: center;">--</div>
<div class="col-sm-3" style="margin-left: 0; padding-left: 0;" >
<input type="text" class="form-control" value="<?=isset($detail['longt'])?$detail['longt']:'';?>" placeholder="经度" id="lng" name="lng"/>
</div>
<div class="col-sm-2">
<button type="button" mini="load" w="90%" h="90%" href="<?=Url::toRoute(['index/map','callback'=>'showLatLng','lat'=>isset($detail['lat'])?$detail['lat']:'0','lng'=>isset($detail['longt'])?$detail['longt']:'0']);?>" class="btn btn-w-m btn-primary">从地图选择</button>
</div>
<script>
function showLatLng(lat,lng,detail){
layer.closeAll();
layer.msg('选取经纬度成功!');
$("#lat").val(lat);
$("#lng").val(lng);
$("#address").val(detail);
}
</script>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label"><span class="red">*</span> 地址:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="addr" id="address" placeholder="请填写具体位置,如**路**号**楼**室" value="<?=isset($detail['addr'])?$detail['addr']:'';?>" autocomplete="off">
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label">详情:</label>
<div class="col-sm-8">
<textarea id="editor" name="editor" style="min-height:300px;"><?=isset($detail['detail'])?$detail['detail']:''?></textarea>
<script type="text/javascript">
//实例化编辑器
//建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例
var ue = UE.getEditor('editor');
/* 传入参数表,添加到已有参数表里 */
ue.ready(function() {
ue.execCommand('serverparam', {
'siteId': "<?=Yii::$app->params['siteId']?>",
'pid': "<?=Yii::$app->session->get('pid')?>",
'attachSrc': "<?=Yii::$app->params['attachSrc']?>",
'attachDir': "<?=Yii::$app->params['attachDir']?>"
});
});
</script>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label">是否删除:
</label>
<div class="col-sm-8">
<label class="radio-inline">
<input type="radio" <?=(isset($detail['deleted'])&&$detail['deleted']==1)?'checked':'';?> value="1" id="deleted1" name="deleted">是</label>
<label class="radio-inline">
<input type="radio" <?=((!isset($detail['deleted']))||isset($detail['deleted'])&&$detail['deleted']==0)?'checked':'';?> value="0" id="deleted2" name="deleted">否</label>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group draggable">
<div class="col-sm-22 col-sm-offset-3">
<button class="btn btn-primary" type="submit">保存</button>
<button class="btn btn-white" type="reset">清空</button>
<a class="btn btn-white" href="<?=Yii::$app->request->referrer?>">取消并返回</a>
<a class="btn btn-info" href="<?=Url::toRoute('room/list')?>">全部房间</a>
</div>
</div>
</form>
<div class="clearfix"></div>
</div>
<?php if(isset($detail['id']) && $detail['id']>0){ ?>
<div class="ibox-title">
<h5>客房参数资料录入管理</h5>
<div class="ibox-tools">
<a class="collapse-link" data-href="#params">
<i class="fa fa-chevron-up"></i>
</a>
<a class="close-link" data-href="#params">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<div class="ibox-content" id="params">
<div class="alert alert-info">
此处录入客房的参数资料
</div>
<form class="form-horizontal m-t" method="post" action="<?=Url::toRoute(['room/save','op'=>'params'])?>" role="form">
<input type="hidden" name="_csrf-backend" value="<?=Yii::$app->getRequest()->getCsrfToken();?>" />
<input type="hidden" name="id" value="<?=isset($detail['id'])?$detail['id']:0;?>">
<div class="form-group draggable">
<label class="col-sm-1 control-label">WIFI:
</label>
<div class="col-sm-1">
<label class="radio-inline">
<input type="radio" <?=(isset($detail['wifi'])&&$detail['wifi']==1)?'checked':'';?> value="1" id="wifi1" name="wifi">有</label>
<label class="radio-inline">
<input type="radio" <?=((!isset($detail['wifi']))||isset($detail['wifi'])&&$detail['wifi']==0)?'checked':'';?> value="0" id="wifi2" name="wifi">无</label>
</div>
<label class="col-sm-1 control-label">开火:
</label>
<div class="col-sm-2">
<label class="radio-inline">
<input type="radio" <?=(isset($detail['cooking'])&&$detail['cooking']==1)?'checked':'';?> value="1" id="cooking1" name="cooking">支持</label>
<label class="radio-inline">
<input type="radio" <?=((!isset($detail['cooking']))||isset($detail['cooking'])&&$detail['cooking']==0)?'checked':'';?> value="0" id="cooking2" name="cooking">不支持</label>
</div>
<label class="col-sm-1 control-label">天然气:
</label>
<div class="col-sm-1">
<label class="radio-inline">
<input type="radio" <?=(isset($detail['gas'])&&$detail['gas']==1)?'checked':'';?> value="1" id="gas1" name="gas">有</label>
<label class="radio-inline">
<input type="radio" <?=((!isset($detail['gas']))||isset($detail['gas'])&&$detail['gas']==0)?'checked':'';?> value="0" id="gas2" name="gas">无</label>
</div>
<label class="col-sm-1 control-label">泳池:
</label>
<div class="col-sm-1">
<label class="radio-inline">
<input type="radio" <?=(isset($detail['swimmingpool'])&&$detail['swimmingpool']==1)?'checked':'';?> value="1" id="swimmingpool1" name="swimmingpool">有</label>
<label class="radio-inline">
<input type="radio" <?=((!isset($detail['swimmingpool']))||isset($detail['swimmingpool'])&&$detail['swimmingpool']==0)?'checked':'';?> value="0" id="swimmingpool2" name="swimmingpool">无</label>
</div>
<label class="col-sm-1 control-label">停车位:
</label>
<div class="col-sm-1">
<label class="radio-inline">
<input type="radio" <?=(isset($detail['parker'])&&$detail['parker']==1)?'checked':'';?> value="1" id="parker1" name="parker">有</label>
<label class="radio-inline">
<input type="radio" <?=((!isset($detail['parker']))||isset($detail['parker'])&&$detail['parker']==0)?'checked':'';?> value="0" id="parker2" name="parker">无</label>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group draggable">
<div class="col-sm-22 col-sm-offset-3">
<button class="btn btn-primary" type="submit">保存</button>
<button class="btn btn-white" type="reset">清空</button>
<a class="btn btn-white" href="<?=Yii::$app->request->referrer?>">取消并返回</a>
<a class="btn btn-info" href="<?=Url::toRoute('room/list')?>">全部房间</a>
</div>
</div>
</form>
<div class="clearfix"></div>
</div>
<?php }?>
<?php if(isset($detail['id']) && $detail['id']>0){ ?>
<div class="ibox-title">
<h5>客房业主关联管理</h5>
<div class="ibox-tools">
<a class="collapse-link" data-href="#owner">
<i class="fa fa-chevron-up"></i>
</a>
<a class="close-link" data-href="#owner">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<div class="ibox-content" id="owner">
<div class="alert alert-info">
此处录入客房的业主资料
</div>
<form class="form-horizontal m-t" method="post" action="<?=Url::toRoute(['room/save','op'=>'owner'])?>" role="form">
<input type="hidden" name="_csrf-backend" value="<?=Yii::$app->getRequest()->getCsrfToken();?>" />
<input type="hidden" name="id" value="<?=isset($detail['id'])?$detail['id']:0;?>">
<div class="form-group draggable">
<label class="col-sm-2 control-label">归属业主:
</label>
<div class="col-sm-9">
<div class="input-group">
<input type="text" class="form-control" name="owner_title" id="owner-title" value="<?=isset($detail['owner_title'])?$detail['owner_title']:'';?>" placeholder="点击选择关联业主" autocomplete="off" href="<?=Url::toRoute(['owner/select','callback'=>'owner']);?>" w="80%;" h="90%;" title="选择所在关联业主" mini="load">
<input type="hidden" class="form-control" name="owner_id" id="owner-value" value="<?=isset($detail['owner_id'])?$detail['owner_id']:0;?>">
<span class="input-group-btn">
<button type="button" class="btn btn-info" onclick="clearOwner('owner')">清除选择</button>
</span>
</div>
</div>
<script>
function selectOwner(title,id,callback)
{
layer.closeAll();
layer.msg('已选择');
$('#'+callback+'-value').val(id);
$('#'+callback+'-title').val(title);
}
function clearOwner(id)
{
$('#'+id+'-value').val('');
$('#'+id+'-title').val('');
}
</script>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label"><span class="red">*</span> 收益情况:</label>
<div class="col-sm-3">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">总收入</button>
</span>
<input class="input-sm form-control" type="text" name="income" value="<?=isset($detail['income'])?$detail['income']:'未填写';?>" placeholder="请输入该房间截止目前的累计收入金额" autocomplete="on">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-info">元</button>
</span>
</div>
<span class="help-block m-b-none">单位:元; 支持小数</span>
</div>
<div class="col-sm-3">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">总支出</button>
</span>
<input class="input-sm form-control" type="text" name="expense" value="<?=isset($detail['expense'])?$detail['expense']:'未填写';?>" placeholder="请输入该房间截止目前的累计支出费用" autocomplete="on">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-info">元</button>
</span>
</div>
<span class="help-block m-b-none">单位:元; 支持小数</span>
</div>
<div class="col-sm-3">
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-primary">总盈余</button>
</span>
<input class="input-sm form-control" type="text" name="surplus" value="<?=isset($detail['surplus'])?$detail['surplus']:'未填写';?>" placeholder="请输入该房间截止目前的累计盈余金额" autocomplete="on">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-info">元</button>
</span>
</div>
<span class="help-block m-b-none">单位:元; 支持小数</span>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label">签约时间:</label>
<div class="col-sm-2">
<input class="form-control layer-date" type="text" name="signtime" placeholder="请选择日期" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($detail['signtime'])?$detail['signtime']:''?>">
</div>
<label class="col-sm-1 control-label">签约时长:</label>
<div class="col-sm-2">
<div class="input-group">
<input class="input-sm form-control" type="text" placeholder="请将时长换算为月数" name="signmonths" value="<?=isset($detail['signmonths'])?$detail['signmonths']:''?>">
<span class="input-group-btn">
<button type="button" class="btn btn-sm btn-info">月</button>
</span>
</div>
</div>
<label class="col-sm-2 control-label">到期时间:</label>
<div class="col-sm-2">
<input class="form-control layer-date" type="text" name="deadline" placeholder="请选择日期" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($detail['deadline'])?$detail['deadline']:''?>">
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group draggable">
<div class="col-sm-22 col-sm-offset-3">
<button class="btn btn-primary" type="submit">保存</button>
<button class="btn btn-white" type="reset">清空</button>
<a class="btn btn-white" href="<?=Yii::$app->request->referrer?>">取消并返回</a>
<a class="btn btn-info" href="<?=Url::toRoute('room/list')?>">全部房间</a>
</div>
</div>
</form>
<div class="clearfix"></div>
</div>
<?php }?>
<?php if(isset($detail['id']) && $detail['id']>0){ ?>
<div class="ibox-title">
<h5>客房其他内容管理</h5>
<div class="ibox-tools">
<a class="collapse-link" data-href="#other">
<i class="fa fa-chevron-up"></i>
</a>
<a class="close-link" data-href="#other">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<div class="ibox-content" id="other">
<div class="alert alert-info">
此处录入客房的其他资料
</div>
<form class="form-horizontal m-t" method="post" action="<?=Url::toRoute(['room/save','op'=>'other'])?>" role="form">
<input type="hidden" name="_csrf-backend" value="<?=Yii::$app->getRequest()->getCsrfToken();?>" />
<input type="hidden" name="id" value="<?=isset($detail['id'])?$detail['id']:0;?>">
<div class="form-group draggable">
<label class="col-sm-2 control-label">景观:</label>
<div class="col-sm-8">
<textarea class="form-control" id="landscape" name="landscape"><?=isset($detail['landscape'])?$detail['landscape']:''?></textarea>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label">特色:</label>
<div class="col-sm-8">
<textarea class="form-control" id="feature" name="feature"><?=isset($detail['feature'])?$detail['feature']:''?></textarea>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label">标签:</label>
<div class="col-sm-8">
<textarea class="form-control" id="tag" name="tag"><?=isset($detail['tag'])?$detail['tag']:''?></textarea>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label">交通:</label>
<div class="col-sm-8">
<textarea class="form-control" id="traffic" name="traffic"><?=isset($detail['traffic'])?$detail['traffic']:''?></textarea>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-2 control-label">备注:</label>
<div class="col-sm-8">
<textarea id="remark-editor" name="remark-editor" style="min-height:300px;"><?=isset($detail['remark'])?$detail['remark']:''?></textarea>
<script type="text/javascript">
//实例化编辑器
//建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例
var ue2 = UE.getEditor('remark-editor');
/* 传入参数表,添加到已有参数表里 */
ue2.ready(function() {
ue2.execCommand('serverparam', {
'siteId': "<?=Yii::$app->params['siteId']?>",
'pid': "<?=Yii::$app->session->get('pid')?>",
'attachSrc': "<?=Yii::$app->params['attachSrc']?>",
'attachDir': "<?=Yii::$app->params['attachDir']?>"
});
});
</script>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group draggable">
<div class="col-sm-22 col-sm-offset-3">
<button class="btn btn-primary" type="submit">保存</button>
<button class="btn btn-white" type="reset">清空</button>
<a class="btn btn-white" href="<?=Yii::$app->request->referrer?>">取消并返回</a>
<a class="btn btn-info" href="<?=Url::toRoute('room/list')?>">全部房间</a>
</div>
</div>
</form>
<div class="clearfix"></div>
</div>
<?php }?>
</div>
</div>
</div>
</div>
<script type="text/javascript">
function showImageFrame(obj){
//取预设参数
var id,title,width,height,url;
id = $(obj).attr('data-id');
title = $(obj).attr('data-title');
width = $(obj).attr('data-width');
height = $(obj).attr('data-height');
url = $(obj).attr('data-src');
//iframe层
parent.layer.open({
type: 2,
title: title,
shadeClose: true,
shade: 0.8,
area: [width, height],
content: url //iframe的url
});
}
function deleteImage(elm){
$(elm).prev().attr("src", "../img/nopic.jpg");
$(elm).parent().prev().find("input").val("");
parent.layer.msg('图片已删除;您可重新上传');
}
function selectImage(title,path,src,callback)
{
layer.closeAll();
layer.msg('图片已选择');
$('#'+callback+'-value').val(path);
$('#'+callback+'-preview').attr('src',src).attr('title',title);
}
</script>
<script>
laydate.skin('molv');
$(document).ready(function() {
var config = {
".chosen-select": {},
".chosen-select-deselect": {
allow_single_deselect: !0
},
".chosen-select-no-single": {
disable_search_threshold: 10
},
".chosen-select-no-results": {
no_results_text: "Oops, nothing found!"
},
".chosen-select-width": {
width: "95%"
}
};
for (var selector in config) $(selector).chosen(config[selector]);
});
</script>
<style>
.laydate_body .laydate_top{
padding:0;
}
.laydate_body .laydate_ym{
/*margin:0;
padding:5px;*/
}
.laydate_body .laydate_table{
border:0;
border-bottom: 1px solid rgb(204, 204, 204);
}
.laydate_body .laydate_bottom {
border: 0;
margin-bottom: 10px;
}
</style>
<style>
.chosen-container-single .chosen-single{
line-height:30px;
}
</style>
+90
View File
@@ -0,0 +1,90 @@
<?php
/**
* @Author: fm453
* @Date: 2018-11-23 12:17:02
* @Last Modified by: fm453
* @Last Modified time: 2018-12-11 01:30:24
* @Email: fm453@lukegzs.com
*/
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\helpers\Url;
use yii\widgets\LinkPager;
$this->title = '酒店列表';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-content">
<h1><?= Html::encode($this->title) ?></h1>
<div class="row">
<div class="col-sm-3">
<a class="btn btn-info btn-sm" href="<?= Url::toRoute('hotel/new')?>">新增酒店</a>
</div>
<div class="col-sm-3 pull-right">
<form action="<?=Url::toRoute('hotel/list')?>" method="post">
<input type="hidden" name="_csrf-backend" value="<?= Yii::$app->getRequest()->getCsrfToken();?>" />
<div class="input-group">
<input type="text" placeholder="请输入酒店名" name="title" class="input-sm form-control">
<span class="input-group-btn">
<button type="submit" class="btn btn-sm btn-primary"> 搜索</button>
</span>
</div>
</form>
</div>
</div>
<hr>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>序号</th>
<th>区域地址</th>
<th>名称</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php foreach($hotels as $vo):?>
<tr>
<td><?=$vo['id']?></td>
<td>【<code><?=isset($citys[$vo['city']]['name'])?$citys[$vo['city']]['name']:'未设置'?></code>】<?=$vo['addr']?></td>
<td><?=$vo['title']?></td>
<td>
<?php if($vo['status_code']==1){?>
<a class="btn btn-info btn-xs" href="<?=Url::toRoute(['hotel/ajax','id'=>$vo['id'],'do'=>'hide'])?>" mini="ajax"><?=$status[$vo['status_code']]?></a>
<?php }else{?>
<a class="btn btn-default btn-xs" href="<?=Url::toRoute(['hotel/ajax','id'=>$vo['id'],'do'=>'show'])?>" mini="ajax"><?=$status[$vo['status_code']]?></a>
<?php }?>
</td>
<td>
<a class="btn btn-primary btn-xs" onclick="parent.selectHotel('<?=$vo['title']?>','<?=$vo['id']?>','<?=$callback?>');">选择</a>
</td>
</tr>
<?php endforeach;?>
</tbody>
</table>
<!--分页-->
<div class="f-r">
<?= LinkPager::widget([
'pagination'=>$pager,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
+18
View File
@@ -0,0 +1,18 @@
<?php
/* @var $this yii\web\View */
/* @var $name string */
/* @var $message string */
/* @var $exception Exception */
use yii\helpers\Html;
$this->title = $name;
?>
<div class="site-error">
<div style="margin-top: 100px;text-align: center;">
<h1><?= Html::encode($this->title) ?></h1><br>
</div>
<h4 style="margin: 10px auto;text-align: center;background-color: #1ab394; color: #ffffff;width: 500px;height: 50px;line-height: 50px;border-radius: 5px;"><?= nl2br(Html::encode($message)) ?></h4>
</div>
+290
View File
@@ -0,0 +1,290 @@
<?php
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\helpers\Url;
use mdm\admin\components\MenuHelper;
$this->title = Yii::t('backend' ,'System Name');
$keywords = '';
$description = '';
$this->params['breadcrumbs'][] = $this->title;
?>
<div id="wrapper">
<!--左侧导航开始-->
<nav class="navbar-default navbar-static-side" role="navigation">
<div class="nav-close"><i class="fa fa-times-circle"></i>
</div>
<div class="sidebar-collapse">
<ul class="nav" id="side-menu">
<li class="nav-header">
<div class="dropdown profile-element">
<span><img alt="image" class="img-circle" src="<?php echo Url::to(Yii::$app->user->identity->avatar);?>" /></span>
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<span class="clear">
<span class="block m-t-xs"><strong class="font-bold"><?= Yii::$app->user->identity->username ?></strong></span>
<span class="text-muted text-xs block"><?= $user_info?><b class="caret"></b></span>
</span>
</a>
<ul class="dropdown-menu animated fadeInRight m-t-xs">
<li><a class="J_menuItem" href="">修改头像</a>
</li>
<li><a class="J_menuItem" href="<?= Url::toRoute(['adminer/update','id'=>Yii::$app->user->identity->getId()])?>">个人资料</a>
</li>
<li class="divider"></li>
<li><a href="<?=Url::toRoute('site/logout')?>">安全退出</a>
</li>
</ul>
</div>
<div class="logo-element">Hi
</div>
</li>
<?php foreach($menu as $v1):?>
<?php $data = json_decode($v1['data'], true);?>
<li><!--一级级菜单-->
<a href="#">
<i class="<?=$data['icon']?>"></i>
<span class="nav-label"><?= $v1['name']?></span>
<span class="fa arrow"></span>
</a>
<?php if(array_key_exists('_child',$v1)):?>
<ul class="nav nav-second-level">
<?php foreach($v1['_child'] as $v2):?>
<?php $data2 = json_decode($v2['data'], true);?>
<?php if(array_key_exists('_child',$v2)):?>
<li><!--二级菜单-->
<a href="#">
<?php if($data2['icon']):?><i class="<?=$data2['icon']?>"></i><?php endif;?><?= $v2['name']?>
<span class="fa arrow"></span>
</a>
<?php if(!empty($v2['_child'])):?>
<ul class="nav nav-third-level collapse">
<?php foreach($v2['_child'] as $v3):?>
<li><!--三级菜单-->
<a class="J_menuItem" href="<?= Url::toRoute($v3['route']);?>" data-index="0" onclick="active(this)"><?= $v3['name']?></a>
</li>
<?php endforeach;?>
</ul>
<?php endif;?>
</li>
<?php else:?>
<li><!--二级菜单-->
<a class="J_menuItem" href="<?= Url::toRoute($v2['route']);?>" data-index="0" onclick="active(this)"><?= $v2['name']?></a>
</li>
<?php endif;?>
<?php endforeach;?>
</ul>
<?php endif;?>
</li>
<?php endforeach;?>
</ul>
</div>
</nav>
<script>
function active(obj){
$('a.J_menuItem').css({'background-color':'','color':''});
$(obj).css({'background-color':'#0095f6','color':'#fff'});
}
</script>
<!--左侧导航结束-->
<!--右侧部分开始-->
<div id="page-wrapper" class="gray-bg dashbard-1">
<div class="row border-bottom">
<nav class="navbar navbar-static-top" role="navigation" style="margin-bottom: 0">
<div class="navbar-header"><a class="navbar-minimalize minimalize-styl-2 btn btn-primary " href="#"><i class="fa fa-bars"></i> </a>
<button class="navbar-minimalize minimalize-styl-2 btn btn-primary " >V<?php echo Yii::getVersion();?></button><form role="search" class="navbar-form-custom" method="post" action="#">
<div class="form-group">
<input type="text" placeholder="快速查找(该功能暂未开放) …" class="form-control" name="top-search" id="top-search" style="border-bottom: 1px solid rgb(204, 204, 204);">
</div>
</form>
</div>
<ul class="nav navbar-top-links navbar-right">
<li class="dropdown">
<a class="dropdown-toggle count-info" data-toggle="dropdown" href="#">
<i class="fa fa-bell"></i> <span class="label label-warning">8</span>
</a>
<ul class="dropdown-menu dropdown-alerts">
<li>
<a href="#">
<div>
<i class="fa fa-envelope fa-fw"></i> 还只是测试
<span class="pull-right text-muted small">4分钟前</span>
</div>
</a>
</li>
<li class="divider"></li>
<li>
<a href="#">
<div>
<i class="fa fa-qq fa-fw"></i> 请忽略我
<span class="pull-right text-muted small">12分钟前</span>
</div>
</a>
</li>
<li class="divider"></li>
<li>
<div class="text-center link-block">
<a class="J_menuItem" href="#">
<strong>查看所有 </strong>
<i class="fa fa-angle-right"></i>
</a>
</div>
</li>
</ul>
</li>
<li class="dropdown hidden-xs">
<a class="right-sidebar-toggle" aria-expanded="false">
<i class="fa fa-tasks"></i> 主题
</a>
</li>
</ul>
</nav>
</div>
<!--页卡导航-->
<div class="row content-tabs">
<button class="roll-nav roll-left J_tabLeft"><i class="fa fa-backward"></i>
</button>
<nav class="page-tabs J_menuTabs">
<div class="page-tabs-content">
<a href="javascript:;" class="active J_menuTab" data-id="">首页</a>
</div>
</nav>
<button class="roll-nav roll-right J_tabRight"><i class="fa fa-forward"></i>
</button>
<div class="btn-group roll-nav roll-right">
<button class="dropdown J_tabClose" data-toggle="dropdown">关闭操作<span class="caret"></span>
</button>
<ul role="menu" class="dropdown-menu dropdown-menu-right">
<li class="J_tabShowActive"><a>定位当前选项卡</a>
</li>
<li class="divider"></li>
<li class="J_tabCloseAll"><a>关闭全部选项卡</a>
</li>
<li class="J_tabCloseOther"><a>关闭其他选项卡</a>
</li>
</ul>
</div>
<a href="<?=Url::toRoute('site/logout')?>" class="roll-nav roll-right J_tabExit"><i class="fa fa fa-sign-out"></i> 退出</a>
</div>
<div class="row J_mainContent" id="content-main">
<iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="<?= Url::toRoute('index/welcome')?>" frameborder="0" data-id="" seamless></iframe>
</div>
<div class="footer">
<div class="pull-right">
Copyright &copy; <?= Yii::t('common' ,'Company Create Time') ?>-<?php echo date('Y',time()); ?> <a href="http://vcms.hiluker.com" target="_blank">微营销管理系统</a>
</div>
</div>
</div>
<!--右侧部分结束-->
<!--右侧边栏开始-->
<div id="right-sidebar">
<div class="sidebar-container">
<ul class="nav nav-tabs navs-3">
<li class="active ">
<a data-toggle="tab" href="#tab-1">
<i class="fa fa-gear"></i> 主题
</a>
</li>
</ul>
<div class="tab-content">
<div id="tab-1" class="tab-pane active">
<div class="sidebar-title ">
<h3> <i class="fa fa-comments-o"></i> 主题设置</h3>
<small><i class="fa fa-tim"></i> 你可以从这里选择和预览主题的布局和样式;刷新后或重新登陆后即会重置。</small>
</div>
<div class="skin-setttings">
<div class="title">主题设置</div>
<div class="setings-item">
<span>收起左侧菜单</span>
<div class="switch">
<div class="onoffswitch">
<input type="checkbox" name="collapsemenu" class="onoffswitch-checkbox" id="collapsemenu">
<label class="onoffswitch-label" for="collapsemenu" onclick="changeStyle('leftMenu');">
<span class="onoffswitch-inner"></span>
<span class="onoffswitch-switch"></span>
</label>
</div>
</div>
</div>
<div class="setings-item">
<span>固定顶部</span>
<div class="switch">
<div class="onoffswitch">
<input type="checkbox" name="fixednavbar" class="onoffswitch-checkbox" id="fixednavbar">
<label class="onoffswitch-label" for="fixednavbar">
<span class="onoffswitch-inner"></span>
<span class="onoffswitch-switch"></span>
</label>
</div>
</div>
</div>
<div class="setings-item">
<span>
固定宽度
</span>
<div class="switch">
<div class="onoffswitch">
<input type="checkbox" name="boxedlayout" class="onoffswitch-checkbox" id="boxedlayout">
<label class="onoffswitch-label" for="boxedlayout">
<span class="onoffswitch-inner"></span>
<span class="onoffswitch-switch"></span>
</label>
</div>
</div>
</div>
<div class="title">皮肤选择</div>
<div class="setings-item default-skin nb">
<span class="skin-name ">
<a href="#" class="s-skin-0">
默认皮肤
</a>
</span>
</div>
<div class="setings-item blue-skin nb">
<span class="skin-name ">
<a href="#" class="s-skin-1">
蓝色主题
</a>
</span>
</div>
<div class="setings-item yellow-skin nb">
<span class="skin-name ">
<a href="#" class="s-skin-3">
黄色主题
</a>
</span>
</div>
<div class="setings-item red-skin nb">
<span class="skin-name ">
<a href="#" class="s-skin-2">
红色主题
</a>
</span>
</div>
<div class="title">
<a class="right-sidebar-toggle" aria-expanded="false">
<i class="fa fa-close"></i> 关闭
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<!--右侧边栏结束-->
</div>
<?=Html::jsFile('@web/js/plugins/metisMenu/jquery.metisMenu.js')?>
<?=Html::jsFile('@web/js/plugins/slimscroll/jquery.slimscroll.min.js')?>
<?=Html::jsFile('@web/js/hplus.min.js')?>
<?=Html::jsFile('@web/js/contabs.min.js')?>
<?=Html::jsFile('@web/js/plugins/pace/pace.min.js')?>
+47
View File
@@ -0,0 +1,47 @@
<?php
/* @var $this yii\web\View */
/* @var $form yii\bootstrap\ActiveForm */
/* @var $model \common\models\LoginForm */
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
$this->title = Yii::t('backend' ,'System Name');
$keywords = '';
$description = '';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="middle-box text-center loginscreen animated fadeInDown">
<div>
<div>
<h1 class="logo-name">Hi</h1>
</div>
<h3><?php echo $this->title ?></h3>
<div class="row">
<div class="">
<?php $form = ActiveForm::begin(['id' => 'login-form']); ?>
<?= $form->field($model, 'username')->textInput(['autofocus' => true])->label(Yii::t('common' ,'Username')) ?>
<?= $form->field($model, 'password')->passwordInput()->label(Yii::t('common' ,'Password')) ?>
<?= $form->field($model, 'rememberMe')->checkbox()->label(Yii::t('common' ,'Remember Me')) ?>
<div class="form-group">
<?= Html::submitButton(Yii::t('common' ,'Login'), ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
</div>
</div>
<div class="footer">
<div class="">Copyright &copy; <?=Yii::t('common' ,'Company Create Time') ?>-<?php echo date('Y',time()); ?> <a href="https://www.hiluker.com" target="_blank">嗨路客电子商务</a>
</div>
</div>
</div>
+155
View File
@@ -0,0 +1,155 @@
<?php
use yii\helpers\Html;
use yii\helpers\Url;
?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>基础资料</h5>
<div class="ibox-tools">
<a class="collapse-link">
<i class="fa fa-chevron-up"></i>
</a>
<a class="close-link">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<div class="ibox-content">
<div class="alert alert-info">
在此处录入新车主客户的基础资料,系统自动为其新建一份档案;
</div>
<form role="form" class="form-horizontal m-t">
<div class="form-group draggable">
<label class="col-sm-1 control-label">姓名:</label>
<div class="col-sm-9">
<input class="form-control" type="text" name="realname" placeholder="请输入客户的姓名" autocomplete="off">
<span class="help-block m-b-none">这里输入车主的真实姓名,如果没有则不填</span>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">昵称:</label>
<div class="col-sm-9">
<input class="form-control" type="text" name="nickname" placeholder="请输入客户的昵称" autocomplete="off">
<span class="help-block m-b-none">这里输入车主的昵称,如<code>板爷</code>、<code>方少</code></span>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">称谓:</label>
<div class="col-sm-9">
<input class="form-control" type="text" name="title" placeholder="请输入客户的称谓" autocomplete="off">
<span class="help-block m-b-none">这里输入车主的称谓,如“马老师”、“李叔”、“王教授”</span>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">手机号:</label>
<div class="col-sm-9">
<input class="form-control" type="text" name="mobile" placeholder="请输入客户的手机号" autocomplete="off">
<span class="help-block m-b-none">多个手机号时,号码间用逗号(<kbd>,</kbd> )隔开;主手机放前,如<code>18608981880</code><kbd>,</kbd><code>13812345678</code>。</span>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">密码框:</label>
<div class="col-sm-9">
<input class="form-control" type="password" name="password" placeholder="请输入密码,可用于平台后期开放的用户端登陆" autocomplete="off" value="123456">
<span class="help-block m-b-none">预留功能,如不填写,将默认使用初始密码<code>123456</code></span>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">性别:</label>
<div class="col-sm-9">
<select class="form-control" name="gender">
<option value="0">未知</option>
<option value="1">男</option>
<option value="2">女</option>
</select>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">车主照片:</label>
<div class="col-sm-9">
<div class="input-group">
<input type="text" class="form-control" name="thumb" id="thumb-value" placeholder="如有车主照片,可上传一张" autocomplete="off"> <span class="input-group-btn"> <button type="button" class="btn btn-primary" onclick="showImageFrame(this);" data-id="thumb-value" data-src="<?= Url::toRoute(['upload/image','multi'=>false]);?>" data-width="80%;" data-height="90%;" data-title="选择或上传图片">选择图片
</button> </span>
</div>
<div class="input-group " style="margin-top:.5em;">
<img src="../img/nopic.jpg" onerror="this.src='../img/nopic.jpg'; this.title='图片未找到.'" class="img-responsive img-thumbnail" width="150">
<em class="close" style="position:absolute; top: 0px; right: -14px;" title="删除这张图片" onclick="deleteImage(this)">×</em>
</div>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">创建时间:</label>
<div class="col-sm-9">
<p class="form-control-static"><?php echo date('Y-m-d h:i');?></p>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">单选框:
</label>
<div class="col-sm-9">
<label class="radio-inline">
<input type="radio" checked="" value="option1" id="optionsRadios1" name="optionsRadios">选项1</label>
<label class="radio-inline">
<input type="radio" value="option2" id="optionsRadios2" name="optionsRadios">选项2</label>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-1 control-label">复选框:</label>
<div class="col-sm-9">
<label class="checkbox-inline">
<input type="checkbox" value="option1" id="inlineCheckbox1">选项1</label>
<label class="checkbox-inline">
<input type="checkbox" value="option2" id="inlineCheckbox2">选项2</label>
<label class="checkbox-inline">
<input type="checkbox" value="option3" id="inlineCheckbox3">选项3</label>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group draggable">
<div class="col-sm-12 col-sm-offset-3">
<button class="btn btn-primary" type="submit">保存内容</button>
<button class="btn btn-white" type="submit">取消</button>
</div>
</div>
</form>
<div class="clearfix"></div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
function showImageFrame(obj){
//取预设参数
var id,title,width,height,url;
id = $(obj).attr('data-id');
title = $(obj).attr('data-title');
width = $(obj).attr('data-width');
height = $(obj).attr('data-height');
url = $(obj).attr('data-src');
//iframe层
parent.layer.open({
type: 2,
title: title,
shadeClose: true,
shade: 0.8,
area: [width, height],
content: url //iframe的url
});
}
function deleteImage(elm){
$(elm).prev().attr("src", "../img/nopic.jpg");
$(elm).parent().prev().find("input").val("");
parent.layer.msg('图片已删除;您可重新上传');
}
</script>
+168
View File
@@ -0,0 +1,168 @@
<?php
use yii\helpers\Html;
use yii\helpers\Url;
use \yii\widgets\LinkPager;
$max_multi = 1; //单次最多上传数量;默认是300张
$max_size = 1024*1024*3; //3M,换算成字节
$total_size = 1024*1024*50; //50M
?>
<?=Html::cssFile('@web/css/plugins/webuploader/webuploader.css')?>
<?=Html::cssFile('@web/css/demo/webuploader-demo.min.css')?>
<div class="wrapper wrapper-content animated fadeIn">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>图片上传</h5>
<div class="ibox-tools">
<a class="collapse-link">
<i class="fa fa-chevron-up"></i>
</a>
<a class="close-link">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<div class="ibox-content">
<div class="page-container">
<p>您可以尝试文件拖拽,使用QQ截屏工具,然后激活窗口后粘贴,或者点击添加图片按钮.</p>
<div id="uploader" class="wu-example">
<div class="queueList">
<div id="dndArea" class="placeholder">
<div id="filePicker"></div>
<p>或将照片拖到这里,单次最多可选<?php echo $max_multi;?>张</p>
</div>
</div>
<div class="statusBar" style="display:none;">
<div class="progress">
<span class="text">0%</span>
<span class="percentage"></span>
</div>
<div class="info"></div>
<div class="btns">
<div id="filePicker2"></div>
<div class="uploadBtn">开始上传</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-12">
<div class="input-group">
<span class="input-group-btn"> <button id="callback-title" type="button" class="btn btn-primary">图片标题
</button> </span>
<input class="form-control" type="text" id="callback" name="callback" placeholder="文件保存地址" autocomplete="off">
</div>
</div>
</div>
</div>
<script>
var UPLOAD_BUTTON_LABEL = '点击选择图片';
var UPLOAD_BASE_URL = 'js/plugins/webuploader'; //上传组件目录定义
var UPLOAD_SERVER_URL = '../js/plugins/webuploader/upload.php?pid=<?php echo $_SESSION['pid'];?>&dir=<?php echo Yii::getAlias("@upload");?>&type=pics'; //服务器上传处理地址
var UPLOAD_JSON_POST_URL = '<?=Url::toRoute(["upload/image_save"])?>'; //上传成功后的业务逻辑地址
var UPLOAD_ACCEPT_EXTENSIONS = "gif,jpg,jpeg,bmp,png"; //允许的文件后缀
var UPLOAD_ACCEPT_FILETYPE = "image/*"; //允许的文件类型
var UPLOAD_ACCEPT_TITLE = 'Images';
var UPLOAD_MAX_NUM = '<?php echo $max_multi;?>'; //最大同时上传文件数
var UPLOAD_MAX_SIZE = '<?php echo $max_size;?>'; //最大单文件大小,bytes
var UPLOAD_TOTAL_SIZE = '<?php echo $total_size;?>'; //最大同时上传文件大小,bytes
</script>
<?=Html::jsFile('@web/js/plugins/webuploader/webuploader.min.js')?>
<?=Html::jsFile('@web/js/demo/webuploader-demo.min.js')?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-xs-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>您还可以直接选取已有图片</h5>
</div>
</div>
</div>
<div class="col-xs-12 hidden">
<div class="ibox float-e-margins">
<div class="ibox-content">
<div class="row">
<div class="table-responsive">
<form class="form-search" method="get" action="<?=Url::toRoute(["upload/image"])?>" role="form">
<table>
<tr>
<td>
</td>
<td>
<div class="input-group">
<button type="submit" style="margin-top: 42%"
class="btn form-control btn-sm btn-primary">
搜索
</button>
</div>
</td>
</tr>
</table>
</form>
</div>
</div>
</div>
</div>
</div>
<div class="col-xs-12">
<div class="ibox-content">
<div class="row" id="imageList">
<?php foreach($list as $val){ ?>
<div class="col-sm-4 col-md-3 col-lg-2">
<div class="thumbnail" data-toggle="tooltip" data-placement="top" title="点击图片即可选择">
<img style="height:300px;" alt="<?=$val['title']?>" src="<?=$src.$val['route']?>" title="<?=$val['title']?>" onclick="markImage(this);parent.selectImage('<?=$val['title']?>','<?=$val['route']?>','<?=$src.$val['route']?>','<?=$callback?>');" />
</div>
</div>
<?php } ?>
</div>
<div class="row">
<div class="table-responsive">
<div>
<!--分页-->
<div class="f-r" style="text-align: center;">
<?= LinkPager::widget([
'pagination'=>$pager,
'firstPageLabel' => '首页',
'nextPageLabel' => '下一页',
'prevPageLabel' => '上一页',
'lastPageLabel' => '末页',
]) ?>
</div>
</div>
</div><!-- /.row -->
</div><!-- /.main-container -->
</div>
</div>
</div>
</div>
<style>
#imageList .selected{
border-color:#0095f6;
background-color:#0095f6;
box-shadow: 3px 5px 2px;
}
</style>
<script>
$('[data-toggle="tooltip"]').tooltip();
function markImage(obj){
$('#imageList .selected').removeClass('selected');
$(obj).parent().addClass('selected');
// $(obj).parent().css({"border-color":"#0095f6","background-color":"#0095f6"});
}
</script>
</div>
</div>
+89
View File
@@ -0,0 +1,89 @@
<?php
use yii\helpers\Html;
use yii\helpers\Url;
?>
<?=Html::cssFile('@web/css/plugins/webuploader/webuploader.css')?>
<?=Html::cssFile('@web/css/demo/webuploader-demo.min.css')?>
<div class="wrapper wrapper-content animated fadeIn">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>图片上传</h5>
<div class="ibox-tools">
<a class="collapse-link">
<i class="fa fa-chevron-up"></i>
</a>
<a class="close-link">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<div class="ibox-content">
<div class="page-container">
<p>您可以尝试文件拖拽,使用QQ截屏工具,然后激活窗口后粘贴,或者点击添加图片按钮.</p>
<div id="uploader" class="wu-example">
<div class="queueList">
<div id="dndArea" class="placeholder">
<div id="filePicker"></div>
<p>或将照片拖到这里,单次最多可选300张</p>
</div>
</div>
<div class="statusBar" style="display:none;">
<div class="progress">
<span class="text">0%</span>
<span class="percentage"></span>
</div>
<div class="info"></div>
<div class="btns">
<div id="filePicker2"></div>
<div class="uploadBtn">开始上传</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
var BASE_URL = 'js/plugins/webuploader';
var UPLOAD_SERVER_URL = '<?= Url::home().'/upload.php';?>';
// var UPLOAD_SERVER_URL = '../js/plugins/webuploader/upload.php';
</script>
<?=Html::jsFile('@web/js/plugins/webuploader/webuploader.min.js')?>
<?=Html::jsFile('@web/js/demo/webuploader-demo.min.js')?>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>图片列表</h5>
<div class="ibox-tools">
<a class="collapse-link">
<i class="fa fa-chevron-up"></i>
</a>
<a class="close-link">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<div class="ibox-content">
<div class="alert alert-info">
点击图片即可选择
</div>
<form role="form" class="form-horizontal m-t">
</form>
<div class="clearfix"></div>
</div>
</div>
</div>
</div>
</div>