This commit is contained in:
hanjian 2024-09-10 01:10:31 +08:00
parent e934cc0163
commit a12204687f
12 changed files with 132 additions and 45 deletions

View File

@ -50,7 +50,7 @@
<div class="fr" v-if="isComment && form.docStatus == 'yfb'">
<div class="tboper">
<div class="tit">评论</div>
<div class="tit">评论{{ reviewTotal }}</div>
</div><!--tboper 标题与操作按钮-->
<div class="pltextarea">
<el-input v-model="discussionContent" type="textarea" placeholder="请输入您的意见" :rows="4" maxlength="1000" show-word-limit></el-input>
@ -59,7 +59,7 @@
<div class="pllist">
<template v-if="discussionsList && discussionsList.length > 0">
<div class="list" v-for="(item,index) in discussionsList" :key="item.id">
<div class="luser"><span class="xuser">{{getFirstChar(item.nickName)}}</span></div>
<div class="luser"><span class="xuser" :style="{backgroundColor: extractColorByName(item.nickName)}">{{getFirstChar(item.nickName)}}</span></div>
<div class="ltext">
<div class="nt"><span class="name">{{item.nickName}}</span><span class="time">{{ parseTime(item.createTime, '{y}-{m}-{d} {h}:{i}') }}</span></div>
<div class="te">{{item.content}}</div>
@ -79,9 +79,18 @@
<!--第二层级-->
<template v-if="item.repliesList && item.repliesList.length > 0">
<div class="list" v-for="(repItem,repIdex) in item.repliesList" :key="repItem.id">
<div class="luser"><span class="xuser">{{getFirstChar(repItem.nickName)}}</span></div>
<div class="luser">
<span class="xuser" :style="{width:'28px',height:'28px',lineHeight:'28px',backgroundColor: extractColorByName(repItem.nickName)}">{{getFirstChar(repItem.nickName)}}</span>
</div>
<div class="ltext">
<div class="nt"><span class="name">{{repItem.nickName}}</span><span class="time">{{ parseTime(repItem.createTime, '{y}-{m}-{d} {h}:{i}') }}</span></div>
<div class="nt">
<span class="name">{{repItem.nickName}}</span>
<template v-if="repItem.repTargetNickName">
<span>回复</span>
<span class="name">{{ repItem.repTargetNickName }}</span>
</template>
<span class="time">{{ parseTime(repItem.createTime, '{y}-{m}-{d} {h}:{i}') }}</span>
</div>
<div class="te">{{repItem.content}}</div>
<div class="hb"><a class="btn" @click="toggleReplyFormSon(index,repIdex)"><i class="el-icon-chat-line-round"></i>回复</a></div>
<div class="pltextarea" v-if="item.showReplyFormSon[repIdex]">
@ -89,7 +98,7 @@
<div class="plbtn">
<el-button @click="cancelReplySon(index,repIdex)">取消</el-button>
<el-divider direction="vertical"></el-divider>
<el-button @click="submitReplySon(index,repIdex, item)">发布</el-button>
<el-button @click="submitReplySon(index, repIdex, item, repItem.id)">发布</el-button>
</div>
</div>
</div>
@ -154,6 +163,7 @@
detailActiveName: 'first',
templateSelection: '',
drawer1: false,
reviewTotal: 0,
checkList: [],
//
form: {
@ -217,7 +227,7 @@
created(){
// this.getDeptTree();
this.getDocumentTree();
// this.getDiscussionsList()
this.getDiscussionsList()
},
mounted(){
},
@ -375,6 +385,14 @@
this.$set(this.showReplyForm, index, false);
this.$set(this.replyContent, index, '');
},
extractColorByName(name) {
let temp = [];
temp.push("#");
for (let index = 0; index < name.length; index++) {
temp.push(parseInt(name[index].charCodeAt(0), 10).toString(16));
}
return temp.slice(0, 5).join('').slice(0, 4);
},
/** 第二级 **/
toggleReplyFormSon(parentIndex, repIndex) {
const parentItem = this.discussionsList[parentIndex];
@ -388,7 +406,7 @@
this.$set(parentItem.replyContentSon, repIndex, '');
},
/** 第二级回复 **/
submitReplySon(parentIndex, repIndex, repItem) {
submitReplySon(parentIndex, repIndex, repItem, repId) {
let self = this
const parentItem = this.discussionsList[parentIndex];
const content = parentItem.replyContentSon[repIndex];
@ -402,6 +420,7 @@
}
let data = {
"discussionId": repItem.id,
"repId": repId,
"content": content,
}
@ -577,18 +596,22 @@
return null;
},
getDiscussionsList() {
let self = this
listDiscussions({businessId:self.form.docId}).then(res => {
self.discussionsList = res.rows
self.discussionsList.forEach(item => {
let _this = this
_this.reviewTotal = 0
listDiscussions({businessId:_this.form.docId}).then(res => {
_this.discussionsList = res.rows
let reviewTotal = 0
_this.discussionsList.forEach(item => {
if(item.repliesList && item.repliesList.length > 0){
self.$set(item, 'showReplyFormSon', new Array(item.repliesList.length).fill(false))
self.$set(item, 'replyContentSon', new Array(item.repliesList.length).fill(''))
reviewTotal += item.repliesList.length
_this.$set(item, 'showReplyFormSon', new Array(item.repliesList.length).fill(false))
_this.$set(item, 'replyContentSon', new Array(item.repliesList.length).fill(''))
}else{
self.$set(item, 'showReplyFormSon', false)
self.$set(item, 'replyContentSon', '')
_this.$set(item, 'showReplyFormSon', false)
_this.$set(item, 'replyContentSon', '')
}
});
_this.reviewTotal = _this.discussionsList.length + reviewTotal
});
},

View File

@ -6,7 +6,7 @@
<el-row>
<el-col :span="24">
<el-form-item label="文件分类" prop="docCategoryId">
<treeselect v-model="form.docCategoryId" :options="docCategory" :show-count="true"
<treeselect v-model="form.docCategoryId" :options="docCategory" :show-count="true" @input="inputSelect"
:disabled="detailBoolean"
placeholder="请选择文件分类"/>
</el-form-item>
@ -330,7 +330,7 @@
//
rules: {
docCategoryId: [
{ required: true, message: "文档分类不能为空", trigger: "change" }
{ required: true, message: "文档分类不能为空", trigger: "input" }
],
docCode: [
{ required: true, message: "文档编号不能为空", trigger: "blur" }
@ -453,6 +453,9 @@
const uniqueID = 'file_' + timestamp;
return uniqueID;
},
inputSelect(){
this.$refs.form.validateField('docCategoryId')
},
/** 提交按钮 */
submitForm: function() {
let self = this

View File

@ -9,6 +9,7 @@
v-model="queryParams.docCode"
placeholder="请输入文档名称"
clearable
@clear="handleQuery"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
@ -17,6 +18,7 @@
v-model="queryParams.docName"
placeholder="请输入文档名称"
clearable
@clear="handleQuery"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
@ -51,11 +53,12 @@
@change="handleQuery"
></el-date-picker>
</el-form-item>
<el-form-item label="负责人" prop="docPrincipals">
<el-form-item label="负责人" prop="docPrincipalsName">
<el-input
v-model="queryParams.docPrincipals"
placeholder="请输入负责人"
v-model="queryParams.docPrincipalsName"
placeholder="请输入负责人名称"
clearable
@clear="handleQuery"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
@ -88,7 +91,7 @@
<div class="lt">
<el-input
v-model="categoryNameParam"
placeholder="请输入部门名称"
placeholder="请输入文档分类名称"
clearable
size="small"
prefix-icon="el-icon-search"
@ -204,9 +207,9 @@
<el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right" >更多</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="handleDetail" icon="el-icon-info" >详情</el-dropdown-item>
<el-dropdown-item command="handleEdit" icon="el-icon-edit" v-if="scope.row.docStatus != 'yfb' && scope.row.docStatus != 'shz'">编辑</el-dropdown-item>
<el-dropdown-item command="handleDelete" icon="el-icon-delete" v-if="scope.row.docStatus != 'yfb' && scope.row.docStatus != 'shz'">删除</el-dropdown-item>
<el-dropdown-item command="handleDetail" icon="el-icon-info" >详情</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
@ -226,12 +229,12 @@
<el-dialog :title="docCategoryTitle" :visible.sync="docCategoryOpen" width="50%"
:close-on-press-escape="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-click-modal="false" :destroy-on-close="true"
:show-close="false" :wrapperClosable="false"
append-to-body>
<el-form ref="docCategoryFormRefs" :model="docCategoryForm" :rules="docCategoryRules" label-width="80px">
<el-form-item label="父分类" prop="parentId">
<treeselect v-model="docCategoryForm.parentId" :options="docCategory" :show-count="true" placeholder="如果不选择,默认为顶级节点" />
<treeselect v-if="docCategoryOpen" v-model="docCategoryForm.parentId" :options="docCategory" :show-count="true" placeholder="如果不选择,默认为一级分类" />
</el-form-item>
<el-form-item label="分类名称" prop="categoryName">
<el-input v-model="docCategoryForm.categoryName" placeholder="请输入分类名称" maxlength="50" show-word-limit/>
@ -263,7 +266,7 @@
<el-button icon="el-icon-close" @click="docCancel()"> </el-button>
</div><!--drawer-head-btn 抽屉顶部按钮区域-->
</template>
<edit-document ref="editDocumentRef" @submit="editDocumentSubmit"/>
<edit-document v-if="open" ref="editDocumentRef" @submit="editDocumentSubmit"/>
</el-drawer>
@ -414,7 +417,7 @@ export default {
docName: '',
docCode: '',
docType: '',
docPrincipals: '',
docPrincipalsName: '',
docSource: '',
docStatus: '',
createById: this.$store.getters.userId,
@ -629,11 +632,16 @@ export default {
}
//
let delFlag = false;
if(self.selection){
for(let item of self.selection){
if(!(item.docStatus == 'ysc')){
delFlag = true;
}
}
}
if(row.docStatus && row.docStatus != 'ysc'){
delFlag = true;
}
if(delFlag){
this.$modal.msgError(`只能删除文档状态为[已上传]数据,请重新选择`);
return
@ -808,7 +816,7 @@ export default {
if (this.checkList.length<1) {
this.checkList = JSON.parse(JSON.stringify(this.columnList))
}
this.exportTitle = '导出'
this.exportTitle = '全量导出'
this.exportDrawerOpen = true
this.batchExportFlag = false
},

View File

@ -66,6 +66,7 @@
v-model="queryParams.docName"
placeholder="请输入文档名称"
clearable
@clear="handleQuery"
@keyup.enter.native="handleQuery"
/>
</el-form-item>

View File

@ -10,6 +10,7 @@
placeholder="请输入消息内容"
clearable
style="width: 240px"
@clear="handleQuery"
@keyup.enter.native="handleQuery"
/>
</el-form-item>

View File

@ -81,6 +81,7 @@
v-model="queryParams.toolName"
placeholder="请输入工具名称"
clearable
@clear="handleQuery"
@keyup.enter.native="handleQuery"
/>
</el-form-item>

View File

@ -10,6 +10,7 @@
v-model="queryParams.toolCode"
placeholder="请输入工具编号"
clearable
@clear="handleQuery"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
@ -18,9 +19,34 @@
v-model="queryParams.toolName"
placeholder="请输入工具名称"
clearable
@clear="handleQuery"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="负责人">
<el-input
v-model="queryParams.toolPrincipalsName"
placeholder="请输入负责人名称"
clearable
@clear="handleQuery"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工具类别">
<el-select
v-model="queryParams.toolType"
placeholder="工具类别"
clearable
@change="handleQuery"
>
<el-option
v-for="dict in dict.type.tool_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
@ -32,10 +58,25 @@
@change="handleQuery"
></el-date-picker>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-form-item label="流程状态" prop="recordStatus">
<el-select
v-model="queryParams.recordStatus"
placeholder="流程状态"
clearable
@change="handleQuery"
>
<el-option
v-for="dict in dict.type.flow_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="工具状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="状态"
placeholder="工具状态"
clearable
@change="handleQuery"
>
@ -105,7 +146,7 @@
</el-table-column>
<el-table-column label="负责人" key="toolPrincipalsName" prop="toolPrincipalsName" width="120" :show-overflow-tooltip="true"/>
<el-table-column label="归属单位" key="toolRespDeptName" prop="toolRespDeptName" :show-overflow-tooltip="true" />
<el-table-column label="状态" align="center" key="status" >
<el-table-column label="工具状态" align="center" key="status" >
<template slot-scope="scope">
<dict-tag :options="dict.type.tool_status" :value="scope.row.status"/>
</template>
@ -376,6 +417,7 @@ export default {
pageSize: 10,
toolCode: undefined,
toolName: undefined,
toolPrincipalsName: undefined,
status: undefined,
createBy: this.$store.getters.userId,
permissionCheck: true,
@ -610,7 +652,7 @@ export default {
if (this.checkList.length<1) {
this.checkList = JSON.parse(JSON.stringify(this.columnList))
}
this.exportTitle = '导出'
this.exportTitle = '全量导出'
this.batchExportFlag = false
this.exoportDrawerOpen = true
},

View File

@ -11,7 +11,7 @@
<el-col :span="12"> <el-form-item label="工具来源"><dict-tag :options="dict.type.tool_source" :value="detailData.toolSource"/></el-form-item> </el-col>
<el-col :span="12"> <el-form-item label="负责人">{{detailData.toolPrincipalsName}}</el-form-item> </el-col>
<el-col :span="12"> <el-form-item label="归属单位">{{detailData.toolRespDeptName}}</el-form-item> </el-col>
<el-col :span="12"> <el-form-item label="状态"><dict-tag :options="dict.type.tool_status" :value="detailData.status"/></el-form-item> </el-col>
<el-col :span="12"> <el-form-item label="工具状态"><dict-tag :options="dict.type.tool_status" :value="detailData.status"/></el-form-item> </el-col>
<el-col :span="12"> <el-form-item label="工具用途">{{detailData.toolUse}}</el-form-item> </el-col>
<el-col :span="12"> <el-form-item label="测评情况">{{detailData.testSituation}}</el-form-item> </el-col>
<el-col :span="12"> <el-form-item label="功能描述">{{detailData.functionDesc}}</el-form-item> </el-col>
@ -354,12 +354,12 @@
getDiscussionsList() {
let _this = this
_this.reviewTotal = 0
listDiscussions({businessId:this.toolDetail.toolId}).then(res => {
listDiscussions({businessId: _this.toolDetail.toolId}).then(res => {
_this.discussionsList = res.rows
let reviewTotal = 0
_this.discussionsList.forEach(item => {
reviewTotal += item.repliesList.length
if(item.repliesList && item.repliesList.length > 0){
reviewTotal += item.repliesList.length
_this.$set(item, 'showReplyFormSon', new Array(item.repliesList.length).fill(false))
_this.$set(item, 'replyContentSon', new Array(item.repliesList.length).fill(''))
}else{

View File

@ -127,7 +127,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="状态" prop="status">
<el-form-item label="工具状态" prop="status">
<el-radio-group v-model="form.status" v-if="editStatus">
<el-radio
v-for="dict in dict.type.tool_status"

View File

@ -113,7 +113,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="状态">
<el-form-item label="工具状态">
<dict-tag :options="dict.type.tool_status" :value="applyToolDetail.status"/>
</el-form-item>
</el-col>

View File

@ -6,7 +6,13 @@
<div class="search">
<div class="sl">
<el-form-item label="流程标题">
<el-input v-model="queryParams.procTitle" placeholder="输入流程标题"></el-input>
<el-input
v-model="queryParams.procTitle"
placeholder="输入流程标题"
clearable
@clear="handleQuery"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="流程状态">
<el-select placeholder="请选择" v-model="queryParams.recordStatus" @change="handleQuery">

View File

@ -5,7 +5,12 @@
<div class="search">
<div class="sl">
<el-form-item label="流程标题">
<el-input placeholder="输入流程标题" v-model.trim="queryParams.title"></el-input>
<el-input
placeholder="输入流程标题"
v-model.trim="queryParams.title"
clearable
@clear="handleQuery"
/>
</el-form-item>
</div>
<div class="sr">
@ -206,9 +211,6 @@ export default {
handleDeal(row) {
this.dealDrawerShow = true;
let flowUrl = this.buildFlowUrl(row)
// alert(flowUrl)
//window.open(flowUrl)
/* */
this.$nextTick(() => {
this.$refs.dealDrawer.init(flowUrl);
});