This commit is contained in:
等风来 2018-09-17 15:01:33 +08:00
commit b0a33ead2f
12 changed files with 185 additions and 39 deletions

View File

@ -1 +1 @@
<?php namespace app\admin\controller\system; use app\admin\controller\AuthController; use app\admin\model\system\SystemAdmin; use app\admin\model\system\SystemLog as LogModel; use service\UtilService as Util; /** * 管理员操作记录表控制器 * Class SystemLog * @package app\admin\controller\system */ class SystemLog extends AuthController { /** * 显示操作记录 */ public function index(){ LogModel::deleteLog(); $where = Util::getMore([ ['pages',''], ['admin_id',''], ['data',''], ],$this->request); $where['level'] = $this->adminInfo['level']; $this->assign('where',$where); $this->assign('admin',SystemAdmin::getOrdAdmin('id,real_name',$this->adminInfo['level'])); $this->assign(LogModel::systemPage($where)); return $this->fetch(); } }
<?php namespace app\admin\controller\system; use app\admin\controller\AuthController; use app\admin\model\system\SystemConfig; use app\admin\model\system\SystemAdmin; use app\admin\model\system\SystemLog as LogModel; use service\UtilService as Util; /** * 管理员操作记录表控制器 * Class SystemLog * @package app\admin\controller\system */ class SystemLog extends AuthController { /** * 显示操作记录 */ public function index(){ $log_cycle = SystemConfig::getValue('log_cycle')?:90; LogModel::deleteLog($log_cycle); $where = Util::getMore([ ['pages',''], ['admin_id',''], ['data',''], ],$this->request); $where['level'] = $this->adminInfo['level']; $this->assign('where',$where); $this->assign('admin',SystemAdmin::getOrdAdmin('id,real_name',$this->adminInfo['level'])); $this->assign(LogModel::systemPage($where)); return $this->fetch(); } }

View File

@ -99,11 +99,13 @@ class SystemLog extends ModelBasic
return self::page($model,$where);
}
/**
* @day
* 删除超过90天的日志
*/
public static function deleteLog(){
public static function deleteLog($day = 90){
$model = new self;
$model->where('add_time','<',time()-7776000);
$times = $day*86400;
$model->where('add_time','<',time()-$times);
$model->delete();
}
}

View File

@ -1 +1,21 @@
<!DOCTYPE html><html lang="zh-CN"><head> {include file="public/head"} <title>{$title}</title></head><body><div id="form-add" class="mp-form" v-cloak=""> <?php /* <i-form ref="formValidate" :model="formValidate" :rules="ruleValidate" :label-width="80"> <form-Item label="菜单名称" prop="name"> <i-input v-model="formValidate.name" placeholder="请输入姓名"></i-input> </form-Item> <form-Item label="邮箱" prop="mail"> <i-input v-model="formValidate.mail" placeholder="请输入邮箱"></i-input> </form-Item> <form-Item label="城市" prop="city"> <i-select v-model="formValidate.city" placeholder="请选择所在地"> <i-option value="beijing">北京市</i-option> <i-option value="shanghai">上海市</i-option> <i-option value="shenzhen">深圳市</i-option> </i-select> </form-Item> <Form-Item label="选择日期"> <Row> <i-col span="11"> <form-Item prop="date"> <Date-Picker type="date" placeholder="选择日期" v-model="formValidate.date"></Date-Picker> </form-Item> </i-col> <i-Col span="1" style="text-align: center">-</i-Col> <i-Col span="11"> <form-Item prop="time"> <Time-Picker type="time" placeholder="选择时间" v-model="formValidate.time"></Time-Picker> </form-Item> </i-Col> </Row> </Form-Item> <form-Item label="性别" prop="gender"> <Radio-Group v-model="formValidate.gender"> <Radio label="male">男</Radio> <Radio label="female">女</Radio> </Radio-Group> </form-Item> <form-Item label="爱好" prop="interest"> <Checkbox-Group v-model="formValidate.interest"> <Checkbox label="吃饭"></Checkbox> <Checkbox label="睡觉"></Checkbox> <Checkbox label="跑步"></Checkbox> <Checkbox label="看电影"></Checkbox> </Checkbox-Group> </form-Item> <component :is="componentId" label="介绍" prop="desc"> <component :is="componentIs" v-model="formValidate.desc" type="textarea" :autosize="{minRows: 2,maxRows: 5}" placeholder="请输入..."></component> </component> <form-Item label="介绍" prop="desc"> <i-input v-model="formValidate.desc" type="textarea" :autosize="{minRows: 2,maxRows: 5}" placeholder="请输入..."></i-input> </form-Item> <form-Item> <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button> <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button> </form-Item> </i-form> <m-mycom> </m-mycom> */ ?> <form-builder></form-builder></div><script> var _vm ; var rules = {$rules}; console.log(rules); _mpApi = parent._mpApi; mpFrame.start(function(Vue){ require(['axios','system/util/mpFormBuilder'],function(axios,mpFormBuilder){ Vue.use(mpFormBuilder,_mpApi,rules,{ action:'{$save}' }); new Vue({ el:"#form-add", mounted:function(){ } }) }); });</script></body>
<!DOCTYPE html>
<html lang="zh-CN">
<head> {include file="public/head"} <title>{$title}</title></head>
<body>
<div id="form-add" class="mp-form" v-cloak="">
<form-builder></form-builder>
</div>
<script> var _vm;
var rules = {$rules};
console.log(rules);
_mpApi = parent._mpApi;
mpFrame.start(function (Vue) {
require(['axios', 'system/util/mpFormBuilder'], function (axios, mpFormBuilder) {
Vue.use(mpFormBuilder, _mpApi, rules, {action: '{$save}'});
new Vue({
el: "#form-add", mounted: function () {
}
})
});
});</script>
</body>

