Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
super_liu
2022-02-18 17:49:49 +08:00
20 changed files with 3158 additions and 7062 deletions
@@ -97,7 +97,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="oper" label="操作类型"> <el-table-column prop="oper" label="操作类型">
</el-table-column> </el-table-column>
<el-table-column prop="operLocation" label="操作内容"> <el-table-column prop="special" label="操作内容">
</el-table-column> </el-table-column>
</el-table> </el-table>
<loading :loading="dataLoading">数据处理中</loading> <loading :loading="dataLoading">数据处理中</loading>
+132 -15
View File
@@ -46,6 +46,11 @@
v-btn-permission="'3e0cee86b3522d4233df8f1f11ab02c7'" v-btn-permission="'3e0cee86b3522d4233df8f1f11ab02c7'"
size="mini">新增角色 size="mini">新增角色
</el-button> </el-button>
<el-button type="primary"
class="common-button-primary add-button"
@click="getRole"
size="mini">查看人员
</el-button>
</div> </div>
<div class="content"> <div class="content">
<el-table <el-table
@@ -264,6 +269,77 @@
</el-button> </el-button>
</div> </div>
</el-drawer> </el-drawer>
<el-drawer
title="查看人员"
:visible.sync="RoleModel"
@close="RoleCancle"
size="1100px"
class="not-footer-drawer"
>
<div class="demo-drawer-content">
<div class="search-area">
<div class="left">
<el-form inline :model="roleForm">
<el-form-item label="人员名称" class="search-item">
<el-input
v-model="roleForm.userName"
placeholder="根据人员名称查找"
clearable></el-input>
</el-form-item>
<el-form-item label="人员账号" class="search-item">
<el-input
v-model="roleForm.userId"
placeholder="根据人员账号查找"
clearable></el-input>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="getRole">查询
</el-button>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
class="common-button-default"
size="mini"
@click="clearRole">清空
</el-button>
</el-form-item>
</el-form>
</div>
</div>
<div class="roleTable">
<el-table
ref="multipleTable"
:data="roleData"
tooltip-effect="dark"
style="width: 100%;"
border
height="100%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', fontFamily: 'MicrosoftYaHei-Bold', height: '48px'}">
<el-table-column
align="center"
prop="uname"
label="人员名称">
</el-table-column>
<el-table-column
align="center"
prop="userId"
label="人员账号">
</el-table-column>
</el-table>
<pagination
:page="roleForm.pageNumber"
:total="roleTotal"
@pageChange="RolePageChange"
@pageSizeChange="RolePageSizeChange"></pagination>
</div>
<loading :loading="roleLoading">数据处理中</loading>
</div>
</el-drawer>
</div> </div>
</template> </template>
@@ -272,6 +348,17 @@ export default {
name: 'role-manage', name: 'role-manage',
data() { data() {
return { return {
roleTotal: 0,
RoleModel: false,
roleData: [],
roleLoading: false,
roleForm: {
roleId: '',
userId: '',
userName: '',
pageNumber: 1,
pageSize: this.$store.getters.userInfo.configContent,
},
twoLoading: false, twoLoading: false,
type: '', // 新增/编辑状态 type: '', // 新增/编辑状态
addRoleTitle: '', addRoleTitle: '',
@@ -334,6 +421,48 @@ export default {
} }
}, },
methods: { methods: {
RolePageChange (page) {
this.roleForm.pageNumber = page
this.roleCheck()
},
RolePageSizeChange (pageSize) {
this.roleForm.pageSize = pageSize
this.roleCheck()
},
getRole () {
this.RoleModel = true
this.roleForm.pageNumber = 1
this.roleCheck()
},
clearRole () {
this. roleForm = {
userId: '',
userName: '',
pageNumber: 1,
pageSize: this.$store.getters.userInfo.configContent,
}
this.roleCheck()
},
RoleCancle () {
this. roleForm = {
userId: '',
userName: '',
pageNumber: 1,
pageSize: this.$store.getters.userInfo.configContent,
}
},
roleCheck () {
this.roleForm.roleId = this.id
this.$http.get('sarUser/user/selectUserByRole', this.roleForm, {
_this: this,
loading: "roleLoading",
}, res => {
if (res.ok) {
this.roleData = res.data.records
this.roleTotal = res.data.total
}
})
},
handleCommand(command) { handleCommand(command) {
switch (command[1]) { switch (command[1]) {
case '编辑': case '编辑':
@@ -689,24 +818,19 @@ export default {
.role-manage { .role-manage {
display: flex; display: flex;
height: 100%; height: 100%;
.roleTable {
/deep/ .el-form-item__content { height: calc(~'100% - 52px');
width: 100%;
} }
.filter-tree1 { .filter-tree1 {
height: 100%; height: 100%;
} }
.tree-close { .tree-close {
.tree { .tree {
left: -200px !important; left: -200px !important;
} }
.tree-right { .tree-right {
width: calc(~'100% - 15px') !important; width: calc(~'100% - 15px') !important;
} }
/deep/.el-form-item__content { /deep/.el-form-item__content {
margin-left: 40px !important; margin-left: 40px !important;
} }
@@ -715,11 +839,9 @@ export default {
color: #FFF; color: #FFF;
} }
} }
.tree-closed { .tree-closed {
width: 15px !important; width: 15px !important;
} }
.tree-content { .tree-content {
background: #fff; background: #fff;
width: 16%; width: 16%;
@@ -736,7 +858,6 @@ export default {
right: 0; right: 0;
} }
} }
.tree-right { .tree-right {
overflow-y: hidden; overflow-y: hidden;
padding: 0; padding: 0;
@@ -762,7 +883,6 @@ export default {
} }
} }
} }
/deep/ .el-dialog { /deep/ .el-dialog {
margin-top: 9vh !important; margin-top: 9vh !important;
width: 35%; width: 35%;
@@ -774,23 +894,20 @@ export default {
} }
/deep/.el-form-item__content { /deep/.el-form-item__content {
margin-left: 40px!important; margin-left: 40px!important;
width: 100%;
} }
} }
/deep/ .el-select__tags { /deep/ .el-select__tags {
overflow-x: hidden; overflow-x: hidden;
} }
/deep/ .width-all { /deep/ .width-all {
width: 100%; width: 100%;
} }
.laws-tree { .laws-tree {
/deep/ .clearable { /deep/ .clearable {
top: 20px; top: 20px;
} }
} }
.add-form-item { .add-form-item {
display: flex; display: flex;
} }
@@ -812,9 +812,9 @@ export default {
break break
//项目评估流程-项目 //项目评估流程-项目
case '6': case '6':
if(row.taskInfo === '标准法规部业务经理审批'){ if(row.taskInfo === '任务分发'){
this.$router.push({ this.$router.push({
name: 'xmpg2Step2', name: 'xmpgStep2',
query: { query: {
taskIds: row.taskIds, taskIds: row.taskIds,
prcId: row.prcId, prcId: row.prcId,
@@ -823,9 +823,9 @@ export default {
prcType: row.prcType prcType: row.prcType
} }
}) })
}else if(row.taskInfo === '工程经理转办'){ }else if(row.taskInfo === '合规评估'){
this.$router.push({ this.$router.push({
name: 'xmpg2Step3', name: 'xmpgStep3',
query: { query: {
taskIds: row.taskIds, taskIds: row.taskIds,
prcId: row.prcId, prcId: row.prcId,
@@ -834,9 +834,9 @@ export default {
prcType: row.prcType prcType: row.prcType
} }
}) })
} else if(row.taskInfo === '架构经理任务分发') { } else if(row.taskInfo === '审核') {
this.$router.push({ this.$router.push({
name: 'xmpg2Step4', name: 'xmpgStep4',
query: { query: {
taskIds: row.taskIds, taskIds: row.taskIds,
prcId: row.prcId, prcId: row.prcId,
@@ -845,9 +845,9 @@ export default {
prcType: row.prcType prcType: row.prcType
} }
}) })
} else if(row.taskInfo === '分发责任人下发') { } else if(row.taskInfo === '批准') {
this.$router.push({ this.$router.push({
name: 'xmpg2Step5', name: 'xmpgStep5',
query: { query: {
taskIds: row.taskIds, taskIds: row.taskIds,
prcId: row.prcId, prcId: row.prcId,
File diff suppressed because it is too large Load Diff
@@ -1,552 +0,0 @@
<!--项目评估流程- 业务经理审批 -->
<template>
<div class="xmpg-step2">
<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-show="active === '1'">
<div style="flex: auto; overflow: auto">
<process-title>
<template slot="title">基础信息</template>
</process-title>
<el-collapse-transition>
<el-form
v-if="foldFormFlag === false"
:model="listForm"
class="label-input-form prc-content-border"
label-width="150px"
>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="标准编号" prop="standNumber" class="add-form-item form-item-disabled">
<el-input
class="input-jump"
v-model="listForm.standNumber"
placeholder="请输入标准编号"
readonly
@click.native="handlePreview(listForm)"
></el-input>
</el-form-item>
<el-form-item label="标准名称" prop="standName" class="add-form-item form-item-disabled">
<el-input
class="input-jump"
v-model="listForm.standName"
placeholder="请输入标准名称"
readonly
@click.native="handlePreview(listForm)"
></el-input>
</el-form-item>
<el-form-item label="认证工程师" v-if="listForm.certifiedEngineerName !== ''" prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.certifiedEngineerName"
placeholder="请选择认证工程师"
></el-input>
</el-form-item>
<el-form-item label="认证工程师" v-else prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.certifiedEngineerName"
placeholder="--"
></el-input>
</el-form-item>
<el-form-item v-if="listForm.qualityEngineerName !== '' " label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.qualityEngineerName"
placeholder="请选择质量工程师"
></el-input>
</el-form-item>
<el-form-item v-else label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.qualityEngineerName"
placeholder="--"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-collapse-transition>
<el-button v-if="foldFormFlag === false" style="width: 100%" icon="el-icon-caret-top" @click="foldForm">隐藏基础信息</el-button>
<el-button v-if="foldFormFlag === true" style="width: 100%" icon="el-icon-caret-bottom" @click="foldForm">展开基础信息</el-button>
<el-form
v-if="foldFormFlag === true"
style="display: none"
:model="listForm"
class="label-input-form prc-content-border"
label-width="150px"
>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="标准编号" prop="standNumber" class="add-form-item form-item-disabled">
<el-input
v-model="listForm.standNumber"
placeholder="请输入标准编号"
readonly
@click.native="handlePreview(listForm)"
></el-input>
</el-form-item>
<el-form-item label="标准名称" prop="standName" class="add-form-item form-item-disabled">
<el-input
v-model="listForm.standName"
placeholder="请输入标准名称"
readonly
@click.native="handlePreview(listForm)"
></el-input>
</el-form-item>
<el-form-item label="认证工程师" v-if="listForm.certifiedEngineerName !== ''" prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.certifiedEngineerName"
placeholder="请选择认证工程师"
></el-input>
</el-form-item>
<el-form-item label="认证工程师" v-else prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.certifiedEngineerName"
placeholder="--"
></el-input>
</el-form-item>
<el-form-item v-if="listForm.qualityEngineerName !== '' " label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.qualityEngineerName"
placeholder="请选择质量工程师"
></el-input>
</el-form-item>
<el-form-item v-else label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.qualityEngineerName"
placeholder="--"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<process-title>
<template slot="title">填写信息</template>
</process-title>
<el-table
:data="dataList"
border
ref="selection"
height="49%"
style="width: 100%;"
@selection-change="selectStandChange"
: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>
<el-table-column
prop="productLine"
label="产品线">
</el-table-column>
<el-table-column
prop="productLine"
label="项目名称">
</el-table-column>
<el-table-column
prop="uname"
label="产品线责任人">
</el-table-column>
<el-table-column
prop="distributePerson"
label="分发责任人">
</el-table-column>
</el-table>
</div>
<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>
<div class="content" v-show="active === '3'">
<div class="flow-list" style="height: 100%">
<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 HH:mm:ss') : '' }}</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 HH:mm:ss') : '' }}</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>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { inboundLiaisonDetail, queryDetail } from "api/process";
export default {
name: "xmpgStep1-2",
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
data() {
return {
//折叠的标志,true为折叠,false为不折叠
foldFormFlag: false,
detailData: [],
// 当前流程类型(1待办/2已办)
processType: 1,
loading: false,
dataList: [],//清单里的标准数据
active: "1",
userId:this.$store.getters.userInfo.userId,
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
listType: "country", //选择的清单类型
isSubmit: false,
saveLoading: false,
tabValue: "listOfCountries",
selectedList: [], //选择清单的选择框
selectList: [], //选择标准的选择框
bringData: [],
commentText: "", //填写会签意见
page: 1,
total: 0,
pageSize: this.$store.getters.userInfo.configContent,
listForm: {
passFlag: " ", //空为审批通过 1 为驳回
standNumber: "", //标准编号
standName: "",//标准名称
certifiedEngineer: "", //认证工程师
qualityEngineer: "", //质量工程师
certifiedEngineerName: "", //认证工程师
qualityEngineerName: "", //质量工程师
breakdownList: [{
applyArctic: "",
busStandCover: "",
claimType: "",
id: "",
itemsName: "",
itemsNum: "",
responsibleUnit: "", //责任部门
responsibleEngineer: "", //责任工程师
standId: "",
svpps: ""
}],
dataList: [{
projectLine: "", //产品线
uname: "",//产品线责任人
projectManager:"",// 产品线责任人id
distributePerson: "", //分发责任人
distributePersonId: "", //分发责任人id
id: "",
sarStandProjectLibraries: [{
projectManager: '',
projectLevel: '',
projectNumber: '',
projectEndDate: '',
currentNode: '',
projectGroup: '',
productLine: '',
projectClassification: '',
projectStatus: '',
projectStartDate: '',
id: '',
projectName: '',
projectPlatfor: ''
}]
}]
},
choiceForm: {}, //选择标准清单列表
countryOptions: [], //适用区域下拉框数据
user1: "",
user2: "",
user3: "",
user4: "",
user5: "",
standMap: new Map()
};
},
methods: {
//折叠/展开基础信息方法
foldForm() {
this.foldFormFlag = !this.foldFormFlag
},
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 => {})
},
//tab发生变化
handleTabs(name) {
this.active = name;
},
// 点击查看
handlePreview(item) {
let routeUrl = this.$router.resolve({
name: "OtherStandardDetails",
params: {
id: item.id,
pageType: "INLAND_STAND"
}
});
window.open(routeUrl.href, "_blank");
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
}).catch(e => {
})
})
},
/**
* @description: 动态表单读取
*/
getFormFieldList (item) {
this.$nextTick(() => {
this.listForm = JSON.parse(JSON.stringify(item))
this.listForm.prcNum = this.prcNum
this.listForm.prcName = this.prcName
this.listForm['id'] = item.id
this.listForm.dataList = item.dataList
this.dataList = item.dataList
this.dataList.distributePerson = item.dataList[0].distributePerson
this.listForm.breakdownList = item.breakdownList
})
},
//驳回事件
beforeBack () {
if(this.commentText === null || this.commentText === undefined || this.commentText === ''){
this.$message.warning('请填写审批意见')
}else{
this.listForm.passFlag = '1'
this.handleSubmit()
}
},
//提交事件
handleSubmit() {
if(this.commentText === null || this.commentText === undefined || this.commentText === ''){
this.$message.warning('请填写审批意见')
}else{
this.listForm.commentText = this.commentText
const json = JSON.stringify(this.listForm);
this.isSubmit = true
this.$http.post('lawss/activiti/completeTask', {
taskIds: this.taskIds,
userId: this.userId,
json: json,
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message)
this.$router.push('/processCenter')
}
this.isSubmit = false
}, e => {
});
}
},
//标准表格选择框改变
selectStandChange(data) {
this.selectList = [];
for (let i = 0; i < data.length; i++) {
this.selectList.push(data[i].id);
}
},
selectThree() {
},
pageChange(page) {
this.page = page;
this.searchData();
},
pageSizeChange(pageSize) {
this.pageSize = this.$store.getters.userInfo.configContent;
this.searchData();
}
},
computed: {
listNoDataText () {
return this.processType === 1 ? '暂无待办流程' : '暂无已办流程'
},
},
mounted() {
this.processTable()
this.getData()
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.xmpg-step2 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.choiceBtn {
.el-button--primary {
width: 150px;
}
}
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;
}
}
.content {
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'100% - 103px');
overflow: auto;
.tableTitle {
margin-bottom: 10px;
height: 30px;
line-height: 30px;
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
top: 0;
}
.accessStandardsAndRegulations {
height: 100%;
}
}
.input-jump {
/deep/.el-input__inner{
color: #409EFF;
}
}
}
.demo-drawer-content {
margin-top: 10px;
}
}
</style>
@@ -0,0 +1,588 @@
<template>
<div class="xmpg-step5">
<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-show="active === '1'">
<div style="flex: auto; overflow: auto">
<process-title>
<template slot="title">基础信息</template>
</process-title>
<el-form
:model="listForm"
class="label-input-form prc-content-border"
label-width="150px"
>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="项目编号" prop="projectNumber" class="add-form-item form-item-disabled">
<el-input
v-model="listForm.projectNumber"
placeholder="请输入项目编号"
disabled
clearable
></el-input>
</el-form-item>
<el-form-item label="项目名称" prop="projectName" class="add-form-item form-item-disabled">
<el-input
v-model="listForm.projectName"
placeholder="请输入项目名称"
disabled
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<process-title style="margin-top:5px; margin-bottom: 5px">
<template slot="title">填写信息</template>
</process-title>
<el-table
:data="dataList.slice((currentPage - 1) * pageSize, currentPage * pageSize ) "
style="width: 100%; border: 1px solid #cccccc;height: 400px"
height="70%"
border
highlight-current-row
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold'}"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="standEnName"
label="标准编号"
width="180"
fixed="left"
align="center"
>
<template slot-scope="scope">
<a v-if="scope.row.standYear" class="table-jump"
@click="handlePreview(scope.row)">{{ scope.row.standSort }} {{ scope.row.standNumber
}}-{{ scope.row.standYear }}</a>
<a v-else @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standSort }}
{{ scope.row.standNumber }}</a>
</template>
</el-table-column>
<el-table-column
prop="standName"
fixed="left"
width="180"
align="center"
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="itemsNum"
align="center"
width="200"
label="条款号">
</el-table-column>
<el-table-column
prop="itemsName"
width="200"
align="center"
label="条款名称">
</el-table-column>
<el-table-column
prop="ssrq"
width="200"
align="center"
label="实施日期">
</el-table-column>
<el-table-column
prop="xcxssrq"
width="200"
align="center"
label="新车型实施日期">
</el-table-column>
<el-table-column
prop="zccssrq"
width="200"
align="center"
label="在产车实施日期">
</el-table-column>
<!-- <el-table-column-->
<!-- prop="productType"-->
<!-- align="center"-->
<!-- label="在研产品">-->
<el-table-column
prop="complianceReasons"
align="center"
width="160"
label="合规">
</el-table-column>
<el-table-column
align="center"
width="160"
prop="researchNonCompliance"
label="不合规">
<el-table-column
prop="noCompliance"
align="center"
width="170"
label="不合规项目">
</el-table-column>
<el-table-column
prop="countermeasures"
align="center"
width="160"
label="应对措施">
</el-table-column>
<el-table-column
prop="completionTime"
align="center"
width="120"
label="完成时间">
<template slot-scope="scope">
<span>{{ scope.row.completionTime ? $moment(scope.row.completionTime).format("YYYY-MM-DD") : ""
}}</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column
prop="remarks"
align="center"
width="200"
label="不涉及理由">
</el-table-column>
<el-table-column
prop="workPeople"
align="center"
width="200"
label="责任人">
</el-table-column>
</el-table>
<el-pagination
layout="total,sizes, prev, pager, next"
background
:page-sizes="[20, 40, 60]"
:total="total"
:page-size="pageSize"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
>
</el-pagination>
</div>
<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>
<div class="content" v-show="active === '3'">
<div class="flow-list" style="height: 100%">
<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 HH:mm:ss") : "" }}</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 HH:mm:ss") : "" }}</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>
<!-- 福田全公司选人解决方案 -->
<Role-tree
check-box
:is-title="drawerTitle"
:is-visible.sync="drawerModal"
@checkedRole="checkedTransferRole"
:nodeList="nodeList"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { inboundLiaisonDetail, queryDetail ,changeAssigneeNew } from "api/process";
export default {
name: "xmpgStep1-5",
components: {
ProcessTitle,
ProcessHeader,
ProcessFooter
},
data() {
return {
total: 0,
currentPage: 1,
pageSize: 20,
nodeList:[],
drawerTitle:'',
isTransfer: false,
// 调整处理人抽屉状态
drawerModal: false,
active: "1",
loading: false,
// 当前流程类型(1待办/2已办)
processType: 1,
isSubmit: false,
saveLoading: false,
//表单的数据
listForm: {
projectNumber: "", //项目编号
projectName: "", //项目名称
dataList: [], //项目下的标准数据
breakdownList: [] //标准下的分解单数据
},
dataList: [], //展示的标准数据
commentText: "", //审批意见
detailData: [],//流程历史数据
userId: this.$store.getters.userInfo.userId,
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId
};
},
methods: {
//确认转办
checkedTransferRole (data) {
this.assigneeNewLoading = true
changeAssigneeNew({
taskId: this.$route.query.taskIds, // 任务id
assignee: data[0].id, // 被委托人
userId: this.$store.getters.userInfo.userId, // 委托人
pId: this.$route.query.prcId // 流程实例
}).then(res => {
this.isTransfer = false
if (res.success) {
this.drawerModal = false
this.$message.success('调整成功')
this.$router.push("/processCenter");
this.processNum()
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
processNum (row) {
axios.request({
url: '/api/lawss/activiti/getImg?_t=' + new Date().getTime(),
responseType: 'blob',
method: 'get',
params: {
prcNum: this.$route.query.prcNum
}
}).then(res => {
// let blob = new Blob([res.data], {type: 'image/jpg'})
// let url = window.URL.createObjectURL(res.data)
this.processStep = window.URL.createObjectURL(res.data)
})
},
//转办事件
handleTransfer(){
this.drawerModal = true
this.drawerTitle = '转办处理人'
this.selectPeople = row
},
// 点击查看
handlePreview(item) {
let routeUrl = this.$router.resolve({
name: "OtherStandardDetails",
params: {
id: item.standId,
pageType: "INLAND_STAND"
}
});
window.open(routeUrl.href, "_blank");
},
//查询项目下的标准
getStandData() {
this.$http.get("sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage", {
standType: this.standardSearch.standType,
standNumber: this.standardSearch.standNumber,
page: this.pageNo,
pageSize: this.pageSizeNo
}, {
_this: this
}, res => {
this.standardData = res.data.list;
this.standardData.forEach(item => {
if (item.attrInfoMap === null) {
this.$set(item, "ZCCSSRQ", "");
this.$set(item, "XCXSSRQ", "");
} else {
this.$set(item, "ZCCSSRQ", item.attrInfoMap.ZCCSSRQ);
this.$set(item, "XCXSSRQ", item.attrInfoMap.XCXSSRQ);
}
});
this.totalNo = res.data.count;
}, e => {
});
},
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 => {
});
},
//tab改变
handleTabs(type) {
this.active = type;
},
//获取数据
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg);
this.getFormFieldList(processForm);
}
}).catch(e => {
});
});
},
//动态表单读取
getFormFieldList(item) {
console.log(item);
this.$nextTick(() => {
this.listForm = JSON.parse(JSON.stringify(item));
let dataChildren = []
let dataListChildren = []
this.listForm.prcNum = this.prcNum;
this.listForm.prcName = this.prcName;
this.listForm["id"] = item.id;
this.listForm.dataList = item.dataList;
this.dataList = item.dataList;
this.dataList.forEach(item =>{
if(item.children){
item.children.forEach(items =>{
dataChildren.push(items)
})
}
})
this.dataList.forEach(item => {
dataChildren.forEach(items =>{
if (items.key === item.standId) {
this.$set(items, "standName", item.standName);
this.$set(items, "standEnName", item.standEnName);
this.$set(items, "standYear", item.standYear);
this.$set(items, "standSort", item.standSort);
this.$set(items, "standNumber", item.standNumber);
}
})
})
dataChildren.forEach((item, index) => {
dataListChildren = dataListChildren.concat(item);
});
dataListChildren = this.dataList.concat(dataListChildren);
let index = dataListChildren.findIndex(item => {
return item.people
})
if(index > -1){
dataListChildren.splice(index, 1)
}
this.dataList = dataListChildren;
this.total = this.dataList.length;
});
},
//提交事件
handleSubmit() {
this.isSubmit = true;
this.listForm.commentText = this.commentText;
const json = JSON.stringify(this.listForm);
this.$http.post("lawss/activiti/completeTask", {
taskIds: this.taskIds,
userId: this.userId,
json: json
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message);
this.$router.push("/processCenter");
}
this.isSubmit = false;
}, e => {
});
},
// 分页
handleCurrentChange(currentPage) {
this.currentPage = currentPage;
},
handleSizeChange(size) {
this.pageSize = size;
},
},
computed: {
listNoDataText() {
return this.processType === 1 ? "暂无待办流程" : "暂无已办流程";
}
},
mounted() {
this.processTable();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.xmpg-step5 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.choiceBtn {
.el-button--primary {
width: 150px;
}
}
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;
}
}
.content {
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'100% - 103px');
overflow: auto;
.tableTitle {
margin-bottom: 10px;
height: 30px;
line-height: 30px;
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
top: 0;
}
.accessStandardsAndRegulations {
height: 100%;
}
}
}
.demo-drawer-content {
margin-top: 10px;
}
/deep/.el-table th > .cell{
font-size: 14px;
}
/deep/.el-table thead.is-group th{
padding: 0px;
}
}
</style>
@@ -1,715 +0,0 @@
<!--评估流程 - 标准法规部领导审批 -->
<template>
<div class="xmpg-step7">
<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-show="active === '1'">
<div style="overflow: auto">
<process-title>
<template slot="title">基础信息</template>
</process-title>
<el-collapse-transition>
<el-form
v-if="foldFormFlag === false"
:model="listForm"
class="label-input-form prc-content-border"
label-width="150px"
>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="标准编号" prop="standNumber" class="add-form-item form-item-disabled">
<el-input
class="input-jump"
v-model="listForm.standNumber"
placeholder="请输入标准编号"
readonly
@click.native="handlePreview(listForm)"
></el-input>
</el-form-item>
<el-form-item label="标准名称" prop="standName" class="add-form-item form-item-disabled">
<el-input
class="input-jump"
v-model="listForm.standName"
placeholder="请输入标准名称"
readonly
@click.native="handlePreview(listForm)"
></el-input>
</el-form-item>
<el-form-item label="认证工程师" v-if="listForm.certifiedEngineerName !== ''" prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.certifiedEngineerName"
placeholder="请选择认证工程师"
></el-input>
</el-form-item>
<el-form-item label="认证工程师" v-else prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.certifiedEngineerName"
placeholder="--"
></el-input>
</el-form-item>
<el-form-item v-if="listForm.qualityEngineerName !== '' " label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.qualityEngineerName"
placeholder="请选择质量工程师"
></el-input>
</el-form-item>
<el-form-item v-else label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.qualityEngineerName"
placeholder="--"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-collapse-transition>
<el-button v-if="foldFormFlag === false" style="width: 100%" icon="el-icon-caret-top" @click="foldForm">隐藏基础信息</el-button>
<el-button v-if="foldFormFlag === true" style="width: 100%" icon="el-icon-caret-bottom" @click="foldForm">展开基础信息</el-button>
<el-form
v-if="foldFormFlag === true"
style="display: none"
:model="listForm"
class="label-input-form prc-content-border"
label-width="150px"
>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="标准编号" prop="standNumber" class="add-form-item form-item-disabled">
<el-input
v-model="listForm.standNumber"
placeholder="请输入标准编号"
readonly
@click.native="handlePreview(listForm)"
></el-input>
</el-form-item>
<el-form-item label="标准名称" prop="standName" class="add-form-item form-item-disabled">
<el-input
v-model="listForm.standName"
placeholder="请输入标准名称"
readonly
@click.native="handlePreview(listForm)"
></el-input>
</el-form-item>
<el-form-item label="认证工程师" v-if="listForm.certifiedEngineerName !== ''" prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.certifiedEngineerName"
placeholder="请选择认证工程师"
></el-input>
</el-form-item>
<el-form-item label="认证工程师" v-else prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.certifiedEngineerName"
placeholder="--"
></el-input>
</el-form-item>
<el-form-item v-if="listForm.qualityEngineerName !== '' " label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.qualityEngineerName"
placeholder="请选择质量工程师"
></el-input>
</el-form-item>
<el-form-item v-else label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.qualityEngineerName"
placeholder="--"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<process-title>
<template slot="title">填写信息</template>
</process-title>
<div class="tableTitle">
</div>
<el-table
ref="multipleTable"
:data="dataList"
tooltip-effect="dark"
style="width: 100%"
border
@selection-change="selectStandChange"
height="52%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', fontFamily: 'MicrosoftYaHei-Bold'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="productLine"
align="center"
width="200"
label="产品线">
</el-table-column>
<el-table-column
prop="projectNumber"
align="center"
width="200"
label="项目编号">
</el-table-column>
<el-table-column
prop="projectName"
align="center"
width="200"
label="项目名称">
</el-table-column>
<el-table-column
prop="itemNum"
align="center"
width="200"
label="条款号">
</el-table-column>
<el-table-column
prop="itemsName"
width="200"
align="center"
label="条款名称">
</el-table-column>
<el-table-column
prop="technicalRequir"
align="center"
width="250"
label="核心技术要求/变化点">
</el-table-column>
<el-table-column
prop="changePoint"
width="250"
align="center"
label="基于上一版本差异">
</el-table-column>
<el-table-column
prop="xCXSSRQ"
width="200"
align="center"
label="新车型实施日期">
</el-table-column>
<el-table-column
prop="zCCSSRQ"
width="200"
align="center"
label="在产车实施日期">
</el-table-column>
<el-table-column
prop="complianceReasons"
align="center"
width="160"
label="合规">
</el-table-column>
<el-table-column
align="center"
width="160"
prop="researchNonCompliance"
label="不合规">
<el-table-column
prop="noCompliance"
align="center"
width="170"
label="不合规项目">
</el-table-column>
<el-table-column
prop="countermeasures"
align="center"
width="160"
label="应对措施">
</el-table-column>
<el-table-column
prop="completionTime"
align="center"
width="120"
label="完成时间">
<template slot-scope="scope">
<span>{{ scope.row.completionTime ? $moment(scope.row.completionTime).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column
fixed="right"
align="center"
width="150"
prop="implementer"
label="落实人">
</el-table-column>
<el-table-column
fixed="right"
align="center"
width="150"
prop="distributePerson"
label="责任人">
</el-table-column>
</el-table>
<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>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list" style="height: 100%">
<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 HH:mm:ss') : '' }}</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 HH:mm:ss') : '' }}</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>
<!-- <ProcessFooter-->
<!-- show-submit-->
<!-- show-transfer-->
<!-- :submitLoading="isSubmit"-->
<!-- :transfer-loading="isTransfer"-->
<!-- :saveLoading="saveLoading"-->
<!-- :approval="true"-->
<!-- @back="beforeBack"-->
<!-- @transfer="handleTransfer"-->
<!-- @submit="handleSubmit"-->
<!-- >-->
<!-- </ProcessFooter>-->
<!-- 福田全公司选人解决方案 -->
<Role-tree
check-box
:is-title="drawerTitle"
:is-visible.sync="drawerModal"
@checkedRole="checkedTransferRole"
:nodeList="nodeList"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { inboundLiaisonDetail, queryDetail ,changeAssigneeNew } from "api/process";
export default {
name: "xmpgStep1-7",
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
data() {
return {
//折叠的标志,true为折叠,false为不折叠
foldFormFlag: false,
nodeList:[],
drawerTitle:'',
isTransfer: false,
// 调整处理人抽屉状态
drawerModal: false,
detailData: [],
sarProStateTableHeight: null, // 项目列表高度
// 当前流程类型(1待办/2已办)
processType: 1,
loading: false,
dataList: [],
active: "1",
userId:this.$store.getters.userInfo.userId,
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
listType: "country", //选择的清单类型
isSubmit: false,
saveLoading: false,
tabValue: "listOfCountries",
selectedList: [], //选择清单的选择框
selectList: [], //选择标准的选择框
bringData: [],
commentText: "", //填写会签意见
page: 1,
total: 0,
pageSize: this.$store.getters.userInfo.configContent,
listForm: {
fenFlag: '1', //1为通过 其他为驳回
standNumber: "", //标准编号
standName: "",//标准名称
certifiedEngineerName: "", //认证工程师
qualityEngineerName: "", //质量工程师
breakdownList: [{ //分解单数据
implementer: "",
applyArctic: "",
busStandCover: "",
claimType: "",
id: "",
itemsName: "",
itemsNum: "",
responsibleUnit: "",
standId: "",
svpps: ""
}],
dataList: [{
implementer: "",
projectLine: "", //产品线
uname: "",//产品线责任人
distributePerson: "", //分发责任人
distributePersonId: "", //分发责任人id
id: "",
sarStandProjectLibraries: [{
projectManager: "",
projectLevel: "",
projectNumber: "",
projectEndDate: "",
currentNode: "",
projectGroup: "",
productLine: "",
projectClassification: "",
projectStatus: "",
projectStartDate: "",
id: "",
projectName: "",
projectPlatfor: ""
}]
}]
},
choiceForm: {}, //选择标准清单列表
countryOptions: [], //适用区域下拉框数据
user1: "",
user2: "",
user3: "",
user4: "",
user5: "",
standMap: new Map()
};
},
methods: {
//折叠/展开基础信息方法
foldForm() {
this.foldFormFlag = !this.foldFormFlag
},
//确认转办
checkedTransferRole (data) {
this.assigneeNewLoading = true
changeAssigneeNew({
taskId: this.$route.query.taskIds, // 任务id
assignee: data[0].id, // 被委托人
userId: this.$store.getters.userInfo.userId, // 委托人
pId: this.$route.query.prcId // 流程实例
}).then(res => {
this.isTransfer = false
if (res.success) {
this.drawerModal = false
this.$message.success('调整成功')
this.$router.push("/processCenter");
this.processNum()
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
processNum (row) {
axios.request({
url: '/api/lawss/activiti/getImg?_t=' + new Date().getTime(),
responseType: 'blob',
method: 'get',
params: {
prcNum: this.$route.query.prcNum
}
}).then(res => {
// let blob = new Blob([res.data], {type: 'image/jpg'})
// let url = window.URL.createObjectURL(res.data)
this.processStep = window.URL.createObjectURL(res.data)
})
},
//转办事件
handleTransfer(){
this.drawerModal = true
this.drawerTitle = '转办处理人'
this.selectPeople = row
},
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 => {})
},
//tab发生变化
handleTabs(name) {
this.active = name;
},
//点击查看详情
handlePreview(item){
let routeUrl = this.$router.resolve({
name: "OtherStandardDetails",
params: {
id: item.id,
pageType: "INLAND_STAND"
}
});
window.open(routeUrl.href, "_blank")
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
}).catch(e => {
})
})
},
/**
* @description: 动态表单读取
*/
getFormFieldList (item) {
this.$nextTick(() => {
this.listForm = JSON.parse(JSON.stringify(item))
this.listForm.prcNum = this.prcNum
this.listForm.prcName = this.prcName
this.listForm.id = item.id
this.dataList = item.dataList
})
},
//驳回事件
beforeBack () {
if(this.commentText === null || this.commentText === undefined || this.commentText === ''){
this.$message.warning('请填写审批意见')
} else {
this.listForm.fenFlag = '2'
this.handleSubmit()
}
},
//提交事件
handleSubmit() {
this.listForm.prcCreateUser = this.$store.getters.userInfo.userId;
this.listForm.applyUpdUserId = this.$store.getters.userInfo.userId;
this.listForm.prcCreateUserName = this.$store.getters.userInfo.account;
this.listForm.zrUserId = this.$store.getters.userInfo.userId ;
this.listForm.commentText = this.commentText;
this.listForm.standId = this.listForm.standId;
this.listForm.fenFlag = "1";
this.listForm.dataList = this.dataList
const json = JSON.stringify(this.listForm);
this.isSubmit = true
this.$http.post('lawss/activiti/completeTask', {
taskIds: this.taskIds,
userId: this.userId,
json: json,
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message)
this.$router.push('/processCenter')
}
this.isSubmit = false
}, e => {
});
},
//标准表格选择框改变
selectStandChange(data) {
this.selectList = [];
for (let i = 0; i < data.length; i++) {
this.selectList.push(data[i].id);
}
},
selectThree() {
},
pageChange(page) {
this.page = page;
this.searchData();
},
pageSizeChange(pageSize) {
this.pageSize = this.$store.getters.userInfo.configContent;
this.searchData();
}
},
computed: {
listNoDataText () {
return this.processType === 1 ? '暂无待办流程' : '暂无已办流程'
},
},
mounted() {
this.processTable()
this.getData()
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.xmpg-step7 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.choiceBtn {
.el-button--primary {
width: 150px;
}
}
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;
}
}
.content {
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'100% - 103px');
overflow: auto;
.tableTitle {
margin-bottom: 10px;
height: 30px;
line-height: 30px;
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
top: 0;
}
.accessStandardsAndRegulations {
height: 100%;
}
}
.input-jump {
/deep/.el-input__inner{
color: #409EFF;
}
}
}
.demo-drawer-content {
margin-top: 10px;
}
/deep/.el-table th > .cell{
font-size: 12px;
}
/deep/.el-table thead.is-group th{
padding: 0px;
}
}
</style>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,276 +1,195 @@
<!--评估流程 - 分析审批 -->
<template> <template>
<div class="xmpg-step5"> <div class="xmpg-step5">
<ProcessHeader toggle> <ProcessHeader toggle>
<template slot="proName">标准合规评估流程</template> <template slot="proName">项目合规评估流程-项目</template>
<template slot="proNode">分发责任人审</template> <template slot="proNode"></template>
</ProcessHeader> </ProcessHeader>
<div class="headerTabs"> <div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div> <div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div> <div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
</div> </div>
<div class="content" v-show="active === '1'"> <div class="content" v-show="active === '1'">
<div style="overflow: auto"> <div style="flex: auto; overflow: auto">
<process-title> <process-title>
<template slot="title">基础信息</template> <template slot="title">基础信息</template>
</process-title> </process-title>
<el-collapse-transition>
<el-form <el-form
v-if="foldFormFlag === false"
:model="listForm" :model="listForm"
class="label-input-form prc-content-border" class="label-input-form prc-content-border"
label-width="150px" label-width="150px"
> >
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="标准编号" prop="standNumber" class="add-form-item form-item-disabled"> <el-form-item label="项目编号" prop="projectNumber" class="add-form-item form-item-disabled">
<el-input <el-input
class="input-jump" v-model="listForm.projectNumber"
v-model="listForm.standNumber" placeholder="请输入项目编号"
placeholder="请输入标准编号" disabled
readonly clearable
@click.native="handlePreview(listForm)"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="标准名称" prop="standName" class="add-form-item form-item-disabled"> <el-form-item label="项目名称" prop="projectName" class="add-form-item form-item-disabled">
<el-input <el-input
class="input-jump" v-model="listForm.projectName"
v-model="listForm.standName" placeholder="请输入项目名称"
placeholder="请输入标准名称" disabled
readonly clearable
@click.native="handlePreview(listForm)"
></el-input>
</el-form-item>
<el-form-item label="认证工程师" v-if="listForm.certifiedEngineerName !== ''" prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.certifiedEngineerName"
placeholder="请选择认证工程师"
></el-input>
</el-form-item>
<el-form-item label="认证工程师" v-else prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.certifiedEngineerName"
placeholder="--"
></el-input>
</el-form-item>
<el-form-item v-if="listForm.qualityEngineerName !== '' " label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.qualityEngineerName"
placeholder="请选择质量工程师"
></el-input>
</el-form-item>
<el-form-item v-else label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.qualityEngineerName"
placeholder="--"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
</el-collapse-transition> <process-title style="margin-top:5px; margin-bottom: 5px">
<el-button v-if="foldFormFlag === false" style="width: 100%" icon="el-icon-caret-top" @click="foldForm">隐藏基础信息</el-button> <template slot="title">填写信息</template>
<el-button v-if="foldFormFlag === true" style="width: 100%" icon="el-icon-caret-bottom" @click="foldForm">展开基础信息</el-button> </process-title>
<el-form <el-table
v-if="foldFormFlag === true" :data="dataList.slice((currentPage - 1) * pageSize, currentPage * pageSize ) "
style="display: none" style="width: 100%; border: 1px solid #cccccc;height: 400px"
:model="listForm" height="70%"
class="label-input-form prc-content-border" border
label-width="150px" highlight-current-row
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold'}"
> >
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="标准编号" prop="standNumber" class="add-form-item form-item-disabled">
<el-input
v-model="listForm.standNumber"
placeholder="请输入标准编号"
readonly
@click.native="handlePreview(listForm)"
></el-input>
</el-form-item>
<el-form-item label="标准名称" prop="standName" class="add-form-item form-item-disabled">
<el-input
v-model="listForm.standName"
placeholder="请输入标准名称"
readonly
@click.native="handlePreview(listForm)"
></el-input>
</el-form-item>
<el-form-item label="认证工程师" v-if="listForm.certifiedEngineerName !== ''" prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.certifiedEngineerName"
placeholder="请选择认证工程师"
></el-input>
</el-form-item>
<el-form-item label="认证工程师" v-else prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.certifiedEngineerName"
placeholder="--"
></el-input>
</el-form-item>
<el-form-item v-if="listForm.qualityEngineerName !== '' " label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.qualityEngineerName"
placeholder="请选择质量工程师"
></el-input>
</el-form-item>
<el-form-item v-else label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.qualityEngineerName"
placeholder="--"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<process-title>
<template slot="title">填写信息</template>
</process-title>
<div class="tableTitle">
</div>
<el-table
ref="multipleTable"
:data="dataList"
tooltip-effect="dark"
style="width: 100%"
border
@selection-change="selectStandChange"
height="100%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', fontFamily: 'MicrosoftYaHei-Bold'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="productLine"
align="center"
width="200"
label="产品线">
</el-table-column>
<el-table-column
prop="projectNumber"
align="center"
width="200"
label="项目编号">
</el-table-column>
<el-table-column
prop="projectName"
align="center"
width="200"
label="项目名称">
</el-table-column>
<el-table-column
prop="itemNum"
align="center"
width="200"
label="条款号">
</el-table-column>
<el-table-column
prop="itemsName"
width="200"
align="center"
label="条款名称">
</el-table-column>
<el-table-column
prop="technicalRequir"
align="center"
width="250"
label="核心技术要求/变化点">
</el-table-column>
<el-table-column
prop="changePoint"
width="250"
align="center"
label="基于上一版本差异">
</el-table-column>
<el-table-column
prop="xCXSSRQ"
width="200"
align="center"
label="新车型实施日期">
</el-table-column>
<el-table-column
prop="zCCSSRQ"
width="200"
align="center"
label="在产车实施日期">
</el-table-column>
<el-table-column
prop="complianceReasons"
align="center"
width="160"
label="合规">
</el-table-column>
<el-table-column
align="center"
width="160"
prop="researchNonCompliance"
label="不合规">
<el-table-column <el-table-column
prop="noCompliance" type="selection"
align="center" width="55"
width="170" align="center">
label="不合规项目">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="countermeasures" prop="standEnName"
label="标准编号"
width="180"
fixed="left"
align="center" align="center"
width="160" >
label="应对措施">
</el-table-column>
<el-table-column
prop="completionTime"
align="center"
width="120"
label="完成时间">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.completionTime ? $moment(scope.row.completionTime).format('YYYY-MM-DD') : '' }}</span> <a v-if="scope.row.standYear" class="table-jump"
@click="handlePreview(scope.row)">{{ scope.row.standSort }} {{ scope.row.standNumber
}}-{{ scope.row.standYear }}</a>
<a v-else @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standSort }}
{{ scope.row.standNumber }}</a>
</template> </template>
</el-table-column> </el-table-column>
</el-table-column> <el-table-column
<el-table-column prop="standName"
fixed="right" fixed="left"
align="center" width="180"
width="150" align="center"
prop="implementer" label="标准名称"
label="落实人"> >
</el-table-column> <template slot-scope="scope">
<el-table-column <a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
fixed="right" </template>
align="center" </el-table-column>
width="150" <el-table-column
prop="distributePerson" prop="itemsNum"
label="责任人"> align="center"
</el-table-column> width="200"
</el-table> label="条款号">
<el-collapse accordion> </el-table-column>
<el-collapse-item title="审批意见"> <el-table-column
<div style="margin: 10px 0;"> prop="itemsName"
<el-input width="200"
type="textarea" align="center"
:rows="3" label="条款名称">
resize="none" </el-table-column>
placeholder="请输入意见" <el-table-column
v-model.trim="commentText"> prop="ssrq"
</el-input> width="200"
</div> align="center"
</el-collapse-item> label="实施日期">
</el-collapse> </el-table-column>
<el-table-column
prop="xcxssrq"
width="200"
align="center"
label="新车型实施日期">
</el-table-column>
<el-table-column
prop="zccssrq"
width="200"
align="center"
label="在产车实施日期">
</el-table-column>
<!-- <el-table-column-->
<!-- prop="productType"-->
<!-- align="center"-->
<!-- label="在研产品">-->
<el-table-column
prop="complianceReasons"
align="center"
width="160"
label="合规">
</el-table-column>
<el-table-column
align="center"
width="160"
prop="researchNonCompliance"
label="不合规">
<el-table-column
prop="noCompliance"
align="center"
width="170"
label="不合规项目">
</el-table-column>
<el-table-column
prop="countermeasures"
align="center"
width="160"
label="应对措施">
</el-table-column>
<el-table-column
prop="completionTime"
align="center"
width="120"
label="完成时间">
<template slot-scope="scope">
<span>{{ scope.row.completionTime ? $moment(scope.row.completionTime).format("YYYY-MM-DD") : ""
}}</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column
prop="remarks"
align="center"
width="200"
label="不涉及理由">
</el-table-column>
<el-table-column
prop="workPeople"
align="center"
width="200"
label="责任人">
</el-table-column>
</el-table>
<el-pagination
layout="total,sizes, prev, pager, next"
background
:page-sizes="[20, 40, 60]"
:total="total"
:page-size="pageSize"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
>
</el-pagination>
</div>
<div> <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>
</div> </div>
<div class="content" v-show="active === '3'"> <div class="content" v-show="active === '3'">
<div class="flow-list" style="height: 100%"> <div class="flow-list" style="height: 100%">
<el-table <el-table
@@ -307,7 +226,7 @@
sortable="custom" sortable="custom"
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') : '' }}</span> <span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD HH:mm:ss") : "" }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -315,7 +234,7 @@
label="完成时间" label="完成时间"
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format('YYYY-MM-DD HH:mm:ss') : '' }}</span> <span>{{ scope.row.endTime ? $moment(scope.row.endTime).format("YYYY-MM-DD HH:mm:ss") : "" }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -323,7 +242,7 @@
label="流程信息" label="流程信息"
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.row.commentText}}</span> <span>{{ scope.row.commentText }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -331,34 +250,31 @@
label="状态" label="状态"
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.endTime ? '已完成' : '未完成'}}</span> <span>{{ scope.row.endTime ? "已完成" : "未完成" }}</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<loading :loading="loading">流程列表加载中</loading> <loading :loading="loading">流程列表加载中</loading>
</div> </div>
</div> </div>
<ProcessFooter <ProcessFooter
show-back
show-submit
show-transfer show-transfer
show-submit
:submitLoading="isSubmit" :submitLoading="isSubmit"
:saveLoading="saveLoading"
:transfer-loading="isTransfer" :transfer-loading="isTransfer"
:saveLoading="saveLoading"
:approval="true" :approval="true"
@back="beforeBack"
@transfer="handleTransfer" @transfer="handleTransfer"
@submit="handleSubmit" @submit="handleSubmit"
> >
</ProcessFooter> </ProcessFooter>
<!-- 福田全公司选人解决方案 --> <!-- 福田全公司选人解决方案 -->
<Role-tree <Role-tree
check-box check-box
:is-title="drawerTitle" :is-title="drawerTitle"
:is-visible.sync="drawerModal" :is-visible.sync="drawerModal"
@checkedRole="checkedTransferRole" @checkedRole="checkedTransferRole"
:nodeList="nodeList" :nodeList="nodeList"
></Role-tree> ></Role-tree>
</div> </div>
</template> </template>
@@ -372,97 +288,42 @@ import { inboundLiaisonDetail, queryDetail ,changeAssigneeNew } from "api/proces
export default { export default {
name: "xmpgStep5", name: "xmpgStep5",
components: { components: {
ProcessTitle,
ProcessHeader, ProcessHeader,
ProcessFooter, ProcessFooter
ProcessTitle
}, },
data() { data() {
return { return {
//折叠的标志,true为折叠,false为不折叠 total: 0,
foldFormFlag: false, currentPage: 1,
pageSize: 20,
nodeList:[], nodeList:[],
drawerTitle:'', drawerTitle:'',
isTransfer: false, isTransfer: false,
// 调整处理人抽屉状态 // 调整处理人抽屉状态
drawerModal: false, drawerModal: false,
detailData: [], active: "1",
sarProStateTableHeight: null, // 项目列表高度 loading: false,
// 当前流程类型(1待办/2已办) // 当前流程类型(1待办/2已办)
processType: 1, processType: 1,
loading: false,
dataList: [],
active: "1",
userId:this.$store.getters.userInfo.userId,
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
listType: "country", //选择的清单类型
isSubmit: false, isSubmit: false,
saveLoading: false, saveLoading: false,
tabValue: "listOfCountries", //表单的数据
selectedList: [], //选择清单的选择框
selectList: [], //选择标准的选择框
bringData: [],
commentText: "", //填写会签意见
page: 1,
total: 0,
pageSize: this.$store.getters.userInfo.configContent,
listForm: { listForm: {
fenFlag: " ", //1为驳回 2为通过 projectNumber: "", //项目编号
standNumber: "", //标准编号 projectName: "", //项目名称
standName: "",//标准名称 dataList: [], //项目下的标准数据
certifiedEngineerName: "", //认证工程师 breakdownList: [] //标准下的分解单数据
qualityEngineerName: "", //质量工程师
breakdownList: [{ //分解单数据
implementer: "",
applyArctic: "",
busStandCover: "",
claimType: "",
id: "",
itemsName: "",
itemsNum: "",
responsibleUnit: "",
standId: "",
svpps: ""
}],
dataList: [{
implementer: "",
projectLine: "", //产品线
uname: "",//产品线责任人
distributePerson: "", //分发责任人
distributePersonId: "", //分发责任人id
id: "",
sarStandProjectLibraries: [{
projectManager: "",
projectLevel: "",
projectNumber: "",
projectEndDate: "",
currentNode: "",
projectGroup: "",
productLine: "",
projectClassification: "",
projectStatus: "",
projectStartDate: "",
id: "",
projectName: "",
projectPlatfor: ""
}]
}]
}, },
choiceForm: {}, //选择标准清单列表 dataList: [], //展示的标准数据
countryOptions: [], //适用区域下拉框数据 commentText: "", //审批意见
user1: "", detailData: [],//流程历史数据
user2: "", userId: this.$store.getters.userInfo.userId,
user3: "", taskIds: this.$route.query.taskIds,
user4: "", pId: this.$route.query.prcId
user5: "",
standMap: new Map()
}; };
}, },
methods: { methods: {
//折叠/展开基础信息方法
foldForm() {
this.foldFormFlag = !this.foldFormFlag
},
//确认转办 //确认转办
checkedTransferRole (data) { checkedTransferRole (data) {
this.assigneeNewLoading = true this.assigneeNewLoading = true
@@ -504,33 +365,59 @@ export default {
this.drawerTitle = '转办处理人' this.drawerTitle = '转办处理人'
this.selectPeople = row this.selectPeople = row
}, },
processTable () { // 点击查看
this.$http.get('lawss/activiti/get_list_by_instance', { handlePreview(item) {
prcNum: this.$route.query.prcNum, let routeUrl = this.$router.resolve({
sortWord: this.shunxu ? this.paixu : '', name: "OtherStandardDetails",
shunxu: this.shunxu params: {
id: item.standId,
pageType: "INLAND_STAND"
}
});
window.open(routeUrl.href, "_blank");
},
//查询项目下的标准
getStandData() {
this.$http.get("sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage", {
standType: this.standardSearch.standType,
standNumber: this.standardSearch.standNumber,
page: this.pageNo,
pageSize: this.pageSizeNo
}, { }, {
loading: 'loading',
_this: this _this: this
}, res => { }, res => {
this.detailData = res this.standardData = res.data.list;
}, e => {}) this.standardData.forEach(item => {
if (item.attrInfoMap === null) {
this.$set(item, "ZCCSSRQ", "");
this.$set(item, "XCXSSRQ", "");
} else {
this.$set(item, "ZCCSSRQ", item.attrInfoMap.ZCCSSRQ);
this.$set(item, "XCXSSRQ", item.attrInfoMap.XCXSSRQ);
}
});
this.totalNo = res.data.count;
}, e => {
});
}, },
//tab发生变化 processTable() {
handleTabs(name) { this.$http.get("lawss/activiti/get_list_by_instance", {
this.active = name; prcNum: this.$route.query.prcNum,
sortWord: this.shunxu ? this.paixu : "",
shunxu: this.shunxu
}, {
loading: "loading",
_this: this
}, res => {
this.detailData = res;
}, e => {
});
}, },
//点击查看详情 //tab改变
handlePreview(item){ handleTabs(type) {
let routeUrl = this.$router.resolve({ this.active = type;
name: "OtherStandardDetails",
params: {
id: item.id,
pageType: "INLAND_STAND"
}
});
window.open(routeUrl.href, "_blank")
}, },
//获取数据
getData() { getData() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
inboundLiaisonDetail({ inboundLiaisonDetail({
@@ -538,109 +425,93 @@ export default {
pId: this.pId pId: this.pId
}).then(res => { }).then(res => {
if (res) { if (res) {
const processForm = JSON.parse(res.mesg) const processForm = JSON.parse(res.mesg);
this.getFormFieldList(processForm) this.getFormFieldList(processForm);
} }
}).catch(e => { }).catch(e => {
})
})
},
/**
* @description: 动态表单读取
*/
getFormFieldList (item) {
this.$nextTick(() => {
this.listForm = JSON.parse(JSON.stringify(item))
this.listForm.prcNum = this.prcNum
this.listForm.prcName = this.prcName
this.dataList = item.dataList
this.listForm.standName = item.standName
this.listForm.standNumber = item.standNumber
this.listForm.id = item.id
this.listForm.qualityEngineerName = item.qualityEngineerName
this.listForm.certifiedEngineerName = item.certifiedEngineerName
this.listForm.responsibleUnit = item.responsibleUnit
this.listForm.responsibleEngineer = item.responsibleEngineer
})
},
//驳回事件
beforeBack () {
if(!this.commentText){
this.$message.warning('请填写审批意见')
}else{
this.isSubmit = true
this.listForm.applyUpdUserId = this.dataList[0].distributePersonId
this.listForm.commentText = this.commentText;
this.listForm.dataList = this.dataList
this.listForm.fenFlag = '1'
const json = JSON.stringify(this.listForm);
this.$http.post('lawss/activiti/completeTask', {
taskIds: this.taskIds,
userId: this.userId,
json: json,
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message)
this.$router.push('/processCenter')
}
this.isSubmit = false
}, e => {
}); });
} });
},
//动态表单读取
getFormFieldList(item) {
console.log(item);
this.$nextTick(() => {
this.listForm = JSON.parse(JSON.stringify(item));
let dataChildren = []
let dataListChildren = []
this.listForm.prcNum = this.prcNum;
this.listForm.prcName = this.prcName;
this.listForm["id"] = item.id;
this.dataList = item.dataList;
this.dataList.forEach(item =>{
if(item.children){
item.children.forEach(items =>{
dataChildren.push(items)
})
}
})
this.dataList.forEach(item => {
dataChildren.forEach(items =>{
if (items.key === item.standId) {
this.$set(items, "standName", item.standName);
this.$set(items, "standEnName", item.standEnName);
this.$set(items, "standYear", item.standYear);
this.$set(items, "standSort", item.standSort);
this.$set(items, "standNumber", item.standNumber);
}
})
})
dataChildren.forEach((item, index) => {
dataListChildren = dataListChildren.concat(item);
});
dataListChildren = this.dataList.concat(dataListChildren);
let index = dataListChildren.findIndex(item => {
return item.people
})
if(index > -1){
dataListChildren.splice(index, 1)
}
this.dataList = dataListChildren;
this.total = this.dataList.length;
});
}, },
//提交事件 //提交事件
handleSubmit() { handleSubmit() {
this.listForm.applyUpdUserId = this.dataList[0].distributePersonId this.isSubmit = true;
this.listForm.dataList = this.dataList this.listForm.dataList = this.dataList
this.listForm.fenFlag = '2' this.listForm.commentText = this.commentText;
this.listForm.commentText = this.commentText; const json = JSON.stringify(this.listForm);
const json = JSON.stringify(this.listForm); this.$http.post("lawss/activiti/completeTask", {
this.isSubmit = true taskIds: this.taskIds,
this.$http.post('lawss/activiti/completeTask', { userId: this.userId,
taskIds: this.taskIds, json: json
userId: this.userId, }, {
json: json, _this: this
}, { }, res => {
_this: this if (res.success) {
}, res => { this.$message.success(res.message);
if (res.success) { this.$router.push("/processCenter");
this.$message.success(res.message) }
this.$router.push('/processCenter') this.isSubmit = false;
} }, e => {
this.isSubmit = false });
}, e => {
});
}, },
//标准表格选择框改变 // 分页
selectStandChange(data) { handleCurrentChange(currentPage) {
this.selectList = []; this.currentPage = currentPage;
for (let i = 0; i < data.length; i++) {
this.selectList.push(data[i].id);
}
}, },
selectThree() { handleSizeChange(size) {
this.pageSize = size;
}, },
pageChange(page) {
this.page = page;
this.searchData();
},
pageSizeChange(pageSize) {
this.pageSize = this.$store.getters.userInfo.configContent;
this.searchData();
}
}, },
computed: { computed: {
listNoDataText () { listNoDataText() {
return this.processType === 1 ? '暂无待办流程' : '暂无已办流程' return this.processType === 1 ? "暂无待办流程" : "暂无已办流程";
}, }
}, },
mounted() { mounted() {
this.processTable() this.processTable();
this.getData() this.getData();
} }
}; };
</script> </script>
@@ -713,11 +584,6 @@ export default {
height: 100%; height: 100%;
} }
} }
.input-jump {
/deep/.el-input__inner{
color: #409EFF;
}
}
} }
.demo-drawer-content { .demo-drawer-content {
@@ -730,4 +596,4 @@ export default {
padding: 0px; padding: 0px;
} }
} }
</style>> </style>
@@ -1,717 +0,0 @@
<!--评估流程 - 产品线责任人审批 -->
<template>
<div class="xmpg-step6">
<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-show="active === '1'">
<div style="overflow: auto">
<process-title>
<template slot="title">基础信息</template>
</process-title>
<el-collapse-transition>
<el-form
v-if="foldFormFlag === false"
:model="listForm"
class="label-input-form prc-content-border"
label-width="150px"
>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="标准编号" prop="standNumber" class="add-form-item form-item-disabled">
<el-input
class="input-jump"
v-model="listForm.standNumber"
placeholder="请输入标准编号"
readonly
@click.native="handlePreview(listForm)"
></el-input>
</el-form-item>
<el-form-item label="标准名称" prop="standName" class="add-form-item form-item-disabled">
<el-input
class="input-jump"
v-model="listForm.standName"
placeholder="请输入标准名称"
readonly
@click.native="handlePreview(listForm)"
></el-input>
</el-form-item>
<el-form-item label="认证工程师" v-if="listForm.certifiedEngineerName !== ''" prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.certifiedEngineerName"
placeholder="请选择认证工程师"
></el-input>
</el-form-item>
<el-form-item label="认证工程师" v-else prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.certifiedEngineerName"
placeholder="--"
></el-input>
</el-form-item>
<el-form-item v-if="listForm.qualityEngineerName !== '' " label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.qualityEngineerName"
placeholder="请选择质量工程师"
></el-input>
</el-form-item>
<el-form-item v-else label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.qualityEngineerName"
placeholder="--"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-collapse-transition>
<el-button v-if="foldFormFlag === false" style="width: 100%" icon="el-icon-caret-top" @click="foldForm">隐藏基础信息</el-button>
<el-button v-if="foldFormFlag === true" style="width: 100%" icon="el-icon-caret-bottom" @click="foldForm">展开基础信息</el-button>
<el-form
v-if="foldFormFlag === true"
style="display: none"
:model="listForm"
class="label-input-form prc-content-border"
label-width="150px"
>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="标准编号" prop="standNumber" class="add-form-item form-item-disabled">
<el-input
v-model="listForm.standNumber"
placeholder="请输入标准编号"
readonly
@click.native="handlePreview(listForm)"
></el-input>
</el-form-item>
<el-form-item label="标准名称" prop="standName" class="add-form-item form-item-disabled">
<el-input
v-model="listForm.standName"
placeholder="请输入标准名称"
readonly
@click.native="handlePreview(listForm)"
></el-input>
</el-form-item>
<el-form-item label="认证工程师" v-if="listForm.certifiedEngineerName !== ''" prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.certifiedEngineerName"
placeholder="请选择认证工程师"
></el-input>
</el-form-item>
<el-form-item label="认证工程师" v-else prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.certifiedEngineerName"
placeholder="--"
></el-input>
</el-form-item>
<el-form-item v-if="listForm.qualityEngineerName !== '' " label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.qualityEngineerName"
placeholder="请选择质量工程师"
></el-input>
</el-form-item>
<el-form-item v-else label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.qualityEngineerName"
placeholder="--"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<process-title>
<template slot="title">填写信息</template>
</process-title>
<div class="tableTitle">
</div>
<el-table
ref="multipleTable"
:data="dataList"
tooltip-effect="dark"
style="width: 100%"
border
@selection-change="selectStandChange"
height="100%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', fontFamily: 'MicrosoftYaHei-Bold'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="productLine"
align="center"
width="200"
label="产品线">
</el-table-column>
<el-table-column
prop="projectNumber"
align="center"
width="200"
label="项目编号">
</el-table-column>
<el-table-column
prop="projectName"
align="center"
width="200"
label="项目名称">
</el-table-column>
<el-table-column
prop="itemNum"
align="center"
width="200"
label="条款号">
</el-table-column>
<el-table-column
prop="itemsName"
width="200"
align="center"
label="条款名称">
</el-table-column>
<el-table-column
prop="technicalRequir"
align="center"
width="250"
label="核心技术要求/变化点">
</el-table-column>
<el-table-column
prop="changePoint"
width="250"
align="center"
label="基于上一版本差异">
</el-table-column>
<el-table-column
prop="xCXSSRQ"
width="200"
align="center"
label="新车型实施日期">
</el-table-column>
<el-table-column
prop="zCCSSRQ"
width="200"
align="center"
label="在产车实施日期">
</el-table-column>
<el-table-column
prop="complianceReasons"
align="center"
width="160"
label="合规">
</el-table-column>
<el-table-column
align="center"
width="160"
prop="researchNonCompliance"
label="不合规">
<el-table-column
prop="noCompliance"
align="center"
width="170"
label="不合规项目">
</el-table-column>
<el-table-column
prop="countermeasures"
align="center"
width="160"
label="应对措施">
</el-table-column>
<el-table-column
prop="completionTime"
align="center"
width="120"
label="完成时间">
<template slot-scope="scope">
<span>{{ scope.row.completionTime ? $moment(scope.row.completionTime).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column
fixed="right"
align="center"
width="150"
prop="implementer"
label="落实人">
</el-table-column>
<el-table-column
fixed="right"
align="center"
width="150"
prop="distributePerson"
label="责任人">
</el-table-column>
</el-table>
<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>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list" style="height: 100%">
<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 HH:mm:ss') : '' }}</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 HH:mm:ss') : '' }}</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>
<ProcessFooter
show-submit
show-transfer
:submitLoading="isSubmit"
:transfer-loading="isTransfer"
:saveLoading="saveLoading"
:approval="true"
@back="beforeBack"
@transfer="handleTransfer"
@submit="handleSubmit"
>
</ProcessFooter>
<!-- 福田全公司选人解决方案 -->
<Role-tree
check-box
:is-title="drawerTitle"
:is-visible.sync="drawerModal"
@checkedRole="checkedTransferRole"
:nodeList="nodeList"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { inboundLiaisonDetail, queryDetail ,changeAssigneeNew } from "api/process";
export default {
name: "xmpgStep6",
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
data() {
return {
//折叠的标志,true为折叠,false为不折叠
foldFormFlag: false,
nodeList:[],
drawerTitle:'',
isTransfer: false,
// 调整处理人抽屉状态
drawerModal: false,
detailData: [],
sarProStateTableHeight: null, // 项目列表高度
// 当前流程类型(1待办/2已办)
processType: 1,
loading: false,
dataList: [],
active: "1",
userId:this.$store.getters.userInfo.userId,
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
listType: "country", //选择的清单类型
isSubmit: false,
saveLoading: false,
tabValue: "listOfCountries",
selectedList: [], //选择清单的选择框
selectList: [], //选择标准的选择框
bringData: [],
commentText: "", //填写会签意见
page: 1,
total: 0,
pageSize: this.$store.getters.userInfo.configContent,
listForm: {
fenFlag: '1', //1为通过 其他为驳回
standNumber: "", //标准编号
standName: "",//标准名称
certifiedEngineerName: "", //认证工程师
qualityEngineerName: "", //质量工程师
breakdownList: [{ //分解单数据
implementer: "",
applyArctic: "",
busStandCover: "",
claimType: "",
id: "",
itemsName: "",
itemsNum: "",
responsibleUnit: "",
standId: "",
svpps: ""
}],
dataList: [{
implementer: "",
projectLine: "", //产品线
uname: "",//产品线责任人
distributePerson: "", //分发责任人
distributePersonId: "", //分发责任人id
id: "",
sarStandProjectLibraries: [{
projectManager: "",
projectLevel: "",
projectNumber: "",
projectEndDate: "",
currentNode: "",
projectGroup: "",
productLine: "",
projectClassification: "",
projectStatus: "",
projectStartDate: "",
id: "",
projectName: "",
projectPlatfor: ""
}]
}]
},
choiceForm: {}, //选择标准清单列表
countryOptions: [], //适用区域下拉框数据
user1: "",
user2: "",
user3: "",
user4: "",
user5: "",
standMap: new Map()
};
},
methods: {
//折叠/展开基础信息方法
foldForm() {
this.foldFormFlag = !this.foldFormFlag
},
//确认转办
checkedTransferRole (data) {
this.assigneeNewLoading = true
changeAssigneeNew({
taskId: this.$route.query.taskIds, // 任务id
assignee: data[0].id, // 被委托人
userId: this.$store.getters.userInfo.userId, // 委托人
pId: this.$route.query.prcId // 流程实例
}).then(res => {
this.isTransfer = false
if (res.success) {
this.drawerModal = false
this.$message.success('调整成功')
this.$router.push("/processCenter");
this.processNum()
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
processNum (row) {
axios.request({
url: '/api/lawss/activiti/getImg?_t=' + new Date().getTime(),
responseType: 'blob',
method: 'get',
params: {
prcNum: this.$route.query.prcNum
}
}).then(res => {
// let blob = new Blob([res.data], {type: 'image/jpg'})
// let url = window.URL.createObjectURL(res.data)
this.processStep = window.URL.createObjectURL(res.data)
})
},
//转办事件
handleTransfer(){
this.drawerModal = true
this.drawerTitle = '转办处理人'
this.selectPeople = row
},
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 => {})
},
//tab发生变化
handleTabs(name) {
this.active = name;
},
//点击查看详情
handlePreview(item){
let routeUrl = this.$router.resolve({
name: "OtherStandardDetails",
params: {
id: item.id,
pageType: "INLAND_STAND"
}
});
window.open(routeUrl.href, "_blank")
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
}).catch(e => {
})
})
},
/**
* @description: 动态表单读取
*/
getFormFieldList (item) {
this.$nextTick(() => {
this.listForm = JSON.parse(JSON.stringify(item))
this.listForm.prcNum = this.prcNum
this.listForm.prcName = this.prcName
this.dataList = item.dataList
this.listForm.id = item.step3DTOS[0].id
this.listForm.standName = item.step3DTOS[0].standName
this.listForm.standNumber = item.step3DTOS[0].standNumber
this.listForm.qualityEngineerName = item.step3DTOS[0].qualityEngineerName
this.listForm.certifiedEngineerName = item.step3DTOS[0].certifiedEngineerName
})
},
//驳回事件
beforeBack () {
if(!this.commentText){
this.$message.warning('请填写审批意见')
} else {
this.listForm.fenFlag = '2'
this.handleSubmit()
}
},
//提交事件
handleSubmit() {
this.isSubmit = true
this.listForm.prcCreateUser = this.$store.getters.userInfo.userId;
this.listForm.applyUpdUserId = this.$store.getters.userInfo.userId;
this.listForm.prcCreateUserName = this.$store.getters.userInfo.account;
this.listForm.zrUserId = this.$store.getters.userInfo.userId ;
this.listForm.commentText = this.commentText;
this.listForm.standId = this.listForm.standId;
this.listForm.fenFlag = "1";
this.listForm.dataList = this.dataList
const json = JSON.stringify(this.listForm);
this.$http.post('lawss/activiti/completeTask', {
taskIds: this.taskIds,
userId: this.userId,
json: json,
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message)
this.$router.push('/processCenter')
}
this.isSubmit = false
}, e => {
});
},
//标准表格选择框改变
selectStandChange(data) {
this.selectList = [];
for (let i = 0; i < data.length; i++) {
this.selectList.push(data[i].id);
}
},
selectThree() {
},
pageChange(page) {
this.page = page;
this.searchData();
},
pageSizeChange(pageSize) {
this.pageSize = this.$store.getters.userInfo.configContent;
this.searchData();
}
},
computed: {
listNoDataText () {
return this.processType === 1 ? '暂无待办流程' : '暂无已办流程'
},
},
mounted() {
this.processTable()
this.getData()
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.xmpg-step6 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.choiceBtn {
.el-button--primary {
width: 150px;
}
}
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;
}
}
.content {
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'100% - 103px');
overflow: auto;
.tableTitle {
margin-bottom: 10px;
height: 30px;
line-height: 30px;
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
top: 0;
}
.accessStandardsAndRegulations {
height: 100%;
}
}
.input-jump {
/deep/.el-input__inner{
color: #409EFF;
}
}
}
.demo-drawer-content {
margin-top: 10px;
}
/deep/.el-table th > .cell{
font-size: 14px;
}
/deep/.el-table thead.is-group th{
padding: 0px;
}
}
</style>
@@ -1,716 +0,0 @@
<!--评估流程 - 标准法规部领导审批 -->
<template>
<div class="xmpg-step7">
<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-show="active === '1'">
<div style="overflow: auto">
<process-title>
<template slot="title">基础信息</template>
</process-title>
<el-collapse-transition>
<el-form
v-if="foldFormFlag === false"
:model="listForm"
class="label-input-form prc-content-border"
label-width="150px"
>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="标准编号" prop="standNumber" class="add-form-item form-item-disabled">
<el-input
class="input-jump"
v-model="listForm.standNumber"
placeholder="请输入标准编号"
readonly
@click.native="handlePreview(listForm)"
></el-input>
</el-form-item>
<el-form-item label="标准名称" prop="standName" class="add-form-item form-item-disabled">
<el-input
class="input-jump"
v-model="listForm.standName"
placeholder="请输入标准名称"
readonly
@click.native="handlePreview(listForm)"
></el-input>
</el-form-item>
<el-form-item label="认证工程师" v-if="listForm.certifiedEngineerName !== ''" prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.certifiedEngineerName"
placeholder="请选择认证工程师"
></el-input>
</el-form-item>
<el-form-item label="认证工程师" v-else prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.certifiedEngineerName"
placeholder="--"
></el-input>
</el-form-item>
<el-form-item v-if="listForm.qualityEngineerName !== '' " label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.qualityEngineerName"
placeholder="请选择质量工程师"
></el-input>
</el-form-item>
<el-form-item v-else label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.qualityEngineerName"
placeholder="--"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-collapse-transition>
<el-button v-if="foldFormFlag === false" style="width: 100%" icon="el-icon-caret-top" @click="foldForm">隐藏基础信息</el-button>
<el-button v-if="foldFormFlag === true" style="width: 100%" icon="el-icon-caret-bottom" @click="foldForm">展开基础信息</el-button>
<el-form
v-if="foldFormFlag === true"
style="display: none"
:model="listForm"
class="label-input-form prc-content-border"
label-width="150px"
>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="标准编号" prop="standNumber" class="add-form-item form-item-disabled">
<el-input
v-model="listForm.standNumber"
placeholder="请输入标准编号"
readonly
@click.native="handlePreview(listForm)"
></el-input>
</el-form-item>
<el-form-item label="标准名称" prop="standName" class="add-form-item form-item-disabled">
<el-input
v-model="listForm.standName"
placeholder="请输入标准名称"
readonly
@click.native="handlePreview(listForm)"
></el-input>
</el-form-item>
<el-form-item label="认证工程师" v-if="listForm.certifiedEngineerName !== ''" prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.certifiedEngineerName"
placeholder="请选择认证工程师"
></el-input>
</el-form-item>
<el-form-item label="认证工程师" v-else prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.certifiedEngineerName"
placeholder="--"
></el-input>
</el-form-item>
<el-form-item v-if="listForm.qualityEngineerName !== '' " label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.qualityEngineerName"
placeholder="请选择质量工程师"
></el-input>
</el-form-item>
<el-form-item v-else label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="listForm.qualityEngineerName"
placeholder="--"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<process-title>
<template slot="title">填写信息</template>
</process-title>
<div class="tableTitle">
</div>
<el-table
ref="multipleTable"
:data="dataList"
tooltip-effect="dark"
style="width: 100%"
border
@selection-change="selectStandChange"
height="100%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', fontFamily: 'MicrosoftYaHei-Bold'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="productLine"
align="center"
width="200"
label="产品线">
</el-table-column>
<el-table-column
prop="projectNumber"
align="center"
width="200"
label="项目编号">
</el-table-column>
<el-table-column
prop="projectName"
align="center"
width="200"
label="项目名称">
</el-table-column>
<el-table-column
prop="itemNum"
align="center"
width="200"
label="条款号">
</el-table-column>
<el-table-column
prop="itemsName"
width="200"
align="center"
label="条款名称">
</el-table-column>
<el-table-column
prop="technicalRequir"
align="center"
width="250"
label="核心技术要求/变化点">
</el-table-column>
<el-table-column
prop="changePoint"
width="250"
align="center"
label="基于上一版本差异">
</el-table-column>
<el-table-column
prop="xCXSSRQ"
width="200"
align="center"
label="新车型实施日期">
</el-table-column>
<el-table-column
prop="zCCSSRQ"
width="200"
align="center"
label="在产车实施日期">
</el-table-column>
<el-table-column
prop="complianceReasons"
align="center"
width="160"
label="合规">
</el-table-column>
<el-table-column
align="center"
width="160"
prop="researchNonCompliance"
label="不合规">
<el-table-column
prop="noCompliance"
align="center"
width="170"
label="不合规项目">
</el-table-column>
<el-table-column
prop="countermeasures"
align="center"
width="160"
label="应对措施">
</el-table-column>
<el-table-column
prop="completionTime"
align="center"
width="120"
label="完成时间">
<template slot-scope="scope">
<span>{{ scope.row.completionTime ? $moment(scope.row.completionTime).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column
fixed="right"
align="center"
width="150"
prop="implementer"
label="落实人">
</el-table-column>
<el-table-column
fixed="right"
align="center"
width="150"
prop="distributePerson"
label="责任人">
</el-table-column>
</el-table>
<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>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list" style="height: 100%">
<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 HH:mm:ss') : '' }}</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 HH:mm:ss') : '' }}</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>
<ProcessFooter
show-submit
show-transfer
:submitLoading="isSubmit"
:transfer-loading="isTransfer"
:saveLoading="saveLoading"
:approval="true"
@back="beforeBack"
@transfer="handleTransfer"
@submit="handleSubmit"
>
</ProcessFooter>
<!-- 福田全公司选人解决方案 -->
<Role-tree
check-box
:is-title="drawerTitle"
:is-visible.sync="drawerModal"
@checkedRole="checkedTransferRole"
:nodeList="nodeList"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { inboundLiaisonDetail, queryDetail ,changeAssigneeNew } from "api/process";
export default {
name: "xmpgStep7",
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
data() {
return {
//折叠的标志,true为折叠,false为不折叠
foldFormFlag: false,
nodeList:[],
drawerTitle:'',
isTransfer: false,
// 调整处理人抽屉状态
drawerModal: false,
detailData: [],
sarProStateTableHeight: null, // 项目列表高度
// 当前流程类型(1待办/2已办)
processType: 1,
loading: false,
dataList: [],
active: "1",
userId:this.$store.getters.userInfo.userId,
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
listType: "country", //选择的清单类型
isSubmit: false,
saveLoading: false,
tabValue: "listOfCountries",
selectedList: [], //选择清单的选择框
selectList: [], //选择标准的选择框
bringData: [],
commentText: "", //填写会签意见
page: 1,
total: 0,
pageSize: this.$store.getters.userInfo.configContent,
listForm: {
fenFlag: '1', //1为通过 其他为驳回
standNumber: "", //标准编号
standName: "",//标准名称
certifiedEngineerName: "", //认证工程师
qualityEngineerName: "", //质量工程师
breakdownList: [{ //分解单数据
implementer: "",
applyArctic: "",
busStandCover: "",
claimType: "",
id: "",
itemsName: "",
itemsNum: "",
responsibleUnit: "",
standId: "",
svpps: ""
}],
dataList: [{
implementer: "",
projectLine: "", //产品线
uname: "",//产品线责任人
distributePerson: "", //分发责任人
distributePersonId: "", //分发责任人id
id: "",
sarStandProjectLibraries: [{
projectManager: "",
projectLevel: "",
projectNumber: "",
projectEndDate: "",
currentNode: "",
projectGroup: "",
productLine: "",
projectClassification: "",
projectStatus: "",
projectStartDate: "",
id: "",
projectName: "",
projectPlatfor: ""
}]
}]
},
choiceForm: {}, //选择标准清单列表
countryOptions: [], //适用区域下拉框数据
user1: "",
user2: "",
user3: "",
user4: "",
user5: "",
standMap: new Map()
};
},
methods: {
//折叠/展开基础信息方法
foldForm() {
this.foldFormFlag = !this.foldFormFlag
},
//确认转办
checkedTransferRole (data) {
this.assigneeNewLoading = true
changeAssigneeNew({
taskId: this.$route.query.taskIds, // 任务id
assignee: data[0].id, // 被委托人
userId: this.$store.getters.userInfo.userId, // 委托人
pId: this.$route.query.prcId // 流程实例
}).then(res => {
this.isTransfer = false
if (res.success) {
this.drawerModal = false
this.$message.success('调整成功')
this.$router.push("/processCenter");
this.processNum()
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
processNum (row) {
axios.request({
url: '/api/lawss/activiti/getImg?_t=' + new Date().getTime(),
responseType: 'blob',
method: 'get',
params: {
prcNum: this.$route.query.prcNum
}
}).then(res => {
// let blob = new Blob([res.data], {type: 'image/jpg'})
// let url = window.URL.createObjectURL(res.data)
this.processStep = window.URL.createObjectURL(res.data)
})
},
//转办事件
handleTransfer(){
this.drawerModal = true
this.drawerTitle = '转办处理人'
this.selectPeople = row
},
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 => {})
},
//tab发生变化
handleTabs(name) {
this.active = name;
},
//点击查看详情
handlePreview(item){
let routeUrl = this.$router.resolve({
name: "OtherStandardDetails",
params: {
id: item.id,
pageType: "INLAND_STAND"
}
});
window.open(routeUrl.href, "_blank")
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
}).catch(e => {
})
})
},
/**
* @description: 动态表单读取
*/
getFormFieldList (item) {
this.$nextTick(() => {
this.listForm = JSON.parse(JSON.stringify(item))
this.listForm.prcNum = this.prcNum
this.listForm.prcName = this.prcName
this.listForm.id = item.id
// this.commentText = ''
this.dataList = item.dataList
})
},
//驳回事件
beforeBack () {
if(!this.commentText){
this.$message.warning('请填写审批意见')
} else {
this.listForm.fenFlag = '2'
this.handleSubmit()
}
},
//提交事件
handleSubmit() {
this.listForm.prcCreateUser = this.$store.getters.userInfo.userId;
this.listForm.applyUpdUserId = this.$store.getters.userInfo.userId;
this.listForm.prcCreateUserName = this.$store.getters.userInfo.account;
this.listForm.zrUserId = this.$store.getters.userInfo.userId ;
this.listForm.commentText = this.commentText;
this.listForm.standId = this.listForm.standId;
this.listForm.fenFlag = "1";
this.listForm.dataList = this.dataList
const json = JSON.stringify(this.listForm);
this.isSubmit = true
this.$http.post('lawss/activiti/completeTask', {
taskIds: this.taskIds,
userId: this.userId,
json: json,
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message)
this.$router.push('/processCenter')
}
this.isSubmit = false
}, e => {
});
},
//标准表格选择框改变
selectStandChange(data) {
this.selectList = [];
for (let i = 0; i < data.length; i++) {
this.selectList.push(data[i].id);
}
},
selectThree() {
},
pageChange(page) {
this.page = page;
this.searchData();
},
pageSizeChange(pageSize) {
this.pageSize = this.$store.getters.userInfo.configContent;
this.searchData();
}
},
computed: {
listNoDataText () {
return this.processType === 1 ? '暂无待办流程' : '暂无已办流程'
},
},
mounted() {
this.processTable()
this.getData()
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.xmpg-step7 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.choiceBtn {
.el-button--primary {
width: 150px;
}
}
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;
}
}
.content {
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'100% - 103px');
overflow: auto;
.tableTitle {
margin-bottom: 10px;
height: 30px;
line-height: 30px;
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
top: 0;
}
.accessStandardsAndRegulations {
height: 100%;
}
}
.input-jump {
/deep/.el-input__inner{
color: #409EFF;
}
}
}
.demo-drawer-content {
margin-top: 10px;
}
/deep/.el-table th > .cell{
font-size: 14px;
}
/deep/.el-table thead.is-group th{
padding: 0px;
}
}
</style>
@@ -235,11 +235,7 @@ export default {
this.toProcessDetail('bzpgStep8-1',row) this.toProcessDetail('bzpgStep8-1',row)
}else if(prcType === '6'){ }else if(prcType === '6'){
//标准项目合规评估 项目维度 //标准项目合规评估 项目维度
if(row.taskInfo === '标准法规部部长审批'){ this.toProcessDetail('xmpgStep1-5',row)
this.toProcessDetail('xmpg2Step1-12',row)
}else{
this.toProcessDetail('xmpg2Step1-2',row)
}
} else if (prcType === '8') { } else if (prcType === '8') {
// 未符合项整改 // 未符合项整改
this.toProcessDetail('wfhxzgStep5-1',row) this.toProcessDetail('wfhxzgStep5-1',row)
@@ -244,11 +244,7 @@ export default {
this.toProcessDetail('bzpgStep8-1',row) this.toProcessDetail('bzpgStep8-1',row)
}else if(prcType === '6'){ }else if(prcType === '6'){
//标准项目合规评估 项目维度 //标准项目合规评估 项目维度
if(row.taskInfo === '标准法规部部长审批'){ this.toProcessDetail('xmpgStep1-5',row)
this.toProcessDetail('xmpg2Step1-12',row)
}else{
this.toProcessDetail('xmpg2Step1-2',row)
}
} else if (prcType === '8') { } else if (prcType === '8') {
// 未符合项整改 // 未符合项整改
this.toProcessDetail('wfhxzgStep5-1',row) this.toProcessDetail('wfhxzgStep5-1',row)
@@ -501,7 +501,7 @@ export default {
case '10': case '10':
//项目评估流程- 项目 //项目评估流程- 项目
this.$router.push({ this.$router.push({
name: 'xmpg2Step1' name: 'xmpgStep1'
}) })
break break
case '11': case '11':
@@ -1050,9 +1050,9 @@ export default {
break break
//项目评估流程-项目 //项目评估流程-项目
case '6': case '6':
if(row.taskInfo === '标准法规部业务经理审批'){ if(row.taskInfo === '任务分发'){
this.$router.push({ this.$router.push({
name: 'xmpg2Step2', name: 'xmpgStep2',
query: { query: {
taskIds: row.taskIds, taskIds: row.taskIds,
prcId: row.prcId, prcId: row.prcId,
@@ -1061,9 +1061,9 @@ export default {
prcType: row.prcType prcType: row.prcType
} }
}) })
}else if(row.taskInfo === '工程经理转办'){ }else if(row.taskInfo === '合规评估'){
this.$router.push({ this.$router.push({
name: 'xmpg2Step3', name: 'xmpgStep3',
query: { query: {
taskIds: row.taskIds, taskIds: row.taskIds,
prcId: row.prcId, prcId: row.prcId,
@@ -1072,9 +1072,9 @@ export default {
prcType: row.prcType prcType: row.prcType
} }
}) })
} else if(row.taskInfo === '架构经理任务分发') { } else if(row.taskInfo === '审核') {
this.$router.push({ this.$router.push({
name: 'xmpg2Step4', name: 'xmpgStep4',
query: { query: {
taskIds: row.taskIds, taskIds: row.taskIds,
prcId: row.prcId, prcId: row.prcId,
@@ -1083,9 +1083,9 @@ export default {
prcType: row.prcType prcType: row.prcType
} }
}) })
} else if(row.taskInfo === '分发责任人下发') { } else if(row.taskInfo === '批准') {
this.$router.push({ this.$router.push({
name: 'xmpg2Step5', name: 'xmpgStep5',
query: { query: {
taskIds: row.taskIds, taskIds: row.taskIds,
prcId: row.prcId, prcId: row.prcId,
@@ -627,7 +627,7 @@ export default {
break break
case '6': case '6':
this.$router.push({ this.$router.push({
name: 'xmpg2Step1-1', name: 'xmpgStep1',
query: { query: {
type: '6', type: '6',
processName: '项目合规评估流程-项目', processName: '项目合规评估流程-项目',
+3 -40
View File
@@ -610,34 +610,6 @@ const routes = [
title: '项目合规评估流程' title: '项目合规评估流程'
} }
}, },
//流程保存界面
{
path: '/xmpgStep1-1',
name: 'xmpgStep1-1',
component: () => import('@/pages/processCenter/pages/creatProcess/xmpg/step1-1.vue'),
meta: {
requireAuth: true,
title: '项目合规评估流程'
}
},
{
path: '/xmpgStep1-2',
name: 'xmpgStep1-2',
component: () => import('@/pages/processCenter/pages/creatProcess/xmpg/step1-2.vue'),
meta: {
requireAuth: true,
title: '项目合规评估流程'
}
},
{
path: '/xmpgStep1-7',
name: 'xmpgStep1-7',
component: () => import('@/pages/processCenter/pages/creatProcess/xmpg/step1-7.vue'),
meta: {
requireAuth: true,
title: '项目合规评估流程'
}
},
{ {
path: '/xmpgStep2', path: '/xmpgStep2',
name: 'xmpgStep2', name: 'xmpgStep2',
@@ -675,18 +647,9 @@ const routes = [
} }
}, },
{ {
path: '/xmpgStep6', path: '/xmpgStep1-5',
name: 'xmpgStep6', name: 'xmpgStep1-5',
component: () => import('@/pages/processCenter/pages/creatProcess/xmpg/step6.vue'), component: () => import('@/pages/processCenter/pages/creatProcess/xmpg/step1-5.vue'),
meta: {
requireAuth: true,
title: '项目合规评估流程'
}
},
{
path: '/xmpgStep7',
name: 'xmpgStep7',
component: () => import('@/pages/processCenter/pages/creatProcess/xmpg/step7.vue'),
meta: { meta: {
requireAuth: true, requireAuth: true,
title: '项目合规评估流程' title: '项目合规评估流程'