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

# Conflicts:
#	src/pages/localTool/standAutoSplit/index.vue
#	src/pages/processCenter/pages/processList/tabComponents/processCenter/index.vue
This commit is contained in:
zhutianqi
2021-07-13 17:55:59 +08:00
27 changed files with 2175 additions and 679 deletions
+26
View File
@@ -0,0 +1,26 @@
import axios from '@/common/axiosV2'
// 查询未整改项列表接口
export function standUnqualified (data) {
return axios({
url: '/api/sarStandUnqualified/sar-stand-unqualified',
method: 'get',
params: data
})
}
// 人员菜单列表获取
export function roleTreeData (data) {
return axios({
url: '/api/SarInstitution/institution/institutionAndUser',
method: 'get',
params: data
})
}
// 上传文件
export function uploadFileText (data) {
return axios({
url: 'api/att/attFile/upload',
method: 'get',
params: data
})
}
@@ -1564,7 +1564,7 @@ export default {
// 请求标准id和类型
showReplaceStandInfo (item) {
// this.replaceStandInfoEO.standType = this.sarStandardsInfoEO.standType
this.$http.get('lawss/sarStandardsInfo/queryInfoByStandNum', {
this.$http.get('sarStandardsInfo/sar-standards-info/queryInfoByStandNum', {
standNumber: item
}, {
_this: this
@@ -38,25 +38,25 @@
<template v-if="item.label === '基础信息'" >
<div class="details-content-modular basic-information" style="border-top:none">
<div class="basic-information-content">
<p><label>标准类别</label><span>{{ sarStandardsInfoEO.standSort || '-' }}</span></p>
<p><label style=" margin-right: 150px;">标准类别</label><span>{{ sarStandardsInfoEO.standSort || '-' }}</span></p>
<p style="color: #C42626;">
<label>标准编号</label>
<label style=" margin-right: 150px;">标准编号</label>
<span v-if="sarStandardsInfoEO.standYear">{{ sarStandardsInfoEO.standSortShow + ' ' + sarStandardsInfoEO.standNumber + '-' + sarStandardsInfoEO.standYear }}</span>
<span v-else>{{ sarStandardsInfoEO.standSort + ' ' + sarStandardsInfoEO.standNumber }}</span>
</p>
<p><label>标准年份</label><span>{{ sarStandardsInfoEO.standYear || '-' }}</span></p>
<p><label>中文名称</label><span>{{ sarStandardsInfoEO.standName || '-' }}</span></p>
<p><label>英文名称</label><span>{{ sarStandardsInfoEO.standEnName || '-' }}</span></p>
<p><label>标准性质</label><span>{{ sarStandardsInfoEO.standNature || '-' }}</span></p>
<p><label style=" margin-right: 150px;">标准年份</label><span>{{ sarStandardsInfoEO.standYear || '-' }}</span></p>
<p><label style=" margin-right: 150px;">中文名称</label><span>{{ sarStandardsInfoEO.standName || '-' }}</span></p>
<p><label style=" margin-right: 150px;">英文名称</label><span>{{ sarStandardsInfoEO.standEnName || '-' }}</span></p>
<p><label style=" margin-right: 150px;">标准性质</label><span>{{ sarStandardsInfoEO.standNature || '-' }}</span></p>
<p>
<label
<label style=" margin-right: 132px;"
title="“计划修订”、“修订中”均为现行有效版本;“已修订”标准的有效性根据实际实施情况判定。"
>文本状态<i class="el-icon-warning-outline"></i></label>
>文本状态<i class="el-icon-warning-outline"></i></label>
<span style="color: #409EFF;">{{ sarStandardsInfoEO.textStatus || '-' }}</span>
</p>
<p><label>发布日期</label><span>{{ sarStandardsInfoEO.issueTime || '-' }}</span></p>
<p><label>是否纳入认证清单</label><span>{{sarStandardsInfoEO.isRelateAccess ? (sarStandardsInfoEO.isRelateAccess === '1' ? '是' : '否') : '-'}}</span></p>
<p><label>标准体系</label><span>{{ sarStandardsInfoEO.standSystemName || '-' }}</span></p>
<p><label style=" margin-right: 150px;">发布日期</label><span>{{ sarStandardsInfoEO.issueTime || '-' }}</span></p>
<p><label style=" margin-right: 76px;">是否纳入认证清单</label><span>{{sarStandardsInfoEO.isRelateAccess ? (sarStandardsInfoEO.isRelateAccess === '1' ? '是' : '否') : '-'}}</span></p>
<p><label style=" margin-right: 150px;">标准体系</label><span>{{ sarStandardsInfoEO.standSystemName || '-' }}</span></p>
<!-- <p><label>文本说明</label><span style="color: #999999">{{ sarStandardsInfoEO.synopsis || '-' }}</span></p>-->
<!-- <p><label>重要度</label><span>{{ sarStandardsInfoEO.isRelateAccess === '1' ? 'A' : 'B'}}</span></p>-->
<!-- <p><label>纳入标准法规清单的国家/地区</label><span>{{ sarStandardsInfoEO.accessCountry || '-' }}</span></p>-->
@@ -243,7 +243,7 @@
<!--发布稿增补件单独设置下载权限-->
<template v-if="child.attrField === 'XGD' || child.attrField === 'FBGBJBD' || child.attrField === 'BPG'
|| child.attrField === 'SSG'|| child.attrField === 'ZQYJG'|| child.attrField === 'CA'
|| child.attrField === 'JDWJ'">
|| child.attrField === 'JDWJ' || child.attrField === 'GLWJ'">
<a @click="openFileInPdf(file.id, file.oldFileName)" target="_blank">{{ file.oldFileName }}</a>
<i
title="下载"
@@ -1687,7 +1687,7 @@ export default {
showReplaceStandInfo (item) {
this.replaceStandInfoEO.standNumber = item
// this.replaceStandInfoEO.standType = this.sarStandardsInfoEO.standType
this.$http.get('lawss/sarStandardsInfo/queryInfoByStandNum', this.replaceStandInfoEO, {
this.$http.get('sarStandardsInfo/sar-standards-info/queryInfoByStandNum', this.replaceStandInfoEO, {
_this: this
}, res => {
if (res.data != null) {
+1 -1
View File
@@ -1653,7 +1653,7 @@ export default {
showReplaceStandInfo (item) {
this.replaceStandInfoEO.standNumber = item
// this.replaceStandInfoEO.standType = this.sarStandardsInfoEO.standType
this.$http.get('lawss/sarStandardsInfo/queryInfoByStandNum', this.replaceStandInfoEO, {
this.$http.get('sarStandardsInfo/sar-standards-info/queryInfoByStandNum', this.replaceStandInfoEO, {
_this: this
}, res => {
if (res.data != null) {
@@ -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">
@@ -195,66 +195,141 @@
<el-row :gutter="24">
<el-col :span="12">
<el-form-item v-if="form.standInData === '0'" label="修改单" prop="xgd" class="add-form-item form-item-disabled">
<div v-if="form.xgd">
{{ form.xgd }}
<el-input
disabled
style="display: none;"
v-model="form.xgdName"
clearable
></el-input>
<div v-if="form.xgdName">
{{ form.xgdName }}
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('xgd')">
重新上传
</el-button>
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
size="mini">
size="mini"
@click="fileUpload('xgd')">
点击上传
</el-button>
</div>
</el-form-item>
<el-form-item label="发布稿" prop="fbgbjbd" class="add-form-item form-item-disabled">
<div v-if="form.fbgbjbd">
{{ form.fbgbjbd }}
<el-input
disabled
style="display: none;"
v-model="form.fbgbjbdName"
clearable
></el-input>
<div v-if="form.fbgbjbdName">
{{ form.fbgbjbdName }}
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('fbgbjbd')">
重新上传
</el-button>
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
size="mini">
size="mini"
@click="fileUpload('fbgbjbd')">
点击上传
</el-button>
</div>
</el-form-item>
<el-form-item v-if="form.standInData === '1'" label="增补件" prop="zbjbd" class="add-form-item form-item-disabled">
<div v-if="form.zbjbd">
{{ form.zbjbd }}
<el-input
disabled
style="display: none;"
v-model="form.zbjbdName"
clearable
></el-input>
<div v-if="form.zbjbdName">
{{ form.zbjbdName }}
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('zbjbd')">
重新上传
</el-button>
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
size="mini">
size="mini"
@click="fileUpload('zbjbd')">
点击上传
</el-button>
</div>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="报批稿" prop="bpg" class="add-form-item form-item-disabled">
<div v-if="form.bpg">
{{ form.bpg }}
<el-input
disabled
style="display: none;"
v-model="form.bpgName"
clearable
></el-input>
<div v-if="form.bpgName">
{{ form.bpgName }}
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('bpg')">
重新上传
</el-button>
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
size="mini">
size="mini"
@click="fileUpload('bpg')">
点击上传
</el-button>
</div>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="送审稿" prop="ssg" class="add-form-item form-item-disabled">
<div v-if="form.ssg">
{{ form.ssg }}
<el-input
disabled
style="display: none;"
v-model="form.ssgName"
clearable
></el-input>
<div v-if="form.ssgName">
{{ form.ssgName }}
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('ssg')">
重新上传
</el-button>
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
size="mini">
size="mini"
@click="fileUpload('ssg')">
点击上传
</el-button>
</div>
@@ -262,53 +337,113 @@
</el-col>
<el-col :span="12">
<el-form-item v-if="form.standInData === '1'" label="勘误件" prop="kwj" class="add-form-item form-item-disabled">
<div v-if="form.kwj">
{{ form.kwj }}
<el-input
disabled
style="display: none;"
v-model="form.kwjName"
clearable
></el-input>
<div v-if="form.kwjName">
{{ form.kwjName }}
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('kwj')">
重新上传
</el-button>
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
size="mini">
size="mini"
@click="fileUpload('kwj')">
点击上传
</el-button>
</div>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="征求意见稿" prop="zqyjg" class="add-form-item form-item-disabled">
<div v-if="form.zqyjg">
{{ form.zqyjg }}
<el-input
disabled
style="display: none;"
v-model="form.zqyjgName"
clearable
></el-input>
<div v-if="form.zqyjgName">
{{ form.zqyjgName }}
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('zqyjg')">
重新上传
</el-button>
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
size="mini">
size="mini"
@click="fileUpload('zqyjg')">
点击上传
</el-button>
</div>
</el-form-item>
<el-form-item label="草案" prop="ca" class="add-form-item form-item-disabled">
<div v-if="form.ca">
{{ form.ca }}
<el-input
disabled
style="display: none;"
v-model="form.caName"
clearable
></el-input>
<div v-if="form.caName">
{{ form.caName }}
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('ca')">
重新上传
</el-button>
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
size="mini">
size="mini"
@click="fileUpload('ca')">
点击上传
</el-button>
</div>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="解读文件" prop="jdwj" class="add-form-item form-item-disabled">
<div v-if="form.jdwj">
{{ form.jdwj }}
<el-input
disabled
style="display: none;"
v-model="form.jdwjName"
clearable
></el-input>
<div v-if="form.jdwjName">
{{ form.jdwjName }}
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('jdwj')">
重新上传
</el-button>
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
size="mini">
size="mini"
@click="fileUpload('jdwj')">
点击上传
</el-button>
</div>
@@ -501,14 +636,21 @@
></el-input>
</el-form-item>
<el-form-item label="关联文件" prop="glwj" class="add-form-item form-item-disabled">
<div v-if="form.glwj">
{{ form.glwj }}
<el-input
disabled
style="display: none;"
v-model="form.glwjName"
clearable
></el-input>
<div v-if="form.glwjName">
{{ form.glwjName }}
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
size="mini">
size="mini"
@click="fileUpload('glwj')">
点击上传
</el-button>
</div>
@@ -617,6 +759,24 @@
@submit="handleSubmit"
>
</ProcessFooter>
<el-dialog width='400px' :visible.sync="fileMadel" title="上传文件">
<el-upload
multiple
drag
:action="fileUrl"
ref="importfile"
name="file"
accept=".ZIP, .zip, .doc, .DOC, .docx, .DOCX, .xls, .xlsx"
:before-upload="beginImportFile"
:on-success="importFileSuccess"
:show-file-list="false"
>
<div style="padding: 20px 0">
<i class="el-icon-upload" style="color: #3399ff"></i>
<p>点击或拖拽上传文件</p>
</div>
</el-upload>
</el-dialog>
</div>
</template>
@@ -643,6 +803,9 @@
},
nodeKey: 'id',
defaultCheckedKeys: [],
fileUrl: 'api/att/attFile/upload',
fileMadel: false,
fileType: '',
form: {
// 基础信息
textStatus: '', // 文本状态
@@ -676,6 +839,16 @@
jdwj: '', // 解读文件
zbjbd: '', // 增补件
kwj: '', // 勘误件
caName: '', // 草案
fbgbjbdName: '', // 发布稿
xgdName: '', // 修改单
bpgName: '', // 报批稿
ssgName: '', // 送审稿
zqyjgName: '', // 征求意见稿
jdwjName: '', // 解读文件
zbjbdName: '', // 增补件
kwjName: '', // 勘误件
glwjName: '', // 关联文件
// 适用范围
txlb: '', // 体系类别
gkdw: '', // 归口管理部门
@@ -732,6 +905,77 @@
TreeSelect
},
methods: {
beginImportFile (file) {
var filename = file.name
var index1 = filename.lastIndexOf('.')
var index2 = filename.length
var fileSuffix = filename.substring(index1, index2)
// const fileSuffix = file.name.split('.')[1] // 后缀名
// 判断上传文件格式
if (fileSuffix === '.ZIP' || fileSuffix === '.doc' || fileSuffix === '.DOC' || fileSuffix === '.docx' || fileSuffix === '.DOCX' || fileSuffix === '.zip' || fileSuffix === '.xls' || fileSuffix === '.xlsx') {
return true
} else {
this.spinShow = false
this.$message.error('文件' + file.name + '格式不正确,请上传ZIP/DOC/DOCX或XLS文件')
return false
}
// 判断文件上传大小
// eslint-disable-next-line no-unreachable
if (file.size / 1024 / 1024 <= 200) {
return true
} else {
this.$message.error('文件' + file.name + '大小不超过200M')
return false
}
return true
},
// 导入标准数据成功后执行
importFileSuccess (response, file) {
if (response.ok) {
this.fileMadel = false
if(this.fileType === 'fbgbjbd'){
this.form.fbgbjbd = response.data.id;
this.form.fbgbjbdName = response.data.name;
}else if(this.fileType === 'xgd'){
this.form.xgd = response.data.id;
this.form.xgdName = response.data.name;
}else if(this.fileType === 'bpg'){
this.form.bpg = response.data.id;
this.form.bpgName = response.data.name;
}else if(this.fileType === 'ssg'){
this.form.ssg = response.data.id;
this.form.ssgName = response.data.name;
}else if(this.fileType === 'zqyjg'){
this.form.zqyjg = response.data.id;
this.form.zqyjgName = response.data.name;
}else if(this.fileType === 'jdwj'){
this.form.jdwj = response.data.id;
this.form.jdwjName = response.data.name;
}else if(this.fileType === 'kwj'){
this.form.kwj = response.data.id;
this.form.kwjName = response.data.name;
}else if(this.fileType === 'xgd'){
this.form.xgd = response.data.id;
this.form.xgdName = response.data.name;
}else if(this.fileType === 'glwj'){
this.form.glwj = response.data.id;
this.form.glwjName = response.data.name;
}else if(this.fileType === 'ca'){
this.form.ca = response.data.id;
this.form.caName = response.data.name;
}
this.$message({
showClose: true,
message: response.message,
type: 'success'
})
}
},
fileUpload (type) {
this.fileType = '';
this.fileMadel = true
this.fileType = type;
},
popoverHide (checkedIds, checkedData) {
console.log(checkedIds);
console.log(checkedData);
@@ -208,41 +208,41 @@
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item v-if="form.standInData === '0'" label="修改单" prop="xgd" class="add-form-item form-item-disabled">
<div v-if="form.xgd">
{{ form.xgd }}
<el-form-item v-if="form.standInData === '0'" label="修改单" prop="xgdName" class="add-form-item form-item-disabled">
<div v-if="form.xgdName">
{{ form.xgdName }}
</div>
<div v-else>
- -
</div>
</el-form-item>
<el-form-item label="发布稿" prop="fbgbjbd" class="add-form-item form-item-disabled">
<div v-if="form.fbgbjbd">
{{ form.fbgbjbd }}
<el-form-item label="发布稿" prop="fbgbjbdName" class="add-form-item form-item-disabled">
<div v-if="form.fbgbjbdName">
{{ form.fbgbjbdName }}
</div>
<div v-else>
- -
</div>
</el-form-item>
<el-form-item v-if="form.standInData === '1'" label="增补件" prop="zbjbd" class="add-form-item form-item-disabled">
<div v-if="form.zbjbd">
{{ form.zbjbd }}
<el-form-item v-if="form.standInData === '1'" label="增补件" prop="zbjbdName" class="add-form-item form-item-disabled">
<div v-if="form.zbjbdName">
{{ form.zbjbdName }}
</div>
<div v-else>
- -
</div>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="报批稿" prop="bpg" class="add-form-item form-item-disabled">
<div v-if="form.bpg">
{{ form.bpg }}
<el-form-item v-if="form.standInData === '0'" label="报批稿" prop="bpgName" class="add-form-item form-item-disabled">
<div v-if="form.bpgName">
{{ form.bpgName }}
</div>
<div v-else>
- -
</div>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="送审稿" prop="ssg" class="add-form-item form-item-disabled">
<div v-if="form.ssg">
{{ form.ssg }}
<el-form-item v-if="form.standInData === '0'" label="送审稿" prop="ssgName" class="add-form-item form-item-disabled">
<div v-if="form.ssgName">
{{ form.ssgName }}
</div>
<div v-else>
- -
@@ -250,33 +250,33 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item v-if="form.standInData === '1'" label="勘误件" prop="kwj" class="add-form-item form-item-disabled">
<div v-if="form.kwj">
{{ form.kwj }}
<el-form-item v-if="form.standInData === '1'" label="勘误件" prop="kwjName" class="add-form-item form-item-disabled">
<div v-if="form.kwjName">
{{ form.kwjName }}
</div>
<div v-else>
- -
</div>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="征求意见稿" prop="zqyjg" class="add-form-item form-item-disabled">
<div v-if="form.zqyjg">
{{ form.zqyjg }}
<el-form-item v-if="form.standInData === '0'" label="征求意见稿" prop="zqyjgName" class="add-form-item form-item-disabled">
<div v-if="form.zqyjgName">
{{ form.zqyjgName }}
</div>
<div v-else>
- -
</div>
</el-form-item>
<el-form-item label="草案" prop="ca" class="add-form-item form-item-disabled">
<div v-if="form.ca">
{{ form.ca }}
<el-form-item label="草案" prop="caName" class="add-form-item form-item-disabled">
<div v-if="form.caName">
{{ form.caName }}
</div>
<div v-else>
- -
</div>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="解读文件" prop="jdwj" class="add-form-item form-item-disabled">
<div v-if="form.jdwj">
{{ form.jdwj }}
<el-form-item v-if="form.standInData === '0'" label="解读文件" prop="jdwjName" class="add-form-item form-item-disabled">
<div v-if="form.jdwjName">
{{ form.jdwjName }}
</div>
<div v-else>
- -
@@ -473,9 +473,9 @@
clearable
></el-input>
</el-form-item>
<el-form-item label="关联文件" prop="glwj" class="add-form-item form-item-disabled">
<div v-if="form.glwj">
{{ form.glwj }}
<el-form-item label="关联文件" prop="glwjName" class="add-form-item form-item-disabled">
<div v-if="form.glwjName">
{{ form.glwjName }}
</div>
<div v-else>
- -
@@ -730,6 +730,16 @@
jdwj: '', // 解读文件
zbjbd: '', // 增补件
kwj: '', // 勘误件
caName: '', // 草案
fbgbjbdName: '', // 发布稿
xgdName: '', // 修改单
bpgName: '', // 报批稿
ssgName: '', // 送审稿
zqyjgName: '', // 征求意见稿
jdwjName: '', // 解读文件
zbjbdName: '', // 增补件
kwjName: '', // 勘误件
glwjName: '', // 关联文件
// 适用范围
txlb: '', // 体系类别
gkdw: '', // 归口管理部门
@@ -201,41 +201,41 @@
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item v-if="form.standInData === '0'" label="修改单" prop="xgd" class="add-form-item form-item-disabled">
<div v-if="form.xgd">
{{ form.xgd }}
<el-form-item v-if="form.standInData === '0'" label="修改单" prop="xgdName" class="add-form-item form-item-disabled">
<div v-if="form.xgdName">
{{ form.xgdName }}
</div>
<div v-else>
- -
</div>
</el-form-item>
<el-form-item label="发布稿" prop="fbgbjbd" class="add-form-item form-item-disabled">
<div v-if="form.fbgbjbd">
{{ form.fbgbjbd }}
<el-form-item label="发布稿" prop="fbgbjbdName" class="add-form-item form-item-disabled">
<div v-if="form.fbgbjbdName">
{{ form.fbgbjbdName }}
</div>
<div v-else>
- -
</div>
</el-form-item>
<el-form-item v-if="form.standInData === '1'" label="增补件" prop="zbjbd" class="add-form-item form-item-disabled">
<div v-if="form.zbjbd">
{{ form.zbjbd }}
<el-form-item v-if="form.standInData === '1'" label="增补件" prop="zbjbdName" class="add-form-item form-item-disabled">
<div v-if="form.zbjbdName">
{{ form.zbjbdName }}
</div>
<div v-else>
- -
</div>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="报批稿" prop="bpg" class="add-form-item form-item-disabled">
<div v-if="form.bpg">
{{ form.bpg }}
<el-form-item v-if="form.standInData === '0'" label="报批稿" prop="bpgName" class="add-form-item form-item-disabled">
<div v-if="form.bpgName">
{{ form.bpgName }}
</div>
<div v-else>
- -
</div>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="送审稿" prop="ssg" class="add-form-item form-item-disabled">
<div v-if="form.ssg">
{{ form.ssg }}
<el-form-item v-if="form.standInData === '0'" label="送审稿" prop="ssgName" class="add-form-item form-item-disabled">
<div v-if="form.ssgName">
{{ form.ssgName }}
</div>
<div v-else>
- -
@@ -243,33 +243,33 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item v-if="form.standInData === '1'" label="勘误件" prop="kwj" class="add-form-item form-item-disabled">
<div v-if="form.kwj">
{{ form.kwj }}
<el-form-item v-if="form.standInData === '1'" label="勘误件" prop="kwjName" class="add-form-item form-item-disabled">
<div v-if="form.kwjName">
{{ form.kwjName }}
</div>
<div v-else>
- -
</div>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="征求意见稿" prop="zqyjg" class="add-form-item form-item-disabled">
<div v-if="form.zqyjg">
{{ form.zqyjg }}
<el-form-item v-if="form.standInData === '0'" label="征求意见稿" prop="zqyjgName" class="add-form-item form-item-disabled">
<div v-if="form.zqyjgName">
{{ form.zqyjgName }}
</div>
<div v-else>
- -
</div>
</el-form-item>
<el-form-item label="草案" prop="ca" class="add-form-item form-item-disabled">
<div v-if="form.ca">
{{ form.ca }}
<el-form-item label="草案" prop="caName" class="add-form-item form-item-disabled">
<div v-if="form.caName">
{{ form.caName }}
</div>
<div v-else>
- -
</div>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="解读文件" prop="jdwj" class="add-form-item form-item-disabled">
<div v-if="form.jdwj">
{{ form.jdwj }}
<el-form-item v-if="form.standInData === '0'" label="解读文件" prop="jdwjName" class="add-form-item form-item-disabled">
<div v-if="form.jdwjName">
{{ form.jdwjName }}
</div>
<div v-else>
- -
@@ -466,9 +466,9 @@
clearable
></el-input>
</el-form-item>
<el-form-item label="关联文件" prop="glwj" class="add-form-item form-item-disabled">
<div v-if="form.glwj">
{{ form.glwj }}
<el-form-item label="关联文件" prop="glwjName" class="add-form-item form-item-disabled">
<div v-if="form.glwjName">
{{ form.glwjName }}
</div>
<div v-else>
- -
@@ -722,6 +722,16 @@ export default {
jdwj: '', // 解读文件
zbjbd: '', // 增补件
kwj: '', // 勘误件
caName: '', // 草案
fbgbjbdName: '', // 发布稿
xgdName: '', // 修改单
bpgName: '', // 报批稿
ssgName: '', // 送审稿
zqyjgName: '', // 征求意见稿
jdwjName: '', // 解读文件
zbjbdName: '', // 增补件
kwjName: '', // 勘误件
glwjName: '', // 关联文件
// 适用范围
txlb: '', // 体系类别
gkdw: '', // 归口管理部门
@@ -188,78 +188,258 @@
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item v-if="form.standInData === '0'" label="修改单" prop="xgd" class="add-form-item form-item-disabled">
<div v-if="form.xgd">
{{ form.xgd }}
<el-form-item v-if="form.standInData === '0'" label="修改单" prop="xgdName" class="add-form-item form-item-disabled">
<el-input
disabled
style="display: none;"
v-model="form.xgdName"
clearable
></el-input>
<div v-if="form.xgdName">
{{ form.xgdName }}
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('xgd')">
重新上传
</el-button>
</div>
<div v-else>
- -
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('xgd')">
点击上传
</el-button>
</div>
</el-form-item>
<el-form-item label="发布稿" prop="fbgbjbd" class="add-form-item form-item-disabled">
<div v-if="form.fbgbjbd">
{{ form.fbgbjbd }}
<el-form-item label="发布稿" prop="fbgbjbdName" class="add-form-item form-item-disabled">
<el-input
disabled
style="display: none;"
v-model="form.fbgbjbdName"
clearable
></el-input>
<div v-if="form.fbgbjbdName">
{{ form.fbgbjbdName }}
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('fbgbjbd')">
重新上传
</el-button>
</div>
<div v-else>
- -
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('fbgbjbd')">
点击上传
</el-button>
</div>
</el-form-item>
<el-form-item v-if="form.standInData === '1'" label="增补件" prop="zbjbd" class="add-form-item form-item-disabled">
<div v-if="form.zbjbd">
{{ form.zbjbd }}
<el-form-item v-if="form.standInData === '1'" label="增补件" prop="zbjbdName" class="add-form-item form-item-disabled">
<el-input
disabled
style="display: none;"
v-model="form.zbjbdName"
clearable
></el-input>
<div v-if="form.zbjbdName">
{{ form.zbjbdName }}
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('zbjbd')">
重新上传
</el-button>
</div>
<div v-else>
- -
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('zbjbd')">
点击上传
</el-button>
</div>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="报批稿" prop="bpg" class="add-form-item form-item-disabled">
<div v-if="form.bpg">
{{ form.bpg }}
<el-form-item v-if="form.standInData === '0'" label="报批稿" prop="bpgName" class="add-form-item form-item-disabled">
<el-input
disabled
style="display: none;"
v-model="form.bpgName"
clearable
></el-input>
<div v-if="form.bpgName">
{{ form.bpgName }}
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('bpg')">
重新上传
</el-button>
</div>
<div v-else>
- -
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('bpg')">
点击上传
</el-button>
</div>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="送审稿" prop="ssg" class="add-form-item form-item-disabled">
<div v-if="form.ssg">
{{ form.ssg }}
<el-form-item v-if="form.standInData === '0'" label="送审稿" prop="ssgName" class="add-form-item form-item-disabled">
<el-input
disabled
style="display: none;"
v-model="form.ssgName"
clearable
></el-input>
<div v-if="form.ssgName">
{{ form.ssgName }}
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('ssg')">
重新上传
</el-button>
</div>
<div v-else>
- -
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('ssg')">
点击上传
</el-button>
</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item v-if="form.standInData === '1'" label="勘误件" prop="kwj" class="add-form-item form-item-disabled">
<div v-if="form.kwj">
{{ form.kwj }}
<el-form-item v-if="form.standInData === '1'" label="勘误件" prop="kwjName" class="add-form-item form-item-disabled">
<el-input
disabled
style="display: none;"
v-model="form.kwjName"
clearable
></el-input>
<div v-if="form.kwjName">
{{ form.kwjName }}
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('kwj')">
重新上传
</el-button>
</div>
<div v-else>
- -
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('kwj')">
点击上传
</el-button>
</div>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="征求意见稿" prop="zqyjg" class="add-form-item form-item-disabled">
<div v-if="form.zqyjg">
{{ form.zqyjg }}
<el-form-item v-if="form.standInData === '0'" label="征求意见稿" prop="zqyjgName" class="add-form-item form-item-disabled">
<el-input
disabled
style="display: none;"
v-model="form.zqyjgName"
clearable
></el-input>
<div v-if="form.zqyjgName">
{{ form.zqyjgName }}
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('zqyjg')">
重新上传
</el-button>
</div>
<div v-else>
- -
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('zqyjg')">
点击上传
</el-button>
</div>
</el-form-item>
<el-form-item label="草案" prop="ca" class="add-form-item form-item-disabled">
<div v-if="form.ca">
{{ form.ca }}
<el-form-item label="草案" prop="caName" class="add-form-item form-item-disabled">
<el-input
disabled
style="display: none;"
v-model="form.caName"
clearable
></el-input>
<div v-if="form.caName">
{{ form.caName }}
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('ca')">
重新上传
</el-button>
</div>
<div v-else>
- -
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('ca')">
点击上传
</el-button>
</div>
</el-form-item>
<el-form-item v-if="form.standInData === '0'" label="解读文件" prop="jdwj" class="add-form-item form-item-disabled">
<div v-if="form.jdwj">
{{ form.jdwj }}
<el-form-item v-if="form.standInData === '0'" label="解读文件" prop="jdwjName" class="add-form-item form-item-disabled">
<el-input
disabled
style="display: none;"
v-model="form.jdwjName"
clearable
></el-input>
<div v-if="form.jdwjName">
{{ form.jdwjName }}
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="margin-left: 10px"
@click="fileUpload('jdwj')">
重新上传
</el-button>
</div>
<div v-else>
- -
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('jdwj')">
点击上传
</el-button>
</div>
</el-form-item>
</el-col>
@@ -446,12 +626,24 @@
clearable
></el-input>
</el-form-item>
<el-form-item label="关联文件" prop="glwj" class="add-form-item form-item-disabled">
<div v-if="form.glwj">
{{ form.glwj }}
<el-form-item label="关联文件" prop="glwjName" class="add-form-item form-item-disabled">
<el-input
disabled
style="display: none;"
v-model="form.glwjName"
clearable
></el-input>
<div v-if="form.glwjName">
{{ form.glwjName }}
</div>
<div v-else>
- -
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('glwj')">
点击上传
</el-button>
</div>
</el-form-item>
</el-col>
@@ -633,6 +825,24 @@
@submit="handleSubmit"
>
</ProcessFooter>
<el-dialog width='400px' :visible.sync="fileMadel" title="上传文件">
<el-upload
multiple
drag
:action="fileUrl"
ref="importfile"
name="file"
accept=".ZIP, .zip, .doc, .DOC, .docx, .DOCX, .xls, .xlsx"
:before-upload="beginImportFile"
:on-success="importFileSuccess"
:show-file-list="false"
>
<div style="padding: 20px 0">
<i class="el-icon-upload" style="color: #3399ff"></i>
<p>点击或拖拽上传文件</p>
</div>
</el-upload>
</el-dialog>
</div>
</template>
@@ -667,6 +877,9 @@ export default {
nodeKey: 'id',
defaultCheckedKeys: [],
treeStatus:false,
fileUrl: 'api/att/attFile/upload',
fileMadel: false,
fileType: '',
form: {
// 基础信息
textStatus: '', // 文本状态
@@ -700,6 +913,16 @@ export default {
jdwj: '', // 解读文件
zbjbd: '', // 增补件
kwj: '', // 勘误件
caName: '', // 草案
fbgbjbdName: '', // 发布稿
xgdName: '', // 修改单
bpgName: '', // 报批稿
ssgName: '', // 送审稿
zqyjgName: '', // 征求意见稿
jdwjName: '', // 解读文件
zbjbdName: '', // 增补件
kwjName: '', // 勘误件
glwjName: '', // 关联文件
// 适用范围
txlb: '', // 体系类别
gkdw: '', // 归口管理部门
@@ -769,6 +992,77 @@ export default {
},
},
methods: {
beginImportFile (file) {
var filename = file.name
var index1 = filename.lastIndexOf('.')
var index2 = filename.length
var fileSuffix = filename.substring(index1, index2)
// const fileSuffix = file.name.split('.')[1] // 后缀名
// 判断上传文件格式
if (fileSuffix === '.ZIP' || fileSuffix === '.doc' || fileSuffix === '.DOC' || fileSuffix === '.docx' || fileSuffix === '.DOCX' || fileSuffix === '.zip' || fileSuffix === '.xls' || fileSuffix === '.xlsx') {
return true
} else {
this.spinShow = false
this.$message.error('文件' + file.name + '格式不正确,请上传ZIP/DOC/DOCX或XLS文件')
return false
}
// 判断文件上传大小
// eslint-disable-next-line no-unreachable
if (file.size / 1024 / 1024 <= 200) {
return true
} else {
this.$message.error('文件' + file.name + '大小不超过200M')
return false
}
return true
},
// 导入标准数据成功后执行
importFileSuccess (response, file) {
if (response.ok) {
this.fileMadel = false
if(this.fileType === 'fbgbjbd'){
this.form.fbgbjbd = response.data.id;
this.form.fbgbjbdName = response.data.name;
}else if(this.fileType === 'xgd'){
this.form.xgd = response.data.id;
this.form.xgdName = response.data.name;
}else if(this.fileType === 'bpg'){
this.form.bpg = response.data.id;
this.form.bpgName = response.data.name;
}else if(this.fileType === 'ssg'){
this.form.ssg = response.data.id;
this.form.ssgName = response.data.name;
}else if(this.fileType === 'zqyjg'){
this.form.zqyjg = response.data.id;
this.form.zqyjgName = response.data.name;
}else if(this.fileType === 'jdwj'){
this.form.jdwj = response.data.id;
this.form.jdwjName = response.data.name;
}else if(this.fileType === 'kwj'){
this.form.kwj = response.data.id;
this.form.kwjName = response.data.name;
}else if(this.fileType === 'xgd'){
this.form.xgd = response.data.id;
this.form.xgdName = response.data.name;
}else if(this.fileType === 'glwj'){
this.form.glwj = response.data.id;
this.form.glwjName = response.data.name;
}else if(this.fileType === 'ca'){
this.form.ca = response.data.id;
this.form.caName = response.data.name;
}
this.$message({
showClose: true,
message: response.message,
type: 'success'
})
}
},
fileUpload (type) {
this.fileType = '';
this.fileMadel = true
this.fileType = type;
},
popoverHide (checkedIds, checkedData) {
console.log(checkedIds);
console.log(checkedData);
@@ -54,7 +54,7 @@
<div class="block" style="padding-top: 20px;">
<el-timeline>
<el-form
ref="Form"
ref="roleForm"
:model="roleForm"
:rules="roleFormRules"
class="label-input-form">
@@ -81,39 +81,6 @@
</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.presidentUser ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="presidentUserName" style="margin-bottom: 0">
<h4>分发责任人</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.presidentUser" style="display: none;"></el-input>
<el-input v-model="roleForm.presidentUserName" placeholder="选择分发负责人" @click.native="choiceZRR('presidentUser', '选择分发负责人', roleForm.presidentUser)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
</el-form>
</el-timeline>
</div>
@@ -127,21 +94,23 @@
>
<div class="search-area">
<div class="content-top">
<el-form :modal="nonConformitySearch" inline class="label-input-form">
<el-form :modal="queryUnqualidiedData" inline class="label-input-form">
<el-form-item label="标准号/标准名称" class="search-item">
<el-input v-model="nonConformitySearch.standId"
placeholder="请输入"
clearable
:maxlength="100"></el-input>
<el-input
v-model="queryUnqualidiedData.standId"
placeholder="请输入"
clearable
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="项目名称" class="search-item">
<el-input v-model="nonConformitySearch.productName"
placeholder="请输入"
clearable
:maxlength="100"></el-input>
<el-input
v-model="queryUnqualidiedData.productName"
placeholder="请输入"
clearable
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="责任部门" class="search-item">
<el-input v-model="nonConformitySearch.responsibleUnit" v-show="false" />
<el-input v-model="queryUnqualidiedData.responsibleUnit" v-show="false" />
<el-popover
placement="bottom"
popper-class="user-dept-popper"
@@ -150,7 +119,7 @@
>
<el-input
slot="reference"
v-model="nonConformitySearch.responseUnitShow"
v-model="queryUnqualidiedData.responseUnitShow"
placeholder="根据责任部门查找"
readonly
clearable
@@ -257,19 +226,15 @@ 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'
export default {
name: "step1",
name: "wfhxzgStep1",
data() {
return {
textarea: '', // 意见
title: '', // 新增编辑抽屉标题
ListModel: false, // 新增编辑抽屉开关
nonConformitySearch: {
standId: '', // 标准号/名称
productName: '', // 项目名称
responsibleUnit: '' // 责任部门
},
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
@@ -280,11 +245,26 @@ export default {
itemsName: '',
planCloseTime: '',
responsibleUnit: '',
dutyEngineer: ''
dutyEngineer: '',
dutyPeopleInfo: '',
dutyPeople: '',
fileText: '',
fileTextId: '',
fileTextPath: ''
}],
// 责任部门
zNodesSItem: [],
standModel: false,
// 查询未符合项整改数据库数据
queryUnqualidiedData: {
pageNo: 1,
pageSize: 10,
total: 0,
closeState: '1',
standId: '', // 标准号/名称
productName: '', // 项目名称
responsibleUnit: '' // 责任部门
},
unqualidiedData: [{
standId: '',
productName: '',
@@ -292,14 +272,24 @@ export default {
itemsName: '',
planCloseTime: '',
responsibleUnit: '',
dutyEngineer: ''
dutyEngineer: '',
dutyPeopleInfo: '',
dutyPeopleInfoId: '',
dutyPeople: '',
dutyPeopleId: '',
fileText: '',
fileTextId: '',
fileTextPath: ''
}],
selectedList: [], //未整改项的选择框
roleForm: {
startUserName: this.$store.getters.userInfo.userName,
startUser: this.$store.getters.userInfo.userId,
dockUserName: '',
dockUser: ''
},
roleFormRules: {
dockUserName: [{ required: true, message: "请选择标准法规工程师", trigger: ['blur', 'change']}]
},
nodeList: [],
drawerTitle: '', //drawer标题
@@ -309,6 +299,7 @@ export default {
children: 'children',
label: 'name'
},
taskID: '',
}
},
components: {
@@ -318,21 +309,32 @@ export default {
},
mounted () {
this.getTree()
this.getJsonData()
},
methods: {
getJsonData() {
const params = {
type: '8'
}
startProcess(params).then(res => {
this.taskID = res.data
})
},
//点击新增事件
addList() {
this.$http.get("sarStandUnqualified/sar-stand-unqualified", "", {
...this.nonConformitySearch,
current: this.pageNo,
size: this.$store.getters.userInfo.configContent
}, {
_this: this
}, res => {
standUnqualified(this.queryUnqualidiedData).then(res => {
this.unqualidiedData = res.data.records
this.unqualidiedData.forEach(item => {
this.$set(item,'dutyPeopleInfo','')
this.$set(item,'dutyPeople','')
this.$set(item,'dutyPeopleInfoId','')
this.$set(item,'dutyPeopleId','')
this.$set(item,'fileText','')
this.$set(item,'fileTextId','')
this.$set(item,'fileTextPath','')
})
this.total = res.data.total
}, e => {
});
})
this.standModel = true;
},
@@ -371,7 +373,7 @@ export default {
OkDrawer() {
if (this.selectedList.length !== 0) {
this.dataList = this.selectedList
this.ListModel = false;
this.standModel = false;
} else {
this.$message.warning("请选择至少一条数据进行带入");
}
@@ -386,12 +388,40 @@ export default {
// 保存按钮
handleSave() {},
// 提交按钮
handleSubmit() {},
handleSubmit() {
let json = {
startUser: this.$store.getters.userInfo.userId,
engineer: this.roleForm.dockUser,
standardInfoList: this.dataList,
}
if (this.dataList[0].standId === '') {
this.$message.warning('请选择基础信息进行添加')
} else {
if (this.roleForm.dockUserName === '') {
this.$message.warning('请选择基础信息进行添加')
} else {
this.$refs['roleForm'].validate((valid) => {
if (valid) {
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskIds', this.taskID)
completeTask(params).then(res => {
if(res.success === true) {
this.$message.success('提交成功')
this.$router.push("/processCenter");
}
})
}
})
}
}
},
// 获取流程节点数据
getTree () {
this.$http.get('SarInstitution/institution/institutionAndUser', {}, {}, res=> {
this.treeData = res.data
console.log(res.data)
})
},
// 流程阶段负责人选择
@@ -413,19 +443,8 @@ export default {
},
// 流程节点负责人抽屉保存按钮
saveUserInfo () {
if (this.type === 'dockUser') {
this.roleForm.dockUser = this.roleRow.id
this.roleForm.dockUserName = this.roleRow.name
} else if (this.type === 'ministerUser') {
this.roleForm.ministerUser = this.roleRow.id
this.roleForm.ministerUserName = this.roleRow.name
} else if (this.type === 'directorUser') {
this.roleForm.directorUser = this.roleRow.id
this.roleForm.directorUserName = this.roleRow.name
} else if (this.type === 'presidentUser') {
this.roleForm.presidentUser = this.roleRow.id
this.roleForm.presidentUserName = this.roleRow.name
}
this.roleForm.dockUser = this.roleRow.id
this.roleForm.dockUserName = this.roleRow.name
this.modalshowflag = false
},
// 流程节点负责人抽屉取消按钮
@@ -438,7 +457,7 @@ export default {
},
// 清空 查询条件
clearAllSearch (search = true) {
this.nonConformitySearch = {
this.queryUnqualidiedData = {
standId: '',
productName: '',
responsibleUnit: ''
@@ -90,7 +90,7 @@
:data="dataList"
border
ref="multipleTable"
@select="handleSelectionChange"
@selection-change="handleSelectionChange"
height="49%"
style="width: 100%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
@@ -103,17 +103,17 @@
<el-table-column prop="planCloseTime" label="整改完成时间"/>
<el-table-column prop="responsibleUnit" label="责任部门"/>
<el-table-column prop="dutyEngineer" label="责任工程师"/>
<el-table-column label="选择分发责任人" prop="dutyPeople">
<el-table-column label="选择分发责任人" prop="dutyPeopleInfo">
<template slot-scope="scope">
<span v-if="scope.row.show">
<el-input
v-model="scope.row.dutyPeople"
v-model="scope.row.dutyPeopleInfo"
size="mini"
placeholder="请输入内容"
@click.native="choiceDuty"
/>
</span>
<span v-else>{{scope.row.dutyPeople}}</span>
<span v-else>{{scope.row.dutyPeopleInfo}}</span>
</template>
</el-table-column>
</el-table>
@@ -175,15 +175,18 @@
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {interfaceUrl} from "@/sysConfig";
import { roleTreeData } from "@/api/unqualProcess.js"
import {completeTask, inboundLiaisonDetail} from "@/api/process.js"
export default {
name: "step2",
name: "wfhxzgStep2",
data() {
return {
textarea: '', // 意见
title: '', // 新增编辑抽屉标题
ListModel: false, // 新增编辑抽屉开关
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
nonConformitySearch: {
standId: '', // 标准号/名称
productName: '', // 项目名称
@@ -193,6 +196,8 @@ export default {
isSubmit: false,
saveLoading: false,
dataList: [],
endDataList: [],
lastDataList: [],
// 新增选择分发责任人数组
multipleSelection: [],
// 当前页数
@@ -214,6 +219,15 @@ export default {
nodeList: [],
drawerTitle: '', //drawer标题
modalshowflag: false, // drawer开关
roleForm: {
dutyUserInfo: [],
dutyUserInfoName: [],
dutyPeopleInfo: '',
dutyPeople: ''
},
props: { label: 'name', children: 'children', value: 'id', multiple: true, disabled: false },
dutyUserCaseData: [],
roleFormRules: {},
treeData: [], // 人员数据
defaultProps: {
children: 'children',
@@ -232,47 +246,20 @@ export default {
},
methods: {
getData() {
this.dataList = [
{
standId: '1',
productName: '1',
itemsNum: '1',
itemsName: '1',
planCloseTime: '1',
responsibleUnit: '1',
dutyEngineer: '1',
dutyPeople: '',
},{
standId: '332',
productName: '333',
itemsNum: '33',
itemsName: '33',
planCloseTime: '33',
responsibleUnit: '33',
dutyEngineer: '33',
dutyPeople: ''
},{
standId: '312`',
productName: '31312',
itemsNum: '31`2',
itemsName: '312`1`',
planCloseTime: '321`3`2',
responsibleUnit: '312`123`',
dutyEngineer: '312123',
dutyPeople: '121'
},{
standId: '32123',
productName: '32132',
itemsNum: '312321',
itemsName: '3123',
planCloseTime: '3123',
responsibleUnit: '3123',
dutyEngineer: '3123',
dutyPeople: ''
},
]
const params = {
taskIds: this.taskIds,
pId: this.pId,
}
inboundLiaisonDetail(params).then(res => {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
})
},
getFormFieldList (item) {
this.$nextTick(() => {
this.dataList = JSON.parse(JSON.stringify(item)).standardInfoList
})
},
// 批量选择分发责任人
dutyEngineerList() {
if (this.multipleSelection.length === 0) {
@@ -287,12 +274,12 @@ export default {
// 选择勾选项的集合
handleSelectionChange(value) {
this.multipleSelection = value
console.log(value)
},
// 选择分发责任人时
choiceDuty(type, title, id) {
this.nodeList = []
this.nodeList.push(id)
this.type = type
this.drawerTitle = title
this.modalshowflag = true
},
@@ -306,37 +293,91 @@ export default {
// 保存按钮
handleSave() {},
// 提交按钮
handleSubmit() {},
handleSubmit() {
let zqa = new Map();
for (let lastDataListElement of this.lastDataList) {
let a = zqa.get(lastDataListElement.dutyPeopleInfoId)
if( a == null){
a = {
id: lastDataListElement.dutyPeopleInfoId,
name: lastDataListElement.dutyPeopleInfo,
standardInfoList: []
}
}
a.standardInfoList.push(lastDataListElement);
zqa.set(a.id, a);
}
let list = [];
for(let item of zqa) {
list.push(item[1])
}
let json = {
dockUserList: list,
// engineer: this.$store.getters.userInfo.userId,
// standardInfoList: list[0].standardInfoList,
}
console.log(json)
let flag=false
this.dataList.forEach(item => {
if (item.dutyPeopleInfo === '') {
this.$message.warning('请选择分发负责人填入')
flag=true
}
})
if(flag)return;
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskIds', this.taskIds)
completeTask(params).then(res => {
if(res.success === true) {
this.$message.success('提交成功')
this.$router.push("/processCenter");
}
})
},
// 流程阶段负责人选择
choiceZRR (type, title, id) {
this.nodeList = []
this.nodeList.push(id)
this.type = type
this.drawerTitle = title
this.modalshowflag = true
},
// 获取流程节点数据
getTree () {
this.$http.get('SarInstitution/institution/institutionAndUser', {}, {}, res=> {
roleTreeData().then(res => {
this.treeData = res.data
this.dutyUserCaseData = res.data
})
},
drawerCheck (data) {
var getlist = this.$refs.tree.getCheckedNodes().concat(this.$refs.tree.getHalfCheckedNodes());
if(getlist.length == 1) {
this.roleRow = getlist[0]
if(getlist.length !== 0) {
this.roleRow = getlist
}else {
this.$refs.tree.setCheckedKeys([data.id]);
this.roleRow = this.$refs.tree.getCheckedNodes()[0]
this.roleRow = this.$refs.tree.getCheckedNodes()
}
},
// 流程节点负责人抽屉保存按钮
saveUserInfo () {
// 选取负责人时的操作
for (let i = 0; i < this.multipleSelection.length; i++ ) {
this.multipleSelection[i].dutyPeople = this.roleRow.name
for (let b = 0; b < this.multipleSelection.length; b++) {
this.multipleSelection[b].dutyPeople = this.multipleSelection[i].dutyPeople
this.dataList.forEach(val=> {
val.show = false
})
}
this.multipleSelection = []
this.multipleSelection[i].dutyPeopleInfo = this.roleRow[0].name
this.multipleSelection[i].dutyPeopleInfoId = this.roleRow[0].id
for (let b = 0; b < this.multipleSelection.length; b++) {
this.dataList[b].dutyPeopleInfo = this.multipleSelection[i].dutyPeopleInfo
this.dataList[b].dutyPeopleInfoId = this.multipleSelection[i].dutyPeopleInfoId
this.dataList.forEach(val=> {
val.show = false
})
}
this.lastDataList = this.dataList
this.$refs.multipleTable.clearSelection();
}
this.roleForm.dutyUserInfoName = this.roleRow.name
this.modalshowflag = false
},
// 流程节点负责人抽屉取消按钮
@@ -168,10 +168,10 @@
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {interfaceUrl} from "@/sysConfig";
import {completeTask, inboundLiaisonDetail} from "@/api/process.js";
export default {
name: "step3",
name: "wfhxzgStep3",
data() {
return {
textarea: '', // 意见
@@ -185,26 +185,9 @@ export default {
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
dataList: [
{
standId: '1',
productName: '1',
itemsNum: '1',
itemsName: '1',
planCloseTime: '1',
responsibleUnit: '1',
dutyEngineer: '1',
dutyPeople: '13123'
},{
standId: '',
productName: '',
itemsNum: '',
itemsName: '',
planCloseTime: '',
responsibleUnit: '',
dutyEngineer: '',
dutyPeople: ''
}],
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
dataList: [],
newDataList: [],
// 责任部门
@@ -226,9 +209,30 @@ export default {
ProcessTitle
},
created() {
this.getData()
this.getTree()
},
methods: {
getData() {
const params = {
taskIds: this.taskIds,
pId: this.pId,
}
inboundLiaisonDetail(params).then(res => {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
})
},
getFormFieldList (item) {
this.$nextTick(() => {
let fileData = JSON.parse(JSON.stringify(item)).dockUserList
for (let i = 0; i<fileData.length; i++) {
if (fileData[i].name === this.$store.getters.userInfo.userName) {
this.dataList = fileData[i].standardInfoList
}
}
})
},
// 选择责任人的按钮操作
selectPeople(val) {
this.newDataList = val
@@ -242,7 +246,47 @@ export default {
// 保存按钮
handleSave() {},
// 提交按钮
handleSubmit() {},
handleSubmit() {
let zqa = new Map();
for (let lastDataListElement of this.lastDataList) {
let a = zqa.get(lastDataListElement.dutyPeopleId)
if( a == null){
a = {
id: lastDataListElement.dutyPeopleId,
name: lastDataListElement.dutyPeople,
standardInfoList: []
}
}
a.standardInfoList.push(lastDataListElement);
zqa.set(a.id, a);
}
let list = [];
for(let item of zqa) {
list.push(item[1])
}
let json = {
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))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskIds', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('提交成功')
this.$router.push("/processCenter");
}
})
},
// 获取流程节点数据
getTree () {
@@ -263,6 +307,9 @@ export default {
saveUserInfo () {
// 选择责任人时input框内值
this.newDataList.dutyPeople = this.roleRow.name
this.newDataList.dutyPeopleId = this.roleRow.id
this.lastDataList = this.dataList
console.log(this.dataList)
this.modalshowflag = false
},
// 流程节点负责人抽屉取消按钮
@@ -92,27 +92,28 @@
<el-table-column prop="planCloseTime" label="整改完成时间"/>
<el-table-column prop="responsibleUnit" label="责任部门"/>
<el-table-column prop="dutyPeople" label="负责人"/>
<el-table-column label="佐证材料">
<el-table-column label="佐证材料" prop="info.fileText" show-overflow-tooltip width="150">
<template slot-scope="scope">
<el-upload
v-model="fileText"
ref="uploadFile"up
:action="uploadPath"
class="upload-demo"
:http-request="handleUpload"
:on-success="handleOnsuccess"
:on-error="handleOnError"
:before-upload="handleBeforeUpload"
:before-remove="handleBeforeRemove"
:on-remove="handleOnRemove"
:on-exceed="handleExceed"
:limit="10"
:file-list="uploadFileList"
list-type="picture"
:auto-upload="true"
>
<el-button type="text">上传佐证材料</el-button>
</el-upload>
<div style="display: inline;">
<el-input
disabled
style="display: none"
v-model="scope.row.fileText"
clearable
/>
<div v-if="scope.row.fileText" type="primary" @click="fileUpload(scope.row)" class="fileClass">
{{ scope.row.fileText }}
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
@click="fileUpload(scope.row)"
size="mini">
点击上传
</el-button>
</div>
</div>
</template>
</el-table-column>
</el-table>
@@ -141,6 +142,24 @@
@submit="handleSubmit"
>
</ProcessFooter>
<el-dialog width='400px' :visible.sync="fileMadel" title="上传文件">
<el-upload
multiple
drag
:action="uploadPath"
ref="importfile"
name="file"
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>
<p>点击或拖拽上传文件</p>
</div>
</el-upload>
</el-dialog>
</div>
</template>
@@ -149,9 +168,10 @@ import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {interfaceUrl} from "@/sysConfig";
import {inboundLiaisonDetail, completeTask} from "@/api/process"
export default {
name: "step4",
name: "wfhxzgStep4",
data() {
return {
textarea: '', // 意见
@@ -165,34 +185,17 @@ export default {
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
dataList: [
{
standId: '1',
productName: '1',
itemsNum: '1',
itemsName: '1',
planCloseTime: '1',
responsibleUnit: '1',
dutyEngineer: '1',
dutyPeople: '13123'
},{
standId: '',
productName: '',
itemsNum: '',
itemsName: '',
planCloseTime: '',
responsibleUnit: '',
dutyEngineer: '',
dutyPeople: '13123'
}],
dataList: [],
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
// 当前页数
pageNo: 1,
total: 0,
myLoading: false,
// 上传路径
uploadPath: 'api/att/attFile/upload',
// 上传文件所储存的数组
uploadFileList: [],
fileMadel: false,
newDataList: [],
// 责任部门
zNodesSItem: [],
}
@@ -203,25 +206,84 @@ export default {
ProcessTitle
},
created() {
this.getData()
},
methods: {
getData() {
const params = {
taskIds: this.taskIds,
pId: this.pId,
}
inboundLiaisonDetail(params).then(res => {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
})
},
getFormFieldList (item) {
this.$nextTick(() => {
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
console.log(this.dataList)
}
}*/
})
},
handleTabs(name) {
this.active = name
},
/************ 上传佐证材料 *****************/
// 上传材料
handleUpload() {},
fileUpload (val) {
this.newDataList = val
this.fileMadel = true
},
// 文件上传成功
handleOnsuccess(res, file) {
this.$message.success('上传成功!')
console.log(file)
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'
})
}
},
// 文件上传失败后回调
handleOnError(res, file) {},
// 文件上传限制条件
handleBeforeUpload() {},
handleBeforeUpload(file) {
var filename = file.name
var index1 = filename.lastIndexOf('.')
var index2 = filename.length
var fileSuffix = filename.substring(index1, index2)
// const fileSuffix = file.name.split('.')[1] // 后缀名
// 判断上传文件格式
if (fileSuffix === '.ZIP' || fileSuffix === '.docx' || fileSuffix === '.DOCX' || fileSuffix === '.zip' || fileSuffix === '.xls' || fileSuffix === '.xlsx') {
return true
} else {
this.spinShow = false
this.$message.error('文件' + file.name + '格式不正确,请上传ZIP/DOCX或XLS文件')
return false
}
// 判断文件上传大小
// eslint-disable-next-line no-unreachable
if (file.size / 1024 / 1024 <= 200) {
return true
} else {
this.$message.error('文件' + file.name + '大小不超过200M')
return false
}
return true
},
// 移除上传的文件
handleBeforeRemove() {},
handleOnRemove() {},
@@ -233,7 +295,32 @@ export default {
// 保存按钮
handleSave() {},
// 提交按钮
handleSubmit() {},
handleSubmit() {
let flag=false
this.dataList.forEach(item => {
if (item.fileText === '') {
this.$message.warning('请选择佐证材料进行上传')
flag=true
}
})
if(flag)return;
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)
params.set('taskIds', this.taskIds)
completeTask(params).then(res => {
if(res.success === true) {
this.$message.success('提交成功')
this.$router.push("/processCenter");
}
})
},
//未整改项抽屉中的查询按钮
getTableByPage() {
@@ -106,19 +106,21 @@
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="textarea">
v-model="commentText">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<ProcessFooter
show-back
show-submit
show-back
approval
@back="handleSubmitNo"
:submitLoading="isSubmit"
:backLoading="backLoading"
@back="handleDataBack"
:saveLoading="saveLoading"
@submit="handleSubmit"
submitBTNText="同意"
>
</ProcessFooter>
</div>
@@ -129,13 +131,15 @@ import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {interfaceUrl} from "@/sysConfig";
import {inboundLiaisonDetail} from "@/api/process";
export default {
name: "step5",
name: "wfhxzgStep5",
data() {
return {
textarea: '', // 意见
commentText: '',
title: '', // 新增编辑抽屉标题
saveLoading: false,
ListModel: false, // 新增编辑抽屉开关
nonConformitySearch: {
standId: '', // 标准号/名称
@@ -145,24 +149,10 @@ export default {
active: '1', // 默认显示
isSubmit: false,
backLoading: false,
dataList: [
{
standId: '1',
productName: '1',
itemsNum: '1',
itemsName: '1',
planCloseTime: '1',
responsibleUnit: '1',
dutyEngineer: '1'
},{
standId: '',
productName: '',
itemsNum: '',
itemsName: '',
planCloseTime: '',
responsibleUnit: '',
dutyEngineer: ''
}],
dataList: [],
json: {},
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
// 当前页数
pageNo: 1,
total: 0,
@@ -180,15 +170,66 @@ export default {
ProcessTitle
},
created() {
this.getData()
},
methods: {
getData() {
const params = {
taskIds: this.taskIds,
pId: this.pId,
}
inboundLiaisonDetail(params).then(res => {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
})
},
getFormFieldList (item) {
this.$nextTick(() => {
console.log(item)
this.dataList = JSON.parse(JSON.stringify(item)).info.fileDataList
console.log(this.dataList)
})
},
handleTabs(name) {
this.active = name
},
// 提交按钮
handleSubmit() {},
handleSubmit() {
var json = this.json
json.actionFlag = 0
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('驳回成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
//未整改项抽屉中的查询按钮
getTableByPage() {
},
@@ -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>
@@ -471,13 +471,71 @@ export default {
}
})
}
break;
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,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
break
//未符合项整改流程
case '8' :
if(row.taskInfo === '下发至标准法规工程师'){
this.$router.push({
name: 'wfhxzgStep2',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '确认+选择责任人') {
this.$router.push({
name: 'wfhxzgStep3',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}else if (row.taskInfo === '上传佐证材料填写信息') {
this.$router.push({
name: 'wfhxzgStep4',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}else {
this.$router.push({
name: 'wfhxzgStep5',
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>
@@ -159,7 +159,6 @@
</el-table-column>
<el-table-column
label="标准号"
width="200px"
>
<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>
@@ -169,7 +168,6 @@
<el-table-column
prop="standName"
label="标准名称"
width="250px"
>
<template slot-scope="scope">
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
@@ -178,7 +176,7 @@
<el-table-column
prop="issueTime"
sortable="custom"
width="170px"
width="110px"
label="发布日期">
<template slot-scope="scope">
{{ formatIssueDate(scope.row.issueTime) }}
@@ -187,6 +185,7 @@
<el-table-column
prop="xcxssrq"
sortable="custom"
width="150px"
label="新车型实施日期">
<template slot-scope="scope">
<span>{{ formatText(scope.row.XCXSSRQ) }}</span>
@@ -195,6 +194,7 @@
<el-table-column
prop="zccssrq"
sortable="custom"
width="150px"
label="在产车实施日期">
<template slot-scope="scope">
<span>{{ formatText(scope.row.ZCCSSRQ) }}</span>
@@ -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>
@@ -3887,8 +3887,8 @@ export default {
async mounted () {
// 进入页面后查询树形结构目录
await this.selectMenu()
// 进入页面后查询标准体系树形结构目录
await this.selectStandardMenu()
// 进入页面后查询标准体系树形结构目录 引用 数据字典配置
// await this.selectStandardMenu()
this.treeReload = true
// 从数据库中查询各下拉框数据
this.$http.get('sys/dictype/getDicTypeListCode', '', {
@@ -3846,7 +3846,7 @@ export default {
position: relative;
.tree-content {
background: #fff;
width: 16%;
width: 20%;
position: relative;
.tree {
width: calc(~'100% - 15px');
@@ -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
+2 -2
View File
@@ -341,7 +341,7 @@ const routes = [
},
{
path: '/wfhxzgStep1',
name: 'wfhxzgStep2',
name: 'wfhxzgStep1',
component: () => import('@/pages/processCenter/pages/creatProcess/wfhxzg/step1.vue'),
meta: {
requireAuth: true,
@@ -1717,7 +1717,7 @@ router.beforeEach((to, from, next) => {
// if (processCenter) {
// if (to.meta.process) {
// if (store.getters.getHandleInfo.prcType === to.meta.process.prcType &&
// (store.getters.getHandleInfo.taskInfo === to.meta.process.taskInfo ||
// (store.getters.getHandleInfo. === to.meta.process.taskInfo ||
// (to.meta.process.taskInfo.__proto__.constructor === Array && to.meta.process.taskInfo.includes(store.getters.getHandleInfo.taskInfo)))) {
// next()
// } else {
+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'