View File

@ -1 +1,20 @@
<!DOCTYPE html><html lang="zh-CN"><head> {include file="public/head"} <title>{$title}</title></head><body><div id="form-add" class="mp-form" v-cloak=""> <?php /* <i-form ref="formValidate" :model="formValidate" :rules="ruleValidate" :label-width="80"> <form-Item label="菜单名称" prop="name"> <i-input v-model="formValidate.name" placeholder="请输入姓名"></i-input> </form-Item> <form-Item label="邮箱" prop="mail"> <i-input v-model="formValidate.mail" placeholder="请输入邮箱"></i-input> </form-Item> <form-Item label="城市" prop="city"> <i-select v-model="formValidate.city" placeholder="请选择所在地"> <i-option value="beijing">北京市</i-option> <i-option value="shanghai">上海市</i-option> <i-option value="shenzhen">深圳市</i-option> </i-select> </form-Item> <Form-Item label="选择日期"> <Row> <i-col span="11"> <form-Item prop="date"> <Date-Picker type="date" placeholder="选择日期" v-model="formValidate.date"></Date-Picker> </form-Item> </i-col> <i-Col span="1" style="text-align: center">-</i-Col> <i-Col span="11"> <form-Item prop="time"> <Time-Picker type="time" placeholder="选择时间" v-model="formValidate.time"></Time-Picker> </form-Item> </i-Col> </Row> </Form-Item> <form-Item label="性别" prop="gender"> <Radio-Group v-model="formValidate.gender"> <Radio label="male">男</Radio> <Radio label="female">女</Radio> </Radio-Group> </form-Item> <form-Item label="爱好" prop="interest"> <Checkbox-Group v-model="formValidate.interest"> <Checkbox label="吃饭"></Checkbox> <Checkbox label="睡觉"></Checkbox> <Checkbox label="跑步"></Checkbox> <Checkbox label="看电影"></Checkbox> </Checkbox-Group> </form-Item> <component :is="componentId" label="介绍" prop="desc"> <component :is="componentIs" v-model="formValidate.desc" type="textarea" :autosize="{minRows: 2,maxRows: 5}" placeholder="请输入..."></component> </component> <form-Item label="介绍" prop="desc"> <i-input v-model="formValidate.desc" type="textarea" :autosize="{minRows: 2,maxRows: 5}" placeholder="请输入..."></i-input> </form-Item> <form-Item> <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button> <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button> </form-Item> </i-form> <m-mycom> </m-mycom> */ ?> <form-builder></form-builder></div><script> var _vm ; _mpApi = parent._mpApi; mpFrame.start(function(Vue){ require(['axios','system/util/mpFormBuilder'],function(axios,mpFormBuilder){ axios.post('{$read}').then((result)=>{ Vue.use(mpFormBuilder,_mpApi,result.data,{ action:'{$update}' }); new Vue({ el:"#form-add", mounted:function(){ } }) }) }); });</script></body>
<!DOCTYPE html>
<html lang="zh-CN">
<head> {include file="public/head"} <title>{$title}</title></head>
<body>
<div id="form-add" class="mp-form" v-cloak="">
<form-builder></form-builder>
</div>
<script> var _vm;
_mpApi = parent._mpApi;
mpFrame.start(function (Vue) {
require(['axios', 'system/util/mpFormBuilder'], function (axios, mpFormBuilder) {
axios.post('{$read}').then((result) = > {Vue.use(mpFormBuilder, _mpApi, result.data, {action: '{$update}'});
new Vue({
el: "#form-add", mounted: function () {
}
})
})
});
});</script>
</body>

118
doc.md Normal file
View File

