优化调整个人中心文档管理界面

This commit is contained in:
yangjian 2020-11-30 21:46:15 +08:00
parent 29ab693804
commit d3b31d0952
4 changed files with 360 additions and 297 deletions

View File

@ -522,38 +522,19 @@ def del_project(request):
@require_http_methods(['GET','POST'])
def manage_project(request):
if request.method == 'GET':
try:
search_kw = request.GET.get('kw', None)
if search_kw:
pro_list = Project.objects.filter(create_user=request.user,intro__icontains=search_kw).order_by('-create_time')
paginator = Paginator(pro_list, 15)
page = request.GET.get('page', 1)
try:
pros = paginator.page(page)
except PageNotAnInteger:
pros = paginator.page(1)
except EmptyPage:
pros = paginator.page(paginator.num_pages)
pros.kw = search_kw
else:
pro_list = Project.objects.filter(create_user=request.user).order_by('-create_time')
paginator = Paginator(pro_list, 15)
page = request.GET.get('page', 1)
try:
pros = paginator.page(page)
except PageNotAnInteger:
pros = paginator.page(1)
except EmptyPage:
pros = paginator.page(paginator.num_pages)
return render(request,'app_doc/manage/manage_project.html',locals())
except Exception as e:
logger.exception("管理文集出错")
return render(request,'404.html')
return render(request,'app_doc/manage/manage_project.html',locals())
else:
kw = request.POST.get('kw','')
page = request.POST.get('page', 1)
limit = request.POST.get('limit', 10)
# 获取文集列表
project_list = Project.objects.filter(create_user=request.user).order_by('-create_time')
if kw == '':
project_list = Project.objects.filter(create_user=request.user).order_by('-create_time')
else:
project_list = Project.objects.filter(
Q(intro__icontains=kw) | Q(name__icontains=kw),
create_user=request.user,
).order_by('-create_time')
paginator = Paginator(project_list, limit)
try:
pros = paginator.page(page)
@ -662,7 +643,8 @@ def manage_project_doc_sort(request,pro_id):
n = 10
# 第一级文档
for data in sort_data:
Doc.objects.filter(id=data['id']).update(sort=n)
print(data)
Doc.objects.filter(id=data['id']).update(sort=n,parent_doc=0)
n += 10
# 存在第二级文档
if 'children' in data.keys():
@ -1123,41 +1105,54 @@ def del_doc(request):
try:
# 获取文档ID
doc_id = request.POST.get('doc_id',None)
range = request.POST.get('range', 'single')
if doc_id:
# 查询文档
try:
doc = Doc.objects.get(id=doc_id)
if range == 'single':
# 查询文档
try:
project = Project.objects.get(id=doc.top_doc) # 查询文档所属的文集
doc = Doc.objects.get(id=doc_id)
try:
project = Project.objects.get(id=doc.top_doc) # 查询文档所属的文集
except ObjectDoesNotExist:
logger.error("文档{}的所属文集不存在。".format(doc_id))
project = 0
# 获取文档所属文集的协作信息
pro_colla = ProjectCollaborator.objects.filter(project=project,user=request.user)
if pro_colla.exists():
colla_user_role = pro_colla[0].role
else:
colla_user_role = 0
except ObjectDoesNotExist:
logger.error("文档{}的所属文集不存在。".format(doc_id))
project = 0
# 获取文档所属文集的协作信息
pro_colla = ProjectCollaborator.objects.filter(project=project,user=request.user)
if pro_colla.exists():
colla_user_role = pro_colla[0].role
else:
colla_user_role = 0
except ObjectDoesNotExist:
return JsonResponse({'status': False, 'data': '文档不存在'})
# 如果请求用户为站点管理员、文档创建者、高级权限的协作者、文集的创建者,可以删除
if (request.user == doc.create_user) \
or (colla_user_role == 1) \
or (request.user == project.create_user)\
or (request.user.is_superuser):
# 修改状态为删除
doc.status = 3
doc.modify_time = datetime.datetime.now()
doc.save()
# 修改其下级所有文档状态为删除
chr_doc = Doc.objects.filter(parent_doc=doc_id) # 获取下级文档
chr_doc_ids = chr_doc.values_list('id',flat=True) # 提取下级文档的ID
chr_doc.update(status=3,modify_time=datetime.datetime.now()) # 修改下级文档的状态为删除
Doc.objects.filter(parent_doc__in=chr_doc_ids).update(status=3,modify_time=datetime.datetime.now()) # 修改下级文档的下级文档状态
return JsonResponse({'status': False, 'data': '文档不存在'})
# 如果请求用户为站点管理员、文档创建者、高级权限的协作者、文集的创建者,可以删除
if (request.user == doc.create_user) \
or (colla_user_role == 1) \
or (request.user == project.create_user)\
or (request.user.is_superuser):
# 修改状态为删除
doc.status = 3
doc.modify_time = datetime.datetime.now()
doc.save()
# 修改其下级所有文档状态为删除
chr_doc = Doc.objects.filter(parent_doc=doc_id) # 获取下级文档
chr_doc_ids = chr_doc.values_list('id',flat=True) # 提取下级文档的ID
chr_doc.update(status=3,modify_time=datetime.datetime.now()) # 修改下级文档的状态为删除
Doc.objects.filter(parent_doc__in=chr_doc_ids).update(status=3,modify_time=datetime.datetime.now()) # 修改下级文档的下级文档状态
return JsonResponse({'status': True, 'data': '删除完成'})
return JsonResponse({'status': True, 'data': '删除完成'})
else:
return JsonResponse({'status': False, 'data': '非法请求'})
elif range == 'multi':
docs = doc_id.split(",")
try:
Doc.objects.filter(id__in=docs,create_user=request.user).update(status=3,modify_time=datetime.datetime.now())
Doc.objects.filter(parent_doc__in=docs).update(status=3,modify_time=datetime.datetime.now())
return JsonResponse({'status': True, 'data': '删除完成'})
except:
return JsonResponse({'status': False, 'data': '非法请求'})
else:
return JsonResponse({'status': False, 'data': '非法请求'})
return JsonResponse({'status': False, 'data': '类型错误'})
else:
return JsonResponse({'status':False,'data':'参数错误'})
except Exception as e:
@ -1167,149 +1162,98 @@ def del_doc(request):
# 管理文档
@login_required()
@require_http_methods(['GET'])
# @logger.catch()
@require_http_methods(['GET','POST'])
def manage_doc(request):
# 文档内容搜索参数
search_kw = request.GET.get('kw','')
# 文档状态筛选参数
doc_status = request.GET.get('status', 'all')
# 文档文集筛选参数
doc_pro_id = request.GET.get('pid','')
is_search = True if search_kw != '' else False
is_status = doc_status
is_project = True if doc_pro_id != '' else False
# 无搜索 - 无状态 - 无文集
if (is_search is False) and (is_status == 'all') and (is_project is False):
doc_list = Doc.objects.filter(create_user=request.user,status__in=[0,1]).order_by('-modify_time')
# 无搜索 - 无状态 - 有文集
elif (is_search is False) and (is_status == 'all') and (is_project):
doc_list = Doc.objects.filter(
create_user=request.user,
top_doc=int(doc_pro_id),
status__in=[0,1]
).order_by('-modify_time')
# 无搜索 - 有状态 - 无文集
elif (is_search is False) and (is_status != 'all') and (is_project is False):
# 返回已发布文档
if doc_status == 'published':
doc_list = Doc.objects.filter(create_user=request.user, status=1).order_by('-modify_time')
# 返回草稿文档
elif doc_status == 'draft':
doc_list = Doc.objects.filter(create_user=request.user, status=0).order_by('-modify_time')
if request.method == 'GET':
# 文集列表
project_list = Project.objects.filter(create_user=request.user) # 自己创建的文集列表
colla_project_list = ProjectCollaborator.objects.filter(user=request.user) # 协作的文集列表
# 文档数量
# 已发布文档数量
published_doc_cnt = Doc.objects.filter(create_user=request.user, status=1).count()
# 草稿文档数量
draft_doc_cnt = Doc.objects.filter(create_user=request.user, status=0).count()
# 所有文档数量
all_cnt = published_doc_cnt + draft_doc_cnt
return render(request,'app_doc/manage/manage_doc.html',locals())
else:
kw = request.POST.get('kw', '')
project = request.POST.get('project','')
status = request.POST.get('status','')
if status == '-1': # 全部文档
q_status = [0,1]
elif status in ['0','1']:
q_status = [int(status)]
else:
doc_list = Doc.objects.filter(create_user=request.user, status__in=[0,1]).order_by('-modify_time')
q_status = [0, 1]
# 无搜索 - 有状态 - 有文集
elif (is_search is False) and (is_status != 'all') and (is_project):
# 返回已发布文档
if doc_status == 'published':
if project == '':
project_list = Project.objects.filter(create_user=request.user).values_list('id',flat=True) # 自己创建的文集列表
colla_project_list = ProjectCollaborator.objects.filter(user=request.user).values_list('id',flat=True) # 协作的文集列表
q_project = list(project_list) + list(colla_project_list)
else:
q_project = [project]
page = request.POST.get('page', 1)
limit = request.POST.get('limit', 10)
# 没有搜索
if kw == '':
doc_list = Doc.objects.filter(
create_user=request.user,
status=1,
top_doc=int(doc_pro_id)
).order_by('-modify_time')
# 返回草稿文档
elif doc_status == 'draft':
doc_list = Doc.objects.filter(
create_user=request.user,
status=0,
top_doc = int(doc_pro_id)
status__in=q_status,
top_doc__in=q_project
).order_by('-modify_time')
# 有搜索
else:
doc_list = Doc.objects.filter(
create_user=request.user,
top_doc=int(doc_pro_id),
status__in=[0,1]
Q(content__icontains=kw) | Q(name__icontains=kw),
create_user=request.user,status__in=q_status,top_doc__in=q_project
).order_by('-modify_time')
# 有搜索 - 无状态 - 无文集
elif (is_search) and (is_status == 'all') and (is_project is False):
doc_list = Doc.objects.filter(
Q(content__icontains=search_kw) | Q(name__icontains=search_kw), # 文本或文档标题包含搜索词
create_user=request.user,
status__in=[0,1]
).order_by('-modify_time')
# 文集列表
project_list = Project.objects.filter(create_user=request.user) # 自己创建的文集列表
colla_project_list = ProjectCollaborator.objects.filter(user=request.user) # 协作的文集列表
# 有搜索 - 无状态 - 有文集
elif (is_search) and (is_status == 'all') and (is_project):
doc_list = Doc.objects.filter(
Q(content__icontains=search_kw) | Q(name__icontains=search_kw), # 文本或文档标题包含搜索词
create_user=request.user,top_doc=int(doc_pro_id),status__in=[0,1]
).order_by('-modify_time')
# 文档数量
# 已发布文档数量
published_doc_cnt = Doc.objects.filter(create_user=request.user, status=1).count()
# 草稿文档数量
draft_doc_cnt = Doc.objects.filter(create_user=request.user, status=0).count()
# 所有文档数量
all_cnt = published_doc_cnt + draft_doc_cnt
# 有搜索 - 有状态 - 无文集
elif (is_search) and (is_status != 'all') and (is_project is False):
if doc_status == 'published':
doc_list = Doc.objects.filter(
Q(content__icontains=search_kw) | Q(name__icontains=search_kw),
create_user=request.user,
status = 1
).order_by('-modify_time')
elif doc_status == 'draft':
doc_list = Doc.objects.filter(
Q(content__icontains=search_kw) | Q(name__icontains=search_kw), # 文本或文档标题包含搜索词
create_user=request.user,
status = 0
).order_by('-modify_time')
else:
doc_list = Doc.objects.filter(
Q(content__icontains=search_kw) | Q(name__icontains=search_kw), # 文本或文档标题包含搜索词
create_user=request.user,status__in=[0,1]
).order_by('-modify_time')
# 分页处理
paginator = Paginator(doc_list, limit)
page = request.GET.get('page', page)
try:
docs = paginator.page(page)
except PageNotAnInteger:
docs = paginator.page(1)
except EmptyPage:
docs = paginator.page(paginator.num_pages)
# 有搜索 - 有状态 - 有文集
elif (is_search) and (is_status != 'all') and (is_project):
if doc_status == 'published':
doc_list = Doc.objects.filter(
Q(content__icontains=search_kw) | Q(name__icontains=search_kw),
create_user=request.user,
status = 1,
top_doc=int(doc_pro_id)
).order_by('-modify_time')
elif doc_status == 'draft':
doc_list = Doc.objects.filter(
Q(content__icontains=search_kw) | Q(name__icontains=search_kw), # 文本或文档标题包含搜索词
create_user=request.user,
status = 0,
top_doc=int(doc_pro_id)
).order_by('-modify_time')
else:
doc_list = Doc.objects.filter(
Q(content__icontains=search_kw) | Q(name__icontains=search_kw), # 文本或文档标题包含搜索词
create_user=request.user,
top_doc=int(doc_pro_id),status__in=[0,1]
).order_by('-modify_time')
# 文集列表
project_list = Project.objects.filter(create_user=request.user) # 自己创建的文集列表
colla_project_list = ProjectCollaborator.objects.filter(user=request.user) # 协作的文集列表
# 文档数量
# 已发布文档数量
published_doc_cnt = Doc.objects.filter(create_user=request.user, status=1).count()
# 草稿文档数量
draft_doc_cnt = Doc.objects.filter(create_user=request.user, status=0).count()
# 所有文档数量
all_cnt = published_doc_cnt + draft_doc_cnt
# 分页处理
paginator = Paginator(doc_list, 15)
page = request.GET.get('page', 1)
try:
docs = paginator.page(page)
except PageNotAnInteger:
docs = paginator.page(1)
except EmptyPage:
docs = paginator.page(paginator.num_pages)
docs.status = doc_status
docs.pid = doc_pro_id
docs.kw = search_kw
return render(request,'app_doc/manage/manage_doc.html',locals())
table_data = []
for doc in docs:
item = {
'id': doc.id,
'name': doc.name,
'parent':Doc.objects.get(id=doc.parent_doc).name if doc.parent_doc != 0 else '',
'project_id': Project.objects.get(id=doc.top_doc).id,
'project_name':Project.objects.get(id=doc.top_doc).name,
'status':doc.status,
'editor_mode':doc.editor_mode,
'open_children':doc.open_children,
'create_time': doc.create_time,
'modify_time': doc.modify_time
}
table_data.append(item)
resp_data = {
"code": 0,
"msg": "ok",
"count": doc_list.count(),
"data": table_data
}
return JsonResponse(resp_data)
# 移动文档

