作者 景龙
1 个管道 的构建 通过 耗费 1 秒

新增版本管理模块

... ... @@ -11,6 +11,7 @@
namespace app\portal\controller;
use app\portal\model\InspectModel;
use cmf\controller\AdminBaseController;
use app\portal\model\ProjectModel;
use app\portal\model\PointModel;
... ... @@ -486,9 +487,13 @@ class AdminProjectController extends AdminBaseController
public function delete(){
$id = $this->request->param('id', 0, 'intval');
$pointModel = new PointModel();
$pointModel->where('id',$id)->delete();
$pointModel->where('p_id',$id)->delete();
$projectModel = new ProjectModel();
$projectModel->where('pid',$id)->delete();
$projectModel->where('id',$id)->delete();
$inspectionModel = new InspectModel();
$inspectionModel->where('project_id',$id)->delete();
$this->success("删除成功!", url("AdminProject/index"));
}
}
... ...
<?php
// +----------------------------------------------------------------------
// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2019 http://www.thinkcmf.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Powerless < wzxaini9@gmail.com>
// +----------------------------------------------------------------------
namespace app\portal\controller;
use cmf\controller\AdminBaseController;
use app\portal\model\VersionModel;
use think\Db;
use think\db\Query;
class AdminVersionController extends AdminBaseController
{
//列表页
public function index(){
$list = Db::name('version')
->where(function (Query $query) {
$param = $this->request->param();
if (!empty($param['last_version'])) {
$keyword = $param['last_version'];
$query->where('last_version', $keyword);
}
})
->order('id desc')
->paginate(10,false,['query'=>request()->param()]);
$res = $list->toArray();
// 获取分页显示
$page = $list->render();
foreach($res['data'] as &$value){
if($value['type'] == 0){
$value['type'] = 'IOS';
}else{
$value['type'] = 'Android';
}
//是否强制更新
if($value['force_update'] == 0){
$value['force_update'] = '是';
}else{
$value['force_update'] = '否';
}
}
$this->assign('list', $res['data']);
$this->assign('page', $page);
// 渲染模板输出
return $this->fetch();
}
//新增页面
public function add(){
$system = $this->system();
$this->assign('system',$system);
return $this->fetch();
}
//查看最大版本号
public function getVersion(){
$type = $this->request->param('type');
$res = Db::name('version')
->where(['type'=>$type])
->field('id,last_version')
->order('id desc')
->find();
return json_encode($res);
}
//新增提交
public function addPost(){
$data = $this->request->param();
$versionModel = new VersionModel();
$versionModel->create($data);
$this->success("添加成功!", url("AdminVersion/index"));
}
//系统名称
public function system(){
$arr = [
[
'id' => 0,
'system_name' => 'IOS'
],
[
'id' => 1,
'system_name' => 'Android'
],
];
return $arr;
}
//编辑页面
public function edit(){
$id = $this->request->param('id');
$res = Db::name('version')
->where('id',$id)
->find();
$this->assign('post',$res);
$system = ['IOS','Android'];
$this->assign('system',$system[$res['type']]);
return $this->fetch();
}
//编辑保存页面
public function editPost(){
$data = $this->request->param();
$versionModel = new VersionModel();
$versionModel->where('id',$data['id'])->update($data);
$this->success("编辑成功!", url("AdminVersion/index"));
}
//删除
public function delete(){
$id = $this->request->param('id');
$versionModel = new VersionModel();
$versionModel->where('id',$id)->delete();
$this->success("删除成功!", url("AdminVersion/index"));
}
}
... ...
<?php
// +----------------------------------------------------------------------
// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2019 http://www.thinkcmf.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 老猫 <thinkcmf@126.com>
// +----------------------------------------------------------------------
namespace app\portal\model;
use think\Model;
class VersionModel extends Model
{
protected $type = [
'more' => 'array',
];
}
\ No newline at end of file
... ...
... ... @@ -195,6 +195,8 @@ return array (
'PORTAL_ADMINTRAIN_INDEX' => '培训列表',
'PORTAL_ADMINTRAINDEFAULT_DEFAULT' => '培训管理',
'PORTAL_ADMINTRAINSTATISTICAL_INDEX' => '培训统计',
'PORTAL_ADMINVERSION_INDEX' => '版本管理',
'PORTAL_ADMINVERSIONDEFAULT_DEFAULT' => '版本管理',
'PORTAL_ADMINWORKSTATISTICALA_INDEX' => '考勤统计(甲方)',
'PORTAL_ADMINWORKSTATISTICALB_INDEX' => '考勤统计(乙方)',
'PORTAL_ADMINWORKSTATISTICALDEFAULT_DEFAULT' => '考勤统计',
... ...
<include file="public@header"/>
<style type="text/css">
.pic-list li {
margin-bottom: 5px;
}
</style>
<script type="text/html" id="photos-item-tpl">
<li id="saved-image{id}">
<input id="photo-{id}" type="hidden" name="photo_urls[]" value="{filepath}">
<input class="form-control" id="photo-{id}-name" type="text" name="photo_names[]" value="{name}"
style="width: 200px;" title="图片名称">
<img id="photo-{id}-preview" src="{url}" style="height:36px;width: 36px;"
onclick="imagePreviewDialog(this.src);">
<a href="javascript:uploadOneImage('图片上传','#photo-{id}');">替换</a>
<a href="javascript:(function(){$('#saved-image{id}').remove();})();">移除</a>
</li>
</script>
<script type="text/html" id="files-item-tpl">
<li id="saved-file{id}">
<input id="file-{id}" type="hidden" name="file_urls[]" value="{filepath}">
<input class="form-control" id="file-{id}-name" type="text" name="file_names[]" value="{name}"
style="width: 200px;" title="文件名称">
<a id="file-{id}-preview" href="{preview_url}" target="_blank">下载</a>
<a href="javascript:uploadOne('文件上传','#file-{id}','file');">替换</a>
<a href="javascript:(function(){$('#saved-file{id}').remove();})();">移除</a>
</li>
</script>
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li><a href="{:url('AdminVersion/index')}">版本管理</a></li>
<li class="active"><a href="{:url('AdminVersion/add')}">添加版本</a></li>
</ul>
<form action="{:url('AdminVersion/addPost')}" method="post" class="form-horizontal js-ajax-form margin-top-20">
<div class="row">
<div class="col-md-9">
<table class="table table-bordered">
<tr>
<th width="140">系统<span class="form-required">*</span></th>
<td>
<select class="form-control select_version" name="type" style="width:400px;">
<foreach name="system" item="vo">
<option value="{$vo.id}">{$vo.system_name}</option>
</foreach>
</select>
</td>
</tr>
<tr>
<th>旧版本号<span class="form-required">*</span></th>
<td>
<input class="form-control" type="text" name="old_version" required id="old_version" readonly placeholder="请输入旧版本号"/>
</td>
</tr>
<tr>
<th>新版本号<span class="form-required">*</span></th>
<td>
<input class="form-control" type="text" name="last_version" required placeholder="请输入新版本号"/>
</td>
</tr>
<tr>
<th>包大小<span class="form-required">*</span></th>
<td>
<input class="form-control" type="text" name="soft_size" required placeholder="请输入包大小"/>
</td>
</tr>
<tr>
<th>更新内容<span class="form-required">*</span></th>
<td>
<input class="form-control" type="text" name="update_content" required placeholder="请输入更新内容"/>
</td>
</tr>
<tr>
<th>下载地址</th>
<td>
<input class="form-control" type="text" name="download_url" placeholder="请输入下载地址"/>
</td>
</tr>
<tr>
<th>是否强制更新<span class="form-required">*</span></th>
<td>
<input type="radio" name="force_update" value="0" checked/>&nbsp;&nbsp;&nbsp;
<input type="radio" name="force_update" value="1"/>
</td>
</tr>
</table>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary js-ajax-submit">{:lang('ADD')}</button>
<a class="btn btn-default" href="{:url('AdminVersion/index')}">{:lang('BACK')}</a>
</div>
</div>
</div>
</div>
</form>
</div>
<script type="text/javascript" src="__STATIC__/js/admin.js"></script>
<script type="text/javascript">
//编辑器路径定义
var editorURL = GV.WEB_ROOT;
</script>
<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.all.min.js"></script>
<script type="text/javascript">
$(function () {
editorcontent = new baidu.editor.ui.Editor();
editorcontent.render('content');
try {
editorcontent.sync();
} catch (err) {
}
$('.btn-cancel-thumbnail').click(function () {
$('#thumbnail-preview').attr('src', '__TMPL__/public/assets/images/default-thumbnail.png');
$('#thumbnail').val('');
});
getVersion(0);
$('.select_version').change(function(){
var type = $(this).children('option:selected').val();
getVersion(type);
});
function getVersion(version_type){
$.ajax({
url:"{:url('AdminVersion/getVersion')}",
type:'POST',
dataType:'json',
data:{
'type':version_type
},
success:function(data){
$('#old_version').val(data.last_version);
}
});
}
});
</script>
</body>
</html>
... ...
<include file="public@header"/>
<style type="text/css">
.pic-list li {
margin-bottom: 5px;
}
</style>
<script type="text/html" id="photos-item-tpl">
<li id="saved-image{id}">
<input id="photo-{id}" type="hidden" name="photo_urls[]" value="{filepath}">
<input class="form-control" id="photo-{id}-name" type="text" name="photo_names[]" value="{name}"
style="width: 200px;" title="图片名称">
<img id="photo-{id}-preview" src="{url}" style="height:36px;width: 36px;"
onclick="imagePreviewDialog(this.src);">
<a href="javascript:uploadOneImage('图片上传','#photo-{id}');">替换</a>
<a href="javascript:(function(){$('#saved-image{id}').remove();})();">移除</a>
</li>
</script>
<script type="text/html" id="files-item-tpl">
<li id="saved-file{id}">
<input id="file-{id}" type="hidden" name="file_urls[]" value="{filepath}">
<input class="form-control" id="file-{id}-name" type="text" name="file_names[]" value="{name}"
style="width: 200px;" title="文件名称">
<a id="file-{id}-preview" href="{preview_url}" target="_blank">下载</a>
<a href="javascript:uploadOne('文件上传','#file-{id}','file');">替换</a>
<a href="javascript:(function(){$('#saved-file{id}').remove();})();">移除</a>
</li>
</script>
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li><a href="{:url('AdminVersion/index')}">版本管理</a></li>
<li class="active"><a href="{:url('AdminVersion/add')}">添加版本</a></li>
</ul>
<form action="{:url('AdminVersion/editPost')}" method="post" class="form-horizontal js-ajax-form margin-top-20">
<div class="row">
<div class="col-md-9">
<table class="table table-bordered">
<input type="hidden" name="id" value="{$post.id}">
<tr>
<th width="140">系统<span class="form-required">*</span></th>
<td>
<input class="form-control" type="text" required value="{$system}" readonly placeholder="请输入旧版本号"/>
<input type="hidden" name="type" value="{$post.type}">
</td>
</tr>
<tr>
<th>旧版本号<span class="form-required">*</span></th>
<td>
<input class="form-control" type="text" name="old_version" required value="{$post.old_version}" id="old_version" readonly placeholder="请输入旧版本号"/>
</td>
</tr>
<tr>
<th>新版本号<span class="form-required">*</span></th>
<td>
<input class="form-control" type="text" name="last_version" required value="{$post.last_version}" placeholder="请输入新版本号"/>
</td>
</tr>
<tr>
<th>包大小<span class="form-required">*</span></th>
<td>
<input class="form-control" type="text" name="soft_size" required value="{$post.soft_size}" placeholder="请输入包大小"/>
</td>
</tr>
<tr>
<th>更新内容<span class="form-required">*</span></th>
<td>
<input class="form-control" type="text" name="update_content" required value="{$post.update_content}" placeholder="请输入更新内容"/>
</td>
</tr>
<tr>
<th>下载地址</th>
<td>
<input class="form-control" type="text" name="download_url" value="{$post.download_url}" placeholder="请输入下载地址"/>
</td>
</tr>
<tr>
<th>是否强制更新<span class="form-required">*</span></th>
<td>
<input type="radio" name="force_update" value="0" <eq name="0" value="$post.force_update">checked</eq>/>是&nbsp;&nbsp;&nbsp;
<input type="radio" name="force_update" value="1" <eq name="1" value="$post.force_update">checked</eq>/>否
</td>
</tr>
</table>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary js-ajax-submit">编辑</button>
<a class="btn btn-default" href="{:url('AdminVersion/index')}">{:lang('BACK')}</a>
</div>
</div>
</div>
</div>
</form>
</div>
<script type="text/javascript" src="__STATIC__/js/admin.js"></script>
<script type="text/javascript">
//编辑器路径定义
var editorURL = GV.WEB_ROOT;
</script>
<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.all.min.js"></script>
<script type="text/javascript">
$(function () {
editorcontent = new baidu.editor.ui.Editor();
editorcontent.render('content');
try {
editorcontent.sync();
} catch (err) {
}
$('.btn-cancel-thumbnail').click(function () {
$('#thumbnail-preview').attr('src', '__TMPL__/public/assets/images/default-thumbnail.png');
$('#thumbnail').val('');
});
});
</script>
</body>
</html>
... ...
<include file="public@header"/>
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li class="active"><a>版本管理</a></li>
<li><a href="{:url('AdminVersion/add')}">新增版本</a></li>
</ul>
<form class="well form-inline margin-top-20" method="post" action="{:url('AdminVersion/index')}">
新版本号:
<input class="form-control" type="text" name="last_version" style="width: 200px;" value="{:input('request.last_version')}" placeholder="请输入新版本号">
<input type="submit" class="btn btn-primary" value="搜索"/>
<a class="btn btn-danger" href="{:url('AdminVersion/index')}">清空</a>
</form>
<form method="post" class="js-ajax-form">
<table class="table table-hover table-bordered">
<thead>
<tr>
<th width="16">
<label>
<input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x">
</label>
</th>
<th>ID</th>
<th>系统</th>
<th>新版本号</th>
<th>旧版本号</th>
<th>包大小</th>
<th>更新内容</th>
<th>下载地址</th>
<th>是否强制更新</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<foreach name="list" item="vo">
<tr>
<td>
<input type="checkbox" class="js-check" data-yid="js-check-y" data-xid="js-check-x" name="ids[]"
value="{$vo.id}">
</td>
<td>{$vo.id}</td>
<td>{$vo.type}</td>
<td>{$vo.last_version}</td>
<td>{$vo.old_version}</td>
<td>{$vo.soft_size}</td>
<td>{$vo.update_content}</td>
<td>{$vo.download_url}</td>
<td>{$vo.force_update}</td>
<td width="150">
<a class="btn btn-xs btn-primary" href="{:url('AdminVersion/edit',array('id'=>$vo['id']))}">{:lang('EDIT')}</a>
<a class="btn btn-xs btn-danger js-ajax-delete" href="{:url('AdminVersion/delete',array('id'=>$vo['id']))}">{:lang('DELETE')}</a>
</td>
</tr>
</foreach>
</tbody>
</table>
<div class="pagination">{$page}</div>
</form>
</div>
<script src="__STATIC__/js/admin.js"></script>
</body>
</html>
\ No newline at end of file
... ...