@ -0,0 +1,118 @@
## CRMEB开源文档地址https://gitee.com/ZhongBangKeJi/CRMEB
## 运行环境
CRMEB可以支持Windows/Unix服务器环境需要PHP5.5.9以上Mysql5.1以上版本支持, 可运行于包括Apache、IIS和nginx在内的多种WEB服务器和模式支持Mysql数据库引擎用InnoDB
如果使用curl发起https请求的时候报错“SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed”
服务器需要安装证书免费的,方法如下:
http://curl.haxx.se/ca/cacert.pem [下载](http://curl.haxx.se/ca/cacert.pem)
curl.cainfo 参数(php.ini)来指定CA根证书库的位置
如果使用小程序必须使用https协议[百科了解一下](https://baike.baidu.com/item/https/285356)服务器需要安装ssl证书
框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。 CRMEB底层运行的内存消耗极低而本身的文件大小也是轻量级的因此不会出现 空间和内存占用的瓶颈。对于刚刚接触PHP或者CRMEB的新手我们推荐使用集成开发 环境WAMPServer或者phpstudy都是一个集成了Apache、PHP和MySQL的开发 套件而且支持不同PHP版本、MySQL版本和Apache版本的切换来使用CRMEB 进行本地开发和测试。
## 安装使用
## 一键安装
上传你的代码直接在浏览器中输入你的域名或IP例如www.yourdomain.com,
安装可以直接访问根目录下index.php,页可以设置对外目录为crmeb就默认访问crmeb目录下的index.php
安装程序会自动执行安装。期间系统会提醒你输入数据库信息以完成安装安装完成后建议删除install目录下index.php文件或将其改名。
## 手动安装
1.创建数据库,倒入数据库文件
数据库文件目录名crmeb.sql在根目录下.
2.修改数据库连接文件
配置文件路径/application/database.php
3.修改目录权限linux系统777
/public
/runtime
4.后台登录http://域名/admin
默认账号admin 密码crmeb.com
5.前端登陆wap端登陆http://域名/wap
默认账号crmeb 密码123456
6.小程序模版路径
/application/routine/view/crmebN
需要配置域名
/application/routine/view/crmebN/app.js
```
globalData: {
routineStyle:'#ffffff',
uid: null,
openPages:'',
spid:0,
urlImages: '',
url: 'https://shop.crmeb.net/'//改成自己的网址
},
```
### # 伪静态
1、Nginx
~~~
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
~~~
2、Apache
.htaccess文件
~~~
RewriteEngine
on
#不显示index.php
RewriteCond %{REQUEST_FILENAME}
!-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1
[QSA,PT,L]
~~~
3、iis服务
web.config
~~~
<rewrite>
<rules>
<rule name="OrgPage" stopProcessing="true">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^(.*)$" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" />
</rule>
</rules>
</rewrite>
~~~
更多参考https://www.kancloud.cn/manual/thinkphp5/177576
项目支持公众号商城和小程序商城可单独配置使用,如需公众号和小程序账户同步,请申请微信开放平台进行绑定
开放平台申请地址https://open.weixin.qq.com/
开源项目不含:砍价和拼团功能
如需砍价和拼团完功能请淘宝购买仅需49元
官方淘宝地址https://shop120689819.taobao.com/
更多帮助文档https://gitee.com/ZhongBangKeJi/CRMEB/wikis/%E5%BC%80%E5%8F%91%E6%96%87%E6%A1%A3?sort_id=680379
帮助文档https://gitee.com/ZhongBangKeJi/CRMEB/wikis
数据字典请配置public/mysql.php 访问查看
技术支持QQ群116279623
form-builder帮助文档https://github.com/xaboy/form-builder

View File

@ -1,10 +1,10 @@
RewriteEngine
on
#不显示index.php
RewriteCond %{REQUEST_FILENAME}
!-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1
RewriteEngine
on
#不显示index.php
RewriteCond %{REQUEST_FILENAME}
!-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1
[QSA,PT,L]

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -1,13 +1,13 @@
<rewrite>
<rules>
<rule name="OrgPage" stopProcessing="true">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^(.*)$" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" />
</rule>
</rules>
<rewrite>
<rules>
<rule name="OrgPage" stopProcessing="true">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^(.*)$" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" />
</rule>
</rules>
</rewrite>

View File

@ -1,13 +0,0 @@
项目支持公众号商城和小程序商城可单独配置使用,如需公众号和小程序账户同步,请申请微信开放平台进行绑定
开放平台申请地址https://open.weixin.qq.com/
CRMEB开源文档地址https://gitee.com/ZhongBangKeJi/CRMEB
帮助文档https://gitee.com/ZhongBangKeJi/CRMEB/wikis
技术支持QQ群116279623
form-builder帮助文档https://github.com/xaboy/form-builder
小程序页面路径:/application/routine/view/crmebN
小程序后台下载开发工具,打开模版小程序模版路径
开源项目不含:砍价和拼团功能
如需砍价和拼团完功能请淘宝购买仅需49元
官方淘宝地址https://shop120689819.taobao.com/