工具发布流程和使用申请流程细节优化

This commit is contained in:
liukang 2024-08-28 14:50:27 +08:00
parent 12caaecf88
commit a1a2384994
5 changed files with 74 additions and 115 deletions

View File

@ -14,7 +14,7 @@ VUE_APP_WS_URL = 'ws://localhost:8080/tool-tech-admin/websocket'
VUE_APP_TOOL_TECH_FILE_VIEW_API = 'http://localhost:8012/tool-tech-file-view' VUE_APP_TOOL_TECH_FILE_VIEW_API = 'http://localhost:8012/tool-tech-file-view'
# 流程管理服务地址 # 流程管理服务地址
VUE_APP_WORKFLOW_MANAGE_URL = 'http://192.168.2.20:8085/ebpm-process-manage' VUE_APP_WORKFLOW_MANAGE_URL = 'http://192.168.2.18:8085/ebpm-process-manage'
# 路由懒加载 # 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true VUE_CLI_BABEL_TRANSPILE_MODULES = true

View File

@ -90,7 +90,7 @@
v-hasPermi="['system:user:add']" v-hasPermi="['system:user:add']"
>工具发布</el-button> >工具发布</el-button>
<el-button icon="el-icon-delete" @click="handleDelete(selection)">批量删除</el-button> <el-button icon="el-icon-delete" @click="handleDelete(selection)">批量删除</el-button>
<el-button icon="el-icon-download" @click="exoportDrawerOpen = true">导出</el-button> <el-button icon="el-icon-download" @click="handleOpenExport()">导出</el-button>
</div><!--operate 操作按钮--> </div><!--operate 操作按钮-->
<el-table v-loading="loading" :data="toolList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="toolList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center" :selectable="selectable"/> <el-table-column type="selection" width="50" align="center" :selectable="selectable"/>
@ -98,17 +98,14 @@
<el-table-column label="工具名称" align="center" key="toolName" prop="toolName" v-if="columns[1].visible" :show-overflow-tooltip="true" /> <el-table-column label="工具名称" align="center" key="toolName" prop="toolName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
<el-table-column label="工具类别" align="center" key="toolType" prop="toolType" v-if="columns[2].visible" :show-overflow-tooltip="true" > <el-table-column label="工具类别" align="center" key="toolType" prop="toolType" v-if="columns[2].visible" :show-overflow-tooltip="true" >
<template slot-scope="scope"> <template slot-scope="scope">
<template v-for="dict in dict.type.tool_type"> <dict-tag :options="dict.type.tool_type" :value="scope.row.toolType"/>
<span v-if="scope.row.toolType == dict.value">{{ dict.label }}</span>
</template>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" /> <el-table-column label="归属单位" align="center" key="toolRespDeptName" prop="toolRespDeptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
<el-table-column label="负责人" align="center" key="toolPrincipalsName" prop="toolPrincipalsName" v-if="columns[4].visible" width="120" /> <el-table-column label="负责人" align="center" key="toolPrincipalsName" prop="toolPrincipalsName" v-if="columns[4].visible" width="120" />
<el-table-column label="状态" align="center" key="status" v-if="columns[5].visible"> <el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag type="success" v-if="scope.row.status == '0'">正常</el-tag> <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
<el-tag type="info" v-if="scope.row.status == '1'">禁用</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160"> <el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160">
@ -125,7 +122,7 @@
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" icon="el-icon-info" v-if="scope.row.recordStatus==='done'" @click="applyUse(scope.row)">申请使用</el-button> <el-button type="text" icon="el-icon-info" v-if="scope.row.recordStatus==='done'" @click="applyUse(scope.row)">申请使用</el-button>
<el-button type="text" icon="el-icon-info" @click="handleDetail(scope.row)">详情</el-button> <el-button type="text" icon="el-icon-info" @click="handleDetail(scope.row)">详情</el-button>
<el-button type="text" icon="el-icon-download" v-if="scope.row.recordStatus==='done'">下载</el-button> <el-button type="text" icon="el-icon-download" v-if="scope.row.downloadStatus">下载</el-button>
<el-dropdown size="mini" v-if="selectable(scope.row)" @command="(command) => handleCommand(command, scope.row)"> <el-dropdown size="mini" v-if="selectable(scope.row)" @command="(command) => handleCommand(command, scope.row)">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right" >更多</el-button> <el-button size="mini" type="text" icon="el-icon-d-arrow-right" >更多</el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
@ -146,57 +143,13 @@
</div><!--rt --> </div><!--rt -->
</el-card><!--el-card--> </el-card><!--el-card-->
<!-- 工具申请使用对话框 -->
<el-drawer :visible.sync="applyDrawerOpen" size="75%">
<template #title>
<span>申请使用</span>
<div class="drawer-head-btn">
<el-button type="primary" icon="el-icon-check" @click="submitApply()">提交</el-button>
<el-button icon="el-icon-close" @click="cancelApply()">取消</el-button>
</div><!--drawer-head-btn 抽屉顶部按钮区域-->
</template>
<div class="el-form-border">
<el-form ref="form" label-width="150px">
<el-row>
<el-col :span="24">
<el-form-item label="申请人" required>
<el-input placeholder="张莹" ></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="申请部门" required>信息部</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="申请理由">
<el-input type="textarea" :rows="4" maxlength="1000" show-word-limit></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form><!--el-form-->
</div><!--el-form-border 表单-->
<div class="divide double"></div><!--divide 分隔-->
<div class="tboper">
<div class="tit">申请使用工具列表</div>
</div><!--tboper 标题与操作按钮-->
<el-table :data="tableData2" style="width: 100%">
<el-table-column prop="prop1" label="工具编号"></el-table-column>
<el-table-column prop="prop2" label="工具名称"></el-table-column>
<el-table-column prop="prop5" label="工具类别" ></el-table-column>
<el-table-column prop="prop3" label="归属单位" width="180"> </el-table-column>
<el-table-column prop="prop4" label="负责人" width="100" ></el-table-column>
<el-table-column label="操作" width="100">
<el-button type="text">删除</el-button>
</el-table-column>
</el-table><!--el-table-->
</el-drawer><!--el-drawer 申请使用-->
<!-- 工具导出对话框 --> <!-- 工具导出对话框 -->
<el-drawer :visible.sync="exoportDrawerOpen" size="75%"> <el-drawer :visible.sync="exoportDrawerOpen" size="75%" :show-close="false">
<template #title> <template #title>
<span class="title">导出</span> <span class="title">导出</span>
<div class="drawer-head-btn"> <div class="drawer-head-btn">
<el-button type="primary">提交</el-button> <el-button type="primary" @click="handleExport">提交</el-button>
<el-button>取消</el-button> <el-button @click="exoportDrawerOpen=false">取消</el-button>
</div><!--drawer-head-btn 抽屉顶部按钮区域--> </div><!--drawer-head-btn 抽屉顶部按钮区域-->
</template> </template>
<div class="el-form-border"> <div class="el-form-border">
@ -204,19 +157,19 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="选择需要导出的字段信息"> <el-form-item label="选择需要导出的字段信息">
<el-checkbox-group v-model="checkList1"> <el-checkbox-group v-model="checkList">
<el-checkbox label="A">工具名称</el-checkbox> <el-checkbox label="toolName">工具名称</el-checkbox>
<el-checkbox label="B">工具类别</el-checkbox> <el-checkbox label="toolType">工具类别</el-checkbox>
<el-checkbox label="C">工具来源</el-checkbox> <el-checkbox label="toolSource">工具来源</el-checkbox>
<el-checkbox label="D">负责人</el-checkbox> <el-checkbox label="toolPrincipalsName">负责人</el-checkbox>
<el-checkbox label="E">归属单位</el-checkbox> <el-checkbox label="toolRespDeptName">归属单位</el-checkbox>
<el-checkbox label="F">状态</el-checkbox> <el-checkbox label="status">状态</el-checkbox>
<el-checkbox label="G">工具名称</el-checkbox> <el-checkbox label="toolUse">工具用途</el-checkbox>
<el-checkbox label="H">工具类别</el-checkbox> <el-checkbox label="testSituation">测评情况</el-checkbox>
<el-checkbox label="I">工具来源</el-checkbox> <el-checkbox label="functionDesc">功能描述</el-checkbox>
<el-checkbox label="J">负责人</el-checkbox> <el-checkbox label="applyCondition">适用条件</el-checkbox>
<el-checkbox label="K">归属单位</el-checkbox> <el-checkbox label="operateExplain">操作说明</el-checkbox>
<el-checkbox label="L">状态</el-checkbox> <el-checkbox label="remark">备注</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -291,12 +244,11 @@ export default {
// //
deptOptions: undefined, deptOptions: undefined,
toolPrincipalsData: [], toolPrincipalsData: [],
tableData2: [], columnList: ['toolName', 'toolType', 'toolSource', 'toolPrincipalsName', 'toolRespDeptName', 'status', 'toolUse', 'testSituation', 'functionDesc', 'applyCondition', 'operateExplain', 'remark'],
checkList1: [], checkList: [],
toolDetail: {}, toolDetail: {},
// //
addDrawerOpen: false, addDrawerOpen: false,
applyDrawerOpen: false,
exoportDrawerOpen: false, exoportDrawerOpen: false,
detailDrawerOpen: false, detailDrawerOpen: false,
detailActiveName: 'first', detailActiveName: 'first',
@ -338,7 +290,9 @@ export default {
toolCode: undefined, toolCode: undefined,
toolName: undefined, toolName: undefined,
status: undefined, status: undefined,
createBy: this.$store.getters.userId createBy: this.$store.getters.userId,
permissionCheck: true,
downloadCheck:true
}, },
// //
columns: [ columns: [
@ -458,9 +412,6 @@ export default {
}, },
submitApply(){ submitApply(){
},
cancelApply(){
this.applyDrawerOpen = false
}, },
/**=============================申请使用End================================*/ /**=============================申请使用End================================*/
/** 搜索按钮操作 */ /** 搜索按钮操作 */
@ -517,13 +468,20 @@ export default {
_this.handleOpen({type:'tool_release',procInstId:row.procInstId,status:'1'}) _this.handleOpen({type:'tool_release',procInstId:row.procInstId,status:'1'})
}, },
/** 发布按钮操作 */ /** 发布按钮操作 */
handlePublish(row) { handleOpenExport() {
if (this.checkList.length<1) {
this.checkList = JSON.parse(JSON.stringify(this.columnList))
}
this.exoportDrawerOpen = true
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download('system/user/export', { let excludeFields = this.columnList.filter(item=>!this.checkList.includes(item))
...this.queryParams this.download('/tool/export', {
}, `user_${new Date().getTime()}.xlsx`) ...this.queryParams,
downloadCheck:false,
excludeFields:excludeFields,
}, `工具信息数据_${new Date().getTime()}.xlsx`)
}, },
handleUseApply(){ handleUseApply(){

View File

@ -6,18 +6,18 @@
<div class="el-form-border"> <div class="el-form-border">
<el-form ref="form" label-width="150px"> <el-form ref="form" label-width="150px">
<el-row> <el-row>
<el-col :span="12"> <el-form-item label="工具名称">工具名称2</el-form-item> </el-col> <el-col :span="12"> <el-form-item label="工具名称">{{toolDetail.toolName}}</el-form-item> </el-col>
<el-col :span="12"> <el-form-item label="工具类别">网络工具</el-form-item> </el-col> <el-col :span="12"> <el-form-item label="工具类别"><dict-tag :options="dict.type.tool_type" :value="toolDetail.toolType"/></el-form-item> </el-col>
<el-col :span="12"> <el-form-item label="工具来源">单位自建</el-form-item> </el-col> <el-col :span="12"> <el-form-item label="工具来源">{{toolDetail.toolSource}}</el-form-item> </el-col>
<el-col :span="12"> <el-form-item label="负责人">赵宁宇</el-form-item> </el-col> <el-col :span="12"> <el-form-item label="负责人">{{toolDetail.toolPrincipalsName}}</el-form-item> </el-col>
<el-col :span="12"> <el-form-item label="归属单位">人力资源部/员工关系组</el-form-item> </el-col> <el-col :span="12"> <el-form-item label="归属单位">{{toolDetail.toolRespDeptName}}</el-form-item> </el-col>
<el-col :span="12"> <el-form-item label="状态"><span class="green">启用中</span></el-form-item> </el-col> <el-col :span="12"> <el-form-item label="状态"><dict-tag :options="dict.type.sys_normal_disable" :value="toolDetail.status"/></el-form-item> </el-col>
<el-col :span="12"> <el-form-item label="工具用途">主要用于单位网络使用</el-form-item> </el-col> <el-col :span="12"> <el-form-item label="工具用途">{{toolDetail.toolUse}}</el-form-item> </el-col>
<el-col :span="12"> <el-form-item label="测评情况">运行良好可正常使用</el-form-item> </el-col> <el-col :span="12"> <el-form-item label="测评情况">{{toolDetail.testSituation}}</el-form-item> </el-col>
<el-col :span="12"> <el-form-item label="功能描述">单位网络使用</el-form-item> </el-col> <el-col :span="12"> <el-form-item label="功能描述">{{toolDetail.functionDesc}}</el-form-item> </el-col>
<el-col :span="12"> <el-form-item label="适用条件">网络正常</el-form-item> </el-col> <el-col :span="12"> <el-form-item label="适用条件">{{toolDetail.applyCondition}}</el-form-item> </el-col>
<el-col :span="12"> <el-form-item label="操作说明">正常开启即可用</el-form-item> </el-col> <el-col :span="12"> <el-form-item label="操作说明">{{toolDetail.operateExplain}}</el-form-item> </el-col>
<el-col :span="12"> <el-form-item label="备注">工具使用完成后请做好保养工作</el-form-item> </el-col> <el-col :span="12"> <el-form-item label="备注">{{toolDetail.remark}}</el-form-item> </el-col>
</el-row> </el-row>
</el-form><!--el-form--> </el-form><!--el-form-->
</div><!--el-form-border 表单--> </div><!--el-form-border 表单-->
@ -73,6 +73,7 @@
export default { export default {
name: 'toolDetail', name: 'toolDetail',
components: { editDocument, AddDoc }, components: { editDocument, AddDoc },
dicts:['sys_normal_disable','tool_type'],
props: { props: {
toolDetail: { toolDetail: {
type: Object, type: Object,

View File

@ -47,7 +47,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="归属部门" prop="toolRespDept"> <el-form-item label="归属部门" prop="toolRespDept">
<treeselect :disabled="!editStatus" v-model="form.toolRespDept" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" /> <treeselect :disabled="!editStatus" v-model="form.toolRespDept" :options="deptOptions" @select="handleSelectNode" :show-count="true" placeholder="请选择归属部门" />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -134,7 +134,7 @@
关联附件 关联附件
</div> </div>
<div class="operate"> <div class="operate">
<file-upload :isShowTip="false" :fileType="null" @input="handleFileAdd"></file-upload> <el-button type="primary" icon="el-icon-upload2" @click="handleDocAdd">上传</el-button>
<el-button icon="el-icon-delete">删除</el-button> <el-button icon="el-icon-delete">删除</el-button>
</div><!--operate 操作按钮--> </div><!--operate 操作按钮-->
<el-table :data="docList" style="width: 100%"> <el-table :data="docList" style="width: 100%">
@ -201,6 +201,8 @@
</el-row> </el-row>
</div> </div>
</el-form> </el-form>
<!-- 上传 -->
<add-doc :show.sync="addDocShow" toolId="1111"/>
</div><!--el-form-border 表单--> </div><!--el-form-border 表单-->
<div v-show="activeName==='log'"> <div v-show="activeName==='log'">
<workflow-logs :procInstId = "pListData.procInstId"></workflow-logs> <workflow-logs :procInstId = "pListData.procInstId"></workflow-logs>
@ -269,8 +271,7 @@ export default {
if (_this.editStatus&&_this.form.toolCode&&_this.form.toolRespDept) { if (_this.editStatus&&_this.form.toolCode&&_this.form.toolRespDept) {
checkToolExist({toolId:_this.form.toolId,toolCode:_this.form.toolCode,toolRespDept:_this.form.toolRespDept}).then((response) => { checkToolExist({toolId:_this.form.toolId,toolCode:_this.form.toolCode,toolRespDept:_this.form.toolRespDept}).then((response) => {
if (response.data) { if (response.data) {
let deptName = _this.getDeptName(_this.deptOptions, _this.form.toolRespDept) callback(new Error(_this.form.toolRespDeptName+"下已存在编号为"+_this.form.toolCode+'的工具,请勿重复添加!'))
callback(new Error(deptName+"下已存在编号为"+_this.form.toolCode+'的工具,请勿重复添加!'))
} else { } else {
callback() callback()
} }
@ -283,6 +284,7 @@ export default {
toolPrincipalsChoose: false, toolPrincipalsChoose: false,
// //
docList: [], docList: [],
addDocShow: false,
docQueryParams: { docQueryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
@ -720,7 +722,12 @@ export default {
handleDelete(dataList,index){ handleDelete(dataList,index){
dataList.splice(index,1) dataList.splice(index,1)
}, },
/**
* 新增上传附件
*/
handleDocAdd() {
this.addDocShow = true
},
getDocumentList(toolId) { getDocumentList(toolId) {
this.loading = true this.loading = true
this.docQueryParams.toolId = toolId this.docQueryParams.toolId = toolId
@ -731,29 +738,15 @@ export default {
} }
); );
}, },
getDeptName(items, id) {
let label = ''
items.forEach(item => {
if(item['id'] == id){
label = item['label']
return
}
})
if(label == ''){
items.forEach(item => {
if (item.children) {
label = this.getDeptName(item.children, id)
}
})
}
return label
},
submitPeople(peopleList){ submitPeople(peopleList){
this.$set(this.form,'toolPrincipals',peopleList[0]['userId']) this.$set(this.form,'toolPrincipals',peopleList[0]['userId'])
this.$set(this.form,'toolPrincipalsName',peopleList[0]['nickName']) this.$set(this.form,'toolPrincipalsName',peopleList[0]['nickName'])
this.toolPrincipalsChoose = false; this.toolPrincipalsChoose = false;
this.$refs['eForm'].validateField("toolPrincipals"); this.$refs['eForm'].validateField("toolPrincipals");
}, },
handleSelectNode(node){
this.$set(this.form,'toolRespDeptName',node.label)
},
handleFileAdd(fileList){ handleFileAdd(fileList){
console.log(fileList) console.log(fileList)
} }

View File

@ -274,7 +274,14 @@ export default {
rest(data){ rest(data){
let _this = this let _this = this
_this.activeName = "info" _this.activeName = "info"
this.dataList = [{...data}] _this.dataList = [{...data}]
_this.form={
userId:_this.userInfo.userId,
nickName:_this.userInfo.nickName,
deptId:_this.userInfo.deptId,
deptName:_this.userInfo.dept.deptName,
reason: ""
}
}, },
procInstInfoAndStatus(procInstId){ procInstInfoAndStatus(procInstId){
let _this = this let _this = this