diff --git a/.gitignore b/.gitignore index be623f53..aeca85d6 100644 --- a/.gitignore +++ b/.gitignore @@ -2,8 +2,5 @@ /runtime /.idea /application/database.php/ -/application/controller/server/ -/application/view/server/ -/application/model/server/ /public/uploads/ diff --git a/README.md b/README.md index 0544e751..6101ea91 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,7 @@ CRMEB微信小程序v2.0版:除了以上功能还带砍价、拼团功能 还有定制开发服务,例如:预约系统、O2O、付费阅读、多店版、多商家版 -### 详情[ 进入淘宝 ] +### 详情[ 进入淘宝 ] 官网线下定制服务版:http://www.crmeb.com @@ -104,8 +104,6 @@ CRMEB微信小程序v2.0版:除了以上功能还带砍价、拼团功能 ``` Git clone https://gitee.com/ZhongBangKeJi/CRMEB.git -或者 -Git clone https://github.com/sugar1569/CRMEB.git ``` 文档地址:https://gitee.com/ZhongBangKeJi/CRMEB/wikis diff --git a/application/admin/controller/article/Article.php b/application/admin/controller/article/Article.php index ab3b403a..c14c6898 100644 --- a/application/admin/controller/article/Article.php +++ b/application/admin/controller/article/Article.php @@ -121,6 +121,8 @@ class Article extends AuthController 'synopsis', 'share_title', 'share_synopsis', + 'is_banner', + 'is_hot', ['visit',0], ['sort',0], 'url', diff --git a/application/admin/controller/store/StoreCategory.php b/application/admin/controller/store/StoreCategory.php index f11f87f3..d594f20f 100644 --- a/application/admin/controller/store/StoreCategory.php +++ b/application/admin/controller/store/StoreCategory.php @@ -46,7 +46,7 @@ class StoreCategory extends AuthController */ public function create() { - $form = Form::create(Url::build('save'),[ + $field = [ Form::select('pid','父级')->setOptions(function(){ $list = CategoryModel::getTierList(); $menus = [['value'=>0,'label'=>'顶级菜单']]; @@ -59,8 +59,8 @@ class StoreCategory extends AuthController Form::frameImageOne('pic','分类图标',Url::build('admin/widget.images/index',array('fodder'=>'pic')))->icon('image'), Form::number('sort','排序'), Form::radio('is_show','状态',1)->options([['label'=>'显示','value'=>1],['label'=>'隐藏','value'=>0]]) - ]); - $form->setMethod('post')->setTitle('添加分类'); + ]; + $form = Form::make_post_form('添加产品',$field,Url::build('save')); $this->assign(compact('form')); return $this->fetch('public/form-builder'); } diff --git a/application/admin/controller/system/SystemDatabackup.php b/application/admin/controller/system/SystemDatabackup.php index 68865839..17d35c78 100644 --- a/application/admin/controller/system/SystemDatabackup.php +++ b/application/admin/controller/system/SystemDatabackup.php @@ -1,12 +1,11 @@ './backup/data/', + 'path' => '.'.PUBILC_PATH.'backup/data/', //数据库备份路径 'part' => 20971520, //数据库备份卷大小 @@ -29,15 +28,12 @@ class SystemDatabackup extends AuthController ); $this->DB = new Backup($config); } - /** * 数据类表列表 */ public function index(){ - return $this->fetch(); } - /** * 获取数据库表 * @param Request|null $request @@ -47,7 +43,6 @@ class SystemDatabackup extends AuthController $db= $this->DB; return Json::result(0,'sucess',$db->dataList(),count($db->dataList())); } - /** * 查看表结构 * @param Request|null $request @@ -56,7 +51,6 @@ class SystemDatabackup extends AuthController { parent::__construct($request); } - /** * 优化表 * @param Request|null $request @@ -68,7 +62,6 @@ class SystemDatabackup extends AuthController $res = $db->optimize($tables); return Json::successful($res ? '优化成功':'优化失败'); } - /**修复表 * @param Request|null $request */ @@ -103,24 +96,77 @@ class SystemDatabackup extends AuthController $files = $db->fileList(); $data = []; foreach ($files as $key=>$t){ - $data[$key]['backtime'] = $key; + $data[$key]['filename'] = $t['filename']; $data[$key]['part'] = $t['part']; $data[$key]['size'] = $t['size'].'B'; $data[$key]['compress'] = $t['compress']; - $data[$key]['time'] = date('Y-m-d H:i:s',$t['time']); + $data[$key]['backtime'] = $key; + $data[$key]['time'] = $t['time']; } - + krsort($data);//根据时间降序 return Json::result(0,'sucess',$data,count($data)); - } /**删除备份记录表 + } + /**删除备份记录表 * @param Request|null $request */ public function delFile(Request $request = null) { - $feilname = strtotime($request->post('feilname')); - echo $feilname; - - + $feilname = intval($request->post('feilname')); $files = $this->DB->delFile($feilname); - // return Json::result(0,'sucess',$data,count($data)); + return Json::result(0,'sucess'); + } + /**倒入备份记录表 + * @param Request|null $request + */ + public function import(Request $request = null) + { + $part = $request->post('part') != '' ? intval($request->post('part')) :null; + $start = $request->post('start') != '' ? intval($request->post('start')) : null; + $time = intval($request->post('time')); + $db = $this->DB; + if(is_numeric($time) && is_null($part) && is_null($start)){ + $list= $db->getFile('timeverif',$time); + if(is_array($list)){ + session::set('backup_list',$list); + $this->success('初始化完成!','',array('part' =>1,'start'=>0)); + }else{ + $this->error('备份文件可能已经损坏,请检查!'); + } + }else if(is_numeric($part)&&is_numeric($start)){ + $list=session::get('backup_list'); + $start=$db->setFile($list)->import($start); + if(false===$start){ + $this->error('还原数据出错!'); + }elseif(0===$start){ + if(isset($list[++$part])){ + $data=array('part'=>$part,'start'=>0); + $this->success("正在还原...#{$part}",'',$data); + }else{ + session::delete('backup_list'); + $this->success('还原完成!'); + } + }else{ + $data=array('part'=>$part,'start'=>$start[0]); + if($start[1]){ + $rate=floor(100*($start[0]/$start[1])); + $this->success("正在还原...#{$part}({$rate}%)",'',$data); + }else{ + $data['gz']=1; + $this->success("正在还原...#{$part}",'',$data); + } + $this->success("正在还原...#{$part}",''); + } + }else{ + $this->error('参数错误!'); + } + // return Json::result(0,'sucess',$data,count($data)); + } + /**下载备份记录表 + * @param Request|null $request + */ + public function downloadFile(Request $request = null) + { + $time = intval($request->param('feilname')); + $this->DB->downloadFile($time); } } diff --git a/application/admin/view/article/article/create.php b/application/admin/view/article/article/create.php index d2707fc5..ec775af6 100644 --- a/application/admin/view/article/article/create.php +++ b/application/admin/view/article/article/create.php @@ -1 +1 @@ -{extend name="public/container"} {block name="head_top"} {/block} {block name="content"}