This commit is contained in:
宋伟佳
2021-08-02 14:01:53 +08:00
7 changed files with 736 additions and 241 deletions
@@ -6,7 +6,7 @@
</ProcessHeader>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
<div class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">流程信息</div>
<div class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">人员信息</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
@@ -22,33 +22,39 @@
<el-table
:data="dataList"
border
ref="entryTable"
height="49%"
@selection-change="selectedDelete"
style="width: 100%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column prop="standId" label="标准号/标准名称"/>
<el-table-column prop="productName" label="项目名称"/>
<el-table-column prop="itemsNum" label="条款号"/>
<el-table-column prop="itemsName" label="条款名称"/>
<el-table-column prop="planCloseTime" label="整改完成时间"/>
<el-table-column prop="responsibleUnit" label="责任部门"/>
<el-table-column prop="dutyEngineer" label="责任工程师"/>
<el-table-column prop="standName" label="标准号/标准名称" align="center"/>
<el-table-column prop="productName" label="项目名称" align="center" show-overflow-tooltip/>
<el-table-column prop="itemsNum" label="条款号" align="center"/>
<el-table-column prop="itemsName" label="条款名称" align="center"/>
<el-table-column prop="planCloseTime" label="整改完成时间" align="center">
<template slot-scope="scope">
<span>{{ scope.row.planCloseTime ? $moment(scope.row.planCloseTime).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column>
<el-table-column prop="responsibleUnit" label="责任部门" align="center"/>
<el-table-column prop="dutyEngineer" label="责任工程师" align="center"/>
</el-table>
</div>
<el-collapse accordion>
<el-collapse-item title="意见填写">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="textarea">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
<!-- <el-collapse accordion>-->
<!-- <el-collapse-item title="意见填写">-->
<!-- <div style="margin: 10px 0;">-->
<!-- <el-input-->
<!-- type="textarea"-->
<!-- :rows="3"-->
<!-- resize="none"-->
<!-- placeholder="请输入意见"-->
<!-- v-model="textarea">-->
<!-- </el-input>-->
<!-- </div>-->
<!-- </el-collapse-item>-->
<!-- </el-collapse>-->
</div>
<div class="content" v-show="active === '2'">
<div class="block" style="padding-top: 20px;">
@@ -110,32 +116,20 @@
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="责任部门" class="search-item">
<el-input v-model="queryUnqualidiedData.responsibleUnit" v-show="false" />
<el-popover
placement="bottom"
popper-class="user-dept-popper"
trigger="click"
:value="false"
<el-select
class="showBox"
v-model="queryUnqualidiedData.responsibleUnit"
placeholder="请选择"
filterable
size="small"
>
<el-input
slot="reference"
v-model="queryUnqualidiedData.responseUnitShow"
placeholder="根据责任部门查找"
readonly
clearable
id="searchResp"
<el-option
v-for="item in zrbmOptions"
:value="item.value"
:key="item.value"
:label="item.label"
/>
<div class="api">
<laws-tree
:zNodes="zNodesSItem"
treeDivId="zNodesSItemSearch"
deptSelect
showRMenu
@treeDblClick="(treeId, treeNode) => treeClickSearch(treeId, treeNode)"
class="ztree" style="width: 200px;height: 400px;overflow: auto">
</laws-tree>
</div>
</el-popover>
</el-select>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
@@ -160,6 +154,7 @@
</div>
</div>
<el-table
ref="searchTable"
:data="unqualidiedData"
tooltip-effect="dark"
style="width: 100%"
@@ -206,9 +201,8 @@
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {interfaceUrl} from "@/sysConfig";
import { startProcess, completeTask } from '@/api/process.js'
import { standUnqualified } from '@/api/unqualProcess.js'
import { startProcess, completeTask, saveTaskFirst } from '@/api/process.js'
import { standUnqualified, dicTypeData } from '@/api/unqualProcess.js'
export default {
name: "wfhxzgStep1",
data() {
@@ -219,22 +213,9 @@ export default {
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
dataList: [{
standId: '',
productName: '',
itemsNum: '',
itemsName: '',
planCloseTime: '',
responsibleUnit: '',
dutyEngineer: '',
dutyPeopleInfo: '',
dutyPeople: '',
fileText: '',
fileTextId: '',
fileTextPath: ''
}],
dataList: [],
// 责任部门
zNodesSItem: [],
zrbmOptions: [],
standModel: false,
// 查询未符合项整改数据库数据
queryUnqualidiedData: {
@@ -246,22 +227,7 @@ export default {
productName: '', // 项目名称
responsibleUnit: '' // 责任部门
},
unqualidiedData: [{
standId: '',
productName: '',
itemsNum: '',
itemsName: '',
planCloseTime: '',
responsibleUnit: '',
dutyEngineer: '',
dutyPeopleInfo: '',
dutyPeopleInfoId: '',
dutyPeople: '',
dutyPeopleId: '',
fileText: '',
fileTextId: '',
fileTextPath: ''
}],
unqualidiedData: [],
selectedList: [], //未整改项的选择框
roleForm: {
startUserName: this.$store.getters.userInfo.userName,
@@ -291,9 +257,14 @@ export default {
methods: {
//点击新增事件
addList() {
dicTypeData().then(res => {
this.zrbmOptions = res.data.ZRBMCLASS // 责任部门
})
standUnqualified(this.queryUnqualidiedData).then(res => {
this.unqualidiedData = res.data.records
this.unqualidiedData.forEach(item => {
this.$set(item,'engineer','')
this.$set(item,'engineerId','')
this.$set(item,'dutyPeopleInfo','')
this.$set(item,'dutyPeople','')
this.$set(item,'dutyPeopleInfoId','')
@@ -306,10 +277,13 @@ export default {
})
this.standModel = true;
},
// 批量删除按钮table,选择数据
selectedDelete(val) {
this.deleteDataList = val
},
// 点击批量删除事件
deleteList() {
if (this.selectedList.length < 1) {
if (this.deleteDataList.length < 1) {
this.$message.warning("请选择一条数据进行删除");
} else {
this.$confirm("您确认删除这些数据?", "提示", {
@@ -319,7 +293,7 @@ export default {
type: "warning"
}).then(() => {
let exits = [];
this.selectedList.map(item => {
this.deleteDataList.map(item => {
let index;
index = this.dataList.findIndex(items => {
return items.id = item;
@@ -329,19 +303,37 @@ export default {
}
exits.push(item);
});
this.selectedList = [];
this.deleteDataList = [];
}).catch(() => {
});
}
},
//选择标准取消事件
closeDrawer() {
this.ListModel = false;
this.standModel = false
},
//未符合项整合确定事件
OkDrawer() {
if (this.selectedList.length !== 0) {
this.dataList = this.selectedList
// this.dataList = this.selectedList
// 追加字段
this.selectedList.map(item => {
let addList;
addList = this.dataList.findIndex(items => {
return items.id == item.id
})
if(addList > -1){
// this.$refs.accessTypeSelect.clearSelection()
this.$refs.entryTable.clearSelection()
this.$refs.searchTable.clearSelection()
this.$message.warning('请勿添加重复数据')
} else{
this.dataList.push(item)
// this.$refs.accessTypeSelect.clearSelection()
this.$refs.entryTable.clearSelection()
this.$refs.searchTable.clearSelection()
}
})
this.standModel = false;
} else {
this.$message.warning("请选择至少一条数据进行带入");
@@ -356,11 +348,31 @@ export default {
},
// 保存按钮
handleSave() {},
handleSave() {
this.saveLoading = true
let _formData = new FormData()
_formData.append('id', this.bpnId || '')
_formData.append('createUser', this.$store.getters.userInfo.userId)
_formData.append('createUserName', this.$store.getters.userInfo.userName)
_formData.append('prcType', '8')
_formData.append('json', JSON.stringify({
roleForm: this.roleForm,
dataList: this.dataList,
commentText: this.commentText
}))
saveTaskFirst(_formData).then(res => {
this.saveLoading = false
this.$message.success('保存成功')
this.bpnId = res.result
}).catch(e => {
this.saveLoading = false
})
},
// 提交按钮
handleSubmit() {
let json = {
startUser: this.$store.getters.userInfo.userId,
prcCreateUser: this.$store.getters.userInfo.userId,
prcCreateUserName: this.$store.getters.userInfo.userName,
engineer: this.roleForm.dockUser,
standardInfoList: this.dataList,
}
@@ -372,10 +384,12 @@ export default {
} else {
this.$refs['roleForm'].validate((valid) => {
if (valid) {
this.isSubmit = true
const paramsInfo = {
type: '8'
}
startProcess(paramsInfo).then(res => {
console.log(res)
this.taskID = res.data
const params = new FormData();
params.set('json', JSON.stringify(json))
@@ -386,6 +400,7 @@ export default {
this.$message.success('提交成功')
this.$router.push("/processCenter");
}
this.isSubmit = false
})
})
}
@@ -402,6 +417,10 @@ export default {
this.modalshowflag = true
},
drawerCheck (data) {
this.unqualidiedData.forEach(item => {
item.engineer = data[0].name
item.engineerId = data[0].id
})
this.roleForm.dockUser = data[0].id
this.roleForm.dockUserName = data[0].name
this.modalshowflag = false
@@ -6,8 +6,9 @@
</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 class="content" v-show="active === '1'">
<div style="flex: auto;">
<ProcessTitle>
<template slot="title">基础信息</template>
@@ -83,7 +84,7 @@
size="small"
type="primary"
@click="dutyEngineerList">
批量分发负责人
批量选择分发负责人
</el-button>
</div>
<el-table
@@ -96,24 +97,25 @@
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column prop="standId" label="标准号/标准名称"/>
<el-table-column prop="productName" label="项目名称"/>
<el-table-column prop="itemsNum" label="条款号"/>
<el-table-column prop="itemsName" label="条款名称"/>
<el-table-column prop="planCloseTime" label="整改完成时间"/>
<el-table-column prop="responsibleUnit" label="责任部门"/>
<el-table-column prop="dutyEngineer" label="责任工程师"/>
<el-table-column label="选择分发责任人" prop="dutyPeopleInfo">
<el-table-column prop="standId" label="标准号/标准名称" align="center"/>
<el-table-column prop="productName" label="项目名称" align="center" show-overflow-tooltip/>
<el-table-column prop="itemsNum" label="条款号" align="center"/>
<el-table-column prop="itemsName" label="条款名称" align="center"/>
<el-table-column prop="planCloseTime" label="整改完成时间" align="center">
<template slot-scope="scope">
<span>{{ scope.row.planCloseTime ? $moment(scope.row.planCloseTime).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column>
<el-table-column prop="responsibleUnit" label="责任部门" align="center"/>
<el-table-column prop="dutyEngineer" label="责任工程师" align="center"/>
<el-table-column label="选择分发责任人" prop="dutyPeopleInfo" align="center">
<template slot-scope="scope">
<el-input
style="display: none"
@click.native="clickOpen(scope.row)"
v-model="scope.row.dutyPeopleInfo"
size="mini"
placeholder="请输入内容"
/>
<div v-if="scope.row.dutyPeopleInfo" class="fileClass">
{{ scope.row.dutyPeopleInfo || '-'}}
</div>
</template>
</el-table-column>
</el-table>
@@ -133,6 +135,73 @@
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list">
<el-table
height="100%"
ref="selection"
:data="detailData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:no-data-text="listNoDataText"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="name"
label="任务步骤"
align="center"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="comment"
label="审批意见"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.commentText }}</span>
</template>
</el-table-column>
<el-table-column
prop="completeFlag"
label="状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
<loading :loading="loading">流程列表加载中</loading>
</div>
</div>
<ProcessFooter
show-save
show-submit
@@ -163,6 +232,8 @@ export default {
name: "wfhxzgStep2",
data() {
return {
detailData: [],
loading: false,
textarea: '', // 意见
title: '', // 新增编辑抽屉标题
ListModel: false, // 新增编辑抽屉开关
@@ -197,6 +268,7 @@ export default {
dutyPeopleInfo: '',
dutyPeople: ''
},
rowDutyPeople: {},
props: { label: 'name', children: 'children', value: 'id', multiple: true, disabled: false },
dutyUserCaseData: [],
roleFormRules: {},
@@ -213,15 +285,33 @@ export default {
ProcessTitle
},
created() {
this.getData()
this.getTree()
this.processTable();
this.getData();
},
computed: {
listNoDataText() {
return this.processType === 1 ? "暂无待办流程" : "暂无已办流程";
}
},
watch: {
nonSearch(val) {
this.nonSearch = val
}
},
methods: {
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 => {
})
},
getData() {
const params = {
taskIds: this.taskIds,
@@ -250,6 +340,14 @@ export default {
this.modalshowflag = true
}
},
// 每行选择负责人点击操作
clickOpen(val, id) {
this.$refs.multipleTable.clearSelection()
this.rowDutyPeople = val
this.nodeList = []
this.nodeList.push(id)
this.modalshowflag = true
},
// 选择勾选项的集合
handleSelectionChange(value) {
this.multipleSelection = value
@@ -263,6 +361,7 @@ export default {
handleSave() {},
// 提交按钮
handleSubmit() {
this.isSubmit = true
let zqa = new Map();
for (let lastDataListElement of this.lastDataList) {
let a = zqa.get(lastDataListElement.dutyPeopleInfoId)
@@ -286,11 +385,11 @@ export default {
let flag=false
this.dataList.forEach(item => {
if (item.dutyPeopleInfo === '') {
this.$message.warning('请选择分发负责人填入')
flag=true
this.isSubmit = false
}
})
if(flag)return;
if(flag)return this.$message.warning('请选择分发负责人填入')
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
@@ -300,7 +399,10 @@ export default {
this.$message.success('提交成功')
this.$router.push("/processCenter");
}
})
this.isSubmit = false
}).catch(e => {
this.isSubmit = false
})
},
// 流程阶段负责人选择
@@ -312,16 +414,21 @@ export default {
this.modalshowflag = true
},
drawerCheck (data) {
this.roleRow = data
this.roleRow = data[0]
// 选取负责人时的操作
this.multipleSelection.forEach(item => {
item.dutyPeopleInfo = this.roleRow[0].name
item.dutyPeopleInfoId = this.roleRow[0].id
})
if (this.multipleSelection.length === 0) {
this.rowDutyPeople.dutyPeopleInfo = this.roleRow.name
this.rowDutyPeople.dutyPeopleInfoId = this.roleRow.id
}else {
this.multipleSelection.forEach(item => {
item.dutyPeopleInfo = this.roleRow.name
item.dutyPeopleInfoId = this.roleRow.id
})
this.$refs.multipleTable.clearSelection()
}
this.lastDataList = this.dataList
this.$refs.multipleTable.clearSelection();
// 选取流程信息完成
this.roleForm.dutyUserInfoName = this.roleRow[0].name
// this.roleForm.dutyUserInfoName = this.roleRow.name
this.modalshowflag = false
},
//查询按钮
@@ -6,8 +6,9 @@
</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 class="content" v-show="active === '1'">
<div style="flex: auto;">
<ProcessTitle>
<template slot="title">基础信息</template>
@@ -78,35 +79,49 @@
</el-button>
</el-form-item>
</el-form>
<div class="content-center">
<el-button
style="text-align: end"
class="common-button-default"
size="small"
type="primary"
@click="dutyPeopleList">
批量选择负责人
</el-button>
</div>
<el-table
:data="dataList"
border
ref="multipleTable"
@selection-change="handleSelectionMore"
height="49%"
style="width: 100%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column prop="standId" label="标准号/标准名称"/>
<el-table-column prop="productName" label="项目名称"/>
<el-table-column prop="itemsNum" label="条款号"/>
<el-table-column prop="itemsName" label="条款名称"/>
<el-table-column prop="planCloseTime" label="整改完成时间"/>
<el-table-column prop="responsibleUnit" label="责任部门"/>
<el-table-column prop="dutyEngineer" label="责任工程师"/>
<el-table-column label="选择责任人" prop="dutyPeople" width="200">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column prop="standId" label="标准号/标准名称" align="center"/>
<el-table-column prop="productName" label="项目名称" align="center" show-overflow-tooltip/>
<el-table-column prop="itemsNum" label="条款号" align="center"/>
<el-table-column prop="itemsName" label="条款名称" align="center"/>
<el-table-column prop="planCloseTime" label="整改完成时间" align="center">
<template slot-scope="scope">
<span>{{ scope.row.planCloseTime ? $moment(scope.row.planCloseTime).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column>
<el-table-column prop="responsibleUnit" label="责任部门" align="center"/>
<el-table-column prop="dutyEngineer" label="责任工程师" align="center"/>
<el-table-column label="选择责任人" prop="dutyPeople" width="200" align="center">
<template slot-scope="scope">
<div style="display: inline;">
<el-input
class="input-button"
style="width: 60%"
:disabled="true"
@click.native="selectPeople(scope.row)"
v-model="scope.row.dutyPeople"
size="mini"
placeholder="请选择责任人"
/>
</div>
<div style="display: inline">
<el-button size="mini" type="primary" @click="selectPeople(scope.row)">选择</el-button>
</div>
</template>
</el-table-column>
</el-table>
@@ -126,6 +141,73 @@
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list">
<el-table
height="100%"
ref="selection"
:data="detailData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:no-data-text="listNoDataText"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="name"
label="任务步骤"
align="center"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="comment"
label="审批意见"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.commentText }}</span>
</template>
</el-table-column>
<el-table-column
prop="completeFlag"
label="状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
<loading :loading="loading">流程列表加载中</loading>
</div>
</div>
<ProcessFooter
show-save
show-submit
@@ -157,6 +239,8 @@ export default {
name: "wfhxzgStep3",
data() {
return {
detailData: [],
loading: false,
commentText: '', // 意见
title: '', // 新增编辑抽屉标题
ListModel: false, // 新增编辑抽屉开关
@@ -171,7 +255,9 @@ export default {
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
dataList: [],
newDataList: [],
newDataList: {},
// 批量选择负责人table数组
selectTableMore: [],
// 责任部门
zNodesSItem: [],
@@ -192,9 +278,28 @@ export default {
ProcessTitle
},
created() {
this.processTable()
this.getData()
},
computed: {
listNoDataText() {
return this.processType === 1 ? "暂无待办流程" : "暂无已办流程";
}
},
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 => {
});
},
getData() {
const params = {
taskIds: this.taskIds,
@@ -217,19 +322,36 @@ export default {
},
// 选择责任人的按钮操作
selectPeople(val) {
this.$refs.multipleTable.clearSelection();
this.newDataList = val
this.nodeList = []
this.modalshowflag = true
},
// 批量选择负责人按钮
dutyPeopleList(id) {
if (this.selectTableMore.length === 0) {
this.$message.warning("请选择至少一条数据进行分发责任人");
} else {
this.nodeList = []
this.nodeList.push(id)
this.modalshowflag = true
}
},
// 勾选的列表事件
handleSelectionMore(val) {
this.selectTableMore = val
},
handleTabs(name) {
this.active = name
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
json.actionFlag = 1
json.commentText = this.commentText
var json = {
actionFlag: 1,
commentText: this.commentText
}
this.isSubmit = true
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
@@ -239,6 +361,7 @@ export default {
this.$message.success('驳回成功')
this.$router.push('/processCenter')
}
this.isSubmit = false
})
} else {
this.$message.warning('请输入反馈意见')
@@ -248,6 +371,15 @@ export default {
handleSave() {},
// 提交按钮
handleSubmit() {
this.isSubmit = true
let flag=false
this.dataList.forEach(item => {
if (item.dutyPeople === '') {
flag = true
this.isSubmit = false
}
})
if(flag)return this.$message.warning('请选择负责人填入')
let zqa = new Map();
for (let lastDataListElement of this.lastDataList) {
let a = zqa.get(lastDataListElement.dutyPeopleId)
@@ -269,13 +401,6 @@ export default {
responUserList: list,
actionFlag: 0
}
let flag=false
this.dataList.forEach(item => {
if (item.dutyPeople === '') {
this.$message.warning('请选择负责人填入')
flag=true
}
})
if(flag)return;
const params = new FormData();
params.set('json', JSON.stringify(json))
@@ -286,14 +411,24 @@ export default {
this.$message.success('提交成功')
this.$router.push("/processCenter");
}
this.isSubmit = false
}).catch(e => {
this.isSubmit = false
})
},
drawerCheck (data) {
this.roleForm = data[0]
// 选择责任人时input框内值
this.newDataList.dutyPeople = this.roleForm.name
this.newDataList.dutyPeopleId = this.roleForm.id
if (this.selectTableMore.length ===0) {
this.newDataList.dutyPeople = this.roleForm.name
this.newDataList.dutyPeopleId = this.roleForm.id
}else {
this.selectTableMore.forEach(item => {
item.dutyPeople = this.roleForm.name
item.dutyPeopleId = this.roleForm.id
})
}
this.lastDataList = this.dataList
this.modalshowflag = false
},
@@ -6,8 +6,9 @@
</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 class="content" v-show="active === '1'">
<div style="flex: auto;">
<ProcessTitle>
<template slot="title">基础信息</template>
@@ -86,13 +87,17 @@
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column prop="productName" label="项目名称"/>
<el-table-column prop="itemsNum" label="条款号"/>
<el-table-column prop="itemsName" label="条款名称"/>
<el-table-column prop="planCloseTime" label="整改完成时间"/>
<el-table-column prop="responsibleUnit" label="责任部门"/>
<el-table-column prop="dutyPeople" label="负责人"/>
<el-table-column label="佐证材料" prop="info.fileText" show-overflow-tooltip width="150">
<el-table-column prop="productName" label="项目名称" align="center" show-overflow-tooltip/>
<el-table-column prop="itemsNum" label="条款号" align="center"/>
<el-table-column prop="itemsName" label="条款名称" align="center"/>
<el-table-column prop="planCloseTime" label="整改完成时间" align="center">
<template slot-scope="scope">
<span>{{ scope.row.planCloseTime ? $moment(scope.row.planCloseTime).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column>
<el-table-column prop="responsibleUnit" label="责任部门" align="center"/>
<el-table-column prop="dutyPeople" label="负责人" align="center"/>
<el-table-column prop="info.fileText" label="佐证材料" align="center" show-overflow-tooltip width="150">
<template slot-scope="scope">
<div style="display: inline;">
<el-input
@@ -133,6 +138,73 @@
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list">
<el-table
height="100%"
ref="selection"
:data="detailData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:no-data-text="listNoDataText"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="name"
label="任务步骤"
align="center"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="comment"
label="审批意见"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.commentText }}</span>
</template>
</el-table-column>
<el-table-column
prop="completeFlag"
label="状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
<loading :loading="loading">流程列表加载中</loading>
</div>
</div>
<ProcessFooter
show-save
show-submit
@@ -152,7 +224,6 @@
accept=".ZIP, .zip, .docx, .DOCX, .xls, .xlsx"
:before-upload="handleBeforeUpload"
:on-success="handleOnsuccess"
:show-file-list="false"
>
<div style="padding: 20px 0">
<i class="el-icon-upload" style="color: #3399ff"></i>
@@ -174,6 +245,8 @@ export default {
name: "wfhxzgStep4",
data() {
return {
detailData: [],
loading: false,
textarea: '', // 意见
title: '', // 新增编辑抽屉标题
ListModel: false, // 新增编辑抽屉开关
@@ -206,9 +279,28 @@ export default {
ProcessTitle
},
created() {
this.processTable()
this.getData()
},
computed: {
listNoDataText() {
return this.processType === 1 ? "暂无待办流程" : "暂无已办流程";
}
},
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 => {
});
},
getData() {
const params = {
taskIds: this.taskIds,
@@ -221,10 +313,8 @@ export default {
},
getFormFieldList (item) {
this.$nextTick(() => {
console.log(item)
this.dataList = [JSON.parse(JSON.stringify(item.responUserInfo.info))]
console.log(this.dataList)
/*for (let i = 0; i<fileData.length; i++) {
if (fileData[i].name === this.$store.getters.userInfo.userName) {
this.dataList = fileData[i].standardInfoList
@@ -245,16 +335,15 @@ export default {
// 文件上传成功
handleOnsuccess(res, file, fileList) {
if (res.ok) {
this.fileMadel = false
this.newDataList.fileText = res.data.name
this.newDataList.fileTextId = res.data.id
this.newDataList.fileTextPath = res.data.filePath
console.log(this.dataList)
this.$message({
showClose: true,
message: res.message,
type: 'success'
})
this.fileMadel = false
}
},
// 文件上传失败后回调
@@ -296,20 +385,20 @@ export default {
handleSave() {},
// 提交按钮
handleSubmit() {
this.isSubmit = true
let flag=false
this.dataList.forEach(item => {
if (item.fileText === '') {
this.$message.warning('请选择佐证材料进行上传')
flag=true
this.isSubmit = false
}
})
if(flag)return;
if(flag)return this.$message.warning('请选择佐证材料进行上传');
let fileDataList = this.dataList
let json = {
info: { fileDataList },
username: this.$store.getters.userInfo.userName
}
console.log(json)
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
@@ -319,6 +408,9 @@ export default {
this.$message.success('提交成功')
this.$router.push("/processCenter");
}
this.isSubmit = false
}).catch(e => {
this.isSubmit = false
})
},
@@ -6,6 +6,7 @@
</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;">
@@ -86,13 +87,17 @@
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column prop="productName" label="项目名称"/>
<el-table-column prop="itemsNum" label="条款号"/>
<el-table-column prop="itemsName" label="条款名称"/>
<el-table-column prop="planCloseTime" label="整改完成时间"/>
<el-table-column prop="responsibleUnit" label="责任部门"/>
<el-table-column prop="dutyEngineer" label="负责人"/>
<el-table-column label="佐证材料" show-overflow-tooltip>
<el-table-column prop="productName" label="项目名称" align="center" show-overflow-tooltip/>
<el-table-column prop="itemsNum" label="条款号" align="center"/>
<el-table-column prop="itemsName" label="条款名称" align="center"/>
<el-table-column prop="planCloseTime" label="整改完成时间" align="center">
<template slot-scope="scope">
<span>{{ scope.row.planCloseTime ? $moment(scope.row.planCloseTime).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column>
<el-table-column prop="responsibleUnit" label="责任部门" align="center"/>
<el-table-column prop="dutyEngineer" label="负责人" align="center"/>
<el-table-column label="佐证材料" align="center" show-overflow-tooltip>
<template slot-scope="scope">
<el-button type="text" @click="download(scope.row)" >{{scope.row.fileText}}</el-button>
</template>
@@ -114,6 +119,73 @@
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list">
<el-table
height="100%"
ref="selection"
:data="detailData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:no-data-text="listNoDataText"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="name"
label="任务步骤"
align="center"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="comment"
label="审批意见"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.commentText }}</span>
</template>
</el-table-column>
<el-table-column
prop="completeFlag"
label="状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
<loading :loading="loading">流程列表加载中</loading>
</div>
</div>
<ProcessFooter
show-submit
show-back
@@ -139,6 +211,8 @@ export default {
name: "wfhxzgStep5",
data() {
return {
detailData: [],
loading: false,
commentText: '',
title: '', // 新增编辑抽屉标题
saveLoading: false,
@@ -172,9 +246,28 @@ export default {
ProcessTitle
},
created() {
this.processTable()
this.getData()
},
computed: {
listNoDataText() {
return this.processType === 1 ? "暂无待办流程" : "暂无已办流程";
}
},
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 => {
});
},
getData() {
const params = {
taskIds: this.taskIds,
@@ -197,6 +290,7 @@ export default {
// 提交按钮
handleSubmit() {
this.isSubmit = true
var json = this.json
json.actionFlag = 0
json.commentText = this.commentText
@@ -209,13 +303,15 @@ export default {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
this.isSubmit = false
})
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
json.actionFlag = 1
json.commentText = this.commentText
var json = {
actionFlag: 1,
commentText: this.commentText
}
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
@@ -303,6 +303,16 @@ export default {
}
})
break
case '8':
this.$router.push({
name: 'wfhxzgStep1',
query: {
type: '8',
processName: '未符合项更新流程',
bpnId: id
}
})
break
}
},
...mapMutations(['setProcess', 'setHandleInfo']),
@@ -97,78 +97,89 @@
</el-form>
<div v-if="!showSelectBox">
<el-form :model="standardFormList" class="label-input-form" label-width="108px" inline>
<el-form-item label="中文名称" class="search-item">
<el-input
v-model="standardFormList.standName"
placeholder="请输入"
:maxlength="100"
size="small"
/>
</el-form-item>
<el-form-item label="适用车型" class="labelBox" label-width="61px">
<el-select
class="showBox"
v-model="standardFormList.typeApplicable"
placeholder="请选择"
filterable
size="small"
>
<el-option
v-for="item in applyArcticOptions"
:value="item.value"
:key="item.value"
:label="item.label"
/>
</el-select>
</el-form-item>
<el-form-item label="能源类型" label-width="68px" >
<el-select
class="showBox"
v-model="standardFormList.nylx"
placeholder="请选择"
filterable
size="small"
>
<el-option
v-for="item in categoryOptions"
:value="item.value"
:key="item.value"
:label="item.label"
/>
</el-select>
</el-form-item>
<el-form-item label="责任部门" label-width="68px" >
<el-select
class="showBox"
v-model="standardFormList.zrbm"
placeholder="请选择"
filterable
size="small"
>
<el-option
v-for="item in zrbmOptions"
:value="item.value"
:key="item.value"
:label="item.label"
/>
</el-select>
</el-form-item>
<el-form-item label="适用产品线" label-width="86px" >
<el-select
class="showBox"
v-model="standardFormList.sycpx"
placeholder="请选择"
filterable
size="small"
>
<el-option
v-for="item in sycpxOptions"
:value="item.value"
:key="item.value"
:label="item.label"
/>
</el-select>
</el-form-item>
<el-row>
<el-col :span="24">
<el-form-item label="中文名称" class="search-item">
<el-input
v-model="standardFormList.standName"
placeholder="请输入"
:maxlength="100"
size="small"
/>
</el-form-item>
<el-form-item label="适用车型" class="labelBox" label-width="61px">
<el-select
class="showBox"
v-model="standardFormList.typeApplicable"
placeholder="请选择"
filterable
size="small"
>
<el-option
v-for="item in applyArcticOptions"
:value="item.value"
:key="item.value"
:label="item.label"
/>
</el-select>
</el-form-item>
<el-form-item label="能源类型" label-width="68px" >
<el-select
class="showBox"
v-model="standardFormList.nylx"
placeholder="请选择"
filterable
size="small"
>
<el-option
v-for="item in categoryOptions"
:value="item.value"
:key="item.value"
:label="item.label"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="责任部门" class="labelBox" label-width="108px" >
<el-select
class="showBox"
v-model="standardFormList.zrbm"
placeholder="请选择"
filterable
size="small"
>
<el-option
v-for="item in zrbmOptions"
:value="item.value"
:key="item.value"
:label="item.label"
/>
</el-select>
</el-form-item>
<el-form-item label="适用产品线" label-width="86px" >
<el-select
class="showBox"
v-model="standardFormList.sycpx"
placeholder="请选择"
filterable
size="small"
>
<el-option
v-for="item in sycpxOptions"
:value="item.value"
:key="item.value"
:label="item.label"
/>
</el-select>
</el-form-item>
<div style="padding-left: 110px">
<el-form-item>
<el-button type="primary" size="small" style="width: 100px" @click="selectSuper">确认</el-button>
</el-form-item>
</div>
</el-col>
</el-row>
</el-form>
</div>
</div>
@@ -483,12 +494,36 @@ export default {
});
},
selectInfoMore() {
this.$http.get("sarLawsAttrDetailedList/sar-laws-attr-detailed-list/selectLawsById", {
...this.standardFormList,
id: this.pageId,
}, {
_this: this
}, res => {
this.standinfoList = res.data.records;
this.standardFormTotal = res.data.total
this.standinfoList.forEach(item => {
if (item.standYear === null) {
item.standNumber = item.standSortShow + ' ' + item.standNumber
} else {
item.standNumber = item.standSortShow + ' ' + item.standNumber + '-' + item.standYear
}
})
}, e => {
});
},
back() {
this.$router.push({name: 'AccessStandardsAndRegulations'})
// this.$router.push(this.$store.state.detailMap)
// this.$store.commit('setDetailMap', '')
},
selectSuper() {
this.page = 1;
this.standardForm.page = 1;
this.selectInfoMore();
},
// 搜索
selectProductBtn() {
this.page = 1;
@@ -506,6 +541,7 @@ export default {
this.standardFormList.zrbm = ''
this.standardFormList.sycpx = ''
this.selectInfobyAccid()
this.selectInfoMore()
},
exportStandard() {
if (this.selectedList.length > 0) {
@@ -556,11 +592,11 @@ export default {
},
pageChange(page) {
this.standardForm.page = page;
this.selectInfobyAccid();
// this.selectInfobyAccid();
},
pageSizeChange(pageSize) {
this.standardForm.Size = this.$store.getters.userInfo.configContent;
this.selectInfobyAccid();
// this.selectInfobyAccid();
},
// 请求部门结构树
getOrgTreeSource() {
@@ -675,7 +711,7 @@ export default {
}
this.page = 1
this.standardForm.page = 1
this.selectInfobyAccid()
this.selectInfoMore()
},
// 获取工作组信息下拉框信息
getGzzOption() {