未符合项整改查看

This commit is contained in:
shenyanpei
2021-08-26 16:44:21 +08:00
parent 801555fc0b
commit 0837818745
4 changed files with 491 additions and 3 deletions
@@ -0,0 +1,480 @@
<template>
<div class="wfhxzgStep5">
<ProcessHeader toggle>
<template slot="proName">未符合项整改流程</template>
<template slot="proNode">分发负责人审核材料</template>
</ProcessHeader>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
</div>
<div class="content" v-if="active === '1'">
<div style="flex: auto;">
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<!-- <el-form :modal="nonSearch" inline class="label-input-form">
<el-form-item label="标准号/标准名称" class="search-item">
<el-input
size="small"
v-model="nonSearch.standId"
placeholder="请输入"
clearable
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="项目名称" class="search-item">
<el-input
size="small"
v-model="nonSearch.productName"
placeholder="请输入"
clearable
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="责任部门" class="search-item">
<el-input v-model="nonSearch.responsibleUnit" v-show="false" />
<el-popover
placement="bottom"
popper-class="user-dept-popper"
trigger="click"
:value="false"
>
<el-input
size="small"
slot="reference"
v-model="nonSearch.responseUnitShow"
placeholder="根据责任部门查找"
readonly
clearable
id="searchResp"
/>
<div class="api">
<laws-tree
:zNodes="zNodesSItem"
treeDivId="zNodesSItemSearch"
deptSelect
showRMenu
@treeDblClick="(treeId, treeNode) => treeClickSearch(treeId, treeNode)"
class="ztree" style="width: 200px;height: 400px;overflow: auto">
</laws-tree>
</div>
</el-popover>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
type="primary"
class="common-button-primary"
size="mini"
v-btn-permission="'b3aaea6d18f5871b68825d3783eb736a'"
@click="getTableByPage(nonSearch)">
查询
</el-button>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
class="common-button-default"
size="mini"
v-btn-permission="'5905d0743c3504799aee83ac9697f8c5'"
@click="clearAllSearch">
清空
</el-button>
</el-form-item>
</el-form>-->
<el-table
:data="dataList"
border
height="49%"
style="width: 100%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column prop="standSerialNumber" align="center" show-overflow-tooltip label="标准号">
<template slot-scope="scope">
<a class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standSerialNumber }}</a>
</template>
</el-table-column>
<el-table-column prop="standName" align="center" show-overflow-tooltip label="标准名称">
<template slot-scope="scope">
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
</template>
</el-table-column>
<el-table-column prop="productName" label="项目名称" align="center" show-overflow-tooltip/>
<el-table-column prop="itemsNum" label="条款号" align="center"/>
<el-table-column prop="itemsName" label="条款名称" align="center"/>
<el-table-column prop="planCloseTime" label="整改完成时间" align="center">
<template slot-scope="scope">
<span>{{ scope.row.planCloseTime ? $moment(scope.row.planCloseTime).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column>
<el-table-column prop="responsibleUnit" label="责任部门" align="center"/>
<el-table-column prop="dutyPeople" label="负责人" align="center"/>
<el-table-column prop="fileText" label="佐证材料" align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="queryFile(scope.row)">查看</el-button>
</template>
</el-table-column>
</el-table>
</div>
<el-collapse accordion>
<el-collapse-item title="意见填写">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="commentText">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list">
<el-table
height="100%"
ref="selection"
:data="detailData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:no-data-text="listNoDataText"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="name"
label="任务步骤"
align="center"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="comment"
label="审批意见"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.commentText }}</span>
</template>
</el-table-column>
<el-table-column
prop="completeFlag"
label="状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
<loading :loading="loading">流程列表加载中</loading>
</div>
</div>
<el-dialog width='400px' :visible.sync="fileMadel" title="上传文件">
<el-upload
:action="''"
name="file"
:file-list="fileTextList"
:on-preview="handleOnPreview"
>
</el-upload>
</el-dialog>
</div>
</template>
<script>
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {interfaceUrl} from "@/sysConfig";
import {inboundLiaisonDetail} from "@/api/process";
export default {
name: "wfhxzgStep5-1",
data() {
return {
fileMadel: false,
detailData: [],
loading: false,
commentText: '',
title: '', // 新增编辑抽屉标题
saveLoading: false,
ListModel: false, // 新增编辑抽屉开关
nonSearch: {
standId: '', // 标准号/名称
productName: '', // 项目名称
responsibleUnit: '' // 责任部门
},
fileTextList: [],
active: '1', // 默认显示
isSubmit: false,
backLoading: false,
dataList: [],
json: {},
taskInfo: this.$route.query.taskInfo,
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
// 当前页数
pageNo: 1,
total: 0,
myLoading: false,
// 责任部门
zNodesSItem: [],
// 驳回弹窗状态
backDialog: false,
}
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
created() {
this.processTable()
this.getData()
},
computed: {
listNoDataText() {
return this.processType === 1 ? "暂无待办流程" : "暂无已办流程";
}
},
methods: {
queryFile(row) {
this.fileTextList = row.fileText
this.fileMadel = true
},
processTable() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum,
sortWord: this.shunxu ? this.paixu : "",
shunxu: this.shunxu
}, {
loading: "loading",
_this: this
}, res => {
this.detailData = res
}, e => {
});
},
getData() {
const params = {
taskIds: this.taskIds,
pId: this.pId,
}
inboundLiaisonDetail(params).then(res => {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
})
},
getFormFieldList (item) {
this.$nextTick(() => {
this.dataList = JSON.parse(JSON.stringify(item)).info.fileDataList
/*this.dataList.forEach(item => {
item.fileText.forEach(item1 => {
this.fileTextList.push({
id: item1.id,
name: item1.name
})
})
})*/
})
},
handleTabs(name) {
this.active = name
},
// 点击查看
handlePreview (item) {
let routeUrl = this.$router.resolve({
name: 'OtherStandardDetails',
params: {
id: item.standId,
// pageType: 'FOREIGN_STAND'
pageType: item.standType + '_STAND'
}
})
window.open(routeUrl.href, '_blank')
},
// 点击上传的文件进行下载
handleOnPreview(file) {
let attId = file.id
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
// 提交按钮
handleSubmit() {
this.isSubmit = true
var json = this.json
json.info = {
fileDataList: this.dataList
}
json.actionFlag = 0
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
this.isSubmit = false
})
},
handleSubmitNo() {
this.backLoading = true
if (this.commentText) {
var json = {
responUserList: {
standardInfoList: this.dataList
},
actionFlag: 1,
commentText: this.commentText
}
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('驳回成功')
this.$router.push('/processCenter')
this.backLoading = false
}
})
} else {
this.$message.warning('请输入反馈意见')
this.backLoading = false
}
},
//未整改项抽屉中的查询按钮
getTableByPage({ standId, productName, responsibleUnit }) {//多条件和模糊查询
this.realList = this.dataList.filter(item => {
let matchId = true; // 标准号 筛选
let matchName = true; // 项目名称 筛选
let matchUnit = true; // 部门 筛选
if (standId) {
const keysId = standId
.toUpperCase() // 转大写
.replace(' ', '') // 删掉空格
.split('') // 切割成 单个字
matchId = keysId.every(key => item.standId.toUpperCase().includes(key));
}
if (productName) {
matchName = item.productName === productName;
}
if (responsibleUnit) {
matchUnit = item.responsibleUnit === responsibleUnit;
}
return matchId && matchName && matchUnit;
})
this.dataList = this.realList
},
// 清空 查询条件
clearAllSearch (search = true) {
this.nonSearch = {
standId: '',
productName: '',
responsibleUnit: ''
}
this.getData()
},
download(row) {
let attId = row.fileTextId
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
},
// 分页事件
pageChange (page) {
this.pageNo = page
this.getTableByPage()
},
pageSizeChange () {
this.getTableByPage()
},
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.wfhxzgStep5 {
/deep/.el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
position: relative;
height: 100%;
.headerTabs {
height: 52px;
display: flex;
align-items: center;
position: absolute;
top: 0;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
height: 30px;
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
/deep/.el-upload{
display: block;
}
// 上传信息回显多余隐藏
/deep/.el-upload-list__item .el-icon-close {
font-size: 0;
}
/deep/.el-upload-list__item .el-icon-close-tip {
font-size: 0;
}
.content-center {
padding: 10px 0px 10px 10px;
}
.content {
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'100% - 103px');
overflow: auto;
}
}
</style>
@@ -196,7 +196,6 @@
</div>
</div>
<ProcessFooter
v-if="taskInfo !== '批准'"
show-submit
show-back
approval
@@ -217,9 +217,9 @@ export default {
}else{
this.toProcessDetail('xmpg2Step1-2',row)
}
//标准解读流程
} else if (prcType === '8') {
this.toProcessDetail('wfhxzgStep5',row)
// 未符合项整改
this.toProcessDetail('wfhxzgStep5-1',row)
} else if(prcType === '9'){
this.toProcessDetail('bzjdStep1-6',row)
//标准调研流程
+9
View File
@@ -574,6 +574,15 @@ const routes = [
title: '未符合项整改/更新流程'
}
},
{
path: '/wfhxzgStep5-1',
name: 'wfhxzgStep5-1',
component: () => import('@/pages/processCenter/pages/creatProcess/wfhxzg/step5-1.vue'),
meta: {
requireAuth: true,
title: '未符合项整改/更新流程'
}
},
{
path: '/bzrkStep1',
name: 'bzrkStep1',