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

This commit is contained in:
super_liu
2022-01-28 23:16:56 +08:00
15 changed files with 410 additions and 121 deletions
@@ -3,7 +3,7 @@
<div class="xmpg-step1">
<ProcessHeader toggle>
<template slot="proName">标准合规评估流程</template>
<template slot="proNode">发起流程</template>
<template slot="proNode">起草</template>
</ProcessHeader>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
@@ -194,7 +194,7 @@
:model="roleForm"
:rules="roleFormRules"
class="label-input-form">
<el-timeline-item timestamp="发起流程" placement="top" :color="roleForm.startUser ? '#66b1ff' : ''">
<el-timeline-item timestamp="起草" placement="top" :color="roleForm.startUser ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="startUserName" style="margin-bottom: 0">
<h4>标准法规工程师</h4>
@@ -218,7 +218,7 @@
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="标准法规部领导审批" placement="top" :color="roleForm.directorUser ? '#66b1ff' : ''">
<el-timeline-item timestamp="批" placement="top" :color="roleForm.directorUser ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="ministerUserName" style="margin-bottom: 0">
<h4>标准法规部领导</h4>
@@ -495,7 +495,7 @@
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { queryTaskFirst, saveTaskFirst, taskDel } from "api/process";
import { inboundLiaisonDetail, queryTaskFirst, saveTaskFirst, taskDel } from "api/process";
export default {
name: "bzpgStep1",
@@ -506,6 +506,7 @@ export default {
},
data() {
return {
submitFlag: '',
managementHostName: [], //管理主体名称下拉框
developmentHostName: [], //开发主体名称下拉框
categoryName: [], //项目细分类下拉框
@@ -642,6 +643,40 @@ export default {
};
},
methods: {
getHistoryData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
}).catch(e => {
})
})
},
/**
* @description: 动态表单读取
*/
getFormFieldList (item) {
console.log(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.roleForm.dockUser = item.dockUser
this.roleForm.dockUserName = item.dockUserName
this.roleForm.ministerUser = item.ministerUser
this.roleForm.ministerUserName = item.ministerUserName
this.submitFlag = '修改节点'
this.dataList.distributePerson = item.dataList[0].distributePerson
})
},
//折叠/展开基础信息方法
foldForm() {
this.foldFormFlag = !this.foldFormFlag;
@@ -808,75 +843,118 @@ export default {
this.saveLoading = false;
});
},
//提交事件
handleSubmit() {
if(!this.dataList.length){
this.$message.warning('请添加项目群信息')
}else{
this.dataList.forEach(item => {
if(!item.distributePerson || !item.projectGroupPeople){
this.$message.warning('请填写完整的人员信息')
}else {
this.isSubmit = true;
this.listForm.dataList = this.dataList;
this.listForm.commentText = this.commentText;
let json = Object.assign(this.listForm, this.roleForm);
console.log(json);
this.$refs["listForm"].validate((valid) => {
if (valid) {
this.$refs["roleForm"].validate((valid) => {
if (valid) {
this.$http.post("lawss/activiti/startProcessRollBack", {
createUser: this.$store.getters.userInfo.userId,
createUserName: this.$store.getters.userInfo.userName,
type: "5",
json: JSON.stringify({
taskInfo: "选择已拆分标准",
form: this.listForm,
roleForm: this.roleForm,
commentText: this.commentText
})
}, {
_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);
if (this.bpnId !== '') {
let taskId = {
id: this.bpnId
}
taskDel(taskId).then(res=>{
return res
})
}
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
}
});
} else {
this.isSubmit = false;
return this.$message.warning("请完善人员信息");
}
});
} else {
this.isSubmit = false;
return this.$message.warning("请完善基础信息");
}
});
}
})
}
//提交事件
handleSubmit(){
let peopleFlag = true
if(!this.dataList.length){
this.$message.warning('请添加项目群信息')
}else{
this.dataList.forEach(item => {
if(!item.distributePerson || !item.projectGroupPeople){
peopleFlag = false
return
}
})
if(peopleFlag){
this.isSubmit = true;
this.listForm.dataList = this.dataList;
this.listForm.commentText = this.commentText;
let json = Object.assign(this.listForm, this.roleForm);
if(!this.submitFlag){
this.$refs["listForm"].validate((valid) => {
if (valid) {
this.$refs["roleForm"].validate((valid) => {
if (valid) {
this.$http.post("lawss/activiti/startProcessRollBack", {
createUser: this.$store.getters.userInfo.userId,
createUserName: this.$store.getters.userInfo.userName,
type: "5",
json: JSON.stringify({
taskInfo: "选择已拆分标准",
form: this.listForm,
roleForm: this.roleForm,
commentText: this.commentText
})
}, {
_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);
if (this.bpnId !== '') {
let taskId = {
id: this.bpnId
}
taskDel(taskId).then(res=>{
return res
})
}
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
}
});
} else {
this.isSubmit = false;
return this.$message.warning("请完善人员信息");
}
});
} else {
this.isSubmit = false;
return this.$message.warning("请完善基础信息");
}
});
}else{
this.$refs["listForm"].validate((valid) => {
if (valid) {
this.$refs["roleForm"].validate((valid) => {
if (valid) {
this.$http.post("lawss/activiti/completeTask", {
taskIds: this.$route.query.taskIds,
userId: this.$store.getters.userInfo.userId,
json: JSON.stringify(json),
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message);
if (this.bpnId !== '') {
let taskId = {
id: this.bpnId
}
taskDel(taskId).then(res=>{
return res
})
}
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
this.isSubmit = false;
return this.$message.warning("请完善人员信息");
}
});
} else {
this.isSubmit = false;
return this.$message.warning("请完善基础信息");
}
});
}
}else{
this.$message.warning('请完善人员信息')
}
}
},
//选择拆分标准取消事件
closeDrawer() {
@@ -1056,6 +1134,9 @@ export default {
if (this.bpnId !== undefined) {
this.getData()
}
if(this.$route.query.taskIds){
this.getHistoryData()
}
this.getStandData();
/**
* 获取项目群筛选项的值
@@ -3,7 +3,7 @@
<div class="bzpg-step2">
<ProcessHeader toggle>
<template slot="proName">标准合规评估流程</template>
<template slot="proNode">业务经理审批流程</template>
<template slot="proNode">审核</template>
</ProcessHeader>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
@@ -3,7 +3,7 @@
<div class="bzpg-step3">
<ProcessHeader toggle>
<template slot="proName">标准合规评估流程</template>
<template slot="proNode">分发人分发项目</template>
<template slot="proNode">项目分发</template>
</ProcessHeader>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
@@ -3,7 +3,7 @@
<div class="bzpg-step4">
<ProcessHeader toggle>
<template slot="proName">标准合规评估流程</template>
<template slot="proNode">项目经理分发标准</template>
<template slot="proNode">任务分发</template>
</ProcessHeader>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
@@ -3,7 +3,7 @@
<div class="bzpg-step5">
<ProcessHeader toggle>
<template slot="proName">标准合规评估流程</template>
<template slot="proNode">责任人评估</template>
<template slot="proNode">合规评估</template>
</ProcessHeader>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
@@ -3,7 +3,7 @@
<div class="bzpg-step6">
<ProcessHeader toggle>
<template slot="proName">标准合规评估流程</template>
<template slot="proNode">项目经理审核</template>
<template slot="proNode">审核</template>
</ProcessHeader>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
@@ -3,7 +3,7 @@
<div class="bzpg-step7">
<ProcessHeader toggle>
<template slot="proName">标准合规评估流程</template>
<template slot="proNode">项目负责人审核</template>
<template slot="proNode">审定</template>
</ProcessHeader>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
@@ -3,7 +3,7 @@
<div class="bzpg-step8">
<ProcessHeader toggle>
<template slot="proName">标准合规评估流程</template>
<template slot="proNode">标准法规部部长审</template>
<template slot="proNode"></template>
</ProcessHeader>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
@@ -3,7 +3,7 @@
<div class="bzpg-step8">
<ProcessHeader toggle>
<template slot="proName">标准合规评估流程</template>
<template slot="proNode">标准法规部部长审</template>
<template slot="proNode"></template>
</ProcessHeader>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
@@ -0,0 +1,168 @@
<template>
<div class="ZQYJAddFileDetails">
<div class="left">
<iframe name = "iframeMap" id="iframeMapViewComponent" v-bind:src="'/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + $route.query.attId)"
width="100%" height="100%"
frameborder="0" scrolling="no" ref="iframeDom"
></iframe>
</div>
<div class="rightDiv">
<div class="height">
新增意见
</div>
<div class="search-area">
<el-form style="width: 100%;" :model="opinionContent" ref="formAdd" :rules="opinionContentRules" class="label-input-form">
<el-form-item label="章节编号" label-width="" prop="partCode" class="add-form-item">
<el-select filterable v-model="opinionContent.partCode" placeholder="请选择条款章节" @change="optionsChange">
<el-option
v-for="(item,index) in options"
:key="index"
:label="item.itemsNum"
:value="item.itemsNum"></el-option>
</el-select>
</el-form-item>
<el-form-item label="章节名称" prop="chapterName" label-width="" class="add-form-item">
<el-input v-model="opinionContent.chapterName" autocomplete="off" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="修改前" label-width="" class="add-form-item">
<div v-html="opinionContent.oldText" style="margin: 56px 0 0 10px;"></div>
</el-form-item>
<el-form-item label="修改后" prop="newText" label-width="" class="add-form-item">
<el-input v-model="opinionContent.newText" autocomplete="off" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="修改理由" prop="reason" label-width="" class="add-form-item">
<el-input v-model="opinionContent.reason" autocomplete="off" placeholder="请输入修改理由"></el-input>
</el-form-item>
<!-- <el-form-item label="原因" prop="cause" label-width="" class="add-form-item">-->
<!-- <el-input v-model="opinionContent.cause" autocomplete="off" placeholder="请输入原因"></el-input>-->
<!-- </el-form-item>-->
</el-form>
</div>
<div class="demo-drawer-footer">
<el-button :loading="isSubmit" size="mini" class="common-button-primary" icon="el-icon-check" type="primary" @click="saveUserInfo">
提交
</el-button>
</div>
</div>
</div>
</template>
<script>
export default {
name: "ZQYJAddFileDetails",
data () {
return {
options: [],
opinionContent: { // 抽屉数据
partCode: '',
oldText: '',
newText: '',
reason: '',
chapterName: '',
// cause: '',
},
opinionContentRules: {
partCode: [
{required: true, message: '请输入章节编号', trigger: 'blur'},
],
oldText: [
{required: true, message: '请输入修改前内容', trigger: 'blur'}
],
newText: [
{required: true, message: '请输入修改后内容', trigger: 'blur'}
],
reason: [
{required: true, message: '请输入修改理由', trigger: 'blur'}
],
},
isSubmit: false,
}
},
methods: {
saveUserInfo () {
this.$refs['formAdd'].validate((valid) => {
if (valid) {
var id = Number(Math.random().toString().substr(3, 3) + Date.now()).toString(36);
var form = {
id: id,
oldText: this.opinionContent.oldText,
newText: this.opinionContent.newText,
reason: this.opinionContent.reason,
chapterNumber: this.opinionContent.partCode,
chapterName: this.opinionContent.chapterName,
}
this.$store.commit('SET_REFRESH_FLAG', true)
localStorage.setItem('bzzqyjForm', JSON.stringify(form))
localStorage.setItem('freshClueNum', new Date().getTime())
this.opinionContent.partCode = ''
this.opinionContent.reason = ''
this.opinionContent.oldText = ''
this.opinionContent.newText = ''
this.opinionContent.chapterName = ''
}
})
},
optionsChange (data) {
for (let a = 0; a < this.options.length; a++) {
if (data === this.options[a].itemsNum) {
this.opinionContent.oldText = this.options[a].termsConditions
this.opinionContent.chapterName = this.options[a].itemsName
}
}
},
},
mounted() {
this.$http.get('SarStandItems/sar-stand-items/querySarItemAndInterpretation', {
standId: this.$route.query.standId,
fileType: this.$route.query.fileType,
pageSize: 9999,
page: 1
}, {}, res => {
if (res.ok) {
this.options = res.data.list
}
}, e => {
})
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/mixins';
@import '~@/assets/styles/style';
.ZQYJAddFileDetails {
height: 100%;
display: flex;
.left {
width: 60%;
height: 100%;
}
.rightDiv {
background: #fff;
width: 40%;
height: 100%;
.height {
margin-bottom: 0;
padding: 10px 20px;
font-size: 18px;
font-weight: bold;
color: #333333;
border-bottom: 1px solid #e5e5e5;
}
.search-area {
height: calc(~'100% - 90px');
overflow: auto;
}
.demo-drawer-footer {
width: 100%;
padding: 0 20px;
height: 50px;
line-height: 50px;
border-top: 1px solid #e8e8e8;
text-align: right;
background: #fff;
z-index: 999;
}
}
}
</style>
@@ -336,6 +336,7 @@
name: "bzzqyjStep3",
data() {
return {
standId: '',
modaltitle2: '',
addType: '',
onlyKey: '',
@@ -464,22 +465,16 @@
}
},
addModal() {
var id = Number(Math.random().toString().substr(3, 3) + Date.now()).toString(36);
this.itemId = id
this.editForm = {
chapterNumber: '',
chapterName: '',
oldText: '',
newText: '',
reason: '',
id: id,
department: this.$store.getters.userInfo.institutionName,
responUserName: this.$store.getters.userInfo.userName,
responUser: this.$store.getters.userInfo.userId
}
this.addType = 'add'
this.modaltitle2 = '新增'
this.modalshowflag2 = true
localStorage.setItem('freshClueNum', new Date().getTime())
let routeData = this.$router.resolve({
name: "ZQYJAddFileDetails",
query: {
standId: this.standId,
attId: this.form.fjList[0].attId,
fileType: this.form.fjList[0].standFileClassify,
}
});
window.open(routeData.href, '_blank')
},
itemEdit (row) {
this.addType = 'edit'
@@ -712,6 +707,7 @@
this.todoId = res.id
this.json = data
this.onlyKey = data.form ? data.form.onlyKey : data.onlyKey
this.standId = data.standId
this.getItemList(data.standId,data.textType)
this.data = data.form ? data.form.data : (data.data ? data.data : (data.info ? data.info : []))
}).catch(e => {
@@ -720,9 +716,18 @@
},
},
mounted() {
window.addEventListener("storage", ev => {
if(ev.key === 'freshClueNum'){
let form = JSON.parse(window.localStorage.getItem('bzzqyjForm'))
form.department = this.$store.getters.userInfo.institutionName
form.responUserName = this.$store.getters.userInfo.userName
form.responUser = this.$store.getters.userInfo.userId
this.data.push(form)
}
})
this.getHistoryData()
this.getData()
}
},
}
</script>
@@ -346,6 +346,7 @@ export default {
name: "bzzqyjStep4",
data() {
return {
standId: '',
modaltitle2: '',
addType: '',
commentText4: '',
@@ -505,22 +506,32 @@ export default {
}
},
addModal() {
var id = Number(Math.random().toString().substr(3, 3) + Date.now()).toString(36);
this.itemId = id
this.editForm = {
chapterNumber: '',
chapterName: '',
oldText: '',
newText: '',
reason: '',
id: id,
department: this.$store.getters.userInfo.institutionName,
responUserName: this.$store.getters.userInfo.userName,
responUser: this.$store.getters.userInfo.userId
}
this.addType = 'add'
this.modaltitle2 = '新增'
this.modalshowflag2 = true
localStorage.setItem('freshClueNum', new Date().getTime())
let routeData = this.$router.resolve({
name: "ZQYJAddFileDetails",
query: {
standId: this.standId,
attId: this.form.fjList[0].attId,
fileType: this.form.fjList[0].standFileClassify,
}
});
window.open(routeData.href, '_blank')
// var id = Number(Math.random().toString().substr(3, 3) + Date.now()).toString(36);
// this.itemId = id
// this.editForm = {
// chapterNumber: '',
// chapterName: '',
// oldText: '',
// newText: '',
// reason: '',
// id: id,
// department: this.$store.getters.userInfo.institutionName,
// responUserName: this.$store.getters.userInfo.userName,
// responUser: this.$store.getters.userInfo.userId
// }
// this.addType = 'add'
// this.modaltitle2 = '新增'
// this.modalshowflag2 = true
},
itemEdit (row) {
this.addType = 'edit'
@@ -673,6 +684,7 @@ export default {
this.form.spId = data.spId || ''
this.form.spName = data.spName || ''
this.json = data
this.standId = data.standId
this.getItemList(data.standId,data.textType)
this.data = data.info || data.data
}).catch(e => {
@@ -683,6 +695,15 @@ export default {
mounted() {
this.getHistoryData()
this.getData()
window.addEventListener("storage", ev => {
if(ev.key === 'freshClueNum'){
let form = JSON.parse(window.localStorage.getItem('bzzqyjForm'))
form.department = this.$store.getters.userInfo.institutionName
form.responUserName = this.$store.getters.userInfo.userName
form.responUser = this.$store.getters.userInfo.userId
this.data.push(form)
}
})
}
}
</script>
@@ -977,6 +977,17 @@ export default {
prcType: row.prcType
}
})
}else if(row.taskInfo === '整改节点'){
this.$router.push({
name: 'bzpgStep1',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
break
//项目评估流程-项目
@@ -452,14 +452,6 @@
}
});
window.open(routeData.href, '_blank')
// return
// this.id = ''
// this.opiniontitle = '新增意见'
// this.opinionContent.partCode = ''
// this.opinionContent.reason = ''
// this.opinionContent.oldText = ''
// this.opinionContent.newText = ''
// this.opinionContent.cause = ''
}
},
//删除
+11
View File
@@ -1363,6 +1363,17 @@ const routes = [
title: '标准调研流程'
}
},
{
path: '/ZQYJAddFileDetails',
name: 'ZQYJAddFileDetails',
component: () => import('@/pages/processCenter/pages/creatProcess/bzzqyj/ZQYJAddFileDetails.vue'),
meta: {
requireAuth: true,
title: '新增',
isBoolean: true,
// menuId: ''
}
},
{
path: '/bzzqyjStep1',
name: 'bzzqyjStep1',