1、新增评论、回复功能

2、工具发布权限完善一部分
This commit is contained in:
pan
2024-08-30 19:48:44 +08:00
parent 15a59707c6
commit 4920b41620
6 changed files with 476 additions and 86 deletions

View File

@@ -1,18 +1,78 @@
<template>
<div class="app-container">
<el-card>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<div class="search">
<div class="sl">
<el-form-item label="文档名称" prop="roleName">
<el-form-item label="文档编号" prop="docCode">
<el-input
v-model="queryParams.docCode"
placeholder="请输入文档名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="文档名称" prop="docName">
<el-input
v-model="queryParams.docName"
placeholder="请输入文档名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="类别" prop="docType">
<el-select v-model="queryParams.docType" placeholder="请选择">
<el-option
v-for="dict in dict.type.doc_class"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="负责人" prop="docPrincipals">
<el-input
v-model="queryParams.docPrincipals"
placeholder="请输入负责人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="归属单位" prop="docRespDept">
<treeselect v-model="queryParams.docRespDept" :options="deptOptions"
placeholder="请选择归属单位"
:show-count="true" style="width: 150px"/>
</el-form-item>-->
<el-form-item label="来源" prop="docSource">
<el-select v-model="queryParams.docSource" placeholder="请选择" >
<el-option
v-for="dict in dict.type.doc_source"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="状态" prop="docStatus">
<el-select v-model="queryParams.docStatus" placeholder="请选择" >
<el-option
v-for="dict in dict.type.doc_upload_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
</div>
<div class="sr">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -47,9 +107,11 @@
icon="el-icon-upload2"
size="mini"
@click="handleAdd"
v-hasPermi="['document:add']"
>上传文档</el-button>
<el-button type="primary" icon="el-icon-position" @click="handlePush">发布</el-button>
<el-button icon="el-icon-delete" @click="handleDelete">批量删除</el-button>
<el-button type="primary" icon="el-icon-position" @click="handlePush" v-hasPermi="['document:push']">发布</el-button>
<el-button icon="el-icon-delete" @click="handleDelete" v-hasPermi="['document:batch:remove']">批量删除</el-button>
<el-button icon="el-icon-download" @click="handleOpenExport()" v-hasPermi="['document:export']">导出</el-button>
</div><!--operate 操作按钮-->
<el-table v-loading="loading" :data="docList" @selection-change="handleSelectionChange">
@@ -69,12 +131,17 @@
</template>
</el-table-column>
<el-table-column label="关联工具" align="center" prop="toolName" width="100" />
<el-table-column label="上传状态" align="center" prop="docUploadProgress" width="100" >
<el-table-column label="上传状态" align="center" prop="docStatus" width="100" >
<template slot-scope="scope">
<dict-tag :options="dict.type.doc_upload_status" :value="scope.row.docStatus"/>
</template>
<!--
<template slot-scope="scope">
<el-tag type="info" v-if="scope.row.docStatus == 'ysc'">已上传</el-tag>
<el-tag type="success" v-else-if="scope.row.docStatus == 'yfb'">已发布</el-tag>
<el-tag type="warning" v-else-if="scope.row.docStatus == 'shz'">审核中</el-tag>
</template>
</template>-->
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="180" :show-overflow-tooltip="true">
<template slot-scope="scope">
@@ -89,6 +156,7 @@
icon="el-icon-edit"
v-if="scope.row.docStatus != 'yfb' && scope.row.docStatus != 'shz'"
@click="handleEdit(scope.row)"
v-hasPermi="['document:edit']"
>编辑</el-button>
<el-button
size="mini"
@@ -96,6 +164,7 @@
icon="el-icon-view"
v-if="previewAuth(scope.row)"
@click="handlePreview(scope.row)"
v-hasPermi="['document:preview']"
>预览</el-button>
<el-button
size="mini"
@@ -103,8 +172,11 @@
icon="el-icon-delete"
v-if="scope.row.docStatus != 'yfb' && scope.row.docStatus != 'shz'"
@click="handleDelete(scope.row)"
v-hasPermi="['document:remove']"
>删除</el-button>
<el-button type="text" icon="el-icon-download" @click="handleDownload(scope.row)" v-loading="loadingDownload">下载</el-button>
<el-button type="text" icon="el-icon-download" @click="handleDownload(scope.row)"
v-hasPermi="['document:batch:remove']"
v-loading="loadingDownload">下载</el-button>
</template>
</el-table-column>
</el-table>
@@ -156,7 +228,39 @@
<edit-document ref="editDocumentRef" @submit="editDocumentSubmit"/>
</el-drawer>
<upload-progress/>
<!-- 工具导出对话框 -->
<el-drawer :visible.sync="exportDrawerOpen" size="75%" :show-close="false">
<template #title>
<span class="title">导出</span>
<div class="drawer-head-btn">
<el-button type="primary" @click="handleExport">提交</el-button>
<el-button @click="exportDrawerOpen=false">取消</el-button>
</div><!--drawer-head-btn 抽屉顶部按钮区域-->
</template>
<div class="el-form-border">
<el-form ref="form" label-width="200px">
<el-row>
<el-col :span="24">
<el-form-item label="选择需要导出的字段信息">
<el-checkbox-group v-model="checkList">
<el-checkbox label="docCode">文档编号</el-checkbox>
<el-checkbox label="docName">文档名称</el-checkbox>
<el-checkbox label="docType">类别</el-checkbox>
<el-checkbox label="docPrincipals">负责人</el-checkbox>
<el-checkbox label="docRespDeptName">归属单位</el-checkbox>
<el-checkbox label="docSource">来源</el-checkbox>
<el-checkbox label="toolName">关联工具</el-checkbox>
<el-checkbox label="docStatus">上传状态</el-checkbox>
<el-checkbox label="createTime">创建时间</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
</el-row>
</el-form><!--el-form-->
</div><!--el-form-border 表单-->
</el-drawer><!--el-drawer 导出抽屉-->
<!-- <upload-progress/>-->
</div>
</template>
@@ -174,7 +278,7 @@ import Treeselect from "@riophae/vue-treeselect";
export default {
name: "Document",
components: { iFrame, editDocument, uploadProgress, Treeselect},
dicts:['doc_class','doc_source'],
dicts:['doc_class','doc_source','doc_upload_status'],
data() {
return {
// 遮罩层
@@ -220,7 +324,13 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
docName: undefined
docName: '',
docCode: '',
docType: '',
docPrincipals: '',
docSource: '',
docStatus: '',
docCategoryId: '',
},
// 表单参数
form: {
@@ -263,6 +373,10 @@ export default {
},
loadingDownload: false,
acceptType: "zip,rar,7z",
//导出属性
columnList: ['docCode', 'docName', 'docType', 'docPrincipals', 'docRespDeptName', 'docSource', 'toolName', 'docStatus', 'createTime'],
checkList: [],
exportDrawerOpen: false,
};
},
created() {
@@ -290,18 +404,22 @@ export default {
},
// 节点单击事件
handleNodeClick(data) {
this.queryParams.toolRespDept = data.id;
this.queryParams.docCategoryId = data.id;
this.handleQuery();
},
/** 查询列表 */
getList() {
this.loading = true;
let self = this
self.loading = true;
listDocument(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
this.docList = response.rows;
this.total = response.total;
this.loading = false;
self.docList = response.rows;
self.total = response.total;
self.loading = false;
}
);
).catch(err=>{
console.error("getList=======", err)
self.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
@@ -311,6 +429,7 @@ export default {
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.queryParams.docCategoryId = '';
this.resetForm("queryForm");
this.handleQuery();
},
@@ -350,7 +469,7 @@ export default {
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch((err) => {console.info(err)});
}).catch((err) => {console.error(err)});
},
/** 新增按钮操作 */
handleDocCategoryAdd(data) {
@@ -370,7 +489,7 @@ export default {
this.getDocumentTree();
this.$modal.msgSuccess("删除成功");
}).catch((err) => {
console.info("err============", err)
console.error("err============", err)
});
},
/** 修改按钮操作 */
@@ -460,7 +579,23 @@ export default {
},
isSelectable(row) {
return row.docStatus !== 'yfb' && row.docStatus !== 'shz';
}
},
/** 导出按钮操作 */
handleOpenExport() {
if (this.checkList.length<1) {
this.checkList = JSON.parse(JSON.stringify(this.columnList))
}
this.exportDrawerOpen = true
},
/** 导出按钮操作 */
handleExport() {
let excludeFields = this.columnList.filter(item=>!this.checkList.includes(item))
this.download('/document/export', {
...this.queryParams,
downloadCheck:false,
excludeFields:excludeFields,
}, `文档资源信息数据_${new Date().getTime()}.xlsx`)
},
}
};