isAjax()){
// 查询目录下所有文件
$files = $this->allFile(ROOT_PATH.'public/entranceJs/new');
$filesInfo = [];
foreach ($files as $v) {
$addTime = filemtime(ROOT_PATH."public/entranceJs/new/$v");
$lastLoad = fileatime(ROOT_PATH."public/entranceJs/new/$v");
$filesInfo[] = (object)[
'fileName' => 'entranceJs/new/'.$v,
'addTime' => date("Y-m-d H:i:s",$addTime),
'lastLoad' => $lastLoad ? date("Y-m-d H:i:s",$lastLoad) : '--',
'operate' => $this->fileBtn($v),
];
}
$return = (object)[
'total' => count($filesInfo),
'rows' => $filesInfo,
];
return json($return);
}
return $this->fetch('entrancelist');
}
// 访客端入口新增
public function index()
{
$settings = db('settings')->find();
if($settings){
$settings=current($settings);
}
if(request()->isPost()){
$param = input('post.');
$name = $param['name'];
// 查询目录下所有文件
$files = $this->allFile(ROOT_PATH.'public/entranceJs/new');
$have = 0;
// 判断是否存在该文件.
foreach ($files as $v) {
$fileName = substr($v,0,strpos($v, '.'));
if ($fileName == $name) {
$have = 1;
break;
}
}
if ($have) {
return json(['code' => -2, 'data' => '', 'msg' => '文件名已存在']);
}
$result = db('guestenter')->order('sort','asc')->select();
$copy = $this->file2dir(ROOT_PATH.'public/entranceJs/FloatingButton.js',ROOT_PATH.'public/entranceJs/new/', $name.'.js');
$result[] = (object)[
"margin_top" => $param['marginTop'],
"stop_time" => $param['overtime'],
"copywriting" => $param['overtimeInfo'],
];
$data = json_encode($result);
if ($copy) {
$dataArr = ["data = $data;"];
$result = $this->UpdataFile(ROOT_PATH.'public/entranceJs/new/'.$name.'.js', $dataArr, 24, 24, false);
if ($result) {
return json(['code' => 1, 'data' => 'settings/index', 'msg' => '入口添加成功']);
} else {
return json(['code' => -2, 'data' => '', 'msg' => '操作失败']);
}
} else {
return json(['code' => -2, 'data' => '', 'msg' => '操作失败']);
}
}
if(request()->isAjax()){
$param = input('param.');
$limit = $param['pageSize'];
$offset = (($param['pageNumber'] - 1) * $limit);
$where = [];
$result = db('guestenter')->where($where)->limit($offset, $limit)->order('sort', 'asc')->select();
//客服组
$group = db('groups')->select();
foreach($result as $key=>$vo){
// 优化显示头像
$result[$key]['image'] = '
';
if($vo['group_id'] == 'all'){
$result[$key]['user_group'] = '所有客服组';
}
for($i=0;$imakeBtn($vo['id']);
}
$return['total'] = db('guestenter')->where($where)->count(); //总数据
$return['rows'] = $result;
return json($return);
}
$this->assign([
'settings' => $settings,
'status' => config('kf_status')
]);
return $this->fetch();
}
public function updateJsFromTemple($settings,$target_dir){
}
// 访客端入口列表
public function add()
{
if(request()->isAjax()){
$param = input('param.');
$limit = $param['pageSize'];
$offset = (($param['pageNumber'] - 1) * $limit);
$where = [];
$result = db('guestenter')->where($where)->limit($offset, $limit)->order('sort', 'asc')->select();
//客服组
$group = db('groups')->select();
foreach($result as $key=>$vo){
// 优化显示头像
$result[$key]['image'] = '
';
if($vo['group_id'] == 'all'){
$result[$key]['user_group'] = '所有客服组';
}
for($i=0;$imakeBtn($vo['id']);
}
$return['total'] = db('guestenter')->where($where)->count(); //总数据
$return['rows'] = $result;
return json($return);
}
$settings = db('settings')->where('id',1)->find();
$this->assign([
'settings' => $settings,
'status' => config('kf_status')
]);
return $this->fetch();
}
// 编辑访客端入口
public function edit()
{
if(request()->isAjax()){
$param = input('post.');
unset($param['file']); // 删除layui头像上传隐藏字段
if(strlen($param['name'])>12) {
return json(['code' => -8, 'data' => '', 'msg' => '名称字数超过限制']);
}
if(!is_numeric($param['sort'])) {
return json(['code' => -6, 'data' => '', 'msg' => '排序未输入整数']);
}
if(empty($param['group_id'])){
return json(['code' => -2, 'data' => '', 'msg' => '请选择分组']);
}
$name = db('guestenter')->where('name',$param['name'])->where('id','<>',$param['id'])->select();
if(!empty($name)){
return json(['code' => -3, 'data' => '', 'msg' => '此名称已存在']);
}
$info = array();
$info['name'] = $param['name'];
$info['image'] = $param['image'];
$info['group_id'] = $param['group_id'];
$info['sort'] = $param['sort'];
try{
db('guestenter')->where('id', $param['id'])->update($info);
}catch(\Exception $e){
return json(['code' => -6, 'data' => '', 'msg' => $e->getMessage()]);
}
return json(['code' => 1, 'data' => 'settings/index', 'msg' => '编辑功能菜单成功']);
}
$id = input('param.id/d');
$info = db('guestenter')->where('id', $id)->find();
$this->assign([
'info' => $info,
'status' => config('kf_status'),
'groups' => db('groups')->select()
]);
return $this->fetch('edit');
}
// 删除访客端入口
public function del()
{
if(request()->isAjax()){
$id = input('param.id/d');
try{
db('guestenter')->where('id', $id)->delete();
}catch(\Exception $e){
return json(['code' => -1, 'data' => '', 'msg' => $e->getMessage()]);
}
return json(['code' => 1, 'data' => '', 'msg' => '删除功能菜单成功']);
}
}
// 删除访客端入口文件
public function delFile()
{
if(request()->isAjax()){
$fileName = input('param.fileName');
try{
unlink(ROOT_PATH."public/entranceJs/new/$fileName");
}catch(\Exception $e){
return json(['code' => -1, 'data' => '', 'msg' => $e->getMessage()]);
}
return json(['code' => 1, 'data' => '', 'msg' => '删除成功']);
}
}
/**
* 效果预览
*/
function demo()
{
return $this->fetch();
}
// 上传客服头像
public function upAvatar()
{
if(request()->isAjax()) {
$file = request()->file('file');
if (!empty($file)) {
// 移动到框架应用根目录/public/uploads/ 目录下
$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
if ($info) {
$src = '/uploads' . '/' . date('Ymd') . '/' . $info->getFilename();
return json(['code' => 0, 'data' => ['src' => $src], 'msg' => 'ok']);
} else {
// 上传失败获取错误信息
return json(['code' => -1, 'data' => '', 'msg' => $file->getError()]);
}
}
}
}
// 生成按钮
private function makeBtn($id)
{
$operate = '';
$operate .= ' ';
$operate .= ' ';
return $operate;
}
// 生成按钮
private function fileBtn($fileName)
{
$operate = ' ';
return $operate;
}
//复制文件
function file2dir($sourcefile, $dir,$filename){
if( ! file_exists($sourcefile)){
return false;
}
//$filename = basename($sourcefile);
return copy($sourcefile, $dir .''. $filename);
}
// 获取文件夹下的文件.
function allFile($dir) {
$handle=opendir($dir);
$i=0;
$list = [];
while(!!$file = readdir($handle)) {
if (($file!=".")and($file!="..")) {
$list[$i]=$file;
$i=$i+1;
}
}
closedir($handle);
return $list;
}
/**
* 修改文件
* @author GRACE
* @param $file 文件路径
* @param $arr 修改值数组
* @param $len 开始索引位置
* @param $end 结束索引位置 或 匹配 索引值
* @param bool $loke 文件为空时,是否添加 $v) {
if ($k >= $len && $lokes) {
if (is_int($end)) {
if ($k == $end) {
$lokes = false;
}
} else {
if (trim($v) == $end) {
$arr2[] = $v; $lokes = false;
}
}
} else {
if ($lokes) {
$arr1[] = $v;
} else {
$arr2[] = $v;
}
}
}
$arr3 = join('', $arr1).join(PHP_EOL, $arr).PHP_EOL.join('', $arr2);
if (file_put_contents($file, $arr3)) {
return '修改成功';
} else {
return '修改失败';
}
} else {
if ($loke) {
$a = '