作者 jinglong

增加主要服务模块

@@ -36,11 +36,11 @@ class AdminSeriesTypeController extends AdminBaseController @@ -36,11 +36,11 @@ class AdminSeriesTypeController extends AdminBaseController
36 //获取列表数据 36 //获取列表数据
37 public static function getList(){ 37 public static function getList(){
38 $parent_res = Db::name('type') 38 $parent_res = Db::name('type')
39 - ->where(['type'=>0,'pid'=>0]) 39 + ->where(['pid'=>0])
40 ->select() 40 ->select()
41 ->toArray(); 41 ->toArray();
42 $res = Db::name('type') 42 $res = Db::name('type')
43 - ->where(['type'=>0,'pid'=>['<>',0]]) 43 + ->where(['pid'=>['<>',0]])
44 ->select() 44 ->select()
45 ->toArray(); 45 ->toArray();
46 foreach($parent_res as &$value){ 46 foreach($parent_res as &$value){
@@ -60,7 +60,7 @@ class AdminSeriesTypeController extends AdminBaseController @@ -60,7 +60,7 @@ class AdminSeriesTypeController extends AdminBaseController
60 //添加页面 60 //添加页面
61 public function add(){ 61 public function add(){
62 $selectCategory = Db::name('type') 62 $selectCategory = Db::name('type')
63 - ->where(['type'=>0,'pid'=>0]) 63 + ->where(['pid'=>0])
64 ->field('id,name') 64 ->field('id,name')
65 ->select() 65 ->select()
66 ->toArray(); 66 ->toArray();
@@ -85,7 +85,7 @@ class AdminSeriesTypeController extends AdminBaseController @@ -85,7 +85,7 @@ class AdminSeriesTypeController extends AdminBaseController
85 $id = $this->request->param('id'); 85 $id = $this->request->param('id');
86 //分类 86 //分类
87 $selectCategory = Db::name('type') 87 $selectCategory = Db::name('type')
88 - ->where(['type'=>0,'pid'=>0]) 88 + ->where(['pid'=>0])
89 ->field('id,name') 89 ->field('id,name')
90 ->select() 90 ->select()
91 ->toArray(); 91 ->toArray();
  1 +<?php
  2 +// +----------------------------------------------------------------------
  3 +// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
  4 +// +----------------------------------------------------------------------
  5 +// | Copyright (c) 2013-2019 http://www.thinkcmf.com All rights reserved.
  6 +// +----------------------------------------------------------------------
  7 +// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
  8 +// +----------------------------------------------------------------------
  9 +// | Author: 小夏 < 449134904@qq.com>
  10 +// +----------------------------------------------------------------------
  11 +namespace app\portal\controller;
  12 +
  13 +use app\portal\model\ServiceModel;
  14 +use cmf\controller\AdminBaseController;
  15 +use think\Db;
  16 +use app\portal\model\PortalPostModel;
  17 +
  18 +class AdminServiceController extends AdminBaseController
  19 +{
  20 + //主要服务分类
  21 +
  22 +
  23 + //列表
  24 + public function index(){
  25 + $list = Db::name('service')
  26 + ->select()
  27 + ->toArray();
  28 + $this->assign('list',$list);
  29 + return $this->fetch();
  30 + }
  31 +
  32 + //添加页面
  33 + public function add(){
  34 + return $this->fetch();
  35 + }
  36 +
  37 + //添加提交
  38 + public function addPost(){
  39 + $data = $this->request->param();
  40 + $result = $this->validate($data,'AdminService.edit');
  41 + if($result !== true){
  42 + $this->error($result);
  43 + }
  44 +
  45 + $serviceModel = new ServiceModel();
  46 + $res = $serviceModel->create($data);
  47 + if($res){
  48 + $this->success('添加成功!', url('AdminService/index'));
  49 + }else{
  50 + $this->error('失败');
  51 + }
  52 + }
  53 +
  54 + //编辑页面
  55 + public function edit(){
  56 + $id = $this->request->param('id');
  57 + //内容
  58 + $post = Db::name('service')
  59 + ->where(['id'=>$id])
  60 + ->find();
  61 + $contentModel = new PortalPostModel();
  62 + $post['detail'] = $contentModel->getPostContentAttr($post['detail']);
  63 + $post['detail_en'] = $contentModel->getPostContentAttr($post['detail_en']);
  64 + $this->assign('post',$post);
  65 + return $this->fetch();
  66 + }
  67 +
  68 + //编辑提交
  69 + public function editPost(){
  70 + $data = $this->request->param();
  71 + $result = $this->validate($data,'AdminService.edit');
  72 + if($result !== true){
  73 + $this->error($result);
  74 + }
  75 +
  76 + $serviceModel = new ServiceModel();
  77 + $contentModel = new PortalPostModel();
  78 + $data['detail'] = $contentModel->setPostContentAttr($data['detail']);
  79 + $data['detail_en'] = $contentModel->setPostContentAttr($data['detail_en']);
  80 + // 显式指定更新数据操作
  81 + $res = $serviceModel->isUpdate(true)->save($data);
  82 + if($res){
  83 + $this->success('保存成功!', url('AdminService/index'));
  84 + }else{
  85 + $this->error('失败');
  86 + }
  87 + }
  88 +
  89 + //删除
  90 + public function delete(){
  91 + $id = $this->request->param('id');
  92 + $serviceModel = new ServiceModel();
  93 + $res = $serviceModel->where(['id'=>$id])->delete();
  94 + if($res){
  95 + $this->success('删除成功!');
  96 + }else{
  97 + $this->error('失败');
  98 + }
  99 + }
  100 +}
  1 +<?php
  2 +// +----------------------------------------------------------------------
  3 +// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
  4 +// +----------------------------------------------------------------------
  5 +// | Copyright (c) 2013-2019 http://www.thinkcmf.com All rights reserved.
  6 +// +----------------------------------------------------------------------
  7 +// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
  8 +// +----------------------------------------------------------------------
  9 +// | Author: 老猫 <thinkcmf@126.com>
  10 +// +----------------------------------------------------------------------
  11 +namespace app\portal\model;
  12 +
  13 +use think\Model;
  14 +
  15 +class ServiceModel extends Model
  16 +{
  17 + protected $autoWriteTimestamp = true;
  18 +}
  1 +<?php
  2 +// +----------------------------------------------------------------------
  3 +// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
  4 +// +----------------------------------------------------------------------
  5 +// | Copyright (c) 2013-2019 http://www.thinkcmf.com All rights reserved.
  6 +// +----------------------------------------------------------------------
  7 +// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
  8 +// +----------------------------------------------------------------------
  9 +// | Author: 老猫 <thinkcmf@126.com>
  10 +// +----------------------------------------------------------------------
  11 +namespace app\portal\validate;
  12 +
  13 +use think\Validate;
  14 +
  15 +class AdminServiceValidate extends Validate
  16 +{
  17 + protected $rule = [
  18 + 'name' => 'require|max:80',
  19 + 'name_en' => 'require|max:80',
  20 + 'detail' => 'require',
  21 + 'detail_en' => 'require',
  22 + ];
  23 +
  24 + protected $message = [
  25 + 'name.require' => '分类名称不能为空',
  26 + 'name.max' => '分类名称不能超过80个字符',
  27 + 'name_en.require' => '分类名称(英文)不能为空',
  28 + 'name_en.max' => '分类名称(英文)不能超过80个字符',
  29 + 'detail.require' => '详情不能为空',
  30 + 'detail_en.require' => '详情(英文)不能为空',
  31 + ];
  32 +
  33 + protected $scene = [
  34 + 'edit' => ['name','name_en','detail','detail_en'],
  35 + ];
  36 +}
@@ -68,6 +68,27 @@ @@ -68,6 +68,27 @@
68 </div> 68 </div>
69 </div> 69 </div>
70 </div> 70 </div>
  71 +
  72 + <div class="col-md-3">
  73 + <table class="table table-bordered">
  74 + <tr>
  75 + <th>分类图片</th>
  76 + </tr>
  77 + <tr>
  78 + <td>
  79 + <div style="text-align: center;">
  80 + <input type="hidden" name="thumbnail" id="thumbnail">
  81 + <a href="javascript:uploadOneImage('图片上传','#thumbnail');">
  82 + <img src="__TMPL__/public/assets/images/default-thumbnail.png"
  83 + id="thumbnail-preview"
  84 + width="135" style="cursor: pointer"/>
  85 + </a>
  86 + <input type="button" class="btn btn-sm btn-cancel-thumbnail" value="取消图片">
  87 + </div>
  88 + </td>
  89 + </tr>
  90 + </table>
  91 + </div>
71 </div> 92 </div>
72 </form> 93 </form>
73 </div> 94 </div>
@@ -63,6 +63,28 @@ @@ -63,6 +63,28 @@
63 </tr> 63 </tr>
64 </table> 64 </table>
65 </div> 65 </div>
  66 + <div class="col-md-3">
  67 + <table class="table table-bordered">
  68 + <tr>
  69 + <th>分类图片</th>
  70 + </tr>
  71 + <tr>
  72 + <td>
  73 + <div style="text-align: center;">
  74 + <input type="hidden" name="thumbnail" id="thumbnail" value="{$post.thumbnail|default=''}">
  75 + <a href="javascript:uploadOneImage('图片上传','#thumbnail');">
  76 + <if condition="empty($post.thumbnail)">
  77 + <img src="__TMPL__/public/assets/images/default-thumbnail.png" id="thumbnail-preview" width="135" style="cursor: pointer"/>
  78 + <else/>
  79 + <img src="{:cmf_get_image_preview_url($post.thumbnail)}" id="thumbnail-preview" width="135" style="cursor: pointer"/>
  80 + </if>
  81 + </a>
  82 + <input type="button" class="btn btn-sm btn-cancel-thumbnail" value="取消图片">
  83 + </div>
  84 + </td>
  85 + </tr>
  86 + </table>
  87 + </div>
66 </div> 88 </div>
67 <div class="form-group"> 89 <div class="form-group">
68 <div class="col-sm-offset-2 col-sm-10"> 90 <div class="col-sm-offset-2 col-sm-10">
@@ -31,6 +31,7 @@ @@ -31,6 +31,7 @@
31 </th> 31 </th>
32 <th width="80">ID</th> 32 <th width="80">ID</th>
33 <th>分类名称</th> 33 <th>分类名称</th>
  34 + <th>分类图片</th>
34 <th>创建时间</th> 35 <th>创建时间</th>
35 <th>操作</th> 36 <th>操作</th>
36 </tr> 37 </tr>
@@ -46,6 +47,15 @@ @@ -46,6 +47,15 @@
46 {$vo.name} 47 {$vo.name}
47 </td> 48 </td>
48 <td> 49 <td>
  50 + <notempty name="vo.thumbnail">
  51 + <a href="javascript:parent.imagePreviewDialog('{:cmf_get_image_preview_url($vo.thumbnail)}');">
  52 + <i class="fa fa-photo fa-fw"></i>
  53 + </a>
  54 + <else/>
  55 + <i class="fa fa-close fa-fw"></i>
  56 + </notempty>
  57 + </td>
  58 + <td>
49 {:date('Y-m-d H:i:s',$vo['create_time'])} 59 {:date('Y-m-d H:i:s',$vo['create_time'])}
50 </td> 60 </td>
51 <td> 61 <td>
@@ -65,6 +75,15 @@ @@ -65,6 +75,15 @@
65 {$voo.name} 75 {$voo.name}
66 </td> 76 </td>
67 <td> 77 <td>
  78 + <notempty name="voo.thumbnail">
  79 + <a href="javascript:parent.imagePreviewDialog('{:cmf_get_image_preview_url($voo.thumbnail)}');">
  80 + <i class="fa fa-photo fa-fw"></i>
  81 + </a>
  82 + <else/>
  83 + <i class="fa fa-close fa-fw"></i>
  84 + </notempty>
  85 + </td>
  86 + <td>
68 {:date('Y-m-d H:i:s',$voo['create_time'])} 87 {:date('Y-m-d H:i:s',$voo['create_time'])}
69 </td> 88 </td>
70 <td> 89 <td>
  1 +<include file="public@header"/>
  2 +<style type="text/css">
  3 + .pic-list li {
  4 + margin-bottom: 5px;
  5 + }
  6 +</style>
  7 +<script type="text/html" id="photos-item-tpl">
  8 + <li id="saved-image{id}">
  9 + <input id="photo-{id}" type="hidden" name="photo_urls[]" value="{filepath}">
  10 + <input class="form-control" id="photo-{id}-name" type="text" name="photo_names[]" value="{name}"
  11 + style="width: 200px;" title="图片名称">
  12 + <img id="photo-{id}-preview" src="{url}" style="height:36px;width: 36px;"
  13 + onclick="imagePreviewDialog(this.src);">
  14 + <a href="javascript:uploadOneImage('图片上传','#photo-{id}');">替换</a>
  15 + <a href="javascript:(function(){$('#saved-image{id}').remove();})();">移除</a>
  16 + </li>
  17 +</script>
  18 +<script type="text/html" id="files-item-tpl">
  19 + <li id="saved-file{id}">
  20 + <input id="file-{id}" type="hidden" name="file_urls[]" value="{filepath}">
  21 + <input class="form-control" id="file-{id}-name" type="text" name="file_names[]" value="{name}"
  22 + style="width: 200px;" title="文件名称">
  23 + <a id="file-{id}-preview" href="{preview_url}" target="_blank">下载</a>
  24 + <a href="javascript:uploadOne('文件上传','#file-{id}','file');">替换</a>
  25 + <a href="javascript:(function(){$('#saved-file{id}').remove();})();">移除</a>
  26 + </li>
  27 +</script>
  28 +</head>
  29 +<body>
  30 +<div class="wrap js-check-wrap">
  31 + <ul class="nav nav-tabs">
  32 + <li><a href="{:url('AdminService/index')}">主要服务列表</a></li>
  33 + <li class="active"><a href="#">添加主要服务</a></li>
  34 + </ul>
  35 + <form action="{:url('AdminService/addPost')}" method="post" class="form-horizontal js-ajax-form margin-top-20">
  36 + <div class="row">
  37 + <div class="col-md-9">
  38 + <table class="table table-bordered">
  39 + <tr>
  40 + <th width="150">分类名称<span class="form-required">*</span></th>
  41 + <td>
  42 + <input class="form-control" type="text" name="name" required placeholder="请输入分类名称"/>
  43 + </td>
  44 + </tr>
  45 + <tr>
  46 + <th>分类名称(英文)<span class="form-required">*</span></th>
  47 + <td>
  48 + <input class="form-control" type="text" name="name_en" required placeholder="请输入分类名称(英文)"/>
  49 + </td>
  50 + </tr>
  51 + <tr>
  52 + <th>详情<span class="form-required">*</span></th>
  53 + <td>
  54 + <script type="text/plain" id="content" name="detail"></script>
  55 + </td>
  56 + </tr>
  57 + <tr>
  58 + <th>详情(英文)<span class="form-required">*</span></th>
  59 + <td>
  60 + <script type="text/plain" id="content_en" name="detail_en"></script>
  61 + </td>
  62 + </tr>
  63 + </table>
  64 + <div class="form-group">
  65 + <div class="col-sm-offset-2 col-sm-10">
  66 + <button type="submit" class="btn btn-primary js-ajax-submit">{:lang('ADD')}</button>
  67 + <a class="btn btn-default" href="{:url('AdminService/index')}">{:lang('BACK')}</a>
  68 + </div>
  69 + </div>
  70 + </div>
  71 + </div>
  72 + </form>
  73 +</div>
  74 +<script type="text/javascript" src="__STATIC__/js/admin.js"></script>
  75 +<script type="text/javascript">
  76 + //编辑器路径定义
  77 + var editorURL = GV.WEB_ROOT;
  78 +</script>
  79 +<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.config.js"></script>
  80 +<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.all.min.js"></script>
  81 +<script type="text/javascript">
  82 + $(function () {
  83 +
  84 + editorcontent = new baidu.editor.ui.Editor();
  85 + editorcontent.render('content');
  86 + try {
  87 + editorcontent.sync();
  88 + } catch (err) {
  89 + }
  90 +
  91 + editorcontent = new baidu.editor.ui.Editor();
  92 + editorcontent.render('content_en');
  93 + try {
  94 + editorcontent.sync();
  95 + } catch (err) {
  96 + }
  97 +
  98 + $('.btn-cancel-thumbnail').click(function () {
  99 + $('#thumbnail-preview').attr('src', '__TMPL__/public/assets/images/default-thumbnail.png');
  100 + $('#thumbnail').val('');
  101 + });
  102 +
  103 + });
  104 +</script>
  105 +</body>
  106 +</html>
  1 +<include file="public@header"/>
  2 +<style type="text/css">
  3 + .pic-list li {
  4 + margin-bottom: 5px;
  5 + }
  6 +</style>
  7 +<script type="text/html" id="photos-item-tpl">
  8 + <li id="saved-image{id}">
  9 + <input id="photo-{id}" type="hidden" name="photo_urls[]" value="{filepath}">
  10 + <input class="form-control" id="photo-{id}-name" type="text" name="photo_names[]" value="{name}"
  11 + style="width: 200px;" title="图片名称">
  12 + <img id="photo-{id}-preview" src="{url}" style="height:36px;width: 36px;"
  13 + onclick="imagePreviewDialog(this.src);">
  14 + <a href="javascript:uploadOneImage('图片上传','#photo-{id}');">替换</a>
  15 + <a href="javascript:(function(){$('#saved-image{id}').remove();})();">移除</a>
  16 + </li>
  17 +</script>
  18 +<script type="text/html" id="files-item-tpl">
  19 + <li id="saved-file{id}">
  20 + <input id="file-{id}" type="hidden" name="file_urls[]" value="{filepath}">
  21 + <input class="form-control" id="file-{id}-name" type="text" name="file_names[]" value="{name}"
  22 + style="width: 200px;" title="文件名称">
  23 + <a id="file-{id}-preview" href="{preview_url}" target="_blank">下载</a>
  24 + <a href="javascript:uploadOne('文件上传','#file-{id}','file');">替换</a>
  25 + <a href="javascript:(function(){$('#saved-file{id}').remove();})();">移除</a>
  26 + </li>
  27 +</script>
  28 +</head>
  29 +<body>
  30 +<div class="wrap js-check-wrap">
  31 + <ul class="nav nav-tabs">
  32 + <li><a href="{:url('AdminService/index')}">主要服务列表</a></li>
  33 + <li class="active"><a href="#">编辑主要服务</a></li>
  34 + </ul>
  35 + <form action="{:url('AdminService/editPost')}" method="post" class="form-horizontal js-ajax-form margin-top-20">
  36 + <div class="row">
  37 + <div class="col-md-9">
  38 + <table class="table table-bordered">
  39 + <tr>
  40 + <th width="150">分类名称<span class="form-required">*</span></th>
  41 + <td>
  42 + <input type="hidden" name="id" required value="{$post.id}"/>
  43 + <input class="form-control" type="text" name="name" required placeholder="请输入分类名称" value="{$post.name}"/>
  44 + </td>
  45 + </tr>
  46 + <tr>
  47 + <th>分类名称(英文)<span class="form-required">*</span></th>
  48 + <td>
  49 + <input class="form-control" type="text" name="name_en" required placeholder="请输入分类名称(英文)" value="{$post.name_en}"/>
  50 + </td>
  51 + </tr>
  52 + <tr>
  53 + <th>详情<span class="form-required">*</span></th>
  54 + <td>
  55 + <script type="text/plain" id="content" name="detail">{$post.detail}</script>
  56 + </td>
  57 + </tr>
  58 + <tr>
  59 + <th>详情(英文)<span class="form-required">*</span></th>
  60 + <td>
  61 + <script type="text/plain" id="content_en" name="detail_en">{$post.detail_en}</script>
  62 + </td>
  63 + </tr>
  64 + </table>
  65 + </div>
  66 + </div>
  67 + <div class="form-group">
  68 + <div class="col-sm-offset-2 col-sm-10">
  69 + <button type="submit" class="btn btn-primary js-ajax-submit">{:lang('SAVE')}</button>
  70 + <a class="btn btn-default" href="javascript:history.back(-1);">{:lang('BACK')}</a>
  71 + </div>
  72 + </div>
  73 + </form>
  74 +</div>
  75 +<script type="text/javascript" src="__STATIC__/js/admin.js"></script>
  76 +<script type="text/javascript">
  77 + //编辑器路径定义
  78 + var editorURL = GV.WEB_ROOT;
  79 +</script>
  80 +<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.config.js"></script>
  81 +<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.all.min.js"></script>
  82 +<script type="text/javascript">
  83 + $(function () {
  84 +
  85 + editorcontent = new baidu.editor.ui.Editor();
  86 + editorcontent.render('content');
  87 + try {
  88 + editorcontent.sync();
  89 + } catch (err) {
  90 + }
  91 +
  92 + editorcontent = new baidu.editor.ui.Editor();
  93 + editorcontent.render('content_en');
  94 + try {
  95 + editorcontent.sync();
  96 + } catch (err) {
  97 + }
  98 +
  99 + $('.btn-cancel-thumbnail').click(function () {
  100 + $('#thumbnail-preview').attr('src', '__TMPL__/public/assets/images/default-thumbnail.png');
  101 + $('#thumbnail').val('');
  102 + });
  103 + });
  104 +</script>
  105 +</body>
  106 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap js-check-wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li class="active"><a href="javascript:;">主要服务列表</a></li>
  7 + <li><a href="{:url('AdminService/add')}">添加主要服务</a></li>
  8 + </ul>
  9 + <form class="well form-inline margin-top-20" method="get" action="{:url('AdminService/index')}">
  10 + <!--时间:-->
  11 + <!--<input type="text" class="form-control js-bootstrap-datetime" name="start_time"-->
  12 + <!--value="{$start_time|default=''}"-->
  13 + <!--style="width: 140px;" autocomplete="off">- -->
  14 + <!--<input type="text" class="form-control js-bootstrap-datetime" name="end_time"-->
  15 + <!--value="{$end_time|default=''}"-->
  16 + <!--style="width: 140px;" autocomplete="off"> &nbsp; &nbsp;-->
  17 + <!--关键字:-->
  18 + <!--<input type="text" class="form-control" name="keyword" style="width: 200px;"-->
  19 + <!--value="{$keyword|default=''}" placeholder="请输入关键字...">-->
  20 + <!--<input type="submit" class="btn btn-primary" value="搜索"/>-->
  21 + <!--<a class="btn btn-danger" href="{:url('AdminService/index')}">清空</a>-->
  22 + </form>
  23 + <form class="js-ajax-form" action="" method="post">
  24 + <table class="table table-hover table-bordered table-list">
  25 + <thead>
  26 + <tr>
  27 + <th width="50">
  28 + <label>
  29 + <input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x">
  30 + </label>
  31 + </th>
  32 + <th width="80">ID</th>
  33 + <th>分类名称</th>
  34 + <th>创建时间</th>
  35 + <th>操作</th>
  36 + </tr>
  37 + </thead>
  38 + <volist name="list" id="vo">
  39 + <tr>
  40 + <td>
  41 + <input type="checkbox" class="js-check" data-yid="js-check-y" data-xid="js-check-x" name="ids[]"
  42 + value="{$vo.id}" title="ID:{$vo.id}">
  43 + </td>
  44 + <td>{$vo.id}</td>
  45 + <td>
  46 + {$vo.name}
  47 + </td>
  48 + <td>
  49 + {:date('Y-m-d H:i:s',$vo['create_time'])}
  50 + </td>
  51 + <td>
  52 + <a class="btn btn-xs btn-primary" href="{:url('AdminService/edit',array('id'=>$vo['id']))}">{:lang('EDIT')}</a>
  53 + <a class="btn btn-xs btn-danger js-ajax-delete" href="{:url('AdminService/delete',array('id'=>$vo['id']))}">{:lang('DELETE')}</a>
  54 + </td>
  55 + </tr>
  56 + </volist>
  57 + </table>
  58 + </form>
  59 +</div>
  60 +<script src="__STATIC__/js/admin.js"></script>
  61 +<script>
  62 +
  63 + function reloadPage(win) {
  64 + win.location.reload();
  65 + }
  66 +</script>
  67 +</body>
  68 +</html>