View File

@ -124,6 +124,13 @@
border-color: #2176ff;
background-color: #2176ff;
}
/* 多选框样式 */
.layui-form-checked[lay-skin=primary] i {
border-color: #2176ff!important;
background-color: #2176ff;
color: #fff;
}
/* 选项卡样式 */
.layui-tab-brief>.layui-tab-title .layui-this{
color: #2176ff;

View File

@ -3,33 +3,19 @@
{% block title %}文档管理{% endblock %}
{% block content %}
<div class="layui-card">
<div class="layui-card-header">高级筛选</div>
<div class="layui-card-body">
<div class="layui-row">
<form action="{% url 'manage_doc' %}" method="get">
<input name="pid" value="{{docs.pid}}" hidden>
<div class="layui-form-item">
<span class="doc_status_condition" lay-separator="|">
<a href="{% url 'manage_doc' %}?status=all" class="{% if doc_status == 'all' %}current{% endif %}">全部({{all_cnt}}</a>
<a href="{% url 'manage_doc' %}?status=published" class="{% if doc_status == 'published' %}current{% endif %}">已发布({{published_doc_cnt}}</a>
<a href="{% url 'manage_doc' %}?status=draft" class="{% if doc_status == 'draft' %}current{% endif %}">草稿({{draft_doc_cnt}}</a>
<input name="status" value="{% if doc_status == 'all' %}all{% elif doc_status == 'published' %}published{% elif doc_status == 'draft' %}draft{% endif %}" hidden>
</span>
<div class="layui-input-inline" style="float:inherit;">
<input type="text" name="kw" id="kw" placeholder="输入文档标题或内容" autocomplete="off" class="layui-input">
</div>
<button class="layui-btn layui-btn-normal layui-btn-xs" type="submit"><i class="layui-icon layui-icon-search"></i>搜索</button>
<a href="{% url 'create_doc' %}" target="_blank" class="layui-btn layui-btn-primary layui-btn-xs"><i class="layui-icon layui-icon-addition"></i>新建</a>
</div>
</form>
</div>
</div>
</div>
<div class="layui-card">
<div class="layui-card-body">
<div class="">
<div class="layui-form">
<div class="layui-input-inline">
<div class="layui-form">
<div class="layui-form-item">
<label class="layui-form-label">关键词</label>
<div class="layui-input-inline">
<input type="text" name="kw" placeholder="请输入标题" autocomplete="off" class="layui-input">
</div>
<button class="layui-btn layui-btn-normal layui-btn-sm" id="search">搜索</button>
</div>
<div class="layui-form-item">
<label class="layui-form-label">文集</label>
<div class="layui-input-inline">
<select name="pro_id" lay-verify="required" lay-filter="project" id="project">
<option value="">按文集筛选</option>
<!-- 自己的文集 -->
@ -55,7 +41,15 @@
</optgroup>
{% endif %}
</select>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">文档状态</label>
<div class="layui-input-block">
<input type="radio" name="status" title="全部({{all_cnt}})" value="-1" lay-skin="primary" checked lay-filter="doc_status">
<input type="radio" name="status" title="草稿({{draft_doc_cnt}})" value="0" lay-skin="primary" lay-filter="doc_status">
<input type="radio" name="status" title="已发布({{published_doc_cnt}})" value="1" lay-skin="primary" lay-filter="doc_status">
</div>
</div>
</div>
</div>
@ -63,82 +57,84 @@
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-row" lay-skin="">
<table class="layui-table" id="doctemp-list" lay-skin="nob" lay-even>
<thead>
<tr>
<th>文档名称</th>
<th>上级文档</th>
<th>展开下级</th>
<th>所属文集</th>
<th>创建时间</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% load doc_filter %}
{% for doc in docs %}
<tr>
{% if doc.status == 1 %}
<td>
<img src="{% static 'icon_img/manage-doc-icon.svg' %}" height="20px" width="20px" />
<a href="{% url 'doc' doc.top_doc doc.id %}" target="_blank" title="查看文档:{{doc.name}}">{{ doc.name }}
</a>
</td>
{% else %}
<td>
<img src="{% static 'icon_img/manage-doc-pre-icon.svg' %}" height="20px" width="20px" />
<a href="{% url 'modify_doc' doc.id %}" target="_blank" title="修改文档:{{doc.name}}">{{ doc.name }}
</a>
<button class="layui-btn layui-btn-xs layui-btn-normal" onclick="fastPubDoc('{{doc.id}}')">一键发布</button>
</td>
{% endif %}
<td>{{ doc.parent_doc|get_doc_parent }}</td>
<td>{{ doc.open_children }}</td>
<td>
{{ doc.top_doc|is_colla_pro:doc.create_user }}{{ doc.top_doc|get_doc_top }}
</td>
<td>{{ doc.create_time }}</td>
<td>
<a href="{% url 'manage_doc_history' doc.id %}" title="查看文档历史" class="layui-btn layui-btn-xs layui-btn-normal">
<i class="layui-icon layui-icon-log"></i>
</a>
<a href="{% url 'modify_doc' doc_id=doc.id %}" title="修改文档" target="_blank" class="layui-btn layui-btn-xs layui-btn-normal">
<i class="layui-icon layui-icon-edit"></i>
</a>
<a href="javascript:void(0);" title="删除文档" onclick="delDoc('{{doc.id}}');" class="layui-btn layui-btn-xs layui-btn-warm">
<i class="layui-icon layui-icon-delete"></i>
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<!-- 分页 -->
<div class="layui-row">
<div class="layui-box layui-laypage layui-laypage-default">
<!-- 上一页 -->
{% if docs.has_previous %}
<a href="?page={{ docs.previous_page_number }}&kw={{docs.kw}}&status={{docs.status}}&pid={{docs.pid}}" class="layui-btn layui-btn-xs layui-btn-normal">上一页</a>
{% else %}
<a href="javascript:;" class="layui-btn layui-btn-xs layui-btn-disabled">上一页</a>
{% endif %}
<!-- 当前页 -->
<span class="layui-laypage-curr">
<em class="layui-laypage-em"></em>
<em>{{ docs.number }}/{{ docs.paginator.num_pages }}</em>
</span>
<!-- 下一页 -->
{% if docs.has_next %}
<a href="?page={{ docs.next_page_number }}&kw={{docs.kw}}&status={{docs.status}}&pid={{docs.pid}}" class="layui-btn layui-btn-xs layui-btn-normal">下一页</a>
{% else %}
<a class="layui-btn layui-btn-xs layui-btn-disabled">下一页</a>
{% endif %}
</div>
</div>
<table id="doc-table" lay-filter="doc-table"></table>
</div>
</div>
<!-- 表格工具栏 -->
<script type="text/html" id="doc-toolbar">
<button class="layui-btn layui-btn-normal pear-btn-sm" lay-event="add">
<i class="layui-icon layui-icon-add-1"></i>新增
</button>
<button class="layui-btn layui-btn-warm pear-btn-sm" lay-event="batchRemove">
<i class="layui-icon layui-icon-delete"></i>删除
</button>
</script>
<!-- 文档名称 -->
<script type="text/html" id="doc-name">
{% verbatim %}
{{#if (d.status == 1) { }}
<span class="layui-badge-dot layui-bg-blue"></span>
<a href="/project-{{d.project_id}}/doc-{{d.id}}" target="_blank">{{d.name}}</a>
{{# }else if(d.status == 0){ }}
<!-- <i class="layui-icon layui-icon-release" style="cursor: pointer;" onclick="fastPubDoc('{{d.id}}')" title="草稿状态,点击一键发布"></i>&nbsp; -->
<span class="layui-badge-dot layui-bg-orange"></span>
<a href="/modify_doc/{{d.id}}/" target="_blank" title="修改文档:{{d.name}}">{{ d.name }} </a>
{{# } }}
{% endverbatim %}
</script>
<!-- 文档状态 -->
<script type="text/html" id="doc-status">
{% verbatim %}
{{#if (d.status == 1) { }}
<span class="layui-badge-rim">已发布</span>
{{# }else if(d.status == 0){ }}
<!-- <i class="layui-icon layui-icon-release" style="cursor: pointer;" onclick="fastPubDoc('{{d.id}}')" title="草稿状态,点击一键发布"></i>&nbsp; -->
<span class="layui-badge-rim" style="cursor: pointer;" onclick="fastPubDoc('{{d.id}}')" title="点击一键发布">草稿</span>
{{# } }}
{% endverbatim %}
</script>
<!-- 修改时间 -->
<script type="text/html" id="doc-modify-time">
{% verbatim %}
{{layui.util.toDateString(d.modify_time, "yyyy-MM-dd HH:mm:ss")}}
{% endverbatim %}
</script>
<!-- 编辑模式 -->
<script type="text/html" id="editor-mode">
{% verbatim %}
{{#if (d.editor_mode == 1) { }}
Editor.MD
{{# }else if(d.editor_mode == 2){ }}
Vditor
{{# } }}
{% endverbatim %}
</script>
<!-- 展开下级 -->
<script type="text/html" id="open_children">
{% verbatim %}
{{#if (d.open_children == true) { }}
展开
{{# }{ }}
收起
{{# } }}
{% endverbatim %}
</script>
<!-- 单个文档操作 -->
<script type="text/html" id="doc-bar">
{% verbatim %}
<a href="/manage_doc_history/{{d.id}}/" class="layui-btn layui-btn-primary pear-btn-sm"><i class="layui-icon layui-icon-log"></i></a>
<a href="/modify_doc/{{d.id}}/" title="修改文档" class="layui-btn layui-btn-primary pear-btn-sm" target="_blank"><i class="layui-icon layui-icon-edit"></i></a>
<button class="layui-btn layui-btn-warm pear-btn-sm" lay-event="remove"><i class="layui-icon layui-icon-delete"></i></button>
{% endverbatim %}
</script>
{% endblock %}
{% block custom_script %}
<script>
@ -151,6 +147,32 @@
$.ajaxSetup({
data: {csrfmiddlewaretoken: '{{ csrf_token }}' },
});
let cols = [
[
{type: 'checkbox',width:20},
{title: '文档名称',field: 'name',align: 'left',templet:"#doc-name",minWidth:280},
{title: '状态',field: 'status',align: 'left',templet:"#doc-status",width:90},
{title: '上级',field: 'parent',align: 'left',},
{title: '文集',field: 'project_name',align: 'left',templet:"#project-role"},
{title: '编辑模式',field: 'editor_mode',align: 'left',templet:"#editor-mode",width:90},
{title: '展开下级',field: 'open_children',align: 'left',width:90, templet:"#open_children"},
{title: '最后编辑',field: 'modify_time',align: 'left',templet:"#doc-modify-time"},
{title: '操作',toolbar: '#doc-bar',align: 'left',} ]
]
// 渲染表格
table.render({
elem: '#doc-table',
method:'post',
where:{
'type':1,
},
url: "{% url 'manage_doc' %}",
page: true,
cols: cols,
skin: 'line',
toolbar: '#doc-toolbar',
defaultToolbar: ['filter']
});
// 删除文档
delDoc = function(doc_id){
layer.open({
@ -198,11 +220,92 @@
}
})
};
//筛选文集
// 批量删除文档
batchRemoveDoc = function(obj) {
let data = table.checkStatus(obj.config.id).data;
if (data.length === 0) {
layer.msg("未选中任何文档", {
icon: 3,
time: 1000
});
return false;
}
let doc_id = "";
for (let i = 0; i < data.length; i++) {
doc_id += data[i].id + ",";
}
doc_id = doc_id.substr(0, doc_id.length - 1);
// console.log(pro_id)
layer.confirm('确定要删除这些文档?', {
icon: 3,
title: '提示'
}, function(index) {
layer.close(index);
let loading = layer.load();
$.ajax({
url: "{% url 'del_doc' %}",
dataType: 'json',
type: 'post',
data:{'doc_id':doc_id,'range':'multi'},
success: function(r) {
layer.close(loading);
if (r.status) {
layer.msg("删除成功", {
icon: 1,
time: 1000
}, function() {
table.reload('doc-table');
});
} else {
layer.msg(r.data, {
icon: 2,
time: 1000
});
}
}
})
});
}
// 监听文集筛选
form.on('select(project)', function(data){
console.log('选择文集:',data.value); //得到被选中的值
if(data.value != -1){//
window.location.href = '?kw={{docs.kw}}&status={{docs.status}}&pid='+data.value;
table.reload('doc-table',{
where:{
'type':1,'project':data.value,
},
})
});
// 监听状态筛选
form.on('radio(doc_status)', function(data){
console.log(data.value); //被点击的radio的value值
table.reload('doc-table',{
where:{
'type':1,'status':data.value,
},
})
});
// 监听搜索按钮
$("#search").click(function(){
table.reload('doc-table',{
where:{
'type':1,'kw':$("input[name=kw]").val(),
},
})
});
// 侦听文档删除按钮
table.on("tool(doc-table)",function(obj){
if (obj.event === 'remove') {
// console.log(obj)
delDoc(obj.data.id)
}
});
// 侦听表格工具栏
table.on("toolbar(doc-table)",function(obj){
if (obj.event === 'add') { // 新增文集
createProject();
}else if(obj.event === 'batchRemove'){ // 批量删除文集
batchRemoveDoc(obj)
}
});
})

View File

@ -11,7 +11,7 @@
<!-- 表格工具栏 -->
<script type="text/html" id="project-toolbar">
<div class="layui-input-inline">
<input type="text" name="project-search-kw" placeholder="" class="layui-input">
<input type="text" name="project-search-kw" placeholder="" class="layui-input" >
</div>
<button class="layui-btn layui-btn-primary pear-btn-sm" lay-event="search">
<i class="layui-icon layui-icon-search"></i>搜索
@ -106,7 +106,9 @@
table.render({
elem: '#project-table',
method:'post',
where:{'type':1},
where:{
'type':1
},
url: "{% url 'manage_project' %}",
page: true,
cols: cols,
@ -120,15 +122,22 @@
// console.log(obj)
delProject(obj.data.id)
}
})
});
// 侦听表格工具栏
table.on("toolbar(project-table)",function(obj){
if (obj.event === 'add') { // 新增文集
createProject();
}else if(obj.event === 'batchRemove'){ // 批量删除文集
batchRemove(obj)
}else if(obj.event === 'search'){ // 搜索文集
console.log('搜索文集')
table.reload('project-table',{
where:{
'type':1,'kw':$('input[name="project-search-kw"]').val()
},
})
}
})
});
//创建文集
createProject = function(){
layer.open({