评估流程及权限

This commit is contained in:
宋伟佳
2021-07-13 10:29:00 +08:00
parent f207a2f76d
commit 301a415765
12 changed files with 917 additions and 287 deletions
@@ -50,7 +50,7 @@ export default {
this.$router.push(this.path)
},
dealWith (row) { // 办理
// this.setHandleInfo(JSON.stringify(row))
this.setHandleInfo(JSON.stringify(row))
const prcType = row.prcType
switch(prcType) {
case '1':
@@ -152,9 +152,9 @@ export default {
break;
//项目合规评估流程
case '5' :
if(row.taskInfo === ''){
if(row.taskInfo === '标准法规部业务经理审批'){
this.$router.push({
name: '',
name: 'xmpgStep2',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
@@ -29,8 +29,6 @@
<div class="content">
<div class="action-bar">
<el-button size="mini" @click="spiltStandFile" v-btn-permission="''"><i class="iconfont"></i>拆分</el-button>
<el-button size="mini" @click="clickButtonToUpload" v-btn-permission="''"><i class="iconfont">&#xe65d;</i>上传</el-button>
<el-button size="mini" @click="clickButtonToImport" v-btn-permission="''"><i class="iconfont">&#xe6de;</i>导入拆分结果</el-button>
<el-button size="mini" @click="batchDelete" v-btn-permission="''"><i class="iconfont">&#xe61b;</i>删除</el-button>
</div>
<div class="table-wrap">
@@ -44,15 +44,16 @@
v-model="listForm.certifiedEngineer"
placeholder="请选择认证工程师"
clearable
@click.native="choiceZRR('certifiedEngineer', '选择认证工程师', roleForm.certifiedEngineer)"
@click.native="choiceZRR(null,'certifiedEngineer', '选择认证工程师', roleForm.certifiedEngineer)"
></el-input>
<el-input v-model="roleForm.dockUser" style="display: none;"></el-input>
</el-form-item>
<el-form-item label="质量工程师" prop="qualityEngineer" class="add-form-item form-item-disabled">
<el-input
v-model="listForm.qualityEngineer"
placeholder="请选择质量工程师"
clearable
@click.native="choiceZRR('qualityEngineer', '选择质量工程师', roleForm.qualityEngineer)"
@click.native="choiceZRR(null,'qualityEngineer', '选择质量工程师', roleForm.qualityEngineer)"
></el-input>
</el-form-item>
</el-col>
@@ -63,8 +64,8 @@
</process-title>
<div class="tableTitle">
<div class="tableButton">
<el-button plain class="common-button-primary" size="mini" @click="addList">新增</el-button>
<el-button plain class="common-button-primary" size="mini" @click="addList">批量删除</el-button>
<el-button plain class="common-button-primary" size="mini" @click="addList">新增</el-button>
<el-button plain class="common-button-primary" size="mini" @click="addList">批量删除</el-button>
</div>
</div>
<el-table
@@ -89,14 +90,16 @@
prop="uname"
label="产品线责任人">
</el-table-column>
<!-- distribute-->
<el-table-column
prop="ministerUser"
prop="distributePerson"
label="分发责任人">
<template slot-scope="scope">
<el-input v-model="roleForm.ministerUser" style="display: none;"></el-input>
<el-input v-model="roleForm.ministerUserName" placeholder="选择标准法规工程师"
@click.native="choiceZRR('ministerUser', '选择标准法规工程师', roleForm.ministerUser)"></el-input>
<template slot-scope="scope,text" v-if="showColumn">
<div>
<div @click="choiceZRR(scope,'distributePerson', '选择分发责任人', roleForm.distributePerson)">
{{listForm.dataList[scope.$index].distributePerson==null?"请选择分发负责人":listForm.dataList[scope.$index].distributePerson}}
</div>
</div>
</template>
</el-table-column>
</el-table>
@@ -128,60 +131,12 @@
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.dockUser" style="display: none;"></el-input>
<el-input v-model="roleForm.dockUserName" placeholder="选择业务经理"
@click.native="choiceZRR('dockUser', '选择业务经理', roleForm.dockUser)">
@click.native="choiceZRR(null,'dockUser', '选择业务经理', roleForm.dockUser)">
</el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="分发责任人进行任务分发" placement="top" :color="roleForm.ministerUser ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="ministerUserName" style="margin-bottom: 0">
<h4>分发责任人</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.ministerUser" style="display: none;"></el-input>
<el-input v-model="roleForm.ministerUserName" placeholder="选择标准法规工程师"
@click.native="choiceZRR('ministerUser', '选择标准法规工程师', roleForm.ministerUser)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="责任人填写评估反馈" placement="top" :color="roleForm.directorUser ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="directorUserName" style="margin-bottom: 0">
<h4>责任人</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.directorUser" style="display: none;"></el-input>
<el-input v-model="roleForm.directorUserName" placeholder="责任人"
@click.native="choiceZRR('directorUser', '选择责任人', roleForm.directorUser)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="分发责任人进行任务分发" placement="top" :color="roleForm.ministerUser ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="ministerUserName" style="margin-bottom: 0">
<h4>分发责任人</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.ministerUser" style="display: none;"></el-input>
<el-input v-model="roleForm.ministerUserName" placeholder="选择标准法规工程师"
@click.native="choiceZRR('ministerUser', '选择标准法规工程师', roleForm.ministerUser)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="产品线责任人审批" placement="top" :color="roleForm.directorUser ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="directorUserName" style="margin-bottom: 0">
<h4>产品线责任人</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.directorUser" placeholder="产品线责任人" ></el-input>
<!-- <el-input v-model="roleForm.directorUserName" placeholder="责任人"-->
<!-- @click.native="choiceZRR('directorUser', '选择分发责任人', roleForm.directorUser)"></el-input>-->
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="标准法规部领导审批" placement="top" :color="roleForm.directorUser ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="directorUserName" style="margin-bottom: 0">
@@ -189,7 +144,7 @@
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.directorUser" style="display: none;"></el-input>
<el-input v-model="roleForm.directorUserName" placeholder="请选择标准法规部领导"
@click.native="choiceZRR('directorUser', '选择标准法规部领导', roleForm.directorUser)"></el-input>
@click.native="choiceZRR(null,'directorUser', '选择标准法规部领导', roleForm.directorUser)"></el-input>
</div>
</el-form-item>
</el-card>
@@ -229,8 +184,11 @@
fixed="left"
label="标准号">
<template slot-scope="scope">
<a v-if="scope.row.standYear" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standSortShow }} {{ scope.row.standNumber }}-{{ scope.row.standYear }}</a>
<a v-else @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standSortShow }} {{ scope.row.standNumber }}</a>
<a v-if="scope.row.standYear" class="table-jump"
@click="handlePreview(scope.row)">{{ scope.row.standSortShow }} {{ scope.row.standNumber
}}-{{ scope.row.standYear }}</a>
<a v-else @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standSortShow }}
{{ scope.row.standNumber }}</a>
</template>
</el-table-column>
<el-table-column
@@ -272,7 +230,7 @@
<el-button type="primary" size="mini" @click="OkDrawer">带入</el-button>
</div>
</el-drawer>
<!-- 添加抽屉-->
<!-- 添加抽屉-->
<el-drawer
title="添加产品线"
:visible.sync="standModel"
@@ -379,11 +337,10 @@ export default {
},
data() {
return {
ffzrr:'',
active: "1",
standModel: false,
sarAccessListDatas: [],
productData:[], //添加抽屉的数据
productData: [], //添加抽屉的数据
standList: [], //新添加的标准
modalshowflag: false, // drawer开关
drawerTitle: "", //drawer标题
@@ -395,16 +352,9 @@ export default {
roleForm: {
startUserName: this.$store.getters.userInfo.userName,
startUser: this.$store.getters.userInfo.id,
dockUser: "",
responUserList: "",
ministerUser: "",
directorUser: "",
presidentUser: "",
dockUserName: "",
responUserListName: "",
ministerUserName: "",
directorUserName: "",
presidentUserName: ""
qualityEngineer: "",
certifiedEngineer:"",
distributePerson: "",
},
formRules: {
listType: [
@@ -430,7 +380,7 @@ export default {
isSubmit: false,
saveLoading: false,
selectedList: [], //拆分标准的选择框
dataList:[],
dataList: [],
page: 1,
total: 0,
pageSize: this.$store.getters.userInfo.configContent,
@@ -441,28 +391,45 @@ export default {
listForm: {
standNumber: "", //标准编号
standName: "",//标准名称
certifiedEngineer: '', //认证工程师
qualityEngineer: '', //质量工程师
certifiedEngineer: "", //认证工程师
qualityEngineer: "", //质量工程师
breakdownList: [{
applyArctic: '',
busStandCover: '',
claimType: '',
id: '',
itemsName:'',
itemsNum:'',
responsibleUnit: '',
standId: '',
svpps: '',
applyArctic: "",
busStandCover: "",
claimType: "",
id: "",
itemsName: "",
itemsNum: "",
responsibleUnit: "",
standId: "",
svpps: ""
}],
dataList: [{
projectLine: '', //产品线
uname:'',//产品线责任人
ffzrr: '', //分发责任人
projectLine: "", //产品线
uname: "",//产品线责任人
projectManager:"",// 产品线责任人id
distributePerson: "", //分发责任人
distributePersonId: "", //分发责任人id
id: "",
sarStandProjectLibraries: [],
}],
sarStandProjectLibraries: [{
projectManager: '',
projectLevel: '',
projectNumber: '',
projectEndDate: '',
currentNode: '',
projectGroup: '',
productLine: '',
projectClassification: '',
projectStatus: '',
projectStartDate: '',
id: '',
projectName: '',
projectPlatfor: ''
}]
}]
},
choiceForm: {}, //选择标准清单列表
showColumn:true
};
},
methods: {
@@ -479,10 +446,18 @@ export default {
} else if (this.type === "presidentUser") {
this.roleForm.presidentUser = this.roleRow.id;
this.roleForm.presidentUserName = this.roleRow.name;
}else if(this.type === 'qualityEngineer') {
this.listForm.qualityEngineer = this.roleRow.name
}else if(this.type === 'certifiedEngineer') {
this.listForm.certifiedEngineer = this.roleRow.name
} else if (this.type === "qualityEngineer") {
this.listForm.qualityEngineer = this.roleRow.name;
} else if (this.type === "certifiedEngineer") {
this.listForm.certifiedEngineer = this.roleRow.name;
} else if (this.type === "distributePerson") {
this.listForm.distributePerson = this.roleRow.name;
this.listForm.dataList[this.dsadadadsada].distributePersonId=this.roleRow.id
this.listForm.dataList[this.dsadadadsada].distributePerson=this.roleRow.name
this.showColumn = false;
this.$nextTick(() => {
this.showColumn = true
})
}
this.modalshowflag = false;
},
@@ -515,17 +490,17 @@ export default {
},
//取消添加事件
cancelStand() {
this.standModel = false
this.standModel = false;
},
//确认添加事件
okStand() {
if(this.standList.length >= 1){
this.dataList = this.standList
this.roleForm.directorUser = this.dataList[0].uname
this.listForm.dataList = this.standList
this.standModel = false
}else{
this.$message.warning('请选择一条数据进行添加')
if (this.standList.length >= 1) {
this.dataList = this.standList;
this.roleForm.directorUser = this.dataList[0].uname;
this.listForm.dataList = this.standList;
this.standModel = false;
} else {
this.$message.warning("请选择一条数据进行添加");
}
},
//保存事件
@@ -559,25 +534,27 @@ export default {
json.approvalOpinion = "";
json.prcCreateUser = this.$store.getters.userInfo.userId;
json.prcCreateUserName = this.$store.getters.userInfo.account;
json.prcCreateUser = this.$store.getters.userInfo.userId;
json.prcCreateUserName = this.$store.getters.userInfo.account;
json.standId = this.listForm.standId;
this.$http.get("lawss/activiti/startProcess", { type: "5" }, {
_this: this
}, res => {
if (res.ok) {
this.$http.post("lawss/activiti/completeTask", {
taskIds: res.data,
userId: this.$store.getters.userInfo.userId,
json: JSON.stringify(json)
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message);
this.$router.push("/processCenter");
}
});
}
});
this.$http.get("lawss/activiti/startProcess", { type: "5" }, {
_this: this
}, res => {
if (res.ok) {
this.$http.post("lawss/activiti/completeTask", {
taskIds: res.data,
userId: this.$store.getters.userInfo.userId,
json: JSON.stringify(json)
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message);
this.$router.push("/processCenter");
}
});
}
});
},
//选择拆分标准取消事件
closeDrawer() {
@@ -586,25 +563,25 @@ export default {
//选择拆分标准确定事件
OkDrawer() {
if(this.selectedList.length == 1){
this.listForm.standNumber = this.selectedList[0].standNumber
this.listForm.standName = this.selectedList[0].standName
this.listForm.id = this.selectedList[0].id
this.$http.get('SarStandItems/sar-stand-items/findAllItems',{
if (this.selectedList.length == 1) {
this.listForm.standNumber = this.selectedList[0].standNumber;
this.listForm.standName = this.selectedList[0].standName;
this.listForm.id = this.selectedList[0].id;
this.$http.get("SarStandItems/sar-stand-items/findAllItems", {
ids: this.listForm.id,
type:'FBGBJBD',
type: "FBGBJBD"
}, {
_this:this
_this: this
}, res => {
this.listForm.breakdownList = res.data
this.ListModel = false
this.listForm.breakdownList = res.data;
this.ListModel = false;
}, e => {
this.$message.error('添加失败')
})
}else if(this.selectedList.length > 1){
this.$message.warning('您只能选择一条数据进行带入')
}else{
this.$message.warning('请选择一条数据带入')
this.$message.error("添加失败");
});
} else if (this.selectedList.length > 1) {
this.$message.warning("您只能选择一条数据进行带入");
} else {
this.$message.warning("请选择一条数据带入");
}
},
//选择拆分标准选择框改变
@@ -622,7 +599,8 @@ export default {
selectThree(data) {
this.standList = data;
},
choiceZRR(type, title, id) {
choiceZRR(scope,type, title, id) {
if(scope!=null)this.dsadadadsada=scope.$index;
this.nodeList = [];
this.nodeList.push(id);
this.type = type;
@@ -648,34 +626,35 @@ export default {
},
//获取产品线数据
getProductData() {
this.$http.get('sarStandProjectLibrary/queryProjectManager',{
this.$http.get("sarStandProjectLibrary/queryProjectManager", {
current: this.pageNo,
pageSize: this.pageSizeNo,
},{
pageSize: this.pageSizeNo
}, {
_this: this
}, res => {
this.productData = res.data.records
this.totalNo = res.data.total
console.log(res.data.records);
this.productData = res.data.records;
this.totalNo = res.data.total;
}, e => {
})
});
},
//获取标准数据
getStandData() {
this.$http.get('sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage','',{
this.$http.get("sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage", "", {
_this: this
}, res => {
this. sarAccessListDatas = res.data.list
this.total = res.pageCount
this.sarAccessListDatas = res.data.list;
this.total = res.pageCount;
}, e => {
})
},
});
}
},
computed: {},
mounted() {
this.getTree();
this.getProductData()
this.getStandData()
this.getProductData();
this.getStandData();
}
};
@@ -88,13 +88,8 @@
label="产品线责任人">
</el-table-column>
<el-table-column
prop="ministerUser"
prop="distributePerson"
label="分发责任人">
<!-- <template slot-scope="scope">-->
<!-- <el-input v-model="roleForm.ministerUser" style="display: none;"></el-input>-->
<!-- <el-input v-model="roleForm.ministerUserName" placeholder="选择标准法规工程师"-->
<!-- @click.native="choiceZRR('ministerUser', '选择标准法规工程师', roleForm.ministerUser)"></el-input>-->
<!-- </template>-->
</el-table-column>
</el-table>
</div>
@@ -234,22 +229,44 @@ export default {
total: 0,
pageSize: this.$store.getters.userInfo.configContent,
listForm: {
listType: "", //区分是哪个清单
listName: "", //清单名称
applyRegion: "", //适用区域
descriptionList: "", //清单说明
enclosure: "", //附件
inforlist: "",//用来存放标准的id
passFlag: "1", //1为审批通过 2 为驳回
standNumber: "", //标准编号
standName: "",//标准名称
certifiedEngineer: "", //认证工程师
qualityEngineer: "", //质量工程师
breakdownList: [{
applyArctic: "",
busStandCover: "",
claimType: "",
id: "",
itemsName: "",
itemsNum: "",
responsibleUnit: "",
standId: "",
svpps: ""
}],
dataList: [{
standNumber: "", //标准号
cnName: "", //中文名称
enName: "", //英文名称
isSubTime: "", //发布日期
newCarTime: "", //新车型实施日期
oldCarTime: "", //在产车实施日期
applyCar: "", //适用车型
textState: "", //文本状态
id: ""
projectLine: "", //产品线
uname: "",//产品线责任人
projectManager:"",// 产品线责任人id
distributePerson: "", //分发责任人
distributePersonId: "", //分发责任人id
id: "",
sarStandProjectLibraries: [{
projectManager: '',
projectLevel: '',
projectNumber: '',
projectEndDate: '',
currentNode: '',
projectGroup: '',
productLine: '',
projectClassification: '',
projectStatus: '',
projectStartDate: '',
id: '',
projectName: '',
projectPlatfor: ''
}]
}]
},
choiceForm: {}, //选择标准清单列表
@@ -304,13 +321,14 @@ export default {
this.listForm['id'] = item.id
this.listForm.dataList = item.dataList
this.dataList = item.dataList
this.dataList.distributePerson = item.dataList[0].distributePerson
})
},
//驳回事件
beforeBack () {
this.listForm.approvalOpinion = '1'
this.listForm.passFlag = '2'
this.handleSubmit()
},
//提交事件
@@ -320,8 +338,8 @@ export default {
this.listForm.prcCreateUserName = this.$store.getters.userInfo.account;
this.listForm.zrUserId = this.$store.getters.userInfo.userId ;
this.listForm.commentText = this.commentText;
this.listForm.approvalOpinion = "";
this.listForm.standId = this.listForm.standId;
this.listForm.passFlag = '1';
this.listForm.signFlag = "";
const json = JSON.stringify(this.listForm);
this.$http.post('lawss/activiti/completeTask', {
@@ -366,7 +384,6 @@ export default {
mounted() {
this.processTable()
this.getData()
// console.log(this.$store.getters.getHandleInfo);
}
};
</script>
@@ -58,14 +58,15 @@
<div class="tableTitle">
</div>
<el-table
:data="dataList"
ref="multipleTable"
:data="listForm.breakdownList"
tooltip-effect="dark"
style="width: 100%"
border
ref="selection"
height="49%"
style="width: 100%;"
@selection-change="selectStandChange"
:height="sarProStateTableHeight"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
fontWeight: 'bold', fontFamily: 'MicrosoftYaHei-Bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
@@ -73,45 +74,74 @@
</el-table-column>
<el-table-column
prop="productLine"
label="条款号">
</el-table-column>
<el-table-column
prop="productLine"
align="center"
label="产品线">
</el-table-column>
<el-table-column
prop="productLine"
prop="projectNumber"
align="center"
label="项目编号">
</el-table-column>
<el-table-column
prop="projectName"
align="center"
label="项目名称">
</el-table-column>
<el-table-column
prop="uname"
label="产品线责任人">
prop="itemNum"
align="center"
label="条款号">
</el-table-column>
<el-table-column
prop="ministerUser"
label="分发责任人">
<!-- <template slot-scope="scope">-->
<!-- <el-input v-model="roleForm.ministerUser" style="display: none;"></el-input>-->
<!-- <el-input v-model="roleForm.ministerUserName" placeholder="选择标准法规工程师"-->
<!-- @click.native="choiceZRR('ministerUser', '选择标准法规工程师', roleForm.ministerUser)"></el-input>-->
<!-- </template>-->
prop="itemsName"
align="center"
label="条款名称">
</el-table-column>
<el-table-column
fixed="right"
prop="implementer"
align="center"
label="落实人">
<template slot-scope="scope,text" v-if="showColumn">
<div>
<div @click="choiceZRR(scope,'implementer', '选择落实人', roleForm.implementer)">
{{ listForm.breakdownList[scope.$index].implementer == null ? "请选择落实人" : listForm.breakdownList[scope.$index].implementer }}
</div>
</div>
</template>
</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>
<!-- 选择责任人-->
<el-drawer
:title="drawerTitle"
:visible.sync="modalshowflag"
:wrapperClosable="false"
size="800px">
<el-tree
v-if="modalshowflag"
style="height: 100%; overflow: auto;"
node-key="id"
class="filter-tree"
:data="treeData"
:props="defaultProps"
:default-checked-keys="nodeList"
highlight-current
check-strictly
@check="drawerCheck"
default-expand-all
:expand-on-click-node="false"
show-checkbox
ref="tree">
</el-tree>
<div id="roleFormButton" class="demo-drawer-footer">
<el-button class="common-button-primary" size="mini" icon="el-icon-check" type="primary"
@click="saveUserInfo">
确定
</el-button>
<el-button class="common-button-default" size="mini" icon="el-icon-close" @click="cancleUserInfo">取消
</el-button>
</div>
</el-drawer>
</div>
</div>
@@ -153,7 +183,7 @@
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format('YYYY-MM-DD') : '' }}</span>
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
@@ -161,7 +191,7 @@
label="完成时间"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format('YYYY-MM-DD') : '' }}</span>
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
@@ -169,7 +199,7 @@
label="审批意见"
align="center">
<template slot-scope="scope">
<span>{{scope.row.commentText}}</span>
<span>{{ scope.row.commentText }}</span>
</template>
</el-table-column>
<el-table-column
@@ -177,7 +207,7 @@
label="状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? '已完成' : '未完成'}}</span>
<span>{{ scope.row.endTime ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
@@ -186,12 +216,11 @@
</div>
<ProcessFooter
show-back
show-save
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
:approval="true"
@back="beforeBack"
@save="handleSave"
@submit="handleSubmit"
>
</ProcessFooter>
@@ -213,13 +242,23 @@ export default {
},
data() {
return {
showColumn: true,
drawerTitle: "", //drawer标题
modalshowflag: false, // drawer开关
treeData: [], // 人员数据
nodeList: [],
defaultProps: {
children: "children",
label: "name"
},
detailData: [],
sarProStateTableHeight: null, // 项目列表高度
// 当前流程类型(1待办/2已办)
processType: 1,
loading: false,
dataList: [],//清单里的标准数据
// dataList: [],//清单里的标准数据
active: "1",
userId:this.$store.getters.userInfo.userId,
userId: this.$store.getters.userInfo.userId,
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
listType: "country", //选择的清单类型
@@ -234,24 +273,50 @@ export default {
total: 0,
pageSize: this.$store.getters.userInfo.configContent,
listForm: {
listType: "", //区分是哪个清单
listName: "", //清单名称
applyRegion: "", //适用区域
descriptionList: "", //清单说明
enclosure: "", //附件
inforlist: "",//用来存放标准的id
passFlag: "1", //1为审批通过 2 为驳回
standNumber: "", //标准编号
standName: "",//标准名称
certifiedEngineer: "", //认证工程师
qualityEngineer: "", //质量工程师
breakdownList: [{ //分解单数据
implementer: "",
applyArctic: "",
busStandCover: "",
claimType: "",
id: "",
itemsName: "",
itemsNum: "",
responsibleUnit: "",
standId: "",
svpps: ""
}],
dataList: [{
standNumber: "", //标准号
cnName: "", //中文名称
enName: "", //英文名称
isSubTime: "", //发布日期
newCarTime: "", //新车型实施日期
oldCarTime: "", //在产车实施日期
applyCar: "", //适用车型
textState: "", //文本状态
id: ""
implementer: "",
projectLine: "", //产品线
uname: "",//产品线责任人
distributePerson: "", //分发责任人
distributePersonId: "", //分发责任人id
id: "",
sarStandProjectLibraries: [{
projectManager: "",
projectLevel: "",
projectNumber: "",
projectEndDate: "",
currentNode: "",
projectGroup: "",
productLine: "",
projectClassification: "",
projectStatus: "",
projectStartDate: "",
id: "",
projectName: "",
projectPlatfor: ""
}]
}]
},
roleForm: {
implementer: ""
},
choiceForm: {}, //选择标准清单列表
countryOptions: [], //适用区域下拉框数据
user1: "",
@@ -263,17 +328,18 @@ export default {
};
},
methods: {
processTable () {
this.$http.get('lawss/activiti/get_list_by_instance', {
processTable() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum,
sortWord: this.shunxu ? this.paixu : '',
sortWord: this.shunxu ? this.paixu : "",
shunxu: this.shunxu
}, {
loading: 'loading',
loading: "loading",
_this: this
}, res => {
this.detailData = res
}, e => {})
this.detailData = res;
}, e => {
});
},
//tab发生变化
handleTabs(name) {
@@ -285,60 +351,109 @@ export default {
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
console.log(res.mesg);
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
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
})
getFormFieldList(item) {
this.listForm = JSON.parse(JSON.stringify(item));
this.listForm.prcNum = this.prcNum;
this.listForm.prcName = this.prcName;
this.listForm["id"] = item.id;
this.listForm = JSON.parse(JSON.stringify(item.pepdtos[0]));
this.listForm.breakdownList = [];
for (let i = 0; i < item.pepdtos.length; i++) {
for (let j = 0; j < item.pepdtos[i].breakdownList.length; j++) {
this.listForm.breakdownList.push({
itemsName: item.pepdtos[i].breakdownList[j].itemsName,
itemNum: item.pepdtos[i].breakdownList[j].itemsNum,
productLine: item.pepdtos[i].sarStandProjectLibraries.productLine,
projectNumber: item.pepdtos[i].sarStandProjectLibraries.projectNumber,
projectName: item.pepdtos[i].sarStandProjectLibraries.projectName,
implementer: item.pepdtos[i].breakdownList[j].implementer || null,
distributePerson: item.pepdtos[i].distributePerson,
distributePersonId: item.pepdtos[i].distributePersonId,
uname: item.pepdtos[i].uname,
projectManager: item.pepdtos[i].projectManager
});
}
}
},
saveUserInfo() {
if (this.type === "implementer") {
this.listForm.implementer = this.roleRow.name;
this.listForm.breakdownList[this.dsadadadsada].implementerId = this.roleRow.id;
this.listForm.breakdownList[this.dsadadadsada].implementer = this.roleRow.name;
this.showColumn = false;
this.$nextTick(() => {
this.showColumn = true;
});
}
this.modalshowflag = false;
},
cancleUserInfo() {
this.modalshowflag = false;
},
choiceZRR(scope, type, title, id) {
if (scope != null) this.dsadadadsada = scope.$index;
this.nodeList = [];
this.nodeList.push(id);
this.type = type;
this.drawerTitle = title;
this.modalshowflag = true;
},
getTree() {
this.$http.get("SarInstitution/institution/institutionAndUser", {}, {}, res => {
this.treeData = res.data;
});
},
//驳回事件
beforeBack () {
this.listForm.approvalOpinion = '1'
this.handleSubmit()
//保存事件
handleSave() {
},
//提交事件
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.zrUserId = this.$store.getters.userInfo.userId;
this.listForm.commentText = this.commentText;
this.listForm.approvalOpinion = "";
this.listForm.standId = this.listForm.standId;
this.listForm.signFlag = "";
const json = JSON.stringify(this.listForm);
this.$http.post('lawss/activiti/completeTask', {
const json = JSON.stringify(this.listForm.breakdownList);
this.$http.post("lawss/activiti/completeTask", {
taskIds: this.taskIds,
userId: this.userId,
json: json,
json: json
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message)
this.$router.push('/processCenter')
this.$message.success(res.message);
this.$router.push("/processCenter");
}
}, e => {
});
},
drawerCheck(data) {
var getlist = this.$refs.tree.getCheckedNodes().concat(this.$refs.tree.getHalfCheckedNodes());
if (getlist.length == 1) {
this.roleRow = getlist[0];
} else {
this.$refs.tree.setCheckedKeys([data.id]);
this.roleRow = this.$refs.tree.getCheckedNodes()[0];
}
},
//标准表格选择框改变
selectStandChange(data) {
this.selectList = [];
@@ -359,14 +474,14 @@ export default {
}
},
computed: {
listNoDataText () {
return this.processType === 1 ? '暂无待办流程' : '暂无已办流程'
},
listNoDataText() {
return this.processType === 1 ? "暂无待办流程" : "暂无已办流程";
}
},
mounted() {
this.processTable()
this.getData()
// console.log(this.$store.getters.getHandleInfo);
this.getTree();
this.processTable();
this.getData();
}
};
</script>
@@ -1,13 +1,521 @@
<!--评估流程 - 责任人填写评估反馈 xmpgStep4-->
<template>
<div class="xmpg-step4">
<ProcessHeader toggle>
<template slot="proName">项目合规评估流程</template>
<template slot="proNode">分发责任人分发任务</template>
</ProcessHeader>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
</div>
<div class="content" v-if="active == '1'">
<div style="flex: auto; 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="standNumber" class="add-form-item form-item-disabled">
<el-input
v-model="listForm.standNumber"
placeholder="请输入标准编号"
clearable
></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="请输入标准名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="认证工程师" prop="certifiedEngineer" class="add-form-item form-item-disabled">
<el-input
v-model="listForm.certifiedEngineer"
placeholder="请选择认证工程师"
clearable
></el-input>
</el-form-item>
<el-form-item label="质量工程师" prop="qualityEngineer" class="add-form-item form-item-disabled">
<el-input
v-model="listForm.qualityEngineer"
placeholder="请选择质量工程师"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<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="sarProStateTableHeight"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', fontFamily: 'MicrosoftYaHei-Bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="productLine"
align="center"
label="产品线">
</el-table-column>
<el-table-column
prop="projectNumber"
align="center"
label="项目编号">
</el-table-column>
<el-table-column
prop="projectName"
align="center"
label="项目名称">
</el-table-column>
<el-table-column
prop="itemNum"
align="center"
label="条款号">
</el-table-column>
<el-table-column
prop="itemsName"
align="center"
label="条款名称">
</el-table-column>
<el-table-column
prop="productType"
width="450"
align="center"
label="在研产品">
<el-table-column
prop="researchImplementationTime"
align="center"
label="实施时间">
</el-table-column>
<el-table-column
prop="researchCompliance"
align="center"
label="合规">
</el-table-column>
<el-table-column
align="center"
prop="researchNonCompliance"
label="不合规">
<el-table-column
prop="researchNonCompliance"
align="center"
label="不合规项目">
</el-table-column>
<el-table-column
prop="researchCountermeasures"
align="center"
label="应对措施">
</el-table-column>
<el-table-column
prop="researchCompletionTime"
align="center"
label="完成时间">
</el-table-column>
</el-table-column>
</el-table-column>
<el-table-column
align="center"
width="450"
label="在产产品">
<el-table-column
prop="productionImplementationTime"
align="center"
label="实施时间">
</el-table-column>
<el-table-column
prop="productionCompliance"
align="center"
label="合规(具体情况)">
</el-table-column>
<el-table-column
align="center"
label="不合规">
<el-table-column
prop="productionCountermeasures"
align="center"
label="应对措施">
</el-table-column>
<el-table-column
prop="productionCompletionTime"
align="center"
label="完成时间">
</el-table-column>
</el-table-column>
</el-table-column>
<el-table-column
fixed="right"
align="center"
width="150"
prop="implementer"
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-if="active === '3'">
<div class="flow-list">
<el-table
height="100%"
ref="selection"
:data="detailData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:no-data-text="listNoDataText"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="name"
label="任务步骤"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column>
<el-table-column
prop="comment"
label="审批意见"
align="center">
<template slot-scope="scope">
<span>{{scope.row.commentText}}</span>
</template>
</el-table-column>
<el-table-column
prop="completeFlag"
label="状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? '已完成' : '未完成'}}</span>
</template>
</el-table-column>
</el-table>
<loading :loading="loading">流程列表加载中</loading>
</div>
</div>
<ProcessFooter
show-save
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
>
</ProcessFooter>
</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: "xmpgStep4"
name: "xmpgStep4",
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
data() {
return {
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: {
listType: "", //区分是哪个清单
listName: "", //清单名称
applyRegion: "", //适用区域
descriptionList: "", //清单说明
enclosure: "", //附件
inforlist: "",//用来存放标准的id
dataList: [{
standNumber: "", //标准号
cnName: "", //中文名称
enName: "", //英文名称
isSubTime: "", //发布日期
newCarTime: "", //新车型实施日期
oldCarTime: "", //在产车实施日期
applyCar: "", //适用车型
textState: "", //文本状态
id: ""
}]
},
choiceForm: {}, //选择标准清单列表
countryOptions: [], //适用区域下拉框数据
user1: "",
user2: "",
user3: "",
user4: "",
user5: "",
standMap: new Map()
};
},
methods: {
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;
},
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
})
},
//保存事件
handleSave () {
},
//提交事件
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.approvalOpinion = "";
this.listForm.standId = this.listForm.standId;
this.listForm.signFlag = "";
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')
}
}, 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()
// console.log(this.$store.getters.getHandleInfo);
}
};
</script>
<style scoped>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.xmpg-step4 {
/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;
}
}
</style>
@@ -399,9 +399,20 @@ export default {
break
//项目合规评估流程
case '5' :
if(row.taskInfo === ''){
if(row.taskInfo === '标准法规部业务经理审批'){
this.$router.push({
name: '',
name: 'xmpgStep2',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}else if(row.taskInfo === '标准评估任务下发'){
this.$router.push({
name: 'xmpgStep3',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
@@ -61,7 +61,7 @@
:loading="delLoading"
size="mini"
@click="deleteSarAccess('demore',null)"
v-btn-permission="'a43a8f88306ecf557ee243c013076bc4'"
v-btn-permission="'562e58cc3a960096cf3321e631293dc9'"
><i class="iconfont">&#xe61b;</i>批量删除
</el-button>
</div>
@@ -22,6 +22,7 @@
type="primary"
class="common-button-primary"
size="small"
v-btn-permission="'688151df30bbff4cd2ecdc436addfd3f'"
@click="searchSarAccess">
查询
</el-button>
@@ -30,6 +31,7 @@
<el-button
class="common-button-default"
size="small"
v-btn-permission="'65ca2741907ba7a689c41f3d26684b4b'"
@click="clearSearch">清空
</el-button>
</el-form-item>
@@ -42,7 +44,7 @@
class="common-button-primary add-button"
size="mini"
@click="openModal(null,'addOpt')"
v-btn-permission="''"
v-btn-permission="'389d3690eeea9d3808bdff4d02dddbd8'"
><i class="iconfont">&#xe84e;</i>新增
</el-button>
<el-button
@@ -50,7 +52,7 @@
:loading="delLoading"
size="mini"
@click="deleteSarAccess('demore',null)"
v-btn-permission="'e8ce15aba7bf8108c41d8d06c75c58eb'"
v-btn-permission="'0982c83299f3eb996317b014bb6aaff2'"
><i class="iconfont">&#xe61b;</i>批量删除
</el-button>
</div>
@@ -136,11 +138,11 @@
<el-dropdown trigger="click" @command="handleCommand">
<i class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="[scope.row, '查看']" v-btn-permission="'9cf958c09b0cf3d14cc33807c2c18951'">查看
<el-dropdown-item :command="[scope.row, '查看']" v-btn-permission="'30bfbe928d7ee6e6bcef9408b762bc97'">查看
</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '编辑']" v-btn-permission="'8f57e60942d8c307a9c3d566df64e57b'">编辑
<el-dropdown-item :command="[scope.row, '编辑']" v-btn-permission="'69ebe6847ad7bf7e90bae8025080678c'">编辑
</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '删除']" v-btn-permission="'1bde7a8d30bfb0ffc0fc8aa506b55bd2'">删除
<el-dropdown-item :command="[scope.row, '删除']" v-btn-permission="'adec3450d97917a4ffa803d40a46dba9'">删除
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
@@ -231,7 +231,7 @@
取消收藏
</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '编辑']" v-btn-permission="'247cebaefa7cf1683092af160af11502'">编辑</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '分享']" v-btn-permission="'ce4ec1bb233314d2ad8740d0aa98aca1'">分享</el-dropdown-item>
<!-- <el-dropdown-item :command="[scope.row, '分享']" v-btn-permission="'ce4ec1bb233314d2ad8740d0aa98aca1'">分享</el-dropdown-item>-->
<el-dropdown-item :command="[scope.row, '删除']" v-btn-permission="'dbaf9df2990a595c8abea28e68b1a681'">删除</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
@@ -71,7 +71,7 @@
class="common-button-primary"
type="primary"
size="mini"
v-btn-permission="'13dc790d5438d2fa93a03eabf641318'"
v-btn-permission="'620e6da5808bf104e576c763546a33b6'"
title="不勾选时默认导出所有筛选项;勾选时仅导出勾选项"
><i class="iconfont">&#xe6e9;</i>导出</el-button>
<el-button
+1 -1
View File
@@ -7,7 +7,7 @@
// const devIp = '39.98.140.126'
// const devInterfacePORT = '10005'
// const devIp = '192.168.10.248'
const devIp = '192.168.10.248'
const devIp = '192.168.10.250'
const devInterfacePORT = '9999'
// 云端端口号
const DEV_CLOUD_RES_INTERFACE_PORT = '7777'