first commit

This commit is contained in:
2025-06-25 10:53:11 +08:00
commit 9f374011ae
1240 changed files with 181139 additions and 0 deletions
+12
View File
@@ -0,0 +1,12 @@
<?php
/**
* @copyright Copyright (c) 2023-2024 美天智能科技
* @author 李志强
* @link http://www.meteteme.com
*/
/**
======================
*模块数据获取公共文件
======================
*/
use think\facade\Db;
+360
View File
@@ -0,0 +1,360 @@
<?php
/**
* @copyright Copyright (c) 2023-2024 美天智能科技
* @link http://www.meteteme.com
*/
declare(strict_types=1);
namespace app\picbed\controller;
use app\base\BaseController;
use app\model\PicbedImages as PicbedList;
use app\model\PicbedFolder as PicbedFolderList;
use think\facade\Db;
use think\facade\View;
class Index extends BaseController
{
public function index()
{
if (request()->isAjax()) {
$param = get_params();
$folderId = $param['folder'] ?? null;
$query = PicbedList::withoutField('')
->where('delete_time', null);
// 如果 folderId 存在且不为 'all',则添加条件
if ($folderId === 'all') {
$query->whereNull('folder');
} elseif ($folderId) {
$query->where('folder', $folderId);
}
$list = $query->order('id desc')->cursor();
// 处理每个项
$items = [];
foreach ($list as $item) {
if ($item->delete_time !== null) {
continue;
}
$picbedImage = Db::name('PicbedImages')->where(['id' => $item->id])->find();
if (!ctype_digit($picbedImage['admin_id'])) {
$item->admin_name = $picbedImage['admin_id'];
} else {
$admin = Db::name('Admin')->where(['id' => $picbedImage['admin_id']])->find();
$item->admin_name = $admin ? $admin['name'] : '';
}
$item->path = $picbedImage['path'];
$item->size = $picbedImage['size'];
$item->type = $picbedImage['type'];
$item->new_name = $picbedImage['new_name'];
$item->create_time = $picbedImage['create_time'];
$item->update_time = $picbedImage['update_time'];
$item->delete_time = $picbedImage['delete_time'];
$items[] = $item; // 收集处理后的项
}
return json(['code' => 0, 'msg' => '', 'count' => count($items), 'data' => $items]);
} else {
return view();
}
}
//添加
public function add()
{
// 添加admin_id
$param['admin_id'] = $this->uid;
$param = get_params();
if (request()->isPost()) {
//markdown数据处理
if (isset($param['table-align'])) {
unset($param['table-align']);
}
if (isset($param['docContent-html-code'])) {
$param['content'] = $param['docContent-html-code'];
$param['md_content'] = $param['docContent-markdown-doc'];
unset($param['docContent-html-code']);
unset($param['docContent-markdown-doc']);
}
if (isset($param['ueditorcontent'])) {
$param['content'] = $param['ueditorcontent'];
$param['md_content'] = '';
}
if (!empty($param['id']) && $param['id'] > 0) {
$picbed = (new PicbedList())->detail($param['id']);
if ($this->uid == $picbed['admin_id']) {
try {
validate(PicbedCheck::class)->scene('edit')->check($param);
} catch (ValidateException $e) {
// 验证失败 输出错误信息
return to_assign(1, $e->getError());
}
$param['update_time'] = time();
$res = PicbedList::where('id', $param['id'])->strict(false)->field(true)->update($param);
if ($res) {
add_log('edit', $param['id'], $param, $picbed);
}
return to_assign();
} else {
return to_assign(1, '只有创建人或者负责人才有权限编辑');
}
} else {
try {
validate(PicbedCheck::class)->scene('add')->check($param);
} catch (ValidateException $e) {
// 验证失败 输出错误信息
return to_assign(1, $e->getError());
}
$param['create_time'] = time();
$param['admin_id'] = $this->uid;
$sid = PicbedList::strict(false)->field(true)->insertGetId($param);
if ($sid) {
add_log('add', $sid, $param);
$log_data = array(
'module' => 'picbed',
'id' => $sid,
'new_content' => $param['name'],
'field' => 'new',
'action' => 'add',
'admin_id' => $this->uid,
'create_time' => time(),
);
Db::name('Log')->strict(false)->field(true)->insert($log_data);
}
return to_assign();
}
} else {
$id = isset($param['id']) ? $param['id'] : 0;
if ($id > 0) {
$detail = (new PicbedList())->detail($id);
if (empty($detail)) {
return to_assign(1, '1.信息不存在');
}
View::assign('detail', $detail);
}
View::assign('id', $id);
return view();
}
}
//创建文件夹
public function createfolder()
{
$param = get_params();
if (request()->isPost()) {
$param['sort'] = $param['sort'] ?? 0; // 默认排序为 0
if (!empty($param['id']) && $param['id'] > 0) {
$createfolder = (new PicbedFolderList())->detail($param['id']);
$param['update_time'] = date('Y-m-d H:i:s', time());
$res = PicbedFolderList::where('id', $param['id'])->strict(false)->field(true)->update($param);
if ($res) {
add_log('edit', $param['id'], $param, $createfolder);
}
return to_assign();
} else {
$param['create_time'] = date('Y-m-d H:i:s', time());
$param['admin_id'] = $this->uid;
$sid = PicbedFolderList::strict(false)->field(true)->insertGetId($param);
return to_assign();
}
} else {
$id = isset($param['id']) ? $param['id'] : 0;
if ($id > 0) {
$detail = (new PicbedList())->detail($id);
if (empty($detail)) {
return to_assign(1, '1.信息不存在');
}
View::assign('detail', $detail);
}
View::assign('id', $id);
return view();
}
}
//移动图片到文件夹
public function movefolder()
{
$param = get_params();
if (request()->isPost()) {
// 支持批量移动
if (!empty($param['ids']) && is_array($param['ids'])) {
$folderId = $param['folder']; // 获取目标文件夹ID
foreach ($param['ids'] as $id) {
if ($id > 0) {
PicbedList::where('id', $id)->strict(false)->update(['folder' => $folderId]); // 更新每个图片的文件夹
}
}
return to_assign(); // 返回成功响应
}
} else {
$id = isset($param['id']) ? $param['id'] : 0;
if ($id > 0) {
$detail = (new PicbedList())->detail($id);
if (empty($detail)) {
return to_assign(1, '1.信息不存在');
}
View::assign('detail', $detail);
}
View::assign('id', $id);
return view();
}
}
//查看
public function view()
{
$param = get_params();
$id = isset($param['id']) ? $param['id'] : 0;
$detail = (new PicbedList())->detail($id);
// print_r($id);
if (empty($detail)) {
return to_assign(1, '2.信息不存在');
} else {
if ($this->uid != $detail['admin_id']) { // 当前登录用户必须是上传者才能查看
return to_assign(1, '您没权限查看该信息');
}
$role_uid = [$detail['admin_id'], $detail['director_uid']];
$role_edit = 'edit';
$view_uid = $role_uid;
// if (!empty($detail['check_admin_ids'])) {
// $view_uid = array_merge($role_uid, explode(",", $detail['check_admin_ids']));
// }
if (!in_array($this->uid, $view_uid) && $detail['is_open'] == 1) {
return to_assign(1, '您没权限查看该信息');
}
$contact_array = Db::name('Businesscontact')
->field('i.id,i.business_id,i.contact,i.post,i.phone,i.email,i.wechat,i.qq,a.name as admin_name')
->alias('i')
->join('Admin a', 'i.admin_id = a.id', 'LEFT')
->join('PicbedImages b', 'i.business_id = b.id', 'LEFT')
->order('i.create_time desc')
->where(array('i.business_id' => $id))
->where('i.delete_time', null)
->select()->toArray();
$file_array = Db::name('FileInterfix')
->field('i.id,i.topic_id,i.admin_id,f.name,f.filesize,f.filepath,a.name as admin_name')
->alias('i')
->join('File f', 'i.file_id = f.id', 'LEFT')
->join('Admin a', 'i.admin_id = a.id', 'LEFT')
->order('i.create_time desc')
->where(array('i.topic_id' => $id, 'i.module' => 'picbed'))
->select()->toArray();
$link_array = Db::name('LinkInterfix')
->field('i.id,i.topic_id,i.admin_id,i.desc,i.url,a.name as admin_name')
->alias('i')
->join('Admin a', 'i.admin_id = a.id', 'LEFT')
->order('i.create_time desc')
->where(array('i.topic_id' => $id, 'i.module' => 'picbed', 'delete_time' => 0))
->select()->toArray();
View::assign('detail', $detail);
View::assign('contact_array', $contact_array);
View::assign('file_array', $file_array);
View::assign('link_array', $link_array);
View::assign('role_edit', $role_edit);
View::assign('id', $id);
return view();
}
}
//删除
public function delete()
{
$request = request();
if ($request->isDelete() || $request->isAjax()) {
$id = get_params("id");
$detail = Db::name('PicbedImages')->where('id', $id)->find();
if ($detail['admin_id'] != $this->uid) {
return to_assign(1, "你不是图片的上传人,无权限删除");
}
if (Db::name('PicbedImages')->where('id', $id)->update(['delete_time' => time()]) !== false) {
$log_data = array(
'module' => 'picbed',
'field' => 'delete',
'action' => 'delete',
'admin_id' => $this->uid,
'old_content' => '',
'new_content' => $detail['name'],
'create_time' => time(),
);
Db::name('Log')->strict(false)->field(true)->insert($log_data);
return to_assign(0, "删除成功");
} else {
return to_assign(0, "删除失败");
}
} else {
return to_assign(1, "错误的请求");
}
}
//批量删除
public function batch_delete()
{
$request = request();
if ($request->isDelete() || $request->isAjax()) {
$ids = get_params("ids");
foreach ($ids as $id) {
$detail = Db::name('PicbedImages')->where('id', $id)->find();
if (Db::name('PicbedImages')->where('id', $id)->update(['delete_time' => date('Y-m-d H:i:s')]) !== false) {
$log_data = array(
'module' => 'PicbedImages',
'field' => 'delete',
'action' => 'delete',
'admin_id' => $this->uid,
'old_content' => '',
'new_content' => $detail['name'],
'create_time' => time(),
);
Db::name('Log')->strict(false)->field(true)->insert($log_data);
}
}
return to_assign(0, "批量删除成功");
} else {
return to_assign(1, "错误的请求");
}
}
//获取文件夹目录
public function getpicbedfolder()
{
$folder = PicbedFolderList::field('id, admin_id, name, sort')
->where('delete_time', null)
->where('status', '<>', 2)
->select();
return json(['code' => 0, 'msg' => '', 'data' => $folder]);
}
// 获取对应文件夹内文件列表
public function getfloderfiles()
{
$param = get_params();
// 使用 getpicbedfolder 获取的 id 作为 folder_id
$folderId = $param['folder_id'] ?? null;
if ($folderId) {
$files = PicbedList::where('folder', $folderId)
->where('delete_time', null)
->field('name') // 只获取 name 字段
->select()
->toArray(); // 转换为数组
return json(['code' => 0, 'msg' => '', 'data' => $files]);
} else {
return json(['code' => 1, 'msg' => '文件夹ID不能为空']);
}
}
}
+5
View File
@@ -0,0 +1,5 @@
<?php
// 这是系统自动生成的event定义文件
return [
];
+13
View File
@@ -0,0 +1,13 @@
<?php
/**
* @copyright Copyright (c) 2023-2024 美天智能科技
* @author 李志强
* @link http://www.meteteme.com
*/
// 这是系统自动生成的middleware定义文件
return [
//开启session中间件
//'think\middleware\SessionInit',
\app\home\middleware\Install::class,
];
+33
View File
@@ -0,0 +1,33 @@
<?php
namespace app\picbed\validate;
use think\facade\Db;
use think\Validate;
class PicbedCheck extends Validate
{
// 自定义验证规则
protected function checkOne($value, $rule, $data = [])
{
$count = Db::name('PicbedImages')->where(['name' => $data['name'], 'delete_time' => 0])->count();
return $count == 0 ? true : false;
}
protected $rule = [
'maincontact' => 'require|checkOne',
'id' => 'require',
'name' => 'require',
];
protected $message = [
'name.require' => '客户单位不能为空',
// 'name.checkOne' => '同样的商务信息已经存在',
'maincontact.checkOne' => '同样的商务信息已经存在',
'id.require' => '缺少更新条件',
];
protected $scene = [
'add' => ['name'],
'edit' => ['id'],
];
}
+119
View File
@@ -0,0 +1,119 @@
<div class="layui-upload">
<div class="layui-upload-list">
<table class="layui-table">
<thead>
<tr>
<th>文件名</th>
<th>大小</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody id="demoList"></tbody>
</table>
</div>
<div class="uploaddemo">
<div class="layui-upload-drag" id="testList">
<i class="layui-icon">&#xe67c;</i> 直接拖拽文件到这里
</div>
</div>
<div class="uploadbtn">
<button type="button" class="layui-btn" id="testListAction">开始上传</button>
</div>
</div>
<script src="{__STATIC__}/jquery.min.js"></script>
<script src="{__METE__}/layui/layui.js"></script>
<link rel="stylesheet" href="{__METE__}/layui/css/layui.css" />
<link rel="stylesheet" href="{__METE__CSS__}/style.css" />
<script>
layui.use(["upload", "element"], function () {
var upload = layui.upload;
var element = layui.element;
//多文件列表示例
var demoListView = $("#demoList"),
uploadListIns = upload.render({
elem: "#testList", // 修改为拖拽区域
url: "/api/index/upload_picbed",
accept: "file", //文件类型
multiple: true,
auto: false,
bindAction: "#testListAction",
choose: function (obj) {
var files = (this.files = obj.pushFile());
//读取本地文件
obj.preview(function (index, file, result) {
var tr = $(
[
'<tr id="upload-' + index + '">',
"<td>" + file.name + "</td>",
"<td>" + (file.size / 1024).toFixed(1) + "kb</td>",
"<td>等待上传</td>",
"<td>",
'<button class="layui-btn layui-btn-xs demo-reload layui-hide">重传</button>',
'<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>',
"</td>",
"</tr>",
].join("")
);
//单个重传
tr.find(".demo-reload").on("click", function () {
obj.upload(index, file);
});
//删除
tr.find(".demo-delete").on("click", function () {
delete files[index]; //删除对应的文件
tr.remove();
uploadListIns.config.elem.next()[0].value = ""; //再次渲染上传框
});
demoListView.append(tr);
});
},
done: function (res, index, upload) {
var tr = demoListView.find("tr#upload-" + index);
var tds = tr.children();
if (res.code === 200) {
// 关闭提示框
layer.closeAll("msg");
// 上传成功
tds.eq(2).html('<span style="color: #5FB878;">' + res.msg + '</span>'); // 显示成功消息
tds.eq(3).html(""); // 清空操作
delete this.files[index]; // 删除文件队列已经上传成功的文件
// 显示上传成功提示
layui.layer.msg("上传成功", {
time: 1000, //设定1秒后自动关闭
end: function() {
location.reload(); // 刷新页面
}
});
} else {
// 上传失败
tds.eq(2).html('<span style="color: #FF5722;">上传失败</span>');
tds.eq(3).find(".demo-reload").removeClass("layui-hide"); //显示重传
// 显示上传失败提示
layui.layer.msg("上传失败");
}
},
error: function (index, upload, res) {
var tr = demoListView.find("tr#upload-" + index),
tds = tr.children();
tds.eq(2).html('<span style="color: #FF5722;">上传失败</span>');
tds.eq(3).find(".demo-reload").removeClass("layui-hide"); //显示重传
// 显示上传失败提示
layui.layer.msg("上传失败");
},
});
});
</script>
+70
View File
@@ -0,0 +1,70 @@
<link rel="stylesheet" href="{__METE__CSS__}/style.css">
<link rel="stylesheet" href="{__METE__}/layui/css/layui.css" />
<script src="{__METE__}/layui/layui.js"></script>
<!-- 主体 -->
<div class="create-folder">
<form class="layui-form" action="">
<div class="layui-form-item">
<label class="layui-form-label">相册名称</label>
<div class="layui-input-block">
<input type="text" name="name" lay-verify="required" placeholder="请输入相册名称" autocomplete="off"
class="layui-input" required>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<input type="text" name="sort" lay-verify="required" placeholder="排序" autocomplete="off"
class="layui-input">
</div>
</div>
</form>
<div class="btnbar">
<button type="button" class="layui-btn" id="createfolder">创建相册</button>
</div>
</div>
<!-- 主体 -->
<script>
// 监听创建相册按钮点击事件
document.getElementById('createfolder').onclick = function () {
var folderName = document.getElementsByName('name')[0].value;
var folderSort = document.getElementsByName('sort')[0].value;
// 检查相册名称是否为空
if (!folderName) {
layui.layer.msg('相册名称不能为空!');
return; // 终止提交
}
// 创建相册接口
fetch('/picbed/index/createfolder', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ name: folderName, sort: folderSort })
})
.then(response => response.json())
.then(data => {
// 处理成功响应
if (data.code === 0) {
layui.layer.msg(data.msg);
setTimeout(function () { // 添加延时关闭
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
}, 2000); // 2秒后关闭
} else {
layui.layer.msg(data.msg);
}
})
.catch(error => {
// 处理错误
console.error('Error:', error);
});
};
</script>
+121
View File
@@ -0,0 +1,121 @@
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title></title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="format-detection" content="telephone=no">
<link rel="stylesheet" href="/layui/css/layui.css" media="all" />
<style>
body{margin: 10px;}
</style>
</head>
<body class="childrenBody">
<form class="layui-form changePwd">
<input type="hidden" name="id" id="id" th:value="${id}">
<div class="layui-form-item">
<label class="layui-form-label">姓名</label>
<div class="layui-input-block">
<input type="text" name="name" value="" placeholder="姓名" id="name" lay-verify="required|name" class="layui-input pwd">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">性别</label>
<div class="layui-input-block">
<input type="radio" name="sex" value="0" title="女" checked="">
<input type="radio" name="sex" value="1" title="男" >
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">年龄</label>
<div class="layui-input-block">
<input type="text" name="age" value="" placeholder="年龄" id="age" class="layui-input pwd">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit="" lay-filter="*">保存</button>
<button type="button" class="layui-btn layui-btn-primary" onclick="layerclose();">关闭</button>
</div>
</div>
</form>
<script type="text/javascript" src="/layui/layui.js"></script>
<script type="text/javascript" src="/js/jquery-3.3.1.min.js"></script>
<script>
$(function(){
var id = $("#id").val();
if(id != ""){
$.ajax({
url: "/user/queryById",
data:{"id":id},
dataType:"json",
success: function(data){
$("#name").val(data.name);
$("#age").val(data.age);
$("input[name='sex']").eq(data.sex).attr("checked",'checked');
},error:function(){
}
});
}
})
function layerclose() {
layui.use(['layer' ], function() {
var layer = layui.layer;
var index=parent.layer.getFrameIndex(window.name);//获取当前弹出层的层级
parent.layer.close(index);//关闭弹出层
location.reload();//刷新父页面
})
}
layui.use(['form','layer' ], function() {
var form = layui.form;
var layer = layui.layer;
// 添加验证规则
form.verify({
name : function(value, item) {
value = value.trim();
if (value.length < 0) {
return "请输入教师名称";
}
}
});
form.on('submit(*)', function(data) {
var index = layer.msg('提交中,请稍候',{icon: 16,time:false,shade:0.8});
var d = data.field;
var url = "/user/add";
if(d.id != ""){
url = "/user/edit";
}
$.ajax({
url: url,
data:d,
dataType:"text",
success: function(data){
layer.close(index);
if(data == 0){
layer.msg("保存成功!");
parent.queryTea();
parent.close();
}else{
layer.msg("保存失败!");
}
},error:function(){
layer.close(index);
layer.msg("保存失败!");
}
});
return false;
});
});
</script>
</body>
</html>
+426
View File
@@ -0,0 +1,426 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="breadcrumb"}
<span class="layui-breadcrumb">
<a href="http://www.meteteme.com/" target="_blank">江苏美天科技</a>
<a href="/application/nav/index"><cite>应用</cite></a>
<a><cite>文件中转模块</cite></a>
</span>
{/block}
{block name="body"}
<div class="table-content p-3">
<div class="layui-form-bar border-t border-x">
<button class="layui-btn layui-btn-sm add-new" lay-on="test-page-wrap">
上传文件
</button>
<button class="layui-btn layui-btn-sm" id="create-folder" lay-on="create-folder">
创建文件夹
</button>
<button class="layui-btn layui-btn-sm" id="batchmove-folder" lay-on="batchmove-folder">
批量移动
</button>
<button class="layui-btn layui-btn-sm" id="select-all" lay-on="select-all">
全选
</button>
<input type="text" id="folder-url" placeholder="输入文件夹链接地址" class="layui-input" />
</div>
<div class="layui-tab layui-tab-brief">
<ul class="layui-tab-title" id="folder-tabs">
<li class="layui-this" data-id="all">未分类</li>
</ul>
<div class="card-container" id="tab-content">
<div class="layui-tab-item layui-show" id="content-all">
</div>
</div>
</div>
</div>
<button class="layui-btn layui-btn-sm" id="go-to-top">
回到顶部
</button>
{/block}
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ["tool", "gouguEdit", "gouguComment"];
let currentPage = 1;
function gouguInit() {
var table = layui.table;
var tool = layui.tool;
var tool = layui.laypage;
// 复制路径
$("body").on("click", ".copy-path", function () {
var path = $(this).parents(".card-item").find("img").attr("src");
if (path) {
copyToClipboard(path);
layui.layer.msg("复制成功");
} else {
layui.layer.msg("复制失败");
}
});
// 在脚本中添加获取文件夹链接地址的功能
$("#folder-url").on("input", function () {
var folderUrl = $(this).val(); // 获取输入的链接地址
// 这里可以添加逻辑来处理 folderUrl,例如调用 getfloderfiles() 接口
console.log("输入的文件夹链接地址: ", folderUrl); // 调试输出
});
// 新增获取文件夹文件的接口
function getFolderFiles(folderId) {
$.get(`/picbed/index/getfloderfiles`, { folder_id: folderId }, function (res) {
if (res.code === 0) {
console.log("文件列表: ", res.data); // 处理文件列表
} else {
layui.layer.msg(res.msg);
}
});
}
// 监听文件夹链接输入框变化
$("#folder-url").on("change", function () {
var folderId = $(this).val(); // 假设输入的是文件夹ID
if (folderId) {
getFolderFiles(folderId); // 调用接口获取文件
}
});
// 下载文件
$("body").on("click", ".action-item.download", function () {
var path = $(this).parents(".card-item").find("img").attr("src");
if (path) {
var domain = window.location.origin + '/'; // 获取当前域名
var fullPath = new URL(path, domain).href; // 拼接完整路径
console.log("下载路径: ", fullPath); // 调试路径
fetch(fullPath)
.then(response => response.blob())
.then(blob => {
var link = document.createElement("a");
link.href = URL.createObjectURL(blob);
link.setAttribute('download', path.split('/').pop()); // 使用文件名作为下载名
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
})
.catch(() => {
layui.layer.msg("下载失败,无法获取文件");
});
} else {
layui.layer.msg("下载失败,路径不存在");
}
});
// 监听删除按钮点击事件
$("body").on("click", ".action-item.delete", function () {
var cardItem = $(this).closest(".card-item");
var id = cardItem.data("id"); // 获取文件 ID
layui.layer.confirm(
"确定删除该文件吗?",
{ icon: 3, title: "提示" },
function (index) {
$.ajax({
url: "/picbed/index/delete",
type: "POST",
data: { id: id },
success: function (res) {
if (res.code === 0) {
layui.layer.msg(res.msg);
cardItem.remove(); // 从 DOM 中删除该卡片
} else {
layui.layer.msg(res.msg);
}
},
error: function () {
layui.layer.msg("删除失败,请重试");
}
});
layui.layer.close(index);
}
);
});
// 复制文本到剪贴板
function copyToClipboard(text) {
var el = document.createElement("textarea");
el.value = text;
el.setAttribute("readonly", "");
el.style.position = "absolute";
el.style.left = "-9999px";
document.body.appendChild(el);
el.select();
document.execCommand("copy");
document.body.removeChild(el);
}
// 上传文件
$(".add-new").on("click", function () {
layer.open({
type: 2,
title: "上传文件",
content: "/picbed/index/add",
area: ["800px", "600px"],
maxmin: true,
});
});
$('.layui-form-bar').on('click', '.add-new', function () {
tool.open('/project/index/add');
});
// 创建文件夹
$("#create-folder").on("click", function () {
layer.open({
type: 2,
title: "创建文件夹",
shadeClose: true,
content: "/picbed/index/createfolder",
area: ["800px", "300px"],
maxmin: true,
end: function () { // 添加关闭回调
loadTableData(currentPage); // 重新加载数据
}
});
});
// 移动图片到文件夹
$(document).on("click", ".action-item.move", function () {
var currentImageId = $(this).closest(".card-item").data("id"); // 获取当前图片的ID
layer.open({
type: 2,
title: "移动文件",
shadeClose: true,
content: "/picbed/index/movefolder?imageId=" + currentImageId, // 传递当前图片ID
area: ["800px", "400px"],
maxmin: true,
end: function () { // 添加关闭回调
loadTableData(currentPage); // 重新加载数据
}
});
});
// 批量移动到文件夹
$(document).on("click", "#batchmove-folder", function () {
var selectedIds = []; // 初始化选中的ID数组
$(".select-item:checked").each(function () {
selectedIds.push($(this).data("id")); // 获取选中的ID
});
if (selectedIds.length === 0) {
layui.layer.msg("请至少选择一个文件进行移动"); // 提示用户选择文件
return;
}
layer.open({
type: 2,
title: "批量移动文件",
shadeClose: true,
content: "/picbed/index/movefolder?imageIds=" + selectedIds.join(","), // 传递选中的ID
area: ["800px", "400px"],
maxmin: true,
end: function () { // 添加关闭回调
loadTableData(currentPage); // 重新加载数据
}
});
});
$("#refresh-btn").on("click", function () {
loadTableData(currentPage);
});
// 加载相册标签和内容
function loadFolderTabs() {
$.get("/picbed/index/getpicbedfolder", function (res) {
if (res.code === 0) {
var tabs = $("#folder-tabs");
var tabContent = $("#tab-content");
tabs.empty();
tabContent.empty();
// 添加固定的全部标签
tabs.append(`<li class="layui-this" data-id="all">未分类</li>`);
tabContent.append(`<div class="layui-tab-item layui-show" id="content-all"></div>`); // 全部内容
res.data.forEach(function (folder) {
tabs.append(`<li data-id="${folder.id}">${folder.name}</li>`); // 动态添加标签
tabContent.append(`<div class="layui-tab-item" id="content-${folder.id}"></div>`); // 动态添加内容
});
// 绑定点击事件
tabs.children().on("click", function () {
var id = $(this).data("id");
loadTabContent(id); // 加载对应的内容
loadTableData(currentPage, id); // 传递 id 以获取特定相册的数据
});
// 默认加载全部内容
loadTabContent("all");
} else {
layui.layer.msg(res.msg);
}
});
}
// 加载特定标签的内容
function loadTabContent(id) {
if (id === "all") {
loadTableData(currentPage); // 加载全部内容
} else {
$.get(`/picbed/index/index`, { folder: id }, function (res) { // 修改为传递参数
if (res.code === 0) {
$(`#content-${id}`).html(res.data); // 更新对应标签的内容
} else {
layui.layer.msg(res.msg);
}
});
}
}
// 获取所有员工信息
function loadEmployeeNames() {
return $.get('/api/index/getallstaff').then(function (res) {
if (res.code === 0) {
// 构建员工 ID 和名称的映射
return res.data.reduce((map, employee) => {
map[employee.id] = employee.name;
return map;
}, {});
}
return {};
});
}
// 加载数据
function loadTableData(page = null, folder = "all") {
const params = {}; // 初始化参数对象
if (folder) {
params.folder = folder; // 添加 folder 参数
}
$.get("/picbed/index/index", params, function (res) {
if (res.code === 0) {
var container = $("#content-all");
container.empty();
var domain = window.location.origin;
// 调用接口获取员工名称
loadEmployeeNames().then(employeeMap => {
res.data.forEach(function (item) {
var card = `
<div class="card-item" data-id="${item.id}">
<div class="items">
<div class="img-ids">
<div>
<input type="checkbox" class="select-item" data-id="${item.id}">
编号:<strong>${item.id}</strong>
上传者:<strong>${employeeMap[item.admin_id] || '未知'}</strong> <!-- 更新为员工名称 -->
</div>
</div>
<div class="item-image">
<img src="${domain}/${item.path}" alt="">
</div>
<div class="item-name">
<div class="path-row">
<div class="path-value">${item.name}</div>
</div>
<div class="action-row">
<div class="action-item copy-path">复制</div>
<div class="action-item download">下载</div>
<div class="action-item move">移动</div>
<div class="action-item delete">删除</div>
</div>
</div>
</div>
</div>
`;
container.append(card);
});
$('#pagination').hide(); // 隐藏分页
});
} else {
layui.layer.msg(res.msg);
$('#pagination').hide(); // 隐藏分页
}
});
}
// 初始加载数据
loadTableData(currentPage);
loadFolderTabs();
$(document).on("click", ".item-image img", function () {
var src = $(this).attr("src");
// 使用layer弹窗展示图片,自适应大小,无背景、边框和阴影
layer.open({
type: 1, // 弹窗类型
title: false, // 不显示标题
shadeClose: true, // 点击遮罩关闭
area: 'auto', // 弹窗大小自适应内容
shade: [0.8, '#000'], // 透明度为0.8的黑色遮罩
content: `<div id="zoom-container" style="display: flex; justify-content: center; align-items: center; background: transparent; border: none;">
<img id="zoom-img" src="${src}" style="max-width: 100%; max-height: 100%; object-fit: contain;">
</div>`,
skin: 'layui-layer-no-shadow' // 自定义皮肤,移除阴影
});
// 添加自定义样式,移除box-shadow
$('.layui-layer-no-shadow').css({
'box-shadow': 'none', // 移除阴影
'background': 'transparent', // 透明背景
'border': 'none', // 无边框
});
// 实现图片通过滚轮放大缩小的功能
var zoomLevel = 1;
var img = $('.layui-layer-page'); // 修改为动态选择
img.on('wheel', function (event) {
if (event.originalEvent.deltaY < 0) {
zoomLevel += 0.1; // 滚轮向上放大
} else {
zoomLevel = Math.max(0.1, zoomLevel - 0.1); // 滚轮向下缩小,最小缩放比例为0.1
}
img.css('transform', `scale(${zoomLevel})`);
event.preventDefault(); // 阻止默认滚动行为
});
});
// 回到顶部功能
$("#go-to-top").on("click", function () {
$('html, body').animate({ scrollTop: 0 }, 500); // 平滑滚动到顶部
});
// 显示或隐藏回到顶部按钮
$(window).on("scroll", function () {
if ($(this).scrollTop() > 200) {
$("#go-to-top").fadeIn();
} else {
$("#go-to-top").fadeOut();
}
});
// 全选功能
$("#select-all").on("click", function () {
var isChecked = $(this).hasClass("selected"); // 检查当前状态
$(".select-item").prop("checked", !isChecked); // 切换所有选择框状态
$(this).toggleClass("selected"); // 切换全选按钮状态
});
// 监听点击事件,选择当前数据
$(document).on("click", ".img-ids, .select-item", function (event) {
// 阻止事件冒泡,避免重复触发
event.stopPropagation();
var checkbox = $(this).find(".select-item");
if ($(this).hasClass("select-item")) {
checkbox.prop("checked", !checkbox.prop("checked")); // 切换选择状态
} else {
checkbox.prop("checked", !checkbox.prop("checked")); // 切换选择状态
}
});
}
</script>
{/block}
+94
View File
@@ -0,0 +1,94 @@
<link rel="stylesheet" href="{__METE__CSS__}/style.css">
<link rel="stylesheet" href="{__METE__}/layui/css/layui.css" />
<script src="{__METE__}/layui/layui.js"></script>
<!-- 主体 -->
<div class="create-folder">
<div class="layui-form layui-row layui-col-space16">
<div class="layui-form-item">
<label class="layui-form-label">当前数据id</label>
<div class="layui-input-block">
<input type="text" name="id" class="layui-input" id="current-image-id" disabled>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">单行选择框</label>
<div class="layui-input-block">
<select name="name" lay-filter="aihao">
<option value="">请选择</option>
</select>
</div>
</div>
</div>
<div class="btnbar">
<button type="button" class="layui-btn" id="movefolder">移动图片</button>
</div>
</div>
<!-- 主体 -->
<script>
document.addEventListener("DOMContentLoaded", function () {
// 获取URL中的imageId参数
const urlParams = new URLSearchParams(window.location.search);
const currentImageIds = urlParams.get('imageIds');
// 将获取到的ID赋值给输入框
document.getElementById('current-image-id').value = currentImageIds;
fetch('/picbed/index/getpicbedfolder')
.then(response => response.json())
.then(data => {
if (data.code === 0) {
const select = document.querySelector('select[name="name"]');
select.innerHTML = '<option value="">请选择</option>';
data.data.forEach(folder => {
const option = document.createElement('option');
option.value = folder.id;
option.textContent = folder.name;
select.appendChild(option);
});
layui.form.render('select');
} else {
layui.layer.msg(data.msg);
}
})
.catch(error => {
console.error('Error:', error);
layui.layer.msg('获取相册数据失败,请稍后重试。');
});
});
document.getElementById('movefolder').onclick = function (event) {
event.preventDefault(); // 阻止默认表单提交
const folderId = document.querySelector('select[name="name"]').value; // 获取相册ID
const imageIds = document.getElementById('current-image-id').value.split(','); // 从输入框获取多个图片的ID
fetch('/picbed/index/movefolder', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ folder: folderId, ids: imageIds }) // 提交相册ID和图片ID
})
.then(response => response.json())
.then(data => {
// 处理成功响应
if (data.code === 0) {
layui.layer.msg(data.msg);
setTimeout(function () { // 添加延时关闭
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
location.reload(); // 刷新界面
}, 1000); // 1秒后关闭
} else {
layui.layer.msg(data.msg);
}
})
.catch(error => {
// 处理错误
console.error('Error:', error);
});
};
</script>
+467
View File
@@ -0,0 +1,467 @@
<div class="page-content">
<div class="p-4 border-b">
<h3 class="h3-title hover-{$role_edit}">
<span id="name">商务信息 - </span>
<span id="name_{$detail.id}" data-val="">{$detail.name}</span>
<i class="iconfont icon-wodedianping" title="编辑" data-id="{$detail.id}" data-name="name"></i>
</h3>
<div>
<span class="layui-badge layui-bg-gray">#B{$detail.id}</span>
<span class="mx-2">{$detail.admin_name}</span>
<span class="font-gray">创建于{$detail.times}<span id="editTips">{gt name="$detail.update_time" value="0"},最近更新于 {:time_trans($detail.update_time)}{/gt}</span>
</span>
{eq name="$detail.admin_id" value="$params.uid"}
<span class="layui-btn layui-btn-xs layui-btn-danger ml-4" id="delBtn">
<i class="layui-icon">&#xe640;</i>删除
</span>
{/eq}
</div>
</div>
<div class="layui-row border-b">
<div class="layui-col-md9 p-4 border-r">
<table class="layui-table layui-table-form">
<tr>
<td class="layui-td-gray">创建人</td>
<td colspan="5" class="hover-{$role_edit}">
<span >{$detail.admin_name}</span>
</td>
<td class="layui-td-gray">访问权限</td>
<td class="hover-{$role_edit}">
<span id="is_open_{$detail.id}" data-val="{$detail.is_open}">
{eq name="$detail.is_open" value="1" }
内部 <span class="font-gray">(仅创建人、对接人、可访问)</span>
{/eq}
{eq name="$detail.is_open" value="2" }公开 <span class="font-gray">(有对接权限员工均可访问)</span>{/eq}
</span>
<i class="iconfont icon-wodedianping" title="编辑" data-id="{$detail.id}" data-name="is_open"></i>
</td>
</tr>
<tr>
<td class="layui-td-gray">主要对接人</td>
<td colspan="5" class="hover-{$role_edit}">
<span id="director_uid_{$detail.id}" data-val="{$detail.director_uid}">{$detail.director_name}</span>
<i class="iconfont icon-wodedianping" title="编辑" data-id="{$detail.id}" data-name="director_uid"></i>
</td>
<td class="layui-td-gray">内部可对接人员</td>
<td colspan="5" class="hover-{$role_edit}">
<span id="check_admin_ids_{$detail.id}" data-val="{$detail.check_admin_ids}">{$detail.check_admin_names}</span>
<i class="iconfont icon-wodedianping" title="编辑" data-id="{$detail.id}" data-name="check_admin_ids"></i>
</td>
</tr>
</table>
<div class="md-content-content hover-{$role_edit}">
<h5 class="py-4">备注信息<i class="iconfont icon-wodedianping" title="编辑" data-id="{$detail.id}" data-name="md_content"></i></h5>
<div class="md_content" id="md_content_{$detail.id}" data-val="{$detail.md_content}">{$detail.md_content|raw}</div>
</div>
<div class="md-content-content hover-{$role_edit}">
<h5 class="py-4">联系人
<span data-method="setTop" id="contactadd" class="layui-btn layui-btn-xs layui-btn ml-4">
<i class="layui-icon">&#xe640;</i>新增
</span>
</h5>
<table class="layui-table">
<thead>
<tr>
<th width="10%" style="text-align:center">联系人</th>
<th width="10%" style="text-align:center">职务</th>
<th width="15%" style="text-align:center">电话</th>
<th width="15%" style="text-align:center">邮箱</th>
<th width="10%" style="text-align:center">微信</th>
<th width="10%" style="text-align:center">QQ</th>
<th width="10%" style="text-align:center">创建人</th>
<th width="20%" style="text-align:center">操作</th>
</tr>
</thead>
<tbody id="contactList">
{volist name="contact_array" id="vo"}
<tr data-id="{$vo.id}" id="contact_{$vo.id}">
<td style="text-align: center;">{$vo.contact}</td>
<td style="text-align: center;">{$vo.post}</td>
<td style="text-align: center;">{$vo.phone}</td>
<td style="text-align: center;">{$vo.email}</td>
<td style="text-align: center;">{$vo.wechat}</td>
<td style="text-align: center;">{$vo.qq}</td>
<td style="text-align: center;">{$detail.admin_name}</td>
<td style="text-align: center;">
<!-- <a class="layui-btn layui-btn-xs" id="contactedit" data-event="edit" data-id="1000">修改</a>-->
<a class="layui-btn layui-btn-xs" data-id="{$vo.id}" data-contact="{$vo.contact}" data-post="{$vo.post}" data-phone="{$vo.phone}" data-email="{$vo.email}" data-wechat="{$vo.wechat}" data-qq="{$vo.qq}" id="contactedit" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-xs" data-id="{$vo.id}" id="contactdel" >删除</a>
</td>
</tr>
{/volist}
{empty name="$contact_array" }
<tr>
<td colspan="8" class="content-none">暂无其他联系人</td>
</tr>
{/empty}
</tbody>
</table>
</div>
<div class="detail-file">
<h5 class="py-4">文件附件</h5>
<div>
{eq name="$role_edit" value="edit"}
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" id="flieBtn">选择文件并上传</button>
<span style="color:#FF5722; font-size:12px; margin-left: 8px;">上传前,请规范命名,最大只能上传{:get_system_info('upload_max_filesize')}的文件,超过请压缩成多个文件上传。</span>
<div class="layui-upload-list" {empty name="$file_array" }style="display:none;" {/empty}>
<table class="layui-table">
<thead>
<tr>
<th width="60%" style="text-align:center">文件名</th>
<th width="15%" style="text-align:center">文件大小</th>
<th width="10%" style="text-align:center">上传人</th>
<th width="15%" style="text-align:center">操作</th>
</tr>
</thead>
<tbody id="flieList">
{volist name="file_array" id="vo"}
<tr>
<td>{$vo.name}</td>
<td style="text-align: center;">{$vo.filesize/1048576|round=2}MB</td>
<td style="text-align: center;">{$vo.admin_name}</td>
<td style="text-align: center;">
<div class="layui-btn-group">
<a class="layui-btn layui-btn-xs "
href="{$vo.filepath}" download="{$vo.name}"
data-id="{$vo.id}">下载</a>
<span class="layui-btn layui-btn-xs layui-btn-danger file-delete" data-uid="{$vo.admin_id}" data-id="{$vo.id}">删除</span>
</div>
</td>
</tr>
{/volist}
</tbody>
</table>
</div>
{else/}
<table class="layui-table">
<thead>
<tr>
<th width="60%">文件名</th>
<th width="15%" style="text-align:center">文件大小</th>
<th width="10%" style="text-align:center">上传人</th>
<th width="15%" style="text-align:center">操作</th>
</tr>
</thead>
<tbody id="flieList">
{volist name="file_array" id="vo"}
<tr data-id="{$vo.id}" id="flie_{$vo.id}">
<td>{$vo.name}</td>
<td style="text-align: center;">{$vo.filesize/1048576|round=2}MB</td>
<td style="text-align: center;">{$vo.admin_name}</td>
<td style="text-align: center;">
<a class="layui-btn layui-btn-xs" href="{$vo.filepath}" download="{$vo.name}" data-id="{$vo.id}">下载</a>
</td>
</tr>
{/volist}
{empty name="$file_array" }
<tr>
<td colspan="4" class="content-none">暂无附件</td>
</tr>
{/empty}
</tbody>
</table>
{/eq}
</div>
</div>
<div class="detail-link">
<h5 class="py-4">关联链接</h5>
<div>
{eq name="$role_edit" value="edit"}
<button type="button" class="layui-btn layui-btn-sm" id="linkBtn">新增相关联链接</button>
<span style="color:#FF5722; font-size:12px; margin-left: 8px;">请规范填写链接说明,方便大家查阅。</span>
<div class="layui-upload-list" {empty name="$link_array" }style="display:none;" {/empty}>
<table class="layui-table">
<thead>
<tr>
<th width="60%">链接</th>
<th width="15%" style="text-align:center">说明</th>
<th width="10%" style="text-align:center">添加人</th>
<th width="15%" style="text-align:center">操作</th>
</tr>
</thead>
<tbody id="linkList">
{volist name="link_array" id="vo"}
<tr data-id="{$vo.id}" id="link_{$vo.id}">
<td>
<a href="{$vo.url}" target="_blank">{$vo.url}</a>
</td>
<td>{$vo.desc}</td>
<td style="text-align: center;">{$vo.admin_name}</td>
<td style="text-align: center;">
<div class="layui-btn-group">
<span class="layui-btn layui-btn-xs link-edit" data-id="{$vo.id}" data-url="{$vo.url}" data-desc="{$vo.desc}">编辑</span>
<span class="layui-btn layui-btn-xs layui-btn-danger link-delete" data-uid="{$vo.admin_id}" data-id="{$vo.id}">删除</span>
</div>
</td>
</tr>
{/volist}
</tbody>
</table>
</div>
{else/}
<table class="layui-table">
<thead>
<tr>
<th width="60%">链接</th>
<th width="30%" style="text-align:center">说明</th>
<th width="10%" style="text-align:center">添加人</th>
</tr>
</thead>
<tbody id="linkList">
{volist name="link_array" id="vo"}
<tr>
<td>
<a href="{$vo.url}" target="_blank">{$vo.url}</a>
</td>
<td>{$vo.desc}</td>
<td style="text-align: center;">{$vo.admin_name}</td>
</tr>
{/volist}
{empty name="$link_array" }
<tr>
<td colspan="3" class="content-none">暂无链接</td>
</tr>
{/empty}
</tbody>
</table>
{/eq}
</div>
</div>
</div>
</div>
<div class="layui-tab layui-tab-brief px-4" lay-filter="docDemoTabBrief">
<ul class="layui-tab-title">
<li class="layui-this">互动评论({$detail.comments})</li>
<li>操作日志({$detail.logs})</li>
</ul>
<div class="layui-tab-content p-0">
<div class="layui-tab-item comment-list layui-show">
<div class="comment-input my-2">
<input type="text" id="commentInput" readonly placeholder="发表一下你的看法" class="layui-input" value="">
</div>
<div id="comment_business_{$detail.id}"></div>
</div>
<div class="layui-tab-item logs-list">
<div id="log_business_{$detail.id}"></div>
</div>
</div>
</div>
</div>
<script>
function openInit() {
const detail_id = '{$detail.id}';
var layer = layui.layer, tool = layui.tool, edit = layui.gouguEdit, comment = layui.gouguComment,
upload = layui.upload;
$('.hover-edit').hover(function () {
$(this).addClass('hover-on');
}, function () {
$(this).removeClass('hover-on');
})
$('.hover-edit').on('click', 'i', function () {
let name = $(this).data('name');
let show_txt = $('#' + name + '_' + detail_id).text().replace(/[\r\n\t]/g, "");
let real_txt = $('#' + name + '_' + detail_id).data('val');
if (real_txt === '') {
real_txt = show_txt;
}
editShow(detail_id, name, show_txt, real_txt);
})
$('#delBtn').on('click', function () {
layer.confirm('确定要删除该产品吗?请慎重', {icon: 3, title: '提示'}, function (index) {
let callback = function (e) {
layer.closeAll();
layer.msg(e.msg);
if (e.code == 0) {
setTimeout(function () {
location.reload();
}, 1000)
}
}
let postData = {"id": detail_id};
tool.delete("/business/index/delete", postData, callback);
});
})
//添加联系人
$('#contactadd').on('click', function () {
comment.addContact(detail_id,'business');
})
//编辑联系人
$('#contactedit').on('click', function () {
let id = $(this).data('id');
let topic_id = $(this).data('topic_id');
let contact = $(this).data('contact');
let post = $(this).data('post');
let phone = $(this).data('phone');
let email = $(this).data('email');
let wechat = $(this).data('wechat');
let qq = $(this).data('qq');
comment.editContact(id,topic_id, detail_id, 'business', contact, post, phone, email, wechat, qq);
})
//删除联系人
$('#contactdel').on('click', function () {
let id = $(this).data('id');
layer.confirm('确定要删除该联系人吗?', {icon: 3, title: '提示'}, function (index) {
let callback = function (e) {
layer.closeAll();
layer.msg(e.msg);
tool.load("/business/index/view?id=" + detail_id);
}
let postData = {"id": id};
tool.delete("/api/business/delete_contact", postData, callback);
});
})
upload.render({
elem: '#flieBtn'
, url: '/api/index/upload'
, accept: 'file' //普通文件
, exts: 'jpeg|jpg|png|gif|doc|docx|ppt|pptx|xls|xlsx|pdf|zip|rar|7z' //只允许上传文件
, before: function (obj) {
layer.msg('上传中...', {time: 3600000});
}
, done: function (res, index, upload) {
let callback = function (e) {
layer.msg('上传成功');
tool.load("/business/index/view?id=" + detail_id);
}
let postData = {
'topic_id': detail_id,
'file_id': res.data.id,
'file_name': res.data.name,
'module': 'business'
};
tool.post("/api/appendix/add", postData, callback);
}
, error: function (index, upload) {
layer.msg('上传失败');
}
});
$('#flieList').on('click', '.file-delete', function () {
let id = $(this).data('id');
layer.confirm('确定要删除该附件吗?', {icon: 3, title: '提示'}, function (index) {
let callback = function (e) {
layer.closeAll();
layer.msg(e.msg);
tool.load("/business/index/view?id=" + detail_id);
}
let postData = {"id": id};
tool.delete("/api/appendix/delete", postData, callback);
});
})
$('#linkBtn').on('click', function () {
comment.addLink(0, detail_id, 'business', '', '');
})
$('#linkList').on('click', '.link-edit', function () {
let id = $(this).data('id');
let url = $(this).data('url');
let desc = $(this).data('desc');
comment.addLink(id, detail_id, 'business', url, desc);
})
$('#linkList').on('click', '.link-delete', function () {
let id = $(this).data('id');
layer.confirm('确定要删除该链接吗?', {icon: 3, title: '提示'}, function (index) {
let callback = function (e) {
layer.closeAll();
layer.msg(e.msg);
tool.load("/business/index/view?id=" + detail_id);
}
let postData = {"id": id};
tool.delete("/api/appendix/delete_link", postData, callback);
});
})
//评论
comment.load(detail_id, 'business');
$('#commentInput').on('click', function () {
comment.editor(0, detail_id, 0, 0, 'business', '');
})
//回复
$('#comment_business_' + detail_id).on('click', '[data-event="replay"]', function () {
let pid = $(this).data('id');
let padmin_id = $(this).data('uid');
comment.editor(0, detail_id, pid, padmin_id, 'business', '');
})
//编辑
$('#comment_business_' + detail_id).on('click', '[data-event="edit"]', function () {
let id = $(this).data('id');
let mdcontent = $('#comment_' + id).data('mdcontent');
comment.editor(id, detail_id, 0, 0, 'business', mdcontent);
})
//删除
$('#comment_business_' + detail_id).on('click', '[data-event="del"]', function () {
let id = $(this).data('id');
comment.del(id, detail_id, 'business');
})
//操作记录
comment.log(detail_id, 'business');
let loading = false;
let editPost = function (id, name, show_val, real_val) {
let callback = function (e) {
if (e.code == 0) {
layer.closeAll();
tool.load('/business/index/view/id/' + id);
if (layui.pageTable) {
setTimeout(function () {
layui.pageTable.reload();
}, 400)
}
} else {
layer.msg(e.msg);
}
}
let postData = {id: id};
postData[name] = real_val;
if (name == 'md_content') {
postData['content'] = show_val;
}
tool.post("/business/index/add", postData, callback);
}
function editShow(id, name, show_txt, real_txt) {
if (loading == true) {
return false;
}
if (name == "name") {
edit.text(id, name, real_txt, editPost);
}
if (name == "director_uid") {
edit.employee_one(id, name, show_txt, real_txt, editPost);
}
if (name == "check_admin_ids") {
edit.employee_more(id, name, show_txt, real_txt, editPost);
}
if (name == "is_open") {
let data = [
{'id': 1, 'title': '内部(仅创建人、对接人、可访问)'},
{'id': 2, 'title': '公开(有对接权限员工均可访问)'}
];
edit.select_type(id, name, real_txt, data, editPost);
}
if (name == "md_content") {
edit.editor(id, name, real_txt, editPost);
}
}
}
</script>